aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js
diff options
context:
space:
mode:
authorGravatar dave caruso <me@paperdave.net> 2023-06-01 21:16:47 -0400
committerGravatar GitHub <noreply@github.com> 2023-06-01 18:16:47 -0700
commit4df1d37ddc54242c339765f22fb90ba2e9e3a99a (patch)
treed63ede76463e7ecba78a4d4b31e5e8158193552f /src/bun.js
parent03ffd1c732aaaa30b5481f197221ce96da559e63 (diff)
downloadbun-4df1d37ddc54242c339765f22fb90ba2e9e3a99a.tar.gz
bun-4df1d37ddc54242c339765f22fb90ba2e9e3a99a.tar.zst
bun-4df1d37ddc54242c339765f22fb90ba2e9e3a99a.zip
Bundle and minify `.exports.js` files. (#3036)
* move all exports.js into src/js * finalize the sort of this * and it works * add test.ts to gitignore * okay * convert some to ts just to show * finish up * fixup makefile * minify syntax in dev * finish rebase * dont minify all modules * merge * finish rebase merge * flaky test that hangs
Diffstat (limited to 'src/bun.js')
-rw-r--r--src/bun.js/assert.exports.js1313
-rw-r--r--src/bun.js/assert_strict.exports.js48
-rw-r--r--src/bun.js/async_hooks.exports.js213
-rw-r--r--src/bun.js/bindings/exports.zig2
-rw-r--r--src/bun.js/bindings/sqlite/sqlite.exports.js432
-rw-r--r--src/bun.js/builtins/BunBuiltinNames.h267
-rw-r--r--src/bun.js/builtins/README.md53
-rw-r--r--src/bun.js/builtins/WebCoreJSBuiltins.cpp2985
-rw-r--r--src/bun.js/builtins/WebCoreJSBuiltins.d.ts199
-rw-r--r--src/bun.js/builtins/WebCoreJSBuiltins.h5512
-rw-r--r--src/bun.js/builtins/builtins.d.ts533
-rw-r--r--src/bun.js/builtins/codegen/builtin-parser.ts89
-rw-r--r--src/bun.js/builtins/codegen/helpers.ts25
-rw-r--r--src/bun.js/builtins/codegen/index.ts624
-rw-r--r--src/bun.js/builtins/codegen/replacements.ts100
-rw-r--r--src/bun.js/builtins/ts/BundlerPlugin.ts370
-rw-r--r--src/bun.js/builtins/ts/ByteLengthQueuingStrategy.ts42
-rw-r--r--src/bun.js/builtins/ts/ConsoleObject.ts84
-rw-r--r--src/bun.js/builtins/ts/CountQueuingStrategy.ts42
-rw-r--r--src/bun.js/builtins/ts/ImportMetaObject.ts257
-rw-r--r--src/bun.js/builtins/ts/JSBufferConstructor.ts67
-rw-r--r--src/bun.js/builtins/ts/JSBufferPrototype.ts495
-rw-r--r--src/bun.js/builtins/ts/ProcessObjectInternals.ts676
-rw-r--r--src/bun.js/builtins/ts/ReadableByteStreamController.ts93
-rw-r--r--src/bun.js/builtins/ts/ReadableByteStreamInternals.ts656
-rw-r--r--src/bun.js/builtins/ts/ReadableStream.ts421
-rw-r--r--src/bun.js/builtins/ts/ReadableStreamBYOBReader.ts80
-rw-r--r--src/bun.js/builtins/ts/ReadableStreamBYOBRequest.ts66
-rw-r--r--src/bun.js/builtins/ts/ReadableStreamDefaultController.ts63
-rw-r--r--src/bun.js/builtins/ts/ReadableStreamDefaultReader.ts185
-rw-r--r--src/bun.js/builtins/ts/ReadableStreamInternals.ts1799
-rw-r--r--src/bun.js/builtins/ts/StreamInternals.ts268
-rw-r--r--src/bun.js/builtins/ts/TransformStream.ts106
-rw-r--r--src/bun.js/builtins/ts/TransformStreamDefaultController.ts60
-rw-r--r--src/bun.js/builtins/ts/TransformStreamInternals.ts348
-rw-r--r--src/bun.js/builtins/ts/WritableStreamDefaultController.ts48
-rw-r--r--src/bun.js/builtins/ts/WritableStreamDefaultWriter.ts104
-rw-r--r--src/bun.js/builtins/ts/WritableStreamInternals.ts790
-rw-r--r--src/bun.js/builtins/tsconfig.json7
-rw-r--r--src/bun.js/bun-jsc.exports.js35
-rw-r--r--src/bun.js/child_process.exports.js1747
-rw-r--r--src/bun.js/cluster.exports.js57
-rw-r--r--src/bun.js/crypto.exports.js23894
-rw-r--r--src/bun.js/depd.exports.js88
-rw-r--r--src/bun.js/detect-libc.js26
-rw-r--r--src/bun.js/detect-libc.linux.js27
-rw-r--r--src/bun.js/dgram.exports.js46
-rw-r--r--src/bun.js/diagnostics_channel.exports.js57
-rw-r--r--src/bun.js/events.exports.js464
-rw-r--r--src/bun.js/ffi.exports.js391
-rw-r--r--src/bun.js/fs.exports.js1015
-rw-r--r--src/bun.js/fs_promises.exports.js113
-rw-r--r--src/bun.js/http.exports.js1814
-rw-r--r--src/bun.js/http2.exports.js342
-rw-r--r--src/bun.js/https.exports.js3
-rw-r--r--src/bun.js/inspector.exports.js68
-rw-r--r--src/bun.js/module_loader.zig470
-rw-r--r--src/bun.js/net.exports.js795
-rw-r--r--src/bun.js/node-dns.exports.js719
-rw-r--r--src/bun.js/node-dns_promises.exports.js44
-rw-r--r--src/bun.js/node-tls.exports.js336
-rw-r--r--src/bun.js/node_streams_consumer.exports.js20
-rw-r--r--src/bun.js/node_streams_promises.exports.js9
-rw-r--r--src/bun.js/node_streams_web.exports.js29
-rw-r--r--src/bun.js/node_timers.exports.js13
-rw-r--r--src/bun.js/node_timers_promises.exports.js234
-rw-r--r--src/bun.js/os.exports.js56
-rw-r--r--src/bun.js/path-posix.exports.js36
-rw-r--r--src/bun.js/path-win32.exports.js35
-rw-r--r--src/bun.js/path.exports.js50
-rw-r--r--src/bun.js/perf_hooks.exports.js25
-rw-r--r--src/bun.js/process-stdio-polyfill.js0
-rw-r--r--src/bun.js/readline.exports.js3137
-rw-r--r--src/bun.js/readline_promises.exports.js10
-rw-r--r--src/bun.js/repl.exports.js85
-rw-r--r--src/bun.js/streams.exports.js5656
-rw-r--r--src/bun.js/trace_events.exports.js33
-rw-r--r--src/bun.js/undici.exports.js331
-rw-r--r--src/bun.js/url.exports.js397
-rw-r--r--src/bun.js/util.exports.js588
-rw-r--r--src/bun.js/v8.exports.js166
-rw-r--r--src/bun.js/vm.exports.js56
-rw-r--r--src/bun.js/wasi-runner.js42
-rw-r--r--src/bun.js/wasi.exports.js1942
-rw-r--r--src/bun.js/ws.exports.js1118
-rw-r--r--src/bun.js/zlib.exports.js4471
86 files changed, 73 insertions, 70539 deletions
diff --git a/src/bun.js/assert.exports.js b/src/bun.js/assert.exports.js
deleted file mode 100644
index 8fb283c9f..000000000
--- a/src/bun.js/assert.exports.js
+++ /dev/null
@@ -1,1313 +0,0 @@
-var { Bun } = import.meta.primordials;
-var isDeepEqual = Bun.deepEquals;
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf,
- __hasOwnProp = Object.prototype.hasOwnProperty;
-var __markAsModule = target => __defProp(target, "__esModule", { value: !0 });
-var __commonJS = (cb, mod) =>
- function () {
- return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-var __reExport = (target, module2, desc) => {
- if ((module2 && typeof module2 == "object") || typeof module2 == "function")
- for (let key of __getOwnPropNames(module2))
- !__hasOwnProp.call(target, key) &&
- key !== "default" &&
- __defProp(target, key, {
- get: () => module2[key],
- enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable,
- });
- return target;
- },
- __toModule = module2 =>
- __reExport(
- __markAsModule(
- __defProp(
- module2 != null ? __create(__getProtoOf(module2)) : {},
- "default",
- module2 && module2.__esModule && "default" in module2
- ? { get: () => module2.default, enumerable: !0 }
- : { value: module2, enumerable: !0 },
- ),
- ),
- module2,
- );
-
-var require = path => import.meta.require(path);
-
-// assert/build/internal/errors.js
-var require_errors = __commonJS({
- "assert/build/internal/errors.js"(exports, module2) {
- "use strict";
- function _typeof(obj) {
- return (
- typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
- ? (_typeof = function (obj2) {
- return typeof obj2;
- })
- : (_typeof = function (obj2) {
- return obj2 && typeof Symbol == "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype
- ? "symbol"
- : typeof obj2;
- }),
- _typeof(obj)
- );
- }
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
- }
- function _possibleConstructorReturn(self, call) {
- return call && (_typeof(call) === "object" || typeof call == "function") ? call : _assertThisInitialized(self);
- }
- function _assertThisInitialized(self) {
- if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- return self;
- }
- function _getPrototypeOf(o) {
- return (
- (_getPrototypeOf = Object.setPrototypeOf
- ? Object.getPrototypeOf
- : function (o2) {
- return o2.__proto__ || Object.getPrototypeOf(o2);
- }),
- _getPrototypeOf(o)
- );
- }
- function _inherits(subClass, superClass) {
- if (typeof superClass != "function" && superClass !== null)
- throw new TypeError("Super expression must either be null or a function");
- (subClass.prototype = Object.create(superClass && superClass.prototype, {
- constructor: { value: subClass, writable: !0, configurable: !0 },
- })),
- superClass && _setPrototypeOf(subClass, superClass);
- }
- function _setPrototypeOf(o, p) {
- return (
- (_setPrototypeOf =
- Object.setPrototypeOf ||
- function (o2, p2) {
- return (o2.__proto__ = p2), o2;
- }),
- _setPrototypeOf(o, p)
- );
- }
- var codes = {},
- assert,
- util;
- function createErrorType(code, message, Base) {
- Base || (Base = Error);
- function getMessage(arg1, arg2, arg3) {
- return typeof message == "string" ? message : message(arg1, arg2, arg3);
- }
- var NodeError = /* @__PURE__ */ (function (_Base) {
- _inherits(NodeError2, _Base);
- function NodeError2(arg1, arg2, arg3) {
- var _this;
- return (
- _classCallCheck(this, NodeError2),
- (_this = _possibleConstructorReturn(
- this,
- _getPrototypeOf(NodeError2).call(this, getMessage(arg1, arg2, arg3)),
- )),
- (_this.code = code),
- _this
- );
- }
- return NodeError2;
- })(Base);
- codes[code] = NodeError;
- }
- function oneOf(expected, thing) {
- if (Array.isArray(expected)) {
- var len = expected.length;
- return (
- (expected = expected.map(function (i) {
- return String(i);
- })),
- len > 2
- ? "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1]
- : len === 2
- ? "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1])
- : "of ".concat(thing, " ").concat(expected[0])
- );
- } else return "of ".concat(thing, " ").concat(String(expected));
- }
- function startsWith(str, search, pos) {
- return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;
- }
- function endsWith(str, search, this_len) {
- return (
- (this_len === void 0 || this_len > str.length) && (this_len = str.length),
- str.substring(this_len - search.length, this_len) === search
- );
- }
- function includes(str, search, start) {
- return (
- typeof start != "number" && (start = 0),
- start + search.length > str.length ? !1 : str.indexOf(search, start) !== -1
- );
- }
- createErrorType("ERR_AMBIGUOUS_ARGUMENT", 'The "%s" argument is ambiguous. %s', TypeError);
- createErrorType(
- "ERR_INVALID_ARG_TYPE",
- function (name, expected, actual) {
- assert === void 0 && (assert = require_assert()), assert(typeof name == "string", "'name' must be a string");
- var determiner;
- typeof expected == "string" && startsWith(expected, "not ")
- ? ((determiner = "must not be"), (expected = expected.replace(/^not /, "")))
- : (determiner = "must be");
- var msg;
- if (endsWith(name, " argument"))
- msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));
- else {
- var type = includes(name, ".") ? "property" : "argument";
- msg = 'The "'.concat(name, '" ').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));
- }
- return (msg += ". Received type ".concat(_typeof(actual))), msg;
- },
- TypeError,
- );
- createErrorType(
- "ERR_INVALID_ARG_VALUE",
- function (name, value) {
- var reason = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "is invalid";
- util === void 0 && (util = require("util"));
- var inspected = util.inspect(value);
- return (
- inspected.length > 128 && (inspected = "".concat(inspected.slice(0, 128), "...")),
- "The argument '".concat(name, "' ").concat(reason, ". Received ").concat(inspected)
- );
- },
- TypeError,
- RangeError,
- );
- createErrorType(
- "ERR_INVALID_RETURN_VALUE",
- function (input, name, value) {
- var type;
- return (
- value && value.constructor && value.constructor.name
- ? (type = "instance of ".concat(value.constructor.name))
- : (type = "type ".concat(_typeof(value))),
- "Expected ".concat(input, ' to be returned from the "').concat(name, '"') +
- " function but got ".concat(type, ".")
- );
- },
- TypeError,
- );
- createErrorType(
- "ERR_MISSING_ARGS",
- function () {
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
- args[_key] = arguments[_key];
- assert === void 0 && (assert = require_assert()),
- assert(args.length > 0, "At least one arg needs to be specified");
- var msg = "The ",
- len = args.length;
- switch (
- ((args = args.map(function (a) {
- return '"'.concat(a, '"');
- })),
- len)
- ) {
- case 1:
- msg += "".concat(args[0], " argument");
- break;
- case 2:
- msg += "".concat(args[0], " and ").concat(args[1], " arguments");
- break;
- default:
- (msg += args.slice(0, len - 1).join(", ")), (msg += ", and ".concat(args[len - 1], " arguments"));
- break;
- }
- return "".concat(msg, " must be specified");
- },
- TypeError,
- );
- module2.exports.codes = codes;
- },
-});
-
-// assert/build/internal/assert/assertion_error.js
-var require_assertion_error = __commonJS({
- "assert/build/internal/assert/assertion_error.js"(exports, module2) {
- "use strict";
- function _objectSpread(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? arguments[i] : {},
- ownKeys = Object.keys(source);
- typeof Object.getOwnPropertySymbols == "function" &&
- (ownKeys = ownKeys.concat(
- Object.getOwnPropertySymbols(source).filter(function (sym) {
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
- }),
- )),
- ownKeys.forEach(function (key) {
- _defineProperty(target, key, source[key]);
- });
- }
- return target;
- }
- function _defineProperty(obj, key, value) {
- return (
- key in obj
- ? Object.defineProperty(obj, key, {
- value,
- enumerable: !0,
- configurable: !0,
- writable: !0,
- })
- : (obj[key] = value),
- obj
- );
- }
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
- }
- function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- (descriptor.enumerable = descriptor.enumerable || !1),
- (descriptor.configurable = !0),
- "value" in descriptor && (descriptor.writable = !0),
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
- function _createClass(Constructor, protoProps, staticProps) {
- return (
- protoProps && _defineProperties(Constructor.prototype, protoProps),
- staticProps && _defineProperties(Constructor, staticProps),
- Constructor
- );
- }
- function _possibleConstructorReturn(self, call) {
- return call && (_typeof(call) === "object" || typeof call == "function") ? call : _assertThisInitialized(self);
- }
- function _assertThisInitialized(self) {
- if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- return self;
- }
- function _inherits(subClass, superClass) {
- if (typeof superClass != "function" && superClass !== null)
- throw new TypeError("Super expression must either be null or a function");
- (subClass.prototype = Object.create(superClass && superClass.prototype, {
- constructor: { value: subClass, writable: !0, configurable: !0 },
- })),
- superClass && _setPrototypeOf(subClass, superClass);
- }
- function _wrapNativeSuper(Class) {
- var _cache = typeof Map == "function" ? new Map() : void 0;
- return (
- (_wrapNativeSuper = function (Class2) {
- if (Class2 === null || !_isNativeFunction(Class2)) return Class2;
- if (typeof Class2 != "function") throw new TypeError("Super expression must either be null or a function");
- if (typeof _cache != "undefined") {
- if (_cache.has(Class2)) return _cache.get(Class2);
- _cache.set(Class2, Wrapper);
- }
- function Wrapper() {
- return _construct(Class2, arguments, _getPrototypeOf(this).constructor);
- }
- return (
- (Wrapper.prototype = Object.create(Class2.prototype, {
- constructor: {
- value: Wrapper,
- enumerable: !1,
- writable: !0,
- configurable: !0,
- },
- })),
- _setPrototypeOf(Wrapper, Class2)
- );
- }),
- _wrapNativeSuper(Class)
- );
- }
- function isNativeReflectConstruct() {
- if (typeof Reflect == "undefined" || !Reflect.construct || Reflect.construct.sham) return !1;
- if (typeof Proxy == "function") return !0;
- try {
- return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;
- } catch {
- return !1;
- }
- }
- function _construct(Parent, args, Class) {
- return (
- isNativeReflectConstruct()
- ? (_construct = Reflect.construct)
- : (_construct = function (Parent2, args2, Class2) {
- var a = [null];
- a.push.apply(a, args2);
- var Constructor = Function.bind.apply(Parent2, a),
- instance = new Constructor();
- return Class2 && _setPrototypeOf(instance, Class2.prototype), instance;
- }),
- _construct.apply(null, arguments)
- );
- }
- function _isNativeFunction(fn) {
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
- }
- function _setPrototypeOf(o, p) {
- return (
- (_setPrototypeOf =
- Object.setPrototypeOf ||
- function (o2, p2) {
- return (o2.__proto__ = p2), o2;
- }),
- _setPrototypeOf(o, p)
- );
- }
- function _getPrototypeOf(o) {
- return (
- (_getPrototypeOf = Object.setPrototypeOf
- ? Object.getPrototypeOf
- : function (o2) {
- return o2.__proto__ || Object.getPrototypeOf(o2);
- }),
- _getPrototypeOf(o)
- );
- }
- function _typeof(obj) {
- return (
- typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
- ? (_typeof = function (obj2) {
- return typeof obj2;
- })
- : (_typeof = function (obj2) {
- return obj2 && typeof Symbol == "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype
- ? "symbol"
- : typeof obj2;
- }),
- _typeof(obj)
- );
- }
- var _require = require("util"),
- inspect = _require.inspect,
- _require2 = require_errors(),
- ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;
- function endsWith(str, search, this_len) {
- return (
- (this_len === void 0 || this_len > str.length) && (this_len = str.length),
- str.substring(this_len - search.length, this_len) === search
- );
- }
- function repeat(str, count) {
- if (((count = Math.floor(count)), str.length == 0 || count == 0)) return "";
- var maxCount = str.length * count;
- for (count = Math.floor(Math.log(count) / Math.log(2)); count; ) (str += str), count--;
- return (str += str.substring(0, maxCount - str.length)), str;
- }
- var blue = "",
- green = "",
- red = "",
- white = "",
- kReadableOperator = {
- deepStrictEqual: "Expected values to be strictly deep-equal:",
- strictEqual: "Expected values to be strictly equal:",
- strictEqualObject: 'Expected "actual" to be reference-equal to "expected":',
- deepEqual: "Expected values to be loosely deep-equal:",
- equal: "Expected values to be loosely equal:",
- notDeepStrictEqual: 'Expected "actual" not to be strictly deep-equal to:',
- notStrictEqual: 'Expected "actual" to be strictly unequal to:',
- notStrictEqualObject: 'Expected "actual" not to be reference-equal to "expected":',
- notDeepEqual: 'Expected "actual" not to be loosely deep-equal to:',
- notEqual: 'Expected "actual" to be loosely unequal to:',
- notIdentical: "Values identical but not reference-equal:",
- },
- kMaxShortLength = 10;
- function copyError(source) {
- var keys = Object.keys(source),
- target = Object.create(Object.getPrototypeOf(source));
- return (
- keys.forEach(function (key) {
- target[key] = source[key];
- }),
- Object.defineProperty(target, "message", {
- value: source.message,
- }),
- target
- );
- }
- function inspectValue(val) {
- return inspect(val, {
- compact: !1,
- customInspect: !1,
- depth: 1e3,
- maxArrayLength: 1 / 0,
- showHidden: !1,
- breakLength: 1 / 0,
- showProxy: !1,
- sorted: !0,
- getters: !0,
- });
- }
- function createErrDiff(actual, expected, operator) {
- var other = "",
- res = "",
- lastPos = 0,
- end = "",
- skipped = !1,
- actualInspected = inspectValue(actual),
- actualLines = actualInspected.split(`
-`),
- expectedLines = inspectValue(expected).split(`
-`),
- i = 0,
- indicator = "";
- if (
- (operator === "strictEqual" &&
- _typeof(actual) === "object" &&
- _typeof(expected) === "object" &&
- actual !== null &&
- expected !== null &&
- (operator = "strictEqualObject"),
- actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0])
- ) {
- var inputLength = actualLines[0].length + expectedLines[0].length;
- if (inputLength <= kMaxShortLength) {
- if (
- (_typeof(actual) !== "object" || actual === null) &&
- (_typeof(expected) !== "object" || expected === null) &&
- (actual !== 0 || expected !== 0)
- )
- return (
- "".concat(
- kReadableOperator[operator],
- `
-
-`,
- ) +
- "".concat(actualLines[0], " !== ").concat(
- expectedLines[0],
- `
-`,
- )
- );
- } else if (operator !== "strictEqualObject") {
- var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;
- if (inputLength < maxLength) {
- for (; actualLines[0][i] === expectedLines[0][i]; ) i++;
- i > 2 &&
- ((indicator = `
- `.concat(repeat(" ", i), "^")),
- (i = 0));
- }
- }
- }
- for (
- var a = actualLines[actualLines.length - 1], b = expectedLines[expectedLines.length - 1];
- a === b &&
- (i++ < 2
- ? (end = `
- `
- .concat(a)
- .concat(end))
- : (other = a),
- actualLines.pop(),
- expectedLines.pop(),
- !(actualLines.length === 0 || expectedLines.length === 0));
-
- )
- (a = actualLines[actualLines.length - 1]), (b = expectedLines[expectedLines.length - 1]);
- var maxLines = Math.max(actualLines.length, expectedLines.length);
- if (maxLines === 0) {
- var _actualLines = actualInspected.split(`
-`);
- if (_actualLines.length > 30)
- for (_actualLines[26] = "".concat(blue, "...").concat(white); _actualLines.length > 27; ) _actualLines.pop();
- return ""
- .concat(
- kReadableOperator.notIdentical,
- `
-
-`,
- )
- .concat(
- _actualLines.join(`
-`),
- `
-`,
- );
- }
- i > 3 &&
- ((end = `
-`
- .concat(blue, "...")
- .concat(white)
- .concat(end)),
- (skipped = !0)),
- other !== "" &&
- ((end = `
- `
- .concat(other)
- .concat(end)),
- (other = ""));
- var printedLines = 0,
- msg =
- kReadableOperator[operator] +
- `
-`
- .concat(green, "+ actual")
- .concat(white, " ")
- .concat(red, "- expected")
- .concat(white),
- skippedMsg = " ".concat(blue, "...").concat(white, " Lines skipped");
- for (i = 0; i < maxLines; i++) {
- var cur = i - lastPos;
- if (actualLines.length < i + 1)
- cur > 1 &&
- i > 2 &&
- (cur > 4
- ? ((res += `
-`
- .concat(blue, "...")
- .concat(white)),
- (skipped = !0))
- : cur > 3 &&
- ((res += `
- `.concat(expectedLines[i - 2])),
- printedLines++),
- (res += `
- `.concat(expectedLines[i - 1])),
- printedLines++),
- (lastPos = i),
- (other += `
-`
- .concat(red, "-")
- .concat(white, " ")
- .concat(expectedLines[i])),
- printedLines++;
- else if (expectedLines.length < i + 1)
- cur > 1 &&
- i > 2 &&
- (cur > 4
- ? ((res += `
-`
- .concat(blue, "...")
- .concat(white)),
- (skipped = !0))
- : cur > 3 &&
- ((res += `
- `.concat(actualLines[i - 2])),
- printedLines++),
- (res += `
- `.concat(actualLines[i - 1])),
- printedLines++),
- (lastPos = i),
- (res += `
-`
- .concat(green, "+")
- .concat(white, " ")
- .concat(actualLines[i])),
- printedLines++;
- else {
- var expectedLine = expectedLines[i],
- actualLine = actualLines[i],
- divergingLines =
- actualLine !== expectedLine && (!endsWith(actualLine, ",") || actualLine.slice(0, -1) !== expectedLine);
- divergingLines &&
- endsWith(expectedLine, ",") &&
- expectedLine.slice(0, -1) === actualLine &&
- ((divergingLines = !1), (actualLine += ",")),
- divergingLines
- ? (cur > 1 &&
- i > 2 &&
- (cur > 4
- ? ((res += `
-`
- .concat(blue, "...")
- .concat(white)),
- (skipped = !0))
- : cur > 3 &&
- ((res += `
- `.concat(actualLines[i - 2])),
- printedLines++),
- (res += `
- `.concat(actualLines[i - 1])),
- printedLines++),
- (lastPos = i),
- (res += `
-`
- .concat(green, "+")
- .concat(white, " ")
- .concat(actualLine)),
- (other += `
-`
- .concat(red, "-")
- .concat(white, " ")
- .concat(expectedLine)),
- (printedLines += 2))
- : ((res += other),
- (other = ""),
- (cur === 1 || i === 0) &&
- ((res += `
- `.concat(actualLine)),
- printedLines++));
- }
- if (printedLines > 20 && i < maxLines - 2)
- return (
- ""
- .concat(msg)
- .concat(
- skippedMsg,
- `
-`,
- )
- .concat(
- res,
- `
-`,
- )
- .concat(blue, "...")
- .concat(white)
- .concat(
- other,
- `
-`,
- ) + "".concat(blue, "...").concat(white)
- );
- }
- return ""
- .concat(msg)
- .concat(
- skipped ? skippedMsg : "",
- `
-`,
- )
- .concat(res)
- .concat(other)
- .concat(end)
- .concat(indicator);
- }
- var AssertionError = /* @__PURE__ */ (function (_Error) {
- _inherits(AssertionError2, _Error);
- function AssertionError2(options) {
- var _this;
- if ((_classCallCheck(this, AssertionError2), _typeof(options) !== "object" || options === null))
- throw new ERR_INVALID_ARG_TYPE("options", "Object", options);
- var message = options.message,
- operator = options.operator,
- stackStartFn = options.stackStartFn,
- actual = options.actual,
- expected = options.expected,
- limit = Error.stackTraceLimit;
- if (((Error.stackTraceLimit = 0), message != null))
- _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError2).call(this, String(message)));
- else if (
- (process.stderr &&
- process.stderr.isTTY &&
- (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1
- ? ((blue = ""), (green = ""), (white = ""), (red = ""))
- : ((blue = ""), (green = ""), (white = ""), (red = ""))),
- _typeof(actual) === "object" &&
- actual !== null &&
- _typeof(expected) === "object" &&
- expected !== null &&
- "stack" in actual &&
- actual instanceof Error &&
- "stack" in expected &&
- expected instanceof Error &&
- ((actual = copyError(actual)), (expected = copyError(expected))),
- operator === "deepStrictEqual" || operator === "strictEqual")
- )
- _this = _possibleConstructorReturn(
- this,
- _getPrototypeOf(AssertionError2).call(this, createErrDiff(actual, expected, operator)),
- );
- else if (operator === "notDeepStrictEqual" || operator === "notStrictEqual") {
- var base = kReadableOperator[operator],
- res = inspectValue(actual).split(`
-`);
- if (
- (operator === "notStrictEqual" &&
- _typeof(actual) === "object" &&
- actual !== null &&
- (base = kReadableOperator.notStrictEqualObject),
- res.length > 30)
- )
- for (res[26] = "".concat(blue, "...").concat(white); res.length > 27; ) res.pop();
- res.length === 1
- ? (_this = _possibleConstructorReturn(
- this,
- _getPrototypeOf(AssertionError2).call(this, "".concat(base, " ").concat(res[0])),
- ))
- : (_this = _possibleConstructorReturn(
- this,
- _getPrototypeOf(AssertionError2).call(
- this,
- ""
- .concat(
- base,
- `
-
-`,
- )
- .concat(
- res.join(`
-`),
- `
-`,
- ),
- ),
- ));
- } else {
- var _res = inspectValue(actual),
- other = "",
- knownOperators = kReadableOperator[operator];
- operator === "notDeepEqual" || operator === "notEqual"
- ? ((_res = ""
- .concat(
- kReadableOperator[operator],
- `
-
-`,
- )
- .concat(_res)),
- _res.length > 1024 && (_res = "".concat(_res.slice(0, 1021), "...")))
- : ((other = "".concat(inspectValue(expected))),
- _res.length > 512 && (_res = "".concat(_res.slice(0, 509), "...")),
- other.length > 512 && (other = "".concat(other.slice(0, 509), "...")),
- operator === "deepEqual" || operator === "equal"
- ? (_res = ""
- .concat(
- knownOperators,
- `
-
-`,
- )
- .concat(
- _res,
- `
-
-should equal
-
-`,
- ))
- : (other = " ".concat(operator, " ").concat(other))),
- (_this = _possibleConstructorReturn(
- this,
- _getPrototypeOf(AssertionError2).call(this, "".concat(_res).concat(other)),
- ));
- }
- return (
- (Error.stackTraceLimit = limit),
- (_this.generatedMessage = !message),
- Object.defineProperty(_assertThisInitialized(_this), "name", {
- value: "AssertionError [ERR_ASSERTION]",
- enumerable: !1,
- writable: !0,
- configurable: !0,
- }),
- (_this.code = "ERR_ASSERTION"),
- (_this.actual = actual),
- (_this.expected = expected),
- (_this.operator = operator),
- Error.captureStackTrace && Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn),
- _this.stack,
- (_this.name = "AssertionError"),
- _possibleConstructorReturn(_this)
- );
- }
- return (
- _createClass(AssertionError2, [
- {
- key: "toString",
- value: function () {
- return "".concat(this.name, " [").concat(this.code, "]: ").concat(this.message);
- },
- },
- {
- key: inspect.custom,
- value: function (recurseTimes, ctx) {
- return inspect(
- this,
- _objectSpread({}, ctx, {
- customInspect: !1,
- depth: 0,
- }),
- );
- },
- },
- ]),
- AssertionError2
- );
- })(_wrapNativeSuper(Error));
- module2.exports = AssertionError;
- },
-});
-
-// assert/build/assert.js
-var require_assert = __commonJS({
- "assert/build/assert.js"(exports, module2) {
- "use strict";
- function _typeof(obj) {
- return (
- typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
- ? (_typeof = function (obj2) {
- return typeof obj2;
- })
- : (_typeof = function (obj2) {
- return obj2 && typeof Symbol == "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype
- ? "symbol"
- : typeof obj2;
- }),
- _typeof(obj)
- );
- }
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
- }
- var _require = require_errors(),
- _require$codes = _require.codes,
- ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,
- ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
- ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,
- ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,
- ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,
- AssertionError = require_assertion_error(),
- _require2 = require("util"),
- inspect = _require2.inspect,
- _require$types = require("util").types,
- isPromise = _require$types.isPromise,
- isRegExp = _require$types.isRegExp,
- objectAssign = Object.assign,
- objectIs = Object.is,
- errorCache = new Map();
-
- var warned = !1,
- assert = (module2.exports = ok),
- NO_EXCEPTION_SENTINEL = {};
- function innerFail(obj) {
- throw obj.message instanceof Error ? obj.message : new AssertionError(obj);
- }
- function fail(actual, expected, message, operator, stackStartFn) {
- var argsLen = arguments.length,
- internalMessage;
- if (argsLen === 0) internalMessage = "Failed";
- else if (argsLen === 1) (message = actual), (actual = void 0);
- else {
- if (warned === !1) {
- warned = !0;
- var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);
- warn(
- "assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.",
- "DeprecationWarning",
- "DEP0094",
- );
- }
- argsLen === 2 && (operator = "!=");
- }
- if (message instanceof Error) throw message;
- var errArgs = {
- actual,
- expected,
- operator: operator === void 0 ? "fail" : operator,
- stackStartFn: stackStartFn || fail,
- };
- message !== void 0 && (errArgs.message = message);
- var err = new AssertionError(errArgs);
- throw (internalMessage && ((err.message = internalMessage), (err.generatedMessage = !0)), err);
- }
- assert.fail = fail;
- assert.AssertionError = AssertionError;
- function innerOk(fn, argLen, value, message) {
- if (!value) {
- var generatedMessage = !1;
- if (argLen === 0) (generatedMessage = !0), (message = "No value argument passed to `assert.ok()`");
- else if (message instanceof Error) throw message;
- var err = new AssertionError({
- actual: value,
- expected: !0,
- message,
- operator: "==",
- stackStartFn: fn,
- });
- throw ((err.generatedMessage = generatedMessage), err);
- }
- }
- function ok() {
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
- args[_key] = arguments[_key];
- innerOk.apply(void 0, [ok, args.length].concat(args));
- }
- assert.ok = ok;
- assert.equal = function equal(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
- actual != expected &&
- innerFail({
- actual,
- expected,
- message,
- operator: "==",
- stackStartFn: equal,
- });
- };
- assert.notEqual = function notEqual(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
- actual == expected &&
- innerFail({
- actual,
- expected,
- message,
- operator: "!=",
- stackStartFn: notEqual,
- });
- };
- assert.deepEqual = function deepEqual(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
- isDeepEqual(actual, expected, false) ||
- innerFail({
- actual,
- expected,
- message,
- operator: "deepEqual",
- stackStartFn: deepEqual,
- });
- };
- assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
- isDeepEqual(actual, expected, false) &&
- innerFail({
- actual,
- expected,
- message,
- operator: "notDeepEqual",
- stackStartFn: notDeepEqual,
- });
- };
- assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
-
- isDeepEqual(actual, expected, true) ||
- innerFail({
- actual,
- expected,
- message,
- operator: "deepStrictEqual",
- stackStartFn: deepStrictEqual,
- });
- };
- assert.notDeepStrictEqual = notDeepStrictEqual;
- function notDeepStrictEqual(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
-
- isDeepEqual(actual, expected, true) &&
- innerFail({
- actual,
- expected,
- message,
- operator: "notDeepStrictEqual",
- stackStartFn: notDeepStrictEqual,
- });
- }
- assert.strictEqual = function strictEqual(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
- objectIs(actual, expected) ||
- innerFail({
- actual,
- expected,
- message,
- operator: "strictEqual",
- stackStartFn: strictEqual,
- });
- };
- assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
- objectIs(actual, expected) &&
- innerFail({
- actual,
- expected,
- message,
- operator: "notStrictEqual",
- stackStartFn: notStrictEqual,
- });
- };
- assert.match = function match(actual, expected, message) {
- if (arguments.length < 2) throw new ERR_MISSING_ARGS("actual", "expected");
- if (!isRegExp(expected)) throw new ERR_INVALID_ARG_TYPE("expected", "RegExp", expected);
- expected.test(actual) ||
- innerFail({
- actual,
- expected,
- message,
- operator: "match",
- stackStartFn: match,
- });
- };
- var Comparison = function Comparison2(obj, keys, actual) {
- var _this = this;
- _classCallCheck(this, Comparison2),
- keys.forEach(function (key) {
- key in obj &&
- (actual !== void 0 && typeof actual[key] == "string" && isRegExp(obj[key]) && obj[key].test(actual[key])
- ? (_this[key] = actual[key])
- : (_this[key] = obj[key]));
- });
- };
- function compareExceptionKey(actual, expected, key, message, keys, fn) {
- if (!(key in actual) || !isDeepEqual(actual[key], expected[key], true)) {
- if (!message) {
- var a = new Comparison(actual, keys),
- b = new Comparison(expected, keys, actual),
- err = new AssertionError({
- actual: a,
- expected: b,
- operator: "deepStrictEqual",
- stackStartFn: fn,
- });
- throw ((err.actual = actual), (err.expected = expected), (err.operator = fn.name), err);
- }
- innerFail({
- actual,
- expected,
- message,
- operator: fn.name,
- stackStartFn: fn,
- });
- }
- }
- function expectedException(actual, expected, msg, fn) {
- if (typeof expected != "function") {
- if (isRegExp(expected)) return expected.test(actual);
- if (arguments.length === 2) throw new ERR_INVALID_ARG_TYPE("expected", ["Function", "RegExp"], expected);
- if (_typeof(actual) !== "object" || actual === null) {
- var err = new AssertionError({
- actual,
- expected,
- message: msg,
- operator: "deepStrictEqual",
- stackStartFn: fn,
- });
- throw ((err.operator = fn.name), err);
- }
- var keys = Object.keys(expected);
- if (expected instanceof Error) keys.push("name", "message");
- else if (keys.length === 0) throw new ERR_INVALID_ARG_VALUE("error", expected, "may not be an empty object");
- return (
- keys.forEach(function (key) {
- return (
- (typeof actual[key] == "string" && isRegExp(expected[key]) && expected[key].test(actual[key])) ||
- compareExceptionKey(actual, expected, key, msg, keys, fn)
- );
- }),
- !0
- );
- }
- return expected.prototype !== void 0 && actual instanceof expected
- ? !0
- : Error.isPrototypeOf(expected)
- ? !1
- : expected.call({}, actual) === !0;
- }
- function getActual(fn) {
- if (typeof fn != "function") throw new ERR_INVALID_ARG_TYPE("fn", "Function", fn);
- try {
- fn();
- } catch (e) {
- return e;
- }
- return NO_EXCEPTION_SENTINEL;
- }
- function checkIsPromise(obj) {
- return (
- isPromise(obj) ||
- (obj !== null && _typeof(obj) === "object" && typeof obj.then == "function" && typeof obj.catch == "function")
- );
- }
- function waitForActual(promiseFn) {
- return Promise.resolve().then(function () {
- var resultPromise;
- if (typeof promiseFn == "function") {
- if (((resultPromise = promiseFn()), !checkIsPromise(resultPromise)))
- throw new ERR_INVALID_RETURN_VALUE("instance of Promise", "promiseFn", resultPromise);
- } else if (checkIsPromise(promiseFn)) resultPromise = promiseFn;
- else throw new ERR_INVALID_ARG_TYPE("promiseFn", ["Function", "Promise"], promiseFn);
- return Promise.resolve()
- .then(function () {
- return resultPromise;
- })
- .then(function () {
- return NO_EXCEPTION_SENTINEL;
- })
- .catch(function (e) {
- return e;
- });
- });
- }
- function expectsError(stackStartFn, actual, error, message) {
- if (typeof error == "string") {
- if (arguments.length === 4)
- throw new ERR_INVALID_ARG_TYPE("error", ["Object", "Error", "Function", "RegExp"], error);
- if (_typeof(actual) === "object" && actual !== null) {
- if (actual.message === error)
- throw new ERR_AMBIGUOUS_ARGUMENT(
- "error/message",
- 'The error message "'.concat(actual.message, '" is identical to the message.'),
- );
- } else if (actual === error)
- throw new ERR_AMBIGUOUS_ARGUMENT(
- "error/message",
- 'The error "'.concat(actual, '" is identical to the message.'),
- );
- (message = error), (error = void 0);
- } else if (error != null && _typeof(error) !== "object" && typeof error != "function")
- throw new ERR_INVALID_ARG_TYPE("error", ["Object", "Error", "Function", "RegExp"], error);
- if (actual === NO_EXCEPTION_SENTINEL) {
- var details = "";
- error && error.name && (details += " (".concat(error.name, ")")),
- (details += message ? ": ".concat(message) : ".");
- var fnType = stackStartFn.name === "rejects" ? "rejection" : "exception";
- innerFail({
- actual: void 0,
- expected: error,
- operator: stackStartFn.name,
- message: "Missing expected ".concat(fnType).concat(details),
- stackStartFn,
- });
- }
- if (error && !expectedException(actual, error, message, stackStartFn)) throw actual;
- }
- function expectsNoError(stackStartFn, actual, error, message) {
- if (actual !== NO_EXCEPTION_SENTINEL) {
- if (
- (typeof error == "string" && ((message = error), (error = void 0)),
- !error || expectedException(actual, error))
- ) {
- var details = message ? ": ".concat(message) : ".",
- fnType = stackStartFn.name === "doesNotReject" ? "rejection" : "exception";
- innerFail({
- actual,
- expected: error,
- operator: stackStartFn.name,
- message:
- "Got unwanted ".concat(fnType).concat(
- details,
- `
-`,
- ) + 'Actual message: "'.concat(actual && actual.message, '"'),
- stackStartFn,
- });
- }
- throw actual;
- }
- }
- assert.throws = function throws(promiseFn) {
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++)
- args[_key2 - 1] = arguments[_key2];
- expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));
- };
- assert.rejects = function rejects(promiseFn) {
- for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++)
- args[_key3 - 1] = arguments[_key3];
- return waitForActual(promiseFn).then(function (result) {
- return expectsError.apply(void 0, [rejects, result].concat(args));
- });
- };
- assert.doesNotThrow = function doesNotThrow(fn) {
- for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++)
- args[_key4 - 1] = arguments[_key4];
- expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));
- };
- assert.doesNotReject = function doesNotReject(fn) {
- for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++)
- args[_key5 - 1] = arguments[_key5];
- return waitForActual(fn).then(function (result) {
- return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));
- });
- };
- assert.ifError = function ifError(err) {
- if (err != null) {
- var message = "ifError got unwanted exception: ";
- _typeof(err) === "object" && typeof err.message == "string"
- ? err.message.length === 0 && err.constructor
- ? (message += err.constructor.name)
- : (message += err.message)
- : (message += inspect(err));
- var newErr = new AssertionError({
- actual: err,
- expected: null,
- operator: "ifError",
- message,
- stackStartFn: ifError,
- }),
- origStack = err.stack;
- if (typeof origStack == "string") {
- var tmp2 = origStack.split(`
-`);
- tmp2.shift();
- for (
- var tmp1 = newErr.stack.split(`
-`),
- i = 0;
- i < tmp2.length;
- i++
- ) {
- var pos = tmp1.indexOf(tmp2[i]);
- if (pos !== -1) {
- tmp1 = tmp1.slice(0, pos);
- break;
- }
- }
- newErr.stack = ""
- .concat(
- tmp1.join(`
-`),
- `
-`,
- )
- .concat(
- tmp2.join(`
-`),
- );
- }
- throw newErr;
- }
- };
- function strict() {
- for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++)
- args[_key6] = arguments[_key6];
- innerOk.apply(void 0, [strict, args.length].concat(args));
- }
- assert.strict = objectAssign(strict, assert, {
- equal: assert.strictEqual,
- deepEqual: assert.deepStrictEqual,
- notEqual: assert.notStrictEqual,
- notDeepEqual: assert.notDeepStrictEqual,
- });
- assert.strict.strict = assert.strict;
- },
-});
-var assert_module = require_assert();
-
-function CallTracker() {
- throw new Error("CallTracker is not supported yet");
-}
-
-assert_module[Symbol.for("CommonJS")] = 0;
-assert_module["CallTracker"] = CallTracker;
-export var {
- AssertionError,
- assert,
- deepEqual,
- deepStrictEqual,
- doesNotReject,
- doesNotThrow,
- equal,
- fail,
- ifError,
- notDeepEqual,
- notDeepStrictEqual,
- notEqual,
- notStrictEqual,
- ok,
- rejects,
- strict,
- strictEqual,
- throws,
-} = assert_module;
-export default assert_module;
diff --git a/src/bun.js/assert_strict.exports.js b/src/bun.js/assert_strict.exports.js
deleted file mode 100644
index 619986113..000000000
--- a/src/bun.js/assert_strict.exports.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var { strict: strictBase } = import.meta.require("node:assert");
-
-export var {
- fail,
- AssertionError,
- ok,
- equal,
- notEqual,
- deepEqual,
- notDeepEqual,
- deepStrictEqual,
- notDeepStrictEqual,
- strictEqual,
- notStrictEqual,
- throws,
- rejects,
- doesNotThrow,
- doesNotReject,
- ifError,
- match,
- doesNotMatch,
- CallTracker,
-} = strictBase;
-
-const defaultObject = {
- fail,
- AssertionError,
- ok,
- equal,
- notEqual,
- deepEqual,
- notDeepEqual,
- deepStrictEqual,
- notDeepStrictEqual,
- strictEqual,
- notStrictEqual,
- throws,
- rejects,
- doesNotThrow,
- doesNotReject,
- ifError,
- match,
- doesNotMatch,
- CallTracker,
- [Symbol.for("CommonJS")]: 0,
-};
-
-export { defaultObject as default, strictBase as strict };
diff --git a/src/bun.js/async_hooks.exports.js b/src/bun.js/async_hooks.exports.js
deleted file mode 100644
index 055159934..000000000
--- a/src/bun.js/async_hooks.exports.js
+++ /dev/null
@@ -1,213 +0,0 @@
-var drainMicrotasks = () => {
- ({ drainMicrotasks } = import.meta.require("bun:jsc"));
- drainMicrotasks();
-};
-
-var notImplemented = () => {
- console.warn("[bun]: async_hooks has not been implemented yet :(");
- notImplemented = () => {};
-};
-
-class AsyncLocalStorage {
- #store;
- _enabled;
-
- constructor() {
- this._enabled = false;
- this.#store = null;
- }
-
- enterWith(store) {
- this.#store = store;
- notImplemented();
-
- return this;
- }
-
- exit(cb, ...args) {
- this.#store = null;
- notImplemented();
- typeof cb === "function" && cb(...args);
- }
-
- run(store, callback, ...args) {
- if (typeof callback !== "function") throw new TypeError("ERR_INVALID_CALLBACK");
- var result, err;
-
- process.nextTick(store => {
- const prev = this.#store;
- this.enterWith(store);
- try {
- result = callback(...args);
- } catch (e) {
- err = e;
- } finally {
- this.#store = prev;
- }
- }, store);
- drainMicrotasks();
- if (typeof err !== "undefined") {
- throw err;
- }
- return result;
- }
-
- getStore() {
- return this.#store;
- }
-}
-
-function createHook() {
- return {
- enable() {
- notImplemented();
- },
- disable() {
- notImplemented();
- },
- };
-}
-
-function executionAsyncId() {
- return 0;
-}
-
-function triggerAsyncId() {
- return 0;
-}
-
-function executionAsyncResource() {
- return null;
-}
-
-const asyncWrapProviders = {
- NONE: 0,
- DIRHANDLE: 1,
- DNSCHANNEL: 2,
- ELDHISTOGRAM: 3,
- FILEHANDLE: 4,
- FILEHANDLECLOSEREQ: 5,
- FIXEDSIZEBLOBCOPY: 6,
- FSEVENTWRAP: 7,
- FSREQCALLBACK: 8,
- FSREQPROMISE: 9,
- GETADDRINFOREQWRAP: 10,
- GETNAMEINFOREQWRAP: 11,
- HEAPSNAPSHOT: 12,
- HTTP2SESSION: 13,
- HTTP2STREAM: 14,
- HTTP2PING: 15,
- HTTP2SETTINGS: 16,
- HTTPINCOMINGMESSAGE: 17,
- HTTPCLIENTREQUEST: 18,
- JSSTREAM: 19,
- JSUDPWRAP: 20,
- MESSAGEPORT: 21,
- PIPECONNECTWRAP: 22,
- PIPESERVERWRAP: 23,
- PIPEWRAP: 24,
- PROCESSWRAP: 25,
- PROMISE: 26,
- QUERYWRAP: 27,
- SHUTDOWNWRAP: 28,
- SIGNALWRAP: 29,
- STATWATCHER: 30,
- STREAMPIPE: 31,
- TCPCONNECTWRAP: 32,
- TCPSERVERWRAP: 33,
- TCPWRAP: 34,
- TTYWRAP: 35,
- UDPSENDWRAP: 36,
- UDPWRAP: 37,
- SIGINTWATCHDOG: 38,
- WORKER: 39,
- WORKERHEAPSNAPSHOT: 40,
- WRITEWRAP: 41,
- ZLIB: 42,
- CHECKPRIMEREQUEST: 43,
- PBKDF2REQUEST: 44,
- KEYPAIRGENREQUEST: 45,
- KEYGENREQUEST: 46,
- KEYEXPORTREQUEST: 47,
- CIPHERREQUEST: 48,
- DERIVEBITSREQUEST: 49,
- HASHREQUEST: 50,
- RANDOMBYTESREQUEST: 51,
- RANDOMPRIMEREQUEST: 52,
- SCRYPTREQUEST: 53,
- SIGNREQUEST: 54,
- TLSWRAP: 55,
- VERIFYREQUEST: 56,
- INSPECTORJSBINDING: 57,
-};
-
-class AsyncResource {
- constructor(type, triggerAsyncId) {
- this.type = type;
- this.triggerAsyncId = triggerAsyncId;
-
- if (AsyncResource.allowedRunInAsyncScope.has(type)) {
- this.runInAsyncScope = this.#runInAsyncScope;
- }
- }
-
- type;
- triggerAsyncId;
-
- // We probably will not fully support AsyncResource
- // But some packages in the wild do depend on it
- static allowedRunInAsyncScope = new Set(["prisma-client-request"]);
-
- emitBefore() {
- return true;
- }
-
- emitAfter() {
- return true;
- }
-
- emitDestroy() {}
-
- runInAsyncScope;
-
- #runInAsyncScope(fn, ...args) {
- notImplemented();
- var result, err;
- process.nextTick(fn => {
- try {
- result = fn(...args);
- } catch (err2) {
- err = err2;
- }
- }, fn);
- drainMicrotasks();
- if (err) throw err;
- return result;
- }
-
- asyncId() {
- return 0;
- }
-}
-
-export {
- AsyncLocalStorage,
- createHook,
- executionAsyncId,
- triggerAsyncId,
- executionAsyncResource,
- asyncWrapProviders,
- AsyncResource,
-};
-
-export default {
- AsyncLocalStorage,
- createHook,
- executionAsyncId,
- triggerAsyncId,
- executionAsyncResource,
- asyncWrapProviders,
- AsyncResource,
- [Symbol.toStringTag]: "Module (not implemented yet)",
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/bindings/exports.zig b/src/bun.js/bindings/exports.zig
index 3b1f7e014..94a517bea 100644
--- a/src/bun.js/bindings/exports.zig
+++ b/src/bun.js/bindings/exports.zig
@@ -222,7 +222,7 @@ pub const ResolvedSource = extern struct {
@"node:buffer" = 1024,
@"node:process" = 1025,
- @"bun:events_native" = 1026,
+ @"bun:events_native" = 1026, // native version of EventEmitter used for streams
@"node:string_decoder" = 1027,
@"node:module" = 1028,
@"node:tty" = 1029,
diff --git a/src/bun.js/bindings/sqlite/sqlite.exports.js b/src/bun.js/bindings/sqlite/sqlite.exports.js
deleted file mode 100644
index b64ec1508..000000000
--- a/src/bun.js/bindings/sqlite/sqlite.exports.js
+++ /dev/null
@@ -1,432 +0,0 @@
-var symbolFor = Symbol.for;
-
-const lazy = globalThis[symbolFor("Bun.lazy")];
-if (!lazy || typeof lazy !== "function") {
- throw new Error("Something went wrong while loading Bun. Expected 'Bun.lazy' to be defined.");
-}
-
-var defineProperties = Object.defineProperties;
-
-var toStringTag = Symbol.toStringTag;
-var apply = Function.prototype.apply;
-var isArray = Array.isArray;
-var isTypedArray = ArrayBuffer.isView;
-export const constants = {
- SQLITE_OPEN_READONLY: 0x00000001 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_READWRITE: 0x00000002 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_CREATE: 0x00000004 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_DELETEONCLOSE: 0x00000008 /* VFS only */,
- SQLITE_OPEN_EXCLUSIVE: 0x00000010 /* VFS only */,
- SQLITE_OPEN_AUTOPROXY: 0x00000020 /* VFS only */,
- SQLITE_OPEN_URI: 0x00000040 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_MEMORY: 0x00000080 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_MAIN_DB: 0x00000100 /* VFS only */,
- SQLITE_OPEN_TEMP_DB: 0x00000200 /* VFS only */,
- SQLITE_OPEN_TRANSIENT_DB: 0x00000400 /* VFS only */,
- SQLITE_OPEN_MAIN_JOURNAL: 0x00000800 /* VFS only */,
- SQLITE_OPEN_TEMP_JOURNAL: 0x00001000 /* VFS only */,
- SQLITE_OPEN_SUBJOURNAL: 0x00002000 /* VFS only */,
- SQLITE_OPEN_SUPER_JOURNAL: 0x00004000 /* VFS only */,
- SQLITE_OPEN_NOMUTEX: 0x00008000 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_FULLMUTEX: 0x00010000 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_SHAREDCACHE: 0x00020000 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_PRIVATECACHE: 0x00040000 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_WAL: 0x00080000 /* VFS only */,
- SQLITE_OPEN_NOFOLLOW: 0x01000000 /* Ok for sqlite3_open_v2() */,
- SQLITE_OPEN_EXRESCODE: 0x02000000 /* Extended result codes */,
- SQLITE_PREPARE_PERSISTENT: 0x01,
- SQLITE_PREPARE_NORMALIZE: 0x02,
- SQLITE_PREPARE_NO_VTAB: 0x04,
-};
-
-var SQL;
-var _SQL;
-
-var controllers;
-
-export class Statement {
- constructor(raw) {
- this.#raw = raw;
-
- switch (raw.paramsCount) {
- case 0: {
- this.get = this.#getNoArgs;
- this.all = this.#allNoArgs;
- this.values = this.#valuesNoArgs;
- this.run = this.#runNoArgs;
- break;
- }
- default: {
- this.get = this.#get;
- this.all = this.#all;
- this.values = this.#values;
- this.run = this.#run;
- break;
- }
- }
- }
-
- #raw;
-
- get;
- all;
- values;
- run;
- isFinalized = false;
-
- toJSON() {
- return {
- sql: this.native.toString(),
- isFinalized: this.isFinalized,
- paramsCount: this.paramsCount,
- columnNames: this.columnNames,
- };
- }
-
- get [toStringTag]() {
- return `"${this.native.toString()}"`;
- }
-
- toString() {
- return this.native.toString();
- }
-
- get native() {
- return this.#raw;
- }
-
- #getNoArgs() {
- return this.#raw.get();
- }
-
- #allNoArgs() {
- return this.#raw.all();
- }
-
- #valuesNoArgs() {
- return this.#raw.values();
- }
-
- #runNoArgs() {
- this.#raw.run();
- }
-
- #get(...args) {
- if (args.length === 0) return this.#getNoArgs();
- var arg0 = args[0];
- // ["foo"] => ["foo"]
- // ("foo") => ["foo"]
- // (Uint8Array(1024)) => [Uint8Array]
- // (123) => [123]
- return !isArray(arg0) && (!arg0 || typeof arg0 !== "object" || isTypedArray(arg0))
- ? this.#raw.get(args)
- : this.#raw.get(...args);
- }
-
- #all(...args) {
- if (args.length === 0) return this.#allNoArgs();
- var arg0 = args[0];
- // ["foo"] => ["foo"]
- // ("foo") => ["foo"]
- // (Uint8Array(1024)) => [Uint8Array]
- // (123) => [123]
- return !isArray(arg0) && (!arg0 || typeof arg0 !== "object" || isTypedArray(arg0))
- ? this.#raw.all(args)
- : this.#raw.all(...args);
- }
-
- #values(...args) {
- if (args.length === 0) return this.#valuesNoArgs();
- var arg0 = args[0];
- // ["foo"] => ["foo"]
- // ("foo") => ["foo"]
- // (Uint8Array(1024)) => [Uint8Array]
- // (123) => [123]
- return !isArray(arg0) && (!arg0 || typeof arg0 !== "object" || isTypedArray(arg0))
- ? this.#raw.values(args)
- : this.#raw.values(...args);
- }
-
- #run(...args) {
- if (args.length === 0) return this.#runNoArgs();
- var arg0 = args[0];
-
- !isArray(arg0) && (!arg0 || typeof arg0 !== "object" || isTypedArray(arg0))
- ? this.#raw.run(args)
- : this.#raw.run(...args);
- }
-
- get columnNames() {
- return this.#raw.columns;
- }
-
- get paramsCount() {
- return this.#raw.paramsCount;
- }
-
- finalize(...args) {
- this.isFinalized = true;
- return this.#raw.finalize(...args);
- }
-}
-
-var cachedCount = symbolFor("Bun.Database.cache.count");
-export class Database {
- constructor(filenameGiven, options) {
- if (typeof filenameGiven === "undefined") {
- } else if (typeof filenameGiven !== "string") {
- if (isTypedArray(filenameGiven)) {
- this.#handle = Database.deserialize(
- filenameGiven,
- typeof options === "object" && options
- ? !!options.readonly
- : ((options | 0) & constants.SQLITE_OPEN_READONLY) != 0,
- );
- this.filename = ":memory:";
- return;
- }
-
- throw new TypeError(`Expected 'filename' to be a string, got '${typeof filenameGiven}'`);
- }
-
- var filename = typeof filenameGiven === "string" ? filenameGiven.trim() : ":memory:";
- var flags = constants.SQLITE_OPEN_READWRITE | constants.SQLITE_OPEN_CREATE;
- if (typeof options === "object" && options) {
- flags = 0;
-
- if (options.readonly) {
- flags = constants.SQLITE_OPEN_READONLY;
- }
-
- if ("readOnly" in options) throw new TypeError('Misspelled option "readOnly" should be "readonly"');
-
- if (options.create) {
- flags = constants.SQLITE_OPEN_READWRITE | constants.SQLITE_OPEN_CREATE;
- }
-
- if (options.readwrite) {
- flags |= constants.SQLITE_OPEN_READWRITE;
- }
- } else if (typeof options === "number") {
- flags = options;
- }
-
- const anonymous = filename === "" || filename === ":memory:";
- if (anonymous && (flags & constants.SQLITE_OPEN_READONLY) !== 0) {
- throw new Error("Cannot open an anonymous database in read-only mode.");
- }
-
- if (!SQL) {
- _SQL = SQL = lazy("sqlite");
- }
-
- this.#handle = SQL.open(anonymous ? ":memory:" : filename, flags);
- this.filename = filename;
- }
-
- #handle;
- #cachedQueriesKeys = [];
- #cachedQueriesLengths = [];
- #cachedQueriesValues = [];
- filename;
-
- get handle() {
- return this.#handle;
- }
-
- get inTransaction() {
- return SQL.isInTransaction(this.#handle);
- }
-
- static open(filename, options) {
- return new Database(filename, options);
- }
-
- loadExtension(name, entryPoint) {
- return SQL.loadExtension(this.#handle, name, entryPoint);
- }
-
- serialize(optionalName) {
- return SQL.serialize(this.#handle, optionalName || "main");
- }
-
- static deserialize(serialized, isReadOnly = false) {
- if (!SQL) {
- _SQL = SQL = lazy("sqlite");
- }
-
- return SQL.deserialize(serialized, isReadOnly);
- }
-
- static setCustomSQLite(path) {
- if (!SQL) {
- _SQL = SQL = lazy("sqlite");
- }
-
- return SQL.setCustomSQLite(path);
- }
-
- close() {
- this.clearQueryCache();
- return SQL.close(this.#handle);
- }
- clearQueryCache() {
- for (let item of this.#cachedQueriesValues) {
- item.finalize();
- }
- this.#cachedQueriesKeys.length = 0;
- this.#cachedQueriesValues.length = 0;
- this.#cachedQueriesLengths.length = 0;
- }
-
- run(query, ...params) {
- if (params.length === 0) {
- SQL.run(this.#handle, query);
- return;
- }
-
- var arg0 = params[0];
- return !isArray(arg0) && (!arg0 || typeof arg0 !== "object" || isTypedArray(arg0))
- ? SQL.run(this.#handle, query, params)
- : SQL.run(this.#handle, query, ...params);
- }
-
- prepare(query, params, flags) {
- return new Statement(SQL.prepare(this.#handle, query, params, flags || 0));
- }
-
- static MAX_QUERY_CACHE_SIZE = 20;
-
- get [cachedCount]() {
- return this.#cachedQueriesKeys.length;
- }
-
- query(query) {
- if (typeof query !== "string") {
- throw new TypeError(`Expected 'query' to be a string, got '${typeof query}'`);
- }
-
- if (query.length === 0) {
- throw new Error("SQL query cannot be empty.");
- }
-
- // this list should be pretty small
- var index = this.#cachedQueriesLengths.indexOf(query.length);
- while (index !== -1) {
- if (this.#cachedQueriesKeys[index] !== query) {
- index = this.#cachedQueriesLengths.indexOf(query.length, index + 1);
- continue;
- }
-
- var stmt = this.#cachedQueriesValues[index];
- if (stmt.isFinalized) {
- return (this.#cachedQueriesValues[index] = this.prepare(
- query,
- undefined,
- willCache ? constants.SQLITE_PREPARE_PERSISTENT : 0,
- ));
- }
- return stmt;
- }
-
- const willCache = this.#cachedQueriesKeys.length < Database.MAX_QUERY_CACHE_SIZE;
-
- var stmt = this.prepare(query, undefined, willCache ? constants.SQLITE_PREPARE_PERSISTENT : 0);
-
- if (willCache) {
- this.#cachedQueriesKeys.push(query);
- this.#cachedQueriesLengths.push(query.length);
- this.#cachedQueriesValues.push(stmt);
- }
-
- return stmt;
- }
-
- // Code for transactions is largely copied from better-sqlite3
- // https://github.com/JoshuaWise/better-sqlite3/blob/master/lib/methods/transaction.js
- // thank you @JoshuaWise!
- transaction(fn, self) {
- if (typeof fn !== "function") throw new TypeError("Expected first argument to be a function");
-
- const db = this;
- const controller = getController(db, self);
-
- // Each version of the transaction function has these same properties
- const properties = {
- default: { value: wrapTransaction(fn, db, controller.default) },
- deferred: { value: wrapTransaction(fn, db, controller.deferred) },
- immediate: {
- value: wrapTransaction(fn, db, controller.immediate),
- },
- exclusive: {
- value: wrapTransaction(fn, db, controller.exclusive),
- },
- database: { value: this, enumerable: true },
- };
-
- defineProperties(properties.default.value, properties);
- defineProperties(properties.deferred.value, properties);
- defineProperties(properties.immediate.value, properties);
- defineProperties(properties.exclusive.value, properties);
-
- // Return the default version of the transaction function
- return properties.default.value;
- }
-}
-
-Database.prototype.exec = Database.prototype.run;
-
-// Return the database's cached transaction controller, or create a new one
-const getController = (db, self) => {
- let controller = (controllers ||= new WeakMap()).get(db);
- if (!controller) {
- const shared = {
- commit: db.prepare("COMMIT", undefined, 0),
- rollback: db.prepare("ROLLBACK", undefined, 0),
- savepoint: db.prepare("SAVEPOINT `\t_bs3.\t`", undefined, 0),
- release: db.prepare("RELEASE `\t_bs3.\t`", undefined, 0),
- rollbackTo: db.prepare("ROLLBACK TO `\t_bs3.\t`", undefined, 0),
- };
-
- controllers.set(
- db,
- (controller = {
- default: Object.assign({ begin: db.prepare("BEGIN", undefined, 0) }, shared),
- deferred: Object.assign({ begin: db.prepare("BEGIN DEFERRED", undefined, 0) }, shared),
- immediate: Object.assign({ begin: db.prepare("BEGIN IMMEDIATE", undefined, 0) }, shared),
- exclusive: Object.assign({ begin: db.prepare("BEGIN EXCLUSIVE", undefined, 0) }, shared),
- }),
- );
- }
- return controller;
-};
-
-// Return a new transaction function by wrapping the given function
-const wrapTransaction = (fn, db, { begin, commit, rollback, savepoint, release, rollbackTo }) =>
- function transaction(...args) {
- let before, after, undo;
- if (db.inTransaction) {
- before = savepoint;
- after = release;
- undo = rollbackTo;
- } else {
- before = begin;
- after = commit;
- undo = rollback;
- }
- try {
- before.run();
- const result = fn.apply(this, args);
- after.run();
- return result;
- } catch (ex) {
- if (db.inTransaction) {
- undo.run();
- if (undo !== rollback) after.run();
- }
- throw ex;
- }
- };
-
-export { _SQL as native };
-export { Database as default };
diff --git a/src/bun.js/builtins/BunBuiltinNames.h b/src/bun.js/builtins/BunBuiltinNames.h
deleted file mode 100644
index 640d122ca..000000000
--- a/src/bun.js/builtins/BunBuiltinNames.h
+++ /dev/null
@@ -1,267 +0,0 @@
-#pragma once
-
-#include "JavaScriptCore/BuiltinUtils.h"
-#include "root.h"
-
-namespace WebCore {
-
-using namespace JSC;
-
-#if !defined(BUN_ADDITIONAL_PRIVATE_IDENTIFIERS)
-#define BUN_ADDITIONAL_PRIVATE_IDENTIFIERS(macro)
-#endif
-
-#define BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(macro) \
- macro(AbortSignal) \
- macro(Buffer) \
- macro(Bun) \
- macro(Loader) \
- macro(ReadableByteStreamController) \
- macro(ReadableStream) \
- macro(ReadableStreamBYOBReader) \
- macro(ReadableStreamBYOBRequest) \
- macro(ReadableStreamDefaultController) \
- macro(ReadableStreamDefaultReader) \
- macro(TransformStream) \
- macro(TransformStreamDefaultController) \
- macro(WritableStream) \
- macro(WritableStreamDefaultController) \
- macro(WritableStreamDefaultWriter) \
- macro(_events) \
- macro(abortAlgorithm) \
- macro(abortSteps) \
- macro(addEventListener) \
- macro(appendFromJS) \
- macro(argv) \
- macro(assignToStream) \
- macro(associatedReadableByteStreamController) \
- macro(autoAllocateChunkSize) \
- macro(backpressure) \
- macro(backpressureChangePromise) \
- macro(basename) \
- macro(body) \
- macro(bunNativePtr) \
- macro(bunNativeType) \
- macro(byobRequest) \
- macro(cancel) \
- macro(cancelAlgorithm) \
- macro(chdir) \
- macro(cloneArrayBuffer) \
- macro(close) \
- macro(closeAlgorithm) \
- macro(closeRequest) \
- macro(closeRequested) \
- macro(closed) \
- macro(closedPromise) \
- macro(closedPromiseCapability) \
- macro(code) \
- macro(commonJSSymbol) \
- macro(connect) \
- macro(consumeReadableStream) \
- macro(controlledReadableStream) \
- macro(controller) \
- macro(cork) \
- macro(createEmptyReadableStream) \
- macro(createFIFO) \
- macro(createNativeReadableStream) \
- macro(createReadableStream) \
- macro(createUninitializedArrayBuffer) \
- macro(createWritableStreamFromInternal) \
- macro(cwd) \
- macro(data) \
- macro(dataView) \
- macro(decode) \
- macro(delimiter) \
- macro(destroy) \
- macro(dir) \
- macro(direct) \
- macro(dirname) \
- macro(disturbed) \
- macro(document) \
- macro(encode) \
- macro(encoding) \
- macro(end) \
- macro(errno) \
- macro(errorSteps) \
- macro(execArgv) \
- macro(exports) \
- macro(extname) \
- macro(failureKind) \
- macro(fatal) \
- macro(fetch) \
- macro(fetchRequest) \
- macro(file) \
- macro(filePath) \
- macro(fillFromJS) \
- macro(filter) \
- macro(finishConsumingStream) \
- macro(flush) \
- macro(flushAlgorithm) \
- macro(format) \
- macro(fulfillModuleSync) \
- macro(get) \
- macro(getInternalWritableStream) \
- macro(handleEvent) \
- macro(hash) \
- macro(header) \
- macro(headers) \
- macro(highWaterMark) \
- macro(host) \
- macro(hostname) \
- macro(href) \
- macro(ignoreBOM) \
- macro(importer) \
- macro(inFlightCloseRequest) \
- macro(inFlightWriteRequest) \
- macro(initializeWith) \
- macro(internalRequire) \
- macro(internalStream) \
- macro(internalWritable) \
- macro(isAbortSignal) \
- macro(isAbsolute) \
- macro(isDisturbed) \
- macro(isPaused) \
- macro(isWindows) \
- macro(join) \
- macro(kind) \
- macro(lazy) \
- macro(lazyLoad) \
- macro(lazyStreamPrototypeMap) \
- macro(loadCJS2ESM) \
- macro(loadModule) \
- macro(localStreams) \
- macro(main) \
- macro(makeDOMException) \
- macro(makeGetterTypeError) \
- macro(makeThisTypeError) \
- macro(map) \
- macro(method) \
- macro(nextTick) \
- macro(normalize) \
- macro(on) \
- macro(once) \
- macro(options) \
- macro(origin) \
- macro(ownerReadableStream) \
- macro(parse) \
- macro(password) \
- macro(patch) \
- macro(path) \
- macro(pathname) \
- macro(pause) \
- macro(pendingAbortRequest) \
- macro(pendingPullIntos) \
- macro(pid) \
- macro(pipe) \
- macro(port) \
- macro(post) \
- macro(ppid) \
- macro(prependEventListener) \
- macro(process) \
- macro(protocol) \
- macro(pull) \
- macro(pullAgain) \
- macro(pullAlgorithm) \
- macro(pulling) \
- macro(put) \
- macro(queue) \
- macro(read) \
- macro(readIntoRequests) \
- macro(readRequests) \
- macro(readable) \
- macro(readableStreamController) \
- macro(readableStreamToArray) \
- macro(reader) \
- macro(readyPromise) \
- macro(readyPromiseCapability) \
- macro(redirect) \
- macro(relative) \
- macro(releaseLock) \
- macro(removeEventListener) \
- macro(require) \
- macro(requireESM) \
- macro(requireMap) \
- macro(resolve) \
- macro(resolveSync) \
- macro(resume) \
- macro(search) \
- macro(searchParams) \
- macro(self) \
- macro(sep) \
- macro(setBody) \
- macro(setStatus) \
- macro(setup) \
- macro(sink) \
- macro(size) \
- macro(start) \
- macro(startAlgorithm) \
- macro(startConsumingStream) \
- macro(startDirectStream) \
- macro(started) \
- macro(startedPromise) \
- macro(state) \
- macro(status) \
- macro(storedError) \
- macro(strategy) \
- macro(strategyHWM) \
- macro(strategySizeAlgorithm) \
- macro(stream) \
- macro(streamClosed) \
- macro(streamClosing) \
- macro(streamErrored) \
- macro(streamReadable) \
- macro(streamWaiting) \
- macro(streamWritable) \
- macro(structuredCloneForStream) \
- macro(syscall) \
- macro(textDecoderStreamDecoder) \
- macro(textDecoderStreamTransform) \
- macro(textEncoderStreamEncoder) \
- macro(textEncoderStreamTransform) \
- macro(toNamespacedPath) \
- macro(trace) \
- macro(transformAlgorithm) \
- macro(uncork) \
- macro(underlyingByteSource) \
- macro(underlyingSink) \
- macro(underlyingSource) \
- macro(unpipe) \
- macro(unshift) \
- macro(url) \
- macro(username) \
- macro(version) \
- macro(versions) \
- macro(view) \
- macro(whenSignalAborted) \
- macro(writable) \
- macro(write) \
- macro(writeAlgorithm) \
- macro(writeRequests) \
- macro(writer) \
- macro(writing) \
- macro(written) \
- BUN_ADDITIONAL_PRIVATE_IDENTIFIERS(macro) \
-
-class BunBuiltinNames {
-public:
- // FIXME: Remove the __attribute__((nodebug)) when <rdar://68246686> is fixed.
-#if COMPILER(CLANG)
- __attribute__((nodebug))
-#endif
- explicit BunBuiltinNames(JSC::VM& vm)
- : m_vm(vm)
- BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(INITIALIZE_BUILTIN_NAMES)
- {
-#define EXPORT_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(EXPORT_NAME)
-#undef EXPORT_NAME
- }
-
- BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
-private:
- JSC::VM& m_vm;
- BUN_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(DECLARE_BUILTIN_NAMES)
-};
-
-} // namespace WebCore
diff --git a/src/bun.js/builtins/README.md b/src/bun.js/builtins/README.md
deleted file mode 100644
index 67b8882ee..000000000
--- a/src/bun.js/builtins/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# JavaScript Builtins
-
-**TLDR** — When files in this directory change, run:
-
-```bash
-# Delete the built files
-$ make regenerate-bindings
-# Re-link the binary without compiling zig (so it's faster)
-$ make bun-link-lld-debug
-```
-
-TypeScript files in [./ts](./ts) are bundled into C++ Headers that can access JavaScriptCore intrinsics. These files use special globals that are prefixed with `$`.
-
-```js
-$getter
-export function foo() {
- return $getByIdDirectPrivate(this, "superSecret");
-}
-```
-
-It looks kind of like decorators but they're not. They let you directly call engine intrinsics and help with avoiding prototype pollution issues.
-
-V8 has a [similar feature](https://v8.dev/blog/embedded-builtins) (they use `%` instead of `@`)
-
-They usually are accompanied by a C++ file.
-
-We use a custom code generator located in `./codegen` which contains a regex-based parser that separates each function into it's own bundling context, so syntax like top level variables / functions will not work.
-
-You can also use `process.platform` and `process.arch` in these files. The values are inlined and DCE'd.
-
-## Generating builtins
-
-To regenerate the builtins, run this from Bun's project root (where the `Makefile` is)
-
-```bash
-$ make builtins
-```
-
-You'll want to also rebuild all the C++ bindings or you will get strange crashes on start
-
-```bash
-$ make clean-bindings
-```
-
-The `make regenerate-bindings` command will clean and rebuild the bindings.
-
-Also, you can run the code generator manually.
-
-```bash
-$ bun ./codegen/index.ts
-# pass --minify to minify (make passes this by default)
-# pass --keep-tmp to keep the temporary ./tmp folder, which contains processed pre-bundled .ts files
-```
diff --git a/src/bun.js/builtins/WebCoreJSBuiltins.cpp b/src/bun.js/builtins/WebCoreJSBuiltins.cpp
deleted file mode 100644
index 614c34a1a..000000000
--- a/src/bun.js/builtins/WebCoreJSBuiltins.cpp
+++ /dev/null
@@ -1,2985 +0,0 @@
-// Generated by `bun src/bun.js/builtins/codegen/index.js`
-// Do not edit by hand.
-namespace Zig { class GlobalObject; }
-#include "root.h"
-#include "config.h"
-#include "JSDOMGlobalObject.h"
-#include "WebCoreJSClientData.h"
-#include <JavaScriptCore/JSObjectInlines.h>
-
-namespace WebCore {
-
-/* BundlerPlugin.ts */
-// runSetupFunction
-const JSC::ConstructAbility s_bundlerPluginRunSetupFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_bundlerPluginRunSetupFunctionCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_bundlerPluginRunSetupFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_bundlerPluginRunSetupFunctionCodeLength = 2165;
-static const JSC::Intrinsic s_bundlerPluginRunSetupFunctionCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_bundlerPluginRunSetupFunctionCode = "(function (_,h){\"use strict\";var w=new Map,I=new Map;function M(C,D,E){if(!C||!@isObject(C))@throwTypeError('Expected an object with \"filter\" RegExp');if(!D||!@isCallable(D))@throwTypeError(\"callback must be a function\");var{filter:F,namespace:G=\"file\"}=C;if(!F)@throwTypeError('Expected an object with \"filter\" RegExp');if(!@isRegExpObject(F))@throwTypeError(\"filter must be a RegExp\");if(G&&typeof G!==\"string\")@throwTypeError(\"namespace must be a string\");if((G\?.length\?\?0)===0)G=\"file\";if(!/^([/@a-zA-Z0-9_\\\\-]+)$/.test(G))@throwTypeError(\"namespace can only contain $a-zA-Z0-9_\\\\-\");var H=E.@get(G);if(!H)E.@set(G,[[F,D]]);else @arrayPush(H,[F,D])}function q(C,D){M(C,D,w)}function z(C,D){M(C,D,I)}const A=()=>{var C=!1,D=!1;for(var[E,F]of w.entries())for(var[G]of F)this.addFilter(G,E,1),C=!0;for(var[E,F]of I.entries())for(var[G]of F)this.addFilter(G,E,0),D=!0;if(D){var H=this.onResolve;if(!H)this.onResolve=I;else for(var[E,F]of I.entries()){var J=H.@get(E);if(!J)H.@set(E,F);else H.@set(E,J.concat(F))}}if(C){var K=this.onLoad;if(!K)this.onLoad=w;else for(var[E,F]of w.entries()){var J=K.@get(E);if(!J)K.@set(E,F);else K.@set(E,J.concat(F))}}return C||D};var B=_({config:h,onDispose:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onEnd:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),onLoad:q,onResolve:z,onStart:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),resolve:()=>@throwTypeError(`@{@2} is not implemented yet. See https://github.com/oven-sh/bun/issues/@1`),initialOptions:{...h,bundle:!0,entryPoints:h.entrypoints\?\?h.entryPoints\?\?[],minify:typeof h.minify===\"boolean\"\?h.minify:!1,minifyIdentifiers:h.minify===!0||h.minify\?.identifiers,minifyWhitespace:h.minify===!0||h.minify\?.whitespace,minifySyntax:h.minify===!0||h.minify\?.syntax,outbase:h.root,platform:h.target===\"bun\"\?\"node\":h.target},esbuild:{}});if(B&&@isPromise(B))if(@getPromiseInternalField(B,@promiseFieldFlags)&@promiseStateFulfilled)B=@getPromiseInternalField(B,@promiseFieldReactionsOrResult);else return B.@then(A);return A()})\n";
-
-// runOnResolvePlugins
-const JSC::ConstructAbility s_bundlerPluginRunOnResolvePluginsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_bundlerPluginRunOnResolvePluginsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_bundlerPluginRunOnResolvePluginsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_bundlerPluginRunOnResolvePluginsCodeLength = 1711;
-static const JSC::Intrinsic s_bundlerPluginRunOnResolvePluginsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_bundlerPluginRunOnResolvePluginsCode = "(function (_,E,W,g,j){\"use strict\";const q=[\"entry-point\",\"import-statement\",\"require-call\",\"dynamic-import\",\"require-resolve\",\"import-rule\",\"url-token\",\"internal\"][j];var w=(async(y,z,A,B)=>{var{onResolve:C,onLoad:F}=this,G=C.@get(z);if(!G)return this.onResolveAsync(g,null,null,null),null;for(let[O,Q]of G)if(O.test(y)){var H=Q({path:y,importer:A,namespace:z,kind:B});while(H&&@isPromise(H)&&(@getPromiseInternalField(H,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)H=@getPromiseInternalField(H,@promiseFieldReactionsOrResult);if(H&&@isPromise(H))H=await H;if(!H||!@isObject(H))continue;var{path:J,namespace:K=z,external:M}=H;if(typeof J!==\"string\"||typeof K!==\"string\")@throwTypeError(\"onResolve plugins must return an object with a string 'path' and string 'loader' field\");if(!J)continue;if(!K)K=z;if(typeof M!==\"boolean\"&&!@isUndefinedOrNull(M))@throwTypeError('onResolve plugins \"external\" field must be boolean or unspecified');if(!M){if(K===\"file\"){if(darwin!==\"win32\"){if(J[0]!==\"/\"||J.includes(\"..\"))@throwTypeError('onResolve plugin \"path\" must be absolute when the namespace is \"file\"')}}if(K===\"dataurl\"){if(!J.startsWith(\"data:\"))@throwTypeError('onResolve plugin \"path\" must start with \"data:\" when the namespace is \"dataurl\"')}if(K&&K!==\"file\"&&(!F||!F.@has(K)))@throwTypeError(`Expected onLoad plugin for namespace ${K} to exist`)}return this.onResolveAsync(g,J,K,M),null}return this.onResolveAsync(g,null,null,null),null})(_,E,W,q);while(w&&@isPromise(w)&&(@getPromiseInternalField(w,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)w=@getPromiseInternalField(w,@promiseFieldReactionsOrResult);if(w&&@isPromise(w))w.then(()=>{},(y)=>{this.addError(g,y,0)})})\n";
-
-// runOnLoadPlugins
-const JSC::ConstructAbility s_bundlerPluginRunOnLoadPluginsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_bundlerPluginRunOnLoadPluginsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_bundlerPluginRunOnLoadPluginsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_bundlerPluginRunOnLoadPluginsCodeLength = 1325;
-static const JSC::Intrinsic s_bundlerPluginRunOnLoadPluginsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_bundlerPluginRunOnLoadPluginsCode = "(function (_,b,g,j){\"use strict\";const q={jsx:0,js:1,ts:2,tsx:3,css:4,file:5,json:6,toml:7,wasm:8,napi:9,base64:10,dataurl:11,text:12},v=[\"jsx\",\"js\",\"ts\",\"tsx\",\"css\",\"file\",\"json\",\"toml\",\"wasm\",\"napi\",\"base64\",\"dataurl\",\"text\"][j];var w=(async(x,y,z,B)=>{var C=this.onLoad.@get(z);if(!C)return this.onLoadAsync(x,null,null),null;for(let[H,J]of C)if(H.test(y)){var E=J({path:y,namespace:z,loader:B});while(E&&@isPromise(E)&&(@getPromiseInternalField(E,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)E=@getPromiseInternalField(E,@promiseFieldReactionsOrResult);if(E&&@isPromise(E))E=await E;if(!E||!@isObject(E))continue;var{contents:F,loader:G=B}=E;if(typeof F!==\"string\"&&!@isTypedArrayView(F))@throwTypeError('onLoad plugins must return an object with \"contents\" as a string or Uint8Array');if(typeof G!==\"string\")@throwTypeError('onLoad plugins must return an object with \"loader\" as a string');const K=q[G];if(K===@undefined)@throwTypeError(`Loader ${G} is not supported.`);return this.onLoadAsync(x,F,K),null}return this.onLoadAsync(x,null,null),null})(_,b,g,v);while(w&&@isPromise(w)&&(@getPromiseInternalField(w,@promiseFieldFlags)&@promiseStateMask)===@promiseStateFulfilled)w=@getPromiseInternalField(w,@promiseFieldReactionsOrResult);if(w&&@isPromise(w))w.then(()=>{},(x)=>{this.addError(_,x,1)})})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().bundlerPluginBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().bundlerPluginBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ByteLengthQueuingStrategy.ts */
-// highWaterMark
-const JSC::ConstructAbility s_byteLengthQueuingStrategyHighWaterMarkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_byteLengthQueuingStrategyHighWaterMarkCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_byteLengthQueuingStrategyHighWaterMarkCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_byteLengthQueuingStrategyHighWaterMarkCodeLength = 210;
-static const JSC::Intrinsic s_byteLengthQueuingStrategyHighWaterMarkCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_byteLengthQueuingStrategyHighWaterMarkCode = "(function (){\"use strict\";const e=@getByIdDirectPrivate(this,\"highWaterMark\");if(e===@undefined)@throwTypeError(\"ByteLengthQueuingStrategy.highWaterMark getter called on incompatible |this| value.\");return e})\n";
-
-// size
-const JSC::ConstructAbility s_byteLengthQueuingStrategySizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_byteLengthQueuingStrategySizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_byteLengthQueuingStrategySizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_byteLengthQueuingStrategySizeCodeLength = 49;
-static const JSC::Intrinsic s_byteLengthQueuingStrategySizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_byteLengthQueuingStrategySizeCode = "(function (e){\"use strict\";return e.byteLength})\n";
-
-// initializeByteLengthQueuingStrategy
-const JSC::ConstructAbility s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeLength = 121;
-static const JSC::Intrinsic s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCode = "(function (d){\"use strict\";@putByIdDirectPrivate(this,\"highWaterMark\",@extractHighWaterMarkFromQueuingStrategyInit(d))})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().byteLengthQueuingStrategyBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().byteLengthQueuingStrategyBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* WritableStreamInternals.ts */
-// isWritableStream
-const JSC::ConstructAbility s_writableStreamInternalsIsWritableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsIsWritableStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsIsWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsIsWritableStreamCodeLength = 94;
-static const JSC::Intrinsic s_writableStreamInternalsIsWritableStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsIsWritableStreamCode = "(function (b){\"use strict\";return @isObject(b)&&!!@getByIdDirectPrivate(b,\"underlyingSink\")})\n";
-
-// isWritableStreamDefaultWriter
-const JSC::ConstructAbility s_writableStreamInternalsIsWritableStreamDefaultWriterCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsIsWritableStreamDefaultWriterCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsIsWritableStreamDefaultWriterCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsIsWritableStreamDefaultWriterCodeLength = 93;
-static const JSC::Intrinsic s_writableStreamInternalsIsWritableStreamDefaultWriterCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsIsWritableStreamDefaultWriterCode = "(function (s){\"use strict\";return @isObject(s)&&!!@getByIdDirectPrivate(s,\"closedPromise\")})\n";
-
-// acquireWritableStreamDefaultWriter
-const JSC::ConstructAbility s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeLength = 72;
-static const JSC::Intrinsic s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsAcquireWritableStreamDefaultWriterCode = "(function (d){\"use strict\";return new @WritableStreamDefaultWriter(d)})\n";
-
-// createWritableStream
-const JSC::ConstructAbility s_writableStreamInternalsCreateWritableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsCreateWritableStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsCreateWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsCreateWritableStreamCodeLength = 278;
-static const JSC::Intrinsic s_writableStreamInternalsCreateWritableStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsCreateWritableStreamCode = "(function (_,d,p,u,I,f){\"use strict\";@assert(typeof I===\"number\"&&!@isNaN(I)&&I>=0);const j={};@initializeWritableStreamSlots(j,{});const q=new @WritableStreamDefaultController;return @setUpWritableStreamDefaultController(j,q,_,d,p,u,I,f),@createWritableStreamFromInternal(j)})\n";
-
-// createInternalWritableStreamFromUnderlyingSink
-const JSC::ConstructAbility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength = 956;
-static const JSC::Intrinsic s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode = "(function (_,f){\"use strict\";const p={};if(_===@undefined)_={};if(f===@undefined)f={};if(!@isObject(_))@throwTypeError(\"WritableStream constructor takes an object as first argument\");if(\"type\"in _)@throwRangeError(\"Invalid type is specified\");const v=@extractSizeAlgorithm(f),U=@extractHighWaterMark(f,1),b={};if(\"start\"in _){if(b[\"start\"]=_[\"start\"],typeof b[\"start\"]!==\"function\")@throwTypeError(\"underlyingSink.start should be a function\")}if(\"write\"in _){if(b[\"write\"]=_[\"write\"],typeof b[\"write\"]!==\"function\")@throwTypeError(\"underlyingSink.write should be a function\")}if(\"close\"in _){if(b[\"close\"]=_[\"close\"],typeof b[\"close\"]!==\"function\")@throwTypeError(\"underlyingSink.close should be a function\")}if(\"abort\"in _){if(b[\"abort\"]=_[\"abort\"],typeof b[\"abort\"]!==\"function\")@throwTypeError(\"underlyingSink.abort should be a function\")}return @initializeWritableStreamSlots(p,_),@setUpWritableStreamDefaultControllerFromUnderlyingSink(p,_,b,U,v),p})\n";
-
-// initializeWritableStreamSlots
-const JSC::ConstructAbility s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsInitializeWritableStreamSlotsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsInitializeWritableStreamSlotsCodeLength = 588;
-static const JSC::Intrinsic s_writableStreamInternalsInitializeWritableStreamSlotsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsInitializeWritableStreamSlotsCode = "(function (_,c){\"use strict\";@putByIdDirectPrivate(_,\"state\",\"writable\"),@putByIdDirectPrivate(_,\"storedError\",@undefined),@putByIdDirectPrivate(_,\"writer\",@undefined),@putByIdDirectPrivate(_,\"controller\",@undefined),@putByIdDirectPrivate(_,\"inFlightWriteRequest\",@undefined),@putByIdDirectPrivate(_,\"closeRequest\",@undefined),@putByIdDirectPrivate(_,\"inFlightCloseRequest\",@undefined),@putByIdDirectPrivate(_,\"pendingAbortRequest\",@undefined),@putByIdDirectPrivate(_,\"writeRequests\",@createFIFO()),@putByIdDirectPrivate(_,\"backpressure\",!1),@putByIdDirectPrivate(_,\"underlyingSink\",c)})\n";
-
-// writableStreamCloseForBindings
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseForBindingsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamCloseForBindingsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamCloseForBindingsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamCloseForBindingsCodeLength = 370;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamCloseForBindingsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamCloseForBindingsCode = "(function (_){\"use strict\";if(@isWritableStreamLocked(_))return @Promise.@reject(@makeTypeError(\"WritableStream.close method can only be used on non locked WritableStream\"));if(@writableStreamCloseQueuedOrInFlight(_))return @Promise.@reject(@makeTypeError(\"WritableStream.close method can only be used on a being close WritableStream\"));return @writableStreamClose(_)})\n";
-
-// writableStreamAbortForBindings
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAbortForBindingsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortForBindingsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortForBindingsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamAbortForBindingsCodeLength = 211;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamAbortForBindingsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamAbortForBindingsCode = "(function (i,b){\"use strict\";if(@isWritableStreamLocked(i))return @Promise.@reject(@makeTypeError(\"WritableStream.abort method can only be used on non locked WritableStream\"));return @writableStreamAbort(i,b)})\n";
-
-// isWritableStreamLocked
-const JSC::ConstructAbility s_writableStreamInternalsIsWritableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsIsWritableStreamLockedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsIsWritableStreamLockedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsIsWritableStreamLockedCodeLength = 83;
-static const JSC::Intrinsic s_writableStreamInternalsIsWritableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsIsWritableStreamLockedCode = "(function (d){\"use strict\";return @getByIdDirectPrivate(d,\"writer\")!==@undefined})\n";
-
-// setUpWritableStreamDefaultWriter
-const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeLength = 887;
-static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode = "(function (_,n){\"use strict\";if(@isWritableStreamLocked(n))@throwTypeError(\"WritableStream is locked\");@putByIdDirectPrivate(_,\"stream\",n),@putByIdDirectPrivate(n,\"writer\",_);const u=@newPromiseCapability(@Promise),B=@newPromiseCapability(@Promise);@putByIdDirectPrivate(_,\"readyPromise\",u),@putByIdDirectPrivate(_,\"closedPromise\",B);const f=@getByIdDirectPrivate(n,\"state\");if(f===\"writable\"){if(@writableStreamCloseQueuedOrInFlight(n)||!@getByIdDirectPrivate(n,\"backpressure\"))u.@resolve.@call()}else if(f===\"erroring\")u.@reject.@call(@undefined,@getByIdDirectPrivate(n,\"storedError\")),@markPromiseAsHandled(u.@promise);else if(f===\"closed\")u.@resolve.@call(),B.@resolve.@call();else{@assert(f===\"errored\");const g=@getByIdDirectPrivate(n,\"storedError\");u.@reject.@call(@undefined,g),@markPromiseAsHandled(u.@promise),B.@reject.@call(@undefined,g),@markPromiseAsHandled(B.@promise)}})\n";
-
-// writableStreamAbort
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAbortCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamAbortCodeLength = 501;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamAbortCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamAbortCode = "(function (_,c){\"use strict\";const f=@getByIdDirectPrivate(_,\"state\");if(f===\"closed\"||f===\"errored\")return @Promise.@resolve();const h=@getByIdDirectPrivate(_,\"pendingAbortRequest\");if(h!==@undefined)return h.promise.@promise;@assert(f===\"writable\"||f===\"erroring\");let j=!1;if(f===\"erroring\")j=!0,c=@undefined;const k=@newPromiseCapability(@Promise);if(@putByIdDirectPrivate(_,\"pendingAbortRequest\",{promise:k,reason:c,wasAlreadyErroring:j}),!j)@writableStreamStartErroring(_,c);return k.@promise})\n";
-
-// writableStreamClose
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamCloseCodeLength = 642;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamCloseCode = "(function (n){\"use strict\";const _=@getByIdDirectPrivate(n,\"state\");if(_===\"closed\"||_===\"errored\")return @Promise.@reject(@makeTypeError(\"Cannot close a writable stream that is closed or errored\"));@assert(_===\"writable\"||_===\"erroring\"),@assert(!@writableStreamCloseQueuedOrInFlight(n));const d=@newPromiseCapability(@Promise);@putByIdDirectPrivate(n,\"closeRequest\",d);const u=@getByIdDirectPrivate(n,\"writer\");if(u!==@undefined&&@getByIdDirectPrivate(n,\"backpressure\")&&_===\"writable\")@getByIdDirectPrivate(u,\"readyPromise\").@resolve.@call();return @writableStreamDefaultControllerClose(@getByIdDirectPrivate(n,\"controller\")),d.@promise})\n";
-
-// writableStreamAddWriteRequest
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAddWriteRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAddWriteRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAddWriteRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamAddWriteRequestCodeLength = 227;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamAddWriteRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamAddWriteRequestCode = "(function (_){\"use strict\";@assert(@isWritableStreamLocked(_)),@assert(@getByIdDirectPrivate(_,\"state\")===\"writable\");const c=@newPromiseCapability(@Promise);return @getByIdDirectPrivate(_,\"writeRequests\").push(c),c.@promise})\n";
-
-// writableStreamCloseQueuedOrInFlight
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeLength = 151;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCode = "(function (_){\"use strict\";return @getByIdDirectPrivate(_,\"closeRequest\")!==@undefined||@getByIdDirectPrivate(_,\"inFlightCloseRequest\")!==@undefined})\n";
-
-// writableStreamDealWithRejection
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDealWithRejectionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDealWithRejectionCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDealWithRejectionCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDealWithRejectionCodeLength = 189;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDealWithRejectionCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDealWithRejectionCode = "(function (n,c){\"use strict\";const d=@getByIdDirectPrivate(n,\"state\");if(d===\"writable\"){@writableStreamStartErroring(n,c);return}@assert(d===\"erroring\"),@writableStreamFinishErroring(n)})\n";
-
-// writableStreamFinishErroring
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishErroringCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishErroringCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamFinishErroringCodeLength = 1058;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishErroringCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamFinishErroringCode = "(function (i){\"use strict\";@assert(@getByIdDirectPrivate(i,\"state\")===\"erroring\"),@assert(!@writableStreamHasOperationMarkedInFlight(i)),@putByIdDirectPrivate(i,\"state\",\"errored\");const c=@getByIdDirectPrivate(i,\"controller\");@getByIdDirectPrivate(c,\"errorSteps\").@call();const p=@getByIdDirectPrivate(i,\"storedError\"),_=@getByIdDirectPrivate(i,\"writeRequests\");for(var d=_.shift();d;d=_.shift())d.@reject.@call(@undefined,p);@putByIdDirectPrivate(i,\"writeRequests\",@createFIFO());const f=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(f===@undefined){@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}if(@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined),f.wasAlreadyErroring){f.promise.@reject.@call(@undefined,p),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i);return}@getByIdDirectPrivate(c,\"abortSteps\").@call(@undefined,f.reason).@then(()=>{f.promise.@resolve.@call(),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)},(j)=>{f.promise.@reject.@call(@undefined,j),@writableStreamRejectCloseAndClosedPromiseIfNeeded(i)})})\n";
-
-// writableStreamFinishInFlightClose
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeLength = 751;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode = "(function (i){\"use strict\";@getByIdDirectPrivate(i,\"inFlightCloseRequest\").@resolve.@call(),@putByIdDirectPrivate(i,\"inFlightCloseRequest\",@undefined);const _=@getByIdDirectPrivate(i,\"state\");if(@assert(_===\"writable\"||_===\"erroring\"),_===\"erroring\"){@putByIdDirectPrivate(i,\"storedError\",@undefined);const d=@getByIdDirectPrivate(i,\"pendingAbortRequest\");if(d!==@undefined)d.promise.@resolve.@call(),@putByIdDirectPrivate(i,\"pendingAbortRequest\",@undefined)}@putByIdDirectPrivate(i,\"state\",\"closed\");const c=@getByIdDirectPrivate(i,\"writer\");if(c!==@undefined)@getByIdDirectPrivate(c,\"closedPromise\").@resolve.@call();@assert(@getByIdDirectPrivate(i,\"pendingAbortRequest\")===@undefined),@assert(@getByIdDirectPrivate(i,\"storedError\")===@undefined)})\n";
-
-// writableStreamFinishInFlightCloseWithError
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeLength = 488;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCode = "(function (_,c){\"use strict\";const d=@getByIdDirectPrivate(_,\"inFlightCloseRequest\");@assert(d!==@undefined),d.@reject.@call(@undefined,c),@putByIdDirectPrivate(_,\"inFlightCloseRequest\",@undefined);const f=@getByIdDirectPrivate(_,\"state\");@assert(f===\"writable\"||f===\"erroring\");const j=@getByIdDirectPrivate(_,\"pendingAbortRequest\");if(j!==@undefined)j.promise.@reject.@call(@undefined,c),@putByIdDirectPrivate(_,\"pendingAbortRequest\",@undefined);@writableStreamDealWithRejection(_,c)})\n";
-
-// writableStreamFinishInFlightWrite
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeLength = 187;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamFinishInFlightWriteCode = "(function (d){\"use strict\";const P=@getByIdDirectPrivate(d,\"inFlightWriteRequest\");@assert(P!==@undefined),P.@resolve.@call(),@putByIdDirectPrivate(d,\"inFlightWriteRequest\",@undefined)})\n";
-
-// writableStreamFinishInFlightWriteWithError
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeLength = 319;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCode = "(function (c,d){\"use strict\";const f=@getByIdDirectPrivate(c,\"inFlightWriteRequest\");@assert(f!==@undefined),f.@reject.@call(@undefined,d),@putByIdDirectPrivate(c,\"inFlightWriteRequest\",@undefined);const _=@getByIdDirectPrivate(c,\"state\");@assert(_===\"writable\"||_===\"erroring\"),@writableStreamDealWithRejection(c,d)})\n";
-
-// writableStreamHasOperationMarkedInFlight
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeLength = 159;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCode = "(function (n){\"use strict\";return @getByIdDirectPrivate(n,\"inFlightWriteRequest\")!==@undefined||@getByIdDirectPrivate(n,\"inFlightCloseRequest\")!==@undefined})\n";
-
-// writableStreamMarkCloseRequestInFlight
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeLength = 272;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCode = "(function (d){\"use strict\";const i=@getByIdDirectPrivate(d,\"closeRequest\");@assert(@getByIdDirectPrivate(d,\"inFlightCloseRequest\")===@undefined),@assert(i!==@undefined),@putByIdDirectPrivate(d,\"inFlightCloseRequest\",i),@putByIdDirectPrivate(d,\"closeRequest\",@undefined)})\n";
-
-// writableStreamMarkFirstWriteRequestInFlight
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeLength = 240;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCode = "(function (n){\"use strict\";const d=@getByIdDirectPrivate(n,\"writeRequests\");@assert(@getByIdDirectPrivate(n,\"inFlightWriteRequest\")===@undefined),@assert(d.isNotEmpty());const h=d.shift();@putByIdDirectPrivate(n,\"inFlightWriteRequest\",h)})\n";
-
-// writableStreamRejectCloseAndClosedPromiseIfNeeded
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeLength = 516;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCode = "(function (_){\"use strict\";@assert(@getByIdDirectPrivate(_,\"state\")===\"errored\");const n=@getByIdDirectPrivate(_,\"storedError\"),p=@getByIdDirectPrivate(_,\"closeRequest\");if(p!==@undefined)@assert(@getByIdDirectPrivate(_,\"inFlightCloseRequest\")===@undefined),p.@reject.@call(@undefined,n),@putByIdDirectPrivate(_,\"closeRequest\",@undefined);const b=@getByIdDirectPrivate(_,\"writer\");if(b!==@undefined){const f=@getByIdDirectPrivate(b,\"closedPromise\");f.@reject.@call(@undefined,n),@markPromiseAsHandled(f.@promise)}})\n";
-
-// writableStreamStartErroring
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamStartErroringCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamStartErroringCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamStartErroringCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamStartErroringCodeLength = 544;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamStartErroringCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamStartErroringCode = "(function (d,c){\"use strict\";@assert(@getByIdDirectPrivate(d,\"storedError\")===@undefined),@assert(@getByIdDirectPrivate(d,\"state\")===\"writable\");const p=@getByIdDirectPrivate(d,\"controller\");@assert(p!==@undefined),@putByIdDirectPrivate(d,\"state\",\"erroring\"),@putByIdDirectPrivate(d,\"storedError\",c);const u=@getByIdDirectPrivate(d,\"writer\");if(u!==@undefined)@writableStreamDefaultWriterEnsureReadyPromiseRejected(u,c);if(!@writableStreamHasOperationMarkedInFlight(d)&&@getByIdDirectPrivate(p,\"started\")===1)@writableStreamFinishErroring(d)})\n";
-
-// writableStreamUpdateBackpressure
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamUpdateBackpressureCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamUpdateBackpressureCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamUpdateBackpressureCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamUpdateBackpressureCodeLength = 422;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamUpdateBackpressureCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamUpdateBackpressureCode = "(function (_,d){\"use strict\";@assert(@getByIdDirectPrivate(_,\"state\")===\"writable\"),@assert(!@writableStreamCloseQueuedOrInFlight(_));const n=@getByIdDirectPrivate(_,\"writer\");if(n!==@undefined&&d!==@getByIdDirectPrivate(_,\"backpressure\"))if(d)@putByIdDirectPrivate(n,\"readyPromise\",@newPromiseCapability(@Promise));else @getByIdDirectPrivate(n,\"readyPromise\").@resolve.@call();@putByIdDirectPrivate(_,\"backpressure\",d)})\n";
-
-// writableStreamDefaultWriterAbort
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeLength = 130;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultWriterAbortCode = "(function (_,d){\"use strict\";const p=@getByIdDirectPrivate(_,\"stream\");return @assert(p!==@undefined),@writableStreamAbort(p,d)})\n";
-
-// writableStreamDefaultWriterClose
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeLength = 126;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseCode = "(function (c){\"use strict\";const d=@getByIdDirectPrivate(c,\"stream\");return @assert(d!==@undefined),@writableStreamClose(d)})\n";
-
-// writableStreamDefaultWriterCloseWithErrorPropagation
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeLength = 385;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCode = "(function (c){\"use strict\";const u=@getByIdDirectPrivate(c,\"stream\");@assert(u!==@undefined);const d=@getByIdDirectPrivate(u,\"state\");if(@writableStreamCloseQueuedOrInFlight(u)||d===\"closed\")return @Promise.@resolve();if(d===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(u,\"storedError\"));return @assert(d===\"writable\"||d===\"erroring\"),@writableStreamDefaultWriterClose(c)})\n";
-
-// writableStreamDefaultWriterEnsureClosedPromiseRejected
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeLength = 329;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCode = "(function (_,n){\"use strict\";let g=@getByIdDirectPrivate(_,\"closedPromise\"),u=g.@promise;if((@getPromiseInternalField(u,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)g=@newPromiseCapability(@Promise),u=g.@promise,@putByIdDirectPrivate(_,\"closedPromise\",g);g.@reject.@call(@undefined,n),@markPromiseAsHandled(u)})\n";
-
-// writableStreamDefaultWriterEnsureReadyPromiseRejected
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeLength = 327;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode = "(function (n,k){\"use strict\";let _=@getByIdDirectPrivate(n,\"readyPromise\"),c=_.@promise;if((@getPromiseInternalField(c,@promiseFieldFlags)&@promiseStateMask)!==@promiseStatePending)_=@newPromiseCapability(@Promise),c=_.@promise,@putByIdDirectPrivate(n,\"readyPromise\",_);_.@reject.@call(@undefined,k),@markPromiseAsHandled(c)})\n";
-
-// writableStreamDefaultWriterGetDesiredSize
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeLength = 299;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCode = "(function (c){\"use strict\";const d=@getByIdDirectPrivate(c,\"stream\");@assert(d!==@undefined);const l=@getByIdDirectPrivate(d,\"state\");if(l===\"errored\"||l===\"erroring\")return null;if(l===\"closed\")return 0;return @writableStreamDefaultControllerGetDesiredSize(@getByIdDirectPrivate(d,\"controller\"))})\n";
-
-// writableStreamDefaultWriterRelease
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeLength = 414;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultWriterReleaseCode = "(function (n){\"use strict\";const c=@getByIdDirectPrivate(n,\"stream\");@assert(c!==@undefined),@assert(@getByIdDirectPrivate(c,\"writer\")===n);const d=@makeTypeError(\"writableStreamDefaultWriterRelease\");@writableStreamDefaultWriterEnsureReadyPromiseRejected(n,d),@writableStreamDefaultWriterEnsureClosedPromiseRejected(n,d),@putByIdDirectPrivate(c,\"writer\",@undefined),@putByIdDirectPrivate(n,\"stream\",@undefined)})\n";
-
-// writableStreamDefaultWriterWrite
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength = 919;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode = "(function (d,I){\"use strict\";const _=@getByIdDirectPrivate(d,\"stream\");@assert(_!==@undefined);const b=@getByIdDirectPrivate(_,\"controller\");@assert(b!==@undefined);const f=@writableStreamDefaultControllerGetChunkSize(b,I);if(_!==@getByIdDirectPrivate(d,\"stream\"))return @Promise.@reject(@makeTypeError(\"writer is not stream's writer\"));const g=@getByIdDirectPrivate(_,\"state\");if(g===\"errored\")return @Promise.@reject(@getByIdDirectPrivate(_,\"storedError\"));if(@writableStreamCloseQueuedOrInFlight(_)||g===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(@writableStreamCloseQueuedOrInFlight(_)||g===\"closed\")return @Promise.@reject(@makeTypeError(\"stream is closing or closed\"));if(g===\"erroring\")return @Promise.@reject(@getByIdDirectPrivate(_,\"storedError\"));@assert(g===\"writable\");const j=@writableStreamAddWriteRequest(_);return @writableStreamDefaultControllerWrite(b,I,f),j})\n";
-
-// setUpWritableStreamDefaultController
-const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeLength = 700;
-static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode = "(function (_,d,p,B,f,j,q,u){\"use strict\";@assert(@isWritableStream(_)),@assert(@getByIdDirectPrivate(_,\"controller\")===@undefined),@putByIdDirectPrivate(d,\"stream\",_),@putByIdDirectPrivate(_,\"controller\",d),@resetQueue(@getByIdDirectPrivate(d,\"queue\")),@putByIdDirectPrivate(d,\"started\",-1),@putByIdDirectPrivate(d,\"startAlgorithm\",p),@putByIdDirectPrivate(d,\"strategySizeAlgorithm\",u),@putByIdDirectPrivate(d,\"strategyHWM\",q),@putByIdDirectPrivate(d,\"writeAlgorithm\",B),@putByIdDirectPrivate(d,\"closeAlgorithm\",f),@putByIdDirectPrivate(d,\"abortAlgorithm\",j);const v=@writableStreamDefaultControllerGetBackpressure(d);@writableStreamUpdateBackpressure(_,v),@writableStreamDefaultControllerStart(d)})\n";
-
-// writableStreamDefaultControllerStart
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerStartCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerStartCodeLength = 647;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerStartCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerStartCode = "(function (_){\"use strict\";if(@getByIdDirectPrivate(_,\"started\")!==-1)return;@putByIdDirectPrivate(_,\"started\",0);const d=@getByIdDirectPrivate(_,\"startAlgorithm\");@putByIdDirectPrivate(_,\"startAlgorithm\",@undefined);const b=@getByIdDirectPrivate(_,\"stream\");return @Promise.@resolve(d.@call()).@then(()=>{const y=@getByIdDirectPrivate(b,\"state\");@assert(y===\"writable\"||y===\"erroring\"),@putByIdDirectPrivate(_,\"started\",1),@writableStreamDefaultControllerAdvanceQueueIfNeeded(_)},(y)=>{const P=@getByIdDirectPrivate(b,\"state\");@assert(P===\"writable\"||P===\"erroring\"),@putByIdDirectPrivate(_,\"started\",1),@writableStreamDealWithRejection(b,y)})})\n";
-
-// setUpWritableStreamDefaultControllerFromUnderlyingSink
-const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeLength = 573;
-static const JSC::Intrinsic s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode = "(function (_,p,f,I,j){\"use strict\";const q=new @WritableStreamDefaultController;let v=()=>{},x=()=>{return @Promise.@resolve()},B=()=>{return @Promise.@resolve()},C=()=>{return @Promise.@resolve()};if(\"start\"in f){const E=f[\"start\"];v=()=>@promiseInvokeOrNoopMethodNoCatch(p,E,[q])}if(\"write\"in f){const E=f[\"write\"];x=(F)=>@promiseInvokeOrNoopMethod(p,E,[F,q])}if(\"close\"in f){const E=f[\"close\"];B=()=>@promiseInvokeOrNoopMethod(p,E,[])}if(\"abort\"in f){const E=f[\"abort\"];C=(F)=>@promiseInvokeOrNoopMethod(p,E,[F])}@setUpWritableStreamDefaultController(_,q,v,x,B,C,I,j)})\n";
-
-// writableStreamDefaultControllerAdvanceQueueIfNeeded
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeLength = 582;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCode = "(function (i){\"use strict\";const d=@getByIdDirectPrivate(i,\"stream\");if(@getByIdDirectPrivate(i,\"started\")!==1)return;if(@assert(d!==@undefined),@getByIdDirectPrivate(d,\"inFlightWriteRequest\")!==@undefined)return;const f=@getByIdDirectPrivate(d,\"state\");if(@assert(f!==\"closed\"||f!==\"errored\"),f===\"erroring\"){@writableStreamFinishErroring(d);return}const g=@getByIdDirectPrivate(i,\"queue\");if(g.content\?.isEmpty()\?\?!1)return;const y=@peekQueueValue(g);if(y===@isCloseSentinel)@writableStreamDefaultControllerProcessClose(i);else @writableStreamDefaultControllerProcessWrite(i,y)})\n";
-
-// isCloseSentinel
-const JSC::ConstructAbility s_writableStreamInternalsIsCloseSentinelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsIsCloseSentinelCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsIsCloseSentinelCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsIsCloseSentinelCodeLength = 29;
-static const JSC::Intrinsic s_writableStreamInternalsIsCloseSentinelCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsIsCloseSentinelCode = "(function (){\"use strict\";})\n";
-
-// writableStreamDefaultControllerClearAlgorithms
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeLength = 248;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCode = "(function (i){\"use strict\";@putByIdDirectPrivate(i,\"writeAlgorithm\",@undefined),@putByIdDirectPrivate(i,\"closeAlgorithm\",@undefined),@putByIdDirectPrivate(i,\"abortAlgorithm\",@undefined),@putByIdDirectPrivate(i,\"strategySizeAlgorithm\",@undefined)})\n";
-
-// writableStreamDefaultControllerClose
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeLength = 160;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerCloseCode = "(function (d){\"use strict\";@enqueueValueWithSize(@getByIdDirectPrivate(d,\"queue\"),@isCloseSentinel,0),@writableStreamDefaultControllerAdvanceQueueIfNeeded(d)})\n";
-
-// writableStreamDefaultControllerError
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeLength = 237;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerErrorCode = "(function (_,b){\"use strict\";const d=@getByIdDirectPrivate(_,\"stream\");@assert(d!==@undefined),@assert(@getByIdDirectPrivate(d,\"state\")===\"writable\"),@writableStreamDefaultControllerClearAlgorithms(_),@writableStreamStartErroring(d,b)})\n";
-
-// writableStreamDefaultControllerErrorIfNeeded
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeLength = 165;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCode = "(function (_,a){\"use strict\";const d=@getByIdDirectPrivate(_,\"stream\");if(@getByIdDirectPrivate(d,\"state\")===\"writable\")@writableStreamDefaultControllerError(_,a)})\n";
-
-// writableStreamDefaultControllerGetBackpressure
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeLength = 89;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCode = "(function (_){\"use strict\";return @writableStreamDefaultControllerGetDesiredSize(_)<=0})\n";
-
-// writableStreamDefaultControllerGetChunkSize
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeLength = 181;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCode = "(function (a,d){\"use strict\";try{return @getByIdDirectPrivate(a,\"strategySizeAlgorithm\").@call(@undefined,d)}catch(i){return @writableStreamDefaultControllerErrorIfNeeded(a,i),1}})\n";
-
-// writableStreamDefaultControllerGetDesiredSize
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeLength = 113;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCode = "(function (q){\"use strict\";return @getByIdDirectPrivate(q,\"strategyHWM\")-@getByIdDirectPrivate(q,\"queue\").size})\n";
-
-// writableStreamDefaultControllerProcessClose
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeLength = 441;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCode = "(function (_){\"use strict\";const d=@getByIdDirectPrivate(_,\"stream\");@writableStreamMarkCloseRequestInFlight(d),@dequeueValue(@getByIdDirectPrivate(_,\"queue\")),@assert(@getByIdDirectPrivate(_,\"queue\").content\?.isEmpty());const h=@getByIdDirectPrivate(_,\"closeAlgorithm\").@call();@writableStreamDefaultControllerClearAlgorithms(_),h.@then(()=>{@writableStreamFinishInFlightClose(d)},(i)=>{@writableStreamFinishInFlightCloseWithError(d,i)})})\n";
-
-// writableStreamDefaultControllerProcessWrite
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeLength = 734;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode = "(function (i,_){\"use strict\";const W=@getByIdDirectPrivate(i,\"stream\");@writableStreamMarkFirstWriteRequestInFlight(W),@getByIdDirectPrivate(i,\"writeAlgorithm\").@call(@undefined,_).@then(()=>{@writableStreamFinishInFlightWrite(W);const f=@getByIdDirectPrivate(W,\"state\");if(@assert(f===\"writable\"||f===\"erroring\"),@dequeueValue(@getByIdDirectPrivate(i,\"queue\")),!@writableStreamCloseQueuedOrInFlight(W)&&f===\"writable\"){const g=@writableStreamDefaultControllerGetBackpressure(i);@writableStreamUpdateBackpressure(W,g)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(i)},(f)=>{if(@getByIdDirectPrivate(W,\"state\")===\"writable\")@writableStreamDefaultControllerClearAlgorithms(i);@writableStreamFinishInFlightWriteWithError(W,f)})})\n";
-
-// writableStreamDefaultControllerWrite
-const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength = 450;
-static const JSC::Intrinsic s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode = "(function (C,P,d){\"use strict\";try{@enqueueValueWithSize(@getByIdDirectPrivate(C,\"queue\"),P,d);const f=@getByIdDirectPrivate(C,\"stream\"),g=@getByIdDirectPrivate(f,\"state\");if(!@writableStreamCloseQueuedOrInFlight(f)&&g===\"writable\"){const i=@writableStreamDefaultControllerGetBackpressure(C);@writableStreamUpdateBackpressure(f,i)}@writableStreamDefaultControllerAdvanceQueueIfNeeded(C)}catch(f){@writableStreamDefaultControllerErrorIfNeeded(C,f)}})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().writableStreamInternalsBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().writableStreamInternalsBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* TransformStreamInternals.ts */
-// isTransformStream
-const JSC::ConstructAbility s_transformStreamInternalsIsTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsIsTransformStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsIsTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsIsTransformStreamCodeLength = 88;
-static const JSC::Intrinsic s_transformStreamInternalsIsTransformStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsIsTransformStreamCode = "(function (d){\"use strict\";return @isObject(d)&&!!@getByIdDirectPrivate(d,\"readable\")})\n";
-
-// isTransformStreamDefaultController
-const JSC::ConstructAbility s_transformStreamInternalsIsTransformStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsIsTransformStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsIsTransformStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsIsTransformStreamDefaultControllerCodeLength = 98;
-static const JSC::Intrinsic s_transformStreamInternalsIsTransformStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsIsTransformStreamDefaultControllerCode = "(function (i){\"use strict\";return @isObject(i)&&!!@getByIdDirectPrivate(i,\"transformAlgorithm\")})\n";
-
-// createTransformStream
-const JSC::ConstructAbility s_transformStreamInternalsCreateTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsCreateTransformStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsCreateTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsCreateTransformStreamCodeLength = 513;
-static const JSC::Intrinsic s_transformStreamInternalsCreateTransformStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsCreateTransformStreamCode = "(function (c,I,_,j,q,u,v){\"use strict\";if(j===@undefined)j=1;if(q===@undefined)q=()=>1;if(u===@undefined)u=0;if(v===@undefined)v=()=>1;@assert(j>=0),@assert(u>=0);const x={};@putByIdDirectPrivate(x,\"TransformStream\",!0);const B=new @TransformStream(x),D=@newPromiseCapability(@Promise);@initializeTransformStream(B,D.@promise,j,q,u,v);const E=new @TransformStreamDefaultController;return @setUpTransformStreamDefaultController(B,E,I,_),c().@then(()=>{D.@resolve.@call()},(F)=>{D.@reject.@call(@undefined,F)}),B})\n";
-
-// initializeTransformStream
-const JSC::ConstructAbility s_transformStreamInternalsInitializeTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsInitializeTransformStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsInitializeTransformStreamCodeLength = 1015;
-static const JSC::Intrinsic s_transformStreamInternalsInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsInitializeTransformStreamCode = "(function (_,B,I,f,j,q){\"use strict\";const v=()=>{return B},x=(N)=>{return @transformStreamDefaultSinkWriteAlgorithm(_,N)},C=(N)=>{return @transformStreamDefaultSinkAbortAlgorithm(_,N)},D=()=>{return @transformStreamDefaultSinkCloseAlgorithm(_)},E=@createWritableStream(v,x,D,C,I,f),F=()=>{return @transformStreamDefaultSourcePullAlgorithm(_)},G=(N)=>{return @transformStreamErrorWritableAndUnblockWrite(_,N),@Promise.@resolve()},J={};@putByIdDirectPrivate(J,\"start\",v),@putByIdDirectPrivate(J,\"pull\",F),@putByIdDirectPrivate(J,\"cancel\",G);const K={};@putByIdDirectPrivate(K,\"size\",q),@putByIdDirectPrivate(K,\"highWaterMark\",j);const L=new @ReadableStream(J,K);@putByIdDirectPrivate(_,\"writable\",E),@putByIdDirectPrivate(_,\"internalWritable\",@getInternalWritableStream(E)),@putByIdDirectPrivate(_,\"readable\",L),@putByIdDirectPrivate(_,\"backpressure\",@undefined),@putByIdDirectPrivate(_,\"backpressureChangePromise\",@undefined),@transformStreamSetBackpressure(_,!0),@putByIdDirectPrivate(_,\"controller\",@undefined)})\n";
-
-// transformStreamError
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamErrorCodeLength = 222;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamErrorCode = "(function (i,y){\"use strict\";const c=@getByIdDirectPrivate(i,\"readable\"),f=@getByIdDirectPrivate(c,\"readableStreamController\");@readableStreamDefaultControllerError(f,y),@transformStreamErrorWritableAndUnblockWrite(i,y)})\n";
-
-// transformStreamErrorWritableAndUnblockWrite
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeLength = 339;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode = "(function (c,B){\"use strict\";@transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(c,\"controller\"));const S=@getByIdDirectPrivate(c,\"internalWritable\");if(@writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(S,\"controller\"),B),@getByIdDirectPrivate(c,\"backpressure\"))@transformStreamSetBackpressure(c,!1)})\n";
-
-// transformStreamSetBackpressure
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamSetBackpressureCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamSetBackpressureCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamSetBackpressureCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamSetBackpressureCodeLength = 309;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamSetBackpressureCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamSetBackpressureCode = "(function (_,y){\"use strict\";@assert(@getByIdDirectPrivate(_,\"backpressure\")!==y);const d=@getByIdDirectPrivate(_,\"backpressureChangePromise\");if(d!==@undefined)d.@resolve.@call();@putByIdDirectPrivate(_,\"backpressureChangePromise\",@newPromiseCapability(@Promise)),@putByIdDirectPrivate(_,\"backpressure\",y)})\n";
-
-// setUpTransformStreamDefaultController
-const JSC::ConstructAbility s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeLength = 294;
-static const JSC::Intrinsic s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerCode = "(function (_,p,d,b){\"use strict\";@assert(@isTransformStream(_)),@assert(@getByIdDirectPrivate(_,\"controller\")===@undefined),@putByIdDirectPrivate(p,\"stream\",_),@putByIdDirectPrivate(_,\"controller\",p),@putByIdDirectPrivate(p,\"transformAlgorithm\",d),@putByIdDirectPrivate(p,\"flushAlgorithm\",b)})\n";
-
-// setUpTransformStreamDefaultControllerFromTransformer
-const JSC::ConstructAbility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeLength = 449;
-static const JSC::Intrinsic s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode = "(function (_,b,d){\"use strict\";const j=new @TransformStreamDefaultController;let p=(v)=>{try{@transformStreamDefaultControllerEnqueue(j,v)}catch(w){return @Promise.@reject(w)}return @Promise.@resolve()},q=()=>{return @Promise.@resolve()};if(\"transform\"in d)p=(v)=>{return @promiseInvokeOrNoopMethod(b,d[\"transform\"],[v,j])};if(\"flush\"in d)q=()=>{return @promiseInvokeOrNoopMethod(b,d[\"flush\"],[j])};@setUpTransformStreamDefaultController(_,j,p,q)})\n";
-
-// transformStreamDefaultControllerClearAlgorithms
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeLength = 131;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCode = "(function (v){\"use strict\";@putByIdDirectPrivate(v,\"transformAlgorithm\",!0),@putByIdDirectPrivate(v,\"flushAlgorithm\",@undefined)})\n";
-
-// transformStreamDefaultControllerEnqueue
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeLength = 622;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode = "(function (_,g){\"use strict\";const E=@getByIdDirectPrivate(_,\"stream\"),S=@getByIdDirectPrivate(E,\"readable\"),f=@getByIdDirectPrivate(S,\"readableStreamController\");if(@assert(f!==@undefined),!@readableStreamDefaultControllerCanCloseOrEnqueue(f))@throwTypeError(\"TransformStream.readable cannot close or enqueue\");try{@readableStreamDefaultControllerEnqueue(f,g)}catch(j){throw @transformStreamErrorWritableAndUnblockWrite(E,j),@getByIdDirectPrivate(S,\"storedError\")}const i=!@readableStreamDefaultControllerShouldCallPull(f);if(i!==@getByIdDirectPrivate(E,\"backpressure\"))@assert(i),@transformStreamSetBackpressure(E,!0)})\n";
-
-// transformStreamDefaultControllerError
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeLength = 90;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultControllerErrorCode = "(function (f,B){\"use strict\";@transformStreamError(@getByIdDirectPrivate(f,\"stream\"),B)})\n";
-
-// transformStreamDefaultControllerPerformTransform
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeLength = 277;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode = "(function (_,d){\"use strict\";const f=@newPromiseCapability(@Promise);return @getByIdDirectPrivate(_,\"transformAlgorithm\").@call(@undefined,d).@then(()=>{f.@resolve()},(j)=>{@transformStreamError(@getByIdDirectPrivate(_,\"stream\"),j),f.@reject.@call(@undefined,j)}),f.@promise})\n";
-
-// transformStreamDefaultControllerTerminate
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeLength = 367;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultControllerTerminateCode = "(function (i){\"use strict\";const S=@getByIdDirectPrivate(i,\"stream\"),f=@getByIdDirectPrivate(S,\"readable\"),g=@getByIdDirectPrivate(f,\"readableStreamController\");if(@readableStreamDefaultControllerCanCloseOrEnqueue(g))@readableStreamDefaultControllerClose(g);const h=@makeTypeError(\"the stream has been terminated\");@transformStreamErrorWritableAndUnblockWrite(S,h)})\n";
-
-// transformStreamDefaultSinkWriteAlgorithm
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeLength = 764;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode = "(function (_,d){\"use strict\";const f=@getByIdDirectPrivate(_,\"internalWritable\");@assert(@getByIdDirectPrivate(f,\"state\")===\"writable\");const j=@getByIdDirectPrivate(_,\"controller\");if(@getByIdDirectPrivate(_,\"backpressure\")){const q=@newPromiseCapability(@Promise),v=@getByIdDirectPrivate(_,\"backpressureChangePromise\");return @assert(v!==@undefined),v.@promise.@then(()=>{const x=@getByIdDirectPrivate(f,\"state\");if(x===\"erroring\"){q.@reject.@call(@undefined,@getByIdDirectPrivate(f,\"storedError\"));return}@assert(x===\"writable\"),@transformStreamDefaultControllerPerformTransform(j,d).@then(()=>{q.@resolve()},(z)=>{q.@reject.@call(@undefined,z)})},(x)=>{q.@reject.@call(@undefined,x)}),q.@promise}return @transformStreamDefaultControllerPerformTransform(j,d)})\n";
-
-// transformStreamDefaultSinkAbortAlgorithm
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeLength = 85;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCode = "(function (l,c){\"use strict\";return @transformStreamError(l,c),@Promise.@resolve()})\n";
-
-// transformStreamDefaultSinkCloseAlgorithm
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeLength = 789;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode = "(function (_){\"use strict\";const j=@getByIdDirectPrivate(_,\"readable\"),k=@getByIdDirectPrivate(_,\"controller\"),q=@getByIdDirectPrivate(j,\"readableStreamController\"),v=@getByIdDirectPrivate(k,\"flushAlgorithm\");@assert(v!==@undefined);const w=@getByIdDirectPrivate(k,\"flushAlgorithm\").@call();@transformStreamDefaultControllerClearAlgorithms(k);const x=@newPromiseCapability(@Promise);return w.@then(()=>{if(@getByIdDirectPrivate(j,\"state\")===@streamErrored){x.@reject.@call(@undefined,@getByIdDirectPrivate(j,\"storedError\"));return}if(@readableStreamDefaultControllerCanCloseOrEnqueue(q))@readableStreamDefaultControllerClose(q);x.@resolve()},(z)=>{@transformStreamError(@getByIdDirectPrivate(k,\"stream\"),z),x.@reject.@call(@undefined,@getByIdDirectPrivate(j,\"storedError\"))}),x.@promise})\n";
-
-// transformStreamDefaultSourcePullAlgorithm
-const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeLength = 260;
-static const JSC::Intrinsic s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCode = "(function (_){\"use strict\";return @assert(@getByIdDirectPrivate(_,\"backpressure\")),@assert(@getByIdDirectPrivate(_,\"backpressureChangePromise\")!==@undefined),@transformStreamSetBackpressure(_,!1),@getByIdDirectPrivate(_,\"backpressureChangePromise\").@promise})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().transformStreamInternalsBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().transformStreamInternalsBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ProcessObjectInternals.ts */
-// binding
-const JSC::ConstructAbility s_processObjectInternalsBindingCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_processObjectInternalsBindingCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_processObjectInternalsBindingCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_processObjectInternalsBindingCodeLength = 473;
-static const JSC::Intrinsic s_processObjectInternalsBindingCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_processObjectInternalsBindingCode = "(function (f){\"use strict\";if(f!==\"constants\")@throwTypeError(\"process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.\");var r=globalThis.Symbol.for(\"process.bindings.constants\"),p=globalThis[r];if(!p){const{constants:u}=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](\"createImportMeta\",\"node:process\").require(\"node:fs\");p={fs:u,zlib:{},crypto:{},os:@Bun._Os().constants},globalThis[r]=p}return p})\n";
-
-// getStdioWriteStream
-const JSC::ConstructAbility s_processObjectInternalsGetStdioWriteStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 4250;
-static const JSC::Intrinsic s_processObjectInternalsGetStdioWriteStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (j,z){\"use strict\";var B={path:\"node:process\",require:z},G=(N)=>B.require(N);function H(N){var{Duplex:O,eos:Q,destroy:U}=G(\"node:stream\"),V=class X extends O{#$;#j;#z=!0;#B=!0;#G;#H;#J;#K;#L;#M;get isTTY(){return this.#M\?\?=G(\"node:tty\").isatty(N)}get fd(){return N}constructor(Z){super({readable:!0,writable:!0});this.#G=`/dev/fd/${Z}`}#N(Z){const Y=this.#H;if(this.#H=null,Y)Y(Z);else if(Z)this.destroy(Z);else if(!this.#z&&!this.#B)this.destroy()}_destroy(Z,Y){if(!Z&&this.#H!==null){var P=class A extends Error{code;name;constructor(T=\"The operation was aborted\",x=void 0){if(x!==void 0&&typeof x!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(x,null,2)}`);super(T,x);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};Z=new P}if(this.#J=null,this.#K=null,this.#H===null)Y(Z);else{if(this.#H=Y,this.#$)U(this.#$,Z);if(this.#j)U(this.#j,Z)}}_write(Z,Y,P){if(!this.#$){var{createWriteStream:A}=G(\"node:fs\"),T=this.#$=A(this.#G);T.on(\"finish\",()=>{if(this.#K){const x=this.#K;this.#K=null,x()}}),T.on(\"drain\",()=>{if(this.#J){const x=this.#J;this.#J=null,x()}}),Q(T,(x)=>{if(this.#B=!1,x)U(T,x);this.#N(x)})}if(T.write(Z,Y))P();else this.#J=P}_final(Z){this.#$&&this.#$.end(),this.#K=Z}#O(){var{createReadStream:Z}=G(\"node:fs\"),Y=this.#j=Z(this.#G);return Y.on(\"readable\",()=>{if(this.#L){const P=this.#L;this.#L=null,P()}else this.read()}),Y.on(\"end\",()=>{this.push(null)}),Q(Y,(P)=>{if(this.#z=!1,P)U(Y,P);this.#N(P)}),Y}_read(){var Z=this.#j;if(!Z)Z=this.#O();while(!0){const Y=Z.read();if(Y===null||!this.push(Y))return}}};return new V(N)}var{EventEmitter:J}=G(\"node:events\");function K(N){if(!N)return!0;var O=N.toLowerCase();return O===\"utf8\"||O===\"utf-8\"||O===\"buffer\"||O===\"binary\"}var L,M=class N extends J{#$;#j;#z;#B;bytesWritten=0;setDefaultEncoding(O){if(this.#j||!K(O))return this.#J(),this.#j.setDefaultEncoding(O)}#G(){switch(this.#$){case 1:{var O=@Bun.stdout.writer({highWaterMark:0});return O.unref(),O}case 2:{var O=@Bun.stderr.writer({highWaterMark:0});return O.unref(),O}default:throw new Error(\"Unsupported writer\")}}#H(){return this.#z\?\?=this.#G()}constructor(O){super();this.#$=O}get fd(){return this.#$}get isTTY(){return this.#B\?\?=G(\"node:tty\").isatty(this.#$)}cursorTo(O,Q,U){return(L\?\?=G(\"readline\")).cursorTo(this,O,Q,U)}moveCursor(O,Q,U){return(L\?\?=G(\"readline\")).moveCursor(this,O,Q,U)}clearLine(O,Q){return(L\?\?=G(\"readline\")).clearLine(this,O,Q)}clearScreenDown(O){return(L\?\?=G(\"readline\")).clearScreenDown(this,O)}ref(){this.#H().ref()}unref(){this.#H().unref()}on(O,Q){if(O===\"close\"||O===\"finish\")return this.#J(),this.#j.on(O,Q);if(O===\"drain\")return super.on(\"drain\",Q);if(O===\"error\")return super.on(\"error\",Q);return super.on(O,Q)}get _writableState(){return this.#J(),this.#j._writableState}get _readableState(){return this.#J(),this.#j._readableState}pipe(O){return this.#J(),this.#j.pipe(O)}unpipe(O){return this.#J(),this.#j.unpipe(O)}#J(){if(this.#j)return;this.#j=H(this.#$);const O=this.eventNames();for(let Q of O)this.#j.on(Q,(...U)=>{this.emit(Q,...U)})}#K(O){var Q=this.#H();const U=Q.write(O);this.bytesWritten+=U;const V=Q.flush(!1);return!!(U||V)}#L(O,Q){if(!K(Q))return this.#J(),this.#j.write(O,Q);return this.#K(O)}#M(O,Q){if(Q)this.emit(\"error\",Q);try{O(Q\?Q:null)}catch(U){this.emit(\"error\",U)}}#N(O,Q,U){if(!K(Q))return this.#J(),this.#j.write(O,Q,U);var V=this.#H();const X=V.write(O),Z=V.flush(!0);if(Z\?.then)return Z.then(()=>{this.#M(U),this.emit(\"drain\")},(Y)=>this.#M(U,Y)),!1;return queueMicrotask(()=>{this.#M(U)}),!!(X||Z)}write(O,Q,U){const V=this._write(O,Q,U);if(V)this.emit(\"drain\");return V}get hasColors(){return @Bun.tty[this.#$].hasColors}_write(O,Q,U){var V=this.#j;if(V)return V.write(O,Q,U);switch(arguments.length){case 0:{var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}case 1:return this.#K(O);case 2:if(typeof Q===\"function\")return this.#N(O,\"\",Q);else if(typeof Q===\"string\")return this.#L(O,Q);default:{if(typeof Q!==\"undefined\"&&typeof Q!==\"string\"||typeof U!==\"undefined\"&&typeof U!==\"function\"){var X=new Error(\"Invalid arguments\");throw X.code=\"ERR_INVALID_ARG_TYPE\",X}if(typeof U===\"undefined\")return this.#L(O,Q);return this.#N(O,Q,U)}}}destroy(){return this}end(){return this}};return new M(j)})\n";
-
-// getStdinStream
-const JSC::ConstructAbility s_processObjectInternalsGetStdinStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_processObjectInternalsGetStdinStreamCodeLength = 1799;
-static const JSC::Intrinsic s_processObjectInternalsGetStdinStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_processObjectInternalsGetStdinStreamCode = "(function (j,T,Y){\"use strict\";var z={path:\"node:process\",require:T},G=(M)=>z.require(M),{Duplex:H,eos:J,destroy:K}=G(\"node:stream\"),L=class M extends H{#$;#j;#T;#Y=!0;#z=!1;#G=!0;#H;#J;#K;get isTTY(){return G(\"tty\").isatty(j)}get fd(){return j}constructor(){super({readable:!0,writable:!0})}#L(N){const P=this.#J;if(this.#J=null,P)P(N);else if(N)this.destroy(N);else if(!this.#Y&&!this.#G)this.destroy()}_destroy(N,P){if(!N&&this.#J!==null){var Q=class U extends Error{constructor(V=\"The operation was aborted\",X=void 0){if(X!==void 0&&typeof X!==\"object\")throw new Error(`Invalid AbortError options:\\n\\n${JSON.stringify(X,null,2)}`);super(V,X);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}};N=new Q}if(this.#J===null)P(N);else if(this.#J=P,this.#T)K(this.#T,N)}setRawMode(N){}on(N,P){if(N===\"readable\")this.ref(),this.#z=!0;return super.on(N,P)}pause(){return this.unref(),super.pause()}resume(){return this.ref(),super.resume()}ref(){this.#$\?\?=Y.stdin.stream().getReader(),this.#j\?\?=setInterval(()=>{},1<<30)}unref(){if(this.#j)clearInterval(this.#j),this.#j=null}async#M(){try{var N,P;const Q=this.#$.readMany();if(!Q\?.then)({done:N,value:P}=Q);else({done:N,value:P}=await Q);if(!N){this.push(P[0]);const U=P.length;for(let V=1;V<U;V++)this.push(P[V])}else this.push(null),this.pause(),this.#Y=!1,this.#L()}catch(Q){this.#Y=!1,this.#L(Q)}}_read(N){if(this.#z)this.unref(),this.#z=!1;this.#M()}#N(){var{createWriteStream:N}=G(\"node:fs\"),P=this.#T=N(\"/dev/fd/0\");return P.on(\"finish\",()=>{if(this.#H){const Q=this.#H;this.#H=null,Q()}}),P.on(\"drain\",()=>{if(this.#K){const Q=this.#K;this.#K=null,Q()}}),J(P,(Q)=>{if(this.#G=!1,Q)K(P,Q);this.#L(Q)}),P}_write(N,P,Q){var U=this.#T;if(!U)U=this.#N();if(U.write(N,P))Q();else this.#K=Q}_final(N){this.#T.end(),this.#H=(...P)=>N(...P)}};return new L})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().processObjectInternalsBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().processObjectInternalsBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* TransformStream.ts */
-// initializeTransformStream
-const JSC::ConstructAbility s_transformStreamInitializeTransformStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamInitializeTransformStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamInitializeTransformStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamInitializeTransformStreamCodeLength = 1334;
-static const JSC::Intrinsic s_transformStreamInitializeTransformStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamInitializeTransformStreamCode = "(function (){\"use strict\";let O=arguments[0];if(@isObject(O)&&@getByIdDirectPrivate(O,\"TransformStream\"))return this;let T=arguments[1],_=arguments[2];if(O===@undefined)O=null;if(_===@undefined)_={};if(T===@undefined)T={};let j={};if(O!==null){if(\"start\"in O){if(j[\"start\"]=O[\"start\"],typeof j[\"start\"]!==\"function\")@throwTypeError(\"transformer.start should be a function\")}if(\"transform\"in O){if(j[\"transform\"]=O[\"transform\"],typeof j[\"transform\"]!==\"function\")@throwTypeError(\"transformer.transform should be a function\")}if(\"flush\"in O){if(j[\"flush\"]=O[\"flush\"],typeof j[\"flush\"]!==\"function\")@throwTypeError(\"transformer.flush should be a function\")}if(\"readableType\"in O)@throwRangeError(\"TransformStream transformer has a readableType\");if(\"writableType\"in O)@throwRangeError(\"TransformStream transformer has a writableType\")}const q=@extractHighWaterMark(_,0),u=@extractSizeAlgorithm(_),v=@extractHighWaterMark(T,1),x=@extractSizeAlgorithm(T),B=@newPromiseCapability(@Promise);if(@initializeTransformStream(this,B.@promise,v,x,q,u),@setUpTransformStreamDefaultControllerFromTransformer(this,O,j),(\"start\"in j)){const E=@getByIdDirectPrivate(this,\"controller\");(()=>@promiseInvokeOrNoopMethodNoCatch(O,j[\"start\"],[E]))().@then(()=>{B.@resolve.@call()},(G)=>{B.@reject.@call(@undefined,G)})}else B.@resolve.@call();return this})\n";
-
-// readable
-const JSC::ConstructAbility s_transformStreamReadableCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamReadableCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamReadableCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamReadableCodeLength = 158;
-static const JSC::Intrinsic s_transformStreamReadableCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamReadableCode = "(function (){\"use strict\";if(!@isTransformStream(this))throw @makeThisTypeError(\"TransformStream\",\"readable\");return @getByIdDirectPrivate(this,\"readable\")})\n";
-
-// writable
-const JSC::ConstructAbility s_transformStreamWritableCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamWritableCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamWritableCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamWritableCodeLength = 158;
-static const JSC::Intrinsic s_transformStreamWritableCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamWritableCode = "(function (){\"use strict\";if(!@isTransformStream(this))throw @makeThisTypeError(\"TransformStream\",\"writable\");return @getByIdDirectPrivate(this,\"writable\")})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().transformStreamBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().transformStreamBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* JSBufferPrototype.ts */
-// setBigUint64
-const JSC::ConstructAbility s_jsBufferPrototypeSetBigUint64CodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeSetBigUint64CodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeSetBigUint64CodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeSetBigUint64CodeLength = 136;
-static const JSC::Intrinsic s_jsBufferPrototypeSetBigUint64CodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeSetBigUint64Code = "(function (i,r,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(i,r,c)})\n";
-
-// readInt8
-const JSC::ConstructAbility s_jsBufferPrototypeReadInt8CodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadInt8CodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadInt8CodeLength = 123;
-static const JSC::Intrinsic s_jsBufferPrototypeReadInt8CodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadInt8Code = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getInt8(r)})\n";
-
-// readUInt8
-const JSC::ConstructAbility s_jsBufferPrototypeReadUInt8CodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadUInt8CodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadUInt8CodeLength = 124;
-static const JSC::Intrinsic s_jsBufferPrototypeReadUInt8CodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadUInt8Code = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getUint8(r)})\n";
-
-// readInt16LE
-const JSC::ConstructAbility s_jsBufferPrototypeReadInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadInt16LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt16LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadInt16LECodeLength = 127;
-static const JSC::Intrinsic s_jsBufferPrototypeReadInt16LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadInt16LECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getInt16(r,!0)})\n";
-
-// readInt16BE
-const JSC::ConstructAbility s_jsBufferPrototypeReadInt16BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadInt16BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt16BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadInt16BECodeLength = 127;
-static const JSC::Intrinsic s_jsBufferPrototypeReadInt16BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadInt16BECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getInt16(r,!1)})\n";
-
-// readUInt16LE
-const JSC::ConstructAbility s_jsBufferPrototypeReadUInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadUInt16LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt16LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadUInt16LECodeLength = 128;
-static const JSC::Intrinsic s_jsBufferPrototypeReadUInt16LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadUInt16LECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getUint16(r,!0)})\n";
-
-// readUInt16BE
-const JSC::ConstructAbility s_jsBufferPrototypeReadUInt16BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadUInt16BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt16BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadUInt16BECodeLength = 128;
-static const JSC::Intrinsic s_jsBufferPrototypeReadUInt16BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadUInt16BECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getUint16(r,!1)})\n";
-
-// readInt32LE
-const JSC::ConstructAbility s_jsBufferPrototypeReadInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadInt32LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadInt32LECodeLength = 127;
-static const JSC::Intrinsic s_jsBufferPrototypeReadInt32LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadInt32LECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getInt32(r,!0)})\n";
-
-// readInt32BE
-const JSC::ConstructAbility s_jsBufferPrototypeReadInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadInt32BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadInt32BECodeLength = 127;
-static const JSC::Intrinsic s_jsBufferPrototypeReadInt32BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadInt32BECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getInt32(r,!1)})\n";
-
-// readUInt32LE
-const JSC::ConstructAbility s_jsBufferPrototypeReadUInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadUInt32LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadUInt32LECodeLength = 128;
-static const JSC::Intrinsic s_jsBufferPrototypeReadUInt32LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadUInt32LECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getUint32(r,!0)})\n";
-
-// readUInt32BE
-const JSC::ConstructAbility s_jsBufferPrototypeReadUInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadUInt32BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadUInt32BECodeLength = 128;
-static const JSC::Intrinsic s_jsBufferPrototypeReadUInt32BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadUInt32BECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getUint32(r,!1)})\n";
-
-// readIntLE
-const JSC::ConstructAbility s_jsBufferPrototypeReadIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadIntLECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadIntLECodeLength = 528;
-static const JSC::Intrinsic s_jsBufferPrototypeReadIntLECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadIntLECode = "(function (c,r){\"use strict\";const u=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return u.getInt8(c);case 2:return u.getInt16(c,!0);case 3:{const _=u.getUint16(c,!0)+u.getUint8(c+2)*65536;return _|(_&8388608)*510}case 4:return u.getInt32(c,!0);case 5:{const _=u.getUint8(c+4);return(_|(_&128)*33554430)*4294967296+u.getUint32(c,!0)}case 6:{const _=u.getUint16(c+4,!0);return(_|(_&32768)*131070)*4294967296+u.getUint32(c,!0)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n";
-
-// readIntBE
-const JSC::ConstructAbility s_jsBufferPrototypeReadIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadIntBECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadIntBECodeLength = 528;
-static const JSC::Intrinsic s_jsBufferPrototypeReadIntBECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadIntBECode = "(function (u,_){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(_){case 1:return d.getInt8(u);case 2:return d.getInt16(u,!1);case 3:{const r=d.getUint16(u+1,!1)+d.getUint8(u)*65536;return r|(r&8388608)*510}case 4:return d.getInt32(u,!1);case 5:{const r=d.getUint8(u);return(r|(r&128)*33554430)*4294967296+d.getUint32(u+1,!1)}case 6:{const r=d.getUint16(u,!1);return(r|(r&32768)*131070)*4294967296+d.getUint32(u+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n";
-
-// readUIntLE
-const JSC::ConstructAbility s_jsBufferPrototypeReadUIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadUIntLECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadUIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadUIntLECodeLength = 445;
-static const JSC::Intrinsic s_jsBufferPrototypeReadUIntLECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadUIntLECode = "(function (a,r){\"use strict\";const u=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return u.getUint8(a);case 2:return u.getUint16(a,!0);case 3:return u.getUint16(a,!0)+u.getUint8(a+2)*65536;case 4:return u.getUint32(a,!0);case 5:return u.getUint8(a+4)*4294967296+u.getUint32(a,!0);case 6:return u.getUint16(a+4,!0)*4294967296+u.getUint32(a,!0)}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n";
-
-// readUIntBE
-const JSC::ConstructAbility s_jsBufferPrototypeReadUIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadUIntBECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadUIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadUIntBECodeLength = 504;
-static const JSC::Intrinsic s_jsBufferPrototypeReadUIntBECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadUIntBECode = "(function (_,r){\"use strict\";const u=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:return u.getUint8(_);case 2:return u.getUint16(_,!1);case 3:return u.getUint16(_+1,!1)+u.getUint8(_)*65536;case 4:return u.getUint32(_,!1);case 5:{const c=u.getUint8(_);return(c|(c&128)*33554430)*4294967296+u.getUint32(_+1,!1)}case 6:{const c=u.getUint16(_,!1);return(c|(c&32768)*131070)*4294967296+u.getUint32(_+2,!1)}}@throwRangeError(\"byteLength must be >= 1 and <= 6\")})\n";
-
-// readFloatLE
-const JSC::ConstructAbility s_jsBufferPrototypeReadFloatLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadFloatLECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadFloatLECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadFloatLECodeLength = 129;
-static const JSC::Intrinsic s_jsBufferPrototypeReadFloatLECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadFloatLECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getFloat32(r,!0)})\n";
-
-// readFloatBE
-const JSC::ConstructAbility s_jsBufferPrototypeReadFloatBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadFloatBECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadFloatBECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadFloatBECodeLength = 129;
-static const JSC::Intrinsic s_jsBufferPrototypeReadFloatBECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadFloatBECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getFloat32(r,!1)})\n";
-
-// readDoubleLE
-const JSC::ConstructAbility s_jsBufferPrototypeReadDoubleLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadDoubleLECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadDoubleLECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadDoubleLECodeLength = 129;
-static const JSC::Intrinsic s_jsBufferPrototypeReadDoubleLECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadDoubleLECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getFloat64(r,!0)})\n";
-
-// readDoubleBE
-const JSC::ConstructAbility s_jsBufferPrototypeReadDoubleBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadDoubleBECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadDoubleBECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadDoubleBECodeLength = 129;
-static const JSC::Intrinsic s_jsBufferPrototypeReadDoubleBECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadDoubleBECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getFloat64(r,!1)})\n";
-
-// readBigInt64LE
-const JSC::ConstructAbility s_jsBufferPrototypeReadBigInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadBigInt64LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadBigInt64LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadBigInt64LECodeLength = 130;
-static const JSC::Intrinsic s_jsBufferPrototypeReadBigInt64LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadBigInt64LECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getBigInt64(r,!0)})\n";
-
-// readBigInt64BE
-const JSC::ConstructAbility s_jsBufferPrototypeReadBigInt64BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadBigInt64BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadBigInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadBigInt64BECodeLength = 130;
-static const JSC::Intrinsic s_jsBufferPrototypeReadBigInt64BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadBigInt64BECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getBigInt64(r,!1)})\n";
-
-// readBigUInt64LE
-const JSC::ConstructAbility s_jsBufferPrototypeReadBigUInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadBigUInt64LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadBigUInt64LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadBigUInt64LECodeLength = 131;
-static const JSC::Intrinsic s_jsBufferPrototypeReadBigUInt64LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadBigUInt64LECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getBigUint64(r,!0)})\n";
-
-// readBigUInt64BE
-const JSC::ConstructAbility s_jsBufferPrototypeReadBigUInt64BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeReadBigUInt64BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeReadBigUInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeReadBigUInt64BECodeLength = 131;
-static const JSC::Intrinsic s_jsBufferPrototypeReadBigUInt64BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeReadBigUInt64BECode = "(function (r){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).getBigUint64(r,!1)})\n";
-
-// writeInt8
-const JSC::ConstructAbility s_jsBufferPrototypeWriteInt8CodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteInt8CodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteInt8CodeLength = 131;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteInt8CodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteInt8Code = "(function (d,h){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt8(h,d),h+1})\n";
-
-// writeUInt8
-const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt8CodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt8CodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt8CodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteUInt8CodeLength = 132;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt8CodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteUInt8Code = "(function (d,h){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint8(h,d),h+1})\n";
-
-// writeInt16LE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteInt16LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt16LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteInt16LECodeLength = 135;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteInt16LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteInt16LECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(d,r,!0),d+2})\n";
-
-// writeInt16BE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteInt16BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt16BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteInt16BECodeLength = 135;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteInt16BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteInt16BECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt16(d,r,!1),d+2})\n";
-
-// writeUInt16LE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt16LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt16LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt16LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteUInt16LECodeLength = 136;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt16LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteUInt16LECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(d,r,!0),d+2})\n";
-
-// writeUInt16BE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt16BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt16BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt16BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteUInt16BECodeLength = 136;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt16BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteUInt16BECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint16(d,r,!1),d+2})\n";
-
-// writeInt32LE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteInt32LECodeLength = 135;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteInt32LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteInt32LECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(d,r,!0),d+4})\n";
-
-// writeInt32BE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteInt32BECodeLength = 135;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteInt32BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteInt32BECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setInt32(d,r,!1),d+4})\n";
-
-// writeUInt32LE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteUInt32LECodeLength = 136;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt32LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteUInt32LECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(d,r,!0),d+4})\n";
-
-// writeUInt32BE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteUInt32BECodeLength = 136;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteUInt32BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteUInt32BECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setUint32(d,r,!1),d+4})\n";
-
-// writeIntLE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteIntLECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteIntLECodeLength = 573;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteIntLECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteIntLECode = "(function (r,c,d){\"use strict\";const p=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(d){case 1:{p.setInt8(c,r);break}case 2:{p.setInt16(c,r,!0);break}case 3:{p.setUint16(c,r&65535,!0),p.setInt8(c+2,Math.floor(r*0.0000152587890625));break}case 4:{p.setInt32(c,r,!0);break}case 5:{p.setUint32(c,r|0,!0),p.setInt8(c+4,Math.floor(r*0.00000000023283064365386964));break}case 6:{p.setUint32(c,r|0,!0),p.setInt16(c+4,Math.floor(r*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return c+d})\n";
-
-// writeIntBE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteIntBECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteIntBECodeLength = 573;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteIntBECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteIntBECode = "(function (r,_,c){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{d.setInt8(_,r);break}case 2:{d.setInt16(_,r,!1);break}case 3:{d.setUint16(_+1,r&65535,!1),d.setInt8(_,Math.floor(r*0.0000152587890625));break}case 4:{d.setInt32(_,r,!1);break}case 5:{d.setUint32(_+1,r|0,!1),d.setInt8(_,Math.floor(r*0.00000000023283064365386964));break}case 6:{d.setUint32(_+2,r|0,!1),d.setInt16(_,Math.floor(r*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return _+c})\n";
-
-// writeUIntLE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntLECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntLECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteUIntLECodeLength = 579;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntLECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteUIntLECode = "(function (r,_,c){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(c){case 1:{d.setUint8(_,r);break}case 2:{d.setUint16(_,r,!0);break}case 3:{d.setUint16(_,r&65535,!0),d.setUint8(_+2,Math.floor(r*0.0000152587890625));break}case 4:{d.setUint32(_,r,!0);break}case 5:{d.setUint32(_,r|0,!0),d.setUint8(_+4,Math.floor(r*0.00000000023283064365386964));break}case 6:{d.setUint32(_,r|0,!0),d.setUint16(_+4,Math.floor(r*0.00000000023283064365386964),!0);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return _+c})\n";
-
-// writeUIntBE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntBECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntBECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteUIntBECodeLength = 579;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteUIntBECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteUIntBECode = "(function (c,k,r){\"use strict\";const d=this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength);switch(r){case 1:{d.setUint8(k,c);break}case 2:{d.setUint16(k,c,!1);break}case 3:{d.setUint16(k+1,c&65535,!1),d.setUint8(k,Math.floor(c*0.0000152587890625));break}case 4:{d.setUint32(k,c,!1);break}case 5:{d.setUint32(k+1,c|0,!1),d.setUint8(k,Math.floor(c*0.00000000023283064365386964));break}case 6:{d.setUint32(k+2,c|0,!1),d.setUint16(k,Math.floor(c*0.00000000023283064365386964),!1);break}default:@throwRangeError(\"byteLength must be >= 1 and <= 6\")}return k+r})\n";
-
-// writeFloatLE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatLECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatLECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteFloatLECodeLength = 137;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteFloatLECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteFloatLECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(d,r,!0),d+4})\n";
-
-// writeFloatBE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatBECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatBECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteFloatBECodeLength = 137;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteFloatBECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteFloatBECode = "(function (r,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat32(c,r,!1),c+4})\n";
-
-// writeDoubleLE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleLECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteDoubleLECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteDoubleLECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteDoubleLECodeLength = 137;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteDoubleLECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteDoubleLECode = "(function (r,d){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(d,r,!0),d+8})\n";
-
-// writeDoubleBE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleBECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteDoubleBECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteDoubleBECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteDoubleBECodeLength = 137;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteDoubleBECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteDoubleBECode = "(function (r,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setFloat64(c,r,!1),c+8})\n";
-
-// writeBigInt64LE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteBigInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteBigInt64LECodeLength = 138;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteBigInt64LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteBigInt64LECode = "(function (r,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(c,r,!0),c+8})\n";
-
-// writeBigInt64BE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteBigInt64BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteBigInt64BECodeLength = 138;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteBigInt64BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteBigInt64BECode = "(function (r,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigInt64(c,r,!1),c+8})\n";
-
-// writeBigUInt64LE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64LECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64LECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64LECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteBigUInt64LECodeLength = 139;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteBigUInt64LECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteBigUInt64LECode = "(function (r,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(c,r,!0),c+8})\n";
-
-// writeBigUInt64BE
-const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64BECodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64BECodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64BECodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeWriteBigUInt64BECodeLength = 139;
-static const JSC::Intrinsic s_jsBufferPrototypeWriteBigUInt64BECodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeWriteBigUInt64BECode = "(function (r,c){\"use strict\";return(this.@dataView||=new DataView(this.buffer,this.byteOffset,this.byteLength)).setBigUint64(c,r,!1),c+8})\n";
-
-// utf8Write
-const JSC::ConstructAbility s_jsBufferPrototypeUtf8WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeUtf8WriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeUtf8WriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeUtf8WriteCodeLength = 65;
-static const JSC::Intrinsic s_jsBufferPrototypeUtf8WriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeUtf8WriteCode = "(function (r,u,a){\"use strict\";return this.write(r,u,a,\"utf8\")})\n";
-
-// ucs2Write
-const JSC::ConstructAbility s_jsBufferPrototypeUcs2WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeUcs2WriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeUcs2WriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeUcs2WriteCodeLength = 65;
-static const JSC::Intrinsic s_jsBufferPrototypeUcs2WriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeUcs2WriteCode = "(function (r,u,a){\"use strict\";return this.write(r,u,a,\"ucs2\")})\n";
-
-// utf16leWrite
-const JSC::ConstructAbility s_jsBufferPrototypeUtf16leWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeUtf16leWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeUtf16leWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeUtf16leWriteCodeLength = 68;
-static const JSC::Intrinsic s_jsBufferPrototypeUtf16leWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeUtf16leWriteCode = "(function (r,u,a){\"use strict\";return this.write(r,u,a,\"utf16le\")})\n";
-
-// latin1Write
-const JSC::ConstructAbility s_jsBufferPrototypeLatin1WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeLatin1WriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeLatin1WriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeLatin1WriteCodeLength = 67;
-static const JSC::Intrinsic s_jsBufferPrototypeLatin1WriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeLatin1WriteCode = "(function (r,u,a){\"use strict\";return this.write(r,u,a,\"latin1\")})\n";
-
-// asciiWrite
-const JSC::ConstructAbility s_jsBufferPrototypeAsciiWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeAsciiWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeAsciiWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeAsciiWriteCodeLength = 66;
-static const JSC::Intrinsic s_jsBufferPrototypeAsciiWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeAsciiWriteCode = "(function (r,u,a){\"use strict\";return this.write(r,u,a,\"ascii\")})\n";
-
-// base64Write
-const JSC::ConstructAbility s_jsBufferPrototypeBase64WriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeBase64WriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeBase64WriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeBase64WriteCodeLength = 67;
-static const JSC::Intrinsic s_jsBufferPrototypeBase64WriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeBase64WriteCode = "(function (r,u,a){\"use strict\";return this.write(r,u,a,\"base64\")})\n";
-
-// base64urlWrite
-const JSC::ConstructAbility s_jsBufferPrototypeBase64urlWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeBase64urlWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeBase64urlWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeBase64urlWriteCodeLength = 70;
-static const JSC::Intrinsic s_jsBufferPrototypeBase64urlWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeBase64urlWriteCode = "(function (r,u,a){\"use strict\";return this.write(r,u,a,\"base64url\")})\n";
-
-// hexWrite
-const JSC::ConstructAbility s_jsBufferPrototypeHexWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeHexWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeHexWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeHexWriteCodeLength = 64;
-static const JSC::Intrinsic s_jsBufferPrototypeHexWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeHexWriteCode = "(function (r,u,a){\"use strict\";return this.write(r,u,a,\"hex\")})\n";
-
-// utf8Slice
-const JSC::ConstructAbility s_jsBufferPrototypeUtf8SliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeUtf8SliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeUtf8SliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeUtf8SliceCodeLength = 64;
-static const JSC::Intrinsic s_jsBufferPrototypeUtf8SliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeUtf8SliceCode = "(function (r,d){\"use strict\";return this.toString(r,d,\"utf8\")})\n";
-
-// ucs2Slice
-const JSC::ConstructAbility s_jsBufferPrototypeUcs2SliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeUcs2SliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeUcs2SliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeUcs2SliceCodeLength = 64;
-static const JSC::Intrinsic s_jsBufferPrototypeUcs2SliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeUcs2SliceCode = "(function (r,d){\"use strict\";return this.toString(r,d,\"ucs2\")})\n";
-
-// utf16leSlice
-const JSC::ConstructAbility s_jsBufferPrototypeUtf16leSliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeUtf16leSliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeUtf16leSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeUtf16leSliceCodeLength = 67;
-static const JSC::Intrinsic s_jsBufferPrototypeUtf16leSliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeUtf16leSliceCode = "(function (r,u){\"use strict\";return this.toString(r,u,\"utf16le\")})\n";
-
-// latin1Slice
-const JSC::ConstructAbility s_jsBufferPrototypeLatin1SliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeLatin1SliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeLatin1SliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeLatin1SliceCodeLength = 66;
-static const JSC::Intrinsic s_jsBufferPrototypeLatin1SliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeLatin1SliceCode = "(function (r,u){\"use strict\";return this.toString(r,u,\"latin1\")})\n";
-
-// asciiSlice
-const JSC::ConstructAbility s_jsBufferPrototypeAsciiSliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeAsciiSliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeAsciiSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeAsciiSliceCodeLength = 65;
-static const JSC::Intrinsic s_jsBufferPrototypeAsciiSliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeAsciiSliceCode = "(function (r,u){\"use strict\";return this.toString(r,u,\"ascii\")})\n";
-
-// base64Slice
-const JSC::ConstructAbility s_jsBufferPrototypeBase64SliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeBase64SliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeBase64SliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeBase64SliceCodeLength = 66;
-static const JSC::Intrinsic s_jsBufferPrototypeBase64SliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeBase64SliceCode = "(function (r,u){\"use strict\";return this.toString(r,u,\"base64\")})\n";
-
-// base64urlSlice
-const JSC::ConstructAbility s_jsBufferPrototypeBase64urlSliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeBase64urlSliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeBase64urlSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeBase64urlSliceCodeLength = 69;
-static const JSC::Intrinsic s_jsBufferPrototypeBase64urlSliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeBase64urlSliceCode = "(function (r,u){\"use strict\";return this.toString(r,u,\"base64url\")})\n";
-
-// hexSlice
-const JSC::ConstructAbility s_jsBufferPrototypeHexSliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeHexSliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeHexSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeHexSliceCodeLength = 63;
-static const JSC::Intrinsic s_jsBufferPrototypeHexSliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeHexSliceCode = "(function (d,r){\"use strict\";return this.toString(d,r,\"hex\")})\n";
-
-// toJSON
-const JSC::ConstructAbility s_jsBufferPrototypeToJSONCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeToJSONCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeToJSONCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeToJSONCodeLength = 73;
-static const JSC::Intrinsic s_jsBufferPrototypeToJSONCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeToJSONCode = "(function (){\"use strict\";return{type:\"Buffer\",data:@Array.from(this)}})\n";
-
-// slice
-const JSC::ConstructAbility s_jsBufferPrototypeSliceCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeSliceCodeLength = 260;
-static const JSC::Intrinsic s_jsBufferPrototypeSliceCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeSliceCode = "(function (c,p){\"use strict\";var{buffer:i,byteOffset:k,byteLength:m}=this;function q(x,z){if(x=@trunc(x),x===0||@isNaN(x))return 0;else if(x<0)return x+=z,x>0\?x:0;else return x<z\?x:z}var v=q(c,m),w=p!==@undefined\?q(p,m):m;return new @Buffer(i,k+v,w>v\?w-v:0)})\n";
-
-// parent
-const JSC::ConstructAbility s_jsBufferPrototypeParentCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeParentCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeParentCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeParentCodeLength = 99;
-static const JSC::Intrinsic s_jsBufferPrototypeParentCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeParentCode = "(function (){\"use strict\";return @isObject(this)&&this instanceof @Buffer\?this.buffer:@undefined})\n";
-
-// offset
-const JSC::ConstructAbility s_jsBufferPrototypeOffsetCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeOffsetCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeOffsetCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeOffsetCodeLength = 103;
-static const JSC::Intrinsic s_jsBufferPrototypeOffsetCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeOffsetCode = "(function (){\"use strict\";return @isObject(this)&&this instanceof @Buffer\?this.byteOffset:@undefined})\n";
-
-// inspect
-const JSC::ConstructAbility s_jsBufferPrototypeInspectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferPrototypeInspectCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferPrototypeInspectCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferPrototypeInspectCodeLength = 57;
-static const JSC::Intrinsic s_jsBufferPrototypeInspectCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferPrototypeInspectCode = "(function (e,r){\"use strict\";return @Bun.inspect(this)})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().jsBufferPrototypeBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().jsBufferPrototypeBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ReadableByteStreamController.ts */
-// initializeReadableByteStreamController
-const JSC::ConstructAbility s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeLength = 253;
-static const JSC::Intrinsic s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamControllerInitializeReadableByteStreamControllerCode = "(function (b,f,j){\"use strict\";if(arguments.length!==4&&arguments[3]!==@isReadableStream)@throwTypeError(\"ReadableByteStreamController constructor should not be called directly\");return @privateInitializeReadableByteStreamController.@call(this,b,f,j)})\n";
-
-// enqueue
-const JSC::ConstructAbility s_readableByteStreamControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamControllerEnqueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamControllerEnqueueCodeLength = 562;
-static const JSC::Intrinsic s_readableByteStreamControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamControllerEnqueueCode = "(function (e){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeThisTypeError(\"ReadableByteStreamController\",\"enqueue\");if(@getByIdDirectPrivate(this,\"closeRequested\"))@throwTypeError(\"ReadableByteStreamController is requested to close\");if(@getByIdDirectPrivate(@getByIdDirectPrivate(this,\"controlledReadableStream\"),\"state\")!==@streamReadable)@throwTypeError(\"ReadableStream is not readable\");if(!@isObject(e)||!@ArrayBuffer.@isView(e))@throwTypeError(\"Provided chunk is not a TypedArray\");return @readableByteStreamControllerEnqueue(this,e)})\n";
-
-// error
-const JSC::ConstructAbility s_readableByteStreamControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamControllerErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamControllerErrorCodeLength = 336;
-static const JSC::Intrinsic s_readableByteStreamControllerErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamControllerErrorCode = "(function (d){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeThisTypeError(\"ReadableByteStreamController\",\"error\");if(@getByIdDirectPrivate(@getByIdDirectPrivate(this,\"controlledReadableStream\"),\"state\")!==@streamReadable)@throwTypeError(\"ReadableStream is not readable\");@readableByteStreamControllerError(this,d)})\n";
-
-// close
-const JSC::ConstructAbility s_readableByteStreamControllerCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamControllerCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamControllerCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamControllerCloseCodeLength = 433;
-static const JSC::Intrinsic s_readableByteStreamControllerCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamControllerCloseCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeThisTypeError(\"ReadableByteStreamController\",\"close\");if(@getByIdDirectPrivate(this,\"closeRequested\"))@throwTypeError(\"Close has already been requested\");if(@getByIdDirectPrivate(@getByIdDirectPrivate(this,\"controlledReadableStream\"),\"state\")!==@streamReadable)@throwTypeError(\"ReadableStream is not readable\");@readableByteStreamControllerClose(this)})\n";
-
-// byobRequest
-const JSC::ConstructAbility s_readableByteStreamControllerByobRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamControllerByobRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamControllerByobRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamControllerByobRequestCodeLength = 523;
-static const JSC::Intrinsic s_readableByteStreamControllerByobRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamControllerByobRequestCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"byobRequest\");var u=@getByIdDirectPrivate(this,\"byobRequest\");if(u===@undefined){var _=@getByIdDirectPrivate(this,\"pendingPullIntos\");const l=_.peek();if(l){const y=new @Uint8Array(l.buffer,l.byteOffset+l.bytesFilled,l.byteLength-l.bytesFilled);@putByIdDirectPrivate(this,\"byobRequest\",new @ReadableStreamBYOBRequest(this,y,@isReadableStream))}}return @getByIdDirectPrivate(this,\"byobRequest\")})\n";
-
-// desiredSize
-const JSC::ConstructAbility s_readableByteStreamControllerDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamControllerDesiredSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamControllerDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamControllerDesiredSizeCodeLength = 200;
-static const JSC::Intrinsic s_readableByteStreamControllerDesiredSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isReadableByteStreamController(this))throw @makeGetterTypeError(\"ReadableByteStreamController\",\"desiredSize\");return @readableByteStreamControllerGetDesiredSize(this)})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().readableByteStreamControllerBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().readableByteStreamControllerBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ConsoleObject.ts */
-// asyncIterator
-const JSC::ConstructAbility s_consoleObjectAsyncIteratorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_consoleObjectAsyncIteratorCodeLength = 577;
-static const JSC::Intrinsic s_consoleObjectAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_consoleObjectAsyncIteratorCode = "(function (){\"use strict\";const _=async function*j(){var q=@Bun.stdin.stream().getReader(),w=new globalThis.TextDecoder(\"utf-8\",{fatal:!1}),z,A=@Bun.indexOfLine;try{while(!0){var B,F,G;const L=q.readMany();if(@isPromise(L))({done:B,value:F}=await L);else({done:B,value:F}=L);if(B){if(G)yield w.decode(G);return}var H;for(let M of F){if(H=M,G)H=@Buffer.concat([G,M]),G=null;var J=0,K=A(H,J);while(K!==-1)yield w.decode(H.subarray(J,K)),J=K+1,K=A(H,J);G=H.subarray(J)}}}catch(L){z=L}finally{if(q.releaseLock(),z)throw z}},D=globalThis.Symbol.asyncIterator;return this[D]=_,_()})\n";
-
-// write
-const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_consoleObjectWriteCodeLength = 310;
-static const JSC::Intrinsic s_consoleObjectWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_consoleObjectWriteCode = "(function (_){\"use strict\";var d=@getByIdDirectPrivate(this,\"writer\");if(!d){var s=@toLength(_\?.length\?\?0);d=@Bun.stdout.writer({highWaterMark:s>65536\?s:65536}),@putByIdDirectPrivate(this,\"writer\",d)}var a=d.write(_);const b=@argumentCount();for(var f=1;f<b;f++)a+=d.write(@argument(f));return d.flush(!0),a})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().consoleObjectBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().consoleObjectBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ReadableStreamInternals.ts */
-// readableStreamReaderGenericInitialize
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeLength = 585;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamReaderGenericInitializeCode = "(function (_,c){\"use strict\";if(@putByIdDirectPrivate(_,\"ownerReadableStream\",c),@putByIdDirectPrivate(c,\"reader\",_),@getByIdDirectPrivate(c,\"state\")===@streamReadable)@putByIdDirectPrivate(_,\"closedPromiseCapability\",@newPromiseCapability(@Promise));else if(@getByIdDirectPrivate(c,\"state\")===@streamClosed)@putByIdDirectPrivate(_,\"closedPromiseCapability\",{@promise:@Promise.@resolve()});else @assert(@getByIdDirectPrivate(c,\"state\")===@streamErrored),@putByIdDirectPrivate(_,\"closedPromiseCapability\",{@promise:@newHandledRejectedPromise(@getByIdDirectPrivate(c,\"storedError\"))})})\n";
-
-// privateInitializeReadableStreamDefaultController
-const JSC::ConstructAbility s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeLength = 675;
-static const JSC::Intrinsic s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCode = "(function (_,p,b,f){\"use strict\";if(!@isReadableStream(_))@throwTypeError(\"ReadableStreamDefaultController needs a ReadableStream\");if(@getByIdDirectPrivate(_,\"readableStreamController\")!==null)@throwTypeError(\"ReadableStream already has a controller\");return @putByIdDirectPrivate(this,\"controlledReadableStream\",_),@putByIdDirectPrivate(this,\"underlyingSource\",p),@putByIdDirectPrivate(this,\"queue\",@newQueue()),@putByIdDirectPrivate(this,\"started\",-1),@putByIdDirectPrivate(this,\"closeRequested\",!1),@putByIdDirectPrivate(this,\"pullAgain\",!1),@putByIdDirectPrivate(this,\"pulling\",!1),@putByIdDirectPrivate(this,\"strategy\",@validateAndNormalizeQueuingStrategy(b,f)),this})\n";
-
-// readableStreamDefaultControllerError
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeLength = 223;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerErrorCode = "(function (_,b){\"use strict\";const d=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@getByIdDirectPrivate(d,\"state\")!==@streamReadable)return;@putByIdDirectPrivate(_,\"queue\",@newQueue()),@readableStreamError(d,b)})\n";
-
-// readableStreamPipeTo
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamPipeToCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamPipeToCodeLength = 427;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamPipeToCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamPipeToCode = "(function (_,b){\"use strict\";@assert(@isReadableStream(_));const c=new @ReadableStreamDefaultReader(_);@getByIdDirectPrivate(c,\"closedPromiseCapability\").@promise.@then(()=>{},(g)=>{b.error(g)});function f(){@readableStreamDefaultReaderRead(c).@then(function(g){if(g.done){b.close();return}try{b.enqueue(g.value)}catch(h){b.error(\"ReadableStream chunk enqueueing in the sink failed\");return}f()},function(g){b.error(g)})}f()})\n";
-
-// acquireReadableStreamDefaultReader
-const JSC::ConstructAbility s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeLength = 127;
-static const JSC::Intrinsic s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsAcquireReadableStreamDefaultReaderCode = "(function (d){\"use strict\";var g=@getByIdDirectPrivate(d,\"start\");if(g)g.@call(d);return new @ReadableStreamDefaultReader(d)})\n";
-
-// setupReadableStreamDefaultController
-const JSC::ConstructAbility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeLength = 523;
-static const JSC::Intrinsic s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode = "(function (D,O,b,f,j,q,v){\"use strict\";const w=new @ReadableStreamDefaultController(D,O,b,f,@isReadableStream),x=()=>@promiseInvokeOrNoopMethod(O,q,[w]),B=(C)=>@promiseInvokeOrNoopMethod(O,v,[C]);@putByIdDirectPrivate(w,\"pullAlgorithm\",x),@putByIdDirectPrivate(w,\"cancelAlgorithm\",B),@putByIdDirectPrivate(w,\"pull\",@readableStreamDefaultControllerPull),@putByIdDirectPrivate(w,\"cancel\",@readableStreamDefaultControllerCancel),@putByIdDirectPrivate(D,\"readableStreamController\",w),@readableStreamDefaultControllerStart(w)})\n";
-
-// createReadableStreamController
-const JSC::ConstructAbility s_readableStreamInternalsCreateReadableStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsCreateReadableStreamControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsCreateReadableStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsCreateReadableStreamControllerCodeLength = 671;
-static const JSC::Intrinsic s_readableStreamInternalsCreateReadableStreamControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsCreateReadableStreamControllerCode = "(function (_,f,b){\"use strict\";const j=f.type,q=@toString(j);if(q===\"bytes\"){if(b.highWaterMark===@undefined)b.highWaterMark=0;if(b.size!==@undefined)@throwRangeError(\"Strategy for a ReadableByteStreamController cannot have a size\");@putByIdDirectPrivate(_,\"readableStreamController\",new @ReadableByteStreamController(_,f,b.highWaterMark,@isReadableStream))}else if(q===\"direct\"){var v=b\?.highWaterMark;@initializeArrayBufferStream.@call(_,f,v)}else if(j===@undefined){if(b.highWaterMark===@undefined)b.highWaterMark=1;@setupReadableStreamDefaultController(_,f,b.size,b.highWaterMark,f.start,f.pull,f.cancel)}else @throwRangeError(\"Invalid type for underlying source\")})\n";
-
-// readableStreamDefaultControllerStart
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerStartCodeLength = 465;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerStartCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerStartCode = "(function (_){\"use strict\";if(@getByIdDirectPrivate(_,\"started\")!==-1)return;const a=@getByIdDirectPrivate(_,\"underlyingSource\"),s=a.start;@putByIdDirectPrivate(_,\"started\",0),@promiseInvokeOrNoopMethodNoCatch(a,s,[_]).@then(()=>{@putByIdDirectPrivate(_,\"started\",1),@assert(!@getByIdDirectPrivate(_,\"pulling\")),@assert(!@getByIdDirectPrivate(_,\"pullAgain\")),@readableStreamDefaultControllerCallPullIfNeeded(_)},(C)=>{@readableStreamDefaultControllerError(_,C)})})\n";
-
-// readableStreamPipeToWritableStream
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength = 1631;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode = "(function (_,f,k,D,q,w){\"use strict\";if(@assert(@isReadableStream(_)),@assert(@isWritableStream(f)),@assert(!@isReadableStreamLocked(_)),@assert(!@isWritableStreamLocked(f)),@assert(w===@undefined||@isAbortSignal(w)),@getByIdDirectPrivate(_,\"underlyingByteSource\")!==@undefined)return @Promise.@reject(\"Piping to a readable bytestream is not supported\");let x={source:_,destination:f,preventAbort:D,preventCancel:q,preventClose:k,signal:w};if(x.reader=@acquireReadableStreamDefaultReader(_),x.writer=@acquireWritableStreamDefaultWriter(f),@putByIdDirectPrivate(_,\"disturbed\",!0),x.finalized=!1,x.shuttingDown=!1,x.promiseCapability=@newPromiseCapability(@Promise),x.pendingReadPromiseCapability=@newPromiseCapability(@Promise),x.pendingReadPromiseCapability.@resolve.@call(),x.pendingWritePromise=@Promise.@resolve(),w!==@undefined){const z=(B)=>{if(x.finalized)return;@pipeToShutdownWithAction(x,()=>{const F=!x.preventAbort&&@getByIdDirectPrivate(x.destination,\"state\")===\"writable\"\?@writableStreamAbort(x.destination,B):@Promise.@resolve(),H=!x.preventCancel&&@getByIdDirectPrivate(x.source,\"state\")===@streamReadable\?@readableStreamCancel(x.source,B):@Promise.@resolve();let I=@newPromiseCapability(@Promise),J=!0,K=()=>{if(J){J=!1;return}I.@resolve.@call()},L=(M)=>{I.@reject.@call(@undefined,M)};return F.@then(K,L),H.@then(K,L),I.@promise},B)};if(@whenSignalAborted(w,z))return x.promiseCapability.@promise}return @pipeToErrorsMustBePropagatedForward(x),@pipeToErrorsMustBePropagatedBackward(x),@pipeToClosingMustBePropagatedForward(x),@pipeToClosingMustBePropagatedBackward(x),@pipeToLoop(x),x.promiseCapability.@promise})\n";
-
-// pipeToLoop
-const JSC::ConstructAbility s_readableStreamInternalsPipeToLoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToLoopCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToLoopCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToLoopCodeLength = 110;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToLoopCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToLoopCode = "(function (d){\"use strict\";if(d.shuttingDown)return;@pipeToDoReadWrite(d).@then((n)=>{if(n)@pipeToLoop(d)})})\n";
-
-// pipeToDoReadWrite
-const JSC::ConstructAbility s_readableStreamInternalsPipeToDoReadWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToDoReadWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToDoReadWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToDoReadWriteCodeLength = 731;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToDoReadWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToDoReadWriteCode = "(function (_){\"use strict\";return @assert(!_.shuttingDown),_.pendingReadPromiseCapability=@newPromiseCapability(@Promise),@getByIdDirectPrivate(_.writer,\"readyPromise\").@promise.@then(()=>{if(_.shuttingDown){_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);return}@readableStreamDefaultReaderRead(_.reader).@then((n)=>{const b=!n.done&&@getByIdDirectPrivate(_.writer,\"stream\")!==@undefined;if(_.pendingReadPromiseCapability.@resolve.@call(@undefined,b),!b)return;_.pendingWritePromise=@writableStreamDefaultWriterWrite(_.writer,n.value)},(n)=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)})},(n)=>{_.pendingReadPromiseCapability.@resolve.@call(@undefined,!1)}),_.pendingReadPromiseCapability.@promise})\n";
-
-// pipeToErrorsMustBePropagatedForward
-const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeLength = 438;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode = "(function (s){\"use strict\";const d=()=>{s.pendingReadPromiseCapability.@resolve.@call(@undefined,!1);const l=@getByIdDirectPrivate(s.source,\"storedError\");if(!s.preventAbort){@pipeToShutdownWithAction(s,()=>@writableStreamAbort(s.destination,l),l);return}@pipeToShutdown(s,l)};if(@getByIdDirectPrivate(s.source,\"state\")===@streamErrored){d();return}@getByIdDirectPrivate(s.reader,\"closedPromiseCapability\").@promise.@then(@undefined,d)})\n";
-
-// pipeToErrorsMustBePropagatedBackward
-const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeLength = 369;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCode = "(function (d){\"use strict\";const n=()=>{const g=@getByIdDirectPrivate(d.destination,\"storedError\");if(!d.preventCancel){@pipeToShutdownWithAction(d,()=>@readableStreamCancel(d.source,g),g);return}@pipeToShutdown(d,g)};if(@getByIdDirectPrivate(d.destination,\"state\")===\"errored\"){n();return}@getByIdDirectPrivate(d.writer,\"closedPromise\").@promise.@then(@undefined,n)})\n";
-
-// pipeToClosingMustBePropagatedForward
-const JSC::ConstructAbility s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeLength = 405;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCode = "(function (r){\"use strict\";const l=()=>{if(r.pendingReadPromiseCapability.@resolve.@call(@undefined,!1),!r.preventClose){@pipeToShutdownWithAction(r,()=>@writableStreamDefaultWriterCloseWithErrorPropagation(r.writer));return}@pipeToShutdown(r)};if(@getByIdDirectPrivate(r.source,\"state\")===@streamClosed){l();return}@getByIdDirectPrivate(r.reader,\"closedPromiseCapability\").@promise.@then(l,@undefined)})\n";
-
-// pipeToClosingMustBePropagatedBackward
-const JSC::ConstructAbility s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeLength = 324;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCode = "(function (n){\"use strict\";if(!@writableStreamCloseQueuedOrInFlight(n.destination)&&@getByIdDirectPrivate(n.destination,\"state\")!==\"closed\")return;const _=@makeTypeError(\"closing is propagated backward\");if(!n.preventCancel){@pipeToShutdownWithAction(n,()=>@readableStreamCancel(n.source,_),_);return}@pipeToShutdown(n,_)})\n";
-
-// pipeToShutdownWithAction
-const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownWithActionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownWithActionCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownWithActionCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToShutdownWithActionCodeLength = 458;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownWithActionCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToShutdownWithActionCode = "(function (d,h){\"use strict\";if(d.shuttingDown)return;d.shuttingDown=!0;const s=arguments.length>2,u=arguments[2],_=()=>{h().@then(()=>{if(s)@pipeToFinalize(d,u);else @pipeToFinalize(d)},(g)=>{@pipeToFinalize(d,g)})};if(@getByIdDirectPrivate(d.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(d.destination)){d.pendingReadPromiseCapability.@promise.@then(()=>{d.pendingWritePromise.@then(_,_)},(b)=>@pipeToFinalize(d,b));return}_()})\n";
-
-// pipeToShutdown
-const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToShutdownCodeLength = 411;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToShutdownCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToShutdownCode = "(function (c){\"use strict\";if(c.shuttingDown)return;c.shuttingDown=!0;const D=arguments.length>1,_=arguments[1],b=()=>{if(D)@pipeToFinalize(c,_);else @pipeToFinalize(c)};if(@getByIdDirectPrivate(c.destination,\"state\")===\"writable\"&&!@writableStreamCloseQueuedOrInFlight(c.destination)){c.pendingReadPromiseCapability.@promise.@then(()=>{c.pendingWritePromise.@then(b,b)},(d)=>@pipeToFinalize(c,d));return}b()})\n";
-
-// pipeToFinalize
-const JSC::ConstructAbility s_readableStreamInternalsPipeToFinalizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsPipeToFinalizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsPipeToFinalizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsPipeToFinalizeCodeLength = 259;
-static const JSC::Intrinsic s_readableStreamInternalsPipeToFinalizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsPipeToFinalizeCode = "(function (r){\"use strict\";if(@writableStreamDefaultWriterRelease(r.writer),@readableStreamReaderGenericRelease(r.reader),r.finalized=!0,arguments.length>1)r.promiseCapability.@reject.@call(@undefined,arguments[1]);else r.promiseCapability.@resolve.@call()})\n";
-
-// readableStreamTee
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamTeeCodeLength = 1104;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamTeeCode = "(function (_,f){\"use strict\";@assert(@isReadableStream(_)),@assert(typeof f===\"boolean\");var D=@getByIdDirectPrivate(_,\"start\");if(D)@putByIdDirectPrivate(_,\"start\",@undefined),D();const E=new @ReadableStreamDefaultReader(_),T={closedOrErrored:!1,canceled1:!1,canceled2:!1,reason1:@undefined,reason2:@undefined};T.cancelPromiseCapability=@newPromiseCapability(@Promise);const g=@readableStreamTeePullFunction(T,E,f),i={};@putByIdDirectPrivate(i,\"pull\",g),@putByIdDirectPrivate(i,\"cancel\",@readableStreamTeeBranch1CancelFunction(T,_));const j={};@putByIdDirectPrivate(j,\"pull\",g),@putByIdDirectPrivate(j,\"cancel\",@readableStreamTeeBranch2CancelFunction(T,_));const k=new @ReadableStream(i),q=new @ReadableStream(j);return @getByIdDirectPrivate(E,\"closedPromiseCapability\").@promise.@then(@undefined,function(v){if(T.closedOrErrored)return;if(@readableStreamDefaultControllerError(k.@readableStreamController,v),@readableStreamDefaultControllerError(q.@readableStreamController,v),T.closedOrErrored=!0,!T.canceled1||!T.canceled2)T.cancelPromiseCapability.@resolve.@call()}),T.branch1=k,T.branch2=q,[k,q]})\n";
-
-// readableStreamTeePullFunction
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeePullFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength = 764;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeePullFunctionCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode = "(function (f,m,i){\"use strict\";return function(){@Promise.prototype.@then.@call(@readableStreamDefaultReaderRead(m),function(j){if(@assert(@isObject(j)),@assert(typeof j.done===\"boolean\"),j.done&&!f.closedOrErrored){if(!f.canceled1)@readableStreamDefaultControllerClose(f.branch1.@readableStreamController);if(!f.canceled2)@readableStreamDefaultControllerClose(f.branch2.@readableStreamController);if(f.closedOrErrored=!0,!f.canceled1||!f.canceled2)f.cancelPromiseCapability.@resolve.@call()}if(f.closedOrErrored)return;if(!f.canceled1)@readableStreamDefaultControllerEnqueue(f.branch1.@readableStreamController,j.value);if(!f.canceled2)@readableStreamDefaultControllerEnqueue(f.branch2.@readableStreamController,i\?@structuredCloneForStream(j.value):j.value)})}})\n";
-
-// readableStreamTeeBranch1CancelFunction
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeLength = 258;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCode = "(function (i,n){\"use strict\";return function(d){if(i.canceled1=!0,i.reason1=d,i.canceled2)@readableStreamCancel(n,[i.reason1,i.reason2]).@then(i.cancelPromiseCapability.@resolve,i.cancelPromiseCapability.@reject);return i.cancelPromiseCapability.@promise}})\n";
-
-// readableStreamTeeBranch2CancelFunction
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeLength = 258;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCode = "(function (i,n){\"use strict\";return function(d){if(i.canceled2=!0,i.reason2=d,i.canceled1)@readableStreamCancel(n,[i.reason1,i.reason2]).@then(i.cancelPromiseCapability.@resolve,i.cancelPromiseCapability.@reject);return i.cancelPromiseCapability.@promise}})\n";
-
-// isReadableStream
-const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsIsReadableStreamCodeLength = 115;
-static const JSC::Intrinsic s_readableStreamInternalsIsReadableStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsIsReadableStreamCode = "(function (r){\"use strict\";return @isObject(r)&&@getByIdDirectPrivate(r,\"readableStreamController\")!==@undefined})\n";
-
-// isReadableStreamDefaultReader
-const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamDefaultReaderCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamDefaultReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsIsReadableStreamDefaultReaderCodeLength = 92;
-static const JSC::Intrinsic s_readableStreamInternalsIsReadableStreamDefaultReaderCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsIsReadableStreamDefaultReaderCode = "(function (s){\"use strict\";return @isObject(s)&&!!@getByIdDirectPrivate(s,\"readRequests\")})\n";
-
-// isReadableStreamDefaultController
-const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsIsReadableStreamDefaultControllerCodeLength = 96;
-static const JSC::Intrinsic s_readableStreamInternalsIsReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsIsReadableStreamDefaultControllerCode = "(function (a){\"use strict\";return @isObject(a)&&!!@getByIdDirectPrivate(a,\"underlyingSource\")})\n";
-
-// readDirectStream
-const JSC::ConstructAbility s_readableStreamInternalsReadDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadDirectStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadDirectStreamCodeLength = 900;
-static const JSC::Intrinsic s_readableStreamInternalsReadDirectStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadDirectStreamCode = "(function (_,f,B){\"use strict\";@putByIdDirectPrivate(_,\"underlyingSource\",@undefined),@putByIdDirectPrivate(_,\"start\",@undefined);function j(w,x){if(x&&B\?.cancel){try{var z=B.cancel(x);@markPromiseAsHandled(z)}catch(A){}B=@undefined}if(w){if(@putByIdDirectPrivate(w,\"readableStreamController\",@undefined),@putByIdDirectPrivate(w,\"reader\",@undefined),x)@putByIdDirectPrivate(w,\"state\",@streamErrored),@putByIdDirectPrivate(w,\"storedError\",x);else @putByIdDirectPrivate(w,\"state\",@streamClosed);w=@undefined}}if(!B.pull){j();return}if(!@isCallable(B.pull)){j(),@throwTypeError(\"pull is not a function\");return}@putByIdDirectPrivate(_,\"readableStreamController\",f);const q=@getByIdDirectPrivate(_,\"highWaterMark\");f.start({highWaterMark:!q||q<64\?64:q}),@startDirectStream.@call(f,_,B.pull,j),@putByIdDirectPrivate(_,\"reader\",{});var v=B.pull(f);if(f=@undefined,v&&@isPromise(v))return v.@then(()=>{})})\n";
-
-// assignToStream
-const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsAssignToStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsAssignToStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamInternalsAssignToStreamCodeLength = 221;
-static const JSC::Intrinsic s_readableStreamInternalsAssignToStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsAssignToStreamCode = "(function (h,p){\"use strict\";var P=@getByIdDirectPrivate(h,\"underlyingSource\");if(P)try{return @readDirectStream(h,p,P)}catch(_){throw _}finally{P=@undefined,h=@undefined,p=@undefined}return @readStreamIntoSink(h,p,!0)})\n";
-
-// readStreamIntoSink
-const JSC::ConstructAbility s_readableStreamInternalsReadStreamIntoSinkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadStreamIntoSinkCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadStreamIntoSinkCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadStreamIntoSinkCodeLength = 1395;
-static const JSC::Intrinsic s_readableStreamInternalsReadStreamIntoSinkCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadStreamIntoSinkCode = "(async function (B,_,f){\"use strict\";var D=!1,c=!1;try{var q=B.getReader(),w=q.readMany();if(w&&@isPromise(w))w=await w;if(w.done)return D=!0,_.end();var x=w.value.length;const J=@getByIdDirectPrivate(B,\"highWaterMark\");if(f)@startDirectStream.@call(_,B,@undefined,()=>!c&&@markPromiseAsHandled(B.cancel()));_.start({highWaterMark:J||0});for(var z=0,A=w.value,E=w.value.length;z<E;z++)_.write(A[z]);var F=@getByIdDirectPrivate(B,\"state\");if(F===@streamClosed)return D=!0,_.end();while(!0){var{value:G,done:H}=await q.read();if(H)return D=!0,_.end();_.write(G)}}catch(J){c=!0;try{q=@undefined;const K=B.cancel(J);@markPromiseAsHandled(K)}catch(K){}if(_&&!D){D=!0;try{_.close(J)}catch(K){throw new globalThis.AggregateError([J,K])}}throw J}finally{if(q){try{q.releaseLock()}catch(K){}q=@undefined}_=@undefined;var F=@getByIdDirectPrivate(B,\"state\");if(B){var I=@getByIdDirectPrivate(B,\"readableStreamController\");if(I){if(@getByIdDirectPrivate(I,\"underlyingSource\"))@putByIdDirectPrivate(I,\"underlyingSource\",@undefined);if(@getByIdDirectPrivate(I,\"controlledReadableStream\"))@putByIdDirectPrivate(I,\"controlledReadableStream\",@undefined);if(@putByIdDirectPrivate(B,\"readableStreamController\",null),@getByIdDirectPrivate(B,\"underlyingSource\"))@putByIdDirectPrivate(B,\"underlyingSource\",@undefined);I=@undefined}if(!c&&F!==@streamClosed&&F!==@streamErrored)@readableStreamClose(B);B=@undefined}}})\n";
-
-// handleDirectStreamError
-const JSC::ConstructAbility s_readableStreamInternalsHandleDirectStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsHandleDirectStreamErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsHandleDirectStreamErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsHandleDirectStreamErrorCodeLength = 496;
-static const JSC::Intrinsic s_readableStreamInternalsHandleDirectStreamErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsHandleDirectStreamErrorCode = "(function (i){\"use strict\";var _=this,f=_.@sink;if(f){@putByIdDirectPrivate(_,\"sink\",@undefined);try{f.close(i)}catch(g){}}if(this.error=this.flush=this.write=this.close=this.end=@onReadableStreamDirectControllerClosed,typeof this.@underlyingSource.close===\"function\")try{this.@underlyingSource.close.@call(this.@underlyingSource,i)}catch(g){}try{var u=_._pendingRead;if(u)_._pendingRead=@undefined,@rejectPromise(u,i)}catch(g){}var b=_.@controlledReadableStream;if(b)@readableStreamError(b,i)})\n";
-
-// handleDirectStreamErrorReject
-const JSC::ConstructAbility s_readableStreamInternalsHandleDirectStreamErrorRejectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsHandleDirectStreamErrorRejectCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsHandleDirectStreamErrorRejectCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsHandleDirectStreamErrorRejectCodeLength = 95;
-static const JSC::Intrinsic s_readableStreamInternalsHandleDirectStreamErrorRejectCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsHandleDirectStreamErrorRejectCode = "(function (r){\"use strict\";return @handleDirectStreamError.@call(this,r),@Promise.@reject(r)})\n";
-
-// onPullDirectStream
-const JSC::ConstructAbility s_readableStreamInternalsOnPullDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsOnPullDirectStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsOnPullDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsOnPullDirectStreamCodeLength = 785;
-static const JSC::Intrinsic s_readableStreamInternalsOnPullDirectStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsOnPullDirectStreamCode = "(function (i){\"use strict\";var _=i.@controlledReadableStream;if(!_||@getByIdDirectPrivate(_,\"state\")!==@streamReadable)return;if(i._deferClose===-1)return;i._deferClose=-1,i._deferFlush=-1;var h,w;try{var b=i.@underlyingSource.pull(i);if(b&&@isPromise(b)){if(i._handleError===@undefined)i._handleError=@handleDirectStreamErrorReject.bind(i);@Promise.prototype.catch.@call(b,i._handleError)}}catch(k){return @handleDirectStreamErrorReject.@call(i,k)}finally{h=i._deferClose,w=i._deferFlush,i._deferFlush=i._deferClose=0}var g;if(i._pendingRead===@undefined)i._pendingRead=g=@newPromise();else g=@readableStreamAddReadRequest(_);if(h===1){var j=i._deferCloseReason;return i._deferCloseReason=@undefined,@onCloseDirectStream.@call(i,j),g}if(w===1)@onFlushDirectStream.@call(i);return g})\n";
-
-// noopDoneFunction
-const JSC::ConstructAbility s_readableStreamInternalsNoopDoneFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsNoopDoneFunctionCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsNoopDoneFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsNoopDoneFunctionCodeLength = 81;
-static const JSC::Intrinsic s_readableStreamInternalsNoopDoneFunctionCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsNoopDoneFunctionCode = "(function (){\"use strict\";return @Promise.@resolve({value:@undefined,done:!0})})\n";
-
-// onReadableStreamDirectControllerClosed
-const JSC::ConstructAbility s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeLength = 93;
-static const JSC::Intrinsic s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsOnReadableStreamDirectControllerClosedCode = "(function (e){\"use strict\";@throwTypeError(\"ReadableStreamDirectController is now closed\")})\n";
-
-// onCloseDirectStream
-const JSC::ConstructAbility s_readableStreamInternalsOnCloseDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsOnCloseDirectStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsOnCloseDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsOnCloseDirectStreamCodeLength = 1460;
-static const JSC::Intrinsic s_readableStreamInternalsOnCloseDirectStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsOnCloseDirectStreamCode = "(function (c){\"use strict\";var y=this.@controlledReadableStream;if(!y||@getByIdDirectPrivate(y,\"state\")!==@streamReadable)return;if(this._deferClose!==0){this._deferClose=1,this._deferCloseReason=c;return}if(@putByIdDirectPrivate(y,\"state\",@streamClosing),typeof this.@underlyingSource.close===\"function\")try{this.@underlyingSource.close.@call(this.@underlyingSource,c)}catch(v){}var _;try{_=this.@sink.end(),@putByIdDirectPrivate(this,\"sink\",@undefined)}catch(v){if(this._pendingRead){var b=this._pendingRead;this._pendingRead=@undefined,@rejectPromise(b,v)}@readableStreamError(y,v);return}this.error=this.flush=this.write=this.close=this.end=@onReadableStreamDirectControllerClosed;var C=@getByIdDirectPrivate(y,\"reader\");if(C&&@isReadableStreamDefaultReader(C)){var j=this._pendingRead;if(j&&@isPromise(j)&&_\?.byteLength){this._pendingRead=@undefined,@fulfillPromise(j,{value:_,done:!1}),@readableStreamClose(y);return}}if(_\?.byteLength){var k=@getByIdDirectPrivate(C,\"readRequests\");if(k\?.isNotEmpty()){@readableStreamFulfillReadRequest(y,_,!1),@readableStreamClose(y);return}@putByIdDirectPrivate(y,\"state\",@streamReadable),this.@pull=()=>{var v=@createFulfilledPromise({value:_,done:!1});return _=@undefined,@readableStreamClose(y),y=@undefined,v}}else if(this._pendingRead){var b=this._pendingRead;this._pendingRead=@undefined,@putByIdDirectPrivate(this,\"pull\",@noopDoneFunction),@fulfillPromise(b,{value:@undefined,done:!0})}@readableStreamClose(y)})\n";
-
-// onFlushDirectStream
-const JSC::ConstructAbility s_readableStreamInternalsOnFlushDirectStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsOnFlushDirectStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsOnFlushDirectStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsOnFlushDirectStreamCodeLength = 591;
-static const JSC::Intrinsic s_readableStreamInternalsOnFlushDirectStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsOnFlushDirectStreamCode = "(function (){\"use strict\";var c=this.@controlledReadableStream,b=@getByIdDirectPrivate(c,\"reader\");if(!b||!@isReadableStreamDefaultReader(b))return;var j=this._pendingRead;if(this._pendingRead=@undefined,j&&@isPromise(j)){var k=this.@sink.flush();if(k\?.byteLength)this._pendingRead=@getByIdDirectPrivate(c,\"readRequests\")\?.shift(),@fulfillPromise(j,{value:k,done:!1});else this._pendingRead=j}else if(@getByIdDirectPrivate(c,\"readRequests\")\?.isNotEmpty()){var k=this.@sink.flush();if(k\?.byteLength)@readableStreamFulfillReadRequest(c,k,!1)}else if(this._deferFlush===-1)this._deferFlush=1})\n";
-
-// createTextStream
-const JSC::ConstructAbility s_readableStreamInternalsCreateTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsCreateTextStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsCreateTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsCreateTextStreamCodeLength = 984;
-static const JSC::Intrinsic s_readableStreamInternalsCreateTextStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsCreateTextStreamCode = "(function (v){\"use strict\";var E,U=[],_=!1,j=!1,q=\"\",w=@toLength(0),x=@newPromiseCapability(@Promise),z=!1;return E={start(){},write(A){if(typeof A===\"string\"){var C=@toLength(A.length);if(C>0)q+=A,_=!0,w+=C;return C}if(!A||!(@ArrayBuffer.@isView(A)||A instanceof @ArrayBuffer))@throwTypeError(\"Expected text, ArrayBuffer or ArrayBufferView\");const F=@toLength(A.byteLength);if(F>0)if(j=!0,q.length>0)@arrayPush(U,q,A),q=\"\";else @arrayPush(U,A);return w+=F,F},flush(){return 0},end(){if(z)return\"\";return E.fulfill()},fulfill(){z=!0;const A=E.finishInternal();return @fulfillPromise(x.@promise,A),A},finishInternal(){if(!_&&!j)return\"\";if(_&&!j)return q;if(j&&!_)return new globalThis.TextDecoder().decode(@Bun.concatArrayBuffers(U));var A=new @Bun.ArrayBufferSink;A.start({highWaterMark:w,asUint8Array:!0});for(let C of U)A.write(C);if(U.length=0,q.length>0)A.write(q),q=\"\";return new globalThis.TextDecoder().decode(A.end())},close(){try{if(!z)z=!0,E.fulfill()}catch(A){}}},[E,x]})\n";
-
-// initializeTextStream
-const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsInitializeTextStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsInitializeTextStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsInitializeTextStreamCodeLength = 578;
-static const JSC::Intrinsic s_readableStreamInternalsInitializeTextStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsInitializeTextStreamCode = "(function (_,t){\"use strict\";var[f,p]=@createTextStream(t),I={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:f,close:@onCloseDirectStream,write:f.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",I),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),p})\n";
-
-// initializeArrayStream
-const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsInitializeArrayStreamCodeLength = 797;
-static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsInitializeArrayStreamCode = "(function (_,t){\"use strict\";var p=[],v=@newPromiseCapability(@Promise),b=!1;function j(){return b=!0,v.@resolve.@call(@undefined,p),p}var q={start(){},write(x){return @arrayPush(p,x),x.byteLength||x.length},flush(){return 0},end(){if(b)return[];return j()},close(){if(!b)j()}},w={@underlyingSource:_,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:q,close:@onCloseDirectStream,write:q.write,error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};return @putByIdDirectPrivate(this,\"readableStreamController\",w),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined),v})\n";
-
-// initializeArrayBufferStream
-const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayBufferStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength = 690;
-static const JSC::Intrinsic s_readableStreamInternalsInitializeArrayBufferStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode = "(function (d,_){\"use strict\";var R=_&&typeof _===\"number\"\?{highWaterMark:_,stream:!0,asUint8Array:!0}:{stream:!0,asUint8Array:!0},b=new @Bun.ArrayBufferSink;b.start(R);var f={@underlyingSource:d,@pull:@onPullDirectStream,@controlledReadableStream:this,@sink:b,close:@onCloseDirectStream,write:b.write.bind(b),error:@handleDirectStreamError,end:@onCloseDirectStream,@close:@onCloseDirectStream,flush:@onFlushDirectStream,_pendingRead:@undefined,_deferClose:0,_deferFlush:0,_deferCloseReason:@undefined,_handleError:@undefined};@putByIdDirectPrivate(this,\"readableStreamController\",f),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"start\",@undefined)})\n";
-
-// readableStreamError
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamErrorCodeLength = 840;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamErrorCode = "(function (c,i){\"use strict\";@assert(@isReadableStream(c)),@assert(@getByIdDirectPrivate(c,\"state\")===@streamReadable),@putByIdDirectPrivate(c,\"state\",@streamErrored),@putByIdDirectPrivate(c,\"storedError\",i);const n=@getByIdDirectPrivate(c,\"reader\");if(!n)return;if(@isReadableStreamDefaultReader(n)){const f=@getByIdDirectPrivate(n,\"readRequests\");@putByIdDirectPrivate(n,\"readRequests\",@createFIFO());for(var _=f.shift();_;_=f.shift())@rejectPromise(_,i)}else{@assert(@isReadableStreamBYOBReader(n));const f=@getByIdDirectPrivate(n,\"readIntoRequests\");@putByIdDirectPrivate(n,\"readIntoRequests\",@createFIFO());for(var _=f.shift();_;_=f.shift())@rejectPromise(_,i)}@getByIdDirectPrivate(n,\"closedPromiseCapability\").@reject.@call(@undefined,i);const b=@getByIdDirectPrivate(n,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(b)})\n";
-
-// readableStreamDefaultControllerShouldCallPull
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeLength = 477;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCode = "(function (_){\"use strict\";const a=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(!@readableStreamDefaultControllerCanCloseOrEnqueue(_))return!1;if(@getByIdDirectPrivate(_,\"started\")!==1)return!1;if((!@isReadableStreamLocked(a)||!@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"reader\"),\"readRequests\")\?.isNotEmpty())&&@readableStreamDefaultControllerGetDesiredSize(_)<=0)return!1;const f=@readableStreamDefaultControllerGetDesiredSize(_);return @assert(f!==null),f>0})\n";
-
-// readableStreamDefaultControllerCallPullIfNeeded
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeLength = 859;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCode = "(function (_){\"use strict\";const d=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(!@readableStreamDefaultControllerCanCloseOrEnqueue(_))return;if(@getByIdDirectPrivate(_,\"started\")!==1)return;if((!@isReadableStreamLocked(d)||!@getByIdDirectPrivate(@getByIdDirectPrivate(d,\"reader\"),\"readRequests\")\?.isNotEmpty())&&@readableStreamDefaultControllerGetDesiredSize(_)<=0)return;if(@getByIdDirectPrivate(_,\"pulling\")){@putByIdDirectPrivate(_,\"pullAgain\",!0);return}@assert(!@getByIdDirectPrivate(_,\"pullAgain\")),@putByIdDirectPrivate(_,\"pulling\",!0),@getByIdDirectPrivate(_,\"pullAlgorithm\").@call(@undefined).@then(function(){if(@putByIdDirectPrivate(_,\"pulling\",!1),@getByIdDirectPrivate(_,\"pullAgain\"))@putByIdDirectPrivate(_,\"pullAgain\",!1),@readableStreamDefaultControllerCallPullIfNeeded(_)},function(g){@readableStreamDefaultControllerError(_,g)})})\n";
-
-// isReadableStreamLocked
-const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamLockedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamLockedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsIsReadableStreamLockedCodeLength = 102;
-static const JSC::Intrinsic s_readableStreamInternalsIsReadableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsIsReadableStreamLockedCode = "(function (c){\"use strict\";return @assert(@isReadableStream(c)),!!@getByIdDirectPrivate(c,\"reader\")})\n";
-
-// readableStreamDefaultControllerGetDesiredSize
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeLength = 283;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode = "(function (i){\"use strict\";const _=@getByIdDirectPrivate(i,\"controlledReadableStream\"),d=@getByIdDirectPrivate(_,\"state\");if(d===@streamErrored)return null;if(d===@streamClosed)return 0;return @getByIdDirectPrivate(i,\"strategy\").highWaterMark-@getByIdDirectPrivate(i,\"queue\").size})\n";
-
-// readableStreamReaderGenericCancel
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericCancelCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamReaderGenericCancelCodeLength = 133;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamReaderGenericCancelCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode = "(function (c,p){\"use strict\";const u=@getByIdDirectPrivate(c,\"ownerReadableStream\");return @assert(!!u),@readableStreamCancel(u,p)})\n";
-
-// readableStreamCancel
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCancelCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamCancelCodeLength = 509;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCancelCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamCancelCode = "(function (b,D){\"use strict\";@putByIdDirectPrivate(b,\"disturbed\",!0);const I=@getByIdDirectPrivate(b,\"state\");if(I===@streamClosed)return @Promise.@resolve();if(I===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(b,\"storedError\"));@readableStreamClose(b);var _=@getByIdDirectPrivate(b,\"readableStreamController\"),d=_.@cancel;if(d)return d(_,D).@then(function(){});var f=_.close;if(f)return @Promise.@resolve(_.close(D));@throwTypeError(\"ReadableStreamController has no cancel or close method\")})\n";
-
-// readableStreamDefaultControllerCancel
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeLength = 146;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerCancelCode = "(function (d,u){\"use strict\";return @putByIdDirectPrivate(d,\"queue\",@newQueue()),@getByIdDirectPrivate(d,\"cancelAlgorithm\").@call(@undefined,u)})\n";
-
-// readableStreamDefaultControllerPull
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerPullCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerPullCodeLength = 519;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerPullCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode = "(function (a){\"use strict\";var d=@getByIdDirectPrivate(a,\"queue\");if(d.content.isNotEmpty()){const y=@dequeueValue(d);if(@getByIdDirectPrivate(a,\"closeRequested\")&&d.content.isEmpty())@readableStreamClose(@getByIdDirectPrivate(a,\"controlledReadableStream\"));else @readableStreamDefaultControllerCallPullIfNeeded(a);return @createFulfilledPromise({value:y,done:!1})}const i=@readableStreamAddReadRequest(@getByIdDirectPrivate(a,\"controlledReadableStream\"));return @readableStreamDefaultControllerCallPullIfNeeded(a),i})\n";
-
-// readableStreamDefaultControllerClose
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeLength = 266;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerCloseCode = "(function (d){\"use strict\";if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(d)),@putByIdDirectPrivate(d,\"closeRequested\",!0),@getByIdDirectPrivate(d,\"queue\")\?.content\?.isEmpty())@readableStreamClose(@getByIdDirectPrivate(d,\"controlledReadableStream\"))})\n";
-
-// readableStreamClose
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamCloseCodeLength = 617;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamCloseCode = "(function (i){\"use strict\";if(@assert(@getByIdDirectPrivate(i,\"state\")===@streamReadable),@putByIdDirectPrivate(i,\"state\",@streamClosed),!@getByIdDirectPrivate(i,\"reader\"))return;if(@isReadableStreamDefaultReader(@getByIdDirectPrivate(i,\"reader\"))){const p=@getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\");if(p.isNotEmpty()){@putByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\",@createFIFO());for(var c=p.shift();c;c=p.shift())@fulfillPromise(c,{value:@undefined,done:!0})}}@getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"closedPromiseCapability\").@resolve.@call()})\n";
-
-// readableStreamFulfillReadRequest
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamFulfillReadRequestCodeLength = 157;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamFulfillReadRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode = "(function (p,P,_){\"use strict\";const b=@getByIdDirectPrivate(@getByIdDirectPrivate(p,\"reader\"),\"readRequests\").shift();@fulfillPromise(b,{value:P,done:_})})\n";
-
-// readableStreamDefaultControllerEnqueue
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength = 659;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode = "(function (_,b){\"use strict\";const f=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamDefaultControllerCanCloseOrEnqueue(_)),@isReadableStreamLocked(f)&&@getByIdDirectPrivate(@getByIdDirectPrivate(f,\"reader\"),\"readRequests\")\?.isNotEmpty()){@readableStreamFulfillReadRequest(f,b,!1),@readableStreamDefaultControllerCallPullIfNeeded(_);return}try{let v=1;if(@getByIdDirectPrivate(_,\"strategy\").size!==@undefined)v=@getByIdDirectPrivate(_,\"strategy\").size(b);@enqueueValueWithSize(@getByIdDirectPrivate(_,\"queue\"),b,v)}catch(v){throw @readableStreamDefaultControllerError(_,v),v}@readableStreamDefaultControllerCallPullIfNeeded(_)})\n";
-
-// readableStreamDefaultReaderRead
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultReaderReadCodeLength = 491;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultReaderReadCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode = "(function (i){\"use strict\";const P=@getByIdDirectPrivate(i,\"ownerReadableStream\");@assert(!!P);const c=@getByIdDirectPrivate(P,\"state\");if(@putByIdDirectPrivate(P,\"disturbed\",!0),c===@streamClosed)return @createFulfilledPromise({value:@undefined,done:!0});if(c===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(P,\"storedError\"));return @assert(c===@streamReadable),@getByIdDirectPrivate(P,\"readableStreamController\").@pull(@getByIdDirectPrivate(P,\"readableStreamController\"))})\n";
-
-// readableStreamAddReadRequest
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamAddReadRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamAddReadRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamAddReadRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamAddReadRequestCodeLength = 274;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamAddReadRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamAddReadRequestCode = "(function (i){\"use strict\";@assert(@isReadableStreamDefaultReader(@getByIdDirectPrivate(i,\"reader\"))),@assert(@getByIdDirectPrivate(i,\"state\")==@streamReadable);const g=@newPromise();return @getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\").push(g),g})\n";
-
-// isReadableStreamDisturbed
-const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDisturbedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamDisturbedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamDisturbedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsIsReadableStreamDisturbedCodeLength = 103;
-static const JSC::Intrinsic s_readableStreamInternalsIsReadableStreamDisturbedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsIsReadableStreamDisturbedCode = "(function (c){\"use strict\";return @assert(@isReadableStream(c)),@getByIdDirectPrivate(c,\"disturbed\")})\n";
-
-// readableStreamReaderGenericRelease
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeLength = 813;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamReaderGenericReleaseCode = "(function (c){\"use strict\";if(@assert(!!@getByIdDirectPrivate(c,\"ownerReadableStream\")),@assert(@getByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"reader\")===c),@getByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"state\")===@streamReadable)@getByIdDirectPrivate(c,\"closedPromiseCapability\").@reject.@call(@undefined,@makeTypeError(\"releasing lock of reader whose stream is still in readable state\"));else @putByIdDirectPrivate(c,\"closedPromiseCapability\",{@promise:@newHandledRejectedPromise(@makeTypeError(\"reader released lock\"))});const s=@getByIdDirectPrivate(c,\"closedPromiseCapability\").@promise;@markPromiseAsHandled(s),@putByIdDirectPrivate(@getByIdDirectPrivate(c,\"ownerReadableStream\"),\"reader\",@undefined),@putByIdDirectPrivate(c,\"ownerReadableStream\",@undefined)})\n";
-
-// readableStreamDefaultControllerCanCloseOrEnqueue
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeLength = 180;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCode = "(function (a){\"use strict\";return!@getByIdDirectPrivate(a,\"closeRequested\")&&@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"state\")===@streamReadable})\n";
-
-// lazyLoadStream
-const JSC::ConstructAbility s_readableStreamInternalsLazyLoadStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsLazyLoadStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsLazyLoadStreamCodeLength = 1589;
-static const JSC::Intrinsic s_readableStreamInternalsLazyLoadStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsLazyLoadStreamCode = "(function (b,f){\"use strict\";var j=@getByIdDirectPrivate(b,\"bunNativeType\"),m=@getByIdDirectPrivate(b,\"bunNativePtr\"),q=@lazyStreamPrototypeMap.@get(j);if(q===@undefined){let U=function(Z){var{c:_,v:p}=this;this.c=@undefined,this.v=@undefined,J(Z,_,p)},W=function(Z){try{Z.close()}catch(_){globalThis.reportError(_)}},X=function(Z,_,p,z){z[0]=!1;var A;try{A=x(Z,p,z)}catch(C){return _.error(C)}return J(A,_,p)};var Q=U,P=W,O=X,[x,B,D,E,F,G,H]=@lazyLoad(j),I=[!1],J;J=function Z(_,p,z){if(_&&@isPromise(_))return _.then(U.bind({c:p,v:z}),(A)=>p.error(A));else if(typeof _===\"number\")if(z&&z.byteLength===_&&z.buffer===p.byobRequest\?.view\?.buffer)p.byobRequest.respondWithNewView(z);else p.byobRequest.respond(_);else if(_.constructor===@Uint8Array)p.enqueue(_);if(I[0]||_===!1)@enqueueJob(W,p),I[0]=!1};const Y=F\?new FinalizationRegistry(F):null;q=class Z{constructor(_,p,z){if(this.#f=_,this.#b={},this.pull=this.#j.bind(this),this.cancel=this.#m.bind(this),this.autoAllocateChunkSize=p,z!==@undefined)this.start=(A)=>{A.enqueue(z)};if(Y)Y.register(this,_,this.#b)}#b;pull;cancel;start;#f;type=\"bytes\";autoAllocateChunkSize=0;static startSync=B;#j(_){var p=this.#f;if(!p){_.close();return}X(p,_,_.byobRequest.view,I)}#m(_){var p=this.#f;Y&&Y.unregister(this.#b),G&&G(p,!1),D(p,_)}static deinit=F;static drain=H},@lazyStreamPrototypeMap.@set(j,q)}const K=q.startSync(m,f);var L;const{drain:M,deinit:N}=q;if(M)L=M(m);if(K===0){if(F&&m&&@enqueueJob(F,m),(L\?.byteLength\?\?0)>0)return{start(U){U.enqueue(L),U.close()},type:\"bytes\"};return{start(U){U.close()},type:\"bytes\"}}return new q(m,K,L)})\n";
-
-// readableStreamIntoArray
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoArrayCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamIntoArrayCodeLength = 247;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoArrayCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamIntoArrayCode = "(function (_){\"use strict\";var b=_.getReader(),f=b.readMany();async function g(j){if(j.done)return[];var q=j.value||[];while(!0){var v=await b.read();if(v.done)break;q=q.concat(v.value)}return q}if(f&&@isPromise(f))return f.@then(g);return g(f)})\n";
-
-// readableStreamIntoText
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoTextCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoTextCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamIntoTextCodeLength = 214;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamIntoTextCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamIntoTextCode = "(function (_){\"use strict\";const[d,n]=@createTextStream(@getByIdDirectPrivate(_,\"highWaterMark\")),u=@readStreamIntoSink(_,d,!1);if(u&&@isPromise(u))return @Promise.@resolve(u).@then(n.@promise);return n.@promise})\n";
-
-// readableStreamToArrayBufferDirect
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength = 727;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode = "(function (v,_){\"use strict\";var j=new @Bun.ArrayBufferSink;@putByIdDirectPrivate(v,\"underlyingSource\",@undefined);var q=@getByIdDirectPrivate(v,\"highWaterMark\");j.start(q\?{highWaterMark:q}:{});var w=@newPromiseCapability(@Promise),x=!1,z=_.pull,A=_.close,B={start(){},close(D){if(!x){if(x=!0,A)A();@fulfillPromise(w.@promise,j.end())}},end(){if(!x){if(x=!0,A)A();@fulfillPromise(w.@promise,j.end())}},flush(){return 0},write:j.write.bind(j)},C=!1;try{const D=z(B);if(D&&@isObject(D)&&@isPromise(D))return async function(F,G,H){while(!x)await H(F);return await G}(B,promise,z);return w.@promise}catch(D){return C=!0,@readableStreamError(v,D),@Promise.@reject(D)}finally{if(!C&&v)@readableStreamClose(v);B=A=j=z=v=@undefined}})\n";
-
-// readableStreamToTextDirect
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToTextDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToTextDirectCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToTextDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamToTextDirectCodeLength = 278;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToTextDirectCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamToTextDirectCode = "(async function (_,f){\"use strict\";const j=@initializeTextStream.@call(_,f,@undefined);var k=_.getReader();while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var n=await k.read();if(n.done)break}try{k.releaseLock()}catch(q){}return k=@undefined,_=@undefined,j.@promise})\n";
-
-// readableStreamToArrayDirect
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayDirectCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayDirectCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayDirectCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamToArrayDirectCodeLength = 371;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamToArrayDirectCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode = "(async function (_,k){\"use strict\";const f=@initializeArrayStream.@call(_,k,@undefined);k=@undefined;var j=_.getReader();try{while(@getByIdDirectPrivate(_,\"state\")===@streamReadable){var q=await j.read();if(q.done)break}try{j.releaseLock()}catch(v){}return j=@undefined,@Promise.@resolve(f.@promise)}catch(v){throw v}finally{_=@undefined,j=@undefined}return f.@promise})\n";
-
-// readableStreamDefineLazyIterators
-const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength = 516;
-static const JSC::Intrinsic s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode = "(function (_){\"use strict\";var g=globalThis.Symbol.asyncIterator,h=async function*q(w,x){var z=w.getReader(),B;try{while(!0){var D,F;const G=z.readMany();if(@isPromise(G))({done:D,value:F}=await G);else({done:D,value:F}=G);if(D)return;yield*F}}catch(G){B=G}finally{if(z.releaseLock(),!x)w.cancel(B);if(B)throw B}},j=function q(){return h(this,!1)},k=function q({preventCancel:w=!1}={preventCancel:!1}){return h(this,w)};return @Object.@defineProperty(_,g,{value:j}),@Object.@defineProperty(_,\"values\",{value:k}),_})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().readableStreamInternalsBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().readableStreamInternalsBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* TransformStreamDefaultController.ts */
-// initializeTransformStreamDefaultController
-const JSC::ConstructAbility s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeLength = 40;
-static const JSC::Intrinsic s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCode = "(function (){\"use strict\";return this})\n";
-
-// desiredSize
-const JSC::ConstructAbility s_transformStreamDefaultControllerDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamDefaultControllerDesiredSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamDefaultControllerDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamDefaultControllerDesiredSizeCodeLength = 339;
-static const JSC::Intrinsic s_transformStreamDefaultControllerDesiredSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");const i=@getByIdDirectPrivate(this,\"stream\"),h=@getByIdDirectPrivate(i,\"readable\"),C=@getByIdDirectPrivate(h,\"readableStreamController\");return @readableStreamDefaultControllerGetDesiredSize(C)})\n";
-
-// enqueue
-const JSC::ConstructAbility s_transformStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamDefaultControllerEnqueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamDefaultControllerEnqueueCodeLength = 195;
-static const JSC::Intrinsic s_transformStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamDefaultControllerEnqueueCode = "(function (e){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"enqueue\");@transformStreamDefaultControllerEnqueue(this,e)})\n";
-
-// error
-const JSC::ConstructAbility s_transformStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamDefaultControllerErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamDefaultControllerErrorCodeLength = 191;
-static const JSC::Intrinsic s_transformStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamDefaultControllerErrorCode = "(function (r){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"error\");@transformStreamDefaultControllerError(this,r)})\n";
-
-// terminate
-const JSC::ConstructAbility s_transformStreamDefaultControllerTerminateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_transformStreamDefaultControllerTerminateCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_transformStreamDefaultControllerTerminateCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_transformStreamDefaultControllerTerminateCodeLength = 196;
-static const JSC::Intrinsic s_transformStreamDefaultControllerTerminateCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_transformStreamDefaultControllerTerminateCode = "(function (){\"use strict\";if(!@isTransformStreamDefaultController(this))throw @makeThisTypeError(\"TransformStreamDefaultController\",\"terminate\");@transformStreamDefaultControllerTerminate(this)})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().transformStreamDefaultControllerBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().transformStreamDefaultControllerBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ReadableStreamBYOBReader.ts */
-// initializeReadableStreamBYOBReader
-const JSC::ConstructAbility s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeLength = 485;
-static const JSC::Intrinsic s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCode = "(function (_){\"use strict\";if(!@isReadableStream(_))@throwTypeError(\"ReadableStreamBYOBReader needs a ReadableStream\");if(!@isReadableByteStreamController(@getByIdDirectPrivate(_,\"readableStreamController\")))@throwTypeError(\"ReadableStreamBYOBReader needs a ReadableByteStreamController\");if(@isReadableStreamLocked(_))@throwTypeError(\"ReadableStream is locked\");return @readableStreamReaderGenericInitialize(this,_),@putByIdDirectPrivate(this,\"readIntoRequests\",@createFIFO()),this})\n";
-
-// cancel
-const JSC::ConstructAbility s_readableStreamBYOBReaderCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBReaderCancelCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBReaderCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBReaderCancelCodeLength = 351;
-static const JSC::Intrinsic s_readableStreamBYOBReaderCancelCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBReaderCancelCode = "(function (r){\"use strict\";if(!@isReadableStreamBYOBReader(this))return @Promise.@reject(@makeThisTypeError(\"ReadableStreamBYOBReader\",\"cancel\"));if(!@getByIdDirectPrivate(this,\"ownerReadableStream\"))return @Promise.@reject(@makeTypeError(\"cancel() called on a reader owned by no readable stream\"));return @readableStreamReaderGenericCancel(this,r)})\n";
-
-// read
-const JSC::ConstructAbility s_readableStreamBYOBReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBReaderReadCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBReaderReadCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBReaderReadCodeLength = 648;
-static const JSC::Intrinsic s_readableStreamBYOBReaderReadCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBReaderReadCode = "(function (n){\"use strict\";if(!@isReadableStreamBYOBReader(this))return @Promise.@reject(@makeThisTypeError(\"ReadableStreamBYOBReader\",\"read\"));if(!@getByIdDirectPrivate(this,\"ownerReadableStream\"))return @Promise.@reject(@makeTypeError(\"read() called on a reader owned by no readable stream\"));if(!@isObject(n))return @Promise.@reject(@makeTypeError(\"Provided view is not an object\"));if(!@ArrayBuffer.@isView(n))return @Promise.@reject(@makeTypeError(\"Provided view is not an ArrayBufferView\"));if(n.byteLength===0)return @Promise.@reject(@makeTypeError(\"Provided view cannot have a 0 byteLength\"));return @readableStreamBYOBReaderRead(this,n)})\n";
-
-// releaseLock
-const JSC::ConstructAbility s_readableStreamBYOBReaderReleaseLockCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBReaderReleaseLockCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBReaderReleaseLockCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBReaderReleaseLockCodeLength = 382;
-static const JSC::Intrinsic s_readableStreamBYOBReaderReleaseLockCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBReaderReleaseLockCode = "(function (){\"use strict\";if(!@isReadableStreamBYOBReader(this))throw @makeThisTypeError(\"ReadableStreamBYOBReader\",\"releaseLock\");if(!@getByIdDirectPrivate(this,\"ownerReadableStream\"))return;if(@getByIdDirectPrivate(this,\"readIntoRequests\")\?.isNotEmpty())@throwTypeError(\"There are still pending read requests, cannot release the lock\");@readableStreamReaderGenericRelease(this)})\n";
-
-// closed
-const JSC::ConstructAbility s_readableStreamBYOBReaderClosedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBReaderClosedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBReaderClosedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBReaderClosedCodeLength = 219;
-static const JSC::Intrinsic s_readableStreamBYOBReaderClosedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBReaderClosedCode = "(function (){\"use strict\";if(!@isReadableStreamBYOBReader(this))return @Promise.@reject(@makeGetterTypeError(\"ReadableStreamBYOBReader\",\"closed\"));return @getByIdDirectPrivate(this,\"closedPromiseCapability\").@promise})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().readableStreamBYOBReaderBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().readableStreamBYOBReaderBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* JSBufferConstructor.ts */
-// from
-const JSC::ConstructAbility s_jsBufferConstructorFromCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_jsBufferConstructorFromCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_jsBufferConstructorFromCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_jsBufferConstructorFromCodeLength = 1107;
-static const JSC::Intrinsic s_jsBufferConstructorFromCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_jsBufferConstructorFromCode = "(function (n){\"use strict\";if(@isUndefinedOrNull(n))@throwTypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.\");if(typeof n===\"string\"||typeof n===\"object\"&&(@isTypedArrayView(n)||n instanceof @ArrayBuffer||n instanceof SharedArrayBuffer||n instanceof String))switch(@argumentCount()){case 1:return new @Buffer(n);case 2:return new @Buffer(n,@argument(1));default:return new @Buffer(n,@argument(1),@argument(2))}var _=@toObject(n,\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\");if(!@isJSArray(_)){const f=@tryGetByIdWithWellKnownSymbol(n,\"toPrimitive\");if(f){const u=f.@call(n,\"string\");if(typeof u===\"string\")switch(@argumentCount()){case 1:return new @Buffer(u);case 2:return new @Buffer(u,@argument(1));default:return new @Buffer(u,@argument(1),@argument(2))}}if(!(\"length\"in _)||@isCallable(_))@throwTypeError(\"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\")}return new @Buffer(@Uint8Array.from(_).buffer)})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().jsBufferConstructorBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().jsBufferConstructorBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ReadableStreamDefaultReader.ts */
-// initializeReadableStreamDefaultReader
-const JSC::ConstructAbility s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeLength = 314;
-static const JSC::Intrinsic s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCode = "(function (n){\"use strict\";if(!@isReadableStream(n))@throwTypeError(\"ReadableStreamDefaultReader needs a ReadableStream\");if(@isReadableStreamLocked(n))@throwTypeError(\"ReadableStream is locked\");return @readableStreamReaderGenericInitialize(this,n),@putByIdDirectPrivate(this,\"readRequests\",@createFIFO()),this})\n";
-
-// cancel
-const JSC::ConstructAbility s_readableStreamDefaultReaderCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultReaderCancelCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultReaderCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultReaderCancelCodeLength = 357;
-static const JSC::Intrinsic s_readableStreamDefaultReaderCancelCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultReaderCancelCode = "(function (e){\"use strict\";if(!@isReadableStreamDefaultReader(this))return @Promise.@reject(@makeThisTypeError(\"ReadableStreamDefaultReader\",\"cancel\"));if(!@getByIdDirectPrivate(this,\"ownerReadableStream\"))return @Promise.@reject(@makeTypeError(\"cancel() called on a reader owned by no readable stream\"));return @readableStreamReaderGenericCancel(this,e)})\n";
-
-// readMany
-const JSC::ConstructAbility s_readableStreamDefaultReaderReadManyCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadManyCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultReaderReadManyCodeLength = 2598;
-static const JSC::Intrinsic s_readableStreamDefaultReaderReadManyCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultReaderReadManyCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))@throwTypeError(\"ReadableStreamDefaultReader.readMany() should not be called directly\");const _=@getByIdDirectPrivate(this,\"ownerReadableStream\");if(!_)@throwTypeError(\"readMany() called on a reader owned by no readable stream\");const d=@getByIdDirectPrivate(_,\"state\");if(@putByIdDirectPrivate(_,\"disturbed\",!0),d===@streamClosed)return{value:[],size:0,done:!0};else if(d===@streamErrored)throw @getByIdDirectPrivate(_,\"storedError\");var S=@getByIdDirectPrivate(_,\"readableStreamController\"),D=@getByIdDirectPrivate(S,\"queue\");if(!D)return S.@pull(S).@then(function({done:B,value:C}){return B\?{done:!0,value:[],size:0}:{value:[C],size:1,done:!1}});const Q=D.content;var W=D.size,j=Q.toArray(!1),k=j.length;if(k>0){var w=@newArrayWithSize(k);if(@isReadableByteStreamController(S)){{const B=j[0];if(!(@ArrayBuffer.@isView(B)||B instanceof @ArrayBuffer))@putByValDirect(w,0,new @Uint8Array(B.buffer,B.byteOffset,B.byteLength));else @putByValDirect(w,0,B)}for(var x=1;x<k;x++){const B=j[x];if(!(@ArrayBuffer.@isView(B)||B instanceof @ArrayBuffer))@putByValDirect(w,x,new @Uint8Array(B.buffer,B.byteOffset,B.byteLength));else @putByValDirect(w,x,B)}}else{@putByValDirect(w,0,j[0].value);for(var x=1;x<k;x++)@putByValDirect(w,x,j[x].value)}if(@resetQueue(@getByIdDirectPrivate(S,\"queue\")),@getByIdDirectPrivate(S,\"closeRequested\"))@readableStreamClose(@getByIdDirectPrivate(S,\"controlledReadableStream\"));else if(@isReadableStreamDefaultController(S))@readableStreamDefaultControllerCallPullIfNeeded(S);else if(@isReadableByteStreamController(S))@readableByteStreamControllerCallPullIfNeeded(S);return{value:w,size:W,done:!1}}var y=(B)=>{if(B.done)return{value:[],size:0,done:!0};var C=@getByIdDirectPrivate(_,\"readableStreamController\"),E=@getByIdDirectPrivate(C,\"queue\"),F=[B.value].concat(E.content.toArray(!1)),G=F.length;if(@isReadableByteStreamController(C))for(var H=0;H<G;H++){const J=F[H];if(!(@ArrayBuffer.@isView(J)||J instanceof @ArrayBuffer)){const{buffer:K,byteOffset:N,byteLength:T}=J;@putByValDirect(F,H,new @Uint8Array(K,N,T))}}else for(var H=1;H<G;H++)@putByValDirect(F,H,F[H].value);var I=E.size;if(@resetQueue(E),@getByIdDirectPrivate(C,\"closeRequested\"))@readableStreamClose(@getByIdDirectPrivate(C,\"controlledReadableStream\"));else if(@isReadableStreamDefaultController(C))@readableStreamDefaultControllerCallPullIfNeeded(C);else if(@isReadableByteStreamController(C))@readableByteStreamControllerCallPullIfNeeded(C);return{value:F,size:I,done:!1}},A=S.@pull(S);if(A&&@isPromise(A))return A.@then(y);return y(A)})\n";
-
-// read
-const JSC::ConstructAbility s_readableStreamDefaultReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultReaderReadCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultReaderReadCodeLength = 348;
-static const JSC::Intrinsic s_readableStreamDefaultReaderReadCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultReaderReadCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))return @Promise.@reject(@makeThisTypeError(\"ReadableStreamDefaultReader\",\"read\"));if(!@getByIdDirectPrivate(this,\"ownerReadableStream\"))return @Promise.@reject(@makeTypeError(\"read() called on a reader owned by no readable stream\"));return @readableStreamDefaultReaderRead(this)})\n";
-
-// releaseLock
-const JSC::ConstructAbility s_readableStreamDefaultReaderReleaseLockCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultReaderReleaseLockCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultReaderReleaseLockCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultReaderReleaseLockCodeLength = 384;
-static const JSC::Intrinsic s_readableStreamDefaultReaderReleaseLockCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultReaderReleaseLockCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))throw @makeThisTypeError(\"ReadableStreamDefaultReader\",\"releaseLock\");if(!@getByIdDirectPrivate(this,\"ownerReadableStream\"))return;if(@getByIdDirectPrivate(this,\"readRequests\")\?.isNotEmpty())@throwTypeError(\"There are still pending read requests, cannot release the lock\");@readableStreamReaderGenericRelease(this)})\n";
-
-// closed
-const JSC::ConstructAbility s_readableStreamDefaultReaderClosedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultReaderClosedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultReaderClosedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultReaderClosedCodeLength = 225;
-static const JSC::Intrinsic s_readableStreamDefaultReaderClosedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultReaderClosedCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultReader(this))return @Promise.@reject(@makeGetterTypeError(\"ReadableStreamDefaultReader\",\"closed\"));return @getByIdDirectPrivate(this,\"closedPromiseCapability\").@promise})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().readableStreamDefaultReaderBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().readableStreamDefaultReaderBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* StreamInternals.ts */
-// markPromiseAsHandled
-const JSC::ConstructAbility s_streamInternalsMarkPromiseAsHandledCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsMarkPromiseAsHandledCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsMarkPromiseAsHandledCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsMarkPromiseAsHandledCodeLength = 169;
-static const JSC::Intrinsic s_streamInternalsMarkPromiseAsHandledCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsMarkPromiseAsHandledCode = "(function (_){\"use strict\";@assert(@isPromise(_)),@putPromiseInternalField(_,@promiseFieldFlags,@getPromiseInternalField(_,@promiseFieldFlags)|@promiseFlagsIsHandled)})\n";
-
-// shieldingPromiseResolve
-const JSC::ConstructAbility s_streamInternalsShieldingPromiseResolveCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsShieldingPromiseResolveCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsShieldingPromiseResolveCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsShieldingPromiseResolveCodeLength = 124;
-static const JSC::Intrinsic s_streamInternalsShieldingPromiseResolveCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsShieldingPromiseResolveCode = "(function (a){\"use strict\";const d=@Promise.@resolve(a);if(d.@then===@undefined)d.@then=@Promise.prototype.@then;return d})\n";
-
-// promiseInvokeOrNoopMethodNoCatch
-const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeLength = 125;
-static const JSC::Intrinsic s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCode = "(function (_,n,p){\"use strict\";if(n===@undefined)return @Promise.@resolve();return @shieldingPromiseResolve(n.@apply(_,p))})\n";
-
-// promiseInvokeOrNoopNoCatch
-const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrNoopNoCatchCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrNoopNoCatchCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrNoopNoCatchCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsPromiseInvokeOrNoopNoCatchCodeLength = 84;
-static const JSC::Intrinsic s_streamInternalsPromiseInvokeOrNoopNoCatchCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsPromiseInvokeOrNoopNoCatchCode = "(function (d,i,n){\"use strict\";return @promiseInvokeOrNoopMethodNoCatch(d,d[i],n)})\n";
-
-// promiseInvokeOrNoopMethod
-const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrNoopMethodCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrNoopMethodCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrNoopMethodCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsPromiseInvokeOrNoopMethodCodeLength = 122;
-static const JSC::Intrinsic s_streamInternalsPromiseInvokeOrNoopMethodCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsPromiseInvokeOrNoopMethodCode = "(function (n,p,u){\"use strict\";try{return @promiseInvokeOrNoopMethodNoCatch(n,p,u)}catch(P){return @Promise.@reject(P)}})\n";
-
-// promiseInvokeOrNoop
-const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrNoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrNoopCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrNoopCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsPromiseInvokeOrNoopCodeLength = 116;
-static const JSC::Intrinsic s_streamInternalsPromiseInvokeOrNoopCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsPromiseInvokeOrNoopCode = "(function (n,d,p){\"use strict\";try{return @promiseInvokeOrNoopNoCatch(n,d,p)}catch(u){return @Promise.@reject(u)}})\n";
-
-// promiseInvokeOrFallbackOrNoop
-const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeLength = 198;
-static const JSC::Intrinsic s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsPromiseInvokeOrFallbackOrNoopCode = "(function (p,i,n,u,P){\"use strict\";try{const _=p[i];if(_===@undefined)return @promiseInvokeOrNoopNoCatch(p,u,P);return @shieldingPromiseResolve(_.@apply(p,n))}catch(_){return @Promise.@reject(_)}})\n";
-
-// validateAndNormalizeQueuingStrategy
-const JSC::ConstructAbility s_streamInternalsValidateAndNormalizeQueuingStrategyCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsValidateAndNormalizeQueuingStrategyCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsValidateAndNormalizeQueuingStrategyCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsValidateAndNormalizeQueuingStrategyCodeLength = 263;
-static const JSC::Intrinsic s_streamInternalsValidateAndNormalizeQueuingStrategyCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsValidateAndNormalizeQueuingStrategyCode = "(function (d,_){\"use strict\";if(d!==@undefined&&typeof d!==\"function\")@throwTypeError(\"size parameter must be a function\");const b=@toNumber(_);if(@isNaN(b)||b<0)@throwRangeError(\"highWaterMark value is negative or not a number\");return{size:d,highWaterMark:b}})\n";
-
-// createFIFO
-const JSC::ConstructAbility s_streamInternalsCreateFIFOCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsCreateFIFOCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsCreateFIFOCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_streamInternalsCreateFIFOCodeLength = 1472;
-static const JSC::Intrinsic s_streamInternalsCreateFIFOCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsCreateFIFOCode = "(function (){\"use strict\";var g=@Array.prototype.slice;class b{constructor(){this._head=0,this._tail=0,this._capacityMask=3,this._list=@newArrayWithSize(4)}_head;_tail;_capacityMask;_list;size(){if(this._head===this._tail)return 0;if(this._head<this._tail)return this._tail-this._head;else return this._capacityMask+1-(this._head-this._tail)}isEmpty(){return this.size()==0}isNotEmpty(){return this.size()>0}shift(){var{_head:k,_tail:v,_list:w,_capacityMask:x}=this;if(k===v)return @undefined;var z=w[k];if(@putByValDirect(w,k,@undefined),k=this._head=k+1&x,k<2&&v>1e4&&v<=w.length>>>2)this._shrinkArray();return z}peek(){if(this._head===this._tail)return @undefined;return this._list[this._head]}push(k){var v=this._tail;if(@putByValDirect(this._list,v,k),this._tail=v+1&this._capacityMask,this._tail===this._head)this._growArray()}toArray(k){var v=this._list,w=@toLength(v.length);if(k||this._head>this._tail){var x=@toLength(this._head),z=@toLength(this._tail),A=@toLength(w-x+z),B=@newArrayWithSize(A),E=0;for(var F=x;F<w;F++)@putByValDirect(B,E++,v[F]);for(var F=0;F<z;F++)@putByValDirect(B,E++,v[F]);return B}else return g.@call(v,this._head,this._tail)}clear(){this._head=0,this._tail=0,this._list.fill(@undefined)}_growArray(){if(this._head)this._list=this.toArray(!0),this._head=0;this._tail=@toLength(this._list.length),this._list.length<<=1,this._capacityMask=this._capacityMask<<1|1}shrinkArray(){this._list.length>>>=1,this._capacityMask>>>=1}}return new b})\n";
-
-// newQueue
-const JSC::ConstructAbility s_streamInternalsNewQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsNewQueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsNewQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsNewQueueCodeLength = 65;
-static const JSC::Intrinsic s_streamInternalsNewQueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsNewQueueCode = "(function (){\"use strict\";return{content:@createFIFO(),size:0}})\n";
-
-// dequeueValue
-const JSC::ConstructAbility s_streamInternalsDequeueValueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsDequeueValueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsDequeueValueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsDequeueValueCodeLength = 106;
-static const JSC::Intrinsic s_streamInternalsDequeueValueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsDequeueValueCode = "(function (a){\"use strict\";const n=a.content.shift();if(a.size-=n.size,a.size<0)a.size=0;return n.value})\n";
-
-// enqueueValueWithSize
-const JSC::ConstructAbility s_streamInternalsEnqueueValueWithSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsEnqueueValueWithSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsEnqueueValueWithSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsEnqueueValueWithSizeCodeLength = 161;
-static const JSC::Intrinsic s_streamInternalsEnqueueValueWithSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsEnqueueValueWithSizeCode = "(function (r,c,d){\"use strict\";if(d=@toNumber(d),!@isFinite(d)||d<0)@throwRangeError(\"size has an incorrect value\");r.content.push({value:c,size:d}),r.size+=d})\n";
-
-// peekQueueValue
-const JSC::ConstructAbility s_streamInternalsPeekQueueValueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsPeekQueueValueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsPeekQueueValueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsPeekQueueValueCodeLength = 60;
-static const JSC::Intrinsic s_streamInternalsPeekQueueValueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsPeekQueueValueCode = "(function (a){\"use strict\";return a.content.peek()\?.value})\n";
-
-// resetQueue
-const JSC::ConstructAbility s_streamInternalsResetQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsResetQueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsResetQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsResetQueueCodeLength = 99;
-static const JSC::Intrinsic s_streamInternalsResetQueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsResetQueueCode = "(function (a){\"use strict\";@assert(\"content\"in a),@assert(\"size\"in a),a.content.clear(),a.size=0})\n";
-
-// extractSizeAlgorithm
-const JSC::ConstructAbility s_streamInternalsExtractSizeAlgorithmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsExtractSizeAlgorithmCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsExtractSizeAlgorithmCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsExtractSizeAlgorithmCodeLength = 176;
-static const JSC::Intrinsic s_streamInternalsExtractSizeAlgorithmCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsExtractSizeAlgorithmCode = "(function (d){\"use strict\";const p=d.size;if(p===@undefined)return()=>1;if(typeof p!==\"function\")@throwTypeError(\"strategy.size must be a function\");return(_)=>{return p(_)}})\n";
-
-// extractHighWaterMark
-const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsExtractHighWaterMarkCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsExtractHighWaterMarkCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsExtractHighWaterMarkCodeLength = 188;
-static const JSC::Intrinsic s_streamInternalsExtractHighWaterMarkCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsExtractHighWaterMarkCode = "(function (n,c){\"use strict\";const p=n.highWaterMark;if(p===@undefined)return c;if(@isNaN(p)||p<0)@throwRangeError(\"highWaterMark value is negative or not a number\");return @toNumber(p)})\n";
-
-// extractHighWaterMarkFromQueuingStrategyInit
-const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeLength = 249;
-static const JSC::Intrinsic s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCode = "(function (_){\"use strict\";if(!@isObject(_))@throwTypeError(\"QueuingStrategyInit argument must be an object.\");const{highWaterMark:e}=_;if(e===@undefined)@throwTypeError(\"QueuingStrategyInit.highWaterMark member is required.\");return @toNumber(e)})\n";
-
-// createFulfilledPromise
-const JSC::ConstructAbility s_streamInternalsCreateFulfilledPromiseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsCreateFulfilledPromiseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsCreateFulfilledPromiseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsCreateFulfilledPromiseCodeLength = 81;
-static const JSC::Intrinsic s_streamInternalsCreateFulfilledPromiseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsCreateFulfilledPromiseCode = "(function (n){\"use strict\";const r=@newPromise();return @fulfillPromise(r,n),r})\n";
-
-// toDictionary
-const JSC::ConstructAbility s_streamInternalsToDictionaryCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_streamInternalsToDictionaryCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_streamInternalsToDictionaryCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_streamInternalsToDictionaryCodeLength = 115;
-static const JSC::Intrinsic s_streamInternalsToDictionaryCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_streamInternalsToDictionaryCode = "(function (n,_,b){\"use strict\";if(n===@undefined||n===null)return _;if(!@isObject(n))@throwTypeError(b);return n})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().streamInternalsBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().streamInternalsBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ImportMetaObject.ts */
-// loadCJS2ESM
-const JSC::ConstructAbility s_importMetaObjectLoadCJS2ESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_importMetaObjectLoadCJS2ESMCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_importMetaObjectLoadCJS2ESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_importMetaObjectLoadCJS2ESMCodeLength = 1309;
-static const JSC::Intrinsic s_importMetaObjectLoadCJS2ESMCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_importMetaObjectLoadCJS2ESMCode = "(function (_){\"use strict\";var F=@Loader,W=@createFIFO(),b=_;while(b){var w=F.registry.@get(b);if(!w||!w.state||w.state<=@ModuleFetch)@fulfillModuleSync(b),w=F.registry.@get(b);var x=@getPromiseInternalField(w.fetch,@promiseFieldReactionsOrResult),z=F.parseModule(b,x),B=w.module;if(!B&&z&&@isPromise(z)){var D=@getPromiseInternalField(z,@promiseFieldReactionsOrResult),G=@getPromiseInternalField(z,@promiseFieldFlags),H=G&@promiseStateMask;if(H===@promiseStatePending||D&&@isPromise(D))@throwTypeError(`require() async module \"${b}\" is unsupported`);else if(H===@promiseStateRejected)@throwTypeError(`${D\?.message\?\?\"An error occurred\"} while parsing module \\\"${b}\\\"`);w.module=B=D}else if(z&&!B)w.module=B=z;@setStateToMax(w,@ModuleLink);var I=B.dependenciesMap,J=F.requestedModules(B),L=@newArrayWithSize(J.length);for(var Q=0,T=J.length;Q<T;++Q){var U=J[Q],V=U[0]===\"/\"\?U:F.resolve(U,b),X=F.ensureRegistered(V);if(X.state<@ModuleLink)W.push(V);@putByValDirect(L,Q,X),I.@set(U,X)}w.dependencies=L,w.instantiate=@Promise.resolve(w),w.satisfy=@Promise.resolve(w),b=W.shift();while(b&&(F.registry.@get(b)\?.state\?\?@ModuleFetch)>=@ModuleLink)b=W.shift()}var Y=F.linkAndEvaluateModule(_,@undefined);if(Y&&@isPromise(Y))@throwTypeError(`require() async module \\\"${_}\\\" is unsupported`);return F.registry.@get(_)})\n";
-
-// requireESM
-const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_importMetaObjectRequireESMCodeLength = 419;
-static const JSC::Intrinsic s_importMetaObjectRequireESMCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_importMetaObjectRequireESMCode = "(function (i){\"use strict\";var a=@Loader.registry.@get(i);if(!a||!a.evaluated)a=@loadCJS2ESM(i);if(!a||!a.evaluated||!a.module)@throwTypeError(`require() failed to evaluate module \"${i}\". This is an internal consistentency error.`);var E=@Loader.getModuleNamespaceObject(a.module);if(E[@commonJSSymbol]===0)return;var b=E.default,f=b\?.[@commonJSSymbol];if(f===0)return b;else if(f&&@isCallable(b))return b();return E})\n";
-
-// internalRequire
-const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_importMetaObjectInternalRequireCodeLength = 611;
-static const JSC::Intrinsic s_importMetaObjectInternalRequireCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_importMetaObjectInternalRequireCode = "(function (n){\"use strict\";var _=@requireMap.@get(n);const i=n.substring(n.length-5);if(_){if(i===\".node\")return _.exports;return _}if(i===\".json\"){var S=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),F=JSON.parse(S.readFileSync(n,\"utf8\"));return @requireMap.@set(n,F),F}else if(i===\".node\"){var b={exports:{}};return process.dlopen(b,n),@requireMap.@set(n,b),b.exports}else if(i===\".toml\"){var S=globalThis[Symbol.for(\"_fs\")]||=@Bun.fs(),F=@Bun.TOML.parse(S.readFileSync(n,\"utf8\"));return @requireMap.@set(n,F),F}else{var F=@requireESM(n);const j=@requireMap.@get(n);if(j)return j;return @requireMap.@set(n,F),F}})\n";
-
-// createRequireCache
-const JSC::ConstructAbility s_importMetaObjectCreateRequireCacheCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_importMetaObjectCreateRequireCacheCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_importMetaObjectCreateRequireCacheCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_importMetaObjectCreateRequireCacheCodeLength = 891;
-static const JSC::Intrinsic s_importMetaObjectCreateRequireCacheCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_importMetaObjectCreateRequireCacheCode = "(function (){\"use strict\";class r{id;parent;filename;children=[];paths=[];constructor(w){this.id=w;const c=w.lastIndexOf(\"/\");if(c!==-1&&w.length>c+1)this.filename=w.substring(c+1);else this.filename=w}get loaded(){return!0}require(w){return @internalRequire(@resolveSync(w,this.id))}get exports(){return @requireMap.@get(this.id)\?\?{}}set exports(w){@requireMap.@set(this.id,w)}}var _=new Map;return new Proxy({},{get(w,c){if(@requireMap.@get(c)){var g=_.@get(c);if(!g)g=new r(c),_.@set(c,g);return g}},set(w,c,b){if(!_.@has(c))_.@set(c,new r(c));return @requireMap.@set(c,b\?.exports),!0},has(w,c){return @requireMap.@has(c)},deleteProperty(w,c){return _.@delete(c),@requireMap.@delete(c),@Loader.registry.@delete(c),!0},ownKeys(w){return[...@requireMap.@keys()]},getPrototypeOf(w){return null},getOwnPropertyDescriptor(w,c){if(@requireMap.@has(c))return{configurable:!0,enumerable:!0}}})})\n";
-
-// require
-const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_importMetaObjectRequireCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_importMetaObjectRequireCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_importMetaObjectRequireCodeLength = 172;
-static const JSC::Intrinsic s_importMetaObjectRequireCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_importMetaObjectRequireCode = "(function (r){var _=this\?.path\?\?arguments.callee.path;if(typeof r!==\"string\")@throwTypeError(\"require(name) must be a string\");return @internalRequire(@resolveSync(r,_))})\n";
-
-// main
-const JSC::ConstructAbility s_importMetaObjectMainCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_importMetaObjectMainCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_importMetaObjectMainCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_importMetaObjectMainCodeLength = 57;
-static const JSC::Intrinsic s_importMetaObjectMainCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_importMetaObjectMainCode = "(function (){\"use strict\";return this.path===@Bun.main})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().importMetaObjectBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().importMetaObjectBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* CountQueuingStrategy.ts */
-// highWaterMark
-const JSC::ConstructAbility s_countQueuingStrategyHighWaterMarkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_countQueuingStrategyHighWaterMarkCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_countQueuingStrategyHighWaterMarkCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_countQueuingStrategyHighWaterMarkCodeLength = 205;
-static const JSC::Intrinsic s_countQueuingStrategyHighWaterMarkCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_countQueuingStrategyHighWaterMarkCode = "(function (){\"use strict\";const c=@getByIdDirectPrivate(this,\"highWaterMark\");if(c===@undefined)@throwTypeError(\"CountQueuingStrategy.highWaterMark getter called on incompatible |this| value.\");return c})\n";
-
-// size
-const JSC::ConstructAbility s_countQueuingStrategySizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_countQueuingStrategySizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_countQueuingStrategySizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_countQueuingStrategySizeCodeLength = 37;
-static const JSC::Intrinsic s_countQueuingStrategySizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_countQueuingStrategySizeCode = "(function (){\"use strict\";return 1})\n";
-
-// initializeCountQueuingStrategy
-const JSC::ConstructAbility s_countQueuingStrategyInitializeCountQueuingStrategyCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_countQueuingStrategyInitializeCountQueuingStrategyCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_countQueuingStrategyInitializeCountQueuingStrategyCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_countQueuingStrategyInitializeCountQueuingStrategyCodeLength = 121;
-static const JSC::Intrinsic s_countQueuingStrategyInitializeCountQueuingStrategyCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_countQueuingStrategyInitializeCountQueuingStrategyCode = "(function (c){\"use strict\";@putByIdDirectPrivate(this,\"highWaterMark\",@extractHighWaterMarkFromQueuingStrategyInit(c))})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().countQueuingStrategyBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().countQueuingStrategyBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ReadableStreamBYOBRequest.ts */
-// initializeReadableStreamBYOBRequest
-const JSC::ConstructAbility s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeLength = 243;
-static const JSC::Intrinsic s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCode = "(function (d,O){\"use strict\";if(arguments.length!==3&&arguments[2]!==@isReadableStream)@throwTypeError(\"ReadableStreamBYOBRequest constructor should not be called directly\");return @privateInitializeReadableStreamBYOBRequest.@call(this,d,O)})\n";
-
-// respond
-const JSC::ConstructAbility s_readableStreamBYOBRequestRespondCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBRequestRespondCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBRequestRespondCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBRequestRespondCodeLength = 430;
-static const JSC::Intrinsic s_readableStreamBYOBRequestRespondCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBRequestRespondCode = "(function (e){\"use strict\";if(!@isReadableStreamBYOBRequest(this))throw @makeThisTypeError(\"ReadableStreamBYOBRequest\",\"respond\");if(@getByIdDirectPrivate(this,\"associatedReadableByteStreamController\")===@undefined)@throwTypeError(\"ReadableStreamBYOBRequest.associatedReadableByteStreamController is undefined\");return @readableByteStreamControllerRespond(@getByIdDirectPrivate(this,\"associatedReadableByteStreamController\"),e)})\n";
-
-// respondWithNewView
-const JSC::ConstructAbility s_readableStreamBYOBRequestRespondWithNewViewCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBRequestRespondWithNewViewCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBRequestRespondWithNewViewCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBRequestRespondWithNewViewCodeLength = 595;
-static const JSC::Intrinsic s_readableStreamBYOBRequestRespondWithNewViewCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBRequestRespondWithNewViewCode = "(function (t){\"use strict\";if(!@isReadableStreamBYOBRequest(this))throw @makeThisTypeError(\"ReadableStreamBYOBRequest\",\"respond\");if(@getByIdDirectPrivate(this,\"associatedReadableByteStreamController\")===@undefined)@throwTypeError(\"ReadableStreamBYOBRequest.associatedReadableByteStreamController is undefined\");if(!@isObject(t))@throwTypeError(\"Provided view is not an object\");if(!@ArrayBuffer.@isView(t))@throwTypeError(\"Provided view is not an ArrayBufferView\");return @readableByteStreamControllerRespondWithNewView(@getByIdDirectPrivate(this,\"associatedReadableByteStreamController\"),t)})\n";
-
-// view
-const JSC::ConstructAbility s_readableStreamBYOBRequestViewCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamBYOBRequestViewCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamBYOBRequestViewCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamBYOBRequestViewCodeLength = 172;
-static const JSC::Intrinsic s_readableStreamBYOBRequestViewCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamBYOBRequestViewCode = "(function (){\"use strict\";if(!@isReadableStreamBYOBRequest(this))throw @makeGetterTypeError(\"ReadableStreamBYOBRequest\",\"view\");return @getByIdDirectPrivate(this,\"view\")})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().readableStreamBYOBRequestBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().readableStreamBYOBRequestBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* WritableStreamDefaultWriter.ts */
-// initializeWritableStreamDefaultWriter
-const JSC::ConstructAbility s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeLength = 237;
-static const JSC::Intrinsic s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCode = "(function (d){\"use strict\";const u=@getInternalWritableStream(d);if(u)d=u;if(!@isWritableStream(d))@throwTypeError(\"WritableStreamDefaultWriter constructor takes a WritableStream\");return @setUpWritableStreamDefaultWriter(this,d),this})\n";
-
-// closed
-const JSC::ConstructAbility s_writableStreamDefaultWriterClosedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultWriterClosedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultWriterClosedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultWriterClosedCodeLength = 215;
-static const JSC::Intrinsic s_writableStreamDefaultWriterClosedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultWriterClosedCode = "(function (){\"use strict\";if(!@isWritableStreamDefaultWriter(this))return @Promise.@reject(@makeGetterTypeError(\"WritableStreamDefaultWriter\",\"closed\"));return @getByIdDirectPrivate(this,\"closedPromise\").@promise})\n";
-
-// desiredSize
-const JSC::ConstructAbility s_writableStreamDefaultWriterDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultWriterDesiredSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultWriterDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultWriterDesiredSizeCodeLength = 309;
-static const JSC::Intrinsic s_writableStreamDefaultWriterDesiredSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultWriterDesiredSizeCode = "(function (){\"use strict\";if(!@isWritableStreamDefaultWriter(this))throw @makeThisTypeError(\"WritableStreamDefaultWriter\",\"desiredSize\");if(@getByIdDirectPrivate(this,\"stream\")===@undefined)@throwTypeError(\"WritableStreamDefaultWriter has no stream\");return @writableStreamDefaultWriterGetDesiredSize(this)})\n";
-
-// ready
-const JSC::ConstructAbility s_writableStreamDefaultWriterReadyCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultWriterReadyCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultWriterReadyCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultWriterReadyCodeLength = 211;
-static const JSC::Intrinsic s_writableStreamDefaultWriterReadyCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultWriterReadyCode = "(function (){\"use strict\";if(!@isWritableStreamDefaultWriter(this))return @Promise.@reject(@makeThisTypeError(\"WritableStreamDefaultWriter\",\"ready\"));return @getByIdDirectPrivate(this,\"readyPromise\").@promise})\n";
-
-// abort
-const JSC::ConstructAbility s_writableStreamDefaultWriterAbortCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultWriterAbortCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultWriterAbortCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultWriterAbortCodeLength = 340;
-static const JSC::Intrinsic s_writableStreamDefaultWriterAbortCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultWriterAbortCode = "(function (r){\"use strict\";if(!@isWritableStreamDefaultWriter(this))return @Promise.@reject(@makeThisTypeError(\"WritableStreamDefaultWriter\",\"abort\"));if(@getByIdDirectPrivate(this,\"stream\")===@undefined)return @Promise.@reject(@makeTypeError(\"WritableStreamDefaultWriter has no stream\"));return @writableStreamDefaultWriterAbort(this,r)})\n";
-
-// close
-const JSC::ConstructAbility s_writableStreamDefaultWriterCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultWriterCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultWriterCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultWriterCloseCodeLength = 477;
-static const JSC::Intrinsic s_writableStreamDefaultWriterCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultWriterCloseCode = "(function (){\"use strict\";if(!@isWritableStreamDefaultWriter(this))return @Promise.@reject(@makeThisTypeError(\"WritableStreamDefaultWriter\",\"close\"));const e=@getByIdDirectPrivate(this,\"stream\");if(e===@undefined)return @Promise.@reject(@makeTypeError(\"WritableStreamDefaultWriter has no stream\"));if(@writableStreamCloseQueuedOrInFlight(e))return @Promise.@reject(@makeTypeError(\"WritableStreamDefaultWriter is being closed\"));return @writableStreamDefaultWriterClose(this)})\n";
-
-// releaseLock
-const JSC::ConstructAbility s_writableStreamDefaultWriterReleaseLockCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultWriterReleaseLockCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultWriterReleaseLockCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultWriterReleaseLockCodeLength = 307;
-static const JSC::Intrinsic s_writableStreamDefaultWriterReleaseLockCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultWriterReleaseLockCode = "(function (){\"use strict\";if(!@isWritableStreamDefaultWriter(this))throw @makeThisTypeError(\"WritableStreamDefaultWriter\",\"releaseLock\");const c=@getByIdDirectPrivate(this,\"stream\");if(c===@undefined)return;@assert(@getByIdDirectPrivate(c,\"writer\")!==@undefined),@writableStreamDefaultWriterRelease(this)})\n";
-
-// write
-const JSC::ConstructAbility s_writableStreamDefaultWriterWriteCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultWriterWriteCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultWriterWriteCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultWriterWriteCodeLength = 340;
-static const JSC::Intrinsic s_writableStreamDefaultWriterWriteCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultWriterWriteCode = "(function (_){\"use strict\";if(!@isWritableStreamDefaultWriter(this))return @Promise.@reject(@makeThisTypeError(\"WritableStreamDefaultWriter\",\"write\"));if(@getByIdDirectPrivate(this,\"stream\")===@undefined)return @Promise.@reject(@makeTypeError(\"WritableStreamDefaultWriter has no stream\"));return @writableStreamDefaultWriterWrite(this,_)})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().writableStreamDefaultWriterBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().writableStreamDefaultWriterBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ReadableStream.ts */
-// initializeReadableStream
-const JSC::ConstructAbility s_readableStreamInitializeReadableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamInitializeReadableStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamInitializeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamInitializeReadableStreamCodeLength = 2065;
-static const JSC::Intrinsic s_readableStreamInitializeReadableStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamInitializeReadableStreamCode = "(function (_,f){\"use strict\";if(_===@undefined)_={@bunNativeType:0,@bunNativePtr:0,@lazy:!1};if(f===@undefined)f={};if(!@isObject(_))@throwTypeError(\"ReadableStream constructor takes an object as first argument\");if(f!==@undefined&&!@isObject(f))@throwTypeError(\"ReadableStream constructor takes an object as second argument, if any\");@putByIdDirectPrivate(this,\"state\",@streamReadable),@putByIdDirectPrivate(this,\"reader\",@undefined),@putByIdDirectPrivate(this,\"storedError\",@undefined),@putByIdDirectPrivate(this,\"disturbed\",!1),@putByIdDirectPrivate(this,\"readableStreamController\",null),@putByIdDirectPrivate(this,\"bunNativeType\",@getByIdDirectPrivate(_,\"bunNativeType\")\?\?0),@putByIdDirectPrivate(this,\"bunNativePtr\",@getByIdDirectPrivate(_,\"bunNativePtr\")\?\?0);const I=_.type===\"direct\",P=!!_.@lazy,b=I||P;if(@getByIdDirectPrivate(_,\"pull\")!==@undefined&&!b){const j=@getByIdDirectPrivate(f,\"size\"),m=@getByIdDirectPrivate(f,\"highWaterMark\");return @putByIdDirectPrivate(this,\"highWaterMark\",m),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@setupReadableStreamDefaultController(this,_,j,m!==@undefined\?m:1,@getByIdDirectPrivate(_,\"start\"),@getByIdDirectPrivate(_,\"pull\"),@getByIdDirectPrivate(_,\"cancel\")),this}if(I)@putByIdDirectPrivate(this,\"underlyingSource\",_),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>@createReadableStreamController(this,_,f));else if(b){const j=_.autoAllocateChunkSize;@putByIdDirectPrivate(this,\"highWaterMark\",@undefined),@putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",j||@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",()=>{const m=@lazyLoadStream(this,j);if(m)@createReadableStreamController(this,m,f)})}else @putByIdDirectPrivate(this,\"underlyingSource\",@undefined),@putByIdDirectPrivate(this,\"highWaterMark\",@getByIdDirectPrivate(f,\"highWaterMark\")),@putByIdDirectPrivate(this,\"start\",@undefined),@createReadableStreamController(this,_,f);return this})\n";
-
-// readableStreamToArray
-const JSC::ConstructAbility s_readableStreamReadableStreamToArrayCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamReadableStreamToArrayCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamReadableStreamToArrayCodeLength = 173;
-static const JSC::Intrinsic s_readableStreamReadableStreamToArrayCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamReadableStreamToArrayCode = "(function (_){\"use strict\";var p=@getByIdDirectPrivate(_,\"underlyingSource\");if(p!==@undefined)return @readableStreamToArrayDirect(_,p);return @readableStreamIntoArray(_)})\n";
-
-// readableStreamToText
-const JSC::ConstructAbility s_readableStreamReadableStreamToTextCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamReadableStreamToTextCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamReadableStreamToTextCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamReadableStreamToTextCodeLength = 171;
-static const JSC::Intrinsic s_readableStreamReadableStreamToTextCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamReadableStreamToTextCode = "(function (_){\"use strict\";var p=@getByIdDirectPrivate(_,\"underlyingSource\");if(p!==@undefined)return @readableStreamToTextDirect(_,p);return @readableStreamIntoText(_)})\n";
-
-// readableStreamToArrayBuffer
-const JSC::ConstructAbility s_readableStreamReadableStreamToArrayBufferCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamReadableStreamToArrayBufferCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayBufferCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamReadableStreamToArrayBufferCodeLength = 271;
-static const JSC::Intrinsic s_readableStreamReadableStreamToArrayBufferCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var f=@getByIdDirectPrivate(_,\"underlyingSource\");if(f!==@undefined)return @readableStreamToArrayBufferDirect(_,f);var A=@Bun.readableStreamToArray(_);if(@isPromise(A))return A.@then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(A)})\n";
-
-// readableStreamToJSON
-const JSC::ConstructAbility s_readableStreamReadableStreamToJSONCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamReadableStreamToJSONCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamReadableStreamToJSONCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamReadableStreamToJSONCodeLength = 94;
-static const JSC::Intrinsic s_readableStreamReadableStreamToJSONCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamReadableStreamToJSONCode = "(function (d){\"use strict\";return @Bun.readableStreamToText(d).@then(globalThis.JSON.parse)})\n";
-
-// readableStreamToBlob
-const JSC::ConstructAbility s_readableStreamReadableStreamToBlobCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamReadableStreamToBlobCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamReadableStreamToBlobCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamReadableStreamToBlobCodeLength = 108;
-static const JSC::Intrinsic s_readableStreamReadableStreamToBlobCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamReadableStreamToBlobCode = "(function (d){\"use strict\";return @Promise.resolve(@Bun.readableStreamToArray(d)).@then((_)=>new Blob(_))})\n";
-
-// consumeReadableStream
-const JSC::ConstructAbility s_readableStreamConsumeReadableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamConsumeReadableStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamConsumeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamConsumeReadableStreamCodeLength = 1603;
-static const JSC::Intrinsic s_readableStreamConsumeReadableStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamConsumeReadableStreamCode = "(function (_,I,j){\"use strict\";const k=globalThis.Symbol.for(\"Bun.consumeReadableStreamPrototype\");var q=globalThis[k];if(!q)q=globalThis[k]=[];var w=q[I];if(w===@undefined){var[x,A,B,D,F,G]=globalThis[globalThis.Symbol.for(\"Bun.lazy\")](I);w=class J{handleError;handleClosed;processResult;constructor(K,L){this.#_=L,this.#I=K,this.#$=!1,this.handleError=this._handleError.bind(this),this.handleClosed=this._handleClosed.bind(this),this.processResult=this._processResult.bind(this),K.closed.then(this.handleClosed,this.handleError)}_handleClosed(){if(this.#$)return;this.#$=!0;var K=this.#_;this.#_=0,D(K),G(K)}_handleError(K){if(this.#$)return;this.#$=!0;var L=this.#_;this.#_=0,A(L,K),G(L)}#_;#$=!1;#I;_handleReadMany({value:K,done:L,size:N}){if(L){this.handleClosed();return}if(this.#$)return;B(this.#_,K,L,N)}read(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#I.read())}_processResult(K){if(K&&@isPromise(K)){if(@getPromiseInternalField(K,@promiseFieldFlags)&@promiseStateFulfilled){const N=@getPromiseInternalField(K,@promiseFieldReactionsOrResult);if(N)K=N}}if(K&&@isPromise(K))return K.then(this.processResult,this.handleError),null;if(K.done)return this.handleClosed(),0;else if(K.value)return K.value;else return-1}readMany(){if(!this.#_)return @throwTypeError(\"ReadableStreamSink is already closed\");return this.processResult(this.#I.readMany())}};const H=I+1;if(q.length<H)q.length=H;@putByValDirect(q,I,w)}if(@isReadableStreamLocked(j))@throwTypeError(\"Cannot start reading from a locked stream\");return new w(j.getReader(),_)})\n";
-
-// createEmptyReadableStream
-const JSC::ConstructAbility s_readableStreamCreateEmptyReadableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamCreateEmptyReadableStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamCreateEmptyReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamCreateEmptyReadableStreamCodeLength = 99;
-static const JSC::Intrinsic s_readableStreamCreateEmptyReadableStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamCreateEmptyReadableStreamCode = "(function (){\"use strict\";var d=new @ReadableStream({pull(){}});return @readableStreamClose(d),d})\n";
-
-// createNativeReadableStream
-const JSC::ConstructAbility s_readableStreamCreateNativeReadableStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamCreateNativeReadableStreamCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamCreateNativeReadableStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamCreateNativeReadableStreamCodeLength = 129;
-static const JSC::Intrinsic s_readableStreamCreateNativeReadableStreamCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamCreateNativeReadableStreamCode = "(function (_,d,m){\"use strict\";return new @ReadableStream({@lazy:!0,@bunNativeType:d,@bunNativePtr:_,autoAllocateChunkSize:m})})\n";
-
-// cancel
-const JSC::ConstructAbility s_readableStreamCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamCancelCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamCancelCodeLength = 266;
-static const JSC::Intrinsic s_readableStreamCancelCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamCancelCode = "(function (d){\"use strict\";if(!@isReadableStream(this))return @Promise.@reject(@makeThisTypeError(\"ReadableStream\",\"cancel\"));if(@isReadableStreamLocked(this))return @Promise.@reject(@makeTypeError(\"ReadableStream is locked\"));return @readableStreamCancel(this,d)})\n";
-
-// getReader
-const JSC::ConstructAbility s_readableStreamGetReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamGetReaderCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamGetReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamGetReaderCodeLength = 470;
-static const JSC::Intrinsic s_readableStreamGetReaderCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamGetReaderCode = "(function (d){\"use strict\";if(!@isReadableStream(this))throw @makeThisTypeError(\"ReadableStream\",\"getReader\");const c=@toDictionary(d,{},\"ReadableStream.getReader takes an object as first argument\").mode;if(c===@undefined){var e=@getByIdDirectPrivate(this,\"start\");if(e)@putByIdDirectPrivate(this,\"start\",@undefined),e();return new @ReadableStreamDefaultReader(this)}if(c==\"byob\")return new @ReadableStreamBYOBReader(this);@throwTypeError(\"Invalid mode is specified\")})\n";
-
-// pipeThrough
-const JSC::ConstructAbility s_readableStreamPipeThroughCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamPipeThroughCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamPipeThroughCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamPipeThroughCodeLength = 877;
-static const JSC::Intrinsic s_readableStreamPipeThroughCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamPipeThroughCode = "(function (h,_){\"use strict\";const u=h,c=u[\"readable\"];if(!@isReadableStream(c))throw @makeTypeError(\"readable should be ReadableStream\");const d=u[\"writable\"],j=@getInternalWritableStream(d);if(!@isWritableStream(j))throw @makeTypeError(\"writable should be WritableStream\");let k=!1,q=!1,x=!1,y;if(!@isUndefinedOrNull(_)){if(!@isObject(_))throw @makeTypeError(\"options must be an object\");if(q=!!_[\"preventAbort\"],x=!!_[\"preventCancel\"],k=!!_[\"preventClose\"],y=_[\"signal\"],y!==@undefined&&!@isAbortSignal(y))throw @makeTypeError(\"options.signal must be AbortSignal\")}if(!@isReadableStream(this))throw @makeThisTypeError(\"ReadableStream\",\"pipeThrough\");if(@isReadableStreamLocked(this))throw @makeTypeError(\"ReadableStream is locked\");if(@isWritableStreamLocked(j))throw @makeTypeError(\"WritableStream is locked\");return @readableStreamPipeToWritableStream(this,j,k,q,x,y),c})\n";
-
-// pipeTo
-const JSC::ConstructAbility s_readableStreamPipeToCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamPipeToCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamPipeToCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamPipeToCodeLength = 926;
-static const JSC::Intrinsic s_readableStreamPipeToCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamPipeToCode = "(function (_){\"use strict\";if(!@isReadableStream(this))return @Promise.@reject(@makeThisTypeError(\"ReadableStream\",\"pipeTo\"));if(@isReadableStreamLocked(this))return @Promise.@reject(@makeTypeError(\"ReadableStream is locked\"));let m=@argument(1),k=!1,P=!1,S=!1,f;if(!@isUndefinedOrNull(m)){if(!@isObject(m))return @Promise.@reject(@makeTypeError(\"options must be an object\"));try{P=!!m[\"preventAbort\"],S=!!m[\"preventCancel\"],k=!!m[\"preventClose\"],f=m[\"signal\"]}catch(j){return @Promise.@reject(j)}if(f!==@undefined&&!@isAbortSignal(f))return @Promise.@reject(@makeTypeError(\"options.signal must be AbortSignal\"))}const h=@getInternalWritableStream(_);if(!@isWritableStream(h))return @Promise.@reject(@makeTypeError(\"ReadableStream pipeTo requires a WritableStream\"));if(@isWritableStreamLocked(h))return @Promise.@reject(@makeTypeError(\"WritableStream is locked\"));return @readableStreamPipeToWritableStream(this,h,k,P,S,f)})\n";
-
-// tee
-const JSC::ConstructAbility s_readableStreamTeeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamTeeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamTeeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamTeeCodeLength = 140;
-static const JSC::Intrinsic s_readableStreamTeeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamTeeCode = "(function (){\"use strict\";if(!@isReadableStream(this))throw @makeThisTypeError(\"ReadableStream\",\"tee\");return @readableStreamTee(this,!1)})\n";
-
-// locked
-const JSC::ConstructAbility s_readableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamLockedCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamLockedCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamLockedCodeLength = 147;
-static const JSC::Intrinsic s_readableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamLockedCode = "(function (){\"use strict\";if(!@isReadableStream(this))throw @makeGetterTypeError(\"ReadableStream\",\"locked\");return @isReadableStreamLocked(this)})\n";
-
-// values
-const JSC::ConstructAbility s_readableStreamValuesCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamValuesCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamValuesCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamValuesCodeLength = 129;
-static const JSC::Intrinsic s_readableStreamValuesCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamValuesCode = "(function (_){\"use strict\";var a=@ReadableStream.prototype;return @readableStreamDefineLazyIterators(a),a.values.@call(this,_)})\n";
-
-// lazyAsyncIterator
-const JSC::ConstructAbility s_readableStreamLazyAsyncIteratorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamLazyAsyncIteratorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamLazyAsyncIteratorCodeImplementationVisibility = JSC::ImplementationVisibility::Private;
-const int s_readableStreamLazyAsyncIteratorCodeLength = 152;
-static const JSC::Intrinsic s_readableStreamLazyAsyncIteratorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamLazyAsyncIteratorCode = "(function (){\"use strict\";var b=@ReadableStream.prototype;return @readableStreamDefineLazyIterators(b),b[globalThis.Symbol.asyncIterator].@call(this)})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().readableStreamBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().readableStreamBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_READABLESTREAM_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ReadableStreamDefaultController.ts */
-// initializeReadableStreamDefaultController
-const JSC::ConstructAbility s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeLength = 263;
-static const JSC::Intrinsic s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCode = "(function (p,_,b,f){\"use strict\";if(arguments.length!==5&&arguments[4]!==@isReadableStream)@throwTypeError(\"ReadableStreamDefaultController constructor should not be called directly\");return @privateInitializeReadableStreamDefaultController.@call(this,p,_,b,f)})\n";
-
-// enqueue
-const JSC::ConstructAbility s_readableStreamDefaultControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultControllerEnqueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultControllerEnqueueCodeLength = 356;
-static const JSC::Intrinsic s_readableStreamDefaultControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultControllerEnqueueCode = "(function (e){\"use strict\";if(!@isReadableStreamDefaultController(this))throw @makeThisTypeError(\"ReadableStreamDefaultController\",\"enqueue\");if(!@readableStreamDefaultControllerCanCloseOrEnqueue(this))@throwTypeError(\"ReadableStreamDefaultController is not in a state where chunk can be enqueued\");return @readableStreamDefaultControllerEnqueue(this,e)})\n";
-
-// error
-const JSC::ConstructAbility s_readableStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultControllerErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultControllerErrorCodeLength = 188;
-static const JSC::Intrinsic s_readableStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultControllerErrorCode = "(function (t){\"use strict\";if(!@isReadableStreamDefaultController(this))throw @makeThisTypeError(\"ReadableStreamDefaultController\",\"error\");@readableStreamDefaultControllerError(this,t)})\n";
-
-// close
-const JSC::ConstructAbility s_readableStreamDefaultControllerCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultControllerCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultControllerCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultControllerCloseCodeLength = 337;
-static const JSC::Intrinsic s_readableStreamDefaultControllerCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultControllerCloseCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultController(this))throw @makeThisTypeError(\"ReadableStreamDefaultController\",\"close\");if(!@readableStreamDefaultControllerCanCloseOrEnqueue(this))@throwTypeError(\"ReadableStreamDefaultController is not in a state where it can be closed\");@readableStreamDefaultControllerClose(this)})\n";
-
-// desiredSize
-const JSC::ConstructAbility s_readableStreamDefaultControllerDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableStreamDefaultControllerDesiredSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableStreamDefaultControllerDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableStreamDefaultControllerDesiredSizeCodeLength = 209;
-static const JSC::Intrinsic s_readableStreamDefaultControllerDesiredSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableStreamDefaultControllerDesiredSizeCode = "(function (){\"use strict\";if(!@isReadableStreamDefaultController(this))throw @makeGetterTypeError(\"ReadableStreamDefaultController\",\"desiredSize\");return @readableStreamDefaultControllerGetDesiredSize(this)})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().readableStreamDefaultControllerBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().readableStreamDefaultControllerBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* ReadableByteStreamInternals.ts */
-// privateInitializeReadableByteStreamController
-const JSC::ConstructAbility s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeLength = 1654;
-static const JSC::Intrinsic s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode = "(function (_,D,b){\"use strict\";if(!@isReadableStream(_))@throwTypeError(\"ReadableByteStreamController needs a ReadableStream\");if(@getByIdDirectPrivate(_,\"readableStreamController\")!==null)@throwTypeError(\"ReadableStream already has a controller\");@putByIdDirectPrivate(this,\"controlledReadableStream\",_),@putByIdDirectPrivate(this,\"underlyingByteSource\",D),@putByIdDirectPrivate(this,\"pullAgain\",!1),@putByIdDirectPrivate(this,\"pulling\",!1),@readableByteStreamControllerClearPendingPullIntos(this),@putByIdDirectPrivate(this,\"queue\",@newQueue()),@putByIdDirectPrivate(this,\"started\",0),@putByIdDirectPrivate(this,\"closeRequested\",!1);let p=@toNumber(b);if(@isNaN(p)||p<0)@throwRangeError(\"highWaterMark value is negative or not a number\");@putByIdDirectPrivate(this,\"strategyHWM\",p);let f=D.autoAllocateChunkSize;if(f!==@undefined){if(f=@toNumber(f),f<=0||f===@Infinity||f===-@Infinity)@throwRangeError(\"autoAllocateChunkSize value is negative or equal to positive or negative infinity\")}@putByIdDirectPrivate(this,\"autoAllocateChunkSize\",f),@putByIdDirectPrivate(this,\"pendingPullIntos\",@createFIFO());const j=this;return @promiseInvokeOrNoopNoCatch(@getByIdDirectPrivate(j,\"underlyingByteSource\"),\"start\",[j]).@then(()=>{@putByIdDirectPrivate(j,\"started\",1),@assert(!@getByIdDirectPrivate(j,\"pulling\")),@assert(!@getByIdDirectPrivate(j,\"pullAgain\")),@readableByteStreamControllerCallPullIfNeeded(j)},(q)=>{if(@getByIdDirectPrivate(_,\"state\")===@streamReadable)@readableByteStreamControllerError(j,q)}),@putByIdDirectPrivate(this,\"cancel\",@readableByteStreamControllerCancel),@putByIdDirectPrivate(this,\"pull\",@readableByteStreamControllerPull),this})\n";
-
-// readableStreamByteStreamControllerStart
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeLength = 73;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCode = "(function (a){\"use strict\";@putByIdDirectPrivate(a,\"start\",@undefined)})\n";
-
-// privateInitializeReadableStreamBYOBRequest
-const JSC::ConstructAbility s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeLength = 139;
-static const JSC::Intrinsic s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCode = "(function (_,a){\"use strict\";@putByIdDirectPrivate(this,\"associatedReadableByteStreamController\",_),@putByIdDirectPrivate(this,\"view\",a)})\n";
-
-// isReadableByteStreamController
-const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableByteStreamControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsIsReadableByteStreamControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsIsReadableByteStreamControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsIsReadableByteStreamControllerCodeLength = 100;
-static const JSC::Intrinsic s_readableByteStreamInternalsIsReadableByteStreamControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsIsReadableByteStreamControllerCode = "(function (a){\"use strict\";return @isObject(a)&&!!@getByIdDirectPrivate(a,\"underlyingByteSource\")})\n";
-
-// isReadableStreamBYOBRequest
-const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeLength = 118;
-static const JSC::Intrinsic s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsIsReadableStreamBYOBRequestCode = "(function (r){\"use strict\";return @isObject(r)&&!!@getByIdDirectPrivate(r,\"associatedReadableByteStreamController\")})\n";
-
-// isReadableStreamBYOBReader
-const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeLength = 96;
-static const JSC::Intrinsic s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsIsReadableStreamBYOBReaderCode = "(function (i){\"use strict\";return @isObject(i)&&!!@getByIdDirectPrivate(i,\"readIntoRequests\")})\n";
-
-// readableByteStreamControllerCancel
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength = 248;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode = "(function (_,d){\"use strict\";var b=@getByIdDirectPrivate(_,\"pendingPullIntos\"),g=b.peek();if(g)g.bytesFilled=0;return @putByIdDirectPrivate(_,\"queue\",@newQueue()),@promiseInvokeOrNoop(@getByIdDirectPrivate(_,\"underlyingByteSource\"),\"cancel\",[d])})\n";
-
-// readableByteStreamControllerError
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeLength = 316;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerErrorCode = "(function (u,d){\"use strict\";@assert(@getByIdDirectPrivate(@getByIdDirectPrivate(u,\"controlledReadableStream\"),\"state\")===@streamReadable),@readableByteStreamControllerClearPendingPullIntos(u),@putByIdDirectPrivate(u,\"queue\",@newQueue()),@readableStreamError(@getByIdDirectPrivate(u,\"controlledReadableStream\"),d)})\n";
-
-// readableByteStreamControllerClose
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeLength = 569;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerCloseCode = "(function (a){\"use strict\";if(@assert(!@getByIdDirectPrivate(a,\"closeRequested\")),@assert(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"state\")===@streamReadable),@getByIdDirectPrivate(a,\"queue\").size>0){@putByIdDirectPrivate(a,\"closeRequested\",!0);return}var d=@getByIdDirectPrivate(a,\"pendingPullIntos\")\?.peek();if(d){if(d.bytesFilled>0){const i=@makeTypeError(\"Close requested while there remain pending bytes\");throw @readableByteStreamControllerError(a,i),i}}@readableStreamClose(@getByIdDirectPrivate(a,\"controlledReadableStream\"))})\n";
-
-// readableByteStreamControllerClearPendingPullIntos
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeLength = 224;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCode = "(function (_){\"use strict\";@readableByteStreamControllerInvalidateBYOBRequest(_);var a=@getByIdDirectPrivate(_,\"pendingPullIntos\");if(a!==@undefined)a.clear();else @putByIdDirectPrivate(_,\"pendingPullIntos\",@createFIFO())})\n";
-
-// readableByteStreamControllerGetDesiredSize
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeLength = 272;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode = "(function (i){\"use strict\";const d=@getByIdDirectPrivate(i,\"controlledReadableStream\"),p=@getByIdDirectPrivate(d,\"state\");if(p===@streamErrored)return null;if(p===@streamClosed)return 0;return @getByIdDirectPrivate(i,\"strategyHWM\")-@getByIdDirectPrivate(i,\"queue\").size})\n";
-
-// readableStreamHasBYOBReader
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeLength = 125;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableStreamHasBYOBReaderCode = "(function (n){\"use strict\";const c=@getByIdDirectPrivate(n,\"reader\");return c!==@undefined&&@isReadableStreamBYOBReader(c)})\n";
-
-// readableStreamHasDefaultReader
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeLength = 128;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableStreamHasDefaultReaderCode = "(function (n){\"use strict\";const c=@getByIdDirectPrivate(n,\"reader\");return c!==@undefined&&@isReadableStreamDefaultReader(c)})\n";
-
-// readableByteStreamControllerHandleQueueDrain
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeLength = 352;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCode = "(function (a){\"use strict\";if(@assert(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"state\")===@streamReadable),!@getByIdDirectPrivate(a,\"queue\").size&&@getByIdDirectPrivate(a,\"closeRequested\"))@readableStreamClose(@getByIdDirectPrivate(a,\"controlledReadableStream\"));else @readableByteStreamControllerCallPullIfNeeded(a)})\n";
-
-// readableByteStreamControllerPull
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerPullCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength = 1005;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerPullCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode = "(function (_){\"use strict\";const d=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@assert(@readableStreamHasDefaultReader(d)),@getByIdDirectPrivate(_,\"queue\").content\?.isNotEmpty()){const i=@getByIdDirectPrivate(_,\"queue\").content.shift();@getByIdDirectPrivate(_,\"queue\").size-=i.byteLength,@readableByteStreamControllerHandleQueueDrain(_);let u;try{u=new @Uint8Array(i.buffer,i.byteOffset,i.byteLength)}catch(E){return @Promise.@reject(E)}return @createFulfilledPromise({value:u,done:!1})}if(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\")!==@undefined){let i;try{i=@createUninitializedArrayBuffer(@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"))}catch(E){return @Promise.@reject(E)}const u={buffer:i,byteOffset:0,byteLength:@getByIdDirectPrivate(_,\"autoAllocateChunkSize\"),bytesFilled:0,elementSize:1,ctor:@Uint8Array,readerType:\"default\"};@getByIdDirectPrivate(_,\"pendingPullIntos\").push(u)}const a=@readableStreamAddReadRequest(d);return @readableByteStreamControllerCallPullIfNeeded(_),a})\n";
-
-// readableByteStreamControllerShouldCallPull
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeLength = 619;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCode = "(function (i){\"use strict\";const u=@getByIdDirectPrivate(i,\"controlledReadableStream\");if(@getByIdDirectPrivate(u,\"state\")!==@streamReadable)return!1;if(@getByIdDirectPrivate(i,\"closeRequested\"))return!1;if(!(@getByIdDirectPrivate(i,\"started\")>0))return!1;const _=@getByIdDirectPrivate(u,\"reader\");if(_&&(@getByIdDirectPrivate(_,\"readRequests\")\?.isNotEmpty()||!!@getByIdDirectPrivate(_,\"bunNativePtr\")))return!0;if(@readableStreamHasBYOBReader(u)&&@getByIdDirectPrivate(@getByIdDirectPrivate(u,\"reader\"),\"readIntoRequests\")\?.isNotEmpty())return!0;if(@readableByteStreamControllerGetDesiredSize(i)>0)return!0;return!1})\n";
-
-// readableByteStreamControllerCallPullIfNeeded
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeLength = 670;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCode = "(function (p){\"use strict\";if(!@readableByteStreamControllerShouldCallPull(p))return;if(@getByIdDirectPrivate(p,\"pulling\")){@putByIdDirectPrivate(p,\"pullAgain\",!0);return}@assert(!@getByIdDirectPrivate(p,\"pullAgain\")),@putByIdDirectPrivate(p,\"pulling\",!0),@promiseInvokeOrNoop(@getByIdDirectPrivate(p,\"underlyingByteSource\"),\"pull\",[p]).@then(()=>{if(@putByIdDirectPrivate(p,\"pulling\",!1),@getByIdDirectPrivate(p,\"pullAgain\"))@putByIdDirectPrivate(p,\"pullAgain\",!1),@readableByteStreamControllerCallPullIfNeeded(p)},(u)=>{if(@getByIdDirectPrivate(@getByIdDirectPrivate(p,\"controlledReadableStream\"),\"state\")===@streamReadable)@readableByteStreamControllerError(p,u)})})\n";
-
-// transferBufferToCurrentRealm
-const JSC::ConstructAbility s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeLength = 38;
-static const JSC::Intrinsic s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsTransferBufferToCurrentRealmCode = "(function (r){\"use strict\";return r})\n";
-
-// readableStreamReaderKind
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamReaderKindCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamReaderKindCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamReaderKindCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableStreamReaderKindCodeLength = 188;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamReaderKindCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableStreamReaderKindCode = "(function (n){\"use strict\";if(@getByIdDirectPrivate(n,\"readRequests\"))return @getByIdDirectPrivate(n,\"bunNativePtr\")\?3:1;if(@getByIdDirectPrivate(n,\"readIntoRequests\"))return 2;return 0})\n";
-
-// readableByteStreamControllerEnqueue
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeLength = 1076;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode = "(function (_,d){\"use strict\";const i=@getByIdDirectPrivate(_,\"controlledReadableStream\");switch(@assert(!@getByIdDirectPrivate(_,\"closeRequested\")),@assert(@getByIdDirectPrivate(i,\"state\")===@streamReadable),@getByIdDirectPrivate(i,\"reader\")\?@readableStreamReaderKind(@getByIdDirectPrivate(i,\"reader\")):0){case 1:{if(!@getByIdDirectPrivate(@getByIdDirectPrivate(i,\"reader\"),\"readRequests\")\?.isNotEmpty())@readableByteStreamControllerEnqueueChunk(_,@transferBufferToCurrentRealm(d.buffer),d.byteOffset,d.byteLength);else{@assert(!@getByIdDirectPrivate(_,\"queue\").content.size());const b=d.constructor===@Uint8Array\?d:new @Uint8Array(d.buffer,d.byteOffset,d.byteLength);@readableStreamFulfillReadRequest(i,b,!1)}break}case 2:{@readableByteStreamControllerEnqueueChunk(_,@transferBufferToCurrentRealm(d.buffer),d.byteOffset,d.byteLength),@readableByteStreamControllerProcessPullDescriptors(_);break}case 3:break;default:{@assert(!@isReadableStreamLocked(i)),@readableByteStreamControllerEnqueueChunk(_,@transferBufferToCurrentRealm(d.buffer),d.byteOffset,d.byteLength);break}}})\n";
-
-// readableByteStreamControllerEnqueueChunk
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeLength = 160;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode = "(function (d,D,P,a){\"use strict\";@getByIdDirectPrivate(d,\"queue\").content.push({buffer:D,byteOffset:P,byteLength:a}),@getByIdDirectPrivate(d,\"queue\").size+=a})\n";
-
-// readableByteStreamControllerRespondWithNewView
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeLength = 417;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode = "(function (_,d){\"use strict\";@assert(@getByIdDirectPrivate(_,\"pendingPullIntos\").isNotEmpty());let a=@getByIdDirectPrivate(_,\"pendingPullIntos\").peek();if(a.byteOffset+a.bytesFilled!==d.byteOffset)@throwRangeError(\"Invalid value for view.byteOffset\");if(a.byteLength!==d.byteLength)@throwRangeError(\"Invalid value for view.byteLength\");a.buffer=d.buffer,@readableByteStreamControllerRespondInternal(_,d.byteLength)})\n";
-
-// readableByteStreamControllerRespond
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeLength = 251;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondCode = "(function (a,d){\"use strict\";if(d=@toNumber(d),@isNaN(d)||d===@Infinity||d<0)@throwRangeError(\"bytesWritten has an incorrect value\");@assert(@getByIdDirectPrivate(a,\"pendingPullIntos\").isNotEmpty()),@readableByteStreamControllerRespondInternal(a,d)})\n";
-
-// readableByteStreamControllerRespondInternal
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeLength = 464;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode = "(function (_,d){\"use strict\";let u=@getByIdDirectPrivate(_,\"pendingPullIntos\").peek(),I=@getByIdDirectPrivate(_,\"controlledReadableStream\");if(@getByIdDirectPrivate(I,\"state\")===@streamClosed){if(d!==0)@throwTypeError(\"bytesWritten is different from 0 even though stream is closed\");@readableByteStreamControllerRespondInClosedState(_,u)}else @assert(@getByIdDirectPrivate(I,\"state\")===@streamReadable),@readableByteStreamControllerRespondInReadableState(_,d,u)})\n";
-
-// readableByteStreamControllerRespondInReadableState
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength = 799;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode = "(function (_,v,T){\"use strict\";if(T.bytesFilled+v>T.byteLength)@throwRangeError(\"bytesWritten value is too great\");if(@assert(@getByIdDirectPrivate(_,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(_,\"pendingPullIntos\").peek()===T),@readableByteStreamControllerInvalidateBYOBRequest(_),T.bytesFilled+=v,T.bytesFilled<T.elementSize)return;@readableByteStreamControllerShiftPendingDescriptor(_);const f=T.bytesFilled%T.elementSize;if(f>0){const g=T.byteOffset+T.bytesFilled,h=@cloneArrayBuffer(T.buffer,g-f,f);@readableByteStreamControllerEnqueueChunk(_,h,0,h.byteLength)}T.buffer=@transferBufferToCurrentRealm(T.buffer),T.bytesFilled-=f,@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(_,\"controlledReadableStream\"),T),@readableByteStreamControllerProcessPullDescriptors(_)})\n";
-
-// readableByteStreamControllerRespondInClosedState
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeLength = 502;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode = "(function (a,m){\"use strict\";if(m.buffer=@transferBufferToCurrentRealm(m.buffer),@assert(m.bytesFilled===0),@readableStreamHasBYOBReader(@getByIdDirectPrivate(a,\"controlledReadableStream\")))while(@getByIdDirectPrivate(@getByIdDirectPrivate(@getByIdDirectPrivate(a,\"controlledReadableStream\"),\"reader\"),\"readIntoRequests\")\?.isNotEmpty()){let d=@readableByteStreamControllerShiftPendingDescriptor(a);@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(a,\"controlledReadableStream\"),d)}})\n";
-
-// readableByteStreamControllerProcessPullDescriptors
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeLength = 472;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCode = "(function (a){\"use strict\";@assert(!@getByIdDirectPrivate(a,\"closeRequested\"));while(@getByIdDirectPrivate(a,\"pendingPullIntos\").isNotEmpty()){if(@getByIdDirectPrivate(a,\"queue\").size===0)return;let d=@getByIdDirectPrivate(a,\"pendingPullIntos\").peek();if(@readableByteStreamControllerFillDescriptorFromQueue(a,d))@readableByteStreamControllerShiftPendingDescriptor(a),@readableByteStreamControllerCommitDescriptor(@getByIdDirectPrivate(a,\"controlledReadableStream\"),d)}})\n";
-
-// readableByteStreamControllerFillDescriptorFromQueue
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength = 970;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode = "(function (_,v){\"use strict\";const j=v.bytesFilled-v.bytesFilled%v.elementSize,k=@getByIdDirectPrivate(_,\"queue\").size<v.byteLength-v.bytesFilled\?@getByIdDirectPrivate(_,\"queue\").size:v.byteLength-v.bytesFilled,q=v.bytesFilled+k,w=q-q%v.elementSize;let z=k,E=!1;if(w>j)z=w-v.bytesFilled,E=!0;while(z>0){let G=@getByIdDirectPrivate(_,\"queue\").content.peek();const H=z<G.byteLength\?z:G.byteLength,J=v.byteOffset+v.bytesFilled;if(new @Uint8Array(v.buffer).set(new @Uint8Array(G.buffer,G.byteOffset,H),J),G.byteLength===H)@getByIdDirectPrivate(_,\"queue\").content.shift();else G.byteOffset+=H,G.byteLength-=H;@getByIdDirectPrivate(_,\"queue\").size-=H,@assert(@getByIdDirectPrivate(_,\"pendingPullIntos\").isEmpty()||@getByIdDirectPrivate(_,\"pendingPullIntos\").peek()===v),@readableByteStreamControllerInvalidateBYOBRequest(_),v.bytesFilled+=H,z-=H}if(!E)@assert(@getByIdDirectPrivate(_,\"queue\").size===0),@assert(v.bytesFilled>0),@assert(v.bytesFilled<v.elementSize);return E})\n";
-
-// readableByteStreamControllerShiftPendingDescriptor
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeLength = 150;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCode = "(function (B){\"use strict\";let _=@getByIdDirectPrivate(B,\"pendingPullIntos\").shift();return @readableByteStreamControllerInvalidateBYOBRequest(B),_})\n";
-
-// readableByteStreamControllerInvalidateBYOBRequest
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeLength = 308;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCode = "(function (i){\"use strict\";if(@getByIdDirectPrivate(i,\"byobRequest\")===@undefined)return;const d=@getByIdDirectPrivate(i,\"byobRequest\");@putByIdDirectPrivate(d,\"associatedReadableByteStreamController\",@undefined),@putByIdDirectPrivate(d,\"view\",@undefined),@putByIdDirectPrivate(i,\"byobRequest\",@undefined)})\n";
-
-// readableByteStreamControllerCommitDescriptor
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeLength = 386;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCode = "(function (_,b){\"use strict\";@assert(@getByIdDirectPrivate(_,\"state\")!==@streamErrored);let g=!1;if(@getByIdDirectPrivate(_,\"state\")===@streamClosed)@assert(!b.bytesFilled),g=!0;let h=@readableByteStreamControllerConvertDescriptor(b);if(b.readerType===\"default\")@readableStreamFulfillReadRequest(_,h,g);else @assert(b.readerType===\"byob\"),@readableStreamFulfillReadIntoRequest(_,h,g)})\n";
-
-// readableByteStreamControllerConvertDescriptor
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeLength = 176;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCode = "(function (d){\"use strict\";return @assert(d.bytesFilled<=d.byteLength),@assert(d.bytesFilled%d.elementSize===0),new d.ctor(d.buffer,d.byteOffset,d.bytesFilled/d.elementSize)})\n";
-
-// readableStreamFulfillReadIntoRequest
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeLength = 161;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCode = "(function (r,B,I){\"use strict\";const b=@getByIdDirectPrivate(@getByIdDirectPrivate(r,\"reader\"),\"readIntoRequests\").shift();@fulfillPromise(b,{value:B,done:I})})\n";
-
-// readableStreamBYOBReaderRead
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeLength = 356;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableStreamBYOBReaderReadCode = "(function (_,c){\"use strict\";const n=@getByIdDirectPrivate(_,\"ownerReadableStream\");if(@assert(!!n),@putByIdDirectPrivate(n,\"disturbed\",!0),@getByIdDirectPrivate(n,\"state\")===@streamErrored)return @Promise.@reject(@getByIdDirectPrivate(n,\"storedError\"));return @readableByteStreamControllerPullInto(@getByIdDirectPrivate(n,\"readableStreamController\"),c)})\n";
-
-// readableByteStreamControllerPullInto
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeLength = 1255;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode = "(function (y,_){\"use strict\";const b=@getByIdDirectPrivate(y,\"controlledReadableStream\");let h=1;if(_.BYTES_PER_ELEMENT!==@undefined)h=_.BYTES_PER_ELEMENT;const E=_.constructor,F={buffer:_.buffer,byteOffset:_.byteOffset,byteLength:_.byteLength,bytesFilled:0,elementSize:h,ctor:E,readerType:\"byob\"};var P=@getByIdDirectPrivate(y,\"pendingPullIntos\");if(P\?.isNotEmpty())return F.buffer=@transferBufferToCurrentRealm(F.buffer),P.push(F),@readableStreamAddReadIntoRequest(b);if(@getByIdDirectPrivate(b,\"state\")===@streamClosed){const T=new E(F.buffer,F.byteOffset,0);return @createFulfilledPromise({value:T,done:!0})}if(@getByIdDirectPrivate(y,\"queue\").size>0){if(@readableByteStreamControllerFillDescriptorFromQueue(y,F)){const T=@readableByteStreamControllerConvertDescriptor(F);return @readableByteStreamControllerHandleQueueDrain(y),@createFulfilledPromise({value:T,done:!1})}if(@getByIdDirectPrivate(y,\"closeRequested\")){const T=@makeTypeError(\"Closing stream has been requested\");return @readableByteStreamControllerError(y,T),@Promise.@reject(T)}}F.buffer=@transferBufferToCurrentRealm(F.buffer),@getByIdDirectPrivate(y,\"pendingPullIntos\").push(F);const R=@readableStreamAddReadIntoRequest(b);return @readableByteStreamControllerCallPullIfNeeded(y),R})\n";
-
-// readableStreamAddReadIntoRequest
-const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeLength = 326;
-static const JSC::Intrinsic s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCode = "(function (_){\"use strict\";@assert(@isReadableStreamBYOBReader(@getByIdDirectPrivate(_,\"reader\"))),@assert(@getByIdDirectPrivate(_,\"state\")===@streamReadable||@getByIdDirectPrivate(_,\"state\")===@streamClosed);const n=@newPromise();return @getByIdDirectPrivate(@getByIdDirectPrivate(_,\"reader\"),\"readIntoRequests\").push(n),n})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().readableByteStreamInternalsBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().readableByteStreamInternalsBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-/* WritableStreamDefaultController.ts */
-// initializeWritableStreamDefaultController
-const JSC::ConstructAbility s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeLength = 368;
-static const JSC::Intrinsic s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCode = "(function (){\"use strict\";return @putByIdDirectPrivate(this,\"queue\",@newQueue()),@putByIdDirectPrivate(this,\"abortSteps\",(c)=>{const i=@getByIdDirectPrivate(this,\"abortAlgorithm\").@call(@undefined,c);return @writableStreamDefaultControllerClearAlgorithms(this),i}),@putByIdDirectPrivate(this,\"errorSteps\",()=>{@resetQueue(@getByIdDirectPrivate(this,\"queue\"))}),this})\n";
-
-// error
-const JSC::ConstructAbility s_writableStreamDefaultControllerErrorCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_writableStreamDefaultControllerErrorCodeConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_writableStreamDefaultControllerErrorCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_writableStreamDefaultControllerErrorCodeLength = 301;
-static const JSC::Intrinsic s_writableStreamDefaultControllerErrorCodeIntrinsic = JSC::NoIntrinsic;
-const char* const s_writableStreamDefaultControllerErrorCode = "(function (n){\"use strict\";if(@getByIdDirectPrivate(this,\"abortSteps\")===@undefined)throw @makeThisTypeError(\"WritableStreamDefaultController\",\"error\");const o=@getByIdDirectPrivate(this,\"stream\");if(@getByIdDirectPrivate(o,\"state\")!==\"writable\")return;@writableStreamDefaultControllerError(this,n)})\n";
-
-#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \
-{\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \
- return clientData->builtinFunctions().writableStreamDefaultControllerBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().writableStreamDefaultControllerBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \
-}
-WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-
-
-JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM& vm)
- : m_vm(vm)
- , m_writableStreamInternals(vm)
- , m_transformStreamInternals(vm)
- , m_readableStreamInternals(vm)
- , m_streamInternals(vm)
- , m_readableByteStreamInternals(vm)
-
-{
- UNUSED_PARAM(vm);
-}
-
-template<typename Visitor>
-void JSBuiltinInternalFunctions::visit(Visitor& visitor)
-{
- m_writableStreamInternals.visit(visitor);
- m_transformStreamInternals.visit(visitor);
- m_readableStreamInternals.visit(visitor);
- m_streamInternals.visit(visitor);
- m_readableByteStreamInternals.visit(visitor);
-
- UNUSED_PARAM(visitor);
-}
-
-template void JSBuiltinInternalFunctions::visit(AbstractSlotVisitor&);
-template void JSBuiltinInternalFunctions::visit(SlotVisitor&);
-
-SUPPRESS_ASAN void JSBuiltinInternalFunctions::initialize(Zig::GlobalObject& globalObject)
-{
- UNUSED_PARAM(globalObject);
- m_writableStreamInternals.init(globalObject);
- m_transformStreamInternals.init(globalObject);
- m_readableStreamInternals.init(globalObject);
- m_streamInternals.init(globalObject);
- m_readableByteStreamInternals.init(globalObject);
-
- JSVMClientData& clientData = *static_cast<JSVMClientData*>(m_vm.clientData);
- Zig::GlobalObject::GlobalPropertyInfo staticGlobals[] = {
-#define DECLARE_GLOBAL_STATIC(name) \
- Zig::GlobalObject::GlobalPropertyInfo( \
- clientData.builtinFunctions().writableStreamInternalsBuiltins().name##PrivateName(), writableStreamInternals().m_##name##Function.get() , JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly),
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
- #undef DECLARE_GLOBAL_STATIC
- #define DECLARE_GLOBAL_STATIC(name) \
- Zig::GlobalObject::GlobalPropertyInfo( \
- clientData.builtinFunctions().transformStreamInternalsBuiltins().name##PrivateName(), transformStreamInternals().m_##name##Function.get() , JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly),
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
- #undef DECLARE_GLOBAL_STATIC
- #define DECLARE_GLOBAL_STATIC(name) \
- Zig::GlobalObject::GlobalPropertyInfo( \
- clientData.builtinFunctions().readableStreamInternalsBuiltins().name##PrivateName(), readableStreamInternals().m_##name##Function.get() , JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly),
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
- #undef DECLARE_GLOBAL_STATIC
- #define DECLARE_GLOBAL_STATIC(name) \
- Zig::GlobalObject::GlobalPropertyInfo( \
- clientData.builtinFunctions().streamInternalsBuiltins().name##PrivateName(), streamInternals().m_##name##Function.get() , JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly),
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
- #undef DECLARE_GLOBAL_STATIC
- #define DECLARE_GLOBAL_STATIC(name) \
- Zig::GlobalObject::GlobalPropertyInfo( \
- clientData.builtinFunctions().readableByteStreamInternalsBuiltins().name##PrivateName(), readableByteStreamInternals().m_##name##Function.get() , JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly),
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
- #undef DECLARE_GLOBAL_STATIC
-
- };
- globalObject.addStaticGlobals(staticGlobals, std::size(staticGlobals));
- UNUSED_PARAM(clientData);
-}
-
-} // namespace WebCore
diff --git a/src/bun.js/builtins/WebCoreJSBuiltins.d.ts b/src/bun.js/builtins/WebCoreJSBuiltins.d.ts
deleted file mode 100644
index a39c38348..000000000
--- a/src/bun.js/builtins/WebCoreJSBuiltins.d.ts
+++ /dev/null
@@ -1,199 +0,0 @@
-// Generated by `bun src/bun.js/builtins/codegen/index.js`
-// Do not edit by hand.
-type RemoveThis<F> = F extends (this: infer T, ...args: infer A) => infer R ? (...args: A) => R : F;
-
-// WritableStreamInternals.ts
-declare const $isWritableStream: RemoveThis<typeof import("./ts/WritableStreamInternals")["isWritableStream"]>;
-declare const $isWritableStreamDefaultWriter: RemoveThis<typeof import("./ts/WritableStreamInternals")["isWritableStreamDefaultWriter"]>;
-declare const $acquireWritableStreamDefaultWriter: RemoveThis<typeof import("./ts/WritableStreamInternals")["acquireWritableStreamDefaultWriter"]>;
-declare const $createWritableStream: RemoveThis<typeof import("./ts/WritableStreamInternals")["createWritableStream"]>;
-declare const $createInternalWritableStreamFromUnderlyingSink: RemoveThis<typeof import("./ts/WritableStreamInternals")["createInternalWritableStreamFromUnderlyingSink"]>;
-declare const $initializeWritableStreamSlots: RemoveThis<typeof import("./ts/WritableStreamInternals")["initializeWritableStreamSlots"]>;
-declare const $writableStreamCloseForBindings: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamCloseForBindings"]>;
-declare const $writableStreamAbortForBindings: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamAbortForBindings"]>;
-declare const $isWritableStreamLocked: RemoveThis<typeof import("./ts/WritableStreamInternals")["isWritableStreamLocked"]>;
-declare const $setUpWritableStreamDefaultWriter: RemoveThis<typeof import("./ts/WritableStreamInternals")["setUpWritableStreamDefaultWriter"]>;
-declare const $writableStreamAbort: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamAbort"]>;
-declare const $writableStreamClose: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamClose"]>;
-declare const $writableStreamAddWriteRequest: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamAddWriteRequest"]>;
-declare const $writableStreamCloseQueuedOrInFlight: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamCloseQueuedOrInFlight"]>;
-declare const $writableStreamDealWithRejection: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDealWithRejection"]>;
-declare const $writableStreamFinishErroring: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamFinishErroring"]>;
-declare const $writableStreamFinishInFlightClose: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamFinishInFlightClose"]>;
-declare const $writableStreamFinishInFlightCloseWithError: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamFinishInFlightCloseWithError"]>;
-declare const $writableStreamFinishInFlightWrite: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamFinishInFlightWrite"]>;
-declare const $writableStreamFinishInFlightWriteWithError: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamFinishInFlightWriteWithError"]>;
-declare const $writableStreamHasOperationMarkedInFlight: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamHasOperationMarkedInFlight"]>;
-declare const $writableStreamMarkCloseRequestInFlight: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamMarkCloseRequestInFlight"]>;
-declare const $writableStreamMarkFirstWriteRequestInFlight: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamMarkFirstWriteRequestInFlight"]>;
-declare const $writableStreamRejectCloseAndClosedPromiseIfNeeded: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamRejectCloseAndClosedPromiseIfNeeded"]>;
-declare const $writableStreamStartErroring: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamStartErroring"]>;
-declare const $writableStreamUpdateBackpressure: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamUpdateBackpressure"]>;
-declare const $writableStreamDefaultWriterAbort: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultWriterAbort"]>;
-declare const $writableStreamDefaultWriterClose: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultWriterClose"]>;
-declare const $writableStreamDefaultWriterCloseWithErrorPropagation: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultWriterCloseWithErrorPropagation"]>;
-declare const $writableStreamDefaultWriterEnsureClosedPromiseRejected: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultWriterEnsureClosedPromiseRejected"]>;
-declare const $writableStreamDefaultWriterEnsureReadyPromiseRejected: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultWriterEnsureReadyPromiseRejected"]>;
-declare const $writableStreamDefaultWriterGetDesiredSize: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultWriterGetDesiredSize"]>;
-declare const $writableStreamDefaultWriterRelease: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultWriterRelease"]>;
-declare const $writableStreamDefaultWriterWrite: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultWriterWrite"]>;
-declare const $setUpWritableStreamDefaultController: RemoveThis<typeof import("./ts/WritableStreamInternals")["setUpWritableStreamDefaultController"]>;
-declare const $writableStreamDefaultControllerStart: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerStart"]>;
-declare const $setUpWritableStreamDefaultControllerFromUnderlyingSink: RemoveThis<typeof import("./ts/WritableStreamInternals")["setUpWritableStreamDefaultControllerFromUnderlyingSink"]>;
-declare const $writableStreamDefaultControllerAdvanceQueueIfNeeded: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerAdvanceQueueIfNeeded"]>;
-declare const $isCloseSentinel: RemoveThis<typeof import("./ts/WritableStreamInternals")["isCloseSentinel"]>;
-declare const $writableStreamDefaultControllerClearAlgorithms: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerClearAlgorithms"]>;
-declare const $writableStreamDefaultControllerClose: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerClose"]>;
-declare const $writableStreamDefaultControllerError: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerError"]>;
-declare const $writableStreamDefaultControllerErrorIfNeeded: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerErrorIfNeeded"]>;
-declare const $writableStreamDefaultControllerGetBackpressure: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerGetBackpressure"]>;
-declare const $writableStreamDefaultControllerGetChunkSize: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerGetChunkSize"]>;
-declare const $writableStreamDefaultControllerGetDesiredSize: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerGetDesiredSize"]>;
-declare const $writableStreamDefaultControllerProcessClose: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerProcessClose"]>;
-declare const $writableStreamDefaultControllerProcessWrite: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerProcessWrite"]>;
-declare const $writableStreamDefaultControllerWrite: RemoveThis<typeof import("./ts/WritableStreamInternals")["writableStreamDefaultControllerWrite"]>;
-
-// TransformStreamInternals.ts
-declare const $isTransformStream: RemoveThis<typeof import("./ts/TransformStreamInternals")["isTransformStream"]>;
-declare const $isTransformStreamDefaultController: RemoveThis<typeof import("./ts/TransformStreamInternals")["isTransformStreamDefaultController"]>;
-declare const $createTransformStream: RemoveThis<typeof import("./ts/TransformStreamInternals")["createTransformStream"]>;
-declare const $initializeTransformStream: RemoveThis<typeof import("./ts/TransformStreamInternals")["initializeTransformStream"]>;
-declare const $transformStreamError: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamError"]>;
-declare const $transformStreamErrorWritableAndUnblockWrite: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamErrorWritableAndUnblockWrite"]>;
-declare const $transformStreamSetBackpressure: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamSetBackpressure"]>;
-declare const $setUpTransformStreamDefaultController: RemoveThis<typeof import("./ts/TransformStreamInternals")["setUpTransformStreamDefaultController"]>;
-declare const $setUpTransformStreamDefaultControllerFromTransformer: RemoveThis<typeof import("./ts/TransformStreamInternals")["setUpTransformStreamDefaultControllerFromTransformer"]>;
-declare const $transformStreamDefaultControllerClearAlgorithms: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultControllerClearAlgorithms"]>;
-declare const $transformStreamDefaultControllerEnqueue: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultControllerEnqueue"]>;
-declare const $transformStreamDefaultControllerError: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultControllerError"]>;
-declare const $transformStreamDefaultControllerPerformTransform: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultControllerPerformTransform"]>;
-declare const $transformStreamDefaultControllerTerminate: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultControllerTerminate"]>;
-declare const $transformStreamDefaultSinkWriteAlgorithm: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultSinkWriteAlgorithm"]>;
-declare const $transformStreamDefaultSinkAbortAlgorithm: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultSinkAbortAlgorithm"]>;
-declare const $transformStreamDefaultSinkCloseAlgorithm: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultSinkCloseAlgorithm"]>;
-declare const $transformStreamDefaultSourcePullAlgorithm: RemoveThis<typeof import("./ts/TransformStreamInternals")["transformStreamDefaultSourcePullAlgorithm"]>;
-
-// ReadableStreamInternals.ts
-declare const $readableStreamReaderGenericInitialize: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamReaderGenericInitialize"]>;
-declare const $privateInitializeReadableStreamDefaultController: RemoveThis<typeof import("./ts/ReadableStreamInternals")["privateInitializeReadableStreamDefaultController"]>;
-declare const $readableStreamDefaultControllerError: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerError"]>;
-declare const $readableStreamPipeTo: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamPipeTo"]>;
-declare const $acquireReadableStreamDefaultReader: RemoveThis<typeof import("./ts/ReadableStreamInternals")["acquireReadableStreamDefaultReader"]>;
-declare const $setupReadableStreamDefaultController: RemoveThis<typeof import("./ts/ReadableStreamInternals")["setupReadableStreamDefaultController"]>;
-declare const $createReadableStreamController: RemoveThis<typeof import("./ts/ReadableStreamInternals")["createReadableStreamController"]>;
-declare const $readableStreamDefaultControllerStart: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerStart"]>;
-declare const $readableStreamPipeToWritableStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamPipeToWritableStream"]>;
-declare const $pipeToLoop: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToLoop"]>;
-declare const $pipeToDoReadWrite: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToDoReadWrite"]>;
-declare const $pipeToErrorsMustBePropagatedForward: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToErrorsMustBePropagatedForward"]>;
-declare const $pipeToErrorsMustBePropagatedBackward: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToErrorsMustBePropagatedBackward"]>;
-declare const $pipeToClosingMustBePropagatedForward: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToClosingMustBePropagatedForward"]>;
-declare const $pipeToClosingMustBePropagatedBackward: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToClosingMustBePropagatedBackward"]>;
-declare const $pipeToShutdownWithAction: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToShutdownWithAction"]>;
-declare const $pipeToShutdown: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToShutdown"]>;
-declare const $pipeToFinalize: RemoveThis<typeof import("./ts/ReadableStreamInternals")["pipeToFinalize"]>;
-declare const $readableStreamTee: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamTee"]>;
-declare const $readableStreamTeePullFunction: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamTeePullFunction"]>;
-declare const $readableStreamTeeBranch1CancelFunction: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamTeeBranch1CancelFunction"]>;
-declare const $readableStreamTeeBranch2CancelFunction: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamTeeBranch2CancelFunction"]>;
-declare const $isReadableStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["isReadableStream"]>;
-declare const $isReadableStreamDefaultReader: RemoveThis<typeof import("./ts/ReadableStreamInternals")["isReadableStreamDefaultReader"]>;
-declare const $isReadableStreamDefaultController: RemoveThis<typeof import("./ts/ReadableStreamInternals")["isReadableStreamDefaultController"]>;
-declare const $readDirectStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readDirectStream"]>;
-declare const $assignToStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["assignToStream"]>;
-declare const $readStreamIntoSink: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readStreamIntoSink"]>;
-declare const $handleDirectStreamError: RemoveThis<typeof import("./ts/ReadableStreamInternals")["handleDirectStreamError"]>;
-declare const $handleDirectStreamErrorReject: RemoveThis<typeof import("./ts/ReadableStreamInternals")["handleDirectStreamErrorReject"]>;
-declare const $onPullDirectStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["onPullDirectStream"]>;
-declare const $noopDoneFunction: RemoveThis<typeof import("./ts/ReadableStreamInternals")["noopDoneFunction"]>;
-declare const $onReadableStreamDirectControllerClosed: RemoveThis<typeof import("./ts/ReadableStreamInternals")["onReadableStreamDirectControllerClosed"]>;
-declare const $onCloseDirectStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["onCloseDirectStream"]>;
-declare const $onFlushDirectStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["onFlushDirectStream"]>;
-declare const $createTextStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["createTextStream"]>;
-declare const $initializeTextStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["initializeTextStream"]>;
-declare const $initializeArrayStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["initializeArrayStream"]>;
-declare const $initializeArrayBufferStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["initializeArrayBufferStream"]>;
-declare const $readableStreamError: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamError"]>;
-declare const $readableStreamDefaultControllerShouldCallPull: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerShouldCallPull"]>;
-declare const $readableStreamDefaultControllerCallPullIfNeeded: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerCallPullIfNeeded"]>;
-declare const $isReadableStreamLocked: RemoveThis<typeof import("./ts/ReadableStreamInternals")["isReadableStreamLocked"]>;
-declare const $readableStreamDefaultControllerGetDesiredSize: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerGetDesiredSize"]>;
-declare const $readableStreamReaderGenericCancel: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamReaderGenericCancel"]>;
-declare const $readableStreamCancel: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamCancel"]>;
-declare const $readableStreamDefaultControllerCancel: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerCancel"]>;
-declare const $readableStreamDefaultControllerPull: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerPull"]>;
-declare const $readableStreamDefaultControllerClose: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerClose"]>;
-declare const $readableStreamClose: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamClose"]>;
-declare const $readableStreamFulfillReadRequest: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamFulfillReadRequest"]>;
-declare const $readableStreamDefaultControllerEnqueue: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerEnqueue"]>;
-declare const $readableStreamDefaultReaderRead: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultReaderRead"]>;
-declare const $readableStreamAddReadRequest: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamAddReadRequest"]>;
-declare const $isReadableStreamDisturbed: RemoveThis<typeof import("./ts/ReadableStreamInternals")["isReadableStreamDisturbed"]>;
-declare const $readableStreamReaderGenericRelease: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamReaderGenericRelease"]>;
-declare const $readableStreamDefaultControllerCanCloseOrEnqueue: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefaultControllerCanCloseOrEnqueue"]>;
-declare const $lazyLoadStream: RemoveThis<typeof import("./ts/ReadableStreamInternals")["lazyLoadStream"]>;
-declare const $readableStreamIntoArray: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamIntoArray"]>;
-declare const $readableStreamIntoText: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamIntoText"]>;
-declare const $readableStreamToArrayBufferDirect: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamToArrayBufferDirect"]>;
-declare const $readableStreamToTextDirect: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamToTextDirect"]>;
-declare const $readableStreamToArrayDirect: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamToArrayDirect"]>;
-declare const $readableStreamDefineLazyIterators: RemoveThis<typeof import("./ts/ReadableStreamInternals")["readableStreamDefineLazyIterators"]>;
-
-// StreamInternals.ts
-declare const $markPromiseAsHandled: RemoveThis<typeof import("./ts/StreamInternals")["markPromiseAsHandled"]>;
-declare const $shieldingPromiseResolve: RemoveThis<typeof import("./ts/StreamInternals")["shieldingPromiseResolve"]>;
-declare const $promiseInvokeOrNoopMethodNoCatch: RemoveThis<typeof import("./ts/StreamInternals")["promiseInvokeOrNoopMethodNoCatch"]>;
-declare const $promiseInvokeOrNoopNoCatch: RemoveThis<typeof import("./ts/StreamInternals")["promiseInvokeOrNoopNoCatch"]>;
-declare const $promiseInvokeOrNoopMethod: RemoveThis<typeof import("./ts/StreamInternals")["promiseInvokeOrNoopMethod"]>;
-declare const $promiseInvokeOrNoop: RemoveThis<typeof import("./ts/StreamInternals")["promiseInvokeOrNoop"]>;
-declare const $promiseInvokeOrFallbackOrNoop: RemoveThis<typeof import("./ts/StreamInternals")["promiseInvokeOrFallbackOrNoop"]>;
-declare const $validateAndNormalizeQueuingStrategy: RemoveThis<typeof import("./ts/StreamInternals")["validateAndNormalizeQueuingStrategy"]>;
-declare const $createFIFO: RemoveThis<typeof import("./ts/StreamInternals")["createFIFO"]>;
-declare const $newQueue: RemoveThis<typeof import("./ts/StreamInternals")["newQueue"]>;
-declare const $dequeueValue: RemoveThis<typeof import("./ts/StreamInternals")["dequeueValue"]>;
-declare const $enqueueValueWithSize: RemoveThis<typeof import("./ts/StreamInternals")["enqueueValueWithSize"]>;
-declare const $peekQueueValue: RemoveThis<typeof import("./ts/StreamInternals")["peekQueueValue"]>;
-declare const $resetQueue: RemoveThis<typeof import("./ts/StreamInternals")["resetQueue"]>;
-declare const $extractSizeAlgorithm: RemoveThis<typeof import("./ts/StreamInternals")["extractSizeAlgorithm"]>;
-declare const $extractHighWaterMark: RemoveThis<typeof import("./ts/StreamInternals")["extractHighWaterMark"]>;
-declare const $extractHighWaterMarkFromQueuingStrategyInit: RemoveThis<typeof import("./ts/StreamInternals")["extractHighWaterMarkFromQueuingStrategyInit"]>;
-declare const $createFulfilledPromise: RemoveThis<typeof import("./ts/StreamInternals")["createFulfilledPromise"]>;
-declare const $toDictionary: RemoveThis<typeof import("./ts/StreamInternals")["toDictionary"]>;
-
-// ReadableByteStreamInternals.ts
-declare const $privateInitializeReadableByteStreamController: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["privateInitializeReadableByteStreamController"]>;
-declare const $readableStreamByteStreamControllerStart: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableStreamByteStreamControllerStart"]>;
-declare const $privateInitializeReadableStreamBYOBRequest: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["privateInitializeReadableStreamBYOBRequest"]>;
-declare const $isReadableByteStreamController: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["isReadableByteStreamController"]>;
-declare const $isReadableStreamBYOBRequest: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["isReadableStreamBYOBRequest"]>;
-declare const $isReadableStreamBYOBReader: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["isReadableStreamBYOBReader"]>;
-declare const $readableByteStreamControllerCancel: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerCancel"]>;
-declare const $readableByteStreamControllerError: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerError"]>;
-declare const $readableByteStreamControllerClose: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerClose"]>;
-declare const $readableByteStreamControllerClearPendingPullIntos: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerClearPendingPullIntos"]>;
-declare const $readableByteStreamControllerGetDesiredSize: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerGetDesiredSize"]>;
-declare const $readableStreamHasBYOBReader: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableStreamHasBYOBReader"]>;
-declare const $readableStreamHasDefaultReader: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableStreamHasDefaultReader"]>;
-declare const $readableByteStreamControllerHandleQueueDrain: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerHandleQueueDrain"]>;
-declare const $readableByteStreamControllerPull: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerPull"]>;
-declare const $readableByteStreamControllerShouldCallPull: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerShouldCallPull"]>;
-declare const $readableByteStreamControllerCallPullIfNeeded: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerCallPullIfNeeded"]>;
-declare const $transferBufferToCurrentRealm: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["transferBufferToCurrentRealm"]>;
-declare const $readableStreamReaderKind: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableStreamReaderKind"]>;
-declare const $readableByteStreamControllerEnqueue: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerEnqueue"]>;
-declare const $readableByteStreamControllerEnqueueChunk: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerEnqueueChunk"]>;
-declare const $readableByteStreamControllerRespondWithNewView: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerRespondWithNewView"]>;
-declare const $readableByteStreamControllerRespond: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerRespond"]>;
-declare const $readableByteStreamControllerRespondInternal: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerRespondInternal"]>;
-declare const $readableByteStreamControllerRespondInReadableState: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerRespondInReadableState"]>;
-declare const $readableByteStreamControllerRespondInClosedState: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerRespondInClosedState"]>;
-declare const $readableByteStreamControllerProcessPullDescriptors: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerProcessPullDescriptors"]>;
-declare const $readableByteStreamControllerFillDescriptorFromQueue: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerFillDescriptorFromQueue"]>;
-declare const $readableByteStreamControllerShiftPendingDescriptor: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerShiftPendingDescriptor"]>;
-declare const $readableByteStreamControllerInvalidateBYOBRequest: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerInvalidateBYOBRequest"]>;
-declare const $readableByteStreamControllerCommitDescriptor: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerCommitDescriptor"]>;
-declare const $readableByteStreamControllerConvertDescriptor: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerConvertDescriptor"]>;
-declare const $readableStreamFulfillReadIntoRequest: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableStreamFulfillReadIntoRequest"]>;
-declare const $readableStreamBYOBReaderRead: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableStreamBYOBReaderRead"]>;
-declare const $readableByteStreamControllerPullInto: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableByteStreamControllerPullInto"]>;
-declare const $readableStreamAddReadIntoRequest: RemoveThis<typeof import("./ts/ReadableByteStreamInternals")["readableStreamAddReadIntoRequest"]>;
diff --git a/src/bun.js/builtins/WebCoreJSBuiltins.h b/src/bun.js/builtins/WebCoreJSBuiltins.h
deleted file mode 100644
index 3414ed847..000000000
--- a/src/bun.js/builtins/WebCoreJSBuiltins.h
+++ /dev/null
@@ -1,5512 +0,0 @@
-// Generated by `bun src/bun.js/builtins/codegen/index.js`
-// Do not edit by hand.
-#pragma once
-namespace Zig { class GlobalObject; }
-#include "root.h"
-#include <JavaScriptCore/BuiltinUtils.h>
-#include <JavaScriptCore/Identifier.h>
-#include <JavaScriptCore/JSFunction.h>
-#include <JavaScriptCore/UnlinkedFunctionExecutable.h>
-#include <JavaScriptCore/VM.h>
-#include <JavaScriptCore/WeakInlines.h>
-
-namespace JSC {
-class FunctionExecutable;
-}
-
-namespace WebCore {
-/* BundlerPlugin.ts */
-// runSetupFunction
-#define WEBCORE_BUILTIN_BUNDLERPLUGIN_RUNSETUPFUNCTION 1
-extern const char* const s_bundlerPluginRunSetupFunctionCode;
-extern const int s_bundlerPluginRunSetupFunctionCodeLength;
-extern const JSC::ConstructAbility s_bundlerPluginRunSetupFunctionCodeConstructAbility;
-extern const JSC::ConstructorKind s_bundlerPluginRunSetupFunctionCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_bundlerPluginRunSetupFunctionCodeImplementationVisibility;
-
-// runOnResolvePlugins
-#define WEBCORE_BUILTIN_BUNDLERPLUGIN_RUNONRESOLVEPLUGINS 1
-extern const char* const s_bundlerPluginRunOnResolvePluginsCode;
-extern const int s_bundlerPluginRunOnResolvePluginsCodeLength;
-extern const JSC::ConstructAbility s_bundlerPluginRunOnResolvePluginsCodeConstructAbility;
-extern const JSC::ConstructorKind s_bundlerPluginRunOnResolvePluginsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_bundlerPluginRunOnResolvePluginsCodeImplementationVisibility;
-
-// runOnLoadPlugins
-#define WEBCORE_BUILTIN_BUNDLERPLUGIN_RUNONLOADPLUGINS 1
-extern const char* const s_bundlerPluginRunOnLoadPluginsCode;
-extern const int s_bundlerPluginRunOnLoadPluginsCodeLength;
-extern const JSC::ConstructAbility s_bundlerPluginRunOnLoadPluginsCodeConstructAbility;
-extern const JSC::ConstructorKind s_bundlerPluginRunOnLoadPluginsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_bundlerPluginRunOnLoadPluginsCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_DATA(macro) \
- macro(runSetupFunction, bundlerPluginRunSetupFunction, 2) \
- macro(runOnResolvePlugins, bundlerPluginRunOnResolvePlugins, 5) \
- macro(runOnLoadPlugins, bundlerPluginRunOnLoadPlugins, 4) \
-
-#define WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_CODE(macro) \
- macro(bundlerPluginRunSetupFunctionCode, runSetupFunction, ASCIILiteral(), s_bundlerPluginRunSetupFunctionCodeLength) \
- macro(bundlerPluginRunOnResolvePluginsCode, runOnResolvePlugins, ASCIILiteral(), s_bundlerPluginRunOnResolvePluginsCodeLength) \
- macro(bundlerPluginRunOnLoadPluginsCode, runOnLoadPlugins, ASCIILiteral(), s_bundlerPluginRunOnLoadPluginsCodeLength) \
-
-#define WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_FUNCTION_NAME(macro) \
- macro(runSetupFunction) \
- macro(runOnResolvePlugins) \
- macro(runOnLoadPlugins) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class BundlerPluginBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit BundlerPluginBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* BundlerPluginBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void BundlerPluginBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ByteLengthQueuingStrategy.ts */
-// highWaterMark
-#define WEBCORE_BUILTIN_BYTELENGTHQUEUINGSTRATEGY_HIGHWATERMARK 1
-extern const char* const s_byteLengthQueuingStrategyHighWaterMarkCode;
-extern const int s_byteLengthQueuingStrategyHighWaterMarkCodeLength;
-extern const JSC::ConstructAbility s_byteLengthQueuingStrategyHighWaterMarkCodeConstructAbility;
-extern const JSC::ConstructorKind s_byteLengthQueuingStrategyHighWaterMarkCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_byteLengthQueuingStrategyHighWaterMarkCodeImplementationVisibility;
-
-// size
-#define WEBCORE_BUILTIN_BYTELENGTHQUEUINGSTRATEGY_SIZE 1
-extern const char* const s_byteLengthQueuingStrategySizeCode;
-extern const int s_byteLengthQueuingStrategySizeCodeLength;
-extern const JSC::ConstructAbility s_byteLengthQueuingStrategySizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_byteLengthQueuingStrategySizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_byteLengthQueuingStrategySizeCodeImplementationVisibility;
-
-// initializeByteLengthQueuingStrategy
-#define WEBCORE_BUILTIN_BYTELENGTHQUEUINGSTRATEGY_INITIALIZEBYTELENGTHQUEUINGSTRATEGY 1
-extern const char* const s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCode;
-extern const int s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeLength;
-extern const JSC::ConstructAbility s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeConstructAbility;
-extern const JSC::ConstructorKind s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_DATA(macro) \
- macro(highWaterMark, byteLengthQueuingStrategyHighWaterMark, 0) \
- macro(size, byteLengthQueuingStrategySize, 1) \
- macro(initializeByteLengthQueuingStrategy, byteLengthQueuingStrategyInitializeByteLengthQueuingStrategy, 1) \
-
-#define WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_CODE(macro) \
- macro(byteLengthQueuingStrategyHighWaterMarkCode, highWaterMark, "get highWaterMark"_s, s_byteLengthQueuingStrategyHighWaterMarkCodeLength) \
- macro(byteLengthQueuingStrategySizeCode, size, ASCIILiteral(), s_byteLengthQueuingStrategySizeCodeLength) \
- macro(byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCode, initializeByteLengthQueuingStrategy, ASCIILiteral(), s_byteLengthQueuingStrategyInitializeByteLengthQueuingStrategyCodeLength) \
-
-#define WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(macro) \
- macro(highWaterMark) \
- macro(size) \
- macro(initializeByteLengthQueuingStrategy) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ByteLengthQueuingStrategyBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ByteLengthQueuingStrategyBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ByteLengthQueuingStrategyBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ByteLengthQueuingStrategyBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_BYTELENGTHQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* WritableStreamInternals.ts */
-// isWritableStream
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_ISWRITABLESTREAM 1
-extern const char* const s_writableStreamInternalsIsWritableStreamCode;
-extern const int s_writableStreamInternalsIsWritableStreamCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsIsWritableStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsIsWritableStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsIsWritableStreamCodeImplementationVisibility;
-
-// isWritableStreamDefaultWriter
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_ISWRITABLESTREAMDEFAULTWRITER 1
-extern const char* const s_writableStreamInternalsIsWritableStreamDefaultWriterCode;
-extern const int s_writableStreamInternalsIsWritableStreamDefaultWriterCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsIsWritableStreamDefaultWriterCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsIsWritableStreamDefaultWriterCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsIsWritableStreamDefaultWriterCodeImplementationVisibility;
-
-// acquireWritableStreamDefaultWriter
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_ACQUIREWRITABLESTREAMDEFAULTWRITER 1
-extern const char* const s_writableStreamInternalsAcquireWritableStreamDefaultWriterCode;
-extern const int s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeImplementationVisibility;
-
-// createWritableStream
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_CREATEWRITABLESTREAM 1
-extern const char* const s_writableStreamInternalsCreateWritableStreamCode;
-extern const int s_writableStreamInternalsCreateWritableStreamCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsCreateWritableStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsCreateWritableStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsCreateWritableStreamCodeImplementationVisibility;
-
-// createInternalWritableStreamFromUnderlyingSink
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_CREATEINTERNALWRITABLESTREAMFROMUNDERLYINGSINK 1
-extern const char* const s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode;
-extern const int s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeImplementationVisibility;
-
-// initializeWritableStreamSlots
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_INITIALIZEWRITABLESTREAMSLOTS 1
-extern const char* const s_writableStreamInternalsInitializeWritableStreamSlotsCode;
-extern const int s_writableStreamInternalsInitializeWritableStreamSlotsCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsInitializeWritableStreamSlotsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsInitializeWritableStreamSlotsCodeImplementationVisibility;
-
-// writableStreamCloseForBindings
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMCLOSEFORBINDINGS 1
-extern const char* const s_writableStreamInternalsWritableStreamCloseForBindingsCode;
-extern const int s_writableStreamInternalsWritableStreamCloseForBindingsCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseForBindingsCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamCloseForBindingsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamCloseForBindingsCodeImplementationVisibility;
-
-// writableStreamAbortForBindings
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMABORTFORBINDINGS 1
-extern const char* const s_writableStreamInternalsWritableStreamAbortForBindingsCode;
-extern const int s_writableStreamInternalsWritableStreamAbortForBindingsCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAbortForBindingsCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortForBindingsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortForBindingsCodeImplementationVisibility;
-
-// isWritableStreamLocked
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_ISWRITABLESTREAMLOCKED 1
-extern const char* const s_writableStreamInternalsIsWritableStreamLockedCode;
-extern const int s_writableStreamInternalsIsWritableStreamLockedCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsIsWritableStreamLockedCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsIsWritableStreamLockedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsIsWritableStreamLockedCodeImplementationVisibility;
-
-// setUpWritableStreamDefaultWriter
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_SETUPWRITABLESTREAMDEFAULTWRITER 1
-extern const char* const s_writableStreamInternalsSetUpWritableStreamDefaultWriterCode;
-extern const int s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeImplementationVisibility;
-
-// writableStreamAbort
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMABORT 1
-extern const char* const s_writableStreamInternalsWritableStreamAbortCode;
-extern const int s_writableStreamInternalsWritableStreamAbortCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAbortCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAbortCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAbortCodeImplementationVisibility;
-
-// writableStreamClose
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMCLOSE 1
-extern const char* const s_writableStreamInternalsWritableStreamCloseCode;
-extern const int s_writableStreamInternalsWritableStreamCloseCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamCloseCodeImplementationVisibility;
-
-// writableStreamAddWriteRequest
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMADDWRITEREQUEST 1
-extern const char* const s_writableStreamInternalsWritableStreamAddWriteRequestCode;
-extern const int s_writableStreamInternalsWritableStreamAddWriteRequestCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamAddWriteRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamAddWriteRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamAddWriteRequestCodeImplementationVisibility;
-
-// writableStreamCloseQueuedOrInFlight
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMCLOSEQUEUEDORINFLIGHT 1
-extern const char* const s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCode;
-extern const int s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeImplementationVisibility;
-
-// writableStreamDealWithRejection
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEALWITHREJECTION 1
-extern const char* const s_writableStreamInternalsWritableStreamDealWithRejectionCode;
-extern const int s_writableStreamInternalsWritableStreamDealWithRejectionCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDealWithRejectionCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDealWithRejectionCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDealWithRejectionCodeImplementationVisibility;
-
-// writableStreamFinishErroring
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMFINISHERRORING 1
-extern const char* const s_writableStreamInternalsWritableStreamFinishErroringCode;
-extern const int s_writableStreamInternalsWritableStreamFinishErroringCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishErroringCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishErroringCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishErroringCodeImplementationVisibility;
-
-// writableStreamFinishInFlightClose
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMFINISHINFLIGHTCLOSE 1
-extern const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseCode;
-extern const int s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeImplementationVisibility;
-
-// writableStreamFinishInFlightCloseWithError
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMFINISHINFLIGHTCLOSEWITHERROR 1
-extern const char* const s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCode;
-extern const int s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeImplementationVisibility;
-
-// writableStreamFinishInFlightWrite
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMFINISHINFLIGHTWRITE 1
-extern const char* const s_writableStreamInternalsWritableStreamFinishInFlightWriteCode;
-extern const int s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeImplementationVisibility;
-
-// writableStreamFinishInFlightWriteWithError
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMFINISHINFLIGHTWRITEWITHERROR 1
-extern const char* const s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCode;
-extern const int s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeImplementationVisibility;
-
-// writableStreamHasOperationMarkedInFlight
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMHASOPERATIONMARKEDINFLIGHT 1
-extern const char* const s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCode;
-extern const int s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeImplementationVisibility;
-
-// writableStreamMarkCloseRequestInFlight
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMMARKCLOSEREQUESTINFLIGHT 1
-extern const char* const s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCode;
-extern const int s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeImplementationVisibility;
-
-// writableStreamMarkFirstWriteRequestInFlight
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMMARKFIRSTWRITEREQUESTINFLIGHT 1
-extern const char* const s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCode;
-extern const int s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeImplementationVisibility;
-
-// writableStreamRejectCloseAndClosedPromiseIfNeeded
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMREJECTCLOSEANDCLOSEDPROMISEIFNEEDED 1
-extern const char* const s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCode;
-extern const int s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeImplementationVisibility;
-
-// writableStreamStartErroring
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMSTARTERRORING 1
-extern const char* const s_writableStreamInternalsWritableStreamStartErroringCode;
-extern const int s_writableStreamInternalsWritableStreamStartErroringCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamStartErroringCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamStartErroringCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamStartErroringCodeImplementationVisibility;
-
-// writableStreamUpdateBackpressure
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMUPDATEBACKPRESSURE 1
-extern const char* const s_writableStreamInternalsWritableStreamUpdateBackpressureCode;
-extern const int s_writableStreamInternalsWritableStreamUpdateBackpressureCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamUpdateBackpressureCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamUpdateBackpressureCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamUpdateBackpressureCodeImplementationVisibility;
-
-// writableStreamDefaultWriterAbort
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTWRITERABORT 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultWriterAbortCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeImplementationVisibility;
-
-// writableStreamDefaultWriterClose
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTWRITERCLOSE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeImplementationVisibility;
-
-// writableStreamDefaultWriterCloseWithErrorPropagation
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTWRITERCLOSEWITHERRORPROPAGATION 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeImplementationVisibility;
-
-// writableStreamDefaultWriterEnsureClosedPromiseRejected
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTWRITERENSURECLOSEDPROMISEREJECTED 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeImplementationVisibility;
-
-// writableStreamDefaultWriterEnsureReadyPromiseRejected
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTWRITERENSUREREADYPROMISEREJECTED 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeImplementationVisibility;
-
-// writableStreamDefaultWriterGetDesiredSize
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTWRITERGETDESIREDSIZE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeImplementationVisibility;
-
-// writableStreamDefaultWriterRelease
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTWRITERRELEASE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultWriterReleaseCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeImplementationVisibility;
-
-// writableStreamDefaultWriterWrite
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTWRITERWRITE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultWriterWriteCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeImplementationVisibility;
-
-// setUpWritableStreamDefaultController
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_SETUPWRITABLESTREAMDEFAULTCONTROLLER 1
-extern const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerCode;
-extern const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeImplementationVisibility;
-
-// writableStreamDefaultControllerStart
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERSTART 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerStartCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerStartCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerStartCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerStartCodeImplementationVisibility;
-
-// setUpWritableStreamDefaultControllerFromUnderlyingSink
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_SETUPWRITABLESTREAMDEFAULTCONTROLLERFROMUNDERLYINGSINK 1
-extern const char* const s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode;
-extern const int s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeImplementationVisibility;
-
-// writableStreamDefaultControllerAdvanceQueueIfNeeded
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERADVANCEQUEUEIFNEEDED 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeImplementationVisibility;
-
-// isCloseSentinel
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_ISCLOSESENTINEL 1
-extern const char* const s_writableStreamInternalsIsCloseSentinelCode;
-extern const int s_writableStreamInternalsIsCloseSentinelCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsIsCloseSentinelCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsIsCloseSentinelCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsIsCloseSentinelCodeImplementationVisibility;
-
-// writableStreamDefaultControllerClearAlgorithms
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERCLEARALGORITHMS 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeImplementationVisibility;
-
-// writableStreamDefaultControllerClose
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERCLOSE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerCloseCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeImplementationVisibility;
-
-// writableStreamDefaultControllerError
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERERROR 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerErrorCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeImplementationVisibility;
-
-// writableStreamDefaultControllerErrorIfNeeded
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERERRORIFNEEDED 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeImplementationVisibility;
-
-// writableStreamDefaultControllerGetBackpressure
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERGETBACKPRESSURE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeImplementationVisibility;
-
-// writableStreamDefaultControllerGetChunkSize
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERGETCHUNKSIZE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeImplementationVisibility;
-
-// writableStreamDefaultControllerGetDesiredSize
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERGETDESIREDSIZE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeImplementationVisibility;
-
-// writableStreamDefaultControllerProcessClose
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERPROCESSCLOSE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeImplementationVisibility;
-
-// writableStreamDefaultControllerProcessWrite
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERPROCESSWRITE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeImplementationVisibility;
-
-// writableStreamDefaultControllerWrite
-#define WEBCORE_BUILTIN_WRITABLESTREAMINTERNALS_WRITABLESTREAMDEFAULTCONTROLLERWRITE 1
-extern const char* const s_writableStreamInternalsWritableStreamDefaultControllerWriteCode;
-extern const int s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength;
-extern const JSC::ConstructAbility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_DATA(macro) \
- macro(isWritableStream, writableStreamInternalsIsWritableStream, 1) \
- macro(isWritableStreamDefaultWriter, writableStreamInternalsIsWritableStreamDefaultWriter, 1) \
- macro(acquireWritableStreamDefaultWriter, writableStreamInternalsAcquireWritableStreamDefaultWriter, 1) \
- macro(createWritableStream, writableStreamInternalsCreateWritableStream, 7) \
- macro(createInternalWritableStreamFromUnderlyingSink, writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSink, 2) \
- macro(initializeWritableStreamSlots, writableStreamInternalsInitializeWritableStreamSlots, 2) \
- macro(writableStreamCloseForBindings, writableStreamInternalsWritableStreamCloseForBindings, 1) \
- macro(writableStreamAbortForBindings, writableStreamInternalsWritableStreamAbortForBindings, 2) \
- macro(isWritableStreamLocked, writableStreamInternalsIsWritableStreamLocked, 1) \
- macro(setUpWritableStreamDefaultWriter, writableStreamInternalsSetUpWritableStreamDefaultWriter, 2) \
- macro(writableStreamAbort, writableStreamInternalsWritableStreamAbort, 2) \
- macro(writableStreamClose, writableStreamInternalsWritableStreamClose, 1) \
- macro(writableStreamAddWriteRequest, writableStreamInternalsWritableStreamAddWriteRequest, 1) \
- macro(writableStreamCloseQueuedOrInFlight, writableStreamInternalsWritableStreamCloseQueuedOrInFlight, 1) \
- macro(writableStreamDealWithRejection, writableStreamInternalsWritableStreamDealWithRejection, 2) \
- macro(writableStreamFinishErroring, writableStreamInternalsWritableStreamFinishErroring, 1) \
- macro(writableStreamFinishInFlightClose, writableStreamInternalsWritableStreamFinishInFlightClose, 1) \
- macro(writableStreamFinishInFlightCloseWithError, writableStreamInternalsWritableStreamFinishInFlightCloseWithError, 2) \
- macro(writableStreamFinishInFlightWrite, writableStreamInternalsWritableStreamFinishInFlightWrite, 1) \
- macro(writableStreamFinishInFlightWriteWithError, writableStreamInternalsWritableStreamFinishInFlightWriteWithError, 2) \
- macro(writableStreamHasOperationMarkedInFlight, writableStreamInternalsWritableStreamHasOperationMarkedInFlight, 1) \
- macro(writableStreamMarkCloseRequestInFlight, writableStreamInternalsWritableStreamMarkCloseRequestInFlight, 1) \
- macro(writableStreamMarkFirstWriteRequestInFlight, writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlight, 1) \
- macro(writableStreamRejectCloseAndClosedPromiseIfNeeded, writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeeded, 1) \
- macro(writableStreamStartErroring, writableStreamInternalsWritableStreamStartErroring, 2) \
- macro(writableStreamUpdateBackpressure, writableStreamInternalsWritableStreamUpdateBackpressure, 2) \
- macro(writableStreamDefaultWriterAbort, writableStreamInternalsWritableStreamDefaultWriterAbort, 2) \
- macro(writableStreamDefaultWriterClose, writableStreamInternalsWritableStreamDefaultWriterClose, 1) \
- macro(writableStreamDefaultWriterCloseWithErrorPropagation, writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagation, 1) \
- macro(writableStreamDefaultWriterEnsureClosedPromiseRejected, writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejected, 2) \
- macro(writableStreamDefaultWriterEnsureReadyPromiseRejected, writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejected, 2) \
- macro(writableStreamDefaultWriterGetDesiredSize, writableStreamInternalsWritableStreamDefaultWriterGetDesiredSize, 1) \
- macro(writableStreamDefaultWriterRelease, writableStreamInternalsWritableStreamDefaultWriterRelease, 1) \
- macro(writableStreamDefaultWriterWrite, writableStreamInternalsWritableStreamDefaultWriterWrite, 2) \
- macro(setUpWritableStreamDefaultController, writableStreamInternalsSetUpWritableStreamDefaultController, 9) \
- macro(writableStreamDefaultControllerStart, writableStreamInternalsWritableStreamDefaultControllerStart, 1) \
- macro(setUpWritableStreamDefaultControllerFromUnderlyingSink, writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSink, 6) \
- macro(writableStreamDefaultControllerAdvanceQueueIfNeeded, writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeeded, 1) \
- macro(isCloseSentinel, writableStreamInternalsIsCloseSentinel, 0) \
- macro(writableStreamDefaultControllerClearAlgorithms, writableStreamInternalsWritableStreamDefaultControllerClearAlgorithms, 1) \
- macro(writableStreamDefaultControllerClose, writableStreamInternalsWritableStreamDefaultControllerClose, 1) \
- macro(writableStreamDefaultControllerError, writableStreamInternalsWritableStreamDefaultControllerError, 2) \
- macro(writableStreamDefaultControllerErrorIfNeeded, writableStreamInternalsWritableStreamDefaultControllerErrorIfNeeded, 2) \
- macro(writableStreamDefaultControllerGetBackpressure, writableStreamInternalsWritableStreamDefaultControllerGetBackpressure, 1) \
- macro(writableStreamDefaultControllerGetChunkSize, writableStreamInternalsWritableStreamDefaultControllerGetChunkSize, 2) \
- macro(writableStreamDefaultControllerGetDesiredSize, writableStreamInternalsWritableStreamDefaultControllerGetDesiredSize, 1) \
- macro(writableStreamDefaultControllerProcessClose, writableStreamInternalsWritableStreamDefaultControllerProcessClose, 1) \
- macro(writableStreamDefaultControllerProcessWrite, writableStreamInternalsWritableStreamDefaultControllerProcessWrite, 2) \
- macro(writableStreamDefaultControllerWrite, writableStreamInternalsWritableStreamDefaultControllerWrite, 3) \
-
-#define WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_CODE(macro) \
- macro(writableStreamInternalsIsWritableStreamCode, isWritableStream, ASCIILiteral(), s_writableStreamInternalsIsWritableStreamCodeLength) \
- macro(writableStreamInternalsIsWritableStreamDefaultWriterCode, isWritableStreamDefaultWriter, ASCIILiteral(), s_writableStreamInternalsIsWritableStreamDefaultWriterCodeLength) \
- macro(writableStreamInternalsAcquireWritableStreamDefaultWriterCode, acquireWritableStreamDefaultWriter, ASCIILiteral(), s_writableStreamInternalsAcquireWritableStreamDefaultWriterCodeLength) \
- macro(writableStreamInternalsCreateWritableStreamCode, createWritableStream, ASCIILiteral(), s_writableStreamInternalsCreateWritableStreamCodeLength) \
- macro(writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCode, createInternalWritableStreamFromUnderlyingSink, ASCIILiteral(), s_writableStreamInternalsCreateInternalWritableStreamFromUnderlyingSinkCodeLength) \
- macro(writableStreamInternalsInitializeWritableStreamSlotsCode, initializeWritableStreamSlots, ASCIILiteral(), s_writableStreamInternalsInitializeWritableStreamSlotsCodeLength) \
- macro(writableStreamInternalsWritableStreamCloseForBindingsCode, writableStreamCloseForBindings, ASCIILiteral(), s_writableStreamInternalsWritableStreamCloseForBindingsCodeLength) \
- macro(writableStreamInternalsWritableStreamAbortForBindingsCode, writableStreamAbortForBindings, ASCIILiteral(), s_writableStreamInternalsWritableStreamAbortForBindingsCodeLength) \
- macro(writableStreamInternalsIsWritableStreamLockedCode, isWritableStreamLocked, ASCIILiteral(), s_writableStreamInternalsIsWritableStreamLockedCodeLength) \
- macro(writableStreamInternalsSetUpWritableStreamDefaultWriterCode, setUpWritableStreamDefaultWriter, ASCIILiteral(), s_writableStreamInternalsSetUpWritableStreamDefaultWriterCodeLength) \
- macro(writableStreamInternalsWritableStreamAbortCode, writableStreamAbort, ASCIILiteral(), s_writableStreamInternalsWritableStreamAbortCodeLength) \
- macro(writableStreamInternalsWritableStreamCloseCode, writableStreamClose, ASCIILiteral(), s_writableStreamInternalsWritableStreamCloseCodeLength) \
- macro(writableStreamInternalsWritableStreamAddWriteRequestCode, writableStreamAddWriteRequest, ASCIILiteral(), s_writableStreamInternalsWritableStreamAddWriteRequestCodeLength) \
- macro(writableStreamInternalsWritableStreamCloseQueuedOrInFlightCode, writableStreamCloseQueuedOrInFlight, ASCIILiteral(), s_writableStreamInternalsWritableStreamCloseQueuedOrInFlightCodeLength) \
- macro(writableStreamInternalsWritableStreamDealWithRejectionCode, writableStreamDealWithRejection, ASCIILiteral(), s_writableStreamInternalsWritableStreamDealWithRejectionCodeLength) \
- macro(writableStreamInternalsWritableStreamFinishErroringCode, writableStreamFinishErroring, ASCIILiteral(), s_writableStreamInternalsWritableStreamFinishErroringCodeLength) \
- macro(writableStreamInternalsWritableStreamFinishInFlightCloseCode, writableStreamFinishInFlightClose, ASCIILiteral(), s_writableStreamInternalsWritableStreamFinishInFlightCloseCodeLength) \
- macro(writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCode, writableStreamFinishInFlightCloseWithError, ASCIILiteral(), s_writableStreamInternalsWritableStreamFinishInFlightCloseWithErrorCodeLength) \
- macro(writableStreamInternalsWritableStreamFinishInFlightWriteCode, writableStreamFinishInFlightWrite, ASCIILiteral(), s_writableStreamInternalsWritableStreamFinishInFlightWriteCodeLength) \
- macro(writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCode, writableStreamFinishInFlightWriteWithError, ASCIILiteral(), s_writableStreamInternalsWritableStreamFinishInFlightWriteWithErrorCodeLength) \
- macro(writableStreamInternalsWritableStreamHasOperationMarkedInFlightCode, writableStreamHasOperationMarkedInFlight, ASCIILiteral(), s_writableStreamInternalsWritableStreamHasOperationMarkedInFlightCodeLength) \
- macro(writableStreamInternalsWritableStreamMarkCloseRequestInFlightCode, writableStreamMarkCloseRequestInFlight, ASCIILiteral(), s_writableStreamInternalsWritableStreamMarkCloseRequestInFlightCodeLength) \
- macro(writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCode, writableStreamMarkFirstWriteRequestInFlight, ASCIILiteral(), s_writableStreamInternalsWritableStreamMarkFirstWriteRequestInFlightCodeLength) \
- macro(writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCode, writableStreamRejectCloseAndClosedPromiseIfNeeded, ASCIILiteral(), s_writableStreamInternalsWritableStreamRejectCloseAndClosedPromiseIfNeededCodeLength) \
- macro(writableStreamInternalsWritableStreamStartErroringCode, writableStreamStartErroring, ASCIILiteral(), s_writableStreamInternalsWritableStreamStartErroringCodeLength) \
- macro(writableStreamInternalsWritableStreamUpdateBackpressureCode, writableStreamUpdateBackpressure, ASCIILiteral(), s_writableStreamInternalsWritableStreamUpdateBackpressureCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultWriterAbortCode, writableStreamDefaultWriterAbort, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultWriterAbortCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultWriterCloseCode, writableStreamDefaultWriterClose, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultWriterCloseCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCode, writableStreamDefaultWriterCloseWithErrorPropagation, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultWriterCloseWithErrorPropagationCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCode, writableStreamDefaultWriterEnsureClosedPromiseRejected, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultWriterEnsureClosedPromiseRejectedCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCode, writableStreamDefaultWriterEnsureReadyPromiseRejected, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultWriterEnsureReadyPromiseRejectedCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCode, writableStreamDefaultWriterGetDesiredSize, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultWriterGetDesiredSizeCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultWriterReleaseCode, writableStreamDefaultWriterRelease, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultWriterReleaseCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultWriterWriteCode, writableStreamDefaultWriterWrite, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultWriterWriteCodeLength) \
- macro(writableStreamInternalsSetUpWritableStreamDefaultControllerCode, setUpWritableStreamDefaultController, ASCIILiteral(), s_writableStreamInternalsSetUpWritableStreamDefaultControllerCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerStartCode, writableStreamDefaultControllerStart, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerStartCodeLength) \
- macro(writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCode, setUpWritableStreamDefaultControllerFromUnderlyingSink, ASCIILiteral(), s_writableStreamInternalsSetUpWritableStreamDefaultControllerFromUnderlyingSinkCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCode, writableStreamDefaultControllerAdvanceQueueIfNeeded, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerAdvanceQueueIfNeededCodeLength) \
- macro(writableStreamInternalsIsCloseSentinelCode, isCloseSentinel, ASCIILiteral(), s_writableStreamInternalsIsCloseSentinelCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCode, writableStreamDefaultControllerClearAlgorithms, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerClearAlgorithmsCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerCloseCode, writableStreamDefaultControllerClose, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerCloseCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerErrorCode, writableStreamDefaultControllerError, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerErrorCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCode, writableStreamDefaultControllerErrorIfNeeded, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerErrorIfNeededCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCode, writableStreamDefaultControllerGetBackpressure, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerGetBackpressureCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCode, writableStreamDefaultControllerGetChunkSize, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerGetChunkSizeCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCode, writableStreamDefaultControllerGetDesiredSize, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerGetDesiredSizeCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerProcessCloseCode, writableStreamDefaultControllerProcessClose, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerProcessCloseCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerProcessWriteCode, writableStreamDefaultControllerProcessWrite, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerProcessWriteCodeLength) \
- macro(writableStreamInternalsWritableStreamDefaultControllerWriteCode, writableStreamDefaultControllerWrite, ASCIILiteral(), s_writableStreamInternalsWritableStreamDefaultControllerWriteCodeLength) \
-
-#define WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(macro) \
- macro(isWritableStream) \
- macro(isWritableStreamDefaultWriter) \
- macro(acquireWritableStreamDefaultWriter) \
- macro(createWritableStream) \
- macro(createInternalWritableStreamFromUnderlyingSink) \
- macro(initializeWritableStreamSlots) \
- macro(writableStreamCloseForBindings) \
- macro(writableStreamAbortForBindings) \
- macro(isWritableStreamLocked) \
- macro(setUpWritableStreamDefaultWriter) \
- macro(writableStreamAbort) \
- macro(writableStreamClose) \
- macro(writableStreamAddWriteRequest) \
- macro(writableStreamCloseQueuedOrInFlight) \
- macro(writableStreamDealWithRejection) \
- macro(writableStreamFinishErroring) \
- macro(writableStreamFinishInFlightClose) \
- macro(writableStreamFinishInFlightCloseWithError) \
- macro(writableStreamFinishInFlightWrite) \
- macro(writableStreamFinishInFlightWriteWithError) \
- macro(writableStreamHasOperationMarkedInFlight) \
- macro(writableStreamMarkCloseRequestInFlight) \
- macro(writableStreamMarkFirstWriteRequestInFlight) \
- macro(writableStreamRejectCloseAndClosedPromiseIfNeeded) \
- macro(writableStreamStartErroring) \
- macro(writableStreamUpdateBackpressure) \
- macro(writableStreamDefaultWriterAbort) \
- macro(writableStreamDefaultWriterClose) \
- macro(writableStreamDefaultWriterCloseWithErrorPropagation) \
- macro(writableStreamDefaultWriterEnsureClosedPromiseRejected) \
- macro(writableStreamDefaultWriterEnsureReadyPromiseRejected) \
- macro(writableStreamDefaultWriterGetDesiredSize) \
- macro(writableStreamDefaultWriterRelease) \
- macro(writableStreamDefaultWriterWrite) \
- macro(setUpWritableStreamDefaultController) \
- macro(writableStreamDefaultControllerStart) \
- macro(setUpWritableStreamDefaultControllerFromUnderlyingSink) \
- macro(writableStreamDefaultControllerAdvanceQueueIfNeeded) \
- macro(isCloseSentinel) \
- macro(writableStreamDefaultControllerClearAlgorithms) \
- macro(writableStreamDefaultControllerClose) \
- macro(writableStreamDefaultControllerError) \
- macro(writableStreamDefaultControllerErrorIfNeeded) \
- macro(writableStreamDefaultControllerGetBackpressure) \
- macro(writableStreamDefaultControllerGetChunkSize) \
- macro(writableStreamDefaultControllerGetDesiredSize) \
- macro(writableStreamDefaultControllerProcessClose) \
- macro(writableStreamDefaultControllerProcessWrite) \
- macro(writableStreamDefaultControllerWrite) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class WritableStreamInternalsBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit WritableStreamInternalsBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* WritableStreamInternalsBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void WritableStreamInternalsBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-class WritableStreamInternalsBuiltinFunctions {
-public:
- explicit WritableStreamInternalsBuiltinFunctions(JSC::VM& vm) : m_vm(vm) { }
-
- void init(JSC::JSGlobalObject&);
- template<typename Visitor> void visit(Visitor&);
-
-public:
- JSC::VM& m_vm;
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \
- JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function;
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-};
-
-inline void WritableStreamInternalsBuiltinFunctions::init(JSC::JSGlobalObject& globalObject)
-{
-#define EXPORT_FUNCTION(codeName, functionName, overriddenName, length) \
- m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, codeName##Generator(m_vm), &globalObject));
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_CODE(EXPORT_FUNCTION)
-#undef EXPORT_FUNCTION
-}
-
-template<typename Visitor>
-inline void WritableStreamInternalsBuiltinFunctions::visit(Visitor& visitor)
-{
-#define VISIT_FUNCTION(name) visitor.append(m_##name##Function);
- WEBCORE_FOREACH_WRITABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION)
-#undef VISIT_FUNCTION
-}
-
-template void WritableStreamInternalsBuiltinFunctions::visit(JSC::AbstractSlotVisitor&);
-template void WritableStreamInternalsBuiltinFunctions::visit(JSC::SlotVisitor&);
- /* TransformStreamInternals.ts */
-// isTransformStream
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_ISTRANSFORMSTREAM 1
-extern const char* const s_transformStreamInternalsIsTransformStreamCode;
-extern const int s_transformStreamInternalsIsTransformStreamCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsIsTransformStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsIsTransformStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsIsTransformStreamCodeImplementationVisibility;
-
-// isTransformStreamDefaultController
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_ISTRANSFORMSTREAMDEFAULTCONTROLLER 1
-extern const char* const s_transformStreamInternalsIsTransformStreamDefaultControllerCode;
-extern const int s_transformStreamInternalsIsTransformStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsIsTransformStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsIsTransformStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsIsTransformStreamDefaultControllerCodeImplementationVisibility;
-
-// createTransformStream
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_CREATETRANSFORMSTREAM 1
-extern const char* const s_transformStreamInternalsCreateTransformStreamCode;
-extern const int s_transformStreamInternalsCreateTransformStreamCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsCreateTransformStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsCreateTransformStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsCreateTransformStreamCodeImplementationVisibility;
-
-// initializeTransformStream
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_INITIALIZETRANSFORMSTREAM 1
-extern const char* const s_transformStreamInternalsInitializeTransformStreamCode;
-extern const int s_transformStreamInternalsInitializeTransformStreamCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsInitializeTransformStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsInitializeTransformStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsInitializeTransformStreamCodeImplementationVisibility;
-
-// transformStreamError
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMERROR 1
-extern const char* const s_transformStreamInternalsTransformStreamErrorCode;
-extern const int s_transformStreamInternalsTransformStreamErrorCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamErrorCodeImplementationVisibility;
-
-// transformStreamErrorWritableAndUnblockWrite
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMERRORWRITABLEANDUNBLOCKWRITE 1
-extern const char* const s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode;
-extern const int s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeImplementationVisibility;
-
-// transformStreamSetBackpressure
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMSETBACKPRESSURE 1
-extern const char* const s_transformStreamInternalsTransformStreamSetBackpressureCode;
-extern const int s_transformStreamInternalsTransformStreamSetBackpressureCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamSetBackpressureCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamSetBackpressureCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamSetBackpressureCodeImplementationVisibility;
-
-// setUpTransformStreamDefaultController
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_SETUPTRANSFORMSTREAMDEFAULTCONTROLLER 1
-extern const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerCode;
-extern const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeImplementationVisibility;
-
-// setUpTransformStreamDefaultControllerFromTransformer
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_SETUPTRANSFORMSTREAMDEFAULTCONTROLLERFROMTRANSFORMER 1
-extern const char* const s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode;
-extern const int s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeImplementationVisibility;
-
-// transformStreamDefaultControllerClearAlgorithms
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTCONTROLLERCLEARALGORITHMS 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeImplementationVisibility;
-
-// transformStreamDefaultControllerEnqueue
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTCONTROLLERENQUEUE 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeImplementationVisibility;
-
-// transformStreamDefaultControllerError
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTCONTROLLERERROR 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultControllerErrorCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeImplementationVisibility;
-
-// transformStreamDefaultControllerPerformTransform
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTCONTROLLERPERFORMTRANSFORM 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeImplementationVisibility;
-
-// transformStreamDefaultControllerTerminate
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTCONTROLLERTERMINATE 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultControllerTerminateCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeImplementationVisibility;
-
-// transformStreamDefaultSinkWriteAlgorithm
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTSINKWRITEALGORITHM 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeImplementationVisibility;
-
-// transformStreamDefaultSinkAbortAlgorithm
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTSINKABORTALGORITHM 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeImplementationVisibility;
-
-// transformStreamDefaultSinkCloseAlgorithm
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTSINKCLOSEALGORITHM 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeImplementationVisibility;
-
-// transformStreamDefaultSourcePullAlgorithm
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMINTERNALS_TRANSFORMSTREAMDEFAULTSOURCEPULLALGORITHM 1
-extern const char* const s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCode;
-extern const int s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_DATA(macro) \
- macro(isTransformStream, transformStreamInternalsIsTransformStream, 1) \
- macro(isTransformStreamDefaultController, transformStreamInternalsIsTransformStreamDefaultController, 1) \
- macro(createTransformStream, transformStreamInternalsCreateTransformStream, 8) \
- macro(initializeTransformStream, transformStreamInternalsInitializeTransformStream, 7) \
- macro(transformStreamError, transformStreamInternalsTransformStreamError, 2) \
- macro(transformStreamErrorWritableAndUnblockWrite, transformStreamInternalsTransformStreamErrorWritableAndUnblockWrite, 2) \
- macro(transformStreamSetBackpressure, transformStreamInternalsTransformStreamSetBackpressure, 2) \
- macro(setUpTransformStreamDefaultController, transformStreamInternalsSetUpTransformStreamDefaultController, 4) \
- macro(setUpTransformStreamDefaultControllerFromTransformer, transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformer, 3) \
- macro(transformStreamDefaultControllerClearAlgorithms, transformStreamInternalsTransformStreamDefaultControllerClearAlgorithms, 1) \
- macro(transformStreamDefaultControllerEnqueue, transformStreamInternalsTransformStreamDefaultControllerEnqueue, 2) \
- macro(transformStreamDefaultControllerError, transformStreamInternalsTransformStreamDefaultControllerError, 2) \
- macro(transformStreamDefaultControllerPerformTransform, transformStreamInternalsTransformStreamDefaultControllerPerformTransform, 2) \
- macro(transformStreamDefaultControllerTerminate, transformStreamInternalsTransformStreamDefaultControllerTerminate, 1) \
- macro(transformStreamDefaultSinkWriteAlgorithm, transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithm, 2) \
- macro(transformStreamDefaultSinkAbortAlgorithm, transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithm, 2) \
- macro(transformStreamDefaultSinkCloseAlgorithm, transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithm, 1) \
- macro(transformStreamDefaultSourcePullAlgorithm, transformStreamInternalsTransformStreamDefaultSourcePullAlgorithm, 1) \
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_CODE(macro) \
- macro(transformStreamInternalsIsTransformStreamCode, isTransformStream, ASCIILiteral(), s_transformStreamInternalsIsTransformStreamCodeLength) \
- macro(transformStreamInternalsIsTransformStreamDefaultControllerCode, isTransformStreamDefaultController, ASCIILiteral(), s_transformStreamInternalsIsTransformStreamDefaultControllerCodeLength) \
- macro(transformStreamInternalsCreateTransformStreamCode, createTransformStream, ASCIILiteral(), s_transformStreamInternalsCreateTransformStreamCodeLength) \
- macro(transformStreamInternalsInitializeTransformStreamCode, initializeTransformStream, ASCIILiteral(), s_transformStreamInternalsInitializeTransformStreamCodeLength) \
- macro(transformStreamInternalsTransformStreamErrorCode, transformStreamError, ASCIILiteral(), s_transformStreamInternalsTransformStreamErrorCodeLength) \
- macro(transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCode, transformStreamErrorWritableAndUnblockWrite, ASCIILiteral(), s_transformStreamInternalsTransformStreamErrorWritableAndUnblockWriteCodeLength) \
- macro(transformStreamInternalsTransformStreamSetBackpressureCode, transformStreamSetBackpressure, ASCIILiteral(), s_transformStreamInternalsTransformStreamSetBackpressureCodeLength) \
- macro(transformStreamInternalsSetUpTransformStreamDefaultControllerCode, setUpTransformStreamDefaultController, ASCIILiteral(), s_transformStreamInternalsSetUpTransformStreamDefaultControllerCodeLength) \
- macro(transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCode, setUpTransformStreamDefaultControllerFromTransformer, ASCIILiteral(), s_transformStreamInternalsSetUpTransformStreamDefaultControllerFromTransformerCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCode, transformStreamDefaultControllerClearAlgorithms, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultControllerClearAlgorithmsCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultControllerEnqueueCode, transformStreamDefaultControllerEnqueue, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultControllerEnqueueCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultControllerErrorCode, transformStreamDefaultControllerError, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultControllerErrorCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultControllerPerformTransformCode, transformStreamDefaultControllerPerformTransform, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultControllerPerformTransformCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultControllerTerminateCode, transformStreamDefaultControllerTerminate, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultControllerTerminateCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCode, transformStreamDefaultSinkWriteAlgorithm, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultSinkWriteAlgorithmCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCode, transformStreamDefaultSinkAbortAlgorithm, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultSinkAbortAlgorithmCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCode, transformStreamDefaultSinkCloseAlgorithm, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultSinkCloseAlgorithmCodeLength) \
- macro(transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCode, transformStreamDefaultSourcePullAlgorithm, ASCIILiteral(), s_transformStreamInternalsTransformStreamDefaultSourcePullAlgorithmCodeLength) \
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_FUNCTION_NAME(macro) \
- macro(isTransformStream) \
- macro(isTransformStreamDefaultController) \
- macro(createTransformStream) \
- macro(initializeTransformStream) \
- macro(transformStreamError) \
- macro(transformStreamErrorWritableAndUnblockWrite) \
- macro(transformStreamSetBackpressure) \
- macro(setUpTransformStreamDefaultController) \
- macro(setUpTransformStreamDefaultControllerFromTransformer) \
- macro(transformStreamDefaultControllerClearAlgorithms) \
- macro(transformStreamDefaultControllerEnqueue) \
- macro(transformStreamDefaultControllerError) \
- macro(transformStreamDefaultControllerPerformTransform) \
- macro(transformStreamDefaultControllerTerminate) \
- macro(transformStreamDefaultSinkWriteAlgorithm) \
- macro(transformStreamDefaultSinkAbortAlgorithm) \
- macro(transformStreamDefaultSinkCloseAlgorithm) \
- macro(transformStreamDefaultSourcePullAlgorithm) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class TransformStreamInternalsBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit TransformStreamInternalsBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* TransformStreamInternalsBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void TransformStreamInternalsBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-class TransformStreamInternalsBuiltinFunctions {
-public:
- explicit TransformStreamInternalsBuiltinFunctions(JSC::VM& vm) : m_vm(vm) { }
-
- void init(JSC::JSGlobalObject&);
- template<typename Visitor> void visit(Visitor&);
-
-public:
- JSC::VM& m_vm;
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \
- JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function;
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-};
-
-inline void TransformStreamInternalsBuiltinFunctions::init(JSC::JSGlobalObject& globalObject)
-{
-#define EXPORT_FUNCTION(codeName, functionName, overriddenName, length) \
- m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, codeName##Generator(m_vm), &globalObject));
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_CODE(EXPORT_FUNCTION)
-#undef EXPORT_FUNCTION
-}
-
-template<typename Visitor>
-inline void TransformStreamInternalsBuiltinFunctions::visit(Visitor& visitor)
-{
-#define VISIT_FUNCTION(name) visitor.append(m_##name##Function);
- WEBCORE_FOREACH_TRANSFORMSTREAMINTERNALS_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION)
-#undef VISIT_FUNCTION
-}
-
-template void TransformStreamInternalsBuiltinFunctions::visit(JSC::AbstractSlotVisitor&);
-template void TransformStreamInternalsBuiltinFunctions::visit(JSC::SlotVisitor&);
- /* ProcessObjectInternals.ts */
-// binding
-#define WEBCORE_BUILTIN_PROCESSOBJECTINTERNALS_BINDING 1
-extern const char* const s_processObjectInternalsBindingCode;
-extern const int s_processObjectInternalsBindingCodeLength;
-extern const JSC::ConstructAbility s_processObjectInternalsBindingCodeConstructAbility;
-extern const JSC::ConstructorKind s_processObjectInternalsBindingCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_processObjectInternalsBindingCodeImplementationVisibility;
-
-// getStdioWriteStream
-#define WEBCORE_BUILTIN_PROCESSOBJECTINTERNALS_GETSTDIOWRITESTREAM 1
-extern const char* const s_processObjectInternalsGetStdioWriteStreamCode;
-extern const int s_processObjectInternalsGetStdioWriteStreamCodeLength;
-extern const JSC::ConstructAbility s_processObjectInternalsGetStdioWriteStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility;
-
-// getStdinStream
-#define WEBCORE_BUILTIN_PROCESSOBJECTINTERNALS_GETSTDINSTREAM 1
-extern const char* const s_processObjectInternalsGetStdinStreamCode;
-extern const int s_processObjectInternalsGetStdinStreamCodeLength;
-extern const JSC::ConstructAbility s_processObjectInternalsGetStdinStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_DATA(macro) \
- macro(binding, processObjectInternalsBinding, 1) \
- macro(getStdioWriteStream, processObjectInternalsGetStdioWriteStream, 2) \
- macro(getStdinStream, processObjectInternalsGetStdinStream, 3) \
-
-#define WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_CODE(macro) \
- macro(processObjectInternalsBindingCode, binding, ASCIILiteral(), s_processObjectInternalsBindingCodeLength) \
- macro(processObjectInternalsGetStdioWriteStreamCode, getStdioWriteStream, ASCIILiteral(), s_processObjectInternalsGetStdioWriteStreamCodeLength) \
- macro(processObjectInternalsGetStdinStreamCode, getStdinStream, ASCIILiteral(), s_processObjectInternalsGetStdinStreamCodeLength) \
-
-#define WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_FUNCTION_NAME(macro) \
- macro(binding) \
- macro(getStdioWriteStream) \
- macro(getStdinStream) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ProcessObjectInternalsBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ProcessObjectInternalsBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ProcessObjectInternalsBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ProcessObjectInternalsBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_PROCESSOBJECTINTERNALS_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* TransformStream.ts */
-// initializeTransformStream
-#define WEBCORE_BUILTIN_TRANSFORMSTREAM_INITIALIZETRANSFORMSTREAM 1
-extern const char* const s_transformStreamInitializeTransformStreamCode;
-extern const int s_transformStreamInitializeTransformStreamCodeLength;
-extern const JSC::ConstructAbility s_transformStreamInitializeTransformStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamInitializeTransformStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamInitializeTransformStreamCodeImplementationVisibility;
-
-// readable
-#define WEBCORE_BUILTIN_TRANSFORMSTREAM_READABLE 1
-extern const char* const s_transformStreamReadableCode;
-extern const int s_transformStreamReadableCodeLength;
-extern const JSC::ConstructAbility s_transformStreamReadableCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamReadableCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamReadableCodeImplementationVisibility;
-
-// writable
-#define WEBCORE_BUILTIN_TRANSFORMSTREAM_WRITABLE 1
-extern const char* const s_transformStreamWritableCode;
-extern const int s_transformStreamWritableCodeLength;
-extern const JSC::ConstructAbility s_transformStreamWritableCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamWritableCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamWritableCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_DATA(macro) \
- macro(initializeTransformStream, transformStreamInitializeTransformStream, 0) \
- macro(readable, transformStreamReadable, 0) \
- macro(writable, transformStreamWritable, 0) \
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_CODE(macro) \
- macro(transformStreamInitializeTransformStreamCode, initializeTransformStream, ASCIILiteral(), s_transformStreamInitializeTransformStreamCodeLength) \
- macro(transformStreamReadableCode, readable, "get readable"_s, s_transformStreamReadableCodeLength) \
- macro(transformStreamWritableCode, writable, ASCIILiteral(), s_transformStreamWritableCodeLength) \
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeTransformStream) \
- macro(readable) \
- macro(writable) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class TransformStreamBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit TransformStreamBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* TransformStreamBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void TransformStreamBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_TRANSFORMSTREAM_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* JSBufferPrototype.ts */
-// setBigUint64
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_SETBIGUINT64 1
-extern const char* const s_jsBufferPrototypeSetBigUint64Code;
-extern const int s_jsBufferPrototypeSetBigUint64CodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeSetBigUint64CodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeSetBigUint64CodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeSetBigUint64CodeImplementationVisibility;
-
-// readInt8
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READINT8 1
-extern const char* const s_jsBufferPrototypeReadInt8Code;
-extern const int s_jsBufferPrototypeReadInt8CodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadInt8CodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadInt8CodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt8CodeImplementationVisibility;
-
-// readUInt8
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READUINT8 1
-extern const char* const s_jsBufferPrototypeReadUInt8Code;
-extern const int s_jsBufferPrototypeReadUInt8CodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadUInt8CodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadUInt8CodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt8CodeImplementationVisibility;
-
-// readInt16LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READINT16LE 1
-extern const char* const s_jsBufferPrototypeReadInt16LECode;
-extern const int s_jsBufferPrototypeReadInt16LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadInt16LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadInt16LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt16LECodeImplementationVisibility;
-
-// readInt16BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READINT16BE 1
-extern const char* const s_jsBufferPrototypeReadInt16BECode;
-extern const int s_jsBufferPrototypeReadInt16BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadInt16BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadInt16BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt16BECodeImplementationVisibility;
-
-// readUInt16LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READUINT16LE 1
-extern const char* const s_jsBufferPrototypeReadUInt16LECode;
-extern const int s_jsBufferPrototypeReadUInt16LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadUInt16LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadUInt16LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt16LECodeImplementationVisibility;
-
-// readUInt16BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READUINT16BE 1
-extern const char* const s_jsBufferPrototypeReadUInt16BECode;
-extern const int s_jsBufferPrototypeReadUInt16BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadUInt16BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadUInt16BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt16BECodeImplementationVisibility;
-
-// readInt32LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READINT32LE 1
-extern const char* const s_jsBufferPrototypeReadInt32LECode;
-extern const int s_jsBufferPrototypeReadInt32LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadInt32LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadInt32LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt32LECodeImplementationVisibility;
-
-// readInt32BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READINT32BE 1
-extern const char* const s_jsBufferPrototypeReadInt32BECode;
-extern const int s_jsBufferPrototypeReadInt32BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadInt32BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadInt32BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadInt32BECodeImplementationVisibility;
-
-// readUInt32LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READUINT32LE 1
-extern const char* const s_jsBufferPrototypeReadUInt32LECode;
-extern const int s_jsBufferPrototypeReadUInt32LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadUInt32LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadUInt32LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt32LECodeImplementationVisibility;
-
-// readUInt32BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READUINT32BE 1
-extern const char* const s_jsBufferPrototypeReadUInt32BECode;
-extern const int s_jsBufferPrototypeReadUInt32BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadUInt32BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadUInt32BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadUInt32BECodeImplementationVisibility;
-
-// readIntLE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READINTLE 1
-extern const char* const s_jsBufferPrototypeReadIntLECode;
-extern const int s_jsBufferPrototypeReadIntLECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadIntLECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadIntLECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntLECodeImplementationVisibility;
-
-// readIntBE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READINTBE 1
-extern const char* const s_jsBufferPrototypeReadIntBECode;
-extern const int s_jsBufferPrototypeReadIntBECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadIntBECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadIntBECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadIntBECodeImplementationVisibility;
-
-// readUIntLE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READUINTLE 1
-extern const char* const s_jsBufferPrototypeReadUIntLECode;
-extern const int s_jsBufferPrototypeReadUIntLECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadUIntLECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadUIntLECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadUIntLECodeImplementationVisibility;
-
-// readUIntBE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READUINTBE 1
-extern const char* const s_jsBufferPrototypeReadUIntBECode;
-extern const int s_jsBufferPrototypeReadUIntBECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadUIntBECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadUIntBECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadUIntBECodeImplementationVisibility;
-
-// readFloatLE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READFLOATLE 1
-extern const char* const s_jsBufferPrototypeReadFloatLECode;
-extern const int s_jsBufferPrototypeReadFloatLECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadFloatLECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadFloatLECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadFloatLECodeImplementationVisibility;
-
-// readFloatBE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READFLOATBE 1
-extern const char* const s_jsBufferPrototypeReadFloatBECode;
-extern const int s_jsBufferPrototypeReadFloatBECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadFloatBECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadFloatBECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadFloatBECodeImplementationVisibility;
-
-// readDoubleLE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READDOUBLELE 1
-extern const char* const s_jsBufferPrototypeReadDoubleLECode;
-extern const int s_jsBufferPrototypeReadDoubleLECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadDoubleLECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadDoubleLECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadDoubleLECodeImplementationVisibility;
-
-// readDoubleBE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READDOUBLEBE 1
-extern const char* const s_jsBufferPrototypeReadDoubleBECode;
-extern const int s_jsBufferPrototypeReadDoubleBECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadDoubleBECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadDoubleBECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadDoubleBECodeImplementationVisibility;
-
-// readBigInt64LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READBIGINT64LE 1
-extern const char* const s_jsBufferPrototypeReadBigInt64LECode;
-extern const int s_jsBufferPrototypeReadBigInt64LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadBigInt64LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadBigInt64LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadBigInt64LECodeImplementationVisibility;
-
-// readBigInt64BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READBIGINT64BE 1
-extern const char* const s_jsBufferPrototypeReadBigInt64BECode;
-extern const int s_jsBufferPrototypeReadBigInt64BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadBigInt64BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadBigInt64BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadBigInt64BECodeImplementationVisibility;
-
-// readBigUInt64LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READBIGUINT64LE 1
-extern const char* const s_jsBufferPrototypeReadBigUInt64LECode;
-extern const int s_jsBufferPrototypeReadBigUInt64LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadBigUInt64LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadBigUInt64LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadBigUInt64LECodeImplementationVisibility;
-
-// readBigUInt64BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_READBIGUINT64BE 1
-extern const char* const s_jsBufferPrototypeReadBigUInt64BECode;
-extern const int s_jsBufferPrototypeReadBigUInt64BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeReadBigUInt64BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeReadBigUInt64BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeReadBigUInt64BECodeImplementationVisibility;
-
-// writeInt8
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEINT8 1
-extern const char* const s_jsBufferPrototypeWriteInt8Code;
-extern const int s_jsBufferPrototypeWriteInt8CodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteInt8CodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteInt8CodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt8CodeImplementationVisibility;
-
-// writeUInt8
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEUINT8 1
-extern const char* const s_jsBufferPrototypeWriteUInt8Code;
-extern const int s_jsBufferPrototypeWriteUInt8CodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt8CodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt8CodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt8CodeImplementationVisibility;
-
-// writeInt16LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEINT16LE 1
-extern const char* const s_jsBufferPrototypeWriteInt16LECode;
-extern const int s_jsBufferPrototypeWriteInt16LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteInt16LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt16LECodeImplementationVisibility;
-
-// writeInt16BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEINT16BE 1
-extern const char* const s_jsBufferPrototypeWriteInt16BECode;
-extern const int s_jsBufferPrototypeWriteInt16BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteInt16BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteInt16BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt16BECodeImplementationVisibility;
-
-// writeUInt16LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEUINT16LE 1
-extern const char* const s_jsBufferPrototypeWriteUInt16LECode;
-extern const int s_jsBufferPrototypeWriteUInt16LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt16LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt16LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt16LECodeImplementationVisibility;
-
-// writeUInt16BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEUINT16BE 1
-extern const char* const s_jsBufferPrototypeWriteUInt16BECode;
-extern const int s_jsBufferPrototypeWriteUInt16BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt16BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt16BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt16BECodeImplementationVisibility;
-
-// writeInt32LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEINT32LE 1
-extern const char* const s_jsBufferPrototypeWriteInt32LECode;
-extern const int s_jsBufferPrototypeWriteInt32LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteInt32LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32LECodeImplementationVisibility;
-
-// writeInt32BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEINT32BE 1
-extern const char* const s_jsBufferPrototypeWriteInt32BECode;
-extern const int s_jsBufferPrototypeWriteInt32BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteInt32BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteInt32BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteInt32BECodeImplementationVisibility;
-
-// writeUInt32LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEUINT32LE 1
-extern const char* const s_jsBufferPrototypeWriteUInt32LECode;
-extern const int s_jsBufferPrototypeWriteUInt32LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32LECodeImplementationVisibility;
-
-// writeUInt32BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEUINT32BE 1
-extern const char* const s_jsBufferPrototypeWriteUInt32BECode;
-extern const int s_jsBufferPrototypeWriteUInt32BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteUInt32BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteUInt32BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUInt32BECodeImplementationVisibility;
-
-// writeIntLE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEINTLE 1
-extern const char* const s_jsBufferPrototypeWriteIntLECode;
-extern const int s_jsBufferPrototypeWriteIntLECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteIntLECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteIntLECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntLECodeImplementationVisibility;
-
-// writeIntBE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEINTBE 1
-extern const char* const s_jsBufferPrototypeWriteIntBECode;
-extern const int s_jsBufferPrototypeWriteIntBECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteIntBECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteIntBECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteIntBECodeImplementationVisibility;
-
-// writeUIntLE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEUINTLE 1
-extern const char* const s_jsBufferPrototypeWriteUIntLECode;
-extern const int s_jsBufferPrototypeWriteUIntLECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntLECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntLECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntLECodeImplementationVisibility;
-
-// writeUIntBE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEUINTBE 1
-extern const char* const s_jsBufferPrototypeWriteUIntBECode;
-extern const int s_jsBufferPrototypeWriteUIntBECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteUIntBECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteUIntBECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteUIntBECodeImplementationVisibility;
-
-// writeFloatLE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEFLOATLE 1
-extern const char* const s_jsBufferPrototypeWriteFloatLECode;
-extern const int s_jsBufferPrototypeWriteFloatLECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatLECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatLECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatLECodeImplementationVisibility;
-
-// writeFloatBE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEFLOATBE 1
-extern const char* const s_jsBufferPrototypeWriteFloatBECode;
-extern const int s_jsBufferPrototypeWriteFloatBECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteFloatBECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteFloatBECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteFloatBECodeImplementationVisibility;
-
-// writeDoubleLE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEDOUBLELE 1
-extern const char* const s_jsBufferPrototypeWriteDoubleLECode;
-extern const int s_jsBufferPrototypeWriteDoubleLECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleLECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteDoubleLECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteDoubleLECodeImplementationVisibility;
-
-// writeDoubleBE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEDOUBLEBE 1
-extern const char* const s_jsBufferPrototypeWriteDoubleBECode;
-extern const int s_jsBufferPrototypeWriteDoubleBECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteDoubleBECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteDoubleBECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteDoubleBECodeImplementationVisibility;
-
-// writeBigInt64LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEBIGINT64LE 1
-extern const char* const s_jsBufferPrototypeWriteBigInt64LECode;
-extern const int s_jsBufferPrototypeWriteBigInt64LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteBigInt64LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64LECodeImplementationVisibility;
-
-// writeBigInt64BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEBIGINT64BE 1
-extern const char* const s_jsBufferPrototypeWriteBigInt64BECode;
-extern const int s_jsBufferPrototypeWriteBigInt64BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteBigInt64BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteBigInt64BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigInt64BECodeImplementationVisibility;
-
-// writeBigUInt64LE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEBIGUINT64LE 1
-extern const char* const s_jsBufferPrototypeWriteBigUInt64LECode;
-extern const int s_jsBufferPrototypeWriteBigUInt64LECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64LECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64LECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64LECodeImplementationVisibility;
-
-// writeBigUInt64BE
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_WRITEBIGUINT64BE 1
-extern const char* const s_jsBufferPrototypeWriteBigUInt64BECode;
-extern const int s_jsBufferPrototypeWriteBigUInt64BECodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeWriteBigUInt64BECodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeWriteBigUInt64BECodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeWriteBigUInt64BECodeImplementationVisibility;
-
-// utf8Write
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UTF8WRITE 1
-extern const char* const s_jsBufferPrototypeUtf8WriteCode;
-extern const int s_jsBufferPrototypeUtf8WriteCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeUtf8WriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeUtf8WriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeUtf8WriteCodeImplementationVisibility;
-
-// ucs2Write
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UCS2WRITE 1
-extern const char* const s_jsBufferPrototypeUcs2WriteCode;
-extern const int s_jsBufferPrototypeUcs2WriteCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeUcs2WriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeUcs2WriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeUcs2WriteCodeImplementationVisibility;
-
-// utf16leWrite
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UTF16LEWRITE 1
-extern const char* const s_jsBufferPrototypeUtf16leWriteCode;
-extern const int s_jsBufferPrototypeUtf16leWriteCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeUtf16leWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeUtf16leWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeUtf16leWriteCodeImplementationVisibility;
-
-// latin1Write
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_LATIN1WRITE 1
-extern const char* const s_jsBufferPrototypeLatin1WriteCode;
-extern const int s_jsBufferPrototypeLatin1WriteCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeLatin1WriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeLatin1WriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeLatin1WriteCodeImplementationVisibility;
-
-// asciiWrite
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_ASCIIWRITE 1
-extern const char* const s_jsBufferPrototypeAsciiWriteCode;
-extern const int s_jsBufferPrototypeAsciiWriteCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeAsciiWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeAsciiWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeAsciiWriteCodeImplementationVisibility;
-
-// base64Write
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_BASE64WRITE 1
-extern const char* const s_jsBufferPrototypeBase64WriteCode;
-extern const int s_jsBufferPrototypeBase64WriteCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeBase64WriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeBase64WriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeBase64WriteCodeImplementationVisibility;
-
-// base64urlWrite
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_BASE64URLWRITE 1
-extern const char* const s_jsBufferPrototypeBase64urlWriteCode;
-extern const int s_jsBufferPrototypeBase64urlWriteCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeBase64urlWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeBase64urlWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeBase64urlWriteCodeImplementationVisibility;
-
-// hexWrite
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_HEXWRITE 1
-extern const char* const s_jsBufferPrototypeHexWriteCode;
-extern const int s_jsBufferPrototypeHexWriteCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeHexWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeHexWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeHexWriteCodeImplementationVisibility;
-
-// utf8Slice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UTF8SLICE 1
-extern const char* const s_jsBufferPrototypeUtf8SliceCode;
-extern const int s_jsBufferPrototypeUtf8SliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeUtf8SliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeUtf8SliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeUtf8SliceCodeImplementationVisibility;
-
-// ucs2Slice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UCS2SLICE 1
-extern const char* const s_jsBufferPrototypeUcs2SliceCode;
-extern const int s_jsBufferPrototypeUcs2SliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeUcs2SliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeUcs2SliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeUcs2SliceCodeImplementationVisibility;
-
-// utf16leSlice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_UTF16LESLICE 1
-extern const char* const s_jsBufferPrototypeUtf16leSliceCode;
-extern const int s_jsBufferPrototypeUtf16leSliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeUtf16leSliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeUtf16leSliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeUtf16leSliceCodeImplementationVisibility;
-
-// latin1Slice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_LATIN1SLICE 1
-extern const char* const s_jsBufferPrototypeLatin1SliceCode;
-extern const int s_jsBufferPrototypeLatin1SliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeLatin1SliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeLatin1SliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeLatin1SliceCodeImplementationVisibility;
-
-// asciiSlice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_ASCIISLICE 1
-extern const char* const s_jsBufferPrototypeAsciiSliceCode;
-extern const int s_jsBufferPrototypeAsciiSliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeAsciiSliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeAsciiSliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeAsciiSliceCodeImplementationVisibility;
-
-// base64Slice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_BASE64SLICE 1
-extern const char* const s_jsBufferPrototypeBase64SliceCode;
-extern const int s_jsBufferPrototypeBase64SliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeBase64SliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeBase64SliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeBase64SliceCodeImplementationVisibility;
-
-// base64urlSlice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_BASE64URLSLICE 1
-extern const char* const s_jsBufferPrototypeBase64urlSliceCode;
-extern const int s_jsBufferPrototypeBase64urlSliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeBase64urlSliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeBase64urlSliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeBase64urlSliceCodeImplementationVisibility;
-
-// hexSlice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_HEXSLICE 1
-extern const char* const s_jsBufferPrototypeHexSliceCode;
-extern const int s_jsBufferPrototypeHexSliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeHexSliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeHexSliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeHexSliceCodeImplementationVisibility;
-
-// toJSON
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_TOJSON 1
-extern const char* const s_jsBufferPrototypeToJSONCode;
-extern const int s_jsBufferPrototypeToJSONCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeToJSONCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeToJSONCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeToJSONCodeImplementationVisibility;
-
-// slice
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_SLICE 1
-extern const char* const s_jsBufferPrototypeSliceCode;
-extern const int s_jsBufferPrototypeSliceCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeSliceCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeSliceCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeSliceCodeImplementationVisibility;
-
-// parent
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_PARENT 1
-extern const char* const s_jsBufferPrototypeParentCode;
-extern const int s_jsBufferPrototypeParentCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeParentCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeParentCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeParentCodeImplementationVisibility;
-
-// offset
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_OFFSET 1
-extern const char* const s_jsBufferPrototypeOffsetCode;
-extern const int s_jsBufferPrototypeOffsetCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeOffsetCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeOffsetCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeOffsetCodeImplementationVisibility;
-
-// inspect
-#define WEBCORE_BUILTIN_JSBUFFERPROTOTYPE_INSPECT 1
-extern const char* const s_jsBufferPrototypeInspectCode;
-extern const int s_jsBufferPrototypeInspectCodeLength;
-extern const JSC::ConstructAbility s_jsBufferPrototypeInspectCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferPrototypeInspectCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferPrototypeInspectCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_DATA(macro) \
- macro(setBigUint64, jsBufferPrototypeSetBigUint64, 3) \
- macro(readInt8, jsBufferPrototypeReadInt8, 1) \
- macro(readUInt8, jsBufferPrototypeReadUInt8, 1) \
- macro(readInt16LE, jsBufferPrototypeReadInt16LE, 1) \
- macro(readInt16BE, jsBufferPrototypeReadInt16BE, 1) \
- macro(readUInt16LE, jsBufferPrototypeReadUInt16LE, 1) \
- macro(readUInt16BE, jsBufferPrototypeReadUInt16BE, 1) \
- macro(readInt32LE, jsBufferPrototypeReadInt32LE, 1) \
- macro(readInt32BE, jsBufferPrototypeReadInt32BE, 1) \
- macro(readUInt32LE, jsBufferPrototypeReadUInt32LE, 1) \
- macro(readUInt32BE, jsBufferPrototypeReadUInt32BE, 1) \
- macro(readIntLE, jsBufferPrototypeReadIntLE, 2) \
- macro(readIntBE, jsBufferPrototypeReadIntBE, 2) \
- macro(readUIntLE, jsBufferPrototypeReadUIntLE, 2) \
- macro(readUIntBE, jsBufferPrototypeReadUIntBE, 2) \
- macro(readFloatLE, jsBufferPrototypeReadFloatLE, 1) \
- macro(readFloatBE, jsBufferPrototypeReadFloatBE, 1) \
- macro(readDoubleLE, jsBufferPrototypeReadDoubleLE, 1) \
- macro(readDoubleBE, jsBufferPrototypeReadDoubleBE, 1) \
- macro(readBigInt64LE, jsBufferPrototypeReadBigInt64LE, 1) \
- macro(readBigInt64BE, jsBufferPrototypeReadBigInt64BE, 1) \
- macro(readBigUInt64LE, jsBufferPrototypeReadBigUInt64LE, 1) \
- macro(readBigUInt64BE, jsBufferPrototypeReadBigUInt64BE, 1) \
- macro(writeInt8, jsBufferPrototypeWriteInt8, 2) \
- macro(writeUInt8, jsBufferPrototypeWriteUInt8, 2) \
- macro(writeInt16LE, jsBufferPrototypeWriteInt16LE, 2) \
- macro(writeInt16BE, jsBufferPrototypeWriteInt16BE, 2) \
- macro(writeUInt16LE, jsBufferPrototypeWriteUInt16LE, 2) \
- macro(writeUInt16BE, jsBufferPrototypeWriteUInt16BE, 2) \
- macro(writeInt32LE, jsBufferPrototypeWriteInt32LE, 2) \
- macro(writeInt32BE, jsBufferPrototypeWriteInt32BE, 2) \
- macro(writeUInt32LE, jsBufferPrototypeWriteUInt32LE, 2) \
- macro(writeUInt32BE, jsBufferPrototypeWriteUInt32BE, 2) \
- macro(writeIntLE, jsBufferPrototypeWriteIntLE, 3) \
- macro(writeIntBE, jsBufferPrototypeWriteIntBE, 3) \
- macro(writeUIntLE, jsBufferPrototypeWriteUIntLE, 3) \
- macro(writeUIntBE, jsBufferPrototypeWriteUIntBE, 3) \
- macro(writeFloatLE, jsBufferPrototypeWriteFloatLE, 2) \
- macro(writeFloatBE, jsBufferPrototypeWriteFloatBE, 2) \
- macro(writeDoubleLE, jsBufferPrototypeWriteDoubleLE, 2) \
- macro(writeDoubleBE, jsBufferPrototypeWriteDoubleBE, 2) \
- macro(writeBigInt64LE, jsBufferPrototypeWriteBigInt64LE, 2) \
- macro(writeBigInt64BE, jsBufferPrototypeWriteBigInt64BE, 2) \
- macro(writeBigUInt64LE, jsBufferPrototypeWriteBigUInt64LE, 2) \
- macro(writeBigUInt64BE, jsBufferPrototypeWriteBigUInt64BE, 2) \
- macro(utf8Write, jsBufferPrototypeUtf8Write, 3) \
- macro(ucs2Write, jsBufferPrototypeUcs2Write, 3) \
- macro(utf16leWrite, jsBufferPrototypeUtf16leWrite, 3) \
- macro(latin1Write, jsBufferPrototypeLatin1Write, 3) \
- macro(asciiWrite, jsBufferPrototypeAsciiWrite, 3) \
- macro(base64Write, jsBufferPrototypeBase64Write, 3) \
- macro(base64urlWrite, jsBufferPrototypeBase64urlWrite, 3) \
- macro(hexWrite, jsBufferPrototypeHexWrite, 3) \
- macro(utf8Slice, jsBufferPrototypeUtf8Slice, 2) \
- macro(ucs2Slice, jsBufferPrototypeUcs2Slice, 2) \
- macro(utf16leSlice, jsBufferPrototypeUtf16leSlice, 2) \
- macro(latin1Slice, jsBufferPrototypeLatin1Slice, 2) \
- macro(asciiSlice, jsBufferPrototypeAsciiSlice, 2) \
- macro(base64Slice, jsBufferPrototypeBase64Slice, 2) \
- macro(base64urlSlice, jsBufferPrototypeBase64urlSlice, 2) \
- macro(hexSlice, jsBufferPrototypeHexSlice, 2) \
- macro(toJSON, jsBufferPrototypeToJSON, 0) \
- macro(slice, jsBufferPrototypeSlice, 2) \
- macro(parent, jsBufferPrototypeParent, 0) \
- macro(offset, jsBufferPrototypeOffset, 0) \
- macro(inspect, jsBufferPrototypeInspect, 2) \
-
-#define WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_CODE(macro) \
- macro(jsBufferPrototypeSetBigUint64Code, setBigUint64, ASCIILiteral(), s_jsBufferPrototypeSetBigUint64CodeLength) \
- macro(jsBufferPrototypeReadInt8Code, readInt8, ASCIILiteral(), s_jsBufferPrototypeReadInt8CodeLength) \
- macro(jsBufferPrototypeReadUInt8Code, readUInt8, ASCIILiteral(), s_jsBufferPrototypeReadUInt8CodeLength) \
- macro(jsBufferPrototypeReadInt16LECode, readInt16LE, ASCIILiteral(), s_jsBufferPrototypeReadInt16LECodeLength) \
- macro(jsBufferPrototypeReadInt16BECode, readInt16BE, ASCIILiteral(), s_jsBufferPrototypeReadInt16BECodeLength) \
- macro(jsBufferPrototypeReadUInt16LECode, readUInt16LE, ASCIILiteral(), s_jsBufferPrototypeReadUInt16LECodeLength) \
- macro(jsBufferPrototypeReadUInt16BECode, readUInt16BE, ASCIILiteral(), s_jsBufferPrototypeReadUInt16BECodeLength) \
- macro(jsBufferPrototypeReadInt32LECode, readInt32LE, ASCIILiteral(), s_jsBufferPrototypeReadInt32LECodeLength) \
- macro(jsBufferPrototypeReadInt32BECode, readInt32BE, ASCIILiteral(), s_jsBufferPrototypeReadInt32BECodeLength) \
- macro(jsBufferPrototypeReadUInt32LECode, readUInt32LE, ASCIILiteral(), s_jsBufferPrototypeReadUInt32LECodeLength) \
- macro(jsBufferPrototypeReadUInt32BECode, readUInt32BE, ASCIILiteral(), s_jsBufferPrototypeReadUInt32BECodeLength) \
- macro(jsBufferPrototypeReadIntLECode, readIntLE, ASCIILiteral(), s_jsBufferPrototypeReadIntLECodeLength) \
- macro(jsBufferPrototypeReadIntBECode, readIntBE, ASCIILiteral(), s_jsBufferPrototypeReadIntBECodeLength) \
- macro(jsBufferPrototypeReadUIntLECode, readUIntLE, ASCIILiteral(), s_jsBufferPrototypeReadUIntLECodeLength) \
- macro(jsBufferPrototypeReadUIntBECode, readUIntBE, ASCIILiteral(), s_jsBufferPrototypeReadUIntBECodeLength) \
- macro(jsBufferPrototypeReadFloatLECode, readFloatLE, ASCIILiteral(), s_jsBufferPrototypeReadFloatLECodeLength) \
- macro(jsBufferPrototypeReadFloatBECode, readFloatBE, ASCIILiteral(), s_jsBufferPrototypeReadFloatBECodeLength) \
- macro(jsBufferPrototypeReadDoubleLECode, readDoubleLE, ASCIILiteral(), s_jsBufferPrototypeReadDoubleLECodeLength) \
- macro(jsBufferPrototypeReadDoubleBECode, readDoubleBE, ASCIILiteral(), s_jsBufferPrototypeReadDoubleBECodeLength) \
- macro(jsBufferPrototypeReadBigInt64LECode, readBigInt64LE, ASCIILiteral(), s_jsBufferPrototypeReadBigInt64LECodeLength) \
- macro(jsBufferPrototypeReadBigInt64BECode, readBigInt64BE, ASCIILiteral(), s_jsBufferPrototypeReadBigInt64BECodeLength) \
- macro(jsBufferPrototypeReadBigUInt64LECode, readBigUInt64LE, ASCIILiteral(), s_jsBufferPrototypeReadBigUInt64LECodeLength) \
- macro(jsBufferPrototypeReadBigUInt64BECode, readBigUInt64BE, ASCIILiteral(), s_jsBufferPrototypeReadBigUInt64BECodeLength) \
- macro(jsBufferPrototypeWriteInt8Code, writeInt8, ASCIILiteral(), s_jsBufferPrototypeWriteInt8CodeLength) \
- macro(jsBufferPrototypeWriteUInt8Code, writeUInt8, ASCIILiteral(), s_jsBufferPrototypeWriteUInt8CodeLength) \
- macro(jsBufferPrototypeWriteInt16LECode, writeInt16LE, ASCIILiteral(), s_jsBufferPrototypeWriteInt16LECodeLength) \
- macro(jsBufferPrototypeWriteInt16BECode, writeInt16BE, ASCIILiteral(), s_jsBufferPrototypeWriteInt16BECodeLength) \
- macro(jsBufferPrototypeWriteUInt16LECode, writeUInt16LE, ASCIILiteral(), s_jsBufferPrototypeWriteUInt16LECodeLength) \
- macro(jsBufferPrototypeWriteUInt16BECode, writeUInt16BE, ASCIILiteral(), s_jsBufferPrototypeWriteUInt16BECodeLength) \
- macro(jsBufferPrototypeWriteInt32LECode, writeInt32LE, ASCIILiteral(), s_jsBufferPrototypeWriteInt32LECodeLength) \
- macro(jsBufferPrototypeWriteInt32BECode, writeInt32BE, ASCIILiteral(), s_jsBufferPrototypeWriteInt32BECodeLength) \
- macro(jsBufferPrototypeWriteUInt32LECode, writeUInt32LE, ASCIILiteral(), s_jsBufferPrototypeWriteUInt32LECodeLength) \
- macro(jsBufferPrototypeWriteUInt32BECode, writeUInt32BE, ASCIILiteral(), s_jsBufferPrototypeWriteUInt32BECodeLength) \
- macro(jsBufferPrototypeWriteIntLECode, writeIntLE, ASCIILiteral(), s_jsBufferPrototypeWriteIntLECodeLength) \
- macro(jsBufferPrototypeWriteIntBECode, writeIntBE, ASCIILiteral(), s_jsBufferPrototypeWriteIntBECodeLength) \
- macro(jsBufferPrototypeWriteUIntLECode, writeUIntLE, ASCIILiteral(), s_jsBufferPrototypeWriteUIntLECodeLength) \
- macro(jsBufferPrototypeWriteUIntBECode, writeUIntBE, ASCIILiteral(), s_jsBufferPrototypeWriteUIntBECodeLength) \
- macro(jsBufferPrototypeWriteFloatLECode, writeFloatLE, ASCIILiteral(), s_jsBufferPrototypeWriteFloatLECodeLength) \
- macro(jsBufferPrototypeWriteFloatBECode, writeFloatBE, ASCIILiteral(), s_jsBufferPrototypeWriteFloatBECodeLength) \
- macro(jsBufferPrototypeWriteDoubleLECode, writeDoubleLE, ASCIILiteral(), s_jsBufferPrototypeWriteDoubleLECodeLength) \
- macro(jsBufferPrototypeWriteDoubleBECode, writeDoubleBE, ASCIILiteral(), s_jsBufferPrototypeWriteDoubleBECodeLength) \
- macro(jsBufferPrototypeWriteBigInt64LECode, writeBigInt64LE, ASCIILiteral(), s_jsBufferPrototypeWriteBigInt64LECodeLength) \
- macro(jsBufferPrototypeWriteBigInt64BECode, writeBigInt64BE, ASCIILiteral(), s_jsBufferPrototypeWriteBigInt64BECodeLength) \
- macro(jsBufferPrototypeWriteBigUInt64LECode, writeBigUInt64LE, ASCIILiteral(), s_jsBufferPrototypeWriteBigUInt64LECodeLength) \
- macro(jsBufferPrototypeWriteBigUInt64BECode, writeBigUInt64BE, ASCIILiteral(), s_jsBufferPrototypeWriteBigUInt64BECodeLength) \
- macro(jsBufferPrototypeUtf8WriteCode, utf8Write, ASCIILiteral(), s_jsBufferPrototypeUtf8WriteCodeLength) \
- macro(jsBufferPrototypeUcs2WriteCode, ucs2Write, ASCIILiteral(), s_jsBufferPrototypeUcs2WriteCodeLength) \
- macro(jsBufferPrototypeUtf16leWriteCode, utf16leWrite, ASCIILiteral(), s_jsBufferPrototypeUtf16leWriteCodeLength) \
- macro(jsBufferPrototypeLatin1WriteCode, latin1Write, ASCIILiteral(), s_jsBufferPrototypeLatin1WriteCodeLength) \
- macro(jsBufferPrototypeAsciiWriteCode, asciiWrite, ASCIILiteral(), s_jsBufferPrototypeAsciiWriteCodeLength) \
- macro(jsBufferPrototypeBase64WriteCode, base64Write, ASCIILiteral(), s_jsBufferPrototypeBase64WriteCodeLength) \
- macro(jsBufferPrototypeBase64urlWriteCode, base64urlWrite, ASCIILiteral(), s_jsBufferPrototypeBase64urlWriteCodeLength) \
- macro(jsBufferPrototypeHexWriteCode, hexWrite, ASCIILiteral(), s_jsBufferPrototypeHexWriteCodeLength) \
- macro(jsBufferPrototypeUtf8SliceCode, utf8Slice, ASCIILiteral(), s_jsBufferPrototypeUtf8SliceCodeLength) \
- macro(jsBufferPrototypeUcs2SliceCode, ucs2Slice, ASCIILiteral(), s_jsBufferPrototypeUcs2SliceCodeLength) \
- macro(jsBufferPrototypeUtf16leSliceCode, utf16leSlice, ASCIILiteral(), s_jsBufferPrototypeUtf16leSliceCodeLength) \
- macro(jsBufferPrototypeLatin1SliceCode, latin1Slice, ASCIILiteral(), s_jsBufferPrototypeLatin1SliceCodeLength) \
- macro(jsBufferPrototypeAsciiSliceCode, asciiSlice, ASCIILiteral(), s_jsBufferPrototypeAsciiSliceCodeLength) \
- macro(jsBufferPrototypeBase64SliceCode, base64Slice, ASCIILiteral(), s_jsBufferPrototypeBase64SliceCodeLength) \
- macro(jsBufferPrototypeBase64urlSliceCode, base64urlSlice, ASCIILiteral(), s_jsBufferPrototypeBase64urlSliceCodeLength) \
- macro(jsBufferPrototypeHexSliceCode, hexSlice, ASCIILiteral(), s_jsBufferPrototypeHexSliceCodeLength) \
- macro(jsBufferPrototypeToJSONCode, toJSON, ASCIILiteral(), s_jsBufferPrototypeToJSONCodeLength) \
- macro(jsBufferPrototypeSliceCode, slice, ASCIILiteral(), s_jsBufferPrototypeSliceCodeLength) \
- macro(jsBufferPrototypeParentCode, parent, "get parent"_s, s_jsBufferPrototypeParentCodeLength) \
- macro(jsBufferPrototypeOffsetCode, offset, "get offset"_s, s_jsBufferPrototypeOffsetCodeLength) \
- macro(jsBufferPrototypeInspectCode, inspect, ASCIILiteral(), s_jsBufferPrototypeInspectCodeLength) \
-
-#define WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_FUNCTION_NAME(macro) \
- macro(setBigUint64) \
- macro(readInt8) \
- macro(readUInt8) \
- macro(readInt16LE) \
- macro(readInt16BE) \
- macro(readUInt16LE) \
- macro(readUInt16BE) \
- macro(readInt32LE) \
- macro(readInt32BE) \
- macro(readUInt32LE) \
- macro(readUInt32BE) \
- macro(readIntLE) \
- macro(readIntBE) \
- macro(readUIntLE) \
- macro(readUIntBE) \
- macro(readFloatLE) \
- macro(readFloatBE) \
- macro(readDoubleLE) \
- macro(readDoubleBE) \
- macro(readBigInt64LE) \
- macro(readBigInt64BE) \
- macro(readBigUInt64LE) \
- macro(readBigUInt64BE) \
- macro(writeInt8) \
- macro(writeUInt8) \
- macro(writeInt16LE) \
- macro(writeInt16BE) \
- macro(writeUInt16LE) \
- macro(writeUInt16BE) \
- macro(writeInt32LE) \
- macro(writeInt32BE) \
- macro(writeUInt32LE) \
- macro(writeUInt32BE) \
- macro(writeIntLE) \
- macro(writeIntBE) \
- macro(writeUIntLE) \
- macro(writeUIntBE) \
- macro(writeFloatLE) \
- macro(writeFloatBE) \
- macro(writeDoubleLE) \
- macro(writeDoubleBE) \
- macro(writeBigInt64LE) \
- macro(writeBigInt64BE) \
- macro(writeBigUInt64LE) \
- macro(writeBigUInt64BE) \
- macro(utf8Write) \
- macro(ucs2Write) \
- macro(utf16leWrite) \
- macro(latin1Write) \
- macro(asciiWrite) \
- macro(base64Write) \
- macro(base64urlWrite) \
- macro(hexWrite) \
- macro(utf8Slice) \
- macro(ucs2Slice) \
- macro(utf16leSlice) \
- macro(latin1Slice) \
- macro(asciiSlice) \
- macro(base64Slice) \
- macro(base64urlSlice) \
- macro(hexSlice) \
- macro(toJSON) \
- macro(slice) \
- macro(parent) \
- macro(offset) \
- macro(inspect) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class JSBufferPrototypeBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit JSBufferPrototypeBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* JSBufferPrototypeBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void JSBufferPrototypeBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_JSBUFFERPROTOTYPE_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ReadableByteStreamController.ts */
-// initializeReadableByteStreamController
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMCONTROLLER_INITIALIZEREADABLEBYTESTREAMCONTROLLER 1
-extern const char* const s_readableByteStreamControllerInitializeReadableByteStreamControllerCode;
-extern const int s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeImplementationVisibility;
-
-// enqueue
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMCONTROLLER_ENQUEUE 1
-extern const char* const s_readableByteStreamControllerEnqueueCode;
-extern const int s_readableByteStreamControllerEnqueueCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamControllerEnqueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamControllerEnqueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamControllerEnqueueCodeImplementationVisibility;
-
-// error
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMCONTROLLER_ERROR 1
-extern const char* const s_readableByteStreamControllerErrorCode;
-extern const int s_readableByteStreamControllerErrorCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamControllerErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamControllerErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamControllerErrorCodeImplementationVisibility;
-
-// close
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMCONTROLLER_CLOSE 1
-extern const char* const s_readableByteStreamControllerCloseCode;
-extern const int s_readableByteStreamControllerCloseCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamControllerCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamControllerCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamControllerCloseCodeImplementationVisibility;
-
-// byobRequest
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMCONTROLLER_BYOBREQUEST 1
-extern const char* const s_readableByteStreamControllerByobRequestCode;
-extern const int s_readableByteStreamControllerByobRequestCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamControllerByobRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamControllerByobRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamControllerByobRequestCodeImplementationVisibility;
-
-// desiredSize
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMCONTROLLER_DESIREDSIZE 1
-extern const char* const s_readableByteStreamControllerDesiredSizeCode;
-extern const int s_readableByteStreamControllerDesiredSizeCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamControllerDesiredSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamControllerDesiredSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamControllerDesiredSizeCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_DATA(macro) \
- macro(initializeReadableByteStreamController, readableByteStreamControllerInitializeReadableByteStreamController, 3) \
- macro(enqueue, readableByteStreamControllerEnqueue, 1) \
- macro(error, readableByteStreamControllerError, 1) \
- macro(close, readableByteStreamControllerClose, 0) \
- macro(byobRequest, readableByteStreamControllerByobRequest, 0) \
- macro(desiredSize, readableByteStreamControllerDesiredSize, 0) \
-
-#define WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_CODE(macro) \
- macro(readableByteStreamControllerInitializeReadableByteStreamControllerCode, initializeReadableByteStreamController, ASCIILiteral(), s_readableByteStreamControllerInitializeReadableByteStreamControllerCodeLength) \
- macro(readableByteStreamControllerEnqueueCode, enqueue, ASCIILiteral(), s_readableByteStreamControllerEnqueueCodeLength) \
- macro(readableByteStreamControllerErrorCode, error, ASCIILiteral(), s_readableByteStreamControllerErrorCodeLength) \
- macro(readableByteStreamControllerCloseCode, close, ASCIILiteral(), s_readableByteStreamControllerCloseCodeLength) \
- macro(readableByteStreamControllerByobRequestCode, byobRequest, "get byobRequest"_s, s_readableByteStreamControllerByobRequestCodeLength) \
- macro(readableByteStreamControllerDesiredSizeCode, desiredSize, "get desiredSize"_s, s_readableByteStreamControllerDesiredSizeCodeLength) \
-
-#define WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeReadableByteStreamController) \
- macro(enqueue) \
- macro(error) \
- macro(close) \
- macro(byobRequest) \
- macro(desiredSize) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ReadableByteStreamControllerBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ReadableByteStreamControllerBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ReadableByteStreamControllerBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ReadableByteStreamControllerBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_READABLEBYTESTREAMCONTROLLER_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ConsoleObject.ts */
-// asyncIterator
-#define WEBCORE_BUILTIN_CONSOLEOBJECT_ASYNCITERATOR 1
-extern const char* const s_consoleObjectAsyncIteratorCode;
-extern const int s_consoleObjectAsyncIteratorCodeLength;
-extern const JSC::ConstructAbility s_consoleObjectAsyncIteratorCodeConstructAbility;
-extern const JSC::ConstructorKind s_consoleObjectAsyncIteratorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_consoleObjectAsyncIteratorCodeImplementationVisibility;
-
-// write
-#define WEBCORE_BUILTIN_CONSOLEOBJECT_WRITE 1
-extern const char* const s_consoleObjectWriteCode;
-extern const int s_consoleObjectWriteCodeLength;
-extern const JSC::ConstructAbility s_consoleObjectWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_consoleObjectWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_consoleObjectWriteCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_DATA(macro) \
- macro(asyncIterator, consoleObjectAsyncIterator, 0) \
- macro(write, consoleObjectWrite, 1) \
-
-#define WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(macro) \
- macro(consoleObjectAsyncIteratorCode, asyncIterator, "[Symbol.asyncIterator]"_s, s_consoleObjectAsyncIteratorCodeLength) \
- macro(consoleObjectWriteCode, write, ASCIILiteral(), s_consoleObjectWriteCodeLength) \
-
-#define WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(macro) \
- macro(asyncIterator) \
- macro(write) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ConsoleObjectBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ConsoleObjectBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ConsoleObjectBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ConsoleObjectBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_CONSOLEOBJECT_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ReadableStreamInternals.ts */
-// readableStreamReaderGenericInitialize
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMREADERGENERICINITIALIZE 1
-extern const char* const s_readableStreamInternalsReadableStreamReaderGenericInitializeCode;
-extern const int s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeImplementationVisibility;
-
-// privateInitializeReadableStreamDefaultController
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PRIVATEINITIALIZEREADABLESTREAMDEFAULTCONTROLLER 1
-extern const char* const s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCode;
-extern const int s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeImplementationVisibility;
-
-// readableStreamDefaultControllerError
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERERROR 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerErrorCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeImplementationVisibility;
-
-// readableStreamPipeTo
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMPIPETO 1
-extern const char* const s_readableStreamInternalsReadableStreamPipeToCode;
-extern const int s_readableStreamInternalsReadableStreamPipeToCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamPipeToCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToCodeImplementationVisibility;
-
-// acquireReadableStreamDefaultReader
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ACQUIREREADABLESTREAMDEFAULTREADER 1
-extern const char* const s_readableStreamInternalsAcquireReadableStreamDefaultReaderCode;
-extern const int s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeImplementationVisibility;
-
-// setupReadableStreamDefaultController
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_SETUPREADABLESTREAMDEFAULTCONTROLLER 1
-extern const char* const s_readableStreamInternalsSetupReadableStreamDefaultControllerCode;
-extern const int s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeImplementationVisibility;
-
-// createReadableStreamController
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_CREATEREADABLESTREAMCONTROLLER 1
-extern const char* const s_readableStreamInternalsCreateReadableStreamControllerCode;
-extern const int s_readableStreamInternalsCreateReadableStreamControllerCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsCreateReadableStreamControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsCreateReadableStreamControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsCreateReadableStreamControllerCodeImplementationVisibility;
-
-// readableStreamDefaultControllerStart
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERSTART 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerStartCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerStartCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerStartCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerStartCodeImplementationVisibility;
-
-// readableStreamPipeToWritableStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMPIPETOWRITABLESTREAM 1
-extern const char* const s_readableStreamInternalsReadableStreamPipeToWritableStreamCode;
-extern const int s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeImplementationVisibility;
-
-// pipeToLoop
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETOLOOP 1
-extern const char* const s_readableStreamInternalsPipeToLoopCode;
-extern const int s_readableStreamInternalsPipeToLoopCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToLoopCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToLoopCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToLoopCodeImplementationVisibility;
-
-// pipeToDoReadWrite
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETODOREADWRITE 1
-extern const char* const s_readableStreamInternalsPipeToDoReadWriteCode;
-extern const int s_readableStreamInternalsPipeToDoReadWriteCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToDoReadWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToDoReadWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToDoReadWriteCodeImplementationVisibility;
-
-// pipeToErrorsMustBePropagatedForward
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETOERRORSMUSTBEPROPAGATEDFORWARD 1
-extern const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode;
-extern const int s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeImplementationVisibility;
-
-// pipeToErrorsMustBePropagatedBackward
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETOERRORSMUSTBEPROPAGATEDBACKWARD 1
-extern const char* const s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCode;
-extern const int s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeImplementationVisibility;
-
-// pipeToClosingMustBePropagatedForward
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETOCLOSINGMUSTBEPROPAGATEDFORWARD 1
-extern const char* const s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCode;
-extern const int s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeImplementationVisibility;
-
-// pipeToClosingMustBePropagatedBackward
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETOCLOSINGMUSTBEPROPAGATEDBACKWARD 1
-extern const char* const s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCode;
-extern const int s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeImplementationVisibility;
-
-// pipeToShutdownWithAction
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETOSHUTDOWNWITHACTION 1
-extern const char* const s_readableStreamInternalsPipeToShutdownWithActionCode;
-extern const int s_readableStreamInternalsPipeToShutdownWithActionCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownWithActionCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownWithActionCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownWithActionCodeImplementationVisibility;
-
-// pipeToShutdown
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETOSHUTDOWN 1
-extern const char* const s_readableStreamInternalsPipeToShutdownCode;
-extern const int s_readableStreamInternalsPipeToShutdownCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToShutdownCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToShutdownCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToShutdownCodeImplementationVisibility;
-
-// pipeToFinalize
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_PIPETOFINALIZE 1
-extern const char* const s_readableStreamInternalsPipeToFinalizeCode;
-extern const int s_readableStreamInternalsPipeToFinalizeCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsPipeToFinalizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsPipeToFinalizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsPipeToFinalizeCodeImplementationVisibility;
-
-// readableStreamTee
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTEE 1
-extern const char* const s_readableStreamInternalsReadableStreamTeeCode;
-extern const int s_readableStreamInternalsReadableStreamTeeCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeCodeImplementationVisibility;
-
-// readableStreamTeePullFunction
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTEEPULLFUNCTION 1
-extern const char* const s_readableStreamInternalsReadableStreamTeePullFunctionCode;
-extern const int s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeePullFunctionCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeePullFunctionCodeImplementationVisibility;
-
-// readableStreamTeeBranch1CancelFunction
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTEEBRANCH1CANCELFUNCTION 1
-extern const char* const s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCode;
-extern const int s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeImplementationVisibility;
-
-// readableStreamTeeBranch2CancelFunction
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTEEBRANCH2CANCELFUNCTION 1
-extern const char* const s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCode;
-extern const int s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeImplementationVisibility;
-
-// isReadableStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAM 1
-extern const char* const s_readableStreamInternalsIsReadableStreamCode;
-extern const int s_readableStreamInternalsIsReadableStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamCodeImplementationVisibility;
-
-// isReadableStreamDefaultReader
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMDEFAULTREADER 1
-extern const char* const s_readableStreamInternalsIsReadableStreamDefaultReaderCode;
-extern const int s_readableStreamInternalsIsReadableStreamDefaultReaderCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDefaultReaderCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamDefaultReaderCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamDefaultReaderCodeImplementationVisibility;
-
-// isReadableStreamDefaultController
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMDEFAULTCONTROLLER 1
-extern const char* const s_readableStreamInternalsIsReadableStreamDefaultControllerCode;
-extern const int s_readableStreamInternalsIsReadableStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamDefaultControllerCodeImplementationVisibility;
-
-// readDirectStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READDIRECTSTREAM 1
-extern const char* const s_readableStreamInternalsReadDirectStreamCode;
-extern const int s_readableStreamInternalsReadDirectStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadDirectStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadDirectStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadDirectStreamCodeImplementationVisibility;
-
-// assignToStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ASSIGNTOSTREAM 1
-extern const char* const s_readableStreamInternalsAssignToStreamCode;
-extern const int s_readableStreamInternalsAssignToStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsAssignToStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsAssignToStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsAssignToStreamCodeImplementationVisibility;
-
-// readStreamIntoSink
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READSTREAMINTOSINK 1
-extern const char* const s_readableStreamInternalsReadStreamIntoSinkCode;
-extern const int s_readableStreamInternalsReadStreamIntoSinkCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadStreamIntoSinkCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadStreamIntoSinkCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadStreamIntoSinkCodeImplementationVisibility;
-
-// handleDirectStreamError
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_HANDLEDIRECTSTREAMERROR 1
-extern const char* const s_readableStreamInternalsHandleDirectStreamErrorCode;
-extern const int s_readableStreamInternalsHandleDirectStreamErrorCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsHandleDirectStreamErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsHandleDirectStreamErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsHandleDirectStreamErrorCodeImplementationVisibility;
-
-// handleDirectStreamErrorReject
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_HANDLEDIRECTSTREAMERRORREJECT 1
-extern const char* const s_readableStreamInternalsHandleDirectStreamErrorRejectCode;
-extern const int s_readableStreamInternalsHandleDirectStreamErrorRejectCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsHandleDirectStreamErrorRejectCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsHandleDirectStreamErrorRejectCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsHandleDirectStreamErrorRejectCodeImplementationVisibility;
-
-// onPullDirectStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONPULLDIRECTSTREAM 1
-extern const char* const s_readableStreamInternalsOnPullDirectStreamCode;
-extern const int s_readableStreamInternalsOnPullDirectStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsOnPullDirectStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsOnPullDirectStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsOnPullDirectStreamCodeImplementationVisibility;
-
-// noopDoneFunction
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_NOOPDONEFUNCTION 1
-extern const char* const s_readableStreamInternalsNoopDoneFunctionCode;
-extern const int s_readableStreamInternalsNoopDoneFunctionCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsNoopDoneFunctionCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsNoopDoneFunctionCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsNoopDoneFunctionCodeImplementationVisibility;
-
-// onReadableStreamDirectControllerClosed
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONREADABLESTREAMDIRECTCONTROLLERCLOSED 1
-extern const char* const s_readableStreamInternalsOnReadableStreamDirectControllerClosedCode;
-extern const int s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeImplementationVisibility;
-
-// onCloseDirectStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONCLOSEDIRECTSTREAM 1
-extern const char* const s_readableStreamInternalsOnCloseDirectStreamCode;
-extern const int s_readableStreamInternalsOnCloseDirectStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsOnCloseDirectStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsOnCloseDirectStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsOnCloseDirectStreamCodeImplementationVisibility;
-
-// onFlushDirectStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ONFLUSHDIRECTSTREAM 1
-extern const char* const s_readableStreamInternalsOnFlushDirectStreamCode;
-extern const int s_readableStreamInternalsOnFlushDirectStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsOnFlushDirectStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsOnFlushDirectStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsOnFlushDirectStreamCodeImplementationVisibility;
-
-// createTextStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_CREATETEXTSTREAM 1
-extern const char* const s_readableStreamInternalsCreateTextStreamCode;
-extern const int s_readableStreamInternalsCreateTextStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsCreateTextStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsCreateTextStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsCreateTextStreamCodeImplementationVisibility;
-
-// initializeTextStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_INITIALIZETEXTSTREAM 1
-extern const char* const s_readableStreamInternalsInitializeTextStreamCode;
-extern const int s_readableStreamInternalsInitializeTextStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsInitializeTextStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsInitializeTextStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsInitializeTextStreamCodeImplementationVisibility;
-
-// initializeArrayStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_INITIALIZEARRAYSTREAM 1
-extern const char* const s_readableStreamInternalsInitializeArrayStreamCode;
-extern const int s_readableStreamInternalsInitializeArrayStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayStreamCodeImplementationVisibility;
-
-// initializeArrayBufferStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_INITIALIZEARRAYBUFFERSTREAM 1
-extern const char* const s_readableStreamInternalsInitializeArrayBufferStreamCode;
-extern const int s_readableStreamInternalsInitializeArrayBufferStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsInitializeArrayBufferStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsInitializeArrayBufferStreamCodeImplementationVisibility;
-
-// readableStreamError
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMERROR 1
-extern const char* const s_readableStreamInternalsReadableStreamErrorCode;
-extern const int s_readableStreamInternalsReadableStreamErrorCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamErrorCodeImplementationVisibility;
-
-// readableStreamDefaultControllerShouldCallPull
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERSHOULDCALLPULL 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeImplementationVisibility;
-
-// readableStreamDefaultControllerCallPullIfNeeded
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERCALLPULLIFNEEDED 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeImplementationVisibility;
-
-// isReadableStreamLocked
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMLOCKED 1
-extern const char* const s_readableStreamInternalsIsReadableStreamLockedCode;
-extern const int s_readableStreamInternalsIsReadableStreamLockedCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamLockedCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamLockedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamLockedCodeImplementationVisibility;
-
-// readableStreamDefaultControllerGetDesiredSize
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERGETDESIREDSIZE 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeImplementationVisibility;
-
-// readableStreamReaderGenericCancel
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMREADERGENERICCANCEL 1
-extern const char* const s_readableStreamInternalsReadableStreamReaderGenericCancelCode;
-extern const int s_readableStreamInternalsReadableStreamReaderGenericCancelCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericCancelCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericCancelCodeImplementationVisibility;
-
-// readableStreamCancel
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMCANCEL 1
-extern const char* const s_readableStreamInternalsReadableStreamCancelCode;
-extern const int s_readableStreamInternalsReadableStreamCancelCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCancelCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCancelCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCancelCodeImplementationVisibility;
-
-// readableStreamDefaultControllerCancel
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERCANCEL 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerCancelCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeImplementationVisibility;
-
-// readableStreamDefaultControllerPull
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERPULL 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerPullCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerPullCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerPullCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerPullCodeImplementationVisibility;
-
-// readableStreamDefaultControllerClose
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERCLOSE 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerCloseCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeImplementationVisibility;
-
-// readableStreamClose
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMCLOSE 1
-extern const char* const s_readableStreamInternalsReadableStreamCloseCode;
-extern const int s_readableStreamInternalsReadableStreamCloseCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamCloseCodeImplementationVisibility;
-
-// readableStreamFulfillReadRequest
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMFULFILLREADREQUEST 1
-extern const char* const s_readableStreamInternalsReadableStreamFulfillReadRequestCode;
-extern const int s_readableStreamInternalsReadableStreamFulfillReadRequestCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamFulfillReadRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamFulfillReadRequestCodeImplementationVisibility;
-
-// readableStreamDefaultControllerEnqueue
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERENQUEUE 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeImplementationVisibility;
-
-// readableStreamDefaultReaderRead
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTREADERREAD 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultReaderReadCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultReaderReadCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultReaderReadCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultReaderReadCodeImplementationVisibility;
-
-// readableStreamAddReadRequest
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMADDREADREQUEST 1
-extern const char* const s_readableStreamInternalsReadableStreamAddReadRequestCode;
-extern const int s_readableStreamInternalsReadableStreamAddReadRequestCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamAddReadRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamAddReadRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamAddReadRequestCodeImplementationVisibility;
-
-// isReadableStreamDisturbed
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_ISREADABLESTREAMDISTURBED 1
-extern const char* const s_readableStreamInternalsIsReadableStreamDisturbedCode;
-extern const int s_readableStreamInternalsIsReadableStreamDisturbedCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsIsReadableStreamDisturbedCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsIsReadableStreamDisturbedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsIsReadableStreamDisturbedCodeImplementationVisibility;
-
-// readableStreamReaderGenericRelease
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMREADERGENERICRELEASE 1
-extern const char* const s_readableStreamInternalsReadableStreamReaderGenericReleaseCode;
-extern const int s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeImplementationVisibility;
-
-// readableStreamDefaultControllerCanCloseOrEnqueue
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFAULTCONTROLLERCANCLOSEORENQUEUE 1
-extern const char* const s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCode;
-extern const int s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeImplementationVisibility;
-
-// lazyLoadStream
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_LAZYLOADSTREAM 1
-extern const char* const s_readableStreamInternalsLazyLoadStreamCode;
-extern const int s_readableStreamInternalsLazyLoadStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsLazyLoadStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsLazyLoadStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsLazyLoadStreamCodeImplementationVisibility;
-
-// readableStreamIntoArray
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMINTOARRAY 1
-extern const char* const s_readableStreamInternalsReadableStreamIntoArrayCode;
-extern const int s_readableStreamInternalsReadableStreamIntoArrayCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoArrayCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoArrayCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoArrayCodeImplementationVisibility;
-
-// readableStreamIntoText
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMINTOTEXT 1
-extern const char* const s_readableStreamInternalsReadableStreamIntoTextCode;
-extern const int s_readableStreamInternalsReadableStreamIntoTextCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamIntoTextCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamIntoTextCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamIntoTextCodeImplementationVisibility;
-
-// readableStreamToArrayBufferDirect
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTOARRAYBUFFERDIRECT 1
-extern const char* const s_readableStreamInternalsReadableStreamToArrayBufferDirectCode;
-extern const int s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeImplementationVisibility;
-
-// readableStreamToTextDirect
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTOTEXTDIRECT 1
-extern const char* const s_readableStreamInternalsReadableStreamToTextDirectCode;
-extern const int s_readableStreamInternalsReadableStreamToTextDirectCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToTextDirectCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToTextDirectCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToTextDirectCodeImplementationVisibility;
-
-// readableStreamToArrayDirect
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMTOARRAYDIRECT 1
-extern const char* const s_readableStreamInternalsReadableStreamToArrayDirectCode;
-extern const int s_readableStreamInternalsReadableStreamToArrayDirectCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamToArrayDirectCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamToArrayDirectCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamToArrayDirectCodeImplementationVisibility;
-
-// readableStreamDefineLazyIterators
-#define WEBCORE_BUILTIN_READABLESTREAMINTERNALS_READABLESTREAMDEFINELAZYITERATORS 1
-extern const char* const s_readableStreamInternalsReadableStreamDefineLazyIteratorsCode;
-extern const int s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_DATA(macro) \
- macro(readableStreamReaderGenericInitialize, readableStreamInternalsReadableStreamReaderGenericInitialize, 2) \
- macro(privateInitializeReadableStreamDefaultController, readableStreamInternalsPrivateInitializeReadableStreamDefaultController, 4) \
- macro(readableStreamDefaultControllerError, readableStreamInternalsReadableStreamDefaultControllerError, 2) \
- macro(readableStreamPipeTo, readableStreamInternalsReadableStreamPipeTo, 2) \
- macro(acquireReadableStreamDefaultReader, readableStreamInternalsAcquireReadableStreamDefaultReader, 1) \
- macro(setupReadableStreamDefaultController, readableStreamInternalsSetupReadableStreamDefaultController, 8) \
- macro(createReadableStreamController, readableStreamInternalsCreateReadableStreamController, 3) \
- macro(readableStreamDefaultControllerStart, readableStreamInternalsReadableStreamDefaultControllerStart, 1) \
- macro(readableStreamPipeToWritableStream, readableStreamInternalsReadableStreamPipeToWritableStream, 7) \
- macro(pipeToLoop, readableStreamInternalsPipeToLoop, 1) \
- macro(pipeToDoReadWrite, readableStreamInternalsPipeToDoReadWrite, 1) \
- macro(pipeToErrorsMustBePropagatedForward, readableStreamInternalsPipeToErrorsMustBePropagatedForward, 1) \
- macro(pipeToErrorsMustBePropagatedBackward, readableStreamInternalsPipeToErrorsMustBePropagatedBackward, 1) \
- macro(pipeToClosingMustBePropagatedForward, readableStreamInternalsPipeToClosingMustBePropagatedForward, 1) \
- macro(pipeToClosingMustBePropagatedBackward, readableStreamInternalsPipeToClosingMustBePropagatedBackward, 1) \
- macro(pipeToShutdownWithAction, readableStreamInternalsPipeToShutdownWithAction, 2) \
- macro(pipeToShutdown, readableStreamInternalsPipeToShutdown, 1) \
- macro(pipeToFinalize, readableStreamInternalsPipeToFinalize, 1) \
- macro(readableStreamTee, readableStreamInternalsReadableStreamTee, 2) \
- macro(readableStreamTeePullFunction, readableStreamInternalsReadableStreamTeePullFunction, 3) \
- macro(readableStreamTeeBranch1CancelFunction, readableStreamInternalsReadableStreamTeeBranch1CancelFunction, 2) \
- macro(readableStreamTeeBranch2CancelFunction, readableStreamInternalsReadableStreamTeeBranch2CancelFunction, 2) \
- macro(isReadableStream, readableStreamInternalsIsReadableStream, 1) \
- macro(isReadableStreamDefaultReader, readableStreamInternalsIsReadableStreamDefaultReader, 1) \
- macro(isReadableStreamDefaultController, readableStreamInternalsIsReadableStreamDefaultController, 1) \
- macro(readDirectStream, readableStreamInternalsReadDirectStream, 3) \
- macro(assignToStream, readableStreamInternalsAssignToStream, 2) \
- macro(readStreamIntoSink, readableStreamInternalsReadStreamIntoSink, 3) \
- macro(handleDirectStreamError, readableStreamInternalsHandleDirectStreamError, 1) \
- macro(handleDirectStreamErrorReject, readableStreamInternalsHandleDirectStreamErrorReject, 1) \
- macro(onPullDirectStream, readableStreamInternalsOnPullDirectStream, 1) \
- macro(noopDoneFunction, readableStreamInternalsNoopDoneFunction, 0) \
- macro(onReadableStreamDirectControllerClosed, readableStreamInternalsOnReadableStreamDirectControllerClosed, 1) \
- macro(onCloseDirectStream, readableStreamInternalsOnCloseDirectStream, 1) \
- macro(onFlushDirectStream, readableStreamInternalsOnFlushDirectStream, 0) \
- macro(createTextStream, readableStreamInternalsCreateTextStream, 1) \
- macro(initializeTextStream, readableStreamInternalsInitializeTextStream, 2) \
- macro(initializeArrayStream, readableStreamInternalsInitializeArrayStream, 2) \
- macro(initializeArrayBufferStream, readableStreamInternalsInitializeArrayBufferStream, 2) \
- macro(readableStreamError, readableStreamInternalsReadableStreamError, 2) \
- macro(readableStreamDefaultControllerShouldCallPull, readableStreamInternalsReadableStreamDefaultControllerShouldCallPull, 1) \
- macro(readableStreamDefaultControllerCallPullIfNeeded, readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeeded, 1) \
- macro(isReadableStreamLocked, readableStreamInternalsIsReadableStreamLocked, 1) \
- macro(readableStreamDefaultControllerGetDesiredSize, readableStreamInternalsReadableStreamDefaultControllerGetDesiredSize, 1) \
- macro(readableStreamReaderGenericCancel, readableStreamInternalsReadableStreamReaderGenericCancel, 2) \
- macro(readableStreamCancel, readableStreamInternalsReadableStreamCancel, 2) \
- macro(readableStreamDefaultControllerCancel, readableStreamInternalsReadableStreamDefaultControllerCancel, 2) \
- macro(readableStreamDefaultControllerPull, readableStreamInternalsReadableStreamDefaultControllerPull, 1) \
- macro(readableStreamDefaultControllerClose, readableStreamInternalsReadableStreamDefaultControllerClose, 1) \
- macro(readableStreamClose, readableStreamInternalsReadableStreamClose, 1) \
- macro(readableStreamFulfillReadRequest, readableStreamInternalsReadableStreamFulfillReadRequest, 3) \
- macro(readableStreamDefaultControllerEnqueue, readableStreamInternalsReadableStreamDefaultControllerEnqueue, 2) \
- macro(readableStreamDefaultReaderRead, readableStreamInternalsReadableStreamDefaultReaderRead, 1) \
- macro(readableStreamAddReadRequest, readableStreamInternalsReadableStreamAddReadRequest, 1) \
- macro(isReadableStreamDisturbed, readableStreamInternalsIsReadableStreamDisturbed, 1) \
- macro(readableStreamReaderGenericRelease, readableStreamInternalsReadableStreamReaderGenericRelease, 1) \
- macro(readableStreamDefaultControllerCanCloseOrEnqueue, readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueue, 1) \
- macro(lazyLoadStream, readableStreamInternalsLazyLoadStream, 2) \
- macro(readableStreamIntoArray, readableStreamInternalsReadableStreamIntoArray, 1) \
- macro(readableStreamIntoText, readableStreamInternalsReadableStreamIntoText, 1) \
- macro(readableStreamToArrayBufferDirect, readableStreamInternalsReadableStreamToArrayBufferDirect, 2) \
- macro(readableStreamToTextDirect, readableStreamInternalsReadableStreamToTextDirect, 2) \
- macro(readableStreamToArrayDirect, readableStreamInternalsReadableStreamToArrayDirect, 2) \
- macro(readableStreamDefineLazyIterators, readableStreamInternalsReadableStreamDefineLazyIterators, 1) \
-
-#define WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(macro) \
- macro(readableStreamInternalsReadableStreamReaderGenericInitializeCode, readableStreamReaderGenericInitialize, ASCIILiteral(), s_readableStreamInternalsReadableStreamReaderGenericInitializeCodeLength) \
- macro(readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCode, privateInitializeReadableStreamDefaultController, ASCIILiteral(), s_readableStreamInternalsPrivateInitializeReadableStreamDefaultControllerCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerErrorCode, readableStreamDefaultControllerError, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerErrorCodeLength) \
- macro(readableStreamInternalsReadableStreamPipeToCode, readableStreamPipeTo, ASCIILiteral(), s_readableStreamInternalsReadableStreamPipeToCodeLength) \
- macro(readableStreamInternalsAcquireReadableStreamDefaultReaderCode, acquireReadableStreamDefaultReader, ASCIILiteral(), s_readableStreamInternalsAcquireReadableStreamDefaultReaderCodeLength) \
- macro(readableStreamInternalsSetupReadableStreamDefaultControllerCode, setupReadableStreamDefaultController, ASCIILiteral(), s_readableStreamInternalsSetupReadableStreamDefaultControllerCodeLength) \
- macro(readableStreamInternalsCreateReadableStreamControllerCode, createReadableStreamController, ASCIILiteral(), s_readableStreamInternalsCreateReadableStreamControllerCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerStartCode, readableStreamDefaultControllerStart, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerStartCodeLength) \
- macro(readableStreamInternalsReadableStreamPipeToWritableStreamCode, readableStreamPipeToWritableStream, ASCIILiteral(), s_readableStreamInternalsReadableStreamPipeToWritableStreamCodeLength) \
- macro(readableStreamInternalsPipeToLoopCode, pipeToLoop, ASCIILiteral(), s_readableStreamInternalsPipeToLoopCodeLength) \
- macro(readableStreamInternalsPipeToDoReadWriteCode, pipeToDoReadWrite, ASCIILiteral(), s_readableStreamInternalsPipeToDoReadWriteCodeLength) \
- macro(readableStreamInternalsPipeToErrorsMustBePropagatedForwardCode, pipeToErrorsMustBePropagatedForward, ASCIILiteral(), s_readableStreamInternalsPipeToErrorsMustBePropagatedForwardCodeLength) \
- macro(readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCode, pipeToErrorsMustBePropagatedBackward, ASCIILiteral(), s_readableStreamInternalsPipeToErrorsMustBePropagatedBackwardCodeLength) \
- macro(readableStreamInternalsPipeToClosingMustBePropagatedForwardCode, pipeToClosingMustBePropagatedForward, ASCIILiteral(), s_readableStreamInternalsPipeToClosingMustBePropagatedForwardCodeLength) \
- macro(readableStreamInternalsPipeToClosingMustBePropagatedBackwardCode, pipeToClosingMustBePropagatedBackward, ASCIILiteral(), s_readableStreamInternalsPipeToClosingMustBePropagatedBackwardCodeLength) \
- macro(readableStreamInternalsPipeToShutdownWithActionCode, pipeToShutdownWithAction, ASCIILiteral(), s_readableStreamInternalsPipeToShutdownWithActionCodeLength) \
- macro(readableStreamInternalsPipeToShutdownCode, pipeToShutdown, ASCIILiteral(), s_readableStreamInternalsPipeToShutdownCodeLength) \
- macro(readableStreamInternalsPipeToFinalizeCode, pipeToFinalize, ASCIILiteral(), s_readableStreamInternalsPipeToFinalizeCodeLength) \
- macro(readableStreamInternalsReadableStreamTeeCode, readableStreamTee, ASCIILiteral(), s_readableStreamInternalsReadableStreamTeeCodeLength) \
- macro(readableStreamInternalsReadableStreamTeePullFunctionCode, readableStreamTeePullFunction, ASCIILiteral(), s_readableStreamInternalsReadableStreamTeePullFunctionCodeLength) \
- macro(readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCode, readableStreamTeeBranch1CancelFunction, ASCIILiteral(), s_readableStreamInternalsReadableStreamTeeBranch1CancelFunctionCodeLength) \
- macro(readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCode, readableStreamTeeBranch2CancelFunction, ASCIILiteral(), s_readableStreamInternalsReadableStreamTeeBranch2CancelFunctionCodeLength) \
- macro(readableStreamInternalsIsReadableStreamCode, isReadableStream, ASCIILiteral(), s_readableStreamInternalsIsReadableStreamCodeLength) \
- macro(readableStreamInternalsIsReadableStreamDefaultReaderCode, isReadableStreamDefaultReader, ASCIILiteral(), s_readableStreamInternalsIsReadableStreamDefaultReaderCodeLength) \
- macro(readableStreamInternalsIsReadableStreamDefaultControllerCode, isReadableStreamDefaultController, ASCIILiteral(), s_readableStreamInternalsIsReadableStreamDefaultControllerCodeLength) \
- macro(readableStreamInternalsReadDirectStreamCode, readDirectStream, ASCIILiteral(), s_readableStreamInternalsReadDirectStreamCodeLength) \
- macro(readableStreamInternalsAssignToStreamCode, assignToStream, ASCIILiteral(), s_readableStreamInternalsAssignToStreamCodeLength) \
- macro(readableStreamInternalsReadStreamIntoSinkCode, readStreamIntoSink, ASCIILiteral(), s_readableStreamInternalsReadStreamIntoSinkCodeLength) \
- macro(readableStreamInternalsHandleDirectStreamErrorCode, handleDirectStreamError, ASCIILiteral(), s_readableStreamInternalsHandleDirectStreamErrorCodeLength) \
- macro(readableStreamInternalsHandleDirectStreamErrorRejectCode, handleDirectStreamErrorReject, ASCIILiteral(), s_readableStreamInternalsHandleDirectStreamErrorRejectCodeLength) \
- macro(readableStreamInternalsOnPullDirectStreamCode, onPullDirectStream, ASCIILiteral(), s_readableStreamInternalsOnPullDirectStreamCodeLength) \
- macro(readableStreamInternalsNoopDoneFunctionCode, noopDoneFunction, ASCIILiteral(), s_readableStreamInternalsNoopDoneFunctionCodeLength) \
- macro(readableStreamInternalsOnReadableStreamDirectControllerClosedCode, onReadableStreamDirectControllerClosed, ASCIILiteral(), s_readableStreamInternalsOnReadableStreamDirectControllerClosedCodeLength) \
- macro(readableStreamInternalsOnCloseDirectStreamCode, onCloseDirectStream, ASCIILiteral(), s_readableStreamInternalsOnCloseDirectStreamCodeLength) \
- macro(readableStreamInternalsOnFlushDirectStreamCode, onFlushDirectStream, ASCIILiteral(), s_readableStreamInternalsOnFlushDirectStreamCodeLength) \
- macro(readableStreamInternalsCreateTextStreamCode, createTextStream, ASCIILiteral(), s_readableStreamInternalsCreateTextStreamCodeLength) \
- macro(readableStreamInternalsInitializeTextStreamCode, initializeTextStream, ASCIILiteral(), s_readableStreamInternalsInitializeTextStreamCodeLength) \
- macro(readableStreamInternalsInitializeArrayStreamCode, initializeArrayStream, ASCIILiteral(), s_readableStreamInternalsInitializeArrayStreamCodeLength) \
- macro(readableStreamInternalsInitializeArrayBufferStreamCode, initializeArrayBufferStream, ASCIILiteral(), s_readableStreamInternalsInitializeArrayBufferStreamCodeLength) \
- macro(readableStreamInternalsReadableStreamErrorCode, readableStreamError, ASCIILiteral(), s_readableStreamInternalsReadableStreamErrorCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCode, readableStreamDefaultControllerShouldCallPull, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerShouldCallPullCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCode, readableStreamDefaultControllerCallPullIfNeeded, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerCallPullIfNeededCodeLength) \
- macro(readableStreamInternalsIsReadableStreamLockedCode, isReadableStreamLocked, ASCIILiteral(), s_readableStreamInternalsIsReadableStreamLockedCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCode, readableStreamDefaultControllerGetDesiredSize, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerGetDesiredSizeCodeLength) \
- macro(readableStreamInternalsReadableStreamReaderGenericCancelCode, readableStreamReaderGenericCancel, ASCIILiteral(), s_readableStreamInternalsReadableStreamReaderGenericCancelCodeLength) \
- macro(readableStreamInternalsReadableStreamCancelCode, readableStreamCancel, ASCIILiteral(), s_readableStreamInternalsReadableStreamCancelCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerCancelCode, readableStreamDefaultControllerCancel, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerCancelCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerPullCode, readableStreamDefaultControllerPull, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerPullCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerCloseCode, readableStreamDefaultControllerClose, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerCloseCodeLength) \
- macro(readableStreamInternalsReadableStreamCloseCode, readableStreamClose, ASCIILiteral(), s_readableStreamInternalsReadableStreamCloseCodeLength) \
- macro(readableStreamInternalsReadableStreamFulfillReadRequestCode, readableStreamFulfillReadRequest, ASCIILiteral(), s_readableStreamInternalsReadableStreamFulfillReadRequestCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerEnqueueCode, readableStreamDefaultControllerEnqueue, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerEnqueueCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultReaderReadCode, readableStreamDefaultReaderRead, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultReaderReadCodeLength) \
- macro(readableStreamInternalsReadableStreamAddReadRequestCode, readableStreamAddReadRequest, ASCIILiteral(), s_readableStreamInternalsReadableStreamAddReadRequestCodeLength) \
- macro(readableStreamInternalsIsReadableStreamDisturbedCode, isReadableStreamDisturbed, ASCIILiteral(), s_readableStreamInternalsIsReadableStreamDisturbedCodeLength) \
- macro(readableStreamInternalsReadableStreamReaderGenericReleaseCode, readableStreamReaderGenericRelease, ASCIILiteral(), s_readableStreamInternalsReadableStreamReaderGenericReleaseCodeLength) \
- macro(readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCode, readableStreamDefaultControllerCanCloseOrEnqueue, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefaultControllerCanCloseOrEnqueueCodeLength) \
- macro(readableStreamInternalsLazyLoadStreamCode, lazyLoadStream, ASCIILiteral(), s_readableStreamInternalsLazyLoadStreamCodeLength) \
- macro(readableStreamInternalsReadableStreamIntoArrayCode, readableStreamIntoArray, ASCIILiteral(), s_readableStreamInternalsReadableStreamIntoArrayCodeLength) \
- macro(readableStreamInternalsReadableStreamIntoTextCode, readableStreamIntoText, ASCIILiteral(), s_readableStreamInternalsReadableStreamIntoTextCodeLength) \
- macro(readableStreamInternalsReadableStreamToArrayBufferDirectCode, readableStreamToArrayBufferDirect, ASCIILiteral(), s_readableStreamInternalsReadableStreamToArrayBufferDirectCodeLength) \
- macro(readableStreamInternalsReadableStreamToTextDirectCode, readableStreamToTextDirect, ASCIILiteral(), s_readableStreamInternalsReadableStreamToTextDirectCodeLength) \
- macro(readableStreamInternalsReadableStreamToArrayDirectCode, readableStreamToArrayDirect, ASCIILiteral(), s_readableStreamInternalsReadableStreamToArrayDirectCodeLength) \
- macro(readableStreamInternalsReadableStreamDefineLazyIteratorsCode, readableStreamDefineLazyIterators, ASCIILiteral(), s_readableStreamInternalsReadableStreamDefineLazyIteratorsCodeLength) \
-
-#define WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(macro) \
- macro(readableStreamReaderGenericInitialize) \
- macro(privateInitializeReadableStreamDefaultController) \
- macro(readableStreamDefaultControllerError) \
- macro(readableStreamPipeTo) \
- macro(acquireReadableStreamDefaultReader) \
- macro(setupReadableStreamDefaultController) \
- macro(createReadableStreamController) \
- macro(readableStreamDefaultControllerStart) \
- macro(readableStreamPipeToWritableStream) \
- macro(pipeToLoop) \
- macro(pipeToDoReadWrite) \
- macro(pipeToErrorsMustBePropagatedForward) \
- macro(pipeToErrorsMustBePropagatedBackward) \
- macro(pipeToClosingMustBePropagatedForward) \
- macro(pipeToClosingMustBePropagatedBackward) \
- macro(pipeToShutdownWithAction) \
- macro(pipeToShutdown) \
- macro(pipeToFinalize) \
- macro(readableStreamTee) \
- macro(readableStreamTeePullFunction) \
- macro(readableStreamTeeBranch1CancelFunction) \
- macro(readableStreamTeeBranch2CancelFunction) \
- macro(isReadableStream) \
- macro(isReadableStreamDefaultReader) \
- macro(isReadableStreamDefaultController) \
- macro(readDirectStream) \
- macro(assignToStream) \
- macro(readStreamIntoSink) \
- macro(handleDirectStreamError) \
- macro(handleDirectStreamErrorReject) \
- macro(onPullDirectStream) \
- macro(noopDoneFunction) \
- macro(onReadableStreamDirectControllerClosed) \
- macro(onCloseDirectStream) \
- macro(onFlushDirectStream) \
- macro(createTextStream) \
- macro(initializeTextStream) \
- macro(initializeArrayStream) \
- macro(initializeArrayBufferStream) \
- macro(readableStreamError) \
- macro(readableStreamDefaultControllerShouldCallPull) \
- macro(readableStreamDefaultControllerCallPullIfNeeded) \
- macro(isReadableStreamLocked) \
- macro(readableStreamDefaultControllerGetDesiredSize) \
- macro(readableStreamReaderGenericCancel) \
- macro(readableStreamCancel) \
- macro(readableStreamDefaultControllerCancel) \
- macro(readableStreamDefaultControllerPull) \
- macro(readableStreamDefaultControllerClose) \
- macro(readableStreamClose) \
- macro(readableStreamFulfillReadRequest) \
- macro(readableStreamDefaultControllerEnqueue) \
- macro(readableStreamDefaultReaderRead) \
- macro(readableStreamAddReadRequest) \
- macro(isReadableStreamDisturbed) \
- macro(readableStreamReaderGenericRelease) \
- macro(readableStreamDefaultControllerCanCloseOrEnqueue) \
- macro(lazyLoadStream) \
- macro(readableStreamIntoArray) \
- macro(readableStreamIntoText) \
- macro(readableStreamToArrayBufferDirect) \
- macro(readableStreamToTextDirect) \
- macro(readableStreamToArrayDirect) \
- macro(readableStreamDefineLazyIterators) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ReadableStreamInternalsBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ReadableStreamInternalsBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ReadableStreamInternalsBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ReadableStreamInternalsBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-class ReadableStreamInternalsBuiltinFunctions {
-public:
- explicit ReadableStreamInternalsBuiltinFunctions(JSC::VM& vm) : m_vm(vm) { }
-
- void init(JSC::JSGlobalObject&);
- template<typename Visitor> void visit(Visitor&);
-
-public:
- JSC::VM& m_vm;
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \
- JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function;
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-};
-
-inline void ReadableStreamInternalsBuiltinFunctions::init(JSC::JSGlobalObject& globalObject)
-{
-#define EXPORT_FUNCTION(codeName, functionName, overriddenName, length) \
- m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, codeName##Generator(m_vm), &globalObject));
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_CODE(EXPORT_FUNCTION)
-#undef EXPORT_FUNCTION
-}
-
-template<typename Visitor>
-inline void ReadableStreamInternalsBuiltinFunctions::visit(Visitor& visitor)
-{
-#define VISIT_FUNCTION(name) visitor.append(m_##name##Function);
- WEBCORE_FOREACH_READABLESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION)
-#undef VISIT_FUNCTION
-}
-
-template void ReadableStreamInternalsBuiltinFunctions::visit(JSC::AbstractSlotVisitor&);
-template void ReadableStreamInternalsBuiltinFunctions::visit(JSC::SlotVisitor&);
- /* TransformStreamDefaultController.ts */
-// initializeTransformStreamDefaultController
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMDEFAULTCONTROLLER_INITIALIZETRANSFORMSTREAMDEFAULTCONTROLLER 1
-extern const char* const s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCode;
-extern const int s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeImplementationVisibility;
-
-// desiredSize
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMDEFAULTCONTROLLER_DESIREDSIZE 1
-extern const char* const s_transformStreamDefaultControllerDesiredSizeCode;
-extern const int s_transformStreamDefaultControllerDesiredSizeCodeLength;
-extern const JSC::ConstructAbility s_transformStreamDefaultControllerDesiredSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamDefaultControllerDesiredSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamDefaultControllerDesiredSizeCodeImplementationVisibility;
-
-// enqueue
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMDEFAULTCONTROLLER_ENQUEUE 1
-extern const char* const s_transformStreamDefaultControllerEnqueueCode;
-extern const int s_transformStreamDefaultControllerEnqueueCodeLength;
-extern const JSC::ConstructAbility s_transformStreamDefaultControllerEnqueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamDefaultControllerEnqueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamDefaultControllerEnqueueCodeImplementationVisibility;
-
-// error
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMDEFAULTCONTROLLER_ERROR 1
-extern const char* const s_transformStreamDefaultControllerErrorCode;
-extern const int s_transformStreamDefaultControllerErrorCodeLength;
-extern const JSC::ConstructAbility s_transformStreamDefaultControllerErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamDefaultControllerErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamDefaultControllerErrorCodeImplementationVisibility;
-
-// terminate
-#define WEBCORE_BUILTIN_TRANSFORMSTREAMDEFAULTCONTROLLER_TERMINATE 1
-extern const char* const s_transformStreamDefaultControllerTerminateCode;
-extern const int s_transformStreamDefaultControllerTerminateCodeLength;
-extern const JSC::ConstructAbility s_transformStreamDefaultControllerTerminateCodeConstructAbility;
-extern const JSC::ConstructorKind s_transformStreamDefaultControllerTerminateCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_transformStreamDefaultControllerTerminateCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_DATA(macro) \
- macro(initializeTransformStreamDefaultController, transformStreamDefaultControllerInitializeTransformStreamDefaultController, 0) \
- macro(desiredSize, transformStreamDefaultControllerDesiredSize, 0) \
- macro(enqueue, transformStreamDefaultControllerEnqueue, 1) \
- macro(error, transformStreamDefaultControllerError, 1) \
- macro(terminate, transformStreamDefaultControllerTerminate, 0) \
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_CODE(macro) \
- macro(transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCode, initializeTransformStreamDefaultController, ASCIILiteral(), s_transformStreamDefaultControllerInitializeTransformStreamDefaultControllerCodeLength) \
- macro(transformStreamDefaultControllerDesiredSizeCode, desiredSize, "get desiredSize"_s, s_transformStreamDefaultControllerDesiredSizeCodeLength) \
- macro(transformStreamDefaultControllerEnqueueCode, enqueue, ASCIILiteral(), s_transformStreamDefaultControllerEnqueueCodeLength) \
- macro(transformStreamDefaultControllerErrorCode, error, ASCIILiteral(), s_transformStreamDefaultControllerErrorCodeLength) \
- macro(transformStreamDefaultControllerTerminateCode, terminate, ASCIILiteral(), s_transformStreamDefaultControllerTerminateCodeLength) \
-
-#define WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeTransformStreamDefaultController) \
- macro(desiredSize) \
- macro(enqueue) \
- macro(error) \
- macro(terminate) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class TransformStreamDefaultControllerBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit TransformStreamDefaultControllerBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* TransformStreamDefaultControllerBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void TransformStreamDefaultControllerBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_TRANSFORMSTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ReadableStreamBYOBReader.ts */
-// initializeReadableStreamBYOBReader
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREADER_INITIALIZEREADABLESTREAMBYOBREADER 1
-extern const char* const s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCode;
-extern const int s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeImplementationVisibility;
-
-// cancel
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREADER_CANCEL 1
-extern const char* const s_readableStreamBYOBReaderCancelCode;
-extern const int s_readableStreamBYOBReaderCancelCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBReaderCancelCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBReaderCancelCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBReaderCancelCodeImplementationVisibility;
-
-// read
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREADER_READ 1
-extern const char* const s_readableStreamBYOBReaderReadCode;
-extern const int s_readableStreamBYOBReaderReadCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBReaderReadCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBReaderReadCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBReaderReadCodeImplementationVisibility;
-
-// releaseLock
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREADER_RELEASELOCK 1
-extern const char* const s_readableStreamBYOBReaderReleaseLockCode;
-extern const int s_readableStreamBYOBReaderReleaseLockCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBReaderReleaseLockCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBReaderReleaseLockCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBReaderReleaseLockCodeImplementationVisibility;
-
-// closed
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREADER_CLOSED 1
-extern const char* const s_readableStreamBYOBReaderClosedCode;
-extern const int s_readableStreamBYOBReaderClosedCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBReaderClosedCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBReaderClosedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBReaderClosedCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_DATA(macro) \
- macro(initializeReadableStreamBYOBReader, readableStreamBYOBReaderInitializeReadableStreamBYOBReader, 1) \
- macro(cancel, readableStreamBYOBReaderCancel, 1) \
- macro(read, readableStreamBYOBReaderRead, 1) \
- macro(releaseLock, readableStreamBYOBReaderReleaseLock, 0) \
- macro(closed, readableStreamBYOBReaderClosed, 0) \
-
-#define WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_CODE(macro) \
- macro(readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCode, initializeReadableStreamBYOBReader, ASCIILiteral(), s_readableStreamBYOBReaderInitializeReadableStreamBYOBReaderCodeLength) \
- macro(readableStreamBYOBReaderCancelCode, cancel, ASCIILiteral(), s_readableStreamBYOBReaderCancelCodeLength) \
- macro(readableStreamBYOBReaderReadCode, read, ASCIILiteral(), s_readableStreamBYOBReaderReadCodeLength) \
- macro(readableStreamBYOBReaderReleaseLockCode, releaseLock, ASCIILiteral(), s_readableStreamBYOBReaderReleaseLockCodeLength) \
- macro(readableStreamBYOBReaderClosedCode, closed, "get closed"_s, s_readableStreamBYOBReaderClosedCodeLength) \
-
-#define WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeReadableStreamBYOBReader) \
- macro(cancel) \
- macro(read) \
- macro(releaseLock) \
- macro(closed) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ReadableStreamBYOBReaderBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ReadableStreamBYOBReaderBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ReadableStreamBYOBReaderBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ReadableStreamBYOBReaderBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_READABLESTREAMBYOBREADER_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* JSBufferConstructor.ts */
-// from
-#define WEBCORE_BUILTIN_JSBUFFERCONSTRUCTOR_FROM 1
-extern const char* const s_jsBufferConstructorFromCode;
-extern const int s_jsBufferConstructorFromCodeLength;
-extern const JSC::ConstructAbility s_jsBufferConstructorFromCodeConstructAbility;
-extern const JSC::ConstructorKind s_jsBufferConstructorFromCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_jsBufferConstructorFromCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_DATA(macro) \
- macro(from, jsBufferConstructorFrom, 1) \
-
-#define WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_CODE(macro) \
- macro(jsBufferConstructorFromCode, from, ASCIILiteral(), s_jsBufferConstructorFromCodeLength) \
-
-#define WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_FUNCTION_NAME(macro) \
- macro(from) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class JSBufferConstructorBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit JSBufferConstructorBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* JSBufferConstructorBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void JSBufferConstructorBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ReadableStreamDefaultReader.ts */
-// initializeReadableStreamDefaultReader
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTREADER_INITIALIZEREADABLESTREAMDEFAULTREADER 1
-extern const char* const s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCode;
-extern const int s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeImplementationVisibility;
-
-// cancel
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTREADER_CANCEL 1
-extern const char* const s_readableStreamDefaultReaderCancelCode;
-extern const int s_readableStreamDefaultReaderCancelCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultReaderCancelCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultReaderCancelCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultReaderCancelCodeImplementationVisibility;
-
-// readMany
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTREADER_READMANY 1
-extern const char* const s_readableStreamDefaultReaderReadManyCode;
-extern const int s_readableStreamDefaultReaderReadManyCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultReaderReadManyCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultReaderReadManyCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadManyCodeImplementationVisibility;
-
-// read
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTREADER_READ 1
-extern const char* const s_readableStreamDefaultReaderReadCode;
-extern const int s_readableStreamDefaultReaderReadCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultReaderReadCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultReaderReadCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultReaderReadCodeImplementationVisibility;
-
-// releaseLock
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTREADER_RELEASELOCK 1
-extern const char* const s_readableStreamDefaultReaderReleaseLockCode;
-extern const int s_readableStreamDefaultReaderReleaseLockCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultReaderReleaseLockCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultReaderReleaseLockCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultReaderReleaseLockCodeImplementationVisibility;
-
-// closed
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTREADER_CLOSED 1
-extern const char* const s_readableStreamDefaultReaderClosedCode;
-extern const int s_readableStreamDefaultReaderClosedCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultReaderClosedCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultReaderClosedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultReaderClosedCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_DATA(macro) \
- macro(initializeReadableStreamDefaultReader, readableStreamDefaultReaderInitializeReadableStreamDefaultReader, 1) \
- macro(cancel, readableStreamDefaultReaderCancel, 1) \
- macro(readMany, readableStreamDefaultReaderReadMany, 0) \
- macro(read, readableStreamDefaultReaderRead, 0) \
- macro(releaseLock, readableStreamDefaultReaderReleaseLock, 0) \
- macro(closed, readableStreamDefaultReaderClosed, 0) \
-
-#define WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_CODE(macro) \
- macro(readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCode, initializeReadableStreamDefaultReader, ASCIILiteral(), s_readableStreamDefaultReaderInitializeReadableStreamDefaultReaderCodeLength) \
- macro(readableStreamDefaultReaderCancelCode, cancel, ASCIILiteral(), s_readableStreamDefaultReaderCancelCodeLength) \
- macro(readableStreamDefaultReaderReadManyCode, readMany, ASCIILiteral(), s_readableStreamDefaultReaderReadManyCodeLength) \
- macro(readableStreamDefaultReaderReadCode, read, ASCIILiteral(), s_readableStreamDefaultReaderReadCodeLength) \
- macro(readableStreamDefaultReaderReleaseLockCode, releaseLock, ASCIILiteral(), s_readableStreamDefaultReaderReleaseLockCodeLength) \
- macro(readableStreamDefaultReaderClosedCode, closed, "get closed"_s, s_readableStreamDefaultReaderClosedCodeLength) \
-
-#define WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeReadableStreamDefaultReader) \
- macro(cancel) \
- macro(readMany) \
- macro(read) \
- macro(releaseLock) \
- macro(closed) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ReadableStreamDefaultReaderBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ReadableStreamDefaultReaderBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ReadableStreamDefaultReaderBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ReadableStreamDefaultReaderBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_READABLESTREAMDEFAULTREADER_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* StreamInternals.ts */
-// markPromiseAsHandled
-#define WEBCORE_BUILTIN_STREAMINTERNALS_MARKPROMISEASHANDLED 1
-extern const char* const s_streamInternalsMarkPromiseAsHandledCode;
-extern const int s_streamInternalsMarkPromiseAsHandledCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsMarkPromiseAsHandledCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsMarkPromiseAsHandledCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsMarkPromiseAsHandledCodeImplementationVisibility;
-
-// shieldingPromiseResolve
-#define WEBCORE_BUILTIN_STREAMINTERNALS_SHIELDINGPROMISERESOLVE 1
-extern const char* const s_streamInternalsShieldingPromiseResolveCode;
-extern const int s_streamInternalsShieldingPromiseResolveCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsShieldingPromiseResolveCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsShieldingPromiseResolveCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsShieldingPromiseResolveCodeImplementationVisibility;
-
-// promiseInvokeOrNoopMethodNoCatch
-#define WEBCORE_BUILTIN_STREAMINTERNALS_PROMISEINVOKEORNOOPMETHODNOCATCH 1
-extern const char* const s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCode;
-extern const int s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeImplementationVisibility;
-
-// promiseInvokeOrNoopNoCatch
-#define WEBCORE_BUILTIN_STREAMINTERNALS_PROMISEINVOKEORNOOPNOCATCH 1
-extern const char* const s_streamInternalsPromiseInvokeOrNoopNoCatchCode;
-extern const int s_streamInternalsPromiseInvokeOrNoopNoCatchCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrNoopNoCatchCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrNoopNoCatchCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrNoopNoCatchCodeImplementationVisibility;
-
-// promiseInvokeOrNoopMethod
-#define WEBCORE_BUILTIN_STREAMINTERNALS_PROMISEINVOKEORNOOPMETHOD 1
-extern const char* const s_streamInternalsPromiseInvokeOrNoopMethodCode;
-extern const int s_streamInternalsPromiseInvokeOrNoopMethodCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrNoopMethodCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrNoopMethodCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrNoopMethodCodeImplementationVisibility;
-
-// promiseInvokeOrNoop
-#define WEBCORE_BUILTIN_STREAMINTERNALS_PROMISEINVOKEORNOOP 1
-extern const char* const s_streamInternalsPromiseInvokeOrNoopCode;
-extern const int s_streamInternalsPromiseInvokeOrNoopCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrNoopCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrNoopCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrNoopCodeImplementationVisibility;
-
-// promiseInvokeOrFallbackOrNoop
-#define WEBCORE_BUILTIN_STREAMINTERNALS_PROMISEINVOKEORFALLBACKORNOOP 1
-extern const char* const s_streamInternalsPromiseInvokeOrFallbackOrNoopCode;
-extern const int s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeImplementationVisibility;
-
-// validateAndNormalizeQueuingStrategy
-#define WEBCORE_BUILTIN_STREAMINTERNALS_VALIDATEANDNORMALIZEQUEUINGSTRATEGY 1
-extern const char* const s_streamInternalsValidateAndNormalizeQueuingStrategyCode;
-extern const int s_streamInternalsValidateAndNormalizeQueuingStrategyCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsValidateAndNormalizeQueuingStrategyCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsValidateAndNormalizeQueuingStrategyCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsValidateAndNormalizeQueuingStrategyCodeImplementationVisibility;
-
-// createFIFO
-#define WEBCORE_BUILTIN_STREAMINTERNALS_CREATEFIFO 1
-extern const char* const s_streamInternalsCreateFIFOCode;
-extern const int s_streamInternalsCreateFIFOCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsCreateFIFOCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsCreateFIFOCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsCreateFIFOCodeImplementationVisibility;
-
-// newQueue
-#define WEBCORE_BUILTIN_STREAMINTERNALS_NEWQUEUE 1
-extern const char* const s_streamInternalsNewQueueCode;
-extern const int s_streamInternalsNewQueueCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsNewQueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsNewQueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsNewQueueCodeImplementationVisibility;
-
-// dequeueValue
-#define WEBCORE_BUILTIN_STREAMINTERNALS_DEQUEUEVALUE 1
-extern const char* const s_streamInternalsDequeueValueCode;
-extern const int s_streamInternalsDequeueValueCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsDequeueValueCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsDequeueValueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsDequeueValueCodeImplementationVisibility;
-
-// enqueueValueWithSize
-#define WEBCORE_BUILTIN_STREAMINTERNALS_ENQUEUEVALUEWITHSIZE 1
-extern const char* const s_streamInternalsEnqueueValueWithSizeCode;
-extern const int s_streamInternalsEnqueueValueWithSizeCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsEnqueueValueWithSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsEnqueueValueWithSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsEnqueueValueWithSizeCodeImplementationVisibility;
-
-// peekQueueValue
-#define WEBCORE_BUILTIN_STREAMINTERNALS_PEEKQUEUEVALUE 1
-extern const char* const s_streamInternalsPeekQueueValueCode;
-extern const int s_streamInternalsPeekQueueValueCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsPeekQueueValueCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsPeekQueueValueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsPeekQueueValueCodeImplementationVisibility;
-
-// resetQueue
-#define WEBCORE_BUILTIN_STREAMINTERNALS_RESETQUEUE 1
-extern const char* const s_streamInternalsResetQueueCode;
-extern const int s_streamInternalsResetQueueCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsResetQueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsResetQueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsResetQueueCodeImplementationVisibility;
-
-// extractSizeAlgorithm
-#define WEBCORE_BUILTIN_STREAMINTERNALS_EXTRACTSIZEALGORITHM 1
-extern const char* const s_streamInternalsExtractSizeAlgorithmCode;
-extern const int s_streamInternalsExtractSizeAlgorithmCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsExtractSizeAlgorithmCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsExtractSizeAlgorithmCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsExtractSizeAlgorithmCodeImplementationVisibility;
-
-// extractHighWaterMark
-#define WEBCORE_BUILTIN_STREAMINTERNALS_EXTRACTHIGHWATERMARK 1
-extern const char* const s_streamInternalsExtractHighWaterMarkCode;
-extern const int s_streamInternalsExtractHighWaterMarkCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsExtractHighWaterMarkCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsExtractHighWaterMarkCodeImplementationVisibility;
-
-// extractHighWaterMarkFromQueuingStrategyInit
-#define WEBCORE_BUILTIN_STREAMINTERNALS_EXTRACTHIGHWATERMARKFROMQUEUINGSTRATEGYINIT 1
-extern const char* const s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCode;
-extern const int s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeImplementationVisibility;
-
-// createFulfilledPromise
-#define WEBCORE_BUILTIN_STREAMINTERNALS_CREATEFULFILLEDPROMISE 1
-extern const char* const s_streamInternalsCreateFulfilledPromiseCode;
-extern const int s_streamInternalsCreateFulfilledPromiseCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsCreateFulfilledPromiseCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsCreateFulfilledPromiseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsCreateFulfilledPromiseCodeImplementationVisibility;
-
-// toDictionary
-#define WEBCORE_BUILTIN_STREAMINTERNALS_TODICTIONARY 1
-extern const char* const s_streamInternalsToDictionaryCode;
-extern const int s_streamInternalsToDictionaryCodeLength;
-extern const JSC::ConstructAbility s_streamInternalsToDictionaryCodeConstructAbility;
-extern const JSC::ConstructorKind s_streamInternalsToDictionaryCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_streamInternalsToDictionaryCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_DATA(macro) \
- macro(markPromiseAsHandled, streamInternalsMarkPromiseAsHandled, 1) \
- macro(shieldingPromiseResolve, streamInternalsShieldingPromiseResolve, 1) \
- macro(promiseInvokeOrNoopMethodNoCatch, streamInternalsPromiseInvokeOrNoopMethodNoCatch, 3) \
- macro(promiseInvokeOrNoopNoCatch, streamInternalsPromiseInvokeOrNoopNoCatch, 3) \
- macro(promiseInvokeOrNoopMethod, streamInternalsPromiseInvokeOrNoopMethod, 3) \
- macro(promiseInvokeOrNoop, streamInternalsPromiseInvokeOrNoop, 3) \
- macro(promiseInvokeOrFallbackOrNoop, streamInternalsPromiseInvokeOrFallbackOrNoop, 5) \
- macro(validateAndNormalizeQueuingStrategy, streamInternalsValidateAndNormalizeQueuingStrategy, 2) \
- macro(createFIFO, streamInternalsCreateFIFO, 0) \
- macro(newQueue, streamInternalsNewQueue, 0) \
- macro(dequeueValue, streamInternalsDequeueValue, 1) \
- macro(enqueueValueWithSize, streamInternalsEnqueueValueWithSize, 3) \
- macro(peekQueueValue, streamInternalsPeekQueueValue, 1) \
- macro(resetQueue, streamInternalsResetQueue, 1) \
- macro(extractSizeAlgorithm, streamInternalsExtractSizeAlgorithm, 1) \
- macro(extractHighWaterMark, streamInternalsExtractHighWaterMark, 2) \
- macro(extractHighWaterMarkFromQueuingStrategyInit, streamInternalsExtractHighWaterMarkFromQueuingStrategyInit, 1) \
- macro(createFulfilledPromise, streamInternalsCreateFulfilledPromise, 1) \
- macro(toDictionary, streamInternalsToDictionary, 3) \
-
-#define WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(macro) \
- macro(streamInternalsMarkPromiseAsHandledCode, markPromiseAsHandled, ASCIILiteral(), s_streamInternalsMarkPromiseAsHandledCodeLength) \
- macro(streamInternalsShieldingPromiseResolveCode, shieldingPromiseResolve, ASCIILiteral(), s_streamInternalsShieldingPromiseResolveCodeLength) \
- macro(streamInternalsPromiseInvokeOrNoopMethodNoCatchCode, promiseInvokeOrNoopMethodNoCatch, ASCIILiteral(), s_streamInternalsPromiseInvokeOrNoopMethodNoCatchCodeLength) \
- macro(streamInternalsPromiseInvokeOrNoopNoCatchCode, promiseInvokeOrNoopNoCatch, ASCIILiteral(), s_streamInternalsPromiseInvokeOrNoopNoCatchCodeLength) \
- macro(streamInternalsPromiseInvokeOrNoopMethodCode, promiseInvokeOrNoopMethod, ASCIILiteral(), s_streamInternalsPromiseInvokeOrNoopMethodCodeLength) \
- macro(streamInternalsPromiseInvokeOrNoopCode, promiseInvokeOrNoop, ASCIILiteral(), s_streamInternalsPromiseInvokeOrNoopCodeLength) \
- macro(streamInternalsPromiseInvokeOrFallbackOrNoopCode, promiseInvokeOrFallbackOrNoop, ASCIILiteral(), s_streamInternalsPromiseInvokeOrFallbackOrNoopCodeLength) \
- macro(streamInternalsValidateAndNormalizeQueuingStrategyCode, validateAndNormalizeQueuingStrategy, ASCIILiteral(), s_streamInternalsValidateAndNormalizeQueuingStrategyCodeLength) \
- macro(streamInternalsCreateFIFOCode, createFIFO, ASCIILiteral(), s_streamInternalsCreateFIFOCodeLength) \
- macro(streamInternalsNewQueueCode, newQueue, ASCIILiteral(), s_streamInternalsNewQueueCodeLength) \
- macro(streamInternalsDequeueValueCode, dequeueValue, ASCIILiteral(), s_streamInternalsDequeueValueCodeLength) \
- macro(streamInternalsEnqueueValueWithSizeCode, enqueueValueWithSize, ASCIILiteral(), s_streamInternalsEnqueueValueWithSizeCodeLength) \
- macro(streamInternalsPeekQueueValueCode, peekQueueValue, ASCIILiteral(), s_streamInternalsPeekQueueValueCodeLength) \
- macro(streamInternalsResetQueueCode, resetQueue, ASCIILiteral(), s_streamInternalsResetQueueCodeLength) \
- macro(streamInternalsExtractSizeAlgorithmCode, extractSizeAlgorithm, ASCIILiteral(), s_streamInternalsExtractSizeAlgorithmCodeLength) \
- macro(streamInternalsExtractHighWaterMarkCode, extractHighWaterMark, ASCIILiteral(), s_streamInternalsExtractHighWaterMarkCodeLength) \
- macro(streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCode, extractHighWaterMarkFromQueuingStrategyInit, ASCIILiteral(), s_streamInternalsExtractHighWaterMarkFromQueuingStrategyInitCodeLength) \
- macro(streamInternalsCreateFulfilledPromiseCode, createFulfilledPromise, ASCIILiteral(), s_streamInternalsCreateFulfilledPromiseCodeLength) \
- macro(streamInternalsToDictionaryCode, toDictionary, ASCIILiteral(), s_streamInternalsToDictionaryCodeLength) \
-
-#define WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(macro) \
- macro(markPromiseAsHandled) \
- macro(shieldingPromiseResolve) \
- macro(promiseInvokeOrNoopMethodNoCatch) \
- macro(promiseInvokeOrNoopNoCatch) \
- macro(promiseInvokeOrNoopMethod) \
- macro(promiseInvokeOrNoop) \
- macro(promiseInvokeOrFallbackOrNoop) \
- macro(validateAndNormalizeQueuingStrategy) \
- macro(createFIFO) \
- macro(newQueue) \
- macro(dequeueValue) \
- macro(enqueueValueWithSize) \
- macro(peekQueueValue) \
- macro(resetQueue) \
- macro(extractSizeAlgorithm) \
- macro(extractHighWaterMark) \
- macro(extractHighWaterMarkFromQueuingStrategyInit) \
- macro(createFulfilledPromise) \
- macro(toDictionary) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class StreamInternalsBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit StreamInternalsBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* StreamInternalsBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void StreamInternalsBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-class StreamInternalsBuiltinFunctions {
-public:
- explicit StreamInternalsBuiltinFunctions(JSC::VM& vm) : m_vm(vm) { }
-
- void init(JSC::JSGlobalObject&);
- template<typename Visitor> void visit(Visitor&);
-
-public:
- JSC::VM& m_vm;
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \
- JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function;
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-};
-
-inline void StreamInternalsBuiltinFunctions::init(JSC::JSGlobalObject& globalObject)
-{
-#define EXPORT_FUNCTION(codeName, functionName, overriddenName, length) \
- m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, codeName##Generator(m_vm), &globalObject));
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_CODE(EXPORT_FUNCTION)
-#undef EXPORT_FUNCTION
-}
-
-template<typename Visitor>
-inline void StreamInternalsBuiltinFunctions::visit(Visitor& visitor)
-{
-#define VISIT_FUNCTION(name) visitor.append(m_##name##Function);
- WEBCORE_FOREACH_STREAMINTERNALS_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION)
-#undef VISIT_FUNCTION
-}
-
-template void StreamInternalsBuiltinFunctions::visit(JSC::AbstractSlotVisitor&);
-template void StreamInternalsBuiltinFunctions::visit(JSC::SlotVisitor&);
- /* ImportMetaObject.ts */
-// loadCJS2ESM
-#define WEBCORE_BUILTIN_IMPORTMETAOBJECT_LOADCJS2ESM 1
-extern const char* const s_importMetaObjectLoadCJS2ESMCode;
-extern const int s_importMetaObjectLoadCJS2ESMCodeLength;
-extern const JSC::ConstructAbility s_importMetaObjectLoadCJS2ESMCodeConstructAbility;
-extern const JSC::ConstructorKind s_importMetaObjectLoadCJS2ESMCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_importMetaObjectLoadCJS2ESMCodeImplementationVisibility;
-
-// requireESM
-#define WEBCORE_BUILTIN_IMPORTMETAOBJECT_REQUIREESM 1
-extern const char* const s_importMetaObjectRequireESMCode;
-extern const int s_importMetaObjectRequireESMCodeLength;
-extern const JSC::ConstructAbility s_importMetaObjectRequireESMCodeConstructAbility;
-extern const JSC::ConstructorKind s_importMetaObjectRequireESMCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_importMetaObjectRequireESMCodeImplementationVisibility;
-
-// internalRequire
-#define WEBCORE_BUILTIN_IMPORTMETAOBJECT_INTERNALREQUIRE 1
-extern const char* const s_importMetaObjectInternalRequireCode;
-extern const int s_importMetaObjectInternalRequireCodeLength;
-extern const JSC::ConstructAbility s_importMetaObjectInternalRequireCodeConstructAbility;
-extern const JSC::ConstructorKind s_importMetaObjectInternalRequireCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_importMetaObjectInternalRequireCodeImplementationVisibility;
-
-// createRequireCache
-#define WEBCORE_BUILTIN_IMPORTMETAOBJECT_CREATEREQUIRECACHE 1
-extern const char* const s_importMetaObjectCreateRequireCacheCode;
-extern const int s_importMetaObjectCreateRequireCacheCodeLength;
-extern const JSC::ConstructAbility s_importMetaObjectCreateRequireCacheCodeConstructAbility;
-extern const JSC::ConstructorKind s_importMetaObjectCreateRequireCacheCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_importMetaObjectCreateRequireCacheCodeImplementationVisibility;
-
-// require
-#define WEBCORE_BUILTIN_IMPORTMETAOBJECT_REQUIRE 1
-extern const char* const s_importMetaObjectRequireCode;
-extern const int s_importMetaObjectRequireCodeLength;
-extern const JSC::ConstructAbility s_importMetaObjectRequireCodeConstructAbility;
-extern const JSC::ConstructorKind s_importMetaObjectRequireCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_importMetaObjectRequireCodeImplementationVisibility;
-
-// main
-#define WEBCORE_BUILTIN_IMPORTMETAOBJECT_MAIN 1
-extern const char* const s_importMetaObjectMainCode;
-extern const int s_importMetaObjectMainCodeLength;
-extern const JSC::ConstructAbility s_importMetaObjectMainCodeConstructAbility;
-extern const JSC::ConstructorKind s_importMetaObjectMainCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_importMetaObjectMainCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_DATA(macro) \
- macro(loadCJS2ESM, importMetaObjectLoadCJS2ESM, 1) \
- macro(requireESM, importMetaObjectRequireESM, 1) \
- macro(internalRequire, importMetaObjectInternalRequire, 1) \
- macro(createRequireCache, importMetaObjectCreateRequireCache, 0) \
- macro(require, importMetaObjectRequire, 1) \
- macro(main, importMetaObjectMain, 0) \
-
-#define WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_CODE(macro) \
- macro(importMetaObjectLoadCJS2ESMCode, loadCJS2ESM, ASCIILiteral(), s_importMetaObjectLoadCJS2ESMCodeLength) \
- macro(importMetaObjectRequireESMCode, requireESM, ASCIILiteral(), s_importMetaObjectRequireESMCodeLength) \
- macro(importMetaObjectInternalRequireCode, internalRequire, ASCIILiteral(), s_importMetaObjectInternalRequireCodeLength) \
- macro(importMetaObjectCreateRequireCacheCode, createRequireCache, ASCIILiteral(), s_importMetaObjectCreateRequireCacheCodeLength) \
- macro(importMetaObjectRequireCode, require, ASCIILiteral(), s_importMetaObjectRequireCodeLength) \
- macro(importMetaObjectMainCode, main, "get main"_s, s_importMetaObjectMainCodeLength) \
-
-#define WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_FUNCTION_NAME(macro) \
- macro(loadCJS2ESM) \
- macro(requireESM) \
- macro(internalRequire) \
- macro(createRequireCache) \
- macro(require) \
- macro(main) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ImportMetaObjectBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ImportMetaObjectBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ImportMetaObjectBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ImportMetaObjectBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_IMPORTMETAOBJECT_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* CountQueuingStrategy.ts */
-// highWaterMark
-#define WEBCORE_BUILTIN_COUNTQUEUINGSTRATEGY_HIGHWATERMARK 1
-extern const char* const s_countQueuingStrategyHighWaterMarkCode;
-extern const int s_countQueuingStrategyHighWaterMarkCodeLength;
-extern const JSC::ConstructAbility s_countQueuingStrategyHighWaterMarkCodeConstructAbility;
-extern const JSC::ConstructorKind s_countQueuingStrategyHighWaterMarkCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_countQueuingStrategyHighWaterMarkCodeImplementationVisibility;
-
-// size
-#define WEBCORE_BUILTIN_COUNTQUEUINGSTRATEGY_SIZE 1
-extern const char* const s_countQueuingStrategySizeCode;
-extern const int s_countQueuingStrategySizeCodeLength;
-extern const JSC::ConstructAbility s_countQueuingStrategySizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_countQueuingStrategySizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_countQueuingStrategySizeCodeImplementationVisibility;
-
-// initializeCountQueuingStrategy
-#define WEBCORE_BUILTIN_COUNTQUEUINGSTRATEGY_INITIALIZECOUNTQUEUINGSTRATEGY 1
-extern const char* const s_countQueuingStrategyInitializeCountQueuingStrategyCode;
-extern const int s_countQueuingStrategyInitializeCountQueuingStrategyCodeLength;
-extern const JSC::ConstructAbility s_countQueuingStrategyInitializeCountQueuingStrategyCodeConstructAbility;
-extern const JSC::ConstructorKind s_countQueuingStrategyInitializeCountQueuingStrategyCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_countQueuingStrategyInitializeCountQueuingStrategyCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_DATA(macro) \
- macro(highWaterMark, countQueuingStrategyHighWaterMark, 0) \
- macro(size, countQueuingStrategySize, 0) \
- macro(initializeCountQueuingStrategy, countQueuingStrategyInitializeCountQueuingStrategy, 1) \
-
-#define WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_CODE(macro) \
- macro(countQueuingStrategyHighWaterMarkCode, highWaterMark, "get highWaterMark"_s, s_countQueuingStrategyHighWaterMarkCodeLength) \
- macro(countQueuingStrategySizeCode, size, ASCIILiteral(), s_countQueuingStrategySizeCodeLength) \
- macro(countQueuingStrategyInitializeCountQueuingStrategyCode, initializeCountQueuingStrategy, ASCIILiteral(), s_countQueuingStrategyInitializeCountQueuingStrategyCodeLength) \
-
-#define WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(macro) \
- macro(highWaterMark) \
- macro(size) \
- macro(initializeCountQueuingStrategy) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class CountQueuingStrategyBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit CountQueuingStrategyBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* CountQueuingStrategyBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void CountQueuingStrategyBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_COUNTQUEUINGSTRATEGY_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ReadableStreamBYOBRequest.ts */
-// initializeReadableStreamBYOBRequest
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREQUEST_INITIALIZEREADABLESTREAMBYOBREQUEST 1
-extern const char* const s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCode;
-extern const int s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeImplementationVisibility;
-
-// respond
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREQUEST_RESPOND 1
-extern const char* const s_readableStreamBYOBRequestRespondCode;
-extern const int s_readableStreamBYOBRequestRespondCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBRequestRespondCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBRequestRespondCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBRequestRespondCodeImplementationVisibility;
-
-// respondWithNewView
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREQUEST_RESPONDWITHNEWVIEW 1
-extern const char* const s_readableStreamBYOBRequestRespondWithNewViewCode;
-extern const int s_readableStreamBYOBRequestRespondWithNewViewCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBRequestRespondWithNewViewCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBRequestRespondWithNewViewCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBRequestRespondWithNewViewCodeImplementationVisibility;
-
-// view
-#define WEBCORE_BUILTIN_READABLESTREAMBYOBREQUEST_VIEW 1
-extern const char* const s_readableStreamBYOBRequestViewCode;
-extern const int s_readableStreamBYOBRequestViewCodeLength;
-extern const JSC::ConstructAbility s_readableStreamBYOBRequestViewCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamBYOBRequestViewCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamBYOBRequestViewCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_DATA(macro) \
- macro(initializeReadableStreamBYOBRequest, readableStreamBYOBRequestInitializeReadableStreamBYOBRequest, 2) \
- macro(respond, readableStreamBYOBRequestRespond, 1) \
- macro(respondWithNewView, readableStreamBYOBRequestRespondWithNewView, 1) \
- macro(view, readableStreamBYOBRequestView, 0) \
-
-#define WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_CODE(macro) \
- macro(readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCode, initializeReadableStreamBYOBRequest, ASCIILiteral(), s_readableStreamBYOBRequestInitializeReadableStreamBYOBRequestCodeLength) \
- macro(readableStreamBYOBRequestRespondCode, respond, ASCIILiteral(), s_readableStreamBYOBRequestRespondCodeLength) \
- macro(readableStreamBYOBRequestRespondWithNewViewCode, respondWithNewView, ASCIILiteral(), s_readableStreamBYOBRequestRespondWithNewViewCodeLength) \
- macro(readableStreamBYOBRequestViewCode, view, "get view"_s, s_readableStreamBYOBRequestViewCodeLength) \
-
-#define WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeReadableStreamBYOBRequest) \
- macro(respond) \
- macro(respondWithNewView) \
- macro(view) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ReadableStreamBYOBRequestBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ReadableStreamBYOBRequestBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ReadableStreamBYOBRequestBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ReadableStreamBYOBRequestBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_READABLESTREAMBYOBREQUEST_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* WritableStreamDefaultWriter.ts */
-// initializeWritableStreamDefaultWriter
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTWRITER_INITIALIZEWRITABLESTREAMDEFAULTWRITER 1
-extern const char* const s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCode;
-extern const int s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeImplementationVisibility;
-
-// closed
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTWRITER_CLOSED 1
-extern const char* const s_writableStreamDefaultWriterClosedCode;
-extern const int s_writableStreamDefaultWriterClosedCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultWriterClosedCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultWriterClosedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultWriterClosedCodeImplementationVisibility;
-
-// desiredSize
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTWRITER_DESIREDSIZE 1
-extern const char* const s_writableStreamDefaultWriterDesiredSizeCode;
-extern const int s_writableStreamDefaultWriterDesiredSizeCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultWriterDesiredSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultWriterDesiredSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultWriterDesiredSizeCodeImplementationVisibility;
-
-// ready
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTWRITER_READY 1
-extern const char* const s_writableStreamDefaultWriterReadyCode;
-extern const int s_writableStreamDefaultWriterReadyCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultWriterReadyCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultWriterReadyCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultWriterReadyCodeImplementationVisibility;
-
-// abort
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTWRITER_ABORT 1
-extern const char* const s_writableStreamDefaultWriterAbortCode;
-extern const int s_writableStreamDefaultWriterAbortCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultWriterAbortCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultWriterAbortCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultWriterAbortCodeImplementationVisibility;
-
-// close
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTWRITER_CLOSE 1
-extern const char* const s_writableStreamDefaultWriterCloseCode;
-extern const int s_writableStreamDefaultWriterCloseCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultWriterCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultWriterCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultWriterCloseCodeImplementationVisibility;
-
-// releaseLock
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTWRITER_RELEASELOCK 1
-extern const char* const s_writableStreamDefaultWriterReleaseLockCode;
-extern const int s_writableStreamDefaultWriterReleaseLockCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultWriterReleaseLockCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultWriterReleaseLockCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultWriterReleaseLockCodeImplementationVisibility;
-
-// write
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTWRITER_WRITE 1
-extern const char* const s_writableStreamDefaultWriterWriteCode;
-extern const int s_writableStreamDefaultWriterWriteCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultWriterWriteCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultWriterWriteCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultWriterWriteCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_DATA(macro) \
- macro(initializeWritableStreamDefaultWriter, writableStreamDefaultWriterInitializeWritableStreamDefaultWriter, 1) \
- macro(closed, writableStreamDefaultWriterClosed, 0) \
- macro(desiredSize, writableStreamDefaultWriterDesiredSize, 0) \
- macro(ready, writableStreamDefaultWriterReady, 0) \
- macro(abort, writableStreamDefaultWriterAbort, 1) \
- macro(close, writableStreamDefaultWriterClose, 0) \
- macro(releaseLock, writableStreamDefaultWriterReleaseLock, 0) \
- macro(write, writableStreamDefaultWriterWrite, 1) \
-
-#define WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_CODE(macro) \
- macro(writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCode, initializeWritableStreamDefaultWriter, ASCIILiteral(), s_writableStreamDefaultWriterInitializeWritableStreamDefaultWriterCodeLength) \
- macro(writableStreamDefaultWriterClosedCode, closed, "get closed"_s, s_writableStreamDefaultWriterClosedCodeLength) \
- macro(writableStreamDefaultWriterDesiredSizeCode, desiredSize, "get desiredSize"_s, s_writableStreamDefaultWriterDesiredSizeCodeLength) \
- macro(writableStreamDefaultWriterReadyCode, ready, "get ready"_s, s_writableStreamDefaultWriterReadyCodeLength) \
- macro(writableStreamDefaultWriterAbortCode, abort, ASCIILiteral(), s_writableStreamDefaultWriterAbortCodeLength) \
- macro(writableStreamDefaultWriterCloseCode, close, ASCIILiteral(), s_writableStreamDefaultWriterCloseCodeLength) \
- macro(writableStreamDefaultWriterReleaseLockCode, releaseLock, ASCIILiteral(), s_writableStreamDefaultWriterReleaseLockCodeLength) \
- macro(writableStreamDefaultWriterWriteCode, write, ASCIILiteral(), s_writableStreamDefaultWriterWriteCodeLength) \
-
-#define WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeWritableStreamDefaultWriter) \
- macro(closed) \
- macro(desiredSize) \
- macro(ready) \
- macro(abort) \
- macro(close) \
- macro(releaseLock) \
- macro(write) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class WritableStreamDefaultWriterBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit WritableStreamDefaultWriterBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* WritableStreamDefaultWriterBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void WritableStreamDefaultWriterBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTWRITER_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ReadableStream.ts */
-// initializeReadableStream
-#define WEBCORE_BUILTIN_READABLESTREAM_INITIALIZEREADABLESTREAM 1
-extern const char* const s_readableStreamInitializeReadableStreamCode;
-extern const int s_readableStreamInitializeReadableStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamInitializeReadableStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamInitializeReadableStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamInitializeReadableStreamCodeImplementationVisibility;
-
-// readableStreamToArray
-#define WEBCORE_BUILTIN_READABLESTREAM_READABLESTREAMTOARRAY 1
-extern const char* const s_readableStreamReadableStreamToArrayCode;
-extern const int s_readableStreamReadableStreamToArrayCodeLength;
-extern const JSC::ConstructAbility s_readableStreamReadableStreamToArrayCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamReadableStreamToArrayCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayCodeImplementationVisibility;
-
-// readableStreamToText
-#define WEBCORE_BUILTIN_READABLESTREAM_READABLESTREAMTOTEXT 1
-extern const char* const s_readableStreamReadableStreamToTextCode;
-extern const int s_readableStreamReadableStreamToTextCodeLength;
-extern const JSC::ConstructAbility s_readableStreamReadableStreamToTextCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamReadableStreamToTextCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamReadableStreamToTextCodeImplementationVisibility;
-
-// readableStreamToArrayBuffer
-#define WEBCORE_BUILTIN_READABLESTREAM_READABLESTREAMTOARRAYBUFFER 1
-extern const char* const s_readableStreamReadableStreamToArrayBufferCode;
-extern const int s_readableStreamReadableStreamToArrayBufferCodeLength;
-extern const JSC::ConstructAbility s_readableStreamReadableStreamToArrayBufferCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamReadableStreamToArrayBufferCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayBufferCodeImplementationVisibility;
-
-// readableStreamToJSON
-#define WEBCORE_BUILTIN_READABLESTREAM_READABLESTREAMTOJSON 1
-extern const char* const s_readableStreamReadableStreamToJSONCode;
-extern const int s_readableStreamReadableStreamToJSONCodeLength;
-extern const JSC::ConstructAbility s_readableStreamReadableStreamToJSONCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamReadableStreamToJSONCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamReadableStreamToJSONCodeImplementationVisibility;
-
-// readableStreamToBlob
-#define WEBCORE_BUILTIN_READABLESTREAM_READABLESTREAMTOBLOB 1
-extern const char* const s_readableStreamReadableStreamToBlobCode;
-extern const int s_readableStreamReadableStreamToBlobCodeLength;
-extern const JSC::ConstructAbility s_readableStreamReadableStreamToBlobCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamReadableStreamToBlobCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamReadableStreamToBlobCodeImplementationVisibility;
-
-// consumeReadableStream
-#define WEBCORE_BUILTIN_READABLESTREAM_CONSUMEREADABLESTREAM 1
-extern const char* const s_readableStreamConsumeReadableStreamCode;
-extern const int s_readableStreamConsumeReadableStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamConsumeReadableStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamConsumeReadableStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamConsumeReadableStreamCodeImplementationVisibility;
-
-// createEmptyReadableStream
-#define WEBCORE_BUILTIN_READABLESTREAM_CREATEEMPTYREADABLESTREAM 1
-extern const char* const s_readableStreamCreateEmptyReadableStreamCode;
-extern const int s_readableStreamCreateEmptyReadableStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamCreateEmptyReadableStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamCreateEmptyReadableStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamCreateEmptyReadableStreamCodeImplementationVisibility;
-
-// createNativeReadableStream
-#define WEBCORE_BUILTIN_READABLESTREAM_CREATENATIVEREADABLESTREAM 1
-extern const char* const s_readableStreamCreateNativeReadableStreamCode;
-extern const int s_readableStreamCreateNativeReadableStreamCodeLength;
-extern const JSC::ConstructAbility s_readableStreamCreateNativeReadableStreamCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamCreateNativeReadableStreamCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamCreateNativeReadableStreamCodeImplementationVisibility;
-
-// cancel
-#define WEBCORE_BUILTIN_READABLESTREAM_CANCEL 1
-extern const char* const s_readableStreamCancelCode;
-extern const int s_readableStreamCancelCodeLength;
-extern const JSC::ConstructAbility s_readableStreamCancelCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamCancelCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamCancelCodeImplementationVisibility;
-
-// getReader
-#define WEBCORE_BUILTIN_READABLESTREAM_GETREADER 1
-extern const char* const s_readableStreamGetReaderCode;
-extern const int s_readableStreamGetReaderCodeLength;
-extern const JSC::ConstructAbility s_readableStreamGetReaderCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamGetReaderCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamGetReaderCodeImplementationVisibility;
-
-// pipeThrough
-#define WEBCORE_BUILTIN_READABLESTREAM_PIPETHROUGH 1
-extern const char* const s_readableStreamPipeThroughCode;
-extern const int s_readableStreamPipeThroughCodeLength;
-extern const JSC::ConstructAbility s_readableStreamPipeThroughCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamPipeThroughCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamPipeThroughCodeImplementationVisibility;
-
-// pipeTo
-#define WEBCORE_BUILTIN_READABLESTREAM_PIPETO 1
-extern const char* const s_readableStreamPipeToCode;
-extern const int s_readableStreamPipeToCodeLength;
-extern const JSC::ConstructAbility s_readableStreamPipeToCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamPipeToCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamPipeToCodeImplementationVisibility;
-
-// tee
-#define WEBCORE_BUILTIN_READABLESTREAM_TEE 1
-extern const char* const s_readableStreamTeeCode;
-extern const int s_readableStreamTeeCodeLength;
-extern const JSC::ConstructAbility s_readableStreamTeeCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamTeeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamTeeCodeImplementationVisibility;
-
-// locked
-#define WEBCORE_BUILTIN_READABLESTREAM_LOCKED 1
-extern const char* const s_readableStreamLockedCode;
-extern const int s_readableStreamLockedCodeLength;
-extern const JSC::ConstructAbility s_readableStreamLockedCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamLockedCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamLockedCodeImplementationVisibility;
-
-// values
-#define WEBCORE_BUILTIN_READABLESTREAM_VALUES 1
-extern const char* const s_readableStreamValuesCode;
-extern const int s_readableStreamValuesCodeLength;
-extern const JSC::ConstructAbility s_readableStreamValuesCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamValuesCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamValuesCodeImplementationVisibility;
-
-// lazyAsyncIterator
-#define WEBCORE_BUILTIN_READABLESTREAM_LAZYASYNCITERATOR 1
-extern const char* const s_readableStreamLazyAsyncIteratorCode;
-extern const int s_readableStreamLazyAsyncIteratorCodeLength;
-extern const JSC::ConstructAbility s_readableStreamLazyAsyncIteratorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamLazyAsyncIteratorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamLazyAsyncIteratorCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_READABLESTREAM_BUILTIN_DATA(macro) \
- macro(initializeReadableStream, readableStreamInitializeReadableStream, 2) \
- macro(readableStreamToArray, readableStreamReadableStreamToArray, 1) \
- macro(readableStreamToText, readableStreamReadableStreamToText, 1) \
- macro(readableStreamToArrayBuffer, readableStreamReadableStreamToArrayBuffer, 1) \
- macro(readableStreamToJSON, readableStreamReadableStreamToJSON, 1) \
- macro(readableStreamToBlob, readableStreamReadableStreamToBlob, 1) \
- macro(consumeReadableStream, readableStreamConsumeReadableStream, 3) \
- macro(createEmptyReadableStream, readableStreamCreateEmptyReadableStream, 0) \
- macro(createNativeReadableStream, readableStreamCreateNativeReadableStream, 3) \
- macro(cancel, readableStreamCancel, 1) \
- macro(getReader, readableStreamGetReader, 1) \
- macro(pipeThrough, readableStreamPipeThrough, 2) \
- macro(pipeTo, readableStreamPipeTo, 1) \
- macro(tee, readableStreamTee, 0) \
- macro(locked, readableStreamLocked, 0) \
- macro(values, readableStreamValues, 1) \
- macro(lazyAsyncIterator, readableStreamLazyAsyncIterator, 0) \
-
-#define WEBCORE_FOREACH_READABLESTREAM_BUILTIN_CODE(macro) \
- macro(readableStreamInitializeReadableStreamCode, initializeReadableStream, ASCIILiteral(), s_readableStreamInitializeReadableStreamCodeLength) \
- macro(readableStreamReadableStreamToArrayCode, readableStreamToArray, ASCIILiteral(), s_readableStreamReadableStreamToArrayCodeLength) \
- macro(readableStreamReadableStreamToTextCode, readableStreamToText, ASCIILiteral(), s_readableStreamReadableStreamToTextCodeLength) \
- macro(readableStreamReadableStreamToArrayBufferCode, readableStreamToArrayBuffer, ASCIILiteral(), s_readableStreamReadableStreamToArrayBufferCodeLength) \
- macro(readableStreamReadableStreamToJSONCode, readableStreamToJSON, ASCIILiteral(), s_readableStreamReadableStreamToJSONCodeLength) \
- macro(readableStreamReadableStreamToBlobCode, readableStreamToBlob, ASCIILiteral(), s_readableStreamReadableStreamToBlobCodeLength) \
- macro(readableStreamConsumeReadableStreamCode, consumeReadableStream, ASCIILiteral(), s_readableStreamConsumeReadableStreamCodeLength) \
- macro(readableStreamCreateEmptyReadableStreamCode, createEmptyReadableStream, ASCIILiteral(), s_readableStreamCreateEmptyReadableStreamCodeLength) \
- macro(readableStreamCreateNativeReadableStreamCode, createNativeReadableStream, ASCIILiteral(), s_readableStreamCreateNativeReadableStreamCodeLength) \
- macro(readableStreamCancelCode, cancel, ASCIILiteral(), s_readableStreamCancelCodeLength) \
- macro(readableStreamGetReaderCode, getReader, ASCIILiteral(), s_readableStreamGetReaderCodeLength) \
- macro(readableStreamPipeThroughCode, pipeThrough, ASCIILiteral(), s_readableStreamPipeThroughCodeLength) \
- macro(readableStreamPipeToCode, pipeTo, ASCIILiteral(), s_readableStreamPipeToCodeLength) \
- macro(readableStreamTeeCode, tee, ASCIILiteral(), s_readableStreamTeeCodeLength) \
- macro(readableStreamLockedCode, locked, "get locked"_s, s_readableStreamLockedCodeLength) \
- macro(readableStreamValuesCode, values, ASCIILiteral(), s_readableStreamValuesCodeLength) \
- macro(readableStreamLazyAsyncIteratorCode, lazyAsyncIterator, ASCIILiteral(), s_readableStreamLazyAsyncIteratorCodeLength) \
-
-#define WEBCORE_FOREACH_READABLESTREAM_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeReadableStream) \
- macro(readableStreamToArray) \
- macro(readableStreamToText) \
- macro(readableStreamToArrayBuffer) \
- macro(readableStreamToJSON) \
- macro(readableStreamToBlob) \
- macro(consumeReadableStream) \
- macro(createEmptyReadableStream) \
- macro(createNativeReadableStream) \
- macro(cancel) \
- macro(getReader) \
- macro(pipeThrough) \
- macro(pipeTo) \
- macro(tee) \
- macro(locked) \
- macro(values) \
- macro(lazyAsyncIterator) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_READABLESTREAM_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ReadableStreamBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ReadableStreamBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_READABLESTREAM_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_READABLESTREAM_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_READABLESTREAM_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_READABLESTREAM_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_READABLESTREAM_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_READABLESTREAM_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ReadableStreamBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_READABLESTREAM_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ReadableStreamBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_READABLESTREAM_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ReadableStreamDefaultController.ts */
-// initializeReadableStreamDefaultController
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTCONTROLLER_INITIALIZEREADABLESTREAMDEFAULTCONTROLLER 1
-extern const char* const s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCode;
-extern const int s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeImplementationVisibility;
-
-// enqueue
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTCONTROLLER_ENQUEUE 1
-extern const char* const s_readableStreamDefaultControllerEnqueueCode;
-extern const int s_readableStreamDefaultControllerEnqueueCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultControllerEnqueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultControllerEnqueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultControllerEnqueueCodeImplementationVisibility;
-
-// error
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTCONTROLLER_ERROR 1
-extern const char* const s_readableStreamDefaultControllerErrorCode;
-extern const int s_readableStreamDefaultControllerErrorCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultControllerErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultControllerErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultControllerErrorCodeImplementationVisibility;
-
-// close
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTCONTROLLER_CLOSE 1
-extern const char* const s_readableStreamDefaultControllerCloseCode;
-extern const int s_readableStreamDefaultControllerCloseCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultControllerCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultControllerCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultControllerCloseCodeImplementationVisibility;
-
-// desiredSize
-#define WEBCORE_BUILTIN_READABLESTREAMDEFAULTCONTROLLER_DESIREDSIZE 1
-extern const char* const s_readableStreamDefaultControllerDesiredSizeCode;
-extern const int s_readableStreamDefaultControllerDesiredSizeCodeLength;
-extern const JSC::ConstructAbility s_readableStreamDefaultControllerDesiredSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableStreamDefaultControllerDesiredSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableStreamDefaultControllerDesiredSizeCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_DATA(macro) \
- macro(initializeReadableStreamDefaultController, readableStreamDefaultControllerInitializeReadableStreamDefaultController, 4) \
- macro(enqueue, readableStreamDefaultControllerEnqueue, 1) \
- macro(error, readableStreamDefaultControllerError, 1) \
- macro(close, readableStreamDefaultControllerClose, 0) \
- macro(desiredSize, readableStreamDefaultControllerDesiredSize, 0) \
-
-#define WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(macro) \
- macro(readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCode, initializeReadableStreamDefaultController, ASCIILiteral(), s_readableStreamDefaultControllerInitializeReadableStreamDefaultControllerCodeLength) \
- macro(readableStreamDefaultControllerEnqueueCode, enqueue, ASCIILiteral(), s_readableStreamDefaultControllerEnqueueCodeLength) \
- macro(readableStreamDefaultControllerErrorCode, error, ASCIILiteral(), s_readableStreamDefaultControllerErrorCodeLength) \
- macro(readableStreamDefaultControllerCloseCode, close, ASCIILiteral(), s_readableStreamDefaultControllerCloseCodeLength) \
- macro(readableStreamDefaultControllerDesiredSizeCode, desiredSize, "get desiredSize"_s, s_readableStreamDefaultControllerDesiredSizeCodeLength) \
-
-#define WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeReadableStreamDefaultController) \
- macro(enqueue) \
- macro(error) \
- macro(close) \
- macro(desiredSize) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ReadableStreamDefaultControllerBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ReadableStreamDefaultControllerBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ReadableStreamDefaultControllerBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ReadableStreamDefaultControllerBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_READABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-/* ReadableByteStreamInternals.ts */
-// privateInitializeReadableByteStreamController
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_PRIVATEINITIALIZEREADABLEBYTESTREAMCONTROLLER 1
-extern const char* const s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode;
-extern const int s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeImplementationVisibility;
-
-// readableStreamByteStreamControllerStart
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMBYTESTREAMCONTROLLERSTART 1
-extern const char* const s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCode;
-extern const int s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeImplementationVisibility;
-
-// privateInitializeReadableStreamBYOBRequest
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_PRIVATEINITIALIZEREADABLESTREAMBYOBREQUEST 1
-extern const char* const s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCode;
-extern const int s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeImplementationVisibility;
-
-// isReadableByteStreamController
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_ISREADABLEBYTESTREAMCONTROLLER 1
-extern const char* const s_readableByteStreamInternalsIsReadableByteStreamControllerCode;
-extern const int s_readableByteStreamInternalsIsReadableByteStreamControllerCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableByteStreamControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsIsReadableByteStreamControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsIsReadableByteStreamControllerCodeImplementationVisibility;
-
-// isReadableStreamBYOBRequest
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_ISREADABLESTREAMBYOBREQUEST 1
-extern const char* const s_readableByteStreamInternalsIsReadableStreamBYOBRequestCode;
-extern const int s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeImplementationVisibility;
-
-// isReadableStreamBYOBReader
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_ISREADABLESTREAMBYOBREADER 1
-extern const char* const s_readableByteStreamInternalsIsReadableStreamBYOBReaderCode;
-extern const int s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeImplementationVisibility;
-
-// readableByteStreamControllerCancel
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCANCEL 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerCancelCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeImplementationVisibility;
-
-// readableByteStreamControllerError
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERERROR 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerErrorCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeImplementationVisibility;
-
-// readableByteStreamControllerClose
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCLOSE 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerCloseCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeImplementationVisibility;
-
-// readableByteStreamControllerClearPendingPullIntos
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCLEARPENDINGPULLINTOS 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeImplementationVisibility;
-
-// readableByteStreamControllerGetDesiredSize
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERGETDESIREDSIZE 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeImplementationVisibility;
-
-// readableStreamHasBYOBReader
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMHASBYOBREADER 1
-extern const char* const s_readableByteStreamInternalsReadableStreamHasBYOBReaderCode;
-extern const int s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeImplementationVisibility;
-
-// readableStreamHasDefaultReader
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMHASDEFAULTREADER 1
-extern const char* const s_readableByteStreamInternalsReadableStreamHasDefaultReaderCode;
-extern const int s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeImplementationVisibility;
-
-// readableByteStreamControllerHandleQueueDrain
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERHANDLEQUEUEDRAIN 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeImplementationVisibility;
-
-// readableByteStreamControllerPull
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERPULL 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerPullCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullCodeImplementationVisibility;
-
-// readableByteStreamControllerShouldCallPull
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERSHOULDCALLPULL 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeImplementationVisibility;
-
-// readableByteStreamControllerCallPullIfNeeded
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCALLPULLIFNEEDED 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeImplementationVisibility;
-
-// transferBufferToCurrentRealm
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_TRANSFERBUFFERTOCURRENTREALM 1
-extern const char* const s_readableByteStreamInternalsTransferBufferToCurrentRealmCode;
-extern const int s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeImplementationVisibility;
-
-// readableStreamReaderKind
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMREADERKIND 1
-extern const char* const s_readableByteStreamInternalsReadableStreamReaderKindCode;
-extern const int s_readableByteStreamInternalsReadableStreamReaderKindCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamReaderKindCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamReaderKindCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamReaderKindCodeImplementationVisibility;
-
-// readableByteStreamControllerEnqueue
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERENQUEUE 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeImplementationVisibility;
-
-// readableByteStreamControllerEnqueueChunk
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERENQUEUECHUNK 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeImplementationVisibility;
-
-// readableByteStreamControllerRespondWithNewView
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPONDWITHNEWVIEW 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeImplementationVisibility;
-
-// readableByteStreamControllerRespond
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPOND 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeImplementationVisibility;
-
-// readableByteStreamControllerRespondInternal
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPONDINTERNAL 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeImplementationVisibility;
-
-// readableByteStreamControllerRespondInReadableState
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPONDINREADABLESTATE 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeImplementationVisibility;
-
-// readableByteStreamControllerRespondInClosedState
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERRESPONDINCLOSEDSTATE 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeImplementationVisibility;
-
-// readableByteStreamControllerProcessPullDescriptors
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERPROCESSPULLDESCRIPTORS 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeImplementationVisibility;
-
-// readableByteStreamControllerFillDescriptorFromQueue
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERFILLDESCRIPTORFROMQUEUE 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeImplementationVisibility;
-
-// readableByteStreamControllerShiftPendingDescriptor
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERSHIFTPENDINGDESCRIPTOR 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeImplementationVisibility;
-
-// readableByteStreamControllerInvalidateBYOBRequest
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERINVALIDATEBYOBREQUEST 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeImplementationVisibility;
-
-// readableByteStreamControllerCommitDescriptor
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCOMMITDESCRIPTOR 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeImplementationVisibility;
-
-// readableByteStreamControllerConvertDescriptor
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERCONVERTDESCRIPTOR 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeImplementationVisibility;
-
-// readableStreamFulfillReadIntoRequest
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMFULFILLREADINTOREQUEST 1
-extern const char* const s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCode;
-extern const int s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeImplementationVisibility;
-
-// readableStreamBYOBReaderRead
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMBYOBREADERREAD 1
-extern const char* const s_readableByteStreamInternalsReadableStreamBYOBReaderReadCode;
-extern const int s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeImplementationVisibility;
-
-// readableByteStreamControllerPullInto
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLEBYTESTREAMCONTROLLERPULLINTO 1
-extern const char* const s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCode;
-extern const int s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeImplementationVisibility;
-
-// readableStreamAddReadIntoRequest
-#define WEBCORE_BUILTIN_READABLEBYTESTREAMINTERNALS_READABLESTREAMADDREADINTOREQUEST 1
-extern const char* const s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCode;
-extern const int s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeLength;
-extern const JSC::ConstructAbility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructAbility;
-extern const JSC::ConstructorKind s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_DATA(macro) \
- macro(privateInitializeReadableByteStreamController, readableByteStreamInternalsPrivateInitializeReadableByteStreamController, 3) \
- macro(readableStreamByteStreamControllerStart, readableByteStreamInternalsReadableStreamByteStreamControllerStart, 1) \
- macro(privateInitializeReadableStreamBYOBRequest, readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequest, 2) \
- macro(isReadableByteStreamController, readableByteStreamInternalsIsReadableByteStreamController, 1) \
- macro(isReadableStreamBYOBRequest, readableByteStreamInternalsIsReadableStreamBYOBRequest, 1) \
- macro(isReadableStreamBYOBReader, readableByteStreamInternalsIsReadableStreamBYOBReader, 1) \
- macro(readableByteStreamControllerCancel, readableByteStreamInternalsReadableByteStreamControllerCancel, 2) \
- macro(readableByteStreamControllerError, readableByteStreamInternalsReadableByteStreamControllerError, 2) \
- macro(readableByteStreamControllerClose, readableByteStreamInternalsReadableByteStreamControllerClose, 1) \
- macro(readableByteStreamControllerClearPendingPullIntos, readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntos, 1) \
- macro(readableByteStreamControllerGetDesiredSize, readableByteStreamInternalsReadableByteStreamControllerGetDesiredSize, 1) \
- macro(readableStreamHasBYOBReader, readableByteStreamInternalsReadableStreamHasBYOBReader, 1) \
- macro(readableStreamHasDefaultReader, readableByteStreamInternalsReadableStreamHasDefaultReader, 1) \
- macro(readableByteStreamControllerHandleQueueDrain, readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrain, 1) \
- macro(readableByteStreamControllerPull, readableByteStreamInternalsReadableByteStreamControllerPull, 1) \
- macro(readableByteStreamControllerShouldCallPull, readableByteStreamInternalsReadableByteStreamControllerShouldCallPull, 1) \
- macro(readableByteStreamControllerCallPullIfNeeded, readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeeded, 1) \
- macro(transferBufferToCurrentRealm, readableByteStreamInternalsTransferBufferToCurrentRealm, 1) \
- macro(readableStreamReaderKind, readableByteStreamInternalsReadableStreamReaderKind, 1) \
- macro(readableByteStreamControllerEnqueue, readableByteStreamInternalsReadableByteStreamControllerEnqueue, 2) \
- macro(readableByteStreamControllerEnqueueChunk, readableByteStreamInternalsReadableByteStreamControllerEnqueueChunk, 4) \
- macro(readableByteStreamControllerRespondWithNewView, readableByteStreamInternalsReadableByteStreamControllerRespondWithNewView, 2) \
- macro(readableByteStreamControllerRespond, readableByteStreamInternalsReadableByteStreamControllerRespond, 2) \
- macro(readableByteStreamControllerRespondInternal, readableByteStreamInternalsReadableByteStreamControllerRespondInternal, 2) \
- macro(readableByteStreamControllerRespondInReadableState, readableByteStreamInternalsReadableByteStreamControllerRespondInReadableState, 3) \
- macro(readableByteStreamControllerRespondInClosedState, readableByteStreamInternalsReadableByteStreamControllerRespondInClosedState, 2) \
- macro(readableByteStreamControllerProcessPullDescriptors, readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptors, 1) \
- macro(readableByteStreamControllerFillDescriptorFromQueue, readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueue, 2) \
- macro(readableByteStreamControllerShiftPendingDescriptor, readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptor, 1) \
- macro(readableByteStreamControllerInvalidateBYOBRequest, readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequest, 1) \
- macro(readableByteStreamControllerCommitDescriptor, readableByteStreamInternalsReadableByteStreamControllerCommitDescriptor, 2) \
- macro(readableByteStreamControllerConvertDescriptor, readableByteStreamInternalsReadableByteStreamControllerConvertDescriptor, 1) \
- macro(readableStreamFulfillReadIntoRequest, readableByteStreamInternalsReadableStreamFulfillReadIntoRequest, 3) \
- macro(readableStreamBYOBReaderRead, readableByteStreamInternalsReadableStreamBYOBReaderRead, 2) \
- macro(readableByteStreamControllerPullInto, readableByteStreamInternalsReadableByteStreamControllerPullInto, 2) \
- macro(readableStreamAddReadIntoRequest, readableByteStreamInternalsReadableStreamAddReadIntoRequest, 1) \
-
-#define WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(macro) \
- macro(readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCode, privateInitializeReadableByteStreamController, ASCIILiteral(), s_readableByteStreamInternalsPrivateInitializeReadableByteStreamControllerCodeLength) \
- macro(readableByteStreamInternalsReadableStreamByteStreamControllerStartCode, readableStreamByteStreamControllerStart, ASCIILiteral(), s_readableByteStreamInternalsReadableStreamByteStreamControllerStartCodeLength) \
- macro(readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCode, privateInitializeReadableStreamBYOBRequest, ASCIILiteral(), s_readableByteStreamInternalsPrivateInitializeReadableStreamBYOBRequestCodeLength) \
- macro(readableByteStreamInternalsIsReadableByteStreamControllerCode, isReadableByteStreamController, ASCIILiteral(), s_readableByteStreamInternalsIsReadableByteStreamControllerCodeLength) \
- macro(readableByteStreamInternalsIsReadableStreamBYOBRequestCode, isReadableStreamBYOBRequest, ASCIILiteral(), s_readableByteStreamInternalsIsReadableStreamBYOBRequestCodeLength) \
- macro(readableByteStreamInternalsIsReadableStreamBYOBReaderCode, isReadableStreamBYOBReader, ASCIILiteral(), s_readableByteStreamInternalsIsReadableStreamBYOBReaderCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerCancelCode, readableByteStreamControllerCancel, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerCancelCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerErrorCode, readableByteStreamControllerError, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerErrorCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerCloseCode, readableByteStreamControllerClose, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerCloseCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCode, readableByteStreamControllerClearPendingPullIntos, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerClearPendingPullIntosCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCode, readableByteStreamControllerGetDesiredSize, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerGetDesiredSizeCodeLength) \
- macro(readableByteStreamInternalsReadableStreamHasBYOBReaderCode, readableStreamHasBYOBReader, ASCIILiteral(), s_readableByteStreamInternalsReadableStreamHasBYOBReaderCodeLength) \
- macro(readableByteStreamInternalsReadableStreamHasDefaultReaderCode, readableStreamHasDefaultReader, ASCIILiteral(), s_readableByteStreamInternalsReadableStreamHasDefaultReaderCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCode, readableByteStreamControllerHandleQueueDrain, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerHandleQueueDrainCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerPullCode, readableByteStreamControllerPull, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerPullCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCode, readableByteStreamControllerShouldCallPull, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerShouldCallPullCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCode, readableByteStreamControllerCallPullIfNeeded, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerCallPullIfNeededCodeLength) \
- macro(readableByteStreamInternalsTransferBufferToCurrentRealmCode, transferBufferToCurrentRealm, ASCIILiteral(), s_readableByteStreamInternalsTransferBufferToCurrentRealmCodeLength) \
- macro(readableByteStreamInternalsReadableStreamReaderKindCode, readableStreamReaderKind, ASCIILiteral(), s_readableByteStreamInternalsReadableStreamReaderKindCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerEnqueueCode, readableByteStreamControllerEnqueue, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerEnqueueCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCode, readableByteStreamControllerEnqueueChunk, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerEnqueueChunkCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCode, readableByteStreamControllerRespondWithNewView, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerRespondWithNewViewCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerRespondCode, readableByteStreamControllerRespond, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerRespondCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerRespondInternalCode, readableByteStreamControllerRespondInternal, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerRespondInternalCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCode, readableByteStreamControllerRespondInReadableState, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerRespondInReadableStateCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCode, readableByteStreamControllerRespondInClosedState, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerRespondInClosedStateCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCode, readableByteStreamControllerProcessPullDescriptors, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerProcessPullDescriptorsCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCode, readableByteStreamControllerFillDescriptorFromQueue, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerFillDescriptorFromQueueCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCode, readableByteStreamControllerShiftPendingDescriptor, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerShiftPendingDescriptorCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCode, readableByteStreamControllerInvalidateBYOBRequest, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerInvalidateBYOBRequestCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCode, readableByteStreamControllerCommitDescriptor, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerCommitDescriptorCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCode, readableByteStreamControllerConvertDescriptor, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerConvertDescriptorCodeLength) \
- macro(readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCode, readableStreamFulfillReadIntoRequest, ASCIILiteral(), s_readableByteStreamInternalsReadableStreamFulfillReadIntoRequestCodeLength) \
- macro(readableByteStreamInternalsReadableStreamBYOBReaderReadCode, readableStreamBYOBReaderRead, ASCIILiteral(), s_readableByteStreamInternalsReadableStreamBYOBReaderReadCodeLength) \
- macro(readableByteStreamInternalsReadableByteStreamControllerPullIntoCode, readableByteStreamControllerPullInto, ASCIILiteral(), s_readableByteStreamInternalsReadableByteStreamControllerPullIntoCodeLength) \
- macro(readableByteStreamInternalsReadableStreamAddReadIntoRequestCode, readableStreamAddReadIntoRequest, ASCIILiteral(), s_readableByteStreamInternalsReadableStreamAddReadIntoRequestCodeLength) \
-
-#define WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(macro) \
- macro(privateInitializeReadableByteStreamController) \
- macro(readableStreamByteStreamControllerStart) \
- macro(privateInitializeReadableStreamBYOBRequest) \
- macro(isReadableByteStreamController) \
- macro(isReadableStreamBYOBRequest) \
- macro(isReadableStreamBYOBReader) \
- macro(readableByteStreamControllerCancel) \
- macro(readableByteStreamControllerError) \
- macro(readableByteStreamControllerClose) \
- macro(readableByteStreamControllerClearPendingPullIntos) \
- macro(readableByteStreamControllerGetDesiredSize) \
- macro(readableStreamHasBYOBReader) \
- macro(readableStreamHasDefaultReader) \
- macro(readableByteStreamControllerHandleQueueDrain) \
- macro(readableByteStreamControllerPull) \
- macro(readableByteStreamControllerShouldCallPull) \
- macro(readableByteStreamControllerCallPullIfNeeded) \
- macro(transferBufferToCurrentRealm) \
- macro(readableStreamReaderKind) \
- macro(readableByteStreamControllerEnqueue) \
- macro(readableByteStreamControllerEnqueueChunk) \
- macro(readableByteStreamControllerRespondWithNewView) \
- macro(readableByteStreamControllerRespond) \
- macro(readableByteStreamControllerRespondInternal) \
- macro(readableByteStreamControllerRespondInReadableState) \
- macro(readableByteStreamControllerRespondInClosedState) \
- macro(readableByteStreamControllerProcessPullDescriptors) \
- macro(readableByteStreamControllerFillDescriptorFromQueue) \
- macro(readableByteStreamControllerShiftPendingDescriptor) \
- macro(readableByteStreamControllerInvalidateBYOBRequest) \
- macro(readableByteStreamControllerCommitDescriptor) \
- macro(readableByteStreamControllerConvertDescriptor) \
- macro(readableStreamFulfillReadIntoRequest) \
- macro(readableStreamBYOBReaderRead) \
- macro(readableByteStreamControllerPullInto) \
- macro(readableStreamAddReadIntoRequest) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ReadableByteStreamInternalsBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ReadableByteStreamInternalsBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* ReadableByteStreamInternalsBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ReadableByteStreamInternalsBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-class ReadableByteStreamInternalsBuiltinFunctions {
-public:
- explicit ReadableByteStreamInternalsBuiltinFunctions(JSC::VM& vm) : m_vm(vm) { }
-
- void init(JSC::JSGlobalObject&);
- template<typename Visitor> void visit(Visitor&);
-
-public:
- JSC::VM& m_vm;
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \
- JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function;
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-};
-
-inline void ReadableByteStreamInternalsBuiltinFunctions::init(JSC::JSGlobalObject& globalObject)
-{
-#define EXPORT_FUNCTION(codeName, functionName, overriddenName, length) \
- m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, codeName##Generator(m_vm), &globalObject));
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_CODE(EXPORT_FUNCTION)
-#undef EXPORT_FUNCTION
-}
-
-template<typename Visitor>
-inline void ReadableByteStreamInternalsBuiltinFunctions::visit(Visitor& visitor)
-{
-#define VISIT_FUNCTION(name) visitor.append(m_##name##Function);
- WEBCORE_FOREACH_READABLEBYTESTREAMINTERNALS_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION)
-#undef VISIT_FUNCTION
-}
-
-template void ReadableByteStreamInternalsBuiltinFunctions::visit(JSC::AbstractSlotVisitor&);
-template void ReadableByteStreamInternalsBuiltinFunctions::visit(JSC::SlotVisitor&);
- /* WritableStreamDefaultController.ts */
-// initializeWritableStreamDefaultController
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTCONTROLLER_INITIALIZEWRITABLESTREAMDEFAULTCONTROLLER 1
-extern const char* const s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCode;
-extern const int s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeImplementationVisibility;
-
-// error
-#define WEBCORE_BUILTIN_WRITABLESTREAMDEFAULTCONTROLLER_ERROR 1
-extern const char* const s_writableStreamDefaultControllerErrorCode;
-extern const int s_writableStreamDefaultControllerErrorCodeLength;
-extern const JSC::ConstructAbility s_writableStreamDefaultControllerErrorCodeConstructAbility;
-extern const JSC::ConstructorKind s_writableStreamDefaultControllerErrorCodeConstructorKind;
-extern const JSC::ImplementationVisibility s_writableStreamDefaultControllerErrorCodeImplementationVisibility;
-
-#define WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_DATA(macro) \
- macro(initializeWritableStreamDefaultController, writableStreamDefaultControllerInitializeWritableStreamDefaultController, 0) \
- macro(error, writableStreamDefaultControllerError, 1) \
-
-#define WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(macro) \
- macro(writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCode, initializeWritableStreamDefaultController, ASCIILiteral(), s_writableStreamDefaultControllerInitializeWritableStreamDefaultControllerCodeLength) \
- macro(writableStreamDefaultControllerErrorCode, error, ASCIILiteral(), s_writableStreamDefaultControllerErrorCodeLength) \
-
-#define WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(macro) \
- macro(initializeWritableStreamDefaultController) \
- macro(error) \
-
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class WritableStreamDefaultControllerBuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit WritableStreamDefaultControllerBuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
- JSC::UnlinkedFunctionExecutable* name##Executable(); \
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \
- JSC::SourceCode m_##name##Source;\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \
-inline JSC::UnlinkedFunctionExecutable* WritableStreamDefaultControllerBuiltinsWrapper::name##Executable() \
-{\
- if (!m_##name##Executable) {\
- JSC::Identifier executableName = functionName##PublicName();\
- if (overriddenName)\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\
- }\
- return m_##name##Executable.get();\
-}
-WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void WritableStreamDefaultControllerBuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_WRITABLESTREAMDEFAULTCONTROLLER_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-class JSBuiltinFunctions {
-public:
- explicit JSBuiltinFunctions(JSC::VM& vm)
- : m_vm(vm)
- , m_bundlerPluginBuiltins(m_vm)
- , m_byteLengthQueuingStrategyBuiltins(m_vm)
- , m_writableStreamInternalsBuiltins(m_vm)
- , m_transformStreamInternalsBuiltins(m_vm)
- , m_processObjectInternalsBuiltins(m_vm)
- , m_transformStreamBuiltins(m_vm)
- , m_jsBufferPrototypeBuiltins(m_vm)
- , m_readableByteStreamControllerBuiltins(m_vm)
- , m_consoleObjectBuiltins(m_vm)
- , m_readableStreamInternalsBuiltins(m_vm)
- , m_transformStreamDefaultControllerBuiltins(m_vm)
- , m_readableStreamBYOBReaderBuiltins(m_vm)
- , m_jsBufferConstructorBuiltins(m_vm)
- , m_readableStreamDefaultReaderBuiltins(m_vm)
- , m_streamInternalsBuiltins(m_vm)
- , m_importMetaObjectBuiltins(m_vm)
- , m_countQueuingStrategyBuiltins(m_vm)
- , m_readableStreamBYOBRequestBuiltins(m_vm)
- , m_writableStreamDefaultWriterBuiltins(m_vm)
- , m_readableStreamBuiltins(m_vm)
- , m_readableStreamDefaultControllerBuiltins(m_vm)
- , m_readableByteStreamInternalsBuiltins(m_vm)
- , m_writableStreamDefaultControllerBuiltins(m_vm)
-
- {
- m_writableStreamInternalsBuiltins.exportNames();
- m_transformStreamInternalsBuiltins.exportNames();
- m_readableStreamInternalsBuiltins.exportNames();
- m_streamInternalsBuiltins.exportNames();
- m_readableByteStreamInternalsBuiltins.exportNames();
- }
- BundlerPluginBuiltinsWrapper& bundlerPluginBuiltins() { return m_bundlerPluginBuiltins; }
- ByteLengthQueuingStrategyBuiltinsWrapper& byteLengthQueuingStrategyBuiltins() { return m_byteLengthQueuingStrategyBuiltins; }
- WritableStreamInternalsBuiltinsWrapper& writableStreamInternalsBuiltins() { return m_writableStreamInternalsBuiltins; }
- TransformStreamInternalsBuiltinsWrapper& transformStreamInternalsBuiltins() { return m_transformStreamInternalsBuiltins; }
- ProcessObjectInternalsBuiltinsWrapper& processObjectInternalsBuiltins() { return m_processObjectInternalsBuiltins; }
- TransformStreamBuiltinsWrapper& transformStreamBuiltins() { return m_transformStreamBuiltins; }
- JSBufferPrototypeBuiltinsWrapper& jsBufferPrototypeBuiltins() { return m_jsBufferPrototypeBuiltins; }
- ReadableByteStreamControllerBuiltinsWrapper& readableByteStreamControllerBuiltins() { return m_readableByteStreamControllerBuiltins; }
- ConsoleObjectBuiltinsWrapper& consoleObjectBuiltins() { return m_consoleObjectBuiltins; }
- ReadableStreamInternalsBuiltinsWrapper& readableStreamInternalsBuiltins() { return m_readableStreamInternalsBuiltins; }
- TransformStreamDefaultControllerBuiltinsWrapper& transformStreamDefaultControllerBuiltins() { return m_transformStreamDefaultControllerBuiltins; }
- ReadableStreamBYOBReaderBuiltinsWrapper& readableStreamBYOBReaderBuiltins() { return m_readableStreamBYOBReaderBuiltins; }
- JSBufferConstructorBuiltinsWrapper& jsBufferConstructorBuiltins() { return m_jsBufferConstructorBuiltins; }
- ReadableStreamDefaultReaderBuiltinsWrapper& readableStreamDefaultReaderBuiltins() { return m_readableStreamDefaultReaderBuiltins; }
- StreamInternalsBuiltinsWrapper& streamInternalsBuiltins() { return m_streamInternalsBuiltins; }
- ImportMetaObjectBuiltinsWrapper& importMetaObjectBuiltins() { return m_importMetaObjectBuiltins; }
- CountQueuingStrategyBuiltinsWrapper& countQueuingStrategyBuiltins() { return m_countQueuingStrategyBuiltins; }
- ReadableStreamBYOBRequestBuiltinsWrapper& readableStreamBYOBRequestBuiltins() { return m_readableStreamBYOBRequestBuiltins; }
- WritableStreamDefaultWriterBuiltinsWrapper& writableStreamDefaultWriterBuiltins() { return m_writableStreamDefaultWriterBuiltins; }
- ReadableStreamBuiltinsWrapper& readableStreamBuiltins() { return m_readableStreamBuiltins; }
- ReadableStreamDefaultControllerBuiltinsWrapper& readableStreamDefaultControllerBuiltins() { return m_readableStreamDefaultControllerBuiltins; }
- ReadableByteStreamInternalsBuiltinsWrapper& readableByteStreamInternalsBuiltins() { return m_readableByteStreamInternalsBuiltins; }
- WritableStreamDefaultControllerBuiltinsWrapper& writableStreamDefaultControllerBuiltins() { return m_writableStreamDefaultControllerBuiltins; }
-
-private:
- JSC::VM& m_vm;
- BundlerPluginBuiltinsWrapper m_bundlerPluginBuiltins;
- ByteLengthQueuingStrategyBuiltinsWrapper m_byteLengthQueuingStrategyBuiltins;
- WritableStreamInternalsBuiltinsWrapper m_writableStreamInternalsBuiltins;
- TransformStreamInternalsBuiltinsWrapper m_transformStreamInternalsBuiltins;
- ProcessObjectInternalsBuiltinsWrapper m_processObjectInternalsBuiltins;
- TransformStreamBuiltinsWrapper m_transformStreamBuiltins;
- JSBufferPrototypeBuiltinsWrapper m_jsBufferPrototypeBuiltins;
- ReadableByteStreamControllerBuiltinsWrapper m_readableByteStreamControllerBuiltins;
- ConsoleObjectBuiltinsWrapper m_consoleObjectBuiltins;
- ReadableStreamInternalsBuiltinsWrapper m_readableStreamInternalsBuiltins;
- TransformStreamDefaultControllerBuiltinsWrapper m_transformStreamDefaultControllerBuiltins;
- ReadableStreamBYOBReaderBuiltinsWrapper m_readableStreamBYOBReaderBuiltins;
- JSBufferConstructorBuiltinsWrapper m_jsBufferConstructorBuiltins;
- ReadableStreamDefaultReaderBuiltinsWrapper m_readableStreamDefaultReaderBuiltins;
- StreamInternalsBuiltinsWrapper m_streamInternalsBuiltins;
- ImportMetaObjectBuiltinsWrapper m_importMetaObjectBuiltins;
- CountQueuingStrategyBuiltinsWrapper m_countQueuingStrategyBuiltins;
- ReadableStreamBYOBRequestBuiltinsWrapper m_readableStreamBYOBRequestBuiltins;
- WritableStreamDefaultWriterBuiltinsWrapper m_writableStreamDefaultWriterBuiltins;
- ReadableStreamBuiltinsWrapper m_readableStreamBuiltins;
- ReadableStreamDefaultControllerBuiltinsWrapper m_readableStreamDefaultControllerBuiltins;
- ReadableByteStreamInternalsBuiltinsWrapper m_readableByteStreamInternalsBuiltins;
- WritableStreamDefaultControllerBuiltinsWrapper m_writableStreamDefaultControllerBuiltins;
-;
-};
-
-class JSBuiltinInternalFunctions {
-public:
- explicit JSBuiltinInternalFunctions(JSC::VM&);
-
- template<typename Visitor> void visit(Visitor&);
- void initialize(Zig::GlobalObject&);
- WritableStreamInternalsBuiltinFunctions& writableStreamInternals() { return m_writableStreamInternals; }
- TransformStreamInternalsBuiltinFunctions& transformStreamInternals() { return m_transformStreamInternals; }
- ReadableStreamInternalsBuiltinFunctions& readableStreamInternals() { return m_readableStreamInternals; }
- StreamInternalsBuiltinFunctions& streamInternals() { return m_streamInternals; }
- ReadableByteStreamInternalsBuiltinFunctions& readableByteStreamInternals() { return m_readableByteStreamInternals; }
-
-private:
- JSC::VM& m_vm;
- WritableStreamInternalsBuiltinFunctions m_writableStreamInternals;
- TransformStreamInternalsBuiltinFunctions m_transformStreamInternals;
- ReadableStreamInternalsBuiltinFunctions m_readableStreamInternals;
- StreamInternalsBuiltinFunctions m_streamInternals;
- ReadableByteStreamInternalsBuiltinFunctions m_readableByteStreamInternals;
-
-};
-
-} // namespace WebCore
diff --git a/src/bun.js/builtins/builtins.d.ts b/src/bun.js/builtins/builtins.d.ts
deleted file mode 100644
index 7bd3e4fae..000000000
--- a/src/bun.js/builtins/builtins.d.ts
+++ /dev/null
@@ -1,533 +0,0 @@
-// Typedefs for JSC intrinsics. Instead of @, we use $
-type TODO = any;
-
-/** Place this directly above a function declaration (like a decorator) to make it a getter. */
-declare const $getter: never;
-/** Assign to this directly above a function declaration (like a decorator) to override the function's display name. */
-declare var $overriddenName: string;
-/** ??? */
-declare var $linkTimeConstant: never;
-/** Assign to this directly above a function declaration (like a decorator) to set visibility */
-declare var $visibility: "Public" | "Private";
-/** ??? */
-declare var $nakedConstructor: never;
-/** Assign to this directly above a function declaration (like a decorator) to set intrinsic */
-declare var $intrinsic: string;
-declare var $constructor;
-/** Place this directly above a function declaration (like a decorator) to NOT include "use strict" */
-declare var $sloppy;
-
-declare function $extractHighWaterMarkFromQueuingStrategyInit(obj: any): any;
-
-// JSC defines their intrinsics in a nice list here:
-// https://github.com/WebKit/WebKit/blob/main/Source/JavaScriptCore/bytecode/BytecodeIntrinsicRegistry.h
-//
-// And implemented here: (search for "emit_intrinsic_<name>", like "emit_intrinsic_arrayPush")
-// https://github.com/WebKit/WebKit/blob/main/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
-
-/** Assert a value is true */
-declare function $assert(index: any): void;
-/** returns `arguments[index]` */
-declare function $argument<T = any>(index: number): any;
-/** returns number of arguments */
-declare function $argumentCount(): number;
-/** array.push(item) */
-declare function $arrayPush(array: T[], item: T): void;
-/** gets a property on an object */
-declare function $getByIdDirect<T = any>(obj: any, key: string): T;
-/**
- * gets a private property on an object. translates to the `op_get_by_id_direct` bytecode.
- *
- * TODO: clarify what private means exactly.
- */
-declare function $getByIdDirectPrivate<T = any>(obj: any, key: string): T;
-/**
- * gets a property on an object
- */
-declare function $getByValWithThis(target: any, receiver: any, propertyKey: string): void;
-/** gets the prototype of an object */
-declare function $getPrototypeOf(value: any): any;
-/** gets an internal property on a promise
- *
- * You can pass
- * - $promiseFieldFlags - get a number with flags
- * - $promiseFieldReactionsOrResult - get the result (like Bun.peek)
- */
-declare function $getPromiseInternalField<K extends PromiseFieldType, V>(
- promise: Promise<V>,
- key: K,
-): PromiseFieldToValue<K, V>;
-declare function $getGeneratorInternalField(): TODO;
-declare function $getAsyncGeneratorInternalField(): TODO;
-declare function $getAbstractModuleRecordInternalField(): TODO;
-declare function $getArrayIteratorInternalField(): TODO;
-declare function $getStringIteratorInternalField(): TODO;
-declare function $getMapIteratorInternalField(): TODO;
-declare function $getSetIteratorInternalField(): TODO;
-declare function $getProxyInternalField(): TODO;
-declare function $idWithProfile(): TODO;
-declare function $isObject(obj: unknown): obj is object;
-declare function $isCallable(fn: unknown): fn is CallableFunction;
-declare function $isConstructor(fn: unknown): fn is { new (...args: any[]): any };
-declare function $isJSArray(obj: unknown): obj is any[];
-declare function $isProxyObject(obj: unknown): obj is Proxy;
-declare function $isDerivedArray(): TODO;
-declare function $isGenerator(obj: unknown): obj is Generator<any, any, any>;
-declare function $isAsyncGenerator(obj: unknown): obj is AsyncGenerator<any, any, any>;
-declare function $isPromise(obj: unknown): obj is Promise<any>;
-declare function $isRegExpObject(obj: unknown): obj is RegExp;
-declare function $isMap<K, V>(obj: unknown): obj is Map<K, V>;
-declare function $isSet<V>(obj: unknown): obj is Set<V>;
-declare function $isShadowRealm(obj: unknown): obj is ShadowRealm;
-declare function $isStringIterator(obj: unknown): obj is Iterator<string>;
-declare function $isArrayIterator(obj: unknown): obj is Iterator<any>;
-declare function $isMapIterator(obj: unknown): obj is Iterator<any>;
-declare function $isSetIterator(obj: unknown): obj is Iterator<any>;
-declare function $isUndefinedOrNull(obj: unknown): obj is null | undefined;
-declare function $tailCallForwardArguments(): TODO;
-/**
- * **NOTE** - use `throw new TypeError()` instead. it compiles to the same builtin
- * @deprecated
- */
-declare function $throwTypeError(message: string): never;
-/**
- * **NOTE** - use `throw new RangeError()` instead. it compiles to the same builtin
- * @deprecated
- */
-declare function $throwRangeError(message: string): never;
-/**
- * **NOTE** - use `throw new OutOfMemoryError()` instead. it compiles to the same builtin
- * @deprecated
- */
-declare function $throwOutOfMemoryError(): never;
-declare function $tryGetById(): TODO;
-declare function $tryGetByIdWithWellKnownSymbol(obj: any, key: WellKnownSymbol): any;
-declare function $putByIdDirect(obj: any, key: PropertyKey, value: any): void;
-declare function $putByIdDirectPrivate(obj: any, key: PropertyKey, value: any): void;
-declare function $putByValDirect(obj: any, key: PropertyKey, value: any): void;
-declare function $putByValWithThisSloppy(): TODO;
-declare function $putByValWithThisStrict(): TODO;
-declare function $putPromiseInternalField<T extends PromiseFieldType, P extends Promise<any>>(
- promise: P,
- key: T,
- value: PromiseFieldToValue<T, P>,
-): void;
-declare function $putGeneratorInternalField(): TODO;
-declare function $putAsyncGeneratorInternalField(): TODO;
-declare function $putArrayIteratorInternalField(): TODO;
-declare function $putStringIteratorInternalField(): TODO;
-declare function $putMapIteratorInternalField(): TODO;
-declare function $putSetIteratorInternalField(): TODO;
-declare function $superSamplerBegin(): TODO;
-declare function $superSamplerEnd(): TODO;
-declare function $toNumber(x: any): number;
-declare function $toString(x: any): string;
-declare function $toPropertyKey(x: any): PropertyKey;
-/**
- * Often used like
- * `$toObject(this, "Class.prototype.method requires that |this| not be null or undefined");`
- */
-declare function $toObject(object: any, errorMessage?: string): object;
-declare function $newArrayWithSize<T>(size: number): T[];
-declare function $newArrayWithSpecies(): TODO;
-declare function $newPromise(): TODO;
-declare function $createPromise(): TODO;
-declare const $iterationKindKey: TODO;
-declare const $iterationKindValue: TODO;
-declare const $iterationKindEntries: TODO;
-declare const $MAX_ARRAY_INDEX: number;
-declare const $MAX_STRING_LENGTH: number;
-declare const $MAX_SAFE_INTEGER: number;
-declare const $ModuleFetch: number;
-declare const $ModuleTranslate: number;
-declare const $ModuleInstantiate: number;
-declare const $ModuleSatisfy: number;
-declare const $ModuleLink: number;
-declare const $ModuleReady: number;
-declare const $promiseRejectionReject: TODO;
-declare const $promiseRejectionHandle: TODO;
-declare const $promiseStatePending: number;
-declare const $promiseStateFulfilled: number;
-declare const $promiseStateRejected: number;
-declare const $promiseStateMask: number;
-declare const $promiseFlagsIsHandled: number;
-declare const $promiseFlagsIsFirstResolvingFunctionCalled: number;
-declare const $promiseFieldFlags: unique symbol;
-declare const $promiseFieldReactionsOrResult: unique symbol;
-declare const $proxyFieldTarget: TODO;
-declare const $proxyFieldHandler: TODO;
-declare const $generatorFieldState: TODO;
-declare const $generatorFieldNext: TODO;
-declare const $generatorFieldThis: TODO;
-declare const $generatorFieldFrame: TODO;
-declare const $generatorFieldContext: TODO;
-declare const $GeneratorResumeModeNormal: TODO;
-declare const $GeneratorResumeModeThrow: TODO;
-declare const $GeneratorResumeModeReturn: TODO;
-declare const $GeneratorStateCompleted: TODO;
-declare const $GeneratorStateExecuting: TODO;
-declare const $arrayIteratorFieldIndex: TODO;
-declare const $arrayIteratorFieldIteratedObject: TODO;
-declare const $arrayIteratorFieldKind: TODO;
-declare const $mapIteratorFieldMapBucket: TODO;
-declare const $mapIteratorFieldKind: TODO;
-declare const $setIteratorFieldSetBucket: TODO;
-declare const $setIteratorFieldKind: TODO;
-declare const $stringIteratorFieldIndex: TODO;
-declare const $stringIteratorFieldIteratedString: TODO;
-declare const $asyncGeneratorFieldSuspendReason: TODO;
-declare const $asyncGeneratorFieldQueueFirst: TODO;
-declare const $asyncGeneratorFieldQueueLast: TODO;
-declare const $AsyncGeneratorStateCompleted: TODO;
-declare const $AsyncGeneratorStateExecuting: TODO;
-declare const $AsyncGeneratorStateAwaitingReturn: TODO;
-declare const $AsyncGeneratorStateSuspendedStart: TODO;
-declare const $AsyncGeneratorStateSuspendedYield: TODO;
-declare const $AsyncGeneratorSuspendReasonYield: TODO;
-declare const $AsyncGeneratorSuspendReasonAwait: TODO;
-declare const $AsyncGeneratorSuspendReasonNone: TODO;
-declare const $abstractModuleRecordFieldState: TODO;
-
-// We define our intrinsics in ./BunBuiltinNames.h. Some of those are globals.
-
-declare var $_events: TODO;
-declare function $abortAlgorithm(): TODO;
-declare function $abortSteps(): TODO;
-declare function $addEventListener(): TODO;
-declare function $appendFromJS(): TODO;
-declare function $argv(): TODO;
-declare function $assignToStream(): TODO;
-declare function $associatedReadableByteStreamController(): TODO;
-declare function $autoAllocateChunkSize(): TODO;
-declare function $backpressure(): TODO;
-declare function $backpressureChangePromise(): TODO;
-declare function $basename(): TODO;
-declare function $body(): TODO;
-declare function $bunNativePtr(): TODO;
-declare function $bunNativeType(): TODO;
-declare function $byobRequest(): TODO;
-declare function $cancel(): TODO;
-declare function $cancelAlgorithm(): TODO;
-declare function $chdir(): TODO;
-declare function $cloneArrayBuffer(a, b, c): TODO;
-declare function $close(): TODO;
-declare function $closeAlgorithm(): TODO;
-declare function $closeRequest(): TODO;
-declare function $closeRequested(): TODO;
-declare function $closed(): TODO;
-declare function $closedPromise(): TODO;
-declare function $closedPromiseCapability(): TODO;
-declare function $code(): TODO;
-declare const $commonJSSymbol: unique symbol;
-declare function $connect(): TODO;
-declare function $consumeReadableStream(): TODO;
-declare function $controlledReadableStream(): TODO;
-declare function $controller(): TODO;
-declare function $cork(): TODO;
-declare function $createEmptyReadableStream(): TODO;
-declare function $createFIFO(): TODO;
-declare function $createNativeReadableStream(): TODO;
-declare function $createReadableStream(): TODO;
-declare function $createUninitializedArrayBuffer(size: number): ArrayBuffer;
-declare function $createWritableStreamFromInternal(): TODO;
-declare function $cwd(): TODO;
-declare function $data(): TODO;
-declare function $dataView(): TODO;
-declare function $decode(): TODO;
-declare function $delimiter(): TODO;
-declare function $destroy(): TODO;
-declare function $dir(): TODO;
-declare function $direct(): TODO;
-declare function $dirname(): TODO;
-declare function $disturbed(): TODO;
-declare function $document(): TODO;
-declare function $encode(): TODO;
-declare function $encoding(): TODO;
-declare function $end(): TODO;
-declare function $errno(): TODO;
-declare function $errorSteps(): TODO;
-declare function $execArgv(): TODO;
-declare function $extname(): TODO;
-declare function $failureKind(): TODO;
-declare function $fatal(): TODO;
-declare function $fetch(): TODO;
-declare function $fetchRequest(): TODO;
-declare function $file(): TODO;
-declare function $filePath(): TODO;
-declare function $fillFromJS(): TODO;
-declare function $filter(): TODO;
-declare function $finishConsumingStream(): TODO;
-declare function $flush(): TODO;
-declare function $flushAlgorithm(): TODO;
-declare function $format(): TODO;
-declare function $fulfillModuleSync(key: string): void;
-declare function $get(): TODO;
-declare function $getInternalWritableStream(writable: WritableStream): TODO;
-declare function $handleEvent(): TODO;
-declare function $hash(): TODO;
-declare function $header(): TODO;
-declare function $headers(): TODO;
-declare function $highWaterMark(): TODO;
-declare function $host(): TODO;
-declare function $hostname(): TODO;
-declare function $href(): TODO;
-declare function $ignoreBOM(): TODO;
-declare function $importer(): TODO;
-declare function $inFlightCloseRequest(): TODO;
-declare function $inFlightWriteRequest(): TODO;
-declare function $initializeWith(): TODO;
-declare function $internalRequire(path: string): TODO;
-declare function $internalStream(): TODO;
-declare function $internalWritable(): TODO;
-declare function $isAbortSignal(signal: unknown): signal is AbortSignal;
-declare function $isAbsolute(): TODO;
-declare function $isDisturbed(): TODO;
-declare function $isPaused(): TODO;
-declare function $isWindows(): TODO;
-declare function $join(): TODO;
-declare function $kind(): TODO;
-declare function $lazy(): TODO;
-declare function $lazyLoad(): TODO;
-declare function $lazyStreamPrototypeMap(): TODO;
-declare function $loadModule(): TODO;
-declare function $localStreams(): TODO;
-declare function $main(): TODO;
-declare function $makeDOMException(): TODO;
-declare function $makeGetterTypeError(className: string, prop: string): Error;
-declare function $makeThisTypeError(className: string, method: string): Error;
-declare function $map(): TODO;
-declare function $method(): TODO;
-declare function $nextTick(): TODO;
-declare function $normalize(): TODO;
-declare function $on(): TODO;
-declare function $once(): TODO;
-declare function $options(): TODO;
-declare function $origin(): TODO;
-declare function $ownerReadableStream(): TODO;
-declare function $parse(): TODO;
-declare function $password(): TODO;
-declare function $patch(): TODO;
-declare function $path(): TODO;
-declare function $pathname(): TODO;
-declare function $pause(): TODO;
-declare function $pendingAbortRequest(): TODO;
-declare function $pendingPullIntos(): TODO;
-declare function $pid(): TODO;
-declare function $pipe(): TODO;
-declare function $port(): TODO;
-declare function $post(): TODO;
-declare function $ppid(): TODO;
-declare function $prependEventListener(): TODO;
-declare function $process(): TODO;
-declare function $protocol(): TODO;
-declare function $pull(): TODO;
-declare function $pullAgain(): TODO;
-declare function $pullAlgorithm(): TODO;
-declare function $pulling(): TODO;
-declare function $put(): TODO;
-declare function $queue(): TODO;
-declare function $read(): TODO;
-declare function $readIntoRequests(): TODO;
-declare function $readRequests(): TODO;
-declare function $readable(): TODO;
-declare function $readableStreamController(): TODO;
-declare function $readableStreamToArray(): TODO;
-declare function $reader(): TODO;
-declare function $readyPromise(): TODO;
-declare function $readyPromiseCapability(): TODO;
-declare function $redirect(): TODO;
-declare function $relative(): TODO;
-declare function $releaseLock(): TODO;
-declare function $removeEventListener(): TODO;
-declare function $require(): TODO;
-declare function $requireESM(path: string): any;
-declare const $requireMap: Map<string, TODO>;
-declare function $resolve(name: string, from: string): Promise<string>;
-declare function $resolveSync(name: string, from: string): string;
-declare function $resume(): TODO;
-declare function $search(): TODO;
-declare function $searchParams(): TODO;
-declare function $self(): TODO;
-declare function $sep(): TODO;
-declare function $setBody(): TODO;
-declare function $setStatus(): TODO;
-declare function $setup(): TODO;
-declare function $sink(): TODO;
-declare function $size(): TODO;
-declare function $start(): TODO;
-declare function $startAlgorithm(): TODO;
-declare function $startConsumingStream(): TODO;
-declare function $startDirectStream(): TODO;
-declare function $started(): TODO;
-declare function $startedPromise(): TODO;
-declare function $state(): TODO;
-declare function $status(): TODO;
-declare function $storedError(): TODO;
-declare function $strategy(): TODO;
-declare function $strategyHWM(): TODO;
-declare function $strategySizeAlgorithm(): TODO;
-declare function $stream(): TODO;
-declare function $streamClosed(): TODO;
-declare function $streamClosing(): TODO;
-declare function $streamErrored(): TODO;
-declare function $streamReadable(): TODO;
-declare function $streamWaiting(): TODO;
-declare function $streamWritable(): TODO;
-declare function $structuredCloneForStream(): TODO;
-declare function $syscall(): TODO;
-declare function $textDecoderStreamDecoder(): TODO;
-declare function $textDecoderStreamTransform(): TODO;
-declare function $textEncoderStreamEncoder(): TODO;
-declare function $textEncoderStreamTransform(): TODO;
-declare function $toNamespacedPath(): TODO;
-declare function $trace(): TODO;
-declare function $transformAlgorithm(): TODO;
-declare function $uncork(): TODO;
-declare function $underlyingByteSource(): TODO;
-declare function $underlyingSink(): TODO;
-declare function $underlyingSource(): TODO;
-declare function $unpipe(): TODO;
-declare function $unshift(): TODO;
-declare function $url(): TODO;
-declare function $username(): TODO;
-declare function $version(): TODO;
-declare function $versions(): TODO;
-declare function $view(): TODO;
-declare function $whenSignalAborted(signal: AbortSignal, cb: (reason: any) => void): TODO;
-declare function $writable(): TODO;
-declare function $write(): TODO;
-declare function $writeAlgorithm(): TODO;
-declare function $writeRequests(): TODO;
-declare function $writer(): TODO;
-declare function $writing(): TODO;
-declare function $written(): TODO;
-
-// The following I cannot find any definitions of, but they are functional.
-declare function $toLength(length: number): number;
-declare function $isTypedArrayView(obj: unknown): obj is ArrayBufferView | DataView | Uint8Array;
-declare function $setStateToMax(target: any, state: number): void;
-declare function $trunc(target: number): number;
-declare function $newPromiseCapability(C: PromiseConstructor): TODO;
-/** @deprecated, use new TypeError instead */
-declare function $makeTypeError(message: string): TypeError;
-declare function $newHandledRejectedPromise(error: unknown): Promise<never>;
-
-// Types used in the above functions
-type PromiseFieldType = typeof $promiseFieldFlags | typeof $promiseFieldReactionsOrResult;
-type PromiseFieldToValue<X extends PromiseFieldType, V> = X extends typeof $promiseFieldFlags
- ? number
- : X extends typeof $promiseFieldReactionsOrResult
- ? V | any
- : any;
-type WellKnownSymbol = keyof { [K in keyof SymbolConstructor as SymbolConstructor[K] extends symbol ? K : never]: K };
-
-// You can also `@` on any method on a classes to avoid prototype pollution and secret internals
-type ClassWithIntrinsics<T> = { [K in keyof T as T[K] extends Function ? `$${K}` : never]: T[K] };
-
-declare interface Map<K, V> extends ClassWithIntrinsics<Map<K, V>> {}
-declare interface CallableFunction extends ClassWithIntrinsics<CallableFunction> {}
-declare interface Promise<T> extends ClassWithIntrinsics<Promise<T>> {}
-declare interface ArrayBufferConstructor<T> extends ClassWithIntrinsics<ArrayBufferConstructor<T>> {}
-declare interface PromiseConstructor<T> extends ClassWithIntrinsics<PromiseConstructor<T>> {}
-
-declare interface UnderlyingSource {
- $lazy: boolean;
- $bunNativeType: number;
- $bunNativePtr: number;
- autoAllocateChunkSize?: number;
-}
-
-declare class OutOfMemoryError {
- constructor();
-}
-
-declare class ReadableStreamDefaultController {
- constructor(
- stream: unknown,
- underlyingSource: unknown,
- size: unknown,
- highWaterMark: unknown,
- $isReadableStream: typeof $isReadableStream,
- );
-}
-declare class ReadableByteStreamController {
- constructor(
- stream: unknown,
- underlyingSource: unknown,
- strategy: unknown,
- $isReadableStream: typeof $isReadableStream,
- );
-}
-declare class ReadableStreamBYOBRequest {
- constructor(stream: unknown, view: unknown, $isReadableStream: typeof $isReadableStream);
-}
-declare class ReadableStreamBYOBReader {
- constructor(stream: unknown);
-}
-
-// Inlining our enum types
-declare const $ImportKindIdToLabel: Array<import("bun").ImportKind>;
-declare const $ImportKindLabelToId: Record<import("bun").ImportKind, number>;
-declare const $LoaderIdToLabel: Array<import("bun").Loader>;
-declare const $LoaderLabelToId: Record<import("bun").Loader, number>;
-
-// not a builtin, but a build-time macro of our own
-/** Returns a not implemented error that points to a github issue. */
-declare function notImplementedIssue(issueNumber: number, description: string): Error;
-/** Return a function that throws a not implemented error that points to a github issue */
-declare function notImplementedIssueFn(issueNumber: number, description: string): (...args: any[]) => never;
-
-declare type JSCSourceCodeObject = unique symbol;
-
-declare var Loader: {
- registry: Map<string, LoaderEntry>;
-
- parseModule(key: string, sourceCodeObject: JSCSourceCodeObject): Promise<LoaderModule> | LoaderModule;
- linkAndEvaluateModule(resolvedSpecifier: string, unknown: any);
- getModuleNamespaceObject(module: LoaderModule): any;
- requestedModules(module: LoaderModule): string[];
- dependencyKeysIfEvaluated(specifier: string): string[];
- resolve(specifier: string, referrer: string): string;
- ensureRegistered(key: string): LoaderEntry;
-};
-
-interface LoaderEntry {
- key: string;
- state: number;
- fetch: Promise<JSCSourceCodeObject>;
- instantiate: Promise<any>;
- satisfy: Promise<any>;
- dependencies: string[];
- module: LoaderModule;
- linkError?: any;
- linkSucceeded: boolean;
- evaluated: boolean;
- then?: any;
- isAsync: boolean;
-}
-
-interface LoaderModule {
- dependenciesMap: Map<string, LoaderEntry>;
-}
-
-declare module "bun" {
- var TOML: {
- parse(contents: string): any;
- };
- function fs(): typeof import("node:fs");
- function _Os(): typeof import("node:os");
- var main: string;
- var tty: Array<{ hasColors: boolean }>;
-}
-
-declare interface Function {
- path: string;
-}
-
-declare var $Buffer: {
- new (a: any, b?: any, c?: any): Buffer;
-};
-
-declare interface Error {
- code?: string;
-}
diff --git a/src/bun.js/builtins/codegen/builtin-parser.ts b/src/bun.js/builtins/codegen/builtin-parser.ts
deleted file mode 100644
index e96d79c63..000000000
--- a/src/bun.js/builtins/codegen/builtin-parser.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import { applyReplacements } from "./replacements";
-
-/**
- * Slices a string until it hits a }, but keeping in mind JS comments,
- * regex, template literals, comments, and matching {
- *
- * Used to extract function bodies without parsing the code.
- *
- * If you pass replace=true, it will run replacements on the code
- */
-export function sliceSourceCode(
- contents: string,
- replace: boolean,
-): { result: string; rest: string; usesThis: boolean } {
- let bracketCount = 0;
- let i = 0;
- let result = "";
- let usesThis = false;
- while (contents.length) {
- // TODO: template literal, regexp
- // these are important because our replacement logic would replace intrinsics
- // within these, when it should remain as the literal dollar.
- // but this isn't used in the codebase
- i = contents.match(/\/\*|\/\/|'|"|{|}|`/)?.index ?? contents.length;
- const chunk = replace ? applyReplacements(contents.slice(0, i)) : contents.slice(0, i);
- if (chunk.includes("this")) usesThis = true;
- result += chunk;
- contents = contents.slice(i);
- if (!contents.length) break;
- if (contents.startsWith("/*")) {
- i = contents.slice(2).indexOf("*/") + 2;
- } else if (contents.startsWith("//")) {
- i = contents.slice(2).indexOf("\n") + 2;
- } else if (contents.startsWith("'")) {
- i = contents.slice(1).match(/(?<!\\)'/)!.index! + 2;
- } else if (contents.startsWith('"')) {
- i = contents.slice(1).match(/(?<!\\)"/)!.index! + 2;
- } else if (contents.startsWith("`")) {
- const { result: result2, rest } = sliceTemplateLiteralSourceCode(contents.slice(1), replace);
- result += "`" + result2;
- contents = rest;
- continue;
- } else if (contents.startsWith("{")) {
- bracketCount++;
- i = 1;
- } else if (contents.startsWith("}")) {
- bracketCount--;
- if (bracketCount <= 0) {
- result += "}";
- contents = contents.slice(1);
- break;
- }
- i = 1;
- } else {
- throw new Error("TODO");
- }
- result += contents.slice(0, i);
- contents = contents.slice(i);
- }
-
- return { result, rest: contents, usesThis };
-}
-
-function sliceTemplateLiteralSourceCode(contents: string, replace: boolean) {
- let i = 0;
- let result = "";
- let usesThis = false;
- while (contents.length) {
- i = contents.match(/`|\${/)!.index!;
- result += contents.slice(0, i);
- contents = contents.slice(i);
- if (!contents.length) break;
- if (contents.startsWith("`")) {
- result += "`";
- contents = contents.slice(1);
- break;
- } else if (contents.startsWith("$")) {
- const { result: result2, rest, usesThis: usesThisVal } = sliceSourceCode(contents.slice(1), replace);
- result += "$" + result2;
- contents = rest;
- usesThis ||= usesThisVal;
- continue;
- } else {
- throw new Error("TODO");
- }
- }
-
- return { result, rest: contents, usesThis };
-}
diff --git a/src/bun.js/builtins/codegen/helpers.ts b/src/bun.js/builtins/codegen/helpers.ts
deleted file mode 100644
index 6345f8ffa..000000000
--- a/src/bun.js/builtins/codegen/helpers.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-export function fmtCPPString(str: string) {
- return (
- '"' +
- str
- .replace(/\\/g, "\\\\")
- .replace(/"/g, '\\"')
- .replace(/\n/g, "\\n")
- .replace(/\r/g, "\\r")
- .replace(/\t/g, "\\t")
- .replace(/\?/g, "\\?") + // https://stackoverflow.com/questions/1234582
- '"'
- );
-}
-
-export function cap(str: string) {
- return str[0].toUpperCase() + str.slice(1);
-}
-
-export function low(str: string) {
- if (str.startsWith("JS")) {
- return "js" + str.slice(2);
- }
-
- return str[0].toLowerCase() + str.slice(1);
-}
diff --git a/src/bun.js/builtins/codegen/index.ts b/src/bun.js/builtins/codegen/index.ts
deleted file mode 100644
index c9e44ec06..000000000
--- a/src/bun.js/builtins/codegen/index.ts
+++ /dev/null
@@ -1,624 +0,0 @@
-import { existsSync, mkdirSync, readdirSync, rmSync, writeFileSync } from "fs";
-import path from "path";
-import { sliceSourceCode } from "./builtin-parser";
-import { applyGlobalReplacements, enums, globalsToPrefix } from "./replacements";
-import { cap, fmtCPPString, low } from "./helpers";
-
-console.log("Bundling Bun builtins...");
-
-const MINIFY = process.argv.includes("--minify") || process.argv.includes("-m");
-const PARALLEL = process.argv.includes("--parallel") || process.argv.includes("-p");
-const KEEP_TMP = process.argv.includes("--keep-tmp") || process.argv.includes("-k");
-
-const SRC_DIR = path.join(import.meta.dir, "../ts");
-const OUT_DIR = path.join(import.meta.dir, "../");
-const TMP_DIR = path.join(import.meta.dir, "../out");
-
-if (existsSync(TMP_DIR)) rmSync(TMP_DIR, { recursive: true });
-mkdirSync(TMP_DIR);
-
-const define = {
- "process.env.NODE_ENV": "development",
- "process.platform": process.platform,
- "process.arch": process.arch,
-};
-
-for (const name in enums) {
- const value = enums[name];
- if (typeof value !== "object") throw new Error("Invalid enum object " + name + " defined in " + import.meta.file);
- if (typeof value === null) throw new Error("Invalid enum object " + name + " defined in " + import.meta.file);
- const keys = Array.isArray(value) ? value : Object.keys(value).filter(k => !k.match(/^[0-9]+$/));
- define[`__intrinsic__${name}IdToLabel`] = "[" + keys.map(k => `"${k}"`).join(", ") + "]";
- define[`__intrinsic__${name}LabelToId`] = "{" + keys.map(k => `"${k}": ${keys.indexOf(k)}`).join(", ") + "}";
-}
-
-for (const name of globalsToPrefix) {
- define[name] = "__intrinsic__" + name;
-}
-
-interface ParsedBuiltin {
- name: string;
- params: string[];
- directives: Record<string, any>;
- source: string;
- async: boolean;
-}
-interface BundledBuiltin {
- name: string;
- directives: Record<string, any>;
- isGetter: boolean;
- isConstructor: boolean;
- isLinkTimeConstant: boolean;
- isNakedConstructor: boolean;
- intrinsic: string;
- overriddenName: string;
- source: string;
- params: string[];
- visibility: string;
-}
-
-/**
- * Source .ts file --> Array<bundled js function code>
- */
-async function processFileSplit(filename: string): Promise<{ functions: BundledBuiltin[]; internal: boolean }> {
- const basename = path.basename(filename, ".ts");
- let contents = await Bun.file(filename).text();
-
- contents = applyGlobalReplacements(contents);
-
- // first approach doesnt work perfectly because we actually need to split each function declaration
- // and then compile those separately
-
- const consumeWhitespace = /^\s*/;
- const consumeTopLevelContent = /^(\/\*|\/\/|type|import|interface|\$|export (?:async )?function|(?:async )?function)/;
- const consumeEndOfType = /;|.(?=export|type|interface|\$|\/\/|\/\*|function)/;
-
- const functions: ParsedBuiltin[] = [];
- let directives: Record<string, any> = {};
- const bundledFunctions: BundledBuiltin[] = [];
- let internal = false;
-
- while (contents.length) {
- contents = contents.replace(consumeWhitespace, "");
- if (!contents.length) break;
- const match = contents.match(consumeTopLevelContent);
- if (!match) {
- throw new SyntaxError("Could not process input:\n" + contents.slice(0, contents.indexOf("\n")));
- }
- contents = contents.slice(match.index!);
- if (match[1] === "import") {
- // TODO: we may want to do stuff with these
- const i = contents.indexOf(";");
- contents = contents.slice(i + 1);
- } else if (match[1] === "/*") {
- const i = contents.indexOf("*/") + 2;
- internal ||= contents.slice(0, i).includes("@internal");
- contents = contents.slice(i);
- } else if (match[1] === "//") {
- const i = contents.indexOf("\n") + 1;
- internal ||= contents.slice(0, i).includes("@internal");
- contents = contents.slice(i);
- } else if (match[1] === "type" || match[1] === "export type") {
- const i = contents.search(consumeEndOfType);
- contents = contents.slice(i + 1);
- } else if (match[1] === "interface") {
- contents = sliceSourceCode(contents, false).rest;
- } else if (match[1] === "$") {
- const directive = contents.match(/^\$([a-zA-Z0-9]+)(?:\s*=\s*([^\n]+?))?\s*;?\n/);
- if (!directive) {
- throw new SyntaxError("Could not parse directive:\n" + contents.slice(0, contents.indexOf("\n")));
- }
- const name = directive[1];
- let value;
- try {
- value = directive[2] ? JSON.parse(directive[2]) : true;
- } catch (error) {
- throw new SyntaxError("Could not parse directive value " + directive[2] + " (must be JSON parsable)");
- }
- if (name === "constructor") {
- throw new SyntaxError("$constructor not implemented");
- }
- if (name === "nakedConstructor") {
- throw new SyntaxError("$nakedConstructor not implemented");
- }
- directives[name] = value;
- contents = contents.slice(directive[0].length);
- } else if (match[1] === "export function" || match[1] === "export async function") {
- const declaration = contents.match(
- /^export\s+(async\s+)?function\s+([a-zA-Z0-9]+)\s*\(([^)]*)\)(?:\s*:\s*([^{\n]+))?\s*{?/,
- );
- if (!declaration)
- throw new SyntaxError("Could not parse function declaration:\n" + contents.slice(0, contents.indexOf("\n")));
-
- const async = !!declaration[1];
- const name = declaration[2];
- const paramString = declaration[3];
- const params =
- paramString.trim().length === 0 ? [] : paramString.split(",").map(x => x.replace(/:.+$/, "").trim());
- if (params[0] === "this") {
- params.shift();
- }
-
- const { result, rest } = sliceSourceCode(contents.slice(declaration[0].length - 1), true);
- functions.push({
- name,
- params,
- directives,
- source: result.trim().slice(1, -1),
- async,
- });
- contents = rest;
- directives = {};
- } else if (match[1] === "function" || match[1] === "async function") {
- const fnname = contents.match(/^function ([a-zA-Z0-9]+)\(([^)]*)\)(?:\s*:\s*([^{\n]+))?\s*{?/)![1];
- throw new SyntaxError("All top level functions must be exported: " + fnname);
- } else {
- throw new Error("TODO: parse " + match[1]);
- }
- }
-
- for (const fn of functions) {
- const tmpFile = path.join(TMP_DIR, `${basename}.${fn.name}.ts`);
-
- // not sure if this optimization works properly in jsc builtins
- // const useThis = fn.usesThis;
- const useThis = true;
-
- // TODO: we should use format=IIFE so we could bundle imports and extra functions.
- await Bun.write(
- tmpFile,
- `// @ts-nocheck
-// GENERATED TEMP FILE - DO NOT EDIT
-// Sourced from ${path.relative(TMP_DIR, filename)}
-
-// do not allow the bundler to rename a symbol to $
-($);
-
-$$capture_start$$(${fn.async ? "async " : ""}${
- useThis
- ? `function(${fn.params.join(",")})`
- : `${fn.params.length === 1 ? fn.params[0] : `(${fn.params.join(",")})`}=>`
- } {${fn.source}}).$$capture_end$$;
-`,
- );
- await Bun.sleep(1);
- const build = await Bun.build({
- entrypoints: [tmpFile],
- define,
- minify: true,
- });
- if (!build.success) {
- throw new AggregateError(build.logs, "Failed bundling builtin function " + fn.name + " from " + basename + ".ts");
- }
- if (build.outputs.length !== 1) {
- throw new Error("expected one output");
- }
- const output = await build.outputs[0].text();
- const captured = output.match(/\$\$capture_start\$\$([\s\S]+)\.\$\$capture_end\$\$/)![1];
- const finalReplacement =
- (fn.directives.sloppy ? captured : captured.replace(/function\s*\(.*?\)\s*{/, '$&"use strict";'))
- .replace(/^\((async )?function\(/, "($1function (")
- .replace(/__intrinsic__/g, "@") + "\n";
-
- bundledFunctions.push({
- name: fn.name,
- directives: fn.directives,
- source: finalReplacement,
- params: fn.params,
- visibility: fn.directives.visibility ?? (fn.directives.linkTimeConstant ? "Private" : "Public"),
- isGetter: !!fn.directives.getter,
- isConstructor: !!fn.directives.constructor,
- isLinkTimeConstant: !!fn.directives.linkTimeConstant,
- isNakedConstructor: !!fn.directives.nakedConstructor,
- intrinsic: fn.directives.intrinsic ?? "NoIntrinsic",
- overriddenName: fn.directives.getter
- ? `"get ${fn.name}"_s`
- : fn.directives.overriddenName
- ? `"${fn.directives.overriddenName}"_s`
- : "ASCIILiteral()",
- });
- }
-
- return {
- functions: bundledFunctions,
- internal,
- };
-}
-
-const filesToProcess = readdirSync(SRC_DIR).filter(x => x.endsWith(".ts"));
-
-const files: Array<{ basename: string; functions: BundledBuiltin[]; internal: boolean }> = [];
-async function processFile(x: string) {
- const basename = path.basename(x, ".ts");
- try {
- files.push({
- basename,
- ...(await processFileSplit(path.join(SRC_DIR, x))),
- });
- } catch (error) {
- console.error("Failed to process file: " + basename + ".ts");
- console.error(error);
- process.exit(1);
- }
-}
-
-// Bun seems to crash if this is parallelized, :(
-if (PARALLEL) {
- await Promise.all(filesToProcess.map(processFile));
-} else {
- for (const x of filesToProcess) {
- await processFile(x);
- }
-}
-
-// C++ codegen
-let bundledCPP = `// Generated by \`bun src/bun.js/builtins/codegen/index.js\`
-// Do not edit by hand.
-namespace Zig { class GlobalObject; }
-#include "root.h"
-#include "config.h"
-#include "JSDOMGlobalObject.h"
-#include "WebCoreJSClientData.h"
-#include <JavaScriptCore/JSObjectInlines.h>
-
-namespace WebCore {
-
-`;
-
-for (const { basename, functions } of files) {
- bundledCPP += `/* ${basename}.ts */\n`;
- const lowerBasename = low(basename);
- for (const fn of functions) {
- const name = `${lowerBasename}${cap(fn.name)}Code`;
- bundledCPP += `// ${fn.name}
-const JSC::ConstructAbility s_${name}ConstructAbility = JSC::ConstructAbility::CannotConstruct;
-const JSC::ConstructorKind s_${name}ConstructorKind = JSC::ConstructorKind::None;
-const JSC::ImplementationVisibility s_${name}ImplementationVisibility = JSC::ImplementationVisibility::${fn.visibility};
-const int s_${name}Length = ${fn.source.length};
-static const JSC::Intrinsic s_${name}Intrinsic = JSC::NoIntrinsic;
-const char* const s_${name} = ${fmtCPPString(fn.source)};
-
-`;
- }
- bundledCPP += `#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \\
-JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \\
-{\\
- JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \\
- return clientData->builtinFunctions().${lowerBasename}Builtins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().${lowerBasename}Builtins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \\
-}
-WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
-#undef DEFINE_BUILTIN_GENERATOR
-
-`;
-}
-
-bundledCPP += `
-
-JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM& vm)
- : m_vm(vm)
-`;
-
-for (const { basename, internal } of files) {
- if (internal) {
- bundledCPP += ` , m_${low(basename)}(vm)\n`;
- }
-}
-
-bundledCPP += `
-{
- UNUSED_PARAM(vm);
-}
-
-template<typename Visitor>
-void JSBuiltinInternalFunctions::visit(Visitor& visitor)
-{
-`;
-for (const { basename, internal } of files) {
- if (internal) bundledCPP += ` m_${low(basename)}.visit(visitor);\n`;
-}
-
-bundledCPP += `
- UNUSED_PARAM(visitor);
-}
-
-template void JSBuiltinInternalFunctions::visit(AbstractSlotVisitor&);
-template void JSBuiltinInternalFunctions::visit(SlotVisitor&);
-
-SUPPRESS_ASAN void JSBuiltinInternalFunctions::initialize(Zig::GlobalObject& globalObject)
-{
- UNUSED_PARAM(globalObject);
-`;
-
-for (const { basename, internal } of files) {
- if (internal) {
- bundledCPP += ` m_${low(basename)}.init(globalObject);\n`;
- }
-}
-
-bundledCPP += `
- JSVMClientData& clientData = *static_cast<JSVMClientData*>(m_vm.clientData);
- Zig::GlobalObject::GlobalPropertyInfo staticGlobals[] = {
-`;
-
-for (const { basename, internal } of files) {
- if (internal) {
- bundledCPP += `#define DECLARE_GLOBAL_STATIC(name) \\
- Zig::GlobalObject::GlobalPropertyInfo( \\
- clientData.builtinFunctions().${low(basename)}Builtins().name##PrivateName(), ${low(
- basename,
- )}().m_##name##Function.get() , JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly),
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
- #undef DECLARE_GLOBAL_STATIC
- `;
- }
-}
-
-bundledCPP += `
- };
- globalObject.addStaticGlobals(staticGlobals, std::size(staticGlobals));
- UNUSED_PARAM(clientData);
-}
-
-} // namespace WebCore
-`;
-
-// C++ Header codegen
-let bundledHeader = `// Generated by \`bun src/bun.js/builtins/codegen/index.js\`
-// Do not edit by hand.
-#pragma once
-namespace Zig { class GlobalObject; }
-#include "root.h"
-#include <JavaScriptCore/BuiltinUtils.h>
-#include <JavaScriptCore/Identifier.h>
-#include <JavaScriptCore/JSFunction.h>
-#include <JavaScriptCore/UnlinkedFunctionExecutable.h>
-#include <JavaScriptCore/VM.h>
-#include <JavaScriptCore/WeakInlines.h>
-
-namespace JSC {
-class FunctionExecutable;
-}
-
-namespace WebCore {
-`;
-for (const { basename, functions, internal } of files) {
- bundledHeader += `/* ${basename}.ts */
-`;
- const lowerBasename = low(basename);
-
- for (const fn of functions) {
- const name = `${lowerBasename}${cap(fn.name)}Code`;
- bundledHeader += `// ${fn.name}
-#define WEBCORE_BUILTIN_${basename.toUpperCase()}_${fn.name.toUpperCase()} 1
-extern const char* const s_${name};
-extern const int s_${name}Length;
-extern const JSC::ConstructAbility s_${name}ConstructAbility;
-extern const JSC::ConstructorKind s_${name}ConstructorKind;
-extern const JSC::ImplementationVisibility s_${name}ImplementationVisibility;
-
-`;
- }
- bundledHeader += `#define WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_DATA(macro) \\\n`;
- for (const fn of functions) {
- bundledHeader += ` macro(${fn.name}, ${lowerBasename}${cap(fn.name)}, ${fn.params.length}) \\\n`;
- }
- bundledHeader += "\n";
- bundledHeader += `#define WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_CODE(macro) \\\n`;
- for (const fn of functions) {
- const name = `${lowerBasename}${cap(fn.name)}Code`;
- bundledHeader += ` macro(${name}, ${fn.name}, ${fn.overriddenName}, s_${name}Length) \\\n`;
- }
- bundledHeader += "\n";
- bundledHeader += `#define WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_FUNCTION_NAME(macro) \\\n`;
- for (const fn of functions) {
- bundledHeader += ` macro(${fn.name}) \\\n`;
- }
- bundledHeader += `
-#define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \\
- JSC::FunctionExecutable* codeName##Generator(JSC::VM&);
-
-WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_CODE(DECLARE_BUILTIN_GENERATOR)
-#undef DECLARE_BUILTIN_GENERATOR
-
-class ${basename}BuiltinsWrapper : private JSC::WeakHandleOwner {
-public:
- explicit ${basename}BuiltinsWrapper(JSC::VM& vm)
- : m_vm(vm)
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_FUNCTION_NAME(INITIALIZE_BUILTIN_NAMES)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) , m_##name##Source(JSC::makeSource(StringImpl::createWithoutCopying(s_##name, length), { }))
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_CODE(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef INITIALIZE_BUILTIN_SOURCE_MEMBERS
- {
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \\
- JSC::UnlinkedFunctionExecutable* name##Executable(); \\
- const JSC::SourceCode& name##Source() const { return m_##name##Source; }
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_CODE(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_EXECUTABLES
-
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_IDENTIFIER_ACCESSOR)
-
- void exportNames();
-
-private:
- JSC::VM& m_vm;
-
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_NAMES)
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, overriddenName, length) \\
- JSC::SourceCode m_##name##Source;\\
- JSC::Weak<JSC::UnlinkedFunctionExecutable> m_##name##Executable;
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_CODE(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-
-};
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, overriddenName, length) \\
-inline JSC::UnlinkedFunctionExecutable* ${basename}BuiltinsWrapper::name##Executable() \\
-{\\
- if (!m_##name##Executable) {\\
- JSC::Identifier executableName = functionName##PublicName();\\
- if (overriddenName)\\
- executableName = JSC::Identifier::fromString(m_vm, overriddenName);\\
- m_##name##Executable = JSC::Weak<JSC::UnlinkedFunctionExecutable>(JSC::createBuiltinExecutable(m_vm, m_##name##Source, executableName, s_##name##ImplementationVisibility, s_##name##ConstructorKind, s_##name##ConstructAbility), this, &m_##name##Executable);\\
- }\\
- return m_##name##Executable.get();\\
-}
-WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_CODE(DEFINE_BUILTIN_EXECUTABLES)
-#undef DEFINE_BUILTIN_EXECUTABLES
-
-inline void ${basename}BuiltinsWrapper::exportNames()
-{
-#define EXPORT_FUNCTION_NAME(name) m_vm.propertyNames->appendExternalName(name##PublicName(), name##PrivateName());
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_FUNCTION_NAME(EXPORT_FUNCTION_NAME)
-#undef EXPORT_FUNCTION_NAME
-}
-`;
-
- if (internal) {
- bundledHeader += `class ${basename}BuiltinFunctions {
-public:
- explicit ${basename}BuiltinFunctions(JSC::VM& vm) : m_vm(vm) { }
-
- void init(JSC::JSGlobalObject&);
- template<typename Visitor> void visit(Visitor&);
-
-public:
- JSC::VM& m_vm;
-
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(functionName) \\
- JSC::WriteBarrier<JSC::JSFunction> m_##functionName##Function;
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_FUNCTION_NAME(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-};
-
-inline void ${basename}BuiltinFunctions::init(JSC::JSGlobalObject& globalObject)
-{
-#define EXPORT_FUNCTION(codeName, functionName, overriddenName, length) \\
- m_##functionName##Function.set(m_vm, &globalObject, JSC::JSFunction::create(m_vm, codeName##Generator(m_vm), &globalObject));
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_CODE(EXPORT_FUNCTION)
-#undef EXPORT_FUNCTION
-}
-
-template<typename Visitor>
-inline void ${basename}BuiltinFunctions::visit(Visitor& visitor)
-{
-#define VISIT_FUNCTION(name) visitor.append(m_##name##Function);
- WEBCORE_FOREACH_${basename.toUpperCase()}_BUILTIN_FUNCTION_NAME(VISIT_FUNCTION)
-#undef VISIT_FUNCTION
-}
-
-template void ${basename}BuiltinFunctions::visit(JSC::AbstractSlotVisitor&);
-template void ${basename}BuiltinFunctions::visit(JSC::SlotVisitor&);
- `;
- }
-}
-bundledHeader += `class JSBuiltinFunctions {
-public:
- explicit JSBuiltinFunctions(JSC::VM& vm)
- : m_vm(vm)
-`;
-
-for (const { basename } of files) {
- bundledHeader += ` , m_${low(basename)}Builtins(m_vm)\n`;
-}
-
-bundledHeader += `
- {
-`;
-
-for (const { basename, internal } of files) {
- if (internal) {
- bundledHeader += ` m_${low(basename)}Builtins.exportNames();\n`;
- }
-}
-
-bundledHeader += ` }
-`;
-
-for (const { basename } of files) {
- bundledHeader += ` ${basename}BuiltinsWrapper& ${low(basename)}Builtins() { return m_${low(
- basename,
- )}Builtins; }\n`;
-}
-
-bundledHeader += `
-private:
- JSC::VM& m_vm;
-`;
-
-for (const { basename } of files) {
- bundledHeader += ` ${basename}BuiltinsWrapper m_${low(basename)}Builtins;\n`;
-}
-
-bundledHeader += `;
-};
-
-class JSBuiltinInternalFunctions {
-public:
- explicit JSBuiltinInternalFunctions(JSC::VM&);
-
- template<typename Visitor> void visit(Visitor&);
- void initialize(Zig::GlobalObject&);
-`;
-
-for (const { basename, internal } of files) {
- if (internal) {
- bundledHeader += ` ${basename}BuiltinFunctions& ${low(basename)}() { return m_${low(basename)}; }\n`;
- }
-}
-
-bundledHeader += `
-private:
- JSC::VM& m_vm;
-`;
-
-for (const { basename, internal } of files) {
- if (internal) {
- bundledHeader += ` ${basename}BuiltinFunctions m_${low(basename)};\n`;
- }
-}
-
-bundledHeader += `
-};
-
-} // namespace WebCore
-`;
-
-await Bun.write(path.join(OUT_DIR, "WebCoreJSBuiltins.h"), bundledHeader);
-await Bun.write(path.join(OUT_DIR, "WebCoreJSBuiltins.cpp"), bundledCPP);
-
-// Generate TS types
-let dts = `// Generated by \`bun src/bun.js/builtins/codegen/index.js\`
-// Do not edit by hand.
-type RemoveThis<F> = F extends (this: infer T, ...args: infer A) => infer R ? (...args: A) => R : F;
-`;
-
-for (const { basename, functions, internal } of files) {
- if (internal) {
- dts += `\n// ${basename}.ts\n`;
- for (const fn of functions) {
- dts += `declare const \$${fn.name}: RemoveThis<typeof import("./ts/${basename}")[${JSON.stringify(fn.name)}]>;\n`;
- }
- }
-}
-
-await Bun.write(path.join(OUT_DIR, "WebCoreJSBuiltins.d.ts"), dts);
-
-const totalJSSize = files.reduce(
- (acc, { functions }) => acc + functions.reduce((acc, fn) => acc + fn.source.length, 0),
- 0,
-);
-
-if (!KEEP_TMP) {
- await rmSync(TMP_DIR, { recursive: true });
-}
-
-console.log(
- `Embedded JS size: %s bytes (across %s functions, %s files)`,
- totalJSSize,
- files.reduce((acc, { functions }) => acc + functions.length, 0),
- files.length,
-);
-console.log(`[${performance.now().toFixed(1)}ms]`);
diff --git a/src/bun.js/builtins/codegen/replacements.ts b/src/bun.js/builtins/codegen/replacements.ts
deleted file mode 100644
index 05c81b901..000000000
--- a/src/bun.js/builtins/codegen/replacements.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import { LoaderKeys } from "../../../api/schema";
-
-// This is a list of extra syntax replacements to do. Kind of like macros
-// These are only run on code itself, not string contents or comments.
-export const replacements: ReplacementRule[] = [
- { from: /\bthrow new TypeError\b/g, to: "$throwTypeError" },
- { from: /\bthrow new RangeError\b/g, to: "$throwRangeError" },
- { from: /\bthrow new OutOfMemoryError\b/g, to: "$throwOutOfMemoryError" },
- { from: /\bnew TypeError\b/g, to: "$makeTypeError" },
-];
-
-// These rules are run on the entire file, including within strings.
-export const globalReplacements: ReplacementRule[] = [
- {
- from: /\bnotImplementedIssue\(\s*([0-9]+)\s*,\s*((?:"[^"]*"|'[^']+'))\s*\)/g,
- to: "new TypeError(`${$2} is not implemented yet. See https://github.com/oven-sh/bun/issues/$1`)",
- },
- {
- from: /\bnotImplementedIssueFn\(\s*([0-9]+)\s*,\s*((?:"[^"]*"|'[^']+'))\s*\)/g,
- to: "() => $throwTypeError(`${$2} is not implemented yet. See https://github.com/oven-sh/bun/issues/$1`)",
- },
-];
-
-// This is a list of globals we should access using @ notation
-// undefined -> __intrinsic__undefined -> @undefined
-export const globalsToPrefix = [
- "AbortSignal",
- "Array",
- "ArrayBuffer",
- "Buffer",
- "Bun",
- "Infinity",
- "Loader",
- "Promise",
- "ReadableByteStreamController",
- "ReadableStream",
- "ReadableStreamBYOBReader",
- "ReadableStreamBYOBRequest",
- "ReadableStreamDefaultController",
- "ReadableStreamDefaultReader",
- "TransformStream",
- "TransformStreamDefaultController",
- "Uint8Array",
- "WritableStream",
- "WritableStreamDefaultController",
- "WritableStreamDefaultWriter",
- "isFinite",
- "isNaN",
- "undefined",
-];
-
-// These enums map to $<enum>IdToLabel and $<enum>LabelToId
-// Make sure to define in ./builtins.d.ts
-export const enums = {
- Loader: LoaderKeys,
- ImportKind: [
- "entry-point",
- "import-statement",
- "require-call",
- "dynamic-import",
- "require-resolve",
- "import-rule",
- "url-token",
- "internal",
- ],
-};
-
-// These identifiers have typedef but not present at runtime (converted with replacements)
-// If they are present in the bundle after runtime, we warn at the user.
-// TODO: implement this check.
-export const warnOnIdentifiersNotPresentAtRuntime = [
- //
- "OutOfMemoryError",
- "notImplementedIssue",
- "notImplementedIssueFn",
-];
-
-export interface ReplacementRule {
- from: RegExp;
- to: string;
- global?: boolean;
-}
-
-/** Applies source code replacements as defined in `replacements` */
-export function applyReplacements(src: string) {
- let result = src.replace(/\$([a-zA-Z0-9_]+)\b/gm, `__intrinsic__$1`);
- for (const replacement of replacements) {
- result = result.replace(replacement.from, replacement.to.replaceAll("$", "__intrinsic__"));
- }
- return result;
-}
-
-/** Applies source code replacements as defined in `globalReplacements` */
-export function applyGlobalReplacements(src: string) {
- let result = src;
- for (const replacement of globalReplacements) {
- result = result.replace(replacement.from, replacement.to.replaceAll("$", "__intrinsic__"));
- }
- return result;
-}
diff --git a/src/bun.js/builtins/ts/BundlerPlugin.ts b/src/bun.js/builtins/ts/BundlerPlugin.ts
deleted file mode 100644
index 831a6614e..000000000
--- a/src/bun.js/builtins/ts/BundlerPlugin.ts
+++ /dev/null
@@ -1,370 +0,0 @@
-import type {
- AnyFunction,
- BuildConfig,
- BunPlugin,
- OnLoadCallback,
- OnLoadResult,
- OnLoadResultObject,
- OnLoadResultSourceCode,
- OnResolveCallback,
- PluginBuilder,
- PluginConstraints,
-} from "bun";
-
-// This API expects 4 functions:
-// It should be generic enough to reuse for Bun.plugin() eventually, too.
-interface BundlerPlugin {
- onLoad: Map<string, [RegExp, OnLoadCallback][]>;
- onResolve: Map<string, [RegExp, OnResolveCallback][]>;
- onLoadAsync(
- internalID,
- sourceCode: string | Uint8Array | ArrayBuffer | DataView | null,
- loaderKey: number | null,
- ): void;
- onResolveAsync(internalID, a, b, c): void;
- addError(internalID, error, number): void;
- addFilter(filter, namespace, number): void;
-}
-
-// Extra types
-type Setup = BunPlugin["setup"];
-type MinifyObj = Exclude<BuildConfig["minify"], boolean>;
-interface BuildConfigExt extends BuildConfig {
- // we support esbuild-style entryPoints
- entryPoints?: string[];
- // plugins is guaranteed to not be null
- plugins: BunPlugin[];
-}
-interface PluginBuilderExt extends PluginBuilder {
- // these functions aren't implemented yet, so we dont publicly expose them
- resolve: AnyFunction;
- onStart: AnyFunction;
- onEnd: AnyFunction;
- onDispose: AnyFunction;
- // we partially support initialOptions. it's read-only and a subset of
- // all options mapped to their esbuild names
- initialOptions: any;
- // we set this to an empty object
- esbuild: any;
-}
-
-export function runSetupFunction(this: BundlerPlugin, setup: Setup, config: BuildConfigExt) {
- var onLoadPlugins = new Map<string, [RegExp, AnyFunction][]>();
- var onResolvePlugins = new Map<string, [RegExp, AnyFunction][]>();
-
- function validate(filterObject: PluginConstraints, callback, map) {
- if (!filterObject || !$isObject(filterObject)) {
- throw new TypeError('Expected an object with "filter" RegExp');
- }
-
- if (!callback || !$isCallable(callback)) {
- throw new TypeError("callback must be a function");
- }
-
- var { filter, namespace = "file" } = filterObject;
-
- if (!filter) {
- throw new TypeError('Expected an object with "filter" RegExp');
- }
-
- if (!$isRegExpObject(filter)) {
- throw new TypeError("filter must be a RegExp");
- }
-
- if (namespace && !(typeof namespace === "string")) {
- throw new TypeError("namespace must be a string");
- }
-
- if ((namespace?.length ?? 0) === 0) {
- namespace = "file";
- }
-
- if (!/^([/$a-zA-Z0-9_\\-]+)$/.test(namespace)) {
- throw new TypeError("namespace can only contain $a-zA-Z0-9_\\-");
- }
-
- var callbacks = map.$get(namespace);
-
- if (!callbacks) {
- map.$set(namespace, [[filter, callback]]);
- } else {
- $arrayPush(callbacks, [filter, callback]);
- }
- }
-
- function onLoad(filterObject, callback) {
- validate(filterObject, callback, onLoadPlugins);
- }
-
- function onResolve(filterObject, callback) {
- validate(filterObject, callback, onResolvePlugins);
- }
-
- const processSetupResult = () => {
- var anyOnLoad = false,
- anyOnResolve = false;
-
- for (var [namespace, callbacks] of onLoadPlugins.entries()) {
- for (var [filter] of callbacks) {
- this.addFilter(filter, namespace, 1);
- anyOnLoad = true;
- }
- }
-
- for (var [namespace, callbacks] of onResolvePlugins.entries()) {
- for (var [filter] of callbacks) {
- this.addFilter(filter, namespace, 0);
- anyOnResolve = true;
- }
- }
-
- if (anyOnResolve) {
- var onResolveObject = this.onResolve;
- if (!onResolveObject) {
- this.onResolve = onResolvePlugins;
- } else {
- for (var [namespace, callbacks] of onResolvePlugins.entries()) {
- var existing = onResolveObject.$get(namespace) as [RegExp, AnyFunction][];
-
- if (!existing) {
- onResolveObject.$set(namespace, callbacks);
- } else {
- onResolveObject.$set(namespace, existing.concat(callbacks));
- }
- }
- }
- }
-
- if (anyOnLoad) {
- var onLoadObject = this.onLoad;
- if (!onLoadObject) {
- this.onLoad = onLoadPlugins;
- } else {
- for (var [namespace, callbacks] of onLoadPlugins.entries()) {
- var existing = onLoadObject.$get(namespace) as [RegExp, AnyFunction][];
-
- if (!existing) {
- onLoadObject.$set(namespace, callbacks);
- } else {
- onLoadObject.$set(namespace, existing.concat(callbacks));
- }
- }
- }
- }
-
- return anyOnLoad || anyOnResolve;
- };
-
- var setupResult = setup({
- config: config,
- onDispose: notImplementedIssueFn(2771, "On-dispose callbacks"),
- onEnd: notImplementedIssueFn(2771, "On-end callbacks"),
- onLoad,
- onResolve,
- onStart: notImplementedIssueFn(2771, "On-start callbacks"),
- resolve: notImplementedIssueFn(2771, "build.resolve()"),
- // esbuild's options argument is different, we provide some interop
- initialOptions: {
- ...config,
- bundle: true,
- entryPoints: config.entrypoints ?? config.entryPoints ?? [],
- minify: typeof config.minify === "boolean" ? config.minify : false,
- minifyIdentifiers: config.minify === true || (config.minify as MinifyObj)?.identifiers,
- minifyWhitespace: config.minify === true || (config.minify as MinifyObj)?.whitespace,
- minifySyntax: config.minify === true || (config.minify as MinifyObj)?.syntax,
- outbase: config.root,
- platform: config.target === "bun" ? "node" : config.target,
- },
- esbuild: {},
- } satisfies PluginBuilderExt as PluginBuilder);
-
- if (setupResult && $isPromise(setupResult)) {
- if ($getPromiseInternalField(setupResult, $promiseFieldFlags) & $promiseStateFulfilled) {
- setupResult = $getPromiseInternalField(setupResult, $promiseFieldReactionsOrResult);
- } else {
- return setupResult.$then(processSetupResult);
- }
- }
-
- return processSetupResult();
-}
-
-export function runOnResolvePlugins(this: BundlerPlugin, specifier, inputNamespace, importer, internalID, kindId) {
- // Must be kept in sync with ImportRecord.label
- const kind = $ImportKindIdToLabel[kindId];
-
- var promiseResult: any = (async (inputPath, inputNamespace, importer, kind) => {
- var { onResolve, onLoad } = this;
- var results = onResolve.$get(inputNamespace);
- if (!results) {
- this.onResolveAsync(internalID, null, null, null);
- return null;
- }
-
- for (let [filter, callback] of results) {
- if (filter.test(inputPath)) {
- var result = callback({
- path: inputPath,
- importer,
- namespace: inputNamespace,
- // resolveDir
- kind,
- // pluginData
- });
-
- while (
- result &&
- $isPromise(result) &&
- ($getPromiseInternalField(result, $promiseFieldFlags) & $promiseStateMask) === $promiseStateFulfilled
- ) {
- result = $getPromiseInternalField(result, $promiseFieldReactionsOrResult);
- }
-
- if (result && $isPromise(result)) {
- result = await result;
- }
-
- if (!result || !$isObject(result)) {
- continue;
- }
-
- var { path, namespace: userNamespace = inputNamespace, external } = result;
- if (!(typeof path === "string") || !(typeof userNamespace === "string")) {
- throw new TypeError("onResolve plugins must return an object with a string 'path' and string 'loader' field");
- }
-
- if (!path) {
- continue;
- }
-
- if (!userNamespace) {
- userNamespace = inputNamespace;
- }
- if (typeof external !== "boolean" && !$isUndefinedOrNull(external)) {
- throw new TypeError('onResolve plugins "external" field must be boolean or unspecified');
- }
-
- if (!external) {
- if (userNamespace === "file") {
- if (process.platform !== "win32") {
- if (path[0] !== "/" || path.includes("..")) {
- throw new TypeError('onResolve plugin "path" must be absolute when the namespace is "file"');
- }
- } else {
- // TODO: Windows
- }
- }
- if (userNamespace === "dataurl") {
- if (!path.startsWith("data:")) {
- throw new TypeError('onResolve plugin "path" must start with "data:" when the namespace is "dataurl"');
- }
- }
-
- if (userNamespace && userNamespace !== "file" && (!onLoad || !onLoad.$has(userNamespace))) {
- throw new TypeError(`Expected onLoad plugin for namespace ${userNamespace} to exist`);
- }
- }
- this.onResolveAsync(internalID, path, userNamespace, external);
- return null;
- }
- }
-
- this.onResolveAsync(internalID, null, null, null);
- return null;
- })(specifier, inputNamespace, importer, kind);
-
- while (
- promiseResult &&
- $isPromise(promiseResult) &&
- ($getPromiseInternalField(promiseResult, $promiseFieldFlags) & $promiseStateMask) === $promiseStateFulfilled
- ) {
- promiseResult = $getPromiseInternalField(promiseResult, $promiseFieldReactionsOrResult);
- }
-
- if (promiseResult && $isPromise(promiseResult)) {
- promiseResult.then(
- () => {},
- e => {
- this.addError(internalID, e, 0);
- },
- );
- }
-}
-
-export function runOnLoadPlugins(this: BundlerPlugin, internalID, path, namespace, defaultLoaderId) {
- const LOADERS_MAP = $LoaderLabelToId;
- const loaderName = $LoaderIdToLabel[defaultLoaderId];
-
- var promiseResult = (async (internalID, path, namespace, defaultLoader) => {
- var results = this.onLoad.$get(namespace);
- if (!results) {
- this.onLoadAsync(internalID, null, null);
- return null;
- }
-
- for (let [filter, callback] of results) {
- if (filter.test(path)) {
- var result = callback({
- path,
- namespace,
- // suffix
- // pluginData
- loader: defaultLoader,
- });
-
- while (
- result &&
- $isPromise(result) &&
- ($getPromiseInternalField(result, $promiseFieldFlags) & $promiseStateMask) === $promiseStateFulfilled
- ) {
- result = $getPromiseInternalField(result, $promiseFieldReactionsOrResult);
- }
-
- if (result && $isPromise(result)) {
- result = await result;
- }
-
- if (!result || !$isObject(result)) {
- continue;
- }
-
- var { contents, loader = defaultLoader } = result as OnLoadResultSourceCode & OnLoadResultObject;
- if (!(typeof contents === "string") && !$isTypedArrayView(contents)) {
- throw new TypeError('onLoad plugins must return an object with "contents" as a string or Uint8Array');
- }
-
- if (!(typeof loader === "string")) {
- throw new TypeError('onLoad plugins must return an object with "loader" as a string');
- }
-
- const chosenLoader = LOADERS_MAP[loader];
- if (chosenLoader === undefined) {
- throw new TypeError(`Loader ${loader} is not supported.`);
- }
-
- this.onLoadAsync(internalID, contents, chosenLoader);
- return null;
- }
- }
-
- this.onLoadAsync(internalID, null, null);
- return null;
- })(internalID, path, namespace, loaderName);
-
- while (
- promiseResult &&
- $isPromise(promiseResult) &&
- ($getPromiseInternalField(promiseResult, $promiseFieldFlags) & $promiseStateMask) === $promiseStateFulfilled
- ) {
- promiseResult = $getPromiseInternalField(promiseResult, $promiseFieldReactionsOrResult);
- }
-
- if (promiseResult && $isPromise(promiseResult)) {
- promiseResult.then(
- () => {},
- e => {
- this.addError(internalID, e, 1);
- },
- );
- }
-}
diff --git a/src/bun.js/builtins/ts/ByteLengthQueuingStrategy.ts b/src/bun.js/builtins/ts/ByteLengthQueuingStrategy.ts
deleted file mode 100644
index fc3f3d998..000000000
--- a/src/bun.js/builtins/ts/ByteLengthQueuingStrategy.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2015 Canon Inc.
- * Copyright (C) 2015 Igalia S.L.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-$getter;
-export function highWaterMark(this: any) {
- const highWaterMark = $getByIdDirectPrivate(this, "highWaterMark");
- if (highWaterMark === undefined)
- throw new TypeError("ByteLengthQueuingStrategy.highWaterMark getter called on incompatible |this| value.");
-
- return highWaterMark;
-}
-
-export function size(chunk) {
- return chunk.byteLength;
-}
-
-export function initializeByteLengthQueuingStrategy(this: any, parameters: any) {
- $putByIdDirectPrivate(this, "highWaterMark", $extractHighWaterMarkFromQueuingStrategyInit(parameters));
-}
diff --git a/src/bun.js/builtins/ts/ConsoleObject.ts b/src/bun.js/builtins/ts/ConsoleObject.ts
deleted file mode 100644
index 45746459a..000000000
--- a/src/bun.js/builtins/ts/ConsoleObject.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-$overriddenName = "[Symbol.asyncIterator]";
-export function asyncIterator(this: Console) {
- const Iterator = async function* ConsoleAsyncIterator() {
- const stream = Bun.stdin.stream();
- var reader = stream.getReader();
-
- // TODO: use builtin
- var decoder = new (globalThis as any).TextDecoder("utf-8", { fatal: false }) as TextDecoder;
- var deferredError;
- var indexOf = Bun.indexOfLine;
-
- try {
- while (true) {
- var done, value;
- var pendingChunk;
- const firstResult = reader.readMany();
- if ($isPromise(firstResult)) {
- ({ done, value } = await firstResult);
- } else {
- ({ done, value } = firstResult);
- }
-
- if (done) {
- if (pendingChunk) {
- yield decoder.decode(pendingChunk);
- }
- return;
- }
-
- var actualChunk;
- // we assume it was given line-by-line
- for (const chunk of value) {
- actualChunk = chunk;
- if (pendingChunk) {
- actualChunk = Buffer.concat([pendingChunk, chunk]);
- pendingChunk = null;
- }
-
- var last = 0;
- // TODO: "\r", 0x4048, 0x4049, 0x404A, 0x404B, 0x404C, 0x404D, 0x404E, 0x404F
- var i = indexOf(actualChunk, last);
- while (i !== -1) {
- yield decoder.decode(actualChunk.subarray(last, i));
- last = i + 1;
- i = indexOf(actualChunk, last);
- }
-
- pendingChunk = actualChunk.subarray(last);
- }
- }
- } catch (e) {
- deferredError = e;
- } finally {
- reader.releaseLock();
-
- if (deferredError) {
- throw deferredError;
- }
- }
- };
-
- const symbol = globalThis.Symbol.asyncIterator;
- this[symbol] = Iterator;
- return Iterator();
-}
-
-export function write(this: Console, input) {
- var writer = $getByIdDirectPrivate(this, "writer");
- if (!writer) {
- var length = $toLength(input?.length ?? 0);
- writer = Bun.stdout.writer({ highWaterMark: length > 65536 ? length : 65536 });
- $putByIdDirectPrivate(this, "writer", writer);
- }
-
- var wrote = writer.write(input);
-
- const count = $argumentCount();
- for (var i = 1; i < count; i++) {
- wrote += writer.write($argument(i));
- }
-
- writer.flush(true);
- return wrote;
-}
diff --git a/src/bun.js/builtins/ts/CountQueuingStrategy.ts b/src/bun.js/builtins/ts/CountQueuingStrategy.ts
deleted file mode 100644
index a72dca1ca..000000000
--- a/src/bun.js/builtins/ts/CountQueuingStrategy.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2015 Canon Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-$getter;
-export function highWaterMark(this: any) {
- const highWaterMark = $getByIdDirectPrivate(this, "highWaterMark");
-
- if (highWaterMark === undefined)
- throw new TypeError("CountQueuingStrategy.highWaterMark getter called on incompatible |this| value.");
-
- return highWaterMark;
-}
-
-export function size() {
- return 1;
-}
-
-export function initializeCountQueuingStrategy(this: any, parameters: any) {
- $putByIdDirectPrivate(this, "highWaterMark", $extractHighWaterMarkFromQueuingStrategyInit(parameters));
-}
diff --git a/src/bun.js/builtins/ts/ImportMetaObject.ts b/src/bun.js/builtins/ts/ImportMetaObject.ts
deleted file mode 100644
index 2df0f0c98..000000000
--- a/src/bun.js/builtins/ts/ImportMetaObject.ts
+++ /dev/null
@@ -1,257 +0,0 @@
-type ImportMetaObject = Partial<ImportMeta>;
-
-export function loadCJS2ESM(this: ImportMetaObject, resolvedSpecifier: string) {
- var loader = Loader;
- var queue = $createFIFO();
- var key = resolvedSpecifier;
- while (key) {
- // we need to explicitly check because state could be $ModuleFetch
- // it will throw this error if we do not:
- // $throwTypeError("Requested module is already fetched.");
- var entry = loader.registry.$get(key);
-
- if (!entry || !entry.state || entry.state <= $ModuleFetch) {
- $fulfillModuleSync(key);
- entry = loader.registry.$get(key)!;
- }
-
- // entry.fetch is a Promise<SourceCode>
- // SourceCode is not a string, it's a JSC::SourceCode object
- // this pulls it out of the promise without delaying by a tick
- // the promise is already fullfilled by $fullfillModuleSync
- var sourceCodeObject = $getPromiseInternalField(entry.fetch, $promiseFieldReactionsOrResult);
- // parseModule() returns a Promise, but the value is already fulfilled
- // so we just pull it out of the promise here once again
- // But, this time we do it a little more carefully because this is a JSC function call and not bun source code
- var moduleRecordPromise = loader.parseModule(key, sourceCodeObject);
- var module = entry.module;
- if (!module && moduleRecordPromise && $isPromise(moduleRecordPromise)) {
- var reactionsOrResult = $getPromiseInternalField(moduleRecordPromise, $promiseFieldReactionsOrResult);
- var flags = $getPromiseInternalField(moduleRecordPromise, $promiseFieldFlags);
- var state = flags & $promiseStateMask;
- // this branch should never happen, but just to be safe
- if (state === $promiseStatePending || (reactionsOrResult && $isPromise(reactionsOrResult))) {
- throw new TypeError(`require() async module "${key}" is unsupported`);
- } else if (state === $promiseStateRejected) {
- // TODO: use SyntaxError but preserve the specifier
- throw new TypeError(`${reactionsOrResult?.message ?? "An error occurred"} while parsing module \"${key}\"`);
- }
- entry.module = module = reactionsOrResult;
- } else if (moduleRecordPromise && !module) {
- entry.module = module = moduleRecordPromise as LoaderModule;
- }
-
- // This is very similar to "requestInstantiate" in ModuleLoader.js in JavaScriptCore.
- $setStateToMax(entry, $ModuleLink);
- var dependenciesMap = module.dependenciesMap;
- var requestedModules = loader.requestedModules(module);
- var dependencies = $newArrayWithSize<string>(requestedModules.length);
- for (var i = 0, length = requestedModules.length; i < length; ++i) {
- var depName = requestedModules[i];
- // optimization: if it starts with a slash then it's an absolute path
- // we don't need to run the resolver a 2nd time
- var depKey = depName[0] === "/" ? depName : loader.resolve(depName, key);
- var depEntry = loader.ensureRegistered(depKey);
- if (depEntry.state < $ModuleLink) {
- queue.push(depKey);
- }
-
- $putByValDirect(dependencies, i, depEntry);
- dependenciesMap.$set(depName, depEntry);
- }
-
- entry.dependencies = dependencies;
- // All dependencies resolved, set instantiate and satisfy field directly.
- entry.instantiate = Promise.resolve(entry);
- entry.satisfy = Promise.resolve(entry);
- key = queue.shift();
- while (key && (loader.registry.$get(key)?.state ?? $ModuleFetch) >= $ModuleLink) {
- key = queue.shift();
- }
- }
-
- var linkAndEvaluateResult = loader.linkAndEvaluateModule(resolvedSpecifier, undefined);
- if (linkAndEvaluateResult && $isPromise(linkAndEvaluateResult)) {
- // if you use top-level await, or any dependencies use top-level await, then we throw here
- // this means the module will still actually load eventually, but that's okay.
- throw new TypeError(`require() async module \"${resolvedSpecifier}\" is unsupported`);
- }
-
- return loader.registry.$get(resolvedSpecifier);
-}
-
-export function requireESM(this: ImportMetaObject, resolved) {
- var entry = Loader.registry.$get(resolved);
-
- if (!entry || !entry.evaluated) {
- entry = $loadCJS2ESM(resolved);
- }
-
- if (!entry || !entry.evaluated || !entry.module) {
- throw new TypeError(`require() failed to evaluate module "${resolved}". This is an internal consistentency error.`);
- }
- var exports = Loader.getModuleNamespaceObject(entry.module);
- if (exports[$commonJSSymbol] === 0) {
- // CommonJS module created via `Bun::CommonJSModuleRecord`
- // We will refer to the requireMap to get the exports
- return;
- }
-
- var commonJS = exports.default;
- var cjs = commonJS?.[$commonJSSymbol];
- if (cjs === 0) {
- return commonJS;
- } else if (cjs && $isCallable(commonJS)) {
- return commonJS();
- }
-
- return exports;
-}
-
-export function internalRequire(this: ImportMetaObject, resolved) {
- var cached = $requireMap.$get(resolved);
- const last5 = resolved.substring(resolved.length - 5);
- if (cached) {
- if (last5 === ".node") {
- return cached.exports;
- }
- return cached;
- }
-
- // TODO: remove this hardcoding
- if (last5 === ".json") {
- var fs = (globalThis[Symbol.for("_fs")] ||= Bun.fs());
- var exports = JSON.parse(fs.readFileSync(resolved, "utf8"));
- $requireMap.$set(resolved, exports);
- return exports;
- } else if (last5 === ".node") {
- var module = { exports: {} };
- process.dlopen(module, resolved);
- $requireMap.$set(resolved, module);
- return module.exports;
- } else if (last5 === ".toml") {
- var fs = (globalThis[Symbol.for("_fs")] ||= Bun.fs());
- var exports = Bun.TOML.parse(fs.readFileSync(resolved, "utf8"));
- $requireMap.$set(resolved, exports);
- return exports;
- } else {
- var exports = $requireESM(resolved);
- const cachedExports = $requireMap.$get(resolved);
- if (cachedExports) {
- return cachedExports;
- }
-
- $requireMap.$set(resolved, exports);
- return exports;
- }
-}
-
-export function createRequireCache() {
- class Module {
- id;
- parent;
- filename;
- children = [];
- paths = [];
-
- constructor(filename) {
- this.id = filename;
- // TODO: windows
- const lastSlash = filename.lastIndexOf("/");
- if (lastSlash !== -1 && filename.length > lastSlash + 1) {
- this.filename = filename.substring(lastSlash + 1);
- } else {
- this.filename = filename;
- }
- }
-
- get loaded() {
- return true;
- }
-
- require(path) {
- return $internalRequire($resolveSync(path, this.id));
- }
-
- get exports() {
- return $requireMap.$get(this.id) ?? {};
- }
-
- set exports(value) {
- $requireMap.$set(this.id, value);
- }
- }
-
- var moduleMap = new Map();
-
- return new Proxy(
- {},
- {
- get(target, key: string) {
- const entry = $requireMap.$get(key);
- if (entry) {
- var mod = moduleMap.$get(key);
- if (!mod) {
- mod = new Module(key);
- moduleMap.$set(key, mod);
- }
- return mod;
- }
- },
- set(target, key: string, value) {
- if (!moduleMap.$has(key)) {
- moduleMap.$set(key, new Module(key));
- }
-
- $requireMap.$set(key, value?.exports);
-
- return true;
- },
-
- has(target, key: string) {
- return $requireMap.$has(key);
- },
-
- deleteProperty(target, key: string) {
- moduleMap.$delete(key);
- $requireMap.$delete(key);
- Loader.registry.$delete(key);
- return true;
- },
-
- ownKeys(target) {
- return [...$requireMap.$keys()];
- },
-
- // In Node, require.cache has a null prototype
- getPrototypeOf(target) {
- return null;
- },
-
- getOwnPropertyDescriptor(target, key: string) {
- if ($requireMap.$has(key)) {
- return {
- configurable: true,
- enumerable: true,
- };
- }
- },
- },
- );
-}
-
-$sloppy;
-export function require(this: ImportMetaObject, name) {
- var from = this?.path ?? arguments.callee.path;
-
- if (typeof name !== "string") {
- throw new TypeError("require(name) must be a string");
- }
-
- return $internalRequire($resolveSync(name, from));
-}
-
-$getter;
-export function main(this: ImportMetaObject) {
- return this.path === Bun.main;
-}
diff --git a/src/bun.js/builtins/ts/JSBufferConstructor.ts b/src/bun.js/builtins/ts/JSBufferConstructor.ts
deleted file mode 100644
index debc62d51..000000000
--- a/src/bun.js/builtins/ts/JSBufferConstructor.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-export function from(items) {
- if ($isUndefinedOrNull(items)) {
- throw new TypeError(
- "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.",
- );
- }
-
- // TODO: figure out why private symbol not found
- if (
- typeof items === "string" ||
- (typeof items === "object" &&
- ($isTypedArrayView(items) ||
- items instanceof ArrayBuffer ||
- items instanceof SharedArrayBuffer ||
- items instanceof String))
- ) {
- switch ($argumentCount()) {
- case 1: {
- return new $Buffer(items);
- }
- case 2: {
- return new $Buffer(items, $argument(1));
- }
- default: {
- return new $Buffer(items, $argument(1), $argument(2));
- }
- }
- }
-
- var arrayLike = $toObject(
- items,
- "The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.",
- ) as ArrayLike<any>;
-
- if (!$isJSArray(arrayLike)) {
- const toPrimitive = $tryGetByIdWithWellKnownSymbol(items, "toPrimitive");
-
- if (toPrimitive) {
- const primitive = toPrimitive.$call(items, "string");
-
- if (typeof primitive === "string") {
- switch ($argumentCount()) {
- case 1: {
- return new $Buffer(primitive);
- }
- case 2: {
- return new $Buffer(primitive, $argument(1));
- }
- default: {
- return new $Buffer(primitive, $argument(1), $argument(2));
- }
- }
- }
- }
-
- if (!("length" in arrayLike) || $isCallable(arrayLike)) {
- throw new TypeError(
- "The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.",
- );
- }
- }
-
- // Don't pass the second argument because Node's Buffer.from doesn't accept
- // a function and Uint8Array.from requires it if it exists
- // That means we cannot use $tailCallFowrardArguments here, sadly
- return new $Buffer(Uint8Array.from(arrayLike).buffer);
-}
diff --git a/src/bun.js/builtins/ts/JSBufferPrototype.ts b/src/bun.js/builtins/ts/JSBufferPrototype.ts
deleted file mode 100644
index 97b25b9b2..000000000
--- a/src/bun.js/builtins/ts/JSBufferPrototype.ts
+++ /dev/null
@@ -1,495 +0,0 @@
-// The fastest way as of April 2022 is to use DataView.
-// DataView has intrinsics that cause inlining
-
-interface BufferExt extends Buffer {
- $dataView?: DataView;
-
- toString(encoding?: BufferEncoding, start?: number, end?: number): string;
- toString(offset: number, length: number, encoding?: BufferEncoding): string;
-}
-
-export function setBigUint64(this: BufferExt, offset, value, le) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setBigUint64(
- offset,
- value,
- le,
- );
-}
-export function readInt8(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getInt8(offset);
-}
-export function readUInt8(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getUint8(offset);
-}
-export function readInt16LE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getInt16(offset, true);
-}
-export function readInt16BE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getInt16(offset, false);
-}
-export function readUInt16LE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getUint16(offset, true);
-}
-export function readUInt16BE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getUint16(offset, false);
-}
-export function readInt32LE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getInt32(offset, true);
-}
-export function readInt32BE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getInt32(offset, false);
-}
-export function readUInt32LE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getUint32(offset, true);
-}
-export function readUInt32BE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getUint32(offset, false);
-}
-
-export function readIntLE(this: BufferExt, offset, byteLength) {
- const view = (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength));
- switch (byteLength) {
- case 1: {
- return view.getInt8(offset);
- }
- case 2: {
- return view.getInt16(offset, true);
- }
- case 3: {
- const val = view.getUint16(offset, true) + view.getUint8(offset + 2) * 2 ** 16;
- return val | ((val & (2 ** 23)) * 0x1fe);
- }
- case 4: {
- return view.getInt32(offset, true);
- }
- case 5: {
- const last = view.getUint8(offset + 4);
- return (last | ((last & (2 ** 7)) * 0x1fffffe)) * 2 ** 32 + view.getUint32(offset, true);
- }
- case 6: {
- const last = view.getUint16(offset + 4, true);
- return (last | ((last & (2 ** 15)) * 0x1fffe)) * 2 ** 32 + view.getUint32(offset, true);
- }
- }
- throw new RangeError("byteLength must be >= 1 and <= 6");
-}
-export function readIntBE(this: BufferExt, offset, byteLength) {
- const view = (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength));
- switch (byteLength) {
- case 1: {
- return view.getInt8(offset);
- }
- case 2: {
- return view.getInt16(offset, false);
- }
- case 3: {
- const val = view.getUint16(offset + 1, false) + view.getUint8(offset) * 2 ** 16;
- return val | ((val & (2 ** 23)) * 0x1fe);
- }
- case 4: {
- return view.getInt32(offset, false);
- }
- case 5: {
- const last = view.getUint8(offset);
- return (last | ((last & (2 ** 7)) * 0x1fffffe)) * 2 ** 32 + view.getUint32(offset + 1, false);
- }
- case 6: {
- const last = view.getUint16(offset, false);
- return (last | ((last & (2 ** 15)) * 0x1fffe)) * 2 ** 32 + view.getUint32(offset + 2, false);
- }
- }
- throw new RangeError("byteLength must be >= 1 and <= 6");
-}
-export function readUIntLE(this: BufferExt, offset, byteLength) {
- const view = (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength));
- switch (byteLength) {
- case 1: {
- return view.getUint8(offset);
- }
- case 2: {
- return view.getUint16(offset, true);
- }
- case 3: {
- return view.getUint16(offset, true) + view.getUint8(offset + 2) * 2 ** 16;
- }
- case 4: {
- return view.getUint32(offset, true);
- }
- case 5: {
- return view.getUint8(offset + 4) * 2 ** 32 + view.getUint32(offset, true);
- }
- case 6: {
- return view.getUint16(offset + 4, true) * 2 ** 32 + view.getUint32(offset, true);
- }
- }
- throw new RangeError("byteLength must be >= 1 and <= 6");
-}
-export function readUIntBE(this: BufferExt, offset, byteLength) {
- const view = (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength));
- switch (byteLength) {
- case 1: {
- return view.getUint8(offset);
- }
- case 2: {
- return view.getUint16(offset, false);
- }
- case 3: {
- return view.getUint16(offset + 1, false) + view.getUint8(offset) * 2 ** 16;
- }
- case 4: {
- return view.getUint32(offset, false);
- }
- case 5: {
- const last = view.getUint8(offset);
- return (last | ((last & (2 ** 7)) * 0x1fffffe)) * 2 ** 32 + view.getUint32(offset + 1, false);
- }
- case 6: {
- const last = view.getUint16(offset, false);
- return (last | ((last & (2 ** 15)) * 0x1fffe)) * 2 ** 32 + view.getUint32(offset + 2, false);
- }
- }
- throw new RangeError("byteLength must be >= 1 and <= 6");
-}
-
-export function readFloatLE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getFloat32(offset, true);
-}
-export function readFloatBE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getFloat32(offset, false);
-}
-export function readDoubleLE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getFloat64(offset, true);
-}
-export function readDoubleBE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getFloat64(offset, false);
-}
-export function readBigInt64LE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getBigInt64(offset, true);
-}
-export function readBigInt64BE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getBigInt64(offset, false);
-}
-export function readBigUInt64LE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getBigUint64(offset, true);
-}
-export function readBigUInt64BE(this: BufferExt, offset) {
- return (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).getBigUint64(offset, false);
-}
-
-export function writeInt8(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setInt8(offset, value);
- return offset + 1;
-}
-export function writeUInt8(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setUint8(offset, value);
- return offset + 1;
-}
-export function writeInt16LE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setInt16(offset, value, true);
- return offset + 2;
-}
-export function writeInt16BE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setInt16(offset, value, false);
- return offset + 2;
-}
-export function writeUInt16LE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setUint16(offset, value, true);
- return offset + 2;
-}
-export function writeUInt16BE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setUint16(offset, value, false);
- return offset + 2;
-}
-export function writeInt32LE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setInt32(offset, value, true);
- return offset + 4;
-}
-export function writeInt32BE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setInt32(offset, value, false);
- return offset + 4;
-}
-export function writeUInt32LE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setUint32(offset, value, true);
- return offset + 4;
-}
-export function writeUInt32BE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setUint32(offset, value, false);
- return offset + 4;
-}
-
-export function writeIntLE(this: BufferExt, value, offset, byteLength) {
- const view = (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength));
- switch (byteLength) {
- case 1: {
- view.setInt8(offset, value);
- break;
- }
- case 2: {
- view.setInt16(offset, value, true);
- break;
- }
- case 3: {
- view.setUint16(offset, value & 0xffff, true);
- view.setInt8(offset + 2, Math.floor(value * 2 ** -16));
- break;
- }
- case 4: {
- view.setInt32(offset, value, true);
- break;
- }
- case 5: {
- view.setUint32(offset, value | 0, true);
- view.setInt8(offset + 4, Math.floor(value * 2 ** -32));
- break;
- }
- case 6: {
- view.setUint32(offset, value | 0, true);
- view.setInt16(offset + 4, Math.floor(value * 2 ** -32), true);
- break;
- }
- default: {
- throw new RangeError("byteLength must be >= 1 and <= 6");
- }
- }
- return offset + byteLength;
-}
-export function writeIntBE(this: BufferExt, value, offset, byteLength) {
- const view = (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength));
- switch (byteLength) {
- case 1: {
- view.setInt8(offset, value);
- break;
- }
- case 2: {
- view.setInt16(offset, value, false);
- break;
- }
- case 3: {
- view.setUint16(offset + 1, value & 0xffff, false);
- view.setInt8(offset, Math.floor(value * 2 ** -16));
- break;
- }
- case 4: {
- view.setInt32(offset, value, false);
- break;
- }
- case 5: {
- view.setUint32(offset + 1, value | 0, false);
- view.setInt8(offset, Math.floor(value * 2 ** -32));
- break;
- }
- case 6: {
- view.setUint32(offset + 2, value | 0, false);
- view.setInt16(offset, Math.floor(value * 2 ** -32), false);
- break;
- }
- default: {
- throw new RangeError("byteLength must be >= 1 and <= 6");
- }
- }
- return offset + byteLength;
-}
-export function writeUIntLE(this: BufferExt, value, offset, byteLength) {
- const view = (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength));
- switch (byteLength) {
- case 1: {
- view.setUint8(offset, value);
- break;
- }
- case 2: {
- view.setUint16(offset, value, true);
- break;
- }
- case 3: {
- view.setUint16(offset, value & 0xffff, true);
- view.setUint8(offset + 2, Math.floor(value * 2 ** -16));
- break;
- }
- case 4: {
- view.setUint32(offset, value, true);
- break;
- }
- case 5: {
- view.setUint32(offset, value | 0, true);
- view.setUint8(offset + 4, Math.floor(value * 2 ** -32));
- break;
- }
- case 6: {
- view.setUint32(offset, value | 0, true);
- view.setUint16(offset + 4, Math.floor(value * 2 ** -32), true);
- break;
- }
- default: {
- throw new RangeError("byteLength must be >= 1 and <= 6");
- }
- }
- return offset + byteLength;
-}
-export function writeUIntBE(this: BufferExt, value, offset, byteLength) {
- const view = (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength));
- switch (byteLength) {
- case 1: {
- view.setUint8(offset, value);
- break;
- }
- case 2: {
- view.setUint16(offset, value, false);
- break;
- }
- case 3: {
- view.setUint16(offset + 1, value & 0xffff, false);
- view.setUint8(offset, Math.floor(value * 2 ** -16));
- break;
- }
- case 4: {
- view.setUint32(offset, value, false);
- break;
- }
- case 5: {
- view.setUint32(offset + 1, value | 0, false);
- view.setUint8(offset, Math.floor(value * 2 ** -32));
- break;
- }
- case 6: {
- view.setUint32(offset + 2, value | 0, false);
- view.setUint16(offset, Math.floor(value * 2 ** -32), false);
- break;
- }
- default: {
- throw new RangeError("byteLength must be >= 1 and <= 6");
- }
- }
- return offset + byteLength;
-}
-
-export function writeFloatLE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setFloat32(offset, value, true);
- return offset + 4;
-}
-
-export function writeFloatBE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setFloat32(offset, value, false);
- return offset + 4;
-}
-
-export function writeDoubleLE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setFloat64(offset, value, true);
- return offset + 8;
-}
-
-export function writeDoubleBE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setFloat64(offset, value, false);
- return offset + 8;
-}
-
-export function writeBigInt64LE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setBigInt64(offset, value, true);
- return offset + 8;
-}
-
-export function writeBigInt64BE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setBigInt64(offset, value, false);
- return offset + 8;
-}
-
-export function writeBigUInt64LE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setBigUint64(offset, value, true);
- return offset + 8;
-}
-
-export function writeBigUInt64BE(this: BufferExt, value, offset) {
- (this.$dataView ||= new DataView(this.buffer, this.byteOffset, this.byteLength)).setBigUint64(offset, value, false);
- return offset + 8;
-}
-
-export function utf8Write(this: BufferExt, text, offset, length) {
- return this.write(text, offset, length, "utf8");
-}
-export function ucs2Write(this: BufferExt, text, offset, length) {
- return this.write(text, offset, length, "ucs2");
-}
-export function utf16leWrite(this: BufferExt, text, offset, length) {
- return this.write(text, offset, length, "utf16le");
-}
-export function latin1Write(this: BufferExt, text, offset, length) {
- return this.write(text, offset, length, "latin1");
-}
-export function asciiWrite(this: BufferExt, text, offset, length) {
- return this.write(text, offset, length, "ascii");
-}
-export function base64Write(this: BufferExt, text, offset, length) {
- return this.write(text, offset, length, "base64");
-}
-export function base64urlWrite(this: BufferExt, text, offset, length) {
- return this.write(text, offset, length, "base64url");
-}
-export function hexWrite(this: BufferExt, text, offset, length) {
- return this.write(text, offset, length, "hex");
-}
-
-export function utf8Slice(this: BufferExt, offset, length) {
- return this.toString(offset, length, "utf8");
-}
-export function ucs2Slice(this: BufferExt, offset, length) {
- return this.toString(offset, length, "ucs2");
-}
-export function utf16leSlice(this: BufferExt, offset, length) {
- return this.toString(offset, length, "utf16le");
-}
-export function latin1Slice(this: BufferExt, offset, length) {
- return this.toString(offset, length, "latin1");
-}
-export function asciiSlice(this: BufferExt, offset, length) {
- return this.toString(offset, length, "ascii");
-}
-export function base64Slice(this: BufferExt, offset, length) {
- return this.toString(offset, length, "base64");
-}
-export function base64urlSlice(this: BufferExt, offset, length) {
- return this.toString(offset, length, "base64url");
-}
-export function hexSlice(this: BufferExt, offset, length) {
- return this.toString(offset, length, "hex");
-}
-
-export function toJSON(this: BufferExt) {
- const type = "Buffer";
- const data = Array.from(this);
- return { type, data };
-}
-
-export function slice(this: BufferExt, start, end) {
- var { buffer, byteOffset, byteLength } = this;
-
- function adjustOffset(offset, length) {
- // Use Math.trunc() to convert offset to an integer value that can be larger
- // than an Int32. Hence, don't use offset | 0 or similar techniques.
- offset = $trunc(offset);
- if (offset === 0 || isNaN(offset)) {
- return 0;
- } else if (offset < 0) {
- offset += length;
- return offset > 0 ? offset : 0;
- } else {
- return offset < length ? offset : length;
- }
- }
-
- var start_ = adjustOffset(start, byteLength);
- var end_ = end !== undefined ? adjustOffset(end, byteLength) : byteLength;
- return new $Buffer(buffer, byteOffset + start_, end_ > start_ ? end_ - start_ : 0);
-}
-
-$getter;
-export function parent(this: BufferExt) {
- return $isObject(this) && this instanceof $Buffer ? this.buffer : undefined;
-}
-
-$getter;
-export function offset(this: BufferExt) {
- return $isObject(this) && this instanceof $Buffer ? this.byteOffset : undefined;
-}
-
-export function inspect(this: BufferExt, recurseTimes, ctx) {
- return Bun.inspect(this);
-}
diff --git a/src/bun.js/builtins/ts/ProcessObjectInternals.ts b/src/bun.js/builtins/ts/ProcessObjectInternals.ts
deleted file mode 100644
index 8b24e68ba..000000000
--- a/src/bun.js/builtins/ts/ProcessObjectInternals.ts
+++ /dev/null
@@ -1,676 +0,0 @@
-/*
- * Copyright 2023 Codeblog Corp. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function binding(bindingName) {
- if (bindingName !== "constants")
- throw new TypeError(
- "process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.",
- );
-
- var cache = globalThis.Symbol.for("process.bindings.constants");
- var constants = globalThis[cache];
- if (!constants) {
- // TODO: make this less hacky.
- // This calls require("node:fs").constants
- // except, outside an ESM module.
- const { constants: fs } = globalThis[globalThis.Symbol.for("Bun.lazy")]("createImportMeta", "node:process").require(
- "node:fs",
- );
- constants = {
- fs,
- zlib: {},
- crypto: {},
- os: Bun._Os().constants,
- };
- globalThis[cache] = constants;
- }
- return constants;
-}
-
-export function getStdioWriteStream(fd_, rawRequire) {
- var module = { path: "node:process", require: rawRequire };
- var require = path => module.require(path);
-
- function createStdioWriteStream(fd_) {
- var { Duplex, eos, destroy } = require("node:stream");
- var StdioWriteStream = class StdioWriteStream extends Duplex {
- #writeStream;
- #readStream;
-
- #readable = true;
- #writable = true;
- #fdPath;
-
- #onClose;
- #onDrain;
- #onFinish;
- #onReadable;
- #isTTY;
-
- get isTTY() {
- return (this.#isTTY ??= require("node:tty").isatty(fd_));
- }
-
- get fd() {
- return fd_;
- }
-
- constructor(fd) {
- super({ readable: true, writable: true });
- this.#fdPath = `/dev/fd/${fd}`;
- }
-
- #onFinished(err) {
- const cb = this.#onClose;
- this.#onClose = null;
-
- if (cb) {
- cb(err);
- } else if (err) {
- this.destroy(err);
- } else if (!this.#readable && !this.#writable) {
- this.destroy();
- }
- }
-
- _destroy(err, callback) {
- if (!err && this.#onClose !== null) {
- var AbortError = class AbortError extends Error {
- code: string;
- name: string;
- constructor(message = "The operation was aborted", options = void 0) {
- if (options !== void 0 && typeof options !== "object") {
- throw new Error(`Invalid AbortError options:\n\n${JSON.stringify(options, null, 2)}`);
- }
- super(message, options);
- this.code = "ABORT_ERR";
- this.name = "AbortError";
- }
- };
- err = new AbortError();
- }
-
- this.#onDrain = null;
- this.#onFinish = null;
- if (this.#onClose === null) {
- callback(err);
- } else {
- this.#onClose = callback;
- if (this.#writeStream) destroy(this.#writeStream, err);
- if (this.#readStream) destroy(this.#readStream, err);
- }
- }
-
- _write(chunk, encoding, callback) {
- if (!this.#writeStream) {
- var { createWriteStream } = require("node:fs");
- var stream = (this.#writeStream = createWriteStream(this.#fdPath));
-
- stream.on("finish", () => {
- if (this.#onFinish) {
- const cb = this.#onFinish;
- this.#onFinish = null;
- cb();
- }
- });
-
- stream.on("drain", () => {
- if (this.#onDrain) {
- const cb = this.#onDrain;
- this.#onDrain = null;
- cb();
- }
- });
-
- eos(stream, err => {
- this.#writable = false;
- if (err) {
- destroy(stream, err);
- }
- this.#onFinished(err);
- });
- }
- if (stream.write(chunk, encoding)) {
- callback();
- } else {
- this.#onDrain = callback;
- }
- }
-
- _final(callback) {
- this.#writeStream && this.#writeStream.end();
- this.#onFinish = callback;
- }
-
- #loadReadStream() {
- var { createReadStream } = require("node:fs");
-
- var readStream = (this.#readStream = createReadStream(this.#fdPath));
-
- readStream.on("readable", () => {
- if (this.#onReadable) {
- const cb = this.#onReadable;
- this.#onReadable = null;
- cb();
- } else {
- this.read();
- }
- });
-
- readStream.on("end", () => {
- this.push(null);
- });
-
- eos(readStream, err => {
- this.#readable = false;
- if (err) {
- destroy(readStream, err);
- }
- this.#onFinished(err);
- });
- return readStream;
- }
-
- _read() {
- var stream = this.#readStream;
- if (!stream) {
- stream = this.#loadReadStream();
- }
-
- while (true) {
- const buf = stream.read();
- if (buf === null || !this.push(buf)) {
- return;
- }
- }
- }
- };
- return new StdioWriteStream(fd_);
- }
-
- var { EventEmitter } = require("node:events");
-
- function isFastEncoding(encoding) {
- if (!encoding) return true;
-
- var normalied = encoding.toLowerCase();
- return normalied === "utf8" || normalied === "utf-8" || normalied === "buffer" || normalied === "binary";
- }
-
- var readline;
-
- var FastStdioWriteStream = class StdioWriteStream extends EventEmitter {
- #fd;
- #innerStream;
- #writer;
- #isTTY;
-
- bytesWritten = 0;
-
- setDefaultEncoding(encoding) {
- if (this.#innerStream || !isFastEncoding(encoding)) {
- this.#ensureInnerStream();
- return this.#innerStream.setDefaultEncoding(encoding);
- }
- }
-
- #createWriter() {
- switch (this.#fd) {
- case 1: {
- var writer = Bun.stdout.writer({ highWaterMark: 0 });
- writer.unref();
- return writer;
- }
-
- case 2: {
- var writer = Bun.stderr.writer({ highWaterMark: 0 });
- writer.unref();
- return writer;
- }
- default: {
- throw new Error("Unsupported writer");
- }
- }
- }
-
- #getWriter() {
- return (this.#writer ??= this.#createWriter());
- }
-
- constructor(fd_) {
- super();
- this.#fd = fd_;
- }
-
- get fd() {
- return this.#fd;
- }
-
- get isTTY() {
- return (this.#isTTY ??= require("node:tty").isatty(this.#fd));
- }
-
- cursorTo(x, y, callback) {
- return (readline ??= require("readline")).cursorTo(this, x, y, callback);
- }
-
- moveCursor(dx, dy, callback) {
- return (readline ??= require("readline")).moveCursor(this, dx, dy, callback);
- }
-
- clearLine(dir, callback) {
- return (readline ??= require("readline")).clearLine(this, dir, callback);
- }
-
- clearScreenDown(callback) {
- return (readline ??= require("readline")).clearScreenDown(this, callback);
- }
-
- // TODO: once implemented this.columns and this.rows should be uncommented
- // getWindowSize() {
- // return [this.columns, this.rows];
- // }
-
- ref() {
- this.#getWriter().ref();
- }
-
- unref() {
- this.#getWriter().unref();
- }
-
- on(event, listener) {
- if (event === "close" || event === "finish") {
- this.#ensureInnerStream();
- return this.#innerStream.on(event, listener);
- }
-
- if (event === "drain") {
- return super.on("drain", listener);
- }
-
- if (event === "error") {
- return super.on("error", listener);
- }
-
- return super.on(event, listener);
- }
-
- get _writableState() {
- this.#ensureInnerStream();
- return this.#innerStream._writableState;
- }
-
- get _readableState() {
- this.#ensureInnerStream();
- return this.#innerStream._readableState;
- }
-
- pipe(destination) {
- this.#ensureInnerStream();
- return this.#innerStream.pipe(destination);
- }
-
- unpipe(destination) {
- this.#ensureInnerStream();
- return this.#innerStream.unpipe(destination);
- }
-
- #ensureInnerStream() {
- if (this.#innerStream) return;
- this.#innerStream = createStdioWriteStream(this.#fd);
- const events = this.eventNames();
- for (const event of events) {
- this.#innerStream.on(event, (...args) => {
- this.emit(event, ...args);
- });
- }
- }
-
- #write1(chunk) {
- var writer = this.#getWriter();
- const writeResult = writer.write(chunk);
- this.bytesWritten += writeResult;
- const flushResult = writer.flush(false);
- return !!(writeResult || flushResult);
- }
-
- #writeWithEncoding(chunk, encoding) {
- if (!isFastEncoding(encoding)) {
- this.#ensureInnerStream();
- return this.#innerStream.write(chunk, encoding);
- }
-
- return this.#write1(chunk);
- }
-
- #performCallback(cb, err?: any) {
- if (err) {
- this.emit("error", err);
- }
-
- try {
- cb(err ? err : null);
- } catch (err2) {
- this.emit("error", err2);
- }
- }
-
- #writeWithCallbackAndEncoding(chunk, encoding, callback) {
- if (!isFastEncoding(encoding)) {
- this.#ensureInnerStream();
- return this.#innerStream.write(chunk, encoding, callback);
- }
-
- var writer = this.#getWriter();
- const writeResult = writer.write(chunk);
- const flushResult = writer.flush(true);
- if (flushResult?.then) {
- flushResult.then(
- () => {
- this.#performCallback(callback);
- this.emit("drain");
- },
- err => this.#performCallback(callback, err),
- );
- return false;
- }
-
- queueMicrotask(() => {
- this.#performCallback(callback);
- });
-
- return !!(writeResult || flushResult);
- }
-
- write(chunk, encoding, callback) {
- const result = this._write(chunk, encoding, callback);
-
- if (result) {
- this.emit("drain");
- }
-
- return result;
- }
-
- get hasColors() {
- return Bun.tty[this.#fd].hasColors;
- }
-
- _write(chunk, encoding, callback) {
- var inner = this.#innerStream;
- if (inner) {
- return inner.write(chunk, encoding, callback);
- }
-
- switch (arguments.length) {
- case 0: {
- var error = new Error("Invalid arguments");
- error.code = "ERR_INVALID_ARG_TYPE";
- throw error;
- }
- case 1: {
- return this.#write1(chunk);
- }
- case 2: {
- if (typeof encoding === "function") {
- return this.#writeWithCallbackAndEncoding(chunk, "", encoding);
- } else if (typeof encoding === "string") {
- return this.#writeWithEncoding(chunk, encoding);
- }
- }
- default: {
- if (
- (typeof encoding !== "undefined" && typeof encoding !== "string") ||
- (typeof callback !== "undefined" && typeof callback !== "function")
- ) {
- var error = new Error("Invalid arguments");
- error.code = "ERR_INVALID_ARG_TYPE";
- throw error;
- }
-
- if (typeof callback === "undefined") {
- return this.#writeWithEncoding(chunk, encoding);
- }
-
- return this.#writeWithCallbackAndEncoding(chunk, encoding, callback);
- }
- }
- }
-
- destroy() {
- return this;
- }
-
- end() {
- return this;
- }
- };
-
- return new FastStdioWriteStream(fd_);
-}
-
-export function getStdinStream(fd_, rawRequire, Bun) {
- var module = { path: "node:process", require: rawRequire };
- var require = path => module.require(path);
-
- var { Duplex, eos, destroy } = require("node:stream");
-
- var StdinStream = class StdinStream extends Duplex {
- #reader;
- // TODO: investigate https://github.com/oven-sh/bun/issues/1607
-
- #readRef;
- #writeStream;
-
- #readable = true;
- #unrefOnRead = false;
- #writable = true;
-
- #onFinish;
- #onClose;
- #onDrain;
-
- get isTTY() {
- return require("tty").isatty(fd_);
- }
-
- get fd() {
- return fd_;
- }
-
- constructor() {
- super({ readable: true, writable: true });
- }
-
- #onFinished(err?) {
- const cb = this.#onClose;
- this.#onClose = null;
-
- if (cb) {
- cb(err);
- } else if (err) {
- this.destroy(err);
- } else if (!this.#readable && !this.#writable) {
- this.destroy();
- }
- }
-
- _destroy(err, callback) {
- if (!err && this.#onClose !== null) {
- var AbortError = class AbortError extends Error {
- constructor(message = "The operation was aborted", options = void 0) {
- if (options !== void 0 && typeof options !== "object") {
- throw new Error(`Invalid AbortError options:\n\n${JSON.stringify(options, null, 2)}`);
- }
- super(message, options);
- this.code = "ABORT_ERR";
- this.name = "AbortError";
- }
- };
- err = new AbortError();
- }
-
- if (this.#onClose === null) {
- callback(err);
- } else {
- this.#onClose = callback;
- if (this.#writeStream) destroy(this.#writeStream, err);
- }
- }
-
- setRawMode(mode) {}
-
- on(name, callback) {
- // Streams don't generally required to present any data when only
- // `readable` events are present, i.e. `readableFlowing === false`
- //
- // However, Node.js has a this quirk whereby `process.stdin.read()`
- // blocks under TTY mode, thus looping `.read()` in this particular
- // case would not result in truncation.
- //
- // Therefore the following hack is only specific to `process.stdin`
- // and does not apply to the underlying Stream implementation.
- if (name === "readable") {
- this.ref();
- this.#unrefOnRead = true;
- }
- return super.on(name, callback);
- }
-
- pause() {
- this.unref();
- return super.pause();
- }
-
- resume() {
- this.ref();
- return super.resume();
- }
-
- ref() {
- this.#reader ??= Bun.stdin.stream().getReader();
- this.#readRef ??= setInterval(() => {}, 1 << 30);
- }
-
- unref() {
- if (this.#readRef) {
- clearInterval(this.#readRef);
- this.#readRef = null;
- }
- }
-
- async #readInternal() {
- try {
- var done, value;
- const read = this.#reader.readMany();
-
- // read same-tick if possible
- if (!read?.then) {
- ({ done, value } = read);
- } else {
- ({ done, value } = await read);
- }
-
- if (!done) {
- this.push(value[0]);
-
- // shouldn't actually happen, but just in case
- const length = value.length;
- for (let i = 1; i < length; i++) {
- this.push(value[i]);
- }
- } else {
- this.push(null);
- this.pause();
- this.#readable = false;
- this.#onFinished();
- }
- } catch (err) {
- this.#readable = false;
- this.#onFinished(err);
- }
- }
-
- _read(size) {
- if (this.#unrefOnRead) {
- this.unref();
- this.#unrefOnRead = false;
- }
- this.#readInternal();
- }
-
- #constructWriteStream() {
- var { createWriteStream } = require("node:fs");
- var writeStream = (this.#writeStream = createWriteStream("/dev/fd/0"));
-
- writeStream.on("finish", () => {
- if (this.#onFinish) {
- const cb = this.#onFinish;
- this.#onFinish = null;
- cb();
- }
- });
-
- writeStream.on("drain", () => {
- if (this.#onDrain) {
- const cb = this.#onDrain;
- this.#onDrain = null;
- cb();
- }
- });
-
- eos(writeStream, err => {
- this.#writable = false;
- if (err) {
- destroy(writeStream, err);
- }
- this.#onFinished(err);
- });
-
- return writeStream;
- }
-
- _write(chunk, encoding, callback) {
- var writeStream = this.#writeStream;
- if (!writeStream) {
- writeStream = this.#constructWriteStream();
- }
-
- if (writeStream.write(chunk, encoding)) {
- callback();
- } else {
- this.#onDrain = callback;
- }
- }
-
- _final(callback) {
- this.#writeStream.end();
- this.#onFinish = (...args) => callback(...args);
- }
- };
-
- return new StdinStream();
-}
diff --git a/src/bun.js/builtins/ts/ReadableByteStreamController.ts b/src/bun.js/builtins/ts/ReadableByteStreamController.ts
deleted file mode 100644
index 888f241bc..000000000
--- a/src/bun.js/builtins/ts/ReadableByteStreamController.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2016 Canon Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeReadableByteStreamController(this, stream, underlyingByteSource, highWaterMark) {
- if (arguments.length !== 4 && arguments[3] !== $isReadableStream)
- throw new TypeError("ReadableByteStreamController constructor should not be called directly");
-
- return $privateInitializeReadableByteStreamController.$call(this, stream, underlyingByteSource, highWaterMark);
-}
-
-export function enqueue(this, chunk) {
- if (!$isReadableByteStreamController(this)) throw $makeThisTypeError("ReadableByteStreamController", "enqueue");
-
- if ($getByIdDirectPrivate(this, "closeRequested"))
- throw new TypeError("ReadableByteStreamController is requested to close");
-
- if ($getByIdDirectPrivate($getByIdDirectPrivate(this, "controlledReadableStream"), "state") !== $streamReadable)
- throw new TypeError("ReadableStream is not readable");
-
- if (!$isObject(chunk) || !ArrayBuffer.$isView(chunk)) throw new TypeError("Provided chunk is not a TypedArray");
-
- return $readableByteStreamControllerEnqueue(this, chunk);
-}
-
-export function error(this, error) {
- if (!$isReadableByteStreamController(this)) throw $makeThisTypeError("ReadableByteStreamController", "error");
-
- if ($getByIdDirectPrivate($getByIdDirectPrivate(this, "controlledReadableStream"), "state") !== $streamReadable)
- throw new TypeError("ReadableStream is not readable");
-
- $readableByteStreamControllerError(this, error);
-}
-
-export function close(this) {
- if (!$isReadableByteStreamController(this)) throw $makeThisTypeError("ReadableByteStreamController", "close");
-
- if ($getByIdDirectPrivate(this, "closeRequested")) throw new TypeError("Close has already been requested");
-
- if ($getByIdDirectPrivate($getByIdDirectPrivate(this, "controlledReadableStream"), "state") !== $streamReadable)
- throw new TypeError("ReadableStream is not readable");
-
- $readableByteStreamControllerClose(this);
-}
-
-$getter;
-export function byobRequest(this) {
- if (!$isReadableByteStreamController(this)) throw $makeGetterTypeError("ReadableByteStreamController", "byobRequest");
-
- var request = $getByIdDirectPrivate(this, "byobRequest");
- if (request === undefined) {
- var pending = $getByIdDirectPrivate(this, "pendingPullIntos");
- const firstDescriptor = pending.peek();
- if (firstDescriptor) {
- const view = new Uint8Array(
- firstDescriptor.buffer,
- firstDescriptor.byteOffset + firstDescriptor.bytesFilled,
- firstDescriptor.byteLength - firstDescriptor.bytesFilled,
- );
- $putByIdDirectPrivate(this, "byobRequest", new ReadableStreamBYOBRequest(this, view, $isReadableStream));
- }
- }
-
- return $getByIdDirectPrivate(this, "byobRequest");
-}
-
-$getter;
-export function desiredSize(this) {
- if (!$isReadableByteStreamController(this)) throw $makeGetterTypeError("ReadableByteStreamController", "desiredSize");
-
- return $readableByteStreamControllerGetDesiredSize(this);
-}
diff --git a/src/bun.js/builtins/ts/ReadableByteStreamInternals.ts b/src/bun.js/builtins/ts/ReadableByteStreamInternals.ts
deleted file mode 100644
index f44c385b4..000000000
--- a/src/bun.js/builtins/ts/ReadableByteStreamInternals.ts
+++ /dev/null
@@ -1,656 +0,0 @@
-/*
- * Copyright (C) 2016 Canon Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-// @internal
-
-export function privateInitializeReadableByteStreamController(this, stream, underlyingByteSource, highWaterMark) {
- if (!$isReadableStream(stream)) throw new TypeError("ReadableByteStreamController needs a ReadableStream");
-
- // readableStreamController is initialized with null value.
- if ($getByIdDirectPrivate(stream, "readableStreamController") !== null)
- throw new TypeError("ReadableStream already has a controller");
-
- $putByIdDirectPrivate(this, "controlledReadableStream", stream);
- $putByIdDirectPrivate(this, "underlyingByteSource", underlyingByteSource);
- $putByIdDirectPrivate(this, "pullAgain", false);
- $putByIdDirectPrivate(this, "pulling", false);
- $readableByteStreamControllerClearPendingPullIntos(this);
- $putByIdDirectPrivate(this, "queue", $newQueue());
- $putByIdDirectPrivate(this, "started", 0);
- $putByIdDirectPrivate(this, "closeRequested", false);
-
- let hwm = $toNumber(highWaterMark);
- if (isNaN(hwm) || hwm < 0) throw new RangeError("highWaterMark value is negative or not a number");
- $putByIdDirectPrivate(this, "strategyHWM", hwm);
-
- let autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
- if (autoAllocateChunkSize !== undefined) {
- autoAllocateChunkSize = $toNumber(autoAllocateChunkSize);
- if (autoAllocateChunkSize <= 0 || autoAllocateChunkSize === Infinity || autoAllocateChunkSize === -Infinity)
- throw new RangeError("autoAllocateChunkSize value is negative or equal to positive or negative infinity");
- }
- $putByIdDirectPrivate(this, "autoAllocateChunkSize", autoAllocateChunkSize);
- $putByIdDirectPrivate(this, "pendingPullIntos", $createFIFO());
-
- const controller = this;
- $promiseInvokeOrNoopNoCatch($getByIdDirectPrivate(controller, "underlyingByteSource"), "start", [controller]).$then(
- () => {
- $putByIdDirectPrivate(controller, "started", 1);
- $assert(!$getByIdDirectPrivate(controller, "pulling"));
- $assert(!$getByIdDirectPrivate(controller, "pullAgain"));
- $readableByteStreamControllerCallPullIfNeeded(controller);
- },
- error => {
- if ($getByIdDirectPrivate(stream, "state") === $streamReadable)
- $readableByteStreamControllerError(controller, error);
- },
- );
-
- $putByIdDirectPrivate(this, "cancel", $readableByteStreamControllerCancel);
- $putByIdDirectPrivate(this, "pull", $readableByteStreamControllerPull);
-
- return this;
-}
-
-export function readableStreamByteStreamControllerStart(this, controller) {
- $putByIdDirectPrivate(controller, "start", undefined);
-}
-
-export function privateInitializeReadableStreamBYOBRequest(this, controller, view) {
- $putByIdDirectPrivate(this, "associatedReadableByteStreamController", controller);
- $putByIdDirectPrivate(this, "view", view);
-}
-
-export function isReadableByteStreamController(controller) {
- // Same test mechanism as in isReadableStreamDefaultController (ReadableStreamInternals.js).
- // See corresponding function for explanations.
- return $isObject(controller) && !!$getByIdDirectPrivate(controller, "underlyingByteSource");
-}
-
-export function isReadableStreamBYOBRequest(byobRequest) {
- // Same test mechanism as in isReadableStreamDefaultController (ReadableStreamInternals.js).
- // See corresponding function for explanations.
- return $isObject(byobRequest) && !!$getByIdDirectPrivate(byobRequest, "associatedReadableByteStreamController");
-}
-
-export function isReadableStreamBYOBReader(reader) {
- // Spec tells to return true only if reader has a readIntoRequests internal slot.
- // However, since it is a private slot, it cannot be checked using hasOwnProperty().
- // Since readIntoRequests is initialized with an empty array, the following test is ok.
- return $isObject(reader) && !!$getByIdDirectPrivate(reader, "readIntoRequests");
-}
-
-export function readableByteStreamControllerCancel(controller, reason) {
- var pendingPullIntos = $getByIdDirectPrivate(controller, "pendingPullIntos");
- var first = pendingPullIntos.peek();
- if (first) first.bytesFilled = 0;
-
- $putByIdDirectPrivate(controller, "queue", $newQueue());
- return $promiseInvokeOrNoop($getByIdDirectPrivate(controller, "underlyingByteSource"), "cancel", [reason]);
-}
-
-export function readableByteStreamControllerError(controller, e) {
- $assert(
- $getByIdDirectPrivate($getByIdDirectPrivate(controller, "controlledReadableStream"), "state") === $streamReadable,
- );
- $readableByteStreamControllerClearPendingPullIntos(controller);
- $putByIdDirectPrivate(controller, "queue", $newQueue());
- $readableStreamError($getByIdDirectPrivate(controller, "controlledReadableStream"), e);
-}
-
-export function readableByteStreamControllerClose(controller) {
- $assert(!$getByIdDirectPrivate(controller, "closeRequested"));
- $assert(
- $getByIdDirectPrivate($getByIdDirectPrivate(controller, "controlledReadableStream"), "state") === $streamReadable,
- );
-
- if ($getByIdDirectPrivate(controller, "queue").size > 0) {
- $putByIdDirectPrivate(controller, "closeRequested", true);
- return;
- }
-
- var first = $getByIdDirectPrivate(controller, "pendingPullIntos")?.peek();
- if (first) {
- if (first.bytesFilled > 0) {
- const e = $makeTypeError("Close requested while there remain pending bytes");
- $readableByteStreamControllerError(controller, e);
- throw e;
- }
- }
-
- $readableStreamClose($getByIdDirectPrivate(controller, "controlledReadableStream"));
-}
-
-export function readableByteStreamControllerClearPendingPullIntos(controller) {
- $readableByteStreamControllerInvalidateBYOBRequest(controller);
- var existing = $getByIdDirectPrivate(controller, "pendingPullIntos");
- if (existing !== undefined) {
- existing.clear();
- } else {
- $putByIdDirectPrivate(controller, "pendingPullIntos", $createFIFO());
- }
-}
-
-export function readableByteStreamControllerGetDesiredSize(controller) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
- const state = $getByIdDirectPrivate(stream, "state");
-
- if (state === $streamErrored) return null;
- if (state === $streamClosed) return 0;
-
- return $getByIdDirectPrivate(controller, "strategyHWM") - $getByIdDirectPrivate(controller, "queue").size;
-}
-
-export function readableStreamHasBYOBReader(stream) {
- const reader = $getByIdDirectPrivate(stream, "reader");
- return reader !== undefined && $isReadableStreamBYOBReader(reader);
-}
-
-export function readableStreamHasDefaultReader(stream) {
- const reader = $getByIdDirectPrivate(stream, "reader");
- return reader !== undefined && $isReadableStreamDefaultReader(reader);
-}
-
-export function readableByteStreamControllerHandleQueueDrain(controller) {
- $assert(
- $getByIdDirectPrivate($getByIdDirectPrivate(controller, "controlledReadableStream"), "state") === $streamReadable,
- );
- if (!$getByIdDirectPrivate(controller, "queue").size && $getByIdDirectPrivate(controller, "closeRequested"))
- $readableStreamClose($getByIdDirectPrivate(controller, "controlledReadableStream"));
- else $readableByteStreamControllerCallPullIfNeeded(controller);
-}
-
-export function readableByteStreamControllerPull(controller) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
- $assert($readableStreamHasDefaultReader(stream));
- if ($getByIdDirectPrivate(controller, "queue").content?.isNotEmpty()) {
- const entry = $getByIdDirectPrivate(controller, "queue").content.shift();
- $getByIdDirectPrivate(controller, "queue").size -= entry.byteLength;
- $readableByteStreamControllerHandleQueueDrain(controller);
- let view;
- try {
- view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
- } catch (error) {
- return Promise.$reject(error);
- }
- return $createFulfilledPromise({ value: view, done: false });
- }
-
- if ($getByIdDirectPrivate(controller, "autoAllocateChunkSize") !== undefined) {
- let buffer;
- try {
- buffer = $createUninitializedArrayBuffer($getByIdDirectPrivate(controller, "autoAllocateChunkSize"));
- } catch (error) {
- return Promise.$reject(error);
- }
- const pullIntoDescriptor = {
- buffer,
- byteOffset: 0,
- byteLength: $getByIdDirectPrivate(controller, "autoAllocateChunkSize"),
- bytesFilled: 0,
- elementSize: 1,
- ctor: Uint8Array,
- readerType: "default",
- };
- $getByIdDirectPrivate(controller, "pendingPullIntos").push(pullIntoDescriptor);
- }
-
- const promise = $readableStreamAddReadRequest(stream);
- $readableByteStreamControllerCallPullIfNeeded(controller);
- return promise;
-}
-
-export function readableByteStreamControllerShouldCallPull(controller) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
-
- if ($getByIdDirectPrivate(stream, "state") !== $streamReadable) return false;
- if ($getByIdDirectPrivate(controller, "closeRequested")) return false;
- if (!($getByIdDirectPrivate(controller, "started") > 0)) return false;
- const reader = $getByIdDirectPrivate(stream, "reader");
-
- if (
- reader &&
- ($getByIdDirectPrivate(reader, "readRequests")?.isNotEmpty() || !!$getByIdDirectPrivate(reader, "bunNativePtr"))
- )
- return true;
- if (
- $readableStreamHasBYOBReader(stream) &&
- $getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readIntoRequests")?.isNotEmpty()
- )
- return true;
- if ($readableByteStreamControllerGetDesiredSize(controller) > 0) return true;
- return false;
-}
-
-export function readableByteStreamControllerCallPullIfNeeded(controller) {
- if (!$readableByteStreamControllerShouldCallPull(controller)) return;
-
- if ($getByIdDirectPrivate(controller, "pulling")) {
- $putByIdDirectPrivate(controller, "pullAgain", true);
- return;
- }
-
- $assert(!$getByIdDirectPrivate(controller, "pullAgain"));
- $putByIdDirectPrivate(controller, "pulling", true);
- $promiseInvokeOrNoop($getByIdDirectPrivate(controller, "underlyingByteSource"), "pull", [controller]).$then(
- () => {
- $putByIdDirectPrivate(controller, "pulling", false);
- if ($getByIdDirectPrivate(controller, "pullAgain")) {
- $putByIdDirectPrivate(controller, "pullAgain", false);
- $readableByteStreamControllerCallPullIfNeeded(controller);
- }
- },
- error => {
- if (
- $getByIdDirectPrivate($getByIdDirectPrivate(controller, "controlledReadableStream"), "state") ===
- $streamReadable
- )
- $readableByteStreamControllerError(controller, error);
- },
- );
-}
-
-export function transferBufferToCurrentRealm(buffer) {
- // FIXME: Determine what should be done here exactly (what is already existing in current
- // codebase and what has to be added). According to spec, Transfer operation should be
- // performed in order to transfer buffer to current realm. For the moment, simply return
- // received buffer.
- return buffer;
-}
-
-export function readableStreamReaderKind(reader) {
- if (!!$getByIdDirectPrivate(reader, "readRequests")) return $getByIdDirectPrivate(reader, "bunNativePtr") ? 3 : 1;
-
- if (!!$getByIdDirectPrivate(reader, "readIntoRequests")) return 2;
-
- return 0;
-}
-
-export function readableByteStreamControllerEnqueue(controller, chunk) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
- $assert(!$getByIdDirectPrivate(controller, "closeRequested"));
- $assert($getByIdDirectPrivate(stream, "state") === $streamReadable);
-
- switch (
- $getByIdDirectPrivate(stream, "reader") ? $readableStreamReaderKind($getByIdDirectPrivate(stream, "reader")) : 0
- ) {
- /* default reader */
- case 1: {
- if (!$getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readRequests")?.isNotEmpty())
- $readableByteStreamControllerEnqueueChunk(
- controller,
- $transferBufferToCurrentRealm(chunk.buffer),
- chunk.byteOffset,
- chunk.byteLength,
- );
- else {
- $assert(!$getByIdDirectPrivate(controller, "queue").content.size());
- const transferredView =
- chunk.constructor === Uint8Array ? chunk : new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);
- $readableStreamFulfillReadRequest(stream, transferredView, false);
- }
- break;
- }
-
- /* BYOB */
- case 2: {
- $readableByteStreamControllerEnqueueChunk(
- controller,
- $transferBufferToCurrentRealm(chunk.buffer),
- chunk.byteOffset,
- chunk.byteLength,
- );
- $readableByteStreamControllerProcessPullDescriptors(controller);
- break;
- }
-
- /* NativeReader */
- case 3: {
- // reader.$enqueueNative($getByIdDirectPrivate(reader, "bunNativePtr"), chunk);
-
- break;
- }
-
- default: {
- $assert(!$isReadableStreamLocked(stream));
- $readableByteStreamControllerEnqueueChunk(
- controller,
- $transferBufferToCurrentRealm(chunk.buffer),
- chunk.byteOffset,
- chunk.byteLength,
- );
- break;
- }
- }
-}
-
-// Spec name: readableByteStreamControllerEnqueueChunkToQueue.
-export function readableByteStreamControllerEnqueueChunk(controller, buffer, byteOffset, byteLength) {
- $getByIdDirectPrivate(controller, "queue").content.push({
- buffer: buffer,
- byteOffset: byteOffset,
- byteLength: byteLength,
- });
- $getByIdDirectPrivate(controller, "queue").size += byteLength;
-}
-
-export function readableByteStreamControllerRespondWithNewView(controller, view) {
- $assert($getByIdDirectPrivate(controller, "pendingPullIntos").isNotEmpty());
-
- let firstDescriptor = $getByIdDirectPrivate(controller, "pendingPullIntos").peek();
-
- if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset)
- throw new RangeError("Invalid value for view.byteOffset");
-
- if (firstDescriptor.byteLength !== view.byteLength) throw new RangeError("Invalid value for view.byteLength");
-
- firstDescriptor.buffer = view.buffer;
- $readableByteStreamControllerRespondInternal(controller, view.byteLength);
-}
-
-export function readableByteStreamControllerRespond(controller, bytesWritten) {
- bytesWritten = $toNumber(bytesWritten);
-
- if (isNaN(bytesWritten) || bytesWritten === Infinity || bytesWritten < 0)
- throw new RangeError("bytesWritten has an incorrect value");
-
- $assert($getByIdDirectPrivate(controller, "pendingPullIntos").isNotEmpty());
-
- $readableByteStreamControllerRespondInternal(controller, bytesWritten);
-}
-
-export function readableByteStreamControllerRespondInternal(controller, bytesWritten) {
- let firstDescriptor = $getByIdDirectPrivate(controller, "pendingPullIntos").peek();
- let stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
-
- if ($getByIdDirectPrivate(stream, "state") === $streamClosed) {
- if (bytesWritten !== 0) throw new TypeError("bytesWritten is different from 0 even though stream is closed");
- $readableByteStreamControllerRespondInClosedState(controller, firstDescriptor);
- } else {
- $assert($getByIdDirectPrivate(stream, "state") === $streamReadable);
- $readableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);
- }
-}
-
-export function readableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {
- if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength)
- throw new RangeError("bytesWritten value is too great");
-
- $assert(
- $getByIdDirectPrivate(controller, "pendingPullIntos").isEmpty() ||
- $getByIdDirectPrivate(controller, "pendingPullIntos").peek() === pullIntoDescriptor,
- );
- $readableByteStreamControllerInvalidateBYOBRequest(controller);
- pullIntoDescriptor.bytesFilled += bytesWritten;
-
- if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) return;
-
- $readableByteStreamControllerShiftPendingDescriptor(controller);
- const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;
-
- if (remainderSize > 0) {
- const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
- const remainder = $cloneArrayBuffer(pullIntoDescriptor.buffer, end - remainderSize, remainderSize);
- $readableByteStreamControllerEnqueueChunk(controller, remainder, 0, remainder.byteLength);
- }
-
- pullIntoDescriptor.buffer = $transferBufferToCurrentRealm(pullIntoDescriptor.buffer);
- pullIntoDescriptor.bytesFilled -= remainderSize;
- $readableByteStreamControllerCommitDescriptor(
- $getByIdDirectPrivate(controller, "controlledReadableStream"),
- pullIntoDescriptor,
- );
- $readableByteStreamControllerProcessPullDescriptors(controller);
-}
-
-export function readableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {
- firstDescriptor.buffer = $transferBufferToCurrentRealm(firstDescriptor.buffer);
- $assert(firstDescriptor.bytesFilled === 0);
-
- if ($readableStreamHasBYOBReader($getByIdDirectPrivate(controller, "controlledReadableStream"))) {
- while (
- $getByIdDirectPrivate(
- $getByIdDirectPrivate($getByIdDirectPrivate(controller, "controlledReadableStream"), "reader"),
- "readIntoRequests",
- )?.isNotEmpty()
- ) {
- let pullIntoDescriptor = $readableByteStreamControllerShiftPendingDescriptor(controller);
- $readableByteStreamControllerCommitDescriptor(
- $getByIdDirectPrivate(controller, "controlledReadableStream"),
- pullIntoDescriptor,
- );
- }
- }
-}
-
-// Spec name: readableByteStreamControllerProcessPullIntoDescriptorsUsingQueue (shortened for readability).
-export function readableByteStreamControllerProcessPullDescriptors(controller) {
- $assert(!$getByIdDirectPrivate(controller, "closeRequested"));
- while ($getByIdDirectPrivate(controller, "pendingPullIntos").isNotEmpty()) {
- if ($getByIdDirectPrivate(controller, "queue").size === 0) return;
- let pullIntoDescriptor = $getByIdDirectPrivate(controller, "pendingPullIntos").peek();
- if ($readableByteStreamControllerFillDescriptorFromQueue(controller, pullIntoDescriptor)) {
- $readableByteStreamControllerShiftPendingDescriptor(controller);
- $readableByteStreamControllerCommitDescriptor(
- $getByIdDirectPrivate(controller, "controlledReadableStream"),
- pullIntoDescriptor,
- );
- }
- }
-}
-
-// Spec name: readableByteStreamControllerFillPullIntoDescriptorFromQueue (shortened for readability).
-export function readableByteStreamControllerFillDescriptorFromQueue(controller, pullIntoDescriptor) {
- const currentAlignedBytes =
- pullIntoDescriptor.bytesFilled - (pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize);
- const maxBytesToCopy =
- $getByIdDirectPrivate(controller, "queue").size < pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled
- ? $getByIdDirectPrivate(controller, "queue").size
- : pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled;
- const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;
- const maxAlignedBytes = maxBytesFilled - (maxBytesFilled % pullIntoDescriptor.elementSize);
- let totalBytesToCopyRemaining = maxBytesToCopy;
- let ready = false;
-
- if (maxAlignedBytes > currentAlignedBytes) {
- totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;
- ready = true;
- }
-
- while (totalBytesToCopyRemaining > 0) {
- let headOfQueue = $getByIdDirectPrivate(controller, "queue").content.peek();
- const bytesToCopy =
- totalBytesToCopyRemaining < headOfQueue.byteLength ? totalBytesToCopyRemaining : headOfQueue.byteLength;
- // Copy appropriate part of pullIntoDescriptor.buffer to headOfQueue.buffer.
- // Remark: this implementation is not completely aligned on the definition of CopyDataBlockBytes
- // operation of ECMAScript (the case of Shared Data Block is not considered here, but it doesn't seem to be an issue).
- const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
- // FIXME: As indicated in comments of bug 172717, access to set is not safe. However, using prototype.$set.$call does
- // not work ($set is undefined). A safe way to do that is needed.
- new Uint8Array(pullIntoDescriptor.buffer).set(
- new Uint8Array(headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy),
- destStart,
- );
-
- if (headOfQueue.byteLength === bytesToCopy) $getByIdDirectPrivate(controller, "queue").content.shift();
- else {
- headOfQueue.byteOffset += bytesToCopy;
- headOfQueue.byteLength -= bytesToCopy;
- }
-
- $getByIdDirectPrivate(controller, "queue").size -= bytesToCopy;
- $assert(
- $getByIdDirectPrivate(controller, "pendingPullIntos").isEmpty() ||
- $getByIdDirectPrivate(controller, "pendingPullIntos").peek() === pullIntoDescriptor,
- );
- $readableByteStreamControllerInvalidateBYOBRequest(controller);
- pullIntoDescriptor.bytesFilled += bytesToCopy;
- totalBytesToCopyRemaining -= bytesToCopy;
- }
-
- if (!ready) {
- $assert($getByIdDirectPrivate(controller, "queue").size === 0);
- $assert(pullIntoDescriptor.bytesFilled > 0);
- $assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);
- }
-
- return ready;
-}
-
-// Spec name: readableByteStreamControllerShiftPendingPullInto (renamed for consistency).
-export function readableByteStreamControllerShiftPendingDescriptor(controller) {
- let descriptor = $getByIdDirectPrivate(controller, "pendingPullIntos").shift();
- $readableByteStreamControllerInvalidateBYOBRequest(controller);
- return descriptor;
-}
-
-export function readableByteStreamControllerInvalidateBYOBRequest(controller) {
- if ($getByIdDirectPrivate(controller, "byobRequest") === undefined) return;
- const byobRequest = $getByIdDirectPrivate(controller, "byobRequest");
- $putByIdDirectPrivate(byobRequest, "associatedReadableByteStreamController", undefined);
- $putByIdDirectPrivate(byobRequest, "view", undefined);
- $putByIdDirectPrivate(controller, "byobRequest", undefined);
-}
-
-// Spec name: readableByteStreamControllerCommitPullIntoDescriptor (shortened for readability).
-export function readableByteStreamControllerCommitDescriptor(stream, pullIntoDescriptor) {
- $assert($getByIdDirectPrivate(stream, "state") !== $streamErrored);
- let done = false;
- if ($getByIdDirectPrivate(stream, "state") === $streamClosed) {
- $assert(!pullIntoDescriptor.bytesFilled);
- done = true;
- }
- let filledView = $readableByteStreamControllerConvertDescriptor(pullIntoDescriptor);
- if (pullIntoDescriptor.readerType === "default") $readableStreamFulfillReadRequest(stream, filledView, done);
- else {
- $assert(pullIntoDescriptor.readerType === "byob");
- $readableStreamFulfillReadIntoRequest(stream, filledView, done);
- }
-}
-
-// Spec name: readableByteStreamControllerConvertPullIntoDescriptor (shortened for readability).
-export function readableByteStreamControllerConvertDescriptor(pullIntoDescriptor) {
- $assert(pullIntoDescriptor.bytesFilled <= pullIntoDescriptor.byteLength);
- $assert(pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize === 0);
-
- return new pullIntoDescriptor.ctor(
- pullIntoDescriptor.buffer,
- pullIntoDescriptor.byteOffset,
- pullIntoDescriptor.bytesFilled / pullIntoDescriptor.elementSize,
- );
-}
-
-export function readableStreamFulfillReadIntoRequest(stream, chunk, done) {
- const readIntoRequest = $getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readIntoRequests").shift();
- $fulfillPromise(readIntoRequest, { value: chunk, done: done });
-}
-
-export function readableStreamBYOBReaderRead(reader, view) {
- const stream = $getByIdDirectPrivate(reader, "ownerReadableStream");
- $assert(!!stream);
-
- $putByIdDirectPrivate(stream, "disturbed", true);
- if ($getByIdDirectPrivate(stream, "state") === $streamErrored)
- return Promise.$reject($getByIdDirectPrivate(stream, "storedError"));
-
- return $readableByteStreamControllerPullInto($getByIdDirectPrivate(stream, "readableStreamController"), view);
-}
-
-export function readableByteStreamControllerPullInto(controller, view) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
- let elementSize = 1;
- // Spec describes that in the case where view is a TypedArray, elementSize
- // should be set to the size of an element (e.g. 2 for UInt16Array). For
- // DataView, BYTES_PER_ELEMENT is undefined, contrary to the same property
- // for TypedArrays.
- // FIXME: Getting BYTES_PER_ELEMENT like this is not safe (property is read-only
- // but can be modified if the prototype is redefined). A safe way of getting
- // it would be to determine which type of ArrayBufferView view is an instance
- // of based on typed arrays private variables. However, this is not possible due
- // to bug 167697, which prevents access to typed arrays through their private
- // names unless public name has already been met before.
- if (view.BYTES_PER_ELEMENT !== undefined) elementSize = view.BYTES_PER_ELEMENT;
-
- // FIXME: Getting constructor like this is not safe. A safe way of getting
- // it would be to determine which type of ArrayBufferView view is an instance
- // of, and to assign appropriate constructor based on this (e.g. ctor =
- // $Uint8Array). However, this is not possible due to bug 167697, which
- // prevents access to typed arrays through their private names unless public
- // name has already been met before.
- const ctor = view.constructor;
-
- const pullIntoDescriptor = {
- buffer: view.buffer,
- byteOffset: view.byteOffset,
- byteLength: view.byteLength,
- bytesFilled: 0,
- elementSize,
- ctor,
- readerType: "byob",
- };
-
- var pending = $getByIdDirectPrivate(controller, "pendingPullIntos");
- if (pending?.isNotEmpty()) {
- pullIntoDescriptor.buffer = $transferBufferToCurrentRealm(pullIntoDescriptor.buffer);
- pending.push(pullIntoDescriptor);
- return $readableStreamAddReadIntoRequest(stream);
- }
-
- if ($getByIdDirectPrivate(stream, "state") === $streamClosed) {
- const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);
- return $createFulfilledPromise({ value: emptyView, done: true });
- }
-
- if ($getByIdDirectPrivate(controller, "queue").size > 0) {
- if ($readableByteStreamControllerFillDescriptorFromQueue(controller, pullIntoDescriptor)) {
- const filledView = $readableByteStreamControllerConvertDescriptor(pullIntoDescriptor);
- $readableByteStreamControllerHandleQueueDrain(controller);
- return $createFulfilledPromise({ value: filledView, done: false });
- }
- if ($getByIdDirectPrivate(controller, "closeRequested")) {
- const e = $makeTypeError("Closing stream has been requested");
- $readableByteStreamControllerError(controller, e);
- return Promise.$reject(e);
- }
- }
-
- pullIntoDescriptor.buffer = $transferBufferToCurrentRealm(pullIntoDescriptor.buffer);
- $getByIdDirectPrivate(controller, "pendingPullIntos").push(pullIntoDescriptor);
- const promise = $readableStreamAddReadIntoRequest(stream);
- $readableByteStreamControllerCallPullIfNeeded(controller);
- return promise;
-}
-
-export function readableStreamAddReadIntoRequest(stream) {
- $assert($isReadableStreamBYOBReader($getByIdDirectPrivate(stream, "reader")));
- $assert(
- $getByIdDirectPrivate(stream, "state") === $streamReadable ||
- $getByIdDirectPrivate(stream, "state") === $streamClosed,
- );
-
- const readRequest = $newPromise();
- $getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readIntoRequests").push(readRequest);
-
- return readRequest;
-}
diff --git a/src/bun.js/builtins/ts/ReadableStream.ts b/src/bun.js/builtins/ts/ReadableStream.ts
deleted file mode 100644
index 613f869e5..000000000
--- a/src/bun.js/builtins/ts/ReadableStream.ts
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * Copyright (C) 2015 Canon Inc.
- * Copyright (C) 2015 Igalia.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeReadableStream(this: any, underlyingSource: UnderlyingSource, strategy: any) {
- if (underlyingSource === undefined)
- underlyingSource = { $bunNativeType: 0, $bunNativePtr: 0, $lazy: false } as UnderlyingSource;
- if (strategy === undefined) strategy = {};
-
- if (!$isObject(underlyingSource)) throw new TypeError("ReadableStream constructor takes an object as first argument");
-
- if (strategy !== undefined && !$isObject(strategy))
- throw new TypeError("ReadableStream constructor takes an object as second argument, if any");
-
- $putByIdDirectPrivate(this, "state", $streamReadable);
-
- $putByIdDirectPrivate(this, "reader", undefined);
-
- $putByIdDirectPrivate(this, "storedError", undefined);
-
- $putByIdDirectPrivate(this, "disturbed", false);
-
- // Initialized with null value to enable distinction with undefined case.
- $putByIdDirectPrivate(this, "readableStreamController", null);
- $putByIdDirectPrivate(this, "bunNativeType", $getByIdDirectPrivate(underlyingSource, "bunNativeType") ?? 0);
- $putByIdDirectPrivate(this, "bunNativePtr", $getByIdDirectPrivate(underlyingSource, "bunNativePtr") ?? 0);
-
- const isDirect = underlyingSource.type === "direct";
- // direct streams are always lazy
- const isUnderlyingSourceLazy = !!underlyingSource.$lazy;
- const isLazy = isDirect || isUnderlyingSourceLazy;
-
- // FIXME: We should introduce https://streams.spec.whatwg.org/#create-readable-stream.
- // For now, we emulate this with underlyingSource with private properties.
- if ($getByIdDirectPrivate(underlyingSource, "pull") !== undefined && !isLazy) {
- const size = $getByIdDirectPrivate(strategy, "size");
- const highWaterMark = $getByIdDirectPrivate(strategy, "highWaterMark");
- $putByIdDirectPrivate(this, "highWaterMark", highWaterMark);
- $putByIdDirectPrivate(this, "underlyingSource", undefined);
- $setupReadableStreamDefaultController(
- this,
- underlyingSource,
- size,
- highWaterMark !== undefined ? highWaterMark : 1,
- $getByIdDirectPrivate(underlyingSource, "start"),
- $getByIdDirectPrivate(underlyingSource, "pull"),
- $getByIdDirectPrivate(underlyingSource, "cancel"),
- );
-
- return this;
- }
- if (isDirect) {
- $putByIdDirectPrivate(this, "underlyingSource", underlyingSource);
- $putByIdDirectPrivate(this, "highWaterMark", $getByIdDirectPrivate(strategy, "highWaterMark"));
- $putByIdDirectPrivate(this, "start", () => $createReadableStreamController(this, underlyingSource, strategy));
- } else if (isLazy) {
- const autoAllocateChunkSize = underlyingSource.autoAllocateChunkSize;
- $putByIdDirectPrivate(this, "highWaterMark", undefined);
- $putByIdDirectPrivate(this, "underlyingSource", undefined);
- $putByIdDirectPrivate(
- this,
- "highWaterMark",
- autoAllocateChunkSize || $getByIdDirectPrivate(strategy, "highWaterMark"),
- );
-
- $putByIdDirectPrivate(this, "start", () => {
- const instance = $lazyLoadStream(this, autoAllocateChunkSize);
- if (instance) {
- $createReadableStreamController(this, instance, strategy);
- }
- });
- } else {
- $putByIdDirectPrivate(this, "underlyingSource", undefined);
- $putByIdDirectPrivate(this, "highWaterMark", $getByIdDirectPrivate(strategy, "highWaterMark"));
- $putByIdDirectPrivate(this, "start", undefined);
- $createReadableStreamController(this, underlyingSource, strategy);
- }
-
- return this;
-}
-
-$linkTimeConstant;
-export function readableStreamToArray(stream: ReadableStream): Promise<unknown[]> {
- // this is a direct stream
- var underlyingSource = $getByIdDirectPrivate(stream, "underlyingSource");
- if (underlyingSource !== undefined) {
- return $readableStreamToArrayDirect(stream, underlyingSource);
- }
-
- return $readableStreamIntoArray(stream);
-}
-
-$linkTimeConstant;
-export function readableStreamToText(stream: ReadableStream): Promise<string> {
- // this is a direct stream
- var underlyingSource = $getByIdDirectPrivate(stream, "underlyingSource");
- if (underlyingSource !== undefined) {
- return $readableStreamToTextDirect(stream, underlyingSource);
- }
-
- return $readableStreamIntoText(stream);
-}
-
-$linkTimeConstant;
-export function readableStreamToArrayBuffer(stream: ReadableStream<ArrayBuffer>): Promise<ArrayBuffer> | ArrayBuffer {
- // this is a direct stream
- var underlyingSource = $getByIdDirectPrivate(stream, "underlyingSource");
-
- if (underlyingSource !== undefined) {
- return $readableStreamToArrayBufferDirect(stream, underlyingSource);
- }
-
- var array = Bun.readableStreamToArray(stream);
- if ($isPromise(array)) {
- return array.$then(Bun.concatArrayBuffers);
- }
-
- return Bun.concatArrayBuffers(array);
-}
-
-$linkTimeConstant;
-export function readableStreamToJSON(stream: ReadableStream): unknown {
- return Bun.readableStreamToText(stream).$then(globalThis.JSON.parse);
-}
-
-$linkTimeConstant;
-export function readableStreamToBlob(stream: ReadableStream): Promise<Blob> {
- return Promise.resolve(Bun.readableStreamToArray(stream)).$then(array => new Blob(array));
-}
-
-$linkTimeConstant;
-export function consumeReadableStream(nativePtr, nativeType, inputStream) {
- const symbol = globalThis.Symbol.for("Bun.consumeReadableStreamPrototype");
- var cached = globalThis[symbol];
- if (!cached) {
- cached = globalThis[symbol] = [];
- }
- var Prototype = cached[nativeType];
- if (Prototype === undefined) {
- var [doRead, doError, doReadMany, doClose, onClose, deinit] =
- globalThis[globalThis.Symbol.for("Bun.lazy")](nativeType);
-
- Prototype = class NativeReadableStreamSink {
- handleError: any;
- handleClosed: any;
- processResult: any;
-
- constructor(reader, ptr) {
- this.#ptr = ptr;
- this.#reader = reader;
- this.#didClose = false;
-
- this.handleError = this._handleError.bind(this);
- this.handleClosed = this._handleClosed.bind(this);
- this.processResult = this._processResult.bind(this);
-
- reader.closed.then(this.handleClosed, this.handleError);
- }
-
- _handleClosed() {
- if (this.#didClose) return;
- this.#didClose = true;
- var ptr = this.#ptr;
- this.#ptr = 0;
- doClose(ptr);
- deinit(ptr);
- }
-
- _handleError(error) {
- if (this.#didClose) return;
- this.#didClose = true;
- var ptr = this.#ptr;
- this.#ptr = 0;
- doError(ptr, error);
- deinit(ptr);
- }
-
- #ptr;
- #didClose = false;
- #reader;
-
- _handleReadMany({ value, done, size }) {
- if (done) {
- this.handleClosed();
- return;
- }
-
- if (this.#didClose) return;
-
- doReadMany(this.#ptr, value, done, size);
- }
-
- read() {
- if (!this.#ptr) return $throwTypeError("ReadableStreamSink is already closed");
-
- return this.processResult(this.#reader.read());
- }
-
- _processResult(result) {
- if (result && $isPromise(result)) {
- const flags = $getPromiseInternalField(result, $promiseFieldFlags);
- if (flags & $promiseStateFulfilled) {
- const fulfilledValue = $getPromiseInternalField(result, $promiseFieldReactionsOrResult);
- if (fulfilledValue) {
- result = fulfilledValue;
- }
- }
- }
-
- if (result && $isPromise(result)) {
- result.then(this.processResult, this.handleError);
- return null;
- }
-
- if (result.done) {
- this.handleClosed();
- return 0;
- } else if (result.value) {
- return result.value;
- } else {
- return -1;
- }
- }
-
- readMany() {
- if (!this.#ptr) return $throwTypeError("ReadableStreamSink is already closed");
- return this.processResult(this.#reader.readMany());
- }
- };
-
- const minlength = nativeType + 1;
- if (cached.length < minlength) {
- cached.length = minlength;
- }
- $putByValDirect(cached, nativeType, Prototype);
- }
-
- if ($isReadableStreamLocked(inputStream)) {
- throw new TypeError("Cannot start reading from a locked stream");
- }
-
- return new Prototype(inputStream.getReader(), nativePtr);
-}
-
-$linkTimeConstant;
-export function createEmptyReadableStream() {
- var stream = new ReadableStream({
- pull() {},
- } as any);
- $readableStreamClose(stream);
- return stream;
-}
-
-$linkTimeConstant;
-export function createNativeReadableStream(nativePtr, nativeType, autoAllocateChunkSize) {
- return new ReadableStream({
- $lazy: true,
- $bunNativeType: nativeType,
- $bunNativePtr: nativePtr,
- autoAllocateChunkSize: autoAllocateChunkSize,
- });
-}
-
-export function cancel(this, reason) {
- if (!$isReadableStream(this)) return Promise.$reject($makeThisTypeError("ReadableStream", "cancel"));
-
- if ($isReadableStreamLocked(this)) return Promise.$reject($makeTypeError("ReadableStream is locked"));
-
- return $readableStreamCancel(this, reason);
-}
-
-export function getReader(this, options) {
- if (!$isReadableStream(this)) throw $makeThisTypeError("ReadableStream", "getReader");
-
- const mode = $toDictionary(options, {}, "ReadableStream.getReader takes an object as first argument").mode;
- if (mode === undefined) {
- var start_ = $getByIdDirectPrivate(this, "start");
- if (start_) {
- $putByIdDirectPrivate(this, "start", undefined);
- start_();
- }
-
- return new ReadableStreamDefaultReader(this);
- }
- // String conversion is required by spec, hence double equals.
- if (mode == "byob") {
- return new ReadableStreamBYOBReader(this);
- }
-
- throw new TypeError("Invalid mode is specified");
-}
-
-export function pipeThrough(this, streams, options) {
- const transforms = streams;
-
- const readable = transforms["readable"];
- if (!$isReadableStream(readable)) throw $makeTypeError("readable should be ReadableStream");
-
- const writable = transforms["writable"];
- const internalWritable = $getInternalWritableStream(writable);
- if (!$isWritableStream(internalWritable)) throw $makeTypeError("writable should be WritableStream");
-
- let preventClose = false;
- let preventAbort = false;
- let preventCancel = false;
- let signal;
- if (!$isUndefinedOrNull(options)) {
- if (!$isObject(options)) throw $makeTypeError("options must be an object");
-
- preventAbort = !!options["preventAbort"];
- preventCancel = !!options["preventCancel"];
- preventClose = !!options["preventClose"];
-
- signal = options["signal"];
- if (signal !== undefined && !$isAbortSignal(signal)) throw $makeTypeError("options.signal must be AbortSignal");
- }
-
- if (!$isReadableStream(this)) throw $makeThisTypeError("ReadableStream", "pipeThrough");
-
- if ($isReadableStreamLocked(this)) throw $makeTypeError("ReadableStream is locked");
-
- if ($isWritableStreamLocked(internalWritable)) throw $makeTypeError("WritableStream is locked");
-
- $readableStreamPipeToWritableStream(this, internalWritable, preventClose, preventAbort, preventCancel, signal);
-
- return readable;
-}
-
-export function pipeTo(this, destination) {
- if (!$isReadableStream(this)) return Promise.$reject($makeThisTypeError("ReadableStream", "pipeTo"));
-
- if ($isReadableStreamLocked(this)) return Promise.$reject($makeTypeError("ReadableStream is locked"));
-
- // FIXME: https://bugs.webkit.org/show_bug.cgi?id=159869.
- // Built-in generator should be able to parse function signature to compute the function length correctly.
- let options = $argument(1);
-
- let preventClose = false;
- let preventAbort = false;
- let preventCancel = false;
- let signal;
- if (!$isUndefinedOrNull(options)) {
- if (!$isObject(options)) return Promise.$reject($makeTypeError("options must be an object"));
-
- try {
- preventAbort = !!options["preventAbort"];
- preventCancel = !!options["preventCancel"];
- preventClose = !!options["preventClose"];
-
- signal = options["signal"];
- } catch (e) {
- return Promise.$reject(e);
- }
-
- if (signal !== undefined && !$isAbortSignal(signal))
- return Promise.$reject(new TypeError("options.signal must be AbortSignal"));
- }
-
- const internalDestination = $getInternalWritableStream(destination);
- if (!$isWritableStream(internalDestination))
- return Promise.$reject(new TypeError("ReadableStream pipeTo requires a WritableStream"));
-
- if ($isWritableStreamLocked(internalDestination)) return Promise.$reject(new TypeError("WritableStream is locked"));
-
- return $readableStreamPipeToWritableStream(
- this,
- internalDestination,
- preventClose,
- preventAbort,
- preventCancel,
- signal,
- );
-}
-
-export function tee(this) {
- if (!$isReadableStream(this)) throw $makeThisTypeError("ReadableStream", "tee");
-
- return $readableStreamTee(this, false);
-}
-
-$getter;
-export function locked(this) {
- if (!$isReadableStream(this)) throw $makeGetterTypeError("ReadableStream", "locked");
-
- return $isReadableStreamLocked(this);
-}
-
-export function values(this, options) {
- var prototype = ReadableStream.prototype;
- $readableStreamDefineLazyIterators(prototype);
- return prototype.values.$call(this, options);
-}
-
-$linkTimeConstant;
-export function lazyAsyncIterator(this) {
- var prototype = ReadableStream.prototype;
- $readableStreamDefineLazyIterators(prototype);
- return prototype[globalThis.Symbol.asyncIterator].$call(this);
-}
diff --git a/src/bun.js/builtins/ts/ReadableStreamBYOBReader.ts b/src/bun.js/builtins/ts/ReadableStreamBYOBReader.ts
deleted file mode 100644
index 5ebfddb19..000000000
--- a/src/bun.js/builtins/ts/ReadableStreamBYOBReader.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2017 Canon Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY CANON INC. AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL CANON INC. AND ITS CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeReadableStreamBYOBReader(this, stream) {
- if (!$isReadableStream(stream)) throw new TypeError("ReadableStreamBYOBReader needs a ReadableStream");
- if (!$isReadableByteStreamController($getByIdDirectPrivate(stream, "readableStreamController")))
- throw new TypeError("ReadableStreamBYOBReader needs a ReadableByteStreamController");
- if ($isReadableStreamLocked(stream)) throw new TypeError("ReadableStream is locked");
-
- $readableStreamReaderGenericInitialize(this, stream);
- $putByIdDirectPrivate(this, "readIntoRequests", $createFIFO());
-
- return this;
-}
-
-export function cancel(this, reason) {
- if (!$isReadableStreamBYOBReader(this))
- return Promise.$reject($makeThisTypeError("ReadableStreamBYOBReader", "cancel"));
-
- if (!$getByIdDirectPrivate(this, "ownerReadableStream"))
- return Promise.$reject($makeTypeError("cancel() called on a reader owned by no readable stream"));
-
- return $readableStreamReaderGenericCancel(this, reason);
-}
-
-export function read(this, view: DataView) {
- if (!$isReadableStreamBYOBReader(this))
- return Promise.$reject($makeThisTypeError("ReadableStreamBYOBReader", "read"));
-
- if (!$getByIdDirectPrivate(this, "ownerReadableStream"))
- return Promise.$reject($makeTypeError("read() called on a reader owned by no readable stream"));
-
- if (!$isObject(view)) return Promise.$reject($makeTypeError("Provided view is not an object"));
-
- if (!ArrayBuffer.$isView(view)) return Promise.$reject($makeTypeError("Provided view is not an ArrayBufferView"));
-
- if (view.byteLength === 0) return Promise.$reject($makeTypeError("Provided view cannot have a 0 byteLength"));
-
- return $readableStreamBYOBReaderRead(this, view);
-}
-
-export function releaseLock(this) {
- if (!$isReadableStreamBYOBReader(this)) throw $makeThisTypeError("ReadableStreamBYOBReader", "releaseLock");
-
- if (!$getByIdDirectPrivate(this, "ownerReadableStream")) return;
-
- if ($getByIdDirectPrivate(this, "readIntoRequests")?.isNotEmpty())
- throw new TypeError("There are still pending read requests, cannot release the lock");
-
- $readableStreamReaderGenericRelease(this);
-}
-
-$getter;
-export function closed(this) {
- if (!$isReadableStreamBYOBReader(this))
- return Promise.$reject($makeGetterTypeError("ReadableStreamBYOBReader", "closed"));
-
- return $getByIdDirectPrivate(this, "closedPromiseCapability").$promise;
-}
diff --git a/src/bun.js/builtins/ts/ReadableStreamBYOBRequest.ts b/src/bun.js/builtins/ts/ReadableStreamBYOBRequest.ts
deleted file mode 100644
index 1354f9349..000000000
--- a/src/bun.js/builtins/ts/ReadableStreamBYOBRequest.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2017 Canon Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeReadableStreamBYOBRequest(this, controller, view) {
- if (arguments.length !== 3 && arguments[2] !== $isReadableStream)
- throw new TypeError("ReadableStreamBYOBRequest constructor should not be called directly");
-
- return $privateInitializeReadableStreamBYOBRequest.$call(this, controller, view);
-}
-
-export function respond(this, bytesWritten) {
- if (!$isReadableStreamBYOBRequest(this)) throw $makeThisTypeError("ReadableStreamBYOBRequest", "respond");
-
- if ($getByIdDirectPrivate(this, "associatedReadableByteStreamController") === undefined)
- throw new TypeError("ReadableStreamBYOBRequest.associatedReadableByteStreamController is undefined");
-
- return $readableByteStreamControllerRespond(
- $getByIdDirectPrivate(this, "associatedReadableByteStreamController"),
- bytesWritten,
- );
-}
-
-export function respondWithNewView(this, view) {
- if (!$isReadableStreamBYOBRequest(this)) throw $makeThisTypeError("ReadableStreamBYOBRequest", "respond");
-
- if ($getByIdDirectPrivate(this, "associatedReadableByteStreamController") === undefined)
- throw new TypeError("ReadableStreamBYOBRequest.associatedReadableByteStreamController is undefined");
-
- if (!$isObject(view)) throw new TypeError("Provided view is not an object");
-
- if (!ArrayBuffer.$isView(view)) throw new TypeError("Provided view is not an ArrayBufferView");
-
- return $readableByteStreamControllerRespondWithNewView(
- $getByIdDirectPrivate(this, "associatedReadableByteStreamController"),
- view,
- );
-}
-
-$getter;
-export function view(this) {
- if (!$isReadableStreamBYOBRequest(this)) throw $makeGetterTypeError("ReadableStreamBYOBRequest", "view");
-
- return $getByIdDirectPrivate(this, "view");
-}
diff --git a/src/bun.js/builtins/ts/ReadableStreamDefaultController.ts b/src/bun.js/builtins/ts/ReadableStreamDefaultController.ts
deleted file mode 100644
index 912cd1acb..000000000
--- a/src/bun.js/builtins/ts/ReadableStreamDefaultController.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2015 Canon Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeReadableStreamDefaultController(this, stream, underlyingSource, size, highWaterMark) {
- if (arguments.length !== 5 && arguments[4] !== $isReadableStream)
- throw new TypeError("ReadableStreamDefaultController constructor should not be called directly");
-
- return $privateInitializeReadableStreamDefaultController.$call(this, stream, underlyingSource, size, highWaterMark);
-}
-
-export function enqueue(this, chunk) {
- if (!$isReadableStreamDefaultController(this)) throw $makeThisTypeError("ReadableStreamDefaultController", "enqueue");
-
- if (!$readableStreamDefaultControllerCanCloseOrEnqueue(this))
- throw new TypeError("ReadableStreamDefaultController is not in a state where chunk can be enqueued");
-
- return $readableStreamDefaultControllerEnqueue(this, chunk);
-}
-
-export function error(this, err) {
- if (!$isReadableStreamDefaultController(this)) throw $makeThisTypeError("ReadableStreamDefaultController", "error");
-
- $readableStreamDefaultControllerError(this, err);
-}
-
-export function close(this) {
- if (!$isReadableStreamDefaultController(this)) throw $makeThisTypeError("ReadableStreamDefaultController", "close");
-
- if (!$readableStreamDefaultControllerCanCloseOrEnqueue(this))
- throw new TypeError("ReadableStreamDefaultController is not in a state where it can be closed");
-
- $readableStreamDefaultControllerClose(this);
-}
-
-$getter;
-export function desiredSize(this) {
- if (!$isReadableStreamDefaultController(this))
- throw $makeGetterTypeError("ReadableStreamDefaultController", "desiredSize");
-
- return $readableStreamDefaultControllerGetDesiredSize(this);
-}
diff --git a/src/bun.js/builtins/ts/ReadableStreamDefaultReader.ts b/src/bun.js/builtins/ts/ReadableStreamDefaultReader.ts
deleted file mode 100644
index ecd553ed5..000000000
--- a/src/bun.js/builtins/ts/ReadableStreamDefaultReader.ts
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (C) 2015 Canon Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeReadableStreamDefaultReader(this, stream) {
- if (!$isReadableStream(stream)) throw new TypeError("ReadableStreamDefaultReader needs a ReadableStream");
- if ($isReadableStreamLocked(stream)) throw new TypeError("ReadableStream is locked");
-
- $readableStreamReaderGenericInitialize(this, stream);
- $putByIdDirectPrivate(this, "readRequests", $createFIFO());
-
- return this;
-}
-
-export function cancel(this, reason) {
- if (!$isReadableStreamDefaultReader(this))
- return Promise.$reject($makeThisTypeError("ReadableStreamDefaultReader", "cancel"));
-
- if (!$getByIdDirectPrivate(this, "ownerReadableStream"))
- return Promise.$reject(new TypeError("cancel() called on a reader owned by no readable stream"));
-
- return $readableStreamReaderGenericCancel(this, reason);
-}
-
-export function readMany(this) {
- if (!$isReadableStreamDefaultReader(this))
- throw new TypeError("ReadableStreamDefaultReader.readMany() should not be called directly");
-
- const stream = $getByIdDirectPrivate(this, "ownerReadableStream");
- if (!stream) throw new TypeError("readMany() called on a reader owned by no readable stream");
-
- const state = $getByIdDirectPrivate(stream, "state");
- $putByIdDirectPrivate(stream, "disturbed", true);
- if (state === $streamClosed) return { value: [], size: 0, done: true };
- else if (state === $streamErrored) {
- throw $getByIdDirectPrivate(stream, "storedError");
- }
-
- var controller = $getByIdDirectPrivate(stream, "readableStreamController");
- var queue = $getByIdDirectPrivate(controller, "queue");
-
- if (!queue) {
- // This is a ReadableStream direct controller implemented in JS
- // It hasn't been started yet.
- return controller.$pull(controller).$then(function ({ done, value }) {
- return done ? { done: true, value: [], size: 0 } : { value: [value], size: 1, done: false };
- });
- }
-
- const content = queue.content;
- var size = queue.size;
- var values = content.toArray(false);
-
- var length = values.length;
-
- if (length > 0) {
- var outValues = $newArrayWithSize(length);
- if ($isReadableByteStreamController(controller)) {
- {
- const buf = values[0];
- if (!(ArrayBuffer.$isView(buf) || buf instanceof ArrayBuffer)) {
- $putByValDirect(outValues, 0, new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength));
- } else {
- $putByValDirect(outValues, 0, buf);
- }
- }
-
- for (var i = 1; i < length; i++) {
- const buf = values[i];
- if (!(ArrayBuffer.$isView(buf) || buf instanceof ArrayBuffer)) {
- $putByValDirect(outValues, i, new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength));
- } else {
- $putByValDirect(outValues, i, buf);
- }
- }
- } else {
- $putByValDirect(outValues, 0, values[0].value);
- for (var i = 1; i < length; i++) {
- $putByValDirect(outValues, i, values[i].value);
- }
- }
-
- $resetQueue($getByIdDirectPrivate(controller, "queue"));
-
- if ($getByIdDirectPrivate(controller, "closeRequested"))
- $readableStreamClose($getByIdDirectPrivate(controller, "controlledReadableStream"));
- else if ($isReadableStreamDefaultController(controller))
- $readableStreamDefaultControllerCallPullIfNeeded(controller);
- else if ($isReadableByteStreamController(controller)) $readableByteStreamControllerCallPullIfNeeded(controller);
-
- return { value: outValues, size, done: false };
- }
-
- var onPullMany = result => {
- if (result.done) {
- return { value: [], size: 0, done: true };
- }
- var controller = $getByIdDirectPrivate(stream, "readableStreamController");
-
- var queue = $getByIdDirectPrivate(controller, "queue");
- var value = [result.value].concat(queue.content.toArray(false));
- var length = value.length;
-
- if ($isReadableByteStreamController(controller)) {
- for (var i = 0; i < length; i++) {
- const buf = value[i];
- if (!(ArrayBuffer.$isView(buf) || buf instanceof ArrayBuffer)) {
- const { buffer, byteOffset, byteLength } = buf;
- $putByValDirect(value, i, new Uint8Array(buffer, byteOffset, byteLength));
- }
- }
- } else {
- for (var i = 1; i < length; i++) {
- $putByValDirect(value, i, value[i].value);
- }
- }
-
- var size = queue.size;
- $resetQueue(queue);
-
- if ($getByIdDirectPrivate(controller, "closeRequested"))
- $readableStreamClose($getByIdDirectPrivate(controller, "controlledReadableStream"));
- else if ($isReadableStreamDefaultController(controller))
- $readableStreamDefaultControllerCallPullIfNeeded(controller);
- else if ($isReadableByteStreamController(controller)) $readableByteStreamControllerCallPullIfNeeded(controller);
-
- return { value: value, size: size, done: false };
- };
-
- var pullResult = controller.$pull(controller);
- if (pullResult && $isPromise(pullResult)) {
- return pullResult.$then(onPullMany);
- }
-
- return onPullMany(pullResult);
-}
-
-export function read(this) {
- if (!$isReadableStreamDefaultReader(this))
- return Promise.$reject($makeThisTypeError("ReadableStreamDefaultReader", "read"));
- if (!$getByIdDirectPrivate(this, "ownerReadableStream"))
- return Promise.$reject(new TypeError("read() called on a reader owned by no readable stream"));
-
- return $readableStreamDefaultReaderRead(this);
-}
-
-export function releaseLock(this) {
- if (!$isReadableStreamDefaultReader(this)) throw $makeThisTypeError("ReadableStreamDefaultReader", "releaseLock");
-
- if (!$getByIdDirectPrivate(this, "ownerReadableStream")) return;
-
- if ($getByIdDirectPrivate(this, "readRequests")?.isNotEmpty())
- throw new TypeError("There are still pending read requests, cannot release the lock");
-
- $readableStreamReaderGenericRelease(this);
-}
-
-$getter;
-export function closed(this) {
- if (!$isReadableStreamDefaultReader(this))
- return Promise.$reject($makeGetterTypeError("ReadableStreamDefaultReader", "closed"));
-
- return $getByIdDirectPrivate(this, "closedPromiseCapability").$promise;
-}
diff --git a/src/bun.js/builtins/ts/ReadableStreamInternals.ts b/src/bun.js/builtins/ts/ReadableStreamInternals.ts
deleted file mode 100644
index 0c4e816f4..000000000
--- a/src/bun.js/builtins/ts/ReadableStreamInternals.ts
+++ /dev/null
@@ -1,1799 +0,0 @@
-/*
- * Copyright (C) 2015 Canon Inc. All rights reserved.
- * Copyright (C) 2015 Igalia.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// @internal
-
-export function readableStreamReaderGenericInitialize(reader, stream) {
- $putByIdDirectPrivate(reader, "ownerReadableStream", stream);
- $putByIdDirectPrivate(stream, "reader", reader);
- if ($getByIdDirectPrivate(stream, "state") === $streamReadable)
- $putByIdDirectPrivate(reader, "closedPromiseCapability", $newPromiseCapability(Promise));
- else if ($getByIdDirectPrivate(stream, "state") === $streamClosed)
- $putByIdDirectPrivate(reader, "closedPromiseCapability", {
- $promise: Promise.$resolve(),
- });
- else {
- $assert($getByIdDirectPrivate(stream, "state") === $streamErrored);
- $putByIdDirectPrivate(reader, "closedPromiseCapability", {
- $promise: $newHandledRejectedPromise($getByIdDirectPrivate(stream, "storedError")),
- });
- }
-}
-
-export function privateInitializeReadableStreamDefaultController(this, stream, underlyingSource, size, highWaterMark) {
- if (!$isReadableStream(stream)) throw new TypeError("ReadableStreamDefaultController needs a ReadableStream");
-
- // readableStreamController is initialized with null value.
- if ($getByIdDirectPrivate(stream, "readableStreamController") !== null)
- throw new TypeError("ReadableStream already has a controller");
-
- $putByIdDirectPrivate(this, "controlledReadableStream", stream);
- $putByIdDirectPrivate(this, "underlyingSource", underlyingSource);
- $putByIdDirectPrivate(this, "queue", $newQueue());
- $putByIdDirectPrivate(this, "started", -1);
- $putByIdDirectPrivate(this, "closeRequested", false);
- $putByIdDirectPrivate(this, "pullAgain", false);
- $putByIdDirectPrivate(this, "pulling", false);
- $putByIdDirectPrivate(this, "strategy", $validateAndNormalizeQueuingStrategy(size, highWaterMark));
-
- return this;
-}
-
-export function readableStreamDefaultControllerError(controller, error) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
- if ($getByIdDirectPrivate(stream, "state") !== $streamReadable) return;
- $putByIdDirectPrivate(controller, "queue", $newQueue());
-
- $readableStreamError(stream, error);
-}
-
-export function readableStreamPipeTo(stream, sink) {
- $assert($isReadableStream(stream));
-
- const reader = new ReadableStreamDefaultReader(stream);
-
- $getByIdDirectPrivate(reader, "closedPromiseCapability").$promise.$then(
- () => {},
- e => {
- sink.error(e);
- },
- );
-
- function doPipe() {
- $readableStreamDefaultReaderRead(reader).$then(
- function (result) {
- if (result.done) {
- sink.close();
- return;
- }
- try {
- sink.enqueue(result.value);
- } catch (e) {
- sink.error("ReadableStream chunk enqueueing in the sink failed");
- return;
- }
- doPipe();
- },
- function (e) {
- sink.error(e);
- },
- );
- }
- doPipe();
-}
-
-export function acquireReadableStreamDefaultReader(stream) {
- var start = $getByIdDirectPrivate(stream, "start");
- if (start) {
- start.$call(stream);
- }
-
- return new ReadableStreamDefaultReader(stream);
-}
-
-// https://streams.spec.whatwg.org/#set-up-readable-stream-default-controller, starting from step 6.
-// The other part is implemented in privateInitializeReadableStreamDefaultController.
-export function setupReadableStreamDefaultController(
- stream,
- underlyingSource,
- size,
- highWaterMark,
- startMethod,
- pullMethod,
- cancelMethod,
-) {
- const controller = new ReadableStreamDefaultController(
- stream,
- underlyingSource,
- size,
- highWaterMark,
- $isReadableStream,
- );
-
- const pullAlgorithm = () => $promiseInvokeOrNoopMethod(underlyingSource, pullMethod, [controller]);
- const cancelAlgorithm = reason => $promiseInvokeOrNoopMethod(underlyingSource, cancelMethod, [reason]);
-
- $putByIdDirectPrivate(controller, "pullAlgorithm", pullAlgorithm);
- $putByIdDirectPrivate(controller, "cancelAlgorithm", cancelAlgorithm);
- $putByIdDirectPrivate(controller, "pull", $readableStreamDefaultControllerPull);
- $putByIdDirectPrivate(controller, "cancel", $readableStreamDefaultControllerCancel);
- $putByIdDirectPrivate(stream, "readableStreamController", controller);
-
- $readableStreamDefaultControllerStart(controller);
-}
-
-export function createReadableStreamController(stream, underlyingSource, strategy) {
- const type = underlyingSource.type;
- const typeString = $toString(type);
-
- if (typeString === "bytes") {
- // if (!$readableByteStreamAPIEnabled())
- // $throwTypeError("ReadableByteStreamController is not implemented");
-
- if (strategy.highWaterMark === undefined) strategy.highWaterMark = 0;
- if (strategy.size !== undefined) $throwRangeError("Strategy for a ReadableByteStreamController cannot have a size");
-
- $putByIdDirectPrivate(
- stream,
- "readableStreamController",
- new ReadableByteStreamController(stream, underlyingSource, strategy.highWaterMark, $isReadableStream),
- );
- } else if (typeString === "direct") {
- var highWaterMark = strategy?.highWaterMark;
- $initializeArrayBufferStream.$call(stream, underlyingSource, highWaterMark);
- } else if (type === undefined) {
- if (strategy.highWaterMark === undefined) strategy.highWaterMark = 1;
-
- $setupReadableStreamDefaultController(
- stream,
- underlyingSource,
- strategy.size,
- strategy.highWaterMark,
- underlyingSource.start,
- underlyingSource.pull,
- underlyingSource.cancel,
- );
- } else throw new RangeError("Invalid type for underlying source");
-}
-
-export function readableStreamDefaultControllerStart(controller) {
- if ($getByIdDirectPrivate(controller, "started") !== -1) return;
-
- const underlyingSource = $getByIdDirectPrivate(controller, "underlyingSource");
- const startMethod = underlyingSource.start;
- $putByIdDirectPrivate(controller, "started", 0);
-
- $promiseInvokeOrNoopMethodNoCatch(underlyingSource, startMethod, [controller]).$then(
- () => {
- $putByIdDirectPrivate(controller, "started", 1);
- $assert(!$getByIdDirectPrivate(controller, "pulling"));
- $assert(!$getByIdDirectPrivate(controller, "pullAgain"));
- $readableStreamDefaultControllerCallPullIfNeeded(controller);
- },
- error => {
- $readableStreamDefaultControllerError(controller, error);
- },
- );
-}
-
-// FIXME: Replace readableStreamPipeTo by below function.
-// This method implements the latest https://streams.spec.whatwg.org/#readable-stream-pipe-to.
-export function readableStreamPipeToWritableStream(
- source,
- destination,
- preventClose,
- preventAbort,
- preventCancel,
- signal,
-) {
- // const isDirectStream = !!$getByIdDirectPrivate(source, "start");
-
- $assert($isReadableStream(source));
- $assert($isWritableStream(destination));
- $assert(!$isReadableStreamLocked(source));
- $assert(!$isWritableStreamLocked(destination));
- $assert(signal === undefined || $isAbortSignal(signal));
-
- if ($getByIdDirectPrivate(source, "underlyingByteSource") !== undefined)
- return Promise.$reject("Piping to a readable bytestream is not supported");
-
- let pipeState: any = {
- source: source,
- destination: destination,
- preventAbort: preventAbort,
- preventCancel: preventCancel,
- preventClose: preventClose,
- signal: signal,
- };
-
- pipeState.reader = $acquireReadableStreamDefaultReader(source);
- pipeState.writer = $acquireWritableStreamDefaultWriter(destination);
-
- $putByIdDirectPrivate(source, "disturbed", true);
-
- pipeState.finalized = false;
- pipeState.shuttingDown = false;
- pipeState.promiseCapability = $newPromiseCapability(Promise);
- pipeState.pendingReadPromiseCapability = $newPromiseCapability(Promise);
- pipeState.pendingReadPromiseCapability.$resolve.$call();
- pipeState.pendingWritePromise = Promise.$resolve();
-
- if (signal !== undefined) {
- const algorithm = reason => {
- if (pipeState.finalized) return;
-
- $pipeToShutdownWithAction(
- pipeState,
- () => {
- const shouldAbortDestination =
- !pipeState.preventAbort && $getByIdDirectPrivate(pipeState.destination, "state") === "writable";
- const promiseDestination = shouldAbortDestination
- ? $writableStreamAbort(pipeState.destination, reason)
- : Promise.$resolve();
-
- const shouldAbortSource =
- !pipeState.preventCancel && $getByIdDirectPrivate(pipeState.source, "state") === $streamReadable;
- const promiseSource = shouldAbortSource
- ? $readableStreamCancel(pipeState.source, reason)
- : Promise.$resolve();
-
- let promiseCapability = $newPromiseCapability(Promise);
- let shouldWait = true;
- let handleResolvedPromise = () => {
- if (shouldWait) {
- shouldWait = false;
- return;
- }
- promiseCapability.$resolve.$call();
- };
- let handleRejectedPromise = e => {
- promiseCapability.$reject.$call(undefined, e);
- };
- promiseDestination.$then(handleResolvedPromise, handleRejectedPromise);
- promiseSource.$then(handleResolvedPromise, handleRejectedPromise);
- return promiseCapability.$promise;
- },
- reason,
- );
- };
- if ($whenSignalAborted(signal, algorithm)) return pipeState.promiseCapability.$promise;
- }
-
- $pipeToErrorsMustBePropagatedForward(pipeState);
- $pipeToErrorsMustBePropagatedBackward(pipeState);
- $pipeToClosingMustBePropagatedForward(pipeState);
- $pipeToClosingMustBePropagatedBackward(pipeState);
-
- $pipeToLoop(pipeState);
-
- return pipeState.promiseCapability.$promise;
-}
-
-export function pipeToLoop(pipeState) {
- if (pipeState.shuttingDown) return;
-
- $pipeToDoReadWrite(pipeState).$then(result => {
- if (result) $pipeToLoop(pipeState);
- });
-}
-
-export function pipeToDoReadWrite(pipeState) {
- $assert(!pipeState.shuttingDown);
-
- pipeState.pendingReadPromiseCapability = $newPromiseCapability(Promise);
- $getByIdDirectPrivate(pipeState.writer, "readyPromise").$promise.$then(
- () => {
- if (pipeState.shuttingDown) {
- pipeState.pendingReadPromiseCapability.$resolve.$call(undefined, false);
- return;
- }
-
- $readableStreamDefaultReaderRead(pipeState.reader).$then(
- result => {
- const canWrite = !result.done && $getByIdDirectPrivate(pipeState.writer, "stream") !== undefined;
- pipeState.pendingReadPromiseCapability.$resolve.$call(undefined, canWrite);
- if (!canWrite) return;
-
- pipeState.pendingWritePromise = $writableStreamDefaultWriterWrite(pipeState.writer, result.value);
- },
- e => {
- pipeState.pendingReadPromiseCapability.$resolve.$call(undefined, false);
- },
- );
- },
- e => {
- pipeState.pendingReadPromiseCapability.$resolve.$call(undefined, false);
- },
- );
- return pipeState.pendingReadPromiseCapability.$promise;
-}
-
-export function pipeToErrorsMustBePropagatedForward(pipeState) {
- const action = () => {
- pipeState.pendingReadPromiseCapability.$resolve.$call(undefined, false);
- const error = $getByIdDirectPrivate(pipeState.source, "storedError");
- if (!pipeState.preventAbort) {
- $pipeToShutdownWithAction(pipeState, () => $writableStreamAbort(pipeState.destination, error), error);
- return;
- }
- $pipeToShutdown(pipeState, error);
- };
-
- if ($getByIdDirectPrivate(pipeState.source, "state") === $streamErrored) {
- action();
- return;
- }
-
- $getByIdDirectPrivate(pipeState.reader, "closedPromiseCapability").$promise.$then(undefined, action);
-}
-
-export function pipeToErrorsMustBePropagatedBackward(pipeState) {
- const action = () => {
- const error = $getByIdDirectPrivate(pipeState.destination, "storedError");
- if (!pipeState.preventCancel) {
- $pipeToShutdownWithAction(pipeState, () => $readableStreamCancel(pipeState.source, error), error);
- return;
- }
- $pipeToShutdown(pipeState, error);
- };
- if ($getByIdDirectPrivate(pipeState.destination, "state") === "errored") {
- action();
- return;
- }
- $getByIdDirectPrivate(pipeState.writer, "closedPromise").$promise.$then(undefined, action);
-}
-
-export function pipeToClosingMustBePropagatedForward(pipeState) {
- const action = () => {
- pipeState.pendingReadPromiseCapability.$resolve.$call(undefined, false);
- // const error = $getByIdDirectPrivate(pipeState.source, "storedError");
- if (!pipeState.preventClose) {
- $pipeToShutdownWithAction(pipeState, () =>
- $writableStreamDefaultWriterCloseWithErrorPropagation(pipeState.writer),
- );
- return;
- }
- $pipeToShutdown(pipeState);
- };
- if ($getByIdDirectPrivate(pipeState.source, "state") === $streamClosed) {
- action();
- return;
- }
- $getByIdDirectPrivate(pipeState.reader, "closedPromiseCapability").$promise.$then(action, undefined);
-}
-
-export function pipeToClosingMustBePropagatedBackward(pipeState) {
- if (
- !$writableStreamCloseQueuedOrInFlight(pipeState.destination) &&
- $getByIdDirectPrivate(pipeState.destination, "state") !== "closed"
- )
- return;
-
- // $assert no chunks have been read/written
-
- const error = new TypeError("closing is propagated backward");
- if (!pipeState.preventCancel) {
- $pipeToShutdownWithAction(pipeState, () => $readableStreamCancel(pipeState.source, error), error);
- return;
- }
- $pipeToShutdown(pipeState, error);
-}
-
-export function pipeToShutdownWithAction(pipeState, action) {
- if (pipeState.shuttingDown) return;
-
- pipeState.shuttingDown = true;
-
- const hasError = arguments.length > 2;
- const error = arguments[2];
- const finalize = () => {
- const promise = action();
- promise.$then(
- () => {
- if (hasError) $pipeToFinalize(pipeState, error);
- else $pipeToFinalize(pipeState);
- },
- e => {
- $pipeToFinalize(pipeState, e);
- },
- );
- };
-
- if (
- $getByIdDirectPrivate(pipeState.destination, "state") === "writable" &&
- !$writableStreamCloseQueuedOrInFlight(pipeState.destination)
- ) {
- pipeState.pendingReadPromiseCapability.$promise.$then(
- () => {
- pipeState.pendingWritePromise.$then(finalize, finalize);
- },
- e => $pipeToFinalize(pipeState, e),
- );
- return;
- }
-
- finalize();
-}
-
-export function pipeToShutdown(pipeState) {
- if (pipeState.shuttingDown) return;
-
- pipeState.shuttingDown = true;
-
- const hasError = arguments.length > 1;
- const error = arguments[1];
- const finalize = () => {
- if (hasError) $pipeToFinalize(pipeState, error);
- else $pipeToFinalize(pipeState);
- };
-
- if (
- $getByIdDirectPrivate(pipeState.destination, "state") === "writable" &&
- !$writableStreamCloseQueuedOrInFlight(pipeState.destination)
- ) {
- pipeState.pendingReadPromiseCapability.$promise.$then(
- () => {
- pipeState.pendingWritePromise.$then(finalize, finalize);
- },
- e => $pipeToFinalize(pipeState, e),
- );
- return;
- }
- finalize();
-}
-
-export function pipeToFinalize(pipeState) {
- $writableStreamDefaultWriterRelease(pipeState.writer);
- $readableStreamReaderGenericRelease(pipeState.reader);
-
- // Instead of removing the abort algorithm as per spec, we make it a no-op which is equivalent.
- pipeState.finalized = true;
-
- if (arguments.length > 1) pipeState.promiseCapability.$reject.$call(undefined, arguments[1]);
- else pipeState.promiseCapability.$resolve.$call();
-}
-
-export function readableStreamTee(stream, shouldClone) {
- $assert($isReadableStream(stream));
- $assert(typeof shouldClone === "boolean");
-
- var start_ = $getByIdDirectPrivate(stream, "start");
- if (start_) {
- $putByIdDirectPrivate(stream, "start", undefined);
- start_();
- }
-
- const reader = new $ReadableStreamDefaultReader(stream);
-
- const teeState = {
- closedOrErrored: false,
- canceled1: false,
- canceled2: false,
- reason1: undefined,
- reason2: undefined,
- };
-
- teeState.cancelPromiseCapability = $newPromiseCapability(Promise);
-
- const pullFunction = $readableStreamTeePullFunction(teeState, reader, shouldClone);
-
- const branch1Source = {};
- $putByIdDirectPrivate(branch1Source, "pull", pullFunction);
- $putByIdDirectPrivate(branch1Source, "cancel", $readableStreamTeeBranch1CancelFunction(teeState, stream));
-
- const branch2Source = {};
- $putByIdDirectPrivate(branch2Source, "pull", pullFunction);
- $putByIdDirectPrivate(branch2Source, "cancel", $readableStreamTeeBranch2CancelFunction(teeState, stream));
-
- const branch1 = new $ReadableStream(branch1Source);
- const branch2 = new $ReadableStream(branch2Source);
-
- $getByIdDirectPrivate(reader, "closedPromiseCapability").$promise.$then(undefined, function (e) {
- if (teeState.closedOrErrored) return;
- $readableStreamDefaultControllerError(branch1.$readableStreamController, e);
- $readableStreamDefaultControllerError(branch2.$readableStreamController, e);
- teeState.closedOrErrored = true;
- if (!teeState.canceled1 || !teeState.canceled2) teeState.cancelPromiseCapability.$resolve.$call();
- });
-
- // Additional fields compared to the spec, as they are needed within pull/cancel functions.
- teeState.branch1 = branch1;
- teeState.branch2 = branch2;
-
- return [branch1, branch2];
-}
-
-export function readableStreamTeePullFunction(teeState, reader, shouldClone) {
- return function () {
- Promise.prototype.$then.$call($readableStreamDefaultReaderRead(reader), function (result) {
- $assert($isObject(result));
- $assert(typeof result.done === "boolean");
- if (result.done && !teeState.closedOrErrored) {
- if (!teeState.canceled1) $readableStreamDefaultControllerClose(teeState.branch1.$readableStreamController);
- if (!teeState.canceled2) $readableStreamDefaultControllerClose(teeState.branch2.$readableStreamController);
- teeState.closedOrErrored = true;
- if (!teeState.canceled1 || !teeState.canceled2) teeState.cancelPromiseCapability.$resolve.$call();
- }
- if (teeState.closedOrErrored) return;
- if (!teeState.canceled1)
- $readableStreamDefaultControllerEnqueue(teeState.branch1.$readableStreamController, result.value);
- if (!teeState.canceled2)
- $readableStreamDefaultControllerEnqueue(
- teeState.branch2.$readableStreamController,
- shouldClone ? $structuredCloneForStream(result.value) : result.value,
- );
- });
- };
-}
-
-export function readableStreamTeeBranch1CancelFunction(teeState, stream) {
- return function (r) {
- teeState.canceled1 = true;
- teeState.reason1 = r;
- if (teeState.canceled2) {
- $readableStreamCancel(stream, [teeState.reason1, teeState.reason2]).$then(
- teeState.cancelPromiseCapability.$resolve,
- teeState.cancelPromiseCapability.$reject,
- );
- }
- return teeState.cancelPromiseCapability.$promise;
- };
-}
-
-export function readableStreamTeeBranch2CancelFunction(teeState, stream) {
- return function (r) {
- teeState.canceled2 = true;
- teeState.reason2 = r;
- if (teeState.canceled1) {
- $readableStreamCancel(stream, [teeState.reason1, teeState.reason2]).$then(
- teeState.cancelPromiseCapability.$resolve,
- teeState.cancelPromiseCapability.$reject,
- );
- }
- return teeState.cancelPromiseCapability.$promise;
- };
-}
-
-export function isReadableStream(stream) {
- // Spec tells to return true only if stream has a readableStreamController internal slot.
- // However, since it is a private slot, it cannot be checked using hasOwnProperty().
- // Therefore, readableStreamController is initialized with null value.
- return $isObject(stream) && $getByIdDirectPrivate(stream, "readableStreamController") !== undefined;
-}
-
-export function isReadableStreamDefaultReader(reader) {
- // Spec tells to return true only if reader has a readRequests internal slot.
- // However, since it is a private slot, it cannot be checked using hasOwnProperty().
- // Since readRequests is initialized with an empty array, the following test is ok.
- return $isObject(reader) && !!$getByIdDirectPrivate(reader, "readRequests");
-}
-
-export function isReadableStreamDefaultController(controller) {
- // Spec tells to return true only if controller has an underlyingSource internal slot.
- // However, since it is a private slot, it cannot be checked using hasOwnProperty().
- // underlyingSource is obtained in ReadableStream constructor: if undefined, it is set
- // to an empty object. Therefore, following test is ok.
- return $isObject(controller) && !!$getByIdDirectPrivate(controller, "underlyingSource");
-}
-
-export function readDirectStream(stream, sink, underlyingSource) {
- $putByIdDirectPrivate(stream, "underlyingSource", undefined);
- $putByIdDirectPrivate(stream, "start", undefined);
-
- function close(stream, reason) {
- if (reason && underlyingSource?.cancel) {
- try {
- var prom = underlyingSource.cancel(reason);
- $markPromiseAsHandled(prom);
- } catch (e) {}
-
- underlyingSource = undefined;
- }
-
- if (stream) {
- $putByIdDirectPrivate(stream, "readableStreamController", undefined);
- $putByIdDirectPrivate(stream, "reader", undefined);
- if (reason) {
- $putByIdDirectPrivate(stream, "state", $streamErrored);
- $putByIdDirectPrivate(stream, "storedError", reason);
- } else {
- $putByIdDirectPrivate(stream, "state", $streamClosed);
- }
- stream = undefined;
- }
- }
-
- if (!underlyingSource.pull) {
- close();
- return;
- }
-
- if (!$isCallable(underlyingSource.pull)) {
- close();
- $throwTypeError("pull is not a function");
- return;
- }
-
- $putByIdDirectPrivate(stream, "readableStreamController", sink);
- const highWaterMark = $getByIdDirectPrivate(stream, "highWaterMark");
-
- sink.start({
- highWaterMark: !highWaterMark || highWaterMark < 64 ? 64 : highWaterMark,
- });
-
- $startDirectStream.$call(sink, stream, underlyingSource.pull, close);
- $putByIdDirectPrivate(stream, "reader", {});
-
- var maybePromise = underlyingSource.pull(sink);
- sink = undefined;
- if (maybePromise && $isPromise(maybePromise)) {
- return maybePromise.$then(() => {});
- }
-}
-
-$linkTimeConstant;
-export function assignToStream(stream, sink) {
- // The stream is either a direct stream or a "default" JS stream
- var underlyingSource = $getByIdDirectPrivate(stream, "underlyingSource");
-
- // we know it's a direct stream when $underlyingSource is set
- if (underlyingSource) {
- try {
- return $readDirectStream(stream, sink, underlyingSource);
- } catch (e) {
- throw e;
- } finally {
- underlyingSource = undefined;
- stream = undefined;
- sink = undefined;
- }
- }
-
- return $readStreamIntoSink(stream, sink, true);
-}
-
-export async function readStreamIntoSink(stream, sink, isNative) {
- var didClose = false;
- var didThrow = false;
- try {
- var reader = stream.getReader();
- var many = reader.readMany();
- if (many && $isPromise(many)) {
- many = await many;
- }
- if (many.done) {
- didClose = true;
- return sink.end();
- }
- var wroteCount = many.value.length;
- const highWaterMark = $getByIdDirectPrivate(stream, "highWaterMark");
- if (isNative)
- $startDirectStream.$call(sink, stream, undefined, () => !didThrow && $markPromiseAsHandled(stream.cancel()));
-
- sink.start({ highWaterMark: highWaterMark || 0 });
-
- for (var i = 0, values = many.value, length = many.value.length; i < length; i++) {
- sink.write(values[i]);
- }
-
- var streamState = $getByIdDirectPrivate(stream, "state");
- if (streamState === $streamClosed) {
- didClose = true;
- return sink.end();
- }
-
- while (true) {
- var { value, done } = await reader.read();
- if (done) {
- didClose = true;
- return sink.end();
- }
-
- sink.write(value);
- }
- } catch (e) {
- didThrow = true;
-
- try {
- reader = undefined;
- const prom = stream.cancel(e);
- $markPromiseAsHandled(prom);
- } catch (j) {}
-
- if (sink && !didClose) {
- didClose = true;
- try {
- sink.close(e);
- } catch (j) {
- throw new globalThis.AggregateError([e, j]);
- }
- }
-
- throw e;
- } finally {
- if (reader) {
- try {
- reader.releaseLock();
- } catch (e) {}
- reader = undefined;
- }
- sink = undefined;
- var streamState = $getByIdDirectPrivate(stream, "state");
- if (stream) {
- // make it easy for this to be GC'd
- // but don't do property transitions
- var readableStreamController = $getByIdDirectPrivate(stream, "readableStreamController");
- if (readableStreamController) {
- if ($getByIdDirectPrivate(readableStreamController, "underlyingSource"))
- $putByIdDirectPrivate(readableStreamController, "underlyingSource", undefined);
- if ($getByIdDirectPrivate(readableStreamController, "controlledReadableStream"))
- $putByIdDirectPrivate(readableStreamController, "controlledReadableStream", undefined);
-
- $putByIdDirectPrivate(stream, "readableStreamController", null);
- if ($getByIdDirectPrivate(stream, "underlyingSource"))
- $putByIdDirectPrivate(stream, "underlyingSource", undefined);
- readableStreamController = undefined;
- }
-
- if (!didThrow && streamState !== $streamClosed && streamState !== $streamErrored) {
- $readableStreamClose(stream);
- }
- stream = undefined;
- }
- }
-}
-
-export function handleDirectStreamError(e) {
- var controller = this;
- var sink = controller.$sink;
- if (sink) {
- $putByIdDirectPrivate(controller, "sink", undefined);
- try {
- sink.close(e);
- } catch (f) {}
- }
-
- this.error = this.flush = this.write = this.close = this.end = $onReadableStreamDirectControllerClosed;
-
- if (typeof this.$underlyingSource.close === "function") {
- try {
- this.$underlyingSource.close.$call(this.$underlyingSource, e);
- } catch (e) {}
- }
-
- try {
- var pend = controller._pendingRead;
- if (pend) {
- controller._pendingRead = undefined;
- $rejectPromise(pend, e);
- }
- } catch (f) {}
- var stream = controller.$controlledReadableStream;
- if (stream) $readableStreamError(stream, e);
-}
-
-export function handleDirectStreamErrorReject(e) {
- $handleDirectStreamError.$call(this, e);
- return Promise.$reject(e);
-}
-
-export function onPullDirectStream(controller) {
- var stream = controller.$controlledReadableStream;
- if (!stream || $getByIdDirectPrivate(stream, "state") !== $streamReadable) return;
-
- // pull is in progress
- // this is a recursive call
- // ignore it
- if (controller._deferClose === -1) {
- return;
- }
-
- controller._deferClose = -1;
- controller._deferFlush = -1;
- var deferClose;
- var deferFlush;
-
- // Direct streams allow $pull to be called multiple times, unlike the spec.
- // Backpressure is handled by the destination, not by the underlying source.
- // In this case, we rely on the heuristic that repeatedly draining in the same tick
- // is bad for performance
- // this code is only run when consuming a direct stream from JS
- // without the HTTP server or anything else
- try {
- var result = controller.$underlyingSource.pull(controller);
-
- if (result && $isPromise(result)) {
- if (controller._handleError === undefined) {
- controller._handleError = $handleDirectStreamErrorReject.bind(controller);
- }
-
- Promise.prototype.catch.$call(result, controller._handleError);
- }
- } catch (e) {
- return $handleDirectStreamErrorReject.$call(controller, e);
- } finally {
- deferClose = controller._deferClose;
- deferFlush = controller._deferFlush;
- controller._deferFlush = controller._deferClose = 0;
- }
-
- var promiseToReturn;
-
- if (controller._pendingRead === undefined) {
- controller._pendingRead = promiseToReturn = $newPromise();
- } else {
- promiseToReturn = $readableStreamAddReadRequest(stream);
- }
-
- // they called close during $pull()
- // we delay that
- if (deferClose === 1) {
- var reason = controller._deferCloseReason;
- controller._deferCloseReason = undefined;
- $onCloseDirectStream.$call(controller, reason);
- return promiseToReturn;
- }
-
- // not done, but they called flush()
- if (deferFlush === 1) {
- $onFlushDirectStream.$call(controller);
- }
-
- return promiseToReturn;
-}
-
-export function noopDoneFunction() {
- return Promise.$resolve({ value: undefined, done: true });
-}
-
-export function onReadableStreamDirectControllerClosed(reason) {
- $throwTypeError("ReadableStreamDirectController is now closed");
-}
-
-export function onCloseDirectStream(reason) {
- var stream = this.$controlledReadableStream;
- if (!stream || $getByIdDirectPrivate(stream, "state") !== $streamReadable) return;
-
- if (this._deferClose !== 0) {
- this._deferClose = 1;
- this._deferCloseReason = reason;
- return;
- }
-
- $putByIdDirectPrivate(stream, "state", $streamClosing);
- if (typeof this.$underlyingSource.close === "function") {
- try {
- this.$underlyingSource.close.$call(this.$underlyingSource, reason);
- } catch (e) {}
- }
-
- var flushed;
- try {
- flushed = this.$sink.end();
- $putByIdDirectPrivate(this, "sink", undefined);
- } catch (e) {
- if (this._pendingRead) {
- var read = this._pendingRead;
- this._pendingRead = undefined;
- $rejectPromise(read, e);
- }
- $readableStreamError(stream, e);
- return;
- }
-
- this.error = this.flush = this.write = this.close = this.end = $onReadableStreamDirectControllerClosed;
-
- var reader = $getByIdDirectPrivate(stream, "reader");
-
- if (reader && $isReadableStreamDefaultReader(reader)) {
- var _pendingRead = this._pendingRead;
- if (_pendingRead && $isPromise(_pendingRead) && flushed?.byteLength) {
- this._pendingRead = undefined;
- $fulfillPromise(_pendingRead, { value: flushed, done: false });
- $readableStreamClose(stream);
- return;
- }
- }
-
- if (flushed?.byteLength) {
- var requests = $getByIdDirectPrivate(reader, "readRequests");
- if (requests?.isNotEmpty()) {
- $readableStreamFulfillReadRequest(stream, flushed, false);
- $readableStreamClose(stream);
- return;
- }
-
- $putByIdDirectPrivate(stream, "state", $streamReadable);
- this.$pull = () => {
- var thisResult = $createFulfilledPromise({
- value: flushed,
- done: false,
- });
- flushed = undefined;
- $readableStreamClose(stream);
- stream = undefined;
- return thisResult;
- };
- } else if (this._pendingRead) {
- var read = this._pendingRead;
- this._pendingRead = undefined;
- $putByIdDirectPrivate(this, "pull", $noopDoneFunction);
- $fulfillPromise(read, { value: undefined, done: true });
- }
-
- $readableStreamClose(stream);
-}
-
-export function onFlushDirectStream() {
- var stream = this.$controlledReadableStream;
- var reader = $getByIdDirectPrivate(stream, "reader");
- if (!reader || !$isReadableStreamDefaultReader(reader)) {
- return;
- }
-
- var _pendingRead = this._pendingRead;
- this._pendingRead = undefined;
- if (_pendingRead && $isPromise(_pendingRead)) {
- var flushed = this.$sink.flush();
- if (flushed?.byteLength) {
- this._pendingRead = $getByIdDirectPrivate(stream, "readRequests")?.shift();
- $fulfillPromise(_pendingRead, { value: flushed, done: false });
- } else {
- this._pendingRead = _pendingRead;
- }
- } else if ($getByIdDirectPrivate(stream, "readRequests")?.isNotEmpty()) {
- var flushed = this.$sink.flush();
- if (flushed?.byteLength) {
- $readableStreamFulfillReadRequest(stream, flushed, false);
- }
- } else if (this._deferFlush === -1) {
- this._deferFlush = 1;
- }
-}
-
-export function createTextStream(highWaterMark) {
- var sink;
- var array = [];
- var hasString = false;
- var hasBuffer = false;
- var rope = "";
- var estimatedLength = $toLength(0);
- var capability = $newPromiseCapability(Promise);
- var calledDone = false;
-
- sink = {
- start() {},
- write(chunk) {
- if (typeof chunk === "string") {
- var chunkLength = $toLength(chunk.length);
- if (chunkLength > 0) {
- rope += chunk;
- hasString = true;
- // TODO: utf16 byte length
- estimatedLength += chunkLength;
- }
-
- return chunkLength;
- }
-
- if (!chunk || !($ArrayBuffer.$isView(chunk) || chunk instanceof $ArrayBuffer)) {
- $throwTypeError("Expected text, ArrayBuffer or ArrayBufferView");
- }
-
- const byteLength = $toLength(chunk.byteLength);
- if (byteLength > 0) {
- hasBuffer = true;
- if (rope.length > 0) {
- $arrayPush(array, rope, chunk);
- rope = "";
- } else {
- $arrayPush(array, chunk);
- }
- }
- estimatedLength += byteLength;
- return byteLength;
- },
-
- flush() {
- return 0;
- },
-
- end() {
- if (calledDone) {
- return "";
- }
- return sink.fulfill();
- },
-
- fulfill() {
- calledDone = true;
- const result = sink.finishInternal();
-
- $fulfillPromise(capability.$promise, result);
- return result;
- },
-
- finishInternal() {
- if (!hasString && !hasBuffer) {
- return "";
- }
-
- if (hasString && !hasBuffer) {
- return rope;
- }
-
- if (hasBuffer && !hasString) {
- return new globalThis.TextDecoder().decode($Bun.concatArrayBuffers(array));
- }
-
- // worst case: mixed content
-
- var arrayBufferSink = new $Bun.ArrayBufferSink();
- arrayBufferSink.start({
- highWaterMark: estimatedLength,
- asUint8Array: true,
- });
- for (let item of array) {
- arrayBufferSink.write(item);
- }
- array.length = 0;
- if (rope.length > 0) {
- arrayBufferSink.write(rope);
- rope = "";
- }
-
- // TODO: use builtin
- return new globalThis.TextDecoder().decode(arrayBufferSink.end());
- },
-
- close() {
- try {
- if (!calledDone) {
- calledDone = true;
- sink.fulfill();
- }
- } catch (e) {}
- },
- };
-
- return [sink, capability];
-}
-
-export function initializeTextStream(underlyingSource, highWaterMark) {
- var [sink, closingPromise] = $createTextStream(highWaterMark);
-
- var controller = {
- $underlyingSource: underlyingSource,
- $pull: $onPullDirectStream,
- $controlledReadableStream: this,
- $sink: sink,
- close: $onCloseDirectStream,
- write: sink.write,
- error: $handleDirectStreamError,
- end: $onCloseDirectStream,
- $close: $onCloseDirectStream,
- flush: $onFlushDirectStream,
- _pendingRead: undefined,
- _deferClose: 0,
- _deferFlush: 0,
- _deferCloseReason: undefined,
- _handleError: undefined,
- };
-
- $putByIdDirectPrivate(this, "readableStreamController", controller);
- $putByIdDirectPrivate(this, "underlyingSource", undefined);
- $putByIdDirectPrivate(this, "start", undefined);
- return closingPromise;
-}
-
-export function initializeArrayStream(underlyingSource, highWaterMark) {
- var array = [];
- var closingPromise = $newPromiseCapability(Promise);
- var calledDone = false;
-
- function fulfill() {
- calledDone = true;
- closingPromise.$resolve.$call(undefined, array);
- return array;
- }
-
- var sink = {
- start() {},
- write(chunk) {
- $arrayPush(array, chunk);
- return chunk.byteLength || chunk.length;
- },
-
- flush() {
- return 0;
- },
-
- end() {
- if (calledDone) {
- return [];
- }
- return fulfill();
- },
-
- close() {
- if (!calledDone) {
- fulfill();
- }
- },
- };
-
- var controller = {
- $underlyingSource: underlyingSource,
- $pull: $onPullDirectStream,
- $controlledReadableStream: this,
- $sink: sink,
- close: $onCloseDirectStream,
- write: sink.write,
- error: $handleDirectStreamError,
- end: $onCloseDirectStream,
- $close: $onCloseDirectStream,
- flush: $onFlushDirectStream,
- _pendingRead: undefined,
- _deferClose: 0,
- _deferFlush: 0,
- _deferCloseReason: undefined,
- _handleError: undefined,
- };
-
- $putByIdDirectPrivate(this, "readableStreamController", controller);
- $putByIdDirectPrivate(this, "underlyingSource", undefined);
- $putByIdDirectPrivate(this, "start", undefined);
- return closingPromise;
-}
-
-export function initializeArrayBufferStream(underlyingSource, highWaterMark) {
- // This is the fallback implementation for direct streams
- // When we don't know what the destination type is
- // We assume it is a Uint8Array.
-
- var opts =
- highWaterMark && typeof highWaterMark === "number"
- ? { highWaterMark, stream: true, asUint8Array: true }
- : { stream: true, asUint8Array: true };
- var sink = new $Bun.ArrayBufferSink();
- sink.start(opts);
-
- var controller = {
- $underlyingSource: underlyingSource,
- $pull: $onPullDirectStream,
- $controlledReadableStream: this,
- $sink: sink,
- close: $onCloseDirectStream,
- write: sink.write.bind(sink),
- error: $handleDirectStreamError,
- end: $onCloseDirectStream,
- $close: $onCloseDirectStream,
- flush: $onFlushDirectStream,
- _pendingRead: undefined,
- _deferClose: 0,
- _deferFlush: 0,
- _deferCloseReason: undefined,
- _handleError: undefined,
- };
-
- $putByIdDirectPrivate(this, "readableStreamController", controller);
- $putByIdDirectPrivate(this, "underlyingSource", undefined);
- $putByIdDirectPrivate(this, "start", undefined);
-}
-
-export function readableStreamError(stream, error) {
- $assert($isReadableStream(stream));
- $assert($getByIdDirectPrivate(stream, "state") === $streamReadable);
- $putByIdDirectPrivate(stream, "state", $streamErrored);
- $putByIdDirectPrivate(stream, "storedError", error);
-
- const reader = $getByIdDirectPrivate(stream, "reader");
-
- if (!reader) return;
-
- if ($isReadableStreamDefaultReader(reader)) {
- const requests = $getByIdDirectPrivate(reader, "readRequests");
- $putByIdDirectPrivate(reader, "readRequests", $createFIFO());
- for (var request = requests.shift(); request; request = requests.shift()) $rejectPromise(request, error);
- } else {
- $assert($isReadableStreamBYOBReader(reader));
- const requests = $getByIdDirectPrivate(reader, "readIntoRequests");
- $putByIdDirectPrivate(reader, "readIntoRequests", $createFIFO());
- for (var request = requests.shift(); request; request = requests.shift()) $rejectPromise(request, error);
- }
-
- $getByIdDirectPrivate(reader, "closedPromiseCapability").$reject.$call(undefined, error);
- const promise = $getByIdDirectPrivate(reader, "closedPromiseCapability").$promise;
- $markPromiseAsHandled(promise);
-}
-
-export function readableStreamDefaultControllerShouldCallPull(controller) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
-
- if (!$readableStreamDefaultControllerCanCloseOrEnqueue(controller)) return false;
- if (!($getByIdDirectPrivate(controller, "started") === 1)) return false;
- if (
- (!$isReadableStreamLocked(stream) ||
- !$getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readRequests")?.isNotEmpty()) &&
- $readableStreamDefaultControllerGetDesiredSize(controller) <= 0
- )
- return false;
- const desiredSize = $readableStreamDefaultControllerGetDesiredSize(controller);
- $assert(desiredSize !== null);
- return desiredSize > 0;
-}
-
-export function readableStreamDefaultControllerCallPullIfNeeded(controller) {
- // FIXME: use $readableStreamDefaultControllerShouldCallPull
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
-
- if (!$readableStreamDefaultControllerCanCloseOrEnqueue(controller)) return;
- if (!($getByIdDirectPrivate(controller, "started") === 1)) return;
- if (
- (!$isReadableStreamLocked(stream) ||
- !$getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readRequests")?.isNotEmpty()) &&
- $readableStreamDefaultControllerGetDesiredSize(controller) <= 0
- )
- return;
-
- if ($getByIdDirectPrivate(controller, "pulling")) {
- $putByIdDirectPrivate(controller, "pullAgain", true);
- return;
- }
-
- $assert(!$getByIdDirectPrivate(controller, "pullAgain"));
- $putByIdDirectPrivate(controller, "pulling", true);
-
- $getByIdDirectPrivate(controller, "pullAlgorithm")
- .$call(undefined)
- .$then(
- function () {
- $putByIdDirectPrivate(controller, "pulling", false);
- if ($getByIdDirectPrivate(controller, "pullAgain")) {
- $putByIdDirectPrivate(controller, "pullAgain", false);
-
- $readableStreamDefaultControllerCallPullIfNeeded(controller);
- }
- },
- function (error) {
- $readableStreamDefaultControllerError(controller, error);
- },
- );
-}
-
-export function isReadableStreamLocked(stream) {
- $assert($isReadableStream(stream));
- return !!$getByIdDirectPrivate(stream, "reader");
-}
-
-export function readableStreamDefaultControllerGetDesiredSize(controller) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
- const state = $getByIdDirectPrivate(stream, "state");
-
- if (state === $streamErrored) return null;
- if (state === $streamClosed) return 0;
-
- return $getByIdDirectPrivate(controller, "strategy").highWaterMark - $getByIdDirectPrivate(controller, "queue").size;
-}
-
-export function readableStreamReaderGenericCancel(reader, reason) {
- const stream = $getByIdDirectPrivate(reader, "ownerReadableStream");
- $assert(!!stream);
- return $readableStreamCancel(stream, reason);
-}
-
-export function readableStreamCancel(stream, reason) {
- $putByIdDirectPrivate(stream, "disturbed", true);
- const state = $getByIdDirectPrivate(stream, "state");
- if (state === $streamClosed) return Promise.$resolve();
- if (state === $streamErrored) return Promise.$reject($getByIdDirectPrivate(stream, "storedError"));
- $readableStreamClose(stream);
-
- var controller = $getByIdDirectPrivate(stream, "readableStreamController");
- var cancel = controller.$cancel;
- if (cancel) {
- return cancel(controller, reason).$then(function () {});
- }
-
- var close = controller.close;
- if (close) {
- return Promise.$resolve(controller.close(reason));
- }
-
- $throwTypeError("ReadableStreamController has no cancel or close method");
-}
-
-export function readableStreamDefaultControllerCancel(controller, reason) {
- $putByIdDirectPrivate(controller, "queue", $newQueue());
- return $getByIdDirectPrivate(controller, "cancelAlgorithm").$call(undefined, reason);
-}
-
-export function readableStreamDefaultControllerPull(controller) {
- var queue = $getByIdDirectPrivate(controller, "queue");
- if (queue.content.isNotEmpty()) {
- const chunk = $dequeueValue(queue);
- if ($getByIdDirectPrivate(controller, "closeRequested") && queue.content.isEmpty())
- $readableStreamClose($getByIdDirectPrivate(controller, "controlledReadableStream"));
- else $readableStreamDefaultControllerCallPullIfNeeded(controller);
-
- return $createFulfilledPromise({ value: chunk, done: false });
- }
- const pendingPromise = $readableStreamAddReadRequest($getByIdDirectPrivate(controller, "controlledReadableStream"));
- $readableStreamDefaultControllerCallPullIfNeeded(controller);
- return pendingPromise;
-}
-
-export function readableStreamDefaultControllerClose(controller) {
- $assert($readableStreamDefaultControllerCanCloseOrEnqueue(controller));
- $putByIdDirectPrivate(controller, "closeRequested", true);
- if ($getByIdDirectPrivate(controller, "queue")?.content?.isEmpty())
- $readableStreamClose($getByIdDirectPrivate(controller, "controlledReadableStream"));
-}
-
-export function readableStreamClose(stream) {
- $assert($getByIdDirectPrivate(stream, "state") === $streamReadable);
- $putByIdDirectPrivate(stream, "state", $streamClosed);
- if (!$getByIdDirectPrivate(stream, "reader")) return;
-
- if ($isReadableStreamDefaultReader($getByIdDirectPrivate(stream, "reader"))) {
- const requests = $getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readRequests");
- if (requests.isNotEmpty()) {
- $putByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readRequests", $createFIFO());
-
- for (var request = requests.shift(); request; request = requests.shift())
- $fulfillPromise(request, { value: undefined, done: true });
- }
- }
-
- $getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "closedPromiseCapability").$resolve.$call();
-}
-
-export function readableStreamFulfillReadRequest(stream, chunk, done) {
- const readRequest = $getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readRequests").shift();
- $fulfillPromise(readRequest, { value: chunk, done: done });
-}
-
-export function readableStreamDefaultControllerEnqueue(controller, chunk) {
- const stream = $getByIdDirectPrivate(controller, "controlledReadableStream");
- // this is checked by callers
- $assert($readableStreamDefaultControllerCanCloseOrEnqueue(controller));
-
- if (
- $isReadableStreamLocked(stream) &&
- $getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readRequests")?.isNotEmpty()
- ) {
- $readableStreamFulfillReadRequest(stream, chunk, false);
- $readableStreamDefaultControllerCallPullIfNeeded(controller);
- return;
- }
-
- try {
- let chunkSize = 1;
- if ($getByIdDirectPrivate(controller, "strategy").size !== undefined)
- chunkSize = $getByIdDirectPrivate(controller, "strategy").size(chunk);
- $enqueueValueWithSize($getByIdDirectPrivate(controller, "queue"), chunk, chunkSize);
- } catch (error) {
- $readableStreamDefaultControllerError(controller, error);
- throw error;
- }
- $readableStreamDefaultControllerCallPullIfNeeded(controller);
-}
-
-export function readableStreamDefaultReaderRead(reader) {
- const stream = $getByIdDirectPrivate(reader, "ownerReadableStream");
- $assert(!!stream);
- const state = $getByIdDirectPrivate(stream, "state");
-
- $putByIdDirectPrivate(stream, "disturbed", true);
- if (state === $streamClosed) return $createFulfilledPromise({ value: undefined, done: true });
- if (state === $streamErrored) return Promise.$reject($getByIdDirectPrivate(stream, "storedError"));
- $assert(state === $streamReadable);
-
- return $getByIdDirectPrivate(stream, "readableStreamController").$pull(
- $getByIdDirectPrivate(stream, "readableStreamController"),
- );
-}
-
-export function readableStreamAddReadRequest(stream) {
- $assert($isReadableStreamDefaultReader($getByIdDirectPrivate(stream, "reader")));
- $assert($getByIdDirectPrivate(stream, "state") == $streamReadable);
-
- const readRequest = $newPromise();
-
- $getByIdDirectPrivate($getByIdDirectPrivate(stream, "reader"), "readRequests").push(readRequest);
-
- return readRequest;
-}
-
-export function isReadableStreamDisturbed(stream) {
- $assert($isReadableStream(stream));
- return $getByIdDirectPrivate(stream, "disturbed");
-}
-
-export function readableStreamReaderGenericRelease(reader) {
- $assert(!!$getByIdDirectPrivate(reader, "ownerReadableStream"));
- $assert($getByIdDirectPrivate($getByIdDirectPrivate(reader, "ownerReadableStream"), "reader") === reader);
-
- if ($getByIdDirectPrivate($getByIdDirectPrivate(reader, "ownerReadableStream"), "state") === $streamReadable)
- $getByIdDirectPrivate(reader, "closedPromiseCapability").$reject.$call(
- undefined,
- $makeTypeError("releasing lock of reader whose stream is still in readable state"),
- );
- else
- $putByIdDirectPrivate(reader, "closedPromiseCapability", {
- $promise: $newHandledRejectedPromise($makeTypeError("reader released lock")),
- });
-
- const promise = $getByIdDirectPrivate(reader, "closedPromiseCapability").$promise;
- $markPromiseAsHandled(promise);
- $putByIdDirectPrivate($getByIdDirectPrivate(reader, "ownerReadableStream"), "reader", undefined);
- $putByIdDirectPrivate(reader, "ownerReadableStream", undefined);
-}
-
-export function readableStreamDefaultControllerCanCloseOrEnqueue(controller) {
- return (
- !$getByIdDirectPrivate(controller, "closeRequested") &&
- $getByIdDirectPrivate($getByIdDirectPrivate(controller, "controlledReadableStream"), "state") === $streamReadable
- );
-}
-
-export function lazyLoadStream(stream, autoAllocateChunkSize) {
- var nativeType = $getByIdDirectPrivate(stream, "bunNativeType");
- var nativePtr = $getByIdDirectPrivate(stream, "bunNativePtr");
- var Prototype = $lazyStreamPrototypeMap.$get(nativeType);
- if (Prototype === undefined) {
- var [pull, start, cancel, setClose, deinit, setRefOrUnref, drain] = $lazyLoad(nativeType);
- var closer = [false];
- var handleResult;
- function handleNativeReadableStreamPromiseResult(val) {
- var { c, v } = this;
- this.c = undefined;
- this.v = undefined;
- handleResult(val, c, v);
- }
-
- function callClose(controller) {
- try {
- controller.close();
- } catch (e) {
- globalThis.reportError(e);
- }
- }
-
- handleResult = function handleResult(result, controller, view) {
- if (result && $isPromise(result)) {
- return result.then(
- handleNativeReadableStreamPromiseResult.bind({
- c: controller,
- v: view,
- }),
- err => controller.error(err),
- );
- } else if (typeof result === "number") {
- if (view && view.byteLength === result && view.buffer === controller.byobRequest?.view?.buffer) {
- controller.byobRequest.respondWithNewView(view);
- } else {
- controller.byobRequest.respond(result);
- }
- } else if (result.constructor === $Uint8Array) {
- controller.enqueue(result);
- }
-
- if (closer[0] || result === false) {
- $enqueueJob(callClose, controller);
- closer[0] = false;
- }
- };
-
- function createResult(tag, controller, view, closer) {
- closer[0] = false;
-
- var result;
- try {
- result = pull(tag, view, closer);
- } catch (err) {
- return controller.error(err);
- }
-
- return handleResult(result, controller, view);
- }
-
- const registry = deinit ? new FinalizationRegistry(deinit) : null;
- Prototype = class NativeReadableStreamSource {
- constructor(tag, autoAllocateChunkSize, drainValue) {
- this.#tag = tag;
- this.#cancellationToken = {};
- this.pull = this.#pull.bind(this);
- this.cancel = this.#cancel.bind(this);
- this.autoAllocateChunkSize = autoAllocateChunkSize;
-
- if (drainValue !== undefined) {
- this.start = controller => {
- controller.enqueue(drainValue);
- };
- }
-
- if (registry) {
- registry.register(this, tag, this.#cancellationToken);
- }
- }
-
- #cancellationToken;
- pull;
- cancel;
- start;
-
- #tag;
- type = "bytes";
- autoAllocateChunkSize = 0;
-
- static startSync = start;
-
- #pull(controller) {
- var tag = this.#tag;
-
- if (!tag) {
- controller.close();
- return;
- }
-
- createResult(tag, controller, controller.byobRequest.view, closer);
- }
-
- #cancel(reason) {
- var tag = this.#tag;
-
- registry && registry.unregister(this.#cancellationToken);
- setRefOrUnref && setRefOrUnref(tag, false);
- cancel(tag, reason);
- }
- static deinit = deinit;
- static drain = drain;
- };
- $lazyStreamPrototypeMap.$set(nativeType, Prototype);
- }
-
- const chunkSize = Prototype.startSync(nativePtr, autoAllocateChunkSize);
- var drainValue;
- const { drain: drainFn, deinit: deinitFn } = Prototype;
- if (drainFn) {
- drainValue = drainFn(nativePtr);
- }
-
- // empty file, no need for native back-and-forth on this
- if (chunkSize === 0) {
- deinit && nativePtr && $enqueueJob(deinit, nativePtr);
-
- if ((drainValue?.byteLength ?? 0) > 0) {
- return {
- start(controller) {
- controller.enqueue(drainValue);
- controller.close();
- },
- type: "bytes",
- };
- }
-
- return {
- start(controller) {
- controller.close();
- },
- type: "bytes",
- };
- }
-
- return new Prototype(nativePtr, chunkSize, drainValue);
-}
-
-export function readableStreamIntoArray(stream) {
- var reader = stream.getReader();
- var manyResult = reader.readMany();
-
- async function processManyResult(result) {
- if (result.done) {
- return [];
- }
-
- var chunks = result.value || [];
-
- while (true) {
- var thisResult = await reader.read();
- if (thisResult.done) {
- break;
- }
- chunks = chunks.concat(thisResult.value);
- }
-
- return chunks;
- }
-
- if (manyResult && $isPromise(manyResult)) {
- return manyResult.$then(processManyResult);
- }
-
- return processManyResult(manyResult);
-}
-
-export function readableStreamIntoText(stream) {
- const [textStream, closer] = $createTextStream($getByIdDirectPrivate(stream, "highWaterMark"));
- const prom = $readStreamIntoSink(stream, textStream, false);
- if (prom && $isPromise(prom)) {
- return Promise.$resolve(prom).$then(closer.$promise);
- }
- return closer.$promise;
-}
-
-export function readableStreamToArrayBufferDirect(stream, underlyingSource) {
- var sink = new $Bun.ArrayBufferSink();
- $putByIdDirectPrivate(stream, "underlyingSource", undefined);
- var highWaterMark = $getByIdDirectPrivate(stream, "highWaterMark");
- sink.start(highWaterMark ? { highWaterMark } : {});
- var capability = $newPromiseCapability(Promise);
- var ended = false;
- var pull = underlyingSource.pull;
- var close = underlyingSource.close;
-
- var controller = {
- start() {},
- close(reason) {
- if (!ended) {
- ended = true;
- if (close) {
- close();
- }
-
- $fulfillPromise(capability.$promise, sink.end());
- }
- },
- end() {
- if (!ended) {
- ended = true;
- if (close) {
- close();
- }
- $fulfillPromise(capability.$promise, sink.end());
- }
- },
- flush() {
- return 0;
- },
- write: sink.write.bind(sink),
- };
-
- var didError = false;
- try {
- const firstPull = pull(controller);
- if (firstPull && $isObject(firstPull) && $isPromise(firstPull)) {
- return (async function (controller, promise, pull) {
- while (!ended) {
- await pull(controller);
- }
- return await promise;
- })(controller, promise, pull);
- }
-
- return capability.$promise;
- } catch (e) {
- didError = true;
- $readableStreamError(stream, e);
- return Promise.$reject(e);
- } finally {
- if (!didError && stream) $readableStreamClose(stream);
- controller = close = sink = pull = stream = undefined;
- }
-}
-
-export async function readableStreamToTextDirect(stream, underlyingSource) {
- const capability = $initializeTextStream.$call(stream, underlyingSource, undefined);
- var reader = stream.getReader();
-
- while ($getByIdDirectPrivate(stream, "state") === $streamReadable) {
- var thisResult = await reader.read();
- if (thisResult.done) {
- break;
- }
- }
-
- try {
- reader.releaseLock();
- } catch (e) {}
- reader = undefined;
- stream = undefined;
-
- return capability.$promise;
-}
-
-export async function readableStreamToArrayDirect(stream, underlyingSource) {
- const capability = $initializeArrayStream.$call(stream, underlyingSource, undefined);
- underlyingSource = undefined;
- var reader = stream.getReader();
- try {
- while ($getByIdDirectPrivate(stream, "state") === $streamReadable) {
- var thisResult = await reader.read();
- if (thisResult.done) {
- break;
- }
- }
-
- try {
- reader.releaseLock();
- } catch (e) {}
- reader = undefined;
-
- return Promise.$resolve(capability.$promise);
- } catch (e) {
- throw e;
- } finally {
- stream = undefined;
- reader = undefined;
- }
-}
-
-export function readableStreamDefineLazyIterators(prototype) {
- var asyncIterator = globalThis.Symbol.asyncIterator;
-
- var ReadableStreamAsyncIterator = async function* ReadableStreamAsyncIterator(stream, preventCancel) {
- var reader = stream.getReader();
- var deferredError;
- try {
- while (true) {
- var done, value;
- const firstResult = reader.readMany();
- if ($isPromise(firstResult)) {
- ({ done, value } = await firstResult);
- } else {
- ({ done, value } = firstResult);
- }
-
- if (done) {
- return;
- }
- yield* value;
- }
- } catch (e) {
- deferredError = e;
- } finally {
- reader.releaseLock();
-
- if (!preventCancel) {
- stream.cancel(deferredError);
- }
-
- if (deferredError) {
- throw deferredError;
- }
- }
- };
- var createAsyncIterator = function asyncIterator() {
- return ReadableStreamAsyncIterator(this, false);
- };
- var createValues = function values({ preventCancel = false } = { preventCancel: false }) {
- return ReadableStreamAsyncIterator(this, preventCancel);
- };
- $Object.$defineProperty(prototype, asyncIterator, { value: createAsyncIterator });
- $Object.$defineProperty(prototype, "values", { value: createValues });
- return prototype;
-}
diff --git a/src/bun.js/builtins/ts/StreamInternals.ts b/src/bun.js/builtins/ts/StreamInternals.ts
deleted file mode 100644
index b42dc2f57..000000000
--- a/src/bun.js/builtins/ts/StreamInternals.ts
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (C) 2015 Canon Inc.
- * Copyright (C) 2015 Igalia.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// @internal
-
-export function markPromiseAsHandled(promise: Promise<unknown>) {
- $assert($isPromise(promise));
- $putPromiseInternalField(
- promise,
- $promiseFieldFlags,
- $getPromiseInternalField(promise, $promiseFieldFlags) | $promiseFlagsIsHandled,
- );
-}
-
-export function shieldingPromiseResolve(result) {
- const promise = Promise.$resolve(result);
- if (promise.$then === undefined) promise.$then = Promise.prototype.$then;
- return promise;
-}
-
-export function promiseInvokeOrNoopMethodNoCatch(object, method, args) {
- if (method === undefined) return Promise.$resolve();
- return $shieldingPromiseResolve(method.$apply(object, args));
-}
-
-export function promiseInvokeOrNoopNoCatch(object, key, args) {
- return $promiseInvokeOrNoopMethodNoCatch(object, object[key], args);
-}
-
-export function promiseInvokeOrNoopMethod(object, method, args) {
- try {
- return $promiseInvokeOrNoopMethodNoCatch(object, method, args);
- } catch (error) {
- return Promise.$reject(error);
- }
-}
-
-export function promiseInvokeOrNoop(object, key, args) {
- try {
- return $promiseInvokeOrNoopNoCatch(object, key, args);
- } catch (error) {
- return Promise.$reject(error);
- }
-}
-
-export function promiseInvokeOrFallbackOrNoop(object, key1, args1, key2, args2) {
- try {
- const method = object[key1];
- if (method === undefined) return $promiseInvokeOrNoopNoCatch(object, key2, args2);
- return $shieldingPromiseResolve(method.$apply(object, args1));
- } catch (error) {
- return Promise.$reject(error);
- }
-}
-
-export function validateAndNormalizeQueuingStrategy(size, highWaterMark) {
- if (size !== undefined && typeof size !== "function") throw new TypeError("size parameter must be a function");
-
- const newHighWaterMark = $toNumber(highWaterMark);
-
- if (isNaN(newHighWaterMark) || newHighWaterMark < 0)
- throw new RangeError("highWaterMark value is negative or not a number");
-
- return { size: size, highWaterMark: newHighWaterMark };
-}
-
-$linkTimeConstant;
-export function createFIFO() {
- var slice = Array.prototype.slice;
-
- class Denqueue {
- constructor() {
- this._head = 0;
- this._tail = 0;
- // this._capacity = 0;
- this._capacityMask = 0x3;
- this._list = $newArrayWithSize(4);
- }
-
- _head;
- _tail;
- _capacityMask;
- _list;
-
- size() {
- if (this._head === this._tail) return 0;
- if (this._head < this._tail) return this._tail - this._head;
- else return this._capacityMask + 1 - (this._head - this._tail);
- }
-
- isEmpty() {
- return this.size() == 0;
- }
-
- isNotEmpty() {
- return this.size() > 0;
- }
-
- shift() {
- var { _head: head, _tail, _list, _capacityMask } = this;
- if (head === _tail) return undefined;
- var item = _list[head];
- $putByValDirect(_list, head, undefined);
- head = this._head = (head + 1) & _capacityMask;
- if (head < 2 && _tail > 10000 && _tail <= _list.length >>> 2) this._shrinkArray();
- return item;
- }
-
- peek() {
- if (this._head === this._tail) return undefined;
- return this._list[this._head];
- }
-
- push(item) {
- var tail = this._tail;
- $putByValDirect(this._list, tail, item);
- this._tail = (tail + 1) & this._capacityMask;
- if (this._tail === this._head) {
- this._growArray();
- }
- // if (this._capacity && this.size() > this._capacity) {
- // this.shift();
- // }
- }
-
- toArray(fullCopy) {
- var list = this._list;
- var len = $toLength(list.length);
-
- if (fullCopy || this._head > this._tail) {
- var _head = $toLength(this._head);
- var _tail = $toLength(this._tail);
- var total = $toLength(len - _head + _tail);
- var array = $newArrayWithSize(total);
- var j = 0;
- for (var i = _head; i < len; i++) $putByValDirect(array, j++, list[i]);
- for (var i = 0; i < _tail; i++) $putByValDirect(array, j++, list[i]);
- return array;
- } else {
- return slice.$call(list, this._head, this._tail);
- }
- }
-
- clear() {
- this._head = 0;
- this._tail = 0;
- this._list.fill(undefined);
- }
-
- _growArray() {
- if (this._head) {
- // copy existing data, head to end, then beginning to tail.
- this._list = this.toArray(true);
- this._head = 0;
- }
-
- // head is at 0 and array is now full, safe to extend
- this._tail = $toLength(this._list.length);
-
- this._list.length <<= 1;
- this._capacityMask = (this._capacityMask << 1) | 1;
- }
-
- shrinkArray() {
- this._list.length >>>= 1;
- this._capacityMask >>>= 1;
- }
- }
-
- return new Denqueue();
-}
-
-export function newQueue() {
- return { content: $createFIFO(), size: 0 };
-}
-
-export function dequeueValue(queue) {
- const record = queue.content.shift();
- queue.size -= record.size;
- // As described by spec, below case may occur due to rounding errors.
- if (queue.size < 0) queue.size = 0;
- return record.value;
-}
-
-export function enqueueValueWithSize(queue, value, size) {
- size = $toNumber(size);
- if (!isFinite(size) || size < 0) throw new RangeError("size has an incorrect value");
-
- queue.content.push({ value, size });
- queue.size += size;
-}
-
-export function peekQueueValue(queue) {
- return queue.content.peek()?.value;
-}
-
-export function resetQueue(queue) {
- $assert("content" in queue);
- $assert("size" in queue);
- queue.content.clear();
- queue.size = 0;
-}
-
-export function extractSizeAlgorithm(strategy) {
- const sizeAlgorithm = strategy.size;
-
- if (sizeAlgorithm === undefined) return () => 1;
-
- if (typeof sizeAlgorithm !== "function") throw new TypeError("strategy.size must be a function");
-
- return chunk => {
- return sizeAlgorithm(chunk);
- };
-}
-
-export function extractHighWaterMark(strategy, defaultHWM) {
- const highWaterMark = strategy.highWaterMark;
-
- if (highWaterMark === undefined) return defaultHWM;
-
- if (isNaN(highWaterMark) || highWaterMark < 0)
- throw new RangeError("highWaterMark value is negative or not a number");
-
- return $toNumber(highWaterMark);
-}
-
-export function extractHighWaterMarkFromQueuingStrategyInit(init: { highWaterMark?: number }) {
- if (!$isObject(init)) throw new TypeError("QueuingStrategyInit argument must be an object.");
- const { highWaterMark } = init;
- if (highWaterMark === undefined) throw new TypeError("QueuingStrategyInit.highWaterMark member is required.");
-
- return $toNumber(highWaterMark);
-}
-
-export function createFulfilledPromise(value) {
- const promise = $newPromise();
- $fulfillPromise(promise, value);
- return promise;
-}
-
-export function toDictionary(value, defaultValue, errorMessage) {
- if (value === undefined || value === null) return defaultValue;
- if (!$isObject(value)) throw new TypeError(errorMessage);
- return value;
-}
diff --git a/src/bun.js/builtins/ts/TransformStream.ts b/src/bun.js/builtins/ts/TransformStream.ts
deleted file mode 100644
index 54467db39..000000000
--- a/src/bun.js/builtins/ts/TransformStream.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeTransformStream(this) {
- let transformer = arguments[0];
-
- // This is the path for CreateTransformStream.
- if ($isObject(transformer) && $getByIdDirectPrivate(transformer, "TransformStream")) return this;
-
- let writableStrategy = arguments[1];
- let readableStrategy = arguments[2];
-
- if (transformer === undefined) transformer = null;
-
- if (readableStrategy === undefined) readableStrategy = {};
-
- if (writableStrategy === undefined) writableStrategy = {};
-
- let transformerDict = {};
- if (transformer !== null) {
- if ("start" in transformer) {
- transformerDict["start"] = transformer["start"];
- if (typeof transformerDict["start"] !== "function") $throwTypeError("transformer.start should be a function");
- }
- if ("transform" in transformer) {
- transformerDict["transform"] = transformer["transform"];
- if (typeof transformerDict["transform"] !== "function")
- $throwTypeError("transformer.transform should be a function");
- }
- if ("flush" in transformer) {
- transformerDict["flush"] = transformer["flush"];
- if (typeof transformerDict["flush"] !== "function") $throwTypeError("transformer.flush should be a function");
- }
-
- if ("readableType" in transformer) throw new RangeError("TransformStream transformer has a readableType");
- if ("writableType" in transformer) throw new RangeError("TransformStream transformer has a writableType");
- }
-
- const readableHighWaterMark = $extractHighWaterMark(readableStrategy, 0);
- const readableSizeAlgorithm = $extractSizeAlgorithm(readableStrategy);
-
- const writableHighWaterMark = $extractHighWaterMark(writableStrategy, 1);
- const writableSizeAlgorithm = $extractSizeAlgorithm(writableStrategy);
-
- const startPromiseCapability = $newPromiseCapability(Promise);
- $initializeTransformStream(
- this,
- startPromiseCapability.$promise,
- writableHighWaterMark,
- writableSizeAlgorithm,
- readableHighWaterMark,
- readableSizeAlgorithm,
- );
- $setUpTransformStreamDefaultControllerFromTransformer(this, transformer, transformerDict);
-
- if ("start" in transformerDict) {
- const controller = $getByIdDirectPrivate(this, "controller");
- const startAlgorithm = () => $promiseInvokeOrNoopMethodNoCatch(transformer, transformerDict["start"], [controller]);
- startAlgorithm().$then(
- () => {
- // FIXME: We probably need to resolve start promise with the result of the start algorithm.
- startPromiseCapability.$resolve.$call();
- },
- error => {
- startPromiseCapability.$reject.$call(undefined, error);
- },
- );
- } else startPromiseCapability.$resolve.$call();
-
- return this;
-}
-
-$getter;
-export function readable() {
- if (!$isTransformStream(this)) throw $makeThisTypeError("TransformStream", "readable");
-
- return $getByIdDirectPrivate(this, "readable");
-}
-
-export function writable() {
- if (!$isTransformStream(this)) throw $makeThisTypeError("TransformStream", "writable");
-
- return $getByIdDirectPrivate(this, "writable");
-}
diff --git a/src/bun.js/builtins/ts/TransformStreamDefaultController.ts b/src/bun.js/builtins/ts/TransformStreamDefaultController.ts
deleted file mode 100644
index 1045498b8..000000000
--- a/src/bun.js/builtins/ts/TransformStreamDefaultController.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeTransformStreamDefaultController(this) {
- return this;
-}
-
-$getter;
-export function desiredSize(this) {
- if (!$isTransformStreamDefaultController(this))
- throw $makeThisTypeError("TransformStreamDefaultController", "enqueue");
-
- const stream = $getByIdDirectPrivate(this, "stream");
- const readable = $getByIdDirectPrivate(stream, "readable");
- const readableController = $getByIdDirectPrivate(readable, "readableStreamController");
-
- return $readableStreamDefaultControllerGetDesiredSize(readableController);
-}
-
-export function enqueue(this, chunk) {
- if (!$isTransformStreamDefaultController(this))
- throw $makeThisTypeError("TransformStreamDefaultController", "enqueue");
-
- $transformStreamDefaultControllerEnqueue(this, chunk);
-}
-
-export function error(this, e) {
- if (!$isTransformStreamDefaultController(this)) throw $makeThisTypeError("TransformStreamDefaultController", "error");
-
- $transformStreamDefaultControllerError(this, e);
-}
-
-export function terminate(this) {
- if (!$isTransformStreamDefaultController(this))
- throw $makeThisTypeError("TransformStreamDefaultController", "terminate");
-
- $transformStreamDefaultControllerTerminate(this);
-}
diff --git a/src/bun.js/builtins/ts/TransformStreamInternals.ts b/src/bun.js/builtins/ts/TransformStreamInternals.ts
deleted file mode 100644
index 9994d1282..000000000
--- a/src/bun.js/builtins/ts/TransformStreamInternals.ts
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// @internal
-
-export function isTransformStream(stream) {
- return $isObject(stream) && !!$getByIdDirectPrivate(stream, "readable");
-}
-
-export function isTransformStreamDefaultController(controller) {
- return $isObject(controller) && !!$getByIdDirectPrivate(controller, "transformAlgorithm");
-}
-
-export function createTransformStream(
- startAlgorithm,
- transformAlgorithm,
- flushAlgorithm,
- writableHighWaterMark,
- writableSizeAlgorithm,
- readableHighWaterMark,
- readableSizeAlgorithm,
-) {
- if (writableHighWaterMark === undefined) writableHighWaterMark = 1;
- if (writableSizeAlgorithm === undefined) writableSizeAlgorithm = () => 1;
- if (readableHighWaterMark === undefined) readableHighWaterMark = 0;
- if (readableSizeAlgorithm === undefined) readableSizeAlgorithm = () => 1;
- $assert(writableHighWaterMark >= 0);
- $assert(readableHighWaterMark >= 0);
-
- const transform = {};
- $putByIdDirectPrivate(transform, "TransformStream", true);
-
- const stream = new TransformStream(transform);
- const startPromiseCapability = $newPromiseCapability(Promise);
- $initializeTransformStream(
- stream,
- startPromiseCapability.$promise,
- writableHighWaterMark,
- writableSizeAlgorithm,
- readableHighWaterMark,
- readableSizeAlgorithm,
- );
-
- const controller = new TransformStreamDefaultController();
- $setUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);
-
- startAlgorithm().$then(
- () => {
- startPromiseCapability.$resolve.$call();
- },
- error => {
- startPromiseCapability.$reject.$call(undefined, error);
- },
- );
-
- return stream;
-}
-
-export function initializeTransformStream(
- stream,
- startPromise,
- writableHighWaterMark,
- writableSizeAlgorithm,
- readableHighWaterMark,
- readableSizeAlgorithm,
-) {
- const startAlgorithm = () => {
- return startPromise;
- };
- const writeAlgorithm = chunk => {
- return $transformStreamDefaultSinkWriteAlgorithm(stream, chunk);
- };
- const abortAlgorithm = reason => {
- return $transformStreamDefaultSinkAbortAlgorithm(stream, reason);
- };
- const closeAlgorithm = () => {
- return $transformStreamDefaultSinkCloseAlgorithm(stream);
- };
- const writable = $createWritableStream(
- startAlgorithm,
- writeAlgorithm,
- closeAlgorithm,
- abortAlgorithm,
- writableHighWaterMark,
- writableSizeAlgorithm,
- );
-
- const pullAlgorithm = () => {
- return $transformStreamDefaultSourcePullAlgorithm(stream);
- };
- const cancelAlgorithm = reason => {
- $transformStreamErrorWritableAndUnblockWrite(stream, reason);
- return Promise.$resolve();
- };
- const underlyingSource = {};
- $putByIdDirectPrivate(underlyingSource, "start", startAlgorithm);
- $putByIdDirectPrivate(underlyingSource, "pull", pullAlgorithm);
- $putByIdDirectPrivate(underlyingSource, "cancel", cancelAlgorithm);
- const options = {};
- $putByIdDirectPrivate(options, "size", readableSizeAlgorithm);
- $putByIdDirectPrivate(options, "highWaterMark", readableHighWaterMark);
- const readable = new ReadableStream(underlyingSource, options);
-
- // The writable to expose to JS through writable getter.
- $putByIdDirectPrivate(stream, "writable", writable);
- // The writable to use for the actual transform algorithms.
- $putByIdDirectPrivate(stream, "internalWritable", $getInternalWritableStream(writable));
-
- $putByIdDirectPrivate(stream, "readable", readable);
- $putByIdDirectPrivate(stream, "backpressure", undefined);
- $putByIdDirectPrivate(stream, "backpressureChangePromise", undefined);
-
- $transformStreamSetBackpressure(stream, true);
- $putByIdDirectPrivate(stream, "controller", undefined);
-}
-
-export function transformStreamError(stream, e) {
- const readable = $getByIdDirectPrivate(stream, "readable");
- const readableController = $getByIdDirectPrivate(readable, "readableStreamController");
- $readableStreamDefaultControllerError(readableController, e);
-
- $transformStreamErrorWritableAndUnblockWrite(stream, e);
-}
-
-export function transformStreamErrorWritableAndUnblockWrite(stream, e) {
- $transformStreamDefaultControllerClearAlgorithms($getByIdDirectPrivate(stream, "controller"));
-
- const writable = $getByIdDirectPrivate(stream, "internalWritable");
- $writableStreamDefaultControllerErrorIfNeeded($getByIdDirectPrivate(writable, "controller"), e);
-
- if ($getByIdDirectPrivate(stream, "backpressure")) $transformStreamSetBackpressure(stream, false);
-}
-
-export function transformStreamSetBackpressure(stream, backpressure) {
- $assert($getByIdDirectPrivate(stream, "backpressure") !== backpressure);
-
- const backpressureChangePromise = $getByIdDirectPrivate(stream, "backpressureChangePromise");
- if (backpressureChangePromise !== undefined) backpressureChangePromise.$resolve.$call();
-
- $putByIdDirectPrivate(stream, "backpressureChangePromise", $newPromiseCapability(Promise));
- $putByIdDirectPrivate(stream, "backpressure", backpressure);
-}
-
-export function setUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {
- $assert($isTransformStream(stream));
- $assert($getByIdDirectPrivate(stream, "controller") === undefined);
-
- $putByIdDirectPrivate(controller, "stream", stream);
- $putByIdDirectPrivate(stream, "controller", controller);
- $putByIdDirectPrivate(controller, "transformAlgorithm", transformAlgorithm);
- $putByIdDirectPrivate(controller, "flushAlgorithm", flushAlgorithm);
-}
-
-export function setUpTransformStreamDefaultControllerFromTransformer(stream, transformer, transformerDict) {
- const controller = new TransformStreamDefaultController();
- let transformAlgorithm = chunk => {
- try {
- $transformStreamDefaultControllerEnqueue(controller, chunk);
- } catch (e) {
- return Promise.$reject(e);
- }
- return Promise.$resolve();
- };
- let flushAlgorithm = () => {
- return Promise.$resolve();
- };
-
- if ("transform" in transformerDict)
- transformAlgorithm = chunk => {
- return $promiseInvokeOrNoopMethod(transformer, transformerDict["transform"], [chunk, controller]);
- };
-
- if ("flush" in transformerDict) {
- flushAlgorithm = () => {
- return $promiseInvokeOrNoopMethod(transformer, transformerDict["flush"], [controller]);
- };
- }
-
- $setUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);
-}
-
-export function transformStreamDefaultControllerClearAlgorithms(controller) {
- // We set transformAlgorithm to true to allow GC but keep the isTransformStreamDefaultController check.
- $putByIdDirectPrivate(controller, "transformAlgorithm", true);
- $putByIdDirectPrivate(controller, "flushAlgorithm", undefined);
-}
-
-export function transformStreamDefaultControllerEnqueue(controller, chunk) {
- const stream = $getByIdDirectPrivate(controller, "stream");
- const readable = $getByIdDirectPrivate(stream, "readable");
- const readableController = $getByIdDirectPrivate(readable, "readableStreamController");
-
- $assert(readableController !== undefined);
- if (!$readableStreamDefaultControllerCanCloseOrEnqueue(readableController))
- $throwTypeError("TransformStream.readable cannot close or enqueue");
-
- try {
- $readableStreamDefaultControllerEnqueue(readableController, chunk);
- } catch (e) {
- $transformStreamErrorWritableAndUnblockWrite(stream, e);
- throw $getByIdDirectPrivate(readable, "storedError");
- }
-
- const backpressure = !$readableStreamDefaultControllerShouldCallPull(readableController);
- if (backpressure !== $getByIdDirectPrivate(stream, "backpressure")) {
- $assert(backpressure);
- $transformStreamSetBackpressure(stream, true);
- }
-}
-
-export function transformStreamDefaultControllerError(controller, e) {
- $transformStreamError($getByIdDirectPrivate(controller, "stream"), e);
-}
-
-export function transformStreamDefaultControllerPerformTransform(controller, chunk) {
- const promiseCapability = $newPromiseCapability(Promise);
-
- const transformPromise = $getByIdDirectPrivate(controller, "transformAlgorithm").$call(undefined, chunk);
- transformPromise.$then(
- () => {
- promiseCapability.$resolve();
- },
- r => {
- $transformStreamError($getByIdDirectPrivate(controller, "stream"), r);
- promiseCapability.$reject.$call(undefined, r);
- },
- );
- return promiseCapability.$promise;
-}
-
-export function transformStreamDefaultControllerTerminate(controller) {
- const stream = $getByIdDirectPrivate(controller, "stream");
- const readable = $getByIdDirectPrivate(stream, "readable");
- const readableController = $getByIdDirectPrivate(readable, "readableStreamController");
-
- // FIXME: Update readableStreamDefaultControllerClose to make this check.
- if ($readableStreamDefaultControllerCanCloseOrEnqueue(readableController))
- $readableStreamDefaultControllerClose(readableController);
- const error = $makeTypeError("the stream has been terminated");
- $transformStreamErrorWritableAndUnblockWrite(stream, error);
-}
-
-export function transformStreamDefaultSinkWriteAlgorithm(stream, chunk) {
- const writable = $getByIdDirectPrivate(stream, "internalWritable");
-
- $assert($getByIdDirectPrivate(writable, "state") === "writable");
-
- const controller = $getByIdDirectPrivate(stream, "controller");
-
- if ($getByIdDirectPrivate(stream, "backpressure")) {
- const promiseCapability = $newPromiseCapability(Promise);
-
- const backpressureChangePromise = $getByIdDirectPrivate(stream, "backpressureChangePromise");
- $assert(backpressureChangePromise !== undefined);
- backpressureChangePromise.$promise.$then(
- () => {
- const state = $getByIdDirectPrivate(writable, "state");
- if (state === "erroring") {
- promiseCapability.$reject.$call(undefined, $getByIdDirectPrivate(writable, "storedError"));
- return;
- }
-
- $assert(state === "writable");
- $transformStreamDefaultControllerPerformTransform(controller, chunk).$then(
- () => {
- promiseCapability.$resolve();
- },
- e => {
- promiseCapability.$reject.$call(undefined, e);
- },
- );
- },
- e => {
- promiseCapability.$reject.$call(undefined, e);
- },
- );
-
- return promiseCapability.$promise;
- }
- return $transformStreamDefaultControllerPerformTransform(controller, chunk);
-}
-
-export function transformStreamDefaultSinkAbortAlgorithm(stream, reason) {
- $transformStreamError(stream, reason);
- return Promise.$resolve();
-}
-
-export function transformStreamDefaultSinkCloseAlgorithm(stream) {
- const readable = $getByIdDirectPrivate(stream, "readable");
- const controller = $getByIdDirectPrivate(stream, "controller");
- const readableController = $getByIdDirectPrivate(readable, "readableStreamController");
-
- const flushAlgorithm = $getByIdDirectPrivate(controller, "flushAlgorithm");
- $assert(flushAlgorithm !== undefined);
- const flushPromise = $getByIdDirectPrivate(controller, "flushAlgorithm").$call();
- $transformStreamDefaultControllerClearAlgorithms(controller);
-
- const promiseCapability = $newPromiseCapability(Promise);
- flushPromise.$then(
- () => {
- if ($getByIdDirectPrivate(readable, "state") === $streamErrored) {
- promiseCapability.$reject.$call(undefined, $getByIdDirectPrivate(readable, "storedError"));
- return;
- }
-
- // FIXME: Update readableStreamDefaultControllerClose to make this check.
- if ($readableStreamDefaultControllerCanCloseOrEnqueue(readableController))
- $readableStreamDefaultControllerClose(readableController);
- promiseCapability.$resolve();
- },
- r => {
- $transformStreamError($getByIdDirectPrivate(controller, "stream"), r);
- promiseCapability.$reject.$call(undefined, $getByIdDirectPrivate(readable, "storedError"));
- },
- );
- return promiseCapability.$promise;
-}
-
-export function transformStreamDefaultSourcePullAlgorithm(stream) {
- $assert($getByIdDirectPrivate(stream, "backpressure"));
- $assert($getByIdDirectPrivate(stream, "backpressureChangePromise") !== undefined);
-
- $transformStreamSetBackpressure(stream, false);
-
- return $getByIdDirectPrivate(stream, "backpressureChangePromise").$promise;
-}
diff --git a/src/bun.js/builtins/ts/WritableStreamDefaultController.ts b/src/bun.js/builtins/ts/WritableStreamDefaultController.ts
deleted file mode 100644
index 1a3ddc290..000000000
--- a/src/bun.js/builtins/ts/WritableStreamDefaultController.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeWritableStreamDefaultController(this) {
- $putByIdDirectPrivate(this, "queue", $newQueue());
- $putByIdDirectPrivate(this, "abortSteps", reason => {
- const result = $getByIdDirectPrivate(this, "abortAlgorithm").$call(undefined, reason);
- $writableStreamDefaultControllerClearAlgorithms(this);
- return result;
- });
-
- $putByIdDirectPrivate(this, "errorSteps", () => {
- $resetQueue($getByIdDirectPrivate(this, "queue"));
- });
-
- return this;
-}
-
-export function error(this, e) {
- if ($getByIdDirectPrivate(this, "abortSteps") === undefined)
- throw $makeThisTypeError("WritableStreamDefaultController", "error");
-
- const stream = $getByIdDirectPrivate(this, "stream");
- if ($getByIdDirectPrivate(stream, "state") !== "writable") return;
- $writableStreamDefaultControllerError(this, e);
-}
diff --git a/src/bun.js/builtins/ts/WritableStreamDefaultWriter.ts b/src/bun.js/builtins/ts/WritableStreamDefaultWriter.ts
deleted file mode 100644
index 795b43892..000000000
--- a/src/bun.js/builtins/ts/WritableStreamDefaultWriter.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-export function initializeWritableStreamDefaultWriter(stream) {
- // stream can be a WritableStream if WritableStreamDefaultWriter constructor is called directly from JS
- // or an InternalWritableStream in other code paths.
- const internalStream = $getInternalWritableStream(stream);
- if (internalStream) stream = internalStream;
-
- if (!$isWritableStream(stream)) $throwTypeError("WritableStreamDefaultWriter constructor takes a WritableStream");
-
- $setUpWritableStreamDefaultWriter(this, stream);
- return this;
-}
-
-$getter;
-export function closed() {
- if (!$isWritableStreamDefaultWriter(this))
- return Promise.$reject($makeGetterTypeError("WritableStreamDefaultWriter", "closed"));
-
- return $getByIdDirectPrivate(this, "closedPromise").$promise;
-}
-
-$getter;
-export function desiredSize() {
- if (!$isWritableStreamDefaultWriter(this)) throw $makeThisTypeError("WritableStreamDefaultWriter", "desiredSize");
-
- if ($getByIdDirectPrivate(this, "stream") === undefined) $throwTypeError("WritableStreamDefaultWriter has no stream");
-
- return $writableStreamDefaultWriterGetDesiredSize(this);
-}
-
-$getter;
-export function ready() {
- if (!$isWritableStreamDefaultWriter(this))
- return Promise.$reject($makeThisTypeError("WritableStreamDefaultWriter", "ready"));
-
- return $getByIdDirectPrivate(this, "readyPromise").$promise;
-}
-
-export function abort(reason) {
- if (!$isWritableStreamDefaultWriter(this))
- return Promise.$reject($makeThisTypeError("WritableStreamDefaultWriter", "abort"));
-
- if ($getByIdDirectPrivate(this, "stream") === undefined)
- return Promise.$reject($makeTypeError("WritableStreamDefaultWriter has no stream"));
-
- return $writableStreamDefaultWriterAbort(this, reason);
-}
-
-export function close() {
- if (!$isWritableStreamDefaultWriter(this))
- return Promise.$reject($makeThisTypeError("WritableStreamDefaultWriter", "close"));
-
- const stream = $getByIdDirectPrivate(this, "stream");
- if (stream === undefined) return Promise.$reject($makeTypeError("WritableStreamDefaultWriter has no stream"));
-
- if ($writableStreamCloseQueuedOrInFlight(stream))
- return Promise.$reject($makeTypeError("WritableStreamDefaultWriter is being closed"));
-
- return $writableStreamDefaultWriterClose(this);
-}
-
-export function releaseLock() {
- if (!$isWritableStreamDefaultWriter(this)) throw $makeThisTypeError("WritableStreamDefaultWriter", "releaseLock");
-
- const stream = $getByIdDirectPrivate(this, "stream");
- if (stream === undefined) return;
-
- $assert($getByIdDirectPrivate(stream, "writer") !== undefined);
- $writableStreamDefaultWriterRelease(this);
-}
-
-export function write(chunk) {
- if (!$isWritableStreamDefaultWriter(this))
- return Promise.$reject($makeThisTypeError("WritableStreamDefaultWriter", "write"));
-
- if ($getByIdDirectPrivate(this, "stream") === undefined)
- return Promise.$reject($makeTypeError("WritableStreamDefaultWriter has no stream"));
-
- return $writableStreamDefaultWriterWrite(this, chunk);
-}
diff --git a/src/bun.js/builtins/ts/WritableStreamInternals.ts b/src/bun.js/builtins/ts/WritableStreamInternals.ts
deleted file mode 100644
index f436a285e..000000000
--- a/src/bun.js/builtins/ts/WritableStreamInternals.ts
+++ /dev/null
@@ -1,790 +0,0 @@
-/*
- * Copyright (C) 2015 Canon Inc.
- * Copyright (C) 2015 Igalia
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// @internal
-
-export function isWritableStream(stream) {
- return $isObject(stream) && !!$getByIdDirectPrivate(stream, "underlyingSink");
-}
-
-export function isWritableStreamDefaultWriter(writer) {
- return $isObject(writer) && !!$getByIdDirectPrivate(writer, "closedPromise");
-}
-
-export function acquireWritableStreamDefaultWriter(stream) {
- return new WritableStreamDefaultWriter(stream);
-}
-
-// https://streams.spec.whatwg.org/#create-writable-stream
-export function createWritableStream(
- startAlgorithm,
- writeAlgorithm,
- closeAlgorithm,
- abortAlgorithm,
- highWaterMark,
- sizeAlgorithm,
-) {
- $assert(typeof highWaterMark === "number" && !isNaN(highWaterMark) && highWaterMark >= 0);
-
- const internalStream = {};
- $initializeWritableStreamSlots(internalStream, {});
- const controller = new WritableStreamDefaultController();
-
- $setUpWritableStreamDefaultController(
- internalStream,
- controller,
- startAlgorithm,
- writeAlgorithm,
- closeAlgorithm,
- abortAlgorithm,
- highWaterMark,
- sizeAlgorithm,
- );
-
- return $createWritableStreamFromInternal(internalStream);
-}
-
-export function createInternalWritableStreamFromUnderlyingSink(underlyingSink, strategy) {
- const stream = {};
-
- if (underlyingSink === undefined) underlyingSink = {};
-
- if (strategy === undefined) strategy = {};
-
- if (!$isObject(underlyingSink)) $throwTypeError("WritableStream constructor takes an object as first argument");
-
- if ("type" in underlyingSink) $throwRangeError("Invalid type is specified");
-
- const sizeAlgorithm = $extractSizeAlgorithm(strategy);
- const highWaterMark = $extractHighWaterMark(strategy, 1);
-
- const underlyingSinkDict = {};
- if ("start" in underlyingSink) {
- underlyingSinkDict["start"] = underlyingSink["start"];
- if (typeof underlyingSinkDict["start"] !== "function") $throwTypeError("underlyingSink.start should be a function");
- }
- if ("write" in underlyingSink) {
- underlyingSinkDict["write"] = underlyingSink["write"];
- if (typeof underlyingSinkDict["write"] !== "function") $throwTypeError("underlyingSink.write should be a function");
- }
- if ("close" in underlyingSink) {
- underlyingSinkDict["close"] = underlyingSink["close"];
- if (typeof underlyingSinkDict["close"] !== "function") $throwTypeError("underlyingSink.close should be a function");
- }
- if ("abort" in underlyingSink) {
- underlyingSinkDict["abort"] = underlyingSink["abort"];
- if (typeof underlyingSinkDict["abort"] !== "function") $throwTypeError("underlyingSink.abort should be a function");
- }
-
- $initializeWritableStreamSlots(stream, underlyingSink);
- $setUpWritableStreamDefaultControllerFromUnderlyingSink(
- stream,
- underlyingSink,
- underlyingSinkDict,
- highWaterMark,
- sizeAlgorithm,
- );
-
- return stream;
-}
-
-export function initializeWritableStreamSlots(stream, underlyingSink) {
- $putByIdDirectPrivate(stream, "state", "writable");
- $putByIdDirectPrivate(stream, "storedError", undefined);
- $putByIdDirectPrivate(stream, "writer", undefined);
- $putByIdDirectPrivate(stream, "controller", undefined);
- $putByIdDirectPrivate(stream, "inFlightWriteRequest", undefined);
- $putByIdDirectPrivate(stream, "closeRequest", undefined);
- $putByIdDirectPrivate(stream, "inFlightCloseRequest", undefined);
- $putByIdDirectPrivate(stream, "pendingAbortRequest", undefined);
- $putByIdDirectPrivate(stream, "writeRequests", $createFIFO());
- $putByIdDirectPrivate(stream, "backpressure", false);
- $putByIdDirectPrivate(stream, "underlyingSink", underlyingSink);
-}
-
-export function writableStreamCloseForBindings(stream) {
- if ($isWritableStreamLocked(stream))
- return Promise.$reject($makeTypeError("WritableStream.close method can only be used on non locked WritableStream"));
-
- if ($writableStreamCloseQueuedOrInFlight(stream))
- return Promise.$reject(
- $makeTypeError("WritableStream.close method can only be used on a being close WritableStream"),
- );
-
- return $writableStreamClose(stream);
-}
-
-export function writableStreamAbortForBindings(stream, reason) {
- if ($isWritableStreamLocked(stream))
- return Promise.$reject($makeTypeError("WritableStream.abort method can only be used on non locked WritableStream"));
-
- return $writableStreamAbort(stream, reason);
-}
-
-export function isWritableStreamLocked(stream) {
- return $getByIdDirectPrivate(stream, "writer") !== undefined;
-}
-
-export function setUpWritableStreamDefaultWriter(writer, stream) {
- if ($isWritableStreamLocked(stream)) $throwTypeError("WritableStream is locked");
-
- $putByIdDirectPrivate(writer, "stream", stream);
- $putByIdDirectPrivate(stream, "writer", writer);
-
- const readyPromiseCapability = $newPromiseCapability(Promise);
- const closedPromiseCapability = $newPromiseCapability(Promise);
- $putByIdDirectPrivate(writer, "readyPromise", readyPromiseCapability);
- $putByIdDirectPrivate(writer, "closedPromise", closedPromiseCapability);
-
- const state = $getByIdDirectPrivate(stream, "state");
- if (state === "writable") {
- if ($writableStreamCloseQueuedOrInFlight(stream) || !$getByIdDirectPrivate(stream, "backpressure"))
- readyPromiseCapability.$resolve.$call();
- } else if (state === "erroring") {
- readyPromiseCapability.$reject.$call(undefined, $getByIdDirectPrivate(stream, "storedError"));
- $markPromiseAsHandled(readyPromiseCapability.$promise);
- } else if (state === "closed") {
- readyPromiseCapability.$resolve.$call();
- closedPromiseCapability.$resolve.$call();
- } else {
- $assert(state === "errored");
- const storedError = $getByIdDirectPrivate(stream, "storedError");
- readyPromiseCapability.$reject.$call(undefined, storedError);
- $markPromiseAsHandled(readyPromiseCapability.$promise);
- closedPromiseCapability.$reject.$call(undefined, storedError);
- $markPromiseAsHandled(closedPromiseCapability.$promise);
- }
-}
-
-export function writableStreamAbort(stream, reason) {
- const state = $getByIdDirectPrivate(stream, "state");
- if (state === "closed" || state === "errored") return Promise.$resolve();
-
- const pendingAbortRequest = $getByIdDirectPrivate(stream, "pendingAbortRequest");
- if (pendingAbortRequest !== undefined) return pendingAbortRequest.promise.$promise;
-
- $assert(state === "writable" || state === "erroring");
- let wasAlreadyErroring = false;
- if (state === "erroring") {
- wasAlreadyErroring = true;
- reason = undefined;
- }
-
- const abortPromiseCapability = $newPromiseCapability(Promise);
- $putByIdDirectPrivate(stream, "pendingAbortRequest", {
- promise: abortPromiseCapability,
- reason: reason,
- wasAlreadyErroring: wasAlreadyErroring,
- });
-
- if (!wasAlreadyErroring) $writableStreamStartErroring(stream, reason);
- return abortPromiseCapability.$promise;
-}
-
-export function writableStreamClose(stream) {
- const state = $getByIdDirectPrivate(stream, "state");
- if (state === "closed" || state === "errored")
- return Promise.$reject($makeTypeError("Cannot close a writable stream that is closed or errored"));
-
- $assert(state === "writable" || state === "erroring");
- $assert(!$writableStreamCloseQueuedOrInFlight(stream));
-
- const closePromiseCapability = $newPromiseCapability(Promise);
- $putByIdDirectPrivate(stream, "closeRequest", closePromiseCapability);
-
- const writer = $getByIdDirectPrivate(stream, "writer");
- if (writer !== undefined && $getByIdDirectPrivate(stream, "backpressure") && state === "writable")
- $getByIdDirectPrivate(writer, "readyPromise").$resolve.$call();
-
- $writableStreamDefaultControllerClose($getByIdDirectPrivate(stream, "controller"));
-
- return closePromiseCapability.$promise;
-}
-
-export function writableStreamAddWriteRequest(stream) {
- $assert($isWritableStreamLocked(stream));
- $assert($getByIdDirectPrivate(stream, "state") === "writable");
-
- const writePromiseCapability = $newPromiseCapability(Promise);
- const writeRequests = $getByIdDirectPrivate(stream, "writeRequests");
- writeRequests.push(writePromiseCapability);
- return writePromiseCapability.$promise;
-}
-
-export function writableStreamCloseQueuedOrInFlight(stream) {
- return (
- $getByIdDirectPrivate(stream, "closeRequest") !== undefined ||
- $getByIdDirectPrivate(stream, "inFlightCloseRequest") !== undefined
- );
-}
-
-export function writableStreamDealWithRejection(stream, error) {
- const state = $getByIdDirectPrivate(stream, "state");
- if (state === "writable") {
- $writableStreamStartErroring(stream, error);
- return;
- }
-
- $assert(state === "erroring");
- $writableStreamFinishErroring(stream);
-}
-
-export function writableStreamFinishErroring(stream) {
- $assert($getByIdDirectPrivate(stream, "state") === "erroring");
- $assert(!$writableStreamHasOperationMarkedInFlight(stream));
-
- $putByIdDirectPrivate(stream, "state", "errored");
-
- const controller = $getByIdDirectPrivate(stream, "controller");
- $getByIdDirectPrivate(controller, "errorSteps").$call();
-
- const storedError = $getByIdDirectPrivate(stream, "storedError");
- const requests = $getByIdDirectPrivate(stream, "writeRequests");
- for (var request = requests.shift(); request; request = requests.shift())
- request.$reject.$call(undefined, storedError);
-
- // TODO: is this still necessary?
- $putByIdDirectPrivate(stream, "writeRequests", $createFIFO());
-
- const abortRequest = $getByIdDirectPrivate(stream, "pendingAbortRequest");
- if (abortRequest === undefined) {
- $writableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
- return;
- }
-
- $putByIdDirectPrivate(stream, "pendingAbortRequest", undefined);
- if (abortRequest.wasAlreadyErroring) {
- abortRequest.promise.$reject.$call(undefined, storedError);
- $writableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
- return;
- }
-
- $getByIdDirectPrivate(controller, "abortSteps")
- .$call(undefined, abortRequest.reason)
- .$then(
- () => {
- abortRequest.promise.$resolve.$call();
- $writableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
- },
- reason => {
- abortRequest.promise.$reject.$call(undefined, reason);
- $writableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
- },
- );
-}
-
-export function writableStreamFinishInFlightClose(stream) {
- const inFlightCloseRequest = $getByIdDirectPrivate(stream, "inFlightCloseRequest");
- inFlightCloseRequest.$resolve.$call();
-
- $putByIdDirectPrivate(stream, "inFlightCloseRequest", undefined);
-
- const state = $getByIdDirectPrivate(stream, "state");
- $assert(state === "writable" || state === "erroring");
-
- if (state === "erroring") {
- $putByIdDirectPrivate(stream, "storedError", undefined);
- const abortRequest = $getByIdDirectPrivate(stream, "pendingAbortRequest");
- if (abortRequest !== undefined) {
- abortRequest.promise.$resolve.$call();
- $putByIdDirectPrivate(stream, "pendingAbortRequest", undefined);
- }
- }
-
- $putByIdDirectPrivate(stream, "state", "closed");
-
- const writer = $getByIdDirectPrivate(stream, "writer");
- if (writer !== undefined) $getByIdDirectPrivate(writer, "closedPromise").$resolve.$call();
-
- $assert($getByIdDirectPrivate(stream, "pendingAbortRequest") === undefined);
- $assert($getByIdDirectPrivate(stream, "storedError") === undefined);
-}
-
-export function writableStreamFinishInFlightCloseWithError(stream, error) {
- const inFlightCloseRequest = $getByIdDirectPrivate(stream, "inFlightCloseRequest");
- $assert(inFlightCloseRequest !== undefined);
- inFlightCloseRequest.$reject.$call(undefined, error);
-
- $putByIdDirectPrivate(stream, "inFlightCloseRequest", undefined);
-
- const state = $getByIdDirectPrivate(stream, "state");
- $assert(state === "writable" || state === "erroring");
-
- const abortRequest = $getByIdDirectPrivate(stream, "pendingAbortRequest");
- if (abortRequest !== undefined) {
- abortRequest.promise.$reject.$call(undefined, error);
- $putByIdDirectPrivate(stream, "pendingAbortRequest", undefined);
- }
-
- $writableStreamDealWithRejection(stream, error);
-}
-
-export function writableStreamFinishInFlightWrite(stream) {
- const inFlightWriteRequest = $getByIdDirectPrivate(stream, "inFlightWriteRequest");
- $assert(inFlightWriteRequest !== undefined);
- inFlightWriteRequest.$resolve.$call();
-
- $putByIdDirectPrivate(stream, "inFlightWriteRequest", undefined);
-}
-
-export function writableStreamFinishInFlightWriteWithError(stream, error) {
- const inFlightWriteRequest = $getByIdDirectPrivate(stream, "inFlightWriteRequest");
- $assert(inFlightWriteRequest !== undefined);
- inFlightWriteRequest.$reject.$call(undefined, error);
-
- $putByIdDirectPrivate(stream, "inFlightWriteRequest", undefined);
-
- const state = $getByIdDirectPrivate(stream, "state");
- $assert(state === "writable" || state === "erroring");
-
- $writableStreamDealWithRejection(stream, error);
-}
-
-export function writableStreamHasOperationMarkedInFlight(stream) {
- return (
- $getByIdDirectPrivate(stream, "inFlightWriteRequest") !== undefined ||
- $getByIdDirectPrivate(stream, "inFlightCloseRequest") !== undefined
- );
-}
-
-export function writableStreamMarkCloseRequestInFlight(stream) {
- const closeRequest = $getByIdDirectPrivate(stream, "closeRequest");
- $assert($getByIdDirectPrivate(stream, "inFlightCloseRequest") === undefined);
- $assert(closeRequest !== undefined);
-
- $putByIdDirectPrivate(stream, "inFlightCloseRequest", closeRequest);
- $putByIdDirectPrivate(stream, "closeRequest", undefined);
-}
-
-export function writableStreamMarkFirstWriteRequestInFlight(stream) {
- const writeRequests = $getByIdDirectPrivate(stream, "writeRequests");
- $assert($getByIdDirectPrivate(stream, "inFlightWriteRequest") === undefined);
- $assert(writeRequests.isNotEmpty());
-
- const writeRequest = writeRequests.shift();
- $putByIdDirectPrivate(stream, "inFlightWriteRequest", writeRequest);
-}
-
-export function writableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {
- $assert($getByIdDirectPrivate(stream, "state") === "errored");
-
- const storedError = $getByIdDirectPrivate(stream, "storedError");
-
- const closeRequest = $getByIdDirectPrivate(stream, "closeRequest");
- if (closeRequest !== undefined) {
- $assert($getByIdDirectPrivate(stream, "inFlightCloseRequest") === undefined);
- closeRequest.$reject.$call(undefined, storedError);
- $putByIdDirectPrivate(stream, "closeRequest", undefined);
- }
-
- const writer = $getByIdDirectPrivate(stream, "writer");
- if (writer !== undefined) {
- const closedPromise = $getByIdDirectPrivate(writer, "closedPromise");
- closedPromise.$reject.$call(undefined, storedError);
- $markPromiseAsHandled(closedPromise.$promise);
- }
-}
-
-export function writableStreamStartErroring(stream, reason) {
- $assert($getByIdDirectPrivate(stream, "storedError") === undefined);
- $assert($getByIdDirectPrivate(stream, "state") === "writable");
-
- const controller = $getByIdDirectPrivate(stream, "controller");
- $assert(controller !== undefined);
-
- $putByIdDirectPrivate(stream, "state", "erroring");
- $putByIdDirectPrivate(stream, "storedError", reason);
-
- const writer = $getByIdDirectPrivate(stream, "writer");
- if (writer !== undefined) $writableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);
-
- if (!$writableStreamHasOperationMarkedInFlight(stream) && $getByIdDirectPrivate(controller, "started") === 1)
- $writableStreamFinishErroring(stream);
-}
-
-export function writableStreamUpdateBackpressure(stream, backpressure) {
- $assert($getByIdDirectPrivate(stream, "state") === "writable");
- $assert(!$writableStreamCloseQueuedOrInFlight(stream));
-
- const writer = $getByIdDirectPrivate(stream, "writer");
- if (writer !== undefined && backpressure !== $getByIdDirectPrivate(stream, "backpressure")) {
- if (backpressure) $putByIdDirectPrivate(writer, "readyPromise", $newPromiseCapability(Promise));
- else $getByIdDirectPrivate(writer, "readyPromise").$resolve.$call();
- }
- $putByIdDirectPrivate(stream, "backpressure", backpressure);
-}
-
-export function writableStreamDefaultWriterAbort(writer, reason) {
- const stream = $getByIdDirectPrivate(writer, "stream");
- $assert(stream !== undefined);
- return $writableStreamAbort(stream, reason);
-}
-
-export function writableStreamDefaultWriterClose(writer) {
- const stream = $getByIdDirectPrivate(writer, "stream");
- $assert(stream !== undefined);
- return $writableStreamClose(stream);
-}
-
-export function writableStreamDefaultWriterCloseWithErrorPropagation(writer) {
- const stream = $getByIdDirectPrivate(writer, "stream");
- $assert(stream !== undefined);
-
- const state = $getByIdDirectPrivate(stream, "state");
-
- if ($writableStreamCloseQueuedOrInFlight(stream) || state === "closed") return Promise.$resolve();
-
- if (state === "errored") return Promise.$reject($getByIdDirectPrivate(stream, "storedError"));
-
- $assert(state === "writable" || state === "erroring");
- return $writableStreamDefaultWriterClose(writer);
-}
-
-export function writableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {
- let closedPromiseCapability = $getByIdDirectPrivate(writer, "closedPromise");
- let closedPromise = closedPromiseCapability.$promise;
-
- if (($getPromiseInternalField(closedPromise, $promiseFieldFlags) & $promiseStateMask) !== $promiseStatePending) {
- closedPromiseCapability = $newPromiseCapability(Promise);
- closedPromise = closedPromiseCapability.$promise;
- $putByIdDirectPrivate(writer, "closedPromise", closedPromiseCapability);
- }
-
- closedPromiseCapability.$reject.$call(undefined, error);
- $markPromiseAsHandled(closedPromise);
-}
-
-export function writableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {
- let readyPromiseCapability = $getByIdDirectPrivate(writer, "readyPromise");
- let readyPromise = readyPromiseCapability.$promise;
-
- if (($getPromiseInternalField(readyPromise, $promiseFieldFlags) & $promiseStateMask) !== $promiseStatePending) {
- readyPromiseCapability = $newPromiseCapability(Promise);
- readyPromise = readyPromiseCapability.$promise;
- $putByIdDirectPrivate(writer, "readyPromise", readyPromiseCapability);
- }
-
- readyPromiseCapability.$reject.$call(undefined, error);
- $markPromiseAsHandled(readyPromise);
-}
-
-export function writableStreamDefaultWriterGetDesiredSize(writer) {
- const stream = $getByIdDirectPrivate(writer, "stream");
- $assert(stream !== undefined);
-
- const state = $getByIdDirectPrivate(stream, "state");
-
- if (state === "errored" || state === "erroring") return null;
-
- if (state === "closed") return 0;
-
- return $writableStreamDefaultControllerGetDesiredSize($getByIdDirectPrivate(stream, "controller"));
-}
-
-export function writableStreamDefaultWriterRelease(writer) {
- const stream = $getByIdDirectPrivate(writer, "stream");
- $assert(stream !== undefined);
- $assert($getByIdDirectPrivate(stream, "writer") === writer);
-
- const releasedError = $makeTypeError("writableStreamDefaultWriterRelease");
-
- $writableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);
- $writableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);
-
- $putByIdDirectPrivate(stream, "writer", undefined);
- $putByIdDirectPrivate(writer, "stream", undefined);
-}
-
-export function writableStreamDefaultWriterWrite(writer, chunk) {
- const stream = $getByIdDirectPrivate(writer, "stream");
- $assert(stream !== undefined);
-
- const controller = $getByIdDirectPrivate(stream, "controller");
- $assert(controller !== undefined);
- const chunkSize = $writableStreamDefaultControllerGetChunkSize(controller, chunk);
-
- if (stream !== $getByIdDirectPrivate(writer, "stream"))
- return Promise.$reject($makeTypeError("writer is not stream's writer"));
-
- const state = $getByIdDirectPrivate(stream, "state");
- if (state === "errored") return Promise.$reject($getByIdDirectPrivate(stream, "storedError"));
-
- if ($writableStreamCloseQueuedOrInFlight(stream) || state === "closed")
- return Promise.$reject($makeTypeError("stream is closing or closed"));
-
- if ($writableStreamCloseQueuedOrInFlight(stream) || state === "closed")
- return Promise.$reject($makeTypeError("stream is closing or closed"));
-
- if (state === "erroring") return Promise.$reject($getByIdDirectPrivate(stream, "storedError"));
-
- $assert(state === "writable");
-
- const promise = $writableStreamAddWriteRequest(stream);
- $writableStreamDefaultControllerWrite(controller, chunk, chunkSize);
- return promise;
-}
-
-export function setUpWritableStreamDefaultController(
- stream,
- controller,
- startAlgorithm,
- writeAlgorithm,
- closeAlgorithm,
- abortAlgorithm,
- highWaterMark,
- sizeAlgorithm,
-) {
- $assert($isWritableStream(stream));
- $assert($getByIdDirectPrivate(stream, "controller") === undefined);
-
- $putByIdDirectPrivate(controller, "stream", stream);
- $putByIdDirectPrivate(stream, "controller", controller);
-
- $resetQueue($getByIdDirectPrivate(controller, "queue"));
-
- $putByIdDirectPrivate(controller, "started", -1);
- $putByIdDirectPrivate(controller, "startAlgorithm", startAlgorithm);
- $putByIdDirectPrivate(controller, "strategySizeAlgorithm", sizeAlgorithm);
- $putByIdDirectPrivate(controller, "strategyHWM", highWaterMark);
- $putByIdDirectPrivate(controller, "writeAlgorithm", writeAlgorithm);
- $putByIdDirectPrivate(controller, "closeAlgorithm", closeAlgorithm);
- $putByIdDirectPrivate(controller, "abortAlgorithm", abortAlgorithm);
-
- const backpressure = $writableStreamDefaultControllerGetBackpressure(controller);
- $writableStreamUpdateBackpressure(stream, backpressure);
-
- $writableStreamDefaultControllerStart(controller);
-}
-
-export function writableStreamDefaultControllerStart(controller) {
- if ($getByIdDirectPrivate(controller, "started") !== -1) return;
-
- $putByIdDirectPrivate(controller, "started", 0);
-
- const startAlgorithm = $getByIdDirectPrivate(controller, "startAlgorithm");
- $putByIdDirectPrivate(controller, "startAlgorithm", undefined);
- const stream = $getByIdDirectPrivate(controller, "stream");
- return Promise.$resolve(startAlgorithm.$call()).$then(
- () => {
- const state = $getByIdDirectPrivate(stream, "state");
- $assert(state === "writable" || state === "erroring");
- $putByIdDirectPrivate(controller, "started", 1);
- $writableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
- },
- error => {
- const state = $getByIdDirectPrivate(stream, "state");
- $assert(state === "writable" || state === "erroring");
- $putByIdDirectPrivate(controller, "started", 1);
- $writableStreamDealWithRejection(stream, error);
- },
- );
-}
-
-export function setUpWritableStreamDefaultControllerFromUnderlyingSink(
- stream,
- underlyingSink,
- underlyingSinkDict,
- highWaterMark,
- sizeAlgorithm,
-) {
- const controller = new $WritableStreamDefaultController();
-
- let startAlgorithm = () => {};
- let writeAlgorithm = () => {
- return Promise.$resolve();
- };
- let closeAlgorithm = () => {
- return Promise.$resolve();
- };
- let abortAlgorithm = () => {
- return Promise.$resolve();
- };
-
- if ("start" in underlyingSinkDict) {
- const startMethod = underlyingSinkDict["start"];
- startAlgorithm = () => $promiseInvokeOrNoopMethodNoCatch(underlyingSink, startMethod, [controller]);
- }
- if ("write" in underlyingSinkDict) {
- const writeMethod = underlyingSinkDict["write"];
- writeAlgorithm = chunk => $promiseInvokeOrNoopMethod(underlyingSink, writeMethod, [chunk, controller]);
- }
- if ("close" in underlyingSinkDict) {
- const closeMethod = underlyingSinkDict["close"];
- closeAlgorithm = () => $promiseInvokeOrNoopMethod(underlyingSink, closeMethod, []);
- }
- if ("abort" in underlyingSinkDict) {
- const abortMethod = underlyingSinkDict["abort"];
- abortAlgorithm = reason => $promiseInvokeOrNoopMethod(underlyingSink, abortMethod, [reason]);
- }
-
- $setUpWritableStreamDefaultController(
- stream,
- controller,
- startAlgorithm,
- writeAlgorithm,
- closeAlgorithm,
- abortAlgorithm,
- highWaterMark,
- sizeAlgorithm,
- );
-}
-
-export function writableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
- const stream = $getByIdDirectPrivate(controller, "stream");
-
- if ($getByIdDirectPrivate(controller, "started") !== 1) return;
-
- $assert(stream !== undefined);
- if ($getByIdDirectPrivate(stream, "inFlightWriteRequest") !== undefined) return;
-
- const state = $getByIdDirectPrivate(stream, "state");
- $assert(state !== "closed" || state !== "errored");
- if (state === "erroring") {
- $writableStreamFinishErroring(stream);
- return;
- }
-
- const queue = $getByIdDirectPrivate(controller, "queue");
-
- if (queue.content?.isEmpty() ?? false) return;
-
- const value = $peekQueueValue(queue);
- if (value === $isCloseSentinel) $writableStreamDefaultControllerProcessClose(controller);
- else $writableStreamDefaultControllerProcessWrite(controller, value);
-}
-
-export function isCloseSentinel() {}
-
-export function writableStreamDefaultControllerClearAlgorithms(controller) {
- $putByIdDirectPrivate(controller, "writeAlgorithm", undefined);
- $putByIdDirectPrivate(controller, "closeAlgorithm", undefined);
- $putByIdDirectPrivate(controller, "abortAlgorithm", undefined);
- $putByIdDirectPrivate(controller, "strategySizeAlgorithm", undefined);
-}
-
-export function writableStreamDefaultControllerClose(controller) {
- $enqueueValueWithSize($getByIdDirectPrivate(controller, "queue"), $isCloseSentinel, 0);
- $writableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
-}
-
-export function writableStreamDefaultControllerError(controller, error) {
- const stream = $getByIdDirectPrivate(controller, "stream");
- $assert(stream !== undefined);
- $assert($getByIdDirectPrivate(stream, "state") === "writable");
-
- $writableStreamDefaultControllerClearAlgorithms(controller);
- $writableStreamStartErroring(stream, error);
-}
-
-export function writableStreamDefaultControllerErrorIfNeeded(controller, error) {
- const stream = $getByIdDirectPrivate(controller, "stream");
- if ($getByIdDirectPrivate(stream, "state") === "writable") $writableStreamDefaultControllerError(controller, error);
-}
-
-export function writableStreamDefaultControllerGetBackpressure(controller) {
- const desiredSize = $writableStreamDefaultControllerGetDesiredSize(controller);
- return desiredSize <= 0;
-}
-
-export function writableStreamDefaultControllerGetChunkSize(controller, chunk) {
- try {
- return $getByIdDirectPrivate(controller, "strategySizeAlgorithm").$call(undefined, chunk);
- } catch (e) {
- $writableStreamDefaultControllerErrorIfNeeded(controller, e);
- return 1;
- }
-}
-
-export function writableStreamDefaultControllerGetDesiredSize(controller) {
- return $getByIdDirectPrivate(controller, "strategyHWM") - $getByIdDirectPrivate(controller, "queue").size;
-}
-
-export function writableStreamDefaultControllerProcessClose(controller) {
- const stream = $getByIdDirectPrivate(controller, "stream");
-
- $writableStreamMarkCloseRequestInFlight(stream);
- $dequeueValue($getByIdDirectPrivate(controller, "queue"));
-
- $assert($getByIdDirectPrivate(controller, "queue").content?.isEmpty());
-
- const sinkClosePromise = $getByIdDirectPrivate(controller, "closeAlgorithm").$call();
- $writableStreamDefaultControllerClearAlgorithms(controller);
-
- sinkClosePromise.$then(
- () => {
- $writableStreamFinishInFlightClose(stream);
- },
- reason => {
- $writableStreamFinishInFlightCloseWithError(stream, reason);
- },
- );
-}
-
-export function writableStreamDefaultControllerProcessWrite(controller, chunk) {
- const stream = $getByIdDirectPrivate(controller, "stream");
-
- $writableStreamMarkFirstWriteRequestInFlight(stream);
-
- const sinkWritePromise = $getByIdDirectPrivate(controller, "writeAlgorithm").$call(undefined, chunk);
-
- sinkWritePromise.$then(
- () => {
- $writableStreamFinishInFlightWrite(stream);
- const state = $getByIdDirectPrivate(stream, "state");
- $assert(state === "writable" || state === "erroring");
-
- $dequeueValue($getByIdDirectPrivate(controller, "queue"));
- if (!$writableStreamCloseQueuedOrInFlight(stream) && state === "writable") {
- const backpressure = $writableStreamDefaultControllerGetBackpressure(controller);
- $writableStreamUpdateBackpressure(stream, backpressure);
- }
- $writableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
- },
- reason => {
- const state = $getByIdDirectPrivate(stream, "state");
- if (state === "writable") $writableStreamDefaultControllerClearAlgorithms(controller);
-
- $writableStreamFinishInFlightWriteWithError(stream, reason);
- },
- );
-}
-
-export function writableStreamDefaultControllerWrite(controller, chunk, chunkSize) {
- try {
- $enqueueValueWithSize($getByIdDirectPrivate(controller, "queue"), chunk, chunkSize);
-
- const stream = $getByIdDirectPrivate(controller, "stream");
-
- const state = $getByIdDirectPrivate(stream, "state");
- if (!$writableStreamCloseQueuedOrInFlight(stream) && state === "writable") {
- const backpressure = $writableStreamDefaultControllerGetBackpressure(controller);
- $writableStreamUpdateBackpressure(stream, backpressure);
- }
- $writableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
- } catch (e) {
- $writableStreamDefaultControllerErrorIfNeeded(controller, e);
- }
-}
diff --git a/src/bun.js/builtins/tsconfig.json b/src/bun.js/builtins/tsconfig.json
deleted file mode 100644
index 612488c5f..000000000
--- a/src/bun.js/builtins/tsconfig.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "extends": "../../../tsconfig.base.json",
- "compilerOptions": {
- "noEmit": true
- },
- "include": [".", "builtins.d.ts", "WebCoreJSBuiltins.d.ts", "../../../packages/bun-types/index.d.ts"]
-}
diff --git a/src/bun.js/bun-jsc.exports.js b/src/bun.js/bun-jsc.exports.js
deleted file mode 100644
index d49e41851..000000000
--- a/src/bun.js/bun-jsc.exports.js
+++ /dev/null
@@ -1,35 +0,0 @@
-const jsc = globalThis[Symbol.for("Bun.lazy")]("bun:jsc");
-
-export const callerSourceOrigin = jsc.callerSourceOrigin;
-export const jscDescribe = jsc.describe;
-export const jscDescribeArray = jsc.describeArray;
-/** Too easy to confuse with test describe */
-export const describe = jscDescribe;
-export const describeArray = jscDescribeArray;
-export const drainMicrotasks = jsc.drainMicrotasks;
-export const edenGC = jsc.edenGC;
-export const fullGC = jsc.fullGC;
-export const gcAndSweep = jsc.gcAndSweep;
-export const getRandomSeed = jsc.getRandomSeed;
-export const heapSize = jsc.heapSize;
-export const heapStats = jsc.heapStats;
-export const startSamplingProfiler = jsc.startSamplingProfiler;
-export const samplingProfilerStackTraces = jsc.samplingProfilerStackTraces;
-export const isRope = jsc.isRope;
-export const memoryUsage = jsc.memoryUsage;
-export const noInline = jsc.noInline;
-export const noFTL = jsc.noFTL;
-export const noOSRExitFuzzing = jsc.noOSRExitFuzzing;
-export const numberOfDFGCompiles = jsc.numberOfDFGCompiles;
-export const optimizeNextInvocation = jsc.optimizeNextInvocation;
-export const releaseWeakRefs = jsc.releaseWeakRefs;
-export const reoptimizationRetryCount = jsc.reoptimizationRetryCount;
-export const setRandomSeed = jsc.setRandomSeed;
-export const startRemoteDebugger = jsc.startRemoteDebugger;
-export const totalCompileTime = jsc.totalCompileTime;
-export const getProtectedObjects = jsc.getProtectedObjects;
-export const generateHeapSnapshotForDebugging = jsc.generateHeapSnapshotForDebugging;
-export const profile = jsc.profile;
-export default jsc;
-export const setTimeZone = jsc.setTimeZone;
-export const setTimezone = setTimeZone;
diff --git a/src/bun.js/child_process.exports.js b/src/bun.js/child_process.exports.js
deleted file mode 100644
index 0ee72fe4c..000000000
--- a/src/bun.js/child_process.exports.js
+++ /dev/null
@@ -1,1747 +0,0 @@
-const EventEmitter = import.meta.require("node:events");
-const {
- Readable: { fromWeb: ReadableFromWeb },
- NativeWritable,
-} = import.meta.require("node:stream");
-const {
- constants: { signals },
-} = import.meta.require("node:os");
-const { promisify } = import.meta.require("node:util");
-
-const { ArrayBuffer, Uint8Array, String, Object, Buffer, Promise } = import.meta.primordials;
-
-var ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty;
-var ObjectCreate = Object.create;
-var ObjectAssign = Object.assign;
-var ObjectDefineProperty = Object.defineProperty;
-var BufferConcat = Buffer.concat;
-var BufferIsEncoding = Buffer.isEncoding;
-
-var kEmptyObject = ObjectCreate(null);
-
-var ArrayPrototypePush = Array.prototype.push;
-var ArrayPrototypeReduce = Array.prototype.reduce;
-var ArrayPrototypeFilter = Array.prototype.filter;
-var ArrayPrototypeJoin = Array.prototype.join;
-var ArrayPrototypeMap = Array.prototype.map;
-var ArrayPrototypeIncludes = Array.prototype.includes;
-var ArrayPrototypeSlice = Array.prototype.slice;
-var ArrayPrototypeUnshift = Array.prototype.unshift;
-var ArrayIsArray = Array.isArray;
-
-// var ArrayBuffer = ArrayBuffer;
-var ArrayBufferIsView = ArrayBuffer.isView;
-
-var NumberIsInteger = Number.isInteger;
-var MathAbs = Math.abs;
-
-var StringPrototypeToUpperCase = String.prototype.toUpperCase;
-var StringPrototypeIncludes = String.prototype.includes;
-var StringPrototypeSlice = String.prototype.slice;
-var Uint8ArrayPrototypeIncludes = Uint8Array.prototype.includes;
-
-const MAX_BUFFER = 1024 * 1024;
-
-// General debug vs tracking stdio streams. Useful for stream debugging in particular
-const __DEBUG__ = process.env.DEBUG || false;
-
-// You can use this env var along with `process.env.DEBUG_TRACK_EE` to debug stdio streams
-// Just set `DEBUG_TRACK_EE=PARENT_STDOUT-0, PARENT_STDOUT-1`, etc. and `DEBUG_STDIO=1` and you will be able to track particular stdio streams
-// TODO: Add ability to track a range of IDs rather than just enumerated ones
-const __TRACK_STDIO__ = process.env.DEBUG_STDIO;
-const debug = __DEBUG__ ? console.log : () => {};
-
-if (__TRACK_STDIO__) {
- debug("child_process: debug mode on");
- globalThis.__lastId = null;
- globalThis.__getId = () => {
- return globalThis.__lastId !== null ? globalThis.__lastId++ : 0;
- };
-}
-
-// Sections:
-// 1. Exported child_process functions
-// 2. child_process helpers
-// 3. ChildProcess "class"
-// 4. ChildProcess helpers
-// 5. Validators
-// 6. Random utilities
-// 7. Node errors / error polyfills
-
-// TODO:
-// Port rest of node tests
-// Fix exit codes with Bun.spawn
-// ------------------------------
-// Fix errors
-// Support file descriptors being passed in for stdio
-// ------------------------------
-// TODO: Look at Pipe to see if we can support passing Node Pipe objects to stdio param
-
-// TODO: Add these params after support added in Bun.spawn
-// uid <number> Sets the user identity of the process (see setuid(2)).
-// gid <number> Sets the group identity of the process (see setgid(2)).
-// detached <boolean> Prepare child to run independently of its parent process. Specific behavior depends on the platform, see options.detached).
-
-// TODO: After IPC channels can be opened
-// serialization <string> Specify the kind of serialization used for sending messages between processes. Possible values are 'json' and 'advanced'. See Advanced serialization for more details. Default: 'json'.
-
-// TODO: Add support for ipc option, verify only one IPC channel in array
-// stdio <Array> | <string> Child's stdio configuration (see options.stdio).
-// Support wrapped ipc types (e.g. net.Socket, dgram.Socket, TTY, etc.)
-// IPC FD passing support
-
-// From node child_process docs(https://nodejs.org/api/child_process.html#optionsstdio):
-// 'ipc': Create an IPC channel for passing messages/file descriptors between parent and child.
-// A ChildProcess may have at most one IPC stdio file descriptor. Setting this option enables the subprocess.send() method.
-// If the child is a Node.js process, the presence of an IPC channel will enable process.send() and process.disconnect() methods,
-// as well as 'disconnect' and 'message' events within the child.
-
-//------------------------------------------------------------------------------
-// Section 1. Exported child_process functions
-//------------------------------------------------------------------------------
-
-// TODO: Implement these props when Windows is supported
-// * windowsVerbatimArguments?: boolean;
-// * windowsHide?: boolean;
-
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-function spawnTimeoutFunction(child, timeoutHolder) {
- var timeoutId = timeoutHolder.timeoutId;
- if (timeoutId > -1) {
- try {
- child.kill(killSignal);
- } catch (err) {
- child.emit("error", err);
- }
- timeoutHolder.timeoutId = -1;
- }
-}
-/**
- * Spawns a new process using the given `file`.
- * @param {string} file
- * @param {string[]} [args]
- * @param {{
- * cwd?: string;
- * env?: Record<string, string>;
- * argv0?: string;
- * stdio?: Array | string;
- * detached?: boolean;
- * uid?: number;
- * gid?: number;
- * serialization?: string;
- * shell?: boolean | string;
- * signal?: AbortSignal;
- * timeout?: number;
- * killSignal?: string | number;
- * }} [options]
- * @returns {ChildProcess}
- */
-export function spawn(file, args, options) {
- options = normalizeSpawnArguments(file, args, options);
- validateTimeout(options.timeout);
- validateAbortSignal(options.signal, "options.signal");
- const killSignal = sanitizeKillSignal(options.killSignal);
- const child = new ChildProcess();
-
- debug("spawn", options);
- child.spawn(options);
-
- if (options.timeout > 0) {
- let timeoutId = setTimeout(() => {
- if (timeoutId) {
- try {
- child.kill(killSignal);
- } catch (err) {
- child.emit("error", err);
- }
- timeoutId = null;
- }
- });
-
- child.once("exit", () => {
- if (timeoutId) {
- clearTimeout(timeoutId);
- timeoutId = null;
- }
- });
- }
-
- if (options.signal) {
- const signal = options.signal;
- if (signal.aborted) {
- process.nextTick(onAbortListener);
- } else {
- signal.addEventListener("abort", onAbortListener, { once: true });
- child.once("exit", () => signal.removeEventListener("abort", onAbortListener));
- }
-
- function onAbortListener() {
- abortChildProcess(child, killSignal);
- }
- }
- return child;
-}
-
-/**
- * Spawns the specified file as a shell.
- * @param {string} file
- * @param {string[]} [args]
- * @param {{
- * cwd?: string;
- * env?: Record<string, string>;
- * encoding?: string;
- * timeout?: number;
- * maxBuffer?: number;
- * killSignal?: string | number;
- * uid?: number;
- * gid?: number;
- * windowsHide?: boolean;
- * windowsVerbatimArguments?: boolean;
- * shell?: boolean | string;
- * signal?: AbortSignal;
- * }} [options]
- * @param {(
- * error?: Error,
- * stdout?: string | Buffer,
- * stderr?: string | Buffer
- * ) => any} [callback]
- * @returns {ChildProcess}
- */
-export function execFile(file, args, options, callback) {
- ({ file, args, options, callback } = normalizeExecFileArgs(file, args, options, callback));
-
- options = {
- encoding: "utf8",
- timeout: 0,
- maxBuffer: MAX_BUFFER,
- killSignal: "SIGTERM",
- cwd: null,
- env: null,
- shell: false,
- ...options,
- };
-
- const maxBuffer = options.maxBuffer;
-
- // Validate the timeout, if present.
- validateTimeout(options.timeout);
-
- // Validate maxBuffer, if present.
- validateMaxBuffer(maxBuffer);
-
- options.killSignal = sanitizeKillSignal(options.killSignal);
-
- const child = spawn(file, args, {
- cwd: options.cwd,
- env: options.env,
- // gid: options.gid,
- shell: options.shell,
- signal: options.signal,
- // uid: options.uid,
- });
-
- let encoding;
- const _stdout = [];
- const _stderr = [];
- if (options.encoding !== "buffer" && BufferIsEncoding(options.encoding)) {
- encoding = options.encoding;
- } else {
- encoding = null;
- }
- let stdoutLen = 0;
- let stderrLen = 0;
- let killed = false;
- let exited = false;
- let timeoutId;
- let encodedStdoutLen;
- let encodedStderrLen;
-
- let ex = null;
-
- let cmd = file;
-
- function exitHandler(code, signal) {
- if (exited) return;
- exited = true;
-
- if (timeoutId) {
- clearTimeout(timeoutId);
- timeoutId = null;
- }
-
- if (!callback) return;
-
- const readableEncoding = child?.stdout?.readableEncoding;
- // merge chunks
- let stdout;
- let stderr;
- if (encoding || (child.stdout && readableEncoding)) {
- stdout = ArrayPrototypeJoin.call(_stdout, "");
- } else {
- stdout = BufferConcat(_stdout);
- }
- if (encoding || (child.stderr && readableEncoding)) {
- stderr = ArrayPrototypeJoin.call(_stderr, "");
- } else {
- stderr = BufferConcat(_stderr);
- }
-
- if (!ex && code === 0 && signal === null) {
- callback(null, stdout, stderr);
- return;
- }
-
- if (args?.length) cmd += ` ${ArrayPrototypeJoin.call(args, " ")}`;
- if (!ex) {
- let message = `Command failed: ${cmd}`;
- if (stderr) message += `\n${stderr}`;
- ex = genericNodeError(message, {
- // code: code < 0 ? getSystemErrorName(code) : code, // TODO: Add getSystemErrorName
- code: code,
- killed: child.killed || killed,
- signal: signal,
- });
- }
-
- ex.cmd = cmd;
- callback(ex, stdout, stderr);
- }
-
- function errorHandler(e) {
- ex = e;
-
- if (child.stdout) child.stdout.destroy();
- if (child.stderr) child.stderr.destroy();
-
- exitHandler();
- }
-
- function kill() {
- if (child.stdout) child.stdout.destroy();
- if (child.stderr) child.stderr.destroy();
-
- killed = true;
- try {
- child.kill(options.killSignal);
- } catch (e) {
- ex = e;
- exitHandler();
- }
- }
-
- if (options.timeout > 0) {
- timeoutId = setTimeout(function delayedKill() {
- kill();
- timeoutId = null;
- }, options.timeout);
- }
-
- if (child.stdout) {
- if (encoding) child.stdout.setEncoding(encoding);
-
- child.stdout.on(
- "data",
- maxBuffer === Infinity
- ? function onUnlimitedSizeBufferedData(chunk) {
- ArrayPrototypePush.call(_stdout, chunk);
- }
- : encoding
- ? function onChildStdoutEncoded(chunk) {
- stdoutLen += chunk.length;
-
- if (stdoutLen * 4 > maxBuffer) {
- const encoding = child.stdout.readableEncoding;
- const actualLen = Buffer.byteLength(chunk, encoding);
- if (encodedStdoutLen === undefined) {
- for (let i = 0; i < _stdout.length; i++) {
- encodedStdoutLen += Buffer.byteLength(_stdout[i], encoding);
- }
- } else {
- encodedStdoutLen += actualLen;
- }
- const truncatedLen = maxBuffer - (encodedStdoutLen - actualLen);
- ArrayPrototypePush.call(_stdout, StringPrototypeSlice.apply(chunk, 0, truncatedLen));
-
- ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER("stdout");
- kill();
- } else {
- ArrayPrototypePush.call(_stdout, chunk);
- }
- }
- : function onChildStdoutRaw(chunk) {
- stdoutLen += chunk.length;
-
- if (stdoutLen > maxBuffer) {
- const truncatedLen = maxBuffer - (stdoutLen - chunk.length);
- ArrayPrototypePush.call(_stdout, chunk.slice(0, truncatedLen));
-
- ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER("stdout");
- kill();
- } else {
- ArrayPrototypePush.call(_stdout, chunk);
- }
- },
- );
- }
-
- if (child.stderr) {
- if (encoding) child.stderr.setEncoding(encoding);
-
- child.stderr.on(
- "data",
- maxBuffer === Infinity
- ? function onUnlimitedSizeBufferedData(chunk) {
- ArrayPrototypePush.call(_stderr, chunk);
- }
- : encoding
- ? function onChildStderrEncoded(chunk) {
- stderrLen += chunk.length;
-
- if (stderrLen * 4 > maxBuffer) {
- const encoding = child.stderr.readableEncoding;
- const actualLen = Buffer.byteLength(chunk, encoding);
- if (encodedStderrLen === undefined) {
- for (let i = 0; i < _stderr.length; i++) {
- encodedStderrLen += Buffer.byteLength(_stderr[i], encoding);
- }
- } else {
- encodedStderrLen += actualLen;
- }
- const truncatedLen = maxBuffer - (encodedStderrLen - actualLen);
- ArrayPrototypePush.call(_stderr, StringPrototypeSlice.call(chunk, 0, truncatedLen));
-
- ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER("stderr");
- kill();
- } else {
- ArrayPrototypePush.call(_stderr, chunk);
- }
- }
- : function onChildStderrRaw(chunk) {
- stderrLen += chunk.length;
-
- if (stderrLen > maxBuffer) {
- const truncatedLen = maxBuffer - (stderrLen - chunk.length);
- ArrayPrototypePush.call(_stderr, StringPrototypeSlice.call(chunk, 0, truncatedLen));
-
- ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER("stderr");
- kill();
- } else {
- ArrayPrototypePush.call(_stderr, chunk);
- }
- },
- );
- }
-
- child.addListener("close", exitHandler);
- child.addListener("error", errorHandler);
-
- return child;
-}
-
-/**
- * Spawns a shell executing the given command.
- * @param {string} command
- * @param {{
- * cmd?: string;
- * env?: Record<string, string>;
- * encoding?: string;
- * shell?: string;
- * signal?: AbortSignal;
- * timeout?: number;
- * maxBuffer?: number;
- * killSignal?: string | number;
- * uid?: number;
- * gid?: number;
- * windowsHide?: boolean;
- * }} [options]
- * @param {(
- * error?: Error,
- * stdout?: string | Buffer,
- * stderr?: string | Buffer
- * ) => any} [callback]
- * @returns {ChildProcess}
- */
-export function exec(command, options, callback) {
- const opts = normalizeExecArgs(command, options, callback);
- return execFile(opts.file, opts.options, opts.callback);
-}
-
-const customPromiseExecFunction = orig => {
- return (...args) => {
- let resolve;
- let reject;
- const promise = new Promise((res, rej) => {
- resolve = res;
- reject = rej;
- });
-
- promise.child = orig(...args, (err, stdout, stderr) => {
- if (err !== null) {
- err.stdout = stdout;
- err.stderr = stderr;
- reject(err);
- } else {
- resolve({ stdout, stderr });
- }
- });
-
- return promise;
- };
-};
-
-ObjectDefineProperty(exec, promisify.custom, {
- __proto__: null,
- enumerable: false,
- value: customPromiseExecFunction(exec),
-});
-
-/**
- * Spawns a new process synchronously using the given `file`.
- * @param {string} file
- * @param {string[]} [args]
- * @param {{
- * cwd?: string;
- * input?: string | Buffer | TypedArray | DataView;
- * argv0?: string;
- * stdio?: string | Array;
- * env?: Record<string, string>;
- * uid?: number;
- * gid?: number;
- * timeout?: number;
- * killSignal?: string | number;
- * maxBuffer?: number;
- * encoding?: string;
- * shell?: boolean | string;
- * }} [options]
- * @returns {{
- * pid: number;
- * output: Array;
- * stdout: Buffer | string;
- * stderr: Buffer | string;
- * status: number | null;
- * signal: string | null;
- * error: Error;
- * }}
- */
-export function spawnSync(file, args, options) {
- options = {
- maxBuffer: MAX_BUFFER,
- ...normalizeSpawnArguments(file, args, options),
- };
-
- const maxBuffer = options.maxBuffer;
- const encoding = options.encoding;
-
- debug("spawnSync", options);
-
- // Validate the timeout, if present.
- validateTimeout(options.timeout);
-
- // Validate maxBuffer, if present.
- validateMaxBuffer(maxBuffer);
-
- // Validate and translate the kill signal, if present.
- options.killSignal = sanitizeKillSignal(options.killSignal);
-
- const stdio = options.stdio || "pipe";
- const bunStdio = getBunStdioFromOptions(stdio);
-
- var { input } = options;
- if (input) {
- if (ArrayBufferIsView(input)) {
- bunStdio[0] = input;
- } else if (typeof input === "string") {
- bunStdio[0] = Buffer.from(input, encoding || "utf8");
- } else {
- throw new ERR_INVALID_ARG_TYPE(`options.stdio[0]`, ["Buffer", "TypedArray", "DataView", "string"], input);
- }
- }
-
- const { stdout, stderr, success, exitCode } = Bun.spawnSync({
- cmd: options.args,
- env: options.env || undefined,
- cwd: options.cwd || undefined,
- stdin: bunStdio[0],
- stdout: bunStdio[1],
- stderr: bunStdio[2],
- });
-
- const result = {
- signal: null,
- status: exitCode,
- output: [null, stdout, stderr],
- };
-
- if (stdout && encoding && encoding !== "buffer") {
- result.output[1] = result.output[1]?.toString(encoding);
- }
-
- if (stderr && encoding && encoding !== "buffer") {
- result.output[2] = result.output[2]?.toString(encoding);
- }
-
- result.stdout = result.output[1];
- result.stderr = result.output[2];
-
- if (!success) {
- result.error = new SystemError(result.output[2], options.file, "spawnSync", -1, result.status);
- result.error.spawnargs = ArrayPrototypeSlice.call(options.args, 1);
- }
-
- return result;
-}
-
-/**
- * Spawns a file as a shell synchronously.
- * @param {string} file
- * @param {string[]} [args]
- * @param {{
- * cwd?: string;
- * input?: string | Buffer | TypedArray | DataView;
- * stdio?: string | Array;
- * env?: Record<string, string>;
- * uid?: number;
- * gid?: number;
- * timeout?: number;
- * killSignal?: string | number;
- * maxBuffer?: number;
- * encoding?: string;
- * windowsHide?: boolean;
- * shell?: boolean | string;
- * }} [options]
- * @returns {Buffer | string}
- */
-export function execFileSync(file, args, options) {
- ({ file, args, options } = normalizeExecFileArgs(file, args, options));
-
- // const inheritStderr = !options.stdio;
- const ret = spawnSync(file, args, options);
-
- // if (inheritStderr && ret.stderr) process.stderr.write(ret.stderr);
-
- const errArgs = [options.argv0 || file];
- ArrayPrototypePush.apply(errArgs, args);
- const err = checkExecSyncError(ret, errArgs);
-
- if (err) throw err;
-
- return ret.stdout;
-}
-
-/**
- * Spawns a shell executing the given `command` synchronously.
- * @param {string} command
- * @param {{
- * cwd?: string;
- * input?: string | Buffer | TypedArray | DataView;
- * stdio?: string | Array;
- * env?: Record<string, string>;
- * shell?: string;
- * uid?: number;
- * gid?: number;
- * timeout?: number;
- * killSignal?: string | number;
- * maxBuffer?: number;
- * encoding?: string;
- * windowsHide?: boolean;
- * }} [options]
- * @returns {Buffer | string}
- */
-export function execSync(command, options) {
- const opts = normalizeExecArgs(command, options, null);
- // const inheritStderr = !opts.options.stdio;
-
- const ret = spawnSync(opts.file, opts.options);
-
- // if (inheritStderr && ret.stderr) process.stderr.write(ret.stderr); // TODO: Uncomment when we have process.stderr
-
- const err = checkExecSyncError(ret, undefined, command);
-
- if (err) throw err;
-
- return ret.stdout;
-}
-
-export function fork() {
- throw new Error("Not implemented");
-}
-
-//------------------------------------------------------------------------------
-// Section 2. child_process helpers
-//------------------------------------------------------------------------------
-function convertToValidSignal(signal) {
- if (typeof signal === "number" && getSignalsToNamesMapping()[signal]) return signal;
-
- if (typeof signal === "string") {
- const signalName = signals[StringPrototypeToUpperCase.call(signal)];
- if (signalName) return signalName;
- }
-
- throw new ERR_UNKNOWN_SIGNAL(signal);
-}
-
-function sanitizeKillSignal(killSignal) {
- if (typeof killSignal === "string" || typeof killSignal === "number") {
- return convertToValidSignal(killSignal);
- } else if (killSignal != null) {
- throw new ERR_INVALID_ARG_TYPE("options.killSignal", ["string", "number"], killSignal);
- }
-}
-
-let signalsToNamesMapping;
-function getSignalsToNamesMapping() {
- if (signalsToNamesMapping !== undefined) return signalsToNamesMapping;
-
- signalsToNamesMapping = ObjectCreate(null);
- for (const key in signals) {
- signalsToNamesMapping[signals[key]] = key;
- }
-
- return signalsToNamesMapping;
-}
-
-function normalizeExecFileArgs(file, args, options, callback) {
- if (ArrayIsArray(args)) {
- args = ArrayPrototypeSlice.call(args);
- } else if (args != null && typeof args === "object") {
- callback = options;
- options = args;
- args = null;
- } else if (typeof args === "function") {
- callback = args;
- options = null;
- args = null;
- }
-
- if (args == null) {
- args = [];
- }
-
- if (typeof options === "function") {
- callback = options;
- } else if (options != null) {
- validateObject(options, "options");
- }
-
- if (options == null) {
- options = kEmptyObject;
- }
-
- if (callback != null) {
- validateFunction(callback, "callback");
- }
-
- // Validate argv0, if present.
- if (options.argv0 != null) {
- validateString(options.argv0, "options.argv0");
- validateArgumentNullCheck(options.argv0, "options.argv0");
- }
-
- return { file, args, options, callback };
-}
-
-function normalizeExecArgs(command, options, callback) {
- validateString(command, "command");
- validateArgumentNullCheck(command, "command");
-
- if (typeof options === "function") {
- callback = options;
- options = undefined;
- }
-
- // Make a shallow copy so we don't clobber the user's options object.
- options = { ...options };
- options.shell = typeof options.shell === "string" ? options.shell : true;
-
- return {
- file: command,
- options: options,
- callback: callback,
- };
-}
-
-function normalizeSpawnArguments(file, args, options) {
- validateString(file, "file");
- validateArgumentNullCheck(file, "file");
-
- if (file.length === 0) throw new ERR_INVALID_ARG_VALUE("file", file, "cannot be empty");
-
- if (ArrayIsArray(args)) {
- args = ArrayPrototypeSlice.call(args);
- } else if (args == null) {
- args = [];
- } else if (typeof args !== "object") {
- throw new ERR_INVALID_ARG_TYPE("args", "object", args);
- } else {
- options = args;
- args = [];
- }
-
- validateArgumentsNullCheck(args, "args");
-
- if (options === undefined) options = {};
- else validateObject(options, "options");
-
- let cwd = options.cwd;
-
- // Validate the cwd, if present.
- if (cwd != null) {
- cwd = getValidatedPath(cwd, "options.cwd");
- }
-
- // TODO: Detached check
- // TODO: Gid check
- // TODO: Uid check
-
- // Validate the shell, if present.
- if (options.shell != null && typeof options.shell !== "boolean" && typeof options.shell !== "string") {
- throw new ERR_INVALID_ARG_TYPE("options.shell", ["boolean", "string"], options.shell);
- }
-
- // Validate argv0, if present.
- if (options.argv0 != null) {
- validateString(options.argv0, "options.argv0");
- validateArgumentNullCheck(options.argv0, "options.argv0");
- }
-
- // TODO: Windows checks for Windows specific options
-
- // Handle shell
- if (options.shell) {
- validateArgumentNullCheck(options.shell, "options.shell");
- const command = ArrayPrototypeJoin.call([file, ...args], " ");
- // TODO: Windows moment
- // Set the shell, switches, and commands.
- // if (process.platform === "win32") {
- // if (typeof options.shell === "string") file = options.shell;
- // else file = process.env.comspec || "cmd.exe";
- // // '/d /s /c' is used only for cmd.exe.
- // if (RegExpPrototypeExec(/^(?:.*\\)?cmd(?:\.exe)?$/i, file) !== null) {
- // args = ["/d", "/s", "/c", `"${command}"`];
- // windowsVerbatimArguments = true;
- // } else {
- // args = ["-c", command];
- // }
- // } else {
- if (typeof options.shell === "string") file = options.shell;
- else if (process.platform === "android") file = "sh";
- else file = "sh";
- args = ["-c", command];
- // }
- }
-
- // Handle argv0
- if (typeof options.argv0 === "string") {
- ArrayPrototypeUnshift.call(args, options.argv0);
- } else {
- ArrayPrototypeUnshift.call(args, file);
- }
-
- const env = options.env || process.env;
- const envPairs = env;
-
- // // process.env.NODE_V8_COVERAGE always propagates, making it possible to
- // // collect coverage for programs that spawn with white-listed environment.
- // copyProcessEnvToEnv(env, "NODE_V8_COVERAGE", options.env);
-
- // TODO: Windows env support here...
-
- return { ...options, file, args, cwd, envPairs };
-}
-
-function checkExecSyncError(ret, args, cmd) {
- let err;
- if (ret.error) {
- err = ret.error;
- ObjectAssign(err, ret);
- } else if (ret.status !== 0) {
- let msg = "Command failed: ";
- msg += cmd || ArrayPrototypeJoin.call(args, " ");
- if (ret.stderr && ret.stderr.length > 0) msg += `\n${ret.stderr.toString()}`;
- err = genericNodeError(msg, ret);
- }
- return err;
-}
-
-//------------------------------------------------------------------------------
-// Section 3. ChildProcess class
-//------------------------------------------------------------------------------
-export class ChildProcess extends EventEmitter {
- #handle;
- #exited = false;
- #closesNeeded = 1;
- #closesGot = 0;
-
- connected = false;
- signalCode = null;
- exitCode = null;
- spawnfile;
- spawnargs;
- pid;
- channel;
-
- get killed() {
- if (this.#handle == null) return false;
- }
-
- // constructor(options) {
- // super(options);
- // this.#handle[owner_symbol] = this;
- // }
-
- #handleOnExit(exitCode, signalCode, err) {
- if (this.#exited) return;
- this.exitCode = this.#handle.exitCode;
- this.signalCode = exitCode > 0 ? signalCode : null;
-
- if (this.#stdin) {
- this.#stdin.destroy();
- }
-
- if (this.#handle) {
- this.#handle = null;
- }
-
- if (exitCode < 0) {
- const err = new SystemError(
- `Spawned process exited with error code: ${exitCode}`,
- undefined,
- "spawn",
- "EUNKNOWN",
- "ERR_CHILD_PROCESS_UNKNOWN_ERROR",
- );
-
- if (this.spawnfile) err.path = this.spawnfile;
-
- err.spawnargs = ArrayPrototypeSlice.call(this.spawnargs, 1);
- this.emit("error", err);
- } else {
- this.emit("exit", this.exitCode, this.signalCode);
- }
-
- // If any of the stdio streams have not been touched,
- // then pull all the data through so that it can get the
- // eof and emit a 'close' event.
- // Do it on nextTick so that the user has one last chance
- // to consume the output, if for example they only want to
- // start reading the data once the process exits.
- process.nextTick(flushStdio, this);
-
- this.#maybeClose();
- this.#exited = true;
- this.#stdioOptions = ["destroyed", "destroyed", "destroyed"];
- }
-
- #getBunSpawnIo(i, encoding) {
- if (__DEBUG__ && !this.#handle) {
- if (this.#handle === null) {
- debug("ChildProcess: getBunSpawnIo: this.#handle is null. This means the subprocess already exited");
- } else {
- debug("ChildProcess: getBunSpawnIo: this.#handle is undefined");
- }
- }
- const io = this.#stdioOptions[i];
- switch (i) {
- case 0: {
- switch (io) {
- case "pipe":
- return new NativeWritable(this.#handle.stdin);
- case "inherit":
- return process.stdin || null;
- case "destroyed":
- return new ShimmedStdin();
- default:
- return null;
- }
- }
- case 2:
- case 1: {
- switch (io) {
- case "pipe":
- return ReadableFromWeb(
- this.#handle[fdToStdioName(i)],
- __TRACK_STDIO__
- ? {
- encoding,
- __id: `PARENT_${fdToStdioName(i).toUpperCase()}-${globalThis.__getId()}`,
- }
- : { encoding },
- );
- case "inherit":
- return process[fdToStdioName(i)] || null;
- case "destroyed":
- return new ShimmedStdioOutStream();
- default:
- return null;
- }
- }
- }
- }
-
- #stdin;
- #stdout;
- #stderr;
- #stdioObject;
- #encoding;
- #stdioOptions;
-
- #createStdioObject() {
- return Object.create(null, {
- 0: {
- get: () => this.stdin,
- },
- 1: {
- get: () => this.stdout,
- },
- 2: {
- get: () => this.stderr,
- },
- });
- }
-
- get stdin() {
- return (this.#stdin ??= this.#getBunSpawnIo(0, this.#encoding));
- }
-
- get stdout() {
- return (this.#stdout ??= this.#getBunSpawnIo(1, this.#encoding));
- }
-
- get stderr() {
- return (this.#stderr ??= this.#getBunSpawnIo(2, this.#encoding));
- }
-
- get stdio() {
- return (this.#stdioObject ??= this.#createStdioObject());
- }
-
- spawn(options) {
- validateObject(options, "options");
-
- // validateOneOf(options.serialization, "options.serialization", [
- // undefined,
- // "json",
- // // "advanced", // TODO
- // ]);
- // const serialization = options.serialization || "json";
-
- // if (ipc !== undefined) {
- // // Let child process know about opened IPC channel
- // if (options.envPairs === undefined) options.envPairs = [];
- // else validateArray(options.envPairs, "options.envPairs");
-
- // ArrayPrototypePush.call(options.envPairs, `NODE_CHANNEL_FD=${ipcFd}`);
- // ArrayPrototypePush.call(
- // options.envPairs,
- // `NODE_CHANNEL_SERIALIZATION_MODE=${serialization}`
- // );
- // }
-
- validateString(options.file, "options.file");
- // NOTE: This is confusing... So node allows you to pass a file name
- // But also allows you to pass a command in the args and it should execute
- // To add another layer of confusion, they also give the option to pass an explicit "argv0"
- // which overrides the actual command of the spawned process...
- var file;
- file = this.spawnfile = options.file;
-
- var spawnargs;
- if (options.args == null) {
- spawnargs = this.spawnargs = [];
- } else {
- validateArray(options.args, "options.args");
- spawnargs = this.spawnargs = options.args;
- }
-
- const stdio = options.stdio || ["pipe", "pipe", "pipe"];
- const bunStdio = getBunStdioFromOptions(stdio);
-
- var env = options.envPairs || undefined;
-
- this.#encoding = options.encoding || undefined;
- this.#stdioOptions = bunStdio;
- this.#handle = Bun.spawn({
- cmd: spawnargs,
- stdin: bunStdio[0],
- stdout: bunStdio[1],
- stderr: bunStdio[2],
- cwd: options.cwd || undefined,
- env: env || process.env,
- onExit: (handle, exitCode, signalCode, err) => {
- this.#handle = handle;
- this.pid = this.#handle.pid;
-
- process.nextTick(
- (exitCode, signalCode, err) => this.#handleOnExit(exitCode, signalCode, err),
- exitCode,
- signalCode,
- err,
- );
- },
- lazy: true,
- });
- this.pid = this.#handle.pid;
-
- onSpawnNT(this);
-
- // const ipc = stdio.ipc;
- // const ipcFd = stdio.ipcFd;
- // stdio = options.stdio = stdio.stdio;
-
- // for (i = 0; i < stdio.length; i++) {
- // const stream = stdio[i];
- // if (stream.type === "ignore") continue;
-
- // if (stream.ipc) {
- // this._closesNeeded++;
- // continue;
- // }
-
- // // The stream is already cloned and piped, thus stop its readable side,
- // // otherwise we might attempt to read from the stream when at the same time
- // // the child process does.
- // if (stream.type === "wrap") {
- // stream.handle.reading = false;
- // stream.handle.readStop();
- // stream._stdio.pause();
- // stream._stdio.readableFlowing = false;
- // stream._stdio._readableState.reading = false;
- // stream._stdio[kIsUsedAsStdio] = true;
- // continue;
- // }
-
- // if (stream.handle) {
- // stream.socket = createSocket(
- // this.pid !== 0 ? stream.handle : null,
- // i > 0
- // );
-
- // // Add .send() method and start listening for IPC data
- // if (ipc !== undefined) setupChannel(this, ipc, serialization);
- }
-
- send() {
- console.log("ChildProcess.prototype.send() - Sorry! Not implemented yet");
- }
-
- disconnect() {
- console.log("ChildProcess.prototype.disconnect() - Sorry! Not implemented yet");
- }
-
- kill(sig) {
- const signal = sig === 0 ? sig : convertToValidSignal(sig === undefined ? "SIGTERM" : sig);
-
- if (this.#handle) {
- this.#handle.kill(signal);
- }
-
- this.#maybeClose();
-
- // TODO: Figure out how to make this conform to the Node spec...
- // The problem is that the handle does not report killed until the process exits
- // So we can't return whether or not the process was killed because Bun.spawn seems to handle this async instead of sync like Node does
- // return this.#handle?.killed ?? true;
- return true;
- }
-
- #maybeClose() {
- debug("Attempting to maybe close...");
- this.#closesGot++;
- if (this.#closesGot === this.#closesNeeded) {
- this.emit("close", this.exitCode, this.signalCode);
- }
- }
-
- ref() {
- if (this.#handle) this.#handle.ref();
- }
-
- unref() {
- if (this.#handle) this.#handle.unref();
- }
-}
-
-//------------------------------------------------------------------------------
-// Section 4. ChildProcess helpers
-//------------------------------------------------------------------------------
-const nodeToBunLookup = {
- ignore: null,
- pipe: "pipe",
- overlapped: "pipe", // TODO: this may need to work differently for Windows
- inherit: "inherit",
-};
-
-function nodeToBun(item) {
- // If inherit and we are referencing stdin/stdout/stderr index,
- // we can get the fd from the ReadStream for the corresponding stdio
- if (typeof item === "number") {
- return item;
- } else {
- const result = nodeToBunLookup[item];
- if (result === undefined) throw new Error("Invalid stdio option");
- return result;
- }
-}
-
-function fdToStdioName(fd) {
- switch (fd) {
- case 0:
- return "stdin";
- case 1:
- return "stdout";
- case 2:
- return "stderr";
- default:
- return null;
- }
-}
-
-function getBunStdioFromOptions(stdio) {
- const normalizedStdio = normalizeStdio(stdio);
- // Node options:
- // pipe: just a pipe
- // ipc = can only be one in array
- // overlapped -- same as pipe on Unix based systems
- // inherit -- 'inherit': equivalent to ['inherit', 'inherit', 'inherit'] or [0, 1, 2]
- // ignore -- > /dev/null, more or less same as null option for Bun.spawn stdio
- // TODO: Stream -- use this stream
- // number -- used as FD
- // null, undefined: Use default value. Not same as ignore, which is Bun.spawn null.
- // null/undefined: For stdio fds 0, 1, and 2 (in other words, stdin, stdout, and stderr) a pipe is created. For fd 3 and up, the default is 'ignore'
-
- // Important Bun options
- // pipe
- // fd
- // null - no stdin/stdout/stderr
-
- // Translations: node -> bun
- // pipe -> pipe
- // overlapped -> pipe
- // ignore -> null
- // inherit -> inherit (stdin/stdout/stderr)
- // Stream -> throw err for now
- const bunStdio = normalizedStdio.map(item => nodeToBun(item));
- return bunStdio;
-}
-
-function normalizeStdio(stdio) {
- if (typeof stdio === "string") {
- switch (stdio) {
- case "ignore":
- return ["ignore", "ignore", "ignore"];
- case "pipe":
- return ["pipe", "pipe", "pipe"];
- case "inherit":
- return ["inherit", "inherit", "inherit"];
- default:
- throw new ERR_INVALID_OPT_VALUE("stdio", stdio);
- }
- } else if (ArrayIsArray(stdio)) {
- // Validate if each is a valid stdio type
- // TODO: Support wrapped types here
-
- let processedStdio;
- if (stdio.length === 0) processedStdio = ["pipe", "pipe", "pipe"];
- else if (stdio.length === 1) processedStdio = [stdio[0], "pipe", "pipe"];
- else if (stdio.length === 2) processedStdio = [stdio[0], stdio[1], "pipe"];
- else if (stdio.length >= 3) processedStdio = [stdio[0], stdio[1], stdio[2]];
-
- return processedStdio.map(item => (!item ? "pipe" : item));
- } else {
- throw new ERR_INVALID_OPT_VALUE("stdio", stdio);
- }
-}
-
-function flushStdio(subprocess) {
- const stdio = subprocess.stdio;
- if (stdio == null) return;
-
- for (let i = 0; i < stdio.length; i++) {
- const stream = stdio[i];
- // TODO(addaleax): This doesn't necessarily account for all the ways in
- // which data can be read from a stream, e.g. being consumed on the
- // native layer directly as a StreamBase.
- if (!stream || !stream.readable) {
- continue;
- }
- stream.resume();
- }
-}
-
-function onSpawnNT(self) {
- self.emit("spawn");
-}
-
-function abortChildProcess(child, killSignal) {
- if (!child) return;
- try {
- if (child.kill(killSignal)) {
- child.emit("error", new AbortError());
- }
- } catch (err) {
- child.emit("error", err);
- }
-}
-
-class ShimmedStdin extends EventEmitter {
- constructor() {
- super();
- }
- write() {
- return false;
- }
- destroy() {}
- end() {}
- pipe() {}
-}
-
-class ShimmedStdioOutStream extends EventEmitter {
- pipe() {}
-}
-
-//------------------------------------------------------------------------------
-// Section 5. Validators
-//------------------------------------------------------------------------------
-
-function validateMaxBuffer(maxBuffer) {
- if (maxBuffer != null && !(typeof maxBuffer === "number" && maxBuffer >= 0)) {
- throw new ERR_OUT_OF_RANGE("options.maxBuffer", "a positive number", maxBuffer);
- }
-}
-
-function validateArgumentNullCheck(arg, propName) {
- if (typeof arg === "string" && StringPrototypeIncludes.call(arg, "\u0000")) {
- throw new ERR_INVALID_ARG_VALUE(propName, arg, "must be a string without null bytes");
- }
-}
-
-function validateArgumentsNullCheck(args, propName) {
- for (let i = 0; i < args.length; ++i) {
- validateArgumentNullCheck(args[i], `${propName}[${i}]`);
- }
-}
-
-function validateTimeout(timeout) {
- if (timeout != null && !(NumberIsInteger(timeout) && timeout >= 0)) {
- throw new ERR_OUT_OF_RANGE("timeout", "an unsigned integer", timeout);
- }
-}
-
-function validateBoolean(value, name) {
- if (typeof value !== "boolean") throw new ERR_INVALID_ARG_TYPE(name, "boolean", value);
-}
-
-/**
- * @callback validateFunction
- * @param {*} value
- * @param {string} name
- * @returns {asserts value is Function}
- */
-
-/** @type {validateFunction} */
-function validateFunction(value, name) {
- if (typeof value !== "function") throw new ERR_INVALID_ARG_TYPE(name, "Function", value);
-}
-
-/**
- * @callback validateAbortSignal
- * @param {*} signal
- * @param {string} name
- */
-
-/** @type {validateAbortSignal} */
-const validateAbortSignal = (signal, name) => {
- if (signal !== undefined && (signal === null || typeof signal !== "object" || !("aborted" in signal))) {
- throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
- }
-};
-
-/**
- * @callback validateOneOf
- * @template T
- * @param {T} value
- * @param {string} name
- * @param {T[]} oneOf
- */
-
-/** @type {validateOneOf} */
-const validateOneOf = (value, name, oneOf) => {
- // const validateOneOf = hideStackFrames((value, name, oneOf) => {
- if (!ArrayPrototypeIncludes.call(oneOf, value)) {
- const allowed = ArrayPrototypeJoin.call(
- ArrayPrototypeMap.call(oneOf, v => (typeof v === "string" ? `'${v}'` : String(v))),
- ", ",
- );
- const reason = "must be one of: " + allowed;
- throw new ERR_INVALID_ARG_VALUE(name, value, reason);
- }
-};
-
-/**
- * @callback validateObject
- * @param {*} value
- * @param {string} name
- * @param {{
- * allowArray?: boolean,
- * allowFunction?: boolean,
- * nullable?: boolean
- * }} [options]
- */
-
-/** @type {validateObject} */
-const validateObject = (value, name, options = null) => {
- // const validateObject = hideStackFrames((value, name, options = null) => {
- const allowArray = options?.allowArray ?? false;
- const allowFunction = options?.allowFunction ?? false;
- const nullable = options?.nullable ?? false;
- if (
- (!nullable && value === null) ||
- (!allowArray && ArrayIsArray.call(value)) ||
- (typeof value !== "object" && (!allowFunction || typeof value !== "function"))
- ) {
- throw new ERR_INVALID_ARG_TYPE(name, "object", value);
- }
-};
-
-/**
- * @callback validateArray
- * @param {*} value
- * @param {string} name
- * @param {number} [minLength]
- * @returns {asserts value is any[]}
- */
-
-/** @type {validateArray} */
-const validateArray = (value, name, minLength = 0) => {
- // const validateArray = hideStackFrames((value, name, minLength = 0) => {
- if (!ArrayIsArray(value)) {
- throw new ERR_INVALID_ARG_TYPE(name, "Array", value);
- }
- if (value.length < minLength) {
- const reason = `must be longer than ${minLength}`;
- throw new ERR_INVALID_ARG_VALUE(name, value, reason);
- }
-};
-
-/**
- * @callback validateString
- * @param {*} value
- * @param {string} name
- * @returns {asserts value is string}
- */
-
-/** @type {validateString} */
-function validateString(value, name) {
- if (typeof value !== "string") throw new ERR_INVALID_ARG_TYPE(name, "string", value);
-}
-
-function nullCheck(path, propName, throwError = true) {
- const pathIsString = typeof path === "string";
- const pathIsUint8Array = isUint8Array(path);
-
- // We can only perform meaningful checks on strings and Uint8Arrays.
- if (
- (!pathIsString && !pathIsUint8Array) ||
- (pathIsString && !StringPrototypeIncludes.call(path, "\u0000")) ||
- (pathIsUint8Array && !Uint8ArrayPrototypeIncludes.call(path, 0))
- ) {
- return;
- }
-
- const err = new ERR_INVALID_ARG_VALUE(propName, path, "must be a string or Uint8Array without null bytes");
- if (throwError) {
- throw err;
- }
- return err;
-}
-
-function validatePath(path, propName = "path") {
- if (typeof path !== "string" && !isUint8Array(path)) {
- throw new ERR_INVALID_ARG_TYPE(propName, ["string", "Buffer", "URL"], path);
- }
-
- const err = nullCheck(path, propName, false);
-
- if (err !== undefined) {
- throw err;
- }
-}
-
-function getValidatedPath(fileURLOrPath, propName = "path") {
- const path = toPathIfFileURL(fileURLOrPath);
- validatePath(path, propName);
- return path;
-}
-
-function isUint8Array(value) {
- return typeof value === "object" && value !== null && value instanceof Uint8Array;
-}
-
-//------------------------------------------------------------------------------
-// Section 6. Random utilities
-//------------------------------------------------------------------------------
-
-function isURLInstance(fileURLOrPath) {
- return fileURLOrPath != null && fileURLOrPath.href && fileURLOrPath.origin;
-}
-
-function toPathIfFileURL(fileURLOrPath) {
- if (!isURLInstance(fileURLOrPath)) return fileURLOrPath;
- return Bun.fileURLToPath(fileURLOrPath);
-}
-
-//------------------------------------------------------------------------------
-// Section 7. Node errors / error polyfills
-//------------------------------------------------------------------------------
-var Error = globalThis.Error;
-var TypeError = globalThis.TypeError;
-var RangeError = globalThis.RangeError;
-
-// Node uses a slightly different abort error than standard DOM. See: https://github.com/nodejs/node/blob/main/lib/internal/errors.js
-class AbortError extends Error {
- code = "ABORT_ERR";
- name = "AbortError";
- constructor(message = "The operation was aborted", options = undefined) {
- if (options !== undefined && typeof options !== "object") {
- throw new ERR_INVALID_ARG_TYPE("options", "Object", options);
- }
- super(message, options);
- }
-}
-
-function genericNodeError(message, options) {
- const err = new Error(message);
- err.code = options.code;
- err.killed = options.killed;
- err.signal = options.signal;
- return err;
-}
-
-// const messages = new Map();
-
-// Utility function for registering the error codes. Only used here. Exported
-// *only* to allow for testing.
-// function E(sym, val, def) {
-// messages.set(sym, val);
-// def = makeNodeErrorWithCode(def, sym);
-// errorCodes[sym] = def;
-// }
-
-// function makeNodeErrorWithCode(Base, key) {
-// return function NodeError(...args) {
-// // const limit = Error.stackTraceLimit;
-// // if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;
-// const error = new Base();
-// // Reset the limit and setting the name property.
-// // if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;
-// const message = getMessage(key, args);
-// error.message = message;
-// // captureLargerStackTrace(error);
-// error.code = key;
-// return error;
-// };
-// }
-
-// function getMessage(key, args) {
-// const msgFn = messages.get(key);
-// if (args.length !== msgFn.length)
-// throw new Error(
-// `Invalid number of args for error message ${key}. Got ${args.length}, expected ${msgFn.length}.`
-// );
-// return msgFn(...args);
-// }
-
-// E(
-// "ERR_INVALID_ARG_TYPE",
-// (name, expected, actual) => {
-// assert(typeof name === "string", "'name' must be a string");
-// if (!ArrayIsArray(expected)) {
-// expected = [expected];
-// }
-
-// let msg = "The ";
-// if (StringPrototypeEndsWith(name, " argument")) {
-// // For cases like 'first argument'
-// msg += `${name} `;
-// } else {
-// const type = StringPrototypeIncludes(name, ".") ? "property" : "argument";
-// msg += `"${name}" ${type} `;
-// }
-// msg += "must be ";
-
-// const types = [];
-// const instances = [];
-// const other = [];
-
-// for (const value of expected) {
-// assert(
-// typeof value === "string",
-// "All expected entries have to be of type string"
-// );
-// if (ArrayPrototypeIncludes.call(kTypes, value)) {
-// ArrayPrototypePush(types, StringPrototypeToLowerCase(value));
-// } else if (RegExpPrototypeExec(classRegExp, value) !== null) {
-// ArrayPrototypePush(instances, value);
-// } else {
-// assert(
-// value !== "object",
-// 'The value "object" should be written as "Object"'
-// );
-// ArrayPrototypePush(other, value);
-// }
-// }
-
-// // Special handle `object` in case other instances are allowed to outline
-// // the differences between each other.
-// if (instances.length > 0) {
-// const pos = ArrayPrototypeIndexOf(types, "object");
-// if (pos !== -1) {
-// ArrayPrototypeSplice.call(types, pos, 1);
-// ArrayPrototypePush.call(instances, "Object");
-// }
-// }
-
-// if (types.length > 0) {
-// if (types.length > 2) {
-// const last = ArrayPrototypePop(types);
-// msg += `one of type ${ArrayPrototypeJoin(types, ", ")}, or ${last}`;
-// } else if (types.length === 2) {
-// msg += `one of type ${types[0]} or ${types[1]}`;
-// } else {
-// msg += `of type ${types[0]}`;
-// }
-// if (instances.length > 0 || other.length > 0) msg += " or ";
-// }
-
-// if (instances.length > 0) {
-// if (instances.length > 2) {
-// const last = ArrayPrototypePop(instances);
-// msg += `an instance of ${ArrayPrototypeJoin(
-// instances,
-// ", "
-// )}, or ${last}`;
-// } else {
-// msg += `an instance of ${instances[0]}`;
-// if (instances.length === 2) {
-// msg += ` or ${instances[1]}`;
-// }
-// }
-// if (other.length > 0) msg += " or ";
-// }
-
-// if (other.length > 0) {
-// if (other.length > 2) {
-// const last = ArrayPrototypePop(other);
-// msg += `one of ${ArrayPrototypeJoin.call(other, ", ")}, or ${last}`;
-// } else if (other.length === 2) {
-// msg += `one of ${other[0]} or ${other[1]}`;
-// } else {
-// if (StringPrototypeToLowerCase(other[0]) !== other[0]) msg += "an ";
-// msg += `${other[0]}`;
-// }
-// }
-
-// msg += `. Received ${determineSpecificType(actual)}`;
-
-// return msg;
-// },
-// TypeError
-// );
-
-function ERR_OUT_OF_RANGE(str, range, input, replaceDefaultBoolean = false) {
- // Node implementation:
- // assert(range, 'Missing "range" argument');
- // let msg = replaceDefaultBoolean
- // ? str
- // : `The value of "${str}" is out of range.`;
- // let received;
- // if (NumberIsInteger(input) && MathAbs(input) > 2 ** 32) {
- // received = addNumericalSeparator(String(input));
- // } else if (typeof input === "bigint") {
- // received = String(input);
- // if (input > 2n ** 32n || input < -(2n ** 32n)) {
- // received = addNumericalSeparator(received);
- // }
- // received += "n";
- // } else {
- // received = lazyInternalUtilInspect().inspect(input);
- // }
- // msg += ` It must be ${range}. Received ${received}`;
- // return new RangeError(msg);
- return new RangeError(`The value of ${str} is out of range. It must be ${range}. Received ${input}`);
-}
-
-function ERR_CHILD_PROCESS_STDIO_MAXBUFFER(stdio) {
- return Error(`${stdio} maxBuffer length exceeded`);
-}
-
-function ERR_UNKNOWN_SIGNAL(name) {
- const err = new TypeError(`Unknown signal: ${name}`);
- err.code = "ERR_UNKNOWN_SIGNAL";
- return err;
-}
-
-function ERR_INVALID_ARG_TYPE(name, type, value) {
- const err = new TypeError(`The "${name}" argument must be of type ${type}. Received ${value}`);
- err.code = "ERR_INVALID_ARG_TYPE";
- return err;
-}
-
-function ERR_INVALID_OPT_VALUE(name, value) {
- return new TypeError(`The value "${value}" is invalid for option "${name}"`);
-}
-
-function ERR_INVALID_ARG_VALUE(name, value, reason) {
- return new Error(`The value "${value}" is invalid for argument '${name}'. Reason: ${reason}`);
-}
-
-class SystemError extends Error {
- path;
- syscall;
- errno;
- code;
- constructor(message, path, syscall, errno, code) {
- super(message);
- this.path = path;
- this.syscall = syscall;
- this.errno = errno;
- this.code = code;
- }
-
- get name() {
- return "SystemError";
- }
-}
-
-export default {
- ChildProcess,
- spawn,
- execFile,
- exec,
- fork,
- spawnSync,
- execFileSync,
- execSync,
-
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/cluster.exports.js b/src/bun.js/cluster.exports.js
deleted file mode 100644
index 201310dd5..000000000
--- a/src/bun.js/cluster.exports.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// This is a stub
-// We leave it in here to provide a better error message
-// TODO: implement node cluster
-const { EventEmitter } = import.meta.require("node:events");
-class TODO extends Error {
- constructor(
- message = "node:cluster is not implemented yet in Bun. Track the status: https://github.com/oven-sh/bun/issues/2428",
- ) {
- super(message);
- this.name = "TODO";
- }
-}
-
-export var SCHED_NONE = 0,
- SCHED_RR = 1,
- Worker,
- schedulingPolicy = 2,
- isWorker = false,
- isPrimary = true,
- isMaster = true,
- cluster;
-
-Worker = function Worker() {
- throw new TODO("Worker is not implemented yet in Bun");
-};
-
-// TODO: is it okay for this to be a class?
-class Cluster extends EventEmitter {
- static isWorker = false;
- static isPrimary = true;
- static isMaster = true;
-
- static Worker = Worker;
-
- fork() {
- throw new TODO();
- }
-
- disconnect() {
- throw new TODO();
- }
-
- setupMaster() {
- throw new TODO();
- }
-
- settings = {};
- workers = {};
- SCHED_NONE = 0;
- SCHED_RR = 1;
- schedulingPolicy = 2;
- [Symbol.for("CommonJS")] = 0;
-}
-
-cluster = new Cluster();
-
-export { cluster as default };
diff --git a/src/bun.js/crypto.exports.js b/src/bun.js/crypto.exports.js
deleted file mode 100644
index a7848eb37..000000000
--- a/src/bun.js/crypto.exports.js
+++ /dev/null
@@ -1,23894 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf,
- __hasOwnProp = Object.prototype.hasOwnProperty;
-
-const MAX_STRING_LENGTH = 536870888;
-
-var __require = id => import.meta.require(id);
-const crypto = globalThis.crypto;
-const globalCrypto = crypto;
-
-var __esm = (fn, res) =>
- function () {
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])((fn = 0))), res;
- };
-var __commonJS = (cb, mod) =>
- function () {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-var __export = (target, all) => {
- for (var name in all) __defProp(target, name, { get: all[name], enumerable: !0 });
- },
- __copyProps = (to, from, except, desc) => {
- if ((from && typeof from == "object") || typeof from == "function")
- for (let key of __getOwnPropNames(from))
- !__hasOwnProp.call(to, key) &&
- key !== except &&
- __defProp(to, key, {
- get: () => from[key],
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
- });
- return to;
- },
- __reExport = (target, mod, secondTarget) => (
- __copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")
- ),
- __toESM = (mod, isNodeMode, target) => (
- (target = mod != null ? __create(__getProtoOf(mod)) : {}),
- __copyProps(
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
- mod,
- )
- );
-
-// node_modules/safe-buffer/index.js
-var require_safe_buffer = __commonJS({
- "node_modules/safe-buffer/index.js"(exports, module) {
- var buffer = __require("buffer"),
- Buffer2 = buffer.Buffer;
- function copyProps(src, dst) {
- for (var key in src) dst[key] = src[key];
- }
- Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow
- ? (module.exports = buffer)
- : (copyProps(buffer, exports), (exports.Buffer = SafeBuffer));
- function SafeBuffer(arg, encodingOrOffset, length) {
- return Buffer2(arg, encodingOrOffset, length);
- }
- SafeBuffer.prototype = Object.create(Buffer2.prototype);
- copyProps(Buffer2, SafeBuffer);
- SafeBuffer.from = function (arg, encodingOrOffset, length) {
- if (typeof arg == "number") throw new TypeError("Argument must not be a number");
- return Buffer2(arg, encodingOrOffset, length);
- };
- SafeBuffer.alloc = function (size, fill, encoding) {
- if (typeof size != "number") throw new TypeError("Argument must be a number");
- var buf = Buffer2(size);
- return (
- fill !== void 0 ? (typeof encoding == "string" ? buf.fill(fill, encoding) : buf.fill(fill)) : buf.fill(0), buf
- );
- };
- SafeBuffer.allocUnsafe = function (size) {
- if (typeof size != "number") throw new TypeError("Argument must be a number");
- return Buffer2(size);
- };
- SafeBuffer.allocUnsafeSlow = function (size) {
- if (typeof size != "number") throw new TypeError("Argument must be a number");
- return buffer.SlowBuffer(size);
- };
- },
-});
-
-// node_modules/randombytes/browser.js
-var require_browser = __commonJS({
- "node_modules/randombytes/browser.js"(exports, module) {
- "use strict";
- var MAX_BYTES = 65536,
- MAX_UINT32 = 4294967295;
- function oldBrowser() {
- throw new Error(`Secure random number generation is not supported by this browser.
-Use Chrome, Firefox or Internet Explorer 11`);
- }
- var Buffer2 = require_safe_buffer().Buffer,
- crypto2 = globalCrypto;
- crypto2 && crypto2.getRandomValues ? (module.exports = randomBytes) : (module.exports = oldBrowser);
- function randomBytes(size, cb) {
- if (size > MAX_UINT32) throw new RangeError("requested too many random bytes");
- var bytes = Buffer2.allocUnsafe(size);
- if (size > 0)
- if (size > MAX_BYTES)
- for (var generated = 0; generated < size; generated += MAX_BYTES)
- crypto2.getRandomValues(bytes.slice(generated, generated + MAX_BYTES));
- else crypto2.getRandomValues(bytes);
- return typeof cb == "function"
- ? process.nextTick(function () {
- cb(null, bytes);
- })
- : bytes;
- }
- },
-});
-
-// node_modules/inherits/inherits_browser.js
-var require_inherits_browser = __commonJS({
- "node_modules/inherits/inherits_browser.js"(exports, module) {
- typeof Object.create == "function"
- ? (module.exports = function (ctor, superCtor) {
- superCtor &&
- ((ctor.super_ = superCtor),
- (ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: !1,
- writable: !0,
- configurable: !0,
- },
- })));
- })
- : (module.exports = function (ctor, superCtor) {
- if (superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- (TempCtor.prototype = superCtor.prototype),
- (ctor.prototype = new TempCtor()),
- (ctor.prototype.constructor = ctor);
- }
- });
- },
-});
-
-// node_modules/hash-base/index.js
-var require_hash_base = __commonJS({
- "node_modules/hash-base/index.js"(exports, module) {
- "use strict";
- var Buffer2 = require_safe_buffer().Buffer,
- Transform = __require("readable-stream").Transform,
- inherits = require_inherits_browser();
- function throwIfNotStringOrBuffer(val, prefix) {
- if (!Buffer2.isBuffer(val) && typeof val != "string")
- throw new TypeError(prefix + " must be a string or a buffer");
- }
- function HashBase(blockSize) {
- Transform.call(this),
- (this._block = Buffer2.allocUnsafe(blockSize)),
- (this._blockSize = blockSize),
- (this._blockOffset = 0),
- (this._length = [0, 0, 0, 0]),
- (this._finalized = !1);
- }
- inherits(HashBase, Transform);
- HashBase.prototype._transform = function (chunk, encoding, callback) {
- var error = null;
- try {
- this.update(chunk, encoding);
- } catch (err) {
- error = err;
- }
- callback(error);
- };
- HashBase.prototype._flush = function (callback) {
- var error = null;
- try {
- this.push(this.digest());
- } catch (err) {
- error = err;
- }
- callback(error);
- };
- HashBase.prototype.update = function (data, encoding) {
- if ((throwIfNotStringOrBuffer(data, "Data"), this._finalized)) throw new Error("Digest already called");
- Buffer2.isBuffer(data) || (data = Buffer2.from(data, encoding));
- for (var block = this._block, offset = 0; this._blockOffset + data.length - offset >= this._blockSize; ) {
- for (var i = this._blockOffset; i < this._blockSize; ) block[i++] = data[offset++];
- this._update(), (this._blockOffset = 0);
- }
- for (; offset < data.length; ) block[this._blockOffset++] = data[offset++];
- for (var j = 0, carry = data.length * 8; carry > 0; ++j)
- (this._length[j] += carry),
- (carry = (this._length[j] / 4294967296) | 0),
- carry > 0 && (this._length[j] -= 4294967296 * carry);
- return this;
- };
- HashBase.prototype._update = function () {
- throw new Error("_update is not implemented");
- };
- HashBase.prototype.digest = function (encoding) {
- if (this._finalized) throw new Error("Digest already called");
- this._finalized = !0;
- var digest = this._digest();
- encoding !== void 0 && (digest = digest.toString(encoding)), this._block.fill(0), (this._blockOffset = 0);
- for (var i = 0; i < 4; ++i) this._length[i] = 0;
- return digest;
- };
- HashBase.prototype._digest = function () {
- throw new Error("_digest is not implemented");
- };
- module.exports = HashBase;
- },
-});
-
-// node_modules/md5.js/index.js
-var require_md5 = __commonJS({
- "node_modules/md5.js/index.js"(exports, module) {
- "use strict";
- var inherits = require_inherits_browser(),
- HashBase = require_hash_base(),
- Buffer2 = require_safe_buffer().Buffer,
- ARRAY16 = new Array(16);
- function MD5() {
- HashBase.call(this, 64),
- (this._a = 1732584193),
- (this._b = 4023233417),
- (this._c = 2562383102),
- (this._d = 271733878);
- }
- inherits(MD5, HashBase);
- MD5.prototype._update = function () {
- for (var M = ARRAY16, i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4);
- var a = this._a,
- b = this._b,
- c = this._c,
- d = this._d;
- (a = fnF(a, b, c, d, M[0], 3614090360, 7)),
- (d = fnF(d, a, b, c, M[1], 3905402710, 12)),
- (c = fnF(c, d, a, b, M[2], 606105819, 17)),
- (b = fnF(b, c, d, a, M[3], 3250441966, 22)),
- (a = fnF(a, b, c, d, M[4], 4118548399, 7)),
- (d = fnF(d, a, b, c, M[5], 1200080426, 12)),
- (c = fnF(c, d, a, b, M[6], 2821735955, 17)),
- (b = fnF(b, c, d, a, M[7], 4249261313, 22)),
- (a = fnF(a, b, c, d, M[8], 1770035416, 7)),
- (d = fnF(d, a, b, c, M[9], 2336552879, 12)),
- (c = fnF(c, d, a, b, M[10], 4294925233, 17)),
- (b = fnF(b, c, d, a, M[11], 2304563134, 22)),
- (a = fnF(a, b, c, d, M[12], 1804603682, 7)),
- (d = fnF(d, a, b, c, M[13], 4254626195, 12)),
- (c = fnF(c, d, a, b, M[14], 2792965006, 17)),
- (b = fnF(b, c, d, a, M[15], 1236535329, 22)),
- (a = fnG(a, b, c, d, M[1], 4129170786, 5)),
- (d = fnG(d, a, b, c, M[6], 3225465664, 9)),
- (c = fnG(c, d, a, b, M[11], 643717713, 14)),
- (b = fnG(b, c, d, a, M[0], 3921069994, 20)),
- (a = fnG(a, b, c, d, M[5], 3593408605, 5)),
- (d = fnG(d, a, b, c, M[10], 38016083, 9)),
- (c = fnG(c, d, a, b, M[15], 3634488961, 14)),
- (b = fnG(b, c, d, a, M[4], 3889429448, 20)),
- (a = fnG(a, b, c, d, M[9], 568446438, 5)),
- (d = fnG(d, a, b, c, M[14], 3275163606, 9)),
- (c = fnG(c, d, a, b, M[3], 4107603335, 14)),
- (b = fnG(b, c, d, a, M[8], 1163531501, 20)),
- (a = fnG(a, b, c, d, M[13], 2850285829, 5)),
- (d = fnG(d, a, b, c, M[2], 4243563512, 9)),
- (c = fnG(c, d, a, b, M[7], 1735328473, 14)),
- (b = fnG(b, c, d, a, M[12], 2368359562, 20)),
- (a = fnH(a, b, c, d, M[5], 4294588738, 4)),
- (d = fnH(d, a, b, c, M[8], 2272392833, 11)),
- (c = fnH(c, d, a, b, M[11], 1839030562, 16)),
- (b = fnH(b, c, d, a, M[14], 4259657740, 23)),
- (a = fnH(a, b, c, d, M[1], 2763975236, 4)),
- (d = fnH(d, a, b, c, M[4], 1272893353, 11)),
- (c = fnH(c, d, a, b, M[7], 4139469664, 16)),
- (b = fnH(b, c, d, a, M[10], 3200236656, 23)),
- (a = fnH(a, b, c, d, M[13], 681279174, 4)),
- (d = fnH(d, a, b, c, M[0], 3936430074, 11)),
- (c = fnH(c, d, a, b, M[3], 3572445317, 16)),
- (b = fnH(b, c, d, a, M[6], 76029189, 23)),
- (a = fnH(a, b, c, d, M[9], 3654602809, 4)),
- (d = fnH(d, a, b, c, M[12], 3873151461, 11)),
- (c = fnH(c, d, a, b, M[15], 530742520, 16)),
- (b = fnH(b, c, d, a, M[2], 3299628645, 23)),
- (a = fnI(a, b, c, d, M[0], 4096336452, 6)),
- (d = fnI(d, a, b, c, M[7], 1126891415, 10)),
- (c = fnI(c, d, a, b, M[14], 2878612391, 15)),
- (b = fnI(b, c, d, a, M[5], 4237533241, 21)),
- (a = fnI(a, b, c, d, M[12], 1700485571, 6)),
- (d = fnI(d, a, b, c, M[3], 2399980690, 10)),
- (c = fnI(c, d, a, b, M[10], 4293915773, 15)),
- (b = fnI(b, c, d, a, M[1], 2240044497, 21)),
- (a = fnI(a, b, c, d, M[8], 1873313359, 6)),
- (d = fnI(d, a, b, c, M[15], 4264355552, 10)),
- (c = fnI(c, d, a, b, M[6], 2734768916, 15)),
- (b = fnI(b, c, d, a, M[13], 1309151649, 21)),
- (a = fnI(a, b, c, d, M[4], 4149444226, 6)),
- (d = fnI(d, a, b, c, M[11], 3174756917, 10)),
- (c = fnI(c, d, a, b, M[2], 718787259, 15)),
- (b = fnI(b, c, d, a, M[9], 3951481745, 21)),
- (this._a = (this._a + a) | 0),
- (this._b = (this._b + b) | 0),
- (this._c = (this._c + c) | 0),
- (this._d = (this._d + d) | 0);
- };
- MD5.prototype._digest = function () {
- (this._block[this._blockOffset++] = 128),
- this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), (this._blockOffset = 0)),
- this._block.fill(0, this._blockOffset, 56),
- this._block.writeUInt32LE(this._length[0], 56),
- this._block.writeUInt32LE(this._length[1], 60),
- this._update();
- var buffer = Buffer2.allocUnsafe(16);
- return (
- buffer.writeInt32LE(this._a, 0),
- buffer.writeInt32LE(this._b, 4),
- buffer.writeInt32LE(this._c, 8),
- buffer.writeInt32LE(this._d, 12),
- buffer
- );
- };
- function rotl(x, n) {
- return (x << n) | (x >>> (32 - n));
- }
- function fnF(a, b, c, d, m, k, s) {
- return (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + b) | 0;
- }
- function fnG(a, b, c, d, m, k, s) {
- return (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + b) | 0;
- }
- function fnH(a, b, c, d, m, k, s) {
- return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0;
- }
- function fnI(a, b, c, d, m, k, s) {
- return (rotl((a + (c ^ (b | ~d)) + m + k) | 0, s) + b) | 0;
- }
- module.exports = MD5;
- },
-});
-
-// node_modules/ripemd160/index.js
-var require_ripemd160 = __commonJS({
- "node_modules/ripemd160/index.js"(exports, module) {
- "use strict";
- var Buffer2 = __require("buffer").Buffer,
- inherits = require_inherits_browser(),
- HashBase = require_hash_base(),
- ARRAY16 = new Array(16),
- zl = [
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3,
- 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0,
- 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13,
- ],
- zr = [
- 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15,
- 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15,
- 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11,
- ],
- sl = [
- 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
- 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
- 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6,
- ],
- sr = [
- 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
- 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
- 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11,
- ],
- hl = [0, 1518500249, 1859775393, 2400959708, 2840853838],
- hr = [1352829926, 1548603684, 1836072691, 2053994217, 0];
- function RIPEMD160() {
- HashBase.call(this, 64),
- (this._a = 1732584193),
- (this._b = 4023233417),
- (this._c = 2562383102),
- (this._d = 271733878),
- (this._e = 3285377520);
- }
- inherits(RIPEMD160, HashBase);
- RIPEMD160.prototype._update = function () {
- for (var words = ARRAY16, j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4);
- for (
- var al = this._a | 0,
- bl = this._b | 0,
- cl = this._c | 0,
- dl = this._d | 0,
- el = this._e | 0,
- ar = this._a | 0,
- br = this._b | 0,
- cr = this._c | 0,
- dr = this._d | 0,
- er = this._e | 0,
- i = 0;
- i < 80;
- i += 1
- ) {
- var tl, tr;
- i < 16
- ? ((tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])),
- (tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])))
- : i < 32
- ? ((tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])),
- (tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])))
- : i < 48
- ? ((tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])),
- (tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])))
- : i < 64
- ? ((tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])),
- (tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])))
- : ((tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])),
- (tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]))),
- (al = el),
- (el = dl),
- (dl = rotl(cl, 10)),
- (cl = bl),
- (bl = tl),
- (ar = er),
- (er = dr),
- (dr = rotl(cr, 10)),
- (cr = br),
- (br = tr);
- }
- var t = (this._b + cl + dr) | 0;
- (this._b = (this._c + dl + er) | 0),
- (this._c = (this._d + el + ar) | 0),
- (this._d = (this._e + al + br) | 0),
- (this._e = (this._a + bl + cr) | 0),
- (this._a = t);
- };
- RIPEMD160.prototype._digest = function () {
- (this._block[this._blockOffset++] = 128),
- this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), (this._blockOffset = 0)),
- this._block.fill(0, this._blockOffset, 56),
- this._block.writeUInt32LE(this._length[0], 56),
- this._block.writeUInt32LE(this._length[1], 60),
- this._update();
- var buffer = Buffer2.alloc ? Buffer2.alloc(20) : new Buffer2(20);
- return (
- buffer.writeInt32LE(this._a, 0),
- buffer.writeInt32LE(this._b, 4),
- buffer.writeInt32LE(this._c, 8),
- buffer.writeInt32LE(this._d, 12),
- buffer.writeInt32LE(this._e, 16),
- buffer
- );
- };
- function rotl(x, n) {
- return (x << n) | (x >>> (32 - n));
- }
- function fn1(a, b, c, d, e, m, k, s) {
- return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0;
- }
- function fn2(a, b, c, d, e, m, k, s) {
- return (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0;
- }
- function fn3(a, b, c, d, e, m, k, s) {
- return (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0;
- }
- function fn4(a, b, c, d, e, m, k, s) {
- return (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0;
- }
- function fn5(a, b, c, d, e, m, k, s) {
- return (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0;
- }
- module.exports = RIPEMD160;
- },
-});
-
-// node_modules/sha.js/hash.js
-var require_hash = __commonJS({
- "node_modules/sha.js/hash.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer;
- function Hash(blockSize, finalSize) {
- (this._block = Buffer2.alloc(blockSize)),
- (this._finalSize = finalSize),
- (this._blockSize = blockSize),
- (this._len = 0);
- }
- Hash.prototype.update = function (data, enc) {
- typeof data == "string" && ((enc = enc || "utf8"), (data = Buffer2.from(data, enc)));
- for (
- var block = this._block, blockSize = this._blockSize, length = data.length, accum = this._len, offset = 0;
- offset < length;
-
- ) {
- for (
- var assigned = accum % blockSize, remainder = Math.min(length - offset, blockSize - assigned), i = 0;
- i < remainder;
- i++
- )
- block[assigned + i] = data[offset + i];
- (accum += remainder), (offset += remainder), accum % blockSize === 0 && this._update(block);
- }
- return (this._len += length), this;
- };
- Hash.prototype.digest = function (enc) {
- var rem = this._len % this._blockSize;
- (this._block[rem] = 128),
- this._block.fill(0, rem + 1),
- rem >= this._finalSize && (this._update(this._block), this._block.fill(0));
- var bits = this._len * 8;
- if (bits <= 4294967295) this._block.writeUInt32BE(bits, this._blockSize - 4);
- else {
- var lowBits = (bits & 4294967295) >>> 0,
- highBits = (bits - lowBits) / 4294967296;
- this._block.writeUInt32BE(highBits, this._blockSize - 8),
- this._block.writeUInt32BE(lowBits, this._blockSize - 4);
- }
- this._update(this._block);
- var hash = this._hash();
- return enc ? hash.toString(enc) : hash;
- };
- Hash.prototype._update = function () {
- throw new Error("_update must be implemented by subclass");
- };
- module.exports = Hash;
- },
-});
-
-// node_modules/sha.js/sha.js
-var require_sha = __commonJS({
- "node_modules/sha.js/sha.js"(exports, module) {
- var inherits = require_inherits_browser(),
- Hash = require_hash(),
- Buffer2 = require_safe_buffer().Buffer,
- K = [1518500249, 1859775393, -1894007588, -899497514],
- W = new Array(80);
- function Sha() {
- this.init(), (this._w = W), Hash.call(this, 64, 56);
- }
- inherits(Sha, Hash);
- Sha.prototype.init = function () {
- return (
- (this._a = 1732584193),
- (this._b = 4023233417),
- (this._c = 2562383102),
- (this._d = 271733878),
- (this._e = 3285377520),
- this
- );
- };
- function rotl5(num) {
- return (num << 5) | (num >>> 27);
- }
- function rotl30(num) {
- return (num << 30) | (num >>> 2);
- }
- function ft(s, b, c, d) {
- return s === 0 ? (b & c) | (~b & d) : s === 2 ? (b & c) | (b & d) | (c & d) : b ^ c ^ d;
- }
- Sha.prototype._update = function (M) {
- for (
- var W2 = this._w, a = this._a | 0, b = this._b | 0, c = this._c | 0, d = this._d | 0, e = this._e | 0, i = 0;
- i < 16;
- ++i
- )
- W2[i] = M.readInt32BE(i * 4);
- for (; i < 80; ++i) W2[i] = W2[i - 3] ^ W2[i - 8] ^ W2[i - 14] ^ W2[i - 16];
- for (var j = 0; j < 80; ++j) {
- var s = ~~(j / 20),
- t = (rotl5(a) + ft(s, b, c, d) + e + W2[j] + K[s]) | 0;
- (e = d), (d = c), (c = rotl30(b)), (b = a), (a = t);
- }
- (this._a = (a + this._a) | 0),
- (this._b = (b + this._b) | 0),
- (this._c = (c + this._c) | 0),
- (this._d = (d + this._d) | 0),
- (this._e = (e + this._e) | 0);
- };
- Sha.prototype._hash = function () {
- var H = Buffer2.allocUnsafe(20);
- return (
- H.writeInt32BE(this._a | 0, 0),
- H.writeInt32BE(this._b | 0, 4),
- H.writeInt32BE(this._c | 0, 8),
- H.writeInt32BE(this._d | 0, 12),
- H.writeInt32BE(this._e | 0, 16),
- H
- );
- };
- module.exports = Sha;
- },
-});
-
-// node_modules/sha.js/sha1.js
-var require_sha1 = __commonJS({
- "node_modules/sha.js/sha1.js"(exports, module) {
- var inherits = require_inherits_browser(),
- Hash = require_hash(),
- Buffer2 = require_safe_buffer().Buffer,
- K = [1518500249, 1859775393, -1894007588, -899497514],
- W = new Array(80);
- function Sha1() {
- this.init(), (this._w = W), Hash.call(this, 64, 56);
- }
- inherits(Sha1, Hash);
- Sha1.prototype.init = function () {
- return (
- (this._a = 1732584193),
- (this._b = 4023233417),
- (this._c = 2562383102),
- (this._d = 271733878),
- (this._e = 3285377520),
- this
- );
- };
- function rotl1(num) {
- return (num << 1) | (num >>> 31);
- }
- function rotl5(num) {
- return (num << 5) | (num >>> 27);
- }
- function rotl30(num) {
- return (num << 30) | (num >>> 2);
- }
- function ft(s, b, c, d) {
- return s === 0 ? (b & c) | (~b & d) : s === 2 ? (b & c) | (b & d) | (c & d) : b ^ c ^ d;
- }
- Sha1.prototype._update = function (M) {
- for (
- var W2 = this._w, a = this._a | 0, b = this._b | 0, c = this._c | 0, d = this._d | 0, e = this._e | 0, i = 0;
- i < 16;
- ++i
- )
- W2[i] = M.readInt32BE(i * 4);
- for (; i < 80; ++i) W2[i] = rotl1(W2[i - 3] ^ W2[i - 8] ^ W2[i - 14] ^ W2[i - 16]);
- for (var j = 0; j < 80; ++j) {
- var s = ~~(j / 20),
- t = (rotl5(a) + ft(s, b, c, d) + e + W2[j] + K[s]) | 0;
- (e = d), (d = c), (c = rotl30(b)), (b = a), (a = t);
- }
- (this._a = (a + this._a) | 0),
- (this._b = (b + this._b) | 0),
- (this._c = (c + this._c) | 0),
- (this._d = (d + this._d) | 0),
- (this._e = (e + this._e) | 0);
- };
- Sha1.prototype._hash = function () {
- var H = Buffer2.allocUnsafe(20);
- return (
- H.writeInt32BE(this._a | 0, 0),
- H.writeInt32BE(this._b | 0, 4),
- H.writeInt32BE(this._c | 0, 8),
- H.writeInt32BE(this._d | 0, 12),
- H.writeInt32BE(this._e | 0, 16),
- H
- );
- };
- module.exports = Sha1;
- },
-});
-
-// node_modules/sha.js/sha256.js
-var require_sha256 = __commonJS({
- "node_modules/sha.js/sha256.js"(exports, module) {
- var inherits = require_inherits_browser(),
- Hash = require_hash(),
- Buffer2 = require_safe_buffer().Buffer,
- K = [
- 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080,
- 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774,
- 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808,
- 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291,
- 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817,
- 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218,
- 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479,
- 3329325298,
- ],
- W = new Array(64);
- function Sha256() {
- this.init(), (this._w = W), Hash.call(this, 64, 56);
- }
- inherits(Sha256, Hash);
- Sha256.prototype.init = function () {
- return (
- (this._a = 1779033703),
- (this._b = 3144134277),
- (this._c = 1013904242),
- (this._d = 2773480762),
- (this._e = 1359893119),
- (this._f = 2600822924),
- (this._g = 528734635),
- (this._h = 1541459225),
- this
- );
- };
- function ch(x, y, z) {
- return z ^ (x & (y ^ z));
- }
- function maj(x, y, z) {
- return (x & y) | (z & (x | y));
- }
- function sigma0(x) {
- return ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10));
- }
- function sigma1(x) {
- return ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7));
- }
- function gamma0(x) {
- return ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3);
- }
- function gamma1(x) {
- return ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10);
- }
- Sha256.prototype._update = function (M) {
- for (
- var W2 = this._w,
- a = this._a | 0,
- b = this._b | 0,
- c = this._c | 0,
- d = this._d | 0,
- e = this._e | 0,
- f = this._f | 0,
- g = this._g | 0,
- h = this._h | 0,
- i = 0;
- i < 16;
- ++i
- )
- W2[i] = M.readInt32BE(i * 4);
- for (; i < 64; ++i) W2[i] = (gamma1(W2[i - 2]) + W2[i - 7] + gamma0(W2[i - 15]) + W2[i - 16]) | 0;
- for (var j = 0; j < 64; ++j) {
- var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W2[j]) | 0,
- T2 = (sigma0(a) + maj(a, b, c)) | 0;
- (h = g), (g = f), (f = e), (e = (d + T1) | 0), (d = c), (c = b), (b = a), (a = (T1 + T2) | 0);
- }
- (this._a = (a + this._a) | 0),
- (this._b = (b + this._b) | 0),
- (this._c = (c + this._c) | 0),
- (this._d = (d + this._d) | 0),
- (this._e = (e + this._e) | 0),
- (this._f = (f + this._f) | 0),
- (this._g = (g + this._g) | 0),
- (this._h = (h + this._h) | 0);
- };
- Sha256.prototype._hash = function () {
- var H = Buffer2.allocUnsafe(32);
- return (
- H.writeInt32BE(this._a, 0),
- H.writeInt32BE(this._b, 4),
- H.writeInt32BE(this._c, 8),
- H.writeInt32BE(this._d, 12),
- H.writeInt32BE(this._e, 16),
- H.writeInt32BE(this._f, 20),
- H.writeInt32BE(this._g, 24),
- H.writeInt32BE(this._h, 28),
- H
- );
- };
- module.exports = Sha256;
- },
-});
-
-// node_modules/sha.js/sha224.js
-var require_sha224 = __commonJS({
- "node_modules/sha.js/sha224.js"(exports, module) {
- var inherits = require_inherits_browser(),
- Sha256 = require_sha256(),
- Hash = require_hash(),
- Buffer2 = require_safe_buffer().Buffer,
- W = new Array(64);
- function Sha224() {
- this.init(), (this._w = W), Hash.call(this, 64, 56);
- }
- inherits(Sha224, Sha256);
- Sha224.prototype.init = function () {
- return (
- (this._a = 3238371032),
- (this._b = 914150663),
- (this._c = 812702999),
- (this._d = 4144912697),
- (this._e = 4290775857),
- (this._f = 1750603025),
- (this._g = 1694076839),
- (this._h = 3204075428),
- this
- );
- };
- Sha224.prototype._hash = function () {
- var H = Buffer2.allocUnsafe(28);
- return (
- H.writeInt32BE(this._a, 0),
- H.writeInt32BE(this._b, 4),
- H.writeInt32BE(this._c, 8),
- H.writeInt32BE(this._d, 12),
- H.writeInt32BE(this._e, 16),
- H.writeInt32BE(this._f, 20),
- H.writeInt32BE(this._g, 24),
- H
- );
- };
- module.exports = Sha224;
- },
-});
-
-// node_modules/sha.js/sha512.js
-var require_sha512 = __commonJS({
- "node_modules/sha.js/sha512.js"(exports, module) {
- var inherits = require_inherits_browser(),
- Hash = require_hash(),
- Buffer2 = require_safe_buffer().Buffer,
- K = [
- 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163,
- 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394,
- 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206,
- 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139,
- 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692,
- 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879,
- 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895,
- 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823,
- 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921,
- 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344,
- 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616,
- 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403,
- 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452,
- 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573,
- 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271,
- 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315,
- 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470,
- 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591,
- ],
- W = new Array(160);
- function Sha512() {
- this.init(), (this._w = W), Hash.call(this, 128, 112);
- }
- inherits(Sha512, Hash);
- Sha512.prototype.init = function () {
- return (
- (this._ah = 1779033703),
- (this._bh = 3144134277),
- (this._ch = 1013904242),
- (this._dh = 2773480762),
- (this._eh = 1359893119),
- (this._fh = 2600822924),
- (this._gh = 528734635),
- (this._hh = 1541459225),
- (this._al = 4089235720),
- (this._bl = 2227873595),
- (this._cl = 4271175723),
- (this._dl = 1595750129),
- (this._el = 2917565137),
- (this._fl = 725511199),
- (this._gl = 4215389547),
- (this._hl = 327033209),
- this
- );
- };
- function Ch(x, y, z) {
- return z ^ (x & (y ^ z));
- }
- function maj(x, y, z) {
- return (x & y) | (z & (x | y));
- }
- function sigma0(x, xl) {
- return ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25));
- }
- function sigma1(x, xl) {
- return ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23));
- }
- function Gamma0(x, xl) {
- return ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7);
- }
- function Gamma0l(x, xl) {
- return ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25));
- }
- function Gamma1(x, xl) {
- return ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6);
- }
- function Gamma1l(x, xl) {
- return ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26));
- }
- function getCarry(a, b) {
- return a >>> 0 < b >>> 0 ? 1 : 0;
- }
- Sha512.prototype._update = function (M) {
- for (
- var W2 = this._w,
- ah = this._ah | 0,
- bh = this._bh | 0,
- ch = this._ch | 0,
- dh = this._dh | 0,
- eh = this._eh | 0,
- fh = this._fh | 0,
- gh = this._gh | 0,
- hh = this._hh | 0,
- al = this._al | 0,
- bl = this._bl | 0,
- cl = this._cl | 0,
- dl = this._dl | 0,
- el = this._el | 0,
- fl = this._fl | 0,
- gl = this._gl | 0,
- hl = this._hl | 0,
- i = 0;
- i < 32;
- i += 2
- )
- (W2[i] = M.readInt32BE(i * 4)), (W2[i + 1] = M.readInt32BE(i * 4 + 4));
- for (; i < 160; i += 2) {
- var xh = W2[i - 30],
- xl = W2[i - 15 * 2 + 1],
- gamma0 = Gamma0(xh, xl),
- gamma0l = Gamma0l(xl, xh);
- (xh = W2[i - 2 * 2]), (xl = W2[i - 2 * 2 + 1]);
- var gamma1 = Gamma1(xh, xl),
- gamma1l = Gamma1l(xl, xh),
- Wi7h = W2[i - 7 * 2],
- Wi7l = W2[i - 7 * 2 + 1],
- Wi16h = W2[i - 16 * 2],
- Wi16l = W2[i - 16 * 2 + 1],
- Wil = (gamma0l + Wi7l) | 0,
- Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0;
- (Wil = (Wil + gamma1l) | 0),
- (Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0),
- (Wil = (Wil + Wi16l) | 0),
- (Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0),
- (W2[i] = Wih),
- (W2[i + 1] = Wil);
- }
- for (var j = 0; j < 160; j += 2) {
- (Wih = W2[j]), (Wil = W2[j + 1]);
- var majh = maj(ah, bh, ch),
- majl = maj(al, bl, cl),
- sigma0h = sigma0(ah, al),
- sigma0l = sigma0(al, ah),
- sigma1h = sigma1(eh, el),
- sigma1l = sigma1(el, eh),
- Kih = K[j],
- Kil = K[j + 1],
- chh = Ch(eh, fh, gh),
- chl = Ch(el, fl, gl),
- t1l = (hl + sigma1l) | 0,
- t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0;
- (t1l = (t1l + chl) | 0),
- (t1h = (t1h + chh + getCarry(t1l, chl)) | 0),
- (t1l = (t1l + Kil) | 0),
- (t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0),
- (t1l = (t1l + Wil) | 0),
- (t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0);
- var t2l = (sigma0l + majl) | 0,
- t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0;
- (hh = gh),
- (hl = gl),
- (gh = fh),
- (gl = fl),
- (fh = eh),
- (fl = el),
- (el = (dl + t1l) | 0),
- (eh = (dh + t1h + getCarry(el, dl)) | 0),
- (dh = ch),
- (dl = cl),
- (ch = bh),
- (cl = bl),
- (bh = ah),
- (bl = al),
- (al = (t1l + t2l) | 0),
- (ah = (t1h + t2h + getCarry(al, t1l)) | 0);
- }
- (this._al = (this._al + al) | 0),
- (this._bl = (this._bl + bl) | 0),
- (this._cl = (this._cl + cl) | 0),
- (this._dl = (this._dl + dl) | 0),
- (this._el = (this._el + el) | 0),
- (this._fl = (this._fl + fl) | 0),
- (this._gl = (this._gl + gl) | 0),
- (this._hl = (this._hl + hl) | 0),
- (this._ah = (this._ah + ah + getCarry(this._al, al)) | 0),
- (this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0),
- (this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0),
- (this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0),
- (this._eh = (this._eh + eh + getCarry(this._el, el)) | 0),
- (this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0),
- (this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0),
- (this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0);
- };
- Sha512.prototype._hash = function () {
- var H = Buffer2.allocUnsafe(64);
- function writeInt64BE(h, l, offset) {
- H.writeInt32BE(h, offset), H.writeInt32BE(l, offset + 4);
- }
- return (
- writeInt64BE(this._ah, this._al, 0),
- writeInt64BE(this._bh, this._bl, 8),
- writeInt64BE(this._ch, this._cl, 16),
- writeInt64BE(this._dh, this._dl, 24),
- writeInt64BE(this._eh, this._el, 32),
- writeInt64BE(this._fh, this._fl, 40),
- writeInt64BE(this._gh, this._gl, 48),
- writeInt64BE(this._hh, this._hl, 56),
- H
- );
- };
- module.exports = Sha512;
- },
-});
-
-// node_modules/sha.js/sha384.js
-var require_sha384 = __commonJS({
- "node_modules/sha.js/sha384.js"(exports, module) {
- var inherits = require_inherits_browser(),
- SHA512 = require_sha512(),
- Hash = require_hash(),
- Buffer2 = require_safe_buffer().Buffer,
- W = new Array(160);
- function Sha384() {
- this.init(), (this._w = W), Hash.call(this, 128, 112);
- }
- inherits(Sha384, SHA512);
- Sha384.prototype.init = function () {
- return (
- (this._ah = 3418070365),
- (this._bh = 1654270250),
- (this._ch = 2438529370),
- (this._dh = 355462360),
- (this._eh = 1731405415),
- (this._fh = 2394180231),
- (this._gh = 3675008525),
- (this._hh = 1203062813),
- (this._al = 3238371032),
- (this._bl = 914150663),
- (this._cl = 812702999),
- (this._dl = 4144912697),
- (this._el = 4290775857),
- (this._fl = 1750603025),
- (this._gl = 1694076839),
- (this._hl = 3204075428),
- this
- );
- };
- Sha384.prototype._hash = function () {
- var H = Buffer2.allocUnsafe(48);
- function writeInt64BE(h, l, offset) {
- H.writeInt32BE(h, offset), H.writeInt32BE(l, offset + 4);
- }
- return (
- writeInt64BE(this._ah, this._al, 0),
- writeInt64BE(this._bh, this._bl, 8),
- writeInt64BE(this._ch, this._cl, 16),
- writeInt64BE(this._dh, this._dl, 24),
- writeInt64BE(this._eh, this._el, 32),
- writeInt64BE(this._fh, this._fl, 40),
- H
- );
- };
- module.exports = Sha384;
- },
-});
-
-// node_modules/sha.js/index.js
-var require_sha2 = __commonJS({
- "node_modules/sha.js/index.js"(exports, module) {
- var exports = (module.exports = function (algorithm) {
- algorithm = algorithm.toLowerCase();
- var Algorithm = exports[algorithm];
- if (!Algorithm) throw new Error(algorithm + " is not supported (we accept pull requests)");
- return new Algorithm();
- });
- exports.sha = require_sha();
- exports.sha1 = require_sha1();
- exports.sha224 = require_sha224();
- exports.sha256 = require_sha256();
- exports.sha384 = require_sha384();
- exports.sha512 = require_sha512();
- },
-});
-
-// stream.js
-var stream_exports = import.meta.require("node:stream");
-
-// node_modules/cipher-base/index.js
-var require_cipher_base = __commonJS({
- "node_modules/cipher-base/index.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer,
- Transform = stream_exports.Transform,
- StringDecoder = __require("string_decoder").StringDecoder,
- inherits = require_inherits_browser();
- function CipherBase(hashMode) {
- Transform.call(this),
- (this.hashMode = typeof hashMode == "string"),
- this.hashMode ? (this[hashMode] = this._finalOrDigest) : (this.final = this._finalOrDigest),
- this._final && ((this.__final = this._final), (this._final = null)),
- (this._decoder = null),
- (this._encoding = null);
- }
- inherits(CipherBase, Transform);
- CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
- typeof data == "string" && (data = Buffer2.from(data, inputEnc));
- var outData = this._update(data);
- return this.hashMode ? this : (outputEnc && (outData = this._toString(outData, outputEnc)), outData);
- };
- CipherBase.prototype.setAutoPadding = function () {};
- CipherBase.prototype.getAuthTag = function () {
- throw new Error("trying to get auth tag in unsupported state");
- };
- CipherBase.prototype.setAuthTag = function () {
- throw new Error("trying to set auth tag in unsupported state");
- };
- CipherBase.prototype.setAAD = function () {
- throw new Error("trying to set aad in unsupported state");
- };
- CipherBase.prototype._transform = function (data, _, next) {
- var err;
- try {
- this.hashMode ? this._update(data) : this.push(this._update(data));
- } catch (e) {
- err = e;
- } finally {
- next(err);
- }
- };
- CipherBase.prototype._flush = function (done) {
- var err;
- try {
- this.push(this.__final());
- } catch (e) {
- err = e;
- }
- done(err);
- };
- CipherBase.prototype._finalOrDigest = function (outputEnc) {
- var outData = this.__final() || Buffer2.alloc(0);
- return outputEnc && (outData = this._toString(outData, outputEnc, !0)), outData;
- };
- CipherBase.prototype._toString = function (value, enc, fin) {
- if ((this._decoder || ((this._decoder = new StringDecoder(enc)), (this._encoding = enc)), this._encoding !== enc))
- throw new Error("can't switch encodings");
- var out = this._decoder.write(value);
- return fin && (out += this._decoder.end()), out;
- };
- module.exports = CipherBase;
- },
-});
-
-// node_modules/create-hash/browser.js
-var require_browser2 = __commonJS({
- "node_modules/create-hash/browser.js"(exports, module) {
- ("use strict");
- const { Transform } = stream_exports;
-
- // does not become a node stream unless you create it into one
- const LazyHash = function Hash(algorithm, options) {
- this._options = options;
- this._hasher = new CryptoHasher(algorithm, options);
- this._finalized = false;
- };
- LazyHash.prototype = Object.create(Transform.prototype);
- LazyHash.prototype.update = function update(data, encoding) {
- this._checkFinalized();
- this._hasher.update(data, encoding);
- return this;
- };
- LazyHash.prototype.digest = function update(data, encoding) {
- this._checkFinalized();
- this._finalized = true;
- return this._hasher.digest(data, encoding);
- };
- LazyHash.prototype._checkFinalized = function _checkFinalized() {
- if (this._finalized) {
- var err = new Error("Digest already called");
- err.code = "ERR_CRYPTO_HASH_FINALIZED";
- throw err;
- }
- };
- LazyHash.prototype.copy = function copy() {
- const copy = Object.create(LazyHash.prototype);
- copy._options = this._options;
- copy._hasher = this._hasher.copy();
- copy._finalized = this._finalized;
- return copy;
- };
-
- const lazyHashFullInitProto = {
- __proto__: Transform.prototype,
- ...LazyHash.prototype,
- _transform(data, encoding, callback) {
- this.update(data, encoding);
- callback && callback();
- },
- _flush(callback) {
- this.push(this.digest());
- callback();
- },
- };
-
- const triggerMethods = [
- "_events",
- "_eventsCount",
- "_final",
- "_maxListeners",
- "_maxListeners",
- "_read",
- "_undestroy",
- "_writableState",
- "_write",
- "_writev",
- "addListener",
- "asIndexedPairs",
- "closed",
- "compose",
- "constructor",
- "cork",
- "destroy",
- "destroyed",
- "drop",
- "emit",
- "end",
- "errored",
- "eventNames",
- "every",
- "filter",
- "find",
- "flatMap",
- "forEach",
- "getMaxListeners",
- "hasOwnProperty",
- "isPaused",
- "isPrototypeOf",
- "iterator",
- "listenerCount",
- "listeners",
- "map",
- "off",
- "on",
- "once",
- "pause",
- "pipe",
- "prependListener",
- "prependOnceListener",
- "propertyIsEnumerable",
- "push",
- "rawListeners",
- "read",
- "readable",
- "readableAborted",
- "readableBuffer",
- "readableDidRead",
- "readableEncoding",
- "readableEnded",
- "readableFlowing",
- "readableHighWaterMark",
- "readableLength",
- "readableObjectMode",
- "reduce",
- "removeAllListeners",
- "removeListener",
- "resume",
- "setDefaultEncoding",
- "setEncoding",
- "setMaxListeners",
- "some",
- "take",
- "toArray",
- "toLocaleString",
- "toString",
- "uncork",
- "unpipe",
- "unshift",
- "valueOf",
- "wrap",
- "writable",
- "writableBuffer",
- "writableCorked",
- "writableEnded",
- "writableFinished",
- "writableHighWaterMark",
- "writableLength",
- "writableNeedDrain",
- "writableObjectMode",
- "write",
- ];
- for (const method of triggerMethods) {
- Object.defineProperty(LazyHash.prototype, method, {
- get() {
- Object.setPrototypeOf(this, lazyHashFullInitProto);
- Transform.call(this, this._options);
- return this[method];
- },
- enumerable: false,
- configurable: true,
- });
- }
-
- module.exports = function createHash(algorithm) {
- return new LazyHash(algorithm);
- };
-
- module.exports.createHash = module.exports;
- module.exports.Hash = LazyHash;
- },
-});
-
-// node_modules/create-hmac/legacy.js
-var require_legacy = __commonJS({
- "node_modules/create-hmac/legacy.js"(exports, module) {
- "use strict";
- var inherits = require_inherits_browser(),
- Buffer2 = require_safe_buffer().Buffer,
- Base = require_cipher_base(),
- ZEROS = Buffer2.alloc(128),
- blocksize = 64;
- function Hmac(alg, key) {
- Base.call(this, "digest"),
- typeof key == "string" && (key = Buffer2.from(key)),
- (this._alg = alg),
- (this._key = key),
- key.length > blocksize
- ? (key = alg(key))
- : key.length < blocksize && (key = Buffer2.concat([key, ZEROS], blocksize));
- for (
- var ipad = (this._ipad = Buffer2.allocUnsafe(blocksize)),
- opad = (this._opad = Buffer2.allocUnsafe(blocksize)),
- i = 0;
- i < blocksize;
- i++
- )
- (ipad[i] = key[i] ^ 54), (opad[i] = key[i] ^ 92);
- this._hash = [ipad];
- }
- inherits(Hmac, Base);
- Hmac.prototype._update = function (data) {
- this._hash.push(data);
- };
- Hmac.prototype._final = function () {
- var h = this._alg(Buffer2.concat(this._hash));
- return this._alg(Buffer2.concat([this._opad, h]));
- };
- module.exports = Hmac;
- },
-});
-
-// node_modules/create-hash/md5.js
-var require_md52 = __commonJS({
- "node_modules/create-hash/md5.js"(exports, module) {
- var MD5 = require_md5();
- module.exports = function (buffer) {
- return new MD5().update(buffer).digest();
- };
- },
-});
-
-// node_modules/create-hmac/browser.js
-var require_browser3 = __commonJS({
- "node_modules/create-hmac/browser.js"(exports, module) {
- "use strict";
- var inherits = require_inherits_browser(),
- Legacy = require_legacy(),
- Base = require_cipher_base(),
- Buffer2 = require_safe_buffer().Buffer,
- md5 = require_md52(),
- RIPEMD160 = require_ripemd160(),
- sha = require_sha2(),
- ZEROS = Buffer2.alloc(128);
- function Hmac(alg, key) {
- Base.call(this, "digest"), typeof key == "string" && (key = Buffer2.from(key));
- var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64;
- if (((this._alg = alg), (this._key = key), key.length > blocksize)) {
- var hash = alg === "rmd160" ? new RIPEMD160() : sha(alg);
- key = hash.update(key).digest();
- } else key.length < blocksize && (key = Buffer2.concat([key, ZEROS], blocksize));
- for (
- var ipad = (this._ipad = Buffer2.allocUnsafe(blocksize)),
- opad = (this._opad = Buffer2.allocUnsafe(blocksize)),
- i = 0;
- i < blocksize;
- i++
- )
- (ipad[i] = key[i] ^ 54), (opad[i] = key[i] ^ 92);
- (this._hash = alg === "rmd160" ? new RIPEMD160() : sha(alg)), this._hash.update(ipad);
- }
- inherits(Hmac, Base);
- Hmac.prototype._update = function (data) {
- this._hash.update(data);
- };
- Hmac.prototype._final = function () {
- var h = this._hash.digest(),
- hash = this._alg === "rmd160" ? new RIPEMD160() : sha(this._alg);
- return hash.update(this._opad).update(h).digest();
- };
- module.exports = function (alg, key) {
- return (
- (alg = alg.toLowerCase()),
- alg === "rmd160" || alg === "ripemd160"
- ? new Hmac("rmd160", key)
- : alg === "md5"
- ? new Legacy(md5, key)
- : new Hmac(alg, key)
- );
- };
- },
-});
-
-// node_modules/browserify-sign/browser/algorithms.json
-var require_algorithms = __commonJS({
- "node_modules/browserify-sign/browser/algorithms.json"(exports, module) {
- module.exports = {
- sha224WithRSAEncryption: {
- sign: "rsa",
- hash: "sha224",
- id: "302d300d06096086480165030402040500041c",
- },
- "RSA-SHA224": {
- sign: "ecdsa/rsa",
- hash: "sha224",
- id: "302d300d06096086480165030402040500041c",
- },
- sha256WithRSAEncryption: {
- sign: "rsa",
- hash: "sha256",
- id: "3031300d060960864801650304020105000420",
- },
- "RSA-SHA256": {
- sign: "ecdsa/rsa",
- hash: "sha256",
- id: "3031300d060960864801650304020105000420",
- },
- sha384WithRSAEncryption: {
- sign: "rsa",
- hash: "sha384",
- id: "3041300d060960864801650304020205000430",
- },
- "RSA-SHA384": {
- sign: "ecdsa/rsa",
- hash: "sha384",
- id: "3041300d060960864801650304020205000430",
- },
- sha512WithRSAEncryption: {
- sign: "rsa",
- hash: "sha512",
- id: "3051300d060960864801650304020305000440",
- },
- "RSA-SHA512": {
- sign: "ecdsa/rsa",
- hash: "sha512",
- id: "3051300d060960864801650304020305000440",
- },
- "RSA-SHA1": {
- sign: "rsa",
- hash: "sha1",
- id: "3021300906052b0e03021a05000414",
- },
- "ecdsa-with-SHA1": {
- sign: "ecdsa",
- hash: "sha1",
- id: "",
- },
- sha256: {
- sign: "ecdsa",
- hash: "sha256",
- id: "",
- },
- sha224: {
- sign: "ecdsa",
- hash: "sha224",
- id: "",
- },
- sha384: {
- sign: "ecdsa",
- hash: "sha384",
- id: "",
- },
- sha512: {
- sign: "ecdsa",
- hash: "sha512",
- id: "",
- },
- "DSA-SHA": {
- sign: "dsa",
- hash: "sha1",
- id: "",
- },
- "DSA-SHA1": {
- sign: "dsa",
- hash: "sha1",
- id: "",
- },
- DSA: {
- sign: "dsa",
- hash: "sha1",
- id: "",
- },
- "DSA-WITH-SHA224": {
- sign: "dsa",
- hash: "sha224",
- id: "",
- },
- "DSA-SHA224": {
- sign: "dsa",
- hash: "sha224",
- id: "",
- },
- "DSA-WITH-SHA256": {
- sign: "dsa",
- hash: "sha256",
- id: "",
- },
- "DSA-SHA256": {
- sign: "dsa",
- hash: "sha256",
- id: "",
- },
- "DSA-WITH-SHA384": {
- sign: "dsa",
- hash: "sha384",
- id: "",
- },
- "DSA-SHA384": {
- sign: "dsa",
- hash: "sha384",
- id: "",
- },
- "DSA-WITH-SHA512": {
- sign: "dsa",
- hash: "sha512",
- id: "",
- },
- "DSA-SHA512": {
- sign: "dsa",
- hash: "sha512",
- id: "",
- },
- "DSA-RIPEMD160": {
- sign: "dsa",
- hash: "rmd160",
- id: "",
- },
- ripemd160WithRSA: {
- sign: "rsa",
- hash: "rmd160",
- id: "3021300906052b2403020105000414",
- },
- "RSA-RIPEMD160": {
- sign: "rsa",
- hash: "rmd160",
- id: "3021300906052b2403020105000414",
- },
- md5WithRSAEncryption: {
- sign: "rsa",
- hash: "md5",
- id: "3020300c06082a864886f70d020505000410",
- },
- "RSA-MD5": {
- sign: "rsa",
- hash: "md5",
- id: "3020300c06082a864886f70d020505000410",
- },
- };
- },
-});
-
-// node_modules/browserify-sign/algos.js
-var require_algos = __commonJS({
- "node_modules/browserify-sign/algos.js"(exports, module) {
- module.exports = require_algorithms();
- },
-});
-
-// node_modules/pbkdf2/lib/precondition.js
-var require_precondition = __commonJS({
- "node_modules/pbkdf2/lib/precondition.js"(exports, module) {
- var MAX_ALLOC = Math.pow(2, 30) - 1;
- module.exports = function (iterations, keylen) {
- if (typeof iterations != "number") throw new TypeError("Iterations not a number");
- if (iterations < 0) throw new TypeError("Bad iterations");
- if (typeof keylen != "number") throw new TypeError("Key length not a number");
- if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) throw new TypeError("Bad key length");
- };
- },
-});
-
-// node_modules/pbkdf2/lib/default-encoding.js
-var require_default_encoding = __commonJS({
- "node_modules/pbkdf2/lib/default-encoding.js"(exports, module) {
- var defaultEncoding;
- global.process && global.process.browser
- ? (defaultEncoding = "utf-8")
- : global.process && global.process.version
- ? ((pVersionMajor = parseInt(process.version.split(".")[0].slice(1), 10)),
- (defaultEncoding = pVersionMajor >= 6 ? "utf-8" : "binary"))
- : (defaultEncoding = "utf-8");
- var pVersionMajor;
- module.exports = defaultEncoding;
- },
-});
-
-// node_modules/pbkdf2/lib/to-buffer.js
-var require_to_buffer = __commonJS({
- "node_modules/pbkdf2/lib/to-buffer.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer;
- module.exports = function (thing, encoding, name) {
- if (Buffer2.isBuffer(thing)) return thing;
- if (typeof thing == "string") return Buffer2.from(thing, encoding);
- if (ArrayBuffer.isView(thing)) return Buffer2.from(thing.buffer);
- throw new TypeError(name + " must be a string, a Buffer, a typed array or a DataView");
- };
- },
-});
-
-// node_modules/pbkdf2/lib/sync-browser.js
-var require_sync_browser = __commonJS({
- "node_modules/pbkdf2/lib/sync-browser.js"(exports, module) {
- var md5 = require_md52(),
- RIPEMD160 = require_ripemd160(),
- sha = require_sha2(),
- Buffer2 = require_safe_buffer().Buffer,
- checkParameters = require_precondition(),
- defaultEncoding = require_default_encoding(),
- toBuffer = require_to_buffer(),
- ZEROS = Buffer2.alloc(128),
- sizes = {
- md5: 16,
- sha1: 20,
- sha224: 28,
- sha256: 32,
- sha384: 48,
- sha512: 64,
- rmd160: 20,
- ripemd160: 20,
- };
- function Hmac(alg, key, saltLen) {
- var hash = getDigest(alg),
- blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64;
- key.length > blocksize
- ? (key = hash(key))
- : key.length < blocksize && (key = Buffer2.concat([key, ZEROS], blocksize));
- for (
- var ipad = Buffer2.allocUnsafe(blocksize + sizes[alg]),
- opad = Buffer2.allocUnsafe(blocksize + sizes[alg]),
- i = 0;
- i < blocksize;
- i++
- )
- (ipad[i] = key[i] ^ 54), (opad[i] = key[i] ^ 92);
- var ipad1 = Buffer2.allocUnsafe(blocksize + saltLen + 4);
- ipad.copy(ipad1, 0, 0, blocksize),
- (this.ipad1 = ipad1),
- (this.ipad2 = ipad),
- (this.opad = opad),
- (this.alg = alg),
- (this.blocksize = blocksize),
- (this.hash = hash),
- (this.size = sizes[alg]);
- }
- Hmac.prototype.run = function (data, ipad) {
- data.copy(ipad, this.blocksize);
- var h = this.hash(ipad);
- return h.copy(this.opad, this.blocksize), this.hash(this.opad);
- };
- function getDigest(alg) {
- function shaFunc(data) {
- return sha(alg).update(data).digest();
- }
- function rmd160Func(data) {
- return new RIPEMD160().update(data).digest();
- }
- return alg === "rmd160" || alg === "ripemd160" ? rmd160Func : alg === "md5" ? md5 : shaFunc;
- }
- function pbkdf2(password, salt, iterations, keylen, digest) {
- checkParameters(iterations, keylen),
- (password = toBuffer(password, defaultEncoding, "Password")),
- (salt = toBuffer(salt, defaultEncoding, "Salt")),
- (digest = digest || "sha1");
- var hmac = new Hmac(digest, password, salt.length),
- DK = Buffer2.allocUnsafe(keylen),
- block1 = Buffer2.allocUnsafe(salt.length + 4);
- salt.copy(block1, 0, 0, salt.length);
- for (var destPos = 0, hLen = sizes[digest], l = Math.ceil(keylen / hLen), i = 1; i <= l; i++) {
- block1.writeUInt32BE(i, salt.length);
- for (var T = hmac.run(block1, hmac.ipad1), U = T, j = 1; j < iterations; j++) {
- U = hmac.run(U, hmac.ipad2);
- for (var k = 0; k < hLen; k++) T[k] ^= U[k];
- }
- T.copy(DK, destPos), (destPos += hLen);
- }
- return DK;
- }
- module.exports = pbkdf2;
- },
-});
-
-// node_modules/pbkdf2/lib/async.js
-var require_async = __commonJS({
- "node_modules/pbkdf2/lib/async.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer,
- checkParameters = require_precondition(),
- defaultEncoding = require_default_encoding(),
- sync = require_sync_browser(),
- toBuffer = require_to_buffer(),
- ZERO_BUF,
- subtle = globalCrypto.subtle,
- toBrowser = {
- sha: "SHA-1",
- "sha-1": "SHA-1",
- sha1: "SHA-1",
- sha256: "SHA-256",
- "sha-256": "SHA-256",
- sha384: "SHA-384",
- "sha-384": "SHA-384",
- "sha-512": "SHA-512",
- sha512: "SHA-512",
- },
- checks = [];
- function checkNative(algo) {
- if ((global.process && !global.process.browser) || !subtle || !subtle.importKey || !subtle.deriveBits)
- return Promise.resolve(!1);
- if (checks[algo] !== void 0) return checks[algo];
- ZERO_BUF = ZERO_BUF || Buffer2.alloc(8);
- var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)
- .then(function () {
- return !0;
- })
- .catch(function () {
- return !1;
- });
- return (checks[algo] = prom), prom;
- }
- var nextTick;
- function getNextTick() {
- return (
- nextTick ||
- (global.process && global.process.nextTick
- ? (nextTick = global.process.nextTick)
- : global.queueMicrotask
- ? (nextTick = global.queueMicrotask)
- : global.setImmediate
- ? (nextTick = global.setImmediate)
- : (nextTick = global.setTimeout),
- nextTick)
- );
- }
- function browserPbkdf2(password, salt, iterations, length, algo) {
- return subtle
- .importKey("raw", password, { name: "PBKDF2" }, !1, ["deriveBits"])
- .then(function (key) {
- return subtle.deriveBits(
- {
- name: "PBKDF2",
- salt,
- iterations,
- hash: {
- name: algo,
- },
- },
- key,
- length << 3,
- );
- })
- .then(function (res) {
- return Buffer2.from(res);
- });
- }
- function resolvePromise(promise, callback) {
- promise.then(
- function (out) {
- getNextTick()(function () {
- callback(null, out);
- });
- },
- function (e) {
- getNextTick()(function () {
- callback(e);
- });
- },
- );
- }
- module.exports = function (password, salt, iterations, keylen, digest, callback) {
- typeof digest == "function" && ((callback = digest), (digest = void 0)), (digest = digest || "sha1");
- var algo = toBrowser[digest.toLowerCase()];
- if (!algo || typeof global.Promise != "function") {
- getNextTick()(function () {
- var out;
- try {
- out = sync(password, salt, iterations, keylen, digest);
- } catch (e) {
- return callback(e);
- }
- callback(null, out);
- });
- return;
- }
- if (
- (checkParameters(iterations, keylen),
- (password = toBuffer(password, defaultEncoding, "Password")),
- (salt = toBuffer(salt, defaultEncoding, "Salt")),
- typeof callback != "function")
- )
- throw new Error("No callback provided to pbkdf2");
- resolvePromise(
- checkNative(algo).then(function (resp) {
- return resp
- ? browserPbkdf2(password, salt, iterations, keylen, algo)
- : sync(password, salt, iterations, keylen, digest);
- }),
- callback,
- );
- };
- },
-});
-
-// node_modules/pbkdf2/browser.js
-var require_browser4 = __commonJS({
- "node_modules/pbkdf2/browser.js"(exports) {
- exports.pbkdf2 = require_async();
- exports.pbkdf2Sync = require_sync_browser();
- },
-});
-
-// node_modules/des.js/lib/des/utils.js
-var require_utils = __commonJS({
- "node_modules/des.js/lib/des/utils.js"(exports) {
- "use strict";
- exports.readUInt32BE = function (bytes, off) {
- var res = (bytes[0 + off] << 24) | (bytes[1 + off] << 16) | (bytes[2 + off] << 8) | bytes[3 + off];
- return res >>> 0;
- };
- exports.writeUInt32BE = function (bytes, value, off) {
- (bytes[0 + off] = value >>> 24),
- (bytes[1 + off] = (value >>> 16) & 255),
- (bytes[2 + off] = (value >>> 8) & 255),
- (bytes[3 + off] = value & 255);
- };
- exports.ip = function (inL, inR, out, off) {
- for (var outL = 0, outR = 0, i = 6; i >= 0; i -= 2) {
- for (var j = 0; j <= 24; j += 8) (outL <<= 1), (outL |= (inR >>> (j + i)) & 1);
- for (var j = 0; j <= 24; j += 8) (outL <<= 1), (outL |= (inL >>> (j + i)) & 1);
- }
- for (var i = 6; i >= 0; i -= 2) {
- for (var j = 1; j <= 25; j += 8) (outR <<= 1), (outR |= (inR >>> (j + i)) & 1);
- for (var j = 1; j <= 25; j += 8) (outR <<= 1), (outR |= (inL >>> (j + i)) & 1);
- }
- (out[off + 0] = outL >>> 0), (out[off + 1] = outR >>> 0);
- };
- exports.rip = function (inL, inR, out, off) {
- for (var outL = 0, outR = 0, i = 0; i < 4; i++)
- for (var j = 24; j >= 0; j -= 8)
- (outL <<= 1), (outL |= (inR >>> (j + i)) & 1), (outL <<= 1), (outL |= (inL >>> (j + i)) & 1);
- for (var i = 4; i < 8; i++)
- for (var j = 24; j >= 0; j -= 8)
- (outR <<= 1), (outR |= (inR >>> (j + i)) & 1), (outR <<= 1), (outR |= (inL >>> (j + i)) & 1);
- (out[off + 0] = outL >>> 0), (out[off + 1] = outR >>> 0);
- };
- exports.pc1 = function (inL, inR, out, off) {
- for (var outL = 0, outR = 0, i = 7; i >= 5; i--) {
- for (var j = 0; j <= 24; j += 8) (outL <<= 1), (outL |= (inR >> (j + i)) & 1);
- for (var j = 0; j <= 24; j += 8) (outL <<= 1), (outL |= (inL >> (j + i)) & 1);
- }
- for (var j = 0; j <= 24; j += 8) (outL <<= 1), (outL |= (inR >> (j + i)) & 1);
- for (var i = 1; i <= 3; i++) {
- for (var j = 0; j <= 24; j += 8) (outR <<= 1), (outR |= (inR >> (j + i)) & 1);
- for (var j = 0; j <= 24; j += 8) (outR <<= 1), (outR |= (inL >> (j + i)) & 1);
- }
- for (var j = 0; j <= 24; j += 8) (outR <<= 1), (outR |= (inL >> (j + i)) & 1);
- (out[off + 0] = outL >>> 0), (out[off + 1] = outR >>> 0);
- };
- exports.r28shl = function (num, shift) {
- return ((num << shift) & 268435455) | (num >>> (28 - shift));
- };
- var pc2table = [
- 14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, 15, 4, 25, 19, 9, 1, 26,
- 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24,
- ];
- exports.pc2 = function (inL, inR, out, off) {
- for (var outL = 0, outR = 0, len = pc2table.length >>> 1, i = 0; i < len; i++)
- (outL <<= 1), (outL |= (inL >>> pc2table[i]) & 1);
- for (var i = len; i < pc2table.length; i++) (outR <<= 1), (outR |= (inR >>> pc2table[i]) & 1);
- (out[off + 0] = outL >>> 0), (out[off + 1] = outR >>> 0);
- };
- exports.expand = function (r, out, off) {
- var outL = 0,
- outR = 0;
- outL = ((r & 1) << 5) | (r >>> 27);
- for (var i = 23; i >= 15; i -= 4) (outL <<= 6), (outL |= (r >>> i) & 63);
- for (var i = 11; i >= 3; i -= 4) (outR |= (r >>> i) & 63), (outR <<= 6);
- (outR |= ((r & 31) << 1) | (r >>> 31)), (out[off + 0] = outL >>> 0), (out[off + 1] = outR >>> 0);
- };
- var sTable = [
- 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15,
- 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13,
- 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10,
- 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9,
- 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6,
- 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6,
- 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7,
- 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13,
- 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,
- 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6,
- 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0,
- 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3,
- 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0,
- 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11,
- 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3,
- 3, 5, 5, 6, 8, 11,
- ];
- exports.substitute = function (inL, inR) {
- for (var out = 0, i = 0; i < 4; i++) {
- var b = (inL >>> (18 - i * 6)) & 63,
- sb = sTable[i * 64 + b];
- (out <<= 4), (out |= sb);
- }
- for (var i = 0; i < 4; i++) {
- var b = (inR >>> (18 - i * 6)) & 63,
- sb = sTable[4 * 64 + i * 64 + b];
- (out <<= 4), (out |= sb);
- }
- return out >>> 0;
- };
- var permuteTable = [
- 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28,
- 7,
- ];
- exports.permute = function (num) {
- for (var out = 0, i = 0; i < permuteTable.length; i++) (out <<= 1), (out |= (num >>> permuteTable[i]) & 1);
- return out >>> 0;
- };
- exports.padSplit = function (num, size, group) {
- for (var str = num.toString(2); str.length < size; ) str = "0" + str;
- for (var out = [], i = 0; i < size; i += group) out.push(str.slice(i, i + group));
- return out.join(" ");
- };
- },
-});
-
-// node_modules/minimalistic-assert/index.js
-var require_minimalistic_assert = __commonJS({
- "node_modules/minimalistic-assert/index.js"(exports, module) {
- module.exports = assert;
- function assert(val, msg) {
- if (!val) throw new Error(msg || "Assertion failed");
- }
- assert.equal = function (l, r, msg) {
- if (l != r) throw new Error(msg || "Assertion failed: " + l + " != " + r);
- };
- },
-});
-
-// node_modules/des.js/lib/des/cipher.js
-var require_cipher = __commonJS({
- "node_modules/des.js/lib/des/cipher.js"(exports, module) {
- "use strict";
- var assert = require_minimalistic_assert();
- function Cipher(options) {
- (this.options = options),
- (this.type = this.options.type),
- (this.blockSize = 8),
- this._init(),
- (this.buffer = new Array(this.blockSize)),
- (this.bufferOff = 0);
- }
- module.exports = Cipher;
- Cipher.prototype._init = function () {};
- Cipher.prototype.update = function (data) {
- return data.length === 0 ? [] : this.type === "decrypt" ? this._updateDecrypt(data) : this._updateEncrypt(data);
- };
- Cipher.prototype._buffer = function (data, off) {
- for (var min = Math.min(this.buffer.length - this.bufferOff, data.length - off), i = 0; i < min; i++)
- this.buffer[this.bufferOff + i] = data[off + i];
- return (this.bufferOff += min), min;
- };
- Cipher.prototype._flushBuffer = function (out, off) {
- return this._update(this.buffer, 0, out, off), (this.bufferOff = 0), this.blockSize;
- };
- Cipher.prototype._updateEncrypt = function (data) {
- var inputOff = 0,
- outputOff = 0,
- count = ((this.bufferOff + data.length) / this.blockSize) | 0,
- out = new Array(count * this.blockSize);
- this.bufferOff !== 0 &&
- ((inputOff += this._buffer(data, inputOff)),
- this.bufferOff === this.buffer.length && (outputOff += this._flushBuffer(out, outputOff)));
- for (
- var max = data.length - ((data.length - inputOff) % this.blockSize);
- inputOff < max;
- inputOff += this.blockSize
- )
- this._update(data, inputOff, out, outputOff), (outputOff += this.blockSize);
- for (; inputOff < data.length; inputOff++, this.bufferOff++) this.buffer[this.bufferOff] = data[inputOff];
- return out;
- };
- Cipher.prototype._updateDecrypt = function (data) {
- for (
- var inputOff = 0,
- outputOff = 0,
- count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1,
- out = new Array(count * this.blockSize);
- count > 0;
- count--
- )
- (inputOff += this._buffer(data, inputOff)), (outputOff += this._flushBuffer(out, outputOff));
- return (inputOff += this._buffer(data, inputOff)), out;
- };
- Cipher.prototype.final = function (buffer) {
- var first;
- buffer && (first = this.update(buffer));
- var last;
- return (
- this.type === "encrypt" ? (last = this._finalEncrypt()) : (last = this._finalDecrypt()),
- first ? first.concat(last) : last
- );
- };
- Cipher.prototype._pad = function (buffer, off) {
- if (off === 0) return !1;
- for (; off < buffer.length; ) buffer[off++] = 0;
- return !0;
- };
- Cipher.prototype._finalEncrypt = function () {
- if (!this._pad(this.buffer, this.bufferOff)) return [];
- var out = new Array(this.blockSize);
- return this._update(this.buffer, 0, out, 0), out;
- };
- Cipher.prototype._unpad = function (buffer) {
- return buffer;
- };
- Cipher.prototype._finalDecrypt = function () {
- assert.equal(this.bufferOff, this.blockSize, "Not enough data to decrypt");
- var out = new Array(this.blockSize);
- return this._flushBuffer(out, 0), this._unpad(out);
- };
- },
-});
-
-// node_modules/des.js/lib/des/des.js
-var require_des = __commonJS({
- "node_modules/des.js/lib/des/des.js"(exports, module) {
- "use strict";
- var assert = require_minimalistic_assert(),
- inherits = require_inherits_browser(),
- utils = require_utils(),
- Cipher = require_cipher();
- function DESState() {
- (this.tmp = new Array(2)), (this.keys = null);
- }
- function DES(options) {
- Cipher.call(this, options);
- var state = new DESState();
- (this._desState = state), this.deriveKeys(state, options.key);
- }
- inherits(DES, Cipher);
- module.exports = DES;
- DES.create = function (options) {
- return new DES(options);
- };
- var shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1];
- DES.prototype.deriveKeys = function (state, key) {
- (state.keys = new Array(16 * 2)), assert.equal(key.length, this.blockSize, "Invalid key length");
- var kL = utils.readUInt32BE(key, 0),
- kR = utils.readUInt32BE(key, 4);
- utils.pc1(kL, kR, state.tmp, 0), (kL = state.tmp[0]), (kR = state.tmp[1]);
- for (var i = 0; i < state.keys.length; i += 2) {
- var shift = shiftTable[i >>> 1];
- (kL = utils.r28shl(kL, shift)), (kR = utils.r28shl(kR, shift)), utils.pc2(kL, kR, state.keys, i);
- }
- };
- DES.prototype._update = function (inp, inOff, out, outOff) {
- var state = this._desState,
- l = utils.readUInt32BE(inp, inOff),
- r = utils.readUInt32BE(inp, inOff + 4);
- utils.ip(l, r, state.tmp, 0),
- (l = state.tmp[0]),
- (r = state.tmp[1]),
- this.type === "encrypt" ? this._encrypt(state, l, r, state.tmp, 0) : this._decrypt(state, l, r, state.tmp, 0),
- (l = state.tmp[0]),
- (r = state.tmp[1]),
- utils.writeUInt32BE(out, l, outOff),
- utils.writeUInt32BE(out, r, outOff + 4);
- };
- DES.prototype._pad = function (buffer, off) {
- for (var value = buffer.length - off, i = off; i < buffer.length; i++) buffer[i] = value;
- return !0;
- };
- DES.prototype._unpad = function (buffer) {
- for (var pad = buffer[buffer.length - 1], i = buffer.length - pad; i < buffer.length; i++)
- assert.equal(buffer[i], pad);
- return buffer.slice(0, buffer.length - pad);
- };
- DES.prototype._encrypt = function (state, lStart, rStart, out, off) {
- for (var l = lStart, r = rStart, i = 0; i < state.keys.length; i += 2) {
- var keyL = state.keys[i],
- keyR = state.keys[i + 1];
- utils.expand(r, state.tmp, 0), (keyL ^= state.tmp[0]), (keyR ^= state.tmp[1]);
- var s = utils.substitute(keyL, keyR),
- f = utils.permute(s),
- t = r;
- (r = (l ^ f) >>> 0), (l = t);
- }
- utils.rip(r, l, out, off);
- };
- DES.prototype._decrypt = function (state, lStart, rStart, out, off) {
- for (var l = rStart, r = lStart, i = state.keys.length - 2; i >= 0; i -= 2) {
- var keyL = state.keys[i],
- keyR = state.keys[i + 1];
- utils.expand(l, state.tmp, 0), (keyL ^= state.tmp[0]), (keyR ^= state.tmp[1]);
- var s = utils.substitute(keyL, keyR),
- f = utils.permute(s),
- t = l;
- (l = (r ^ f) >>> 0), (r = t);
- }
- utils.rip(l, r, out, off);
- };
- },
-});
-
-// node_modules/des.js/lib/des/cbc.js
-var require_cbc = __commonJS({
- "node_modules/des.js/lib/des/cbc.js"(exports) {
- "use strict";
- var assert = require_minimalistic_assert(),
- inherits = require_inherits_browser(),
- proto = {};
- function CBCState(iv) {
- assert.equal(iv.length, 8, "Invalid IV length"), (this.iv = new Array(8));
- for (var i = 0; i < this.iv.length; i++) this.iv[i] = iv[i];
- }
- function instantiate(Base) {
- function CBC(options) {
- Base.call(this, options), this._cbcInit();
- }
- inherits(CBC, Base);
- for (var keys = Object.keys(proto), i = 0; i < keys.length; i++) {
- var key = keys[i];
- CBC.prototype[key] = proto[key];
- }
- return (
- (CBC.create = function (options) {
- return new CBC(options);
- }),
- CBC
- );
- }
- exports.instantiate = instantiate;
- proto._cbcInit = function () {
- var state = new CBCState(this.options.iv);
- this._cbcState = state;
- };
- proto._update = function (inp, inOff, out, outOff) {
- var state = this._cbcState,
- superProto = this.constructor.super_.prototype,
- iv = state.iv;
- if (this.type === "encrypt") {
- for (var i = 0; i < this.blockSize; i++) iv[i] ^= inp[inOff + i];
- superProto._update.call(this, iv, 0, out, outOff);
- for (var i = 0; i < this.blockSize; i++) iv[i] = out[outOff + i];
- } else {
- superProto._update.call(this, inp, inOff, out, outOff);
- for (var i = 0; i < this.blockSize; i++) out[outOff + i] ^= iv[i];
- for (var i = 0; i < this.blockSize; i++) iv[i] = inp[inOff + i];
- }
- };
- },
-});
-
-// node_modules/des.js/lib/des/ede.js
-var require_ede = __commonJS({
- "node_modules/des.js/lib/des/ede.js"(exports, module) {
- "use strict";
- var assert = require_minimalistic_assert(),
- inherits = require_inherits_browser(),
- Cipher = require_cipher(),
- DES = require_des();
- function EDEState(type, key) {
- assert.equal(key.length, 24, "Invalid key length");
- var k1 = key.slice(0, 8),
- k2 = key.slice(8, 16),
- k3 = key.slice(16, 24);
- type === "encrypt"
- ? (this.ciphers = [
- DES.create({ type: "encrypt", key: k1 }),
- DES.create({ type: "decrypt", key: k2 }),
- DES.create({ type: "encrypt", key: k3 }),
- ])
- : (this.ciphers = [
- DES.create({ type: "decrypt", key: k3 }),
- DES.create({ type: "encrypt", key: k2 }),
- DES.create({ type: "decrypt", key: k1 }),
- ]);
- }
- function EDE(options) {
- Cipher.call(this, options);
- var state = new EDEState(this.type, this.options.key);
- this._edeState = state;
- }
- inherits(EDE, Cipher);
- module.exports = EDE;
- EDE.create = function (options) {
- return new EDE(options);
- };
- EDE.prototype._update = function (inp, inOff, out, outOff) {
- var state = this._edeState;
- state.ciphers[0]._update(inp, inOff, out, outOff),
- state.ciphers[1]._update(out, outOff, out, outOff),
- state.ciphers[2]._update(out, outOff, out, outOff);
- };
- EDE.prototype._pad = DES.prototype._pad;
- EDE.prototype._unpad = DES.prototype._unpad;
- },
-});
-
-// node_modules/des.js/lib/des.js
-var require_des2 = __commonJS({
- "node_modules/des.js/lib/des.js"(exports) {
- "use strict";
- exports.utils = require_utils();
- exports.Cipher = require_cipher();
- exports.DES = require_des();
- exports.CBC = require_cbc();
- exports.EDE = require_ede();
- },
-});
-
-// node_modules/browserify-des/index.js
-var require_browserify_des = __commonJS({
- "node_modules/browserify-des/index.js"(exports, module) {
- var CipherBase = require_cipher_base(),
- des = require_des2(),
- inherits = require_inherits_browser(),
- Buffer2 = require_safe_buffer().Buffer,
- modes = {
- "des-ede3-cbc": des.CBC.instantiate(des.EDE),
- "des-ede3": des.EDE,
- "des-ede-cbc": des.CBC.instantiate(des.EDE),
- "des-ede": des.EDE,
- "des-cbc": des.CBC.instantiate(des.DES),
- "des-ecb": des.DES,
- };
- modes.des = modes["des-cbc"];
- modes.des3 = modes["des-ede3-cbc"];
- module.exports = DES;
- inherits(DES, CipherBase);
- function DES(opts) {
- CipherBase.call(this);
- var modeName = opts.mode.toLowerCase(),
- mode = modes[modeName],
- type;
- opts.decrypt ? (type = "decrypt") : (type = "encrypt");
- var key = opts.key;
- Buffer2.isBuffer(key) || (key = Buffer2.from(key)),
- (modeName === "des-ede" || modeName === "des-ede-cbc") && (key = Buffer2.concat([key, key.slice(0, 8)]));
- var iv = opts.iv;
- Buffer2.isBuffer(iv) || (iv = Buffer2.from(iv)),
- (this._des = mode.create({
- key,
- iv,
- type,
- }));
- }
- DES.prototype._update = function (data) {
- return Buffer2.from(this._des.update(data));
- };
- DES.prototype._final = function () {
- return Buffer2.from(this._des.final());
- };
- },
-});
-
-// node_modules/browserify-aes/modes/ecb.js
-var require_ecb = __commonJS({
- "node_modules/browserify-aes/modes/ecb.js"(exports) {
- exports.encrypt = function (self2, block) {
- return self2._cipher.encryptBlock(block);
- };
- exports.decrypt = function (self2, block) {
- return self2._cipher.decryptBlock(block);
- };
- },
-});
-
-// node_modules/buffer-xor/index.js
-var require_buffer_xor = __commonJS({
- "node_modules/buffer-xor/index.js"(exports, module) {
- module.exports = function (a, b) {
- for (var length = Math.min(a.length, b.length), buffer = new Buffer(length), i = 0; i < length; ++i)
- buffer[i] = a[i] ^ b[i];
- return buffer;
- };
- },
-});
-
-// node_modules/browserify-aes/modes/cbc.js
-var require_cbc2 = __commonJS({
- "node_modules/browserify-aes/modes/cbc.js"(exports) {
- var xor = require_buffer_xor();
- exports.encrypt = function (self2, block) {
- var data = xor(block, self2._prev);
- return (self2._prev = self2._cipher.encryptBlock(data)), self2._prev;
- };
- exports.decrypt = function (self2, block) {
- var pad = self2._prev;
- self2._prev = block;
- var out = self2._cipher.decryptBlock(block);
- return xor(out, pad);
- };
- },
-});
-
-// node_modules/browserify-aes/modes/cfb.js
-var require_cfb = __commonJS({
- "node_modules/browserify-aes/modes/cfb.js"(exports) {
- var Buffer2 = require_safe_buffer().Buffer,
- xor = require_buffer_xor();
- function encryptStart(self2, data, decrypt) {
- var len = data.length,
- out = xor(data, self2._cache);
- return (
- (self2._cache = self2._cache.slice(len)),
- (self2._prev = Buffer2.concat([self2._prev, decrypt ? data : out])),
- out
- );
- }
- exports.encrypt = function (self2, data, decrypt) {
- for (var out = Buffer2.allocUnsafe(0), len; data.length; )
- if (
- (self2._cache.length === 0 &&
- ((self2._cache = self2._cipher.encryptBlock(self2._prev)), (self2._prev = Buffer2.allocUnsafe(0))),
- self2._cache.length <= data.length)
- )
- (len = self2._cache.length),
- (out = Buffer2.concat([out, encryptStart(self2, data.slice(0, len), decrypt)])),
- (data = data.slice(len));
- else {
- out = Buffer2.concat([out, encryptStart(self2, data, decrypt)]);
- break;
- }
- return out;
- };
- },
-});
-
-// node_modules/browserify-aes/modes/cfb8.js
-var require_cfb8 = __commonJS({
- "node_modules/browserify-aes/modes/cfb8.js"(exports) {
- var Buffer2 = require_safe_buffer().Buffer;
- function encryptByte(self2, byteParam, decrypt) {
- var pad = self2._cipher.encryptBlock(self2._prev),
- out = pad[0] ^ byteParam;
- return (self2._prev = Buffer2.concat([self2._prev.slice(1), Buffer2.from([decrypt ? byteParam : out])])), out;
- }
- exports.encrypt = function (self2, chunk, decrypt) {
- for (var len = chunk.length, out = Buffer2.allocUnsafe(len), i = -1; ++i < len; )
- out[i] = encryptByte(self2, chunk[i], decrypt);
- return out;
- };
- },
-});
-
-// node_modules/browserify-aes/modes/cfb1.js
-var require_cfb1 = __commonJS({
- "node_modules/browserify-aes/modes/cfb1.js"(exports) {
- var Buffer2 = require_safe_buffer().Buffer;
- function encryptByte(self2, byteParam, decrypt) {
- for (var pad, i = -1, len = 8, out = 0, bit, value; ++i < len; )
- (pad = self2._cipher.encryptBlock(self2._prev)),
- (bit = byteParam & (1 << (7 - i)) ? 128 : 0),
- (value = pad[0] ^ bit),
- (out += (value & 128) >> i % 8),
- (self2._prev = shiftIn(self2._prev, decrypt ? bit : value));
- return out;
- }
- function shiftIn(buffer, value) {
- var len = buffer.length,
- i = -1,
- out = Buffer2.allocUnsafe(buffer.length);
- for (buffer = Buffer2.concat([buffer, Buffer2.from([value])]); ++i < len; )
- out[i] = (buffer[i] << 1) | (buffer[i + 1] >> 7);
- return out;
- }
- exports.encrypt = function (self2, chunk, decrypt) {
- for (var len = chunk.length, out = Buffer2.allocUnsafe(len), i = -1; ++i < len; )
- out[i] = encryptByte(self2, chunk[i], decrypt);
- return out;
- };
- },
-});
-
-// node_modules/browserify-aes/modes/ofb.js
-var require_ofb = __commonJS({
- "node_modules/browserify-aes/modes/ofb.js"(exports) {
- var xor = require_buffer_xor();
- function getBlock(self2) {
- return (self2._prev = self2._cipher.encryptBlock(self2._prev)), self2._prev;
- }
- exports.encrypt = function (self2, chunk) {
- for (; self2._cache.length < chunk.length; ) self2._cache = Buffer.concat([self2._cache, getBlock(self2)]);
- var pad = self2._cache.slice(0, chunk.length);
- return (self2._cache = self2._cache.slice(chunk.length)), xor(chunk, pad);
- };
- },
-});
-
-// node_modules/browserify-aes/incr32.js
-var require_incr32 = __commonJS({
- "node_modules/browserify-aes/incr32.js"(exports, module) {
- function incr32(iv) {
- for (var len = iv.length, item; len--; )
- if (((item = iv.readUInt8(len)), item === 255)) iv.writeUInt8(0, len);
- else {
- item++, iv.writeUInt8(item, len);
- break;
- }
- }
- module.exports = incr32;
- },
-});
-
-// node_modules/browserify-aes/modes/ctr.js
-var require_ctr = __commonJS({
- "node_modules/browserify-aes/modes/ctr.js"(exports) {
- var xor = require_buffer_xor(),
- Buffer2 = require_safe_buffer().Buffer,
- incr32 = require_incr32();
- function getBlock(self2) {
- var out = self2._cipher.encryptBlockRaw(self2._prev);
- return incr32(self2._prev), out;
- }
- var blockSize = 16;
- exports.encrypt = function (self2, chunk) {
- var chunkNum = Math.ceil(chunk.length / blockSize),
- start = self2._cache.length;
- self2._cache = Buffer2.concat([self2._cache, Buffer2.allocUnsafe(chunkNum * blockSize)]);
- for (var i = 0; i < chunkNum; i++) {
- var out = getBlock(self2),
- offset = start + i * blockSize;
- self2._cache.writeUInt32BE(out[0], offset + 0),
- self2._cache.writeUInt32BE(out[1], offset + 4),
- self2._cache.writeUInt32BE(out[2], offset + 8),
- self2._cache.writeUInt32BE(out[3], offset + 12);
- }
- var pad = self2._cache.slice(0, chunk.length);
- return (self2._cache = self2._cache.slice(chunk.length)), xor(chunk, pad);
- };
- },
-});
-
-// node_modules/browserify-aes/modes/list.json
-var require_list = __commonJS({
- "node_modules/browserify-aes/modes/list.json"(exports, module) {
- module.exports = {
- "aes-128-ecb": {
- cipher: "AES",
- key: 128,
- iv: 0,
- mode: "ECB",
- type: "block",
- },
- "aes-192-ecb": {
- cipher: "AES",
- key: 192,
- iv: 0,
- mode: "ECB",
- type: "block",
- },
- "aes-256-ecb": {
- cipher: "AES",
- key: 256,
- iv: 0,
- mode: "ECB",
- type: "block",
- },
- "aes-128-cbc": {
- cipher: "AES",
- key: 128,
- iv: 16,
- mode: "CBC",
- type: "block",
- },
- "aes-192-cbc": {
- cipher: "AES",
- key: 192,
- iv: 16,
- mode: "CBC",
- type: "block",
- },
- "aes-256-cbc": {
- cipher: "AES",
- key: 256,
- iv: 16,
- mode: "CBC",
- type: "block",
- },
- aes128: {
- cipher: "AES",
- key: 128,
- iv: 16,
- mode: "CBC",
- type: "block",
- },
- aes192: {
- cipher: "AES",
- key: 192,
- iv: 16,
- mode: "CBC",
- type: "block",
- },
- aes256: {
- cipher: "AES",
- key: 256,
- iv: 16,
- mode: "CBC",
- type: "block",
- },
- "aes-128-cfb": {
- cipher: "AES",
- key: 128,
- iv: 16,
- mode: "CFB",
- type: "stream",
- },
- "aes-192-cfb": {
- cipher: "AES",
- key: 192,
- iv: 16,
- mode: "CFB",
- type: "stream",
- },
- "aes-256-cfb": {
- cipher: "AES",
- key: 256,
- iv: 16,
- mode: "CFB",
- type: "stream",
- },
- "aes-128-cfb8": {
- cipher: "AES",
- key: 128,
- iv: 16,
- mode: "CFB8",
- type: "stream",
- },
- "aes-192-cfb8": {
- cipher: "AES",
- key: 192,
- iv: 16,
- mode: "CFB8",
- type: "stream",
- },
- "aes-256-cfb8": {
- cipher: "AES",
- key: 256,
- iv: 16,
- mode: "CFB8",
- type: "stream",
- },
- "aes-128-cfb1": {
- cipher: "AES",
- key: 128,
- iv: 16,
- mode: "CFB1",
- type: "stream",
- },
- "aes-192-cfb1": {
- cipher: "AES",
- key: 192,
- iv: 16,
- mode: "CFB1",
- type: "stream",
- },
- "aes-256-cfb1": {
- cipher: "AES",
- key: 256,
- iv: 16,
- mode: "CFB1",
- type: "stream",
- },
- "aes-128-ofb": {
- cipher: "AES",
- key: 128,
- iv: 16,
- mode: "OFB",
- type: "stream",
- },
- "aes-192-ofb": {
- cipher: "AES",
- key: 192,
- iv: 16,
- mode: "OFB",
- type: "stream",
- },
- "aes-256-ofb": {
- cipher: "AES",
- key: 256,
- iv: 16,
- mode: "OFB",
- type: "stream",
- },
- "aes-128-ctr": {
- cipher: "AES",
- key: 128,
- iv: 16,
- mode: "CTR",
- type: "stream",
- },
- "aes-192-ctr": {
- cipher: "AES",
- key: 192,
- iv: 16,
- mode: "CTR",
- type: "stream",
- },
- "aes-256-ctr": {
- cipher: "AES",
- key: 256,
- iv: 16,
- mode: "CTR",
- type: "stream",
- },
- "aes-128-gcm": {
- cipher: "AES",
- key: 128,
- iv: 12,
- mode: "GCM",
- type: "auth",
- },
- "aes-192-gcm": {
- cipher: "AES",
- key: 192,
- iv: 12,
- mode: "GCM",
- type: "auth",
- },
- "aes-256-gcm": {
- cipher: "AES",
- key: 256,
- iv: 12,
- mode: "GCM",
- type: "auth",
- },
- };
- },
-});
-
-// node_modules/browserify-aes/modes/index.js
-var require_modes = __commonJS({
- "node_modules/browserify-aes/modes/index.js"(exports, module) {
- var modeModules = {
- ECB: require_ecb(),
- CBC: require_cbc2(),
- CFB: require_cfb(),
- CFB8: require_cfb8(),
- CFB1: require_cfb1(),
- OFB: require_ofb(),
- CTR: require_ctr(),
- GCM: require_ctr(),
- },
- modes = require_list();
- for (key in modes) modes[key].module = modeModules[modes[key].mode];
- var key;
- module.exports = modes;
- },
-});
-
-// node_modules/browserify-aes/aes.js
-var require_aes = __commonJS({
- "node_modules/browserify-aes/aes.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer;
- function asUInt32Array(buf) {
- Buffer2.isBuffer(buf) || (buf = Buffer2.from(buf));
- for (var len = (buf.length / 4) | 0, out = new Array(len), i = 0; i < len; i++) out[i] = buf.readUInt32BE(i * 4);
- return out;
- }
- function scrubVec(v) {
- for (var i = 0; i < v.length; v++) v[i] = 0;
- }
- function cryptBlock(M, keySchedule, SUB_MIX, SBOX, nRounds) {
- for (
- var SUB_MIX0 = SUB_MIX[0],
- SUB_MIX1 = SUB_MIX[1],
- SUB_MIX2 = SUB_MIX[2],
- SUB_MIX3 = SUB_MIX[3],
- s0 = M[0] ^ keySchedule[0],
- s1 = M[1] ^ keySchedule[1],
- s2 = M[2] ^ keySchedule[2],
- s3 = M[3] ^ keySchedule[3],
- t0,
- t1,
- t2,
- t3,
- ksRow = 4,
- round = 1;
- round < nRounds;
- round++
- )
- (t0 =
- SUB_MIX0[s0 >>> 24] ^
- SUB_MIX1[(s1 >>> 16) & 255] ^
- SUB_MIX2[(s2 >>> 8) & 255] ^
- SUB_MIX3[s3 & 255] ^
- keySchedule[ksRow++]),
- (t1 =
- SUB_MIX0[s1 >>> 24] ^
- SUB_MIX1[(s2 >>> 16) & 255] ^
- SUB_MIX2[(s3 >>> 8) & 255] ^
- SUB_MIX3[s0 & 255] ^
- keySchedule[ksRow++]),
- (t2 =
- SUB_MIX0[s2 >>> 24] ^
- SUB_MIX1[(s3 >>> 16) & 255] ^
- SUB_MIX2[(s0 >>> 8) & 255] ^
- SUB_MIX3[s1 & 255] ^
- keySchedule[ksRow++]),
- (t3 =
- SUB_MIX0[s3 >>> 24] ^
- SUB_MIX1[(s0 >>> 16) & 255] ^
- SUB_MIX2[(s1 >>> 8) & 255] ^
- SUB_MIX3[s2 & 255] ^
- keySchedule[ksRow++]),
- (s0 = t0),
- (s1 = t1),
- (s2 = t2),
- (s3 = t3);
- return (
- (t0 =
- ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 255] << 16) | (SBOX[(s2 >>> 8) & 255] << 8) | SBOX[s3 & 255]) ^
- keySchedule[ksRow++]),
- (t1 =
- ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 255] << 16) | (SBOX[(s3 >>> 8) & 255] << 8) | SBOX[s0 & 255]) ^
- keySchedule[ksRow++]),
- (t2 =
- ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 255] << 16) | (SBOX[(s0 >>> 8) & 255] << 8) | SBOX[s1 & 255]) ^
- keySchedule[ksRow++]),
- (t3 =
- ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 255] << 16) | (SBOX[(s1 >>> 8) & 255] << 8) | SBOX[s2 & 255]) ^
- keySchedule[ksRow++]),
- (t0 = t0 >>> 0),
- (t1 = t1 >>> 0),
- (t2 = t2 >>> 0),
- (t3 = t3 >>> 0),
- [t0, t1, t2, t3]
- );
- }
- var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],
- G = (function () {
- for (var d = new Array(256), j = 0; j < 256; j++) j < 128 ? (d[j] = j << 1) : (d[j] = (j << 1) ^ 283);
- for (
- var SBOX = [],
- INV_SBOX = [],
- SUB_MIX = [[], [], [], []],
- INV_SUB_MIX = [[], [], [], []],
- x = 0,
- xi = 0,
- i = 0;
- i < 256;
- ++i
- ) {
- var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
- (sx = (sx >>> 8) ^ (sx & 255) ^ 99), (SBOX[x] = sx), (INV_SBOX[sx] = x);
- var x2 = d[x],
- x4 = d[x2],
- x8 = d[x4],
- t = (d[sx] * 257) ^ (sx * 16843008);
- (SUB_MIX[0][x] = (t << 24) | (t >>> 8)),
- (SUB_MIX[1][x] = (t << 16) | (t >>> 16)),
- (SUB_MIX[2][x] = (t << 8) | (t >>> 24)),
- (SUB_MIX[3][x] = t),
- (t = (x8 * 16843009) ^ (x4 * 65537) ^ (x2 * 257) ^ (x * 16843008)),
- (INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)),
- (INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)),
- (INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)),
- (INV_SUB_MIX[3][sx] = t),
- x === 0 ? (x = xi = 1) : ((x = x2 ^ d[d[d[x8 ^ x2]]]), (xi ^= d[d[xi]]));
- }
- return {
- SBOX,
- INV_SBOX,
- SUB_MIX,
- INV_SUB_MIX,
- };
- })();
- function AES(key) {
- (this._key = asUInt32Array(key)), this._reset();
- }
- AES.blockSize = 4 * 4;
- AES.keySize = 256 / 8;
- AES.prototype.blockSize = AES.blockSize;
- AES.prototype.keySize = AES.keySize;
- AES.prototype._reset = function () {
- for (
- var keyWords = this._key,
- keySize = keyWords.length,
- nRounds = keySize + 6,
- ksRows = (nRounds + 1) * 4,
- keySchedule = [],
- k = 0;
- k < keySize;
- k++
- )
- keySchedule[k] = keyWords[k];
- for (k = keySize; k < ksRows; k++) {
- var t = keySchedule[k - 1];
- k % keySize === 0
- ? ((t = (t << 8) | (t >>> 24)),
- (t =
- (G.SBOX[t >>> 24] << 24) |
- (G.SBOX[(t >>> 16) & 255] << 16) |
- (G.SBOX[(t >>> 8) & 255] << 8) |
- G.SBOX[t & 255]),
- (t ^= RCON[(k / keySize) | 0] << 24))
- : keySize > 6 &&
- k % keySize === 4 &&
- (t =
- (G.SBOX[t >>> 24] << 24) |
- (G.SBOX[(t >>> 16) & 255] << 16) |
- (G.SBOX[(t >>> 8) & 255] << 8) |
- G.SBOX[t & 255]),
- (keySchedule[k] = keySchedule[k - keySize] ^ t);
- }
- for (var invKeySchedule = [], ik = 0; ik < ksRows; ik++) {
- var ksR = ksRows - ik,
- tt = keySchedule[ksR - (ik % 4 ? 0 : 4)];
- ik < 4 || ksR <= 4
- ? (invKeySchedule[ik] = tt)
- : (invKeySchedule[ik] =
- G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^
- G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 255]] ^
- G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 255]] ^
- G.INV_SUB_MIX[3][G.SBOX[tt & 255]]);
- }
- (this._nRounds = nRounds), (this._keySchedule = keySchedule), (this._invKeySchedule = invKeySchedule);
- };
- AES.prototype.encryptBlockRaw = function (M) {
- return (M = asUInt32Array(M)), cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds);
- };
- AES.prototype.encryptBlock = function (M) {
- var out = this.encryptBlockRaw(M),
- buf = Buffer2.allocUnsafe(16);
- return (
- buf.writeUInt32BE(out[0], 0),
- buf.writeUInt32BE(out[1], 4),
- buf.writeUInt32BE(out[2], 8),
- buf.writeUInt32BE(out[3], 12),
- buf
- );
- };
- AES.prototype.decryptBlock = function (M) {
- M = asUInt32Array(M);
- var m1 = M[1];
- (M[1] = M[3]), (M[3] = m1);
- var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds),
- buf = Buffer2.allocUnsafe(16);
- return (
- buf.writeUInt32BE(out[0], 0),
- buf.writeUInt32BE(out[3], 4),
- buf.writeUInt32BE(out[2], 8),
- buf.writeUInt32BE(out[1], 12),
- buf
- );
- };
- AES.prototype.scrub = function () {
- scrubVec(this._keySchedule), scrubVec(this._invKeySchedule), scrubVec(this._key);
- };
- module.exports.AES = AES;
- },
-});
-
-// node_modules/browserify-aes/ghash.js
-var require_ghash = __commonJS({
- "node_modules/browserify-aes/ghash.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer,
- ZEROES = Buffer2.alloc(16, 0);
- function toArray(buf) {
- return [buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12)];
- }
- function fromArray(out) {
- var buf = Buffer2.allocUnsafe(16);
- return (
- buf.writeUInt32BE(out[0] >>> 0, 0),
- buf.writeUInt32BE(out[1] >>> 0, 4),
- buf.writeUInt32BE(out[2] >>> 0, 8),
- buf.writeUInt32BE(out[3] >>> 0, 12),
- buf
- );
- }
- function GHASH(key) {
- (this.h = key), (this.state = Buffer2.alloc(16, 0)), (this.cache = Buffer2.allocUnsafe(0));
- }
- GHASH.prototype.ghash = function (block) {
- for (var i = -1; ++i < block.length; ) this.state[i] ^= block[i];
- this._multiply();
- };
- GHASH.prototype._multiply = function () {
- for (var Vi = toArray(this.h), Zi = [0, 0, 0, 0], j, xi, lsbVi, i = -1; ++i < 128; ) {
- for (
- xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0,
- xi && ((Zi[0] ^= Vi[0]), (Zi[1] ^= Vi[1]), (Zi[2] ^= Vi[2]), (Zi[3] ^= Vi[3])),
- lsbVi = (Vi[3] & 1) !== 0,
- j = 3;
- j > 0;
- j--
- )
- Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31);
- (Vi[0] = Vi[0] >>> 1), lsbVi && (Vi[0] = Vi[0] ^ (225 << 24));
- }
- this.state = fromArray(Zi);
- };
- GHASH.prototype.update = function (buf) {
- this.cache = Buffer2.concat([this.cache, buf]);
- for (var chunk; this.cache.length >= 16; )
- (chunk = this.cache.slice(0, 16)), (this.cache = this.cache.slice(16)), this.ghash(chunk);
- };
- GHASH.prototype.final = function (abl, bl) {
- return (
- this.cache.length && this.ghash(Buffer2.concat([this.cache, ZEROES], 16)),
- this.ghash(fromArray([0, abl, 0, bl])),
- this.state
- );
- };
- module.exports = GHASH;
- },
-});
-
-// node_modules/browserify-aes/authCipher.js
-var require_authCipher = __commonJS({
- "node_modules/browserify-aes/authCipher.js"(exports, module) {
- var aes = require_aes(),
- Buffer2 = require_safe_buffer().Buffer,
- Transform = require_cipher_base(),
- inherits = require_inherits_browser(),
- GHASH = require_ghash(),
- xor = require_buffer_xor(),
- incr32 = require_incr32();
- function xorTest(a, b) {
- var out = 0;
- a.length !== b.length && out++;
- for (var len = Math.min(a.length, b.length), i = 0; i < len; ++i) out += a[i] ^ b[i];
- return out;
- }
- function calcIv(self2, iv, ck) {
- if (iv.length === 12)
- return (
- (self2._finID = Buffer2.concat([iv, Buffer2.from([0, 0, 0, 1])])),
- Buffer2.concat([iv, Buffer2.from([0, 0, 0, 2])])
- );
- var ghash = new GHASH(ck),
- len = iv.length,
- toPad = len % 16;
- ghash.update(iv),
- toPad && ((toPad = 16 - toPad), ghash.update(Buffer2.alloc(toPad, 0))),
- ghash.update(Buffer2.alloc(8, 0));
- var ivBits = len * 8,
- tail = Buffer2.alloc(8);
- tail.writeUIntBE(ivBits, 0, 8), ghash.update(tail), (self2._finID = ghash.state);
- var out = Buffer2.from(self2._finID);
- return incr32(out), out;
- }
- function StreamCipher(mode, key, iv, decrypt) {
- Transform.call(this);
- var h = Buffer2.alloc(4, 0);
- this._cipher = new aes.AES(key);
- var ck = this._cipher.encryptBlock(h);
- (this._ghash = new GHASH(ck)),
- (iv = calcIv(this, iv, ck)),
- (this._prev = Buffer2.from(iv)),
- (this._cache = Buffer2.allocUnsafe(0)),
- (this._secCache = Buffer2.allocUnsafe(0)),
- (this._decrypt = decrypt),
- (this._alen = 0),
- (this._len = 0),
- (this._mode = mode),
- (this._authTag = null),
- (this._called = !1);
- }
- inherits(StreamCipher, Transform);
- StreamCipher.prototype._update = function (chunk) {
- if (!this._called && this._alen) {
- var rump = 16 - (this._alen % 16);
- rump < 16 && ((rump = Buffer2.alloc(rump, 0)), this._ghash.update(rump));
- }
- this._called = !0;
- var out = this._mode.encrypt(this, chunk);
- return this._decrypt ? this._ghash.update(chunk) : this._ghash.update(out), (this._len += chunk.length), out;
- };
- StreamCipher.prototype._final = function () {
- if (this._decrypt && !this._authTag) throw new Error("Unsupported state or unable to authenticate data");
- var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID));
- if (this._decrypt && xorTest(tag, this._authTag))
- throw new Error("Unsupported state or unable to authenticate data");
- (this._authTag = tag), this._cipher.scrub();
- };
- StreamCipher.prototype.getAuthTag = function () {
- if (this._decrypt || !Buffer2.isBuffer(this._authTag))
- throw new Error("Attempting to get auth tag in unsupported state");
- return this._authTag;
- };
- StreamCipher.prototype.setAuthTag = function (tag) {
- if (!this._decrypt) throw new Error("Attempting to set auth tag in unsupported state");
- this._authTag = tag;
- };
- StreamCipher.prototype.setAAD = function (buf) {
- if (this._called) throw new Error("Attempting to set AAD in unsupported state");
- this._ghash.update(buf), (this._alen += buf.length);
- };
- module.exports = StreamCipher;
- },
-});
-
-// node_modules/browserify-aes/streamCipher.js
-var require_streamCipher = __commonJS({
- "node_modules/browserify-aes/streamCipher.js"(exports, module) {
- var aes = require_aes(),
- Buffer2 = require_safe_buffer().Buffer,
- Transform = require_cipher_base(),
- inherits = require_inherits_browser();
- function StreamCipher(mode, key, iv, decrypt) {
- Transform.call(this),
- (this._cipher = new aes.AES(key)),
- (this._prev = Buffer2.from(iv)),
- (this._cache = Buffer2.allocUnsafe(0)),
- (this._secCache = Buffer2.allocUnsafe(0)),
- (this._decrypt = decrypt),
- (this._mode = mode);
- }
- inherits(StreamCipher, Transform);
- StreamCipher.prototype._update = function (chunk) {
- return this._mode.encrypt(this, chunk, this._decrypt);
- };
- StreamCipher.prototype._final = function () {
- this._cipher.scrub();
- };
- module.exports = StreamCipher;
- },
-});
-
-// node_modules/evp_bytestokey/index.js
-var require_evp_bytestokey = __commonJS({
- "node_modules/evp_bytestokey/index.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer,
- MD5 = require_md5();
- function EVP_BytesToKey(password, salt, keyBits, ivLen) {
- if (
- (Buffer2.isBuffer(password) || (password = Buffer2.from(password, "binary")),
- salt && (Buffer2.isBuffer(salt) || (salt = Buffer2.from(salt, "binary")), salt.length !== 8))
- )
- throw new RangeError("salt should be Buffer with 8 byte length");
- for (
- var keyLen = keyBits / 8, key = Buffer2.alloc(keyLen), iv = Buffer2.alloc(ivLen || 0), tmp = Buffer2.alloc(0);
- keyLen > 0 || ivLen > 0;
-
- ) {
- var hash = new MD5();
- hash.update(tmp), hash.update(password), salt && hash.update(salt), (tmp = hash.digest());
- var used = 0;
- if (keyLen > 0) {
- var keyStart = key.length - keyLen;
- (used = Math.min(keyLen, tmp.length)), tmp.copy(key, keyStart, 0, used), (keyLen -= used);
- }
- if (used < tmp.length && ivLen > 0) {
- var ivStart = iv.length - ivLen,
- length = Math.min(ivLen, tmp.length - used);
- tmp.copy(iv, ivStart, used, used + length), (ivLen -= length);
- }
- }
- return tmp.fill(0), { key, iv };
- }
- module.exports = EVP_BytesToKey;
- },
-});
-
-// node_modules/browserify-aes/encrypter.js
-var require_encrypter = __commonJS({
- "node_modules/browserify-aes/encrypter.js"(exports) {
- var MODES = require_modes(),
- AuthCipher = require_authCipher(),
- Buffer2 = require_safe_buffer().Buffer,
- StreamCipher = require_streamCipher(),
- Transform = require_cipher_base(),
- aes = require_aes(),
- ebtk = require_evp_bytestokey(),
- inherits = require_inherits_browser();
- function Cipher(mode, key, iv) {
- Transform.call(this),
- (this._cache = new Splitter()),
- (this._cipher = new aes.AES(key)),
- (this._prev = Buffer2.from(iv)),
- (this._mode = mode),
- (this._autopadding = !0);
- }
- inherits(Cipher, Transform);
- Cipher.prototype._update = function (data) {
- this._cache.add(data);
- for (var chunk, thing, out = []; (chunk = this._cache.get()); )
- (thing = this._mode.encrypt(this, chunk)), out.push(thing);
- return Buffer2.concat(out);
- };
- var PADDING = Buffer2.alloc(16, 16);
- Cipher.prototype._final = function () {
- var chunk = this._cache.flush();
- if (this._autopadding) return (chunk = this._mode.encrypt(this, chunk)), this._cipher.scrub(), chunk;
- if (!chunk.equals(PADDING)) throw (this._cipher.scrub(), new Error("data not multiple of block length"));
- };
- Cipher.prototype.setAutoPadding = function (setTo) {
- return (this._autopadding = !!setTo), this;
- };
- function Splitter() {
- this.cache = Buffer2.allocUnsafe(0);
- }
- Splitter.prototype.add = function (data) {
- this.cache = Buffer2.concat([this.cache, data]);
- };
- Splitter.prototype.get = function () {
- if (this.cache.length > 15) {
- var out = this.cache.slice(0, 16);
- return (this.cache = this.cache.slice(16)), out;
- }
- return null;
- };
- Splitter.prototype.flush = function () {
- for (var len = 16 - this.cache.length, padBuff = Buffer2.allocUnsafe(len), i = -1; ++i < len; )
- padBuff.writeUInt8(len, i);
- return Buffer2.concat([this.cache, padBuff]);
- };
- function createCipheriv(suite, password, iv) {
- var config = MODES[suite.toLowerCase()];
- if (!config) throw new TypeError("invalid suite type");
- if ((typeof password == "string" && (password = Buffer2.from(password)), password.length !== config.key / 8))
- throw new TypeError("invalid key length " + password.length);
- if ((typeof iv == "string" && (iv = Buffer2.from(iv)), config.mode !== "GCM" && iv.length !== config.iv))
- throw new TypeError("invalid iv length " + iv.length);
- return config.type === "stream"
- ? new StreamCipher(config.module, password, iv)
- : config.type === "auth"
- ? new AuthCipher(config.module, password, iv)
- : new Cipher(config.module, password, iv);
- }
- function createCipher(suite, password) {
- var config = MODES[suite.toLowerCase()];
- if (!config) throw new TypeError("invalid suite type");
- var keys = ebtk(password, !1, config.key, config.iv);
- return createCipheriv(suite, keys.key, keys.iv);
- }
- exports.createCipheriv = createCipheriv;
- exports.createCipher = createCipher;
- },
-});
-
-// node_modules/browserify-aes/decrypter.js
-var require_decrypter = __commonJS({
- "node_modules/browserify-aes/decrypter.js"(exports) {
- var AuthCipher = require_authCipher(),
- Buffer2 = require_safe_buffer().Buffer,
- MODES = require_modes(),
- StreamCipher = require_streamCipher(),
- Transform = require_cipher_base(),
- aes = require_aes(),
- ebtk = require_evp_bytestokey(),
- inherits = require_inherits_browser();
- function Decipher(mode, key, iv) {
- Transform.call(this),
- (this._cache = new Splitter()),
- (this._last = void 0),
- (this._cipher = new aes.AES(key)),
- (this._prev = Buffer2.from(iv)),
- (this._mode = mode),
- (this._autopadding = !0);
- }
- inherits(Decipher, Transform);
- Decipher.prototype._update = function (data) {
- this._cache.add(data);
- for (var chunk, thing, out = []; (chunk = this._cache.get(this._autopadding)); )
- (thing = this._mode.decrypt(this, chunk)), out.push(thing);
- return Buffer2.concat(out);
- };
- Decipher.prototype._final = function () {
- var chunk = this._cache.flush();
- if (this._autopadding) return unpad(this._mode.decrypt(this, chunk));
- if (chunk) throw new Error("data not multiple of block length");
- };
- Decipher.prototype.setAutoPadding = function (setTo) {
- return (this._autopadding = !!setTo), this;
- };
- function Splitter() {
- this.cache = Buffer2.allocUnsafe(0);
- }
- Splitter.prototype.add = function (data) {
- this.cache = Buffer2.concat([this.cache, data]);
- };
- Splitter.prototype.get = function (autoPadding) {
- var out;
- if (autoPadding) {
- if (this.cache.length > 16) return (out = this.cache.slice(0, 16)), (this.cache = this.cache.slice(16)), out;
- } else if (this.cache.length >= 16)
- return (out = this.cache.slice(0, 16)), (this.cache = this.cache.slice(16)), out;
- return null;
- };
- Splitter.prototype.flush = function () {
- if (this.cache.length) return this.cache;
- };
- function unpad(last) {
- var padded = last[15];
- if (padded < 1 || padded > 16) throw new Error("unable to decrypt data");
- for (var i = -1; ++i < padded; )
- if (last[i + (16 - padded)] !== padded) throw new Error("unable to decrypt data");
- if (padded !== 16) return last.slice(0, 16 - padded);
- }
- function createDecipheriv(suite, password, iv) {
- var config = MODES[suite.toLowerCase()];
- if (!config) throw new TypeError("invalid suite type");
- if ((typeof iv == "string" && (iv = Buffer2.from(iv)), config.mode !== "GCM" && iv.length !== config.iv))
- throw new TypeError("invalid iv length " + iv.length);
- if ((typeof password == "string" && (password = Buffer2.from(password)), password.length !== config.key / 8))
- throw new TypeError("invalid key length " + password.length);
- return config.type === "stream"
- ? new StreamCipher(config.module, password, iv, !0)
- : config.type === "auth"
- ? new AuthCipher(config.module, password, iv, !0)
- : new Decipher(config.module, password, iv);
- }
- function createDecipher(suite, password) {
- var config = MODES[suite.toLowerCase()];
- if (!config) throw new TypeError("invalid suite type");
- var keys = ebtk(password, !1, config.key, config.iv);
- return createDecipheriv(suite, keys.key, keys.iv);
- }
- exports.createDecipher = createDecipher;
- exports.createDecipheriv = createDecipheriv;
- },
-});
-
-// node_modules/browserify-aes/browser.js
-var require_browser5 = __commonJS({
- "node_modules/browserify-aes/browser.js"(exports) {
- var ciphers = require_encrypter(),
- deciphers = require_decrypter(),
- modes = require_list();
- function getCiphers() {
- return Object.keys(modes);
- }
- exports.createCipher = exports.Cipher = ciphers.createCipher;
- exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv;
- exports.createDecipher = exports.Decipher = deciphers.createDecipher;
- exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv;
- exports.listCiphers = exports.getCiphers = getCiphers;
- },
-});
-
-// node_modules/browserify-des/modes.js
-var require_modes2 = __commonJS({
- "node_modules/browserify-des/modes.js"(exports) {
- exports["des-ecb"] = {
- key: 8,
- iv: 0,
- };
- exports["des-cbc"] = exports.des = {
- key: 8,
- iv: 8,
- };
- exports["des-ede3-cbc"] = exports.des3 = {
- key: 24,
- iv: 8,
- };
- exports["des-ede3"] = {
- key: 24,
- iv: 0,
- };
- exports["des-ede-cbc"] = {
- key: 16,
- iv: 8,
- };
- exports["des-ede"] = {
- key: 16,
- iv: 0,
- };
- },
-});
-
-// node_modules/browserify-cipher/browser.js
-var require_browser6 = __commonJS({
- "node_modules/browserify-cipher/browser.js"(exports) {
- var DES = require_browserify_des(),
- aes = require_browser5(),
- aesModes = require_modes(),
- desModes = require_modes2(),
- ebtk = require_evp_bytestokey();
- function createCipher(suite, password) {
- suite = suite.toLowerCase();
- var keyLen, ivLen;
- if (aesModes[suite]) (keyLen = aesModes[suite].key), (ivLen = aesModes[suite].iv);
- else if (desModes[suite]) (keyLen = desModes[suite].key * 8), (ivLen = desModes[suite].iv);
- else throw new TypeError("invalid suite type");
- var keys = ebtk(password, !1, keyLen, ivLen);
- return createCipheriv(suite, keys.key, keys.iv);
- }
- function createDecipher(suite, password) {
- suite = suite.toLowerCase();
- var keyLen, ivLen;
- if (aesModes[suite]) (keyLen = aesModes[suite].key), (ivLen = aesModes[suite].iv);
- else if (desModes[suite]) (keyLen = desModes[suite].key * 8), (ivLen = desModes[suite].iv);
- else throw new TypeError("invalid suite type");
- var keys = ebtk(password, !1, keyLen, ivLen);
- return createDecipheriv(suite, keys.key, keys.iv);
- }
- function createCipheriv(suite, key, iv) {
- if (((suite = suite.toLowerCase()), aesModes[suite])) return aes.createCipheriv(suite, key, iv);
- if (desModes[suite]) return new DES({ key, iv, mode: suite });
- throw new TypeError("invalid suite type");
- }
- function createDecipheriv(suite, key, iv) {
- if (((suite = suite.toLowerCase()), aesModes[suite])) return aes.createDecipheriv(suite, key, iv);
- if (desModes[suite]) return new DES({ key, iv, mode: suite, decrypt: !0 });
- throw new TypeError("invalid suite type");
- }
- function getCiphers() {
- return Object.keys(desModes).concat(aes.getCiphers());
- }
- exports.createCipher = exports.Cipher = createCipher;
- exports.createCipheriv = exports.Cipheriv = createCipheriv;
- exports.createDecipher = exports.Decipher = createDecipher;
- exports.createDecipheriv = exports.Decipheriv = createDecipheriv;
- exports.listCiphers = exports.getCiphers = getCiphers;
- },
-});
-
-// node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js
-var require_bn = __commonJS({
- "node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js"(exports, module) {
- (function (module2, exports2) {
- "use strict";
- function assert(val, msg) {
- if (!val) throw new Error(msg || "Assertion failed");
- }
- function inherits(ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- (TempCtor.prototype = superCtor.prototype),
- (ctor.prototype = new TempCtor()),
- (ctor.prototype.constructor = ctor);
- }
- function BN(number, base, endian) {
- if (BN.isBN(number)) return number;
- (this.negative = 0),
- (this.words = null),
- (this.length = 0),
- (this.red = null),
- number !== null &&
- ((base === "le" || base === "be") && ((endian = base), (base = 10)),
- this._init(number || 0, base || 10, endian || "be"));
- }
- typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26);
- var Buffer2;
- try {
- typeof window < "u" && typeof window.Buffer < "u"
- ? (Buffer2 = window.Buffer)
- : (Buffer2 = __require("buffer").Buffer);
- } catch {}
- (BN.isBN = function (num) {
- return num instanceof BN
- ? !0
- : num !== null &&
- typeof num == "object" &&
- num.constructor.wordSize === BN.wordSize &&
- Array.isArray(num.words);
- }),
- (BN.max = function (left, right) {
- return left.cmp(right) > 0 ? left : right;
- }),
- (BN.min = function (left, right) {
- return left.cmp(right) < 0 ? left : right;
- }),
- (BN.prototype._init = function (number, base, endian) {
- if (typeof number == "number") return this._initNumber(number, base, endian);
- if (typeof number == "object") return this._initArray(number, base, endian);
- base === "hex" && (base = 16),
- assert(base === (base | 0) && base >= 2 && base <= 36),
- (number = number.toString().replace(/\s+/g, ""));
- var start = 0;
- number[0] === "-" && (start++, (this.negative = 1)),
- start < number.length &&
- (base === 16
- ? this._parseHex(number, start, endian)
- : (this._parseBase(number, base, start),
- endian === "le" && this._initArray(this.toArray(), base, endian)));
- }),
- (BN.prototype._initNumber = function (number, base, endian) {
- number < 0 && ((this.negative = 1), (number = -number)),
- number < 67108864
- ? ((this.words = [number & 67108863]), (this.length = 1))
- : number < 4503599627370496
- ? ((this.words = [number & 67108863, (number / 67108864) & 67108863]), (this.length = 2))
- : (assert(number < 9007199254740992),
- (this.words = [number & 67108863, (number / 67108864) & 67108863, 1]),
- (this.length = 3)),
- endian === "le" && this._initArray(this.toArray(), base, endian);
- }),
- (BN.prototype._initArray = function (number, base, endian) {
- if ((assert(typeof number.length == "number"), number.length <= 0))
- return (this.words = [0]), (this.length = 1), this;
- (this.length = Math.ceil(number.length / 3)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var j,
- w,
- off = 0;
- if (endian === "be")
- for (i = number.length - 1, j = 0; i >= 0; i -= 3)
- (w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- else if (endian === "le")
- for (i = 0, j = 0; i < number.length; i += 3)
- (w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- return this.strip();
- });
- function parseHex4Bits(string, index) {
- var c = string.charCodeAt(index);
- return c >= 65 && c <= 70 ? c - 55 : c >= 97 && c <= 102 ? c - 87 : (c - 48) & 15;
- }
- function parseHexByte(string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- return index - 1 >= lowerBound && (r |= parseHex4Bits(string, index - 1) << 4), r;
- }
- BN.prototype._parseHex = function (number, start, endian) {
- (this.length = Math.ceil((number.length - start) / 6)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var off = 0,
- j = 0,
- w;
- if (endian === "be")
- for (i = number.length - 1; i >= start; i -= 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- }
- this.strip();
- };
- function parseBase(str, start, end, mul) {
- for (var r = 0, len = Math.min(str.length, end), i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- (r *= mul), c >= 49 ? (r += c - 49 + 10) : c >= 17 ? (r += c - 17 + 10) : (r += c);
- }
- return r;
- }
- (BN.prototype._parseBase = function (number, base, start) {
- (this.words = [0]), (this.length = 1);
- for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) limbLen++;
- limbLen--, (limbPow = (limbPow / base) | 0);
- for (
- var total = number.length - start,
- mod = total % limbLen,
- end = Math.min(total, total - mod) + start,
- word = 0,
- i = start;
- i < end;
- i += limbLen
- )
- (word = parseBase(number, i, i + limbLen, base)),
- this.imuln(limbPow),
- this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- if (mod !== 0) {
- var pow = 1;
- for (word = parseBase(number, i, number.length, base), i = 0; i < mod; i++) pow *= base;
- this.imuln(pow), this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- }
- this.strip();
- }),
- (BN.prototype.copy = function (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) dest.words[i] = this.words[i];
- (dest.length = this.length), (dest.negative = this.negative), (dest.red = this.red);
- }),
- (BN.prototype.clone = function () {
- var r = new BN(null);
- return this.copy(r), r;
- }),
- (BN.prototype._expand = function (size) {
- for (; this.length < size; ) this.words[this.length++] = 0;
- return this;
- }),
- (BN.prototype.strip = function () {
- for (; this.length > 1 && this.words[this.length - 1] === 0; ) this.length--;
- return this._normSign();
- }),
- (BN.prototype._normSign = function () {
- return this.length === 1 && this.words[0] === 0 && (this.negative = 0), this;
- }),
- (BN.prototype.inspect = function () {
- return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
- });
- var zeros = [
- "",
- "0",
- "00",
- "000",
- "0000",
- "00000",
- "000000",
- "0000000",
- "00000000",
- "000000000",
- "0000000000",
- "00000000000",
- "000000000000",
- "0000000000000",
- "00000000000000",
- "000000000000000",
- "0000000000000000",
- "00000000000000000",
- "000000000000000000",
- "0000000000000000000",
- "00000000000000000000",
- "000000000000000000000",
- "0000000000000000000000",
- "00000000000000000000000",
- "000000000000000000000000",
- "0000000000000000000000000",
- ],
- groupSizes = [
- 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5,
- ],
- groupBases = [
- 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808,
- 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624,
- 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875,
- 60466176,
- ];
- (BN.prototype.toString = function (base, padding) {
- (base = base || 10), (padding = padding | 0 || 1);
- var out;
- if (base === 16 || base === "hex") {
- out = "";
- for (var off = 0, carry = 0, i = 0; i < this.length; i++) {
- var w = this.words[i],
- word = (((w << off) | carry) & 16777215).toString(16);
- (carry = (w >>> (24 - off)) & 16777215),
- carry !== 0 || i !== this.length - 1 ? (out = zeros[6 - word.length] + word + out) : (out = word + out),
- (off += 2),
- off >= 26 && ((off -= 26), i--);
- }
- for (carry !== 0 && (out = carry.toString(16) + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- var groupSize = groupSizes[base],
- groupBase = groupBases[base];
- out = "";
- var c = this.clone();
- for (c.negative = 0; !c.isZero(); ) {
- var r = c.modn(groupBase).toString(base);
- (c = c.idivn(groupBase)), c.isZero() ? (out = r + out) : (out = zeros[groupSize - r.length] + r + out);
- }
- for (this.isZero() && (out = "0" + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- assert(!1, "Base should be between 2 and 36");
- }),
- (BN.prototype.toNumber = function () {
- var ret = this.words[0];
- return (
- this.length === 2
- ? (ret += this.words[1] * 67108864)
- : this.length === 3 && this.words[2] === 1
- ? (ret += 4503599627370496 + this.words[1] * 67108864)
- : this.length > 2 && assert(!1, "Number can only safely store up to 53 bits"),
- this.negative !== 0 ? -ret : ret
- );
- }),
- (BN.prototype.toJSON = function () {
- return this.toString(16);
- }),
- (BN.prototype.toBuffer = function (endian, length) {
- return assert(typeof Buffer2 < "u"), this.toArrayLike(Buffer2, endian, length);
- }),
- (BN.prototype.toArray = function (endian, length) {
- return this.toArrayLike(Array, endian, length);
- }),
- (BN.prototype.toArrayLike = function (ArrayType, endian, length) {
- var byteLength = this.byteLength(),
- reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, "byte array longer than desired length"),
- assert(reqLength > 0, "Requested array length <= 0"),
- this.strip();
- var littleEndian = endian === "le",
- res = new ArrayType(reqLength),
- b,
- i,
- q = this.clone();
- if (littleEndian) {
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[i] = b);
- for (; i < reqLength; i++) res[i] = 0;
- } else {
- for (i = 0; i < reqLength - byteLength; i++) res[i] = 0;
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[reqLength - i - 1] = b);
- }
- return res;
- }),
- Math.clz32
- ? (BN.prototype._countBits = function (w) {
- return 32 - Math.clz32(w);
- })
- : (BN.prototype._countBits = function (w) {
- var t = w,
- r = 0;
- return (
- t >= 4096 && ((r += 13), (t >>>= 13)),
- t >= 64 && ((r += 7), (t >>>= 7)),
- t >= 8 && ((r += 4), (t >>>= 4)),
- t >= 2 && ((r += 2), (t >>>= 2)),
- r + t
- );
- }),
- (BN.prototype._zeroBits = function (w) {
- if (w === 0) return 26;
- var t = w,
- r = 0;
- return (
- (t & 8191) === 0 && ((r += 13), (t >>>= 13)),
- (t & 127) === 0 && ((r += 7), (t >>>= 7)),
- (t & 15) === 0 && ((r += 4), (t >>>= 4)),
- (t & 3) === 0 && ((r += 2), (t >>>= 2)),
- (t & 1) === 0 && r++,
- r
- );
- }),
- (BN.prototype.bitLength = function () {
- var w = this.words[this.length - 1],
- hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- });
- function toBitArray(num) {
- for (var w = new Array(num.bitLength()), bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;
- }
- return w;
- }
- (BN.prototype.zeroBits = function () {
- if (this.isZero()) return 0;
- for (var r = 0, i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- if (((r += b), b !== 26)) break;
- }
- return r;
- }),
- (BN.prototype.byteLength = function () {
- return Math.ceil(this.bitLength() / 8);
- }),
- (BN.prototype.toTwos = function (width) {
- return this.negative !== 0 ? this.abs().inotn(width).iaddn(1) : this.clone();
- }),
- (BN.prototype.fromTwos = function (width) {
- return this.testn(width - 1) ? this.notn(width).iaddn(1).ineg() : this.clone();
- }),
- (BN.prototype.isNeg = function () {
- return this.negative !== 0;
- }),
- (BN.prototype.neg = function () {
- return this.clone().ineg();
- }),
- (BN.prototype.ineg = function () {
- return this.isZero() || (this.negative ^= 1), this;
- }),
- (BN.prototype.iuor = function (num) {
- for (; this.length < num.length; ) this.words[this.length++] = 0;
- for (var i = 0; i < num.length; i++) this.words[i] = this.words[i] | num.words[i];
- return this.strip();
- }),
- (BN.prototype.ior = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuor(num);
- }),
- (BN.prototype.or = function (num) {
- return this.length > num.length ? this.clone().ior(num) : num.clone().ior(this);
- }),
- (BN.prototype.uor = function (num) {
- return this.length > num.length ? this.clone().iuor(num) : num.clone().iuor(this);
- }),
- (BN.prototype.iuand = function (num) {
- var b;
- this.length > num.length ? (b = num) : (b = this);
- for (var i = 0; i < b.length; i++) this.words[i] = this.words[i] & num.words[i];
- return (this.length = b.length), this.strip();
- }),
- (BN.prototype.iand = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuand(num);
- }),
- (BN.prototype.and = function (num) {
- return this.length > num.length ? this.clone().iand(num) : num.clone().iand(this);
- }),
- (BN.prototype.uand = function (num) {
- return this.length > num.length ? this.clone().iuand(num) : num.clone().iuand(this);
- }),
- (BN.prototype.iuxor = function (num) {
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var i = 0; i < b.length; i++) this.words[i] = a.words[i] ^ b.words[i];
- if (this !== a) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = a.length), this.strip();
- }),
- (BN.prototype.ixor = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuxor(num);
- }),
- (BN.prototype.xor = function (num) {
- return this.length > num.length ? this.clone().ixor(num) : num.clone().ixor(this);
- }),
- (BN.prototype.uxor = function (num) {
- return this.length > num.length ? this.clone().iuxor(num) : num.clone().iuxor(this);
- }),
- (BN.prototype.inotn = function (width) {
- assert(typeof width == "number" && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0,
- bitsLeft = width % 26;
- this._expand(bytesNeeded), bitsLeft > 0 && bytesNeeded--;
- for (var i = 0; i < bytesNeeded; i++) this.words[i] = ~this.words[i] & 67108863;
- return bitsLeft > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft))), this.strip();
- }),
- (BN.prototype.notn = function (width) {
- return this.clone().inotn(width);
- }),
- (BN.prototype.setn = function (bit, val) {
- assert(typeof bit == "number" && bit >= 0);
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- return (
- this._expand(off + 1),
- val
- ? (this.words[off] = this.words[off] | (1 << wbit))
- : (this.words[off] = this.words[off] & ~(1 << wbit)),
- this.strip()
- );
- }),
- (BN.prototype.iadd = function (num) {
- var r;
- if (this.negative !== 0 && num.negative === 0)
- return (this.negative = 0), (r = this.isub(num)), (this.negative ^= 1), this._normSign();
- if (this.negative === 0 && num.negative !== 0)
- return (num.negative = 0), (r = this.isub(num)), (num.negative = 1), r._normSign();
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) + (b.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- if (((this.length = a.length), carry !== 0)) (this.words[this.length] = carry), this.length++;
- else if (a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return this;
- }),
- (BN.prototype.add = function (num) {
- var res;
- return num.negative !== 0 && this.negative === 0
- ? ((num.negative = 0), (res = this.sub(num)), (num.negative ^= 1), res)
- : num.negative === 0 && this.negative !== 0
- ? ((this.negative = 0), (res = num.sub(this)), (this.negative = 1), res)
- : this.length > num.length
- ? this.clone().iadd(num)
- : num.clone().iadd(this);
- }),
- (BN.prototype.isub = function (num) {
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- return (num.negative = 1), r._normSign();
- } else if (this.negative !== 0)
- return (this.negative = 0), this.iadd(num), (this.negative = 1), this._normSign();
- var cmp = this.cmp(num);
- if (cmp === 0) return (this.negative = 0), (this.length = 1), (this.words[0] = 0), this;
- var a, b;
- cmp > 0 ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) - (b.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- if (carry === 0 && i < a.length && a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = Math.max(this.length, i)), a !== this && (this.negative = 1), this.strip();
- }),
- (BN.prototype.sub = function (num) {
- return this.clone().isub(num);
- });
- function smallMulTo(self2, num, out) {
- out.negative = num.negative ^ self2.negative;
- var len = (self2.length + num.length) | 0;
- (out.length = len), (len = (len - 1) | 0);
- var a = self2.words[0] | 0,
- b = num.words[0] | 0,
- r = a * b,
- lo = r & 67108863,
- carry = (r / 67108864) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- for (
- var ncarry = carry >>> 26,
- rword = carry & 67108863,
- maxJ = Math.min(k, num.length - 1),
- j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = (k - j) | 0;
- (a = self2.words[i] | 0),
- (b = num.words[j] | 0),
- (r = a * b + rword),
- (ncarry += (r / 67108864) | 0),
- (rword = r & 67108863);
- }
- (out.words[k] = rword | 0), (carry = ncarry | 0);
- }
- return carry !== 0 ? (out.words[k] = carry | 0) : out.length--, out.strip();
- }
- var comb10MulTo = function (self2, num, out) {
- var a = self2.words,
- b = num.words,
- o = out.words,
- c = 0,
- lo,
- mid,
- hi,
- a0 = a[0] | 0,
- al0 = a0 & 8191,
- ah0 = a0 >>> 13,
- a1 = a[1] | 0,
- al1 = a1 & 8191,
- ah1 = a1 >>> 13,
- a2 = a[2] | 0,
- al2 = a2 & 8191,
- ah2 = a2 >>> 13,
- a3 = a[3] | 0,
- al3 = a3 & 8191,
- ah3 = a3 >>> 13,
- a4 = a[4] | 0,
- al4 = a4 & 8191,
- ah4 = a4 >>> 13,
- a5 = a[5] | 0,
- al5 = a5 & 8191,
- ah5 = a5 >>> 13,
- a6 = a[6] | 0,
- al6 = a6 & 8191,
- ah6 = a6 >>> 13,
- a7 = a[7] | 0,
- al7 = a7 & 8191,
- ah7 = a7 >>> 13,
- a8 = a[8] | 0,
- al8 = a8 & 8191,
- ah8 = a8 >>> 13,
- a9 = a[9] | 0,
- al9 = a9 & 8191,
- ah9 = a9 >>> 13,
- b0 = b[0] | 0,
- bl0 = b0 & 8191,
- bh0 = b0 >>> 13,
- b1 = b[1] | 0,
- bl1 = b1 & 8191,
- bh1 = b1 >>> 13,
- b2 = b[2] | 0,
- bl2 = b2 & 8191,
- bh2 = b2 >>> 13,
- b3 = b[3] | 0,
- bl3 = b3 & 8191,
- bh3 = b3 >>> 13,
- b4 = b[4] | 0,
- bl4 = b4 & 8191,
- bh4 = b4 >>> 13,
- b5 = b[5] | 0,
- bl5 = b5 & 8191,
- bh5 = b5 >>> 13,
- b6 = b[6] | 0,
- bl6 = b6 & 8191,
- bh6 = b6 >>> 13,
- b7 = b[7] | 0,
- bl7 = b7 & 8191,
- bh7 = b7 >>> 13,
- b8 = b[8] | 0,
- bl8 = b8 & 8191,
- bh8 = b8 >>> 13,
- b9 = b[9] | 0,
- bl9 = b9 & 8191,
- bh9 = b9 >>> 13;
- (out.negative = self2.negative ^ num.negative),
- (out.length = 19),
- (lo = Math.imul(al0, bl0)),
- (mid = Math.imul(al0, bh0)),
- (mid = (mid + Math.imul(ah0, bl0)) | 0),
- (hi = Math.imul(ah0, bh0));
- var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0),
- (w0 &= 67108863),
- (lo = Math.imul(al1, bl0)),
- (mid = Math.imul(al1, bh0)),
- (mid = (mid + Math.imul(ah1, bl0)) | 0),
- (hi = Math.imul(ah1, bh0)),
- (lo = (lo + Math.imul(al0, bl1)) | 0),
- (mid = (mid + Math.imul(al0, bh1)) | 0),
- (mid = (mid + Math.imul(ah0, bl1)) | 0),
- (hi = (hi + Math.imul(ah0, bh1)) | 0);
- var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0),
- (w1 &= 67108863),
- (lo = Math.imul(al2, bl0)),
- (mid = Math.imul(al2, bh0)),
- (mid = (mid + Math.imul(ah2, bl0)) | 0),
- (hi = Math.imul(ah2, bh0)),
- (lo = (lo + Math.imul(al1, bl1)) | 0),
- (mid = (mid + Math.imul(al1, bh1)) | 0),
- (mid = (mid + Math.imul(ah1, bl1)) | 0),
- (hi = (hi + Math.imul(ah1, bh1)) | 0),
- (lo = (lo + Math.imul(al0, bl2)) | 0),
- (mid = (mid + Math.imul(al0, bh2)) | 0),
- (mid = (mid + Math.imul(ah0, bl2)) | 0),
- (hi = (hi + Math.imul(ah0, bh2)) | 0);
- var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0),
- (w2 &= 67108863),
- (lo = Math.imul(al3, bl0)),
- (mid = Math.imul(al3, bh0)),
- (mid = (mid + Math.imul(ah3, bl0)) | 0),
- (hi = Math.imul(ah3, bh0)),
- (lo = (lo + Math.imul(al2, bl1)) | 0),
- (mid = (mid + Math.imul(al2, bh1)) | 0),
- (mid = (mid + Math.imul(ah2, bl1)) | 0),
- (hi = (hi + Math.imul(ah2, bh1)) | 0),
- (lo = (lo + Math.imul(al1, bl2)) | 0),
- (mid = (mid + Math.imul(al1, bh2)) | 0),
- (mid = (mid + Math.imul(ah1, bl2)) | 0),
- (hi = (hi + Math.imul(ah1, bh2)) | 0),
- (lo = (lo + Math.imul(al0, bl3)) | 0),
- (mid = (mid + Math.imul(al0, bh3)) | 0),
- (mid = (mid + Math.imul(ah0, bl3)) | 0),
- (hi = (hi + Math.imul(ah0, bh3)) | 0);
- var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0),
- (w3 &= 67108863),
- (lo = Math.imul(al4, bl0)),
- (mid = Math.imul(al4, bh0)),
- (mid = (mid + Math.imul(ah4, bl0)) | 0),
- (hi = Math.imul(ah4, bh0)),
- (lo = (lo + Math.imul(al3, bl1)) | 0),
- (mid = (mid + Math.imul(al3, bh1)) | 0),
- (mid = (mid + Math.imul(ah3, bl1)) | 0),
- (hi = (hi + Math.imul(ah3, bh1)) | 0),
- (lo = (lo + Math.imul(al2, bl2)) | 0),
- (mid = (mid + Math.imul(al2, bh2)) | 0),
- (mid = (mid + Math.imul(ah2, bl2)) | 0),
- (hi = (hi + Math.imul(ah2, bh2)) | 0),
- (lo = (lo + Math.imul(al1, bl3)) | 0),
- (mid = (mid + Math.imul(al1, bh3)) | 0),
- (mid = (mid + Math.imul(ah1, bl3)) | 0),
- (hi = (hi + Math.imul(ah1, bh3)) | 0),
- (lo = (lo + Math.imul(al0, bl4)) | 0),
- (mid = (mid + Math.imul(al0, bh4)) | 0),
- (mid = (mid + Math.imul(ah0, bl4)) | 0),
- (hi = (hi + Math.imul(ah0, bh4)) | 0);
- var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0),
- (w4 &= 67108863),
- (lo = Math.imul(al5, bl0)),
- (mid = Math.imul(al5, bh0)),
- (mid = (mid + Math.imul(ah5, bl0)) | 0),
- (hi = Math.imul(ah5, bh0)),
- (lo = (lo + Math.imul(al4, bl1)) | 0),
- (mid = (mid + Math.imul(al4, bh1)) | 0),
- (mid = (mid + Math.imul(ah4, bl1)) | 0),
- (hi = (hi + Math.imul(ah4, bh1)) | 0),
- (lo = (lo + Math.imul(al3, bl2)) | 0),
- (mid = (mid + Math.imul(al3, bh2)) | 0),
- (mid = (mid + Math.imul(ah3, bl2)) | 0),
- (hi = (hi + Math.imul(ah3, bh2)) | 0),
- (lo = (lo + Math.imul(al2, bl3)) | 0),
- (mid = (mid + Math.imul(al2, bh3)) | 0),
- (mid = (mid + Math.imul(ah2, bl3)) | 0),
- (hi = (hi + Math.imul(ah2, bh3)) | 0),
- (lo = (lo + Math.imul(al1, bl4)) | 0),
- (mid = (mid + Math.imul(al1, bh4)) | 0),
- (mid = (mid + Math.imul(ah1, bl4)) | 0),
- (hi = (hi + Math.imul(ah1, bh4)) | 0),
- (lo = (lo + Math.imul(al0, bl5)) | 0),
- (mid = (mid + Math.imul(al0, bh5)) | 0),
- (mid = (mid + Math.imul(ah0, bl5)) | 0),
- (hi = (hi + Math.imul(ah0, bh5)) | 0);
- var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0),
- (w5 &= 67108863),
- (lo = Math.imul(al6, bl0)),
- (mid = Math.imul(al6, bh0)),
- (mid = (mid + Math.imul(ah6, bl0)) | 0),
- (hi = Math.imul(ah6, bh0)),
- (lo = (lo + Math.imul(al5, bl1)) | 0),
- (mid = (mid + Math.imul(al5, bh1)) | 0),
- (mid = (mid + Math.imul(ah5, bl1)) | 0),
- (hi = (hi + Math.imul(ah5, bh1)) | 0),
- (lo = (lo + Math.imul(al4, bl2)) | 0),
- (mid = (mid + Math.imul(al4, bh2)) | 0),
- (mid = (mid + Math.imul(ah4, bl2)) | 0),
- (hi = (hi + Math.imul(ah4, bh2)) | 0),
- (lo = (lo + Math.imul(al3, bl3)) | 0),
- (mid = (mid + Math.imul(al3, bh3)) | 0),
- (mid = (mid + Math.imul(ah3, bl3)) | 0),
- (hi = (hi + Math.imul(ah3, bh3)) | 0),
- (lo = (lo + Math.imul(al2, bl4)) | 0),
- (mid = (mid + Math.imul(al2, bh4)) | 0),
- (mid = (mid + Math.imul(ah2, bl4)) | 0),
- (hi = (hi + Math.imul(ah2, bh4)) | 0),
- (lo = (lo + Math.imul(al1, bl5)) | 0),
- (mid = (mid + Math.imul(al1, bh5)) | 0),
- (mid = (mid + Math.imul(ah1, bl5)) | 0),
- (hi = (hi + Math.imul(ah1, bh5)) | 0),
- (lo = (lo + Math.imul(al0, bl6)) | 0),
- (mid = (mid + Math.imul(al0, bh6)) | 0),
- (mid = (mid + Math.imul(ah0, bl6)) | 0),
- (hi = (hi + Math.imul(ah0, bh6)) | 0);
- var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0),
- (w6 &= 67108863),
- (lo = Math.imul(al7, bl0)),
- (mid = Math.imul(al7, bh0)),
- (mid = (mid + Math.imul(ah7, bl0)) | 0),
- (hi = Math.imul(ah7, bh0)),
- (lo = (lo + Math.imul(al6, bl1)) | 0),
- (mid = (mid + Math.imul(al6, bh1)) | 0),
- (mid = (mid + Math.imul(ah6, bl1)) | 0),
- (hi = (hi + Math.imul(ah6, bh1)) | 0),
- (lo = (lo + Math.imul(al5, bl2)) | 0),
- (mid = (mid + Math.imul(al5, bh2)) | 0),
- (mid = (mid + Math.imul(ah5, bl2)) | 0),
- (hi = (hi + Math.imul(ah5, bh2)) | 0),
- (lo = (lo + Math.imul(al4, bl3)) | 0),
- (mid = (mid + Math.imul(al4, bh3)) | 0),
- (mid = (mid + Math.imul(ah4, bl3)) | 0),
- (hi = (hi + Math.imul(ah4, bh3)) | 0),
- (lo = (lo + Math.imul(al3, bl4)) | 0),
- (mid = (mid + Math.imul(al3, bh4)) | 0),
- (mid = (mid + Math.imul(ah3, bl4)) | 0),
- (hi = (hi + Math.imul(ah3, bh4)) | 0),
- (lo = (lo + Math.imul(al2, bl5)) | 0),
- (mid = (mid + Math.imul(al2, bh5)) | 0),
- (mid = (mid + Math.imul(ah2, bl5)) | 0),
- (hi = (hi + Math.imul(ah2, bh5)) | 0),
- (lo = (lo + Math.imul(al1, bl6)) | 0),
- (mid = (mid + Math.imul(al1, bh6)) | 0),
- (mid = (mid + Math.imul(ah1, bl6)) | 0),
- (hi = (hi + Math.imul(ah1, bh6)) | 0),
- (lo = (lo + Math.imul(al0, bl7)) | 0),
- (mid = (mid + Math.imul(al0, bh7)) | 0),
- (mid = (mid + Math.imul(ah0, bl7)) | 0),
- (hi = (hi + Math.imul(ah0, bh7)) | 0);
- var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0),
- (w7 &= 67108863),
- (lo = Math.imul(al8, bl0)),
- (mid = Math.imul(al8, bh0)),
- (mid = (mid + Math.imul(ah8, bl0)) | 0),
- (hi = Math.imul(ah8, bh0)),
- (lo = (lo + Math.imul(al7, bl1)) | 0),
- (mid = (mid + Math.imul(al7, bh1)) | 0),
- (mid = (mid + Math.imul(ah7, bl1)) | 0),
- (hi = (hi + Math.imul(ah7, bh1)) | 0),
- (lo = (lo + Math.imul(al6, bl2)) | 0),
- (mid = (mid + Math.imul(al6, bh2)) | 0),
- (mid = (mid + Math.imul(ah6, bl2)) | 0),
- (hi = (hi + Math.imul(ah6, bh2)) | 0),
- (lo = (lo + Math.imul(al5, bl3)) | 0),
- (mid = (mid + Math.imul(al5, bh3)) | 0),
- (mid = (mid + Math.imul(ah5, bl3)) | 0),
- (hi = (hi + Math.imul(ah5, bh3)) | 0),
- (lo = (lo + Math.imul(al4, bl4)) | 0),
- (mid = (mid + Math.imul(al4, bh4)) | 0),
- (mid = (mid + Math.imul(ah4, bl4)) | 0),
- (hi = (hi + Math.imul(ah4, bh4)) | 0),
- (lo = (lo + Math.imul(al3, bl5)) | 0),
- (mid = (mid + Math.imul(al3, bh5)) | 0),
- (mid = (mid + Math.imul(ah3, bl5)) | 0),
- (hi = (hi + Math.imul(ah3, bh5)) | 0),
- (lo = (lo + Math.imul(al2, bl6)) | 0),
- (mid = (mid + Math.imul(al2, bh6)) | 0),
- (mid = (mid + Math.imul(ah2, bl6)) | 0),
- (hi = (hi + Math.imul(ah2, bh6)) | 0),
- (lo = (lo + Math.imul(al1, bl7)) | 0),
- (mid = (mid + Math.imul(al1, bh7)) | 0),
- (mid = (mid + Math.imul(ah1, bl7)) | 0),
- (hi = (hi + Math.imul(ah1, bh7)) | 0),
- (lo = (lo + Math.imul(al0, bl8)) | 0),
- (mid = (mid + Math.imul(al0, bh8)) | 0),
- (mid = (mid + Math.imul(ah0, bl8)) | 0),
- (hi = (hi + Math.imul(ah0, bh8)) | 0);
- var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0),
- (w8 &= 67108863),
- (lo = Math.imul(al9, bl0)),
- (mid = Math.imul(al9, bh0)),
- (mid = (mid + Math.imul(ah9, bl0)) | 0),
- (hi = Math.imul(ah9, bh0)),
- (lo = (lo + Math.imul(al8, bl1)) | 0),
- (mid = (mid + Math.imul(al8, bh1)) | 0),
- (mid = (mid + Math.imul(ah8, bl1)) | 0),
- (hi = (hi + Math.imul(ah8, bh1)) | 0),
- (lo = (lo + Math.imul(al7, bl2)) | 0),
- (mid = (mid + Math.imul(al7, bh2)) | 0),
- (mid = (mid + Math.imul(ah7, bl2)) | 0),
- (hi = (hi + Math.imul(ah7, bh2)) | 0),
- (lo = (lo + Math.imul(al6, bl3)) | 0),
- (mid = (mid + Math.imul(al6, bh3)) | 0),
- (mid = (mid + Math.imul(ah6, bl3)) | 0),
- (hi = (hi + Math.imul(ah6, bh3)) | 0),
- (lo = (lo + Math.imul(al5, bl4)) | 0),
- (mid = (mid + Math.imul(al5, bh4)) | 0),
- (mid = (mid + Math.imul(ah5, bl4)) | 0),
- (hi = (hi + Math.imul(ah5, bh4)) | 0),
- (lo = (lo + Math.imul(al4, bl5)) | 0),
- (mid = (mid + Math.imul(al4, bh5)) | 0),
- (mid = (mid + Math.imul(ah4, bl5)) | 0),
- (hi = (hi + Math.imul(ah4, bh5)) | 0),
- (lo = (lo + Math.imul(al3, bl6)) | 0),
- (mid = (mid + Math.imul(al3, bh6)) | 0),
- (mid = (mid + Math.imul(ah3, bl6)) | 0),
- (hi = (hi + Math.imul(ah3, bh6)) | 0),
- (lo = (lo + Math.imul(al2, bl7)) | 0),
- (mid = (mid + Math.imul(al2, bh7)) | 0),
- (mid = (mid + Math.imul(ah2, bl7)) | 0),
- (hi = (hi + Math.imul(ah2, bh7)) | 0),
- (lo = (lo + Math.imul(al1, bl8)) | 0),
- (mid = (mid + Math.imul(al1, bh8)) | 0),
- (mid = (mid + Math.imul(ah1, bl8)) | 0),
- (hi = (hi + Math.imul(ah1, bh8)) | 0),
- (lo = (lo + Math.imul(al0, bl9)) | 0),
- (mid = (mid + Math.imul(al0, bh9)) | 0),
- (mid = (mid + Math.imul(ah0, bl9)) | 0),
- (hi = (hi + Math.imul(ah0, bh9)) | 0);
- var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0),
- (w9 &= 67108863),
- (lo = Math.imul(al9, bl1)),
- (mid = Math.imul(al9, bh1)),
- (mid = (mid + Math.imul(ah9, bl1)) | 0),
- (hi = Math.imul(ah9, bh1)),
- (lo = (lo + Math.imul(al8, bl2)) | 0),
- (mid = (mid + Math.imul(al8, bh2)) | 0),
- (mid = (mid + Math.imul(ah8, bl2)) | 0),
- (hi = (hi + Math.imul(ah8, bh2)) | 0),
- (lo = (lo + Math.imul(al7, bl3)) | 0),
- (mid = (mid + Math.imul(al7, bh3)) | 0),
- (mid = (mid + Math.imul(ah7, bl3)) | 0),
- (hi = (hi + Math.imul(ah7, bh3)) | 0),
- (lo = (lo + Math.imul(al6, bl4)) | 0),
- (mid = (mid + Math.imul(al6, bh4)) | 0),
- (mid = (mid + Math.imul(ah6, bl4)) | 0),
- (hi = (hi + Math.imul(ah6, bh4)) | 0),
- (lo = (lo + Math.imul(al5, bl5)) | 0),
- (mid = (mid + Math.imul(al5, bh5)) | 0),
- (mid = (mid + Math.imul(ah5, bl5)) | 0),
- (hi = (hi + Math.imul(ah5, bh5)) | 0),
- (lo = (lo + Math.imul(al4, bl6)) | 0),
- (mid = (mid + Math.imul(al4, bh6)) | 0),
- (mid = (mid + Math.imul(ah4, bl6)) | 0),
- (hi = (hi + Math.imul(ah4, bh6)) | 0),
- (lo = (lo + Math.imul(al3, bl7)) | 0),
- (mid = (mid + Math.imul(al3, bh7)) | 0),
- (mid = (mid + Math.imul(ah3, bl7)) | 0),
- (hi = (hi + Math.imul(ah3, bh7)) | 0),
- (lo = (lo + Math.imul(al2, bl8)) | 0),
- (mid = (mid + Math.imul(al2, bh8)) | 0),
- (mid = (mid + Math.imul(ah2, bl8)) | 0),
- (hi = (hi + Math.imul(ah2, bh8)) | 0),
- (lo = (lo + Math.imul(al1, bl9)) | 0),
- (mid = (mid + Math.imul(al1, bh9)) | 0),
- (mid = (mid + Math.imul(ah1, bl9)) | 0),
- (hi = (hi + Math.imul(ah1, bh9)) | 0);
- var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0),
- (w10 &= 67108863),
- (lo = Math.imul(al9, bl2)),
- (mid = Math.imul(al9, bh2)),
- (mid = (mid + Math.imul(ah9, bl2)) | 0),
- (hi = Math.imul(ah9, bh2)),
- (lo = (lo + Math.imul(al8, bl3)) | 0),
- (mid = (mid + Math.imul(al8, bh3)) | 0),
- (mid = (mid + Math.imul(ah8, bl3)) | 0),
- (hi = (hi + Math.imul(ah8, bh3)) | 0),
- (lo = (lo + Math.imul(al7, bl4)) | 0),
- (mid = (mid + Math.imul(al7, bh4)) | 0),
- (mid = (mid + Math.imul(ah7, bl4)) | 0),
- (hi = (hi + Math.imul(ah7, bh4)) | 0),
- (lo = (lo + Math.imul(al6, bl5)) | 0),
- (mid = (mid + Math.imul(al6, bh5)) | 0),
- (mid = (mid + Math.imul(ah6, bl5)) | 0),
- (hi = (hi + Math.imul(ah6, bh5)) | 0),
- (lo = (lo + Math.imul(al5, bl6)) | 0),
- (mid = (mid + Math.imul(al5, bh6)) | 0),
- (mid = (mid + Math.imul(ah5, bl6)) | 0),
- (hi = (hi + Math.imul(ah5, bh6)) | 0),
- (lo = (lo + Math.imul(al4, bl7)) | 0),
- (mid = (mid + Math.imul(al4, bh7)) | 0),
- (mid = (mid + Math.imul(ah4, bl7)) | 0),
- (hi = (hi + Math.imul(ah4, bh7)) | 0),
- (lo = (lo + Math.imul(al3, bl8)) | 0),
- (mid = (mid + Math.imul(al3, bh8)) | 0),
- (mid = (mid + Math.imul(ah3, bl8)) | 0),
- (hi = (hi + Math.imul(ah3, bh8)) | 0),
- (lo = (lo + Math.imul(al2, bl9)) | 0),
- (mid = (mid + Math.imul(al2, bh9)) | 0),
- (mid = (mid + Math.imul(ah2, bl9)) | 0),
- (hi = (hi + Math.imul(ah2, bh9)) | 0);
- var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0),
- (w11 &= 67108863),
- (lo = Math.imul(al9, bl3)),
- (mid = Math.imul(al9, bh3)),
- (mid = (mid + Math.imul(ah9, bl3)) | 0),
- (hi = Math.imul(ah9, bh3)),
- (lo = (lo + Math.imul(al8, bl4)) | 0),
- (mid = (mid + Math.imul(al8, bh4)) | 0),
- (mid = (mid + Math.imul(ah8, bl4)) | 0),
- (hi = (hi + Math.imul(ah8, bh4)) | 0),
- (lo = (lo + Math.imul(al7, bl5)) | 0),
- (mid = (mid + Math.imul(al7, bh5)) | 0),
- (mid = (mid + Math.imul(ah7, bl5)) | 0),
- (hi = (hi + Math.imul(ah7, bh5)) | 0),
- (lo = (lo + Math.imul(al6, bl6)) | 0),
- (mid = (mid + Math.imul(al6, bh6)) | 0),
- (mid = (mid + Math.imul(ah6, bl6)) | 0),
- (hi = (hi + Math.imul(ah6, bh6)) | 0),
- (lo = (lo + Math.imul(al5, bl7)) | 0),
- (mid = (mid + Math.imul(al5, bh7)) | 0),
- (mid = (mid + Math.imul(ah5, bl7)) | 0),
- (hi = (hi + Math.imul(ah5, bh7)) | 0),
- (lo = (lo + Math.imul(al4, bl8)) | 0),
- (mid = (mid + Math.imul(al4, bh8)) | 0),
- (mid = (mid + Math.imul(ah4, bl8)) | 0),
- (hi = (hi + Math.imul(ah4, bh8)) | 0),
- (lo = (lo + Math.imul(al3, bl9)) | 0),
- (mid = (mid + Math.imul(al3, bh9)) | 0),
- (mid = (mid + Math.imul(ah3, bl9)) | 0),
- (hi = (hi + Math.imul(ah3, bh9)) | 0);
- var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0),
- (w12 &= 67108863),
- (lo = Math.imul(al9, bl4)),
- (mid = Math.imul(al9, bh4)),
- (mid = (mid + Math.imul(ah9, bl4)) | 0),
- (hi = Math.imul(ah9, bh4)),
- (lo = (lo + Math.imul(al8, bl5)) | 0),
- (mid = (mid + Math.imul(al8, bh5)) | 0),
- (mid = (mid + Math.imul(ah8, bl5)) | 0),
- (hi = (hi + Math.imul(ah8, bh5)) | 0),
- (lo = (lo + Math.imul(al7, bl6)) | 0),
- (mid = (mid + Math.imul(al7, bh6)) | 0),
- (mid = (mid + Math.imul(ah7, bl6)) | 0),
- (hi = (hi + Math.imul(ah7, bh6)) | 0),
- (lo = (lo + Math.imul(al6, bl7)) | 0),
- (mid = (mid + Math.imul(al6, bh7)) | 0),
- (mid = (mid + Math.imul(ah6, bl7)) | 0),
- (hi = (hi + Math.imul(ah6, bh7)) | 0),
- (lo = (lo + Math.imul(al5, bl8)) | 0),
- (mid = (mid + Math.imul(al5, bh8)) | 0),
- (mid = (mid + Math.imul(ah5, bl8)) | 0),
- (hi = (hi + Math.imul(ah5, bh8)) | 0),
- (lo = (lo + Math.imul(al4, bl9)) | 0),
- (mid = (mid + Math.imul(al4, bh9)) | 0),
- (mid = (mid + Math.imul(ah4, bl9)) | 0),
- (hi = (hi + Math.imul(ah4, bh9)) | 0);
- var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0),
- (w13 &= 67108863),
- (lo = Math.imul(al9, bl5)),
- (mid = Math.imul(al9, bh5)),
- (mid = (mid + Math.imul(ah9, bl5)) | 0),
- (hi = Math.imul(ah9, bh5)),
- (lo = (lo + Math.imul(al8, bl6)) | 0),
- (mid = (mid + Math.imul(al8, bh6)) | 0),
- (mid = (mid + Math.imul(ah8, bl6)) | 0),
- (hi = (hi + Math.imul(ah8, bh6)) | 0),
- (lo = (lo + Math.imul(al7, bl7)) | 0),
- (mid = (mid + Math.imul(al7, bh7)) | 0),
- (mid = (mid + Math.imul(ah7, bl7)) | 0),
- (hi = (hi + Math.imul(ah7, bh7)) | 0),
- (lo = (lo + Math.imul(al6, bl8)) | 0),
- (mid = (mid + Math.imul(al6, bh8)) | 0),
- (mid = (mid + Math.imul(ah6, bl8)) | 0),
- (hi = (hi + Math.imul(ah6, bh8)) | 0),
- (lo = (lo + Math.imul(al5, bl9)) | 0),
- (mid = (mid + Math.imul(al5, bh9)) | 0),
- (mid = (mid + Math.imul(ah5, bl9)) | 0),
- (hi = (hi + Math.imul(ah5, bh9)) | 0);
- var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0),
- (w14 &= 67108863),
- (lo = Math.imul(al9, bl6)),
- (mid = Math.imul(al9, bh6)),
- (mid = (mid + Math.imul(ah9, bl6)) | 0),
- (hi = Math.imul(ah9, bh6)),
- (lo = (lo + Math.imul(al8, bl7)) | 0),
- (mid = (mid + Math.imul(al8, bh7)) | 0),
- (mid = (mid + Math.imul(ah8, bl7)) | 0),
- (hi = (hi + Math.imul(ah8, bh7)) | 0),
- (lo = (lo + Math.imul(al7, bl8)) | 0),
- (mid = (mid + Math.imul(al7, bh8)) | 0),
- (mid = (mid + Math.imul(ah7, bl8)) | 0),
- (hi = (hi + Math.imul(ah7, bh8)) | 0),
- (lo = (lo + Math.imul(al6, bl9)) | 0),
- (mid = (mid + Math.imul(al6, bh9)) | 0),
- (mid = (mid + Math.imul(ah6, bl9)) | 0),
- (hi = (hi + Math.imul(ah6, bh9)) | 0);
- var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0),
- (w15 &= 67108863),
- (lo = Math.imul(al9, bl7)),
- (mid = Math.imul(al9, bh7)),
- (mid = (mid + Math.imul(ah9, bl7)) | 0),
- (hi = Math.imul(ah9, bh7)),
- (lo = (lo + Math.imul(al8, bl8)) | 0),
- (mid = (mid + Math.imul(al8, bh8)) | 0),
- (mid = (mid + Math.imul(ah8, bl8)) | 0),
- (hi = (hi + Math.imul(ah8, bh8)) | 0),
- (lo = (lo + Math.imul(al7, bl9)) | 0),
- (mid = (mid + Math.imul(al7, bh9)) | 0),
- (mid = (mid + Math.imul(ah7, bl9)) | 0),
- (hi = (hi + Math.imul(ah7, bh9)) | 0);
- var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0),
- (w16 &= 67108863),
- (lo = Math.imul(al9, bl8)),
- (mid = Math.imul(al9, bh8)),
- (mid = (mid + Math.imul(ah9, bl8)) | 0),
- (hi = Math.imul(ah9, bh8)),
- (lo = (lo + Math.imul(al8, bl9)) | 0),
- (mid = (mid + Math.imul(al8, bh9)) | 0),
- (mid = (mid + Math.imul(ah8, bl9)) | 0),
- (hi = (hi + Math.imul(ah8, bh9)) | 0);
- var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0),
- (w17 &= 67108863),
- (lo = Math.imul(al9, bl9)),
- (mid = Math.imul(al9, bh9)),
- (mid = (mid + Math.imul(ah9, bl9)) | 0),
- (hi = Math.imul(ah9, bh9));
- var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- return (
- (c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0),
- (w18 &= 67108863),
- (o[0] = w0),
- (o[1] = w1),
- (o[2] = w2),
- (o[3] = w3),
- (o[4] = w4),
- (o[5] = w5),
- (o[6] = w6),
- (o[7] = w7),
- (o[8] = w8),
- (o[9] = w9),
- (o[10] = w10),
- (o[11] = w11),
- (o[12] = w12),
- (o[13] = w13),
- (o[14] = w14),
- (o[15] = w15),
- (o[16] = w16),
- (o[17] = w17),
- (o[18] = w18),
- c !== 0 && ((o[19] = c), out.length++),
- out
- );
- };
- Math.imul || (comb10MulTo = smallMulTo);
- function bigMulTo(self2, num, out) {
- (out.negative = num.negative ^ self2.negative), (out.length = self2.length + num.length);
- for (var carry = 0, hncarry = 0, k = 0; k < out.length - 1; k++) {
- var ncarry = hncarry;
- hncarry = 0;
- for (
- var rword = carry & 67108863, maxJ = Math.min(k, num.length - 1), j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = k - j,
- a = self2.words[i] | 0,
- b = num.words[j] | 0,
- r = a * b,
- lo = r & 67108863;
- (ncarry = (ncarry + ((r / 67108864) | 0)) | 0),
- (lo = (lo + rword) | 0),
- (rword = lo & 67108863),
- (ncarry = (ncarry + (lo >>> 26)) | 0),
- (hncarry += ncarry >>> 26),
- (ncarry &= 67108863);
- }
- (out.words[k] = rword), (carry = ncarry), (ncarry = hncarry);
- }
- return carry !== 0 ? (out.words[k] = carry) : out.length--, out.strip();
- }
- function jumboMulTo(self2, num, out) {
- var fftm = new FFTM();
- return fftm.mulp(self2, num, out);
- }
- BN.prototype.mulTo = function (num, out) {
- var res,
- len = this.length + num.length;
- return (
- this.length === 10 && num.length === 10
- ? (res = comb10MulTo(this, num, out))
- : len < 63
- ? (res = smallMulTo(this, num, out))
- : len < 1024
- ? (res = bigMulTo(this, num, out))
- : (res = jumboMulTo(this, num, out)),
- res
- );
- };
- function FFTM(x, y) {
- (this.x = x), (this.y = y);
- }
- (FFTM.prototype.makeRBT = function (N) {
- for (var t = new Array(N), l = BN.prototype._countBits(N) - 1, i = 0; i < N; i++) t[i] = this.revBin(i, l, N);
- return t;
- }),
- (FFTM.prototype.revBin = function (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- for (var rb = 0, i = 0; i < l; i++) (rb |= (x & 1) << (l - i - 1)), (x >>= 1);
- return rb;
- }),
- (FFTM.prototype.permute = function (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) (rtws[i] = rws[rbt[i]]), (itws[i] = iws[rbt[i]]);
- }),
- (FFTM.prototype.transform = function (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1)
- for (
- var l = s << 1, rtwdf = Math.cos((2 * Math.PI) / l), itwdf = Math.sin((2 * Math.PI) / l), p = 0;
- p < N;
- p += l
- )
- for (var rtwdf_ = rtwdf, itwdf_ = itwdf, j = 0; j < s; j++) {
- var re = rtws[p + j],
- ie = itws[p + j],
- ro = rtws[p + j + s],
- io = itws[p + j + s],
- rx = rtwdf_ * ro - itwdf_ * io;
- (io = rtwdf_ * io + itwdf_ * ro),
- (ro = rx),
- (rtws[p + j] = re + ro),
- (itws[p + j] = ie + io),
- (rtws[p + j + s] = re - ro),
- (itws[p + j + s] = ie - io),
- j !== l &&
- ((rx = rtwdf * rtwdf_ - itwdf * itwdf_), (itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_), (rtwdf_ = rx));
- }
- }),
- (FFTM.prototype.guessLen13b = function (n, m) {
- var N = Math.max(m, n) | 1,
- odd = N & 1,
- i = 0;
- for (N = (N / 2) | 0; N; N = N >>> 1) i++;
- return 1 << (i + 1 + odd);
- }),
- (FFTM.prototype.conjugate = function (rws, iws, N) {
- if (!(N <= 1))
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- (rws[i] = rws[N - i - 1]),
- (rws[N - i - 1] = t),
- (t = iws[i]),
- (iws[i] = -iws[N - i - 1]),
- (iws[N - i - 1] = -t);
- }
- }),
- (FFTM.prototype.normalize13b = function (ws, N) {
- for (var carry = 0, i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
- (ws[i] = w & 67108863), w < 67108864 ? (carry = 0) : (carry = (w / 67108864) | 0);
- }
- return ws;
- }),
- (FFTM.prototype.convert13b = function (ws, len, rws, N) {
- for (var carry = 0, i = 0; i < len; i++)
- (carry = carry + (ws[i] | 0)),
- (rws[2 * i] = carry & 8191),
- (carry = carry >>> 13),
- (rws[2 * i + 1] = carry & 8191),
- (carry = carry >>> 13);
- for (i = 2 * len; i < N; ++i) rws[i] = 0;
- assert(carry === 0), assert((carry & -8192) === 0);
- }),
- (FFTM.prototype.stub = function (N) {
- for (var ph = new Array(N), i = 0; i < N; i++) ph[i] = 0;
- return ph;
- }),
- (FFTM.prototype.mulp = function (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length),
- rbt = this.makeRBT(N),
- _ = this.stub(N),
- rws = new Array(N),
- rwst = new Array(N),
- iwst = new Array(N),
- nrws = new Array(N),
- nrwst = new Array(N),
- niwst = new Array(N),
- rmws = out.words;
- (rmws.length = N),
- this.convert13b(x.words, x.length, rws, N),
- this.convert13b(y.words, y.length, nrws, N),
- this.transform(rws, _, rwst, iwst, N, rbt),
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- (iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]), (rwst[i] = rx);
- }
- return (
- this.conjugate(rwst, iwst, N),
- this.transform(rwst, iwst, rmws, _, N, rbt),
- this.conjugate(rmws, _, N),
- this.normalize13b(rmws, N),
- (out.negative = x.negative ^ y.negative),
- (out.length = x.length + y.length),
- out.strip()
- );
- }),
- (BN.prototype.mul = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), this.mulTo(num, out);
- }),
- (BN.prototype.mulf = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), jumboMulTo(this, num, out);
- }),
- (BN.prototype.imul = function (num) {
- return this.clone().mulTo(num, this);
- }),
- (BN.prototype.imuln = function (num) {
- assert(typeof num == "number"), assert(num < 67108864);
- for (var carry = 0, i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num,
- lo = (w & 67108863) + (carry & 67108863);
- (carry >>= 26), (carry += (w / 67108864) | 0), (carry += lo >>> 26), (this.words[i] = lo & 67108863);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.muln = function (num) {
- return this.clone().imuln(num);
- }),
- (BN.prototype.sqr = function () {
- return this.mul(this);
- }),
- (BN.prototype.isqr = function () {
- return this.imul(this.clone());
- }),
- (BN.prototype.pow = function (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- for (var res = this, i = 0; i < w.length && w[i] === 0; i++, res = res.sqr());
- if (++i < w.length) for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) w[i] !== 0 && (res = res.mul(q));
- return res;
- }),
- (BN.prototype.iushln = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26,
- carryMask = (67108863 >>> (26 - r)) << (26 - r),
- i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask,
- c = ((this.words[i] | 0) - newCarry) << r;
- (this.words[i] = c | carry), (carry = newCarry >>> (26 - r));
- }
- carry && ((this.words[i] = carry), this.length++);
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) this.words[i + s] = this.words[i];
- for (i = 0; i < s; i++) this.words[i] = 0;
- this.length += s;
- }
- return this.strip();
- }),
- (BN.prototype.ishln = function (bits) {
- return assert(this.negative === 0), this.iushln(bits);
- }),
- (BN.prototype.iushrn = function (bits, hint, extended) {
- assert(typeof bits == "number" && bits >= 0);
- var h;
- hint ? (h = (hint - (hint % 26)) / 26) : (h = 0);
- var r = bits % 26,
- s = Math.min((bits - r) / 26, this.length),
- mask = 67108863 ^ ((67108863 >>> r) << r),
- maskedWords = extended;
- if (((h -= s), (h = Math.max(0, h)), maskedWords)) {
- for (var i = 0; i < s; i++) maskedWords.words[i] = this.words[i];
- maskedWords.length = s;
- }
- if (s !== 0)
- if (this.length > s) for (this.length -= s, i = 0; i < this.length; i++) this.words[i] = this.words[i + s];
- else (this.words[0] = 0), (this.length = 1);
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- (this.words[i] = (carry << (26 - r)) | (word >>> r)), (carry = word & mask);
- }
- return (
- maskedWords && carry !== 0 && (maskedWords.words[maskedWords.length++] = carry),
- this.length === 0 && ((this.words[0] = 0), (this.length = 1)),
- this.strip()
- );
- }),
- (BN.prototype.ishrn = function (bits, hint, extended) {
- return assert(this.negative === 0), this.iushrn(bits, hint, extended);
- }),
- (BN.prototype.shln = function (bits) {
- return this.clone().ishln(bits);
- }),
- (BN.prototype.ushln = function (bits) {
- return this.clone().iushln(bits);
- }),
- (BN.prototype.shrn = function (bits) {
- return this.clone().ishrn(bits);
- }),
- (BN.prototype.ushrn = function (bits) {
- return this.clone().iushrn(bits);
- }),
- (BN.prototype.testn = function (bit) {
- assert(typeof bit == "number" && bit >= 0);
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return !1;
- var w = this.words[s];
- return !!(w & q);
- }),
- (BN.prototype.imaskn = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26;
- if ((assert(this.negative === 0, "imaskn works only with positive numbers"), this.length <= s)) return this;
- if ((r !== 0 && s++, (this.length = Math.min(s, this.length)), r !== 0)) {
- var mask = 67108863 ^ ((67108863 >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this.strip();
- }),
- (BN.prototype.maskn = function (bits) {
- return this.clone().imaskn(bits);
- }),
- (BN.prototype.iaddn = function (num) {
- return (
- assert(typeof num == "number"),
- assert(num < 67108864),
- num < 0
- ? this.isubn(-num)
- : this.negative !== 0
- ? this.length === 1 && (this.words[0] | 0) < num
- ? ((this.words[0] = num - (this.words[0] | 0)), (this.negative = 0), this)
- : ((this.negative = 0), this.isubn(num), (this.negative = 1), this)
- : this._iaddn(num)
- );
- }),
- (BN.prototype._iaddn = function (num) {
- this.words[0] += num;
- for (var i = 0; i < this.length && this.words[i] >= 67108864; i++)
- (this.words[i] -= 67108864), i === this.length - 1 ? (this.words[i + 1] = 1) : this.words[i + 1]++;
- return (this.length = Math.max(this.length, i + 1)), this;
- }),
- (BN.prototype.isubn = function (num) {
- if ((assert(typeof num == "number"), assert(num < 67108864), num < 0)) return this.iaddn(-num);
- if (this.negative !== 0) return (this.negative = 0), this.iaddn(num), (this.negative = 1), this;
- if (((this.words[0] -= num), this.length === 1 && this.words[0] < 0))
- (this.words[0] = -this.words[0]), (this.negative = 1);
- else
- for (var i = 0; i < this.length && this.words[i] < 0; i++)
- (this.words[i] += 67108864), (this.words[i + 1] -= 1);
- return this.strip();
- }),
- (BN.prototype.addn = function (num) {
- return this.clone().iaddn(num);
- }),
- (BN.prototype.subn = function (num) {
- return this.clone().isubn(num);
- }),
- (BN.prototype.iabs = function () {
- return (this.negative = 0), this;
- }),
- (BN.prototype.abs = function () {
- return this.clone().iabs();
- }),
- (BN.prototype._ishlnsubmul = function (num, mul, shift) {
- var len = num.length + shift,
- i;
- this._expand(len);
- var w,
- carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- (w -= right & 67108863),
- (carry = (w >> 26) - ((right / 67108864) | 0)),
- (this.words[i + shift] = w & 67108863);
- }
- for (; i < this.length - shift; i++)
- (w = (this.words[i + shift] | 0) + carry), (carry = w >> 26), (this.words[i + shift] = w & 67108863);
- if (carry === 0) return this.strip();
- for (assert(carry === -1), carry = 0, i = 0; i < this.length; i++)
- (w = -(this.words[i] | 0) + carry), (carry = w >> 26), (this.words[i] = w & 67108863);
- return (this.negative = 1), this.strip();
- }),
- (BN.prototype._wordDiv = function (num, mode) {
- var shift = this.length - num.length,
- a = this.clone(),
- b = num,
- bhi = b.words[b.length - 1] | 0,
- bhiBits = this._countBits(bhi);
- (shift = 26 - bhiBits),
- shift !== 0 && ((b = b.ushln(shift)), a.iushln(shift), (bhi = b.words[b.length - 1] | 0));
- var m = a.length - b.length,
- q;
- if (mode !== "mod") {
- (q = new BN(null)), (q.length = m + 1), (q.words = new Array(q.length));
- for (var i = 0; i < q.length; i++) q.words[i] = 0;
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- diff.negative === 0 && ((a = diff), q && (q.words[m] = 1));
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
- for (qj = Math.min((qj / bhi) | 0, 67108863), a._ishlnsubmul(b, qj, j); a.negative !== 0; )
- qj--, (a.negative = 0), a._ishlnsubmul(b, 1, j), a.isZero() || (a.negative ^= 1);
- q && (q.words[j] = qj);
- }
- return (
- q && q.strip(),
- a.strip(),
- mode !== "div" && shift !== 0 && a.iushrn(shift),
- {
- div: q || null,
- mod: a,
- }
- );
- }),
- (BN.prototype.divmod = function (num, mode, positive) {
- if ((assert(!num.isZero()), this.isZero()))
- return {
- div: new BN(0),
- mod: new BN(0),
- };
- var div, mod, res;
- return this.negative !== 0 && num.negative === 0
- ? ((res = this.neg().divmod(num, mode)),
- mode !== "mod" && (div = res.div.neg()),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.iadd(num)),
- {
- div,
- mod,
- })
- : this.negative === 0 && num.negative !== 0
- ? ((res = this.divmod(num.neg(), mode)),
- mode !== "mod" && (div = res.div.neg()),
- {
- div,
- mod: res.mod,
- })
- : (this.negative & num.negative) !== 0
- ? ((res = this.neg().divmod(num.neg(), mode)),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.isub(num)),
- {
- div: res.div,
- mod,
- })
- : num.length > this.length || this.cmp(num) < 0
- ? {
- div: new BN(0),
- mod: this,
- }
- : num.length === 1
- ? mode === "div"
- ? {
- div: this.divn(num.words[0]),
- mod: null,
- }
- : mode === "mod"
- ? {
- div: null,
- mod: new BN(this.modn(num.words[0])),
- }
- : {
- div: this.divn(num.words[0]),
- mod: new BN(this.modn(num.words[0])),
- }
- : this._wordDiv(num, mode);
- }),
- (BN.prototype.div = function (num) {
- return this.divmod(num, "div", !1).div;
- }),
- (BN.prototype.mod = function (num) {
- return this.divmod(num, "mod", !1).mod;
- }),
- (BN.prototype.umod = function (num) {
- return this.divmod(num, "mod", !0).mod;
- }),
- (BN.prototype.divRound = function (num) {
- var dm = this.divmod(num);
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod,
- half = num.ushrn(1),
- r2 = num.andln(1),
- cmp = mod.cmp(half);
- return cmp < 0 || (r2 === 1 && cmp === 0)
- ? dm.div
- : dm.div.negative !== 0
- ? dm.div.isubn(1)
- : dm.div.iaddn(1);
- }),
- (BN.prototype.modn = function (num) {
- assert(num <= 67108863);
- for (var p = (1 << 26) % num, acc = 0, i = this.length - 1; i >= 0; i--)
- acc = (p * acc + (this.words[i] | 0)) % num;
- return acc;
- }),
- (BN.prototype.idivn = function (num) {
- assert(num <= 67108863);
- for (var carry = 0, i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 67108864;
- (this.words[i] = (w / num) | 0), (carry = w % num);
- }
- return this.strip();
- }),
- (BN.prototype.divn = function (num) {
- return this.clone().idivn(num);
- }),
- (BN.prototype.egcd = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var x = this,
- y = p.clone();
- x.negative !== 0 ? (x = x.umod(p)) : (x = x.clone());
- for (var A = new BN(1), B = new BN(0), C = new BN(0), D = new BN(1), g = 0; x.isEven() && y.isEven(); )
- x.iushrn(1), y.iushrn(1), ++g;
- for (var yp = y.clone(), xp = x.clone(); !x.isZero(); ) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0)
- for (x.iushrn(i); i-- > 0; )
- (A.isOdd() || B.isOdd()) && (A.iadd(yp), B.isub(xp)), A.iushrn(1), B.iushrn(1);
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0)
- for (y.iushrn(j); j-- > 0; )
- (C.isOdd() || D.isOdd()) && (C.iadd(yp), D.isub(xp)), C.iushrn(1), D.iushrn(1);
- x.cmp(y) >= 0 ? (x.isub(y), A.isub(C), B.isub(D)) : (y.isub(x), C.isub(A), D.isub(B));
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g),
- };
- }),
- (BN.prototype._invmp = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var a = this,
- b = p.clone();
- a.negative !== 0 ? (a = a.umod(p)) : (a = a.clone());
- for (var x1 = new BN(1), x2 = new BN(0), delta = b.clone(); a.cmpn(1) > 0 && b.cmpn(1) > 0; ) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) for (a.iushrn(i); i-- > 0; ) x1.isOdd() && x1.iadd(delta), x1.iushrn(1);
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) for (b.iushrn(j); j-- > 0; ) x2.isOdd() && x2.iadd(delta), x2.iushrn(1);
- a.cmp(b) >= 0 ? (a.isub(b), x1.isub(x2)) : (b.isub(a), x2.isub(x1));
- }
- var res;
- return a.cmpn(1) === 0 ? (res = x1) : (res = x2), res.cmpn(0) < 0 && res.iadd(p), res;
- }),
- (BN.prototype.gcd = function (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone(),
- b = num.clone();
- (a.negative = 0), (b.negative = 0);
- for (var shift = 0; a.isEven() && b.isEven(); shift++) a.iushrn(1), b.iushrn(1);
- do {
- for (; a.isEven(); ) a.iushrn(1);
- for (; b.isEven(); ) b.iushrn(1);
- var r = a.cmp(b);
- if (r < 0) {
- var t = a;
- (a = b), (b = t);
- } else if (r === 0 || b.cmpn(1) === 0) break;
- a.isub(b);
- } while (!0);
- return b.iushln(shift);
- }),
- (BN.prototype.invm = function (num) {
- return this.egcd(num).a.umod(num);
- }),
- (BN.prototype.isEven = function () {
- return (this.words[0] & 1) === 0;
- }),
- (BN.prototype.isOdd = function () {
- return (this.words[0] & 1) === 1;
- }),
- (BN.prototype.andln = function (num) {
- return this.words[0] & num;
- }),
- (BN.prototype.bincn = function (bit) {
- assert(typeof bit == "number");
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return this._expand(s + 1), (this.words[s] |= q), this;
- for (var carry = q, i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- (w += carry), (carry = w >>> 26), (w &= 67108863), (this.words[i] = w);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.isZero = function () {
- return this.length === 1 && this.words[0] === 0;
- }),
- (BN.prototype.cmpn = function (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this.strip();
- var res;
- if (this.length > 1) res = 1;
- else {
- negative && (num = -num), assert(num <= 67108863, "Number is too big");
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.cmp = function (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.ucmp = function (num) {
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- for (var res = 0, i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0,
- b = num.words[i] | 0;
- if (a !== b) {
- a < b ? (res = -1) : a > b && (res = 1);
- break;
- }
- }
- return res;
- }),
- (BN.prototype.gtn = function (num) {
- return this.cmpn(num) === 1;
- }),
- (BN.prototype.gt = function (num) {
- return this.cmp(num) === 1;
- }),
- (BN.prototype.gten = function (num) {
- return this.cmpn(num) >= 0;
- }),
- (BN.prototype.gte = function (num) {
- return this.cmp(num) >= 0;
- }),
- (BN.prototype.ltn = function (num) {
- return this.cmpn(num) === -1;
- }),
- (BN.prototype.lt = function (num) {
- return this.cmp(num) === -1;
- }),
- (BN.prototype.lten = function (num) {
- return this.cmpn(num) <= 0;
- }),
- (BN.prototype.lte = function (num) {
- return this.cmp(num) <= 0;
- }),
- (BN.prototype.eqn = function (num) {
- return this.cmpn(num) === 0;
- }),
- (BN.prototype.eq = function (num) {
- return this.cmp(num) === 0;
- }),
- (BN.red = function (num) {
- return new Red(num);
- }),
- (BN.prototype.toRed = function (ctx) {
- return (
- assert(!this.red, "Already a number in reduction context"),
- assert(this.negative === 0, "red works only with positives"),
- ctx.convertTo(this)._forceRed(ctx)
- );
- }),
- (BN.prototype.fromRed = function () {
- return assert(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this);
- }),
- (BN.prototype._forceRed = function (ctx) {
- return (this.red = ctx), this;
- }),
- (BN.prototype.forceRed = function (ctx) {
- return assert(!this.red, "Already a number in reduction context"), this._forceRed(ctx);
- }),
- (BN.prototype.redAdd = function (num) {
- return assert(this.red, "redAdd works only with red numbers"), this.red.add(this, num);
- }),
- (BN.prototype.redIAdd = function (num) {
- return assert(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, num);
- }),
- (BN.prototype.redSub = function (num) {
- return assert(this.red, "redSub works only with red numbers"), this.red.sub(this, num);
- }),
- (BN.prototype.redISub = function (num) {
- return assert(this.red, "redISub works only with red numbers"), this.red.isub(this, num);
- }),
- (BN.prototype.redShl = function (num) {
- return assert(this.red, "redShl works only with red numbers"), this.red.shl(this, num);
- }),
- (BN.prototype.redMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.mul(this, num)
- );
- }),
- (BN.prototype.redIMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.imul(this, num)
- );
- }),
- (BN.prototype.redSqr = function () {
- return assert(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this);
- }),
- (BN.prototype.redISqr = function () {
- return assert(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this);
- }),
- (BN.prototype.redSqrt = function () {
- return assert(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this);
- }),
- (BN.prototype.redInvm = function () {
- return assert(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this);
- }),
- (BN.prototype.redNeg = function () {
- return assert(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this);
- }),
- (BN.prototype.redPow = function (num) {
- return assert(this.red && !num.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, num);
- });
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null,
- };
- function MPrime(name, p) {
- (this.name = name),
- (this.p = new BN(p, 16)),
- (this.n = this.p.bitLength()),
- (this.k = new BN(1).iushln(this.n).isub(this.p)),
- (this.tmp = this._tmp());
- }
- (MPrime.prototype._tmp = function () {
- var tmp = new BN(null);
- return (tmp.words = new Array(Math.ceil(this.n / 13))), tmp;
- }),
- (MPrime.prototype.ireduce = function (num) {
- var r = num,
- rlen;
- do this.split(r, this.tmp), (r = this.imulK(r)), (r = r.iadd(this.tmp)), (rlen = r.bitLength());
- while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- return (
- cmp === 0
- ? ((r.words[0] = 0), (r.length = 1))
- : cmp > 0
- ? r.isub(this.p)
- : r.strip !== void 0
- ? r.strip()
- : r._strip(),
- r
- );
- }),
- (MPrime.prototype.split = function (input, out) {
- input.iushrn(this.n, 0, out);
- }),
- (MPrime.prototype.imulK = function (num) {
- return num.imul(this.k);
- });
- function K256() {
- MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
- }
- inherits(K256, MPrime),
- (K256.prototype.split = function (input, output) {
- for (var mask = 4194303, outLen = Math.min(input.length, 9), i = 0; i < outLen; i++)
- output.words[i] = input.words[i];
- if (((output.length = outLen), input.length <= 9)) {
- (input.words[0] = 0), (input.length = 1);
- return;
- }
- var prev = input.words[9];
- for (output.words[output.length++] = prev & mask, i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- (input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22)), (prev = next);
- }
- (prev >>>= 22),
- (input.words[i - 10] = prev),
- prev === 0 && input.length > 10 ? (input.length -= 10) : (input.length -= 9);
- }),
- (K256.prototype.imulK = function (num) {
- (num.words[num.length] = 0), (num.words[num.length + 1] = 0), (num.length += 2);
- for (var lo = 0, i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- (lo += w * 977), (num.words[i] = lo & 67108863), (lo = w * 64 + ((lo / 67108864) | 0));
- }
- return (
- num.words[num.length - 1] === 0 && (num.length--, num.words[num.length - 1] === 0 && num.length--), num
- );
- });
- function P224() {
- MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
- }
- inherits(P224, MPrime);
- function P192() {
- MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
- }
- inherits(P192, MPrime);
- function P25519() {
- MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
- }
- inherits(P25519, MPrime),
- (P25519.prototype.imulK = function (num) {
- for (var carry = 0, i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 19 + carry,
- lo = hi & 67108863;
- (hi >>>= 26), (num.words[i] = lo), (carry = hi);
- }
- return carry !== 0 && (num.words[num.length++] = carry), num;
- }),
- (BN._prime = function (name) {
- if (primes[name]) return primes[name];
- var prime2;
- if (name === "k256") prime2 = new K256();
- else if (name === "p224") prime2 = new P224();
- else if (name === "p192") prime2 = new P192();
- else if (name === "p25519") prime2 = new P25519();
- else throw new Error("Unknown prime " + name);
- return (primes[name] = prime2), prime2;
- });
- function Red(m) {
- if (typeof m == "string") {
- var prime = BN._prime(m);
- (this.m = prime.p), (this.prime = prime);
- } else assert(m.gtn(1), "modulus must be greater than 1"), (this.m = m), (this.prime = null);
- }
- (Red.prototype._verify1 = function (a) {
- assert(a.negative === 0, "red works only with positives"), assert(a.red, "red works only with red numbers");
- }),
- (Red.prototype._verify2 = function (a, b) {
- assert((a.negative | b.negative) === 0, "red works only with positives"),
- assert(a.red && a.red === b.red, "red works only with red numbers");
- }),
- (Red.prototype.imod = function (a) {
- return this.prime ? this.prime.ireduce(a)._forceRed(this) : a.umod(this.m)._forceRed(this);
- }),
- (Red.prototype.neg = function (a) {
- return a.isZero() ? a.clone() : this.m.sub(a)._forceRed(this);
- }),
- (Red.prototype.add = function (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res._forceRed(this);
- }),
- (Red.prototype.iadd = function (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res;
- }),
- (Red.prototype.sub = function (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res._forceRed(this);
- }),
- (Red.prototype.isub = function (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res;
- }),
- (Red.prototype.shl = function (a, num) {
- return this._verify1(a), this.imod(a.ushln(num));
- }),
- (Red.prototype.imul = function (a, b) {
- return this._verify2(a, b), this.imod(a.imul(b));
- }),
- (Red.prototype.mul = function (a, b) {
- return this._verify2(a, b), this.imod(a.mul(b));
- }),
- (Red.prototype.isqr = function (a) {
- return this.imul(a, a.clone());
- }),
- (Red.prototype.sqr = function (a) {
- return this.mul(a, a);
- }),
- (Red.prototype.sqrt = function (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- if ((assert(mod3 % 2 === 1), mod3 === 3)) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- for (var q = this.m.subn(1), s = 0; !q.isZero() && q.andln(1) === 0; ) s++, q.iushrn(1);
- assert(!q.isZero());
- var one = new BN(1).toRed(this),
- nOne = one.redNeg(),
- lpow = this.m.subn(1).iushrn(1),
- z = this.m.bitLength();
- for (z = new BN(2 * z * z).toRed(this); this.pow(z, lpow).cmp(nOne) !== 0; ) z.redIAdd(nOne);
- for (
- var c = this.pow(z, q), r = this.pow(a, q.addn(1).iushrn(1)), t = this.pow(a, q), m = s;
- t.cmp(one) !== 0;
-
- ) {
- for (var tmp = t, i = 0; tmp.cmp(one) !== 0; i++) tmp = tmp.redSqr();
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- (r = r.redMul(b)), (c = b.redSqr()), (t = t.redMul(c)), (m = i);
- }
- return r;
- }),
- (Red.prototype.invm = function (a) {
- var inv = a._invmp(this.m);
- return inv.negative !== 0 ? ((inv.negative = 0), this.imod(inv).redNeg()) : this.imod(inv);
- }),
- (Red.prototype.pow = function (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4,
- wnd = new Array(1 << windowSize);
- (wnd[0] = new BN(1).toRed(this)), (wnd[1] = a);
- for (var i = 2; i < wnd.length; i++) wnd[i] = this.mul(wnd[i - 1], a);
- var res = wnd[0],
- current = 0,
- currentLen = 0,
- start = num.bitLength() % 26;
- for (start === 0 && (start = 26), i = num.length - 1; i >= 0; i--) {
- for (var word = num.words[i], j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if ((res !== wnd[0] && (res = this.sqr(res)), bit === 0 && current === 0)) {
- currentLen = 0;
- continue;
- }
- (current <<= 1),
- (current |= bit),
- currentLen++,
- !(currentLen !== windowSize && (i !== 0 || j !== 0)) &&
- ((res = this.mul(res, wnd[current])), (currentLen = 0), (current = 0));
- }
- start = 26;
- }
- return res;
- }),
- (Red.prototype.convertTo = function (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- }),
- (Red.prototype.convertFrom = function (num) {
- var res = num.clone();
- return (res.red = null), res;
- }),
- (BN.mont = function (num) {
- return new Mont(num);
- });
- function Mont(m) {
- Red.call(this, m),
- (this.shift = this.m.bitLength()),
- this.shift % 26 !== 0 && (this.shift += 26 - (this.shift % 26)),
- (this.r = new BN(1).iushln(this.shift)),
- (this.r2 = this.imod(this.r.sqr())),
- (this.rinv = this.r._invmp(this.m)),
- (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)),
- (this.minv = this.minv.umod(this.r)),
- (this.minv = this.r.sub(this.minv));
- }
- inherits(Mont, Red),
- (Mont.prototype.convertTo = function (num) {
- return this.imod(num.ushln(this.shift));
- }),
- (Mont.prototype.convertFrom = function (num) {
- var r = this.imod(num.mul(this.rinv));
- return (r.red = null), r;
- }),
- (Mont.prototype.imul = function (a, b) {
- if (a.isZero() || b.isZero()) return (a.words[0] = 0), (a.length = 1), a;
- var t = a.imul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.mul = function (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.invm = function (a) {
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- });
- })(typeof module > "u" || module, exports);
- },
-});
-
-// node_modules/miller-rabin/node_modules/bn.js/lib/bn.js
-var require_bn2 = __commonJS({
- "node_modules/miller-rabin/node_modules/bn.js/lib/bn.js"(exports, module) {
- (function (module2, exports2) {
- "use strict";
- function assert(val, msg) {
- if (!val) throw new Error(msg || "Assertion failed");
- }
- function inherits(ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- (TempCtor.prototype = superCtor.prototype),
- (ctor.prototype = new TempCtor()),
- (ctor.prototype.constructor = ctor);
- }
- function BN(number, base, endian) {
- if (BN.isBN(number)) return number;
- (this.negative = 0),
- (this.words = null),
- (this.length = 0),
- (this.red = null),
- number !== null &&
- ((base === "le" || base === "be") && ((endian = base), (base = 10)),
- this._init(number || 0, base || 10, endian || "be"));
- }
- typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26);
- var Buffer2;
- try {
- typeof window < "u" && typeof window.Buffer < "u"
- ? (Buffer2 = window.Buffer)
- : (Buffer2 = __require("buffer").Buffer);
- } catch {}
- (BN.isBN = function (num) {
- return num instanceof BN
- ? !0
- : num !== null &&
- typeof num == "object" &&
- num.constructor.wordSize === BN.wordSize &&
- Array.isArray(num.words);
- }),
- (BN.max = function (left, right) {
- return left.cmp(right) > 0 ? left : right;
- }),
- (BN.min = function (left, right) {
- return left.cmp(right) < 0 ? left : right;
- }),
- (BN.prototype._init = function (number, base, endian) {
- if (typeof number == "number") return this._initNumber(number, base, endian);
- if (typeof number == "object") return this._initArray(number, base, endian);
- base === "hex" && (base = 16),
- assert(base === (base | 0) && base >= 2 && base <= 36),
- (number = number.toString().replace(/\s+/g, ""));
- var start = 0;
- number[0] === "-" && (start++, (this.negative = 1)),
- start < number.length &&
- (base === 16
- ? this._parseHex(number, start, endian)
- : (this._parseBase(number, base, start),
- endian === "le" && this._initArray(this.toArray(), base, endian)));
- }),
- (BN.prototype._initNumber = function (number, base, endian) {
- number < 0 && ((this.negative = 1), (number = -number)),
- number < 67108864
- ? ((this.words = [number & 67108863]), (this.length = 1))
- : number < 4503599627370496
- ? ((this.words = [number & 67108863, (number / 67108864) & 67108863]), (this.length = 2))
- : (assert(number < 9007199254740992),
- (this.words = [number & 67108863, (number / 67108864) & 67108863, 1]),
- (this.length = 3)),
- endian === "le" && this._initArray(this.toArray(), base, endian);
- }),
- (BN.prototype._initArray = function (number, base, endian) {
- if ((assert(typeof number.length == "number"), number.length <= 0))
- return (this.words = [0]), (this.length = 1), this;
- (this.length = Math.ceil(number.length / 3)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var j,
- w,
- off = 0;
- if (endian === "be")
- for (i = number.length - 1, j = 0; i >= 0; i -= 3)
- (w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- else if (endian === "le")
- for (i = 0, j = 0; i < number.length; i += 3)
- (w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- return this.strip();
- });
- function parseHex4Bits(string, index) {
- var c = string.charCodeAt(index);
- return c >= 65 && c <= 70 ? c - 55 : c >= 97 && c <= 102 ? c - 87 : (c - 48) & 15;
- }
- function parseHexByte(string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- return index - 1 >= lowerBound && (r |= parseHex4Bits(string, index - 1) << 4), r;
- }
- BN.prototype._parseHex = function (number, start, endian) {
- (this.length = Math.ceil((number.length - start) / 6)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var off = 0,
- j = 0,
- w;
- if (endian === "be")
- for (i = number.length - 1; i >= start; i -= 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- }
- this.strip();
- };
- function parseBase(str, start, end, mul) {
- for (var r = 0, len = Math.min(str.length, end), i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- (r *= mul), c >= 49 ? (r += c - 49 + 10) : c >= 17 ? (r += c - 17 + 10) : (r += c);
- }
- return r;
- }
- (BN.prototype._parseBase = function (number, base, start) {
- (this.words = [0]), (this.length = 1);
- for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) limbLen++;
- limbLen--, (limbPow = (limbPow / base) | 0);
- for (
- var total = number.length - start,
- mod = total % limbLen,
- end = Math.min(total, total - mod) + start,
- word = 0,
- i = start;
- i < end;
- i += limbLen
- )
- (word = parseBase(number, i, i + limbLen, base)),
- this.imuln(limbPow),
- this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- if (mod !== 0) {
- var pow = 1;
- for (word = parseBase(number, i, number.length, base), i = 0; i < mod; i++) pow *= base;
- this.imuln(pow), this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- }
- this.strip();
- }),
- (BN.prototype.copy = function (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) dest.words[i] = this.words[i];
- (dest.length = this.length), (dest.negative = this.negative), (dest.red = this.red);
- }),
- (BN.prototype.clone = function () {
- var r = new BN(null);
- return this.copy(r), r;
- }),
- (BN.prototype._expand = function (size) {
- for (; this.length < size; ) this.words[this.length++] = 0;
- return this;
- }),
- (BN.prototype.strip = function () {
- for (; this.length > 1 && this.words[this.length - 1] === 0; ) this.length--;
- return this._normSign();
- }),
- (BN.prototype._normSign = function () {
- return this.length === 1 && this.words[0] === 0 && (this.negative = 0), this;
- }),
- (BN.prototype.inspect = function () {
- return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
- });
- var zeros = [
- "",
- "0",
- "00",
- "000",
- "0000",
- "00000",
- "000000",
- "0000000",
- "00000000",
- "000000000",
- "0000000000",
- "00000000000",
- "000000000000",
- "0000000000000",
- "00000000000000",
- "000000000000000",
- "0000000000000000",
- "00000000000000000",
- "000000000000000000",
- "0000000000000000000",
- "00000000000000000000",
- "000000000000000000000",
- "0000000000000000000000",
- "00000000000000000000000",
- "000000000000000000000000",
- "0000000000000000000000000",
- ],
- groupSizes = [
- 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5,
- ],
- groupBases = [
- 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808,
- 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624,
- 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875,
- 60466176,
- ];
- (BN.prototype.toString = function (base, padding) {
- (base = base || 10), (padding = padding | 0 || 1);
- var out;
- if (base === 16 || base === "hex") {
- out = "";
- for (var off = 0, carry = 0, i = 0; i < this.length; i++) {
- var w = this.words[i],
- word = (((w << off) | carry) & 16777215).toString(16);
- (carry = (w >>> (24 - off)) & 16777215),
- carry !== 0 || i !== this.length - 1 ? (out = zeros[6 - word.length] + word + out) : (out = word + out),
- (off += 2),
- off >= 26 && ((off -= 26), i--);
- }
- for (carry !== 0 && (out = carry.toString(16) + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- var groupSize = groupSizes[base],
- groupBase = groupBases[base];
- out = "";
- var c = this.clone();
- for (c.negative = 0; !c.isZero(); ) {
- var r = c.modn(groupBase).toString(base);
- (c = c.idivn(groupBase)), c.isZero() ? (out = r + out) : (out = zeros[groupSize - r.length] + r + out);
- }
- for (this.isZero() && (out = "0" + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- assert(!1, "Base should be between 2 and 36");
- }),
- (BN.prototype.toNumber = function () {
- var ret = this.words[0];
- return (
- this.length === 2
- ? (ret += this.words[1] * 67108864)
- : this.length === 3 && this.words[2] === 1
- ? (ret += 4503599627370496 + this.words[1] * 67108864)
- : this.length > 2 && assert(!1, "Number can only safely store up to 53 bits"),
- this.negative !== 0 ? -ret : ret
- );
- }),
- (BN.prototype.toJSON = function () {
- return this.toString(16);
- }),
- (BN.prototype.toBuffer = function (endian, length) {
- return assert(typeof Buffer2 < "u"), this.toArrayLike(Buffer2, endian, length);
- }),
- (BN.prototype.toArray = function (endian, length) {
- return this.toArrayLike(Array, endian, length);
- }),
- (BN.prototype.toArrayLike = function (ArrayType, endian, length) {
- var byteLength = this.byteLength(),
- reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, "byte array longer than desired length"),
- assert(reqLength > 0, "Requested array length <= 0"),
- this.strip();
- var littleEndian = endian === "le",
- res = new ArrayType(reqLength),
- b,
- i,
- q = this.clone();
- if (littleEndian) {
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[i] = b);
- for (; i < reqLength; i++) res[i] = 0;
- } else {
- for (i = 0; i < reqLength - byteLength; i++) res[i] = 0;
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[reqLength - i - 1] = b);
- }
- return res;
- }),
- Math.clz32
- ? (BN.prototype._countBits = function (w) {
- return 32 - Math.clz32(w);
- })
- : (BN.prototype._countBits = function (w) {
- var t = w,
- r = 0;
- return (
- t >= 4096 && ((r += 13), (t >>>= 13)),
- t >= 64 && ((r += 7), (t >>>= 7)),
- t >= 8 && ((r += 4), (t >>>= 4)),
- t >= 2 && ((r += 2), (t >>>= 2)),
- r + t
- );
- }),
- (BN.prototype._zeroBits = function (w) {
- if (w === 0) return 26;
- var t = w,
- r = 0;
- return (
- (t & 8191) === 0 && ((r += 13), (t >>>= 13)),
- (t & 127) === 0 && ((r += 7), (t >>>= 7)),
- (t & 15) === 0 && ((r += 4), (t >>>= 4)),
- (t & 3) === 0 && ((r += 2), (t >>>= 2)),
- (t & 1) === 0 && r++,
- r
- );
- }),
- (BN.prototype.bitLength = function () {
- var w = this.words[this.length - 1],
- hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- });
- function toBitArray(num) {
- for (var w = new Array(num.bitLength()), bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;
- }
- return w;
- }
- (BN.prototype.zeroBits = function () {
- if (this.isZero()) return 0;
- for (var r = 0, i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- if (((r += b), b !== 26)) break;
- }
- return r;
- }),
- (BN.prototype.byteLength = function () {
- return Math.ceil(this.bitLength() / 8);
- }),
- (BN.prototype.toTwos = function (width) {
- return this.negative !== 0 ? this.abs().inotn(width).iaddn(1) : this.clone();
- }),
- (BN.prototype.fromTwos = function (width) {
- return this.testn(width - 1) ? this.notn(width).iaddn(1).ineg() : this.clone();
- }),
- (BN.prototype.isNeg = function () {
- return this.negative !== 0;
- }),
- (BN.prototype.neg = function () {
- return this.clone().ineg();
- }),
- (BN.prototype.ineg = function () {
- return this.isZero() || (this.negative ^= 1), this;
- }),
- (BN.prototype.iuor = function (num) {
- for (; this.length < num.length; ) this.words[this.length++] = 0;
- for (var i = 0; i < num.length; i++) this.words[i] = this.words[i] | num.words[i];
- return this.strip();
- }),
- (BN.prototype.ior = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuor(num);
- }),
- (BN.prototype.or = function (num) {
- return this.length > num.length ? this.clone().ior(num) : num.clone().ior(this);
- }),
- (BN.prototype.uor = function (num) {
- return this.length > num.length ? this.clone().iuor(num) : num.clone().iuor(this);
- }),
- (BN.prototype.iuand = function (num) {
- var b;
- this.length > num.length ? (b = num) : (b = this);
- for (var i = 0; i < b.length; i++) this.words[i] = this.words[i] & num.words[i];
- return (this.length = b.length), this.strip();
- }),
- (BN.prototype.iand = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuand(num);
- }),
- (BN.prototype.and = function (num) {
- return this.length > num.length ? this.clone().iand(num) : num.clone().iand(this);
- }),
- (BN.prototype.uand = function (num) {
- return this.length > num.length ? this.clone().iuand(num) : num.clone().iuand(this);
- }),
- (BN.prototype.iuxor = function (num) {
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var i = 0; i < b.length; i++) this.words[i] = a.words[i] ^ b.words[i];
- if (this !== a) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = a.length), this.strip();
- }),
- (BN.prototype.ixor = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuxor(num);
- }),
- (BN.prototype.xor = function (num) {
- return this.length > num.length ? this.clone().ixor(num) : num.clone().ixor(this);
- }),
- (BN.prototype.uxor = function (num) {
- return this.length > num.length ? this.clone().iuxor(num) : num.clone().iuxor(this);
- }),
- (BN.prototype.inotn = function (width) {
- assert(typeof width == "number" && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0,
- bitsLeft = width % 26;
- this._expand(bytesNeeded), bitsLeft > 0 && bytesNeeded--;
- for (var i = 0; i < bytesNeeded; i++) this.words[i] = ~this.words[i] & 67108863;
- return bitsLeft > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft))), this.strip();
- }),
- (BN.prototype.notn = function (width) {
- return this.clone().inotn(width);
- }),
- (BN.prototype.setn = function (bit, val) {
- assert(typeof bit == "number" && bit >= 0);
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- return (
- this._expand(off + 1),
- val
- ? (this.words[off] = this.words[off] | (1 << wbit))
- : (this.words[off] = this.words[off] & ~(1 << wbit)),
- this.strip()
- );
- }),
- (BN.prototype.iadd = function (num) {
- var r;
- if (this.negative !== 0 && num.negative === 0)
- return (this.negative = 0), (r = this.isub(num)), (this.negative ^= 1), this._normSign();
- if (this.negative === 0 && num.negative !== 0)
- return (num.negative = 0), (r = this.isub(num)), (num.negative = 1), r._normSign();
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) + (b.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- if (((this.length = a.length), carry !== 0)) (this.words[this.length] = carry), this.length++;
- else if (a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return this;
- }),
- (BN.prototype.add = function (num) {
- var res;
- return num.negative !== 0 && this.negative === 0
- ? ((num.negative = 0), (res = this.sub(num)), (num.negative ^= 1), res)
- : num.negative === 0 && this.negative !== 0
- ? ((this.negative = 0), (res = num.sub(this)), (this.negative = 1), res)
- : this.length > num.length
- ? this.clone().iadd(num)
- : num.clone().iadd(this);
- }),
- (BN.prototype.isub = function (num) {
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- return (num.negative = 1), r._normSign();
- } else if (this.negative !== 0)
- return (this.negative = 0), this.iadd(num), (this.negative = 1), this._normSign();
- var cmp = this.cmp(num);
- if (cmp === 0) return (this.negative = 0), (this.length = 1), (this.words[0] = 0), this;
- var a, b;
- cmp > 0 ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) - (b.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- if (carry === 0 && i < a.length && a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = Math.max(this.length, i)), a !== this && (this.negative = 1), this.strip();
- }),
- (BN.prototype.sub = function (num) {
- return this.clone().isub(num);
- });
- function smallMulTo(self2, num, out) {
- out.negative = num.negative ^ self2.negative;
- var len = (self2.length + num.length) | 0;
- (out.length = len), (len = (len - 1) | 0);
- var a = self2.words[0] | 0,
- b = num.words[0] | 0,
- r = a * b,
- lo = r & 67108863,
- carry = (r / 67108864) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- for (
- var ncarry = carry >>> 26,
- rword = carry & 67108863,
- maxJ = Math.min(k, num.length - 1),
- j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = (k - j) | 0;
- (a = self2.words[i] | 0),
- (b = num.words[j] | 0),
- (r = a * b + rword),
- (ncarry += (r / 67108864) | 0),
- (rword = r & 67108863);
- }
- (out.words[k] = rword | 0), (carry = ncarry | 0);
- }
- return carry !== 0 ? (out.words[k] = carry | 0) : out.length--, out.strip();
- }
- var comb10MulTo = function (self2, num, out) {
- var a = self2.words,
- b = num.words,
- o = out.words,
- c = 0,
- lo,
- mid,
- hi,
- a0 = a[0] | 0,
- al0 = a0 & 8191,
- ah0 = a0 >>> 13,
- a1 = a[1] | 0,
- al1 = a1 & 8191,
- ah1 = a1 >>> 13,
- a2 = a[2] | 0,
- al2 = a2 & 8191,
- ah2 = a2 >>> 13,
- a3 = a[3] | 0,
- al3 = a3 & 8191,
- ah3 = a3 >>> 13,
- a4 = a[4] | 0,
- al4 = a4 & 8191,
- ah4 = a4 >>> 13,
- a5 = a[5] | 0,
- al5 = a5 & 8191,
- ah5 = a5 >>> 13,
- a6 = a[6] | 0,
- al6 = a6 & 8191,
- ah6 = a6 >>> 13,
- a7 = a[7] | 0,
- al7 = a7 & 8191,
- ah7 = a7 >>> 13,
- a8 = a[8] | 0,
- al8 = a8 & 8191,
- ah8 = a8 >>> 13,
- a9 = a[9] | 0,
- al9 = a9 & 8191,
- ah9 = a9 >>> 13,
- b0 = b[0] | 0,
- bl0 = b0 & 8191,
- bh0 = b0 >>> 13,
- b1 = b[1] | 0,
- bl1 = b1 & 8191,
- bh1 = b1 >>> 13,
- b2 = b[2] | 0,
- bl2 = b2 & 8191,
- bh2 = b2 >>> 13,
- b3 = b[3] | 0,
- bl3 = b3 & 8191,
- bh3 = b3 >>> 13,
- b4 = b[4] | 0,
- bl4 = b4 & 8191,
- bh4 = b4 >>> 13,
- b5 = b[5] | 0,
- bl5 = b5 & 8191,
- bh5 = b5 >>> 13,
- b6 = b[6] | 0,
- bl6 = b6 & 8191,
- bh6 = b6 >>> 13,
- b7 = b[7] | 0,
- bl7 = b7 & 8191,
- bh7 = b7 >>> 13,
- b8 = b[8] | 0,
- bl8 = b8 & 8191,
- bh8 = b8 >>> 13,
- b9 = b[9] | 0,
- bl9 = b9 & 8191,
- bh9 = b9 >>> 13;
- (out.negative = self2.negative ^ num.negative),
- (out.length = 19),
- (lo = Math.imul(al0, bl0)),
- (mid = Math.imul(al0, bh0)),
- (mid = (mid + Math.imul(ah0, bl0)) | 0),
- (hi = Math.imul(ah0, bh0));
- var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0),
- (w0 &= 67108863),
- (lo = Math.imul(al1, bl0)),
- (mid = Math.imul(al1, bh0)),
- (mid = (mid + Math.imul(ah1, bl0)) | 0),
- (hi = Math.imul(ah1, bh0)),
- (lo = (lo + Math.imul(al0, bl1)) | 0),
- (mid = (mid + Math.imul(al0, bh1)) | 0),
- (mid = (mid + Math.imul(ah0, bl1)) | 0),
- (hi = (hi + Math.imul(ah0, bh1)) | 0);
- var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0),
- (w1 &= 67108863),
- (lo = Math.imul(al2, bl0)),
- (mid = Math.imul(al2, bh0)),
- (mid = (mid + Math.imul(ah2, bl0)) | 0),
- (hi = Math.imul(ah2, bh0)),
- (lo = (lo + Math.imul(al1, bl1)) | 0),
- (mid = (mid + Math.imul(al1, bh1)) | 0),
- (mid = (mid + Math.imul(ah1, bl1)) | 0),
- (hi = (hi + Math.imul(ah1, bh1)) | 0),
- (lo = (lo + Math.imul(al0, bl2)) | 0),
- (mid = (mid + Math.imul(al0, bh2)) | 0),
- (mid = (mid + Math.imul(ah0, bl2)) | 0),
- (hi = (hi + Math.imul(ah0, bh2)) | 0);
- var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0),
- (w2 &= 67108863),
- (lo = Math.imul(al3, bl0)),
- (mid = Math.imul(al3, bh0)),
- (mid = (mid + Math.imul(ah3, bl0)) | 0),
- (hi = Math.imul(ah3, bh0)),
- (lo = (lo + Math.imul(al2, bl1)) | 0),
- (mid = (mid + Math.imul(al2, bh1)) | 0),
- (mid = (mid + Math.imul(ah2, bl1)) | 0),
- (hi = (hi + Math.imul(ah2, bh1)) | 0),
- (lo = (lo + Math.imul(al1, bl2)) | 0),
- (mid = (mid + Math.imul(al1, bh2)) | 0),
- (mid = (mid + Math.imul(ah1, bl2)) | 0),
- (hi = (hi + Math.imul(ah1, bh2)) | 0),
- (lo = (lo + Math.imul(al0, bl3)) | 0),
- (mid = (mid + Math.imul(al0, bh3)) | 0),
- (mid = (mid + Math.imul(ah0, bl3)) | 0),
- (hi = (hi + Math.imul(ah0, bh3)) | 0);
- var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0),
- (w3 &= 67108863),
- (lo = Math.imul(al4, bl0)),
- (mid = Math.imul(al4, bh0)),
- (mid = (mid + Math.imul(ah4, bl0)) | 0),
- (hi = Math.imul(ah4, bh0)),
- (lo = (lo + Math.imul(al3, bl1)) | 0),
- (mid = (mid + Math.imul(al3, bh1)) | 0),
- (mid = (mid + Math.imul(ah3, bl1)) | 0),
- (hi = (hi + Math.imul(ah3, bh1)) | 0),
- (lo = (lo + Math.imul(al2, bl2)) | 0),
- (mid = (mid + Math.imul(al2, bh2)) | 0),
- (mid = (mid + Math.imul(ah2, bl2)) | 0),
- (hi = (hi + Math.imul(ah2, bh2)) | 0),
- (lo = (lo + Math.imul(al1, bl3)) | 0),
- (mid = (mid + Math.imul(al1, bh3)) | 0),
- (mid = (mid + Math.imul(ah1, bl3)) | 0),
- (hi = (hi + Math.imul(ah1, bh3)) | 0),
- (lo = (lo + Math.imul(al0, bl4)) | 0),
- (mid = (mid + Math.imul(al0, bh4)) | 0),
- (mid = (mid + Math.imul(ah0, bl4)) | 0),
- (hi = (hi + Math.imul(ah0, bh4)) | 0);
- var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0),
- (w4 &= 67108863),
- (lo = Math.imul(al5, bl0)),
- (mid = Math.imul(al5, bh0)),
- (mid = (mid + Math.imul(ah5, bl0)) | 0),
- (hi = Math.imul(ah5, bh0)),
- (lo = (lo + Math.imul(al4, bl1)) | 0),
- (mid = (mid + Math.imul(al4, bh1)) | 0),
- (mid = (mid + Math.imul(ah4, bl1)) | 0),
- (hi = (hi + Math.imul(ah4, bh1)) | 0),
- (lo = (lo + Math.imul(al3, bl2)) | 0),
- (mid = (mid + Math.imul(al3, bh2)) | 0),
- (mid = (mid + Math.imul(ah3, bl2)) | 0),
- (hi = (hi + Math.imul(ah3, bh2)) | 0),
- (lo = (lo + Math.imul(al2, bl3)) | 0),
- (mid = (mid + Math.imul(al2, bh3)) | 0),
- (mid = (mid + Math.imul(ah2, bl3)) | 0),
- (hi = (hi + Math.imul(ah2, bh3)) | 0),
- (lo = (lo + Math.imul(al1, bl4)) | 0),
- (mid = (mid + Math.imul(al1, bh4)) | 0),
- (mid = (mid + Math.imul(ah1, bl4)) | 0),
- (hi = (hi + Math.imul(ah1, bh4)) | 0),
- (lo = (lo + Math.imul(al0, bl5)) | 0),
- (mid = (mid + Math.imul(al0, bh5)) | 0),
- (mid = (mid + Math.imul(ah0, bl5)) | 0),
- (hi = (hi + Math.imul(ah0, bh5)) | 0);
- var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0),
- (w5 &= 67108863),
- (lo = Math.imul(al6, bl0)),
- (mid = Math.imul(al6, bh0)),
- (mid = (mid + Math.imul(ah6, bl0)) | 0),
- (hi = Math.imul(ah6, bh0)),
- (lo = (lo + Math.imul(al5, bl1)) | 0),
- (mid = (mid + Math.imul(al5, bh1)) | 0),
- (mid = (mid + Math.imul(ah5, bl1)) | 0),
- (hi = (hi + Math.imul(ah5, bh1)) | 0),
- (lo = (lo + Math.imul(al4, bl2)) | 0),
- (mid = (mid + Math.imul(al4, bh2)) | 0),
- (mid = (mid + Math.imul(ah4, bl2)) | 0),
- (hi = (hi + Math.imul(ah4, bh2)) | 0),
- (lo = (lo + Math.imul(al3, bl3)) | 0),
- (mid = (mid + Math.imul(al3, bh3)) | 0),
- (mid = (mid + Math.imul(ah3, bl3)) | 0),
- (hi = (hi + Math.imul(ah3, bh3)) | 0),
- (lo = (lo + Math.imul(al2, bl4)) | 0),
- (mid = (mid + Math.imul(al2, bh4)) | 0),
- (mid = (mid + Math.imul(ah2, bl4)) | 0),
- (hi = (hi + Math.imul(ah2, bh4)) | 0),
- (lo = (lo + Math.imul(al1, bl5)) | 0),
- (mid = (mid + Math.imul(al1, bh5)) | 0),
- (mid = (mid + Math.imul(ah1, bl5)) | 0),
- (hi = (hi + Math.imul(ah1, bh5)) | 0),
- (lo = (lo + Math.imul(al0, bl6)) | 0),
- (mid = (mid + Math.imul(al0, bh6)) | 0),
- (mid = (mid + Math.imul(ah0, bl6)) | 0),
- (hi = (hi + Math.imul(ah0, bh6)) | 0);
- var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0),
- (w6 &= 67108863),
- (lo = Math.imul(al7, bl0)),
- (mid = Math.imul(al7, bh0)),
- (mid = (mid + Math.imul(ah7, bl0)) | 0),
- (hi = Math.imul(ah7, bh0)),
- (lo = (lo + Math.imul(al6, bl1)) | 0),
- (mid = (mid + Math.imul(al6, bh1)) | 0),
- (mid = (mid + Math.imul(ah6, bl1)) | 0),
- (hi = (hi + Math.imul(ah6, bh1)) | 0),
- (lo = (lo + Math.imul(al5, bl2)) | 0),
- (mid = (mid + Math.imul(al5, bh2)) | 0),
- (mid = (mid + Math.imul(ah5, bl2)) | 0),
- (hi = (hi + Math.imul(ah5, bh2)) | 0),
- (lo = (lo + Math.imul(al4, bl3)) | 0),
- (mid = (mid + Math.imul(al4, bh3)) | 0),
- (mid = (mid + Math.imul(ah4, bl3)) | 0),
- (hi = (hi + Math.imul(ah4, bh3)) | 0),
- (lo = (lo + Math.imul(al3, bl4)) | 0),
- (mid = (mid + Math.imul(al3, bh4)) | 0),
- (mid = (mid + Math.imul(ah3, bl4)) | 0),
- (hi = (hi + Math.imul(ah3, bh4)) | 0),
- (lo = (lo + Math.imul(al2, bl5)) | 0),
- (mid = (mid + Math.imul(al2, bh5)) | 0),
- (mid = (mid + Math.imul(ah2, bl5)) | 0),
- (hi = (hi + Math.imul(ah2, bh5)) | 0),
- (lo = (lo + Math.imul(al1, bl6)) | 0),
- (mid = (mid + Math.imul(al1, bh6)) | 0),
- (mid = (mid + Math.imul(ah1, bl6)) | 0),
- (hi = (hi + Math.imul(ah1, bh6)) | 0),
- (lo = (lo + Math.imul(al0, bl7)) | 0),
- (mid = (mid + Math.imul(al0, bh7)) | 0),
- (mid = (mid + Math.imul(ah0, bl7)) | 0),
- (hi = (hi + Math.imul(ah0, bh7)) | 0);
- var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0),
- (w7 &= 67108863),
- (lo = Math.imul(al8, bl0)),
- (mid = Math.imul(al8, bh0)),
- (mid = (mid + Math.imul(ah8, bl0)) | 0),
- (hi = Math.imul(ah8, bh0)),
- (lo = (lo + Math.imul(al7, bl1)) | 0),
- (mid = (mid + Math.imul(al7, bh1)) | 0),
- (mid = (mid + Math.imul(ah7, bl1)) | 0),
- (hi = (hi + Math.imul(ah7, bh1)) | 0),
- (lo = (lo + Math.imul(al6, bl2)) | 0),
- (mid = (mid + Math.imul(al6, bh2)) | 0),
- (mid = (mid + Math.imul(ah6, bl2)) | 0),
- (hi = (hi + Math.imul(ah6, bh2)) | 0),
- (lo = (lo + Math.imul(al5, bl3)) | 0),
- (mid = (mid + Math.imul(al5, bh3)) | 0),
- (mid = (mid + Math.imul(ah5, bl3)) | 0),
- (hi = (hi + Math.imul(ah5, bh3)) | 0),
- (lo = (lo + Math.imul(al4, bl4)) | 0),
- (mid = (mid + Math.imul(al4, bh4)) | 0),
- (mid = (mid + Math.imul(ah4, bl4)) | 0),
- (hi = (hi + Math.imul(ah4, bh4)) | 0),
- (lo = (lo + Math.imul(al3, bl5)) | 0),
- (mid = (mid + Math.imul(al3, bh5)) | 0),
- (mid = (mid + Math.imul(ah3, bl5)) | 0),
- (hi = (hi + Math.imul(ah3, bh5)) | 0),
- (lo = (lo + Math.imul(al2, bl6)) | 0),
- (mid = (mid + Math.imul(al2, bh6)) | 0),
- (mid = (mid + Math.imul(ah2, bl6)) | 0),
- (hi = (hi + Math.imul(ah2, bh6)) | 0),
- (lo = (lo + Math.imul(al1, bl7)) | 0),
- (mid = (mid + Math.imul(al1, bh7)) | 0),
- (mid = (mid + Math.imul(ah1, bl7)) | 0),
- (hi = (hi + Math.imul(ah1, bh7)) | 0),
- (lo = (lo + Math.imul(al0, bl8)) | 0),
- (mid = (mid + Math.imul(al0, bh8)) | 0),
- (mid = (mid + Math.imul(ah0, bl8)) | 0),
- (hi = (hi + Math.imul(ah0, bh8)) | 0);
- var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0),
- (w8 &= 67108863),
- (lo = Math.imul(al9, bl0)),
- (mid = Math.imul(al9, bh0)),
- (mid = (mid + Math.imul(ah9, bl0)) | 0),
- (hi = Math.imul(ah9, bh0)),
- (lo = (lo + Math.imul(al8, bl1)) | 0),
- (mid = (mid + Math.imul(al8, bh1)) | 0),
- (mid = (mid + Math.imul(ah8, bl1)) | 0),
- (hi = (hi + Math.imul(ah8, bh1)) | 0),
- (lo = (lo + Math.imul(al7, bl2)) | 0),
- (mid = (mid + Math.imul(al7, bh2)) | 0),
- (mid = (mid + Math.imul(ah7, bl2)) | 0),
- (hi = (hi + Math.imul(ah7, bh2)) | 0),
- (lo = (lo + Math.imul(al6, bl3)) | 0),
- (mid = (mid + Math.imul(al6, bh3)) | 0),
- (mid = (mid + Math.imul(ah6, bl3)) | 0),
- (hi = (hi + Math.imul(ah6, bh3)) | 0),
- (lo = (lo + Math.imul(al5, bl4)) | 0),
- (mid = (mid + Math.imul(al5, bh4)) | 0),
- (mid = (mid + Math.imul(ah5, bl4)) | 0),
- (hi = (hi + Math.imul(ah5, bh4)) | 0),
- (lo = (lo + Math.imul(al4, bl5)) | 0),
- (mid = (mid + Math.imul(al4, bh5)) | 0),
- (mid = (mid + Math.imul(ah4, bl5)) | 0),
- (hi = (hi + Math.imul(ah4, bh5)) | 0),
- (lo = (lo + Math.imul(al3, bl6)) | 0),
- (mid = (mid + Math.imul(al3, bh6)) | 0),
- (mid = (mid + Math.imul(ah3, bl6)) | 0),
- (hi = (hi + Math.imul(ah3, bh6)) | 0),
- (lo = (lo + Math.imul(al2, bl7)) | 0),
- (mid = (mid + Math.imul(al2, bh7)) | 0),
- (mid = (mid + Math.imul(ah2, bl7)) | 0),
- (hi = (hi + Math.imul(ah2, bh7)) | 0),
- (lo = (lo + Math.imul(al1, bl8)) | 0),
- (mid = (mid + Math.imul(al1, bh8)) | 0),
- (mid = (mid + Math.imul(ah1, bl8)) | 0),
- (hi = (hi + Math.imul(ah1, bh8)) | 0),
- (lo = (lo + Math.imul(al0, bl9)) | 0),
- (mid = (mid + Math.imul(al0, bh9)) | 0),
- (mid = (mid + Math.imul(ah0, bl9)) | 0),
- (hi = (hi + Math.imul(ah0, bh9)) | 0);
- var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0),
- (w9 &= 67108863),
- (lo = Math.imul(al9, bl1)),
- (mid = Math.imul(al9, bh1)),
- (mid = (mid + Math.imul(ah9, bl1)) | 0),
- (hi = Math.imul(ah9, bh1)),
- (lo = (lo + Math.imul(al8, bl2)) | 0),
- (mid = (mid + Math.imul(al8, bh2)) | 0),
- (mid = (mid + Math.imul(ah8, bl2)) | 0),
- (hi = (hi + Math.imul(ah8, bh2)) | 0),
- (lo = (lo + Math.imul(al7, bl3)) | 0),
- (mid = (mid + Math.imul(al7, bh3)) | 0),
- (mid = (mid + Math.imul(ah7, bl3)) | 0),
- (hi = (hi + Math.imul(ah7, bh3)) | 0),
- (lo = (lo + Math.imul(al6, bl4)) | 0),
- (mid = (mid + Math.imul(al6, bh4)) | 0),
- (mid = (mid + Math.imul(ah6, bl4)) | 0),
- (hi = (hi + Math.imul(ah6, bh4)) | 0),
- (lo = (lo + Math.imul(al5, bl5)) | 0),
- (mid = (mid + Math.imul(al5, bh5)) | 0),
- (mid = (mid + Math.imul(ah5, bl5)) | 0),
- (hi = (hi + Math.imul(ah5, bh5)) | 0),
- (lo = (lo + Math.imul(al4, bl6)) | 0),
- (mid = (mid + Math.imul(al4, bh6)) | 0),
- (mid = (mid + Math.imul(ah4, bl6)) | 0),
- (hi = (hi + Math.imul(ah4, bh6)) | 0),
- (lo = (lo + Math.imul(al3, bl7)) | 0),
- (mid = (mid + Math.imul(al3, bh7)) | 0),
- (mid = (mid + Math.imul(ah3, bl7)) | 0),
- (hi = (hi + Math.imul(ah3, bh7)) | 0),
- (lo = (lo + Math.imul(al2, bl8)) | 0),
- (mid = (mid + Math.imul(al2, bh8)) | 0),
- (mid = (mid + Math.imul(ah2, bl8)) | 0),
- (hi = (hi + Math.imul(ah2, bh8)) | 0),
- (lo = (lo + Math.imul(al1, bl9)) | 0),
- (mid = (mid + Math.imul(al1, bh9)) | 0),
- (mid = (mid + Math.imul(ah1, bl9)) | 0),
- (hi = (hi + Math.imul(ah1, bh9)) | 0);
- var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0),
- (w10 &= 67108863),
- (lo = Math.imul(al9, bl2)),
- (mid = Math.imul(al9, bh2)),
- (mid = (mid + Math.imul(ah9, bl2)) | 0),
- (hi = Math.imul(ah9, bh2)),
- (lo = (lo + Math.imul(al8, bl3)) | 0),
- (mid = (mid + Math.imul(al8, bh3)) | 0),
- (mid = (mid + Math.imul(ah8, bl3)) | 0),
- (hi = (hi + Math.imul(ah8, bh3)) | 0),
- (lo = (lo + Math.imul(al7, bl4)) | 0),
- (mid = (mid + Math.imul(al7, bh4)) | 0),
- (mid = (mid + Math.imul(ah7, bl4)) | 0),
- (hi = (hi + Math.imul(ah7, bh4)) | 0),
- (lo = (lo + Math.imul(al6, bl5)) | 0),
- (mid = (mid + Math.imul(al6, bh5)) | 0),
- (mid = (mid + Math.imul(ah6, bl5)) | 0),
- (hi = (hi + Math.imul(ah6, bh5)) | 0),
- (lo = (lo + Math.imul(al5, bl6)) | 0),
- (mid = (mid + Math.imul(al5, bh6)) | 0),
- (mid = (mid + Math.imul(ah5, bl6)) | 0),
- (hi = (hi + Math.imul(ah5, bh6)) | 0),
- (lo = (lo + Math.imul(al4, bl7)) | 0),
- (mid = (mid + Math.imul(al4, bh7)) | 0),
- (mid = (mid + Math.imul(ah4, bl7)) | 0),
- (hi = (hi + Math.imul(ah4, bh7)) | 0),
- (lo = (lo + Math.imul(al3, bl8)) | 0),
- (mid = (mid + Math.imul(al3, bh8)) | 0),
- (mid = (mid + Math.imul(ah3, bl8)) | 0),
- (hi = (hi + Math.imul(ah3, bh8)) | 0),
- (lo = (lo + Math.imul(al2, bl9)) | 0),
- (mid = (mid + Math.imul(al2, bh9)) | 0),
- (mid = (mid + Math.imul(ah2, bl9)) | 0),
- (hi = (hi + Math.imul(ah2, bh9)) | 0);
- var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0),
- (w11 &= 67108863),
- (lo = Math.imul(al9, bl3)),
- (mid = Math.imul(al9, bh3)),
- (mid = (mid + Math.imul(ah9, bl3)) | 0),
- (hi = Math.imul(ah9, bh3)),
- (lo = (lo + Math.imul(al8, bl4)) | 0),
- (mid = (mid + Math.imul(al8, bh4)) | 0),
- (mid = (mid + Math.imul(ah8, bl4)) | 0),
- (hi = (hi + Math.imul(ah8, bh4)) | 0),
- (lo = (lo + Math.imul(al7, bl5)) | 0),
- (mid = (mid + Math.imul(al7, bh5)) | 0),
- (mid = (mid + Math.imul(ah7, bl5)) | 0),
- (hi = (hi + Math.imul(ah7, bh5)) | 0),
- (lo = (lo + Math.imul(al6, bl6)) | 0),
- (mid = (mid + Math.imul(al6, bh6)) | 0),
- (mid = (mid + Math.imul(ah6, bl6)) | 0),
- (hi = (hi + Math.imul(ah6, bh6)) | 0),
- (lo = (lo + Math.imul(al5, bl7)) | 0),
- (mid = (mid + Math.imul(al5, bh7)) | 0),
- (mid = (mid + Math.imul(ah5, bl7)) | 0),
- (hi = (hi + Math.imul(ah5, bh7)) | 0),
- (lo = (lo + Math.imul(al4, bl8)) | 0),
- (mid = (mid + Math.imul(al4, bh8)) | 0),
- (mid = (mid + Math.imul(ah4, bl8)) | 0),
- (hi = (hi + Math.imul(ah4, bh8)) | 0),
- (lo = (lo + Math.imul(al3, bl9)) | 0),
- (mid = (mid + Math.imul(al3, bh9)) | 0),
- (mid = (mid + Math.imul(ah3, bl9)) | 0),
- (hi = (hi + Math.imul(ah3, bh9)) | 0);
- var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0),
- (w12 &= 67108863),
- (lo = Math.imul(al9, bl4)),
- (mid = Math.imul(al9, bh4)),
- (mid = (mid + Math.imul(ah9, bl4)) | 0),
- (hi = Math.imul(ah9, bh4)),
- (lo = (lo + Math.imul(al8, bl5)) | 0),
- (mid = (mid + Math.imul(al8, bh5)) | 0),
- (mid = (mid + Math.imul(ah8, bl5)) | 0),
- (hi = (hi + Math.imul(ah8, bh5)) | 0),
- (lo = (lo + Math.imul(al7, bl6)) | 0),
- (mid = (mid + Math.imul(al7, bh6)) | 0),
- (mid = (mid + Math.imul(ah7, bl6)) | 0),
- (hi = (hi + Math.imul(ah7, bh6)) | 0),
- (lo = (lo + Math.imul(al6, bl7)) | 0),
- (mid = (mid + Math.imul(al6, bh7)) | 0),
- (mid = (mid + Math.imul(ah6, bl7)) | 0),
- (hi = (hi + Math.imul(ah6, bh7)) | 0),
- (lo = (lo + Math.imul(al5, bl8)) | 0),
- (mid = (mid + Math.imul(al5, bh8)) | 0),
- (mid = (mid + Math.imul(ah5, bl8)) | 0),
- (hi = (hi + Math.imul(ah5, bh8)) | 0),
- (lo = (lo + Math.imul(al4, bl9)) | 0),
- (mid = (mid + Math.imul(al4, bh9)) | 0),
- (mid = (mid + Math.imul(ah4, bl9)) | 0),
- (hi = (hi + Math.imul(ah4, bh9)) | 0);
- var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0),
- (w13 &= 67108863),
- (lo = Math.imul(al9, bl5)),
- (mid = Math.imul(al9, bh5)),
- (mid = (mid + Math.imul(ah9, bl5)) | 0),
- (hi = Math.imul(ah9, bh5)),
- (lo = (lo + Math.imul(al8, bl6)) | 0),
- (mid = (mid + Math.imul(al8, bh6)) | 0),
- (mid = (mid + Math.imul(ah8, bl6)) | 0),
- (hi = (hi + Math.imul(ah8, bh6)) | 0),
- (lo = (lo + Math.imul(al7, bl7)) | 0),
- (mid = (mid + Math.imul(al7, bh7)) | 0),
- (mid = (mid + Math.imul(ah7, bl7)) | 0),
- (hi = (hi + Math.imul(ah7, bh7)) | 0),
- (lo = (lo + Math.imul(al6, bl8)) | 0),
- (mid = (mid + Math.imul(al6, bh8)) | 0),
- (mid = (mid + Math.imul(ah6, bl8)) | 0),
- (hi = (hi + Math.imul(ah6, bh8)) | 0),
- (lo = (lo + Math.imul(al5, bl9)) | 0),
- (mid = (mid + Math.imul(al5, bh9)) | 0),
- (mid = (mid + Math.imul(ah5, bl9)) | 0),
- (hi = (hi + Math.imul(ah5, bh9)) | 0);
- var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0),
- (w14 &= 67108863),
- (lo = Math.imul(al9, bl6)),
- (mid = Math.imul(al9, bh6)),
- (mid = (mid + Math.imul(ah9, bl6)) | 0),
- (hi = Math.imul(ah9, bh6)),
- (lo = (lo + Math.imul(al8, bl7)) | 0),
- (mid = (mid + Math.imul(al8, bh7)) | 0),
- (mid = (mid + Math.imul(ah8, bl7)) | 0),
- (hi = (hi + Math.imul(ah8, bh7)) | 0),
- (lo = (lo + Math.imul(al7, bl8)) | 0),
- (mid = (mid + Math.imul(al7, bh8)) | 0),
- (mid = (mid + Math.imul(ah7, bl8)) | 0),
- (hi = (hi + Math.imul(ah7, bh8)) | 0),
- (lo = (lo + Math.imul(al6, bl9)) | 0),
- (mid = (mid + Math.imul(al6, bh9)) | 0),
- (mid = (mid + Math.imul(ah6, bl9)) | 0),
- (hi = (hi + Math.imul(ah6, bh9)) | 0);
- var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0),
- (w15 &= 67108863),
- (lo = Math.imul(al9, bl7)),
- (mid = Math.imul(al9, bh7)),
- (mid = (mid + Math.imul(ah9, bl7)) | 0),
- (hi = Math.imul(ah9, bh7)),
- (lo = (lo + Math.imul(al8, bl8)) | 0),
- (mid = (mid + Math.imul(al8, bh8)) | 0),
- (mid = (mid + Math.imul(ah8, bl8)) | 0),
- (hi = (hi + Math.imul(ah8, bh8)) | 0),
- (lo = (lo + Math.imul(al7, bl9)) | 0),
- (mid = (mid + Math.imul(al7, bh9)) | 0),
- (mid = (mid + Math.imul(ah7, bl9)) | 0),
- (hi = (hi + Math.imul(ah7, bh9)) | 0);
- var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0),
- (w16 &= 67108863),
- (lo = Math.imul(al9, bl8)),
- (mid = Math.imul(al9, bh8)),
- (mid = (mid + Math.imul(ah9, bl8)) | 0),
- (hi = Math.imul(ah9, bh8)),
- (lo = (lo + Math.imul(al8, bl9)) | 0),
- (mid = (mid + Math.imul(al8, bh9)) | 0),
- (mid = (mid + Math.imul(ah8, bl9)) | 0),
- (hi = (hi + Math.imul(ah8, bh9)) | 0);
- var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0),
- (w17 &= 67108863),
- (lo = Math.imul(al9, bl9)),
- (mid = Math.imul(al9, bh9)),
- (mid = (mid + Math.imul(ah9, bl9)) | 0),
- (hi = Math.imul(ah9, bh9));
- var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- return (
- (c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0),
- (w18 &= 67108863),
- (o[0] = w0),
- (o[1] = w1),
- (o[2] = w2),
- (o[3] = w3),
- (o[4] = w4),
- (o[5] = w5),
- (o[6] = w6),
- (o[7] = w7),
- (o[8] = w8),
- (o[9] = w9),
- (o[10] = w10),
- (o[11] = w11),
- (o[12] = w12),
- (o[13] = w13),
- (o[14] = w14),
- (o[15] = w15),
- (o[16] = w16),
- (o[17] = w17),
- (o[18] = w18),
- c !== 0 && ((o[19] = c), out.length++),
- out
- );
- };
- Math.imul || (comb10MulTo = smallMulTo);
- function bigMulTo(self2, num, out) {
- (out.negative = num.negative ^ self2.negative), (out.length = self2.length + num.length);
- for (var carry = 0, hncarry = 0, k = 0; k < out.length - 1; k++) {
- var ncarry = hncarry;
- hncarry = 0;
- for (
- var rword = carry & 67108863, maxJ = Math.min(k, num.length - 1), j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = k - j,
- a = self2.words[i] | 0,
- b = num.words[j] | 0,
- r = a * b,
- lo = r & 67108863;
- (ncarry = (ncarry + ((r / 67108864) | 0)) | 0),
- (lo = (lo + rword) | 0),
- (rword = lo & 67108863),
- (ncarry = (ncarry + (lo >>> 26)) | 0),
- (hncarry += ncarry >>> 26),
- (ncarry &= 67108863);
- }
- (out.words[k] = rword), (carry = ncarry), (ncarry = hncarry);
- }
- return carry !== 0 ? (out.words[k] = carry) : out.length--, out.strip();
- }
- function jumboMulTo(self2, num, out) {
- var fftm = new FFTM();
- return fftm.mulp(self2, num, out);
- }
- BN.prototype.mulTo = function (num, out) {
- var res,
- len = this.length + num.length;
- return (
- this.length === 10 && num.length === 10
- ? (res = comb10MulTo(this, num, out))
- : len < 63
- ? (res = smallMulTo(this, num, out))
- : len < 1024
- ? (res = bigMulTo(this, num, out))
- : (res = jumboMulTo(this, num, out)),
- res
- );
- };
- function FFTM(x, y) {
- (this.x = x), (this.y = y);
- }
- (FFTM.prototype.makeRBT = function (N) {
- for (var t = new Array(N), l = BN.prototype._countBits(N) - 1, i = 0; i < N; i++) t[i] = this.revBin(i, l, N);
- return t;
- }),
- (FFTM.prototype.revBin = function (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- for (var rb = 0, i = 0; i < l; i++) (rb |= (x & 1) << (l - i - 1)), (x >>= 1);
- return rb;
- }),
- (FFTM.prototype.permute = function (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) (rtws[i] = rws[rbt[i]]), (itws[i] = iws[rbt[i]]);
- }),
- (FFTM.prototype.transform = function (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1)
- for (
- var l = s << 1, rtwdf = Math.cos((2 * Math.PI) / l), itwdf = Math.sin((2 * Math.PI) / l), p = 0;
- p < N;
- p += l
- )
- for (var rtwdf_ = rtwdf, itwdf_ = itwdf, j = 0; j < s; j++) {
- var re = rtws[p + j],
- ie = itws[p + j],
- ro = rtws[p + j + s],
- io = itws[p + j + s],
- rx = rtwdf_ * ro - itwdf_ * io;
- (io = rtwdf_ * io + itwdf_ * ro),
- (ro = rx),
- (rtws[p + j] = re + ro),
- (itws[p + j] = ie + io),
- (rtws[p + j + s] = re - ro),
- (itws[p + j + s] = ie - io),
- j !== l &&
- ((rx = rtwdf * rtwdf_ - itwdf * itwdf_), (itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_), (rtwdf_ = rx));
- }
- }),
- (FFTM.prototype.guessLen13b = function (n, m) {
- var N = Math.max(m, n) | 1,
- odd = N & 1,
- i = 0;
- for (N = (N / 2) | 0; N; N = N >>> 1) i++;
- return 1 << (i + 1 + odd);
- }),
- (FFTM.prototype.conjugate = function (rws, iws, N) {
- if (!(N <= 1))
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- (rws[i] = rws[N - i - 1]),
- (rws[N - i - 1] = t),
- (t = iws[i]),
- (iws[i] = -iws[N - i - 1]),
- (iws[N - i - 1] = -t);
- }
- }),
- (FFTM.prototype.normalize13b = function (ws, N) {
- for (var carry = 0, i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
- (ws[i] = w & 67108863), w < 67108864 ? (carry = 0) : (carry = (w / 67108864) | 0);
- }
- return ws;
- }),
- (FFTM.prototype.convert13b = function (ws, len, rws, N) {
- for (var carry = 0, i = 0; i < len; i++)
- (carry = carry + (ws[i] | 0)),
- (rws[2 * i] = carry & 8191),
- (carry = carry >>> 13),
- (rws[2 * i + 1] = carry & 8191),
- (carry = carry >>> 13);
- for (i = 2 * len; i < N; ++i) rws[i] = 0;
- assert(carry === 0), assert((carry & -8192) === 0);
- }),
- (FFTM.prototype.stub = function (N) {
- for (var ph = new Array(N), i = 0; i < N; i++) ph[i] = 0;
- return ph;
- }),
- (FFTM.prototype.mulp = function (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length),
- rbt = this.makeRBT(N),
- _ = this.stub(N),
- rws = new Array(N),
- rwst = new Array(N),
- iwst = new Array(N),
- nrws = new Array(N),
- nrwst = new Array(N),
- niwst = new Array(N),
- rmws = out.words;
- (rmws.length = N),
- this.convert13b(x.words, x.length, rws, N),
- this.convert13b(y.words, y.length, nrws, N),
- this.transform(rws, _, rwst, iwst, N, rbt),
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- (iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]), (rwst[i] = rx);
- }
- return (
- this.conjugate(rwst, iwst, N),
- this.transform(rwst, iwst, rmws, _, N, rbt),
- this.conjugate(rmws, _, N),
- this.normalize13b(rmws, N),
- (out.negative = x.negative ^ y.negative),
- (out.length = x.length + y.length),
- out.strip()
- );
- }),
- (BN.prototype.mul = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), this.mulTo(num, out);
- }),
- (BN.prototype.mulf = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), jumboMulTo(this, num, out);
- }),
- (BN.prototype.imul = function (num) {
- return this.clone().mulTo(num, this);
- }),
- (BN.prototype.imuln = function (num) {
- assert(typeof num == "number"), assert(num < 67108864);
- for (var carry = 0, i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num,
- lo = (w & 67108863) + (carry & 67108863);
- (carry >>= 26), (carry += (w / 67108864) | 0), (carry += lo >>> 26), (this.words[i] = lo & 67108863);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.muln = function (num) {
- return this.clone().imuln(num);
- }),
- (BN.prototype.sqr = function () {
- return this.mul(this);
- }),
- (BN.prototype.isqr = function () {
- return this.imul(this.clone());
- }),
- (BN.prototype.pow = function (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- for (var res = this, i = 0; i < w.length && w[i] === 0; i++, res = res.sqr());
- if (++i < w.length) for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) w[i] !== 0 && (res = res.mul(q));
- return res;
- }),
- (BN.prototype.iushln = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26,
- carryMask = (67108863 >>> (26 - r)) << (26 - r),
- i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask,
- c = ((this.words[i] | 0) - newCarry) << r;
- (this.words[i] = c | carry), (carry = newCarry >>> (26 - r));
- }
- carry && ((this.words[i] = carry), this.length++);
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) this.words[i + s] = this.words[i];
- for (i = 0; i < s; i++) this.words[i] = 0;
- this.length += s;
- }
- return this.strip();
- }),
- (BN.prototype.ishln = function (bits) {
- return assert(this.negative === 0), this.iushln(bits);
- }),
- (BN.prototype.iushrn = function (bits, hint, extended) {
- assert(typeof bits == "number" && bits >= 0);
- var h;
- hint ? (h = (hint - (hint % 26)) / 26) : (h = 0);
- var r = bits % 26,
- s = Math.min((bits - r) / 26, this.length),
- mask = 67108863 ^ ((67108863 >>> r) << r),
- maskedWords = extended;
- if (((h -= s), (h = Math.max(0, h)), maskedWords)) {
- for (var i = 0; i < s; i++) maskedWords.words[i] = this.words[i];
- maskedWords.length = s;
- }
- if (s !== 0)
- if (this.length > s) for (this.length -= s, i = 0; i < this.length; i++) this.words[i] = this.words[i + s];
- else (this.words[0] = 0), (this.length = 1);
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- (this.words[i] = (carry << (26 - r)) | (word >>> r)), (carry = word & mask);
- }
- return (
- maskedWords && carry !== 0 && (maskedWords.words[maskedWords.length++] = carry),
- this.length === 0 && ((this.words[0] = 0), (this.length = 1)),
- this.strip()
- );
- }),
- (BN.prototype.ishrn = function (bits, hint, extended) {
- return assert(this.negative === 0), this.iushrn(bits, hint, extended);
- }),
- (BN.prototype.shln = function (bits) {
- return this.clone().ishln(bits);
- }),
- (BN.prototype.ushln = function (bits) {
- return this.clone().iushln(bits);
- }),
- (BN.prototype.shrn = function (bits) {
- return this.clone().ishrn(bits);
- }),
- (BN.prototype.ushrn = function (bits) {
- return this.clone().iushrn(bits);
- }),
- (BN.prototype.testn = function (bit) {
- assert(typeof bit == "number" && bit >= 0);
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return !1;
- var w = this.words[s];
- return !!(w & q);
- }),
- (BN.prototype.imaskn = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26;
- if ((assert(this.negative === 0, "imaskn works only with positive numbers"), this.length <= s)) return this;
- if ((r !== 0 && s++, (this.length = Math.min(s, this.length)), r !== 0)) {
- var mask = 67108863 ^ ((67108863 >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this.strip();
- }),
- (BN.prototype.maskn = function (bits) {
- return this.clone().imaskn(bits);
- }),
- (BN.prototype.iaddn = function (num) {
- return (
- assert(typeof num == "number"),
- assert(num < 67108864),
- num < 0
- ? this.isubn(-num)
- : this.negative !== 0
- ? this.length === 1 && (this.words[0] | 0) < num
- ? ((this.words[0] = num - (this.words[0] | 0)), (this.negative = 0), this)
- : ((this.negative = 0), this.isubn(num), (this.negative = 1), this)
- : this._iaddn(num)
- );
- }),
- (BN.prototype._iaddn = function (num) {
- this.words[0] += num;
- for (var i = 0; i < this.length && this.words[i] >= 67108864; i++)
- (this.words[i] -= 67108864), i === this.length - 1 ? (this.words[i + 1] = 1) : this.words[i + 1]++;
- return (this.length = Math.max(this.length, i + 1)), this;
- }),
- (BN.prototype.isubn = function (num) {
- if ((assert(typeof num == "number"), assert(num < 67108864), num < 0)) return this.iaddn(-num);
- if (this.negative !== 0) return (this.negative = 0), this.iaddn(num), (this.negative = 1), this;
- if (((this.words[0] -= num), this.length === 1 && this.words[0] < 0))
- (this.words[0] = -this.words[0]), (this.negative = 1);
- else
- for (var i = 0; i < this.length && this.words[i] < 0; i++)
- (this.words[i] += 67108864), (this.words[i + 1] -= 1);
- return this.strip();
- }),
- (BN.prototype.addn = function (num) {
- return this.clone().iaddn(num);
- }),
- (BN.prototype.subn = function (num) {
- return this.clone().isubn(num);
- }),
- (BN.prototype.iabs = function () {
- return (this.negative = 0), this;
- }),
- (BN.prototype.abs = function () {
- return this.clone().iabs();
- }),
- (BN.prototype._ishlnsubmul = function (num, mul, shift) {
- var len = num.length + shift,
- i;
- this._expand(len);
- var w,
- carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- (w -= right & 67108863),
- (carry = (w >> 26) - ((right / 67108864) | 0)),
- (this.words[i + shift] = w & 67108863);
- }
- for (; i < this.length - shift; i++)
- (w = (this.words[i + shift] | 0) + carry), (carry = w >> 26), (this.words[i + shift] = w & 67108863);
- if (carry === 0) return this.strip();
- for (assert(carry === -1), carry = 0, i = 0; i < this.length; i++)
- (w = -(this.words[i] | 0) + carry), (carry = w >> 26), (this.words[i] = w & 67108863);
- return (this.negative = 1), this.strip();
- }),
- (BN.prototype._wordDiv = function (num, mode) {
- var shift = this.length - num.length,
- a = this.clone(),
- b = num,
- bhi = b.words[b.length - 1] | 0,
- bhiBits = this._countBits(bhi);
- (shift = 26 - bhiBits),
- shift !== 0 && ((b = b.ushln(shift)), a.iushln(shift), (bhi = b.words[b.length - 1] | 0));
- var m = a.length - b.length,
- q;
- if (mode !== "mod") {
- (q = new BN(null)), (q.length = m + 1), (q.words = new Array(q.length));
- for (var i = 0; i < q.length; i++) q.words[i] = 0;
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- diff.negative === 0 && ((a = diff), q && (q.words[m] = 1));
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
- for (qj = Math.min((qj / bhi) | 0, 67108863), a._ishlnsubmul(b, qj, j); a.negative !== 0; )
- qj--, (a.negative = 0), a._ishlnsubmul(b, 1, j), a.isZero() || (a.negative ^= 1);
- q && (q.words[j] = qj);
- }
- return (
- q && q.strip(),
- a.strip(),
- mode !== "div" && shift !== 0 && a.iushrn(shift),
- {
- div: q || null,
- mod: a,
- }
- );
- }),
- (BN.prototype.divmod = function (num, mode, positive) {
- if ((assert(!num.isZero()), this.isZero()))
- return {
- div: new BN(0),
- mod: new BN(0),
- };
- var div, mod, res;
- return this.negative !== 0 && num.negative === 0
- ? ((res = this.neg().divmod(num, mode)),
- mode !== "mod" && (div = res.div.neg()),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.iadd(num)),
- {
- div,
- mod,
- })
- : this.negative === 0 && num.negative !== 0
- ? ((res = this.divmod(num.neg(), mode)),
- mode !== "mod" && (div = res.div.neg()),
- {
- div,
- mod: res.mod,
- })
- : (this.negative & num.negative) !== 0
- ? ((res = this.neg().divmod(num.neg(), mode)),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.isub(num)),
- {
- div: res.div,
- mod,
- })
- : num.length > this.length || this.cmp(num) < 0
- ? {
- div: new BN(0),
- mod: this,
- }
- : num.length === 1
- ? mode === "div"
- ? {
- div: this.divn(num.words[0]),
- mod: null,
- }
- : mode === "mod"
- ? {
- div: null,
- mod: new BN(this.modn(num.words[0])),
- }
- : {
- div: this.divn(num.words[0]),
- mod: new BN(this.modn(num.words[0])),
- }
- : this._wordDiv(num, mode);
- }),
- (BN.prototype.div = function (num) {
- return this.divmod(num, "div", !1).div;
- }),
- (BN.prototype.mod = function (num) {
- return this.divmod(num, "mod", !1).mod;
- }),
- (BN.prototype.umod = function (num) {
- return this.divmod(num, "mod", !0).mod;
- }),
- (BN.prototype.divRound = function (num) {
- var dm = this.divmod(num);
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod,
- half = num.ushrn(1),
- r2 = num.andln(1),
- cmp = mod.cmp(half);
- return cmp < 0 || (r2 === 1 && cmp === 0)
- ? dm.div
- : dm.div.negative !== 0
- ? dm.div.isubn(1)
- : dm.div.iaddn(1);
- }),
- (BN.prototype.modn = function (num) {
- assert(num <= 67108863);
- for (var p = (1 << 26) % num, acc = 0, i = this.length - 1; i >= 0; i--)
- acc = (p * acc + (this.words[i] | 0)) % num;
- return acc;
- }),
- (BN.prototype.idivn = function (num) {
- assert(num <= 67108863);
- for (var carry = 0, i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 67108864;
- (this.words[i] = (w / num) | 0), (carry = w % num);
- }
- return this.strip();
- }),
- (BN.prototype.divn = function (num) {
- return this.clone().idivn(num);
- }),
- (BN.prototype.egcd = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var x = this,
- y = p.clone();
- x.negative !== 0 ? (x = x.umod(p)) : (x = x.clone());
- for (var A = new BN(1), B = new BN(0), C = new BN(0), D = new BN(1), g = 0; x.isEven() && y.isEven(); )
- x.iushrn(1), y.iushrn(1), ++g;
- for (var yp = y.clone(), xp = x.clone(); !x.isZero(); ) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0)
- for (x.iushrn(i); i-- > 0; )
- (A.isOdd() || B.isOdd()) && (A.iadd(yp), B.isub(xp)), A.iushrn(1), B.iushrn(1);
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0)
- for (y.iushrn(j); j-- > 0; )
- (C.isOdd() || D.isOdd()) && (C.iadd(yp), D.isub(xp)), C.iushrn(1), D.iushrn(1);
- x.cmp(y) >= 0 ? (x.isub(y), A.isub(C), B.isub(D)) : (y.isub(x), C.isub(A), D.isub(B));
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g),
- };
- }),
- (BN.prototype._invmp = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var a = this,
- b = p.clone();
- a.negative !== 0 ? (a = a.umod(p)) : (a = a.clone());
- for (var x1 = new BN(1), x2 = new BN(0), delta = b.clone(); a.cmpn(1) > 0 && b.cmpn(1) > 0; ) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) for (a.iushrn(i); i-- > 0; ) x1.isOdd() && x1.iadd(delta), x1.iushrn(1);
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) for (b.iushrn(j); j-- > 0; ) x2.isOdd() && x2.iadd(delta), x2.iushrn(1);
- a.cmp(b) >= 0 ? (a.isub(b), x1.isub(x2)) : (b.isub(a), x2.isub(x1));
- }
- var res;
- return a.cmpn(1) === 0 ? (res = x1) : (res = x2), res.cmpn(0) < 0 && res.iadd(p), res;
- }),
- (BN.prototype.gcd = function (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone(),
- b = num.clone();
- (a.negative = 0), (b.negative = 0);
- for (var shift = 0; a.isEven() && b.isEven(); shift++) a.iushrn(1), b.iushrn(1);
- do {
- for (; a.isEven(); ) a.iushrn(1);
- for (; b.isEven(); ) b.iushrn(1);
- var r = a.cmp(b);
- if (r < 0) {
- var t = a;
- (a = b), (b = t);
- } else if (r === 0 || b.cmpn(1) === 0) break;
- a.isub(b);
- } while (!0);
- return b.iushln(shift);
- }),
- (BN.prototype.invm = function (num) {
- return this.egcd(num).a.umod(num);
- }),
- (BN.prototype.isEven = function () {
- return (this.words[0] & 1) === 0;
- }),
- (BN.prototype.isOdd = function () {
- return (this.words[0] & 1) === 1;
- }),
- (BN.prototype.andln = function (num) {
- return this.words[0] & num;
- }),
- (BN.prototype.bincn = function (bit) {
- assert(typeof bit == "number");
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return this._expand(s + 1), (this.words[s] |= q), this;
- for (var carry = q, i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- (w += carry), (carry = w >>> 26), (w &= 67108863), (this.words[i] = w);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.isZero = function () {
- return this.length === 1 && this.words[0] === 0;
- }),
- (BN.prototype.cmpn = function (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this.strip();
- var res;
- if (this.length > 1) res = 1;
- else {
- negative && (num = -num), assert(num <= 67108863, "Number is too big");
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.cmp = function (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.ucmp = function (num) {
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- for (var res = 0, i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0,
- b = num.words[i] | 0;
- if (a !== b) {
- a < b ? (res = -1) : a > b && (res = 1);
- break;
- }
- }
- return res;
- }),
- (BN.prototype.gtn = function (num) {
- return this.cmpn(num) === 1;
- }),
- (BN.prototype.gt = function (num) {
- return this.cmp(num) === 1;
- }),
- (BN.prototype.gten = function (num) {
- return this.cmpn(num) >= 0;
- }),
- (BN.prototype.gte = function (num) {
- return this.cmp(num) >= 0;
- }),
- (BN.prototype.ltn = function (num) {
- return this.cmpn(num) === -1;
- }),
- (BN.prototype.lt = function (num) {
- return this.cmp(num) === -1;
- }),
- (BN.prototype.lten = function (num) {
- return this.cmpn(num) <= 0;
- }),
- (BN.prototype.lte = function (num) {
- return this.cmp(num) <= 0;
- }),
- (BN.prototype.eqn = function (num) {
- return this.cmpn(num) === 0;
- }),
- (BN.prototype.eq = function (num) {
- return this.cmp(num) === 0;
- }),
- (BN.red = function (num) {
- return new Red(num);
- }),
- (BN.prototype.toRed = function (ctx) {
- return (
- assert(!this.red, "Already a number in reduction context"),
- assert(this.negative === 0, "red works only with positives"),
- ctx.convertTo(this)._forceRed(ctx)
- );
- }),
- (BN.prototype.fromRed = function () {
- return assert(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this);
- }),
- (BN.prototype._forceRed = function (ctx) {
- return (this.red = ctx), this;
- }),
- (BN.prototype.forceRed = function (ctx) {
- return assert(!this.red, "Already a number in reduction context"), this._forceRed(ctx);
- }),
- (BN.prototype.redAdd = function (num) {
- return assert(this.red, "redAdd works only with red numbers"), this.red.add(this, num);
- }),
- (BN.prototype.redIAdd = function (num) {
- return assert(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, num);
- }),
- (BN.prototype.redSub = function (num) {
- return assert(this.red, "redSub works only with red numbers"), this.red.sub(this, num);
- }),
- (BN.prototype.redISub = function (num) {
- return assert(this.red, "redISub works only with red numbers"), this.red.isub(this, num);
- }),
- (BN.prototype.redShl = function (num) {
- return assert(this.red, "redShl works only with red numbers"), this.red.shl(this, num);
- }),
- (BN.prototype.redMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.mul(this, num)
- );
- }),
- (BN.prototype.redIMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.imul(this, num)
- );
- }),
- (BN.prototype.redSqr = function () {
- return assert(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this);
- }),
- (BN.prototype.redISqr = function () {
- return assert(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this);
- }),
- (BN.prototype.redSqrt = function () {
- return assert(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this);
- }),
- (BN.prototype.redInvm = function () {
- return assert(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this);
- }),
- (BN.prototype.redNeg = function () {
- return assert(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this);
- }),
- (BN.prototype.redPow = function (num) {
- return assert(this.red && !num.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, num);
- });
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null,
- };
- function MPrime(name, p) {
- (this.name = name),
- (this.p = new BN(p, 16)),
- (this.n = this.p.bitLength()),
- (this.k = new BN(1).iushln(this.n).isub(this.p)),
- (this.tmp = this._tmp());
- }
- (MPrime.prototype._tmp = function () {
- var tmp = new BN(null);
- return (tmp.words = new Array(Math.ceil(this.n / 13))), tmp;
- }),
- (MPrime.prototype.ireduce = function (num) {
- var r = num,
- rlen;
- do this.split(r, this.tmp), (r = this.imulK(r)), (r = r.iadd(this.tmp)), (rlen = r.bitLength());
- while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- return (
- cmp === 0
- ? ((r.words[0] = 0), (r.length = 1))
- : cmp > 0
- ? r.isub(this.p)
- : r.strip !== void 0
- ? r.strip()
- : r._strip(),
- r
- );
- }),
- (MPrime.prototype.split = function (input, out) {
- input.iushrn(this.n, 0, out);
- }),
- (MPrime.prototype.imulK = function (num) {
- return num.imul(this.k);
- });
- function K256() {
- MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
- }
- inherits(K256, MPrime),
- (K256.prototype.split = function (input, output) {
- for (var mask = 4194303, outLen = Math.min(input.length, 9), i = 0; i < outLen; i++)
- output.words[i] = input.words[i];
- if (((output.length = outLen), input.length <= 9)) {
- (input.words[0] = 0), (input.length = 1);
- return;
- }
- var prev = input.words[9];
- for (output.words[output.length++] = prev & mask, i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- (input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22)), (prev = next);
- }
- (prev >>>= 22),
- (input.words[i - 10] = prev),
- prev === 0 && input.length > 10 ? (input.length -= 10) : (input.length -= 9);
- }),
- (K256.prototype.imulK = function (num) {
- (num.words[num.length] = 0), (num.words[num.length + 1] = 0), (num.length += 2);
- for (var lo = 0, i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- (lo += w * 977), (num.words[i] = lo & 67108863), (lo = w * 64 + ((lo / 67108864) | 0));
- }
- return (
- num.words[num.length - 1] === 0 && (num.length--, num.words[num.length - 1] === 0 && num.length--), num
- );
- });
- function P224() {
- MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
- }
- inherits(P224, MPrime);
- function P192() {
- MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
- }
- inherits(P192, MPrime);
- function P25519() {
- MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
- }
- inherits(P25519, MPrime),
- (P25519.prototype.imulK = function (num) {
- for (var carry = 0, i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 19 + carry,
- lo = hi & 67108863;
- (hi >>>= 26), (num.words[i] = lo), (carry = hi);
- }
- return carry !== 0 && (num.words[num.length++] = carry), num;
- }),
- (BN._prime = function (name) {
- if (primes[name]) return primes[name];
- var prime2;
- if (name === "k256") prime2 = new K256();
- else if (name === "p224") prime2 = new P224();
- else if (name === "p192") prime2 = new P192();
- else if (name === "p25519") prime2 = new P25519();
- else throw new Error("Unknown prime " + name);
- return (primes[name] = prime2), prime2;
- });
- function Red(m) {
- if (typeof m == "string") {
- var prime = BN._prime(m);
- (this.m = prime.p), (this.prime = prime);
- } else assert(m.gtn(1), "modulus must be greater than 1"), (this.m = m), (this.prime = null);
- }
- (Red.prototype._verify1 = function (a) {
- assert(a.negative === 0, "red works only with positives"), assert(a.red, "red works only with red numbers");
- }),
- (Red.prototype._verify2 = function (a, b) {
- assert((a.negative | b.negative) === 0, "red works only with positives"),
- assert(a.red && a.red === b.red, "red works only with red numbers");
- }),
- (Red.prototype.imod = function (a) {
- return this.prime ? this.prime.ireduce(a)._forceRed(this) : a.umod(this.m)._forceRed(this);
- }),
- (Red.prototype.neg = function (a) {
- return a.isZero() ? a.clone() : this.m.sub(a)._forceRed(this);
- }),
- (Red.prototype.add = function (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res._forceRed(this);
- }),
- (Red.prototype.iadd = function (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res;
- }),
- (Red.prototype.sub = function (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res._forceRed(this);
- }),
- (Red.prototype.isub = function (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res;
- }),
- (Red.prototype.shl = function (a, num) {
- return this._verify1(a), this.imod(a.ushln(num));
- }),
- (Red.prototype.imul = function (a, b) {
- return this._verify2(a, b), this.imod(a.imul(b));
- }),
- (Red.prototype.mul = function (a, b) {
- return this._verify2(a, b), this.imod(a.mul(b));
- }),
- (Red.prototype.isqr = function (a) {
- return this.imul(a, a.clone());
- }),
- (Red.prototype.sqr = function (a) {
- return this.mul(a, a);
- }),
- (Red.prototype.sqrt = function (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- if ((assert(mod3 % 2 === 1), mod3 === 3)) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- for (var q = this.m.subn(1), s = 0; !q.isZero() && q.andln(1) === 0; ) s++, q.iushrn(1);
- assert(!q.isZero());
- var one = new BN(1).toRed(this),
- nOne = one.redNeg(),
- lpow = this.m.subn(1).iushrn(1),
- z = this.m.bitLength();
- for (z = new BN(2 * z * z).toRed(this); this.pow(z, lpow).cmp(nOne) !== 0; ) z.redIAdd(nOne);
- for (
- var c = this.pow(z, q), r = this.pow(a, q.addn(1).iushrn(1)), t = this.pow(a, q), m = s;
- t.cmp(one) !== 0;
-
- ) {
- for (var tmp = t, i = 0; tmp.cmp(one) !== 0; i++) tmp = tmp.redSqr();
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- (r = r.redMul(b)), (c = b.redSqr()), (t = t.redMul(c)), (m = i);
- }
- return r;
- }),
- (Red.prototype.invm = function (a) {
- var inv = a._invmp(this.m);
- return inv.negative !== 0 ? ((inv.negative = 0), this.imod(inv).redNeg()) : this.imod(inv);
- }),
- (Red.prototype.pow = function (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4,
- wnd = new Array(1 << windowSize);
- (wnd[0] = new BN(1).toRed(this)), (wnd[1] = a);
- for (var i = 2; i < wnd.length; i++) wnd[i] = this.mul(wnd[i - 1], a);
- var res = wnd[0],
- current = 0,
- currentLen = 0,
- start = num.bitLength() % 26;
- for (start === 0 && (start = 26), i = num.length - 1; i >= 0; i--) {
- for (var word = num.words[i], j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if ((res !== wnd[0] && (res = this.sqr(res)), bit === 0 && current === 0)) {
- currentLen = 0;
- continue;
- }
- (current <<= 1),
- (current |= bit),
- currentLen++,
- !(currentLen !== windowSize && (i !== 0 || j !== 0)) &&
- ((res = this.mul(res, wnd[current])), (currentLen = 0), (current = 0));
- }
- start = 26;
- }
- return res;
- }),
- (Red.prototype.convertTo = function (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- }),
- (Red.prototype.convertFrom = function (num) {
- var res = num.clone();
- return (res.red = null), res;
- }),
- (BN.mont = function (num) {
- return new Mont(num);
- });
- function Mont(m) {
- Red.call(this, m),
- (this.shift = this.m.bitLength()),
- this.shift % 26 !== 0 && (this.shift += 26 - (this.shift % 26)),
- (this.r = new BN(1).iushln(this.shift)),
- (this.r2 = this.imod(this.r.sqr())),
- (this.rinv = this.r._invmp(this.m)),
- (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)),
- (this.minv = this.minv.umod(this.r)),
- (this.minv = this.r.sub(this.minv));
- }
- inherits(Mont, Red),
- (Mont.prototype.convertTo = function (num) {
- return this.imod(num.ushln(this.shift));
- }),
- (Mont.prototype.convertFrom = function (num) {
- var r = this.imod(num.mul(this.rinv));
- return (r.red = null), r;
- }),
- (Mont.prototype.imul = function (a, b) {
- if (a.isZero() || b.isZero()) return (a.words[0] = 0), (a.length = 1), a;
- var t = a.imul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.mul = function (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.invm = function (a) {
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- });
- })(typeof module > "u" || module, exports);
- },
-});
-
-// (disabled):node_modules/crypto-browserify/index.js
-var require_crypto_browserify = __commonJS({
- "(disabled):node_modules/crypto-browserify/index.js"() {},
-});
-
-// node_modules/brorand/index.js
-var require_brorand = __commonJS({
- "node_modules/brorand/index.js"(exports, module) {
- var r;
- module.exports = function (len) {
- return r || (r = new Rand(null)), r.generate(len);
- };
- function Rand(rand) {
- this.rand = rand;
- }
- module.exports.Rand = Rand;
- Rand.prototype.generate = function (len) {
- return this._rand(len);
- };
- Rand.prototype._rand = function (n) {
- var out = new Buffer(n);
- crypto.getRandomValues(out);
- return out;
- };
- },
-});
-
-// node_modules/miller-rabin/lib/mr.js
-var require_mr = __commonJS({
- "node_modules/miller-rabin/lib/mr.js"(exports, module) {
- var bn = require_bn2(),
- brorand = require_brorand();
- function MillerRabin(rand) {
- this.rand = rand || new brorand.Rand();
- }
- module.exports = MillerRabin;
- MillerRabin.create = function (rand) {
- return new MillerRabin(rand);
- };
- MillerRabin.prototype._randbelow = function (n) {
- var len = n.bitLength(),
- min_bytes = Math.ceil(len / 8);
- do var a = new bn(this.rand.generate(min_bytes));
- while (a.cmp(n) >= 0);
- return a;
- };
- MillerRabin.prototype._randrange = function (start, stop) {
- var size = stop.sub(start);
- return start.add(this._randbelow(size));
- };
- MillerRabin.prototype.test = function (n, k, cb) {
- var len = n.bitLength(),
- red = bn.mont(n),
- rone = new bn(1).toRed(red);
- k || (k = Math.max(1, (len / 48) | 0));
- for (var n1 = n.subn(1), s = 0; !n1.testn(s); s++);
- for (var d = n.shrn(s), rn1 = n1.toRed(red), prime = !0; k > 0; k--) {
- var a = this._randrange(new bn(2), n1);
- cb && cb(a);
- var x = a.toRed(red).redPow(d);
- if (!(x.cmp(rone) === 0 || x.cmp(rn1) === 0)) {
- for (var i = 1; i < s; i++) {
- if (((x = x.redSqr()), x.cmp(rone) === 0)) return !1;
- if (x.cmp(rn1) === 0) break;
- }
- if (i === s) return !1;
- }
- }
- return prime;
- };
- MillerRabin.prototype.getDivisor = function (n, k) {
- var len = n.bitLength(),
- red = bn.mont(n),
- rone = new bn(1).toRed(red);
- k || (k = Math.max(1, (len / 48) | 0));
- for (var n1 = n.subn(1), s = 0; !n1.testn(s); s++);
- for (var d = n.shrn(s), rn1 = n1.toRed(red); k > 0; k--) {
- var a = this._randrange(new bn(2), n1),
- g = n.gcd(a);
- if (g.cmpn(1) !== 0) return g;
- var x = a.toRed(red).redPow(d);
- if (!(x.cmp(rone) === 0 || x.cmp(rn1) === 0)) {
- for (var i = 1; i < s; i++) {
- if (((x = x.redSqr()), x.cmp(rone) === 0)) return x.fromRed().subn(1).gcd(n);
- if (x.cmp(rn1) === 0) break;
- }
- if (i === s) return (x = x.redSqr()), x.fromRed().subn(1).gcd(n);
- }
- }
- return !1;
- };
- },
-});
-
-// node_modules/diffie-hellman/lib/generatePrime.js
-var require_generatePrime = __commonJS({
- "node_modules/diffie-hellman/lib/generatePrime.js"(exports, module) {
- var randomBytes = require_browser();
- module.exports = findPrime;
- findPrime.simpleSieve = simpleSieve;
- findPrime.fermatTest = fermatTest;
- var BN = require_bn(),
- TWENTYFOUR = new BN(24),
- MillerRabin = require_mr(),
- millerRabin = new MillerRabin(),
- ONE = new BN(1),
- TWO = new BN(2),
- FIVE = new BN(5),
- SIXTEEN = new BN(16),
- EIGHT = new BN(8),
- TEN = new BN(10),
- THREE = new BN(3),
- SEVEN = new BN(7),
- ELEVEN = new BN(11),
- FOUR = new BN(4),
- TWELVE = new BN(12),
- primes = null;
- function _getPrimes() {
- if (primes !== null) return primes;
- var limit = 1048576,
- res = [];
- res[0] = 2;
- for (var i = 1, k = 3; k < limit; k += 2) {
- for (var sqrt = Math.ceil(Math.sqrt(k)), j = 0; j < i && res[j] <= sqrt && k % res[j] !== 0; j++);
- (i !== j && res[j] <= sqrt) || (res[i++] = k);
- }
- return (primes = res), res;
- }
- function simpleSieve(p) {
- for (var primes2 = _getPrimes(), i = 0; i < primes2.length; i++)
- if (p.modn(primes2[i]) === 0) return p.cmpn(primes2[i]) === 0;
- return !0;
- }
- function fermatTest(p) {
- var red = BN.mont(p);
- return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;
- }
- function findPrime(bits, gen) {
- if (bits < 16) return gen === 2 || gen === 5 ? new BN([140, 123]) : new BN([140, 39]);
- gen = new BN(gen);
- for (var num, n2; ; ) {
- for (num = new BN(randomBytes(Math.ceil(bits / 8))); num.bitLength() > bits; ) num.ishrn(1);
- if ((num.isEven() && num.iadd(ONE), num.testn(1) || num.iadd(TWO), gen.cmp(TWO))) {
- if (!gen.cmp(FIVE)) for (; num.mod(TEN).cmp(THREE); ) num.iadd(FOUR);
- } else for (; num.mod(TWENTYFOUR).cmp(ELEVEN); ) num.iadd(FOUR);
- if (
- ((n2 = num.shrn(1)),
- simpleSieve(n2) &&
- simpleSieve(num) &&
- fermatTest(n2) &&
- fermatTest(num) &&
- millerRabin.test(n2) &&
- millerRabin.test(num))
- )
- return num;
- }
- }
- },
-});
-
-// node_modules/diffie-hellman/lib/primes.json
-var require_primes = __commonJS({
- "node_modules/diffie-hellman/lib/primes.json"(exports, module) {
- module.exports = {
- modp1: {
- gen: "02",
- prime:
- "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff",
- },
- modp2: {
- gen: "02",
- prime:
- "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff",
- },
- modp5: {
- gen: "02",
- prime:
- "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff",
- },
- modp14: {
- gen: "02",
- prime:
- "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff",
- },
- modp15: {
- gen: "02",
- prime:
- "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff",
- },
- modp16: {
- gen: "02",
- prime:
- "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff",
- },
- modp17: {
- gen: "02",
- prime:
- "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff",
- },
- modp18: {
- gen: "02",
- prime:
- "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff",
- },
- };
- },
-});
-
-// node_modules/diffie-hellman/lib/dh.js
-var require_dh = __commonJS({
- "node_modules/diffie-hellman/lib/dh.js"(exports, module) {
- var BN = require_bn(),
- MillerRabin = require_mr(),
- millerRabin = new MillerRabin(),
- TWENTYFOUR = new BN(24),
- ELEVEN = new BN(11),
- TEN = new BN(10),
- THREE = new BN(3),
- SEVEN = new BN(7),
- primes = require_generatePrime(),
- randomBytes = require_browser();
- module.exports = DH;
- function setPublicKey(pub, enc) {
- return (
- (enc = enc || "utf8"), Buffer.isBuffer(pub) || (pub = new Buffer(pub, enc)), (this._pub = new BN(pub)), this
- );
- }
- function setPrivateKey(priv, enc) {
- return (
- (enc = enc || "utf8"),
- Buffer.isBuffer(priv) || (priv = new Buffer(priv, enc)),
- (this._priv = new BN(priv)),
- this
- );
- }
- var primeCache = {};
- function checkPrime(prime, generator) {
- var gen = generator.toString("hex"),
- hex = [gen, prime.toString(16)].join("_");
- if (hex in primeCache) return primeCache[hex];
- var error = 0;
- if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime))
- return (
- (error += 1), gen === "02" || gen === "05" ? (error += 8) : (error += 4), (primeCache[hex] = error), error
- );
- millerRabin.test(prime.shrn(1)) || (error += 2);
- var rem;
- switch (gen) {
- case "02":
- prime.mod(TWENTYFOUR).cmp(ELEVEN) && (error += 8);
- break;
- case "05":
- (rem = prime.mod(TEN)), rem.cmp(THREE) && rem.cmp(SEVEN) && (error += 8);
- break;
- default:
- error += 4;
- }
- return (primeCache[hex] = error), error;
- }
- function DH(prime, generator, malleable) {
- this.setGenerator(generator),
- (this.__prime = new BN(prime)),
- (this._prime = BN.mont(this.__prime)),
- (this._primeLen = prime.length),
- (this._pub = void 0),
- (this._priv = void 0),
- (this._primeCode = void 0),
- malleable ? ((this.setPublicKey = setPublicKey), (this.setPrivateKey = setPrivateKey)) : (this._primeCode = 8);
- }
- Object.defineProperty(DH.prototype, "verifyError", {
- enumerable: !0,
- get: function () {
- return (
- typeof this._primeCode != "number" && (this._primeCode = checkPrime(this.__prime, this.__gen)),
- this._primeCode
- );
- },
- });
- DH.prototype.generateKeys = function () {
- return (
- this._priv || (this._priv = new BN(randomBytes(this._primeLen))),
- (this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed()),
- this.getPublicKey()
- );
- };
- DH.prototype.computeSecret = function (other) {
- (other = new BN(other)), (other = other.toRed(this._prime));
- var secret = other.redPow(this._priv).fromRed(),
- out = new Buffer(secret.toArray()),
- prime = this.getPrime();
- if (out.length < prime.length) {
- var front = new Buffer(prime.length - out.length);
- front.fill(0), (out = Buffer.concat([front, out]));
- }
- return out;
- };
- DH.prototype.getPublicKey = function (enc) {
- return formatReturnValue(this._pub, enc);
- };
- DH.prototype.getPrivateKey = function (enc) {
- return formatReturnValue(this._priv, enc);
- };
- DH.prototype.getPrime = function (enc) {
- return formatReturnValue(this.__prime, enc);
- };
- DH.prototype.getGenerator = function (enc) {
- return formatReturnValue(this._gen, enc);
- };
- DH.prototype.setGenerator = function (gen, enc) {
- return (
- (enc = enc || "utf8"),
- Buffer.isBuffer(gen) || (gen = new Buffer(gen, enc)),
- (this.__gen = gen),
- (this._gen = new BN(gen)),
- this
- );
- };
- function formatReturnValue(bn, enc) {
- var buf = new Buffer(bn.toArray());
- return enc ? buf.toString(enc) : buf;
- }
- },
-});
-
-// node_modules/diffie-hellman/browser.js
-var require_browser7 = __commonJS({
- "node_modules/diffie-hellman/browser.js"(exports) {
- var generatePrime = require_generatePrime(),
- primes = require_primes(),
- DH = require_dh();
- function getDiffieHellman(mod) {
- var prime = new Buffer(primes[mod].prime, "hex"),
- gen = new Buffer(primes[mod].gen, "hex");
- return new DH(prime, gen);
- }
- var ENCODINGS = {
- binary: !0,
- hex: !0,
- base64: !0,
- };
- function createDiffieHellman(prime, enc, generator, genc) {
- return Buffer.isBuffer(enc) || ENCODINGS[enc] === void 0
- ? createDiffieHellman(prime, "binary", enc, generator)
- : ((enc = enc || "binary"),
- (genc = genc || "binary"),
- (generator = generator || new Buffer([2])),
- Buffer.isBuffer(generator) || (generator = new Buffer(generator, genc)),
- typeof prime == "number"
- ? new DH(generatePrime(prime, generator), generator, !0)
- : (Buffer.isBuffer(prime) || (prime = new Buffer(prime, enc)), new DH(prime, generator, !0)));
- }
- exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman;
- exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman;
- },
-});
-
-// node_modules/bn.js/lib/bn.js
-var require_bn3 = __commonJS({
- "node_modules/bn.js/lib/bn.js"(exports, module) {
- (function (module2, exports2) {
- "use strict";
- function assert(val, msg) {
- if (!val) throw new Error(msg || "Assertion failed");
- }
- function inherits(ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- (TempCtor.prototype = superCtor.prototype),
- (ctor.prototype = new TempCtor()),
- (ctor.prototype.constructor = ctor);
- }
- function BN(number, base, endian) {
- if (BN.isBN(number)) return number;
- (this.negative = 0),
- (this.words = null),
- (this.length = 0),
- (this.red = null),
- number !== null &&
- ((base === "le" || base === "be") && ((endian = base), (base = 10)),
- this._init(number || 0, base || 10, endian || "be"));
- }
- typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26);
- var Buffer2;
- try {
- typeof window < "u" && typeof window.Buffer < "u"
- ? (Buffer2 = window.Buffer)
- : (Buffer2 = __require("buffer").Buffer);
- } catch {}
- (BN.isBN = function (num) {
- return num instanceof BN
- ? !0
- : num !== null &&
- typeof num == "object" &&
- num.constructor.wordSize === BN.wordSize &&
- Array.isArray(num.words);
- }),
- (BN.max = function (left, right) {
- return left.cmp(right) > 0 ? left : right;
- }),
- (BN.min = function (left, right) {
- return left.cmp(right) < 0 ? left : right;
- }),
- (BN.prototype._init = function (number, base, endian) {
- if (typeof number == "number") return this._initNumber(number, base, endian);
- if (typeof number == "object") return this._initArray(number, base, endian);
- base === "hex" && (base = 16),
- assert(base === (base | 0) && base >= 2 && base <= 36),
- (number = number.toString().replace(/\s+/g, ""));
- var start = 0;
- number[0] === "-" && (start++, (this.negative = 1)),
- start < number.length &&
- (base === 16
- ? this._parseHex(number, start, endian)
- : (this._parseBase(number, base, start),
- endian === "le" && this._initArray(this.toArray(), base, endian)));
- }),
- (BN.prototype._initNumber = function (number, base, endian) {
- number < 0 && ((this.negative = 1), (number = -number)),
- number < 67108864
- ? ((this.words = [number & 67108863]), (this.length = 1))
- : number < 4503599627370496
- ? ((this.words = [number & 67108863, (number / 67108864) & 67108863]), (this.length = 2))
- : (assert(number < 9007199254740992),
- (this.words = [number & 67108863, (number / 67108864) & 67108863, 1]),
- (this.length = 3)),
- endian === "le" && this._initArray(this.toArray(), base, endian);
- }),
- (BN.prototype._initArray = function (number, base, endian) {
- if ((assert(typeof number.length == "number"), number.length <= 0))
- return (this.words = [0]), (this.length = 1), this;
- (this.length = Math.ceil(number.length / 3)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var j,
- w,
- off = 0;
- if (endian === "be")
- for (i = number.length - 1, j = 0; i >= 0; i -= 3)
- (w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- else if (endian === "le")
- for (i = 0, j = 0; i < number.length; i += 3)
- (w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- return this._strip();
- });
- function parseHex4Bits(string, index) {
- var c = string.charCodeAt(index);
- if (c >= 48 && c <= 57) return c - 48;
- if (c >= 65 && c <= 70) return c - 55;
- if (c >= 97 && c <= 102) return c - 87;
- assert(!1, "Invalid character in " + string);
- }
- function parseHexByte(string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- return index - 1 >= lowerBound && (r |= parseHex4Bits(string, index - 1) << 4), r;
- }
- BN.prototype._parseHex = function (number, start, endian) {
- (this.length = Math.ceil((number.length - start) / 6)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var off = 0,
- j = 0,
- w;
- if (endian === "be")
- for (i = number.length - 1; i >= start; i -= 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- }
- this._strip();
- };
- function parseBase(str, start, end, mul) {
- for (var r = 0, b = 0, len = Math.min(str.length, end), i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- (r *= mul),
- c >= 49 ? (b = c - 49 + 10) : c >= 17 ? (b = c - 17 + 10) : (b = c),
- assert(c >= 0 && b < mul, "Invalid character"),
- (r += b);
- }
- return r;
- }
- (BN.prototype._parseBase = function (number, base, start) {
- (this.words = [0]), (this.length = 1);
- for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) limbLen++;
- limbLen--, (limbPow = (limbPow / base) | 0);
- for (
- var total = number.length - start,
- mod = total % limbLen,
- end = Math.min(total, total - mod) + start,
- word = 0,
- i = start;
- i < end;
- i += limbLen
- )
- (word = parseBase(number, i, i + limbLen, base)),
- this.imuln(limbPow),
- this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- if (mod !== 0) {
- var pow = 1;
- for (word = parseBase(number, i, number.length, base), i = 0; i < mod; i++) pow *= base;
- this.imuln(pow), this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- }
- this._strip();
- }),
- (BN.prototype.copy = function (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) dest.words[i] = this.words[i];
- (dest.length = this.length), (dest.negative = this.negative), (dest.red = this.red);
- });
- function move(dest, src) {
- (dest.words = src.words), (dest.length = src.length), (dest.negative = src.negative), (dest.red = src.red);
- }
- if (
- ((BN.prototype._move = function (dest) {
- move(dest, this);
- }),
- (BN.prototype.clone = function () {
- var r = new BN(null);
- return this.copy(r), r;
- }),
- (BN.prototype._expand = function (size) {
- for (; this.length < size; ) this.words[this.length++] = 0;
- return this;
- }),
- (BN.prototype._strip = function () {
- for (; this.length > 1 && this.words[this.length - 1] === 0; ) this.length--;
- return this._normSign();
- }),
- (BN.prototype._normSign = function () {
- return this.length === 1 && this.words[0] === 0 && (this.negative = 0), this;
- }),
- typeof Symbol < "u" && typeof Symbol.for == "function")
- )
- try {
- BN.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspect;
- } catch {
- BN.prototype.inspect = inspect;
- }
- else BN.prototype.inspect = inspect;
- function inspect() {
- return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
- }
- var zeros = [
- "",
- "0",
- "00",
- "000",
- "0000",
- "00000",
- "000000",
- "0000000",
- "00000000",
- "000000000",
- "0000000000",
- "00000000000",
- "000000000000",
- "0000000000000",
- "00000000000000",
- "000000000000000",
- "0000000000000000",
- "00000000000000000",
- "000000000000000000",
- "0000000000000000000",
- "00000000000000000000",
- "000000000000000000000",
- "0000000000000000000000",
- "00000000000000000000000",
- "000000000000000000000000",
- "0000000000000000000000000",
- ],
- groupSizes = [
- 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5,
- ],
- groupBases = [
- 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808,
- 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624,
- 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875,
- 60466176,
- ];
- (BN.prototype.toString = function (base, padding) {
- (base = base || 10), (padding = padding | 0 || 1);
- var out;
- if (base === 16 || base === "hex") {
- out = "";
- for (var off = 0, carry = 0, i = 0; i < this.length; i++) {
- var w = this.words[i],
- word = (((w << off) | carry) & 16777215).toString(16);
- (carry = (w >>> (24 - off)) & 16777215),
- (off += 2),
- off >= 26 && ((off -= 26), i--),
- carry !== 0 || i !== this.length - 1 ? (out = zeros[6 - word.length] + word + out) : (out = word + out);
- }
- for (carry !== 0 && (out = carry.toString(16) + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- var groupSize = groupSizes[base],
- groupBase = groupBases[base];
- out = "";
- var c = this.clone();
- for (c.negative = 0; !c.isZero(); ) {
- var r = c.modrn(groupBase).toString(base);
- (c = c.idivn(groupBase)), c.isZero() ? (out = r + out) : (out = zeros[groupSize - r.length] + r + out);
- }
- for (this.isZero() && (out = "0" + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- assert(!1, "Base should be between 2 and 36");
- }),
- (BN.prototype.toNumber = function () {
- var ret = this.words[0];
- return (
- this.length === 2
- ? (ret += this.words[1] * 67108864)
- : this.length === 3 && this.words[2] === 1
- ? (ret += 4503599627370496 + this.words[1] * 67108864)
- : this.length > 2 && assert(!1, "Number can only safely store up to 53 bits"),
- this.negative !== 0 ? -ret : ret
- );
- }),
- (BN.prototype.toJSON = function () {
- return this.toString(16, 2);
- }),
- Buffer2 &&
- (BN.prototype.toBuffer = function (endian, length) {
- return this.toArrayLike(Buffer2, endian, length);
- }),
- (BN.prototype.toArray = function (endian, length) {
- return this.toArrayLike(Array, endian, length);
- });
- var allocate = function (ArrayType, size) {
- return ArrayType.allocUnsafe ? ArrayType.allocUnsafe(size) : new ArrayType(size);
- };
- (BN.prototype.toArrayLike = function (ArrayType, endian, length) {
- this._strip();
- var byteLength = this.byteLength(),
- reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, "byte array longer than desired length"),
- assert(reqLength > 0, "Requested array length <= 0");
- var res = allocate(ArrayType, reqLength),
- postfix = endian === "le" ? "LE" : "BE";
- return this["_toArrayLike" + postfix](res, byteLength), res;
- }),
- (BN.prototype._toArrayLikeLE = function (res, byteLength) {
- for (var position = 0, carry = 0, i = 0, shift = 0; i < this.length; i++) {
- var word = (this.words[i] << shift) | carry;
- (res[position++] = word & 255),
- position < res.length && (res[position++] = (word >> 8) & 255),
- position < res.length && (res[position++] = (word >> 16) & 255),
- shift === 6
- ? (position < res.length && (res[position++] = (word >> 24) & 255), (carry = 0), (shift = 0))
- : ((carry = word >>> 24), (shift += 2));
- }
- if (position < res.length) for (res[position++] = carry; position < res.length; ) res[position++] = 0;
- }),
- (BN.prototype._toArrayLikeBE = function (res, byteLength) {
- for (var position = res.length - 1, carry = 0, i = 0, shift = 0; i < this.length; i++) {
- var word = (this.words[i] << shift) | carry;
- (res[position--] = word & 255),
- position >= 0 && (res[position--] = (word >> 8) & 255),
- position >= 0 && (res[position--] = (word >> 16) & 255),
- shift === 6
- ? (position >= 0 && (res[position--] = (word >> 24) & 255), (carry = 0), (shift = 0))
- : ((carry = word >>> 24), (shift += 2));
- }
- if (position >= 0) for (res[position--] = carry; position >= 0; ) res[position--] = 0;
- }),
- Math.clz32
- ? (BN.prototype._countBits = function (w) {
- return 32 - Math.clz32(w);
- })
- : (BN.prototype._countBits = function (w) {
- var t = w,
- r = 0;
- return (
- t >= 4096 && ((r += 13), (t >>>= 13)),
- t >= 64 && ((r += 7), (t >>>= 7)),
- t >= 8 && ((r += 4), (t >>>= 4)),
- t >= 2 && ((r += 2), (t >>>= 2)),
- r + t
- );
- }),
- (BN.prototype._zeroBits = function (w) {
- if (w === 0) return 26;
- var t = w,
- r = 0;
- return (
- (t & 8191) === 0 && ((r += 13), (t >>>= 13)),
- (t & 127) === 0 && ((r += 7), (t >>>= 7)),
- (t & 15) === 0 && ((r += 4), (t >>>= 4)),
- (t & 3) === 0 && ((r += 2), (t >>>= 2)),
- (t & 1) === 0 && r++,
- r
- );
- }),
- (BN.prototype.bitLength = function () {
- var w = this.words[this.length - 1],
- hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- });
- function toBitArray(num) {
- for (var w = new Array(num.bitLength()), bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- w[bit] = (num.words[off] >>> wbit) & 1;
- }
- return w;
- }
- (BN.prototype.zeroBits = function () {
- if (this.isZero()) return 0;
- for (var r = 0, i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- if (((r += b), b !== 26)) break;
- }
- return r;
- }),
- (BN.prototype.byteLength = function () {
- return Math.ceil(this.bitLength() / 8);
- }),
- (BN.prototype.toTwos = function (width) {
- return this.negative !== 0 ? this.abs().inotn(width).iaddn(1) : this.clone();
- }),
- (BN.prototype.fromTwos = function (width) {
- return this.testn(width - 1) ? this.notn(width).iaddn(1).ineg() : this.clone();
- }),
- (BN.prototype.isNeg = function () {
- return this.negative !== 0;
- }),
- (BN.prototype.neg = function () {
- return this.clone().ineg();
- }),
- (BN.prototype.ineg = function () {
- return this.isZero() || (this.negative ^= 1), this;
- }),
- (BN.prototype.iuor = function (num) {
- for (; this.length < num.length; ) this.words[this.length++] = 0;
- for (var i = 0; i < num.length; i++) this.words[i] = this.words[i] | num.words[i];
- return this._strip();
- }),
- (BN.prototype.ior = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuor(num);
- }),
- (BN.prototype.or = function (num) {
- return this.length > num.length ? this.clone().ior(num) : num.clone().ior(this);
- }),
- (BN.prototype.uor = function (num) {
- return this.length > num.length ? this.clone().iuor(num) : num.clone().iuor(this);
- }),
- (BN.prototype.iuand = function (num) {
- var b;
- this.length > num.length ? (b = num) : (b = this);
- for (var i = 0; i < b.length; i++) this.words[i] = this.words[i] & num.words[i];
- return (this.length = b.length), this._strip();
- }),
- (BN.prototype.iand = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuand(num);
- }),
- (BN.prototype.and = function (num) {
- return this.length > num.length ? this.clone().iand(num) : num.clone().iand(this);
- }),
- (BN.prototype.uand = function (num) {
- return this.length > num.length ? this.clone().iuand(num) : num.clone().iuand(this);
- }),
- (BN.prototype.iuxor = function (num) {
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var i = 0; i < b.length; i++) this.words[i] = a.words[i] ^ b.words[i];
- if (this !== a) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = a.length), this._strip();
- }),
- (BN.prototype.ixor = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuxor(num);
- }),
- (BN.prototype.xor = function (num) {
- return this.length > num.length ? this.clone().ixor(num) : num.clone().ixor(this);
- }),
- (BN.prototype.uxor = function (num) {
- return this.length > num.length ? this.clone().iuxor(num) : num.clone().iuxor(this);
- }),
- (BN.prototype.inotn = function (width) {
- assert(typeof width == "number" && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0,
- bitsLeft = width % 26;
- this._expand(bytesNeeded), bitsLeft > 0 && bytesNeeded--;
- for (var i = 0; i < bytesNeeded; i++) this.words[i] = ~this.words[i] & 67108863;
- return bitsLeft > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft))), this._strip();
- }),
- (BN.prototype.notn = function (width) {
- return this.clone().inotn(width);
- }),
- (BN.prototype.setn = function (bit, val) {
- assert(typeof bit == "number" && bit >= 0);
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- return (
- this._expand(off + 1),
- val
- ? (this.words[off] = this.words[off] | (1 << wbit))
- : (this.words[off] = this.words[off] & ~(1 << wbit)),
- this._strip()
- );
- }),
- (BN.prototype.iadd = function (num) {
- var r;
- if (this.negative !== 0 && num.negative === 0)
- return (this.negative = 0), (r = this.isub(num)), (this.negative ^= 1), this._normSign();
- if (this.negative === 0 && num.negative !== 0)
- return (num.negative = 0), (r = this.isub(num)), (num.negative = 1), r._normSign();
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) + (b.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- if (((this.length = a.length), carry !== 0)) (this.words[this.length] = carry), this.length++;
- else if (a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return this;
- }),
- (BN.prototype.add = function (num) {
- var res;
- return num.negative !== 0 && this.negative === 0
- ? ((num.negative = 0), (res = this.sub(num)), (num.negative ^= 1), res)
- : num.negative === 0 && this.negative !== 0
- ? ((this.negative = 0), (res = num.sub(this)), (this.negative = 1), res)
- : this.length > num.length
- ? this.clone().iadd(num)
- : num.clone().iadd(this);
- }),
- (BN.prototype.isub = function (num) {
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- return (num.negative = 1), r._normSign();
- } else if (this.negative !== 0)
- return (this.negative = 0), this.iadd(num), (this.negative = 1), this._normSign();
- var cmp = this.cmp(num);
- if (cmp === 0) return (this.negative = 0), (this.length = 1), (this.words[0] = 0), this;
- var a, b;
- cmp > 0 ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) - (b.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- if (carry === 0 && i < a.length && a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = Math.max(this.length, i)), a !== this && (this.negative = 1), this._strip();
- }),
- (BN.prototype.sub = function (num) {
- return this.clone().isub(num);
- });
- function smallMulTo(self2, num, out) {
- out.negative = num.negative ^ self2.negative;
- var len = (self2.length + num.length) | 0;
- (out.length = len), (len = (len - 1) | 0);
- var a = self2.words[0] | 0,
- b = num.words[0] | 0,
- r = a * b,
- lo = r & 67108863,
- carry = (r / 67108864) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- for (
- var ncarry = carry >>> 26,
- rword = carry & 67108863,
- maxJ = Math.min(k, num.length - 1),
- j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = (k - j) | 0;
- (a = self2.words[i] | 0),
- (b = num.words[j] | 0),
- (r = a * b + rword),
- (ncarry += (r / 67108864) | 0),
- (rword = r & 67108863);
- }
- (out.words[k] = rword | 0), (carry = ncarry | 0);
- }
- return carry !== 0 ? (out.words[k] = carry | 0) : out.length--, out._strip();
- }
- var comb10MulTo = function (self2, num, out) {
- var a = self2.words,
- b = num.words,
- o = out.words,
- c = 0,
- lo,
- mid,
- hi,
- a0 = a[0] | 0,
- al0 = a0 & 8191,
- ah0 = a0 >>> 13,
- a1 = a[1] | 0,
- al1 = a1 & 8191,
- ah1 = a1 >>> 13,
- a2 = a[2] | 0,
- al2 = a2 & 8191,
- ah2 = a2 >>> 13,
- a3 = a[3] | 0,
- al3 = a3 & 8191,
- ah3 = a3 >>> 13,
- a4 = a[4] | 0,
- al4 = a4 & 8191,
- ah4 = a4 >>> 13,
- a5 = a[5] | 0,
- al5 = a5 & 8191,
- ah5 = a5 >>> 13,
- a6 = a[6] | 0,
- al6 = a6 & 8191,
- ah6 = a6 >>> 13,
- a7 = a[7] | 0,
- al7 = a7 & 8191,
- ah7 = a7 >>> 13,
- a8 = a[8] | 0,
- al8 = a8 & 8191,
- ah8 = a8 >>> 13,
- a9 = a[9] | 0,
- al9 = a9 & 8191,
- ah9 = a9 >>> 13,
- b0 = b[0] | 0,
- bl0 = b0 & 8191,
- bh0 = b0 >>> 13,
- b1 = b[1] | 0,
- bl1 = b1 & 8191,
- bh1 = b1 >>> 13,
- b2 = b[2] | 0,
- bl2 = b2 & 8191,
- bh2 = b2 >>> 13,
- b3 = b[3] | 0,
- bl3 = b3 & 8191,
- bh3 = b3 >>> 13,
- b4 = b[4] | 0,
- bl4 = b4 & 8191,
- bh4 = b4 >>> 13,
- b5 = b[5] | 0,
- bl5 = b5 & 8191,
- bh5 = b5 >>> 13,
- b6 = b[6] | 0,
- bl6 = b6 & 8191,
- bh6 = b6 >>> 13,
- b7 = b[7] | 0,
- bl7 = b7 & 8191,
- bh7 = b7 >>> 13,
- b8 = b[8] | 0,
- bl8 = b8 & 8191,
- bh8 = b8 >>> 13,
- b9 = b[9] | 0,
- bl9 = b9 & 8191,
- bh9 = b9 >>> 13;
- (out.negative = self2.negative ^ num.negative),
- (out.length = 19),
- (lo = Math.imul(al0, bl0)),
- (mid = Math.imul(al0, bh0)),
- (mid = (mid + Math.imul(ah0, bl0)) | 0),
- (hi = Math.imul(ah0, bh0));
- var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0),
- (w0 &= 67108863),
- (lo = Math.imul(al1, bl0)),
- (mid = Math.imul(al1, bh0)),
- (mid = (mid + Math.imul(ah1, bl0)) | 0),
- (hi = Math.imul(ah1, bh0)),
- (lo = (lo + Math.imul(al0, bl1)) | 0),
- (mid = (mid + Math.imul(al0, bh1)) | 0),
- (mid = (mid + Math.imul(ah0, bl1)) | 0),
- (hi = (hi + Math.imul(ah0, bh1)) | 0);
- var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0),
- (w1 &= 67108863),
- (lo = Math.imul(al2, bl0)),
- (mid = Math.imul(al2, bh0)),
- (mid = (mid + Math.imul(ah2, bl0)) | 0),
- (hi = Math.imul(ah2, bh0)),
- (lo = (lo + Math.imul(al1, bl1)) | 0),
- (mid = (mid + Math.imul(al1, bh1)) | 0),
- (mid = (mid + Math.imul(ah1, bl1)) | 0),
- (hi = (hi + Math.imul(ah1, bh1)) | 0),
- (lo = (lo + Math.imul(al0, bl2)) | 0),
- (mid = (mid + Math.imul(al0, bh2)) | 0),
- (mid = (mid + Math.imul(ah0, bl2)) | 0),
- (hi = (hi + Math.imul(ah0, bh2)) | 0);
- var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0),
- (w2 &= 67108863),
- (lo = Math.imul(al3, bl0)),
- (mid = Math.imul(al3, bh0)),
- (mid = (mid + Math.imul(ah3, bl0)) | 0),
- (hi = Math.imul(ah3, bh0)),
- (lo = (lo + Math.imul(al2, bl1)) | 0),
- (mid = (mid + Math.imul(al2, bh1)) | 0),
- (mid = (mid + Math.imul(ah2, bl1)) | 0),
- (hi = (hi + Math.imul(ah2, bh1)) | 0),
- (lo = (lo + Math.imul(al1, bl2)) | 0),
- (mid = (mid + Math.imul(al1, bh2)) | 0),
- (mid = (mid + Math.imul(ah1, bl2)) | 0),
- (hi = (hi + Math.imul(ah1, bh2)) | 0),
- (lo = (lo + Math.imul(al0, bl3)) | 0),
- (mid = (mid + Math.imul(al0, bh3)) | 0),
- (mid = (mid + Math.imul(ah0, bl3)) | 0),
- (hi = (hi + Math.imul(ah0, bh3)) | 0);
- var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0),
- (w3 &= 67108863),
- (lo = Math.imul(al4, bl0)),
- (mid = Math.imul(al4, bh0)),
- (mid = (mid + Math.imul(ah4, bl0)) | 0),
- (hi = Math.imul(ah4, bh0)),
- (lo = (lo + Math.imul(al3, bl1)) | 0),
- (mid = (mid + Math.imul(al3, bh1)) | 0),
- (mid = (mid + Math.imul(ah3, bl1)) | 0),
- (hi = (hi + Math.imul(ah3, bh1)) | 0),
- (lo = (lo + Math.imul(al2, bl2)) | 0),
- (mid = (mid + Math.imul(al2, bh2)) | 0),
- (mid = (mid + Math.imul(ah2, bl2)) | 0),
- (hi = (hi + Math.imul(ah2, bh2)) | 0),
- (lo = (lo + Math.imul(al1, bl3)) | 0),
- (mid = (mid + Math.imul(al1, bh3)) | 0),
- (mid = (mid + Math.imul(ah1, bl3)) | 0),
- (hi = (hi + Math.imul(ah1, bh3)) | 0),
- (lo = (lo + Math.imul(al0, bl4)) | 0),
- (mid = (mid + Math.imul(al0, bh4)) | 0),
- (mid = (mid + Math.imul(ah0, bl4)) | 0),
- (hi = (hi + Math.imul(ah0, bh4)) | 0);
- var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0),
- (w4 &= 67108863),
- (lo = Math.imul(al5, bl0)),
- (mid = Math.imul(al5, bh0)),
- (mid = (mid + Math.imul(ah5, bl0)) | 0),
- (hi = Math.imul(ah5, bh0)),
- (lo = (lo + Math.imul(al4, bl1)) | 0),
- (mid = (mid + Math.imul(al4, bh1)) | 0),
- (mid = (mid + Math.imul(ah4, bl1)) | 0),
- (hi = (hi + Math.imul(ah4, bh1)) | 0),
- (lo = (lo + Math.imul(al3, bl2)) | 0),
- (mid = (mid + Math.imul(al3, bh2)) | 0),
- (mid = (mid + Math.imul(ah3, bl2)) | 0),
- (hi = (hi + Math.imul(ah3, bh2)) | 0),
- (lo = (lo + Math.imul(al2, bl3)) | 0),
- (mid = (mid + Math.imul(al2, bh3)) | 0),
- (mid = (mid + Math.imul(ah2, bl3)) | 0),
- (hi = (hi + Math.imul(ah2, bh3)) | 0),
- (lo = (lo + Math.imul(al1, bl4)) | 0),
- (mid = (mid + Math.imul(al1, bh4)) | 0),
- (mid = (mid + Math.imul(ah1, bl4)) | 0),
- (hi = (hi + Math.imul(ah1, bh4)) | 0),
- (lo = (lo + Math.imul(al0, bl5)) | 0),
- (mid = (mid + Math.imul(al0, bh5)) | 0),
- (mid = (mid + Math.imul(ah0, bl5)) | 0),
- (hi = (hi + Math.imul(ah0, bh5)) | 0);
- var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0),
- (w5 &= 67108863),
- (lo = Math.imul(al6, bl0)),
- (mid = Math.imul(al6, bh0)),
- (mid = (mid + Math.imul(ah6, bl0)) | 0),
- (hi = Math.imul(ah6, bh0)),
- (lo = (lo + Math.imul(al5, bl1)) | 0),
- (mid = (mid + Math.imul(al5, bh1)) | 0),
- (mid = (mid + Math.imul(ah5, bl1)) | 0),
- (hi = (hi + Math.imul(ah5, bh1)) | 0),
- (lo = (lo + Math.imul(al4, bl2)) | 0),
- (mid = (mid + Math.imul(al4, bh2)) | 0),
- (mid = (mid + Math.imul(ah4, bl2)) | 0),
- (hi = (hi + Math.imul(ah4, bh2)) | 0),
- (lo = (lo + Math.imul(al3, bl3)) | 0),
- (mid = (mid + Math.imul(al3, bh3)) | 0),
- (mid = (mid + Math.imul(ah3, bl3)) | 0),
- (hi = (hi + Math.imul(ah3, bh3)) | 0),
- (lo = (lo + Math.imul(al2, bl4)) | 0),
- (mid = (mid + Math.imul(al2, bh4)) | 0),
- (mid = (mid + Math.imul(ah2, bl4)) | 0),
- (hi = (hi + Math.imul(ah2, bh4)) | 0),
- (lo = (lo + Math.imul(al1, bl5)) | 0),
- (mid = (mid + Math.imul(al1, bh5)) | 0),
- (mid = (mid + Math.imul(ah1, bl5)) | 0),
- (hi = (hi + Math.imul(ah1, bh5)) | 0),
- (lo = (lo + Math.imul(al0, bl6)) | 0),
- (mid = (mid + Math.imul(al0, bh6)) | 0),
- (mid = (mid + Math.imul(ah0, bl6)) | 0),
- (hi = (hi + Math.imul(ah0, bh6)) | 0);
- var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0),
- (w6 &= 67108863),
- (lo = Math.imul(al7, bl0)),
- (mid = Math.imul(al7, bh0)),
- (mid = (mid + Math.imul(ah7, bl0)) | 0),
- (hi = Math.imul(ah7, bh0)),
- (lo = (lo + Math.imul(al6, bl1)) | 0),
- (mid = (mid + Math.imul(al6, bh1)) | 0),
- (mid = (mid + Math.imul(ah6, bl1)) | 0),
- (hi = (hi + Math.imul(ah6, bh1)) | 0),
- (lo = (lo + Math.imul(al5, bl2)) | 0),
- (mid = (mid + Math.imul(al5, bh2)) | 0),
- (mid = (mid + Math.imul(ah5, bl2)) | 0),
- (hi = (hi + Math.imul(ah5, bh2)) | 0),
- (lo = (lo + Math.imul(al4, bl3)) | 0),
- (mid = (mid + Math.imul(al4, bh3)) | 0),
- (mid = (mid + Math.imul(ah4, bl3)) | 0),
- (hi = (hi + Math.imul(ah4, bh3)) | 0),
- (lo = (lo + Math.imul(al3, bl4)) | 0),
- (mid = (mid + Math.imul(al3, bh4)) | 0),
- (mid = (mid + Math.imul(ah3, bl4)) | 0),
- (hi = (hi + Math.imul(ah3, bh4)) | 0),
- (lo = (lo + Math.imul(al2, bl5)) | 0),
- (mid = (mid + Math.imul(al2, bh5)) | 0),
- (mid = (mid + Math.imul(ah2, bl5)) | 0),
- (hi = (hi + Math.imul(ah2, bh5)) | 0),
- (lo = (lo + Math.imul(al1, bl6)) | 0),
- (mid = (mid + Math.imul(al1, bh6)) | 0),
- (mid = (mid + Math.imul(ah1, bl6)) | 0),
- (hi = (hi + Math.imul(ah1, bh6)) | 0),
- (lo = (lo + Math.imul(al0, bl7)) | 0),
- (mid = (mid + Math.imul(al0, bh7)) | 0),
- (mid = (mid + Math.imul(ah0, bl7)) | 0),
- (hi = (hi + Math.imul(ah0, bh7)) | 0);
- var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0),
- (w7 &= 67108863),
- (lo = Math.imul(al8, bl0)),
- (mid = Math.imul(al8, bh0)),
- (mid = (mid + Math.imul(ah8, bl0)) | 0),
- (hi = Math.imul(ah8, bh0)),
- (lo = (lo + Math.imul(al7, bl1)) | 0),
- (mid = (mid + Math.imul(al7, bh1)) | 0),
- (mid = (mid + Math.imul(ah7, bl1)) | 0),
- (hi = (hi + Math.imul(ah7, bh1)) | 0),
- (lo = (lo + Math.imul(al6, bl2)) | 0),
- (mid = (mid + Math.imul(al6, bh2)) | 0),
- (mid = (mid + Math.imul(ah6, bl2)) | 0),
- (hi = (hi + Math.imul(ah6, bh2)) | 0),
- (lo = (lo + Math.imul(al5, bl3)) | 0),
- (mid = (mid + Math.imul(al5, bh3)) | 0),
- (mid = (mid + Math.imul(ah5, bl3)) | 0),
- (hi = (hi + Math.imul(ah5, bh3)) | 0),
- (lo = (lo + Math.imul(al4, bl4)) | 0),
- (mid = (mid + Math.imul(al4, bh4)) | 0),
- (mid = (mid + Math.imul(ah4, bl4)) | 0),
- (hi = (hi + Math.imul(ah4, bh4)) | 0),
- (lo = (lo + Math.imul(al3, bl5)) | 0),
- (mid = (mid + Math.imul(al3, bh5)) | 0),
- (mid = (mid + Math.imul(ah3, bl5)) | 0),
- (hi = (hi + Math.imul(ah3, bh5)) | 0),
- (lo = (lo + Math.imul(al2, bl6)) | 0),
- (mid = (mid + Math.imul(al2, bh6)) | 0),
- (mid = (mid + Math.imul(ah2, bl6)) | 0),
- (hi = (hi + Math.imul(ah2, bh6)) | 0),
- (lo = (lo + Math.imul(al1, bl7)) | 0),
- (mid = (mid + Math.imul(al1, bh7)) | 0),
- (mid = (mid + Math.imul(ah1, bl7)) | 0),
- (hi = (hi + Math.imul(ah1, bh7)) | 0),
- (lo = (lo + Math.imul(al0, bl8)) | 0),
- (mid = (mid + Math.imul(al0, bh8)) | 0),
- (mid = (mid + Math.imul(ah0, bl8)) | 0),
- (hi = (hi + Math.imul(ah0, bh8)) | 0);
- var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0),
- (w8 &= 67108863),
- (lo = Math.imul(al9, bl0)),
- (mid = Math.imul(al9, bh0)),
- (mid = (mid + Math.imul(ah9, bl0)) | 0),
- (hi = Math.imul(ah9, bh0)),
- (lo = (lo + Math.imul(al8, bl1)) | 0),
- (mid = (mid + Math.imul(al8, bh1)) | 0),
- (mid = (mid + Math.imul(ah8, bl1)) | 0),
- (hi = (hi + Math.imul(ah8, bh1)) | 0),
- (lo = (lo + Math.imul(al7, bl2)) | 0),
- (mid = (mid + Math.imul(al7, bh2)) | 0),
- (mid = (mid + Math.imul(ah7, bl2)) | 0),
- (hi = (hi + Math.imul(ah7, bh2)) | 0),
- (lo = (lo + Math.imul(al6, bl3)) | 0),
- (mid = (mid + Math.imul(al6, bh3)) | 0),
- (mid = (mid + Math.imul(ah6, bl3)) | 0),
- (hi = (hi + Math.imul(ah6, bh3)) | 0),
- (lo = (lo + Math.imul(al5, bl4)) | 0),
- (mid = (mid + Math.imul(al5, bh4)) | 0),
- (mid = (mid + Math.imul(ah5, bl4)) | 0),
- (hi = (hi + Math.imul(ah5, bh4)) | 0),
- (lo = (lo + Math.imul(al4, bl5)) | 0),
- (mid = (mid + Math.imul(al4, bh5)) | 0),
- (mid = (mid + Math.imul(ah4, bl5)) | 0),
- (hi = (hi + Math.imul(ah4, bh5)) | 0),
- (lo = (lo + Math.imul(al3, bl6)) | 0),
- (mid = (mid + Math.imul(al3, bh6)) | 0),
- (mid = (mid + Math.imul(ah3, bl6)) | 0),
- (hi = (hi + Math.imul(ah3, bh6)) | 0),
- (lo = (lo + Math.imul(al2, bl7)) | 0),
- (mid = (mid + Math.imul(al2, bh7)) | 0),
- (mid = (mid + Math.imul(ah2, bl7)) | 0),
- (hi = (hi + Math.imul(ah2, bh7)) | 0),
- (lo = (lo + Math.imul(al1, bl8)) | 0),
- (mid = (mid + Math.imul(al1, bh8)) | 0),
- (mid = (mid + Math.imul(ah1, bl8)) | 0),
- (hi = (hi + Math.imul(ah1, bh8)) | 0),
- (lo = (lo + Math.imul(al0, bl9)) | 0),
- (mid = (mid + Math.imul(al0, bh9)) | 0),
- (mid = (mid + Math.imul(ah0, bl9)) | 0),
- (hi = (hi + Math.imul(ah0, bh9)) | 0);
- var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0),
- (w9 &= 67108863),
- (lo = Math.imul(al9, bl1)),
- (mid = Math.imul(al9, bh1)),
- (mid = (mid + Math.imul(ah9, bl1)) | 0),
- (hi = Math.imul(ah9, bh1)),
- (lo = (lo + Math.imul(al8, bl2)) | 0),
- (mid = (mid + Math.imul(al8, bh2)) | 0),
- (mid = (mid + Math.imul(ah8, bl2)) | 0),
- (hi = (hi + Math.imul(ah8, bh2)) | 0),
- (lo = (lo + Math.imul(al7, bl3)) | 0),
- (mid = (mid + Math.imul(al7, bh3)) | 0),
- (mid = (mid + Math.imul(ah7, bl3)) | 0),
- (hi = (hi + Math.imul(ah7, bh3)) | 0),
- (lo = (lo + Math.imul(al6, bl4)) | 0),
- (mid = (mid + Math.imul(al6, bh4)) | 0),
- (mid = (mid + Math.imul(ah6, bl4)) | 0),
- (hi = (hi + Math.imul(ah6, bh4)) | 0),
- (lo = (lo + Math.imul(al5, bl5)) | 0),
- (mid = (mid + Math.imul(al5, bh5)) | 0),
- (mid = (mid + Math.imul(ah5, bl5)) | 0),
- (hi = (hi + Math.imul(ah5, bh5)) | 0),
- (lo = (lo + Math.imul(al4, bl6)) | 0),
- (mid = (mid + Math.imul(al4, bh6)) | 0),
- (mid = (mid + Math.imul(ah4, bl6)) | 0),
- (hi = (hi + Math.imul(ah4, bh6)) | 0),
- (lo = (lo + Math.imul(al3, bl7)) | 0),
- (mid = (mid + Math.imul(al3, bh7)) | 0),
- (mid = (mid + Math.imul(ah3, bl7)) | 0),
- (hi = (hi + Math.imul(ah3, bh7)) | 0),
- (lo = (lo + Math.imul(al2, bl8)) | 0),
- (mid = (mid + Math.imul(al2, bh8)) | 0),
- (mid = (mid + Math.imul(ah2, bl8)) | 0),
- (hi = (hi + Math.imul(ah2, bh8)) | 0),
- (lo = (lo + Math.imul(al1, bl9)) | 0),
- (mid = (mid + Math.imul(al1, bh9)) | 0),
- (mid = (mid + Math.imul(ah1, bl9)) | 0),
- (hi = (hi + Math.imul(ah1, bh9)) | 0);
- var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0),
- (w10 &= 67108863),
- (lo = Math.imul(al9, bl2)),
- (mid = Math.imul(al9, bh2)),
- (mid = (mid + Math.imul(ah9, bl2)) | 0),
- (hi = Math.imul(ah9, bh2)),
- (lo = (lo + Math.imul(al8, bl3)) | 0),
- (mid = (mid + Math.imul(al8, bh3)) | 0),
- (mid = (mid + Math.imul(ah8, bl3)) | 0),
- (hi = (hi + Math.imul(ah8, bh3)) | 0),
- (lo = (lo + Math.imul(al7, bl4)) | 0),
- (mid = (mid + Math.imul(al7, bh4)) | 0),
- (mid = (mid + Math.imul(ah7, bl4)) | 0),
- (hi = (hi + Math.imul(ah7, bh4)) | 0),
- (lo = (lo + Math.imul(al6, bl5)) | 0),
- (mid = (mid + Math.imul(al6, bh5)) | 0),
- (mid = (mid + Math.imul(ah6, bl5)) | 0),
- (hi = (hi + Math.imul(ah6, bh5)) | 0),
- (lo = (lo + Math.imul(al5, bl6)) | 0),
- (mid = (mid + Math.imul(al5, bh6)) | 0),
- (mid = (mid + Math.imul(ah5, bl6)) | 0),
- (hi = (hi + Math.imul(ah5, bh6)) | 0),
- (lo = (lo + Math.imul(al4, bl7)) | 0),
- (mid = (mid + Math.imul(al4, bh7)) | 0),
- (mid = (mid + Math.imul(ah4, bl7)) | 0),
- (hi = (hi + Math.imul(ah4, bh7)) | 0),
- (lo = (lo + Math.imul(al3, bl8)) | 0),
- (mid = (mid + Math.imul(al3, bh8)) | 0),
- (mid = (mid + Math.imul(ah3, bl8)) | 0),
- (hi = (hi + Math.imul(ah3, bh8)) | 0),
- (lo = (lo + Math.imul(al2, bl9)) | 0),
- (mid = (mid + Math.imul(al2, bh9)) | 0),
- (mid = (mid + Math.imul(ah2, bl9)) | 0),
- (hi = (hi + Math.imul(ah2, bh9)) | 0);
- var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0),
- (w11 &= 67108863),
- (lo = Math.imul(al9, bl3)),
- (mid = Math.imul(al9, bh3)),
- (mid = (mid + Math.imul(ah9, bl3)) | 0),
- (hi = Math.imul(ah9, bh3)),
- (lo = (lo + Math.imul(al8, bl4)) | 0),
- (mid = (mid + Math.imul(al8, bh4)) | 0),
- (mid = (mid + Math.imul(ah8, bl4)) | 0),
- (hi = (hi + Math.imul(ah8, bh4)) | 0),
- (lo = (lo + Math.imul(al7, bl5)) | 0),
- (mid = (mid + Math.imul(al7, bh5)) | 0),
- (mid = (mid + Math.imul(ah7, bl5)) | 0),
- (hi = (hi + Math.imul(ah7, bh5)) | 0),
- (lo = (lo + Math.imul(al6, bl6)) | 0),
- (mid = (mid + Math.imul(al6, bh6)) | 0),
- (mid = (mid + Math.imul(ah6, bl6)) | 0),
- (hi = (hi + Math.imul(ah6, bh6)) | 0),
- (lo = (lo + Math.imul(al5, bl7)) | 0),
- (mid = (mid + Math.imul(al5, bh7)) | 0),
- (mid = (mid + Math.imul(ah5, bl7)) | 0),
- (hi = (hi + Math.imul(ah5, bh7)) | 0),
- (lo = (lo + Math.imul(al4, bl8)) | 0),
- (mid = (mid + Math.imul(al4, bh8)) | 0),
- (mid = (mid + Math.imul(ah4, bl8)) | 0),
- (hi = (hi + Math.imul(ah4, bh8)) | 0),
- (lo = (lo + Math.imul(al3, bl9)) | 0),
- (mid = (mid + Math.imul(al3, bh9)) | 0),
- (mid = (mid + Math.imul(ah3, bl9)) | 0),
- (hi = (hi + Math.imul(ah3, bh9)) | 0);
- var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0),
- (w12 &= 67108863),
- (lo = Math.imul(al9, bl4)),
- (mid = Math.imul(al9, bh4)),
- (mid = (mid + Math.imul(ah9, bl4)) | 0),
- (hi = Math.imul(ah9, bh4)),
- (lo = (lo + Math.imul(al8, bl5)) | 0),
- (mid = (mid + Math.imul(al8, bh5)) | 0),
- (mid = (mid + Math.imul(ah8, bl5)) | 0),
- (hi = (hi + Math.imul(ah8, bh5)) | 0),
- (lo = (lo + Math.imul(al7, bl6)) | 0),
- (mid = (mid + Math.imul(al7, bh6)) | 0),
- (mid = (mid + Math.imul(ah7, bl6)) | 0),
- (hi = (hi + Math.imul(ah7, bh6)) | 0),
- (lo = (lo + Math.imul(al6, bl7)) | 0),
- (mid = (mid + Math.imul(al6, bh7)) | 0),
- (mid = (mid + Math.imul(ah6, bl7)) | 0),
- (hi = (hi + Math.imul(ah6, bh7)) | 0),
- (lo = (lo + Math.imul(al5, bl8)) | 0),
- (mid = (mid + Math.imul(al5, bh8)) | 0),
- (mid = (mid + Math.imul(ah5, bl8)) | 0),
- (hi = (hi + Math.imul(ah5, bh8)) | 0),
- (lo = (lo + Math.imul(al4, bl9)) | 0),
- (mid = (mid + Math.imul(al4, bh9)) | 0),
- (mid = (mid + Math.imul(ah4, bl9)) | 0),
- (hi = (hi + Math.imul(ah4, bh9)) | 0);
- var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0),
- (w13 &= 67108863),
- (lo = Math.imul(al9, bl5)),
- (mid = Math.imul(al9, bh5)),
- (mid = (mid + Math.imul(ah9, bl5)) | 0),
- (hi = Math.imul(ah9, bh5)),
- (lo = (lo + Math.imul(al8, bl6)) | 0),
- (mid = (mid + Math.imul(al8, bh6)) | 0),
- (mid = (mid + Math.imul(ah8, bl6)) | 0),
- (hi = (hi + Math.imul(ah8, bh6)) | 0),
- (lo = (lo + Math.imul(al7, bl7)) | 0),
- (mid = (mid + Math.imul(al7, bh7)) | 0),
- (mid = (mid + Math.imul(ah7, bl7)) | 0),
- (hi = (hi + Math.imul(ah7, bh7)) | 0),
- (lo = (lo + Math.imul(al6, bl8)) | 0),
- (mid = (mid + Math.imul(al6, bh8)) | 0),
- (mid = (mid + Math.imul(ah6, bl8)) | 0),
- (hi = (hi + Math.imul(ah6, bh8)) | 0),
- (lo = (lo + Math.imul(al5, bl9)) | 0),
- (mid = (mid + Math.imul(al5, bh9)) | 0),
- (mid = (mid + Math.imul(ah5, bl9)) | 0),
- (hi = (hi + Math.imul(ah5, bh9)) | 0);
- var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0),
- (w14 &= 67108863),
- (lo = Math.imul(al9, bl6)),
- (mid = Math.imul(al9, bh6)),
- (mid = (mid + Math.imul(ah9, bl6)) | 0),
- (hi = Math.imul(ah9, bh6)),
- (lo = (lo + Math.imul(al8, bl7)) | 0),
- (mid = (mid + Math.imul(al8, bh7)) | 0),
- (mid = (mid + Math.imul(ah8, bl7)) | 0),
- (hi = (hi + Math.imul(ah8, bh7)) | 0),
- (lo = (lo + Math.imul(al7, bl8)) | 0),
- (mid = (mid + Math.imul(al7, bh8)) | 0),
- (mid = (mid + Math.imul(ah7, bl8)) | 0),
- (hi = (hi + Math.imul(ah7, bh8)) | 0),
- (lo = (lo + Math.imul(al6, bl9)) | 0),
- (mid = (mid + Math.imul(al6, bh9)) | 0),
- (mid = (mid + Math.imul(ah6, bl9)) | 0),
- (hi = (hi + Math.imul(ah6, bh9)) | 0);
- var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0),
- (w15 &= 67108863),
- (lo = Math.imul(al9, bl7)),
- (mid = Math.imul(al9, bh7)),
- (mid = (mid + Math.imul(ah9, bl7)) | 0),
- (hi = Math.imul(ah9, bh7)),
- (lo = (lo + Math.imul(al8, bl8)) | 0),
- (mid = (mid + Math.imul(al8, bh8)) | 0),
- (mid = (mid + Math.imul(ah8, bl8)) | 0),
- (hi = (hi + Math.imul(ah8, bh8)) | 0),
- (lo = (lo + Math.imul(al7, bl9)) | 0),
- (mid = (mid + Math.imul(al7, bh9)) | 0),
- (mid = (mid + Math.imul(ah7, bl9)) | 0),
- (hi = (hi + Math.imul(ah7, bh9)) | 0);
- var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0),
- (w16 &= 67108863),
- (lo = Math.imul(al9, bl8)),
- (mid = Math.imul(al9, bh8)),
- (mid = (mid + Math.imul(ah9, bl8)) | 0),
- (hi = Math.imul(ah9, bh8)),
- (lo = (lo + Math.imul(al8, bl9)) | 0),
- (mid = (mid + Math.imul(al8, bh9)) | 0),
- (mid = (mid + Math.imul(ah8, bl9)) | 0),
- (hi = (hi + Math.imul(ah8, bh9)) | 0);
- var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0),
- (w17 &= 67108863),
- (lo = Math.imul(al9, bl9)),
- (mid = Math.imul(al9, bh9)),
- (mid = (mid + Math.imul(ah9, bl9)) | 0),
- (hi = Math.imul(ah9, bh9));
- var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- return (
- (c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0),
- (w18 &= 67108863),
- (o[0] = w0),
- (o[1] = w1),
- (o[2] = w2),
- (o[3] = w3),
- (o[4] = w4),
- (o[5] = w5),
- (o[6] = w6),
- (o[7] = w7),
- (o[8] = w8),
- (o[9] = w9),
- (o[10] = w10),
- (o[11] = w11),
- (o[12] = w12),
- (o[13] = w13),
- (o[14] = w14),
- (o[15] = w15),
- (o[16] = w16),
- (o[17] = w17),
- (o[18] = w18),
- c !== 0 && ((o[19] = c), out.length++),
- out
- );
- };
- Math.imul || (comb10MulTo = smallMulTo);
- function bigMulTo(self2, num, out) {
- (out.negative = num.negative ^ self2.negative), (out.length = self2.length + num.length);
- for (var carry = 0, hncarry = 0, k = 0; k < out.length - 1; k++) {
- var ncarry = hncarry;
- hncarry = 0;
- for (
- var rword = carry & 67108863, maxJ = Math.min(k, num.length - 1), j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = k - j,
- a = self2.words[i] | 0,
- b = num.words[j] | 0,
- r = a * b,
- lo = r & 67108863;
- (ncarry = (ncarry + ((r / 67108864) | 0)) | 0),
- (lo = (lo + rword) | 0),
- (rword = lo & 67108863),
- (ncarry = (ncarry + (lo >>> 26)) | 0),
- (hncarry += ncarry >>> 26),
- (ncarry &= 67108863);
- }
- (out.words[k] = rword), (carry = ncarry), (ncarry = hncarry);
- }
- return carry !== 0 ? (out.words[k] = carry) : out.length--, out._strip();
- }
- function jumboMulTo(self2, num, out) {
- return bigMulTo(self2, num, out);
- }
- BN.prototype.mulTo = function (num, out) {
- var res,
- len = this.length + num.length;
- return (
- this.length === 10 && num.length === 10
- ? (res = comb10MulTo(this, num, out))
- : len < 63
- ? (res = smallMulTo(this, num, out))
- : len < 1024
- ? (res = bigMulTo(this, num, out))
- : (res = jumboMulTo(this, num, out)),
- res
- );
- };
- function FFTM(x, y) {
- (this.x = x), (this.y = y);
- }
- (FFTM.prototype.makeRBT = function (N) {
- for (var t = new Array(N), l = BN.prototype._countBits(N) - 1, i = 0; i < N; i++) t[i] = this.revBin(i, l, N);
- return t;
- }),
- (FFTM.prototype.revBin = function (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- for (var rb = 0, i = 0; i < l; i++) (rb |= (x & 1) << (l - i - 1)), (x >>= 1);
- return rb;
- }),
- (FFTM.prototype.permute = function (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) (rtws[i] = rws[rbt[i]]), (itws[i] = iws[rbt[i]]);
- }),
- (FFTM.prototype.transform = function (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1)
- for (
- var l = s << 1, rtwdf = Math.cos((2 * Math.PI) / l), itwdf = Math.sin((2 * Math.PI) / l), p = 0;
- p < N;
- p += l
- )
- for (var rtwdf_ = rtwdf, itwdf_ = itwdf, j = 0; j < s; j++) {
- var re = rtws[p + j],
- ie = itws[p + j],
- ro = rtws[p + j + s],
- io = itws[p + j + s],
- rx = rtwdf_ * ro - itwdf_ * io;
- (io = rtwdf_ * io + itwdf_ * ro),
- (ro = rx),
- (rtws[p + j] = re + ro),
- (itws[p + j] = ie + io),
- (rtws[p + j + s] = re - ro),
- (itws[p + j + s] = ie - io),
- j !== l &&
- ((rx = rtwdf * rtwdf_ - itwdf * itwdf_), (itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_), (rtwdf_ = rx));
- }
- }),
- (FFTM.prototype.guessLen13b = function (n, m) {
- var N = Math.max(m, n) | 1,
- odd = N & 1,
- i = 0;
- for (N = (N / 2) | 0; N; N = N >>> 1) i++;
- return 1 << (i + 1 + odd);
- }),
- (FFTM.prototype.conjugate = function (rws, iws, N) {
- if (!(N <= 1))
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- (rws[i] = rws[N - i - 1]),
- (rws[N - i - 1] = t),
- (t = iws[i]),
- (iws[i] = -iws[N - i - 1]),
- (iws[N - i - 1] = -t);
- }
- }),
- (FFTM.prototype.normalize13b = function (ws, N) {
- for (var carry = 0, i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
- (ws[i] = w & 67108863), w < 67108864 ? (carry = 0) : (carry = (w / 67108864) | 0);
- }
- return ws;
- }),
- (FFTM.prototype.convert13b = function (ws, len, rws, N) {
- for (var carry = 0, i = 0; i < len; i++)
- (carry = carry + (ws[i] | 0)),
- (rws[2 * i] = carry & 8191),
- (carry = carry >>> 13),
- (rws[2 * i + 1] = carry & 8191),
- (carry = carry >>> 13);
- for (i = 2 * len; i < N; ++i) rws[i] = 0;
- assert(carry === 0), assert((carry & -8192) === 0);
- }),
- (FFTM.prototype.stub = function (N) {
- for (var ph = new Array(N), i = 0; i < N; i++) ph[i] = 0;
- return ph;
- }),
- (FFTM.prototype.mulp = function (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length),
- rbt = this.makeRBT(N),
- _ = this.stub(N),
- rws = new Array(N),
- rwst = new Array(N),
- iwst = new Array(N),
- nrws = new Array(N),
- nrwst = new Array(N),
- niwst = new Array(N),
- rmws = out.words;
- (rmws.length = N),
- this.convert13b(x.words, x.length, rws, N),
- this.convert13b(y.words, y.length, nrws, N),
- this.transform(rws, _, rwst, iwst, N, rbt),
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- (iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]), (rwst[i] = rx);
- }
- return (
- this.conjugate(rwst, iwst, N),
- this.transform(rwst, iwst, rmws, _, N, rbt),
- this.conjugate(rmws, _, N),
- this.normalize13b(rmws, N),
- (out.negative = x.negative ^ y.negative),
- (out.length = x.length + y.length),
- out._strip()
- );
- }),
- (BN.prototype.mul = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), this.mulTo(num, out);
- }),
- (BN.prototype.mulf = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), jumboMulTo(this, num, out);
- }),
- (BN.prototype.imul = function (num) {
- return this.clone().mulTo(num, this);
- }),
- (BN.prototype.imuln = function (num) {
- var isNegNum = num < 0;
- isNegNum && (num = -num), assert(typeof num == "number"), assert(num < 67108864);
- for (var carry = 0, i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num,
- lo = (w & 67108863) + (carry & 67108863);
- (carry >>= 26), (carry += (w / 67108864) | 0), (carry += lo >>> 26), (this.words[i] = lo & 67108863);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), isNegNum ? this.ineg() : this;
- }),
- (BN.prototype.muln = function (num) {
- return this.clone().imuln(num);
- }),
- (BN.prototype.sqr = function () {
- return this.mul(this);
- }),
- (BN.prototype.isqr = function () {
- return this.imul(this.clone());
- }),
- (BN.prototype.pow = function (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- for (var res = this, i = 0; i < w.length && w[i] === 0; i++, res = res.sqr());
- if (++i < w.length) for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) w[i] !== 0 && (res = res.mul(q));
- return res;
- }),
- (BN.prototype.iushln = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26,
- carryMask = (67108863 >>> (26 - r)) << (26 - r),
- i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask,
- c = ((this.words[i] | 0) - newCarry) << r;
- (this.words[i] = c | carry), (carry = newCarry >>> (26 - r));
- }
- carry && ((this.words[i] = carry), this.length++);
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) this.words[i + s] = this.words[i];
- for (i = 0; i < s; i++) this.words[i] = 0;
- this.length += s;
- }
- return this._strip();
- }),
- (BN.prototype.ishln = function (bits) {
- return assert(this.negative === 0), this.iushln(bits);
- }),
- (BN.prototype.iushrn = function (bits, hint, extended) {
- assert(typeof bits == "number" && bits >= 0);
- var h;
- hint ? (h = (hint - (hint % 26)) / 26) : (h = 0);
- var r = bits % 26,
- s = Math.min((bits - r) / 26, this.length),
- mask = 67108863 ^ ((67108863 >>> r) << r),
- maskedWords = extended;
- if (((h -= s), (h = Math.max(0, h)), maskedWords)) {
- for (var i = 0; i < s; i++) maskedWords.words[i] = this.words[i];
- maskedWords.length = s;
- }
- if (s !== 0)
- if (this.length > s) for (this.length -= s, i = 0; i < this.length; i++) this.words[i] = this.words[i + s];
- else (this.words[0] = 0), (this.length = 1);
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- (this.words[i] = (carry << (26 - r)) | (word >>> r)), (carry = word & mask);
- }
- return (
- maskedWords && carry !== 0 && (maskedWords.words[maskedWords.length++] = carry),
- this.length === 0 && ((this.words[0] = 0), (this.length = 1)),
- this._strip()
- );
- }),
- (BN.prototype.ishrn = function (bits, hint, extended) {
- return assert(this.negative === 0), this.iushrn(bits, hint, extended);
- }),
- (BN.prototype.shln = function (bits) {
- return this.clone().ishln(bits);
- }),
- (BN.prototype.ushln = function (bits) {
- return this.clone().iushln(bits);
- }),
- (BN.prototype.shrn = function (bits) {
- return this.clone().ishrn(bits);
- }),
- (BN.prototype.ushrn = function (bits) {
- return this.clone().iushrn(bits);
- }),
- (BN.prototype.testn = function (bit) {
- assert(typeof bit == "number" && bit >= 0);
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return !1;
- var w = this.words[s];
- return !!(w & q);
- }),
- (BN.prototype.imaskn = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26;
- if ((assert(this.negative === 0, "imaskn works only with positive numbers"), this.length <= s)) return this;
- if ((r !== 0 && s++, (this.length = Math.min(s, this.length)), r !== 0)) {
- var mask = 67108863 ^ ((67108863 >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this._strip();
- }),
- (BN.prototype.maskn = function (bits) {
- return this.clone().imaskn(bits);
- }),
- (BN.prototype.iaddn = function (num) {
- return (
- assert(typeof num == "number"),
- assert(num < 67108864),
- num < 0
- ? this.isubn(-num)
- : this.negative !== 0
- ? this.length === 1 && (this.words[0] | 0) <= num
- ? ((this.words[0] = num - (this.words[0] | 0)), (this.negative = 0), this)
- : ((this.negative = 0), this.isubn(num), (this.negative = 1), this)
- : this._iaddn(num)
- );
- }),
- (BN.prototype._iaddn = function (num) {
- this.words[0] += num;
- for (var i = 0; i < this.length && this.words[i] >= 67108864; i++)
- (this.words[i] -= 67108864), i === this.length - 1 ? (this.words[i + 1] = 1) : this.words[i + 1]++;
- return (this.length = Math.max(this.length, i + 1)), this;
- }),
- (BN.prototype.isubn = function (num) {
- if ((assert(typeof num == "number"), assert(num < 67108864), num < 0)) return this.iaddn(-num);
- if (this.negative !== 0) return (this.negative = 0), this.iaddn(num), (this.negative = 1), this;
- if (((this.words[0] -= num), this.length === 1 && this.words[0] < 0))
- (this.words[0] = -this.words[0]), (this.negative = 1);
- else
- for (var i = 0; i < this.length && this.words[i] < 0; i++)
- (this.words[i] += 67108864), (this.words[i + 1] -= 1);
- return this._strip();
- }),
- (BN.prototype.addn = function (num) {
- return this.clone().iaddn(num);
- }),
- (BN.prototype.subn = function (num) {
- return this.clone().isubn(num);
- }),
- (BN.prototype.iabs = function () {
- return (this.negative = 0), this;
- }),
- (BN.prototype.abs = function () {
- return this.clone().iabs();
- }),
- (BN.prototype._ishlnsubmul = function (num, mul, shift) {
- var len = num.length + shift,
- i;
- this._expand(len);
- var w,
- carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- (w -= right & 67108863),
- (carry = (w >> 26) - ((right / 67108864) | 0)),
- (this.words[i + shift] = w & 67108863);
- }
- for (; i < this.length - shift; i++)
- (w = (this.words[i + shift] | 0) + carry), (carry = w >> 26), (this.words[i + shift] = w & 67108863);
- if (carry === 0) return this._strip();
- for (assert(carry === -1), carry = 0, i = 0; i < this.length; i++)
- (w = -(this.words[i] | 0) + carry), (carry = w >> 26), (this.words[i] = w & 67108863);
- return (this.negative = 1), this._strip();
- }),
- (BN.prototype._wordDiv = function (num, mode) {
- var shift = this.length - num.length,
- a = this.clone(),
- b = num,
- bhi = b.words[b.length - 1] | 0,
- bhiBits = this._countBits(bhi);
- (shift = 26 - bhiBits),
- shift !== 0 && ((b = b.ushln(shift)), a.iushln(shift), (bhi = b.words[b.length - 1] | 0));
- var m = a.length - b.length,
- q;
- if (mode !== "mod") {
- (q = new BN(null)), (q.length = m + 1), (q.words = new Array(q.length));
- for (var i = 0; i < q.length; i++) q.words[i] = 0;
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- diff.negative === 0 && ((a = diff), q && (q.words[m] = 1));
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
- for (qj = Math.min((qj / bhi) | 0, 67108863), a._ishlnsubmul(b, qj, j); a.negative !== 0; )
- qj--, (a.negative = 0), a._ishlnsubmul(b, 1, j), a.isZero() || (a.negative ^= 1);
- q && (q.words[j] = qj);
- }
- return (
- q && q._strip(),
- a._strip(),
- mode !== "div" && shift !== 0 && a.iushrn(shift),
- {
- div: q || null,
- mod: a,
- }
- );
- }),
- (BN.prototype.divmod = function (num, mode, positive) {
- if ((assert(!num.isZero()), this.isZero()))
- return {
- div: new BN(0),
- mod: new BN(0),
- };
- var div, mod, res;
- return this.negative !== 0 && num.negative === 0
- ? ((res = this.neg().divmod(num, mode)),
- mode !== "mod" && (div = res.div.neg()),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.iadd(num)),
- {
- div,
- mod,
- })
- : this.negative === 0 && num.negative !== 0
- ? ((res = this.divmod(num.neg(), mode)),
- mode !== "mod" && (div = res.div.neg()),
- {
- div,
- mod: res.mod,
- })
- : (this.negative & num.negative) !== 0
- ? ((res = this.neg().divmod(num.neg(), mode)),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.isub(num)),
- {
- div: res.div,
- mod,
- })
- : num.length > this.length || this.cmp(num) < 0
- ? {
- div: new BN(0),
- mod: this,
- }
- : num.length === 1
- ? mode === "div"
- ? {
- div: this.divn(num.words[0]),
- mod: null,
- }
- : mode === "mod"
- ? {
- div: null,
- mod: new BN(this.modrn(num.words[0])),
- }
- : {
- div: this.divn(num.words[0]),
- mod: new BN(this.modrn(num.words[0])),
- }
- : this._wordDiv(num, mode);
- }),
- (BN.prototype.div = function (num) {
- return this.divmod(num, "div", !1).div;
- }),
- (BN.prototype.mod = function (num) {
- return this.divmod(num, "mod", !1).mod;
- }),
- (BN.prototype.umod = function (num) {
- return this.divmod(num, "mod", !0).mod;
- }),
- (BN.prototype.divRound = function (num) {
- var dm = this.divmod(num);
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod,
- half = num.ushrn(1),
- r2 = num.andln(1),
- cmp = mod.cmp(half);
- return cmp < 0 || (r2 === 1 && cmp === 0)
- ? dm.div
- : dm.div.negative !== 0
- ? dm.div.isubn(1)
- : dm.div.iaddn(1);
- }),
- (BN.prototype.modrn = function (num) {
- var isNegNum = num < 0;
- isNegNum && (num = -num), assert(num <= 67108863);
- for (var p = (1 << 26) % num, acc = 0, i = this.length - 1; i >= 0; i--)
- acc = (p * acc + (this.words[i] | 0)) % num;
- return isNegNum ? -acc : acc;
- }),
- (BN.prototype.modn = function (num) {
- return this.modrn(num);
- }),
- (BN.prototype.idivn = function (num) {
- var isNegNum = num < 0;
- isNegNum && (num = -num), assert(num <= 67108863);
- for (var carry = 0, i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 67108864;
- (this.words[i] = (w / num) | 0), (carry = w % num);
- }
- return this._strip(), isNegNum ? this.ineg() : this;
- }),
- (BN.prototype.divn = function (num) {
- return this.clone().idivn(num);
- }),
- (BN.prototype.egcd = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var x = this,
- y = p.clone();
- x.negative !== 0 ? (x = x.umod(p)) : (x = x.clone());
- for (var A = new BN(1), B = new BN(0), C = new BN(0), D = new BN(1), g = 0; x.isEven() && y.isEven(); )
- x.iushrn(1), y.iushrn(1), ++g;
- for (var yp = y.clone(), xp = x.clone(); !x.isZero(); ) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0)
- for (x.iushrn(i); i-- > 0; )
- (A.isOdd() || B.isOdd()) && (A.iadd(yp), B.isub(xp)), A.iushrn(1), B.iushrn(1);
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0)
- for (y.iushrn(j); j-- > 0; )
- (C.isOdd() || D.isOdd()) && (C.iadd(yp), D.isub(xp)), C.iushrn(1), D.iushrn(1);
- x.cmp(y) >= 0 ? (x.isub(y), A.isub(C), B.isub(D)) : (y.isub(x), C.isub(A), D.isub(B));
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g),
- };
- }),
- (BN.prototype._invmp = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var a = this,
- b = p.clone();
- a.negative !== 0 ? (a = a.umod(p)) : (a = a.clone());
- for (var x1 = new BN(1), x2 = new BN(0), delta = b.clone(); a.cmpn(1) > 0 && b.cmpn(1) > 0; ) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) for (a.iushrn(i); i-- > 0; ) x1.isOdd() && x1.iadd(delta), x1.iushrn(1);
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) for (b.iushrn(j); j-- > 0; ) x2.isOdd() && x2.iadd(delta), x2.iushrn(1);
- a.cmp(b) >= 0 ? (a.isub(b), x1.isub(x2)) : (b.isub(a), x2.isub(x1));
- }
- var res;
- return a.cmpn(1) === 0 ? (res = x1) : (res = x2), res.cmpn(0) < 0 && res.iadd(p), res;
- }),
- (BN.prototype.gcd = function (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone(),
- b = num.clone();
- (a.negative = 0), (b.negative = 0);
- for (var shift = 0; a.isEven() && b.isEven(); shift++) a.iushrn(1), b.iushrn(1);
- do {
- for (; a.isEven(); ) a.iushrn(1);
- for (; b.isEven(); ) b.iushrn(1);
- var r = a.cmp(b);
- if (r < 0) {
- var t = a;
- (a = b), (b = t);
- } else if (r === 0 || b.cmpn(1) === 0) break;
- a.isub(b);
- } while (!0);
- return b.iushln(shift);
- }),
- (BN.prototype.invm = function (num) {
- return this.egcd(num).a.umod(num);
- }),
- (BN.prototype.isEven = function () {
- return (this.words[0] & 1) === 0;
- }),
- (BN.prototype.isOdd = function () {
- return (this.words[0] & 1) === 1;
- }),
- (BN.prototype.andln = function (num) {
- return this.words[0] & num;
- }),
- (BN.prototype.bincn = function (bit) {
- assert(typeof bit == "number");
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return this._expand(s + 1), (this.words[s] |= q), this;
- for (var carry = q, i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- (w += carry), (carry = w >>> 26), (w &= 67108863), (this.words[i] = w);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.isZero = function () {
- return this.length === 1 && this.words[0] === 0;
- }),
- (BN.prototype.cmpn = function (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this._strip();
- var res;
- if (this.length > 1) res = 1;
- else {
- negative && (num = -num), assert(num <= 67108863, "Number is too big");
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.cmp = function (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.ucmp = function (num) {
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- for (var res = 0, i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0,
- b = num.words[i] | 0;
- if (a !== b) {
- a < b ? (res = -1) : a > b && (res = 1);
- break;
- }
- }
- return res;
- }),
- (BN.prototype.gtn = function (num) {
- return this.cmpn(num) === 1;
- }),
- (BN.prototype.gt = function (num) {
- return this.cmp(num) === 1;
- }),
- (BN.prototype.gten = function (num) {
- return this.cmpn(num) >= 0;
- }),
- (BN.prototype.gte = function (num) {
- return this.cmp(num) >= 0;
- }),
- (BN.prototype.ltn = function (num) {
- return this.cmpn(num) === -1;
- }),
- (BN.prototype.lt = function (num) {
- return this.cmp(num) === -1;
- }),
- (BN.prototype.lten = function (num) {
- return this.cmpn(num) <= 0;
- }),
- (BN.prototype.lte = function (num) {
- return this.cmp(num) <= 0;
- }),
- (BN.prototype.eqn = function (num) {
- return this.cmpn(num) === 0;
- }),
- (BN.prototype.eq = function (num) {
- return this.cmp(num) === 0;
- }),
- (BN.red = function (num) {
- return new Red(num);
- }),
- (BN.prototype.toRed = function (ctx) {
- return (
- assert(!this.red, "Already a number in reduction context"),
- assert(this.negative === 0, "red works only with positives"),
- ctx.convertTo(this)._forceRed(ctx)
- );
- }),
- (BN.prototype.fromRed = function () {
- return assert(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this);
- }),
- (BN.prototype._forceRed = function (ctx) {
- return (this.red = ctx), this;
- }),
- (BN.prototype.forceRed = function (ctx) {
- return assert(!this.red, "Already a number in reduction context"), this._forceRed(ctx);
- }),
- (BN.prototype.redAdd = function (num) {
- return assert(this.red, "redAdd works only with red numbers"), this.red.add(this, num);
- }),
- (BN.prototype.redIAdd = function (num) {
- return assert(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, num);
- }),
- (BN.prototype.redSub = function (num) {
- return assert(this.red, "redSub works only with red numbers"), this.red.sub(this, num);
- }),
- (BN.prototype.redISub = function (num) {
- return assert(this.red, "redISub works only with red numbers"), this.red.isub(this, num);
- }),
- (BN.prototype.redShl = function (num) {
- return assert(this.red, "redShl works only with red numbers"), this.red.shl(this, num);
- }),
- (BN.prototype.redMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.mul(this, num)
- );
- }),
- (BN.prototype.redIMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.imul(this, num)
- );
- }),
- (BN.prototype.redSqr = function () {
- return assert(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this);
- }),
- (BN.prototype.redISqr = function () {
- return assert(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this);
- }),
- (BN.prototype.redSqrt = function () {
- return assert(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this);
- }),
- (BN.prototype.redInvm = function () {
- return assert(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this);
- }),
- (BN.prototype.redNeg = function () {
- return assert(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this);
- }),
- (BN.prototype.redPow = function (num) {
- return assert(this.red && !num.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, num);
- });
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null,
- };
- function MPrime(name, p) {
- (this.name = name),
- (this.p = new BN(p, 16)),
- (this.n = this.p.bitLength()),
- (this.k = new BN(1).iushln(this.n).isub(this.p)),
- (this.tmp = this._tmp());
- }
- (MPrime.prototype._tmp = function () {
- var tmp = new BN(null);
- return (tmp.words = new Array(Math.ceil(this.n / 13))), tmp;
- }),
- (MPrime.prototype.ireduce = function (num) {
- var r = num,
- rlen;
- do this.split(r, this.tmp), (r = this.imulK(r)), (r = r.iadd(this.tmp)), (rlen = r.bitLength());
- while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- return (
- cmp === 0
- ? ((r.words[0] = 0), (r.length = 1))
- : cmp > 0
- ? r.isub(this.p)
- : r.strip !== void 0
- ? r.strip()
- : r._strip(),
- r
- );
- }),
- (MPrime.prototype.split = function (input, out) {
- input.iushrn(this.n, 0, out);
- }),
- (MPrime.prototype.imulK = function (num) {
- return num.imul(this.k);
- });
- function K256() {
- MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
- }
- inherits(K256, MPrime),
- (K256.prototype.split = function (input, output) {
- for (var mask = 4194303, outLen = Math.min(input.length, 9), i = 0; i < outLen; i++)
- output.words[i] = input.words[i];
- if (((output.length = outLen), input.length <= 9)) {
- (input.words[0] = 0), (input.length = 1);
- return;
- }
- var prev = input.words[9];
- for (output.words[output.length++] = prev & mask, i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- (input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22)), (prev = next);
- }
- (prev >>>= 22),
- (input.words[i - 10] = prev),
- prev === 0 && input.length > 10 ? (input.length -= 10) : (input.length -= 9);
- }),
- (K256.prototype.imulK = function (num) {
- (num.words[num.length] = 0), (num.words[num.length + 1] = 0), (num.length += 2);
- for (var lo = 0, i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- (lo += w * 977), (num.words[i] = lo & 67108863), (lo = w * 64 + ((lo / 67108864) | 0));
- }
- return (
- num.words[num.length - 1] === 0 && (num.length--, num.words[num.length - 1] === 0 && num.length--), num
- );
- });
- function P224() {
- MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
- }
- inherits(P224, MPrime);
- function P192() {
- MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
- }
- inherits(P192, MPrime);
- function P25519() {
- MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
- }
- inherits(P25519, MPrime),
- (P25519.prototype.imulK = function (num) {
- for (var carry = 0, i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 19 + carry,
- lo = hi & 67108863;
- (hi >>>= 26), (num.words[i] = lo), (carry = hi);
- }
- return carry !== 0 && (num.words[num.length++] = carry), num;
- }),
- (BN._prime = function (name) {
- if (primes[name]) return primes[name];
- var prime2;
- if (name === "k256") prime2 = new K256();
- else if (name === "p224") prime2 = new P224();
- else if (name === "p192") prime2 = new P192();
- else if (name === "p25519") prime2 = new P25519();
- else throw new Error("Unknown prime " + name);
- return (primes[name] = prime2), prime2;
- });
- function Red(m) {
- if (typeof m == "string") {
- var prime = BN._prime(m);
- (this.m = prime.p), (this.prime = prime);
- } else assert(m.gtn(1), "modulus must be greater than 1"), (this.m = m), (this.prime = null);
- }
- (Red.prototype._verify1 = function (a) {
- assert(a.negative === 0, "red works only with positives"), assert(a.red, "red works only with red numbers");
- }),
- (Red.prototype._verify2 = function (a, b) {
- assert((a.negative | b.negative) === 0, "red works only with positives"),
- assert(a.red && a.red === b.red, "red works only with red numbers");
- }),
- (Red.prototype.imod = function (a) {
- return this.prime ? this.prime.ireduce(a)._forceRed(this) : (move(a, a.umod(this.m)._forceRed(this)), a);
- }),
- (Red.prototype.neg = function (a) {
- return a.isZero() ? a.clone() : this.m.sub(a)._forceRed(this);
- }),
- (Red.prototype.add = function (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res._forceRed(this);
- }),
- (Red.prototype.iadd = function (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res;
- }),
- (Red.prototype.sub = function (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res._forceRed(this);
- }),
- (Red.prototype.isub = function (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res;
- }),
- (Red.prototype.shl = function (a, num) {
- return this._verify1(a), this.imod(a.ushln(num));
- }),
- (Red.prototype.imul = function (a, b) {
- return this._verify2(a, b), this.imod(a.imul(b));
- }),
- (Red.prototype.mul = function (a, b) {
- return this._verify2(a, b), this.imod(a.mul(b));
- }),
- (Red.prototype.isqr = function (a) {
- return this.imul(a, a.clone());
- }),
- (Red.prototype.sqr = function (a) {
- return this.mul(a, a);
- }),
- (Red.prototype.sqrt = function (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- if ((assert(mod3 % 2 === 1), mod3 === 3)) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- for (var q = this.m.subn(1), s = 0; !q.isZero() && q.andln(1) === 0; ) s++, q.iushrn(1);
- assert(!q.isZero());
- var one = new BN(1).toRed(this),
- nOne = one.redNeg(),
- lpow = this.m.subn(1).iushrn(1),
- z = this.m.bitLength();
- for (z = new BN(2 * z * z).toRed(this); this.pow(z, lpow).cmp(nOne) !== 0; ) z.redIAdd(nOne);
- for (
- var c = this.pow(z, q), r = this.pow(a, q.addn(1).iushrn(1)), t = this.pow(a, q), m = s;
- t.cmp(one) !== 0;
-
- ) {
- for (var tmp = t, i = 0; tmp.cmp(one) !== 0; i++) tmp = tmp.redSqr();
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- (r = r.redMul(b)), (c = b.redSqr()), (t = t.redMul(c)), (m = i);
- }
- return r;
- }),
- (Red.prototype.invm = function (a) {
- var inv = a._invmp(this.m);
- return inv.negative !== 0 ? ((inv.negative = 0), this.imod(inv).redNeg()) : this.imod(inv);
- }),
- (Red.prototype.pow = function (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4,
- wnd = new Array(1 << windowSize);
- (wnd[0] = new BN(1).toRed(this)), (wnd[1] = a);
- for (var i = 2; i < wnd.length; i++) wnd[i] = this.mul(wnd[i - 1], a);
- var res = wnd[0],
- current = 0,
- currentLen = 0,
- start = num.bitLength() % 26;
- for (start === 0 && (start = 26), i = num.length - 1; i >= 0; i--) {
- for (var word = num.words[i], j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if ((res !== wnd[0] && (res = this.sqr(res)), bit === 0 && current === 0)) {
- currentLen = 0;
- continue;
- }
- (current <<= 1),
- (current |= bit),
- currentLen++,
- !(currentLen !== windowSize && (i !== 0 || j !== 0)) &&
- ((res = this.mul(res, wnd[current])), (currentLen = 0), (current = 0));
- }
- start = 26;
- }
- return res;
- }),
- (Red.prototype.convertTo = function (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- }),
- (Red.prototype.convertFrom = function (num) {
- var res = num.clone();
- return (res.red = null), res;
- }),
- (BN.mont = function (num) {
- return new Mont(num);
- });
- function Mont(m) {
- Red.call(this, m),
- (this.shift = this.m.bitLength()),
- this.shift % 26 !== 0 && (this.shift += 26 - (this.shift % 26)),
- (this.r = new BN(1).iushln(this.shift)),
- (this.r2 = this.imod(this.r.sqr())),
- (this.rinv = this.r._invmp(this.m)),
- (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)),
- (this.minv = this.minv.umod(this.r)),
- (this.minv = this.r.sub(this.minv));
- }
- inherits(Mont, Red),
- (Mont.prototype.convertTo = function (num) {
- return this.imod(num.ushln(this.shift));
- }),
- (Mont.prototype.convertFrom = function (num) {
- var r = this.imod(num.mul(this.rinv));
- return (r.red = null), r;
- }),
- (Mont.prototype.imul = function (a, b) {
- if (a.isZero() || b.isZero()) return (a.words[0] = 0), (a.length = 1), a;
- var t = a.imul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.mul = function (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.invm = function (a) {
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- });
- })(typeof module > "u" || module, exports);
- },
-});
-
-// node_modules/browserify-rsa/index.js
-var require_browserify_rsa = __commonJS({
- "node_modules/browserify-rsa/index.js"(exports, module) {
- var BN = require_bn3(),
- randomBytes = require_browser();
- function blind(priv) {
- var r = getr(priv),
- blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();
- return { blinder, unblinder: r.invm(priv.modulus) };
- }
- function getr(priv) {
- var len = priv.modulus.byteLength(),
- r;
- do r = new BN(randomBytes(len));
- while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));
- return r;
- }
- function crt(msg, priv) {
- var blinds = blind(priv),
- len = priv.modulus.byteLength(),
- blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus),
- c1 = blinded.toRed(BN.mont(priv.prime1)),
- c2 = blinded.toRed(BN.mont(priv.prime2)),
- qinv = priv.coefficient,
- p = priv.prime1,
- q = priv.prime2,
- m1 = c1.redPow(priv.exponent1).fromRed(),
- m2 = c2.redPow(priv.exponent2).fromRed(),
- h = m1.isub(m2).imul(qinv).umod(p).imul(q);
- return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, "be", len);
- }
- crt.getr = getr;
- module.exports = crt;
- },
-});
-
-// node_modules/elliptic/package.json
-var require_package = __commonJS({
- "node_modules/elliptic/package.json"(exports, module) {
- module.exports = {
- name: "elliptic",
- version: "6.5.4",
- description: "EC cryptography",
- main: "lib/elliptic.js",
- files: ["lib"],
- scripts: {
- lint: "eslint lib test",
- "lint:fix": "npm run lint -- --fix",
- unit: "istanbul test _mocha --reporter=spec test/index.js",
- test: "npm run lint && npm run unit",
- version: "grunt dist && git add dist/",
- },
- repository: {
- type: "git",
- url: "git@github.com:indutny/elliptic",
- },
- keywords: ["EC", "Elliptic", "curve", "Cryptography"],
- author: "Fedor Indutny <fedor@indutny.com>",
- license: "MIT",
- bugs: {
- url: "https://github.com/indutny/elliptic/issues",
- },
- homepage: "https://github.com/indutny/elliptic",
- devDependencies: {
- brfs: "^2.0.2",
- coveralls: "^3.1.0",
- eslint: "^7.6.0",
- grunt: "^1.2.1",
- "grunt-browserify": "^5.3.0",
- "grunt-cli": "^1.3.2",
- "grunt-contrib-connect": "^3.0.0",
- "grunt-contrib-copy": "^1.0.0",
- "grunt-contrib-uglify": "^5.0.0",
- "grunt-mocha-istanbul": "^5.0.2",
- "grunt-saucelabs": "^9.0.1",
- istanbul: "^0.4.5",
- mocha: "^8.0.1",
- },
- dependencies: {
- "bn.js": "^4.11.9",
- brorand: "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- inherits: "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1",
- },
- };
- },
-});
-
-// node_modules/elliptic/node_modules/bn.js/lib/bn.js
-var require_bn4 = __commonJS({
- "node_modules/elliptic/node_modules/bn.js/lib/bn.js"(exports, module) {
- (function (module2, exports2) {
- "use strict";
- function assert(val, msg) {
- if (!val) throw new Error(msg || "Assertion failed");
- }
- function inherits(ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- (TempCtor.prototype = superCtor.prototype),
- (ctor.prototype = new TempCtor()),
- (ctor.prototype.constructor = ctor);
- }
- function BN(number, base, endian) {
- if (BN.isBN(number)) return number;
- (this.negative = 0),
- (this.words = null),
- (this.length = 0),
- (this.red = null),
- number !== null &&
- ((base === "le" || base === "be") && ((endian = base), (base = 10)),
- this._init(number || 0, base || 10, endian || "be"));
- }
- typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26);
- var Buffer2;
- try {
- typeof window < "u" && typeof window.Buffer < "u"
- ? (Buffer2 = window.Buffer)
- : (Buffer2 = __require("buffer").Buffer);
- } catch {}
- (BN.isBN = function (num) {
- return num instanceof BN
- ? !0
- : num !== null &&
- typeof num == "object" &&
- num.constructor.wordSize === BN.wordSize &&
- Array.isArray(num.words);
- }),
- (BN.max = function (left, right) {
- return left.cmp(right) > 0 ? left : right;
- }),
- (BN.min = function (left, right) {
- return left.cmp(right) < 0 ? left : right;
- }),
- (BN.prototype._init = function (number, base, endian) {
- if (typeof number == "number") return this._initNumber(number, base, endian);
- if (typeof number == "object") return this._initArray(number, base, endian);
- base === "hex" && (base = 16),
- assert(base === (base | 0) && base >= 2 && base <= 36),
- (number = number.toString().replace(/\s+/g, ""));
- var start = 0;
- number[0] === "-" && (start++, (this.negative = 1)),
- start < number.length &&
- (base === 16
- ? this._parseHex(number, start, endian)
- : (this._parseBase(number, base, start),
- endian === "le" && this._initArray(this.toArray(), base, endian)));
- }),
- (BN.prototype._initNumber = function (number, base, endian) {
- number < 0 && ((this.negative = 1), (number = -number)),
- number < 67108864
- ? ((this.words = [number & 67108863]), (this.length = 1))
- : number < 4503599627370496
- ? ((this.words = [number & 67108863, (number / 67108864) & 67108863]), (this.length = 2))
- : (assert(number < 9007199254740992),
- (this.words = [number & 67108863, (number / 67108864) & 67108863, 1]),
- (this.length = 3)),
- endian === "le" && this._initArray(this.toArray(), base, endian);
- }),
- (BN.prototype._initArray = function (number, base, endian) {
- if ((assert(typeof number.length == "number"), number.length <= 0))
- return (this.words = [0]), (this.length = 1), this;
- (this.length = Math.ceil(number.length / 3)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var j,
- w,
- off = 0;
- if (endian === "be")
- for (i = number.length - 1, j = 0; i >= 0; i -= 3)
- (w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- else if (endian === "le")
- for (i = 0, j = 0; i < number.length; i += 3)
- (w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- return this.strip();
- });
- function parseHex4Bits(string, index) {
- var c = string.charCodeAt(index);
- return c >= 65 && c <= 70 ? c - 55 : c >= 97 && c <= 102 ? c - 87 : (c - 48) & 15;
- }
- function parseHexByte(string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- return index - 1 >= lowerBound && (r |= parseHex4Bits(string, index - 1) << 4), r;
- }
- BN.prototype._parseHex = function (number, start, endian) {
- (this.length = Math.ceil((number.length - start) / 6)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var off = 0,
- j = 0,
- w;
- if (endian === "be")
- for (i = number.length - 1; i >= start; i -= 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- }
- this.strip();
- };
- function parseBase(str, start, end, mul) {
- for (var r = 0, len = Math.min(str.length, end), i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- (r *= mul), c >= 49 ? (r += c - 49 + 10) : c >= 17 ? (r += c - 17 + 10) : (r += c);
- }
- return r;
- }
- (BN.prototype._parseBase = function (number, base, start) {
- (this.words = [0]), (this.length = 1);
- for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) limbLen++;
- limbLen--, (limbPow = (limbPow / base) | 0);
- for (
- var total = number.length - start,
- mod = total % limbLen,
- end = Math.min(total, total - mod) + start,
- word = 0,
- i = start;
- i < end;
- i += limbLen
- )
- (word = parseBase(number, i, i + limbLen, base)),
- this.imuln(limbPow),
- this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- if (mod !== 0) {
- var pow = 1;
- for (word = parseBase(number, i, number.length, base), i = 0; i < mod; i++) pow *= base;
- this.imuln(pow), this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- }
- this.strip();
- }),
- (BN.prototype.copy = function (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) dest.words[i] = this.words[i];
- (dest.length = this.length), (dest.negative = this.negative), (dest.red = this.red);
- }),
- (BN.prototype.clone = function () {
- var r = new BN(null);
- return this.copy(r), r;
- }),
- (BN.prototype._expand = function (size) {
- for (; this.length < size; ) this.words[this.length++] = 0;
- return this;
- }),
- (BN.prototype.strip = function () {
- for (; this.length > 1 && this.words[this.length - 1] === 0; ) this.length--;
- return this._normSign();
- }),
- (BN.prototype._normSign = function () {
- return this.length === 1 && this.words[0] === 0 && (this.negative = 0), this;
- }),
- (BN.prototype.inspect = function () {
- return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
- });
- var zeros = [
- "",
- "0",
- "00",
- "000",
- "0000",
- "00000",
- "000000",
- "0000000",
- "00000000",
- "000000000",
- "0000000000",
- "00000000000",
- "000000000000",
- "0000000000000",
- "00000000000000",
- "000000000000000",
- "0000000000000000",
- "00000000000000000",
- "000000000000000000",
- "0000000000000000000",
- "00000000000000000000",
- "000000000000000000000",
- "0000000000000000000000",
- "00000000000000000000000",
- "000000000000000000000000",
- "0000000000000000000000000",
- ],
- groupSizes = [
- 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5,
- ],
- groupBases = [
- 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808,
- 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624,
- 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875,
- 60466176,
- ];
- (BN.prototype.toString = function (base, padding) {
- (base = base || 10), (padding = padding | 0 || 1);
- var out;
- if (base === 16 || base === "hex") {
- out = "";
- for (var off = 0, carry = 0, i = 0; i < this.length; i++) {
- var w = this.words[i],
- word = (((w << off) | carry) & 16777215).toString(16);
- (carry = (w >>> (24 - off)) & 16777215),
- carry !== 0 || i !== this.length - 1 ? (out = zeros[6 - word.length] + word + out) : (out = word + out),
- (off += 2),
- off >= 26 && ((off -= 26), i--);
- }
- for (carry !== 0 && (out = carry.toString(16) + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- var groupSize = groupSizes[base],
- groupBase = groupBases[base];
- out = "";
- var c = this.clone();
- for (c.negative = 0; !c.isZero(); ) {
- var r = c.modn(groupBase).toString(base);
- (c = c.idivn(groupBase)), c.isZero() ? (out = r + out) : (out = zeros[groupSize - r.length] + r + out);
- }
- for (this.isZero() && (out = "0" + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- assert(!1, "Base should be between 2 and 36");
- }),
- (BN.prototype.toNumber = function () {
- var ret = this.words[0];
- return (
- this.length === 2
- ? (ret += this.words[1] * 67108864)
- : this.length === 3 && this.words[2] === 1
- ? (ret += 4503599627370496 + this.words[1] * 67108864)
- : this.length > 2 && assert(!1, "Number can only safely store up to 53 bits"),
- this.negative !== 0 ? -ret : ret
- );
- }),
- (BN.prototype.toJSON = function () {
- return this.toString(16);
- }),
- (BN.prototype.toBuffer = function (endian, length) {
- return assert(typeof Buffer2 < "u"), this.toArrayLike(Buffer2, endian, length);
- }),
- (BN.prototype.toArray = function (endian, length) {
- return this.toArrayLike(Array, endian, length);
- }),
- (BN.prototype.toArrayLike = function (ArrayType, endian, length) {
- var byteLength = this.byteLength(),
- reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, "byte array longer than desired length"),
- assert(reqLength > 0, "Requested array length <= 0"),
- this.strip();
- var littleEndian = endian === "le",
- res = new ArrayType(reqLength),
- b,
- i,
- q = this.clone();
- if (littleEndian) {
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[i] = b);
- for (; i < reqLength; i++) res[i] = 0;
- } else {
- for (i = 0; i < reqLength - byteLength; i++) res[i] = 0;
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[reqLength - i - 1] = b);
- }
- return res;
- }),
- Math.clz32
- ? (BN.prototype._countBits = function (w) {
- return 32 - Math.clz32(w);
- })
- : (BN.prototype._countBits = function (w) {
- var t = w,
- r = 0;
- return (
- t >= 4096 && ((r += 13), (t >>>= 13)),
- t >= 64 && ((r += 7), (t >>>= 7)),
- t >= 8 && ((r += 4), (t >>>= 4)),
- t >= 2 && ((r += 2), (t >>>= 2)),
- r + t
- );
- }),
- (BN.prototype._zeroBits = function (w) {
- if (w === 0) return 26;
- var t = w,
- r = 0;
- return (
- (t & 8191) === 0 && ((r += 13), (t >>>= 13)),
- (t & 127) === 0 && ((r += 7), (t >>>= 7)),
- (t & 15) === 0 && ((r += 4), (t >>>= 4)),
- (t & 3) === 0 && ((r += 2), (t >>>= 2)),
- (t & 1) === 0 && r++,
- r
- );
- }),
- (BN.prototype.bitLength = function () {
- var w = this.words[this.length - 1],
- hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- });
- function toBitArray(num) {
- for (var w = new Array(num.bitLength()), bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;
- }
- return w;
- }
- (BN.prototype.zeroBits = function () {
- if (this.isZero()) return 0;
- for (var r = 0, i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- if (((r += b), b !== 26)) break;
- }
- return r;
- }),
- (BN.prototype.byteLength = function () {
- return Math.ceil(this.bitLength() / 8);
- }),
- (BN.prototype.toTwos = function (width) {
- return this.negative !== 0 ? this.abs().inotn(width).iaddn(1) : this.clone();
- }),
- (BN.prototype.fromTwos = function (width) {
- return this.testn(width - 1) ? this.notn(width).iaddn(1).ineg() : this.clone();
- }),
- (BN.prototype.isNeg = function () {
- return this.negative !== 0;
- }),
- (BN.prototype.neg = function () {
- return this.clone().ineg();
- }),
- (BN.prototype.ineg = function () {
- return this.isZero() || (this.negative ^= 1), this;
- }),
- (BN.prototype.iuor = function (num) {
- for (; this.length < num.length; ) this.words[this.length++] = 0;
- for (var i = 0; i < num.length; i++) this.words[i] = this.words[i] | num.words[i];
- return this.strip();
- }),
- (BN.prototype.ior = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuor(num);
- }),
- (BN.prototype.or = function (num) {
- return this.length > num.length ? this.clone().ior(num) : num.clone().ior(this);
- }),
- (BN.prototype.uor = function (num) {
- return this.length > num.length ? this.clone().iuor(num) : num.clone().iuor(this);
- }),
- (BN.prototype.iuand = function (num) {
- var b;
- this.length > num.length ? (b = num) : (b = this);
- for (var i = 0; i < b.length; i++) this.words[i] = this.words[i] & num.words[i];
- return (this.length = b.length), this.strip();
- }),
- (BN.prototype.iand = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuand(num);
- }),
- (BN.prototype.and = function (num) {
- return this.length > num.length ? this.clone().iand(num) : num.clone().iand(this);
- }),
- (BN.prototype.uand = function (num) {
- return this.length > num.length ? this.clone().iuand(num) : num.clone().iuand(this);
- }),
- (BN.prototype.iuxor = function (num) {
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var i = 0; i < b.length; i++) this.words[i] = a.words[i] ^ b.words[i];
- if (this !== a) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = a.length), this.strip();
- }),
- (BN.prototype.ixor = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuxor(num);
- }),
- (BN.prototype.xor = function (num) {
- return this.length > num.length ? this.clone().ixor(num) : num.clone().ixor(this);
- }),
- (BN.prototype.uxor = function (num) {
- return this.length > num.length ? this.clone().iuxor(num) : num.clone().iuxor(this);
- }),
- (BN.prototype.inotn = function (width) {
- assert(typeof width == "number" && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0,
- bitsLeft = width % 26;
- this._expand(bytesNeeded), bitsLeft > 0 && bytesNeeded--;
- for (var i = 0; i < bytesNeeded; i++) this.words[i] = ~this.words[i] & 67108863;
- return bitsLeft > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft))), this.strip();
- }),
- (BN.prototype.notn = function (width) {
- return this.clone().inotn(width);
- }),
- (BN.prototype.setn = function (bit, val) {
- assert(typeof bit == "number" && bit >= 0);
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- return (
- this._expand(off + 1),
- val
- ? (this.words[off] = this.words[off] | (1 << wbit))
- : (this.words[off] = this.words[off] & ~(1 << wbit)),
- this.strip()
- );
- }),
- (BN.prototype.iadd = function (num) {
- var r;
- if (this.negative !== 0 && num.negative === 0)
- return (this.negative = 0), (r = this.isub(num)), (this.negative ^= 1), this._normSign();
- if (this.negative === 0 && num.negative !== 0)
- return (num.negative = 0), (r = this.isub(num)), (num.negative = 1), r._normSign();
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) + (b.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- if (((this.length = a.length), carry !== 0)) (this.words[this.length] = carry), this.length++;
- else if (a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return this;
- }),
- (BN.prototype.add = function (num) {
- var res;
- return num.negative !== 0 && this.negative === 0
- ? ((num.negative = 0), (res = this.sub(num)), (num.negative ^= 1), res)
- : num.negative === 0 && this.negative !== 0
- ? ((this.negative = 0), (res = num.sub(this)), (this.negative = 1), res)
- : this.length > num.length
- ? this.clone().iadd(num)
- : num.clone().iadd(this);
- }),
- (BN.prototype.isub = function (num) {
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- return (num.negative = 1), r._normSign();
- } else if (this.negative !== 0)
- return (this.negative = 0), this.iadd(num), (this.negative = 1), this._normSign();
- var cmp = this.cmp(num);
- if (cmp === 0) return (this.negative = 0), (this.length = 1), (this.words[0] = 0), this;
- var a, b;
- cmp > 0 ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) - (b.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- if (carry === 0 && i < a.length && a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = Math.max(this.length, i)), a !== this && (this.negative = 1), this.strip();
- }),
- (BN.prototype.sub = function (num) {
- return this.clone().isub(num);
- });
- function smallMulTo(self2, num, out) {
- out.negative = num.negative ^ self2.negative;
- var len = (self2.length + num.length) | 0;
- (out.length = len), (len = (len - 1) | 0);
- var a = self2.words[0] | 0,
- b = num.words[0] | 0,
- r = a * b,
- lo = r & 67108863,
- carry = (r / 67108864) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- for (
- var ncarry = carry >>> 26,
- rword = carry & 67108863,
- maxJ = Math.min(k, num.length - 1),
- j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = (k - j) | 0;
- (a = self2.words[i] | 0),
- (b = num.words[j] | 0),
- (r = a * b + rword),
- (ncarry += (r / 67108864) | 0),
- (rword = r & 67108863);
- }
- (out.words[k] = rword | 0), (carry = ncarry | 0);
- }
- return carry !== 0 ? (out.words[k] = carry | 0) : out.length--, out.strip();
- }
- var comb10MulTo = function (self2, num, out) {
- var a = self2.words,
- b = num.words,
- o = out.words,
- c = 0,
- lo,
- mid,
- hi,
- a0 = a[0] | 0,
- al0 = a0 & 8191,
- ah0 = a0 >>> 13,
- a1 = a[1] | 0,
- al1 = a1 & 8191,
- ah1 = a1 >>> 13,
- a2 = a[2] | 0,
- al2 = a2 & 8191,
- ah2 = a2 >>> 13,
- a3 = a[3] | 0,
- al3 = a3 & 8191,
- ah3 = a3 >>> 13,
- a4 = a[4] | 0,
- al4 = a4 & 8191,
- ah4 = a4 >>> 13,
- a5 = a[5] | 0,
- al5 = a5 & 8191,
- ah5 = a5 >>> 13,
- a6 = a[6] | 0,
- al6 = a6 & 8191,
- ah6 = a6 >>> 13,
- a7 = a[7] | 0,
- al7 = a7 & 8191,
- ah7 = a7 >>> 13,
- a8 = a[8] | 0,
- al8 = a8 & 8191,
- ah8 = a8 >>> 13,
- a9 = a[9] | 0,
- al9 = a9 & 8191,
- ah9 = a9 >>> 13,
- b0 = b[0] | 0,
- bl0 = b0 & 8191,
- bh0 = b0 >>> 13,
- b1 = b[1] | 0,
- bl1 = b1 & 8191,
- bh1 = b1 >>> 13,
- b2 = b[2] | 0,
- bl2 = b2 & 8191,
- bh2 = b2 >>> 13,
- b3 = b[3] | 0,
- bl3 = b3 & 8191,
- bh3 = b3 >>> 13,
- b4 = b[4] | 0,
- bl4 = b4 & 8191,
- bh4 = b4 >>> 13,
- b5 = b[5] | 0,
- bl5 = b5 & 8191,
- bh5 = b5 >>> 13,
- b6 = b[6] | 0,
- bl6 = b6 & 8191,
- bh6 = b6 >>> 13,
- b7 = b[7] | 0,
- bl7 = b7 & 8191,
- bh7 = b7 >>> 13,
- b8 = b[8] | 0,
- bl8 = b8 & 8191,
- bh8 = b8 >>> 13,
- b9 = b[9] | 0,
- bl9 = b9 & 8191,
- bh9 = b9 >>> 13;
- (out.negative = self2.negative ^ num.negative),
- (out.length = 19),
- (lo = Math.imul(al0, bl0)),
- (mid = Math.imul(al0, bh0)),
- (mid = (mid + Math.imul(ah0, bl0)) | 0),
- (hi = Math.imul(ah0, bh0));
- var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0),
- (w0 &= 67108863),
- (lo = Math.imul(al1, bl0)),
- (mid = Math.imul(al1, bh0)),
- (mid = (mid + Math.imul(ah1, bl0)) | 0),
- (hi = Math.imul(ah1, bh0)),
- (lo = (lo + Math.imul(al0, bl1)) | 0),
- (mid = (mid + Math.imul(al0, bh1)) | 0),
- (mid = (mid + Math.imul(ah0, bl1)) | 0),
- (hi = (hi + Math.imul(ah0, bh1)) | 0);
- var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0),
- (w1 &= 67108863),
- (lo = Math.imul(al2, bl0)),
- (mid = Math.imul(al2, bh0)),
- (mid = (mid + Math.imul(ah2, bl0)) | 0),
- (hi = Math.imul(ah2, bh0)),
- (lo = (lo + Math.imul(al1, bl1)) | 0),
- (mid = (mid + Math.imul(al1, bh1)) | 0),
- (mid = (mid + Math.imul(ah1, bl1)) | 0),
- (hi = (hi + Math.imul(ah1, bh1)) | 0),
- (lo = (lo + Math.imul(al0, bl2)) | 0),
- (mid = (mid + Math.imul(al0, bh2)) | 0),
- (mid = (mid + Math.imul(ah0, bl2)) | 0),
- (hi = (hi + Math.imul(ah0, bh2)) | 0);
- var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0),
- (w2 &= 67108863),
- (lo = Math.imul(al3, bl0)),
- (mid = Math.imul(al3, bh0)),
- (mid = (mid + Math.imul(ah3, bl0)) | 0),
- (hi = Math.imul(ah3, bh0)),
- (lo = (lo + Math.imul(al2, bl1)) | 0),
- (mid = (mid + Math.imul(al2, bh1)) | 0),
- (mid = (mid + Math.imul(ah2, bl1)) | 0),
- (hi = (hi + Math.imul(ah2, bh1)) | 0),
- (lo = (lo + Math.imul(al1, bl2)) | 0),
- (mid = (mid + Math.imul(al1, bh2)) | 0),
- (mid = (mid + Math.imul(ah1, bl2)) | 0),
- (hi = (hi + Math.imul(ah1, bh2)) | 0),
- (lo = (lo + Math.imul(al0, bl3)) | 0),
- (mid = (mid + Math.imul(al0, bh3)) | 0),
- (mid = (mid + Math.imul(ah0, bl3)) | 0),
- (hi = (hi + Math.imul(ah0, bh3)) | 0);
- var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0),
- (w3 &= 67108863),
- (lo = Math.imul(al4, bl0)),
- (mid = Math.imul(al4, bh0)),
- (mid = (mid + Math.imul(ah4, bl0)) | 0),
- (hi = Math.imul(ah4, bh0)),
- (lo = (lo + Math.imul(al3, bl1)) | 0),
- (mid = (mid + Math.imul(al3, bh1)) | 0),
- (mid = (mid + Math.imul(ah3, bl1)) | 0),
- (hi = (hi + Math.imul(ah3, bh1)) | 0),
- (lo = (lo + Math.imul(al2, bl2)) | 0),
- (mid = (mid + Math.imul(al2, bh2)) | 0),
- (mid = (mid + Math.imul(ah2, bl2)) | 0),
- (hi = (hi + Math.imul(ah2, bh2)) | 0),
- (lo = (lo + Math.imul(al1, bl3)) | 0),
- (mid = (mid + Math.imul(al1, bh3)) | 0),
- (mid = (mid + Math.imul(ah1, bl3)) | 0),
- (hi = (hi + Math.imul(ah1, bh3)) | 0),
- (lo = (lo + Math.imul(al0, bl4)) | 0),
- (mid = (mid + Math.imul(al0, bh4)) | 0),
- (mid = (mid + Math.imul(ah0, bl4)) | 0),
- (hi = (hi + Math.imul(ah0, bh4)) | 0);
- var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0),
- (w4 &= 67108863),
- (lo = Math.imul(al5, bl0)),
- (mid = Math.imul(al5, bh0)),
- (mid = (mid + Math.imul(ah5, bl0)) | 0),
- (hi = Math.imul(ah5, bh0)),
- (lo = (lo + Math.imul(al4, bl1)) | 0),
- (mid = (mid + Math.imul(al4, bh1)) | 0),
- (mid = (mid + Math.imul(ah4, bl1)) | 0),
- (hi = (hi + Math.imul(ah4, bh1)) | 0),
- (lo = (lo + Math.imul(al3, bl2)) | 0),
- (mid = (mid + Math.imul(al3, bh2)) | 0),
- (mid = (mid + Math.imul(ah3, bl2)) | 0),
- (hi = (hi + Math.imul(ah3, bh2)) | 0),
- (lo = (lo + Math.imul(al2, bl3)) | 0),
- (mid = (mid + Math.imul(al2, bh3)) | 0),
- (mid = (mid + Math.imul(ah2, bl3)) | 0),
- (hi = (hi + Math.imul(ah2, bh3)) | 0),
- (lo = (lo + Math.imul(al1, bl4)) | 0),
- (mid = (mid + Math.imul(al1, bh4)) | 0),
- (mid = (mid + Math.imul(ah1, bl4)) | 0),
- (hi = (hi + Math.imul(ah1, bh4)) | 0),
- (lo = (lo + Math.imul(al0, bl5)) | 0),
- (mid = (mid + Math.imul(al0, bh5)) | 0),
- (mid = (mid + Math.imul(ah0, bl5)) | 0),
- (hi = (hi + Math.imul(ah0, bh5)) | 0);
- var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0),
- (w5 &= 67108863),
- (lo = Math.imul(al6, bl0)),
- (mid = Math.imul(al6, bh0)),
- (mid = (mid + Math.imul(ah6, bl0)) | 0),
- (hi = Math.imul(ah6, bh0)),
- (lo = (lo + Math.imul(al5, bl1)) | 0),
- (mid = (mid + Math.imul(al5, bh1)) | 0),
- (mid = (mid + Math.imul(ah5, bl1)) | 0),
- (hi = (hi + Math.imul(ah5, bh1)) | 0),
- (lo = (lo + Math.imul(al4, bl2)) | 0),
- (mid = (mid + Math.imul(al4, bh2)) | 0),
- (mid = (mid + Math.imul(ah4, bl2)) | 0),
- (hi = (hi + Math.imul(ah4, bh2)) | 0),
- (lo = (lo + Math.imul(al3, bl3)) | 0),
- (mid = (mid + Math.imul(al3, bh3)) | 0),
- (mid = (mid + Math.imul(ah3, bl3)) | 0),
- (hi = (hi + Math.imul(ah3, bh3)) | 0),
- (lo = (lo + Math.imul(al2, bl4)) | 0),
- (mid = (mid + Math.imul(al2, bh4)) | 0),
- (mid = (mid + Math.imul(ah2, bl4)) | 0),
- (hi = (hi + Math.imul(ah2, bh4)) | 0),
- (lo = (lo + Math.imul(al1, bl5)) | 0),
- (mid = (mid + Math.imul(al1, bh5)) | 0),
- (mid = (mid + Math.imul(ah1, bl5)) | 0),
- (hi = (hi + Math.imul(ah1, bh5)) | 0),
- (lo = (lo + Math.imul(al0, bl6)) | 0),
- (mid = (mid + Math.imul(al0, bh6)) | 0),
- (mid = (mid + Math.imul(ah0, bl6)) | 0),
- (hi = (hi + Math.imul(ah0, bh6)) | 0);
- var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0),
- (w6 &= 67108863),
- (lo = Math.imul(al7, bl0)),
- (mid = Math.imul(al7, bh0)),
- (mid = (mid + Math.imul(ah7, bl0)) | 0),
- (hi = Math.imul(ah7, bh0)),
- (lo = (lo + Math.imul(al6, bl1)) | 0),
- (mid = (mid + Math.imul(al6, bh1)) | 0),
- (mid = (mid + Math.imul(ah6, bl1)) | 0),
- (hi = (hi + Math.imul(ah6, bh1)) | 0),
- (lo = (lo + Math.imul(al5, bl2)) | 0),
- (mid = (mid + Math.imul(al5, bh2)) | 0),
- (mid = (mid + Math.imul(ah5, bl2)) | 0),
- (hi = (hi + Math.imul(ah5, bh2)) | 0),
- (lo = (lo + Math.imul(al4, bl3)) | 0),
- (mid = (mid + Math.imul(al4, bh3)) | 0),
- (mid = (mid + Math.imul(ah4, bl3)) | 0),
- (hi = (hi + Math.imul(ah4, bh3)) | 0),
- (lo = (lo + Math.imul(al3, bl4)) | 0),
- (mid = (mid + Math.imul(al3, bh4)) | 0),
- (mid = (mid + Math.imul(ah3, bl4)) | 0),
- (hi = (hi + Math.imul(ah3, bh4)) | 0),
- (lo = (lo + Math.imul(al2, bl5)) | 0),
- (mid = (mid + Math.imul(al2, bh5)) | 0),
- (mid = (mid + Math.imul(ah2, bl5)) | 0),
- (hi = (hi + Math.imul(ah2, bh5)) | 0),
- (lo = (lo + Math.imul(al1, bl6)) | 0),
- (mid = (mid + Math.imul(al1, bh6)) | 0),
- (mid = (mid + Math.imul(ah1, bl6)) | 0),
- (hi = (hi + Math.imul(ah1, bh6)) | 0),
- (lo = (lo + Math.imul(al0, bl7)) | 0),
- (mid = (mid + Math.imul(al0, bh7)) | 0),
- (mid = (mid + Math.imul(ah0, bl7)) | 0),
- (hi = (hi + Math.imul(ah0, bh7)) | 0);
- var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0),
- (w7 &= 67108863),
- (lo = Math.imul(al8, bl0)),
- (mid = Math.imul(al8, bh0)),
- (mid = (mid + Math.imul(ah8, bl0)) | 0),
- (hi = Math.imul(ah8, bh0)),
- (lo = (lo + Math.imul(al7, bl1)) | 0),
- (mid = (mid + Math.imul(al7, bh1)) | 0),
- (mid = (mid + Math.imul(ah7, bl1)) | 0),
- (hi = (hi + Math.imul(ah7, bh1)) | 0),
- (lo = (lo + Math.imul(al6, bl2)) | 0),
- (mid = (mid + Math.imul(al6, bh2)) | 0),
- (mid = (mid + Math.imul(ah6, bl2)) | 0),
- (hi = (hi + Math.imul(ah6, bh2)) | 0),
- (lo = (lo + Math.imul(al5, bl3)) | 0),
- (mid = (mid + Math.imul(al5, bh3)) | 0),
- (mid = (mid + Math.imul(ah5, bl3)) | 0),
- (hi = (hi + Math.imul(ah5, bh3)) | 0),
- (lo = (lo + Math.imul(al4, bl4)) | 0),
- (mid = (mid + Math.imul(al4, bh4)) | 0),
- (mid = (mid + Math.imul(ah4, bl4)) | 0),
- (hi = (hi + Math.imul(ah4, bh4)) | 0),
- (lo = (lo + Math.imul(al3, bl5)) | 0),
- (mid = (mid + Math.imul(al3, bh5)) | 0),
- (mid = (mid + Math.imul(ah3, bl5)) | 0),
- (hi = (hi + Math.imul(ah3, bh5)) | 0),
- (lo = (lo + Math.imul(al2, bl6)) | 0),
- (mid = (mid + Math.imul(al2, bh6)) | 0),
- (mid = (mid + Math.imul(ah2, bl6)) | 0),
- (hi = (hi + Math.imul(ah2, bh6)) | 0),
- (lo = (lo + Math.imul(al1, bl7)) | 0),
- (mid = (mid + Math.imul(al1, bh7)) | 0),
- (mid = (mid + Math.imul(ah1, bl7)) | 0),
- (hi = (hi + Math.imul(ah1, bh7)) | 0),
- (lo = (lo + Math.imul(al0, bl8)) | 0),
- (mid = (mid + Math.imul(al0, bh8)) | 0),
- (mid = (mid + Math.imul(ah0, bl8)) | 0),
- (hi = (hi + Math.imul(ah0, bh8)) | 0);
- var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0),
- (w8 &= 67108863),
- (lo = Math.imul(al9, bl0)),
- (mid = Math.imul(al9, bh0)),
- (mid = (mid + Math.imul(ah9, bl0)) | 0),
- (hi = Math.imul(ah9, bh0)),
- (lo = (lo + Math.imul(al8, bl1)) | 0),
- (mid = (mid + Math.imul(al8, bh1)) | 0),
- (mid = (mid + Math.imul(ah8, bl1)) | 0),
- (hi = (hi + Math.imul(ah8, bh1)) | 0),
- (lo = (lo + Math.imul(al7, bl2)) | 0),
- (mid = (mid + Math.imul(al7, bh2)) | 0),
- (mid = (mid + Math.imul(ah7, bl2)) | 0),
- (hi = (hi + Math.imul(ah7, bh2)) | 0),
- (lo = (lo + Math.imul(al6, bl3)) | 0),
- (mid = (mid + Math.imul(al6, bh3)) | 0),
- (mid = (mid + Math.imul(ah6, bl3)) | 0),
- (hi = (hi + Math.imul(ah6, bh3)) | 0),
- (lo = (lo + Math.imul(al5, bl4)) | 0),
- (mid = (mid + Math.imul(al5, bh4)) | 0),
- (mid = (mid + Math.imul(ah5, bl4)) | 0),
- (hi = (hi + Math.imul(ah5, bh4)) | 0),
- (lo = (lo + Math.imul(al4, bl5)) | 0),
- (mid = (mid + Math.imul(al4, bh5)) | 0),
- (mid = (mid + Math.imul(ah4, bl5)) | 0),
- (hi = (hi + Math.imul(ah4, bh5)) | 0),
- (lo = (lo + Math.imul(al3, bl6)) | 0),
- (mid = (mid + Math.imul(al3, bh6)) | 0),
- (mid = (mid + Math.imul(ah3, bl6)) | 0),
- (hi = (hi + Math.imul(ah3, bh6)) | 0),
- (lo = (lo + Math.imul(al2, bl7)) | 0),
- (mid = (mid + Math.imul(al2, bh7)) | 0),
- (mid = (mid + Math.imul(ah2, bl7)) | 0),
- (hi = (hi + Math.imul(ah2, bh7)) | 0),
- (lo = (lo + Math.imul(al1, bl8)) | 0),
- (mid = (mid + Math.imul(al1, bh8)) | 0),
- (mid = (mid + Math.imul(ah1, bl8)) | 0),
- (hi = (hi + Math.imul(ah1, bh8)) | 0),
- (lo = (lo + Math.imul(al0, bl9)) | 0),
- (mid = (mid + Math.imul(al0, bh9)) | 0),
- (mid = (mid + Math.imul(ah0, bl9)) | 0),
- (hi = (hi + Math.imul(ah0, bh9)) | 0);
- var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0),
- (w9 &= 67108863),
- (lo = Math.imul(al9, bl1)),
- (mid = Math.imul(al9, bh1)),
- (mid = (mid + Math.imul(ah9, bl1)) | 0),
- (hi = Math.imul(ah9, bh1)),
- (lo = (lo + Math.imul(al8, bl2)) | 0),
- (mid = (mid + Math.imul(al8, bh2)) | 0),
- (mid = (mid + Math.imul(ah8, bl2)) | 0),
- (hi = (hi + Math.imul(ah8, bh2)) | 0),
- (lo = (lo + Math.imul(al7, bl3)) | 0),
- (mid = (mid + Math.imul(al7, bh3)) | 0),
- (mid = (mid + Math.imul(ah7, bl3)) | 0),
- (hi = (hi + Math.imul(ah7, bh3)) | 0),
- (lo = (lo + Math.imul(al6, bl4)) | 0),
- (mid = (mid + Math.imul(al6, bh4)) | 0),
- (mid = (mid + Math.imul(ah6, bl4)) | 0),
- (hi = (hi + Math.imul(ah6, bh4)) | 0),
- (lo = (lo + Math.imul(al5, bl5)) | 0),
- (mid = (mid + Math.imul(al5, bh5)) | 0),
- (mid = (mid + Math.imul(ah5, bl5)) | 0),
- (hi = (hi + Math.imul(ah5, bh5)) | 0),
- (lo = (lo + Math.imul(al4, bl6)) | 0),
- (mid = (mid + Math.imul(al4, bh6)) | 0),
- (mid = (mid + Math.imul(ah4, bl6)) | 0),
- (hi = (hi + Math.imul(ah4, bh6)) | 0),
- (lo = (lo + Math.imul(al3, bl7)) | 0),
- (mid = (mid + Math.imul(al3, bh7)) | 0),
- (mid = (mid + Math.imul(ah3, bl7)) | 0),
- (hi = (hi + Math.imul(ah3, bh7)) | 0),
- (lo = (lo + Math.imul(al2, bl8)) | 0),
- (mid = (mid + Math.imul(al2, bh8)) | 0),
- (mid = (mid + Math.imul(ah2, bl8)) | 0),
- (hi = (hi + Math.imul(ah2, bh8)) | 0),
- (lo = (lo + Math.imul(al1, bl9)) | 0),
- (mid = (mid + Math.imul(al1, bh9)) | 0),
- (mid = (mid + Math.imul(ah1, bl9)) | 0),
- (hi = (hi + Math.imul(ah1, bh9)) | 0);
- var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0),
- (w10 &= 67108863),
- (lo = Math.imul(al9, bl2)),
- (mid = Math.imul(al9, bh2)),
- (mid = (mid + Math.imul(ah9, bl2)) | 0),
- (hi = Math.imul(ah9, bh2)),
- (lo = (lo + Math.imul(al8, bl3)) | 0),
- (mid = (mid + Math.imul(al8, bh3)) | 0),
- (mid = (mid + Math.imul(ah8, bl3)) | 0),
- (hi = (hi + Math.imul(ah8, bh3)) | 0),
- (lo = (lo + Math.imul(al7, bl4)) | 0),
- (mid = (mid + Math.imul(al7, bh4)) | 0),
- (mid = (mid + Math.imul(ah7, bl4)) | 0),
- (hi = (hi + Math.imul(ah7, bh4)) | 0),
- (lo = (lo + Math.imul(al6, bl5)) | 0),
- (mid = (mid + Math.imul(al6, bh5)) | 0),
- (mid = (mid + Math.imul(ah6, bl5)) | 0),
- (hi = (hi + Math.imul(ah6, bh5)) | 0),
- (lo = (lo + Math.imul(al5, bl6)) | 0),
- (mid = (mid + Math.imul(al5, bh6)) | 0),
- (mid = (mid + Math.imul(ah5, bl6)) | 0),
- (hi = (hi + Math.imul(ah5, bh6)) | 0),
- (lo = (lo + Math.imul(al4, bl7)) | 0),
- (mid = (mid + Math.imul(al4, bh7)) | 0),
- (mid = (mid + Math.imul(ah4, bl7)) | 0),
- (hi = (hi + Math.imul(ah4, bh7)) | 0),
- (lo = (lo + Math.imul(al3, bl8)) | 0),
- (mid = (mid + Math.imul(al3, bh8)) | 0),
- (mid = (mid + Math.imul(ah3, bl8)) | 0),
- (hi = (hi + Math.imul(ah3, bh8)) | 0),
- (lo = (lo + Math.imul(al2, bl9)) | 0),
- (mid = (mid + Math.imul(al2, bh9)) | 0),
- (mid = (mid + Math.imul(ah2, bl9)) | 0),
- (hi = (hi + Math.imul(ah2, bh9)) | 0);
- var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0),
- (w11 &= 67108863),
- (lo = Math.imul(al9, bl3)),
- (mid = Math.imul(al9, bh3)),
- (mid = (mid + Math.imul(ah9, bl3)) | 0),
- (hi = Math.imul(ah9, bh3)),
- (lo = (lo + Math.imul(al8, bl4)) | 0),
- (mid = (mid + Math.imul(al8, bh4)) | 0),
- (mid = (mid + Math.imul(ah8, bl4)) | 0),
- (hi = (hi + Math.imul(ah8, bh4)) | 0),
- (lo = (lo + Math.imul(al7, bl5)) | 0),
- (mid = (mid + Math.imul(al7, bh5)) | 0),
- (mid = (mid + Math.imul(ah7, bl5)) | 0),
- (hi = (hi + Math.imul(ah7, bh5)) | 0),
- (lo = (lo + Math.imul(al6, bl6)) | 0),
- (mid = (mid + Math.imul(al6, bh6)) | 0),
- (mid = (mid + Math.imul(ah6, bl6)) | 0),
- (hi = (hi + Math.imul(ah6, bh6)) | 0),
- (lo = (lo + Math.imul(al5, bl7)) | 0),
- (mid = (mid + Math.imul(al5, bh7)) | 0),
- (mid = (mid + Math.imul(ah5, bl7)) | 0),
- (hi = (hi + Math.imul(ah5, bh7)) | 0),
- (lo = (lo + Math.imul(al4, bl8)) | 0),
- (mid = (mid + Math.imul(al4, bh8)) | 0),
- (mid = (mid + Math.imul(ah4, bl8)) | 0),
- (hi = (hi + Math.imul(ah4, bh8)) | 0),
- (lo = (lo + Math.imul(al3, bl9)) | 0),
- (mid = (mid + Math.imul(al3, bh9)) | 0),
- (mid = (mid + Math.imul(ah3, bl9)) | 0),
- (hi = (hi + Math.imul(ah3, bh9)) | 0);
- var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0),
- (w12 &= 67108863),
- (lo = Math.imul(al9, bl4)),
- (mid = Math.imul(al9, bh4)),
- (mid = (mid + Math.imul(ah9, bl4)) | 0),
- (hi = Math.imul(ah9, bh4)),
- (lo = (lo + Math.imul(al8, bl5)) | 0),
- (mid = (mid + Math.imul(al8, bh5)) | 0),
- (mid = (mid + Math.imul(ah8, bl5)) | 0),
- (hi = (hi + Math.imul(ah8, bh5)) | 0),
- (lo = (lo + Math.imul(al7, bl6)) | 0),
- (mid = (mid + Math.imul(al7, bh6)) | 0),
- (mid = (mid + Math.imul(ah7, bl6)) | 0),
- (hi = (hi + Math.imul(ah7, bh6)) | 0),
- (lo = (lo + Math.imul(al6, bl7)) | 0),
- (mid = (mid + Math.imul(al6, bh7)) | 0),
- (mid = (mid + Math.imul(ah6, bl7)) | 0),
- (hi = (hi + Math.imul(ah6, bh7)) | 0),
- (lo = (lo + Math.imul(al5, bl8)) | 0),
- (mid = (mid + Math.imul(al5, bh8)) | 0),
- (mid = (mid + Math.imul(ah5, bl8)) | 0),
- (hi = (hi + Math.imul(ah5, bh8)) | 0),
- (lo = (lo + Math.imul(al4, bl9)) | 0),
- (mid = (mid + Math.imul(al4, bh9)) | 0),
- (mid = (mid + Math.imul(ah4, bl9)) | 0),
- (hi = (hi + Math.imul(ah4, bh9)) | 0);
- var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0),
- (w13 &= 67108863),
- (lo = Math.imul(al9, bl5)),
- (mid = Math.imul(al9, bh5)),
- (mid = (mid + Math.imul(ah9, bl5)) | 0),
- (hi = Math.imul(ah9, bh5)),
- (lo = (lo + Math.imul(al8, bl6)) | 0),
- (mid = (mid + Math.imul(al8, bh6)) | 0),
- (mid = (mid + Math.imul(ah8, bl6)) | 0),
- (hi = (hi + Math.imul(ah8, bh6)) | 0),
- (lo = (lo + Math.imul(al7, bl7)) | 0),
- (mid = (mid + Math.imul(al7, bh7)) | 0),
- (mid = (mid + Math.imul(ah7, bl7)) | 0),
- (hi = (hi + Math.imul(ah7, bh7)) | 0),
- (lo = (lo + Math.imul(al6, bl8)) | 0),
- (mid = (mid + Math.imul(al6, bh8)) | 0),
- (mid = (mid + Math.imul(ah6, bl8)) | 0),
- (hi = (hi + Math.imul(ah6, bh8)) | 0),
- (lo = (lo + Math.imul(al5, bl9)) | 0),
- (mid = (mid + Math.imul(al5, bh9)) | 0),
- (mid = (mid + Math.imul(ah5, bl9)) | 0),
- (hi = (hi + Math.imul(ah5, bh9)) | 0);
- var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0),
- (w14 &= 67108863),
- (lo = Math.imul(al9, bl6)),
- (mid = Math.imul(al9, bh6)),
- (mid = (mid + Math.imul(ah9, bl6)) | 0),
- (hi = Math.imul(ah9, bh6)),
- (lo = (lo + Math.imul(al8, bl7)) | 0),
- (mid = (mid + Math.imul(al8, bh7)) | 0),
- (mid = (mid + Math.imul(ah8, bl7)) | 0),
- (hi = (hi + Math.imul(ah8, bh7)) | 0),
- (lo = (lo + Math.imul(al7, bl8)) | 0),
- (mid = (mid + Math.imul(al7, bh8)) | 0),
- (mid = (mid + Math.imul(ah7, bl8)) | 0),
- (hi = (hi + Math.imul(ah7, bh8)) | 0),
- (lo = (lo + Math.imul(al6, bl9)) | 0),
- (mid = (mid + Math.imul(al6, bh9)) | 0),
- (mid = (mid + Math.imul(ah6, bl9)) | 0),
- (hi = (hi + Math.imul(ah6, bh9)) | 0);
- var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0),
- (w15 &= 67108863),
- (lo = Math.imul(al9, bl7)),
- (mid = Math.imul(al9, bh7)),
- (mid = (mid + Math.imul(ah9, bl7)) | 0),
- (hi = Math.imul(ah9, bh7)),
- (lo = (lo + Math.imul(al8, bl8)) | 0),
- (mid = (mid + Math.imul(al8, bh8)) | 0),
- (mid = (mid + Math.imul(ah8, bl8)) | 0),
- (hi = (hi + Math.imul(ah8, bh8)) | 0),
- (lo = (lo + Math.imul(al7, bl9)) | 0),
- (mid = (mid + Math.imul(al7, bh9)) | 0),
- (mid = (mid + Math.imul(ah7, bl9)) | 0),
- (hi = (hi + Math.imul(ah7, bh9)) | 0);
- var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0),
- (w16 &= 67108863),
- (lo = Math.imul(al9, bl8)),
- (mid = Math.imul(al9, bh8)),
- (mid = (mid + Math.imul(ah9, bl8)) | 0),
- (hi = Math.imul(ah9, bh8)),
- (lo = (lo + Math.imul(al8, bl9)) | 0),
- (mid = (mid + Math.imul(al8, bh9)) | 0),
- (mid = (mid + Math.imul(ah8, bl9)) | 0),
- (hi = (hi + Math.imul(ah8, bh9)) | 0);
- var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0),
- (w17 &= 67108863),
- (lo = Math.imul(al9, bl9)),
- (mid = Math.imul(al9, bh9)),
- (mid = (mid + Math.imul(ah9, bl9)) | 0),
- (hi = Math.imul(ah9, bh9));
- var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- return (
- (c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0),
- (w18 &= 67108863),
- (o[0] = w0),
- (o[1] = w1),
- (o[2] = w2),
- (o[3] = w3),
- (o[4] = w4),
- (o[5] = w5),
- (o[6] = w6),
- (o[7] = w7),
- (o[8] = w8),
- (o[9] = w9),
- (o[10] = w10),
- (o[11] = w11),
- (o[12] = w12),
- (o[13] = w13),
- (o[14] = w14),
- (o[15] = w15),
- (o[16] = w16),
- (o[17] = w17),
- (o[18] = w18),
- c !== 0 && ((o[19] = c), out.length++),
- out
- );
- };
- Math.imul || (comb10MulTo = smallMulTo);
- function bigMulTo(self2, num, out) {
- (out.negative = num.negative ^ self2.negative), (out.length = self2.length + num.length);
- for (var carry = 0, hncarry = 0, k = 0; k < out.length - 1; k++) {
- var ncarry = hncarry;
- hncarry = 0;
- for (
- var rword = carry & 67108863, maxJ = Math.min(k, num.length - 1), j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = k - j,
- a = self2.words[i] | 0,
- b = num.words[j] | 0,
- r = a * b,
- lo = r & 67108863;
- (ncarry = (ncarry + ((r / 67108864) | 0)) | 0),
- (lo = (lo + rword) | 0),
- (rword = lo & 67108863),
- (ncarry = (ncarry + (lo >>> 26)) | 0),
- (hncarry += ncarry >>> 26),
- (ncarry &= 67108863);
- }
- (out.words[k] = rword), (carry = ncarry), (ncarry = hncarry);
- }
- return carry !== 0 ? (out.words[k] = carry) : out.length--, out.strip();
- }
- function jumboMulTo(self2, num, out) {
- var fftm = new FFTM();
- return fftm.mulp(self2, num, out);
- }
- BN.prototype.mulTo = function (num, out) {
- var res,
- len = this.length + num.length;
- return (
- this.length === 10 && num.length === 10
- ? (res = comb10MulTo(this, num, out))
- : len < 63
- ? (res = smallMulTo(this, num, out))
- : len < 1024
- ? (res = bigMulTo(this, num, out))
- : (res = jumboMulTo(this, num, out)),
- res
- );
- };
- function FFTM(x, y) {
- (this.x = x), (this.y = y);
- }
- (FFTM.prototype.makeRBT = function (N) {
- for (var t = new Array(N), l = BN.prototype._countBits(N) - 1, i = 0; i < N; i++) t[i] = this.revBin(i, l, N);
- return t;
- }),
- (FFTM.prototype.revBin = function (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- for (var rb = 0, i = 0; i < l; i++) (rb |= (x & 1) << (l - i - 1)), (x >>= 1);
- return rb;
- }),
- (FFTM.prototype.permute = function (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) (rtws[i] = rws[rbt[i]]), (itws[i] = iws[rbt[i]]);
- }),
- (FFTM.prototype.transform = function (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1)
- for (
- var l = s << 1, rtwdf = Math.cos((2 * Math.PI) / l), itwdf = Math.sin((2 * Math.PI) / l), p = 0;
- p < N;
- p += l
- )
- for (var rtwdf_ = rtwdf, itwdf_ = itwdf, j = 0; j < s; j++) {
- var re = rtws[p + j],
- ie = itws[p + j],
- ro = rtws[p + j + s],
- io = itws[p + j + s],
- rx = rtwdf_ * ro - itwdf_ * io;
- (io = rtwdf_ * io + itwdf_ * ro),
- (ro = rx),
- (rtws[p + j] = re + ro),
- (itws[p + j] = ie + io),
- (rtws[p + j + s] = re - ro),
- (itws[p + j + s] = ie - io),
- j !== l &&
- ((rx = rtwdf * rtwdf_ - itwdf * itwdf_), (itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_), (rtwdf_ = rx));
- }
- }),
- (FFTM.prototype.guessLen13b = function (n, m) {
- var N = Math.max(m, n) | 1,
- odd = N & 1,
- i = 0;
- for (N = (N / 2) | 0; N; N = N >>> 1) i++;
- return 1 << (i + 1 + odd);
- }),
- (FFTM.prototype.conjugate = function (rws, iws, N) {
- if (!(N <= 1))
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- (rws[i] = rws[N - i - 1]),
- (rws[N - i - 1] = t),
- (t = iws[i]),
- (iws[i] = -iws[N - i - 1]),
- (iws[N - i - 1] = -t);
- }
- }),
- (FFTM.prototype.normalize13b = function (ws, N) {
- for (var carry = 0, i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
- (ws[i] = w & 67108863), w < 67108864 ? (carry = 0) : (carry = (w / 67108864) | 0);
- }
- return ws;
- }),
- (FFTM.prototype.convert13b = function (ws, len, rws, N) {
- for (var carry = 0, i = 0; i < len; i++)
- (carry = carry + (ws[i] | 0)),
- (rws[2 * i] = carry & 8191),
- (carry = carry >>> 13),
- (rws[2 * i + 1] = carry & 8191),
- (carry = carry >>> 13);
- for (i = 2 * len; i < N; ++i) rws[i] = 0;
- assert(carry === 0), assert((carry & -8192) === 0);
- }),
- (FFTM.prototype.stub = function (N) {
- for (var ph = new Array(N), i = 0; i < N; i++) ph[i] = 0;
- return ph;
- }),
- (FFTM.prototype.mulp = function (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length),
- rbt = this.makeRBT(N),
- _ = this.stub(N),
- rws = new Array(N),
- rwst = new Array(N),
- iwst = new Array(N),
- nrws = new Array(N),
- nrwst = new Array(N),
- niwst = new Array(N),
- rmws = out.words;
- (rmws.length = N),
- this.convert13b(x.words, x.length, rws, N),
- this.convert13b(y.words, y.length, nrws, N),
- this.transform(rws, _, rwst, iwst, N, rbt),
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- (iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]), (rwst[i] = rx);
- }
- return (
- this.conjugate(rwst, iwst, N),
- this.transform(rwst, iwst, rmws, _, N, rbt),
- this.conjugate(rmws, _, N),
- this.normalize13b(rmws, N),
- (out.negative = x.negative ^ y.negative),
- (out.length = x.length + y.length),
- out.strip()
- );
- }),
- (BN.prototype.mul = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), this.mulTo(num, out);
- }),
- (BN.prototype.mulf = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), jumboMulTo(this, num, out);
- }),
- (BN.prototype.imul = function (num) {
- return this.clone().mulTo(num, this);
- }),
- (BN.prototype.imuln = function (num) {
- assert(typeof num == "number"), assert(num < 67108864);
- for (var carry = 0, i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num,
- lo = (w & 67108863) + (carry & 67108863);
- (carry >>= 26), (carry += (w / 67108864) | 0), (carry += lo >>> 26), (this.words[i] = lo & 67108863);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.muln = function (num) {
- return this.clone().imuln(num);
- }),
- (BN.prototype.sqr = function () {
- return this.mul(this);
- }),
- (BN.prototype.isqr = function () {
- return this.imul(this.clone());
- }),
- (BN.prototype.pow = function (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- for (var res = this, i = 0; i < w.length && w[i] === 0; i++, res = res.sqr());
- if (++i < w.length) for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) w[i] !== 0 && (res = res.mul(q));
- return res;
- }),
- (BN.prototype.iushln = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26,
- carryMask = (67108863 >>> (26 - r)) << (26 - r),
- i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask,
- c = ((this.words[i] | 0) - newCarry) << r;
- (this.words[i] = c | carry), (carry = newCarry >>> (26 - r));
- }
- carry && ((this.words[i] = carry), this.length++);
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) this.words[i + s] = this.words[i];
- for (i = 0; i < s; i++) this.words[i] = 0;
- this.length += s;
- }
- return this.strip();
- }),
- (BN.prototype.ishln = function (bits) {
- return assert(this.negative === 0), this.iushln(bits);
- }),
- (BN.prototype.iushrn = function (bits, hint, extended) {
- assert(typeof bits == "number" && bits >= 0);
- var h;
- hint ? (h = (hint - (hint % 26)) / 26) : (h = 0);
- var r = bits % 26,
- s = Math.min((bits - r) / 26, this.length),
- mask = 67108863 ^ ((67108863 >>> r) << r),
- maskedWords = extended;
- if (((h -= s), (h = Math.max(0, h)), maskedWords)) {
- for (var i = 0; i < s; i++) maskedWords.words[i] = this.words[i];
- maskedWords.length = s;
- }
- if (s !== 0)
- if (this.length > s) for (this.length -= s, i = 0; i < this.length; i++) this.words[i] = this.words[i + s];
- else (this.words[0] = 0), (this.length = 1);
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- (this.words[i] = (carry << (26 - r)) | (word >>> r)), (carry = word & mask);
- }
- return (
- maskedWords && carry !== 0 && (maskedWords.words[maskedWords.length++] = carry),
- this.length === 0 && ((this.words[0] = 0), (this.length = 1)),
- this.strip()
- );
- }),
- (BN.prototype.ishrn = function (bits, hint, extended) {
- return assert(this.negative === 0), this.iushrn(bits, hint, extended);
- }),
- (BN.prototype.shln = function (bits) {
- return this.clone().ishln(bits);
- }),
- (BN.prototype.ushln = function (bits) {
- return this.clone().iushln(bits);
- }),
- (BN.prototype.shrn = function (bits) {
- return this.clone().ishrn(bits);
- }),
- (BN.prototype.ushrn = function (bits) {
- return this.clone().iushrn(bits);
- }),
- (BN.prototype.testn = function (bit) {
- assert(typeof bit == "number" && bit >= 0);
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return !1;
- var w = this.words[s];
- return !!(w & q);
- }),
- (BN.prototype.imaskn = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26;
- if ((assert(this.negative === 0, "imaskn works only with positive numbers"), this.length <= s)) return this;
- if ((r !== 0 && s++, (this.length = Math.min(s, this.length)), r !== 0)) {
- var mask = 67108863 ^ ((67108863 >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this.strip();
- }),
- (BN.prototype.maskn = function (bits) {
- return this.clone().imaskn(bits);
- }),
- (BN.prototype.iaddn = function (num) {
- return (
- assert(typeof num == "number"),
- assert(num < 67108864),
- num < 0
- ? this.isubn(-num)
- : this.negative !== 0
- ? this.length === 1 && (this.words[0] | 0) < num
- ? ((this.words[0] = num - (this.words[0] | 0)), (this.negative = 0), this)
- : ((this.negative = 0), this.isubn(num), (this.negative = 1), this)
- : this._iaddn(num)
- );
- }),
- (BN.prototype._iaddn = function (num) {
- this.words[0] += num;
- for (var i = 0; i < this.length && this.words[i] >= 67108864; i++)
- (this.words[i] -= 67108864), i === this.length - 1 ? (this.words[i + 1] = 1) : this.words[i + 1]++;
- return (this.length = Math.max(this.length, i + 1)), this;
- }),
- (BN.prototype.isubn = function (num) {
- if ((assert(typeof num == "number"), assert(num < 67108864), num < 0)) return this.iaddn(-num);
- if (this.negative !== 0) return (this.negative = 0), this.iaddn(num), (this.negative = 1), this;
- if (((this.words[0] -= num), this.length === 1 && this.words[0] < 0))
- (this.words[0] = -this.words[0]), (this.negative = 1);
- else
- for (var i = 0; i < this.length && this.words[i] < 0; i++)
- (this.words[i] += 67108864), (this.words[i + 1] -= 1);
- return this.strip();
- }),
- (BN.prototype.addn = function (num) {
- return this.clone().iaddn(num);
- }),
- (BN.prototype.subn = function (num) {
- return this.clone().isubn(num);
- }),
- (BN.prototype.iabs = function () {
- return (this.negative = 0), this;
- }),
- (BN.prototype.abs = function () {
- return this.clone().iabs();
- }),
- (BN.prototype._ishlnsubmul = function (num, mul, shift) {
- var len = num.length + shift,
- i;
- this._expand(len);
- var w,
- carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- (w -= right & 67108863),
- (carry = (w >> 26) - ((right / 67108864) | 0)),
- (this.words[i + shift] = w & 67108863);
- }
- for (; i < this.length - shift; i++)
- (w = (this.words[i + shift] | 0) + carry), (carry = w >> 26), (this.words[i + shift] = w & 67108863);
- if (carry === 0) return this.strip();
- for (assert(carry === -1), carry = 0, i = 0; i < this.length; i++)
- (w = -(this.words[i] | 0) + carry), (carry = w >> 26), (this.words[i] = w & 67108863);
- return (this.negative = 1), this.strip();
- }),
- (BN.prototype._wordDiv = function (num, mode) {
- var shift = this.length - num.length,
- a = this.clone(),
- b = num,
- bhi = b.words[b.length - 1] | 0,
- bhiBits = this._countBits(bhi);
- (shift = 26 - bhiBits),
- shift !== 0 && ((b = b.ushln(shift)), a.iushln(shift), (bhi = b.words[b.length - 1] | 0));
- var m = a.length - b.length,
- q;
- if (mode !== "mod") {
- (q = new BN(null)), (q.length = m + 1), (q.words = new Array(q.length));
- for (var i = 0; i < q.length; i++) q.words[i] = 0;
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- diff.negative === 0 && ((a = diff), q && (q.words[m] = 1));
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
- for (qj = Math.min((qj / bhi) | 0, 67108863), a._ishlnsubmul(b, qj, j); a.negative !== 0; )
- qj--, (a.negative = 0), a._ishlnsubmul(b, 1, j), a.isZero() || (a.negative ^= 1);
- q && (q.words[j] = qj);
- }
- return (
- q && q.strip(),
- a.strip(),
- mode !== "div" && shift !== 0 && a.iushrn(shift),
- {
- div: q || null,
- mod: a,
- }
- );
- }),
- (BN.prototype.divmod = function (num, mode, positive) {
- if ((assert(!num.isZero()), this.isZero()))
- return {
- div: new BN(0),
- mod: new BN(0),
- };
- var div, mod, res;
- return this.negative !== 0 && num.negative === 0
- ? ((res = this.neg().divmod(num, mode)),
- mode !== "mod" && (div = res.div.neg()),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.iadd(num)),
- {
- div,
- mod,
- })
- : this.negative === 0 && num.negative !== 0
- ? ((res = this.divmod(num.neg(), mode)),
- mode !== "mod" && (div = res.div.neg()),
- {
- div,
- mod: res.mod,
- })
- : (this.negative & num.negative) !== 0
- ? ((res = this.neg().divmod(num.neg(), mode)),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.isub(num)),
- {
- div: res.div,
- mod,
- })
- : num.length > this.length || this.cmp(num) < 0
- ? {
- div: new BN(0),
- mod: this,
- }
- : num.length === 1
- ? mode === "div"
- ? {
- div: this.divn(num.words[0]),
- mod: null,
- }
- : mode === "mod"
- ? {
- div: null,
- mod: new BN(this.modn(num.words[0])),
- }
- : {
- div: this.divn(num.words[0]),
- mod: new BN(this.modn(num.words[0])),
- }
- : this._wordDiv(num, mode);
- }),
- (BN.prototype.div = function (num) {
- return this.divmod(num, "div", !1).div;
- }),
- (BN.prototype.mod = function (num) {
- return this.divmod(num, "mod", !1).mod;
- }),
- (BN.prototype.umod = function (num) {
- return this.divmod(num, "mod", !0).mod;
- }),
- (BN.prototype.divRound = function (num) {
- var dm = this.divmod(num);
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod,
- half = num.ushrn(1),
- r2 = num.andln(1),
- cmp = mod.cmp(half);
- return cmp < 0 || (r2 === 1 && cmp === 0)
- ? dm.div
- : dm.div.negative !== 0
- ? dm.div.isubn(1)
- : dm.div.iaddn(1);
- }),
- (BN.prototype.modn = function (num) {
- assert(num <= 67108863);
- for (var p = (1 << 26) % num, acc = 0, i = this.length - 1; i >= 0; i--)
- acc = (p * acc + (this.words[i] | 0)) % num;
- return acc;
- }),
- (BN.prototype.idivn = function (num) {
- assert(num <= 67108863);
- for (var carry = 0, i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 67108864;
- (this.words[i] = (w / num) | 0), (carry = w % num);
- }
- return this.strip();
- }),
- (BN.prototype.divn = function (num) {
- return this.clone().idivn(num);
- }),
- (BN.prototype.egcd = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var x = this,
- y = p.clone();
- x.negative !== 0 ? (x = x.umod(p)) : (x = x.clone());
- for (var A = new BN(1), B = new BN(0), C = new BN(0), D = new BN(1), g = 0; x.isEven() && y.isEven(); )
- x.iushrn(1), y.iushrn(1), ++g;
- for (var yp = y.clone(), xp = x.clone(); !x.isZero(); ) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0)
- for (x.iushrn(i); i-- > 0; )
- (A.isOdd() || B.isOdd()) && (A.iadd(yp), B.isub(xp)), A.iushrn(1), B.iushrn(1);
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0)
- for (y.iushrn(j); j-- > 0; )
- (C.isOdd() || D.isOdd()) && (C.iadd(yp), D.isub(xp)), C.iushrn(1), D.iushrn(1);
- x.cmp(y) >= 0 ? (x.isub(y), A.isub(C), B.isub(D)) : (y.isub(x), C.isub(A), D.isub(B));
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g),
- };
- }),
- (BN.prototype._invmp = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var a = this,
- b = p.clone();
- a.negative !== 0 ? (a = a.umod(p)) : (a = a.clone());
- for (var x1 = new BN(1), x2 = new BN(0), delta = b.clone(); a.cmpn(1) > 0 && b.cmpn(1) > 0; ) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) for (a.iushrn(i); i-- > 0; ) x1.isOdd() && x1.iadd(delta), x1.iushrn(1);
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) for (b.iushrn(j); j-- > 0; ) x2.isOdd() && x2.iadd(delta), x2.iushrn(1);
- a.cmp(b) >= 0 ? (a.isub(b), x1.isub(x2)) : (b.isub(a), x2.isub(x1));
- }
- var res;
- return a.cmpn(1) === 0 ? (res = x1) : (res = x2), res.cmpn(0) < 0 && res.iadd(p), res;
- }),
- (BN.prototype.gcd = function (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone(),
- b = num.clone();
- (a.negative = 0), (b.negative = 0);
- for (var shift = 0; a.isEven() && b.isEven(); shift++) a.iushrn(1), b.iushrn(1);
- do {
- for (; a.isEven(); ) a.iushrn(1);
- for (; b.isEven(); ) b.iushrn(1);
- var r = a.cmp(b);
- if (r < 0) {
- var t = a;
- (a = b), (b = t);
- } else if (r === 0 || b.cmpn(1) === 0) break;
- a.isub(b);
- } while (!0);
- return b.iushln(shift);
- }),
- (BN.prototype.invm = function (num) {
- return this.egcd(num).a.umod(num);
- }),
- (BN.prototype.isEven = function () {
- return (this.words[0] & 1) === 0;
- }),
- (BN.prototype.isOdd = function () {
- return (this.words[0] & 1) === 1;
- }),
- (BN.prototype.andln = function (num) {
- return this.words[0] & num;
- }),
- (BN.prototype.bincn = function (bit) {
- assert(typeof bit == "number");
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return this._expand(s + 1), (this.words[s] |= q), this;
- for (var carry = q, i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- (w += carry), (carry = w >>> 26), (w &= 67108863), (this.words[i] = w);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.isZero = function () {
- return this.length === 1 && this.words[0] === 0;
- }),
- (BN.prototype.cmpn = function (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this.strip();
- var res;
- if (this.length > 1) res = 1;
- else {
- negative && (num = -num), assert(num <= 67108863, "Number is too big");
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.cmp = function (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.ucmp = function (num) {
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- for (var res = 0, i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0,
- b = num.words[i] | 0;
- if (a !== b) {
- a < b ? (res = -1) : a > b && (res = 1);
- break;
- }
- }
- return res;
- }),
- (BN.prototype.gtn = function (num) {
- return this.cmpn(num) === 1;
- }),
- (BN.prototype.gt = function (num) {
- return this.cmp(num) === 1;
- }),
- (BN.prototype.gten = function (num) {
- return this.cmpn(num) >= 0;
- }),
- (BN.prototype.gte = function (num) {
- return this.cmp(num) >= 0;
- }),
- (BN.prototype.ltn = function (num) {
- return this.cmpn(num) === -1;
- }),
- (BN.prototype.lt = function (num) {
- return this.cmp(num) === -1;
- }),
- (BN.prototype.lten = function (num) {
- return this.cmpn(num) <= 0;
- }),
- (BN.prototype.lte = function (num) {
- return this.cmp(num) <= 0;
- }),
- (BN.prototype.eqn = function (num) {
- return this.cmpn(num) === 0;
- }),
- (BN.prototype.eq = function (num) {
- return this.cmp(num) === 0;
- }),
- (BN.red = function (num) {
- return new Red(num);
- }),
- (BN.prototype.toRed = function (ctx) {
- return (
- assert(!this.red, "Already a number in reduction context"),
- assert(this.negative === 0, "red works only with positives"),
- ctx.convertTo(this)._forceRed(ctx)
- );
- }),
- (BN.prototype.fromRed = function () {
- return assert(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this);
- }),
- (BN.prototype._forceRed = function (ctx) {
- return (this.red = ctx), this;
- }),
- (BN.prototype.forceRed = function (ctx) {
- return assert(!this.red, "Already a number in reduction context"), this._forceRed(ctx);
- }),
- (BN.prototype.redAdd = function (num) {
- return assert(this.red, "redAdd works only with red numbers"), this.red.add(this, num);
- }),
- (BN.prototype.redIAdd = function (num) {
- return assert(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, num);
- }),
- (BN.prototype.redSub = function (num) {
- return assert(this.red, "redSub works only with red numbers"), this.red.sub(this, num);
- }),
- (BN.prototype.redISub = function (num) {
- return assert(this.red, "redISub works only with red numbers"), this.red.isub(this, num);
- }),
- (BN.prototype.redShl = function (num) {
- return assert(this.red, "redShl works only with red numbers"), this.red.shl(this, num);
- }),
- (BN.prototype.redMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.mul(this, num)
- );
- }),
- (BN.prototype.redIMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.imul(this, num)
- );
- }),
- (BN.prototype.redSqr = function () {
- return assert(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this);
- }),
- (BN.prototype.redISqr = function () {
- return assert(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this);
- }),
- (BN.prototype.redSqrt = function () {
- return assert(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this);
- }),
- (BN.prototype.redInvm = function () {
- return assert(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this);
- }),
- (BN.prototype.redNeg = function () {
- return assert(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this);
- }),
- (BN.prototype.redPow = function (num) {
- return assert(this.red && !num.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, num);
- });
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null,
- };
- function MPrime(name, p) {
- (this.name = name),
- (this.p = new BN(p, 16)),
- (this.n = this.p.bitLength()),
- (this.k = new BN(1).iushln(this.n).isub(this.p)),
- (this.tmp = this._tmp());
- }
- (MPrime.prototype._tmp = function () {
- var tmp = new BN(null);
- return (tmp.words = new Array(Math.ceil(this.n / 13))), tmp;
- }),
- (MPrime.prototype.ireduce = function (num) {
- var r = num,
- rlen;
- do this.split(r, this.tmp), (r = this.imulK(r)), (r = r.iadd(this.tmp)), (rlen = r.bitLength());
- while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- return (
- cmp === 0
- ? ((r.words[0] = 0), (r.length = 1))
- : cmp > 0
- ? r.isub(this.p)
- : r.strip !== void 0
- ? r.strip()
- : r._strip(),
- r
- );
- }),
- (MPrime.prototype.split = function (input, out) {
- input.iushrn(this.n, 0, out);
- }),
- (MPrime.prototype.imulK = function (num) {
- return num.imul(this.k);
- });
- function K256() {
- MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
- }
- inherits(K256, MPrime),
- (K256.prototype.split = function (input, output) {
- for (var mask = 4194303, outLen = Math.min(input.length, 9), i = 0; i < outLen; i++)
- output.words[i] = input.words[i];
- if (((output.length = outLen), input.length <= 9)) {
- (input.words[0] = 0), (input.length = 1);
- return;
- }
- var prev = input.words[9];
- for (output.words[output.length++] = prev & mask, i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- (input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22)), (prev = next);
- }
- (prev >>>= 22),
- (input.words[i - 10] = prev),
- prev === 0 && input.length > 10 ? (input.length -= 10) : (input.length -= 9);
- }),
- (K256.prototype.imulK = function (num) {
- (num.words[num.length] = 0), (num.words[num.length + 1] = 0), (num.length += 2);
- for (var lo = 0, i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- (lo += w * 977), (num.words[i] = lo & 67108863), (lo = w * 64 + ((lo / 67108864) | 0));
- }
- return (
- num.words[num.length - 1] === 0 && (num.length--, num.words[num.length - 1] === 0 && num.length--), num
- );
- });
- function P224() {
- MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
- }
- inherits(P224, MPrime);
- function P192() {
- MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
- }
- inherits(P192, MPrime);
- function P25519() {
- MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
- }
- inherits(P25519, MPrime),
- (P25519.prototype.imulK = function (num) {
- for (var carry = 0, i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 19 + carry,
- lo = hi & 67108863;
- (hi >>>= 26), (num.words[i] = lo), (carry = hi);
- }
- return carry !== 0 && (num.words[num.length++] = carry), num;
- }),
- (BN._prime = function (name) {
- if (primes[name]) return primes[name];
- var prime2;
- if (name === "k256") prime2 = new K256();
- else if (name === "p224") prime2 = new P224();
- else if (name === "p192") prime2 = new P192();
- else if (name === "p25519") prime2 = new P25519();
- else throw new Error("Unknown prime " + name);
- return (primes[name] = prime2), prime2;
- });
- function Red(m) {
- if (typeof m == "string") {
- var prime = BN._prime(m);
- (this.m = prime.p), (this.prime = prime);
- } else assert(m.gtn(1), "modulus must be greater than 1"), (this.m = m), (this.prime = null);
- }
- (Red.prototype._verify1 = function (a) {
- assert(a.negative === 0, "red works only with positives"), assert(a.red, "red works only with red numbers");
- }),
- (Red.prototype._verify2 = function (a, b) {
- assert((a.negative | b.negative) === 0, "red works only with positives"),
- assert(a.red && a.red === b.red, "red works only with red numbers");
- }),
- (Red.prototype.imod = function (a) {
- return this.prime ? this.prime.ireduce(a)._forceRed(this) : a.umod(this.m)._forceRed(this);
- }),
- (Red.prototype.neg = function (a) {
- return a.isZero() ? a.clone() : this.m.sub(a)._forceRed(this);
- }),
- (Red.prototype.add = function (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res._forceRed(this);
- }),
- (Red.prototype.iadd = function (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res;
- }),
- (Red.prototype.sub = function (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res._forceRed(this);
- }),
- (Red.prototype.isub = function (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res;
- }),
- (Red.prototype.shl = function (a, num) {
- return this._verify1(a), this.imod(a.ushln(num));
- }),
- (Red.prototype.imul = function (a, b) {
- return this._verify2(a, b), this.imod(a.imul(b));
- }),
- (Red.prototype.mul = function (a, b) {
- return this._verify2(a, b), this.imod(a.mul(b));
- }),
- (Red.prototype.isqr = function (a) {
- return this.imul(a, a.clone());
- }),
- (Red.prototype.sqr = function (a) {
- return this.mul(a, a);
- }),
- (Red.prototype.sqrt = function (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- if ((assert(mod3 % 2 === 1), mod3 === 3)) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- for (var q = this.m.subn(1), s = 0; !q.isZero() && q.andln(1) === 0; ) s++, q.iushrn(1);
- assert(!q.isZero());
- var one = new BN(1).toRed(this),
- nOne = one.redNeg(),
- lpow = this.m.subn(1).iushrn(1),
- z = this.m.bitLength();
- for (z = new BN(2 * z * z).toRed(this); this.pow(z, lpow).cmp(nOne) !== 0; ) z.redIAdd(nOne);
- for (
- var c = this.pow(z, q), r = this.pow(a, q.addn(1).iushrn(1)), t = this.pow(a, q), m = s;
- t.cmp(one) !== 0;
-
- ) {
- for (var tmp = t, i = 0; tmp.cmp(one) !== 0; i++) tmp = tmp.redSqr();
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- (r = r.redMul(b)), (c = b.redSqr()), (t = t.redMul(c)), (m = i);
- }
- return r;
- }),
- (Red.prototype.invm = function (a) {
- var inv = a._invmp(this.m);
- return inv.negative !== 0 ? ((inv.negative = 0), this.imod(inv).redNeg()) : this.imod(inv);
- }),
- (Red.prototype.pow = function (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4,
- wnd = new Array(1 << windowSize);
- (wnd[0] = new BN(1).toRed(this)), (wnd[1] = a);
- for (var i = 2; i < wnd.length; i++) wnd[i] = this.mul(wnd[i - 1], a);
- var res = wnd[0],
- current = 0,
- currentLen = 0,
- start = num.bitLength() % 26;
- for (start === 0 && (start = 26), i = num.length - 1; i >= 0; i--) {
- for (var word = num.words[i], j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if ((res !== wnd[0] && (res = this.sqr(res)), bit === 0 && current === 0)) {
- currentLen = 0;
- continue;
- }
- (current <<= 1),
- (current |= bit),
- currentLen++,
- !(currentLen !== windowSize && (i !== 0 || j !== 0)) &&
- ((res = this.mul(res, wnd[current])), (currentLen = 0), (current = 0));
- }
- start = 26;
- }
- return res;
- }),
- (Red.prototype.convertTo = function (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- }),
- (Red.prototype.convertFrom = function (num) {
- var res = num.clone();
- return (res.red = null), res;
- }),
- (BN.mont = function (num) {
- return new Mont(num);
- });
- function Mont(m) {
- Red.call(this, m),
- (this.shift = this.m.bitLength()),
- this.shift % 26 !== 0 && (this.shift += 26 - (this.shift % 26)),
- (this.r = new BN(1).iushln(this.shift)),
- (this.r2 = this.imod(this.r.sqr())),
- (this.rinv = this.r._invmp(this.m)),
- (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)),
- (this.minv = this.minv.umod(this.r)),
- (this.minv = this.r.sub(this.minv));
- }
- inherits(Mont, Red),
- (Mont.prototype.convertTo = function (num) {
- return this.imod(num.ushln(this.shift));
- }),
- (Mont.prototype.convertFrom = function (num) {
- var r = this.imod(num.mul(this.rinv));
- return (r.red = null), r;
- }),
- (Mont.prototype.imul = function (a, b) {
- if (a.isZero() || b.isZero()) return (a.words[0] = 0), (a.length = 1), a;
- var t = a.imul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.mul = function (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.invm = function (a) {
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- });
- })(typeof module > "u" || module, exports);
- },
-});
-
-// node_modules/minimalistic-crypto-utils/lib/utils.js
-var require_utils2 = __commonJS({
- "node_modules/minimalistic-crypto-utils/lib/utils.js"(exports) {
- "use strict";
- var utils = exports;
- function toArray(msg, enc) {
- if (Array.isArray(msg)) return msg.slice();
- if (!msg) return [];
- var res = [];
- if (typeof msg != "string") {
- for (var i = 0; i < msg.length; i++) res[i] = msg[i] | 0;
- return res;
- }
- if (enc === "hex") {
- (msg = msg.replace(/[^a-z0-9]+/gi, "")), msg.length % 2 !== 0 && (msg = "0" + msg);
- for (var i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16));
- } else
- for (var i = 0; i < msg.length; i++) {
- var c = msg.charCodeAt(i),
- hi = c >> 8,
- lo = c & 255;
- hi ? res.push(hi, lo) : res.push(lo);
- }
- return res;
- }
- utils.toArray = toArray;
- function zero2(word) {
- return word.length === 1 ? "0" + word : word;
- }
- utils.zero2 = zero2;
- function toHex(msg) {
- for (var res = "", i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16));
- return res;
- }
- utils.toHex = toHex;
- utils.encode = function (arr, enc) {
- return enc === "hex" ? toHex(arr) : arr;
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/utils.js
-var require_utils3 = __commonJS({
- "node_modules/elliptic/lib/elliptic/utils.js"(exports) {
- "use strict";
- var utils = exports,
- BN = require_bn4(),
- minAssert = require_minimalistic_assert(),
- minUtils = require_utils2();
- utils.assert = minAssert;
- utils.toArray = minUtils.toArray;
- utils.zero2 = minUtils.zero2;
- utils.toHex = minUtils.toHex;
- utils.encode = minUtils.encode;
- function getNAF(num, w, bits) {
- var naf = new Array(Math.max(num.bitLength(), bits) + 1);
- naf.fill(0);
- for (var ws = 1 << (w + 1), k = num.clone(), i = 0; i < naf.length; i++) {
- var z,
- mod = k.andln(ws - 1);
- k.isOdd() ? (mod > (ws >> 1) - 1 ? (z = (ws >> 1) - mod) : (z = mod), k.isubn(z)) : (z = 0),
- (naf[i] = z),
- k.iushrn(1);
- }
- return naf;
- }
- utils.getNAF = getNAF;
- function getJSF(k1, k2) {
- var jsf = [[], []];
- (k1 = k1.clone()), (k2 = k2.clone());
- for (var d1 = 0, d2 = 0, m8; k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0; ) {
- var m14 = (k1.andln(3) + d1) & 3,
- m24 = (k2.andln(3) + d2) & 3;
- m14 === 3 && (m14 = -1), m24 === 3 && (m24 = -1);
- var u1;
- (m14 & 1) === 0
- ? (u1 = 0)
- : ((m8 = (k1.andln(7) + d1) & 7), (m8 === 3 || m8 === 5) && m24 === 2 ? (u1 = -m14) : (u1 = m14)),
- jsf[0].push(u1);
- var u2;
- (m24 & 1) === 0
- ? (u2 = 0)
- : ((m8 = (k2.andln(7) + d2) & 7), (m8 === 3 || m8 === 5) && m14 === 2 ? (u2 = -m24) : (u2 = m24)),
- jsf[1].push(u2),
- 2 * d1 === u1 + 1 && (d1 = 1 - d1),
- 2 * d2 === u2 + 1 && (d2 = 1 - d2),
- k1.iushrn(1),
- k2.iushrn(1);
- }
- return jsf;
- }
- utils.getJSF = getJSF;
- function cachedProperty(obj, name, computer) {
- var key = "_" + name;
- obj.prototype[name] = function () {
- return this[key] !== void 0 ? this[key] : (this[key] = computer.call(this));
- };
- }
- utils.cachedProperty = cachedProperty;
- function parseBytes(bytes) {
- return typeof bytes == "string" ? utils.toArray(bytes, "hex") : bytes;
- }
- utils.parseBytes = parseBytes;
- function intFromLE(bytes) {
- return new BN(bytes, "hex", "le");
- }
- utils.intFromLE = intFromLE;
- },
-});
-
-// node_modules/elliptic/lib/elliptic/curve/base.js
-var require_base = __commonJS({
- "node_modules/elliptic/lib/elliptic/curve/base.js"(exports, module) {
- "use strict";
- var BN = require_bn4(),
- utils = require_utils3(),
- getNAF = utils.getNAF,
- getJSF = utils.getJSF,
- assert = utils.assert;
- function BaseCurve(type, conf) {
- (this.type = type),
- (this.p = new BN(conf.p, 16)),
- (this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p)),
- (this.zero = new BN(0).toRed(this.red)),
- (this.one = new BN(1).toRed(this.red)),
- (this.two = new BN(2).toRed(this.red)),
- (this.n = conf.n && new BN(conf.n, 16)),
- (this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed)),
- (this._wnafT1 = new Array(4)),
- (this._wnafT2 = new Array(4)),
- (this._wnafT3 = new Array(4)),
- (this._wnafT4 = new Array(4)),
- (this._bitLength = this.n ? this.n.bitLength() : 0);
- var adjustCount = this.n && this.p.div(this.n);
- !adjustCount || adjustCount.cmpn(100) > 0
- ? (this.redN = null)
- : ((this._maxwellTrick = !0), (this.redN = this.n.toRed(this.red)));
- }
- module.exports = BaseCurve;
- BaseCurve.prototype.point = function () {
- throw new Error("Not implemented");
- };
- BaseCurve.prototype.validate = function () {
- throw new Error("Not implemented");
- };
- BaseCurve.prototype._fixedNafMul = function (p, k) {
- assert(p.precomputed);
- var doubles = p._getDoubles(),
- naf = getNAF(k, 1, this._bitLength),
- I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);
- I /= 3;
- var repr = [],
- j,
- nafW;
- for (j = 0; j < naf.length; j += doubles.step) {
- nafW = 0;
- for (var l = j + doubles.step - 1; l >= j; l--) nafW = (nafW << 1) + naf[l];
- repr.push(nafW);
- }
- for (var a = this.jpoint(null, null, null), b = this.jpoint(null, null, null), i = I; i > 0; i--) {
- for (j = 0; j < repr.length; j++)
- (nafW = repr[j]),
- nafW === i ? (b = b.mixedAdd(doubles.points[j])) : nafW === -i && (b = b.mixedAdd(doubles.points[j].neg()));
- a = a.add(b);
- }
- return a.toP();
- };
- BaseCurve.prototype._wnafMul = function (p, k) {
- var w = 4,
- nafPoints = p._getNAFPoints(w);
- w = nafPoints.wnd;
- for (
- var wnd = nafPoints.points,
- naf = getNAF(k, w, this._bitLength),
- acc = this.jpoint(null, null, null),
- i = naf.length - 1;
- i >= 0;
- i--
- ) {
- for (var l = 0; i >= 0 && naf[i] === 0; i--) l++;
- if ((i >= 0 && l++, (acc = acc.dblp(l)), i < 0)) break;
- var z = naf[i];
- assert(z !== 0),
- p.type === "affine"
- ? z > 0
- ? (acc = acc.mixedAdd(wnd[(z - 1) >> 1]))
- : (acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg()))
- : z > 0
- ? (acc = acc.add(wnd[(z - 1) >> 1]))
- : (acc = acc.add(wnd[(-z - 1) >> 1].neg()));
- }
- return p.type === "affine" ? acc.toP() : acc;
- };
- BaseCurve.prototype._wnafMulAdd = function (defW, points, coeffs, len, jacobianResult) {
- var wndWidth = this._wnafT1,
- wnd = this._wnafT2,
- naf = this._wnafT3,
- max = 0,
- i,
- j,
- p;
- for (i = 0; i < len; i++) {
- p = points[i];
- var nafPoints = p._getNAFPoints(defW);
- (wndWidth[i] = nafPoints.wnd), (wnd[i] = nafPoints.points);
- }
- for (i = len - 1; i >= 1; i -= 2) {
- var a = i - 1,
- b = i;
- if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {
- (naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength)),
- (naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength)),
- (max = Math.max(naf[a].length, max)),
- (max = Math.max(naf[b].length, max));
- continue;
- }
- var comb = [points[a], null, null, points[b]];
- points[a].y.cmp(points[b].y) === 0
- ? ((comb[1] = points[a].add(points[b])), (comb[2] = points[a].toJ().mixedAdd(points[b].neg())))
- : points[a].y.cmp(points[b].y.redNeg()) === 0
- ? ((comb[1] = points[a].toJ().mixedAdd(points[b])), (comb[2] = points[a].add(points[b].neg())))
- : ((comb[1] = points[a].toJ().mixedAdd(points[b])), (comb[2] = points[a].toJ().mixedAdd(points[b].neg())));
- var index = [-3, -1, -5, -7, 0, 7, 5, 1, 3],
- jsf = getJSF(coeffs[a], coeffs[b]);
- for (
- max = Math.max(jsf[0].length, max), naf[a] = new Array(max), naf[b] = new Array(max), j = 0;
- j < max;
- j++
- ) {
- var ja = jsf[0][j] | 0,
- jb = jsf[1][j] | 0;
- (naf[a][j] = index[(ja + 1) * 3 + (jb + 1)]), (naf[b][j] = 0), (wnd[a] = comb);
- }
- }
- var acc = this.jpoint(null, null, null),
- tmp = this._wnafT4;
- for (i = max; i >= 0; i--) {
- for (var k = 0; i >= 0; ) {
- var zero = !0;
- for (j = 0; j < len; j++) (tmp[j] = naf[j][i] | 0), tmp[j] !== 0 && (zero = !1);
- if (!zero) break;
- k++, i--;
- }
- if ((i >= 0 && k++, (acc = acc.dblp(k)), i < 0)) break;
- for (j = 0; j < len; j++) {
- var z = tmp[j];
- z !== 0 &&
- (z > 0 ? (p = wnd[j][(z - 1) >> 1]) : z < 0 && (p = wnd[j][(-z - 1) >> 1].neg()),
- p.type === "affine" ? (acc = acc.mixedAdd(p)) : (acc = acc.add(p)));
- }
- }
- for (i = 0; i < len; i++) wnd[i] = null;
- return jacobianResult ? acc : acc.toP();
- };
- function BasePoint(curve, type) {
- (this.curve = curve), (this.type = type), (this.precomputed = null);
- }
- BaseCurve.BasePoint = BasePoint;
- BasePoint.prototype.eq = function () {
- throw new Error("Not implemented");
- };
- BasePoint.prototype.validate = function () {
- return this.curve.validate(this);
- };
- BaseCurve.prototype.decodePoint = function (bytes, enc) {
- bytes = utils.toArray(bytes, enc);
- var len = this.p.byteLength();
- if ((bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && bytes.length - 1 === 2 * len) {
- bytes[0] === 6
- ? assert(bytes[bytes.length - 1] % 2 === 0)
- : bytes[0] === 7 && assert(bytes[bytes.length - 1] % 2 === 1);
- var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len));
- return res;
- } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len)
- return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3);
- throw new Error("Unknown point format");
- };
- BasePoint.prototype.encodeCompressed = function (enc) {
- return this.encode(enc, !0);
- };
- BasePoint.prototype._encode = function (compact) {
- var len = this.curve.p.byteLength(),
- x = this.getX().toArray("be", len);
- return compact ? [this.getY().isEven() ? 2 : 3].concat(x) : [4].concat(x, this.getY().toArray("be", len));
- };
- BasePoint.prototype.encode = function (enc, compact) {
- return utils.encode(this._encode(compact), enc);
- };
- BasePoint.prototype.precompute = function (power) {
- if (this.precomputed) return this;
- var precomputed = {
- doubles: null,
- naf: null,
- beta: null,
- };
- return (
- (precomputed.naf = this._getNAFPoints(8)),
- (precomputed.doubles = this._getDoubles(4, power)),
- (precomputed.beta = this._getBeta()),
- (this.precomputed = precomputed),
- this
- );
- };
- BasePoint.prototype._hasDoubles = function (k) {
- if (!this.precomputed) return !1;
- var doubles = this.precomputed.doubles;
- return doubles ? doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step) : !1;
- };
- BasePoint.prototype._getDoubles = function (step, power) {
- if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles;
- for (var doubles = [this], acc = this, i = 0; i < power; i += step) {
- for (var j = 0; j < step; j++) acc = acc.dbl();
- doubles.push(acc);
- }
- return {
- step,
- points: doubles,
- };
- };
- BasePoint.prototype._getNAFPoints = function (wnd) {
- if (this.precomputed && this.precomputed.naf) return this.precomputed.naf;
- for (var res = [this], max = (1 << wnd) - 1, dbl = max === 1 ? null : this.dbl(), i = 1; i < max; i++)
- res[i] = res[i - 1].add(dbl);
- return {
- wnd,
- points: res,
- };
- };
- BasePoint.prototype._getBeta = function () {
- return null;
- };
- BasePoint.prototype.dblp = function (k) {
- for (var r = this, i = 0; i < k; i++) r = r.dbl();
- return r;
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/curve/short.js
-var require_short = __commonJS({
- "node_modules/elliptic/lib/elliptic/curve/short.js"(exports, module) {
- "use strict";
- var utils = require_utils3(),
- BN = require_bn4(),
- inherits = require_inherits_browser(),
- Base = require_base(),
- assert = utils.assert;
- function ShortCurve(conf) {
- Base.call(this, "short", conf),
- (this.a = new BN(conf.a, 16).toRed(this.red)),
- (this.b = new BN(conf.b, 16).toRed(this.red)),
- (this.tinv = this.two.redInvm()),
- (this.zeroA = this.a.fromRed().cmpn(0) === 0),
- (this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0),
- (this.endo = this._getEndomorphism(conf)),
- (this._endoWnafT1 = new Array(4)),
- (this._endoWnafT2 = new Array(4));
- }
- inherits(ShortCurve, Base);
- module.exports = ShortCurve;
- ShortCurve.prototype._getEndomorphism = function (conf) {
- if (!(!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)) {
- var beta, lambda;
- if (conf.beta) beta = new BN(conf.beta, 16).toRed(this.red);
- else {
- var betas = this._getEndoRoots(this.p);
- (beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]), (beta = beta.toRed(this.red));
- }
- if (conf.lambda) lambda = new BN(conf.lambda, 16);
- else {
- var lambdas = this._getEndoRoots(this.n);
- this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0
- ? (lambda = lambdas[0])
- : ((lambda = lambdas[1]), assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0));
- }
- var basis;
- return (
- conf.basis
- ? (basis = conf.basis.map(function (vec) {
- return {
- a: new BN(vec.a, 16),
- b: new BN(vec.b, 16),
- };
- }))
- : (basis = this._getEndoBasis(lambda)),
- {
- beta,
- lambda,
- basis,
- }
- );
- }
- };
- ShortCurve.prototype._getEndoRoots = function (num) {
- var red = num === this.p ? this.red : BN.mont(num),
- tinv = new BN(2).toRed(red).redInvm(),
- ntinv = tinv.redNeg(),
- s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv),
- l1 = ntinv.redAdd(s).fromRed(),
- l2 = ntinv.redSub(s).fromRed();
- return [l1, l2];
- };
- ShortCurve.prototype._getEndoBasis = function (lambda) {
- for (
- var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)),
- u = lambda,
- v = this.n.clone(),
- x1 = new BN(1),
- y1 = new BN(0),
- x2 = new BN(0),
- y2 = new BN(1),
- a0,
- b0,
- a1,
- b1,
- a2,
- b2,
- prevR,
- i = 0,
- r,
- x;
- u.cmpn(0) !== 0;
-
- ) {
- var q = v.div(u);
- (r = v.sub(q.mul(u))), (x = x2.sub(q.mul(x1)));
- var y = y2.sub(q.mul(y1));
- if (!a1 && r.cmp(aprxSqrt) < 0) (a0 = prevR.neg()), (b0 = x1), (a1 = r.neg()), (b1 = x);
- else if (a1 && ++i === 2) break;
- (prevR = r), (v = u), (u = r), (x2 = x1), (x1 = x), (y2 = y1), (y1 = y);
- }
- (a2 = r.neg()), (b2 = x);
- var len1 = a1.sqr().add(b1.sqr()),
- len2 = a2.sqr().add(b2.sqr());
- return (
- len2.cmp(len1) >= 0 && ((a2 = a0), (b2 = b0)),
- a1.negative && ((a1 = a1.neg()), (b1 = b1.neg())),
- a2.negative && ((a2 = a2.neg()), (b2 = b2.neg())),
- [
- { a: a1, b: b1 },
- { a: a2, b: b2 },
- ]
- );
- };
- ShortCurve.prototype._endoSplit = function (k) {
- var basis = this.endo.basis,
- v1 = basis[0],
- v2 = basis[1],
- c1 = v2.b.mul(k).divRound(this.n),
- c2 = v1.b.neg().mul(k).divRound(this.n),
- p1 = c1.mul(v1.a),
- p2 = c2.mul(v2.a),
- q1 = c1.mul(v1.b),
- q2 = c2.mul(v2.b),
- k1 = k.sub(p1).sub(p2),
- k2 = q1.add(q2).neg();
- return { k1, k2 };
- };
- ShortCurve.prototype.pointFromX = function (x, odd) {
- (x = new BN(x, 16)), x.red || (x = x.toRed(this.red));
- var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b),
- y = y2.redSqrt();
- if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error("invalid point");
- var isOdd = y.fromRed().isOdd();
- return ((odd && !isOdd) || (!odd && isOdd)) && (y = y.redNeg()), this.point(x, y);
- };
- ShortCurve.prototype.validate = function (point) {
- if (point.inf) return !0;
- var x = point.x,
- y = point.y,
- ax = this.a.redMul(x),
- rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
- return y.redSqr().redISub(rhs).cmpn(0) === 0;
- };
- ShortCurve.prototype._endoWnafMulAdd = function (points, coeffs, jacobianResult) {
- for (var npoints = this._endoWnafT1, ncoeffs = this._endoWnafT2, i = 0; i < points.length; i++) {
- var split = this._endoSplit(coeffs[i]),
- p = points[i],
- beta = p._getBeta();
- split.k1.negative && (split.k1.ineg(), (p = p.neg(!0))),
- split.k2.negative && (split.k2.ineg(), (beta = beta.neg(!0))),
- (npoints[i * 2] = p),
- (npoints[i * 2 + 1] = beta),
- (ncoeffs[i * 2] = split.k1),
- (ncoeffs[i * 2 + 1] = split.k2);
- }
- for (var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult), j = 0; j < i * 2; j++)
- (npoints[j] = null), (ncoeffs[j] = null);
- return res;
- };
- function Point(curve, x, y, isRed) {
- Base.BasePoint.call(this, curve, "affine"),
- x === null && y === null
- ? ((this.x = null), (this.y = null), (this.inf = !0))
- : ((this.x = new BN(x, 16)),
- (this.y = new BN(y, 16)),
- isRed && (this.x.forceRed(this.curve.red), this.y.forceRed(this.curve.red)),
- this.x.red || (this.x = this.x.toRed(this.curve.red)),
- this.y.red || (this.y = this.y.toRed(this.curve.red)),
- (this.inf = !1));
- }
- inherits(Point, Base.BasePoint);
- ShortCurve.prototype.point = function (x, y, isRed) {
- return new Point(this, x, y, isRed);
- };
- ShortCurve.prototype.pointFromJSON = function (obj, red) {
- return Point.fromJSON(this, obj, red);
- };
- Point.prototype._getBeta = function () {
- if (!!this.curve.endo) {
- var pre = this.precomputed;
- if (pre && pre.beta) return pre.beta;
- var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
- if (pre) {
- var curve = this.curve,
- endoMul = function (p) {
- return curve.point(p.x.redMul(curve.endo.beta), p.y);
- };
- (pre.beta = beta),
- (beta.precomputed = {
- beta: null,
- naf: pre.naf && {
- wnd: pre.naf.wnd,
- points: pre.naf.points.map(endoMul),
- },
- doubles: pre.doubles && {
- step: pre.doubles.step,
- points: pre.doubles.points.map(endoMul),
- },
- });
- }
- return beta;
- }
- };
- Point.prototype.toJSON = function () {
- return this.precomputed
- ? [
- this.x,
- this.y,
- this.precomputed && {
- doubles: this.precomputed.doubles && {
- step: this.precomputed.doubles.step,
- points: this.precomputed.doubles.points.slice(1),
- },
- naf: this.precomputed.naf && {
- wnd: this.precomputed.naf.wnd,
- points: this.precomputed.naf.points.slice(1),
- },
- },
- ]
- : [this.x, this.y];
- };
- Point.fromJSON = function (curve, obj, red) {
- typeof obj == "string" && (obj = JSON.parse(obj));
- var res = curve.point(obj[0], obj[1], red);
- if (!obj[2]) return res;
- function obj2point(obj2) {
- return curve.point(obj2[0], obj2[1], red);
- }
- var pre = obj[2];
- return (
- (res.precomputed = {
- beta: null,
- doubles: pre.doubles && {
- step: pre.doubles.step,
- points: [res].concat(pre.doubles.points.map(obj2point)),
- },
- naf: pre.naf && {
- wnd: pre.naf.wnd,
- points: [res].concat(pre.naf.points.map(obj2point)),
- },
- }),
- res
- );
- };
- Point.prototype.inspect = function () {
- return this.isInfinity()
- ? "<EC Point Infinity>"
- : "<EC Point x: " + this.x.fromRed().toString(16, 2) + " y: " + this.y.fromRed().toString(16, 2) + ">";
- };
- Point.prototype.isInfinity = function () {
- return this.inf;
- };
- Point.prototype.add = function (p) {
- if (this.inf) return p;
- if (p.inf) return this;
- if (this.eq(p)) return this.dbl();
- if (this.neg().eq(p)) return this.curve.point(null, null);
- if (this.x.cmp(p.x) === 0) return this.curve.point(null, null);
- var c = this.y.redSub(p.y);
- c.cmpn(0) !== 0 && (c = c.redMul(this.x.redSub(p.x).redInvm()));
- var nx = c.redSqr().redISub(this.x).redISub(p.x),
- ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
- return this.curve.point(nx, ny);
- };
- Point.prototype.dbl = function () {
- if (this.inf) return this;
- var ys1 = this.y.redAdd(this.y);
- if (ys1.cmpn(0) === 0) return this.curve.point(null, null);
- var a = this.curve.a,
- x2 = this.x.redSqr(),
- dyinv = ys1.redInvm(),
- c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv),
- nx = c.redSqr().redISub(this.x.redAdd(this.x)),
- ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
- return this.curve.point(nx, ny);
- };
- Point.prototype.getX = function () {
- return this.x.fromRed();
- };
- Point.prototype.getY = function () {
- return this.y.fromRed();
- };
- Point.prototype.mul = function (k) {
- return (
- (k = new BN(k, 16)),
- this.isInfinity()
- ? this
- : this._hasDoubles(k)
- ? this.curve._fixedNafMul(this, k)
- : this.curve.endo
- ? this.curve._endoWnafMulAdd([this], [k])
- : this.curve._wnafMul(this, k)
- );
- };
- Point.prototype.mulAdd = function (k1, p2, k2) {
- var points = [this, p2],
- coeffs = [k1, k2];
- return this.curve.endo
- ? this.curve._endoWnafMulAdd(points, coeffs)
- : this.curve._wnafMulAdd(1, points, coeffs, 2);
- };
- Point.prototype.jmulAdd = function (k1, p2, k2) {
- var points = [this, p2],
- coeffs = [k1, k2];
- return this.curve.endo
- ? this.curve._endoWnafMulAdd(points, coeffs, !0)
- : this.curve._wnafMulAdd(1, points, coeffs, 2, !0);
- };
- Point.prototype.eq = function (p) {
- return this === p || (this.inf === p.inf && (this.inf || (this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0)));
- };
- Point.prototype.neg = function (_precompute) {
- if (this.inf) return this;
- var res = this.curve.point(this.x, this.y.redNeg());
- if (_precompute && this.precomputed) {
- var pre = this.precomputed,
- negate = function (p) {
- return p.neg();
- };
- res.precomputed = {
- naf: pre.naf && {
- wnd: pre.naf.wnd,
- points: pre.naf.points.map(negate),
- },
- doubles: pre.doubles && {
- step: pre.doubles.step,
- points: pre.doubles.points.map(negate),
- },
- };
- }
- return res;
- };
- Point.prototype.toJ = function () {
- if (this.inf) return this.curve.jpoint(null, null, null);
- var res = this.curve.jpoint(this.x, this.y, this.curve.one);
- return res;
- };
- function JPoint(curve, x, y, z) {
- Base.BasePoint.call(this, curve, "jacobian"),
- x === null && y === null && z === null
- ? ((this.x = this.curve.one), (this.y = this.curve.one), (this.z = new BN(0)))
- : ((this.x = new BN(x, 16)), (this.y = new BN(y, 16)), (this.z = new BN(z, 16))),
- this.x.red || (this.x = this.x.toRed(this.curve.red)),
- this.y.red || (this.y = this.y.toRed(this.curve.red)),
- this.z.red || (this.z = this.z.toRed(this.curve.red)),
- (this.zOne = this.z === this.curve.one);
- }
- inherits(JPoint, Base.BasePoint);
- ShortCurve.prototype.jpoint = function (x, y, z) {
- return new JPoint(this, x, y, z);
- };
- JPoint.prototype.toP = function () {
- if (this.isInfinity()) return this.curve.point(null, null);
- var zinv = this.z.redInvm(),
- zinv2 = zinv.redSqr(),
- ax = this.x.redMul(zinv2),
- ay = this.y.redMul(zinv2).redMul(zinv);
- return this.curve.point(ax, ay);
- };
- JPoint.prototype.neg = function () {
- return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
- };
- JPoint.prototype.add = function (p) {
- if (this.isInfinity()) return p;
- if (p.isInfinity()) return this;
- var pz2 = p.z.redSqr(),
- z2 = this.z.redSqr(),
- u1 = this.x.redMul(pz2),
- u2 = p.x.redMul(z2),
- s1 = this.y.redMul(pz2.redMul(p.z)),
- s2 = p.y.redMul(z2.redMul(this.z)),
- h = u1.redSub(u2),
- r = s1.redSub(s2);
- if (h.cmpn(0) === 0) return r.cmpn(0) !== 0 ? this.curve.jpoint(null, null, null) : this.dbl();
- var h2 = h.redSqr(),
- h3 = h2.redMul(h),
- v = u1.redMul(h2),
- nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v),
- ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),
- nz = this.z.redMul(p.z).redMul(h);
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype.mixedAdd = function (p) {
- if (this.isInfinity()) return p.toJ();
- if (p.isInfinity()) return this;
- var z2 = this.z.redSqr(),
- u1 = this.x,
- u2 = p.x.redMul(z2),
- s1 = this.y,
- s2 = p.y.redMul(z2).redMul(this.z),
- h = u1.redSub(u2),
- r = s1.redSub(s2);
- if (h.cmpn(0) === 0) return r.cmpn(0) !== 0 ? this.curve.jpoint(null, null, null) : this.dbl();
- var h2 = h.redSqr(),
- h3 = h2.redMul(h),
- v = u1.redMul(h2),
- nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v),
- ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),
- nz = this.z.redMul(h);
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype.dblp = function (pow) {
- if (pow === 0) return this;
- if (this.isInfinity()) return this;
- if (!pow) return this.dbl();
- var i;
- if (this.curve.zeroA || this.curve.threeA) {
- var r = this;
- for (i = 0; i < pow; i++) r = r.dbl();
- return r;
- }
- var a = this.curve.a,
- tinv = this.curve.tinv,
- jx = this.x,
- jy = this.y,
- jz = this.z,
- jz4 = jz.redSqr().redSqr(),
- jyd = jy.redAdd(jy);
- for (i = 0; i < pow; i++) {
- var jx2 = jx.redSqr(),
- jyd2 = jyd.redSqr(),
- jyd4 = jyd2.redSqr(),
- c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)),
- t1 = jx.redMul(jyd2),
- nx = c.redSqr().redISub(t1.redAdd(t1)),
- t2 = t1.redISub(nx),
- dny = c.redMul(t2);
- dny = dny.redIAdd(dny).redISub(jyd4);
- var nz = jyd.redMul(jz);
- i + 1 < pow && (jz4 = jz4.redMul(jyd4)), (jx = nx), (jz = nz), (jyd = dny);
- }
- return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
- };
- JPoint.prototype.dbl = function () {
- return this.isInfinity()
- ? this
- : this.curve.zeroA
- ? this._zeroDbl()
- : this.curve.threeA
- ? this._threeDbl()
- : this._dbl();
- };
- JPoint.prototype._zeroDbl = function () {
- var nx, ny, nz;
- if (this.zOne) {
- var xx = this.x.redSqr(),
- yy = this.y.redSqr(),
- yyyy = yy.redSqr(),
- s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- s = s.redIAdd(s);
- var m = xx.redAdd(xx).redIAdd(xx),
- t = m.redSqr().redISub(s).redISub(s),
- yyyy8 = yyyy.redIAdd(yyyy);
- (yyyy8 = yyyy8.redIAdd(yyyy8)),
- (yyyy8 = yyyy8.redIAdd(yyyy8)),
- (nx = t),
- (ny = m.redMul(s.redISub(t)).redISub(yyyy8)),
- (nz = this.y.redAdd(this.y));
- } else {
- var a = this.x.redSqr(),
- b = this.y.redSqr(),
- c = b.redSqr(),
- d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
- d = d.redIAdd(d);
- var e = a.redAdd(a).redIAdd(a),
- f = e.redSqr(),
- c8 = c.redIAdd(c);
- (c8 = c8.redIAdd(c8)),
- (c8 = c8.redIAdd(c8)),
- (nx = f.redISub(d).redISub(d)),
- (ny = e.redMul(d.redISub(nx)).redISub(c8)),
- (nz = this.y.redMul(this.z)),
- (nz = nz.redIAdd(nz));
- }
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype._threeDbl = function () {
- var nx, ny, nz;
- if (this.zOne) {
- var xx = this.x.redSqr(),
- yy = this.y.redSqr(),
- yyyy = yy.redSqr(),
- s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- s = s.redIAdd(s);
- var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a),
- t = m.redSqr().redISub(s).redISub(s);
- nx = t;
- var yyyy8 = yyyy.redIAdd(yyyy);
- (yyyy8 = yyyy8.redIAdd(yyyy8)),
- (yyyy8 = yyyy8.redIAdd(yyyy8)),
- (ny = m.redMul(s.redISub(t)).redISub(yyyy8)),
- (nz = this.y.redAdd(this.y));
- } else {
- var delta = this.z.redSqr(),
- gamma = this.y.redSqr(),
- beta = this.x.redMul(gamma),
- alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
- alpha = alpha.redAdd(alpha).redIAdd(alpha);
- var beta4 = beta.redIAdd(beta);
- beta4 = beta4.redIAdd(beta4);
- var beta8 = beta4.redAdd(beta4);
- (nx = alpha.redSqr().redISub(beta8)), (nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta));
- var ggamma8 = gamma.redSqr();
- (ggamma8 = ggamma8.redIAdd(ggamma8)),
- (ggamma8 = ggamma8.redIAdd(ggamma8)),
- (ggamma8 = ggamma8.redIAdd(ggamma8)),
- (ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8));
- }
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype._dbl = function () {
- var a = this.curve.a,
- jx = this.x,
- jy = this.y,
- jz = this.z,
- jz4 = jz.redSqr().redSqr(),
- jx2 = jx.redSqr(),
- jy2 = jy.redSqr(),
- c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)),
- jxd4 = jx.redAdd(jx);
- jxd4 = jxd4.redIAdd(jxd4);
- var t1 = jxd4.redMul(jy2),
- nx = c.redSqr().redISub(t1.redAdd(t1)),
- t2 = t1.redISub(nx),
- jyd8 = jy2.redSqr();
- (jyd8 = jyd8.redIAdd(jyd8)), (jyd8 = jyd8.redIAdd(jyd8)), (jyd8 = jyd8.redIAdd(jyd8));
- var ny = c.redMul(t2).redISub(jyd8),
- nz = jy.redAdd(jy).redMul(jz);
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype.trpl = function () {
- if (!this.curve.zeroA) return this.dbl().add(this);
- var xx = this.x.redSqr(),
- yy = this.y.redSqr(),
- zz = this.z.redSqr(),
- yyyy = yy.redSqr(),
- m = xx.redAdd(xx).redIAdd(xx),
- mm = m.redSqr(),
- e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- (e = e.redIAdd(e)), (e = e.redAdd(e).redIAdd(e)), (e = e.redISub(mm));
- var ee = e.redSqr(),
- t = yyyy.redIAdd(yyyy);
- (t = t.redIAdd(t)), (t = t.redIAdd(t)), (t = t.redIAdd(t));
- var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t),
- yyu4 = yy.redMul(u);
- (yyu4 = yyu4.redIAdd(yyu4)), (yyu4 = yyu4.redIAdd(yyu4));
- var nx = this.x.redMul(ee).redISub(yyu4);
- (nx = nx.redIAdd(nx)), (nx = nx.redIAdd(nx));
- var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
- (ny = ny.redIAdd(ny)), (ny = ny.redIAdd(ny)), (ny = ny.redIAdd(ny));
- var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
- return this.curve.jpoint(nx, ny, nz);
- };
- JPoint.prototype.mul = function (k, kbase) {
- return (k = new BN(k, kbase)), this.curve._wnafMul(this, k);
- };
- JPoint.prototype.eq = function (p) {
- if (p.type === "affine") return this.eq(p.toJ());
- if (this === p) return !0;
- var z2 = this.z.redSqr(),
- pz2 = p.z.redSqr();
- if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return !1;
- var z3 = z2.redMul(this.z),
- pz3 = pz2.redMul(p.z);
- return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;
- };
- JPoint.prototype.eqXToP = function (x) {
- var zs = this.z.redSqr(),
- rx = x.toRed(this.curve.red).redMul(zs);
- if (this.x.cmp(rx) === 0) return !0;
- for (var xc = x.clone(), t = this.curve.redN.redMul(zs); ; ) {
- if ((xc.iadd(this.curve.n), xc.cmp(this.curve.p) >= 0)) return !1;
- if ((rx.redIAdd(t), this.x.cmp(rx) === 0)) return !0;
- }
- };
- JPoint.prototype.inspect = function () {
- return this.isInfinity()
- ? "<EC JPoint Infinity>"
- : "<EC JPoint x: " +
- this.x.toString(16, 2) +
- " y: " +
- this.y.toString(16, 2) +
- " z: " +
- this.z.toString(16, 2) +
- ">";
- };
- JPoint.prototype.isInfinity = function () {
- return this.z.cmpn(0) === 0;
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/curve/mont.js
-var require_mont = __commonJS({
- "node_modules/elliptic/lib/elliptic/curve/mont.js"(exports, module) {
- "use strict";
- var BN = require_bn4(),
- inherits = require_inherits_browser(),
- Base = require_base(),
- utils = require_utils3();
- function MontCurve(conf) {
- Base.call(this, "mont", conf),
- (this.a = new BN(conf.a, 16).toRed(this.red)),
- (this.b = new BN(conf.b, 16).toRed(this.red)),
- (this.i4 = new BN(4).toRed(this.red).redInvm()),
- (this.two = new BN(2).toRed(this.red)),
- (this.a24 = this.i4.redMul(this.a.redAdd(this.two)));
- }
- inherits(MontCurve, Base);
- module.exports = MontCurve;
- MontCurve.prototype.validate = function (point) {
- var x = point.normalize().x,
- x2 = x.redSqr(),
- rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x),
- y = rhs.redSqrt();
- return y.redSqr().cmp(rhs) === 0;
- };
- function Point(curve, x, z) {
- Base.BasePoint.call(this, curve, "projective"),
- x === null && z === null
- ? ((this.x = this.curve.one), (this.z = this.curve.zero))
- : ((this.x = new BN(x, 16)),
- (this.z = new BN(z, 16)),
- this.x.red || (this.x = this.x.toRed(this.curve.red)),
- this.z.red || (this.z = this.z.toRed(this.curve.red)));
- }
- inherits(Point, Base.BasePoint);
- MontCurve.prototype.decodePoint = function (bytes, enc) {
- return this.point(utils.toArray(bytes, enc), 1);
- };
- MontCurve.prototype.point = function (x, z) {
- return new Point(this, x, z);
- };
- MontCurve.prototype.pointFromJSON = function (obj) {
- return Point.fromJSON(this, obj);
- };
- Point.prototype.precompute = function () {};
- Point.prototype._encode = function () {
- return this.getX().toArray("be", this.curve.p.byteLength());
- };
- Point.fromJSON = function (curve, obj) {
- return new Point(curve, obj[0], obj[1] || curve.one);
- };
- Point.prototype.inspect = function () {
- return this.isInfinity()
- ? "<EC Point Infinity>"
- : "<EC Point x: " + this.x.fromRed().toString(16, 2) + " z: " + this.z.fromRed().toString(16, 2) + ">";
- };
- Point.prototype.isInfinity = function () {
- return this.z.cmpn(0) === 0;
- };
- Point.prototype.dbl = function () {
- var a = this.x.redAdd(this.z),
- aa = a.redSqr(),
- b = this.x.redSub(this.z),
- bb = b.redSqr(),
- c = aa.redSub(bb),
- nx = aa.redMul(bb),
- nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
- return this.curve.point(nx, nz);
- };
- Point.prototype.add = function () {
- throw new Error("Not supported on Montgomery curve");
- };
- Point.prototype.diffAdd = function (p, diff) {
- var a = this.x.redAdd(this.z),
- b = this.x.redSub(this.z),
- c = p.x.redAdd(p.z),
- d = p.x.redSub(p.z),
- da = d.redMul(a),
- cb = c.redMul(b),
- nx = diff.z.redMul(da.redAdd(cb).redSqr()),
- nz = diff.x.redMul(da.redISub(cb).redSqr());
- return this.curve.point(nx, nz);
- };
- Point.prototype.mul = function (k) {
- for (
- var t = k.clone(), a = this, b = this.curve.point(null, null), c = this, bits = [];
- t.cmpn(0) !== 0;
- t.iushrn(1)
- )
- bits.push(t.andln(1));
- for (var i = bits.length - 1; i >= 0; i--)
- bits[i] === 0 ? ((a = a.diffAdd(b, c)), (b = b.dbl())) : ((b = a.diffAdd(b, c)), (a = a.dbl()));
- return b;
- };
- Point.prototype.mulAdd = function () {
- throw new Error("Not supported on Montgomery curve");
- };
- Point.prototype.jumlAdd = function () {
- throw new Error("Not supported on Montgomery curve");
- };
- Point.prototype.eq = function (other) {
- return this.getX().cmp(other.getX()) === 0;
- };
- Point.prototype.normalize = function () {
- return (this.x = this.x.redMul(this.z.redInvm())), (this.z = this.curve.one), this;
- };
- Point.prototype.getX = function () {
- return this.normalize(), this.x.fromRed();
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/curve/edwards.js
-var require_edwards = __commonJS({
- "node_modules/elliptic/lib/elliptic/curve/edwards.js"(exports, module) {
- "use strict";
- var utils = require_utils3(),
- BN = require_bn4(),
- inherits = require_inherits_browser(),
- Base = require_base(),
- assert = utils.assert;
- function EdwardsCurve(conf) {
- (this.twisted = (conf.a | 0) !== 1),
- (this.mOneA = this.twisted && (conf.a | 0) === -1),
- (this.extended = this.mOneA),
- Base.call(this, "edwards", conf),
- (this.a = new BN(conf.a, 16).umod(this.red.m)),
- (this.a = this.a.toRed(this.red)),
- (this.c = new BN(conf.c, 16).toRed(this.red)),
- (this.c2 = this.c.redSqr()),
- (this.d = new BN(conf.d, 16).toRed(this.red)),
- (this.dd = this.d.redAdd(this.d)),
- assert(!this.twisted || this.c.fromRed().cmpn(1) === 0),
- (this.oneC = (conf.c | 0) === 1);
- }
- inherits(EdwardsCurve, Base);
- module.exports = EdwardsCurve;
- EdwardsCurve.prototype._mulA = function (num) {
- return this.mOneA ? num.redNeg() : this.a.redMul(num);
- };
- EdwardsCurve.prototype._mulC = function (num) {
- return this.oneC ? num : this.c.redMul(num);
- };
- EdwardsCurve.prototype.jpoint = function (x, y, z, t) {
- return this.point(x, y, z, t);
- };
- EdwardsCurve.prototype.pointFromX = function (x, odd) {
- (x = new BN(x, 16)), x.red || (x = x.toRed(this.red));
- var x2 = x.redSqr(),
- rhs = this.c2.redSub(this.a.redMul(x2)),
- lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2)),
- y2 = rhs.redMul(lhs.redInvm()),
- y = y2.redSqrt();
- if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error("invalid point");
- var isOdd = y.fromRed().isOdd();
- return ((odd && !isOdd) || (!odd && isOdd)) && (y = y.redNeg()), this.point(x, y);
- };
- EdwardsCurve.prototype.pointFromY = function (y, odd) {
- (y = new BN(y, 16)), y.red || (y = y.toRed(this.red));
- var y2 = y.redSqr(),
- lhs = y2.redSub(this.c2),
- rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a),
- x2 = lhs.redMul(rhs.redInvm());
- if (x2.cmp(this.zero) === 0) {
- if (odd) throw new Error("invalid point");
- return this.point(this.zero, y);
- }
- var x = x2.redSqrt();
- if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error("invalid point");
- return x.fromRed().isOdd() !== odd && (x = x.redNeg()), this.point(x, y);
- };
- EdwardsCurve.prototype.validate = function (point) {
- if (point.isInfinity()) return !0;
- point.normalize();
- var x2 = point.x.redSqr(),
- y2 = point.y.redSqr(),
- lhs = x2.redMul(this.a).redAdd(y2),
- rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
- return lhs.cmp(rhs) === 0;
- };
- function Point(curve, x, y, z, t) {
- Base.BasePoint.call(this, curve, "projective"),
- x === null && y === null && z === null
- ? ((this.x = this.curve.zero),
- (this.y = this.curve.one),
- (this.z = this.curve.one),
- (this.t = this.curve.zero),
- (this.zOne = !0))
- : ((this.x = new BN(x, 16)),
- (this.y = new BN(y, 16)),
- (this.z = z ? new BN(z, 16) : this.curve.one),
- (this.t = t && new BN(t, 16)),
- this.x.red || (this.x = this.x.toRed(this.curve.red)),
- this.y.red || (this.y = this.y.toRed(this.curve.red)),
- this.z.red || (this.z = this.z.toRed(this.curve.red)),
- this.t && !this.t.red && (this.t = this.t.toRed(this.curve.red)),
- (this.zOne = this.z === this.curve.one),
- this.curve.extended &&
- !this.t &&
- ((this.t = this.x.redMul(this.y)), this.zOne || (this.t = this.t.redMul(this.z.redInvm()))));
- }
- inherits(Point, Base.BasePoint);
- EdwardsCurve.prototype.pointFromJSON = function (obj) {
- return Point.fromJSON(this, obj);
- };
- EdwardsCurve.prototype.point = function (x, y, z, t) {
- return new Point(this, x, y, z, t);
- };
- Point.fromJSON = function (curve, obj) {
- return new Point(curve, obj[0], obj[1], obj[2]);
- };
- Point.prototype.inspect = function () {
- return this.isInfinity()
- ? "<EC Point Infinity>"
- : "<EC Point x: " +
- this.x.fromRed().toString(16, 2) +
- " y: " +
- this.y.fromRed().toString(16, 2) +
- " z: " +
- this.z.fromRed().toString(16, 2) +
- ">";
- };
- Point.prototype.isInfinity = function () {
- return this.x.cmpn(0) === 0 && (this.y.cmp(this.z) === 0 || (this.zOne && this.y.cmp(this.curve.c) === 0));
- };
- Point.prototype._extDbl = function () {
- var a = this.x.redSqr(),
- b = this.y.redSqr(),
- c = this.z.redSqr();
- c = c.redIAdd(c);
- var d = this.curve._mulA(a),
- e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b),
- g = d.redAdd(b),
- f = g.redSub(c),
- h = d.redSub(b),
- nx = e.redMul(f),
- ny = g.redMul(h),
- nt = e.redMul(h),
- nz = f.redMul(g);
- return this.curve.point(nx, ny, nz, nt);
- };
- Point.prototype._projDbl = function () {
- var b = this.x.redAdd(this.y).redSqr(),
- c = this.x.redSqr(),
- d = this.y.redSqr(),
- nx,
- ny,
- nz,
- e,
- h,
- j;
- if (this.curve.twisted) {
- e = this.curve._mulA(c);
- var f = e.redAdd(d);
- this.zOne
- ? ((nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two))),
- (ny = f.redMul(e.redSub(d))),
- (nz = f.redSqr().redSub(f).redSub(f)))
- : ((h = this.z.redSqr()),
- (j = f.redSub(h).redISub(h)),
- (nx = b.redSub(c).redISub(d).redMul(j)),
- (ny = f.redMul(e.redSub(d))),
- (nz = f.redMul(j)));
- } else
- (e = c.redAdd(d)),
- (h = this.curve._mulC(this.z).redSqr()),
- (j = e.redSub(h).redSub(h)),
- (nx = this.curve._mulC(b.redISub(e)).redMul(j)),
- (ny = this.curve._mulC(e).redMul(c.redISub(d))),
- (nz = e.redMul(j));
- return this.curve.point(nx, ny, nz);
- };
- Point.prototype.dbl = function () {
- return this.isInfinity() ? this : this.curve.extended ? this._extDbl() : this._projDbl();
- };
- Point.prototype._extAdd = function (p) {
- var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)),
- b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),
- c = this.t.redMul(this.curve.dd).redMul(p.t),
- d = this.z.redMul(p.z.redAdd(p.z)),
- e = b.redSub(a),
- f = d.redSub(c),
- g = d.redAdd(c),
- h = b.redAdd(a),
- nx = e.redMul(f),
- ny = g.redMul(h),
- nt = e.redMul(h),
- nz = f.redMul(g);
- return this.curve.point(nx, ny, nz, nt);
- };
- Point.prototype._projAdd = function (p) {
- var a = this.z.redMul(p.z),
- b = a.redSqr(),
- c = this.x.redMul(p.x),
- d = this.y.redMul(p.y),
- e = this.curve.d.redMul(c).redMul(d),
- f = b.redSub(e),
- g = b.redAdd(e),
- tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d),
- nx = a.redMul(f).redMul(tmp),
- ny,
- nz;
- return (
- this.curve.twisted
- ? ((ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)))), (nz = f.redMul(g)))
- : ((ny = a.redMul(g).redMul(d.redSub(c))), (nz = this.curve._mulC(f).redMul(g))),
- this.curve.point(nx, ny, nz)
- );
- };
- Point.prototype.add = function (p) {
- return this.isInfinity() ? p : p.isInfinity() ? this : this.curve.extended ? this._extAdd(p) : this._projAdd(p);
- };
- Point.prototype.mul = function (k) {
- return this._hasDoubles(k) ? this.curve._fixedNafMul(this, k) : this.curve._wnafMul(this, k);
- };
- Point.prototype.mulAdd = function (k1, p, k2) {
- return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, !1);
- };
- Point.prototype.jmulAdd = function (k1, p, k2) {
- return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, !0);
- };
- Point.prototype.normalize = function () {
- if (this.zOne) return this;
- var zi = this.z.redInvm();
- return (
- (this.x = this.x.redMul(zi)),
- (this.y = this.y.redMul(zi)),
- this.t && (this.t = this.t.redMul(zi)),
- (this.z = this.curve.one),
- (this.zOne = !0),
- this
- );
- };
- Point.prototype.neg = function () {
- return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg());
- };
- Point.prototype.getX = function () {
- return this.normalize(), this.x.fromRed();
- };
- Point.prototype.getY = function () {
- return this.normalize(), this.y.fromRed();
- };
- Point.prototype.eq = function (other) {
- return this === other || (this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0);
- };
- Point.prototype.eqXToP = function (x) {
- var rx = x.toRed(this.curve.red).redMul(this.z);
- if (this.x.cmp(rx) === 0) return !0;
- for (var xc = x.clone(), t = this.curve.redN.redMul(this.z); ; ) {
- if ((xc.iadd(this.curve.n), xc.cmp(this.curve.p) >= 0)) return !1;
- if ((rx.redIAdd(t), this.x.cmp(rx) === 0)) return !0;
- }
- };
- Point.prototype.toP = Point.prototype.normalize;
- Point.prototype.mixedAdd = Point.prototype.add;
- },
-});
-
-// node_modules/elliptic/lib/elliptic/curve/index.js
-var require_curve = __commonJS({
- "node_modules/elliptic/lib/elliptic/curve/index.js"(exports) {
- "use strict";
- var curve = exports;
- curve.base = require_base();
- curve.short = require_short();
- curve.mont = require_mont();
- curve.edwards = require_edwards();
- },
-});
-
-// node_modules/hash.js/lib/hash/utils.js
-var require_utils4 = __commonJS({
- "node_modules/hash.js/lib/hash/utils.js"(exports) {
- "use strict";
- var assert = require_minimalistic_assert(),
- inherits = require_inherits_browser();
- exports.inherits = inherits;
- function isSurrogatePair(msg, i) {
- return (msg.charCodeAt(i) & 64512) !== 55296 || i < 0 || i + 1 >= msg.length
- ? !1
- : (msg.charCodeAt(i + 1) & 64512) === 56320;
- }
- function toArray(msg, enc) {
- if (Array.isArray(msg)) return msg.slice();
- if (!msg) return [];
- var res = [];
- if (typeof msg == "string")
- if (enc) {
- if (enc === "hex")
- for (
- msg = msg.replace(/[^a-z0-9]+/gi, ""), msg.length % 2 !== 0 && (msg = "0" + msg), i = 0;
- i < msg.length;
- i += 2
- )
- res.push(parseInt(msg[i] + msg[i + 1], 16));
- } else
- for (var p = 0, i = 0; i < msg.length; i++) {
- var c = msg.charCodeAt(i);
- c < 128
- ? (res[p++] = c)
- : c < 2048
- ? ((res[p++] = (c >> 6) | 192), (res[p++] = (c & 63) | 128))
- : isSurrogatePair(msg, i)
- ? ((c = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023)),
- (res[p++] = (c >> 18) | 240),
- (res[p++] = ((c >> 12) & 63) | 128),
- (res[p++] = ((c >> 6) & 63) | 128),
- (res[p++] = (c & 63) | 128))
- : ((res[p++] = (c >> 12) | 224), (res[p++] = ((c >> 6) & 63) | 128), (res[p++] = (c & 63) | 128));
- }
- else for (i = 0; i < msg.length; i++) res[i] = msg[i] | 0;
- return res;
- }
- exports.toArray = toArray;
- function toHex(msg) {
- for (var res = "", i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16));
- return res;
- }
- exports.toHex = toHex;
- function htonl(w) {
- var res = (w >>> 24) | ((w >>> 8) & 65280) | ((w << 8) & 16711680) | ((w & 255) << 24);
- return res >>> 0;
- }
- exports.htonl = htonl;
- function toHex32(msg, endian) {
- for (var res = "", i = 0; i < msg.length; i++) {
- var w = msg[i];
- endian === "little" && (w = htonl(w)), (res += zero8(w.toString(16)));
- }
- return res;
- }
- exports.toHex32 = toHex32;
- function zero2(word) {
- return word.length === 1 ? "0" + word : word;
- }
- exports.zero2 = zero2;
- function zero8(word) {
- return word.length === 7
- ? "0" + word
- : word.length === 6
- ? "00" + word
- : word.length === 5
- ? "000" + word
- : word.length === 4
- ? "0000" + word
- : word.length === 3
- ? "00000" + word
- : word.length === 2
- ? "000000" + word
- : word.length === 1
- ? "0000000" + word
- : word;
- }
- exports.zero8 = zero8;
- function join32(msg, start, end, endian) {
- var len = end - start;
- assert(len % 4 === 0);
- for (var res = new Array(len / 4), i = 0, k = start; i < res.length; i++, k += 4) {
- var w;
- endian === "big"
- ? (w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3])
- : (w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k]),
- (res[i] = w >>> 0);
- }
- return res;
- }
- exports.join32 = join32;
- function split32(msg, endian) {
- for (var res = new Array(msg.length * 4), i = 0, k = 0; i < msg.length; i++, k += 4) {
- var m = msg[i];
- endian === "big"
- ? ((res[k] = m >>> 24),
- (res[k + 1] = (m >>> 16) & 255),
- (res[k + 2] = (m >>> 8) & 255),
- (res[k + 3] = m & 255))
- : ((res[k + 3] = m >>> 24),
- (res[k + 2] = (m >>> 16) & 255),
- (res[k + 1] = (m >>> 8) & 255),
- (res[k] = m & 255));
- }
- return res;
- }
- exports.split32 = split32;
- function rotr32(w, b) {
- return (w >>> b) | (w << (32 - b));
- }
- exports.rotr32 = rotr32;
- function rotl32(w, b) {
- return (w << b) | (w >>> (32 - b));
- }
- exports.rotl32 = rotl32;
- function sum32(a, b) {
- return (a + b) >>> 0;
- }
- exports.sum32 = sum32;
- function sum32_3(a, b, c) {
- return (a + b + c) >>> 0;
- }
- exports.sum32_3 = sum32_3;
- function sum32_4(a, b, c, d) {
- return (a + b + c + d) >>> 0;
- }
- exports.sum32_4 = sum32_4;
- function sum32_5(a, b, c, d, e) {
- return (a + b + c + d + e) >>> 0;
- }
- exports.sum32_5 = sum32_5;
- function sum64(buf, pos, ah, al) {
- var bh = buf[pos],
- bl = buf[pos + 1],
- lo = (al + bl) >>> 0,
- hi = (lo < al ? 1 : 0) + ah + bh;
- (buf[pos] = hi >>> 0), (buf[pos + 1] = lo);
- }
- exports.sum64 = sum64;
- function sum64_hi(ah, al, bh, bl) {
- var lo = (al + bl) >>> 0,
- hi = (lo < al ? 1 : 0) + ah + bh;
- return hi >>> 0;
- }
- exports.sum64_hi = sum64_hi;
- function sum64_lo(ah, al, bh, bl) {
- var lo = al + bl;
- return lo >>> 0;
- }
- exports.sum64_lo = sum64_lo;
- function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
- var carry = 0,
- lo = al;
- (lo = (lo + bl) >>> 0),
- (carry += lo < al ? 1 : 0),
- (lo = (lo + cl) >>> 0),
- (carry += lo < cl ? 1 : 0),
- (lo = (lo + dl) >>> 0),
- (carry += lo < dl ? 1 : 0);
- var hi = ah + bh + ch + dh + carry;
- return hi >>> 0;
- }
- exports.sum64_4_hi = sum64_4_hi;
- function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
- var lo = al + bl + cl + dl;
- return lo >>> 0;
- }
- exports.sum64_4_lo = sum64_4_lo;
- function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
- var carry = 0,
- lo = al;
- (lo = (lo + bl) >>> 0),
- (carry += lo < al ? 1 : 0),
- (lo = (lo + cl) >>> 0),
- (carry += lo < cl ? 1 : 0),
- (lo = (lo + dl) >>> 0),
- (carry += lo < dl ? 1 : 0),
- (lo = (lo + el) >>> 0),
- (carry += lo < el ? 1 : 0);
- var hi = ah + bh + ch + dh + eh + carry;
- return hi >>> 0;
- }
- exports.sum64_5_hi = sum64_5_hi;
- function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
- var lo = al + bl + cl + dl + el;
- return lo >>> 0;
- }
- exports.sum64_5_lo = sum64_5_lo;
- function rotr64_hi(ah, al, num) {
- var r = (al << (32 - num)) | (ah >>> num);
- return r >>> 0;
- }
- exports.rotr64_hi = rotr64_hi;
- function rotr64_lo(ah, al, num) {
- var r = (ah << (32 - num)) | (al >>> num);
- return r >>> 0;
- }
- exports.rotr64_lo = rotr64_lo;
- function shr64_hi(ah, al, num) {
- return ah >>> num;
- }
- exports.shr64_hi = shr64_hi;
- function shr64_lo(ah, al, num) {
- var r = (ah << (32 - num)) | (al >>> num);
- return r >>> 0;
- }
- exports.shr64_lo = shr64_lo;
- },
-});
-
-// node_modules/hash.js/lib/hash/common.js
-var require_common = __commonJS({
- "node_modules/hash.js/lib/hash/common.js"(exports) {
- "use strict";
- var utils = require_utils4(),
- assert = require_minimalistic_assert();
- function BlockHash() {
- (this.pending = null),
- (this.pendingTotal = 0),
- (this.blockSize = this.constructor.blockSize),
- (this.outSize = this.constructor.outSize),
- (this.hmacStrength = this.constructor.hmacStrength),
- (this.padLength = this.constructor.padLength / 8),
- (this.endian = "big"),
- (this._delta8 = this.blockSize / 8),
- (this._delta32 = this.blockSize / 32);
- }
- exports.BlockHash = BlockHash;
- BlockHash.prototype.update = function (msg, enc) {
- if (
- ((msg = utils.toArray(msg, enc)),
- this.pending ? (this.pending = this.pending.concat(msg)) : (this.pending = msg),
- (this.pendingTotal += msg.length),
- this.pending.length >= this._delta8)
- ) {
- msg = this.pending;
- var r = msg.length % this._delta8;
- (this.pending = msg.slice(msg.length - r, msg.length)),
- this.pending.length === 0 && (this.pending = null),
- (msg = utils.join32(msg, 0, msg.length - r, this.endian));
- for (var i = 0; i < msg.length; i += this._delta32) this._update(msg, i, i + this._delta32);
- }
- return this;
- };
- BlockHash.prototype.digest = function (enc) {
- return this.update(this._pad()), assert(this.pending === null), this._digest(enc);
- };
- BlockHash.prototype._pad = function () {
- var len = this.pendingTotal,
- bytes = this._delta8,
- k = bytes - ((len + this.padLength) % bytes),
- res = new Array(k + this.padLength);
- res[0] = 128;
- for (var i = 1; i < k; i++) res[i] = 0;
- if (((len <<= 3), this.endian === "big")) {
- for (var t = 8; t < this.padLength; t++) res[i++] = 0;
- (res[i++] = 0),
- (res[i++] = 0),
- (res[i++] = 0),
- (res[i++] = 0),
- (res[i++] = (len >>> 24) & 255),
- (res[i++] = (len >>> 16) & 255),
- (res[i++] = (len >>> 8) & 255),
- (res[i++] = len & 255);
- } else
- for (
- res[i++] = len & 255,
- res[i++] = (len >>> 8) & 255,
- res[i++] = (len >>> 16) & 255,
- res[i++] = (len >>> 24) & 255,
- res[i++] = 0,
- res[i++] = 0,
- res[i++] = 0,
- res[i++] = 0,
- t = 8;
- t < this.padLength;
- t++
- )
- res[i++] = 0;
- return res;
- };
- },
-});
-
-// node_modules/hash.js/lib/hash/sha/common.js
-var require_common2 = __commonJS({
- "node_modules/hash.js/lib/hash/sha/common.js"(exports) {
- "use strict";
- var utils = require_utils4(),
- rotr32 = utils.rotr32;
- function ft_1(s, x, y, z) {
- if (s === 0) return ch32(x, y, z);
- if (s === 1 || s === 3) return p32(x, y, z);
- if (s === 2) return maj32(x, y, z);
- }
- exports.ft_1 = ft_1;
- function ch32(x, y, z) {
- return (x & y) ^ (~x & z);
- }
- exports.ch32 = ch32;
- function maj32(x, y, z) {
- return (x & y) ^ (x & z) ^ (y & z);
- }
- exports.maj32 = maj32;
- function p32(x, y, z) {
- return x ^ y ^ z;
- }
- exports.p32 = p32;
- function s0_256(x) {
- return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
- }
- exports.s0_256 = s0_256;
- function s1_256(x) {
- return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
- }
- exports.s1_256 = s1_256;
- function g0_256(x) {
- return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);
- }
- exports.g0_256 = g0_256;
- function g1_256(x) {
- return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);
- }
- exports.g1_256 = g1_256;
- },
-});
-
-// node_modules/hash.js/lib/hash/sha/1.js
-var require__ = __commonJS({
- "node_modules/hash.js/lib/hash/sha/1.js"(exports, module) {
- "use strict";
- var utils = require_utils4(),
- common = require_common(),
- shaCommon = require_common2(),
- rotl32 = utils.rotl32,
- sum32 = utils.sum32,
- sum32_5 = utils.sum32_5,
- ft_1 = shaCommon.ft_1,
- BlockHash = common.BlockHash,
- sha1_K = [1518500249, 1859775393, 2400959708, 3395469782];
- function SHA1() {
- if (!(this instanceof SHA1)) return new SHA1();
- BlockHash.call(this),
- (this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]),
- (this.W = new Array(80));
- }
- utils.inherits(SHA1, BlockHash);
- module.exports = SHA1;
- SHA1.blockSize = 512;
- SHA1.outSize = 160;
- SHA1.hmacStrength = 80;
- SHA1.padLength = 64;
- SHA1.prototype._update = function (msg, start) {
- for (var W = this.W, i = 0; i < 16; i++) W[i] = msg[start + i];
- for (; i < W.length; i++) W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);
- var a = this.h[0],
- b = this.h[1],
- c = this.h[2],
- d = this.h[3],
- e = this.h[4];
- for (i = 0; i < W.length; i++) {
- var s = ~~(i / 20),
- t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
- (e = d), (d = c), (c = rotl32(b, 30)), (b = a), (a = t);
- }
- (this.h[0] = sum32(this.h[0], a)),
- (this.h[1] = sum32(this.h[1], b)),
- (this.h[2] = sum32(this.h[2], c)),
- (this.h[3] = sum32(this.h[3], d)),
- (this.h[4] = sum32(this.h[4], e));
- };
- SHA1.prototype._digest = function (enc) {
- return enc === "hex" ? utils.toHex32(this.h, "big") : utils.split32(this.h, "big");
- };
- },
-});
-
-// node_modules/hash.js/lib/hash/sha/256.js
-var require__2 = __commonJS({
- "node_modules/hash.js/lib/hash/sha/256.js"(exports, module) {
- "use strict";
- var utils = require_utils4(),
- common = require_common(),
- shaCommon = require_common2(),
- assert = require_minimalistic_assert(),
- sum32 = utils.sum32,
- sum32_4 = utils.sum32_4,
- sum32_5 = utils.sum32_5,
- ch32 = shaCommon.ch32,
- maj32 = shaCommon.maj32,
- s0_256 = shaCommon.s0_256,
- s1_256 = shaCommon.s1_256,
- g0_256 = shaCommon.g0_256,
- g1_256 = shaCommon.g1_256,
- BlockHash = common.BlockHash,
- sha256_K = [
- 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080,
- 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774,
- 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808,
- 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291,
- 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817,
- 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218,
- 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479,
- 3329325298,
- ];
- function SHA256() {
- if (!(this instanceof SHA256)) return new SHA256();
- BlockHash.call(this),
- (this.h = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]),
- (this.k = sha256_K),
- (this.W = new Array(64));
- }
- utils.inherits(SHA256, BlockHash);
- module.exports = SHA256;
- SHA256.blockSize = 512;
- SHA256.outSize = 256;
- SHA256.hmacStrength = 192;
- SHA256.padLength = 64;
- SHA256.prototype._update = function (msg, start) {
- for (var W = this.W, i = 0; i < 16; i++) W[i] = msg[start + i];
- for (; i < W.length; i++) W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);
- var a = this.h[0],
- b = this.h[1],
- c = this.h[2],
- d = this.h[3],
- e = this.h[4],
- f = this.h[5],
- g = this.h[6],
- h = this.h[7];
- for (assert(this.k.length === W.length), i = 0; i < W.length; i++) {
- var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]),
- T2 = sum32(s0_256(a), maj32(a, b, c));
- (h = g), (g = f), (f = e), (e = sum32(d, T1)), (d = c), (c = b), (b = a), (a = sum32(T1, T2));
- }
- (this.h[0] = sum32(this.h[0], a)),
- (this.h[1] = sum32(this.h[1], b)),
- (this.h[2] = sum32(this.h[2], c)),
- (this.h[3] = sum32(this.h[3], d)),
- (this.h[4] = sum32(this.h[4], e)),
- (this.h[5] = sum32(this.h[5], f)),
- (this.h[6] = sum32(this.h[6], g)),
- (this.h[7] = sum32(this.h[7], h));
- };
- SHA256.prototype._digest = function (enc) {
- return enc === "hex" ? utils.toHex32(this.h, "big") : utils.split32(this.h, "big");
- };
- },
-});
-
-// node_modules/hash.js/lib/hash/sha/224.js
-var require__3 = __commonJS({
- "node_modules/hash.js/lib/hash/sha/224.js"(exports, module) {
- "use strict";
- var utils = require_utils4(),
- SHA256 = require__2();
- function SHA224() {
- if (!(this instanceof SHA224)) return new SHA224();
- SHA256.call(this),
- (this.h = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]);
- }
- utils.inherits(SHA224, SHA256);
- module.exports = SHA224;
- SHA224.blockSize = 512;
- SHA224.outSize = 224;
- SHA224.hmacStrength = 192;
- SHA224.padLength = 64;
- SHA224.prototype._digest = function (enc) {
- return enc === "hex" ? utils.toHex32(this.h.slice(0, 7), "big") : utils.split32(this.h.slice(0, 7), "big");
- };
- },
-});
-
-// node_modules/hash.js/lib/hash/sha/512.js
-var require__4 = __commonJS({
- "node_modules/hash.js/lib/hash/sha/512.js"(exports, module) {
- "use strict";
- var utils = require_utils4(),
- common = require_common(),
- assert = require_minimalistic_assert(),
- rotr64_hi = utils.rotr64_hi,
- rotr64_lo = utils.rotr64_lo,
- shr64_hi = utils.shr64_hi,
- shr64_lo = utils.shr64_lo,
- sum64 = utils.sum64,
- sum64_hi = utils.sum64_hi,
- sum64_lo = utils.sum64_lo,
- sum64_4_hi = utils.sum64_4_hi,
- sum64_4_lo = utils.sum64_4_lo,
- sum64_5_hi = utils.sum64_5_hi,
- sum64_5_lo = utils.sum64_5_lo,
- BlockHash = common.BlockHash,
- sha512_K = [
- 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163,
- 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394,
- 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206,
- 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139,
- 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692,
- 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879,
- 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895,
- 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823,
- 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921,
- 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344,
- 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616,
- 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403,
- 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452,
- 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573,
- 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271,
- 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315,
- 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470,
- 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591,
- ];
- function SHA512() {
- if (!(this instanceof SHA512)) return new SHA512();
- BlockHash.call(this),
- (this.h = [
- 1779033703, 4089235720, 3144134277, 2227873595, 1013904242, 4271175723, 2773480762, 1595750129, 1359893119,
- 2917565137, 2600822924, 725511199, 528734635, 4215389547, 1541459225, 327033209,
- ]),
- (this.k = sha512_K),
- (this.W = new Array(160));
- }
- utils.inherits(SHA512, BlockHash);
- module.exports = SHA512;
- SHA512.blockSize = 1024;
- SHA512.outSize = 512;
- SHA512.hmacStrength = 192;
- SHA512.padLength = 128;
- SHA512.prototype._prepareBlock = function (msg, start) {
- for (var W = this.W, i = 0; i < 32; i++) W[i] = msg[start + i];
- for (; i < W.length; i += 2) {
- var c0_hi = g1_512_hi(W[i - 4], W[i - 3]),
- c0_lo = g1_512_lo(W[i - 4], W[i - 3]),
- c1_hi = W[i - 14],
- c1_lo = W[i - 13],
- c2_hi = g0_512_hi(W[i - 30], W[i - 29]),
- c2_lo = g0_512_lo(W[i - 30], W[i - 29]),
- c3_hi = W[i - 32],
- c3_lo = W[i - 31];
- (W[i] = sum64_4_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo)),
- (W[i + 1] = sum64_4_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo));
- }
- };
- SHA512.prototype._update = function (msg, start) {
- this._prepareBlock(msg, start);
- var W = this.W,
- ah = this.h[0],
- al = this.h[1],
- bh = this.h[2],
- bl = this.h[3],
- ch = this.h[4],
- cl = this.h[5],
- dh = this.h[6],
- dl = this.h[7],
- eh = this.h[8],
- el = this.h[9],
- fh = this.h[10],
- fl = this.h[11],
- gh = this.h[12],
- gl = this.h[13],
- hh = this.h[14],
- hl = this.h[15];
- assert(this.k.length === W.length);
- for (var i = 0; i < W.length; i += 2) {
- var c0_hi = hh,
- c0_lo = hl,
- c1_hi = s1_512_hi(eh, el),
- c1_lo = s1_512_lo(eh, el),
- c2_hi = ch64_hi(eh, el, fh, fl, gh, gl),
- c2_lo = ch64_lo(eh, el, fh, fl, gh, gl),
- c3_hi = this.k[i],
- c3_lo = this.k[i + 1],
- c4_hi = W[i],
- c4_lo = W[i + 1],
- T1_hi = sum64_5_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo),
- T1_lo = sum64_5_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);
- (c0_hi = s0_512_hi(ah, al)),
- (c0_lo = s0_512_lo(ah, al)),
- (c1_hi = maj64_hi(ah, al, bh, bl, ch, cl)),
- (c1_lo = maj64_lo(ah, al, bh, bl, ch, cl));
- var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo),
- T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
- (hh = gh),
- (hl = gl),
- (gh = fh),
- (gl = fl),
- (fh = eh),
- (fl = el),
- (eh = sum64_hi(dh, dl, T1_hi, T1_lo)),
- (el = sum64_lo(dl, dl, T1_hi, T1_lo)),
- (dh = ch),
- (dl = cl),
- (ch = bh),
- (cl = bl),
- (bh = ah),
- (bl = al),
- (ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo)),
- (al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo));
- }
- sum64(this.h, 0, ah, al),
- sum64(this.h, 2, bh, bl),
- sum64(this.h, 4, ch, cl),
- sum64(this.h, 6, dh, dl),
- sum64(this.h, 8, eh, el),
- sum64(this.h, 10, fh, fl),
- sum64(this.h, 12, gh, gl),
- sum64(this.h, 14, hh, hl);
- };
- SHA512.prototype._digest = function (enc) {
- return enc === "hex" ? utils.toHex32(this.h, "big") : utils.split32(this.h, "big");
- };
- function ch64_hi(xh, xl, yh, yl, zh) {
- var r = (xh & yh) ^ (~xh & zh);
- return r < 0 && (r += 4294967296), r;
- }
- function ch64_lo(xh, xl, yh, yl, zh, zl) {
- var r = (xl & yl) ^ (~xl & zl);
- return r < 0 && (r += 4294967296), r;
- }
- function maj64_hi(xh, xl, yh, yl, zh) {
- var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
- return r < 0 && (r += 4294967296), r;
- }
- function maj64_lo(xh, xl, yh, yl, zh, zl) {
- var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
- return r < 0 && (r += 4294967296), r;
- }
- function s0_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 28),
- c1_hi = rotr64_hi(xl, xh, 2),
- c2_hi = rotr64_hi(xl, xh, 7),
- r = c0_hi ^ c1_hi ^ c2_hi;
- return r < 0 && (r += 4294967296), r;
- }
- function s0_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 28),
- c1_lo = rotr64_lo(xl, xh, 2),
- c2_lo = rotr64_lo(xl, xh, 7),
- r = c0_lo ^ c1_lo ^ c2_lo;
- return r < 0 && (r += 4294967296), r;
- }
- function s1_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 14),
- c1_hi = rotr64_hi(xh, xl, 18),
- c2_hi = rotr64_hi(xl, xh, 9),
- r = c0_hi ^ c1_hi ^ c2_hi;
- return r < 0 && (r += 4294967296), r;
- }
- function s1_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 14),
- c1_lo = rotr64_lo(xh, xl, 18),
- c2_lo = rotr64_lo(xl, xh, 9),
- r = c0_lo ^ c1_lo ^ c2_lo;
- return r < 0 && (r += 4294967296), r;
- }
- function g0_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 1),
- c1_hi = rotr64_hi(xh, xl, 8),
- c2_hi = shr64_hi(xh, xl, 7),
- r = c0_hi ^ c1_hi ^ c2_hi;
- return r < 0 && (r += 4294967296), r;
- }
- function g0_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 1),
- c1_lo = rotr64_lo(xh, xl, 8),
- c2_lo = shr64_lo(xh, xl, 7),
- r = c0_lo ^ c1_lo ^ c2_lo;
- return r < 0 && (r += 4294967296), r;
- }
- function g1_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 19),
- c1_hi = rotr64_hi(xl, xh, 29),
- c2_hi = shr64_hi(xh, xl, 6),
- r = c0_hi ^ c1_hi ^ c2_hi;
- return r < 0 && (r += 4294967296), r;
- }
- function g1_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 19),
- c1_lo = rotr64_lo(xl, xh, 29),
- c2_lo = shr64_lo(xh, xl, 6),
- r = c0_lo ^ c1_lo ^ c2_lo;
- return r < 0 && (r += 4294967296), r;
- }
- },
-});
-
-// node_modules/hash.js/lib/hash/sha/384.js
-var require__5 = __commonJS({
- "node_modules/hash.js/lib/hash/sha/384.js"(exports, module) {
- "use strict";
- var utils = require_utils4(),
- SHA512 = require__4();
- function SHA384() {
- if (!(this instanceof SHA384)) return new SHA384();
- SHA512.call(this),
- (this.h = [
- 3418070365, 3238371032, 1654270250, 914150663, 2438529370, 812702999, 355462360, 4144912697, 1731405415,
- 4290775857, 2394180231, 1750603025, 3675008525, 1694076839, 1203062813, 3204075428,
- ]);
- }
- utils.inherits(SHA384, SHA512);
- module.exports = SHA384;
- SHA384.blockSize = 1024;
- SHA384.outSize = 384;
- SHA384.hmacStrength = 192;
- SHA384.padLength = 128;
- SHA384.prototype._digest = function (enc) {
- return enc === "hex" ? utils.toHex32(this.h.slice(0, 12), "big") : utils.split32(this.h.slice(0, 12), "big");
- };
- },
-});
-
-// node_modules/hash.js/lib/hash/sha.js
-var require_sha3 = __commonJS({
- "node_modules/hash.js/lib/hash/sha.js"(exports) {
- "use strict";
- exports.sha1 = require__();
- exports.sha224 = require__3();
- exports.sha256 = require__2();
- exports.sha384 = require__5();
- exports.sha512 = require__4();
- },
-});
-
-// node_modules/hash.js/lib/hash/ripemd.js
-var require_ripemd = __commonJS({
- "node_modules/hash.js/lib/hash/ripemd.js"(exports) {
- "use strict";
- var utils = require_utils4(),
- common = require_common(),
- rotl32 = utils.rotl32,
- sum32 = utils.sum32,
- sum32_3 = utils.sum32_3,
- sum32_4 = utils.sum32_4,
- BlockHash = common.BlockHash;
- function RIPEMD160() {
- if (!(this instanceof RIPEMD160)) return new RIPEMD160();
- BlockHash.call(this),
- (this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]),
- (this.endian = "little");
- }
- utils.inherits(RIPEMD160, BlockHash);
- exports.ripemd160 = RIPEMD160;
- RIPEMD160.blockSize = 512;
- RIPEMD160.outSize = 160;
- RIPEMD160.hmacStrength = 192;
- RIPEMD160.padLength = 64;
- RIPEMD160.prototype._update = function (msg, start) {
- for (
- var A = this.h[0],
- B = this.h[1],
- C = this.h[2],
- D = this.h[3],
- E = this.h[4],
- Ah = A,
- Bh = B,
- Ch = C,
- Dh = D,
- Eh = E,
- j = 0;
- j < 80;
- j++
- ) {
- var T = sum32(rotl32(sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E);
- (A = E),
- (E = D),
- (D = rotl32(C, 10)),
- (C = B),
- (B = T),
- (T = sum32(rotl32(sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), Eh)),
- (Ah = Eh),
- (Eh = Dh),
- (Dh = rotl32(Ch, 10)),
- (Ch = Bh),
- (Bh = T);
- }
- (T = sum32_3(this.h[1], C, Dh)),
- (this.h[1] = sum32_3(this.h[2], D, Eh)),
- (this.h[2] = sum32_3(this.h[3], E, Ah)),
- (this.h[3] = sum32_3(this.h[4], A, Bh)),
- (this.h[4] = sum32_3(this.h[0], B, Ch)),
- (this.h[0] = T);
- };
- RIPEMD160.prototype._digest = function (enc) {
- return enc === "hex" ? utils.toHex32(this.h, "little") : utils.split32(this.h, "little");
- };
- function f(j, x, y, z) {
- return j <= 15
- ? x ^ y ^ z
- : j <= 31
- ? (x & y) | (~x & z)
- : j <= 47
- ? (x | ~y) ^ z
- : j <= 63
- ? (x & z) | (y & ~z)
- : x ^ (y | ~z);
- }
- function K(j) {
- return j <= 15 ? 0 : j <= 31 ? 1518500249 : j <= 47 ? 1859775393 : j <= 63 ? 2400959708 : 2840853838;
- }
- function Kh(j) {
- return j <= 15 ? 1352829926 : j <= 31 ? 1548603684 : j <= 47 ? 1836072691 : j <= 63 ? 2053994217 : 0;
- }
- var r = [
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3,
- 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0,
- 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13,
- ],
- rh = [
- 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15,
- 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15,
- 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11,
- ],
- s = [
- 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
- 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
- 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6,
- ],
- sh = [
- 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
- 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
- 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11,
- ];
- },
-});
-
-// node_modules/hash.js/lib/hash/hmac.js
-var require_hmac = __commonJS({
- "node_modules/hash.js/lib/hash/hmac.js"(exports, module) {
- "use strict";
- var utils = require_utils4(),
- assert = require_minimalistic_assert();
- function Hmac(hash, key, enc) {
- if (!(this instanceof Hmac)) return new Hmac(hash, key, enc);
- (this.Hash = hash),
- (this.blockSize = hash.blockSize / 8),
- (this.outSize = hash.outSize / 8),
- (this.inner = null),
- (this.outer = null),
- this._init(utils.toArray(key, enc));
- }
- module.exports = Hmac;
- Hmac.prototype._init = function (key) {
- key.length > this.blockSize && (key = new this.Hash().update(key).digest()), assert(key.length <= this.blockSize);
- for (var i = key.length; i < this.blockSize; i++) key.push(0);
- for (i = 0; i < key.length; i++) key[i] ^= 54;
- for (this.inner = new this.Hash().update(key), i = 0; i < key.length; i++) key[i] ^= 106;
- this.outer = new this.Hash().update(key);
- };
- Hmac.prototype.update = function (msg, enc) {
- return this.inner.update(msg, enc), this;
- };
- Hmac.prototype.digest = function (enc) {
- return this.outer.update(this.inner.digest()), this.outer.digest(enc);
- };
- },
-});
-
-// node_modules/hash.js/lib/hash.js
-var require_hash2 = __commonJS({
- "node_modules/hash.js/lib/hash.js"(exports) {
- var hash = exports;
- hash.utils = require_utils4();
- hash.common = require_common();
- hash.sha = require_sha3();
- hash.ripemd = require_ripemd();
- hash.hmac = require_hmac();
- hash.sha1 = hash.sha.sha1;
- hash.sha256 = hash.sha.sha256;
- hash.sha224 = hash.sha.sha224;
- hash.sha384 = hash.sha.sha384;
- hash.sha512 = hash.sha.sha512;
- hash.ripemd160 = hash.ripemd.ripemd160;
- },
-});
-
-// node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js
-var require_secp256k1 = __commonJS({
- "node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js"(exports, module) {
- module.exports = {
- doubles: {
- step: 4,
- points: [
- [
- "e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a",
- "f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821",
- ],
- [
- "8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508",
- "11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf",
- ],
- [
- "175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739",
- "d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695",
- ],
- [
- "363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640",
- "4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9",
- ],
- [
- "8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c",
- "4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36",
- ],
- [
- "723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda",
- "96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f",
- ],
- [
- "eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa",
- "5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999",
- ],
- [
- "100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0",
- "cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09",
- ],
- [
- "e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d",
- "9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d",
- ],
- [
- "feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d",
- "e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088",
- ],
- [
- "da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1",
- "9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d",
- ],
- [
- "53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0",
- "5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8",
- ],
- [
- "8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047",
- "10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a",
- ],
- [
- "385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862",
- "283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453",
- ],
- [
- "6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7",
- "7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160",
- ],
- [
- "3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd",
- "56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0",
- ],
- [
- "85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83",
- "7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6",
- ],
- [
- "948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a",
- "53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589",
- ],
- [
- "6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8",
- "bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17",
- ],
- [
- "e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d",
- "4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda",
- ],
- [
- "e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725",
- "7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd",
- ],
- [
- "213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754",
- "4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2",
- ],
- [
- "4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c",
- "17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6",
- ],
- [
- "fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6",
- "6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f",
- ],
- [
- "76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39",
- "c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01",
- ],
- [
- "c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891",
- "893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3",
- ],
- [
- "d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b",
- "febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f",
- ],
- [
- "b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03",
- "2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7",
- ],
- [
- "e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d",
- "eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78",
- ],
- [
- "a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070",
- "7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1",
- ],
- [
- "90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4",
- "e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150",
- ],
- [
- "8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da",
- "662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82",
- ],
- [
- "e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11",
- "1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc",
- ],
- [
- "8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e",
- "efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b",
- ],
- [
- "e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41",
- "2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51",
- ],
- [
- "b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef",
- "67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45",
- ],
- [
- "d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8",
- "db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120",
- ],
- [
- "324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d",
- "648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84",
- ],
- [
- "4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96",
- "35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d",
- ],
- [
- "9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd",
- "ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d",
- ],
- [
- "6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5",
- "9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8",
- ],
- [
- "a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266",
- "40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8",
- ],
- [
- "7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71",
- "34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac",
- ],
- [
- "928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac",
- "c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f",
- ],
- [
- "85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751",
- "1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962",
- ],
- [
- "ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e",
- "493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907",
- ],
- [
- "827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241",
- "c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec",
- ],
- [
- "eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3",
- "be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d",
- ],
- [
- "e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f",
- "4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414",
- ],
- [
- "1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19",
- "aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd",
- ],
- [
- "146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be",
- "b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0",
- ],
- [
- "fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9",
- "6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811",
- ],
- [
- "da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2",
- "8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1",
- ],
- [
- "a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13",
- "7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c",
- ],
- [
- "174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c",
- "ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73",
- ],
- [
- "959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba",
- "2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd",
- ],
- [
- "d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151",
- "e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405",
- ],
- [
- "64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073",
- "d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589",
- ],
- [
- "8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458",
- "38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e",
- ],
- [
- "13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b",
- "69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27",
- ],
- [
- "bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366",
- "d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1",
- ],
- [
- "8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa",
- "40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482",
- ],
- [
- "8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0",
- "620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945",
- ],
- [
- "dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787",
- "7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573",
- ],
- [
- "f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e",
- "ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82",
- ],
- ],
- },
- naf: {
- wnd: 7,
- points: [
- [
- "f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9",
- "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672",
- ],
- [
- "2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4",
- "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6",
- ],
- [
- "5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc",
- "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da",
- ],
- [
- "acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe",
- "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37",
- ],
- [
- "774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb",
- "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b",
- ],
- [
- "f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8",
- "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81",
- ],
- [
- "d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e",
- "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58",
- ],
- [
- "defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34",
- "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77",
- ],
- [
- "2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c",
- "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a",
- ],
- [
- "352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5",
- "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c",
- ],
- [
- "2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f",
- "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67",
- ],
- [
- "9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714",
- "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402",
- ],
- [
- "daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729",
- "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55",
- ],
- [
- "c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db",
- "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482",
- ],
- [
- "6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4",
- "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82",
- ],
- [
- "1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5",
- "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396",
- ],
- [
- "605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479",
- "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49",
- ],
- [
- "62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d",
- "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf",
- ],
- [
- "80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f",
- "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a",
- ],
- [
- "7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb",
- "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7",
- ],
- [
- "d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9",
- "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933",
- ],
- [
- "49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963",
- "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a",
- ],
- [
- "77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74",
- "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6",
- ],
- [
- "f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530",
- "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37",
- ],
- [
- "463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b",
- "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e",
- ],
- [
- "f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247",
- "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6",
- ],
- [
- "caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1",
- "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476",
- ],
- [
- "2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120",
- "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40",
- ],
- [
- "7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435",
- "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61",
- ],
- [
- "754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18",
- "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683",
- ],
- [
- "e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8",
- "59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5",
- ],
- [
- "186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb",
- "3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b",
- ],
- [
- "df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f",
- "55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417",
- ],
- [
- "5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143",
- "efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868",
- ],
- [
- "290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba",
- "e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a",
- ],
- [
- "af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45",
- "f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6",
- ],
- [
- "766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a",
- "744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996",
- ],
- [
- "59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e",
- "c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e",
- ],
- [
- "f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8",
- "e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d",
- ],
- [
- "7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c",
- "30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2",
- ],
- [
- "948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519",
- "e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e",
- ],
- [
- "7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab",
- "100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437",
- ],
- [
- "3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca",
- "ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311",
- ],
- [
- "d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf",
- "8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4",
- ],
- [
- "1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610",
- "68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575",
- ],
- [
- "733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4",
- "f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d",
- ],
- [
- "15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c",
- "d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d",
- ],
- [
- "a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940",
- "edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629",
- ],
- [
- "e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980",
- "a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06",
- ],
- [
- "311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3",
- "66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374",
- ],
- [
- "34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf",
- "9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee",
- ],
- [
- "f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63",
- "4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1",
- ],
- [
- "d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448",
- "fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b",
- ],
- [
- "32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf",
- "5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661",
- ],
- [
- "7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5",
- "8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6",
- ],
- [
- "ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6",
- "8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e",
- ],
- [
- "16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5",
- "5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d",
- ],
- [
- "eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99",
- "f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc",
- ],
- [
- "78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51",
- "f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4",
- ],
- [
- "494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5",
- "42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c",
- ],
- [
- "a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5",
- "204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b",
- ],
- [
- "c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997",
- "4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913",
- ],
- [
- "841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881",
- "73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154",
- ],
- [
- "5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5",
- "39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865",
- ],
- [
- "36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66",
- "d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc",
- ],
- [
- "336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726",
- "ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224",
- ],
- [
- "8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede",
- "6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e",
- ],
- [
- "1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94",
- "60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6",
- ],
- [
- "85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31",
- "3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511",
- ],
- [
- "29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51",
- "b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b",
- ],
- [
- "a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252",
- "ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2",
- ],
- [
- "4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5",
- "cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c",
- ],
- [
- "d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b",
- "6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3",
- ],
- [
- "ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4",
- "322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d",
- ],
- [
- "af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f",
- "6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700",
- ],
- [
- "e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889",
- "2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4",
- ],
- [
- "591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246",
- "b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196",
- ],
- [
- "11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984",
- "998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4",
- ],
- [
- "3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a",
- "b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257",
- ],
- [
- "cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030",
- "bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13",
- ],
- [
- "c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197",
- "6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096",
- ],
- [
- "c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593",
- "c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38",
- ],
- [
- "a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef",
- "21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f",
- ],
- [
- "347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38",
- "60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448",
- ],
- [
- "da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a",
- "49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a",
- ],
- [
- "c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111",
- "5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4",
- ],
- [
- "4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502",
- "7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437",
- ],
- [
- "3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea",
- "be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7",
- ],
- [
- "cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26",
- "8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d",
- ],
- [
- "b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986",
- "39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a",
- ],
- [
- "d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e",
- "62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54",
- ],
- [
- "48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4",
- "25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77",
- ],
- [
- "dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda",
- "ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517",
- ],
- [
- "6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859",
- "cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10",
- ],
- [
- "e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f",
- "f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125",
- ],
- [
- "eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c",
- "6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e",
- ],
- [
- "13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942",
- "fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1",
- ],
- [
- "ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a",
- "1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2",
- ],
- [
- "b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80",
- "5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423",
- ],
- [
- "ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d",
- "438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8",
- ],
- [
- "8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1",
- "cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758",
- ],
- [
- "52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63",
- "c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375",
- ],
- [
- "e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352",
- "6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d",
- ],
- [
- "7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193",
- "ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec",
- ],
- [
- "5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00",
- "9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0",
- ],
- [
- "32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58",
- "ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c",
- ],
- [
- "e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7",
- "d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4",
- ],
- [
- "8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8",
- "c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f",
- ],
- [
- "4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e",
- "67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649",
- ],
- [
- "3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d",
- "cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826",
- ],
- [
- "674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b",
- "299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5",
- ],
- [
- "d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f",
- "f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87",
- ],
- [
- "30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6",
- "462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b",
- ],
- [
- "be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297",
- "62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc",
- ],
- [
- "93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a",
- "7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c",
- ],
- [
- "b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c",
- "ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f",
- ],
- [
- "d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52",
- "4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a",
- ],
- [
- "d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb",
- "bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46",
- ],
- [
- "463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065",
- "bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f",
- ],
- [
- "7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917",
- "603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03",
- ],
- [
- "74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9",
- "cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08",
- ],
- [
- "30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3",
- "553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8",
- ],
- [
- "9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57",
- "712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373",
- ],
- [
- "176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66",
- "ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3",
- ],
- [
- "75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8",
- "9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8",
- ],
- [
- "809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721",
- "9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1",
- ],
- [
- "1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180",
- "4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9",
- ],
- ],
- },
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/curves.js
-var require_curves = __commonJS({
- "node_modules/elliptic/lib/elliptic/curves.js"(exports) {
- "use strict";
- var curves = exports,
- hash = require_hash2(),
- curve = require_curve(),
- utils = require_utils3(),
- assert = utils.assert;
- function PresetCurve(options) {
- options.type === "short"
- ? (this.curve = new curve.short(options))
- : options.type === "edwards"
- ? (this.curve = new curve.edwards(options))
- : (this.curve = new curve.mont(options)),
- (this.g = this.curve.g),
- (this.n = this.curve.n),
- (this.hash = options.hash),
- assert(this.g.validate(), "Invalid curve"),
- assert(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O");
- }
- curves.PresetCurve = PresetCurve;
- function defineCurve(name, options) {
- Object.defineProperty(curves, name, {
- configurable: !0,
- enumerable: !0,
- get: function () {
- var curve2 = new PresetCurve(options);
- return (
- Object.defineProperty(curves, name, {
- configurable: !0,
- enumerable: !0,
- value: curve2,
- }),
- curve2
- );
- },
- });
- }
- defineCurve("p192", {
- type: "short",
- prime: "p192",
- p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",
- a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",
- b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",
- n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",
- hash: hash.sha256,
- gRed: !1,
- g: [
- "188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012",
- "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811",
- ],
- });
- defineCurve("p224", {
- type: "short",
- prime: "p224",
- p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",
- a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",
- b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",
- n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",
- hash: hash.sha256,
- gRed: !1,
- g: [
- "b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21",
- "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34",
- ],
- });
- defineCurve("p256", {
- type: "short",
- prime: null,
- p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",
- a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",
- b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",
- n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",
- hash: hash.sha256,
- gRed: !1,
- g: [
- "6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296",
- "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5",
- ],
- });
- defineCurve("p384", {
- type: "short",
- prime: null,
- p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",
- a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",
- b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",
- n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",
- hash: hash.sha384,
- gRed: !1,
- g: [
- "aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7",
- "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f",
- ],
- });
- defineCurve("p521", {
- type: "short",
- prime: null,
- p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",
- a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",
- b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",
- n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",
- hash: hash.sha512,
- gRed: !1,
- g: [
- "000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66",
- "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650",
- ],
- });
- defineCurve("curve25519", {
- type: "mont",
- prime: "p25519",
- p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",
- a: "76d06",
- b: "1",
- n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",
- hash: hash.sha256,
- gRed: !1,
- g: ["9"],
- });
- defineCurve("ed25519", {
- type: "edwards",
- prime: "p25519",
- p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",
- a: "-1",
- c: "1",
- d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",
- n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",
- hash: hash.sha256,
- gRed: !1,
- g: [
- "216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a",
- "6666666666666666666666666666666666666666666666666666666666666658",
- ],
- });
- var pre;
- try {
- pre = require_secp256k1();
- } catch {
- pre = void 0;
- }
- defineCurve("secp256k1", {
- type: "short",
- prime: "k256",
- p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",
- a: "0",
- b: "7",
- n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",
- h: "1",
- hash: hash.sha256,
- beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",
- lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",
- basis: [
- {
- a: "3086d221a7d46bcde86c90e49284eb15",
- b: "-e4437ed6010e88286f547fa90abfe4c3",
- },
- {
- a: "114ca50f7a8e2f3f657c1108d9d44cfd8",
- b: "3086d221a7d46bcde86c90e49284eb15",
- },
- ],
- gRed: !1,
- g: [
- "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
- "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",
- pre,
- ],
- });
- },
-});
-
-// node_modules/hmac-drbg/lib/hmac-drbg.js
-var require_hmac_drbg = __commonJS({
- "node_modules/hmac-drbg/lib/hmac-drbg.js"(exports, module) {
- "use strict";
- var hash = require_hash2(),
- utils = require_utils2(),
- assert = require_minimalistic_assert();
- function HmacDRBG(options) {
- if (!(this instanceof HmacDRBG)) return new HmacDRBG(options);
- (this.hash = options.hash),
- (this.predResist = !!options.predResist),
- (this.outLen = this.hash.outSize),
- (this.minEntropy = options.minEntropy || this.hash.hmacStrength),
- (this._reseed = null),
- (this.reseedInterval = null),
- (this.K = null),
- (this.V = null);
- var entropy = utils.toArray(options.entropy, options.entropyEnc || "hex"),
- nonce = utils.toArray(options.nonce, options.nonceEnc || "hex"),
- pers = utils.toArray(options.pers, options.persEnc || "hex");
- assert(entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"),
- this._init(entropy, nonce, pers);
- }
- module.exports = HmacDRBG;
- HmacDRBG.prototype._init = function (entropy, nonce, pers) {
- var seed = entropy.concat(nonce).concat(pers);
- (this.K = new Array(this.outLen / 8)), (this.V = new Array(this.outLen / 8));
- for (var i = 0; i < this.V.length; i++) (this.K[i] = 0), (this.V[i] = 1);
- this._update(seed), (this._reseed = 1), (this.reseedInterval = 281474976710656);
- };
- HmacDRBG.prototype._hmac = function () {
- return new hash.hmac(this.hash, this.K);
- };
- HmacDRBG.prototype._update = function (seed) {
- var kmac = this._hmac().update(this.V).update([0]);
- seed && (kmac = kmac.update(seed)),
- (this.K = kmac.digest()),
- (this.V = this._hmac().update(this.V).digest()),
- seed &&
- ((this.K = this._hmac().update(this.V).update([1]).update(seed).digest()),
- (this.V = this._hmac().update(this.V).digest()));
- };
- HmacDRBG.prototype.reseed = function (entropy, entropyEnc, add, addEnc) {
- typeof entropyEnc != "string" && ((addEnc = add), (add = entropyEnc), (entropyEnc = null)),
- (entropy = utils.toArray(entropy, entropyEnc)),
- (add = utils.toArray(add, addEnc)),
- assert(entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"),
- this._update(entropy.concat(add || [])),
- (this._reseed = 1);
- };
- HmacDRBG.prototype.generate = function (len, enc, add, addEnc) {
- if (this._reseed > this.reseedInterval) throw new Error("Reseed is required");
- typeof enc != "string" && ((addEnc = add), (add = enc), (enc = null)),
- add && ((add = utils.toArray(add, addEnc || "hex")), this._update(add));
- for (var temp = []; temp.length < len; )
- (this.V = this._hmac().update(this.V).digest()), (temp = temp.concat(this.V));
- var res = temp.slice(0, len);
- return this._update(add), this._reseed++, utils.encode(res, enc);
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/ec/key.js
-var require_key = __commonJS({
- "node_modules/elliptic/lib/elliptic/ec/key.js"(exports, module) {
- "use strict";
- var BN = require_bn4(),
- utils = require_utils3(),
- assert = utils.assert;
- function KeyPair(ec, options) {
- (this.ec = ec),
- (this.priv = null),
- (this.pub = null),
- options.priv && this._importPrivate(options.priv, options.privEnc),
- options.pub && this._importPublic(options.pub, options.pubEnc);
- }
- module.exports = KeyPair;
- KeyPair.fromPublic = function (ec, pub, enc) {
- return pub instanceof KeyPair
- ? pub
- : new KeyPair(ec, {
- pub,
- pubEnc: enc,
- });
- };
- KeyPair.fromPrivate = function (ec, priv, enc) {
- return priv instanceof KeyPair
- ? priv
- : new KeyPair(ec, {
- priv,
- privEnc: enc,
- });
- };
- KeyPair.prototype.validate = function () {
- var pub = this.getPublic();
- return pub.isInfinity()
- ? { result: !1, reason: "Invalid public key" }
- : pub.validate()
- ? pub.mul(this.ec.curve.n).isInfinity()
- ? { result: !0, reason: null }
- : { result: !1, reason: "Public key * N != O" }
- : { result: !1, reason: "Public key is not a point" };
- };
- KeyPair.prototype.getPublic = function (compact, enc) {
- return (
- typeof compact == "string" && ((enc = compact), (compact = null)),
- this.pub || (this.pub = this.ec.g.mul(this.priv)),
- enc ? this.pub.encode(enc, compact) : this.pub
- );
- };
- KeyPair.prototype.getPrivate = function (enc) {
- return enc === "hex" ? this.priv.toString(16, 2) : this.priv;
- };
- KeyPair.prototype._importPrivate = function (key, enc) {
- (this.priv = new BN(key, enc || 16)), (this.priv = this.priv.umod(this.ec.curve.n));
- };
- KeyPair.prototype._importPublic = function (key, enc) {
- if (key.x || key.y) {
- this.ec.curve.type === "mont"
- ? assert(key.x, "Need x coordinate")
- : (this.ec.curve.type === "short" || this.ec.curve.type === "edwards") &&
- assert(key.x && key.y, "Need both x and y coordinate"),
- (this.pub = this.ec.curve.point(key.x, key.y));
- return;
- }
- this.pub = this.ec.curve.decodePoint(key, enc);
- };
- KeyPair.prototype.derive = function (pub) {
- return pub.validate() || assert(pub.validate(), "public point not validated"), pub.mul(this.priv).getX();
- };
- KeyPair.prototype.sign = function (msg, enc, options) {
- return this.ec.sign(msg, this, enc, options);
- };
- KeyPair.prototype.verify = function (msg, signature) {
- return this.ec.verify(msg, signature, this);
- };
- KeyPair.prototype.inspect = function () {
- return (
- "<Key priv: " + (this.priv && this.priv.toString(16, 2)) + " pub: " + (this.pub && this.pub.inspect()) + " >"
- );
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/ec/signature.js
-var require_signature = __commonJS({
- "node_modules/elliptic/lib/elliptic/ec/signature.js"(exports, module) {
- "use strict";
- var BN = require_bn4(),
- utils = require_utils3(),
- assert = utils.assert;
- function Signature(options, enc) {
- if (options instanceof Signature) return options;
- this._importDER(options, enc) ||
- (assert(options.r && options.s, "Signature without r or s"),
- (this.r = new BN(options.r, 16)),
- (this.s = new BN(options.s, 16)),
- options.recoveryParam === void 0 ? (this.recoveryParam = null) : (this.recoveryParam = options.recoveryParam));
- }
- module.exports = Signature;
- function Position() {
- this.place = 0;
- }
- function getLength(buf, p) {
- var initial = buf[p.place++];
- if (!(initial & 128)) return initial;
- var octetLen = initial & 15;
- if (octetLen === 0 || octetLen > 4) return !1;
- for (var val = 0, i = 0, off = p.place; i < octetLen; i++, off++) (val <<= 8), (val |= buf[off]), (val >>>= 0);
- return val <= 127 ? !1 : ((p.place = off), val);
- }
- function rmPadding(buf) {
- for (var i = 0, len = buf.length - 1; !buf[i] && !(buf[i + 1] & 128) && i < len; ) i++;
- return i === 0 ? buf : buf.slice(i);
- }
- Signature.prototype._importDER = function (data, enc) {
- data = utils.toArray(data, enc);
- var p = new Position();
- if (data[p.place++] !== 48) return !1;
- var len = getLength(data, p);
- if (len === !1 || len + p.place !== data.length || data[p.place++] !== 2) return !1;
- var rlen = getLength(data, p);
- if (rlen === !1) return !1;
- var r = data.slice(p.place, rlen + p.place);
- if (((p.place += rlen), data[p.place++] !== 2)) return !1;
- var slen = getLength(data, p);
- if (slen === !1 || data.length !== slen + p.place) return !1;
- var s = data.slice(p.place, slen + p.place);
- if (r[0] === 0)
- if (r[1] & 128) r = r.slice(1);
- else return !1;
- if (s[0] === 0)
- if (s[1] & 128) s = s.slice(1);
- else return !1;
- return (this.r = new BN(r)), (this.s = new BN(s)), (this.recoveryParam = null), !0;
- };
- function constructLength(arr, len) {
- if (len < 128) {
- arr.push(len);
- return;
- }
- var octets = 1 + ((Math.log(len) / Math.LN2) >>> 3);
- for (arr.push(octets | 128); --octets; ) arr.push((len >>> (octets << 3)) & 255);
- arr.push(len);
- }
- Signature.prototype.toDER = function (enc) {
- var r = this.r.toArray(),
- s = this.s.toArray();
- for (
- r[0] & 128 && (r = [0].concat(r)), s[0] & 128 && (s = [0].concat(s)), r = rmPadding(r), s = rmPadding(s);
- !s[0] && !(s[1] & 128);
-
- )
- s = s.slice(1);
- var arr = [2];
- constructLength(arr, r.length), (arr = arr.concat(r)), arr.push(2), constructLength(arr, s.length);
- var backHalf = arr.concat(s),
- res = [48];
- return constructLength(res, backHalf.length), (res = res.concat(backHalf)), utils.encode(res, enc);
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/ec/index.js
-var require_ec = __commonJS({
- "node_modules/elliptic/lib/elliptic/ec/index.js"(exports, module) {
- "use strict";
- var BN = require_bn4(),
- HmacDRBG = require_hmac_drbg(),
- utils = require_utils3(),
- curves = require_curves(),
- rand = require_brorand(),
- assert = utils.assert,
- KeyPair = require_key(),
- Signature = require_signature();
- function EC(options) {
- if (!(this instanceof EC)) return new EC(options);
- typeof options == "string" &&
- (assert(Object.prototype.hasOwnProperty.call(curves, options), "Unknown curve " + options),
- (options = curves[options])),
- options instanceof curves.PresetCurve && (options = { curve: options }),
- (this.curve = options.curve.curve),
- (this.n = this.curve.n),
- (this.nh = this.n.ushrn(1)),
- (this.g = this.curve.g),
- (this.g = options.curve.g),
- this.g.precompute(options.curve.n.bitLength() + 1),
- (this.hash = options.hash || options.curve.hash);
- }
- module.exports = EC;
- EC.prototype.keyPair = function (options) {
- return new KeyPair(this, options);
- };
- EC.prototype.keyFromPrivate = function (priv, enc) {
- return KeyPair.fromPrivate(this, priv, enc);
- };
- EC.prototype.keyFromPublic = function (pub, enc) {
- return KeyPair.fromPublic(this, pub, enc);
- };
- EC.prototype.genKeyPair = function (options) {
- options || (options = {});
- for (
- var drbg = new HmacDRBG({
- hash: this.hash,
- pers: options.pers,
- persEnc: options.persEnc || "utf8",
- entropy: options.entropy || rand(this.hash.hmacStrength),
- entropyEnc: (options.entropy && options.entropyEnc) || "utf8",
- nonce: this.n.toArray(),
- }),
- bytes = this.n.byteLength(),
- ns2 = this.n.sub(new BN(2));
- ;
-
- ) {
- var priv = new BN(drbg.generate(bytes));
- if (!(priv.cmp(ns2) > 0)) return priv.iaddn(1), this.keyFromPrivate(priv);
- }
- };
- EC.prototype._truncateToN = function (msg, truncOnly) {
- var delta = msg.byteLength() * 8 - this.n.bitLength();
- return delta > 0 && (msg = msg.ushrn(delta)), !truncOnly && msg.cmp(this.n) >= 0 ? msg.sub(this.n) : msg;
- };
- EC.prototype.sign = function (msg, key, enc, options) {
- typeof enc == "object" && ((options = enc), (enc = null)),
- options || (options = {}),
- (key = this.keyFromPrivate(key, enc)),
- (msg = this._truncateToN(new BN(msg, 16)));
- for (
- var bytes = this.n.byteLength(),
- bkey = key.getPrivate().toArray("be", bytes),
- nonce = msg.toArray("be", bytes),
- drbg = new HmacDRBG({
- hash: this.hash,
- entropy: bkey,
- nonce,
- pers: options.pers,
- persEnc: options.persEnc || "utf8",
- }),
- ns1 = this.n.sub(new BN(1)),
- iter = 0;
- ;
- iter++
- ) {
- var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength()));
- if (((k = this._truncateToN(k, !0)), !(k.cmpn(1) <= 0 || k.cmp(ns1) >= 0))) {
- var kp = this.g.mul(k);
- if (!kp.isInfinity()) {
- var kpX = kp.getX(),
- r = kpX.umod(this.n);
- if (r.cmpn(0) !== 0) {
- var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
- if (((s = s.umod(this.n)), s.cmpn(0) !== 0)) {
- var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0);
- return (
- options.canonical && s.cmp(this.nh) > 0 && ((s = this.n.sub(s)), (recoveryParam ^= 1)),
- new Signature({ r, s, recoveryParam })
- );
- }
- }
- }
- }
- }
- };
- EC.prototype.verify = function (msg, signature, key, enc) {
- (msg = this._truncateToN(new BN(msg, 16))),
- (key = this.keyFromPublic(key, enc)),
- (signature = new Signature(signature, "hex"));
- var r = signature.r,
- s = signature.s;
- if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0 || s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return !1;
- var sinv = s.invm(this.n),
- u1 = sinv.mul(msg).umod(this.n),
- u2 = sinv.mul(r).umod(this.n),
- p;
- return this.curve._maxwellTrick
- ? ((p = this.g.jmulAdd(u1, key.getPublic(), u2)), p.isInfinity() ? !1 : p.eqXToP(r))
- : ((p = this.g.mulAdd(u1, key.getPublic(), u2)), p.isInfinity() ? !1 : p.getX().umod(this.n).cmp(r) === 0);
- };
- EC.prototype.recoverPubKey = function (msg, signature, j, enc) {
- assert((3 & j) === j, "The recovery param is more than two bits"), (signature = new Signature(signature, enc));
- var n = this.n,
- e = new BN(msg),
- r = signature.r,
- s = signature.s,
- isYOdd = j & 1,
- isSecondKey = j >> 1;
- if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)
- throw new Error("Unable to find sencond key candinate");
- isSecondKey ? (r = this.curve.pointFromX(r.add(this.curve.n), isYOdd)) : (r = this.curve.pointFromX(r, isYOdd));
- var rInv = signature.r.invm(n),
- s1 = n.sub(e).mul(rInv).umod(n),
- s2 = s.mul(rInv).umod(n);
- return this.g.mulAdd(s1, r, s2);
- };
- EC.prototype.getKeyRecoveryParam = function (e, signature, Q, enc) {
- if (((signature = new Signature(signature, enc)), signature.recoveryParam !== null))
- return signature.recoveryParam;
- for (var i = 0; i < 4; i++) {
- var Qprime;
- try {
- Qprime = this.recoverPubKey(e, signature, i);
- } catch {
- continue;
- }
- if (Qprime.eq(Q)) return i;
- }
- throw new Error("Unable to find valid recovery factor");
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic/eddsa/key.js
-var require_key2 = __commonJS({
- "node_modules/elliptic/lib/elliptic/eddsa/key.js"(exports, module) {
- "use strict";
- var utils = require_utils3(),
- assert = utils.assert,
- parseBytes = utils.parseBytes,
- cachedProperty = utils.cachedProperty;
- function KeyPair(eddsa, params) {
- (this.eddsa = eddsa),
- (this._secret = parseBytes(params.secret)),
- eddsa.isPoint(params.pub) ? (this._pub = params.pub) : (this._pubBytes = parseBytes(params.pub));
- }
- KeyPair.fromPublic = function (eddsa, pub) {
- return pub instanceof KeyPair ? pub : new KeyPair(eddsa, { pub });
- };
- KeyPair.fromSecret = function (eddsa, secret) {
- return secret instanceof KeyPair ? secret : new KeyPair(eddsa, { secret });
- };
- KeyPair.prototype.secret = function () {
- return this._secret;
- };
- cachedProperty(KeyPair, "pubBytes", function () {
- return this.eddsa.encodePoint(this.pub());
- });
- cachedProperty(KeyPair, "pub", function () {
- return this._pubBytes ? this.eddsa.decodePoint(this._pubBytes) : this.eddsa.g.mul(this.priv());
- });
- cachedProperty(KeyPair, "privBytes", function () {
- var eddsa = this.eddsa,
- hash = this.hash(),
- lastIx = eddsa.encodingLength - 1,
- a = hash.slice(0, eddsa.encodingLength);
- return (a[0] &= 248), (a[lastIx] &= 127), (a[lastIx] |= 64), a;
- });
- cachedProperty(KeyPair, "priv", function () {
- return this.eddsa.decodeInt(this.privBytes());
- });
- cachedProperty(KeyPair, "hash", function () {
- return this.eddsa.hash().update(this.secret()).digest();
- });
- cachedProperty(KeyPair, "messagePrefix", function () {
- return this.hash().slice(this.eddsa.encodingLength);
- });
- KeyPair.prototype.sign = function (message) {
- return assert(this._secret, "KeyPair can only verify"), this.eddsa.sign(message, this);
- };
- KeyPair.prototype.verify = function (message, sig) {
- return this.eddsa.verify(message, sig, this);
- };
- KeyPair.prototype.getSecret = function (enc) {
- return assert(this._secret, "KeyPair is public only"), utils.encode(this.secret(), enc);
- };
- KeyPair.prototype.getPublic = function (enc) {
- return utils.encode(this.pubBytes(), enc);
- };
- module.exports = KeyPair;
- },
-});
-
-// node_modules/elliptic/lib/elliptic/eddsa/signature.js
-var require_signature2 = __commonJS({
- "node_modules/elliptic/lib/elliptic/eddsa/signature.js"(exports, module) {
- "use strict";
- var BN = require_bn4(),
- utils = require_utils3(),
- assert = utils.assert,
- cachedProperty = utils.cachedProperty,
- parseBytes = utils.parseBytes;
- function Signature(eddsa, sig) {
- (this.eddsa = eddsa),
- typeof sig != "object" && (sig = parseBytes(sig)),
- Array.isArray(sig) &&
- (sig = {
- R: sig.slice(0, eddsa.encodingLength),
- S: sig.slice(eddsa.encodingLength),
- }),
- assert(sig.R && sig.S, "Signature without R or S"),
- eddsa.isPoint(sig.R) && (this._R = sig.R),
- sig.S instanceof BN && (this._S = sig.S),
- (this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded),
- (this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded);
- }
- cachedProperty(Signature, "S", function () {
- return this.eddsa.decodeInt(this.Sencoded());
- });
- cachedProperty(Signature, "R", function () {
- return this.eddsa.decodePoint(this.Rencoded());
- });
- cachedProperty(Signature, "Rencoded", function () {
- return this.eddsa.encodePoint(this.R());
- });
- cachedProperty(Signature, "Sencoded", function () {
- return this.eddsa.encodeInt(this.S());
- });
- Signature.prototype.toBytes = function () {
- return this.Rencoded().concat(this.Sencoded());
- };
- Signature.prototype.toHex = function () {
- return utils.encode(this.toBytes(), "hex").toUpperCase();
- };
- module.exports = Signature;
- },
-});
-
-// node_modules/elliptic/lib/elliptic/eddsa/index.js
-var require_eddsa = __commonJS({
- "node_modules/elliptic/lib/elliptic/eddsa/index.js"(exports, module) {
- "use strict";
- var hash = require_hash2(),
- curves = require_curves(),
- utils = require_utils3(),
- assert = utils.assert,
- parseBytes = utils.parseBytes,
- KeyPair = require_key2(),
- Signature = require_signature2();
- function EDDSA(curve) {
- if ((assert(curve === "ed25519", "only tested with ed25519 so far"), !(this instanceof EDDSA)))
- return new EDDSA(curve);
- (curve = curves[curve].curve),
- (this.curve = curve),
- (this.g = curve.g),
- this.g.precompute(curve.n.bitLength() + 1),
- (this.pointClass = curve.point().constructor),
- (this.encodingLength = Math.ceil(curve.n.bitLength() / 8)),
- (this.hash = hash.sha512);
- }
- module.exports = EDDSA;
- EDDSA.prototype.sign = function (message, secret) {
- message = parseBytes(message);
- var key = this.keyFromSecret(secret),
- r = this.hashInt(key.messagePrefix(), message),
- R = this.g.mul(r),
- Rencoded = this.encodePoint(R),
- s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv()),
- S = r.add(s_).umod(this.curve.n);
- return this.makeSignature({ R, S, Rencoded });
- };
- EDDSA.prototype.verify = function (message, sig, pub) {
- (message = parseBytes(message)), (sig = this.makeSignature(sig));
- var key = this.keyFromPublic(pub),
- h = this.hashInt(sig.Rencoded(), key.pubBytes(), message),
- SG = this.g.mul(sig.S()),
- RplusAh = sig.R().add(key.pub().mul(h));
- return RplusAh.eq(SG);
- };
- EDDSA.prototype.hashInt = function () {
- for (var hash2 = this.hash(), i = 0; i < arguments.length; i++) hash2.update(arguments[i]);
- return utils.intFromLE(hash2.digest()).umod(this.curve.n);
- };
- EDDSA.prototype.keyFromPublic = function (pub) {
- return KeyPair.fromPublic(this, pub);
- };
- EDDSA.prototype.keyFromSecret = function (secret) {
- return KeyPair.fromSecret(this, secret);
- };
- EDDSA.prototype.makeSignature = function (sig) {
- return sig instanceof Signature ? sig : new Signature(this, sig);
- };
- EDDSA.prototype.encodePoint = function (point) {
- var enc = point.getY().toArray("le", this.encodingLength);
- return (enc[this.encodingLength - 1] |= point.getX().isOdd() ? 128 : 0), enc;
- };
- EDDSA.prototype.decodePoint = function (bytes) {
- bytes = utils.parseBytes(bytes);
- var lastIx = bytes.length - 1,
- normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & -129),
- xIsOdd = (bytes[lastIx] & 128) !== 0,
- y = utils.intFromLE(normed);
- return this.curve.pointFromY(y, xIsOdd);
- };
- EDDSA.prototype.encodeInt = function (num) {
- return num.toArray("le", this.encodingLength);
- };
- EDDSA.prototype.decodeInt = function (bytes) {
- return utils.intFromLE(bytes);
- };
- EDDSA.prototype.isPoint = function (val) {
- return val instanceof this.pointClass;
- };
- },
-});
-
-// node_modules/elliptic/lib/elliptic.js
-var require_elliptic = __commonJS({
- "node_modules/elliptic/lib/elliptic.js"(exports) {
- "use strict";
- var elliptic = exports;
- elliptic.version = require_package().version;
- elliptic.utils = require_utils3();
- elliptic.rand = require_brorand();
- elliptic.curve = require_curve();
- elliptic.curves = require_curves();
- elliptic.ec = require_ec();
- elliptic.eddsa = require_eddsa();
- },
-});
-
-// node_modules/asn1.js/node_modules/bn.js/lib/bn.js
-var require_bn5 = __commonJS({
- "node_modules/asn1.js/node_modules/bn.js/lib/bn.js"(exports, module) {
- (function (module2, exports2) {
- "use strict";
- function assert(val, msg) {
- if (!val) throw new Error(msg || "Assertion failed");
- }
- function inherits(ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- (TempCtor.prototype = superCtor.prototype),
- (ctor.prototype = new TempCtor()),
- (ctor.prototype.constructor = ctor);
- }
- function BN(number, base, endian) {
- if (BN.isBN(number)) return number;
- (this.negative = 0),
- (this.words = null),
- (this.length = 0),
- (this.red = null),
- number !== null &&
- ((base === "le" || base === "be") && ((endian = base), (base = 10)),
- this._init(number || 0, base || 10, endian || "be"));
- }
- typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26);
- var Buffer2;
- try {
- typeof window < "u" && typeof window.Buffer < "u"
- ? (Buffer2 = window.Buffer)
- : (Buffer2 = __require("buffer").Buffer);
- } catch {}
- (BN.isBN = function (num) {
- return num instanceof BN
- ? !0
- : num !== null &&
- typeof num == "object" &&
- num.constructor.wordSize === BN.wordSize &&
- Array.isArray(num.words);
- }),
- (BN.max = function (left, right) {
- return left.cmp(right) > 0 ? left : right;
- }),
- (BN.min = function (left, right) {
- return left.cmp(right) < 0 ? left : right;
- }),
- (BN.prototype._init = function (number, base, endian) {
- if (typeof number == "number") return this._initNumber(number, base, endian);
- if (typeof number == "object") return this._initArray(number, base, endian);
- base === "hex" && (base = 16),
- assert(base === (base | 0) && base >= 2 && base <= 36),
- (number = number.toString().replace(/\s+/g, ""));
- var start = 0;
- number[0] === "-" && (start++, (this.negative = 1)),
- start < number.length &&
- (base === 16
- ? this._parseHex(number, start, endian)
- : (this._parseBase(number, base, start),
- endian === "le" && this._initArray(this.toArray(), base, endian)));
- }),
- (BN.prototype._initNumber = function (number, base, endian) {
- number < 0 && ((this.negative = 1), (number = -number)),
- number < 67108864
- ? ((this.words = [number & 67108863]), (this.length = 1))
- : number < 4503599627370496
- ? ((this.words = [number & 67108863, (number / 67108864) & 67108863]), (this.length = 2))
- : (assert(number < 9007199254740992),
- (this.words = [number & 67108863, (number / 67108864) & 67108863, 1]),
- (this.length = 3)),
- endian === "le" && this._initArray(this.toArray(), base, endian);
- }),
- (BN.prototype._initArray = function (number, base, endian) {
- if ((assert(typeof number.length == "number"), number.length <= 0))
- return (this.words = [0]), (this.length = 1), this;
- (this.length = Math.ceil(number.length / 3)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var j,
- w,
- off = 0;
- if (endian === "be")
- for (i = number.length - 1, j = 0; i >= 0; i -= 3)
- (w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- else if (endian === "le")
- for (i = 0, j = 0; i < number.length; i += 3)
- (w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- return this.strip();
- });
- function parseHex4Bits(string, index) {
- var c = string.charCodeAt(index);
- return c >= 65 && c <= 70 ? c - 55 : c >= 97 && c <= 102 ? c - 87 : (c - 48) & 15;
- }
- function parseHexByte(string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- return index - 1 >= lowerBound && (r |= parseHex4Bits(string, index - 1) << 4), r;
- }
- BN.prototype._parseHex = function (number, start, endian) {
- (this.length = Math.ceil((number.length - start) / 6)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var off = 0,
- j = 0,
- w;
- if (endian === "be")
- for (i = number.length - 1; i >= start; i -= 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- }
- this.strip();
- };
- function parseBase(str, start, end, mul) {
- for (var r = 0, len = Math.min(str.length, end), i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- (r *= mul), c >= 49 ? (r += c - 49 + 10) : c >= 17 ? (r += c - 17 + 10) : (r += c);
- }
- return r;
- }
- (BN.prototype._parseBase = function (number, base, start) {
- (this.words = [0]), (this.length = 1);
- for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) limbLen++;
- limbLen--, (limbPow = (limbPow / base) | 0);
- for (
- var total = number.length - start,
- mod = total % limbLen,
- end = Math.min(total, total - mod) + start,
- word = 0,
- i = start;
- i < end;
- i += limbLen
- )
- (word = parseBase(number, i, i + limbLen, base)),
- this.imuln(limbPow),
- this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- if (mod !== 0) {
- var pow = 1;
- for (word = parseBase(number, i, number.length, base), i = 0; i < mod; i++) pow *= base;
- this.imuln(pow), this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- }
- this.strip();
- }),
- (BN.prototype.copy = function (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) dest.words[i] = this.words[i];
- (dest.length = this.length), (dest.negative = this.negative), (dest.red = this.red);
- }),
- (BN.prototype.clone = function () {
- var r = new BN(null);
- return this.copy(r), r;
- }),
- (BN.prototype._expand = function (size) {
- for (; this.length < size; ) this.words[this.length++] = 0;
- return this;
- }),
- (BN.prototype.strip = function () {
- for (; this.length > 1 && this.words[this.length - 1] === 0; ) this.length--;
- return this._normSign();
- }),
- (BN.prototype._normSign = function () {
- return this.length === 1 && this.words[0] === 0 && (this.negative = 0), this;
- }),
- (BN.prototype.inspect = function () {
- return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
- });
- var zeros = [
- "",
- "0",
- "00",
- "000",
- "0000",
- "00000",
- "000000",
- "0000000",
- "00000000",
- "000000000",
- "0000000000",
- "00000000000",
- "000000000000",
- "0000000000000",
- "00000000000000",
- "000000000000000",
- "0000000000000000",
- "00000000000000000",
- "000000000000000000",
- "0000000000000000000",
- "00000000000000000000",
- "000000000000000000000",
- "0000000000000000000000",
- "00000000000000000000000",
- "000000000000000000000000",
- "0000000000000000000000000",
- ],
- groupSizes = [
- 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5,
- ],
- groupBases = [
- 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808,
- 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624,
- 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875,
- 60466176,
- ];
- (BN.prototype.toString = function (base, padding) {
- (base = base || 10), (padding = padding | 0 || 1);
- var out;
- if (base === 16 || base === "hex") {
- out = "";
- for (var off = 0, carry = 0, i = 0; i < this.length; i++) {
- var w = this.words[i],
- word = (((w << off) | carry) & 16777215).toString(16);
- (carry = (w >>> (24 - off)) & 16777215),
- carry !== 0 || i !== this.length - 1 ? (out = zeros[6 - word.length] + word + out) : (out = word + out),
- (off += 2),
- off >= 26 && ((off -= 26), i--);
- }
- for (carry !== 0 && (out = carry.toString(16) + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- var groupSize = groupSizes[base],
- groupBase = groupBases[base];
- out = "";
- var c = this.clone();
- for (c.negative = 0; !c.isZero(); ) {
- var r = c.modn(groupBase).toString(base);
- (c = c.idivn(groupBase)), c.isZero() ? (out = r + out) : (out = zeros[groupSize - r.length] + r + out);
- }
- for (this.isZero() && (out = "0" + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- assert(!1, "Base should be between 2 and 36");
- }),
- (BN.prototype.toNumber = function () {
- var ret = this.words[0];
- return (
- this.length === 2
- ? (ret += this.words[1] * 67108864)
- : this.length === 3 && this.words[2] === 1
- ? (ret += 4503599627370496 + this.words[1] * 67108864)
- : this.length > 2 && assert(!1, "Number can only safely store up to 53 bits"),
- this.negative !== 0 ? -ret : ret
- );
- }),
- (BN.prototype.toJSON = function () {
- return this.toString(16);
- }),
- (BN.prototype.toBuffer = function (endian, length) {
- return assert(typeof Buffer2 < "u"), this.toArrayLike(Buffer2, endian, length);
- }),
- (BN.prototype.toArray = function (endian, length) {
- return this.toArrayLike(Array, endian, length);
- }),
- (BN.prototype.toArrayLike = function (ArrayType, endian, length) {
- var byteLength = this.byteLength(),
- reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, "byte array longer than desired length"),
- assert(reqLength > 0, "Requested array length <= 0"),
- this.strip();
- var littleEndian = endian === "le",
- res = new ArrayType(reqLength),
- b,
- i,
- q = this.clone();
- if (littleEndian) {
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[i] = b);
- for (; i < reqLength; i++) res[i] = 0;
- } else {
- for (i = 0; i < reqLength - byteLength; i++) res[i] = 0;
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[reqLength - i - 1] = b);
- }
- return res;
- }),
- Math.clz32
- ? (BN.prototype._countBits = function (w) {
- return 32 - Math.clz32(w);
- })
- : (BN.prototype._countBits = function (w) {
- var t = w,
- r = 0;
- return (
- t >= 4096 && ((r += 13), (t >>>= 13)),
- t >= 64 && ((r += 7), (t >>>= 7)),
- t >= 8 && ((r += 4), (t >>>= 4)),
- t >= 2 && ((r += 2), (t >>>= 2)),
- r + t
- );
- }),
- (BN.prototype._zeroBits = function (w) {
- if (w === 0) return 26;
- var t = w,
- r = 0;
- return (
- (t & 8191) === 0 && ((r += 13), (t >>>= 13)),
- (t & 127) === 0 && ((r += 7), (t >>>= 7)),
- (t & 15) === 0 && ((r += 4), (t >>>= 4)),
- (t & 3) === 0 && ((r += 2), (t >>>= 2)),
- (t & 1) === 0 && r++,
- r
- );
- }),
- (BN.prototype.bitLength = function () {
- var w = this.words[this.length - 1],
- hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- });
- function toBitArray(num) {
- for (var w = new Array(num.bitLength()), bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;
- }
- return w;
- }
- (BN.prototype.zeroBits = function () {
- if (this.isZero()) return 0;
- for (var r = 0, i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- if (((r += b), b !== 26)) break;
- }
- return r;
- }),
- (BN.prototype.byteLength = function () {
- return Math.ceil(this.bitLength() / 8);
- }),
- (BN.prototype.toTwos = function (width) {
- return this.negative !== 0 ? this.abs().inotn(width).iaddn(1) : this.clone();
- }),
- (BN.prototype.fromTwos = function (width) {
- return this.testn(width - 1) ? this.notn(width).iaddn(1).ineg() : this.clone();
- }),
- (BN.prototype.isNeg = function () {
- return this.negative !== 0;
- }),
- (BN.prototype.neg = function () {
- return this.clone().ineg();
- }),
- (BN.prototype.ineg = function () {
- return this.isZero() || (this.negative ^= 1), this;
- }),
- (BN.prototype.iuor = function (num) {
- for (; this.length < num.length; ) this.words[this.length++] = 0;
- for (var i = 0; i < num.length; i++) this.words[i] = this.words[i] | num.words[i];
- return this.strip();
- }),
- (BN.prototype.ior = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuor(num);
- }),
- (BN.prototype.or = function (num) {
- return this.length > num.length ? this.clone().ior(num) : num.clone().ior(this);
- }),
- (BN.prototype.uor = function (num) {
- return this.length > num.length ? this.clone().iuor(num) : num.clone().iuor(this);
- }),
- (BN.prototype.iuand = function (num) {
- var b;
- this.length > num.length ? (b = num) : (b = this);
- for (var i = 0; i < b.length; i++) this.words[i] = this.words[i] & num.words[i];
- return (this.length = b.length), this.strip();
- }),
- (BN.prototype.iand = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuand(num);
- }),
- (BN.prototype.and = function (num) {
- return this.length > num.length ? this.clone().iand(num) : num.clone().iand(this);
- }),
- (BN.prototype.uand = function (num) {
- return this.length > num.length ? this.clone().iuand(num) : num.clone().iuand(this);
- }),
- (BN.prototype.iuxor = function (num) {
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var i = 0; i < b.length; i++) this.words[i] = a.words[i] ^ b.words[i];
- if (this !== a) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = a.length), this.strip();
- }),
- (BN.prototype.ixor = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuxor(num);
- }),
- (BN.prototype.xor = function (num) {
- return this.length > num.length ? this.clone().ixor(num) : num.clone().ixor(this);
- }),
- (BN.prototype.uxor = function (num) {
- return this.length > num.length ? this.clone().iuxor(num) : num.clone().iuxor(this);
- }),
- (BN.prototype.inotn = function (width) {
- assert(typeof width == "number" && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0,
- bitsLeft = width % 26;
- this._expand(bytesNeeded), bitsLeft > 0 && bytesNeeded--;
- for (var i = 0; i < bytesNeeded; i++) this.words[i] = ~this.words[i] & 67108863;
- return bitsLeft > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft))), this.strip();
- }),
- (BN.prototype.notn = function (width) {
- return this.clone().inotn(width);
- }),
- (BN.prototype.setn = function (bit, val) {
- assert(typeof bit == "number" && bit >= 0);
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- return (
- this._expand(off + 1),
- val
- ? (this.words[off] = this.words[off] | (1 << wbit))
- : (this.words[off] = this.words[off] & ~(1 << wbit)),
- this.strip()
- );
- }),
- (BN.prototype.iadd = function (num) {
- var r;
- if (this.negative !== 0 && num.negative === 0)
- return (this.negative = 0), (r = this.isub(num)), (this.negative ^= 1), this._normSign();
- if (this.negative === 0 && num.negative !== 0)
- return (num.negative = 0), (r = this.isub(num)), (num.negative = 1), r._normSign();
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) + (b.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- if (((this.length = a.length), carry !== 0)) (this.words[this.length] = carry), this.length++;
- else if (a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return this;
- }),
- (BN.prototype.add = function (num) {
- var res;
- return num.negative !== 0 && this.negative === 0
- ? ((num.negative = 0), (res = this.sub(num)), (num.negative ^= 1), res)
- : num.negative === 0 && this.negative !== 0
- ? ((this.negative = 0), (res = num.sub(this)), (this.negative = 1), res)
- : this.length > num.length
- ? this.clone().iadd(num)
- : num.clone().iadd(this);
- }),
- (BN.prototype.isub = function (num) {
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- return (num.negative = 1), r._normSign();
- } else if (this.negative !== 0)
- return (this.negative = 0), this.iadd(num), (this.negative = 1), this._normSign();
- var cmp = this.cmp(num);
- if (cmp === 0) return (this.negative = 0), (this.length = 1), (this.words[0] = 0), this;
- var a, b;
- cmp > 0 ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) - (b.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- if (carry === 0 && i < a.length && a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = Math.max(this.length, i)), a !== this && (this.negative = 1), this.strip();
- }),
- (BN.prototype.sub = function (num) {
- return this.clone().isub(num);
- });
- function smallMulTo(self2, num, out) {
- out.negative = num.negative ^ self2.negative;
- var len = (self2.length + num.length) | 0;
- (out.length = len), (len = (len - 1) | 0);
- var a = self2.words[0] | 0,
- b = num.words[0] | 0,
- r = a * b,
- lo = r & 67108863,
- carry = (r / 67108864) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- for (
- var ncarry = carry >>> 26,
- rword = carry & 67108863,
- maxJ = Math.min(k, num.length - 1),
- j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = (k - j) | 0;
- (a = self2.words[i] | 0),
- (b = num.words[j] | 0),
- (r = a * b + rword),
- (ncarry += (r / 67108864) | 0),
- (rword = r & 67108863);
- }
- (out.words[k] = rword | 0), (carry = ncarry | 0);
- }
- return carry !== 0 ? (out.words[k] = carry | 0) : out.length--, out.strip();
- }
- var comb10MulTo = function (self2, num, out) {
- var a = self2.words,
- b = num.words,
- o = out.words,
- c = 0,
- lo,
- mid,
- hi,
- a0 = a[0] | 0,
- al0 = a0 & 8191,
- ah0 = a0 >>> 13,
- a1 = a[1] | 0,
- al1 = a1 & 8191,
- ah1 = a1 >>> 13,
- a2 = a[2] | 0,
- al2 = a2 & 8191,
- ah2 = a2 >>> 13,
- a3 = a[3] | 0,
- al3 = a3 & 8191,
- ah3 = a3 >>> 13,
- a4 = a[4] | 0,
- al4 = a4 & 8191,
- ah4 = a4 >>> 13,
- a5 = a[5] | 0,
- al5 = a5 & 8191,
- ah5 = a5 >>> 13,
- a6 = a[6] | 0,
- al6 = a6 & 8191,
- ah6 = a6 >>> 13,
- a7 = a[7] | 0,
- al7 = a7 & 8191,
- ah7 = a7 >>> 13,
- a8 = a[8] | 0,
- al8 = a8 & 8191,
- ah8 = a8 >>> 13,
- a9 = a[9] | 0,
- al9 = a9 & 8191,
- ah9 = a9 >>> 13,
- b0 = b[0] | 0,
- bl0 = b0 & 8191,
- bh0 = b0 >>> 13,
- b1 = b[1] | 0,
- bl1 = b1 & 8191,
- bh1 = b1 >>> 13,
- b2 = b[2] | 0,
- bl2 = b2 & 8191,
- bh2 = b2 >>> 13,
- b3 = b[3] | 0,
- bl3 = b3 & 8191,
- bh3 = b3 >>> 13,
- b4 = b[4] | 0,
- bl4 = b4 & 8191,
- bh4 = b4 >>> 13,
- b5 = b[5] | 0,
- bl5 = b5 & 8191,
- bh5 = b5 >>> 13,
- b6 = b[6] | 0,
- bl6 = b6 & 8191,
- bh6 = b6 >>> 13,
- b7 = b[7] | 0,
- bl7 = b7 & 8191,
- bh7 = b7 >>> 13,
- b8 = b[8] | 0,
- bl8 = b8 & 8191,
- bh8 = b8 >>> 13,
- b9 = b[9] | 0,
- bl9 = b9 & 8191,
- bh9 = b9 >>> 13;
- (out.negative = self2.negative ^ num.negative),
- (out.length = 19),
- (lo = Math.imul(al0, bl0)),
- (mid = Math.imul(al0, bh0)),
- (mid = (mid + Math.imul(ah0, bl0)) | 0),
- (hi = Math.imul(ah0, bh0));
- var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0),
- (w0 &= 67108863),
- (lo = Math.imul(al1, bl0)),
- (mid = Math.imul(al1, bh0)),
- (mid = (mid + Math.imul(ah1, bl0)) | 0),
- (hi = Math.imul(ah1, bh0)),
- (lo = (lo + Math.imul(al0, bl1)) | 0),
- (mid = (mid + Math.imul(al0, bh1)) | 0),
- (mid = (mid + Math.imul(ah0, bl1)) | 0),
- (hi = (hi + Math.imul(ah0, bh1)) | 0);
- var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0),
- (w1 &= 67108863),
- (lo = Math.imul(al2, bl0)),
- (mid = Math.imul(al2, bh0)),
- (mid = (mid + Math.imul(ah2, bl0)) | 0),
- (hi = Math.imul(ah2, bh0)),
- (lo = (lo + Math.imul(al1, bl1)) | 0),
- (mid = (mid + Math.imul(al1, bh1)) | 0),
- (mid = (mid + Math.imul(ah1, bl1)) | 0),
- (hi = (hi + Math.imul(ah1, bh1)) | 0),
- (lo = (lo + Math.imul(al0, bl2)) | 0),
- (mid = (mid + Math.imul(al0, bh2)) | 0),
- (mid = (mid + Math.imul(ah0, bl2)) | 0),
- (hi = (hi + Math.imul(ah0, bh2)) | 0);
- var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0),
- (w2 &= 67108863),
- (lo = Math.imul(al3, bl0)),
- (mid = Math.imul(al3, bh0)),
- (mid = (mid + Math.imul(ah3, bl0)) | 0),
- (hi = Math.imul(ah3, bh0)),
- (lo = (lo + Math.imul(al2, bl1)) | 0),
- (mid = (mid + Math.imul(al2, bh1)) | 0),
- (mid = (mid + Math.imul(ah2, bl1)) | 0),
- (hi = (hi + Math.imul(ah2, bh1)) | 0),
- (lo = (lo + Math.imul(al1, bl2)) | 0),
- (mid = (mid + Math.imul(al1, bh2)) | 0),
- (mid = (mid + Math.imul(ah1, bl2)) | 0),
- (hi = (hi + Math.imul(ah1, bh2)) | 0),
- (lo = (lo + Math.imul(al0, bl3)) | 0),
- (mid = (mid + Math.imul(al0, bh3)) | 0),
- (mid = (mid + Math.imul(ah0, bl3)) | 0),
- (hi = (hi + Math.imul(ah0, bh3)) | 0);
- var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0),
- (w3 &= 67108863),
- (lo = Math.imul(al4, bl0)),
- (mid = Math.imul(al4, bh0)),
- (mid = (mid + Math.imul(ah4, bl0)) | 0),
- (hi = Math.imul(ah4, bh0)),
- (lo = (lo + Math.imul(al3, bl1)) | 0),
- (mid = (mid + Math.imul(al3, bh1)) | 0),
- (mid = (mid + Math.imul(ah3, bl1)) | 0),
- (hi = (hi + Math.imul(ah3, bh1)) | 0),
- (lo = (lo + Math.imul(al2, bl2)) | 0),
- (mid = (mid + Math.imul(al2, bh2)) | 0),
- (mid = (mid + Math.imul(ah2, bl2)) | 0),
- (hi = (hi + Math.imul(ah2, bh2)) | 0),
- (lo = (lo + Math.imul(al1, bl3)) | 0),
- (mid = (mid + Math.imul(al1, bh3)) | 0),
- (mid = (mid + Math.imul(ah1, bl3)) | 0),
- (hi = (hi + Math.imul(ah1, bh3)) | 0),
- (lo = (lo + Math.imul(al0, bl4)) | 0),
- (mid = (mid + Math.imul(al0, bh4)) | 0),
- (mid = (mid + Math.imul(ah0, bl4)) | 0),
- (hi = (hi + Math.imul(ah0, bh4)) | 0);
- var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0),
- (w4 &= 67108863),
- (lo = Math.imul(al5, bl0)),
- (mid = Math.imul(al5, bh0)),
- (mid = (mid + Math.imul(ah5, bl0)) | 0),
- (hi = Math.imul(ah5, bh0)),
- (lo = (lo + Math.imul(al4, bl1)) | 0),
- (mid = (mid + Math.imul(al4, bh1)) | 0),
- (mid = (mid + Math.imul(ah4, bl1)) | 0),
- (hi = (hi + Math.imul(ah4, bh1)) | 0),
- (lo = (lo + Math.imul(al3, bl2)) | 0),
- (mid = (mid + Math.imul(al3, bh2)) | 0),
- (mid = (mid + Math.imul(ah3, bl2)) | 0),
- (hi = (hi + Math.imul(ah3, bh2)) | 0),
- (lo = (lo + Math.imul(al2, bl3)) | 0),
- (mid = (mid + Math.imul(al2, bh3)) | 0),
- (mid = (mid + Math.imul(ah2, bl3)) | 0),
- (hi = (hi + Math.imul(ah2, bh3)) | 0),
- (lo = (lo + Math.imul(al1, bl4)) | 0),
- (mid = (mid + Math.imul(al1, bh4)) | 0),
- (mid = (mid + Math.imul(ah1, bl4)) | 0),
- (hi = (hi + Math.imul(ah1, bh4)) | 0),
- (lo = (lo + Math.imul(al0, bl5)) | 0),
- (mid = (mid + Math.imul(al0, bh5)) | 0),
- (mid = (mid + Math.imul(ah0, bl5)) | 0),
- (hi = (hi + Math.imul(ah0, bh5)) | 0);
- var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0),
- (w5 &= 67108863),
- (lo = Math.imul(al6, bl0)),
- (mid = Math.imul(al6, bh0)),
- (mid = (mid + Math.imul(ah6, bl0)) | 0),
- (hi = Math.imul(ah6, bh0)),
- (lo = (lo + Math.imul(al5, bl1)) | 0),
- (mid = (mid + Math.imul(al5, bh1)) | 0),
- (mid = (mid + Math.imul(ah5, bl1)) | 0),
- (hi = (hi + Math.imul(ah5, bh1)) | 0),
- (lo = (lo + Math.imul(al4, bl2)) | 0),
- (mid = (mid + Math.imul(al4, bh2)) | 0),
- (mid = (mid + Math.imul(ah4, bl2)) | 0),
- (hi = (hi + Math.imul(ah4, bh2)) | 0),
- (lo = (lo + Math.imul(al3, bl3)) | 0),
- (mid = (mid + Math.imul(al3, bh3)) | 0),
- (mid = (mid + Math.imul(ah3, bl3)) | 0),
- (hi = (hi + Math.imul(ah3, bh3)) | 0),
- (lo = (lo + Math.imul(al2, bl4)) | 0),
- (mid = (mid + Math.imul(al2, bh4)) | 0),
- (mid = (mid + Math.imul(ah2, bl4)) | 0),
- (hi = (hi + Math.imul(ah2, bh4)) | 0),
- (lo = (lo + Math.imul(al1, bl5)) | 0),
- (mid = (mid + Math.imul(al1, bh5)) | 0),
- (mid = (mid + Math.imul(ah1, bl5)) | 0),
- (hi = (hi + Math.imul(ah1, bh5)) | 0),
- (lo = (lo + Math.imul(al0, bl6)) | 0),
- (mid = (mid + Math.imul(al0, bh6)) | 0),
- (mid = (mid + Math.imul(ah0, bl6)) | 0),
- (hi = (hi + Math.imul(ah0, bh6)) | 0);
- var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0),
- (w6 &= 67108863),
- (lo = Math.imul(al7, bl0)),
- (mid = Math.imul(al7, bh0)),
- (mid = (mid + Math.imul(ah7, bl0)) | 0),
- (hi = Math.imul(ah7, bh0)),
- (lo = (lo + Math.imul(al6, bl1)) | 0),
- (mid = (mid + Math.imul(al6, bh1)) | 0),
- (mid = (mid + Math.imul(ah6, bl1)) | 0),
- (hi = (hi + Math.imul(ah6, bh1)) | 0),
- (lo = (lo + Math.imul(al5, bl2)) | 0),
- (mid = (mid + Math.imul(al5, bh2)) | 0),
- (mid = (mid + Math.imul(ah5, bl2)) | 0),
- (hi = (hi + Math.imul(ah5, bh2)) | 0),
- (lo = (lo + Math.imul(al4, bl3)) | 0),
- (mid = (mid + Math.imul(al4, bh3)) | 0),
- (mid = (mid + Math.imul(ah4, bl3)) | 0),
- (hi = (hi + Math.imul(ah4, bh3)) | 0),
- (lo = (lo + Math.imul(al3, bl4)) | 0),
- (mid = (mid + Math.imul(al3, bh4)) | 0),
- (mid = (mid + Math.imul(ah3, bl4)) | 0),
- (hi = (hi + Math.imul(ah3, bh4)) | 0),
- (lo = (lo + Math.imul(al2, bl5)) | 0),
- (mid = (mid + Math.imul(al2, bh5)) | 0),
- (mid = (mid + Math.imul(ah2, bl5)) | 0),
- (hi = (hi + Math.imul(ah2, bh5)) | 0),
- (lo = (lo + Math.imul(al1, bl6)) | 0),
- (mid = (mid + Math.imul(al1, bh6)) | 0),
- (mid = (mid + Math.imul(ah1, bl6)) | 0),
- (hi = (hi + Math.imul(ah1, bh6)) | 0),
- (lo = (lo + Math.imul(al0, bl7)) | 0),
- (mid = (mid + Math.imul(al0, bh7)) | 0),
- (mid = (mid + Math.imul(ah0, bl7)) | 0),
- (hi = (hi + Math.imul(ah0, bh7)) | 0);
- var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0),
- (w7 &= 67108863),
- (lo = Math.imul(al8, bl0)),
- (mid = Math.imul(al8, bh0)),
- (mid = (mid + Math.imul(ah8, bl0)) | 0),
- (hi = Math.imul(ah8, bh0)),
- (lo = (lo + Math.imul(al7, bl1)) | 0),
- (mid = (mid + Math.imul(al7, bh1)) | 0),
- (mid = (mid + Math.imul(ah7, bl1)) | 0),
- (hi = (hi + Math.imul(ah7, bh1)) | 0),
- (lo = (lo + Math.imul(al6, bl2)) | 0),
- (mid = (mid + Math.imul(al6, bh2)) | 0),
- (mid = (mid + Math.imul(ah6, bl2)) | 0),
- (hi = (hi + Math.imul(ah6, bh2)) | 0),
- (lo = (lo + Math.imul(al5, bl3)) | 0),
- (mid = (mid + Math.imul(al5, bh3)) | 0),
- (mid = (mid + Math.imul(ah5, bl3)) | 0),
- (hi = (hi + Math.imul(ah5, bh3)) | 0),
- (lo = (lo + Math.imul(al4, bl4)) | 0),
- (mid = (mid + Math.imul(al4, bh4)) | 0),
- (mid = (mid + Math.imul(ah4, bl4)) | 0),
- (hi = (hi + Math.imul(ah4, bh4)) | 0),
- (lo = (lo + Math.imul(al3, bl5)) | 0),
- (mid = (mid + Math.imul(al3, bh5)) | 0),
- (mid = (mid + Math.imul(ah3, bl5)) | 0),
- (hi = (hi + Math.imul(ah3, bh5)) | 0),
- (lo = (lo + Math.imul(al2, bl6)) | 0),
- (mid = (mid + Math.imul(al2, bh6)) | 0),
- (mid = (mid + Math.imul(ah2, bl6)) | 0),
- (hi = (hi + Math.imul(ah2, bh6)) | 0),
- (lo = (lo + Math.imul(al1, bl7)) | 0),
- (mid = (mid + Math.imul(al1, bh7)) | 0),
- (mid = (mid + Math.imul(ah1, bl7)) | 0),
- (hi = (hi + Math.imul(ah1, bh7)) | 0),
- (lo = (lo + Math.imul(al0, bl8)) | 0),
- (mid = (mid + Math.imul(al0, bh8)) | 0),
- (mid = (mid + Math.imul(ah0, bl8)) | 0),
- (hi = (hi + Math.imul(ah0, bh8)) | 0);
- var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0),
- (w8 &= 67108863),
- (lo = Math.imul(al9, bl0)),
- (mid = Math.imul(al9, bh0)),
- (mid = (mid + Math.imul(ah9, bl0)) | 0),
- (hi = Math.imul(ah9, bh0)),
- (lo = (lo + Math.imul(al8, bl1)) | 0),
- (mid = (mid + Math.imul(al8, bh1)) | 0),
- (mid = (mid + Math.imul(ah8, bl1)) | 0),
- (hi = (hi + Math.imul(ah8, bh1)) | 0),
- (lo = (lo + Math.imul(al7, bl2)) | 0),
- (mid = (mid + Math.imul(al7, bh2)) | 0),
- (mid = (mid + Math.imul(ah7, bl2)) | 0),
- (hi = (hi + Math.imul(ah7, bh2)) | 0),
- (lo = (lo + Math.imul(al6, bl3)) | 0),
- (mid = (mid + Math.imul(al6, bh3)) | 0),
- (mid = (mid + Math.imul(ah6, bl3)) | 0),
- (hi = (hi + Math.imul(ah6, bh3)) | 0),
- (lo = (lo + Math.imul(al5, bl4)) | 0),
- (mid = (mid + Math.imul(al5, bh4)) | 0),
- (mid = (mid + Math.imul(ah5, bl4)) | 0),
- (hi = (hi + Math.imul(ah5, bh4)) | 0),
- (lo = (lo + Math.imul(al4, bl5)) | 0),
- (mid = (mid + Math.imul(al4, bh5)) | 0),
- (mid = (mid + Math.imul(ah4, bl5)) | 0),
- (hi = (hi + Math.imul(ah4, bh5)) | 0),
- (lo = (lo + Math.imul(al3, bl6)) | 0),
- (mid = (mid + Math.imul(al3, bh6)) | 0),
- (mid = (mid + Math.imul(ah3, bl6)) | 0),
- (hi = (hi + Math.imul(ah3, bh6)) | 0),
- (lo = (lo + Math.imul(al2, bl7)) | 0),
- (mid = (mid + Math.imul(al2, bh7)) | 0),
- (mid = (mid + Math.imul(ah2, bl7)) | 0),
- (hi = (hi + Math.imul(ah2, bh7)) | 0),
- (lo = (lo + Math.imul(al1, bl8)) | 0),
- (mid = (mid + Math.imul(al1, bh8)) | 0),
- (mid = (mid + Math.imul(ah1, bl8)) | 0),
- (hi = (hi + Math.imul(ah1, bh8)) | 0),
- (lo = (lo + Math.imul(al0, bl9)) | 0),
- (mid = (mid + Math.imul(al0, bh9)) | 0),
- (mid = (mid + Math.imul(ah0, bl9)) | 0),
- (hi = (hi + Math.imul(ah0, bh9)) | 0);
- var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0),
- (w9 &= 67108863),
- (lo = Math.imul(al9, bl1)),
- (mid = Math.imul(al9, bh1)),
- (mid = (mid + Math.imul(ah9, bl1)) | 0),
- (hi = Math.imul(ah9, bh1)),
- (lo = (lo + Math.imul(al8, bl2)) | 0),
- (mid = (mid + Math.imul(al8, bh2)) | 0),
- (mid = (mid + Math.imul(ah8, bl2)) | 0),
- (hi = (hi + Math.imul(ah8, bh2)) | 0),
- (lo = (lo + Math.imul(al7, bl3)) | 0),
- (mid = (mid + Math.imul(al7, bh3)) | 0),
- (mid = (mid + Math.imul(ah7, bl3)) | 0),
- (hi = (hi + Math.imul(ah7, bh3)) | 0),
- (lo = (lo + Math.imul(al6, bl4)) | 0),
- (mid = (mid + Math.imul(al6, bh4)) | 0),
- (mid = (mid + Math.imul(ah6, bl4)) | 0),
- (hi = (hi + Math.imul(ah6, bh4)) | 0),
- (lo = (lo + Math.imul(al5, bl5)) | 0),
- (mid = (mid + Math.imul(al5, bh5)) | 0),
- (mid = (mid + Math.imul(ah5, bl5)) | 0),
- (hi = (hi + Math.imul(ah5, bh5)) | 0),
- (lo = (lo + Math.imul(al4, bl6)) | 0),
- (mid = (mid + Math.imul(al4, bh6)) | 0),
- (mid = (mid + Math.imul(ah4, bl6)) | 0),
- (hi = (hi + Math.imul(ah4, bh6)) | 0),
- (lo = (lo + Math.imul(al3, bl7)) | 0),
- (mid = (mid + Math.imul(al3, bh7)) | 0),
- (mid = (mid + Math.imul(ah3, bl7)) | 0),
- (hi = (hi + Math.imul(ah3, bh7)) | 0),
- (lo = (lo + Math.imul(al2, bl8)) | 0),
- (mid = (mid + Math.imul(al2, bh8)) | 0),
- (mid = (mid + Math.imul(ah2, bl8)) | 0),
- (hi = (hi + Math.imul(ah2, bh8)) | 0),
- (lo = (lo + Math.imul(al1, bl9)) | 0),
- (mid = (mid + Math.imul(al1, bh9)) | 0),
- (mid = (mid + Math.imul(ah1, bl9)) | 0),
- (hi = (hi + Math.imul(ah1, bh9)) | 0);
- var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0),
- (w10 &= 67108863),
- (lo = Math.imul(al9, bl2)),
- (mid = Math.imul(al9, bh2)),
- (mid = (mid + Math.imul(ah9, bl2)) | 0),
- (hi = Math.imul(ah9, bh2)),
- (lo = (lo + Math.imul(al8, bl3)) | 0),
- (mid = (mid + Math.imul(al8, bh3)) | 0),
- (mid = (mid + Math.imul(ah8, bl3)) | 0),
- (hi = (hi + Math.imul(ah8, bh3)) | 0),
- (lo = (lo + Math.imul(al7, bl4)) | 0),
- (mid = (mid + Math.imul(al7, bh4)) | 0),
- (mid = (mid + Math.imul(ah7, bl4)) | 0),
- (hi = (hi + Math.imul(ah7, bh4)) | 0),
- (lo = (lo + Math.imul(al6, bl5)) | 0),
- (mid = (mid + Math.imul(al6, bh5)) | 0),
- (mid = (mid + Math.imul(ah6, bl5)) | 0),
- (hi = (hi + Math.imul(ah6, bh5)) | 0),
- (lo = (lo + Math.imul(al5, bl6)) | 0),
- (mid = (mid + Math.imul(al5, bh6)) | 0),
- (mid = (mid + Math.imul(ah5, bl6)) | 0),
- (hi = (hi + Math.imul(ah5, bh6)) | 0),
- (lo = (lo + Math.imul(al4, bl7)) | 0),
- (mid = (mid + Math.imul(al4, bh7)) | 0),
- (mid = (mid + Math.imul(ah4, bl7)) | 0),
- (hi = (hi + Math.imul(ah4, bh7)) | 0),
- (lo = (lo + Math.imul(al3, bl8)) | 0),
- (mid = (mid + Math.imul(al3, bh8)) | 0),
- (mid = (mid + Math.imul(ah3, bl8)) | 0),
- (hi = (hi + Math.imul(ah3, bh8)) | 0),
- (lo = (lo + Math.imul(al2, bl9)) | 0),
- (mid = (mid + Math.imul(al2, bh9)) | 0),
- (mid = (mid + Math.imul(ah2, bl9)) | 0),
- (hi = (hi + Math.imul(ah2, bh9)) | 0);
- var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0),
- (w11 &= 67108863),
- (lo = Math.imul(al9, bl3)),
- (mid = Math.imul(al9, bh3)),
- (mid = (mid + Math.imul(ah9, bl3)) | 0),
- (hi = Math.imul(ah9, bh3)),
- (lo = (lo + Math.imul(al8, bl4)) | 0),
- (mid = (mid + Math.imul(al8, bh4)) | 0),
- (mid = (mid + Math.imul(ah8, bl4)) | 0),
- (hi = (hi + Math.imul(ah8, bh4)) | 0),
- (lo = (lo + Math.imul(al7, bl5)) | 0),
- (mid = (mid + Math.imul(al7, bh5)) | 0),
- (mid = (mid + Math.imul(ah7, bl5)) | 0),
- (hi = (hi + Math.imul(ah7, bh5)) | 0),
- (lo = (lo + Math.imul(al6, bl6)) | 0),
- (mid = (mid + Math.imul(al6, bh6)) | 0),
- (mid = (mid + Math.imul(ah6, bl6)) | 0),
- (hi = (hi + Math.imul(ah6, bh6)) | 0),
- (lo = (lo + Math.imul(al5, bl7)) | 0),
- (mid = (mid + Math.imul(al5, bh7)) | 0),
- (mid = (mid + Math.imul(ah5, bl7)) | 0),
- (hi = (hi + Math.imul(ah5, bh7)) | 0),
- (lo = (lo + Math.imul(al4, bl8)) | 0),
- (mid = (mid + Math.imul(al4, bh8)) | 0),
- (mid = (mid + Math.imul(ah4, bl8)) | 0),
- (hi = (hi + Math.imul(ah4, bh8)) | 0),
- (lo = (lo + Math.imul(al3, bl9)) | 0),
- (mid = (mid + Math.imul(al3, bh9)) | 0),
- (mid = (mid + Math.imul(ah3, bl9)) | 0),
- (hi = (hi + Math.imul(ah3, bh9)) | 0);
- var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0),
- (w12 &= 67108863),
- (lo = Math.imul(al9, bl4)),
- (mid = Math.imul(al9, bh4)),
- (mid = (mid + Math.imul(ah9, bl4)) | 0),
- (hi = Math.imul(ah9, bh4)),
- (lo = (lo + Math.imul(al8, bl5)) | 0),
- (mid = (mid + Math.imul(al8, bh5)) | 0),
- (mid = (mid + Math.imul(ah8, bl5)) | 0),
- (hi = (hi + Math.imul(ah8, bh5)) | 0),
- (lo = (lo + Math.imul(al7, bl6)) | 0),
- (mid = (mid + Math.imul(al7, bh6)) | 0),
- (mid = (mid + Math.imul(ah7, bl6)) | 0),
- (hi = (hi + Math.imul(ah7, bh6)) | 0),
- (lo = (lo + Math.imul(al6, bl7)) | 0),
- (mid = (mid + Math.imul(al6, bh7)) | 0),
- (mid = (mid + Math.imul(ah6, bl7)) | 0),
- (hi = (hi + Math.imul(ah6, bh7)) | 0),
- (lo = (lo + Math.imul(al5, bl8)) | 0),
- (mid = (mid + Math.imul(al5, bh8)) | 0),
- (mid = (mid + Math.imul(ah5, bl8)) | 0),
- (hi = (hi + Math.imul(ah5, bh8)) | 0),
- (lo = (lo + Math.imul(al4, bl9)) | 0),
- (mid = (mid + Math.imul(al4, bh9)) | 0),
- (mid = (mid + Math.imul(ah4, bl9)) | 0),
- (hi = (hi + Math.imul(ah4, bh9)) | 0);
- var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0),
- (w13 &= 67108863),
- (lo = Math.imul(al9, bl5)),
- (mid = Math.imul(al9, bh5)),
- (mid = (mid + Math.imul(ah9, bl5)) | 0),
- (hi = Math.imul(ah9, bh5)),
- (lo = (lo + Math.imul(al8, bl6)) | 0),
- (mid = (mid + Math.imul(al8, bh6)) | 0),
- (mid = (mid + Math.imul(ah8, bl6)) | 0),
- (hi = (hi + Math.imul(ah8, bh6)) | 0),
- (lo = (lo + Math.imul(al7, bl7)) | 0),
- (mid = (mid + Math.imul(al7, bh7)) | 0),
- (mid = (mid + Math.imul(ah7, bl7)) | 0),
- (hi = (hi + Math.imul(ah7, bh7)) | 0),
- (lo = (lo + Math.imul(al6, bl8)) | 0),
- (mid = (mid + Math.imul(al6, bh8)) | 0),
- (mid = (mid + Math.imul(ah6, bl8)) | 0),
- (hi = (hi + Math.imul(ah6, bh8)) | 0),
- (lo = (lo + Math.imul(al5, bl9)) | 0),
- (mid = (mid + Math.imul(al5, bh9)) | 0),
- (mid = (mid + Math.imul(ah5, bl9)) | 0),
- (hi = (hi + Math.imul(ah5, bh9)) | 0);
- var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0),
- (w14 &= 67108863),
- (lo = Math.imul(al9, bl6)),
- (mid = Math.imul(al9, bh6)),
- (mid = (mid + Math.imul(ah9, bl6)) | 0),
- (hi = Math.imul(ah9, bh6)),
- (lo = (lo + Math.imul(al8, bl7)) | 0),
- (mid = (mid + Math.imul(al8, bh7)) | 0),
- (mid = (mid + Math.imul(ah8, bl7)) | 0),
- (hi = (hi + Math.imul(ah8, bh7)) | 0),
- (lo = (lo + Math.imul(al7, bl8)) | 0),
- (mid = (mid + Math.imul(al7, bh8)) | 0),
- (mid = (mid + Math.imul(ah7, bl8)) | 0),
- (hi = (hi + Math.imul(ah7, bh8)) | 0),
- (lo = (lo + Math.imul(al6, bl9)) | 0),
- (mid = (mid + Math.imul(al6, bh9)) | 0),
- (mid = (mid + Math.imul(ah6, bl9)) | 0),
- (hi = (hi + Math.imul(ah6, bh9)) | 0);
- var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0),
- (w15 &= 67108863),
- (lo = Math.imul(al9, bl7)),
- (mid = Math.imul(al9, bh7)),
- (mid = (mid + Math.imul(ah9, bl7)) | 0),
- (hi = Math.imul(ah9, bh7)),
- (lo = (lo + Math.imul(al8, bl8)) | 0),
- (mid = (mid + Math.imul(al8, bh8)) | 0),
- (mid = (mid + Math.imul(ah8, bl8)) | 0),
- (hi = (hi + Math.imul(ah8, bh8)) | 0),
- (lo = (lo + Math.imul(al7, bl9)) | 0),
- (mid = (mid + Math.imul(al7, bh9)) | 0),
- (mid = (mid + Math.imul(ah7, bl9)) | 0),
- (hi = (hi + Math.imul(ah7, bh9)) | 0);
- var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0),
- (w16 &= 67108863),
- (lo = Math.imul(al9, bl8)),
- (mid = Math.imul(al9, bh8)),
- (mid = (mid + Math.imul(ah9, bl8)) | 0),
- (hi = Math.imul(ah9, bh8)),
- (lo = (lo + Math.imul(al8, bl9)) | 0),
- (mid = (mid + Math.imul(al8, bh9)) | 0),
- (mid = (mid + Math.imul(ah8, bl9)) | 0),
- (hi = (hi + Math.imul(ah8, bh9)) | 0);
- var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0),
- (w17 &= 67108863),
- (lo = Math.imul(al9, bl9)),
- (mid = Math.imul(al9, bh9)),
- (mid = (mid + Math.imul(ah9, bl9)) | 0),
- (hi = Math.imul(ah9, bh9));
- var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- return (
- (c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0),
- (w18 &= 67108863),
- (o[0] = w0),
- (o[1] = w1),
- (o[2] = w2),
- (o[3] = w3),
- (o[4] = w4),
- (o[5] = w5),
- (o[6] = w6),
- (o[7] = w7),
- (o[8] = w8),
- (o[9] = w9),
- (o[10] = w10),
- (o[11] = w11),
- (o[12] = w12),
- (o[13] = w13),
- (o[14] = w14),
- (o[15] = w15),
- (o[16] = w16),
- (o[17] = w17),
- (o[18] = w18),
- c !== 0 && ((o[19] = c), out.length++),
- out
- );
- };
- Math.imul || (comb10MulTo = smallMulTo);
- function bigMulTo(self2, num, out) {
- (out.negative = num.negative ^ self2.negative), (out.length = self2.length + num.length);
- for (var carry = 0, hncarry = 0, k = 0; k < out.length - 1; k++) {
- var ncarry = hncarry;
- hncarry = 0;
- for (
- var rword = carry & 67108863, maxJ = Math.min(k, num.length - 1), j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = k - j,
- a = self2.words[i] | 0,
- b = num.words[j] | 0,
- r = a * b,
- lo = r & 67108863;
- (ncarry = (ncarry + ((r / 67108864) | 0)) | 0),
- (lo = (lo + rword) | 0),
- (rword = lo & 67108863),
- (ncarry = (ncarry + (lo >>> 26)) | 0),
- (hncarry += ncarry >>> 26),
- (ncarry &= 67108863);
- }
- (out.words[k] = rword), (carry = ncarry), (ncarry = hncarry);
- }
- return carry !== 0 ? (out.words[k] = carry) : out.length--, out.strip();
- }
- function jumboMulTo(self2, num, out) {
- var fftm = new FFTM();
- return fftm.mulp(self2, num, out);
- }
- BN.prototype.mulTo = function (num, out) {
- var res,
- len = this.length + num.length;
- return (
- this.length === 10 && num.length === 10
- ? (res = comb10MulTo(this, num, out))
- : len < 63
- ? (res = smallMulTo(this, num, out))
- : len < 1024
- ? (res = bigMulTo(this, num, out))
- : (res = jumboMulTo(this, num, out)),
- res
- );
- };
- function FFTM(x, y) {
- (this.x = x), (this.y = y);
- }
- (FFTM.prototype.makeRBT = function (N) {
- for (var t = new Array(N), l = BN.prototype._countBits(N) - 1, i = 0; i < N; i++) t[i] = this.revBin(i, l, N);
- return t;
- }),
- (FFTM.prototype.revBin = function (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- for (var rb = 0, i = 0; i < l; i++) (rb |= (x & 1) << (l - i - 1)), (x >>= 1);
- return rb;
- }),
- (FFTM.prototype.permute = function (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) (rtws[i] = rws[rbt[i]]), (itws[i] = iws[rbt[i]]);
- }),
- (FFTM.prototype.transform = function (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1)
- for (
- var l = s << 1, rtwdf = Math.cos((2 * Math.PI) / l), itwdf = Math.sin((2 * Math.PI) / l), p = 0;
- p < N;
- p += l
- )
- for (var rtwdf_ = rtwdf, itwdf_ = itwdf, j = 0; j < s; j++) {
- var re = rtws[p + j],
- ie = itws[p + j],
- ro = rtws[p + j + s],
- io = itws[p + j + s],
- rx = rtwdf_ * ro - itwdf_ * io;
- (io = rtwdf_ * io + itwdf_ * ro),
- (ro = rx),
- (rtws[p + j] = re + ro),
- (itws[p + j] = ie + io),
- (rtws[p + j + s] = re - ro),
- (itws[p + j + s] = ie - io),
- j !== l &&
- ((rx = rtwdf * rtwdf_ - itwdf * itwdf_), (itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_), (rtwdf_ = rx));
- }
- }),
- (FFTM.prototype.guessLen13b = function (n, m) {
- var N = Math.max(m, n) | 1,
- odd = N & 1,
- i = 0;
- for (N = (N / 2) | 0; N; N = N >>> 1) i++;
- return 1 << (i + 1 + odd);
- }),
- (FFTM.prototype.conjugate = function (rws, iws, N) {
- if (!(N <= 1))
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- (rws[i] = rws[N - i - 1]),
- (rws[N - i - 1] = t),
- (t = iws[i]),
- (iws[i] = -iws[N - i - 1]),
- (iws[N - i - 1] = -t);
- }
- }),
- (FFTM.prototype.normalize13b = function (ws, N) {
- for (var carry = 0, i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
- (ws[i] = w & 67108863), w < 67108864 ? (carry = 0) : (carry = (w / 67108864) | 0);
- }
- return ws;
- }),
- (FFTM.prototype.convert13b = function (ws, len, rws, N) {
- for (var carry = 0, i = 0; i < len; i++)
- (carry = carry + (ws[i] | 0)),
- (rws[2 * i] = carry & 8191),
- (carry = carry >>> 13),
- (rws[2 * i + 1] = carry & 8191),
- (carry = carry >>> 13);
- for (i = 2 * len; i < N; ++i) rws[i] = 0;
- assert(carry === 0), assert((carry & -8192) === 0);
- }),
- (FFTM.prototype.stub = function (N) {
- for (var ph = new Array(N), i = 0; i < N; i++) ph[i] = 0;
- return ph;
- }),
- (FFTM.prototype.mulp = function (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length),
- rbt = this.makeRBT(N),
- _ = this.stub(N),
- rws = new Array(N),
- rwst = new Array(N),
- iwst = new Array(N),
- nrws = new Array(N),
- nrwst = new Array(N),
- niwst = new Array(N),
- rmws = out.words;
- (rmws.length = N),
- this.convert13b(x.words, x.length, rws, N),
- this.convert13b(y.words, y.length, nrws, N),
- this.transform(rws, _, rwst, iwst, N, rbt),
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- (iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]), (rwst[i] = rx);
- }
- return (
- this.conjugate(rwst, iwst, N),
- this.transform(rwst, iwst, rmws, _, N, rbt),
- this.conjugate(rmws, _, N),
- this.normalize13b(rmws, N),
- (out.negative = x.negative ^ y.negative),
- (out.length = x.length + y.length),
- out.strip()
- );
- }),
- (BN.prototype.mul = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), this.mulTo(num, out);
- }),
- (BN.prototype.mulf = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), jumboMulTo(this, num, out);
- }),
- (BN.prototype.imul = function (num) {
- return this.clone().mulTo(num, this);
- }),
- (BN.prototype.imuln = function (num) {
- assert(typeof num == "number"), assert(num < 67108864);
- for (var carry = 0, i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num,
- lo = (w & 67108863) + (carry & 67108863);
- (carry >>= 26), (carry += (w / 67108864) | 0), (carry += lo >>> 26), (this.words[i] = lo & 67108863);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.muln = function (num) {
- return this.clone().imuln(num);
- }),
- (BN.prototype.sqr = function () {
- return this.mul(this);
- }),
- (BN.prototype.isqr = function () {
- return this.imul(this.clone());
- }),
- (BN.prototype.pow = function (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- for (var res = this, i = 0; i < w.length && w[i] === 0; i++, res = res.sqr());
- if (++i < w.length) for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) w[i] !== 0 && (res = res.mul(q));
- return res;
- }),
- (BN.prototype.iushln = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26,
- carryMask = (67108863 >>> (26 - r)) << (26 - r),
- i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask,
- c = ((this.words[i] | 0) - newCarry) << r;
- (this.words[i] = c | carry), (carry = newCarry >>> (26 - r));
- }
- carry && ((this.words[i] = carry), this.length++);
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) this.words[i + s] = this.words[i];
- for (i = 0; i < s; i++) this.words[i] = 0;
- this.length += s;
- }
- return this.strip();
- }),
- (BN.prototype.ishln = function (bits) {
- return assert(this.negative === 0), this.iushln(bits);
- }),
- (BN.prototype.iushrn = function (bits, hint, extended) {
- assert(typeof bits == "number" && bits >= 0);
- var h;
- hint ? (h = (hint - (hint % 26)) / 26) : (h = 0);
- var r = bits % 26,
- s = Math.min((bits - r) / 26, this.length),
- mask = 67108863 ^ ((67108863 >>> r) << r),
- maskedWords = extended;
- if (((h -= s), (h = Math.max(0, h)), maskedWords)) {
- for (var i = 0; i < s; i++) maskedWords.words[i] = this.words[i];
- maskedWords.length = s;
- }
- if (s !== 0)
- if (this.length > s) for (this.length -= s, i = 0; i < this.length; i++) this.words[i] = this.words[i + s];
- else (this.words[0] = 0), (this.length = 1);
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- (this.words[i] = (carry << (26 - r)) | (word >>> r)), (carry = word & mask);
- }
- return (
- maskedWords && carry !== 0 && (maskedWords.words[maskedWords.length++] = carry),
- this.length === 0 && ((this.words[0] = 0), (this.length = 1)),
- this.strip()
- );
- }),
- (BN.prototype.ishrn = function (bits, hint, extended) {
- return assert(this.negative === 0), this.iushrn(bits, hint, extended);
- }),
- (BN.prototype.shln = function (bits) {
- return this.clone().ishln(bits);
- }),
- (BN.prototype.ushln = function (bits) {
- return this.clone().iushln(bits);
- }),
- (BN.prototype.shrn = function (bits) {
- return this.clone().ishrn(bits);
- }),
- (BN.prototype.ushrn = function (bits) {
- return this.clone().iushrn(bits);
- }),
- (BN.prototype.testn = function (bit) {
- assert(typeof bit == "number" && bit >= 0);
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return !1;
- var w = this.words[s];
- return !!(w & q);
- }),
- (BN.prototype.imaskn = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26;
- if ((assert(this.negative === 0, "imaskn works only with positive numbers"), this.length <= s)) return this;
- if ((r !== 0 && s++, (this.length = Math.min(s, this.length)), r !== 0)) {
- var mask = 67108863 ^ ((67108863 >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this.strip();
- }),
- (BN.prototype.maskn = function (bits) {
- return this.clone().imaskn(bits);
- }),
- (BN.prototype.iaddn = function (num) {
- return (
- assert(typeof num == "number"),
- assert(num < 67108864),
- num < 0
- ? this.isubn(-num)
- : this.negative !== 0
- ? this.length === 1 && (this.words[0] | 0) < num
- ? ((this.words[0] = num - (this.words[0] | 0)), (this.negative = 0), this)
- : ((this.negative = 0), this.isubn(num), (this.negative = 1), this)
- : this._iaddn(num)
- );
- }),
- (BN.prototype._iaddn = function (num) {
- this.words[0] += num;
- for (var i = 0; i < this.length && this.words[i] >= 67108864; i++)
- (this.words[i] -= 67108864), i === this.length - 1 ? (this.words[i + 1] = 1) : this.words[i + 1]++;
- return (this.length = Math.max(this.length, i + 1)), this;
- }),
- (BN.prototype.isubn = function (num) {
- if ((assert(typeof num == "number"), assert(num < 67108864), num < 0)) return this.iaddn(-num);
- if (this.negative !== 0) return (this.negative = 0), this.iaddn(num), (this.negative = 1), this;
- if (((this.words[0] -= num), this.length === 1 && this.words[0] < 0))
- (this.words[0] = -this.words[0]), (this.negative = 1);
- else
- for (var i = 0; i < this.length && this.words[i] < 0; i++)
- (this.words[i] += 67108864), (this.words[i + 1] -= 1);
- return this.strip();
- }),
- (BN.prototype.addn = function (num) {
- return this.clone().iaddn(num);
- }),
- (BN.prototype.subn = function (num) {
- return this.clone().isubn(num);
- }),
- (BN.prototype.iabs = function () {
- return (this.negative = 0), this;
- }),
- (BN.prototype.abs = function () {
- return this.clone().iabs();
- }),
- (BN.prototype._ishlnsubmul = function (num, mul, shift) {
- var len = num.length + shift,
- i;
- this._expand(len);
- var w,
- carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- (w -= right & 67108863),
- (carry = (w >> 26) - ((right / 67108864) | 0)),
- (this.words[i + shift] = w & 67108863);
- }
- for (; i < this.length - shift; i++)
- (w = (this.words[i + shift] | 0) + carry), (carry = w >> 26), (this.words[i + shift] = w & 67108863);
- if (carry === 0) return this.strip();
- for (assert(carry === -1), carry = 0, i = 0; i < this.length; i++)
- (w = -(this.words[i] | 0) + carry), (carry = w >> 26), (this.words[i] = w & 67108863);
- return (this.negative = 1), this.strip();
- }),
- (BN.prototype._wordDiv = function (num, mode) {
- var shift = this.length - num.length,
- a = this.clone(),
- b = num,
- bhi = b.words[b.length - 1] | 0,
- bhiBits = this._countBits(bhi);
- (shift = 26 - bhiBits),
- shift !== 0 && ((b = b.ushln(shift)), a.iushln(shift), (bhi = b.words[b.length - 1] | 0));
- var m = a.length - b.length,
- q;
- if (mode !== "mod") {
- (q = new BN(null)), (q.length = m + 1), (q.words = new Array(q.length));
- for (var i = 0; i < q.length; i++) q.words[i] = 0;
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- diff.negative === 0 && ((a = diff), q && (q.words[m] = 1));
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
- for (qj = Math.min((qj / bhi) | 0, 67108863), a._ishlnsubmul(b, qj, j); a.negative !== 0; )
- qj--, (a.negative = 0), a._ishlnsubmul(b, 1, j), a.isZero() || (a.negative ^= 1);
- q && (q.words[j] = qj);
- }
- return (
- q && q.strip(),
- a.strip(),
- mode !== "div" && shift !== 0 && a.iushrn(shift),
- {
- div: q || null,
- mod: a,
- }
- );
- }),
- (BN.prototype.divmod = function (num, mode, positive) {
- if ((assert(!num.isZero()), this.isZero()))
- return {
- div: new BN(0),
- mod: new BN(0),
- };
- var div, mod, res;
- return this.negative !== 0 && num.negative === 0
- ? ((res = this.neg().divmod(num, mode)),
- mode !== "mod" && (div = res.div.neg()),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.iadd(num)),
- {
- div,
- mod,
- })
- : this.negative === 0 && num.negative !== 0
- ? ((res = this.divmod(num.neg(), mode)),
- mode !== "mod" && (div = res.div.neg()),
- {
- div,
- mod: res.mod,
- })
- : (this.negative & num.negative) !== 0
- ? ((res = this.neg().divmod(num.neg(), mode)),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.isub(num)),
- {
- div: res.div,
- mod,
- })
- : num.length > this.length || this.cmp(num) < 0
- ? {
- div: new BN(0),
- mod: this,
- }
- : num.length === 1
- ? mode === "div"
- ? {
- div: this.divn(num.words[0]),
- mod: null,
- }
- : mode === "mod"
- ? {
- div: null,
- mod: new BN(this.modn(num.words[0])),
- }
- : {
- div: this.divn(num.words[0]),
- mod: new BN(this.modn(num.words[0])),
- }
- : this._wordDiv(num, mode);
- }),
- (BN.prototype.div = function (num) {
- return this.divmod(num, "div", !1).div;
- }),
- (BN.prototype.mod = function (num) {
- return this.divmod(num, "mod", !1).mod;
- }),
- (BN.prototype.umod = function (num) {
- return this.divmod(num, "mod", !0).mod;
- }),
- (BN.prototype.divRound = function (num) {
- var dm = this.divmod(num);
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod,
- half = num.ushrn(1),
- r2 = num.andln(1),
- cmp = mod.cmp(half);
- return cmp < 0 || (r2 === 1 && cmp === 0)
- ? dm.div
- : dm.div.negative !== 0
- ? dm.div.isubn(1)
- : dm.div.iaddn(1);
- }),
- (BN.prototype.modn = function (num) {
- assert(num <= 67108863);
- for (var p = (1 << 26) % num, acc = 0, i = this.length - 1; i >= 0; i--)
- acc = (p * acc + (this.words[i] | 0)) % num;
- return acc;
- }),
- (BN.prototype.idivn = function (num) {
- assert(num <= 67108863);
- for (var carry = 0, i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 67108864;
- (this.words[i] = (w / num) | 0), (carry = w % num);
- }
- return this.strip();
- }),
- (BN.prototype.divn = function (num) {
- return this.clone().idivn(num);
- }),
- (BN.prototype.egcd = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var x = this,
- y = p.clone();
- x.negative !== 0 ? (x = x.umod(p)) : (x = x.clone());
- for (var A = new BN(1), B = new BN(0), C = new BN(0), D = new BN(1), g = 0; x.isEven() && y.isEven(); )
- x.iushrn(1), y.iushrn(1), ++g;
- for (var yp = y.clone(), xp = x.clone(); !x.isZero(); ) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0)
- for (x.iushrn(i); i-- > 0; )
- (A.isOdd() || B.isOdd()) && (A.iadd(yp), B.isub(xp)), A.iushrn(1), B.iushrn(1);
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0)
- for (y.iushrn(j); j-- > 0; )
- (C.isOdd() || D.isOdd()) && (C.iadd(yp), D.isub(xp)), C.iushrn(1), D.iushrn(1);
- x.cmp(y) >= 0 ? (x.isub(y), A.isub(C), B.isub(D)) : (y.isub(x), C.isub(A), D.isub(B));
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g),
- };
- }),
- (BN.prototype._invmp = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var a = this,
- b = p.clone();
- a.negative !== 0 ? (a = a.umod(p)) : (a = a.clone());
- for (var x1 = new BN(1), x2 = new BN(0), delta = b.clone(); a.cmpn(1) > 0 && b.cmpn(1) > 0; ) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) for (a.iushrn(i); i-- > 0; ) x1.isOdd() && x1.iadd(delta), x1.iushrn(1);
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) for (b.iushrn(j); j-- > 0; ) x2.isOdd() && x2.iadd(delta), x2.iushrn(1);
- a.cmp(b) >= 0 ? (a.isub(b), x1.isub(x2)) : (b.isub(a), x2.isub(x1));
- }
- var res;
- return a.cmpn(1) === 0 ? (res = x1) : (res = x2), res.cmpn(0) < 0 && res.iadd(p), res;
- }),
- (BN.prototype.gcd = function (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone(),
- b = num.clone();
- (a.negative = 0), (b.negative = 0);
- for (var shift = 0; a.isEven() && b.isEven(); shift++) a.iushrn(1), b.iushrn(1);
- do {
- for (; a.isEven(); ) a.iushrn(1);
- for (; b.isEven(); ) b.iushrn(1);
- var r = a.cmp(b);
- if (r < 0) {
- var t = a;
- (a = b), (b = t);
- } else if (r === 0 || b.cmpn(1) === 0) break;
- a.isub(b);
- } while (!0);
- return b.iushln(shift);
- }),
- (BN.prototype.invm = function (num) {
- return this.egcd(num).a.umod(num);
- }),
- (BN.prototype.isEven = function () {
- return (this.words[0] & 1) === 0;
- }),
- (BN.prototype.isOdd = function () {
- return (this.words[0] & 1) === 1;
- }),
- (BN.prototype.andln = function (num) {
- return this.words[0] & num;
- }),
- (BN.prototype.bincn = function (bit) {
- assert(typeof bit == "number");
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return this._expand(s + 1), (this.words[s] |= q), this;
- for (var carry = q, i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- (w += carry), (carry = w >>> 26), (w &= 67108863), (this.words[i] = w);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.isZero = function () {
- return this.length === 1 && this.words[0] === 0;
- }),
- (BN.prototype.cmpn = function (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this.strip();
- var res;
- if (this.length > 1) res = 1;
- else {
- negative && (num = -num), assert(num <= 67108863, "Number is too big");
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.cmp = function (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.ucmp = function (num) {
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- for (var res = 0, i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0,
- b = num.words[i] | 0;
- if (a !== b) {
- a < b ? (res = -1) : a > b && (res = 1);
- break;
- }
- }
- return res;
- }),
- (BN.prototype.gtn = function (num) {
- return this.cmpn(num) === 1;
- }),
- (BN.prototype.gt = function (num) {
- return this.cmp(num) === 1;
- }),
- (BN.prototype.gten = function (num) {
- return this.cmpn(num) >= 0;
- }),
- (BN.prototype.gte = function (num) {
- return this.cmp(num) >= 0;
- }),
- (BN.prototype.ltn = function (num) {
- return this.cmpn(num) === -1;
- }),
- (BN.prototype.lt = function (num) {
- return this.cmp(num) === -1;
- }),
- (BN.prototype.lten = function (num) {
- return this.cmpn(num) <= 0;
- }),
- (BN.prototype.lte = function (num) {
- return this.cmp(num) <= 0;
- }),
- (BN.prototype.eqn = function (num) {
- return this.cmpn(num) === 0;
- }),
- (BN.prototype.eq = function (num) {
- return this.cmp(num) === 0;
- }),
- (BN.red = function (num) {
- return new Red(num);
- }),
- (BN.prototype.toRed = function (ctx) {
- return (
- assert(!this.red, "Already a number in reduction context"),
- assert(this.negative === 0, "red works only with positives"),
- ctx.convertTo(this)._forceRed(ctx)
- );
- }),
- (BN.prototype.fromRed = function () {
- return assert(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this);
- }),
- (BN.prototype._forceRed = function (ctx) {
- return (this.red = ctx), this;
- }),
- (BN.prototype.forceRed = function (ctx) {
- return assert(!this.red, "Already a number in reduction context"), this._forceRed(ctx);
- }),
- (BN.prototype.redAdd = function (num) {
- return assert(this.red, "redAdd works only with red numbers"), this.red.add(this, num);
- }),
- (BN.prototype.redIAdd = function (num) {
- return assert(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, num);
- }),
- (BN.prototype.redSub = function (num) {
- return assert(this.red, "redSub works only with red numbers"), this.red.sub(this, num);
- }),
- (BN.prototype.redISub = function (num) {
- return assert(this.red, "redISub works only with red numbers"), this.red.isub(this, num);
- }),
- (BN.prototype.redShl = function (num) {
- return assert(this.red, "redShl works only with red numbers"), this.red.shl(this, num);
- }),
- (BN.prototype.redMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.mul(this, num)
- );
- }),
- (BN.prototype.redIMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.imul(this, num)
- );
- }),
- (BN.prototype.redSqr = function () {
- return assert(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this);
- }),
- (BN.prototype.redISqr = function () {
- return assert(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this);
- }),
- (BN.prototype.redSqrt = function () {
- return assert(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this);
- }),
- (BN.prototype.redInvm = function () {
- return assert(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this);
- }),
- (BN.prototype.redNeg = function () {
- return assert(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this);
- }),
- (BN.prototype.redPow = function (num) {
- return assert(this.red && !num.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, num);
- });
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null,
- };
- function MPrime(name, p) {
- (this.name = name),
- (this.p = new BN(p, 16)),
- (this.n = this.p.bitLength()),
- (this.k = new BN(1).iushln(this.n).isub(this.p)),
- (this.tmp = this._tmp());
- }
- (MPrime.prototype._tmp = function () {
- var tmp = new BN(null);
- return (tmp.words = new Array(Math.ceil(this.n / 13))), tmp;
- }),
- (MPrime.prototype.ireduce = function (num) {
- var r = num,
- rlen;
- do this.split(r, this.tmp), (r = this.imulK(r)), (r = r.iadd(this.tmp)), (rlen = r.bitLength());
- while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- return (
- cmp === 0
- ? ((r.words[0] = 0), (r.length = 1))
- : cmp > 0
- ? r.isub(this.p)
- : r.strip !== void 0
- ? r.strip()
- : r._strip(),
- r
- );
- }),
- (MPrime.prototype.split = function (input, out) {
- input.iushrn(this.n, 0, out);
- }),
- (MPrime.prototype.imulK = function (num) {
- return num.imul(this.k);
- });
- function K256() {
- MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
- }
- inherits(K256, MPrime),
- (K256.prototype.split = function (input, output) {
- for (var mask = 4194303, outLen = Math.min(input.length, 9), i = 0; i < outLen; i++)
- output.words[i] = input.words[i];
- if (((output.length = outLen), input.length <= 9)) {
- (input.words[0] = 0), (input.length = 1);
- return;
- }
- var prev = input.words[9];
- for (output.words[output.length++] = prev & mask, i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- (input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22)), (prev = next);
- }
- (prev >>>= 22),
- (input.words[i - 10] = prev),
- prev === 0 && input.length > 10 ? (input.length -= 10) : (input.length -= 9);
- }),
- (K256.prototype.imulK = function (num) {
- (num.words[num.length] = 0), (num.words[num.length + 1] = 0), (num.length += 2);
- for (var lo = 0, i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- (lo += w * 977), (num.words[i] = lo & 67108863), (lo = w * 64 + ((lo / 67108864) | 0));
- }
- return (
- num.words[num.length - 1] === 0 && (num.length--, num.words[num.length - 1] === 0 && num.length--), num
- );
- });
- function P224() {
- MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
- }
- inherits(P224, MPrime);
- function P192() {
- MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
- }
- inherits(P192, MPrime);
- function P25519() {
- MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
- }
- inherits(P25519, MPrime),
- (P25519.prototype.imulK = function (num) {
- for (var carry = 0, i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 19 + carry,
- lo = hi & 67108863;
- (hi >>>= 26), (num.words[i] = lo), (carry = hi);
- }
- return carry !== 0 && (num.words[num.length++] = carry), num;
- }),
- (BN._prime = function (name) {
- if (primes[name]) return primes[name];
- var prime2;
- if (name === "k256") prime2 = new K256();
- else if (name === "p224") prime2 = new P224();
- else if (name === "p192") prime2 = new P192();
- else if (name === "p25519") prime2 = new P25519();
- else throw new Error("Unknown prime " + name);
- return (primes[name] = prime2), prime2;
- });
- function Red(m) {
- if (typeof m == "string") {
- var prime = BN._prime(m);
- (this.m = prime.p), (this.prime = prime);
- } else assert(m.gtn(1), "modulus must be greater than 1"), (this.m = m), (this.prime = null);
- }
- (Red.prototype._verify1 = function (a) {
- assert(a.negative === 0, "red works only with positives"), assert(a.red, "red works only with red numbers");
- }),
- (Red.prototype._verify2 = function (a, b) {
- assert((a.negative | b.negative) === 0, "red works only with positives"),
- assert(a.red && a.red === b.red, "red works only with red numbers");
- }),
- (Red.prototype.imod = function (a) {
- return this.prime ? this.prime.ireduce(a)._forceRed(this) : a.umod(this.m)._forceRed(this);
- }),
- (Red.prototype.neg = function (a) {
- return a.isZero() ? a.clone() : this.m.sub(a)._forceRed(this);
- }),
- (Red.prototype.add = function (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res._forceRed(this);
- }),
- (Red.prototype.iadd = function (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res;
- }),
- (Red.prototype.sub = function (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res._forceRed(this);
- }),
- (Red.prototype.isub = function (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res;
- }),
- (Red.prototype.shl = function (a, num) {
- return this._verify1(a), this.imod(a.ushln(num));
- }),
- (Red.prototype.imul = function (a, b) {
- return this._verify2(a, b), this.imod(a.imul(b));
- }),
- (Red.prototype.mul = function (a, b) {
- return this._verify2(a, b), this.imod(a.mul(b));
- }),
- (Red.prototype.isqr = function (a) {
- return this.imul(a, a.clone());
- }),
- (Red.prototype.sqr = function (a) {
- return this.mul(a, a);
- }),
- (Red.prototype.sqrt = function (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- if ((assert(mod3 % 2 === 1), mod3 === 3)) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- for (var q = this.m.subn(1), s = 0; !q.isZero() && q.andln(1) === 0; ) s++, q.iushrn(1);
- assert(!q.isZero());
- var one = new BN(1).toRed(this),
- nOne = one.redNeg(),
- lpow = this.m.subn(1).iushrn(1),
- z = this.m.bitLength();
- for (z = new BN(2 * z * z).toRed(this); this.pow(z, lpow).cmp(nOne) !== 0; ) z.redIAdd(nOne);
- for (
- var c = this.pow(z, q), r = this.pow(a, q.addn(1).iushrn(1)), t = this.pow(a, q), m = s;
- t.cmp(one) !== 0;
-
- ) {
- for (var tmp = t, i = 0; tmp.cmp(one) !== 0; i++) tmp = tmp.redSqr();
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- (r = r.redMul(b)), (c = b.redSqr()), (t = t.redMul(c)), (m = i);
- }
- return r;
- }),
- (Red.prototype.invm = function (a) {
- var inv = a._invmp(this.m);
- return inv.negative !== 0 ? ((inv.negative = 0), this.imod(inv).redNeg()) : this.imod(inv);
- }),
- (Red.prototype.pow = function (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4,
- wnd = new Array(1 << windowSize);
- (wnd[0] = new BN(1).toRed(this)), (wnd[1] = a);
- for (var i = 2; i < wnd.length; i++) wnd[i] = this.mul(wnd[i - 1], a);
- var res = wnd[0],
- current = 0,
- currentLen = 0,
- start = num.bitLength() % 26;
- for (start === 0 && (start = 26), i = num.length - 1; i >= 0; i--) {
- for (var word = num.words[i], j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if ((res !== wnd[0] && (res = this.sqr(res)), bit === 0 && current === 0)) {
- currentLen = 0;
- continue;
- }
- (current <<= 1),
- (current |= bit),
- currentLen++,
- !(currentLen !== windowSize && (i !== 0 || j !== 0)) &&
- ((res = this.mul(res, wnd[current])), (currentLen = 0), (current = 0));
- }
- start = 26;
- }
- return res;
- }),
- (Red.prototype.convertTo = function (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- }),
- (Red.prototype.convertFrom = function (num) {
- var res = num.clone();
- return (res.red = null), res;
- }),
- (BN.mont = function (num) {
- return new Mont(num);
- });
- function Mont(m) {
- Red.call(this, m),
- (this.shift = this.m.bitLength()),
- this.shift % 26 !== 0 && (this.shift += 26 - (this.shift % 26)),
- (this.r = new BN(1).iushln(this.shift)),
- (this.r2 = this.imod(this.r.sqr())),
- (this.rinv = this.r._invmp(this.m)),
- (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)),
- (this.minv = this.minv.umod(this.r)),
- (this.minv = this.r.sub(this.minv));
- }
- inherits(Mont, Red),
- (Mont.prototype.convertTo = function (num) {
- return this.imod(num.ushln(this.shift));
- }),
- (Mont.prototype.convertFrom = function (num) {
- var r = this.imod(num.mul(this.rinv));
- return (r.red = null), r;
- }),
- (Mont.prototype.imul = function (a, b) {
- if (a.isZero() || b.isZero()) return (a.words[0] = 0), (a.length = 1), a;
- var t = a.imul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.mul = function (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.invm = function (a) {
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- });
- })(typeof module > "u" || module, exports);
- },
-});
-
-// node_modules/safer-buffer/safer.js
-var require_safer = __commonJS({
- "node_modules/safer-buffer/safer.js"(exports, module) {
- "use strict";
- var buffer = __require("buffer"),
- Buffer2 = buffer.Buffer,
- safer = {},
- key;
- for (key in buffer)
- !buffer.hasOwnProperty(key) || key === "SlowBuffer" || key === "Buffer" || (safer[key] = buffer[key]);
- var Safer = (safer.Buffer = {});
- for (key in Buffer2)
- !Buffer2.hasOwnProperty(key) || key === "allocUnsafe" || key === "allocUnsafeSlow" || (Safer[key] = Buffer2[key]);
- safer.Buffer.prototype = Buffer2.prototype;
- (!Safer.from || Safer.from === Uint8Array.from) &&
- (Safer.from = function (value, encodingOrOffset, length) {
- if (typeof value == "number")
- throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
- if (value && typeof value.length > "u")
- throw new TypeError(
- "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " +
- typeof value,
- );
- return Buffer2(value, encodingOrOffset, length);
- });
- Safer.alloc ||
- (Safer.alloc = function (size, fill, encoding) {
- if (typeof size != "number")
- throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
- if (size < 0 || size >= 2 * (1 << 30))
- throw new RangeError('The value "' + size + '" is invalid for option "size"');
- var buf = Buffer2(size);
- return (
- !fill || fill.length === 0
- ? buf.fill(0)
- : typeof encoding == "string"
- ? buf.fill(fill, encoding)
- : buf.fill(fill),
- buf
- );
- });
- if (!safer.kStringMaxLength)
- try {
- safer.kStringMaxLength = MAX_STRING_LENGTH;
- } catch {}
- safer.constants ||
- ((safer.constants = {
- MAX_LENGTH: safer.kMaxLength,
- }),
- safer.kStringMaxLength && (safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength));
- module.exports = safer;
- },
-});
-
-// node_modules/asn1.js/lib/asn1/base/reporter.js
-var require_reporter = __commonJS({
- "node_modules/asn1.js/lib/asn1/base/reporter.js"(exports) {
- "use strict";
- var inherits = require_inherits_browser();
- function Reporter(options) {
- this._reporterState = {
- obj: null,
- path: [],
- options: options || {},
- errors: [],
- };
- }
- exports.Reporter = Reporter;
- Reporter.prototype.isError = function (obj) {
- return obj instanceof ReporterError;
- };
- Reporter.prototype.save = function () {
- let state = this._reporterState;
- return { obj: state.obj, pathLen: state.path.length };
- };
- Reporter.prototype.restore = function (data) {
- let state = this._reporterState;
- (state.obj = data.obj), (state.path = state.path.slice(0, data.pathLen));
- };
- Reporter.prototype.enterKey = function (key) {
- return this._reporterState.path.push(key);
- };
- Reporter.prototype.exitKey = function (index) {
- let state = this._reporterState;
- state.path = state.path.slice(0, index - 1);
- };
- Reporter.prototype.leaveKey = function (index, key, value) {
- let state = this._reporterState;
- this.exitKey(index), state.obj !== null && (state.obj[key] = value);
- };
- Reporter.prototype.path = function () {
- return this._reporterState.path.join("/");
- };
- Reporter.prototype.enterObject = function () {
- let state = this._reporterState,
- prev = state.obj;
- return (state.obj = {}), prev;
- };
- Reporter.prototype.leaveObject = function (prev) {
- let state = this._reporterState,
- now = state.obj;
- return (state.obj = prev), now;
- };
- Reporter.prototype.error = function (msg) {
- let err,
- state = this._reporterState,
- inherited = msg instanceof ReporterError;
- if (
- (inherited
- ? (err = msg)
- : (err = new ReporterError(
- state.path
- .map(function (elem) {
- return "[" + JSON.stringify(elem) + "]";
- })
- .join(""),
- msg.message || msg,
- msg.stack,
- )),
- !state.options.partial)
- )
- throw err;
- return inherited || state.errors.push(err), err;
- };
- Reporter.prototype.wrapResult = function (result) {
- let state = this._reporterState;
- return state.options.partial
- ? {
- result: this.isError(result) ? null : result,
- errors: state.errors,
- }
- : result;
- };
- function ReporterError(path, msg) {
- (this.path = path), this.rethrow(msg);
- }
- inherits(ReporterError, Error);
- ReporterError.prototype.rethrow = function (msg) {
- if (
- ((this.message = msg + " at: " + (this.path || "(shallow)")),
- Error.captureStackTrace && Error.captureStackTrace(this, ReporterError),
- !this.stack)
- )
- try {
- throw new Error(this.message);
- } catch (e) {
- this.stack = e.stack;
- }
- return this;
- };
- },
-});
-
-// node_modules/asn1.js/lib/asn1/base/buffer.js
-var require_buffer = __commonJS({
- "node_modules/asn1.js/lib/asn1/base/buffer.js"(exports) {
- "use strict";
- var inherits = require_inherits_browser(),
- Reporter = require_reporter().Reporter,
- Buffer2 = require_safer().Buffer;
- function DecoderBuffer(base, options) {
- if ((Reporter.call(this, options), !Buffer2.isBuffer(base))) {
- this.error("Input not Buffer");
- return;
- }
- (this.base = base), (this.offset = 0), (this.length = base.length);
- }
- inherits(DecoderBuffer, Reporter);
- exports.DecoderBuffer = DecoderBuffer;
- DecoderBuffer.isDecoderBuffer = function (data) {
- return data instanceof DecoderBuffer
- ? !0
- : typeof data == "object" &&
- Buffer2.isBuffer(data.base) &&
- data.constructor.name === "DecoderBuffer" &&
- typeof data.offset == "number" &&
- typeof data.length == "number" &&
- typeof data.save == "function" &&
- typeof data.restore == "function" &&
- typeof data.isEmpty == "function" &&
- typeof data.readUInt8 == "function" &&
- typeof data.skip == "function" &&
- typeof data.raw == "function";
- };
- DecoderBuffer.prototype.save = function () {
- return {
- offset: this.offset,
- reporter: Reporter.prototype.save.call(this),
- };
- };
- DecoderBuffer.prototype.restore = function (save) {
- let res = new DecoderBuffer(this.base);
- return (
- (res.offset = save.offset),
- (res.length = this.offset),
- (this.offset = save.offset),
- Reporter.prototype.restore.call(this, save.reporter),
- res
- );
- };
- DecoderBuffer.prototype.isEmpty = function () {
- return this.offset === this.length;
- };
- DecoderBuffer.prototype.readUInt8 = function (fail) {
- return this.offset + 1 <= this.length
- ? this.base.readUInt8(this.offset++, !0)
- : this.error(fail || "DecoderBuffer overrun");
- };
- DecoderBuffer.prototype.skip = function (bytes, fail) {
- if (!(this.offset + bytes <= this.length)) return this.error(fail || "DecoderBuffer overrun");
- let res = new DecoderBuffer(this.base);
- return (
- (res._reporterState = this._reporterState),
- (res.offset = this.offset),
- (res.length = this.offset + bytes),
- (this.offset += bytes),
- res
- );
- };
- DecoderBuffer.prototype.raw = function (save) {
- return this.base.slice(save ? save.offset : this.offset, this.length);
- };
- function EncoderBuffer(value, reporter) {
- if (Array.isArray(value))
- (this.length = 0),
- (this.value = value.map(function (item) {
- return (
- EncoderBuffer.isEncoderBuffer(item) || (item = new EncoderBuffer(item, reporter)),
- (this.length += item.length),
- item
- );
- }, this));
- else if (typeof value == "number") {
- if (!(0 <= value && value <= 255)) return reporter.error("non-byte EncoderBuffer value");
- (this.value = value), (this.length = 1);
- } else if (typeof value == "string") (this.value = value), (this.length = Buffer2.byteLength(value));
- else if (Buffer2.isBuffer(value)) (this.value = value), (this.length = value.length);
- else return reporter.error("Unsupported type: " + typeof value);
- }
- exports.EncoderBuffer = EncoderBuffer;
- EncoderBuffer.isEncoderBuffer = function (data) {
- return data instanceof EncoderBuffer
- ? !0
- : typeof data == "object" &&
- data.constructor.name === "EncoderBuffer" &&
- typeof data.length == "number" &&
- typeof data.join == "function";
- };
- EncoderBuffer.prototype.join = function (out, offset) {
- return (
- out || (out = Buffer2.alloc(this.length)),
- offset || (offset = 0),
- this.length === 0 ||
- (Array.isArray(this.value)
- ? this.value.forEach(function (item) {
- item.join(out, offset), (offset += item.length);
- })
- : (typeof this.value == "number"
- ? (out[offset] = this.value)
- : typeof this.value == "string"
- ? out.write(this.value, offset)
- : Buffer2.isBuffer(this.value) && this.value.copy(out, offset),
- (offset += this.length))),
- out
- );
- };
- },
-});
-
-// node_modules/asn1.js/lib/asn1/base/node.js
-var require_node = __commonJS({
- "node_modules/asn1.js/lib/asn1/base/node.js"(exports, module) {
- "use strict";
- var Reporter = require_reporter().Reporter,
- EncoderBuffer = require_buffer().EncoderBuffer,
- DecoderBuffer = require_buffer().DecoderBuffer,
- assert = require_minimalistic_assert(),
- tags = [
- "seq",
- "seqof",
- "set",
- "setof",
- "objid",
- "bool",
- "gentime",
- "utctime",
- "null_",
- "enum",
- "int",
- "objDesc",
- "bitstr",
- "bmpstr",
- "charstr",
- "genstr",
- "graphstr",
- "ia5str",
- "iso646str",
- "numstr",
- "octstr",
- "printstr",
- "t61str",
- "unistr",
- "utf8str",
- "videostr",
- ],
- methods = ["key", "obj", "use", "optional", "explicit", "implicit", "def", "choice", "any", "contains"].concat(
- tags,
- ),
- overrided = [
- "_peekTag",
- "_decodeTag",
- "_use",
- "_decodeStr",
- "_decodeObjid",
- "_decodeTime",
- "_decodeNull",
- "_decodeInt",
- "_decodeBool",
- "_decodeList",
- "_encodeComposite",
- "_encodeStr",
- "_encodeObjid",
- "_encodeTime",
- "_encodeNull",
- "_encodeInt",
- "_encodeBool",
- ];
- function Node(enc, parent, name) {
- let state = {};
- (this._baseState = state),
- (state.name = name),
- (state.enc = enc),
- (state.parent = parent || null),
- (state.children = null),
- (state.tag = null),
- (state.args = null),
- (state.reverseArgs = null),
- (state.choice = null),
- (state.optional = !1),
- (state.any = !1),
- (state.obj = !1),
- (state.use = null),
- (state.useDecoder = null),
- (state.key = null),
- (state.default = null),
- (state.explicit = null),
- (state.implicit = null),
- (state.contains = null),
- state.parent || ((state.children = []), this._wrap());
- }
- module.exports = Node;
- var stateProps = [
- "enc",
- "parent",
- "children",
- "tag",
- "args",
- "reverseArgs",
- "choice",
- "optional",
- "any",
- "obj",
- "use",
- "alteredUse",
- "key",
- "default",
- "explicit",
- "implicit",
- "contains",
- ];
- Node.prototype.clone = function () {
- let state = this._baseState,
- cstate = {};
- stateProps.forEach(function (prop) {
- cstate[prop] = state[prop];
- });
- let res = new this.constructor(cstate.parent);
- return (res._baseState = cstate), res;
- };
- Node.prototype._wrap = function () {
- let state = this._baseState;
- methods.forEach(function (method) {
- this[method] = function () {
- let clone = new this.constructor(this);
- return state.children.push(clone), clone[method].apply(clone, arguments);
- };
- }, this);
- };
- Node.prototype._init = function (body) {
- let state = this._baseState;
- assert(state.parent === null),
- body.call(this),
- (state.children = state.children.filter(function (child) {
- return child._baseState.parent === this;
- }, this)),
- assert.equal(state.children.length, 1, "Root node can have only one child");
- };
- Node.prototype._useArgs = function (args) {
- let state = this._baseState,
- children = args.filter(function (arg) {
- return arg instanceof this.constructor;
- }, this);
- (args = args.filter(function (arg) {
- return !(arg instanceof this.constructor);
- }, this)),
- children.length !== 0 &&
- (assert(state.children === null),
- (state.children = children),
- children.forEach(function (child) {
- child._baseState.parent = this;
- }, this)),
- args.length !== 0 &&
- (assert(state.args === null),
- (state.args = args),
- (state.reverseArgs = args.map(function (arg) {
- if (typeof arg != "object" || arg.constructor !== Object) return arg;
- let res = {};
- return (
- Object.keys(arg).forEach(function (key) {
- key == (key | 0) && (key |= 0);
- let value = arg[key];
- res[value] = key;
- }),
- res
- );
- })));
- };
- overrided.forEach(function (method) {
- Node.prototype[method] = function () {
- let state = this._baseState;
- throw new Error(method + " not implemented for encoding: " + state.enc);
- };
- });
- tags.forEach(function (tag) {
- Node.prototype[tag] = function () {
- let state = this._baseState,
- args = Array.prototype.slice.call(arguments);
- return assert(state.tag === null), (state.tag = tag), this._useArgs(args), this;
- };
- });
- Node.prototype.use = function (item) {
- assert(item);
- let state = this._baseState;
- return assert(state.use === null), (state.use = item), this;
- };
- Node.prototype.optional = function () {
- let state = this._baseState;
- return (state.optional = !0), this;
- };
- Node.prototype.def = function (val) {
- let state = this._baseState;
- return assert(state.default === null), (state.default = val), (state.optional = !0), this;
- };
- Node.prototype.explicit = function (num) {
- let state = this._baseState;
- return assert(state.explicit === null && state.implicit === null), (state.explicit = num), this;
- };
- Node.prototype.implicit = function (num) {
- let state = this._baseState;
- return assert(state.explicit === null && state.implicit === null), (state.implicit = num), this;
- };
- Node.prototype.obj = function () {
- let state = this._baseState,
- args = Array.prototype.slice.call(arguments);
- return (state.obj = !0), args.length !== 0 && this._useArgs(args), this;
- };
- Node.prototype.key = function (newKey) {
- let state = this._baseState;
- return assert(state.key === null), (state.key = newKey), this;
- };
- Node.prototype.any = function () {
- let state = this._baseState;
- return (state.any = !0), this;
- };
- Node.prototype.choice = function (obj) {
- let state = this._baseState;
- return (
- assert(state.choice === null),
- (state.choice = obj),
- this._useArgs(
- Object.keys(obj).map(function (key) {
- return obj[key];
- }),
- ),
- this
- );
- };
- Node.prototype.contains = function (item) {
- let state = this._baseState;
- return assert(state.use === null), (state.contains = item), this;
- };
- Node.prototype._decode = function (input, options) {
- let state = this._baseState;
- if (state.parent === null) return input.wrapResult(state.children[0]._decode(input, options));
- let result = state.default,
- present = !0,
- prevKey = null;
- if ((state.key !== null && (prevKey = input.enterKey(state.key)), state.optional)) {
- let tag = null;
- if (
- (state.explicit !== null
- ? (tag = state.explicit)
- : state.implicit !== null
- ? (tag = state.implicit)
- : state.tag !== null && (tag = state.tag),
- tag === null && !state.any)
- ) {
- let save = input.save();
- try {
- state.choice === null ? this._decodeGeneric(state.tag, input, options) : this._decodeChoice(input, options),
- (present = !0);
- } catch {
- present = !1;
- }
- input.restore(save);
- } else if (((present = this._peekTag(input, tag, state.any)), input.isError(present))) return present;
- }
- let prevObj;
- if ((state.obj && present && (prevObj = input.enterObject()), present)) {
- if (state.explicit !== null) {
- let explicit = this._decodeTag(input, state.explicit);
- if (input.isError(explicit)) return explicit;
- input = explicit;
- }
- let start = input.offset;
- if (state.use === null && state.choice === null) {
- let save;
- state.any && (save = input.save());
- let body = this._decodeTag(input, state.implicit !== null ? state.implicit : state.tag, state.any);
- if (input.isError(body)) return body;
- state.any ? (result = input.raw(save)) : (input = body);
- }
- if (
- (options && options.track && state.tag !== null && options.track(input.path(), start, input.length, "tagged"),
- options &&
- options.track &&
- state.tag !== null &&
- options.track(input.path(), input.offset, input.length, "content"),
- state.any ||
- (state.choice === null
- ? (result = this._decodeGeneric(state.tag, input, options))
- : (result = this._decodeChoice(input, options))),
- input.isError(result))
- )
- return result;
- if (
- (!state.any &&
- state.choice === null &&
- state.children !== null &&
- state.children.forEach(function (child) {
- child._decode(input, options);
- }),
- state.contains && (state.tag === "octstr" || state.tag === "bitstr"))
- ) {
- let data = new DecoderBuffer(result);
- result = this._getUse(state.contains, input._reporterState.obj)._decode(data, options);
- }
- }
- return (
- state.obj && present && (result = input.leaveObject(prevObj)),
- state.key !== null && (result !== null || present === !0)
- ? input.leaveKey(prevKey, state.key, result)
- : prevKey !== null && input.exitKey(prevKey),
- result
- );
- };
- Node.prototype._decodeGeneric = function (tag, input, options) {
- let state = this._baseState;
- return tag === "seq" || tag === "set"
- ? null
- : tag === "seqof" || tag === "setof"
- ? this._decodeList(input, tag, state.args[0], options)
- : /str$/.test(tag)
- ? this._decodeStr(input, tag, options)
- : tag === "objid" && state.args
- ? this._decodeObjid(input, state.args[0], state.args[1], options)
- : tag === "objid"
- ? this._decodeObjid(input, null, null, options)
- : tag === "gentime" || tag === "utctime"
- ? this._decodeTime(input, tag, options)
- : tag === "null_"
- ? this._decodeNull(input, options)
- : tag === "bool"
- ? this._decodeBool(input, options)
- : tag === "objDesc"
- ? this._decodeStr(input, tag, options)
- : tag === "int" || tag === "enum"
- ? this._decodeInt(input, state.args && state.args[0], options)
- : state.use !== null
- ? this._getUse(state.use, input._reporterState.obj)._decode(input, options)
- : input.error("unknown tag: " + tag);
- };
- Node.prototype._getUse = function (entity, obj) {
- let state = this._baseState;
- return (
- (state.useDecoder = this._use(entity, obj)),
- assert(state.useDecoder._baseState.parent === null),
- (state.useDecoder = state.useDecoder._baseState.children[0]),
- state.implicit !== state.useDecoder._baseState.implicit &&
- ((state.useDecoder = state.useDecoder.clone()), (state.useDecoder._baseState.implicit = state.implicit)),
- state.useDecoder
- );
- };
- Node.prototype._decodeChoice = function (input, options) {
- let state = this._baseState,
- result = null,
- match = !1;
- return (
- Object.keys(state.choice).some(function (key) {
- let save = input.save(),
- node = state.choice[key];
- try {
- let value = node._decode(input, options);
- if (input.isError(value)) return !1;
- (result = { type: key, value }), (match = !0);
- } catch {
- return input.restore(save), !1;
- }
- return !0;
- }, this),
- match ? result : input.error("Choice not matched")
- );
- };
- Node.prototype._createEncoderBuffer = function (data) {
- return new EncoderBuffer(data, this.reporter);
- };
- Node.prototype._encode = function (data, reporter, parent) {
- let state = this._baseState;
- if (state.default !== null && state.default === data) return;
- let result = this._encodeValue(data, reporter, parent);
- if (result !== void 0 && !this._skipDefault(result, reporter, parent)) return result;
- };
- Node.prototype._encodeValue = function (data, reporter, parent) {
- let state = this._baseState;
- if (state.parent === null) return state.children[0]._encode(data, reporter || new Reporter());
- let result = null;
- if (((this.reporter = reporter), state.optional && data === void 0))
- if (state.default !== null) data = state.default;
- else return;
- let content = null,
- primitive = !1;
- if (state.any) result = this._createEncoderBuffer(data);
- else if (state.choice) result = this._encodeChoice(data, reporter);
- else if (state.contains)
- (content = this._getUse(state.contains, parent)._encode(data, reporter)), (primitive = !0);
- else if (state.children)
- (content = state.children
- .map(function (child) {
- if (child._baseState.tag === "null_") return child._encode(null, reporter, data);
- if (child._baseState.key === null) return reporter.error("Child should have a key");
- let prevKey = reporter.enterKey(child._baseState.key);
- if (typeof data != "object") return reporter.error("Child expected, but input is not object");
- let res = child._encode(data[child._baseState.key], reporter, data);
- return reporter.leaveKey(prevKey), res;
- }, this)
- .filter(function (child) {
- return child;
- })),
- (content = this._createEncoderBuffer(content));
- else if (state.tag === "seqof" || state.tag === "setof") {
- if (!(state.args && state.args.length === 1)) return reporter.error("Too many args for : " + state.tag);
- if (!Array.isArray(data)) return reporter.error("seqof/setof, but data is not Array");
- let child = this.clone();
- (child._baseState.implicit = null),
- (content = this._createEncoderBuffer(
- data.map(function (item) {
- let state2 = this._baseState;
- return this._getUse(state2.args[0], data)._encode(item, reporter);
- }, child),
- ));
- } else
- state.use !== null
- ? (result = this._getUse(state.use, parent)._encode(data, reporter))
- : ((content = this._encodePrimitive(state.tag, data)), (primitive = !0));
- if (!state.any && state.choice === null) {
- let tag = state.implicit !== null ? state.implicit : state.tag,
- cls = state.implicit === null ? "universal" : "context";
- tag === null
- ? state.use === null && reporter.error("Tag could be omitted only for .use()")
- : state.use === null && (result = this._encodeComposite(tag, primitive, cls, content));
- }
- return state.explicit !== null && (result = this._encodeComposite(state.explicit, !1, "context", result)), result;
- };
- Node.prototype._encodeChoice = function (data, reporter) {
- let state = this._baseState,
- node = state.choice[data.type];
- return (
- node || assert(!1, data.type + " not found in " + JSON.stringify(Object.keys(state.choice))),
- node._encode(data.value, reporter)
- );
- };
- Node.prototype._encodePrimitive = function (tag, data) {
- let state = this._baseState;
- if (/str$/.test(tag)) return this._encodeStr(data, tag);
- if (tag === "objid" && state.args) return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);
- if (tag === "objid") return this._encodeObjid(data, null, null);
- if (tag === "gentime" || tag === "utctime") return this._encodeTime(data, tag);
- if (tag === "null_") return this._encodeNull();
- if (tag === "int" || tag === "enum") return this._encodeInt(data, state.args && state.reverseArgs[0]);
- if (tag === "bool") return this._encodeBool(data);
- if (tag === "objDesc") return this._encodeStr(data, tag);
- throw new Error("Unsupported tag: " + tag);
- };
- Node.prototype._isNumstr = function (str) {
- return /^[0-9 ]*$/.test(str);
- };
- Node.prototype._isPrintstr = function (str) {
- return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);
- };
- },
-});
-
-// node_modules/asn1.js/lib/asn1/constants/der.js
-var require_der = __commonJS({
- "node_modules/asn1.js/lib/asn1/constants/der.js"(exports) {
- "use strict";
- function reverse(map) {
- let res = {};
- return (
- Object.keys(map).forEach(function (key) {
- (key | 0) == key && (key = key | 0);
- let value = map[key];
- res[value] = key;
- }),
- res
- );
- }
- exports.tagClass = {
- 0: "universal",
- 1: "application",
- 2: "context",
- 3: "private",
- };
- exports.tagClassByName = reverse(exports.tagClass);
- exports.tag = {
- 0: "end",
- 1: "bool",
- 2: "int",
- 3: "bitstr",
- 4: "octstr",
- 5: "null_",
- 6: "objid",
- 7: "objDesc",
- 8: "external",
- 9: "real",
- 10: "enum",
- 11: "embed",
- 12: "utf8str",
- 13: "relativeOid",
- 16: "seq",
- 17: "set",
- 18: "numstr",
- 19: "printstr",
- 20: "t61str",
- 21: "videostr",
- 22: "ia5str",
- 23: "utctime",
- 24: "gentime",
- 25: "graphstr",
- 26: "iso646str",
- 27: "genstr",
- 28: "unistr",
- 29: "charstr",
- 30: "bmpstr",
- };
- exports.tagByName = reverse(exports.tag);
- },
-});
-
-// node_modules/asn1.js/lib/asn1/encoders/der.js
-var require_der2 = __commonJS({
- "node_modules/asn1.js/lib/asn1/encoders/der.js"(exports, module) {
- "use strict";
- var inherits = require_inherits_browser(),
- Buffer2 = require_safer().Buffer,
- Node = require_node(),
- der = require_der();
- function DEREncoder(entity) {
- (this.enc = "der"),
- (this.name = entity.name),
- (this.entity = entity),
- (this.tree = new DERNode()),
- this.tree._init(entity.body);
- }
- module.exports = DEREncoder;
- DEREncoder.prototype.encode = function (data, reporter) {
- return this.tree._encode(data, reporter).join();
- };
- function DERNode(parent) {
- Node.call(this, "der", parent);
- }
- inherits(DERNode, Node);
- DERNode.prototype._encodeComposite = function (tag, primitive, cls, content) {
- let encodedTag = encodeTag(tag, primitive, cls, this.reporter);
- if (content.length < 128) {
- let header2 = Buffer2.alloc(2);
- return (header2[0] = encodedTag), (header2[1] = content.length), this._createEncoderBuffer([header2, content]);
- }
- let lenOctets = 1;
- for (let i = content.length; i >= 256; i >>= 8) lenOctets++;
- let header = Buffer2.alloc(1 + 1 + lenOctets);
- (header[0] = encodedTag), (header[1] = 128 | lenOctets);
- for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) header[i] = j & 255;
- return this._createEncoderBuffer([header, content]);
- };
- DERNode.prototype._encodeStr = function (str, tag) {
- if (tag === "bitstr") return this._createEncoderBuffer([str.unused | 0, str.data]);
- if (tag === "bmpstr") {
- let buf = Buffer2.alloc(str.length * 2);
- for (let i = 0; i < str.length; i++) buf.writeUInt16BE(str.charCodeAt(i), i * 2);
- return this._createEncoderBuffer(buf);
- } else
- return tag === "numstr"
- ? this._isNumstr(str)
- ? this._createEncoderBuffer(str)
- : this.reporter.error("Encoding of string type: numstr supports only digits and space")
- : tag === "printstr"
- ? this._isPrintstr(str)
- ? this._createEncoderBuffer(str)
- : this.reporter.error(
- "Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark",
- )
- : /str$/.test(tag)
- ? this._createEncoderBuffer(str)
- : tag === "objDesc"
- ? this._createEncoderBuffer(str)
- : this.reporter.error("Encoding of string type: " + tag + " unsupported");
- };
- DERNode.prototype._encodeObjid = function (id, values, relative) {
- if (typeof id == "string") {
- if (!values) return this.reporter.error("string objid given, but no values map found");
- if (!values.hasOwnProperty(id)) return this.reporter.error("objid not found in values map");
- id = values[id].split(/[\s.]+/g);
- for (let i = 0; i < id.length; i++) id[i] |= 0;
- } else if (Array.isArray(id)) {
- id = id.slice();
- for (let i = 0; i < id.length; i++) id[i] |= 0;
- }
- if (!Array.isArray(id))
- return this.reporter.error("objid() should be either array or string, got: " + JSON.stringify(id));
- if (!relative) {
- if (id[1] >= 40) return this.reporter.error("Second objid identifier OOB");
- id.splice(0, 2, id[0] * 40 + id[1]);
- }
- let size = 0;
- for (let i = 0; i < id.length; i++) {
- let ident = id[i];
- for (size++; ident >= 128; ident >>= 7) size++;
- }
- let objid = Buffer2.alloc(size),
- offset = objid.length - 1;
- for (let i = id.length - 1; i >= 0; i--) {
- let ident = id[i];
- for (objid[offset--] = ident & 127; (ident >>= 7) > 0; ) objid[offset--] = 128 | (ident & 127);
- }
- return this._createEncoderBuffer(objid);
- };
- function two(num) {
- return num < 10 ? "0" + num : num;
- }
- DERNode.prototype._encodeTime = function (time, tag) {
- let str,
- date = new Date(time);
- return (
- tag === "gentime"
- ? (str = [
- two(date.getUTCFullYear()),
- two(date.getUTCMonth() + 1),
- two(date.getUTCDate()),
- two(date.getUTCHours()),
- two(date.getUTCMinutes()),
- two(date.getUTCSeconds()),
- "Z",
- ].join(""))
- : tag === "utctime"
- ? (str = [
- two(date.getUTCFullYear() % 100),
- two(date.getUTCMonth() + 1),
- two(date.getUTCDate()),
- two(date.getUTCHours()),
- two(date.getUTCMinutes()),
- two(date.getUTCSeconds()),
- "Z",
- ].join(""))
- : this.reporter.error("Encoding " + tag + " time is not supported yet"),
- this._encodeStr(str, "octstr")
- );
- };
- DERNode.prototype._encodeNull = function () {
- return this._createEncoderBuffer("");
- };
- DERNode.prototype._encodeInt = function (num, values) {
- if (typeof num == "string") {
- if (!values) return this.reporter.error("String int or enum given, but no values map");
- if (!values.hasOwnProperty(num))
- return this.reporter.error("Values map doesn't contain: " + JSON.stringify(num));
- num = values[num];
- }
- if (typeof num != "number" && !Buffer2.isBuffer(num)) {
- let numArray = num.toArray();
- !num.sign && numArray[0] & 128 && numArray.unshift(0), (num = Buffer2.from(numArray));
- }
- if (Buffer2.isBuffer(num)) {
- let size2 = num.length;
- num.length === 0 && size2++;
- let out2 = Buffer2.alloc(size2);
- return num.copy(out2), num.length === 0 && (out2[0] = 0), this._createEncoderBuffer(out2);
- }
- if (num < 128) return this._createEncoderBuffer(num);
- if (num < 256) return this._createEncoderBuffer([0, num]);
- let size = 1;
- for (let i = num; i >= 256; i >>= 8) size++;
- let out = new Array(size);
- for (let i = out.length - 1; i >= 0; i--) (out[i] = num & 255), (num >>= 8);
- return out[0] & 128 && out.unshift(0), this._createEncoderBuffer(Buffer2.from(out));
- };
- DERNode.prototype._encodeBool = function (value) {
- return this._createEncoderBuffer(value ? 255 : 0);
- };
- DERNode.prototype._use = function (entity, obj) {
- return typeof entity == "function" && (entity = entity(obj)), entity._getEncoder("der").tree;
- };
- DERNode.prototype._skipDefault = function (dataBuffer, reporter, parent) {
- let state = this._baseState,
- i;
- if (state.default === null) return !1;
- let data = dataBuffer.join();
- if (
- (state.defaultBuffer === void 0 &&
- (state.defaultBuffer = this._encodeValue(state.default, reporter, parent).join()),
- data.length !== state.defaultBuffer.length)
- )
- return !1;
- for (i = 0; i < data.length; i++) if (data[i] !== state.defaultBuffer[i]) return !1;
- return !0;
- };
- function encodeTag(tag, primitive, cls, reporter) {
- let res;
- if ((tag === "seqof" ? (tag = "seq") : tag === "setof" && (tag = "set"), der.tagByName.hasOwnProperty(tag)))
- res = der.tagByName[tag];
- else if (typeof tag == "number" && (tag | 0) === tag) res = tag;
- else return reporter.error("Unknown tag: " + tag);
- return res >= 31
- ? reporter.error("Multi-octet tag encoding unsupported")
- : (primitive || (res |= 32), (res |= der.tagClassByName[cls || "universal"] << 6), res);
- }
- },
-});
-
-// node_modules/asn1.js/lib/asn1/encoders/pem.js
-var require_pem = __commonJS({
- "node_modules/asn1.js/lib/asn1/encoders/pem.js"(exports, module) {
- "use strict";
- var inherits = require_inherits_browser(),
- DEREncoder = require_der2();
- function PEMEncoder(entity) {
- DEREncoder.call(this, entity), (this.enc = "pem");
- }
- inherits(PEMEncoder, DEREncoder);
- module.exports = PEMEncoder;
- PEMEncoder.prototype.encode = function (data, options) {
- let p = DEREncoder.prototype.encode.call(this, data).toString("base64"),
- out = ["-----BEGIN " + options.label + "-----"];
- for (let i = 0; i < p.length; i += 64) out.push(p.slice(i, i + 64));
- return (
- out.push("-----END " + options.label + "-----"),
- out.join(`
-`)
- );
- };
- },
-});
-
-// node_modules/asn1.js/lib/asn1/encoders/index.js
-var require_encoders = __commonJS({
- "node_modules/asn1.js/lib/asn1/encoders/index.js"(exports) {
- "use strict";
- var encoders = exports;
- encoders.der = require_der2();
- encoders.pem = require_pem();
- },
-});
-
-// node_modules/asn1.js/lib/asn1/decoders/der.js
-var require_der3 = __commonJS({
- "node_modules/asn1.js/lib/asn1/decoders/der.js"(exports, module) {
- "use strict";
- var inherits = require_inherits_browser(),
- bignum = require_bn5(),
- DecoderBuffer = require_buffer().DecoderBuffer,
- Node = require_node(),
- der = require_der();
- function DERDecoder(entity) {
- (this.enc = "der"),
- (this.name = entity.name),
- (this.entity = entity),
- (this.tree = new DERNode()),
- this.tree._init(entity.body);
- }
- module.exports = DERDecoder;
- DERDecoder.prototype.decode = function (data, options) {
- return (
- DecoderBuffer.isDecoderBuffer(data) || (data = new DecoderBuffer(data, options)),
- this.tree._decode(data, options)
- );
- };
- function DERNode(parent) {
- Node.call(this, "der", parent);
- }
- inherits(DERNode, Node);
- DERNode.prototype._peekTag = function (buffer, tag, any) {
- if (buffer.isEmpty()) return !1;
- let state = buffer.save(),
- decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"');
- return buffer.isError(decodedTag)
- ? decodedTag
- : (buffer.restore(state),
- decodedTag.tag === tag || decodedTag.tagStr === tag || decodedTag.tagStr + "of" === tag || any);
- };
- DERNode.prototype._decodeTag = function (buffer, tag, any) {
- let decodedTag = derDecodeTag(buffer, 'Failed to decode tag of "' + tag + '"');
- if (buffer.isError(decodedTag)) return decodedTag;
- let len = derDecodeLen(buffer, decodedTag.primitive, 'Failed to get length of "' + tag + '"');
- if (buffer.isError(len)) return len;
- if (!any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + "of" !== tag)
- return buffer.error('Failed to match tag: "' + tag + '"');
- if (decodedTag.primitive || len !== null) return buffer.skip(len, 'Failed to match body of: "' + tag + '"');
- let state = buffer.save(),
- res = this._skipUntilEnd(buffer, 'Failed to skip indefinite length body: "' + this.tag + '"');
- return buffer.isError(res)
- ? res
- : ((len = buffer.offset - state.offset),
- buffer.restore(state),
- buffer.skip(len, 'Failed to match body of: "' + tag + '"'));
- };
- DERNode.prototype._skipUntilEnd = function (buffer, fail) {
- for (;;) {
- let tag = derDecodeTag(buffer, fail);
- if (buffer.isError(tag)) return tag;
- let len = derDecodeLen(buffer, tag.primitive, fail);
- if (buffer.isError(len)) return len;
- let res;
- if (
- (tag.primitive || len !== null ? (res = buffer.skip(len)) : (res = this._skipUntilEnd(buffer, fail)),
- buffer.isError(res))
- )
- return res;
- if (tag.tagStr === "end") break;
- }
- };
- DERNode.prototype._decodeList = function (buffer, tag, decoder, options) {
- let result = [];
- for (; !buffer.isEmpty(); ) {
- let possibleEnd = this._peekTag(buffer, "end");
- if (buffer.isError(possibleEnd)) return possibleEnd;
- let res = decoder.decode(buffer, "der", options);
- if (buffer.isError(res) && possibleEnd) break;
- result.push(res);
- }
- return result;
- };
- DERNode.prototype._decodeStr = function (buffer, tag) {
- if (tag === "bitstr") {
- let unused = buffer.readUInt8();
- return buffer.isError(unused) ? unused : { unused, data: buffer.raw() };
- } else if (tag === "bmpstr") {
- let raw = buffer.raw();
- if (raw.length % 2 === 1) return buffer.error("Decoding of string type: bmpstr length mismatch");
- let str = "";
- for (let i = 0; i < raw.length / 2; i++) str += String.fromCharCode(raw.readUInt16BE(i * 2));
- return str;
- } else if (tag === "numstr") {
- let numstr = buffer.raw().toString("ascii");
- return this._isNumstr(numstr) ? numstr : buffer.error("Decoding of string type: numstr unsupported characters");
- } else {
- if (tag === "octstr") return buffer.raw();
- if (tag === "objDesc") return buffer.raw();
- if (tag === "printstr") {
- let printstr = buffer.raw().toString("ascii");
- return this._isPrintstr(printstr)
- ? printstr
- : buffer.error("Decoding of string type: printstr unsupported characters");
- } else
- return /str$/.test(tag)
- ? buffer.raw().toString()
- : buffer.error("Decoding of string type: " + tag + " unsupported");
- }
- };
- DERNode.prototype._decodeObjid = function (buffer, values, relative) {
- let result,
- identifiers = [],
- ident = 0,
- subident = 0;
- for (; !buffer.isEmpty(); )
- (subident = buffer.readUInt8()),
- (ident <<= 7),
- (ident |= subident & 127),
- (subident & 128) === 0 && (identifiers.push(ident), (ident = 0));
- subident & 128 && identifiers.push(ident);
- let first = (identifiers[0] / 40) | 0,
- second = identifiers[0] % 40;
- if ((relative ? (result = identifiers) : (result = [first, second].concat(identifiers.slice(1))), values)) {
- let tmp = values[result.join(" ")];
- tmp === void 0 && (tmp = values[result.join(".")]), tmp !== void 0 && (result = tmp);
- }
- return result;
- };
- DERNode.prototype._decodeTime = function (buffer, tag) {
- let str = buffer.raw().toString(),
- year,
- mon,
- day,
- hour,
- min,
- sec;
- if (tag === "gentime")
- (year = str.slice(0, 4) | 0),
- (mon = str.slice(4, 6) | 0),
- (day = str.slice(6, 8) | 0),
- (hour = str.slice(8, 10) | 0),
- (min = str.slice(10, 12) | 0),
- (sec = str.slice(12, 14) | 0);
- else if (tag === "utctime")
- (year = str.slice(0, 2) | 0),
- (mon = str.slice(2, 4) | 0),
- (day = str.slice(4, 6) | 0),
- (hour = str.slice(6, 8) | 0),
- (min = str.slice(8, 10) | 0),
- (sec = str.slice(10, 12) | 0),
- year < 70 ? (year = 2e3 + year) : (year = 1900 + year);
- else return buffer.error("Decoding " + tag + " time is not supported yet");
- return Date.UTC(year, mon - 1, day, hour, min, sec, 0);
- };
- DERNode.prototype._decodeNull = function () {
- return null;
- };
- DERNode.prototype._decodeBool = function (buffer) {
- let res = buffer.readUInt8();
- return buffer.isError(res) ? res : res !== 0;
- };
- DERNode.prototype._decodeInt = function (buffer, values) {
- let raw = buffer.raw(),
- res = new bignum(raw);
- return values && (res = values[res.toString(10)] || res), res;
- };
- DERNode.prototype._use = function (entity, obj) {
- return typeof entity == "function" && (entity = entity(obj)), entity._getDecoder("der").tree;
- };
- function derDecodeTag(buf, fail) {
- let tag = buf.readUInt8(fail);
- if (buf.isError(tag)) return tag;
- let cls = der.tagClass[tag >> 6],
- primitive = (tag & 32) === 0;
- if ((tag & 31) === 31) {
- let oct = tag;
- for (tag = 0; (oct & 128) === 128; ) {
- if (((oct = buf.readUInt8(fail)), buf.isError(oct))) return oct;
- (tag <<= 7), (tag |= oct & 127);
- }
- } else tag &= 31;
- let tagStr = der.tag[tag];
- return {
- cls,
- primitive,
- tag,
- tagStr,
- };
- }
- function derDecodeLen(buf, primitive, fail) {
- let len = buf.readUInt8(fail);
- if (buf.isError(len)) return len;
- if (!primitive && len === 128) return null;
- if ((len & 128) === 0) return len;
- let num = len & 127;
- if (num > 4) return buf.error("length octect is too long");
- len = 0;
- for (let i = 0; i < num; i++) {
- len <<= 8;
- let j = buf.readUInt8(fail);
- if (buf.isError(j)) return j;
- len |= j;
- }
- return len;
- }
- },
-});
-
-// node_modules/asn1.js/lib/asn1/decoders/pem.js
-var require_pem2 = __commonJS({
- "node_modules/asn1.js/lib/asn1/decoders/pem.js"(exports, module) {
- "use strict";
- var inherits = require_inherits_browser(),
- Buffer2 = require_safer().Buffer,
- DERDecoder = require_der3();
- function PEMDecoder(entity) {
- DERDecoder.call(this, entity), (this.enc = "pem");
- }
- inherits(PEMDecoder, DERDecoder);
- module.exports = PEMDecoder;
- PEMDecoder.prototype.decode = function (data, options) {
- let lines = data.toString().split(/[\r\n]+/g),
- label = options.label.toUpperCase(),
- re = /^-----(BEGIN|END) ([^-]+)-----$/,
- start = -1,
- end = -1;
- for (let i = 0; i < lines.length; i++) {
- let match = lines[i].match(re);
- if (match !== null && match[2] === label)
- if (start === -1) {
- if (match[1] !== "BEGIN") break;
- start = i;
- } else {
- if (match[1] !== "END") break;
- end = i;
- break;
- }
- }
- if (start === -1 || end === -1) throw new Error("PEM section not found for: " + label);
- let base64 = lines.slice(start + 1, end).join("");
- base64.replace(/[^a-z0-9+/=]+/gi, "");
- let input = Buffer2.from(base64, "base64");
- return DERDecoder.prototype.decode.call(this, input, options);
- };
- },
-});
-
-// node_modules/asn1.js/lib/asn1/decoders/index.js
-var require_decoders = __commonJS({
- "node_modules/asn1.js/lib/asn1/decoders/index.js"(exports) {
- "use strict";
- var decoders = exports;
- decoders.der = require_der3();
- decoders.pem = require_pem2();
- },
-});
-
-// node_modules/asn1.js/lib/asn1/api.js
-var require_api = __commonJS({
- "node_modules/asn1.js/lib/asn1/api.js"(exports) {
- "use strict";
- var encoders = require_encoders(),
- decoders = require_decoders(),
- inherits = require_inherits_browser(),
- api = exports;
- api.define = function (name, body) {
- return new Entity(name, body);
- };
- function Entity(name, body) {
- (this.name = name), (this.body = body), (this.decoders = {}), (this.encoders = {});
- }
- Entity.prototype._createNamed = function (Base) {
- let name = this.name;
- function Generated(entity) {
- this._initNamed(entity, name);
- }
- return (
- inherits(Generated, Base),
- (Generated.prototype._initNamed = function (entity, name2) {
- Base.call(this, entity, name2);
- }),
- new Generated(this)
- );
- };
- Entity.prototype._getDecoder = function (enc) {
- return (
- (enc = enc || "der"),
- this.decoders.hasOwnProperty(enc) || (this.decoders[enc] = this._createNamed(decoders[enc])),
- this.decoders[enc]
- );
- };
- Entity.prototype.decode = function (data, enc, options) {
- return this._getDecoder(enc).decode(data, options);
- };
- Entity.prototype._getEncoder = function (enc) {
- return (
- (enc = enc || "der"),
- this.encoders.hasOwnProperty(enc) || (this.encoders[enc] = this._createNamed(encoders[enc])),
- this.encoders[enc]
- );
- };
- Entity.prototype.encode = function (data, enc, reporter) {
- return this._getEncoder(enc).encode(data, reporter);
- };
- },
-});
-
-// node_modules/asn1.js/lib/asn1/base/index.js
-var require_base2 = __commonJS({
- "node_modules/asn1.js/lib/asn1/base/index.js"(exports) {
- "use strict";
- var base = exports;
- base.Reporter = require_reporter().Reporter;
- base.DecoderBuffer = require_buffer().DecoderBuffer;
- base.EncoderBuffer = require_buffer().EncoderBuffer;
- base.Node = require_node();
- },
-});
-
-// node_modules/asn1.js/lib/asn1/constants/index.js
-var require_constants = __commonJS({
- "node_modules/asn1.js/lib/asn1/constants/index.js"(exports) {
- "use strict";
- var constants = exports;
- constants._reverse = function (map) {
- let res = {};
- return (
- Object.keys(map).forEach(function (key) {
- (key | 0) == key && (key = key | 0);
- let value = map[key];
- res[value] = key;
- }),
- res
- );
- };
- constants.der = require_der();
- },
-});
-
-// node_modules/asn1.js/lib/asn1.js
-var require_asn1 = __commonJS({
- "node_modules/asn1.js/lib/asn1.js"(exports) {
- "use strict";
- var asn1 = exports;
- asn1.bignum = require_bn5();
- asn1.define = require_api().define;
- asn1.base = require_base2();
- asn1.constants = require_constants();
- asn1.decoders = require_decoders();
- asn1.encoders = require_encoders();
- },
-});
-
-// node_modules/parse-asn1/certificate.js
-var require_certificate = __commonJS({
- "node_modules/parse-asn1/certificate.js"(exports, module) {
- "use strict";
- var asn = require_asn1(),
- Time = asn.define("Time", function () {
- this.choice({
- utcTime: this.utctime(),
- generalTime: this.gentime(),
- });
- }),
- AttributeTypeValue = asn.define("AttributeTypeValue", function () {
- this.seq().obj(this.key("type").objid(), this.key("value").any());
- }),
- AlgorithmIdentifier = asn.define("AlgorithmIdentifier", function () {
- this.seq().obj(
- this.key("algorithm").objid(),
- this.key("parameters").optional(),
- this.key("curve").objid().optional(),
- );
- }),
- SubjectPublicKeyInfo = asn.define("SubjectPublicKeyInfo", function () {
- this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr());
- }),
- RelativeDistinguishedName = asn.define("RelativeDistinguishedName", function () {
- this.setof(AttributeTypeValue);
- }),
- RDNSequence = asn.define("RDNSequence", function () {
- this.seqof(RelativeDistinguishedName);
- }),
- Name = asn.define("Name", function () {
- this.choice({
- rdnSequence: this.use(RDNSequence),
- });
- }),
- Validity = asn.define("Validity", function () {
- this.seq().obj(this.key("notBefore").use(Time), this.key("notAfter").use(Time));
- }),
- Extension = asn.define("Extension", function () {
- this.seq().obj(this.key("extnID").objid(), this.key("critical").bool().def(!1), this.key("extnValue").octstr());
- }),
- TBSCertificate = asn.define("TBSCertificate", function () {
- this.seq().obj(
- this.key("version").explicit(0).int().optional(),
- this.key("serialNumber").int(),
- this.key("signature").use(AlgorithmIdentifier),
- this.key("issuer").use(Name),
- this.key("validity").use(Validity),
- this.key("subject").use(Name),
- this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo),
- this.key("issuerUniqueID").implicit(1).bitstr().optional(),
- this.key("subjectUniqueID").implicit(2).bitstr().optional(),
- this.key("extensions").explicit(3).seqof(Extension).optional(),
- );
- }),
- X509Certificate = asn.define("X509Certificate", function () {
- this.seq().obj(
- this.key("tbsCertificate").use(TBSCertificate),
- this.key("signatureAlgorithm").use(AlgorithmIdentifier),
- this.key("signatureValue").bitstr(),
- );
- });
- module.exports = X509Certificate;
- },
-});
-
-// node_modules/parse-asn1/asn1.js
-var require_asn12 = __commonJS({
- "node_modules/parse-asn1/asn1.js"(exports) {
- "use strict";
- var asn1 = require_asn1();
- exports.certificate = require_certificate();
- var RSAPrivateKey = asn1.define("RSAPrivateKey", function () {
- this.seq().obj(
- this.key("version").int(),
- this.key("modulus").int(),
- this.key("publicExponent").int(),
- this.key("privateExponent").int(),
- this.key("prime1").int(),
- this.key("prime2").int(),
- this.key("exponent1").int(),
- this.key("exponent2").int(),
- this.key("coefficient").int(),
- );
- });
- exports.RSAPrivateKey = RSAPrivateKey;
- var RSAPublicKey = asn1.define("RSAPublicKey", function () {
- this.seq().obj(this.key("modulus").int(), this.key("publicExponent").int());
- });
- exports.RSAPublicKey = RSAPublicKey;
- var PublicKey = asn1.define("SubjectPublicKeyInfo", function () {
- this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr());
- });
- exports.PublicKey = PublicKey;
- var AlgorithmIdentifier = asn1.define("AlgorithmIdentifier", function () {
- this.seq().obj(
- this.key("algorithm").objid(),
- this.key("none").null_().optional(),
- this.key("curve").objid().optional(),
- this.key("params").seq().obj(this.key("p").int(), this.key("q").int(), this.key("g").int()).optional(),
- );
- }),
- PrivateKeyInfo = asn1.define("PrivateKeyInfo", function () {
- this.seq().obj(
- this.key("version").int(),
- this.key("algorithm").use(AlgorithmIdentifier),
- this.key("subjectPrivateKey").octstr(),
- );
- });
- exports.PrivateKey = PrivateKeyInfo;
- var EncryptedPrivateKeyInfo = asn1.define("EncryptedPrivateKeyInfo", function () {
- this.seq().obj(
- this.key("algorithm")
- .seq()
- .obj(
- this.key("id").objid(),
- this.key("decrypt")
- .seq()
- .obj(
- this.key("kde")
- .seq()
- .obj(
- this.key("id").objid(),
- this.key("kdeparams").seq().obj(this.key("salt").octstr(), this.key("iters").int()),
- ),
- this.key("cipher").seq().obj(this.key("algo").objid(), this.key("iv").octstr()),
- ),
- ),
- this.key("subjectPrivateKey").octstr(),
- );
- });
- exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;
- var DSAPrivateKey = asn1.define("DSAPrivateKey", function () {
- this.seq().obj(
- this.key("version").int(),
- this.key("p").int(),
- this.key("q").int(),
- this.key("g").int(),
- this.key("pub_key").int(),
- this.key("priv_key").int(),
- );
- });
- exports.DSAPrivateKey = DSAPrivateKey;
- exports.DSAparam = asn1.define("DSAparam", function () {
- this.int();
- });
- var ECPrivateKey = asn1.define("ECPrivateKey", function () {
- this.seq().obj(
- this.key("version").int(),
- this.key("privateKey").octstr(),
- this.key("parameters").optional().explicit(0).use(ECParameters),
- this.key("publicKey").optional().explicit(1).bitstr(),
- );
- });
- exports.ECPrivateKey = ECPrivateKey;
- var ECParameters = asn1.define("ECParameters", function () {
- this.choice({
- namedCurve: this.objid(),
- });
- });
- exports.signature = asn1.define("signature", function () {
- this.seq().obj(this.key("r").int(), this.key("s").int());
- });
- },
-});
-
-// node_modules/parse-asn1/aesid.json
-var require_aesid = __commonJS({
- "node_modules/parse-asn1/aesid.json"(exports, module) {
- module.exports = {
- "2.16.840.1.101.3.4.1.1": "aes-128-ecb",
- "2.16.840.1.101.3.4.1.2": "aes-128-cbc",
- "2.16.840.1.101.3.4.1.3": "aes-128-ofb",
- "2.16.840.1.101.3.4.1.4": "aes-128-cfb",
- "2.16.840.1.101.3.4.1.21": "aes-192-ecb",
- "2.16.840.1.101.3.4.1.22": "aes-192-cbc",
- "2.16.840.1.101.3.4.1.23": "aes-192-ofb",
- "2.16.840.1.101.3.4.1.24": "aes-192-cfb",
- "2.16.840.1.101.3.4.1.41": "aes-256-ecb",
- "2.16.840.1.101.3.4.1.42": "aes-256-cbc",
- "2.16.840.1.101.3.4.1.43": "aes-256-ofb",
- "2.16.840.1.101.3.4.1.44": "aes-256-cfb",
- };
- },
-});
-
-// node_modules/parse-asn1/fixProc.js
-var require_fixProc = __commonJS({
- "node_modules/parse-asn1/fixProc.js"(exports, module) {
- var findProc =
- /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,
- startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,
- fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,
- evp = require_evp_bytestokey(),
- ciphers = require_browser5(),
- Buffer2 = require_safe_buffer().Buffer;
- module.exports = function (okey, password) {
- var key = okey.toString(),
- match = key.match(findProc),
- decrypted;
- if (match) {
- var suite = "aes" + match[1],
- iv = Buffer2.from(match[2], "hex"),
- cipherText = Buffer2.from(match[3].replace(/[\r\n]/g, ""), "base64"),
- cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key,
- out = [],
- cipher = ciphers.createDecipheriv(suite, cipherKey, iv);
- out.push(cipher.update(cipherText)), out.push(cipher.final()), (decrypted = Buffer2.concat(out));
- } else {
- var match2 = key.match(fullRegex);
- decrypted = Buffer2.from(match2[2].replace(/[\r\n]/g, ""), "base64");
- }
- var tag = key.match(startRegex)[1];
- return {
- tag,
- data: decrypted,
- };
- };
- },
-});
-
-// node_modules/parse-asn1/index.js
-var require_parse_asn1 = __commonJS({
- "node_modules/parse-asn1/index.js"(exports, module) {
- var asn1 = require_asn12(),
- aesid = require_aesid(),
- fixProc = require_fixProc(),
- ciphers = require_browser5(),
- compat = require_browser4(),
- Buffer2 = require_safe_buffer().Buffer;
- module.exports = parseKeys;
- function parseKeys(buffer) {
- var password;
- typeof buffer == "object" && !Buffer2.isBuffer(buffer) && ((password = buffer.passphrase), (buffer = buffer.key)),
- typeof buffer == "string" && (buffer = Buffer2.from(buffer));
- var stripped = fixProc(buffer, password),
- type = stripped.tag,
- data = stripped.data,
- subtype,
- ndata;
- switch (type) {
- case "CERTIFICATE":
- ndata = asn1.certificate.decode(data, "der").tbsCertificate.subjectPublicKeyInfo;
- case "PUBLIC KEY":
- switch (
- (ndata || (ndata = asn1.PublicKey.decode(data, "der")),
- (subtype = ndata.algorithm.algorithm.join(".")),
- subtype)
- ) {
- case "1.2.840.113549.1.1.1":
- return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, "der");
- case "1.2.840.10045.2.1":
- return (
- (ndata.subjectPrivateKey = ndata.subjectPublicKey),
- {
- type: "ec",
- data: ndata,
- }
- );
- case "1.2.840.10040.4.1":
- return (
- (ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, "der")),
- {
- type: "dsa",
- data: ndata.algorithm.params,
- }
- );
- default:
- throw new Error("unknown key id " + subtype);
- }
- case "ENCRYPTED PRIVATE KEY":
- (data = asn1.EncryptedPrivateKey.decode(data, "der")), (data = decrypt(data, password));
- case "PRIVATE KEY":
- switch (
- ((ndata = asn1.PrivateKey.decode(data, "der")), (subtype = ndata.algorithm.algorithm.join(".")), subtype)
- ) {
- case "1.2.840.113549.1.1.1":
- return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, "der");
- case "1.2.840.10045.2.1":
- return {
- curve: ndata.algorithm.curve,
- privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, "der").privateKey,
- };
- case "1.2.840.10040.4.1":
- return (
- (ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, "der")),
- {
- type: "dsa",
- params: ndata.algorithm.params,
- }
- );
- default:
- throw new Error("unknown key id " + subtype);
- }
- case "RSA PUBLIC KEY":
- return asn1.RSAPublicKey.decode(data, "der");
- case "RSA PRIVATE KEY":
- return asn1.RSAPrivateKey.decode(data, "der");
- case "DSA PRIVATE KEY":
- return {
- type: "dsa",
- params: asn1.DSAPrivateKey.decode(data, "der"),
- };
- case "EC PRIVATE KEY":
- return (
- (data = asn1.ECPrivateKey.decode(data, "der")),
- {
- curve: data.parameters.value,
- privateKey: data.privateKey,
- }
- );
- default:
- throw new Error("unknown key type " + type);
- }
- }
- parseKeys.signature = asn1.signature;
- function decrypt(data, password) {
- var salt = data.algorithm.decrypt.kde.kdeparams.salt,
- iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10),
- algo = aesid[data.algorithm.decrypt.cipher.algo.join(".")],
- iv = data.algorithm.decrypt.cipher.iv,
- cipherText = data.subjectPrivateKey,
- keylen = parseInt(algo.split("-")[1], 10) / 8,
- key = compat.pbkdf2Sync(password, salt, iters, keylen, "sha1"),
- cipher = ciphers.createDecipheriv(algo, key, iv),
- out = [];
- return out.push(cipher.update(cipherText)), out.push(cipher.final()), Buffer2.concat(out);
- }
- },
-});
-
-// node_modules/browserify-sign/browser/curves.json
-var require_curves2 = __commonJS({
- "node_modules/browserify-sign/browser/curves.json"(exports, module) {
- module.exports = {
- "1.3.132.0.10": "secp256k1",
- "1.3.132.0.33": "p224",
- "1.2.840.10045.3.1.1": "p192",
- "1.2.840.10045.3.1.7": "p256",
- "1.3.132.0.34": "p384",
- "1.3.132.0.35": "p521",
- };
- },
-});
-
-// node_modules/browserify-sign/browser/sign.js
-var require_sign = __commonJS({
- "node_modules/browserify-sign/browser/sign.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer,
- createHmac = require_browser3(),
- crt = require_browserify_rsa(),
- EC = require_elliptic().ec,
- BN = require_bn3(),
- parseKeys = require_parse_asn1(),
- curves = require_curves2();
- function sign(hash, key, hashType, signType, tag) {
- var priv = parseKeys(key);
- if (priv.curve) {
- if (signType !== "ecdsa" && signType !== "ecdsa/rsa") throw new Error("wrong private key type");
- return ecSign(hash, priv);
- } else if (priv.type === "dsa") {
- if (signType !== "dsa") throw new Error("wrong private key type");
- return dsaSign(hash, priv, hashType);
- } else if (signType !== "rsa" && signType !== "ecdsa/rsa") throw new Error("wrong private key type");
- hash = Buffer2.concat([tag, hash]);
- for (var len = priv.modulus.byteLength(), pad = [0, 1]; hash.length + pad.length + 1 < len; ) pad.push(255);
- pad.push(0);
- for (var i = -1; ++i < hash.length; ) pad.push(hash[i]);
- var out = crt(pad, priv);
- return out;
- }
- function ecSign(hash, priv) {
- var curveId = curves[priv.curve.join(".")];
- if (!curveId) throw new Error("unknown curve " + priv.curve.join("."));
- var curve = new EC(curveId),
- key = curve.keyFromPrivate(priv.privateKey),
- out = key.sign(hash);
- return Buffer2.from(out.toDER());
- }
- function dsaSign(hash, priv, algo) {
- for (
- var x = priv.params.priv_key,
- p = priv.params.p,
- q = priv.params.q,
- g = priv.params.g,
- r = new BN(0),
- k,
- H = bits2int(hash, q).mod(q),
- s = !1,
- kv = getKey(x, q, hash, algo);
- s === !1;
-
- )
- (k = makeKey(q, kv, algo)),
- (r = makeR(g, k, p, q)),
- (s = k
- .invm(q)
- .imul(H.add(x.mul(r)))
- .mod(q)),
- s.cmpn(0) === 0 && ((s = !1), (r = new BN(0)));
- return toDER(r, s);
- }
- function toDER(r, s) {
- (r = r.toArray()), (s = s.toArray()), r[0] & 128 && (r = [0].concat(r)), s[0] & 128 && (s = [0].concat(s));
- var total = r.length + s.length + 4,
- res = [48, total, 2, r.length];
- return (res = res.concat(r, [2, s.length], s)), Buffer2.from(res);
- }
- function getKey(x, q, hash, algo) {
- if (((x = Buffer2.from(x.toArray())), x.length < q.byteLength())) {
- var zeros = Buffer2.alloc(q.byteLength() - x.length);
- x = Buffer2.concat([zeros, x]);
- }
- var hlen = hash.length,
- hbits = bits2octets(hash, q),
- v = Buffer2.alloc(hlen);
- v.fill(1);
- var k = Buffer2.alloc(hlen);
- return (
- (k = createHmac(algo, k)
- .update(v)
- .update(Buffer2.from([0]))
- .update(x)
- .update(hbits)
- .digest()),
- (v = createHmac(algo, k).update(v).digest()),
- (k = createHmac(algo, k)
- .update(v)
- .update(Buffer2.from([1]))
- .update(x)
- .update(hbits)
- .digest()),
- (v = createHmac(algo, k).update(v).digest()),
- { k, v }
- );
- }
- function bits2int(obits, q) {
- var bits = new BN(obits),
- shift = (obits.length << 3) - q.bitLength();
- return shift > 0 && bits.ishrn(shift), bits;
- }
- function bits2octets(bits, q) {
- (bits = bits2int(bits, q)), (bits = bits.mod(q));
- var out = Buffer2.from(bits.toArray());
- if (out.length < q.byteLength()) {
- var zeros = Buffer2.alloc(q.byteLength() - out.length);
- out = Buffer2.concat([zeros, out]);
- }
- return out;
- }
- function makeKey(q, kv, algo) {
- var t, k;
- do {
- for (t = Buffer2.alloc(0); t.length * 8 < q.bitLength(); )
- (kv.v = createHmac(algo, kv.k).update(kv.v).digest()), (t = Buffer2.concat([t, kv.v]));
- (k = bits2int(t, q)),
- (kv.k = createHmac(algo, kv.k)
- .update(kv.v)
- .update(Buffer2.from([0]))
- .digest()),
- (kv.v = createHmac(algo, kv.k).update(kv.v).digest());
- } while (k.cmp(q) !== -1);
- return k;
- }
- function makeR(g, k, p, q) {
- return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);
- }
- module.exports = sign;
- module.exports.getKey = getKey;
- module.exports.makeKey = makeKey;
- },
-});
-
-// node_modules/browserify-sign/browser/verify.js
-var require_verify = __commonJS({
- "node_modules/browserify-sign/browser/verify.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer,
- BN = require_bn3(),
- EC = require_elliptic().ec,
- parseKeys = require_parse_asn1(),
- curves = require_curves2();
- function verify(sig, hash, key, signType, tag) {
- var pub = parseKeys(key);
- if (pub.type === "ec") {
- if (signType !== "ecdsa" && signType !== "ecdsa/rsa") throw new Error("wrong public key type");
- return ecVerify(sig, hash, pub);
- } else if (pub.type === "dsa") {
- if (signType !== "dsa") throw new Error("wrong public key type");
- return dsaVerify(sig, hash, pub);
- } else if (signType !== "rsa" && signType !== "ecdsa/rsa") throw new Error("wrong public key type");
- hash = Buffer2.concat([tag, hash]);
- for (var len = pub.modulus.byteLength(), pad = [1], padNum = 0; hash.length + pad.length + 2 < len; )
- pad.push(255), padNum++;
- pad.push(0);
- for (var i = -1; ++i < hash.length; ) pad.push(hash[i]);
- pad = Buffer2.from(pad);
- var red = BN.mont(pub.modulus);
- (sig = new BN(sig).toRed(red)),
- (sig = sig.redPow(new BN(pub.publicExponent))),
- (sig = Buffer2.from(sig.fromRed().toArray()));
- var out = padNum < 8 ? 1 : 0;
- for (len = Math.min(sig.length, pad.length), sig.length !== pad.length && (out = 1), i = -1; ++i < len; )
- out |= sig[i] ^ pad[i];
- return out === 0;
- }
- function ecVerify(sig, hash, pub) {
- var curveId = curves[pub.data.algorithm.curve.join(".")];
- if (!curveId) throw new Error("unknown curve " + pub.data.algorithm.curve.join("."));
- var curve = new EC(curveId),
- pubkey = pub.data.subjectPrivateKey.data;
- return curve.verify(hash, sig, pubkey);
- }
- function dsaVerify(sig, hash, pub) {
- var p = pub.data.p,
- q = pub.data.q,
- g = pub.data.g,
- y = pub.data.pub_key,
- unpacked = parseKeys.signature.decode(sig, "der"),
- s = unpacked.s,
- r = unpacked.r;
- checkValue(s, q), checkValue(r, q);
- var montp = BN.mont(p),
- w = s.invm(q),
- v = g
- .toRed(montp)
- .redPow(new BN(hash).mul(w).mod(q))
- .fromRed()
- .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())
- .mod(p)
- .mod(q);
- return v.cmp(r) === 0;
- }
- function checkValue(b, q) {
- if (b.cmpn(0) <= 0) throw new Error("invalid sig");
- if (b.cmp(q) >= q) throw new Error("invalid sig");
- }
- module.exports = verify;
- },
-});
-
-// node_modules/browserify-sign/browser/index.js
-var require_browser8 = __commonJS({
- "node_modules/browserify-sign/browser/index.js"(exports, module) {
- var Buffer2 = require_safe_buffer().Buffer,
- createHash = require_browser2(),
- stream = __require("readable-stream"),
- inherits = require_inherits_browser(),
- sign = require_sign(),
- verify = require_verify(),
- algorithms = require_algorithms();
- Object.keys(algorithms).forEach(function (key) {
- (algorithms[key].id = Buffer2.from(algorithms[key].id, "hex")), (algorithms[key.toLowerCase()] = algorithms[key]);
- });
- function Sign(algorithm) {
- stream.Writable.call(this);
- var data = algorithms[algorithm];
- if (!data) throw new Error("Unknown message digest");
- (this._hashType = data.hash),
- (this._hash = createHash(data.hash)),
- (this._tag = data.id),
- (this._signType = data.sign);
- }
- inherits(Sign, stream.Writable);
- Sign.prototype._write = function (data, _, done) {
- this._hash.update(data), done();
- };
- Sign.prototype.update = function (data, enc) {
- return typeof data == "string" && (data = Buffer2.from(data, enc)), this._hash.update(data), this;
- };
- Sign.prototype.sign = function (key, enc) {
- this.end();
- var hash = this._hash.digest(),
- sig = sign(hash, key, this._hashType, this._signType, this._tag);
- return enc ? sig.toString(enc) : sig;
- };
- function Verify(algorithm) {
- stream.Writable.call(this);
- var data = algorithms[algorithm];
- if (!data) throw new Error("Unknown message digest");
- (this._hash = createHash(data.hash)), (this._tag = data.id), (this._signType = data.sign);
- }
- inherits(Verify, stream.Writable);
- Verify.prototype._write = function (data, _, done) {
- this._hash.update(data), done();
- };
- Verify.prototype.update = function (data, enc) {
- return typeof data == "string" && (data = Buffer2.from(data, enc)), this._hash.update(data), this;
- };
- Verify.prototype.verify = function (key, sig, enc) {
- typeof sig == "string" && (sig = Buffer2.from(sig, enc)), this.end();
- var hash = this._hash.digest();
- return verify(sig, hash, key, this._signType, this._tag);
- };
- function createSign(algorithm) {
- return new Sign(algorithm);
- }
- function createVerify(algorithm) {
- return new Verify(algorithm);
- }
- module.exports = {
- Sign: createSign,
- Verify: createVerify,
- createSign,
- createVerify,
- };
- },
-});
-
-// node_modules/create-ecdh/node_modules/bn.js/lib/bn.js
-var require_bn6 = __commonJS({
- "node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"(exports, module) {
- (function (module2, exports2) {
- "use strict";
- function assert(val, msg) {
- if (!val) throw new Error(msg || "Assertion failed");
- }
- function inherits(ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- (TempCtor.prototype = superCtor.prototype),
- (ctor.prototype = new TempCtor()),
- (ctor.prototype.constructor = ctor);
- }
- function BN(number, base, endian) {
- if (BN.isBN(number)) return number;
- (this.negative = 0),
- (this.words = null),
- (this.length = 0),
- (this.red = null),
- number !== null &&
- ((base === "le" || base === "be") && ((endian = base), (base = 10)),
- this._init(number || 0, base || 10, endian || "be"));
- }
- typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26);
- var Buffer2;
- try {
- typeof window < "u" && typeof window.Buffer < "u"
- ? (Buffer2 = window.Buffer)
- : (Buffer2 = __require("buffer").Buffer);
- } catch {}
- (BN.isBN = function (num) {
- return num instanceof BN
- ? !0
- : num !== null &&
- typeof num == "object" &&
- num.constructor.wordSize === BN.wordSize &&
- Array.isArray(num.words);
- }),
- (BN.max = function (left, right) {
- return left.cmp(right) > 0 ? left : right;
- }),
- (BN.min = function (left, right) {
- return left.cmp(right) < 0 ? left : right;
- }),
- (BN.prototype._init = function (number, base, endian) {
- if (typeof number == "number") return this._initNumber(number, base, endian);
- if (typeof number == "object") return this._initArray(number, base, endian);
- base === "hex" && (base = 16),
- assert(base === (base | 0) && base >= 2 && base <= 36),
- (number = number.toString().replace(/\s+/g, ""));
- var start = 0;
- number[0] === "-" && (start++, (this.negative = 1)),
- start < number.length &&
- (base === 16
- ? this._parseHex(number, start, endian)
- : (this._parseBase(number, base, start),
- endian === "le" && this._initArray(this.toArray(), base, endian)));
- }),
- (BN.prototype._initNumber = function (number, base, endian) {
- number < 0 && ((this.negative = 1), (number = -number)),
- number < 67108864
- ? ((this.words = [number & 67108863]), (this.length = 1))
- : number < 4503599627370496
- ? ((this.words = [number & 67108863, (number / 67108864) & 67108863]), (this.length = 2))
- : (assert(number < 9007199254740992),
- (this.words = [number & 67108863, (number / 67108864) & 67108863, 1]),
- (this.length = 3)),
- endian === "le" && this._initArray(this.toArray(), base, endian);
- }),
- (BN.prototype._initArray = function (number, base, endian) {
- if ((assert(typeof number.length == "number"), number.length <= 0))
- return (this.words = [0]), (this.length = 1), this;
- (this.length = Math.ceil(number.length / 3)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var j,
- w,
- off = 0;
- if (endian === "be")
- for (i = number.length - 1, j = 0; i >= 0; i -= 3)
- (w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- else if (endian === "le")
- for (i = 0, j = 0; i < number.length; i += 3)
- (w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- return this.strip();
- });
- function parseHex4Bits(string, index) {
- var c = string.charCodeAt(index);
- return c >= 65 && c <= 70 ? c - 55 : c >= 97 && c <= 102 ? c - 87 : (c - 48) & 15;
- }
- function parseHexByte(string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- return index - 1 >= lowerBound && (r |= parseHex4Bits(string, index - 1) << 4), r;
- }
- BN.prototype._parseHex = function (number, start, endian) {
- (this.length = Math.ceil((number.length - start) / 6)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var off = 0,
- j = 0,
- w;
- if (endian === "be")
- for (i = number.length - 1; i >= start; i -= 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- }
- this.strip();
- };
- function parseBase(str, start, end, mul) {
- for (var r = 0, len = Math.min(str.length, end), i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- (r *= mul), c >= 49 ? (r += c - 49 + 10) : c >= 17 ? (r += c - 17 + 10) : (r += c);
- }
- return r;
- }
- (BN.prototype._parseBase = function (number, base, start) {
- (this.words = [0]), (this.length = 1);
- for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) limbLen++;
- limbLen--, (limbPow = (limbPow / base) | 0);
- for (
- var total = number.length - start,
- mod = total % limbLen,
- end = Math.min(total, total - mod) + start,
- word = 0,
- i = start;
- i < end;
- i += limbLen
- )
- (word = parseBase(number, i, i + limbLen, base)),
- this.imuln(limbPow),
- this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- if (mod !== 0) {
- var pow = 1;
- for (word = parseBase(number, i, number.length, base), i = 0; i < mod; i++) pow *= base;
- this.imuln(pow), this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- }
- this.strip();
- }),
- (BN.prototype.copy = function (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) dest.words[i] = this.words[i];
- (dest.length = this.length), (dest.negative = this.negative), (dest.red = this.red);
- }),
- (BN.prototype.clone = function () {
- var r = new BN(null);
- return this.copy(r), r;
- }),
- (BN.prototype._expand = function (size) {
- for (; this.length < size; ) this.words[this.length++] = 0;
- return this;
- }),
- (BN.prototype.strip = function () {
- for (; this.length > 1 && this.words[this.length - 1] === 0; ) this.length--;
- return this._normSign();
- }),
- (BN.prototype._normSign = function () {
- return this.length === 1 && this.words[0] === 0 && (this.negative = 0), this;
- }),
- (BN.prototype.inspect = function () {
- return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
- });
- var zeros = [
- "",
- "0",
- "00",
- "000",
- "0000",
- "00000",
- "000000",
- "0000000",
- "00000000",
- "000000000",
- "0000000000",
- "00000000000",
- "000000000000",
- "0000000000000",
- "00000000000000",
- "000000000000000",
- "0000000000000000",
- "00000000000000000",
- "000000000000000000",
- "0000000000000000000",
- "00000000000000000000",
- "000000000000000000000",
- "0000000000000000000000",
- "00000000000000000000000",
- "000000000000000000000000",
- "0000000000000000000000000",
- ],
- groupSizes = [
- 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5,
- ],
- groupBases = [
- 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808,
- 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624,
- 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875,
- 60466176,
- ];
- (BN.prototype.toString = function (base, padding) {
- (base = base || 10), (padding = padding | 0 || 1);
- var out;
- if (base === 16 || base === "hex") {
- out = "";
- for (var off = 0, carry = 0, i = 0; i < this.length; i++) {
- var w = this.words[i],
- word = (((w << off) | carry) & 16777215).toString(16);
- (carry = (w >>> (24 - off)) & 16777215),
- carry !== 0 || i !== this.length - 1 ? (out = zeros[6 - word.length] + word + out) : (out = word + out),
- (off += 2),
- off >= 26 && ((off -= 26), i--);
- }
- for (carry !== 0 && (out = carry.toString(16) + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- var groupSize = groupSizes[base],
- groupBase = groupBases[base];
- out = "";
- var c = this.clone();
- for (c.negative = 0; !c.isZero(); ) {
- var r = c.modn(groupBase).toString(base);
- (c = c.idivn(groupBase)), c.isZero() ? (out = r + out) : (out = zeros[groupSize - r.length] + r + out);
- }
- for (this.isZero() && (out = "0" + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- assert(!1, "Base should be between 2 and 36");
- }),
- (BN.prototype.toNumber = function () {
- var ret = this.words[0];
- return (
- this.length === 2
- ? (ret += this.words[1] * 67108864)
- : this.length === 3 && this.words[2] === 1
- ? (ret += 4503599627370496 + this.words[1] * 67108864)
- : this.length > 2 && assert(!1, "Number can only safely store up to 53 bits"),
- this.negative !== 0 ? -ret : ret
- );
- }),
- (BN.prototype.toJSON = function () {
- return this.toString(16);
- }),
- (BN.prototype.toBuffer = function (endian, length) {
- return assert(typeof Buffer2 < "u"), this.toArrayLike(Buffer2, endian, length);
- }),
- (BN.prototype.toArray = function (endian, length) {
- return this.toArrayLike(Array, endian, length);
- }),
- (BN.prototype.toArrayLike = function (ArrayType, endian, length) {
- var byteLength = this.byteLength(),
- reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, "byte array longer than desired length"),
- assert(reqLength > 0, "Requested array length <= 0"),
- this.strip();
- var littleEndian = endian === "le",
- res = new ArrayType(reqLength),
- b,
- i,
- q = this.clone();
- if (littleEndian) {
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[i] = b);
- for (; i < reqLength; i++) res[i] = 0;
- } else {
- for (i = 0; i < reqLength - byteLength; i++) res[i] = 0;
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[reqLength - i - 1] = b);
- }
- return res;
- }),
- Math.clz32
- ? (BN.prototype._countBits = function (w) {
- return 32 - Math.clz32(w);
- })
- : (BN.prototype._countBits = function (w) {
- var t = w,
- r = 0;
- return (
- t >= 4096 && ((r += 13), (t >>>= 13)),
- t >= 64 && ((r += 7), (t >>>= 7)),
- t >= 8 && ((r += 4), (t >>>= 4)),
- t >= 2 && ((r += 2), (t >>>= 2)),
- r + t
- );
- }),
- (BN.prototype._zeroBits = function (w) {
- if (w === 0) return 26;
- var t = w,
- r = 0;
- return (
- (t & 8191) === 0 && ((r += 13), (t >>>= 13)),
- (t & 127) === 0 && ((r += 7), (t >>>= 7)),
- (t & 15) === 0 && ((r += 4), (t >>>= 4)),
- (t & 3) === 0 && ((r += 2), (t >>>= 2)),
- (t & 1) === 0 && r++,
- r
- );
- }),
- (BN.prototype.bitLength = function () {
- var w = this.words[this.length - 1],
- hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- });
- function toBitArray(num) {
- for (var w = new Array(num.bitLength()), bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;
- }
- return w;
- }
- (BN.prototype.zeroBits = function () {
- if (this.isZero()) return 0;
- for (var r = 0, i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- if (((r += b), b !== 26)) break;
- }
- return r;
- }),
- (BN.prototype.byteLength = function () {
- return Math.ceil(this.bitLength() / 8);
- }),
- (BN.prototype.toTwos = function (width) {
- return this.negative !== 0 ? this.abs().inotn(width).iaddn(1) : this.clone();
- }),
- (BN.prototype.fromTwos = function (width) {
- return this.testn(width - 1) ? this.notn(width).iaddn(1).ineg() : this.clone();
- }),
- (BN.prototype.isNeg = function () {
- return this.negative !== 0;
- }),
- (BN.prototype.neg = function () {
- return this.clone().ineg();
- }),
- (BN.prototype.ineg = function () {
- return this.isZero() || (this.negative ^= 1), this;
- }),
- (BN.prototype.iuor = function (num) {
- for (; this.length < num.length; ) this.words[this.length++] = 0;
- for (var i = 0; i < num.length; i++) this.words[i] = this.words[i] | num.words[i];
- return this.strip();
- }),
- (BN.prototype.ior = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuor(num);
- }),
- (BN.prototype.or = function (num) {
- return this.length > num.length ? this.clone().ior(num) : num.clone().ior(this);
- }),
- (BN.prototype.uor = function (num) {
- return this.length > num.length ? this.clone().iuor(num) : num.clone().iuor(this);
- }),
- (BN.prototype.iuand = function (num) {
- var b;
- this.length > num.length ? (b = num) : (b = this);
- for (var i = 0; i < b.length; i++) this.words[i] = this.words[i] & num.words[i];
- return (this.length = b.length), this.strip();
- }),
- (BN.prototype.iand = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuand(num);
- }),
- (BN.prototype.and = function (num) {
- return this.length > num.length ? this.clone().iand(num) : num.clone().iand(this);
- }),
- (BN.prototype.uand = function (num) {
- return this.length > num.length ? this.clone().iuand(num) : num.clone().iuand(this);
- }),
- (BN.prototype.iuxor = function (num) {
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var i = 0; i < b.length; i++) this.words[i] = a.words[i] ^ b.words[i];
- if (this !== a) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = a.length), this.strip();
- }),
- (BN.prototype.ixor = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuxor(num);
- }),
- (BN.prototype.xor = function (num) {
- return this.length > num.length ? this.clone().ixor(num) : num.clone().ixor(this);
- }),
- (BN.prototype.uxor = function (num) {
- return this.length > num.length ? this.clone().iuxor(num) : num.clone().iuxor(this);
- }),
- (BN.prototype.inotn = function (width) {
- assert(typeof width == "number" && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0,
- bitsLeft = width % 26;
- this._expand(bytesNeeded), bitsLeft > 0 && bytesNeeded--;
- for (var i = 0; i < bytesNeeded; i++) this.words[i] = ~this.words[i] & 67108863;
- return bitsLeft > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft))), this.strip();
- }),
- (BN.prototype.notn = function (width) {
- return this.clone().inotn(width);
- }),
- (BN.prototype.setn = function (bit, val) {
- assert(typeof bit == "number" && bit >= 0);
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- return (
- this._expand(off + 1),
- val
- ? (this.words[off] = this.words[off] | (1 << wbit))
- : (this.words[off] = this.words[off] & ~(1 << wbit)),
- this.strip()
- );
- }),
- (BN.prototype.iadd = function (num) {
- var r;
- if (this.negative !== 0 && num.negative === 0)
- return (this.negative = 0), (r = this.isub(num)), (this.negative ^= 1), this._normSign();
- if (this.negative === 0 && num.negative !== 0)
- return (num.negative = 0), (r = this.isub(num)), (num.negative = 1), r._normSign();
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) + (b.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- if (((this.length = a.length), carry !== 0)) (this.words[this.length] = carry), this.length++;
- else if (a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return this;
- }),
- (BN.prototype.add = function (num) {
- var res;
- return num.negative !== 0 && this.negative === 0
- ? ((num.negative = 0), (res = this.sub(num)), (num.negative ^= 1), res)
- : num.negative === 0 && this.negative !== 0
- ? ((this.negative = 0), (res = num.sub(this)), (this.negative = 1), res)
- : this.length > num.length
- ? this.clone().iadd(num)
- : num.clone().iadd(this);
- }),
- (BN.prototype.isub = function (num) {
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- return (num.negative = 1), r._normSign();
- } else if (this.negative !== 0)
- return (this.negative = 0), this.iadd(num), (this.negative = 1), this._normSign();
- var cmp = this.cmp(num);
- if (cmp === 0) return (this.negative = 0), (this.length = 1), (this.words[0] = 0), this;
- var a, b;
- cmp > 0 ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) - (b.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- if (carry === 0 && i < a.length && a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = Math.max(this.length, i)), a !== this && (this.negative = 1), this.strip();
- }),
- (BN.prototype.sub = function (num) {
- return this.clone().isub(num);
- });
- function smallMulTo(self2, num, out) {
- out.negative = num.negative ^ self2.negative;
- var len = (self2.length + num.length) | 0;
- (out.length = len), (len = (len - 1) | 0);
- var a = self2.words[0] | 0,
- b = num.words[0] | 0,
- r = a * b,
- lo = r & 67108863,
- carry = (r / 67108864) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- for (
- var ncarry = carry >>> 26,
- rword = carry & 67108863,
- maxJ = Math.min(k, num.length - 1),
- j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = (k - j) | 0;
- (a = self2.words[i] | 0),
- (b = num.words[j] | 0),
- (r = a * b + rword),
- (ncarry += (r / 67108864) | 0),
- (rword = r & 67108863);
- }
- (out.words[k] = rword | 0), (carry = ncarry | 0);
- }
- return carry !== 0 ? (out.words[k] = carry | 0) : out.length--, out.strip();
- }
- var comb10MulTo = function (self2, num, out) {
- var a = self2.words,
- b = num.words,
- o = out.words,
- c = 0,
- lo,
- mid,
- hi,
- a0 = a[0] | 0,
- al0 = a0 & 8191,
- ah0 = a0 >>> 13,
- a1 = a[1] | 0,
- al1 = a1 & 8191,
- ah1 = a1 >>> 13,
- a2 = a[2] | 0,
- al2 = a2 & 8191,
- ah2 = a2 >>> 13,
- a3 = a[3] | 0,
- al3 = a3 & 8191,
- ah3 = a3 >>> 13,
- a4 = a[4] | 0,
- al4 = a4 & 8191,
- ah4 = a4 >>> 13,
- a5 = a[5] | 0,
- al5 = a5 & 8191,
- ah5 = a5 >>> 13,
- a6 = a[6] | 0,
- al6 = a6 & 8191,
- ah6 = a6 >>> 13,
- a7 = a[7] | 0,
- al7 = a7 & 8191,
- ah7 = a7 >>> 13,
- a8 = a[8] | 0,
- al8 = a8 & 8191,
- ah8 = a8 >>> 13,
- a9 = a[9] | 0,
- al9 = a9 & 8191,
- ah9 = a9 >>> 13,
- b0 = b[0] | 0,
- bl0 = b0 & 8191,
- bh0 = b0 >>> 13,
- b1 = b[1] | 0,
- bl1 = b1 & 8191,
- bh1 = b1 >>> 13,
- b2 = b[2] | 0,
- bl2 = b2 & 8191,
- bh2 = b2 >>> 13,
- b3 = b[3] | 0,
- bl3 = b3 & 8191,
- bh3 = b3 >>> 13,
- b4 = b[4] | 0,
- bl4 = b4 & 8191,
- bh4 = b4 >>> 13,
- b5 = b[5] | 0,
- bl5 = b5 & 8191,
- bh5 = b5 >>> 13,
- b6 = b[6] | 0,
- bl6 = b6 & 8191,
- bh6 = b6 >>> 13,
- b7 = b[7] | 0,
- bl7 = b7 & 8191,
- bh7 = b7 >>> 13,
- b8 = b[8] | 0,
- bl8 = b8 & 8191,
- bh8 = b8 >>> 13,
- b9 = b[9] | 0,
- bl9 = b9 & 8191,
- bh9 = b9 >>> 13;
- (out.negative = self2.negative ^ num.negative),
- (out.length = 19),
- (lo = Math.imul(al0, bl0)),
- (mid = Math.imul(al0, bh0)),
- (mid = (mid + Math.imul(ah0, bl0)) | 0),
- (hi = Math.imul(ah0, bh0));
- var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0),
- (w0 &= 67108863),
- (lo = Math.imul(al1, bl0)),
- (mid = Math.imul(al1, bh0)),
- (mid = (mid + Math.imul(ah1, bl0)) | 0),
- (hi = Math.imul(ah1, bh0)),
- (lo = (lo + Math.imul(al0, bl1)) | 0),
- (mid = (mid + Math.imul(al0, bh1)) | 0),
- (mid = (mid + Math.imul(ah0, bl1)) | 0),
- (hi = (hi + Math.imul(ah0, bh1)) | 0);
- var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0),
- (w1 &= 67108863),
- (lo = Math.imul(al2, bl0)),
- (mid = Math.imul(al2, bh0)),
- (mid = (mid + Math.imul(ah2, bl0)) | 0),
- (hi = Math.imul(ah2, bh0)),
- (lo = (lo + Math.imul(al1, bl1)) | 0),
- (mid = (mid + Math.imul(al1, bh1)) | 0),
- (mid = (mid + Math.imul(ah1, bl1)) | 0),
- (hi = (hi + Math.imul(ah1, bh1)) | 0),
- (lo = (lo + Math.imul(al0, bl2)) | 0),
- (mid = (mid + Math.imul(al0, bh2)) | 0),
- (mid = (mid + Math.imul(ah0, bl2)) | 0),
- (hi = (hi + Math.imul(ah0, bh2)) | 0);
- var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0),
- (w2 &= 67108863),
- (lo = Math.imul(al3, bl0)),
- (mid = Math.imul(al3, bh0)),
- (mid = (mid + Math.imul(ah3, bl0)) | 0),
- (hi = Math.imul(ah3, bh0)),
- (lo = (lo + Math.imul(al2, bl1)) | 0),
- (mid = (mid + Math.imul(al2, bh1)) | 0),
- (mid = (mid + Math.imul(ah2, bl1)) | 0),
- (hi = (hi + Math.imul(ah2, bh1)) | 0),
- (lo = (lo + Math.imul(al1, bl2)) | 0),
- (mid = (mid + Math.imul(al1, bh2)) | 0),
- (mid = (mid + Math.imul(ah1, bl2)) | 0),
- (hi = (hi + Math.imul(ah1, bh2)) | 0),
- (lo = (lo + Math.imul(al0, bl3)) | 0),
- (mid = (mid + Math.imul(al0, bh3)) | 0),
- (mid = (mid + Math.imul(ah0, bl3)) | 0),
- (hi = (hi + Math.imul(ah0, bh3)) | 0);
- var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0),
- (w3 &= 67108863),
- (lo = Math.imul(al4, bl0)),
- (mid = Math.imul(al4, bh0)),
- (mid = (mid + Math.imul(ah4, bl0)) | 0),
- (hi = Math.imul(ah4, bh0)),
- (lo = (lo + Math.imul(al3, bl1)) | 0),
- (mid = (mid + Math.imul(al3, bh1)) | 0),
- (mid = (mid + Math.imul(ah3, bl1)) | 0),
- (hi = (hi + Math.imul(ah3, bh1)) | 0),
- (lo = (lo + Math.imul(al2, bl2)) | 0),
- (mid = (mid + Math.imul(al2, bh2)) | 0),
- (mid = (mid + Math.imul(ah2, bl2)) | 0),
- (hi = (hi + Math.imul(ah2, bh2)) | 0),
- (lo = (lo + Math.imul(al1, bl3)) | 0),
- (mid = (mid + Math.imul(al1, bh3)) | 0),
- (mid = (mid + Math.imul(ah1, bl3)) | 0),
- (hi = (hi + Math.imul(ah1, bh3)) | 0),
- (lo = (lo + Math.imul(al0, bl4)) | 0),
- (mid = (mid + Math.imul(al0, bh4)) | 0),
- (mid = (mid + Math.imul(ah0, bl4)) | 0),
- (hi = (hi + Math.imul(ah0, bh4)) | 0);
- var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0),
- (w4 &= 67108863),
- (lo = Math.imul(al5, bl0)),
- (mid = Math.imul(al5, bh0)),
- (mid = (mid + Math.imul(ah5, bl0)) | 0),
- (hi = Math.imul(ah5, bh0)),
- (lo = (lo + Math.imul(al4, bl1)) | 0),
- (mid = (mid + Math.imul(al4, bh1)) | 0),
- (mid = (mid + Math.imul(ah4, bl1)) | 0),
- (hi = (hi + Math.imul(ah4, bh1)) | 0),
- (lo = (lo + Math.imul(al3, bl2)) | 0),
- (mid = (mid + Math.imul(al3, bh2)) | 0),
- (mid = (mid + Math.imul(ah3, bl2)) | 0),
- (hi = (hi + Math.imul(ah3, bh2)) | 0),
- (lo = (lo + Math.imul(al2, bl3)) | 0),
- (mid = (mid + Math.imul(al2, bh3)) | 0),
- (mid = (mid + Math.imul(ah2, bl3)) | 0),
- (hi = (hi + Math.imul(ah2, bh3)) | 0),
- (lo = (lo + Math.imul(al1, bl4)) | 0),
- (mid = (mid + Math.imul(al1, bh4)) | 0),
- (mid = (mid + Math.imul(ah1, bl4)) | 0),
- (hi = (hi + Math.imul(ah1, bh4)) | 0),
- (lo = (lo + Math.imul(al0, bl5)) | 0),
- (mid = (mid + Math.imul(al0, bh5)) | 0),
- (mid = (mid + Math.imul(ah0, bl5)) | 0),
- (hi = (hi + Math.imul(ah0, bh5)) | 0);
- var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0),
- (w5 &= 67108863),
- (lo = Math.imul(al6, bl0)),
- (mid = Math.imul(al6, bh0)),
- (mid = (mid + Math.imul(ah6, bl0)) | 0),
- (hi = Math.imul(ah6, bh0)),
- (lo = (lo + Math.imul(al5, bl1)) | 0),
- (mid = (mid + Math.imul(al5, bh1)) | 0),
- (mid = (mid + Math.imul(ah5, bl1)) | 0),
- (hi = (hi + Math.imul(ah5, bh1)) | 0),
- (lo = (lo + Math.imul(al4, bl2)) | 0),
- (mid = (mid + Math.imul(al4, bh2)) | 0),
- (mid = (mid + Math.imul(ah4, bl2)) | 0),
- (hi = (hi + Math.imul(ah4, bh2)) | 0),
- (lo = (lo + Math.imul(al3, bl3)) | 0),
- (mid = (mid + Math.imul(al3, bh3)) | 0),
- (mid = (mid + Math.imul(ah3, bl3)) | 0),
- (hi = (hi + Math.imul(ah3, bh3)) | 0),
- (lo = (lo + Math.imul(al2, bl4)) | 0),
- (mid = (mid + Math.imul(al2, bh4)) | 0),
- (mid = (mid + Math.imul(ah2, bl4)) | 0),
- (hi = (hi + Math.imul(ah2, bh4)) | 0),
- (lo = (lo + Math.imul(al1, bl5)) | 0),
- (mid = (mid + Math.imul(al1, bh5)) | 0),
- (mid = (mid + Math.imul(ah1, bl5)) | 0),
- (hi = (hi + Math.imul(ah1, bh5)) | 0),
- (lo = (lo + Math.imul(al0, bl6)) | 0),
- (mid = (mid + Math.imul(al0, bh6)) | 0),
- (mid = (mid + Math.imul(ah0, bl6)) | 0),
- (hi = (hi + Math.imul(ah0, bh6)) | 0);
- var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0),
- (w6 &= 67108863),
- (lo = Math.imul(al7, bl0)),
- (mid = Math.imul(al7, bh0)),
- (mid = (mid + Math.imul(ah7, bl0)) | 0),
- (hi = Math.imul(ah7, bh0)),
- (lo = (lo + Math.imul(al6, bl1)) | 0),
- (mid = (mid + Math.imul(al6, bh1)) | 0),
- (mid = (mid + Math.imul(ah6, bl1)) | 0),
- (hi = (hi + Math.imul(ah6, bh1)) | 0),
- (lo = (lo + Math.imul(al5, bl2)) | 0),
- (mid = (mid + Math.imul(al5, bh2)) | 0),
- (mid = (mid + Math.imul(ah5, bl2)) | 0),
- (hi = (hi + Math.imul(ah5, bh2)) | 0),
- (lo = (lo + Math.imul(al4, bl3)) | 0),
- (mid = (mid + Math.imul(al4, bh3)) | 0),
- (mid = (mid + Math.imul(ah4, bl3)) | 0),
- (hi = (hi + Math.imul(ah4, bh3)) | 0),
- (lo = (lo + Math.imul(al3, bl4)) | 0),
- (mid = (mid + Math.imul(al3, bh4)) | 0),
- (mid = (mid + Math.imul(ah3, bl4)) | 0),
- (hi = (hi + Math.imul(ah3, bh4)) | 0),
- (lo = (lo + Math.imul(al2, bl5)) | 0),
- (mid = (mid + Math.imul(al2, bh5)) | 0),
- (mid = (mid + Math.imul(ah2, bl5)) | 0),
- (hi = (hi + Math.imul(ah2, bh5)) | 0),
- (lo = (lo + Math.imul(al1, bl6)) | 0),
- (mid = (mid + Math.imul(al1, bh6)) | 0),
- (mid = (mid + Math.imul(ah1, bl6)) | 0),
- (hi = (hi + Math.imul(ah1, bh6)) | 0),
- (lo = (lo + Math.imul(al0, bl7)) | 0),
- (mid = (mid + Math.imul(al0, bh7)) | 0),
- (mid = (mid + Math.imul(ah0, bl7)) | 0),
- (hi = (hi + Math.imul(ah0, bh7)) | 0);
- var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0),
- (w7 &= 67108863),
- (lo = Math.imul(al8, bl0)),
- (mid = Math.imul(al8, bh0)),
- (mid = (mid + Math.imul(ah8, bl0)) | 0),
- (hi = Math.imul(ah8, bh0)),
- (lo = (lo + Math.imul(al7, bl1)) | 0),
- (mid = (mid + Math.imul(al7, bh1)) | 0),
- (mid = (mid + Math.imul(ah7, bl1)) | 0),
- (hi = (hi + Math.imul(ah7, bh1)) | 0),
- (lo = (lo + Math.imul(al6, bl2)) | 0),
- (mid = (mid + Math.imul(al6, bh2)) | 0),
- (mid = (mid + Math.imul(ah6, bl2)) | 0),
- (hi = (hi + Math.imul(ah6, bh2)) | 0),
- (lo = (lo + Math.imul(al5, bl3)) | 0),
- (mid = (mid + Math.imul(al5, bh3)) | 0),
- (mid = (mid + Math.imul(ah5, bl3)) | 0),
- (hi = (hi + Math.imul(ah5, bh3)) | 0),
- (lo = (lo + Math.imul(al4, bl4)) | 0),
- (mid = (mid + Math.imul(al4, bh4)) | 0),
- (mid = (mid + Math.imul(ah4, bl4)) | 0),
- (hi = (hi + Math.imul(ah4, bh4)) | 0),
- (lo = (lo + Math.imul(al3, bl5)) | 0),
- (mid = (mid + Math.imul(al3, bh5)) | 0),
- (mid = (mid + Math.imul(ah3, bl5)) | 0),
- (hi = (hi + Math.imul(ah3, bh5)) | 0),
- (lo = (lo + Math.imul(al2, bl6)) | 0),
- (mid = (mid + Math.imul(al2, bh6)) | 0),
- (mid = (mid + Math.imul(ah2, bl6)) | 0),
- (hi = (hi + Math.imul(ah2, bh6)) | 0),
- (lo = (lo + Math.imul(al1, bl7)) | 0),
- (mid = (mid + Math.imul(al1, bh7)) | 0),
- (mid = (mid + Math.imul(ah1, bl7)) | 0),
- (hi = (hi + Math.imul(ah1, bh7)) | 0),
- (lo = (lo + Math.imul(al0, bl8)) | 0),
- (mid = (mid + Math.imul(al0, bh8)) | 0),
- (mid = (mid + Math.imul(ah0, bl8)) | 0),
- (hi = (hi + Math.imul(ah0, bh8)) | 0);
- var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0),
- (w8 &= 67108863),
- (lo = Math.imul(al9, bl0)),
- (mid = Math.imul(al9, bh0)),
- (mid = (mid + Math.imul(ah9, bl0)) | 0),
- (hi = Math.imul(ah9, bh0)),
- (lo = (lo + Math.imul(al8, bl1)) | 0),
- (mid = (mid + Math.imul(al8, bh1)) | 0),
- (mid = (mid + Math.imul(ah8, bl1)) | 0),
- (hi = (hi + Math.imul(ah8, bh1)) | 0),
- (lo = (lo + Math.imul(al7, bl2)) | 0),
- (mid = (mid + Math.imul(al7, bh2)) | 0),
- (mid = (mid + Math.imul(ah7, bl2)) | 0),
- (hi = (hi + Math.imul(ah7, bh2)) | 0),
- (lo = (lo + Math.imul(al6, bl3)) | 0),
- (mid = (mid + Math.imul(al6, bh3)) | 0),
- (mid = (mid + Math.imul(ah6, bl3)) | 0),
- (hi = (hi + Math.imul(ah6, bh3)) | 0),
- (lo = (lo + Math.imul(al5, bl4)) | 0),
- (mid = (mid + Math.imul(al5, bh4)) | 0),
- (mid = (mid + Math.imul(ah5, bl4)) | 0),
- (hi = (hi + Math.imul(ah5, bh4)) | 0),
- (lo = (lo + Math.imul(al4, bl5)) | 0),
- (mid = (mid + Math.imul(al4, bh5)) | 0),
- (mid = (mid + Math.imul(ah4, bl5)) | 0),
- (hi = (hi + Math.imul(ah4, bh5)) | 0),
- (lo = (lo + Math.imul(al3, bl6)) | 0),
- (mid = (mid + Math.imul(al3, bh6)) | 0),
- (mid = (mid + Math.imul(ah3, bl6)) | 0),
- (hi = (hi + Math.imul(ah3, bh6)) | 0),
- (lo = (lo + Math.imul(al2, bl7)) | 0),
- (mid = (mid + Math.imul(al2, bh7)) | 0),
- (mid = (mid + Math.imul(ah2, bl7)) | 0),
- (hi = (hi + Math.imul(ah2, bh7)) | 0),
- (lo = (lo + Math.imul(al1, bl8)) | 0),
- (mid = (mid + Math.imul(al1, bh8)) | 0),
- (mid = (mid + Math.imul(ah1, bl8)) | 0),
- (hi = (hi + Math.imul(ah1, bh8)) | 0),
- (lo = (lo + Math.imul(al0, bl9)) | 0),
- (mid = (mid + Math.imul(al0, bh9)) | 0),
- (mid = (mid + Math.imul(ah0, bl9)) | 0),
- (hi = (hi + Math.imul(ah0, bh9)) | 0);
- var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0),
- (w9 &= 67108863),
- (lo = Math.imul(al9, bl1)),
- (mid = Math.imul(al9, bh1)),
- (mid = (mid + Math.imul(ah9, bl1)) | 0),
- (hi = Math.imul(ah9, bh1)),
- (lo = (lo + Math.imul(al8, bl2)) | 0),
- (mid = (mid + Math.imul(al8, bh2)) | 0),
- (mid = (mid + Math.imul(ah8, bl2)) | 0),
- (hi = (hi + Math.imul(ah8, bh2)) | 0),
- (lo = (lo + Math.imul(al7, bl3)) | 0),
- (mid = (mid + Math.imul(al7, bh3)) | 0),
- (mid = (mid + Math.imul(ah7, bl3)) | 0),
- (hi = (hi + Math.imul(ah7, bh3)) | 0),
- (lo = (lo + Math.imul(al6, bl4)) | 0),
- (mid = (mid + Math.imul(al6, bh4)) | 0),
- (mid = (mid + Math.imul(ah6, bl4)) | 0),
- (hi = (hi + Math.imul(ah6, bh4)) | 0),
- (lo = (lo + Math.imul(al5, bl5)) | 0),
- (mid = (mid + Math.imul(al5, bh5)) | 0),
- (mid = (mid + Math.imul(ah5, bl5)) | 0),
- (hi = (hi + Math.imul(ah5, bh5)) | 0),
- (lo = (lo + Math.imul(al4, bl6)) | 0),
- (mid = (mid + Math.imul(al4, bh6)) | 0),
- (mid = (mid + Math.imul(ah4, bl6)) | 0),
- (hi = (hi + Math.imul(ah4, bh6)) | 0),
- (lo = (lo + Math.imul(al3, bl7)) | 0),
- (mid = (mid + Math.imul(al3, bh7)) | 0),
- (mid = (mid + Math.imul(ah3, bl7)) | 0),
- (hi = (hi + Math.imul(ah3, bh7)) | 0),
- (lo = (lo + Math.imul(al2, bl8)) | 0),
- (mid = (mid + Math.imul(al2, bh8)) | 0),
- (mid = (mid + Math.imul(ah2, bl8)) | 0),
- (hi = (hi + Math.imul(ah2, bh8)) | 0),
- (lo = (lo + Math.imul(al1, bl9)) | 0),
- (mid = (mid + Math.imul(al1, bh9)) | 0),
- (mid = (mid + Math.imul(ah1, bl9)) | 0),
- (hi = (hi + Math.imul(ah1, bh9)) | 0);
- var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0),
- (w10 &= 67108863),
- (lo = Math.imul(al9, bl2)),
- (mid = Math.imul(al9, bh2)),
- (mid = (mid + Math.imul(ah9, bl2)) | 0),
- (hi = Math.imul(ah9, bh2)),
- (lo = (lo + Math.imul(al8, bl3)) | 0),
- (mid = (mid + Math.imul(al8, bh3)) | 0),
- (mid = (mid + Math.imul(ah8, bl3)) | 0),
- (hi = (hi + Math.imul(ah8, bh3)) | 0),
- (lo = (lo + Math.imul(al7, bl4)) | 0),
- (mid = (mid + Math.imul(al7, bh4)) | 0),
- (mid = (mid + Math.imul(ah7, bl4)) | 0),
- (hi = (hi + Math.imul(ah7, bh4)) | 0),
- (lo = (lo + Math.imul(al6, bl5)) | 0),
- (mid = (mid + Math.imul(al6, bh5)) | 0),
- (mid = (mid + Math.imul(ah6, bl5)) | 0),
- (hi = (hi + Math.imul(ah6, bh5)) | 0),
- (lo = (lo + Math.imul(al5, bl6)) | 0),
- (mid = (mid + Math.imul(al5, bh6)) | 0),
- (mid = (mid + Math.imul(ah5, bl6)) | 0),
- (hi = (hi + Math.imul(ah5, bh6)) | 0),
- (lo = (lo + Math.imul(al4, bl7)) | 0),
- (mid = (mid + Math.imul(al4, bh7)) | 0),
- (mid = (mid + Math.imul(ah4, bl7)) | 0),
- (hi = (hi + Math.imul(ah4, bh7)) | 0),
- (lo = (lo + Math.imul(al3, bl8)) | 0),
- (mid = (mid + Math.imul(al3, bh8)) | 0),
- (mid = (mid + Math.imul(ah3, bl8)) | 0),
- (hi = (hi + Math.imul(ah3, bh8)) | 0),
- (lo = (lo + Math.imul(al2, bl9)) | 0),
- (mid = (mid + Math.imul(al2, bh9)) | 0),
- (mid = (mid + Math.imul(ah2, bl9)) | 0),
- (hi = (hi + Math.imul(ah2, bh9)) | 0);
- var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0),
- (w11 &= 67108863),
- (lo = Math.imul(al9, bl3)),
- (mid = Math.imul(al9, bh3)),
- (mid = (mid + Math.imul(ah9, bl3)) | 0),
- (hi = Math.imul(ah9, bh3)),
- (lo = (lo + Math.imul(al8, bl4)) | 0),
- (mid = (mid + Math.imul(al8, bh4)) | 0),
- (mid = (mid + Math.imul(ah8, bl4)) | 0),
- (hi = (hi + Math.imul(ah8, bh4)) | 0),
- (lo = (lo + Math.imul(al7, bl5)) | 0),
- (mid = (mid + Math.imul(al7, bh5)) | 0),
- (mid = (mid + Math.imul(ah7, bl5)) | 0),
- (hi = (hi + Math.imul(ah7, bh5)) | 0),
- (lo = (lo + Math.imul(al6, bl6)) | 0),
- (mid = (mid + Math.imul(al6, bh6)) | 0),
- (mid = (mid + Math.imul(ah6, bl6)) | 0),
- (hi = (hi + Math.imul(ah6, bh6)) | 0),
- (lo = (lo + Math.imul(al5, bl7)) | 0),
- (mid = (mid + Math.imul(al5, bh7)) | 0),
- (mid = (mid + Math.imul(ah5, bl7)) | 0),
- (hi = (hi + Math.imul(ah5, bh7)) | 0),
- (lo = (lo + Math.imul(al4, bl8)) | 0),
- (mid = (mid + Math.imul(al4, bh8)) | 0),
- (mid = (mid + Math.imul(ah4, bl8)) | 0),
- (hi = (hi + Math.imul(ah4, bh8)) | 0),
- (lo = (lo + Math.imul(al3, bl9)) | 0),
- (mid = (mid + Math.imul(al3, bh9)) | 0),
- (mid = (mid + Math.imul(ah3, bl9)) | 0),
- (hi = (hi + Math.imul(ah3, bh9)) | 0);
- var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0),
- (w12 &= 67108863),
- (lo = Math.imul(al9, bl4)),
- (mid = Math.imul(al9, bh4)),
- (mid = (mid + Math.imul(ah9, bl4)) | 0),
- (hi = Math.imul(ah9, bh4)),
- (lo = (lo + Math.imul(al8, bl5)) | 0),
- (mid = (mid + Math.imul(al8, bh5)) | 0),
- (mid = (mid + Math.imul(ah8, bl5)) | 0),
- (hi = (hi + Math.imul(ah8, bh5)) | 0),
- (lo = (lo + Math.imul(al7, bl6)) | 0),
- (mid = (mid + Math.imul(al7, bh6)) | 0),
- (mid = (mid + Math.imul(ah7, bl6)) | 0),
- (hi = (hi + Math.imul(ah7, bh6)) | 0),
- (lo = (lo + Math.imul(al6, bl7)) | 0),
- (mid = (mid + Math.imul(al6, bh7)) | 0),
- (mid = (mid + Math.imul(ah6, bl7)) | 0),
- (hi = (hi + Math.imul(ah6, bh7)) | 0),
- (lo = (lo + Math.imul(al5, bl8)) | 0),
- (mid = (mid + Math.imul(al5, bh8)) | 0),
- (mid = (mid + Math.imul(ah5, bl8)) | 0),
- (hi = (hi + Math.imul(ah5, bh8)) | 0),
- (lo = (lo + Math.imul(al4, bl9)) | 0),
- (mid = (mid + Math.imul(al4, bh9)) | 0),
- (mid = (mid + Math.imul(ah4, bl9)) | 0),
- (hi = (hi + Math.imul(ah4, bh9)) | 0);
- var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0),
- (w13 &= 67108863),
- (lo = Math.imul(al9, bl5)),
- (mid = Math.imul(al9, bh5)),
- (mid = (mid + Math.imul(ah9, bl5)) | 0),
- (hi = Math.imul(ah9, bh5)),
- (lo = (lo + Math.imul(al8, bl6)) | 0),
- (mid = (mid + Math.imul(al8, bh6)) | 0),
- (mid = (mid + Math.imul(ah8, bl6)) | 0),
- (hi = (hi + Math.imul(ah8, bh6)) | 0),
- (lo = (lo + Math.imul(al7, bl7)) | 0),
- (mid = (mid + Math.imul(al7, bh7)) | 0),
- (mid = (mid + Math.imul(ah7, bl7)) | 0),
- (hi = (hi + Math.imul(ah7, bh7)) | 0),
- (lo = (lo + Math.imul(al6, bl8)) | 0),
- (mid = (mid + Math.imul(al6, bh8)) | 0),
- (mid = (mid + Math.imul(ah6, bl8)) | 0),
- (hi = (hi + Math.imul(ah6, bh8)) | 0),
- (lo = (lo + Math.imul(al5, bl9)) | 0),
- (mid = (mid + Math.imul(al5, bh9)) | 0),
- (mid = (mid + Math.imul(ah5, bl9)) | 0),
- (hi = (hi + Math.imul(ah5, bh9)) | 0);
- var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0),
- (w14 &= 67108863),
- (lo = Math.imul(al9, bl6)),
- (mid = Math.imul(al9, bh6)),
- (mid = (mid + Math.imul(ah9, bl6)) | 0),
- (hi = Math.imul(ah9, bh6)),
- (lo = (lo + Math.imul(al8, bl7)) | 0),
- (mid = (mid + Math.imul(al8, bh7)) | 0),
- (mid = (mid + Math.imul(ah8, bl7)) | 0),
- (hi = (hi + Math.imul(ah8, bh7)) | 0),
- (lo = (lo + Math.imul(al7, bl8)) | 0),
- (mid = (mid + Math.imul(al7, bh8)) | 0),
- (mid = (mid + Math.imul(ah7, bl8)) | 0),
- (hi = (hi + Math.imul(ah7, bh8)) | 0),
- (lo = (lo + Math.imul(al6, bl9)) | 0),
- (mid = (mid + Math.imul(al6, bh9)) | 0),
- (mid = (mid + Math.imul(ah6, bl9)) | 0),
- (hi = (hi + Math.imul(ah6, bh9)) | 0);
- var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0),
- (w15 &= 67108863),
- (lo = Math.imul(al9, bl7)),
- (mid = Math.imul(al9, bh7)),
- (mid = (mid + Math.imul(ah9, bl7)) | 0),
- (hi = Math.imul(ah9, bh7)),
- (lo = (lo + Math.imul(al8, bl8)) | 0),
- (mid = (mid + Math.imul(al8, bh8)) | 0),
- (mid = (mid + Math.imul(ah8, bl8)) | 0),
- (hi = (hi + Math.imul(ah8, bh8)) | 0),
- (lo = (lo + Math.imul(al7, bl9)) | 0),
- (mid = (mid + Math.imul(al7, bh9)) | 0),
- (mid = (mid + Math.imul(ah7, bl9)) | 0),
- (hi = (hi + Math.imul(ah7, bh9)) | 0);
- var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0),
- (w16 &= 67108863),
- (lo = Math.imul(al9, bl8)),
- (mid = Math.imul(al9, bh8)),
- (mid = (mid + Math.imul(ah9, bl8)) | 0),
- (hi = Math.imul(ah9, bh8)),
- (lo = (lo + Math.imul(al8, bl9)) | 0),
- (mid = (mid + Math.imul(al8, bh9)) | 0),
- (mid = (mid + Math.imul(ah8, bl9)) | 0),
- (hi = (hi + Math.imul(ah8, bh9)) | 0);
- var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0),
- (w17 &= 67108863),
- (lo = Math.imul(al9, bl9)),
- (mid = Math.imul(al9, bh9)),
- (mid = (mid + Math.imul(ah9, bl9)) | 0),
- (hi = Math.imul(ah9, bh9));
- var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- return (
- (c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0),
- (w18 &= 67108863),
- (o[0] = w0),
- (o[1] = w1),
- (o[2] = w2),
- (o[3] = w3),
- (o[4] = w4),
- (o[5] = w5),
- (o[6] = w6),
- (o[7] = w7),
- (o[8] = w8),
- (o[9] = w9),
- (o[10] = w10),
- (o[11] = w11),
- (o[12] = w12),
- (o[13] = w13),
- (o[14] = w14),
- (o[15] = w15),
- (o[16] = w16),
- (o[17] = w17),
- (o[18] = w18),
- c !== 0 && ((o[19] = c), out.length++),
- out
- );
- };
- Math.imul || (comb10MulTo = smallMulTo);
- function bigMulTo(self2, num, out) {
- (out.negative = num.negative ^ self2.negative), (out.length = self2.length + num.length);
- for (var carry = 0, hncarry = 0, k = 0; k < out.length - 1; k++) {
- var ncarry = hncarry;
- hncarry = 0;
- for (
- var rword = carry & 67108863, maxJ = Math.min(k, num.length - 1), j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = k - j,
- a = self2.words[i] | 0,
- b = num.words[j] | 0,
- r = a * b,
- lo = r & 67108863;
- (ncarry = (ncarry + ((r / 67108864) | 0)) | 0),
- (lo = (lo + rword) | 0),
- (rword = lo & 67108863),
- (ncarry = (ncarry + (lo >>> 26)) | 0),
- (hncarry += ncarry >>> 26),
- (ncarry &= 67108863);
- }
- (out.words[k] = rword), (carry = ncarry), (ncarry = hncarry);
- }
- return carry !== 0 ? (out.words[k] = carry) : out.length--, out.strip();
- }
- function jumboMulTo(self2, num, out) {
- var fftm = new FFTM();
- return fftm.mulp(self2, num, out);
- }
- BN.prototype.mulTo = function (num, out) {
- var res,
- len = this.length + num.length;
- return (
- this.length === 10 && num.length === 10
- ? (res = comb10MulTo(this, num, out))
- : len < 63
- ? (res = smallMulTo(this, num, out))
- : len < 1024
- ? (res = bigMulTo(this, num, out))
- : (res = jumboMulTo(this, num, out)),
- res
- );
- };
- function FFTM(x, y) {
- (this.x = x), (this.y = y);
- }
- (FFTM.prototype.makeRBT = function (N) {
- for (var t = new Array(N), l = BN.prototype._countBits(N) - 1, i = 0; i < N; i++) t[i] = this.revBin(i, l, N);
- return t;
- }),
- (FFTM.prototype.revBin = function (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- for (var rb = 0, i = 0; i < l; i++) (rb |= (x & 1) << (l - i - 1)), (x >>= 1);
- return rb;
- }),
- (FFTM.prototype.permute = function (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) (rtws[i] = rws[rbt[i]]), (itws[i] = iws[rbt[i]]);
- }),
- (FFTM.prototype.transform = function (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1)
- for (
- var l = s << 1, rtwdf = Math.cos((2 * Math.PI) / l), itwdf = Math.sin((2 * Math.PI) / l), p = 0;
- p < N;
- p += l
- )
- for (var rtwdf_ = rtwdf, itwdf_ = itwdf, j = 0; j < s; j++) {
- var re = rtws[p + j],
- ie = itws[p + j],
- ro = rtws[p + j + s],
- io = itws[p + j + s],
- rx = rtwdf_ * ro - itwdf_ * io;
- (io = rtwdf_ * io + itwdf_ * ro),
- (ro = rx),
- (rtws[p + j] = re + ro),
- (itws[p + j] = ie + io),
- (rtws[p + j + s] = re - ro),
- (itws[p + j + s] = ie - io),
- j !== l &&
- ((rx = rtwdf * rtwdf_ - itwdf * itwdf_), (itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_), (rtwdf_ = rx));
- }
- }),
- (FFTM.prototype.guessLen13b = function (n, m) {
- var N = Math.max(m, n) | 1,
- odd = N & 1,
- i = 0;
- for (N = (N / 2) | 0; N; N = N >>> 1) i++;
- return 1 << (i + 1 + odd);
- }),
- (FFTM.prototype.conjugate = function (rws, iws, N) {
- if (!(N <= 1))
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- (rws[i] = rws[N - i - 1]),
- (rws[N - i - 1] = t),
- (t = iws[i]),
- (iws[i] = -iws[N - i - 1]),
- (iws[N - i - 1] = -t);
- }
- }),
- (FFTM.prototype.normalize13b = function (ws, N) {
- for (var carry = 0, i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
- (ws[i] = w & 67108863), w < 67108864 ? (carry = 0) : (carry = (w / 67108864) | 0);
- }
- return ws;
- }),
- (FFTM.prototype.convert13b = function (ws, len, rws, N) {
- for (var carry = 0, i = 0; i < len; i++)
- (carry = carry + (ws[i] | 0)),
- (rws[2 * i] = carry & 8191),
- (carry = carry >>> 13),
- (rws[2 * i + 1] = carry & 8191),
- (carry = carry >>> 13);
- for (i = 2 * len; i < N; ++i) rws[i] = 0;
- assert(carry === 0), assert((carry & -8192) === 0);
- }),
- (FFTM.prototype.stub = function (N) {
- for (var ph = new Array(N), i = 0; i < N; i++) ph[i] = 0;
- return ph;
- }),
- (FFTM.prototype.mulp = function (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length),
- rbt = this.makeRBT(N),
- _ = this.stub(N),
- rws = new Array(N),
- rwst = new Array(N),
- iwst = new Array(N),
- nrws = new Array(N),
- nrwst = new Array(N),
- niwst = new Array(N),
- rmws = out.words;
- (rmws.length = N),
- this.convert13b(x.words, x.length, rws, N),
- this.convert13b(y.words, y.length, nrws, N),
- this.transform(rws, _, rwst, iwst, N, rbt),
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- (iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]), (rwst[i] = rx);
- }
- return (
- this.conjugate(rwst, iwst, N),
- this.transform(rwst, iwst, rmws, _, N, rbt),
- this.conjugate(rmws, _, N),
- this.normalize13b(rmws, N),
- (out.negative = x.negative ^ y.negative),
- (out.length = x.length + y.length),
- out.strip()
- );
- }),
- (BN.prototype.mul = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), this.mulTo(num, out);
- }),
- (BN.prototype.mulf = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), jumboMulTo(this, num, out);
- }),
- (BN.prototype.imul = function (num) {
- return this.clone().mulTo(num, this);
- }),
- (BN.prototype.imuln = function (num) {
- assert(typeof num == "number"), assert(num < 67108864);
- for (var carry = 0, i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num,
- lo = (w & 67108863) + (carry & 67108863);
- (carry >>= 26), (carry += (w / 67108864) | 0), (carry += lo >>> 26), (this.words[i] = lo & 67108863);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.muln = function (num) {
- return this.clone().imuln(num);
- }),
- (BN.prototype.sqr = function () {
- return this.mul(this);
- }),
- (BN.prototype.isqr = function () {
- return this.imul(this.clone());
- }),
- (BN.prototype.pow = function (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- for (var res = this, i = 0; i < w.length && w[i] === 0; i++, res = res.sqr());
- if (++i < w.length) for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) w[i] !== 0 && (res = res.mul(q));
- return res;
- }),
- (BN.prototype.iushln = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26,
- carryMask = (67108863 >>> (26 - r)) << (26 - r),
- i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask,
- c = ((this.words[i] | 0) - newCarry) << r;
- (this.words[i] = c | carry), (carry = newCarry >>> (26 - r));
- }
- carry && ((this.words[i] = carry), this.length++);
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) this.words[i + s] = this.words[i];
- for (i = 0; i < s; i++) this.words[i] = 0;
- this.length += s;
- }
- return this.strip();
- }),
- (BN.prototype.ishln = function (bits) {
- return assert(this.negative === 0), this.iushln(bits);
- }),
- (BN.prototype.iushrn = function (bits, hint, extended) {
- assert(typeof bits == "number" && bits >= 0);
- var h;
- hint ? (h = (hint - (hint % 26)) / 26) : (h = 0);
- var r = bits % 26,
- s = Math.min((bits - r) / 26, this.length),
- mask = 67108863 ^ ((67108863 >>> r) << r),
- maskedWords = extended;
- if (((h -= s), (h = Math.max(0, h)), maskedWords)) {
- for (var i = 0; i < s; i++) maskedWords.words[i] = this.words[i];
- maskedWords.length = s;
- }
- if (s !== 0)
- if (this.length > s) for (this.length -= s, i = 0; i < this.length; i++) this.words[i] = this.words[i + s];
- else (this.words[0] = 0), (this.length = 1);
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- (this.words[i] = (carry << (26 - r)) | (word >>> r)), (carry = word & mask);
- }
- return (
- maskedWords && carry !== 0 && (maskedWords.words[maskedWords.length++] = carry),
- this.length === 0 && ((this.words[0] = 0), (this.length = 1)),
- this.strip()
- );
- }),
- (BN.prototype.ishrn = function (bits, hint, extended) {
- return assert(this.negative === 0), this.iushrn(bits, hint, extended);
- }),
- (BN.prototype.shln = function (bits) {
- return this.clone().ishln(bits);
- }),
- (BN.prototype.ushln = function (bits) {
- return this.clone().iushln(bits);
- }),
- (BN.prototype.shrn = function (bits) {
- return this.clone().ishrn(bits);
- }),
- (BN.prototype.ushrn = function (bits) {
- return this.clone().iushrn(bits);
- }),
- (BN.prototype.testn = function (bit) {
- assert(typeof bit == "number" && bit >= 0);
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return !1;
- var w = this.words[s];
- return !!(w & q);
- }),
- (BN.prototype.imaskn = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26;
- if ((assert(this.negative === 0, "imaskn works only with positive numbers"), this.length <= s)) return this;
- if ((r !== 0 && s++, (this.length = Math.min(s, this.length)), r !== 0)) {
- var mask = 67108863 ^ ((67108863 >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this.strip();
- }),
- (BN.prototype.maskn = function (bits) {
- return this.clone().imaskn(bits);
- }),
- (BN.prototype.iaddn = function (num) {
- return (
- assert(typeof num == "number"),
- assert(num < 67108864),
- num < 0
- ? this.isubn(-num)
- : this.negative !== 0
- ? this.length === 1 && (this.words[0] | 0) < num
- ? ((this.words[0] = num - (this.words[0] | 0)), (this.negative = 0), this)
- : ((this.negative = 0), this.isubn(num), (this.negative = 1), this)
- : this._iaddn(num)
- );
- }),
- (BN.prototype._iaddn = function (num) {
- this.words[0] += num;
- for (var i = 0; i < this.length && this.words[i] >= 67108864; i++)
- (this.words[i] -= 67108864), i === this.length - 1 ? (this.words[i + 1] = 1) : this.words[i + 1]++;
- return (this.length = Math.max(this.length, i + 1)), this;
- }),
- (BN.prototype.isubn = function (num) {
- if ((assert(typeof num == "number"), assert(num < 67108864), num < 0)) return this.iaddn(-num);
- if (this.negative !== 0) return (this.negative = 0), this.iaddn(num), (this.negative = 1), this;
- if (((this.words[0] -= num), this.length === 1 && this.words[0] < 0))
- (this.words[0] = -this.words[0]), (this.negative = 1);
- else
- for (var i = 0; i < this.length && this.words[i] < 0; i++)
- (this.words[i] += 67108864), (this.words[i + 1] -= 1);
- return this.strip();
- }),
- (BN.prototype.addn = function (num) {
- return this.clone().iaddn(num);
- }),
- (BN.prototype.subn = function (num) {
- return this.clone().isubn(num);
- }),
- (BN.prototype.iabs = function () {
- return (this.negative = 0), this;
- }),
- (BN.prototype.abs = function () {
- return this.clone().iabs();
- }),
- (BN.prototype._ishlnsubmul = function (num, mul, shift) {
- var len = num.length + shift,
- i;
- this._expand(len);
- var w,
- carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- (w -= right & 67108863),
- (carry = (w >> 26) - ((right / 67108864) | 0)),
- (this.words[i + shift] = w & 67108863);
- }
- for (; i < this.length - shift; i++)
- (w = (this.words[i + shift] | 0) + carry), (carry = w >> 26), (this.words[i + shift] = w & 67108863);
- if (carry === 0) return this.strip();
- for (assert(carry === -1), carry = 0, i = 0; i < this.length; i++)
- (w = -(this.words[i] | 0) + carry), (carry = w >> 26), (this.words[i] = w & 67108863);
- return (this.negative = 1), this.strip();
- }),
- (BN.prototype._wordDiv = function (num, mode) {
- var shift = this.length - num.length,
- a = this.clone(),
- b = num,
- bhi = b.words[b.length - 1] | 0,
- bhiBits = this._countBits(bhi);
- (shift = 26 - bhiBits),
- shift !== 0 && ((b = b.ushln(shift)), a.iushln(shift), (bhi = b.words[b.length - 1] | 0));
- var m = a.length - b.length,
- q;
- if (mode !== "mod") {
- (q = new BN(null)), (q.length = m + 1), (q.words = new Array(q.length));
- for (var i = 0; i < q.length; i++) q.words[i] = 0;
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- diff.negative === 0 && ((a = diff), q && (q.words[m] = 1));
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
- for (qj = Math.min((qj / bhi) | 0, 67108863), a._ishlnsubmul(b, qj, j); a.negative !== 0; )
- qj--, (a.negative = 0), a._ishlnsubmul(b, 1, j), a.isZero() || (a.negative ^= 1);
- q && (q.words[j] = qj);
- }
- return (
- q && q.strip(),
- a.strip(),
- mode !== "div" && shift !== 0 && a.iushrn(shift),
- {
- div: q || null,
- mod: a,
- }
- );
- }),
- (BN.prototype.divmod = function (num, mode, positive) {
- if ((assert(!num.isZero()), this.isZero()))
- return {
- div: new BN(0),
- mod: new BN(0),
- };
- var div, mod, res;
- return this.negative !== 0 && num.negative === 0
- ? ((res = this.neg().divmod(num, mode)),
- mode !== "mod" && (div = res.div.neg()),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.iadd(num)),
- {
- div,
- mod,
- })
- : this.negative === 0 && num.negative !== 0
- ? ((res = this.divmod(num.neg(), mode)),
- mode !== "mod" && (div = res.div.neg()),
- {
- div,
- mod: res.mod,
- })
- : (this.negative & num.negative) !== 0
- ? ((res = this.neg().divmod(num.neg(), mode)),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.isub(num)),
- {
- div: res.div,
- mod,
- })
- : num.length > this.length || this.cmp(num) < 0
- ? {
- div: new BN(0),
- mod: this,
- }
- : num.length === 1
- ? mode === "div"
- ? {
- div: this.divn(num.words[0]),
- mod: null,
- }
- : mode === "mod"
- ? {
- div: null,
- mod: new BN(this.modn(num.words[0])),
- }
- : {
- div: this.divn(num.words[0]),
- mod: new BN(this.modn(num.words[0])),
- }
- : this._wordDiv(num, mode);
- }),
- (BN.prototype.div = function (num) {
- return this.divmod(num, "div", !1).div;
- }),
- (BN.prototype.mod = function (num) {
- return this.divmod(num, "mod", !1).mod;
- }),
- (BN.prototype.umod = function (num) {
- return this.divmod(num, "mod", !0).mod;
- }),
- (BN.prototype.divRound = function (num) {
- var dm = this.divmod(num);
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod,
- half = num.ushrn(1),
- r2 = num.andln(1),
- cmp = mod.cmp(half);
- return cmp < 0 || (r2 === 1 && cmp === 0)
- ? dm.div
- : dm.div.negative !== 0
- ? dm.div.isubn(1)
- : dm.div.iaddn(1);
- }),
- (BN.prototype.modn = function (num) {
- assert(num <= 67108863);
- for (var p = (1 << 26) % num, acc = 0, i = this.length - 1; i >= 0; i--)
- acc = (p * acc + (this.words[i] | 0)) % num;
- return acc;
- }),
- (BN.prototype.idivn = function (num) {
- assert(num <= 67108863);
- for (var carry = 0, i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 67108864;
- (this.words[i] = (w / num) | 0), (carry = w % num);
- }
- return this.strip();
- }),
- (BN.prototype.divn = function (num) {
- return this.clone().idivn(num);
- }),
- (BN.prototype.egcd = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var x = this,
- y = p.clone();
- x.negative !== 0 ? (x = x.umod(p)) : (x = x.clone());
- for (var A = new BN(1), B = new BN(0), C = new BN(0), D = new BN(1), g = 0; x.isEven() && y.isEven(); )
- x.iushrn(1), y.iushrn(1), ++g;
- for (var yp = y.clone(), xp = x.clone(); !x.isZero(); ) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0)
- for (x.iushrn(i); i-- > 0; )
- (A.isOdd() || B.isOdd()) && (A.iadd(yp), B.isub(xp)), A.iushrn(1), B.iushrn(1);
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0)
- for (y.iushrn(j); j-- > 0; )
- (C.isOdd() || D.isOdd()) && (C.iadd(yp), D.isub(xp)), C.iushrn(1), D.iushrn(1);
- x.cmp(y) >= 0 ? (x.isub(y), A.isub(C), B.isub(D)) : (y.isub(x), C.isub(A), D.isub(B));
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g),
- };
- }),
- (BN.prototype._invmp = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var a = this,
- b = p.clone();
- a.negative !== 0 ? (a = a.umod(p)) : (a = a.clone());
- for (var x1 = new BN(1), x2 = new BN(0), delta = b.clone(); a.cmpn(1) > 0 && b.cmpn(1) > 0; ) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) for (a.iushrn(i); i-- > 0; ) x1.isOdd() && x1.iadd(delta), x1.iushrn(1);
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) for (b.iushrn(j); j-- > 0; ) x2.isOdd() && x2.iadd(delta), x2.iushrn(1);
- a.cmp(b) >= 0 ? (a.isub(b), x1.isub(x2)) : (b.isub(a), x2.isub(x1));
- }
- var res;
- return a.cmpn(1) === 0 ? (res = x1) : (res = x2), res.cmpn(0) < 0 && res.iadd(p), res;
- }),
- (BN.prototype.gcd = function (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone(),
- b = num.clone();
- (a.negative = 0), (b.negative = 0);
- for (var shift = 0; a.isEven() && b.isEven(); shift++) a.iushrn(1), b.iushrn(1);
- do {
- for (; a.isEven(); ) a.iushrn(1);
- for (; b.isEven(); ) b.iushrn(1);
- var r = a.cmp(b);
- if (r < 0) {
- var t = a;
- (a = b), (b = t);
- } else if (r === 0 || b.cmpn(1) === 0) break;
- a.isub(b);
- } while (!0);
- return b.iushln(shift);
- }),
- (BN.prototype.invm = function (num) {
- return this.egcd(num).a.umod(num);
- }),
- (BN.prototype.isEven = function () {
- return (this.words[0] & 1) === 0;
- }),
- (BN.prototype.isOdd = function () {
- return (this.words[0] & 1) === 1;
- }),
- (BN.prototype.andln = function (num) {
- return this.words[0] & num;
- }),
- (BN.prototype.bincn = function (bit) {
- assert(typeof bit == "number");
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return this._expand(s + 1), (this.words[s] |= q), this;
- for (var carry = q, i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- (w += carry), (carry = w >>> 26), (w &= 67108863), (this.words[i] = w);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.isZero = function () {
- return this.length === 1 && this.words[0] === 0;
- }),
- (BN.prototype.cmpn = function (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this.strip();
- var res;
- if (this.length > 1) res = 1;
- else {
- negative && (num = -num), assert(num <= 67108863, "Number is too big");
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.cmp = function (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.ucmp = function (num) {
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- for (var res = 0, i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0,
- b = num.words[i] | 0;
- if (a !== b) {
- a < b ? (res = -1) : a > b && (res = 1);
- break;
- }
- }
- return res;
- }),
- (BN.prototype.gtn = function (num) {
- return this.cmpn(num) === 1;
- }),
- (BN.prototype.gt = function (num) {
- return this.cmp(num) === 1;
- }),
- (BN.prototype.gten = function (num) {
- return this.cmpn(num) >= 0;
- }),
- (BN.prototype.gte = function (num) {
- return this.cmp(num) >= 0;
- }),
- (BN.prototype.ltn = function (num) {
- return this.cmpn(num) === -1;
- }),
- (BN.prototype.lt = function (num) {
- return this.cmp(num) === -1;
- }),
- (BN.prototype.lten = function (num) {
- return this.cmpn(num) <= 0;
- }),
- (BN.prototype.lte = function (num) {
- return this.cmp(num) <= 0;
- }),
- (BN.prototype.eqn = function (num) {
- return this.cmpn(num) === 0;
- }),
- (BN.prototype.eq = function (num) {
- return this.cmp(num) === 0;
- }),
- (BN.red = function (num) {
- return new Red(num);
- }),
- (BN.prototype.toRed = function (ctx) {
- return (
- assert(!this.red, "Already a number in reduction context"),
- assert(this.negative === 0, "red works only with positives"),
- ctx.convertTo(this)._forceRed(ctx)
- );
- }),
- (BN.prototype.fromRed = function () {
- return assert(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this);
- }),
- (BN.prototype._forceRed = function (ctx) {
- return (this.red = ctx), this;
- }),
- (BN.prototype.forceRed = function (ctx) {
- return assert(!this.red, "Already a number in reduction context"), this._forceRed(ctx);
- }),
- (BN.prototype.redAdd = function (num) {
- return assert(this.red, "redAdd works only with red numbers"), this.red.add(this, num);
- }),
- (BN.prototype.redIAdd = function (num) {
- return assert(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, num);
- }),
- (BN.prototype.redSub = function (num) {
- return assert(this.red, "redSub works only with red numbers"), this.red.sub(this, num);
- }),
- (BN.prototype.redISub = function (num) {
- return assert(this.red, "redISub works only with red numbers"), this.red.isub(this, num);
- }),
- (BN.prototype.redShl = function (num) {
- return assert(this.red, "redShl works only with red numbers"), this.red.shl(this, num);
- }),
- (BN.prototype.redMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.mul(this, num)
- );
- }),
- (BN.prototype.redIMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.imul(this, num)
- );
- }),
- (BN.prototype.redSqr = function () {
- return assert(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this);
- }),
- (BN.prototype.redISqr = function () {
- return assert(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this);
- }),
- (BN.prototype.redSqrt = function () {
- return assert(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this);
- }),
- (BN.prototype.redInvm = function () {
- return assert(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this);
- }),
- (BN.prototype.redNeg = function () {
- return assert(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this);
- }),
- (BN.prototype.redPow = function (num) {
- return assert(this.red && !num.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, num);
- });
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null,
- };
- function MPrime(name, p) {
- (this.name = name),
- (this.p = new BN(p, 16)),
- (this.n = this.p.bitLength()),
- (this.k = new BN(1).iushln(this.n).isub(this.p)),
- (this.tmp = this._tmp());
- }
- (MPrime.prototype._tmp = function () {
- var tmp = new BN(null);
- return (tmp.words = new Array(Math.ceil(this.n / 13))), tmp;
- }),
- (MPrime.prototype.ireduce = function (num) {
- var r = num,
- rlen;
- do this.split(r, this.tmp), (r = this.imulK(r)), (r = r.iadd(this.tmp)), (rlen = r.bitLength());
- while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- return (
- cmp === 0
- ? ((r.words[0] = 0), (r.length = 1))
- : cmp > 0
- ? r.isub(this.p)
- : r.strip !== void 0
- ? r.strip()
- : r._strip(),
- r
- );
- }),
- (MPrime.prototype.split = function (input, out) {
- input.iushrn(this.n, 0, out);
- }),
- (MPrime.prototype.imulK = function (num) {
- return num.imul(this.k);
- });
- function K256() {
- MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
- }
- inherits(K256, MPrime),
- (K256.prototype.split = function (input, output) {
- for (var mask = 4194303, outLen = Math.min(input.length, 9), i = 0; i < outLen; i++)
- output.words[i] = input.words[i];
- if (((output.length = outLen), input.length <= 9)) {
- (input.words[0] = 0), (input.length = 1);
- return;
- }
- var prev = input.words[9];
- for (output.words[output.length++] = prev & mask, i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- (input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22)), (prev = next);
- }
- (prev >>>= 22),
- (input.words[i - 10] = prev),
- prev === 0 && input.length > 10 ? (input.length -= 10) : (input.length -= 9);
- }),
- (K256.prototype.imulK = function (num) {
- (num.words[num.length] = 0), (num.words[num.length + 1] = 0), (num.length += 2);
- for (var lo = 0, i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- (lo += w * 977), (num.words[i] = lo & 67108863), (lo = w * 64 + ((lo / 67108864) | 0));
- }
- return (
- num.words[num.length - 1] === 0 && (num.length--, num.words[num.length - 1] === 0 && num.length--), num
- );
- });
- function P224() {
- MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
- }
- inherits(P224, MPrime);
- function P192() {
- MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
- }
- inherits(P192, MPrime);
- function P25519() {
- MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
- }
- inherits(P25519, MPrime),
- (P25519.prototype.imulK = function (num) {
- for (var carry = 0, i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 19 + carry,
- lo = hi & 67108863;
- (hi >>>= 26), (num.words[i] = lo), (carry = hi);
- }
- return carry !== 0 && (num.words[num.length++] = carry), num;
- }),
- (BN._prime = function (name) {
- if (primes[name]) return primes[name];
- var prime2;
- if (name === "k256") prime2 = new K256();
- else if (name === "p224") prime2 = new P224();
- else if (name === "p192") prime2 = new P192();
- else if (name === "p25519") prime2 = new P25519();
- else throw new Error("Unknown prime " + name);
- return (primes[name] = prime2), prime2;
- });
- function Red(m) {
- if (typeof m == "string") {
- var prime = BN._prime(m);
- (this.m = prime.p), (this.prime = prime);
- } else assert(m.gtn(1), "modulus must be greater than 1"), (this.m = m), (this.prime = null);
- }
- (Red.prototype._verify1 = function (a) {
- assert(a.negative === 0, "red works only with positives"), assert(a.red, "red works only with red numbers");
- }),
- (Red.prototype._verify2 = function (a, b) {
- assert((a.negative | b.negative) === 0, "red works only with positives"),
- assert(a.red && a.red === b.red, "red works only with red numbers");
- }),
- (Red.prototype.imod = function (a) {
- return this.prime ? this.prime.ireduce(a)._forceRed(this) : a.umod(this.m)._forceRed(this);
- }),
- (Red.prototype.neg = function (a) {
- return a.isZero() ? a.clone() : this.m.sub(a)._forceRed(this);
- }),
- (Red.prototype.add = function (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res._forceRed(this);
- }),
- (Red.prototype.iadd = function (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res;
- }),
- (Red.prototype.sub = function (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res._forceRed(this);
- }),
- (Red.prototype.isub = function (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res;
- }),
- (Red.prototype.shl = function (a, num) {
- return this._verify1(a), this.imod(a.ushln(num));
- }),
- (Red.prototype.imul = function (a, b) {
- return this._verify2(a, b), this.imod(a.imul(b));
- }),
- (Red.prototype.mul = function (a, b) {
- return this._verify2(a, b), this.imod(a.mul(b));
- }),
- (Red.prototype.isqr = function (a) {
- return this.imul(a, a.clone());
- }),
- (Red.prototype.sqr = function (a) {
- return this.mul(a, a);
- }),
- (Red.prototype.sqrt = function (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- if ((assert(mod3 % 2 === 1), mod3 === 3)) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- for (var q = this.m.subn(1), s = 0; !q.isZero() && q.andln(1) === 0; ) s++, q.iushrn(1);
- assert(!q.isZero());
- var one = new BN(1).toRed(this),
- nOne = one.redNeg(),
- lpow = this.m.subn(1).iushrn(1),
- z = this.m.bitLength();
- for (z = new BN(2 * z * z).toRed(this); this.pow(z, lpow).cmp(nOne) !== 0; ) z.redIAdd(nOne);
- for (
- var c = this.pow(z, q), r = this.pow(a, q.addn(1).iushrn(1)), t = this.pow(a, q), m = s;
- t.cmp(one) !== 0;
-
- ) {
- for (var tmp = t, i = 0; tmp.cmp(one) !== 0; i++) tmp = tmp.redSqr();
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- (r = r.redMul(b)), (c = b.redSqr()), (t = t.redMul(c)), (m = i);
- }
- return r;
- }),
- (Red.prototype.invm = function (a) {
- var inv = a._invmp(this.m);
- return inv.negative !== 0 ? ((inv.negative = 0), this.imod(inv).redNeg()) : this.imod(inv);
- }),
- (Red.prototype.pow = function (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4,
- wnd = new Array(1 << windowSize);
- (wnd[0] = new BN(1).toRed(this)), (wnd[1] = a);
- for (var i = 2; i < wnd.length; i++) wnd[i] = this.mul(wnd[i - 1], a);
- var res = wnd[0],
- current = 0,
- currentLen = 0,
- start = num.bitLength() % 26;
- for (start === 0 && (start = 26), i = num.length - 1; i >= 0; i--) {
- for (var word = num.words[i], j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if ((res !== wnd[0] && (res = this.sqr(res)), bit === 0 && current === 0)) {
- currentLen = 0;
- continue;
- }
- (current <<= 1),
- (current |= bit),
- currentLen++,
- !(currentLen !== windowSize && (i !== 0 || j !== 0)) &&
- ((res = this.mul(res, wnd[current])), (currentLen = 0), (current = 0));
- }
- start = 26;
- }
- return res;
- }),
- (Red.prototype.convertTo = function (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- }),
- (Red.prototype.convertFrom = function (num) {
- var res = num.clone();
- return (res.red = null), res;
- }),
- (BN.mont = function (num) {
- return new Mont(num);
- });
- function Mont(m) {
- Red.call(this, m),
- (this.shift = this.m.bitLength()),
- this.shift % 26 !== 0 && (this.shift += 26 - (this.shift % 26)),
- (this.r = new BN(1).iushln(this.shift)),
- (this.r2 = this.imod(this.r.sqr())),
- (this.rinv = this.r._invmp(this.m)),
- (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)),
- (this.minv = this.minv.umod(this.r)),
- (this.minv = this.r.sub(this.minv));
- }
- inherits(Mont, Red),
- (Mont.prototype.convertTo = function (num) {
- return this.imod(num.ushln(this.shift));
- }),
- (Mont.prototype.convertFrom = function (num) {
- var r = this.imod(num.mul(this.rinv));
- return (r.red = null), r;
- }),
- (Mont.prototype.imul = function (a, b) {
- if (a.isZero() || b.isZero()) return (a.words[0] = 0), (a.length = 1), a;
- var t = a.imul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.mul = function (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.invm = function (a) {
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- });
- })(typeof module > "u" || module, exports);
- },
-});
-
-// node_modules/create-ecdh/browser.js
-var require_browser9 = __commonJS({
- "node_modules/create-ecdh/browser.js"(exports, module) {
- var elliptic = require_elliptic(),
- BN = require_bn6();
- module.exports = function (curve) {
- return new ECDH(curve);
- };
- var aliases = {
- secp256k1: {
- name: "secp256k1",
- byteLength: 32,
- },
- secp224r1: {
- name: "p224",
- byteLength: 28,
- },
- prime256v1: {
- name: "p256",
- byteLength: 32,
- },
- prime192v1: {
- name: "p192",
- byteLength: 24,
- },
- ed25519: {
- name: "ed25519",
- byteLength: 32,
- },
- secp384r1: {
- name: "p384",
- byteLength: 48,
- },
- secp521r1: {
- name: "p521",
- byteLength: 66,
- },
- };
- aliases.p224 = aliases.secp224r1;
- aliases.p256 = aliases.secp256r1 = aliases.prime256v1;
- aliases.p192 = aliases.secp192r1 = aliases.prime192v1;
- aliases.p384 = aliases.secp384r1;
- aliases.p521 = aliases.secp521r1;
- function ECDH(curve) {
- (this.curveType = aliases[curve]),
- this.curveType ||
- (this.curveType = {
- name: curve,
- }),
- (this.curve = new elliptic.ec(this.curveType.name)),
- (this.keys = void 0);
- }
- ECDH.prototype.generateKeys = function (enc, format) {
- return (this.keys = this.curve.genKeyPair()), this.getPublicKey(enc, format);
- };
- ECDH.prototype.computeSecret = function (other, inenc, enc) {
- (inenc = inenc || "utf8"), Buffer.isBuffer(other) || (other = new Buffer(other, inenc));
- var otherPub = this.curve.keyFromPublic(other).getPublic(),
- out = otherPub.mul(this.keys.getPrivate()).getX();
- return formatReturnValue(out, enc, this.curveType.byteLength);
- };
- ECDH.prototype.getPublicKey = function (enc, format) {
- var key = this.keys.getPublic(format === "compressed", !0);
- return (
- format === "hybrid" && (key[key.length - 1] % 2 ? (key[0] = 7) : (key[0] = 6)), formatReturnValue(key, enc)
- );
- };
- ECDH.prototype.getPrivateKey = function (enc) {
- return formatReturnValue(this.keys.getPrivate(), enc);
- };
- ECDH.prototype.setPublicKey = function (pub, enc) {
- return (
- (enc = enc || "utf8"), Buffer.isBuffer(pub) || (pub = new Buffer(pub, enc)), this.keys._importPublic(pub), this
- );
- };
- ECDH.prototype.setPrivateKey = function (priv, enc) {
- (enc = enc || "utf8"), Buffer.isBuffer(priv) || (priv = new Buffer(priv, enc));
- var _priv = new BN(priv);
- return (_priv = _priv.toString(16)), (this.keys = this.curve.genKeyPair()), this.keys._importPrivate(_priv), this;
- };
- function formatReturnValue(bn, enc, len) {
- Array.isArray(bn) || (bn = bn.toArray());
- var buf = new Buffer(bn);
- if (len && buf.length < len) {
- var zeros = new Buffer(len - buf.length);
- zeros.fill(0), (buf = Buffer.concat([zeros, buf]));
- }
- return enc ? buf.toString(enc) : buf;
- }
- },
-});
-
-// node_modules/public-encrypt/mgf.js
-var require_mgf = __commonJS({
- "node_modules/public-encrypt/mgf.js"(exports, module) {
- var createHash = require_browser2(),
- Buffer2 = require_safe_buffer().Buffer;
- module.exports = function (seed, len) {
- for (var t = Buffer2.alloc(0), i = 0, c; t.length < len; )
- (c = i2ops(i++)), (t = Buffer2.concat([t, createHash("sha1").update(seed).update(c).digest()]));
- return t.slice(0, len);
- };
- function i2ops(c) {
- var out = Buffer2.allocUnsafe(4);
- return out.writeUInt32BE(c, 0), out;
- }
- },
-});
-
-// node_modules/public-encrypt/xor.js
-var require_xor = __commonJS({
- "node_modules/public-encrypt/xor.js"(exports, module) {
- module.exports = function (a, b) {
- for (var len = a.length, i = -1; ++i < len; ) a[i] ^= b[i];
- return a;
- };
- },
-});
-
-// node_modules/public-encrypt/node_modules/bn.js/lib/bn.js
-var require_bn7 = __commonJS({
- "node_modules/public-encrypt/node_modules/bn.js/lib/bn.js"(exports, module) {
- (function (module2, exports2) {
- "use strict";
- function assert(val, msg) {
- if (!val) throw new Error(msg || "Assertion failed");
- }
- function inherits(ctor, superCtor) {
- ctor.super_ = superCtor;
- var TempCtor = function () {};
- (TempCtor.prototype = superCtor.prototype),
- (ctor.prototype = new TempCtor()),
- (ctor.prototype.constructor = ctor);
- }
- function BN(number, base, endian) {
- if (BN.isBN(number)) return number;
- (this.negative = 0),
- (this.words = null),
- (this.length = 0),
- (this.red = null),
- number !== null &&
- ((base === "le" || base === "be") && ((endian = base), (base = 10)),
- this._init(number || 0, base || 10, endian || "be"));
- }
- typeof module2 == "object" ? (module2.exports = BN) : (exports2.BN = BN), (BN.BN = BN), (BN.wordSize = 26);
- var Buffer2 = globalThis.Buffer;
- (BN.isBN = function (num) {
- return num instanceof BN
- ? !0
- : num !== null &&
- typeof num == "object" &&
- num.constructor.wordSize === BN.wordSize &&
- Array.isArray(num.words);
- }),
- (BN.max = function (left, right) {
- return left.cmp(right) > 0 ? left : right;
- }),
- (BN.min = function (left, right) {
- return left.cmp(right) < 0 ? left : right;
- }),
- (BN.prototype._init = function (number, base, endian) {
- if (typeof number == "number") return this._initNumber(number, base, endian);
- if (typeof number == "object") return this._initArray(number, base, endian);
- base === "hex" && (base = 16),
- assert(base === (base | 0) && base >= 2 && base <= 36),
- (number = number.toString().replace(/\s+/g, ""));
- var start = 0;
- number[0] === "-" && (start++, (this.negative = 1)),
- start < number.length &&
- (base === 16
- ? this._parseHex(number, start, endian)
- : (this._parseBase(number, base, start),
- endian === "le" && this._initArray(this.toArray(), base, endian)));
- }),
- (BN.prototype._initNumber = function (number, base, endian) {
- number < 0 && ((this.negative = 1), (number = -number)),
- number < 67108864
- ? ((this.words = [number & 67108863]), (this.length = 1))
- : number < 4503599627370496
- ? ((this.words = [number & 67108863, (number / 67108864) & 67108863]), (this.length = 2))
- : (assert(number < 9007199254740992),
- (this.words = [number & 67108863, (number / 67108864) & 67108863, 1]),
- (this.length = 3)),
- endian === "le" && this._initArray(this.toArray(), base, endian);
- }),
- (BN.prototype._initArray = function (number, base, endian) {
- if ((assert(typeof number.length == "number"), number.length <= 0))
- return (this.words = [0]), (this.length = 1), this;
- (this.length = Math.ceil(number.length / 3)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var j,
- w,
- off = 0;
- if (endian === "be")
- for (i = number.length - 1, j = 0; i >= 0; i -= 3)
- (w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- else if (endian === "le")
- for (i = 0, j = 0; i < number.length; i += 3)
- (w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16)),
- (this.words[j] |= (w << off) & 67108863),
- (this.words[j + 1] = (w >>> (26 - off)) & 67108863),
- (off += 24),
- off >= 26 && ((off -= 26), j++);
- return this.strip();
- });
- function parseHex4Bits(string, index) {
- var c = string.charCodeAt(index);
- return c >= 65 && c <= 70 ? c - 55 : c >= 97 && c <= 102 ? c - 87 : (c - 48) & 15;
- }
- function parseHexByte(string, lowerBound, index) {
- var r = parseHex4Bits(string, index);
- return index - 1 >= lowerBound && (r |= parseHex4Bits(string, index - 1) << 4), r;
- }
- BN.prototype._parseHex = function (number, start, endian) {
- (this.length = Math.ceil((number.length - start) / 6)), (this.words = new Array(this.length));
- for (var i = 0; i < this.length; i++) this.words[i] = 0;
- var off = 0,
- j = 0,
- w;
- if (endian === "be")
- for (i = number.length - 1; i >= start; i -= 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- else {
- var parseLength = number.length - start;
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2)
- (w = parseHexByte(number, start, i) << off),
- (this.words[j] |= w & 67108863),
- off >= 18 ? ((off -= 18), (j += 1), (this.words[j] |= w >>> 26)) : (off += 8);
- }
- this.strip();
- };
- function parseBase(str, start, end, mul) {
- for (var r = 0, len = Math.min(str.length, end), i = start; i < len; i++) {
- var c = str.charCodeAt(i) - 48;
- (r *= mul), c >= 49 ? (r += c - 49 + 10) : c >= 17 ? (r += c - 17 + 10) : (r += c);
- }
- return r;
- }
- (BN.prototype._parseBase = function (number, base, start) {
- (this.words = [0]), (this.length = 1);
- for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) limbLen++;
- limbLen--, (limbPow = (limbPow / base) | 0);
- for (
- var total = number.length - start,
- mod = total % limbLen,
- end = Math.min(total, total - mod) + start,
- word = 0,
- i = start;
- i < end;
- i += limbLen
- )
- (word = parseBase(number, i, i + limbLen, base)),
- this.imuln(limbPow),
- this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- if (mod !== 0) {
- var pow = 1;
- for (word = parseBase(number, i, number.length, base), i = 0; i < mod; i++) pow *= base;
- this.imuln(pow), this.words[0] + word < 67108864 ? (this.words[0] += word) : this._iaddn(word);
- }
- this.strip();
- }),
- (BN.prototype.copy = function (dest) {
- dest.words = new Array(this.length);
- for (var i = 0; i < this.length; i++) dest.words[i] = this.words[i];
- (dest.length = this.length), (dest.negative = this.negative), (dest.red = this.red);
- }),
- (BN.prototype.clone = function () {
- var r = new BN(null);
- return this.copy(r), r;
- }),
- (BN.prototype._expand = function (size) {
- for (; this.length < size; ) this.words[this.length++] = 0;
- return this;
- }),
- (BN.prototype.strip = function () {
- for (; this.length > 1 && this.words[this.length - 1] === 0; ) this.length--;
- return this._normSign();
- }),
- (BN.prototype._normSign = function () {
- return this.length === 1 && this.words[0] === 0 && (this.negative = 0), this;
- }),
- (BN.prototype.inspect = function () {
- return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">";
- });
- var zeros = [
- "",
- "0",
- "00",
- "000",
- "0000",
- "00000",
- "000000",
- "0000000",
- "00000000",
- "000000000",
- "0000000000",
- "00000000000",
- "000000000000",
- "0000000000000",
- "00000000000000",
- "000000000000000",
- "0000000000000000",
- "00000000000000000",
- "000000000000000000",
- "0000000000000000000",
- "00000000000000000000",
- "000000000000000000000",
- "0000000000000000000000",
- "00000000000000000000000",
- "000000000000000000000000",
- "0000000000000000000000000",
- ],
- groupSizes = [
- 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5,
- ],
- groupBases = [
- 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808,
- 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624,
- 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875,
- 60466176,
- ];
- (BN.prototype.toString = function (base, padding) {
- (base = base || 10), (padding = padding | 0 || 1);
- var out;
- if (base === 16 || base === "hex") {
- out = "";
- for (var off = 0, carry = 0, i = 0; i < this.length; i++) {
- var w = this.words[i],
- word = (((w << off) | carry) & 16777215).toString(16);
- (carry = (w >>> (24 - off)) & 16777215),
- carry !== 0 || i !== this.length - 1 ? (out = zeros[6 - word.length] + word + out) : (out = word + out),
- (off += 2),
- off >= 26 && ((off -= 26), i--);
- }
- for (carry !== 0 && (out = carry.toString(16) + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- if (base === (base | 0) && base >= 2 && base <= 36) {
- var groupSize = groupSizes[base],
- groupBase = groupBases[base];
- out = "";
- var c = this.clone();
- for (c.negative = 0; !c.isZero(); ) {
- var r = c.modn(groupBase).toString(base);
- (c = c.idivn(groupBase)), c.isZero() ? (out = r + out) : (out = zeros[groupSize - r.length] + r + out);
- }
- for (this.isZero() && (out = "0" + out); out.length % padding !== 0; ) out = "0" + out;
- return this.negative !== 0 && (out = "-" + out), out;
- }
- assert(!1, "Base should be between 2 and 36");
- }),
- (BN.prototype.toNumber = function () {
- var ret = this.words[0];
- return (
- this.length === 2
- ? (ret += this.words[1] * 67108864)
- : this.length === 3 && this.words[2] === 1
- ? (ret += 4503599627370496 + this.words[1] * 67108864)
- : this.length > 2 && assert(!1, "Number can only safely store up to 53 bits"),
- this.negative !== 0 ? -ret : ret
- );
- }),
- (BN.prototype.toJSON = function () {
- return this.toString(16);
- }),
- (BN.prototype.toBuffer = function (endian, length) {
- return assert(typeof Buffer2 < "u"), this.toArrayLike(Buffer2, endian, length);
- }),
- (BN.prototype.toArray = function (endian, length) {
- return this.toArrayLike(Array, endian, length);
- }),
- (BN.prototype.toArrayLike = function (ArrayType, endian, length) {
- var byteLength = this.byteLength(),
- reqLength = length || Math.max(1, byteLength);
- assert(byteLength <= reqLength, "byte array longer than desired length"),
- assert(reqLength > 0, "Requested array length <= 0"),
- this.strip();
- var littleEndian = endian === "le",
- res = new ArrayType(reqLength),
- b,
- i,
- q = this.clone();
- if (littleEndian) {
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[i] = b);
- for (; i < reqLength; i++) res[i] = 0;
- } else {
- for (i = 0; i < reqLength - byteLength; i++) res[i] = 0;
- for (i = 0; !q.isZero(); i++) (b = q.andln(255)), q.iushrn(8), (res[reqLength - i - 1] = b);
- }
- return res;
- }),
- Math.clz32
- ? (BN.prototype._countBits = function (w) {
- return 32 - Math.clz32(w);
- })
- : (BN.prototype._countBits = function (w) {
- var t = w,
- r = 0;
- return (
- t >= 4096 && ((r += 13), (t >>>= 13)),
- t >= 64 && ((r += 7), (t >>>= 7)),
- t >= 8 && ((r += 4), (t >>>= 4)),
- t >= 2 && ((r += 2), (t >>>= 2)),
- r + t
- );
- }),
- (BN.prototype._zeroBits = function (w) {
- if (w === 0) return 26;
- var t = w,
- r = 0;
- return (
- (t & 8191) === 0 && ((r += 13), (t >>>= 13)),
- (t & 127) === 0 && ((r += 7), (t >>>= 7)),
- (t & 15) === 0 && ((r += 4), (t >>>= 4)),
- (t & 3) === 0 && ((r += 2), (t >>>= 2)),
- (t & 1) === 0 && r++,
- r
- );
- }),
- (BN.prototype.bitLength = function () {
- var w = this.words[this.length - 1],
- hi = this._countBits(w);
- return (this.length - 1) * 26 + hi;
- });
- function toBitArray(num) {
- for (var w = new Array(num.bitLength()), bit = 0; bit < w.length; bit++) {
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;
- }
- return w;
- }
- (BN.prototype.zeroBits = function () {
- if (this.isZero()) return 0;
- for (var r = 0, i = 0; i < this.length; i++) {
- var b = this._zeroBits(this.words[i]);
- if (((r += b), b !== 26)) break;
- }
- return r;
- }),
- (BN.prototype.byteLength = function () {
- return Math.ceil(this.bitLength() / 8);
- }),
- (BN.prototype.toTwos = function (width) {
- return this.negative !== 0 ? this.abs().inotn(width).iaddn(1) : this.clone();
- }),
- (BN.prototype.fromTwos = function (width) {
- return this.testn(width - 1) ? this.notn(width).iaddn(1).ineg() : this.clone();
- }),
- (BN.prototype.isNeg = function () {
- return this.negative !== 0;
- }),
- (BN.prototype.neg = function () {
- return this.clone().ineg();
- }),
- (BN.prototype.ineg = function () {
- return this.isZero() || (this.negative ^= 1), this;
- }),
- (BN.prototype.iuor = function (num) {
- for (; this.length < num.length; ) this.words[this.length++] = 0;
- for (var i = 0; i < num.length; i++) this.words[i] = this.words[i] | num.words[i];
- return this.strip();
- }),
- (BN.prototype.ior = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuor(num);
- }),
- (BN.prototype.or = function (num) {
- return this.length > num.length ? this.clone().ior(num) : num.clone().ior(this);
- }),
- (BN.prototype.uor = function (num) {
- return this.length > num.length ? this.clone().iuor(num) : num.clone().iuor(this);
- }),
- (BN.prototype.iuand = function (num) {
- var b;
- this.length > num.length ? (b = num) : (b = this);
- for (var i = 0; i < b.length; i++) this.words[i] = this.words[i] & num.words[i];
- return (this.length = b.length), this.strip();
- }),
- (BN.prototype.iand = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuand(num);
- }),
- (BN.prototype.and = function (num) {
- return this.length > num.length ? this.clone().iand(num) : num.clone().iand(this);
- }),
- (BN.prototype.uand = function (num) {
- return this.length > num.length ? this.clone().iuand(num) : num.clone().iuand(this);
- }),
- (BN.prototype.iuxor = function (num) {
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var i = 0; i < b.length; i++) this.words[i] = a.words[i] ^ b.words[i];
- if (this !== a) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = a.length), this.strip();
- }),
- (BN.prototype.ixor = function (num) {
- return assert((this.negative | num.negative) === 0), this.iuxor(num);
- }),
- (BN.prototype.xor = function (num) {
- return this.length > num.length ? this.clone().ixor(num) : num.clone().ixor(this);
- }),
- (BN.prototype.uxor = function (num) {
- return this.length > num.length ? this.clone().iuxor(num) : num.clone().iuxor(this);
- }),
- (BN.prototype.inotn = function (width) {
- assert(typeof width == "number" && width >= 0);
- var bytesNeeded = Math.ceil(width / 26) | 0,
- bitsLeft = width % 26;
- this._expand(bytesNeeded), bitsLeft > 0 && bytesNeeded--;
- for (var i = 0; i < bytesNeeded; i++) this.words[i] = ~this.words[i] & 67108863;
- return bitsLeft > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft))), this.strip();
- }),
- (BN.prototype.notn = function (width) {
- return this.clone().inotn(width);
- }),
- (BN.prototype.setn = function (bit, val) {
- assert(typeof bit == "number" && bit >= 0);
- var off = (bit / 26) | 0,
- wbit = bit % 26;
- return (
- this._expand(off + 1),
- val
- ? (this.words[off] = this.words[off] | (1 << wbit))
- : (this.words[off] = this.words[off] & ~(1 << wbit)),
- this.strip()
- );
- }),
- (BN.prototype.iadd = function (num) {
- var r;
- if (this.negative !== 0 && num.negative === 0)
- return (this.negative = 0), (r = this.isub(num)), (this.negative ^= 1), this._normSign();
- if (this.negative === 0 && num.negative !== 0)
- return (num.negative = 0), (r = this.isub(num)), (num.negative = 1), r._normSign();
- var a, b;
- this.length > num.length ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) + (b.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (this.words[i] = r & 67108863), (carry = r >>> 26);
- if (((this.length = a.length), carry !== 0)) (this.words[this.length] = carry), this.length++;
- else if (a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return this;
- }),
- (BN.prototype.add = function (num) {
- var res;
- return num.negative !== 0 && this.negative === 0
- ? ((num.negative = 0), (res = this.sub(num)), (num.negative ^= 1), res)
- : num.negative === 0 && this.negative !== 0
- ? ((this.negative = 0), (res = num.sub(this)), (this.negative = 1), res)
- : this.length > num.length
- ? this.clone().iadd(num)
- : num.clone().iadd(this);
- }),
- (BN.prototype.isub = function (num) {
- if (num.negative !== 0) {
- num.negative = 0;
- var r = this.iadd(num);
- return (num.negative = 1), r._normSign();
- } else if (this.negative !== 0)
- return (this.negative = 0), this.iadd(num), (this.negative = 1), this._normSign();
- var cmp = this.cmp(num);
- if (cmp === 0) return (this.negative = 0), (this.length = 1), (this.words[0] = 0), this;
- var a, b;
- cmp > 0 ? ((a = this), (b = num)) : ((a = num), (b = this));
- for (var carry = 0, i = 0; i < b.length; i++)
- (r = (a.words[i] | 0) - (b.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- for (; carry !== 0 && i < a.length; i++)
- (r = (a.words[i] | 0) + carry), (carry = r >> 26), (this.words[i] = r & 67108863);
- if (carry === 0 && i < a.length && a !== this) for (; i < a.length; i++) this.words[i] = a.words[i];
- return (this.length = Math.max(this.length, i)), a !== this && (this.negative = 1), this.strip();
- }),
- (BN.prototype.sub = function (num) {
- return this.clone().isub(num);
- });
- function smallMulTo(self2, num, out) {
- out.negative = num.negative ^ self2.negative;
- var len = (self2.length + num.length) | 0;
- (out.length = len), (len = (len - 1) | 0);
- var a = self2.words[0] | 0,
- b = num.words[0] | 0,
- r = a * b,
- lo = r & 67108863,
- carry = (r / 67108864) | 0;
- out.words[0] = lo;
- for (var k = 1; k < len; k++) {
- for (
- var ncarry = carry >>> 26,
- rword = carry & 67108863,
- maxJ = Math.min(k, num.length - 1),
- j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = (k - j) | 0;
- (a = self2.words[i] | 0),
- (b = num.words[j] | 0),
- (r = a * b + rword),
- (ncarry += (r / 67108864) | 0),
- (rword = r & 67108863);
- }
- (out.words[k] = rword | 0), (carry = ncarry | 0);
- }
- return carry !== 0 ? (out.words[k] = carry | 0) : out.length--, out.strip();
- }
- var comb10MulTo = function (self2, num, out) {
- var a = self2.words,
- b = num.words,
- o = out.words,
- c = 0,
- lo,
- mid,
- hi,
- a0 = a[0] | 0,
- al0 = a0 & 8191,
- ah0 = a0 >>> 13,
- a1 = a[1] | 0,
- al1 = a1 & 8191,
- ah1 = a1 >>> 13,
- a2 = a[2] | 0,
- al2 = a2 & 8191,
- ah2 = a2 >>> 13,
- a3 = a[3] | 0,
- al3 = a3 & 8191,
- ah3 = a3 >>> 13,
- a4 = a[4] | 0,
- al4 = a4 & 8191,
- ah4 = a4 >>> 13,
- a5 = a[5] | 0,
- al5 = a5 & 8191,
- ah5 = a5 >>> 13,
- a6 = a[6] | 0,
- al6 = a6 & 8191,
- ah6 = a6 >>> 13,
- a7 = a[7] | 0,
- al7 = a7 & 8191,
- ah7 = a7 >>> 13,
- a8 = a[8] | 0,
- al8 = a8 & 8191,
- ah8 = a8 >>> 13,
- a9 = a[9] | 0,
- al9 = a9 & 8191,
- ah9 = a9 >>> 13,
- b0 = b[0] | 0,
- bl0 = b0 & 8191,
- bh0 = b0 >>> 13,
- b1 = b[1] | 0,
- bl1 = b1 & 8191,
- bh1 = b1 >>> 13,
- b2 = b[2] | 0,
- bl2 = b2 & 8191,
- bh2 = b2 >>> 13,
- b3 = b[3] | 0,
- bl3 = b3 & 8191,
- bh3 = b3 >>> 13,
- b4 = b[4] | 0,
- bl4 = b4 & 8191,
- bh4 = b4 >>> 13,
- b5 = b[5] | 0,
- bl5 = b5 & 8191,
- bh5 = b5 >>> 13,
- b6 = b[6] | 0,
- bl6 = b6 & 8191,
- bh6 = b6 >>> 13,
- b7 = b[7] | 0,
- bl7 = b7 & 8191,
- bh7 = b7 >>> 13,
- b8 = b[8] | 0,
- bl8 = b8 & 8191,
- bh8 = b8 >>> 13,
- b9 = b[9] | 0,
- bl9 = b9 & 8191,
- bh9 = b9 >>> 13;
- (out.negative = self2.negative ^ num.negative),
- (out.length = 19),
- (lo = Math.imul(al0, bl0)),
- (mid = Math.imul(al0, bh0)),
- (mid = (mid + Math.imul(ah0, bl0)) | 0),
- (hi = Math.imul(ah0, bh0));
- var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0),
- (w0 &= 67108863),
- (lo = Math.imul(al1, bl0)),
- (mid = Math.imul(al1, bh0)),
- (mid = (mid + Math.imul(ah1, bl0)) | 0),
- (hi = Math.imul(ah1, bh0)),
- (lo = (lo + Math.imul(al0, bl1)) | 0),
- (mid = (mid + Math.imul(al0, bh1)) | 0),
- (mid = (mid + Math.imul(ah0, bl1)) | 0),
- (hi = (hi + Math.imul(ah0, bh1)) | 0);
- var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0),
- (w1 &= 67108863),
- (lo = Math.imul(al2, bl0)),
- (mid = Math.imul(al2, bh0)),
- (mid = (mid + Math.imul(ah2, bl0)) | 0),
- (hi = Math.imul(ah2, bh0)),
- (lo = (lo + Math.imul(al1, bl1)) | 0),
- (mid = (mid + Math.imul(al1, bh1)) | 0),
- (mid = (mid + Math.imul(ah1, bl1)) | 0),
- (hi = (hi + Math.imul(ah1, bh1)) | 0),
- (lo = (lo + Math.imul(al0, bl2)) | 0),
- (mid = (mid + Math.imul(al0, bh2)) | 0),
- (mid = (mid + Math.imul(ah0, bl2)) | 0),
- (hi = (hi + Math.imul(ah0, bh2)) | 0);
- var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0),
- (w2 &= 67108863),
- (lo = Math.imul(al3, bl0)),
- (mid = Math.imul(al3, bh0)),
- (mid = (mid + Math.imul(ah3, bl0)) | 0),
- (hi = Math.imul(ah3, bh0)),
- (lo = (lo + Math.imul(al2, bl1)) | 0),
- (mid = (mid + Math.imul(al2, bh1)) | 0),
- (mid = (mid + Math.imul(ah2, bl1)) | 0),
- (hi = (hi + Math.imul(ah2, bh1)) | 0),
- (lo = (lo + Math.imul(al1, bl2)) | 0),
- (mid = (mid + Math.imul(al1, bh2)) | 0),
- (mid = (mid + Math.imul(ah1, bl2)) | 0),
- (hi = (hi + Math.imul(ah1, bh2)) | 0),
- (lo = (lo + Math.imul(al0, bl3)) | 0),
- (mid = (mid + Math.imul(al0, bh3)) | 0),
- (mid = (mid + Math.imul(ah0, bl3)) | 0),
- (hi = (hi + Math.imul(ah0, bh3)) | 0);
- var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0),
- (w3 &= 67108863),
- (lo = Math.imul(al4, bl0)),
- (mid = Math.imul(al4, bh0)),
- (mid = (mid + Math.imul(ah4, bl0)) | 0),
- (hi = Math.imul(ah4, bh0)),
- (lo = (lo + Math.imul(al3, bl1)) | 0),
- (mid = (mid + Math.imul(al3, bh1)) | 0),
- (mid = (mid + Math.imul(ah3, bl1)) | 0),
- (hi = (hi + Math.imul(ah3, bh1)) | 0),
- (lo = (lo + Math.imul(al2, bl2)) | 0),
- (mid = (mid + Math.imul(al2, bh2)) | 0),
- (mid = (mid + Math.imul(ah2, bl2)) | 0),
- (hi = (hi + Math.imul(ah2, bh2)) | 0),
- (lo = (lo + Math.imul(al1, bl3)) | 0),
- (mid = (mid + Math.imul(al1, bh3)) | 0),
- (mid = (mid + Math.imul(ah1, bl3)) | 0),
- (hi = (hi + Math.imul(ah1, bh3)) | 0),
- (lo = (lo + Math.imul(al0, bl4)) | 0),
- (mid = (mid + Math.imul(al0, bh4)) | 0),
- (mid = (mid + Math.imul(ah0, bl4)) | 0),
- (hi = (hi + Math.imul(ah0, bh4)) | 0);
- var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0),
- (w4 &= 67108863),
- (lo = Math.imul(al5, bl0)),
- (mid = Math.imul(al5, bh0)),
- (mid = (mid + Math.imul(ah5, bl0)) | 0),
- (hi = Math.imul(ah5, bh0)),
- (lo = (lo + Math.imul(al4, bl1)) | 0),
- (mid = (mid + Math.imul(al4, bh1)) | 0),
- (mid = (mid + Math.imul(ah4, bl1)) | 0),
- (hi = (hi + Math.imul(ah4, bh1)) | 0),
- (lo = (lo + Math.imul(al3, bl2)) | 0),
- (mid = (mid + Math.imul(al3, bh2)) | 0),
- (mid = (mid + Math.imul(ah3, bl2)) | 0),
- (hi = (hi + Math.imul(ah3, bh2)) | 0),
- (lo = (lo + Math.imul(al2, bl3)) | 0),
- (mid = (mid + Math.imul(al2, bh3)) | 0),
- (mid = (mid + Math.imul(ah2, bl3)) | 0),
- (hi = (hi + Math.imul(ah2, bh3)) | 0),
- (lo = (lo + Math.imul(al1, bl4)) | 0),
- (mid = (mid + Math.imul(al1, bh4)) | 0),
- (mid = (mid + Math.imul(ah1, bl4)) | 0),
- (hi = (hi + Math.imul(ah1, bh4)) | 0),
- (lo = (lo + Math.imul(al0, bl5)) | 0),
- (mid = (mid + Math.imul(al0, bh5)) | 0),
- (mid = (mid + Math.imul(ah0, bl5)) | 0),
- (hi = (hi + Math.imul(ah0, bh5)) | 0);
- var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0),
- (w5 &= 67108863),
- (lo = Math.imul(al6, bl0)),
- (mid = Math.imul(al6, bh0)),
- (mid = (mid + Math.imul(ah6, bl0)) | 0),
- (hi = Math.imul(ah6, bh0)),
- (lo = (lo + Math.imul(al5, bl1)) | 0),
- (mid = (mid + Math.imul(al5, bh1)) | 0),
- (mid = (mid + Math.imul(ah5, bl1)) | 0),
- (hi = (hi + Math.imul(ah5, bh1)) | 0),
- (lo = (lo + Math.imul(al4, bl2)) | 0),
- (mid = (mid + Math.imul(al4, bh2)) | 0),
- (mid = (mid + Math.imul(ah4, bl2)) | 0),
- (hi = (hi + Math.imul(ah4, bh2)) | 0),
- (lo = (lo + Math.imul(al3, bl3)) | 0),
- (mid = (mid + Math.imul(al3, bh3)) | 0),
- (mid = (mid + Math.imul(ah3, bl3)) | 0),
- (hi = (hi + Math.imul(ah3, bh3)) | 0),
- (lo = (lo + Math.imul(al2, bl4)) | 0),
- (mid = (mid + Math.imul(al2, bh4)) | 0),
- (mid = (mid + Math.imul(ah2, bl4)) | 0),
- (hi = (hi + Math.imul(ah2, bh4)) | 0),
- (lo = (lo + Math.imul(al1, bl5)) | 0),
- (mid = (mid + Math.imul(al1, bh5)) | 0),
- (mid = (mid + Math.imul(ah1, bl5)) | 0),
- (hi = (hi + Math.imul(ah1, bh5)) | 0),
- (lo = (lo + Math.imul(al0, bl6)) | 0),
- (mid = (mid + Math.imul(al0, bh6)) | 0),
- (mid = (mid + Math.imul(ah0, bl6)) | 0),
- (hi = (hi + Math.imul(ah0, bh6)) | 0);
- var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0),
- (w6 &= 67108863),
- (lo = Math.imul(al7, bl0)),
- (mid = Math.imul(al7, bh0)),
- (mid = (mid + Math.imul(ah7, bl0)) | 0),
- (hi = Math.imul(ah7, bh0)),
- (lo = (lo + Math.imul(al6, bl1)) | 0),
- (mid = (mid + Math.imul(al6, bh1)) | 0),
- (mid = (mid + Math.imul(ah6, bl1)) | 0),
- (hi = (hi + Math.imul(ah6, bh1)) | 0),
- (lo = (lo + Math.imul(al5, bl2)) | 0),
- (mid = (mid + Math.imul(al5, bh2)) | 0),
- (mid = (mid + Math.imul(ah5, bl2)) | 0),
- (hi = (hi + Math.imul(ah5, bh2)) | 0),
- (lo = (lo + Math.imul(al4, bl3)) | 0),
- (mid = (mid + Math.imul(al4, bh3)) | 0),
- (mid = (mid + Math.imul(ah4, bl3)) | 0),
- (hi = (hi + Math.imul(ah4, bh3)) | 0),
- (lo = (lo + Math.imul(al3, bl4)) | 0),
- (mid = (mid + Math.imul(al3, bh4)) | 0),
- (mid = (mid + Math.imul(ah3, bl4)) | 0),
- (hi = (hi + Math.imul(ah3, bh4)) | 0),
- (lo = (lo + Math.imul(al2, bl5)) | 0),
- (mid = (mid + Math.imul(al2, bh5)) | 0),
- (mid = (mid + Math.imul(ah2, bl5)) | 0),
- (hi = (hi + Math.imul(ah2, bh5)) | 0),
- (lo = (lo + Math.imul(al1, bl6)) | 0),
- (mid = (mid + Math.imul(al1, bh6)) | 0),
- (mid = (mid + Math.imul(ah1, bl6)) | 0),
- (hi = (hi + Math.imul(ah1, bh6)) | 0),
- (lo = (lo + Math.imul(al0, bl7)) | 0),
- (mid = (mid + Math.imul(al0, bh7)) | 0),
- (mid = (mid + Math.imul(ah0, bl7)) | 0),
- (hi = (hi + Math.imul(ah0, bh7)) | 0);
- var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0),
- (w7 &= 67108863),
- (lo = Math.imul(al8, bl0)),
- (mid = Math.imul(al8, bh0)),
- (mid = (mid + Math.imul(ah8, bl0)) | 0),
- (hi = Math.imul(ah8, bh0)),
- (lo = (lo + Math.imul(al7, bl1)) | 0),
- (mid = (mid + Math.imul(al7, bh1)) | 0),
- (mid = (mid + Math.imul(ah7, bl1)) | 0),
- (hi = (hi + Math.imul(ah7, bh1)) | 0),
- (lo = (lo + Math.imul(al6, bl2)) | 0),
- (mid = (mid + Math.imul(al6, bh2)) | 0),
- (mid = (mid + Math.imul(ah6, bl2)) | 0),
- (hi = (hi + Math.imul(ah6, bh2)) | 0),
- (lo = (lo + Math.imul(al5, bl3)) | 0),
- (mid = (mid + Math.imul(al5, bh3)) | 0),
- (mid = (mid + Math.imul(ah5, bl3)) | 0),
- (hi = (hi + Math.imul(ah5, bh3)) | 0),
- (lo = (lo + Math.imul(al4, bl4)) | 0),
- (mid = (mid + Math.imul(al4, bh4)) | 0),
- (mid = (mid + Math.imul(ah4, bl4)) | 0),
- (hi = (hi + Math.imul(ah4, bh4)) | 0),
- (lo = (lo + Math.imul(al3, bl5)) | 0),
- (mid = (mid + Math.imul(al3, bh5)) | 0),
- (mid = (mid + Math.imul(ah3, bl5)) | 0),
- (hi = (hi + Math.imul(ah3, bh5)) | 0),
- (lo = (lo + Math.imul(al2, bl6)) | 0),
- (mid = (mid + Math.imul(al2, bh6)) | 0),
- (mid = (mid + Math.imul(ah2, bl6)) | 0),
- (hi = (hi + Math.imul(ah2, bh6)) | 0),
- (lo = (lo + Math.imul(al1, bl7)) | 0),
- (mid = (mid + Math.imul(al1, bh7)) | 0),
- (mid = (mid + Math.imul(ah1, bl7)) | 0),
- (hi = (hi + Math.imul(ah1, bh7)) | 0),
- (lo = (lo + Math.imul(al0, bl8)) | 0),
- (mid = (mid + Math.imul(al0, bh8)) | 0),
- (mid = (mid + Math.imul(ah0, bl8)) | 0),
- (hi = (hi + Math.imul(ah0, bh8)) | 0);
- var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0),
- (w8 &= 67108863),
- (lo = Math.imul(al9, bl0)),
- (mid = Math.imul(al9, bh0)),
- (mid = (mid + Math.imul(ah9, bl0)) | 0),
- (hi = Math.imul(ah9, bh0)),
- (lo = (lo + Math.imul(al8, bl1)) | 0),
- (mid = (mid + Math.imul(al8, bh1)) | 0),
- (mid = (mid + Math.imul(ah8, bl1)) | 0),
- (hi = (hi + Math.imul(ah8, bh1)) | 0),
- (lo = (lo + Math.imul(al7, bl2)) | 0),
- (mid = (mid + Math.imul(al7, bh2)) | 0),
- (mid = (mid + Math.imul(ah7, bl2)) | 0),
- (hi = (hi + Math.imul(ah7, bh2)) | 0),
- (lo = (lo + Math.imul(al6, bl3)) | 0),
- (mid = (mid + Math.imul(al6, bh3)) | 0),
- (mid = (mid + Math.imul(ah6, bl3)) | 0),
- (hi = (hi + Math.imul(ah6, bh3)) | 0),
- (lo = (lo + Math.imul(al5, bl4)) | 0),
- (mid = (mid + Math.imul(al5, bh4)) | 0),
- (mid = (mid + Math.imul(ah5, bl4)) | 0),
- (hi = (hi + Math.imul(ah5, bh4)) | 0),
- (lo = (lo + Math.imul(al4, bl5)) | 0),
- (mid = (mid + Math.imul(al4, bh5)) | 0),
- (mid = (mid + Math.imul(ah4, bl5)) | 0),
- (hi = (hi + Math.imul(ah4, bh5)) | 0),
- (lo = (lo + Math.imul(al3, bl6)) | 0),
- (mid = (mid + Math.imul(al3, bh6)) | 0),
- (mid = (mid + Math.imul(ah3, bl6)) | 0),
- (hi = (hi + Math.imul(ah3, bh6)) | 0),
- (lo = (lo + Math.imul(al2, bl7)) | 0),
- (mid = (mid + Math.imul(al2, bh7)) | 0),
- (mid = (mid + Math.imul(ah2, bl7)) | 0),
- (hi = (hi + Math.imul(ah2, bh7)) | 0),
- (lo = (lo + Math.imul(al1, bl8)) | 0),
- (mid = (mid + Math.imul(al1, bh8)) | 0),
- (mid = (mid + Math.imul(ah1, bl8)) | 0),
- (hi = (hi + Math.imul(ah1, bh8)) | 0),
- (lo = (lo + Math.imul(al0, bl9)) | 0),
- (mid = (mid + Math.imul(al0, bh9)) | 0),
- (mid = (mid + Math.imul(ah0, bl9)) | 0),
- (hi = (hi + Math.imul(ah0, bh9)) | 0);
- var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0),
- (w9 &= 67108863),
- (lo = Math.imul(al9, bl1)),
- (mid = Math.imul(al9, bh1)),
- (mid = (mid + Math.imul(ah9, bl1)) | 0),
- (hi = Math.imul(ah9, bh1)),
- (lo = (lo + Math.imul(al8, bl2)) | 0),
- (mid = (mid + Math.imul(al8, bh2)) | 0),
- (mid = (mid + Math.imul(ah8, bl2)) | 0),
- (hi = (hi + Math.imul(ah8, bh2)) | 0),
- (lo = (lo + Math.imul(al7, bl3)) | 0),
- (mid = (mid + Math.imul(al7, bh3)) | 0),
- (mid = (mid + Math.imul(ah7, bl3)) | 0),
- (hi = (hi + Math.imul(ah7, bh3)) | 0),
- (lo = (lo + Math.imul(al6, bl4)) | 0),
- (mid = (mid + Math.imul(al6, bh4)) | 0),
- (mid = (mid + Math.imul(ah6, bl4)) | 0),
- (hi = (hi + Math.imul(ah6, bh4)) | 0),
- (lo = (lo + Math.imul(al5, bl5)) | 0),
- (mid = (mid + Math.imul(al5, bh5)) | 0),
- (mid = (mid + Math.imul(ah5, bl5)) | 0),
- (hi = (hi + Math.imul(ah5, bh5)) | 0),
- (lo = (lo + Math.imul(al4, bl6)) | 0),
- (mid = (mid + Math.imul(al4, bh6)) | 0),
- (mid = (mid + Math.imul(ah4, bl6)) | 0),
- (hi = (hi + Math.imul(ah4, bh6)) | 0),
- (lo = (lo + Math.imul(al3, bl7)) | 0),
- (mid = (mid + Math.imul(al3, bh7)) | 0),
- (mid = (mid + Math.imul(ah3, bl7)) | 0),
- (hi = (hi + Math.imul(ah3, bh7)) | 0),
- (lo = (lo + Math.imul(al2, bl8)) | 0),
- (mid = (mid + Math.imul(al2, bh8)) | 0),
- (mid = (mid + Math.imul(ah2, bl8)) | 0),
- (hi = (hi + Math.imul(ah2, bh8)) | 0),
- (lo = (lo + Math.imul(al1, bl9)) | 0),
- (mid = (mid + Math.imul(al1, bh9)) | 0),
- (mid = (mid + Math.imul(ah1, bl9)) | 0),
- (hi = (hi + Math.imul(ah1, bh9)) | 0);
- var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0),
- (w10 &= 67108863),
- (lo = Math.imul(al9, bl2)),
- (mid = Math.imul(al9, bh2)),
- (mid = (mid + Math.imul(ah9, bl2)) | 0),
- (hi = Math.imul(ah9, bh2)),
- (lo = (lo + Math.imul(al8, bl3)) | 0),
- (mid = (mid + Math.imul(al8, bh3)) | 0),
- (mid = (mid + Math.imul(ah8, bl3)) | 0),
- (hi = (hi + Math.imul(ah8, bh3)) | 0),
- (lo = (lo + Math.imul(al7, bl4)) | 0),
- (mid = (mid + Math.imul(al7, bh4)) | 0),
- (mid = (mid + Math.imul(ah7, bl4)) | 0),
- (hi = (hi + Math.imul(ah7, bh4)) | 0),
- (lo = (lo + Math.imul(al6, bl5)) | 0),
- (mid = (mid + Math.imul(al6, bh5)) | 0),
- (mid = (mid + Math.imul(ah6, bl5)) | 0),
- (hi = (hi + Math.imul(ah6, bh5)) | 0),
- (lo = (lo + Math.imul(al5, bl6)) | 0),
- (mid = (mid + Math.imul(al5, bh6)) | 0),
- (mid = (mid + Math.imul(ah5, bl6)) | 0),
- (hi = (hi + Math.imul(ah5, bh6)) | 0),
- (lo = (lo + Math.imul(al4, bl7)) | 0),
- (mid = (mid + Math.imul(al4, bh7)) | 0),
- (mid = (mid + Math.imul(ah4, bl7)) | 0),
- (hi = (hi + Math.imul(ah4, bh7)) | 0),
- (lo = (lo + Math.imul(al3, bl8)) | 0),
- (mid = (mid + Math.imul(al3, bh8)) | 0),
- (mid = (mid + Math.imul(ah3, bl8)) | 0),
- (hi = (hi + Math.imul(ah3, bh8)) | 0),
- (lo = (lo + Math.imul(al2, bl9)) | 0),
- (mid = (mid + Math.imul(al2, bh9)) | 0),
- (mid = (mid + Math.imul(ah2, bl9)) | 0),
- (hi = (hi + Math.imul(ah2, bh9)) | 0);
- var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0),
- (w11 &= 67108863),
- (lo = Math.imul(al9, bl3)),
- (mid = Math.imul(al9, bh3)),
- (mid = (mid + Math.imul(ah9, bl3)) | 0),
- (hi = Math.imul(ah9, bh3)),
- (lo = (lo + Math.imul(al8, bl4)) | 0),
- (mid = (mid + Math.imul(al8, bh4)) | 0),
- (mid = (mid + Math.imul(ah8, bl4)) | 0),
- (hi = (hi + Math.imul(ah8, bh4)) | 0),
- (lo = (lo + Math.imul(al7, bl5)) | 0),
- (mid = (mid + Math.imul(al7, bh5)) | 0),
- (mid = (mid + Math.imul(ah7, bl5)) | 0),
- (hi = (hi + Math.imul(ah7, bh5)) | 0),
- (lo = (lo + Math.imul(al6, bl6)) | 0),
- (mid = (mid + Math.imul(al6, bh6)) | 0),
- (mid = (mid + Math.imul(ah6, bl6)) | 0),
- (hi = (hi + Math.imul(ah6, bh6)) | 0),
- (lo = (lo + Math.imul(al5, bl7)) | 0),
- (mid = (mid + Math.imul(al5, bh7)) | 0),
- (mid = (mid + Math.imul(ah5, bl7)) | 0),
- (hi = (hi + Math.imul(ah5, bh7)) | 0),
- (lo = (lo + Math.imul(al4, bl8)) | 0),
- (mid = (mid + Math.imul(al4, bh8)) | 0),
- (mid = (mid + Math.imul(ah4, bl8)) | 0),
- (hi = (hi + Math.imul(ah4, bh8)) | 0),
- (lo = (lo + Math.imul(al3, bl9)) | 0),
- (mid = (mid + Math.imul(al3, bh9)) | 0),
- (mid = (mid + Math.imul(ah3, bl9)) | 0),
- (hi = (hi + Math.imul(ah3, bh9)) | 0);
- var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0),
- (w12 &= 67108863),
- (lo = Math.imul(al9, bl4)),
- (mid = Math.imul(al9, bh4)),
- (mid = (mid + Math.imul(ah9, bl4)) | 0),
- (hi = Math.imul(ah9, bh4)),
- (lo = (lo + Math.imul(al8, bl5)) | 0),
- (mid = (mid + Math.imul(al8, bh5)) | 0),
- (mid = (mid + Math.imul(ah8, bl5)) | 0),
- (hi = (hi + Math.imul(ah8, bh5)) | 0),
- (lo = (lo + Math.imul(al7, bl6)) | 0),
- (mid = (mid + Math.imul(al7, bh6)) | 0),
- (mid = (mid + Math.imul(ah7, bl6)) | 0),
- (hi = (hi + Math.imul(ah7, bh6)) | 0),
- (lo = (lo + Math.imul(al6, bl7)) | 0),
- (mid = (mid + Math.imul(al6, bh7)) | 0),
- (mid = (mid + Math.imul(ah6, bl7)) | 0),
- (hi = (hi + Math.imul(ah6, bh7)) | 0),
- (lo = (lo + Math.imul(al5, bl8)) | 0),
- (mid = (mid + Math.imul(al5, bh8)) | 0),
- (mid = (mid + Math.imul(ah5, bl8)) | 0),
- (hi = (hi + Math.imul(ah5, bh8)) | 0),
- (lo = (lo + Math.imul(al4, bl9)) | 0),
- (mid = (mid + Math.imul(al4, bh9)) | 0),
- (mid = (mid + Math.imul(ah4, bl9)) | 0),
- (hi = (hi + Math.imul(ah4, bh9)) | 0);
- var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0),
- (w13 &= 67108863),
- (lo = Math.imul(al9, bl5)),
- (mid = Math.imul(al9, bh5)),
- (mid = (mid + Math.imul(ah9, bl5)) | 0),
- (hi = Math.imul(ah9, bh5)),
- (lo = (lo + Math.imul(al8, bl6)) | 0),
- (mid = (mid + Math.imul(al8, bh6)) | 0),
- (mid = (mid + Math.imul(ah8, bl6)) | 0),
- (hi = (hi + Math.imul(ah8, bh6)) | 0),
- (lo = (lo + Math.imul(al7, bl7)) | 0),
- (mid = (mid + Math.imul(al7, bh7)) | 0),
- (mid = (mid + Math.imul(ah7, bl7)) | 0),
- (hi = (hi + Math.imul(ah7, bh7)) | 0),
- (lo = (lo + Math.imul(al6, bl8)) | 0),
- (mid = (mid + Math.imul(al6, bh8)) | 0),
- (mid = (mid + Math.imul(ah6, bl8)) | 0),
- (hi = (hi + Math.imul(ah6, bh8)) | 0),
- (lo = (lo + Math.imul(al5, bl9)) | 0),
- (mid = (mid + Math.imul(al5, bh9)) | 0),
- (mid = (mid + Math.imul(ah5, bl9)) | 0),
- (hi = (hi + Math.imul(ah5, bh9)) | 0);
- var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0),
- (w14 &= 67108863),
- (lo = Math.imul(al9, bl6)),
- (mid = Math.imul(al9, bh6)),
- (mid = (mid + Math.imul(ah9, bl6)) | 0),
- (hi = Math.imul(ah9, bh6)),
- (lo = (lo + Math.imul(al8, bl7)) | 0),
- (mid = (mid + Math.imul(al8, bh7)) | 0),
- (mid = (mid + Math.imul(ah8, bl7)) | 0),
- (hi = (hi + Math.imul(ah8, bh7)) | 0),
- (lo = (lo + Math.imul(al7, bl8)) | 0),
- (mid = (mid + Math.imul(al7, bh8)) | 0),
- (mid = (mid + Math.imul(ah7, bl8)) | 0),
- (hi = (hi + Math.imul(ah7, bh8)) | 0),
- (lo = (lo + Math.imul(al6, bl9)) | 0),
- (mid = (mid + Math.imul(al6, bh9)) | 0),
- (mid = (mid + Math.imul(ah6, bl9)) | 0),
- (hi = (hi + Math.imul(ah6, bh9)) | 0);
- var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0),
- (w15 &= 67108863),
- (lo = Math.imul(al9, bl7)),
- (mid = Math.imul(al9, bh7)),
- (mid = (mid + Math.imul(ah9, bl7)) | 0),
- (hi = Math.imul(ah9, bh7)),
- (lo = (lo + Math.imul(al8, bl8)) | 0),
- (mid = (mid + Math.imul(al8, bh8)) | 0),
- (mid = (mid + Math.imul(ah8, bl8)) | 0),
- (hi = (hi + Math.imul(ah8, bh8)) | 0),
- (lo = (lo + Math.imul(al7, bl9)) | 0),
- (mid = (mid + Math.imul(al7, bh9)) | 0),
- (mid = (mid + Math.imul(ah7, bl9)) | 0),
- (hi = (hi + Math.imul(ah7, bh9)) | 0);
- var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0),
- (w16 &= 67108863),
- (lo = Math.imul(al9, bl8)),
- (mid = Math.imul(al9, bh8)),
- (mid = (mid + Math.imul(ah9, bl8)) | 0),
- (hi = Math.imul(ah9, bh8)),
- (lo = (lo + Math.imul(al8, bl9)) | 0),
- (mid = (mid + Math.imul(al8, bh9)) | 0),
- (mid = (mid + Math.imul(ah8, bl9)) | 0),
- (hi = (hi + Math.imul(ah8, bh9)) | 0);
- var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- (c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0),
- (w17 &= 67108863),
- (lo = Math.imul(al9, bl9)),
- (mid = Math.imul(al9, bh9)),
- (mid = (mid + Math.imul(ah9, bl9)) | 0),
- (hi = Math.imul(ah9, bh9));
- var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0;
- return (
- (c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0),
- (w18 &= 67108863),
- (o[0] = w0),
- (o[1] = w1),
- (o[2] = w2),
- (o[3] = w3),
- (o[4] = w4),
- (o[5] = w5),
- (o[6] = w6),
- (o[7] = w7),
- (o[8] = w8),
- (o[9] = w9),
- (o[10] = w10),
- (o[11] = w11),
- (o[12] = w12),
- (o[13] = w13),
- (o[14] = w14),
- (o[15] = w15),
- (o[16] = w16),
- (o[17] = w17),
- (o[18] = w18),
- c !== 0 && ((o[19] = c), out.length++),
- out
- );
- };
- Math.imul || (comb10MulTo = smallMulTo);
- function bigMulTo(self2, num, out) {
- (out.negative = num.negative ^ self2.negative), (out.length = self2.length + num.length);
- for (var carry = 0, hncarry = 0, k = 0; k < out.length - 1; k++) {
- var ncarry = hncarry;
- hncarry = 0;
- for (
- var rword = carry & 67108863, maxJ = Math.min(k, num.length - 1), j = Math.max(0, k - self2.length + 1);
- j <= maxJ;
- j++
- ) {
- var i = k - j,
- a = self2.words[i] | 0,
- b = num.words[j] | 0,
- r = a * b,
- lo = r & 67108863;
- (ncarry = (ncarry + ((r / 67108864) | 0)) | 0),
- (lo = (lo + rword) | 0),
- (rword = lo & 67108863),
- (ncarry = (ncarry + (lo >>> 26)) | 0),
- (hncarry += ncarry >>> 26),
- (ncarry &= 67108863);
- }
- (out.words[k] = rword), (carry = ncarry), (ncarry = hncarry);
- }
- return carry !== 0 ? (out.words[k] = carry) : out.length--, out.strip();
- }
- function jumboMulTo(self2, num, out) {
- var fftm = new FFTM();
- return fftm.mulp(self2, num, out);
- }
- BN.prototype.mulTo = function (num, out) {
- var res,
- len = this.length + num.length;
- return (
- this.length === 10 && num.length === 10
- ? (res = comb10MulTo(this, num, out))
- : len < 63
- ? (res = smallMulTo(this, num, out))
- : len < 1024
- ? (res = bigMulTo(this, num, out))
- : (res = jumboMulTo(this, num, out)),
- res
- );
- };
- function FFTM(x, y) {
- (this.x = x), (this.y = y);
- }
- (FFTM.prototype.makeRBT = function (N) {
- for (var t = new Array(N), l = BN.prototype._countBits(N) - 1, i = 0; i < N; i++) t[i] = this.revBin(i, l, N);
- return t;
- }),
- (FFTM.prototype.revBin = function (x, l, N) {
- if (x === 0 || x === N - 1) return x;
- for (var rb = 0, i = 0; i < l; i++) (rb |= (x & 1) << (l - i - 1)), (x >>= 1);
- return rb;
- }),
- (FFTM.prototype.permute = function (rbt, rws, iws, rtws, itws, N) {
- for (var i = 0; i < N; i++) (rtws[i] = rws[rbt[i]]), (itws[i] = iws[rbt[i]]);
- }),
- (FFTM.prototype.transform = function (rws, iws, rtws, itws, N, rbt) {
- this.permute(rbt, rws, iws, rtws, itws, N);
- for (var s = 1; s < N; s <<= 1)
- for (
- var l = s << 1, rtwdf = Math.cos((2 * Math.PI) / l), itwdf = Math.sin((2 * Math.PI) / l), p = 0;
- p < N;
- p += l
- )
- for (var rtwdf_ = rtwdf, itwdf_ = itwdf, j = 0; j < s; j++) {
- var re = rtws[p + j],
- ie = itws[p + j],
- ro = rtws[p + j + s],
- io = itws[p + j + s],
- rx = rtwdf_ * ro - itwdf_ * io;
- (io = rtwdf_ * io + itwdf_ * ro),
- (ro = rx),
- (rtws[p + j] = re + ro),
- (itws[p + j] = ie + io),
- (rtws[p + j + s] = re - ro),
- (itws[p + j + s] = ie - io),
- j !== l &&
- ((rx = rtwdf * rtwdf_ - itwdf * itwdf_), (itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_), (rtwdf_ = rx));
- }
- }),
- (FFTM.prototype.guessLen13b = function (n, m) {
- var N = Math.max(m, n) | 1,
- odd = N & 1,
- i = 0;
- for (N = (N / 2) | 0; N; N = N >>> 1) i++;
- return 1 << (i + 1 + odd);
- }),
- (FFTM.prototype.conjugate = function (rws, iws, N) {
- if (!(N <= 1))
- for (var i = 0; i < N / 2; i++) {
- var t = rws[i];
- (rws[i] = rws[N - i - 1]),
- (rws[N - i - 1] = t),
- (t = iws[i]),
- (iws[i] = -iws[N - i - 1]),
- (iws[N - i - 1] = -t);
- }
- }),
- (FFTM.prototype.normalize13b = function (ws, N) {
- for (var carry = 0, i = 0; i < N / 2; i++) {
- var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
- (ws[i] = w & 67108863), w < 67108864 ? (carry = 0) : (carry = (w / 67108864) | 0);
- }
- return ws;
- }),
- (FFTM.prototype.convert13b = function (ws, len, rws, N) {
- for (var carry = 0, i = 0; i < len; i++)
- (carry = carry + (ws[i] | 0)),
- (rws[2 * i] = carry & 8191),
- (carry = carry >>> 13),
- (rws[2 * i + 1] = carry & 8191),
- (carry = carry >>> 13);
- for (i = 2 * len; i < N; ++i) rws[i] = 0;
- assert(carry === 0), assert((carry & -8192) === 0);
- }),
- (FFTM.prototype.stub = function (N) {
- for (var ph = new Array(N), i = 0; i < N; i++) ph[i] = 0;
- return ph;
- }),
- (FFTM.prototype.mulp = function (x, y, out) {
- var N = 2 * this.guessLen13b(x.length, y.length),
- rbt = this.makeRBT(N),
- _ = this.stub(N),
- rws = new Array(N),
- rwst = new Array(N),
- iwst = new Array(N),
- nrws = new Array(N),
- nrwst = new Array(N),
- niwst = new Array(N),
- rmws = out.words;
- (rmws.length = N),
- this.convert13b(x.words, x.length, rws, N),
- this.convert13b(y.words, y.length, nrws, N),
- this.transform(rws, _, rwst, iwst, N, rbt),
- this.transform(nrws, _, nrwst, niwst, N, rbt);
- for (var i = 0; i < N; i++) {
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
- (iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]), (rwst[i] = rx);
- }
- return (
- this.conjugate(rwst, iwst, N),
- this.transform(rwst, iwst, rmws, _, N, rbt),
- this.conjugate(rmws, _, N),
- this.normalize13b(rmws, N),
- (out.negative = x.negative ^ y.negative),
- (out.length = x.length + y.length),
- out.strip()
- );
- }),
- (BN.prototype.mul = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), this.mulTo(num, out);
- }),
- (BN.prototype.mulf = function (num) {
- var out = new BN(null);
- return (out.words = new Array(this.length + num.length)), jumboMulTo(this, num, out);
- }),
- (BN.prototype.imul = function (num) {
- return this.clone().mulTo(num, this);
- }),
- (BN.prototype.imuln = function (num) {
- assert(typeof num == "number"), assert(num < 67108864);
- for (var carry = 0, i = 0; i < this.length; i++) {
- var w = (this.words[i] | 0) * num,
- lo = (w & 67108863) + (carry & 67108863);
- (carry >>= 26), (carry += (w / 67108864) | 0), (carry += lo >>> 26), (this.words[i] = lo & 67108863);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.muln = function (num) {
- return this.clone().imuln(num);
- }),
- (BN.prototype.sqr = function () {
- return this.mul(this);
- }),
- (BN.prototype.isqr = function () {
- return this.imul(this.clone());
- }),
- (BN.prototype.pow = function (num) {
- var w = toBitArray(num);
- if (w.length === 0) return new BN(1);
- for (var res = this, i = 0; i < w.length && w[i] === 0; i++, res = res.sqr());
- if (++i < w.length) for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) w[i] !== 0 && (res = res.mul(q));
- return res;
- }),
- (BN.prototype.iushln = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26,
- carryMask = (67108863 >>> (26 - r)) << (26 - r),
- i;
- if (r !== 0) {
- var carry = 0;
- for (i = 0; i < this.length; i++) {
- var newCarry = this.words[i] & carryMask,
- c = ((this.words[i] | 0) - newCarry) << r;
- (this.words[i] = c | carry), (carry = newCarry >>> (26 - r));
- }
- carry && ((this.words[i] = carry), this.length++);
- }
- if (s !== 0) {
- for (i = this.length - 1; i >= 0; i--) this.words[i + s] = this.words[i];
- for (i = 0; i < s; i++) this.words[i] = 0;
- this.length += s;
- }
- return this.strip();
- }),
- (BN.prototype.ishln = function (bits) {
- return assert(this.negative === 0), this.iushln(bits);
- }),
- (BN.prototype.iushrn = function (bits, hint, extended) {
- assert(typeof bits == "number" && bits >= 0);
- var h;
- hint ? (h = (hint - (hint % 26)) / 26) : (h = 0);
- var r = bits % 26,
- s = Math.min((bits - r) / 26, this.length),
- mask = 67108863 ^ ((67108863 >>> r) << r),
- maskedWords = extended;
- if (((h -= s), (h = Math.max(0, h)), maskedWords)) {
- for (var i = 0; i < s; i++) maskedWords.words[i] = this.words[i];
- maskedWords.length = s;
- }
- if (s !== 0)
- if (this.length > s) for (this.length -= s, i = 0; i < this.length; i++) this.words[i] = this.words[i + s];
- else (this.words[0] = 0), (this.length = 1);
- var carry = 0;
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
- var word = this.words[i] | 0;
- (this.words[i] = (carry << (26 - r)) | (word >>> r)), (carry = word & mask);
- }
- return (
- maskedWords && carry !== 0 && (maskedWords.words[maskedWords.length++] = carry),
- this.length === 0 && ((this.words[0] = 0), (this.length = 1)),
- this.strip()
- );
- }),
- (BN.prototype.ishrn = function (bits, hint, extended) {
- return assert(this.negative === 0), this.iushrn(bits, hint, extended);
- }),
- (BN.prototype.shln = function (bits) {
- return this.clone().ishln(bits);
- }),
- (BN.prototype.ushln = function (bits) {
- return this.clone().iushln(bits);
- }),
- (BN.prototype.shrn = function (bits) {
- return this.clone().ishrn(bits);
- }),
- (BN.prototype.ushrn = function (bits) {
- return this.clone().iushrn(bits);
- }),
- (BN.prototype.testn = function (bit) {
- assert(typeof bit == "number" && bit >= 0);
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return !1;
- var w = this.words[s];
- return !!(w & q);
- }),
- (BN.prototype.imaskn = function (bits) {
- assert(typeof bits == "number" && bits >= 0);
- var r = bits % 26,
- s = (bits - r) / 26;
- if ((assert(this.negative === 0, "imaskn works only with positive numbers"), this.length <= s)) return this;
- if ((r !== 0 && s++, (this.length = Math.min(s, this.length)), r !== 0)) {
- var mask = 67108863 ^ ((67108863 >>> r) << r);
- this.words[this.length - 1] &= mask;
- }
- return this.strip();
- }),
- (BN.prototype.maskn = function (bits) {
- return this.clone().imaskn(bits);
- }),
- (BN.prototype.iaddn = function (num) {
- return (
- assert(typeof num == "number"),
- assert(num < 67108864),
- num < 0
- ? this.isubn(-num)
- : this.negative !== 0
- ? this.length === 1 && (this.words[0] | 0) < num
- ? ((this.words[0] = num - (this.words[0] | 0)), (this.negative = 0), this)
- : ((this.negative = 0), this.isubn(num), (this.negative = 1), this)
- : this._iaddn(num)
- );
- }),
- (BN.prototype._iaddn = function (num) {
- this.words[0] += num;
- for (var i = 0; i < this.length && this.words[i] >= 67108864; i++)
- (this.words[i] -= 67108864), i === this.length - 1 ? (this.words[i + 1] = 1) : this.words[i + 1]++;
- return (this.length = Math.max(this.length, i + 1)), this;
- }),
- (BN.prototype.isubn = function (num) {
- if ((assert(typeof num == "number"), assert(num < 67108864), num < 0)) return this.iaddn(-num);
- if (this.negative !== 0) return (this.negative = 0), this.iaddn(num), (this.negative = 1), this;
- if (((this.words[0] -= num), this.length === 1 && this.words[0] < 0))
- (this.words[0] = -this.words[0]), (this.negative = 1);
- else
- for (var i = 0; i < this.length && this.words[i] < 0; i++)
- (this.words[i] += 67108864), (this.words[i + 1] -= 1);
- return this.strip();
- }),
- (BN.prototype.addn = function (num) {
- return this.clone().iaddn(num);
- }),
- (BN.prototype.subn = function (num) {
- return this.clone().isubn(num);
- }),
- (BN.prototype.iabs = function () {
- return (this.negative = 0), this;
- }),
- (BN.prototype.abs = function () {
- return this.clone().iabs();
- }),
- (BN.prototype._ishlnsubmul = function (num, mul, shift) {
- var len = num.length + shift,
- i;
- this._expand(len);
- var w,
- carry = 0;
- for (i = 0; i < num.length; i++) {
- w = (this.words[i + shift] | 0) + carry;
- var right = (num.words[i] | 0) * mul;
- (w -= right & 67108863),
- (carry = (w >> 26) - ((right / 67108864) | 0)),
- (this.words[i + shift] = w & 67108863);
- }
- for (; i < this.length - shift; i++)
- (w = (this.words[i + shift] | 0) + carry), (carry = w >> 26), (this.words[i + shift] = w & 67108863);
- if (carry === 0) return this.strip();
- for (assert(carry === -1), carry = 0, i = 0; i < this.length; i++)
- (w = -(this.words[i] | 0) + carry), (carry = w >> 26), (this.words[i] = w & 67108863);
- return (this.negative = 1), this.strip();
- }),
- (BN.prototype._wordDiv = function (num, mode) {
- var shift = this.length - num.length,
- a = this.clone(),
- b = num,
- bhi = b.words[b.length - 1] | 0,
- bhiBits = this._countBits(bhi);
- (shift = 26 - bhiBits),
- shift !== 0 && ((b = b.ushln(shift)), a.iushln(shift), (bhi = b.words[b.length - 1] | 0));
- var m = a.length - b.length,
- q;
- if (mode !== "mod") {
- (q = new BN(null)), (q.length = m + 1), (q.words = new Array(q.length));
- for (var i = 0; i < q.length; i++) q.words[i] = 0;
- }
- var diff = a.clone()._ishlnsubmul(b, 1, m);
- diff.negative === 0 && ((a = diff), q && (q.words[m] = 1));
- for (var j = m - 1; j >= 0; j--) {
- var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
- for (qj = Math.min((qj / bhi) | 0, 67108863), a._ishlnsubmul(b, qj, j); a.negative !== 0; )
- qj--, (a.negative = 0), a._ishlnsubmul(b, 1, j), a.isZero() || (a.negative ^= 1);
- q && (q.words[j] = qj);
- }
- return (
- q && q.strip(),
- a.strip(),
- mode !== "div" && shift !== 0 && a.iushrn(shift),
- {
- div: q || null,
- mod: a,
- }
- );
- }),
- (BN.prototype.divmod = function (num, mode, positive) {
- if ((assert(!num.isZero()), this.isZero()))
- return {
- div: new BN(0),
- mod: new BN(0),
- };
- var div, mod, res;
- return this.negative !== 0 && num.negative === 0
- ? ((res = this.neg().divmod(num, mode)),
- mode !== "mod" && (div = res.div.neg()),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.iadd(num)),
- {
- div,
- mod,
- })
- : this.negative === 0 && num.negative !== 0
- ? ((res = this.divmod(num.neg(), mode)),
- mode !== "mod" && (div = res.div.neg()),
- {
- div,
- mod: res.mod,
- })
- : (this.negative & num.negative) !== 0
- ? ((res = this.neg().divmod(num.neg(), mode)),
- mode !== "div" && ((mod = res.mod.neg()), positive && mod.negative !== 0 && mod.isub(num)),
- {
- div: res.div,
- mod,
- })
- : num.length > this.length || this.cmp(num) < 0
- ? {
- div: new BN(0),
- mod: this,
- }
- : num.length === 1
- ? mode === "div"
- ? {
- div: this.divn(num.words[0]),
- mod: null,
- }
- : mode === "mod"
- ? {
- div: null,
- mod: new BN(this.modn(num.words[0])),
- }
- : {
- div: this.divn(num.words[0]),
- mod: new BN(this.modn(num.words[0])),
- }
- : this._wordDiv(num, mode);
- }),
- (BN.prototype.div = function (num) {
- return this.divmod(num, "div", !1).div;
- }),
- (BN.prototype.mod = function (num) {
- return this.divmod(num, "mod", !1).mod;
- }),
- (BN.prototype.umod = function (num) {
- return this.divmod(num, "mod", !0).mod;
- }),
- (BN.prototype.divRound = function (num) {
- var dm = this.divmod(num);
- if (dm.mod.isZero()) return dm.div;
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod,
- half = num.ushrn(1),
- r2 = num.andln(1),
- cmp = mod.cmp(half);
- return cmp < 0 || (r2 === 1 && cmp === 0)
- ? dm.div
- : dm.div.negative !== 0
- ? dm.div.isubn(1)
- : dm.div.iaddn(1);
- }),
- (BN.prototype.modn = function (num) {
- assert(num <= 67108863);
- for (var p = (1 << 26) % num, acc = 0, i = this.length - 1; i >= 0; i--)
- acc = (p * acc + (this.words[i] | 0)) % num;
- return acc;
- }),
- (BN.prototype.idivn = function (num) {
- assert(num <= 67108863);
- for (var carry = 0, i = this.length - 1; i >= 0; i--) {
- var w = (this.words[i] | 0) + carry * 67108864;
- (this.words[i] = (w / num) | 0), (carry = w % num);
- }
- return this.strip();
- }),
- (BN.prototype.divn = function (num) {
- return this.clone().idivn(num);
- }),
- (BN.prototype.egcd = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var x = this,
- y = p.clone();
- x.negative !== 0 ? (x = x.umod(p)) : (x = x.clone());
- for (var A = new BN(1), B = new BN(0), C = new BN(0), D = new BN(1), g = 0; x.isEven() && y.isEven(); )
- x.iushrn(1), y.iushrn(1), ++g;
- for (var yp = y.clone(), xp = x.clone(); !x.isZero(); ) {
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0)
- for (x.iushrn(i); i-- > 0; )
- (A.isOdd() || B.isOdd()) && (A.iadd(yp), B.isub(xp)), A.iushrn(1), B.iushrn(1);
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0)
- for (y.iushrn(j); j-- > 0; )
- (C.isOdd() || D.isOdd()) && (C.iadd(yp), D.isub(xp)), C.iushrn(1), D.iushrn(1);
- x.cmp(y) >= 0 ? (x.isub(y), A.isub(C), B.isub(D)) : (y.isub(x), C.isub(A), D.isub(B));
- }
- return {
- a: C,
- b: D,
- gcd: y.iushln(g),
- };
- }),
- (BN.prototype._invmp = function (p) {
- assert(p.negative === 0), assert(!p.isZero());
- var a = this,
- b = p.clone();
- a.negative !== 0 ? (a = a.umod(p)) : (a = a.clone());
- for (var x1 = new BN(1), x2 = new BN(0), delta = b.clone(); a.cmpn(1) > 0 && b.cmpn(1) > 0; ) {
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
- if (i > 0) for (a.iushrn(i); i-- > 0; ) x1.isOdd() && x1.iadd(delta), x1.iushrn(1);
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
- if (j > 0) for (b.iushrn(j); j-- > 0; ) x2.isOdd() && x2.iadd(delta), x2.iushrn(1);
- a.cmp(b) >= 0 ? (a.isub(b), x1.isub(x2)) : (b.isub(a), x2.isub(x1));
- }
- var res;
- return a.cmpn(1) === 0 ? (res = x1) : (res = x2), res.cmpn(0) < 0 && res.iadd(p), res;
- }),
- (BN.prototype.gcd = function (num) {
- if (this.isZero()) return num.abs();
- if (num.isZero()) return this.abs();
- var a = this.clone(),
- b = num.clone();
- (a.negative = 0), (b.negative = 0);
- for (var shift = 0; a.isEven() && b.isEven(); shift++) a.iushrn(1), b.iushrn(1);
- do {
- for (; a.isEven(); ) a.iushrn(1);
- for (; b.isEven(); ) b.iushrn(1);
- var r = a.cmp(b);
- if (r < 0) {
- var t = a;
- (a = b), (b = t);
- } else if (r === 0 || b.cmpn(1) === 0) break;
- a.isub(b);
- } while (!0);
- return b.iushln(shift);
- }),
- (BN.prototype.invm = function (num) {
- return this.egcd(num).a.umod(num);
- }),
- (BN.prototype.isEven = function () {
- return (this.words[0] & 1) === 0;
- }),
- (BN.prototype.isOdd = function () {
- return (this.words[0] & 1) === 1;
- }),
- (BN.prototype.andln = function (num) {
- return this.words[0] & num;
- }),
- (BN.prototype.bincn = function (bit) {
- assert(typeof bit == "number");
- var r = bit % 26,
- s = (bit - r) / 26,
- q = 1 << r;
- if (this.length <= s) return this._expand(s + 1), (this.words[s] |= q), this;
- for (var carry = q, i = s; carry !== 0 && i < this.length; i++) {
- var w = this.words[i] | 0;
- (w += carry), (carry = w >>> 26), (w &= 67108863), (this.words[i] = w);
- }
- return carry !== 0 && ((this.words[i] = carry), this.length++), this;
- }),
- (BN.prototype.isZero = function () {
- return this.length === 1 && this.words[0] === 0;
- }),
- (BN.prototype.cmpn = function (num) {
- var negative = num < 0;
- if (this.negative !== 0 && !negative) return -1;
- if (this.negative === 0 && negative) return 1;
- this.strip();
- var res;
- if (this.length > 1) res = 1;
- else {
- negative && (num = -num), assert(num <= 67108863, "Number is too big");
- var w = this.words[0] | 0;
- res = w === num ? 0 : w < num ? -1 : 1;
- }
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.cmp = function (num) {
- if (this.negative !== 0 && num.negative === 0) return -1;
- if (this.negative === 0 && num.negative !== 0) return 1;
- var res = this.ucmp(num);
- return this.negative !== 0 ? -res | 0 : res;
- }),
- (BN.prototype.ucmp = function (num) {
- if (this.length > num.length) return 1;
- if (this.length < num.length) return -1;
- for (var res = 0, i = this.length - 1; i >= 0; i--) {
- var a = this.words[i] | 0,
- b = num.words[i] | 0;
- if (a !== b) {
- a < b ? (res = -1) : a > b && (res = 1);
- break;
- }
- }
- return res;
- }),
- (BN.prototype.gtn = function (num) {
- return this.cmpn(num) === 1;
- }),
- (BN.prototype.gt = function (num) {
- return this.cmp(num) === 1;
- }),
- (BN.prototype.gten = function (num) {
- return this.cmpn(num) >= 0;
- }),
- (BN.prototype.gte = function (num) {
- return this.cmp(num) >= 0;
- }),
- (BN.prototype.ltn = function (num) {
- return this.cmpn(num) === -1;
- }),
- (BN.prototype.lt = function (num) {
- return this.cmp(num) === -1;
- }),
- (BN.prototype.lten = function (num) {
- return this.cmpn(num) <= 0;
- }),
- (BN.prototype.lte = function (num) {
- return this.cmp(num) <= 0;
- }),
- (BN.prototype.eqn = function (num) {
- return this.cmpn(num) === 0;
- }),
- (BN.prototype.eq = function (num) {
- return this.cmp(num) === 0;
- }),
- (BN.red = function (num) {
- return new Red(num);
- }),
- (BN.prototype.toRed = function (ctx) {
- return (
- assert(!this.red, "Already a number in reduction context"),
- assert(this.negative === 0, "red works only with positives"),
- ctx.convertTo(this)._forceRed(ctx)
- );
- }),
- (BN.prototype.fromRed = function () {
- return assert(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this);
- }),
- (BN.prototype._forceRed = function (ctx) {
- return (this.red = ctx), this;
- }),
- (BN.prototype.forceRed = function (ctx) {
- return assert(!this.red, "Already a number in reduction context"), this._forceRed(ctx);
- }),
- (BN.prototype.redAdd = function (num) {
- return assert(this.red, "redAdd works only with red numbers"), this.red.add(this, num);
- }),
- (BN.prototype.redIAdd = function (num) {
- return assert(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, num);
- }),
- (BN.prototype.redSub = function (num) {
- return assert(this.red, "redSub works only with red numbers"), this.red.sub(this, num);
- }),
- (BN.prototype.redISub = function (num) {
- return assert(this.red, "redISub works only with red numbers"), this.red.isub(this, num);
- }),
- (BN.prototype.redShl = function (num) {
- return assert(this.red, "redShl works only with red numbers"), this.red.shl(this, num);
- }),
- (BN.prototype.redMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.mul(this, num)
- );
- }),
- (BN.prototype.redIMul = function (num) {
- return (
- assert(this.red, "redMul works only with red numbers"),
- this.red._verify2(this, num),
- this.red.imul(this, num)
- );
- }),
- (BN.prototype.redSqr = function () {
- return assert(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this);
- }),
- (BN.prototype.redISqr = function () {
- return assert(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this);
- }),
- (BN.prototype.redSqrt = function () {
- return assert(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this);
- }),
- (BN.prototype.redInvm = function () {
- return assert(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this);
- }),
- (BN.prototype.redNeg = function () {
- return assert(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this);
- }),
- (BN.prototype.redPow = function (num) {
- return assert(this.red && !num.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, num);
- });
- var primes = {
- k256: null,
- p224: null,
- p192: null,
- p25519: null,
- };
- function MPrime(name, p) {
- (this.name = name),
- (this.p = new BN(p, 16)),
- (this.n = this.p.bitLength()),
- (this.k = new BN(1).iushln(this.n).isub(this.p)),
- (this.tmp = this._tmp());
- }
- (MPrime.prototype._tmp = function () {
- var tmp = new BN(null);
- return (tmp.words = new Array(Math.ceil(this.n / 13))), tmp;
- }),
- (MPrime.prototype.ireduce = function (num) {
- var r = num,
- rlen;
- do this.split(r, this.tmp), (r = this.imulK(r)), (r = r.iadd(this.tmp)), (rlen = r.bitLength());
- while (rlen > this.n);
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
- return (
- cmp === 0
- ? ((r.words[0] = 0), (r.length = 1))
- : cmp > 0
- ? r.isub(this.p)
- : r.strip !== void 0
- ? r.strip()
- : r._strip(),
- r
- );
- }),
- (MPrime.prototype.split = function (input, out) {
- input.iushrn(this.n, 0, out);
- }),
- (MPrime.prototype.imulK = function (num) {
- return num.imul(this.k);
- });
- function K256() {
- MPrime.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f");
- }
- inherits(K256, MPrime),
- (K256.prototype.split = function (input, output) {
- for (var mask = 4194303, outLen = Math.min(input.length, 9), i = 0; i < outLen; i++)
- output.words[i] = input.words[i];
- if (((output.length = outLen), input.length <= 9)) {
- (input.words[0] = 0), (input.length = 1);
- return;
- }
- var prev = input.words[9];
- for (output.words[output.length++] = prev & mask, i = 10; i < input.length; i++) {
- var next = input.words[i] | 0;
- (input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22)), (prev = next);
- }
- (prev >>>= 22),
- (input.words[i - 10] = prev),
- prev === 0 && input.length > 10 ? (input.length -= 10) : (input.length -= 9);
- }),
- (K256.prototype.imulK = function (num) {
- (num.words[num.length] = 0), (num.words[num.length + 1] = 0), (num.length += 2);
- for (var lo = 0, i = 0; i < num.length; i++) {
- var w = num.words[i] | 0;
- (lo += w * 977), (num.words[i] = lo & 67108863), (lo = w * 64 + ((lo / 67108864) | 0));
- }
- return (
- num.words[num.length - 1] === 0 && (num.length--, num.words[num.length - 1] === 0 && num.length--), num
- );
- });
- function P224() {
- MPrime.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001");
- }
- inherits(P224, MPrime);
- function P192() {
- MPrime.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff");
- }
- inherits(P192, MPrime);
- function P25519() {
- MPrime.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed");
- }
- inherits(P25519, MPrime),
- (P25519.prototype.imulK = function (num) {
- for (var carry = 0, i = 0; i < num.length; i++) {
- var hi = (num.words[i] | 0) * 19 + carry,
- lo = hi & 67108863;
- (hi >>>= 26), (num.words[i] = lo), (carry = hi);
- }
- return carry !== 0 && (num.words[num.length++] = carry), num;
- }),
- (BN._prime = function (name) {
- if (primes[name]) return primes[name];
- var prime2;
- if (name === "k256") prime2 = new K256();
- else if (name === "p224") prime2 = new P224();
- else if (name === "p192") prime2 = new P192();
- else if (name === "p25519") prime2 = new P25519();
- else throw new Error("Unknown prime " + name);
- return (primes[name] = prime2), prime2;
- });
- function Red(m) {
- if (typeof m == "string") {
- var prime = BN._prime(m);
- (this.m = prime.p), (this.prime = prime);
- } else assert(m.gtn(1), "modulus must be greater than 1"), (this.m = m), (this.prime = null);
- }
- (Red.prototype._verify1 = function (a) {
- assert(a.negative === 0, "red works only with positives"), assert(a.red, "red works only with red numbers");
- }),
- (Red.prototype._verify2 = function (a, b) {
- assert((a.negative | b.negative) === 0, "red works only with positives"),
- assert(a.red && a.red === b.red, "red works only with red numbers");
- }),
- (Red.prototype.imod = function (a) {
- return this.prime ? this.prime.ireduce(a)._forceRed(this) : a.umod(this.m)._forceRed(this);
- }),
- (Red.prototype.neg = function (a) {
- return a.isZero() ? a.clone() : this.m.sub(a)._forceRed(this);
- }),
- (Red.prototype.add = function (a, b) {
- this._verify2(a, b);
- var res = a.add(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res._forceRed(this);
- }),
- (Red.prototype.iadd = function (a, b) {
- this._verify2(a, b);
- var res = a.iadd(b);
- return res.cmp(this.m) >= 0 && res.isub(this.m), res;
- }),
- (Red.prototype.sub = function (a, b) {
- this._verify2(a, b);
- var res = a.sub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res._forceRed(this);
- }),
- (Red.prototype.isub = function (a, b) {
- this._verify2(a, b);
- var res = a.isub(b);
- return res.cmpn(0) < 0 && res.iadd(this.m), res;
- }),
- (Red.prototype.shl = function (a, num) {
- return this._verify1(a), this.imod(a.ushln(num));
- }),
- (Red.prototype.imul = function (a, b) {
- return this._verify2(a, b), this.imod(a.imul(b));
- }),
- (Red.prototype.mul = function (a, b) {
- return this._verify2(a, b), this.imod(a.mul(b));
- }),
- (Red.prototype.isqr = function (a) {
- return this.imul(a, a.clone());
- }),
- (Red.prototype.sqr = function (a) {
- return this.mul(a, a);
- }),
- (Red.prototype.sqrt = function (a) {
- if (a.isZero()) return a.clone();
- var mod3 = this.m.andln(3);
- if ((assert(mod3 % 2 === 1), mod3 === 3)) {
- var pow = this.m.add(new BN(1)).iushrn(2);
- return this.pow(a, pow);
- }
- for (var q = this.m.subn(1), s = 0; !q.isZero() && q.andln(1) === 0; ) s++, q.iushrn(1);
- assert(!q.isZero());
- var one = new BN(1).toRed(this),
- nOne = one.redNeg(),
- lpow = this.m.subn(1).iushrn(1),
- z = this.m.bitLength();
- for (z = new BN(2 * z * z).toRed(this); this.pow(z, lpow).cmp(nOne) !== 0; ) z.redIAdd(nOne);
- for (
- var c = this.pow(z, q), r = this.pow(a, q.addn(1).iushrn(1)), t = this.pow(a, q), m = s;
- t.cmp(one) !== 0;
-
- ) {
- for (var tmp = t, i = 0; tmp.cmp(one) !== 0; i++) tmp = tmp.redSqr();
- assert(i < m);
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
- (r = r.redMul(b)), (c = b.redSqr()), (t = t.redMul(c)), (m = i);
- }
- return r;
- }),
- (Red.prototype.invm = function (a) {
- var inv = a._invmp(this.m);
- return inv.negative !== 0 ? ((inv.negative = 0), this.imod(inv).redNeg()) : this.imod(inv);
- }),
- (Red.prototype.pow = function (a, num) {
- if (num.isZero()) return new BN(1).toRed(this);
- if (num.cmpn(1) === 0) return a.clone();
- var windowSize = 4,
- wnd = new Array(1 << windowSize);
- (wnd[0] = new BN(1).toRed(this)), (wnd[1] = a);
- for (var i = 2; i < wnd.length; i++) wnd[i] = this.mul(wnd[i - 1], a);
- var res = wnd[0],
- current = 0,
- currentLen = 0,
- start = num.bitLength() % 26;
- for (start === 0 && (start = 26), i = num.length - 1; i >= 0; i--) {
- for (var word = num.words[i], j = start - 1; j >= 0; j--) {
- var bit = (word >> j) & 1;
- if ((res !== wnd[0] && (res = this.sqr(res)), bit === 0 && current === 0)) {
- currentLen = 0;
- continue;
- }
- (current <<= 1),
- (current |= bit),
- currentLen++,
- !(currentLen !== windowSize && (i !== 0 || j !== 0)) &&
- ((res = this.mul(res, wnd[current])), (currentLen = 0), (current = 0));
- }
- start = 26;
- }
- return res;
- }),
- (Red.prototype.convertTo = function (num) {
- var r = num.umod(this.m);
- return r === num ? r.clone() : r;
- }),
- (Red.prototype.convertFrom = function (num) {
- var res = num.clone();
- return (res.red = null), res;
- }),
- (BN.mont = function (num) {
- return new Mont(num);
- });
- function Mont(m) {
- Red.call(this, m),
- (this.shift = this.m.bitLength()),
- this.shift % 26 !== 0 && (this.shift += 26 - (this.shift % 26)),
- (this.r = new BN(1).iushln(this.shift)),
- (this.r2 = this.imod(this.r.sqr())),
- (this.rinv = this.r._invmp(this.m)),
- (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)),
- (this.minv = this.minv.umod(this.r)),
- (this.minv = this.r.sub(this.minv));
- }
- inherits(Mont, Red),
- (Mont.prototype.convertTo = function (num) {
- return this.imod(num.ushln(this.shift));
- }),
- (Mont.prototype.convertFrom = function (num) {
- var r = this.imod(num.mul(this.rinv));
- return (r.red = null), r;
- }),
- (Mont.prototype.imul = function (a, b) {
- if (a.isZero() || b.isZero()) return (a.words[0] = 0), (a.length = 1), a;
- var t = a.imul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.mul = function (a, b) {
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
- var t = a.mul(b),
- c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),
- u = t.isub(c).iushrn(this.shift),
- res = u;
- return (
- u.cmp(this.m) >= 0 ? (res = u.isub(this.m)) : u.cmpn(0) < 0 && (res = u.iadd(this.m)), res._forceRed(this)
- );
- }),
- (Mont.prototype.invm = function (a) {
- var res = this.imod(a._invmp(this.m).mul(this.r2));
- return res._forceRed(this);
- });
- })(typeof module > "u" || module, exports);
- },
-});
-
-const { CryptoHasher } = globalThis.Bun;
-
-// node_modules/public-encrypt/withPublic.js
-var require_withPublic = __commonJS({
- "node_modules/public-encrypt/withPublic.js"(exports, module) {
- var BN = require_bn7(),
- Buffer2 = require_safe_buffer().Buffer;
- function withPublic(paddedMsg, key) {
- return Buffer2.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray());
- }
- module.exports = withPublic;
- },
-});
-
-// node_modules/public-encrypt/publicEncrypt.js
-var require_publicEncrypt = __commonJS({
- "node_modules/public-encrypt/publicEncrypt.js"(exports, module) {
- var parseKeys = require_parse_asn1(),
- randomBytes = require_browser(),
- createHash = require_browser2(),
- mgf = require_mgf(),
- xor = require_xor(),
- BN = require_bn7(),
- withPublic = require_withPublic(),
- crt = require_browserify_rsa(),
- Buffer2 = require_safe_buffer().Buffer;
- module.exports = function (publicKey, msg, reverse) {
- var padding;
- publicKey.padding ? (padding = publicKey.padding) : reverse ? (padding = 1) : (padding = 4);
- var key = parseKeys(publicKey),
- paddedMsg;
- if (padding === 4) paddedMsg = oaep(key, msg);
- else if (padding === 1) paddedMsg = pkcs1(key, msg, reverse);
- else if (padding === 3) {
- if (((paddedMsg = new BN(msg)), paddedMsg.cmp(key.modulus) >= 0)) throw new Error("data too long for modulus");
- } else throw new Error("unknown padding");
- return reverse ? crt(paddedMsg, key) : withPublic(paddedMsg, key);
- };
- function oaep(key, msg) {
- var k = key.modulus.byteLength(),
- mLen = msg.length,
- iHash = createHash("sha1").update(Buffer2.alloc(0)).digest(),
- hLen = iHash.length,
- hLen2 = 2 * hLen;
- if (mLen > k - hLen2 - 2) throw new Error("message too long");
- var ps = Buffer2.alloc(k - mLen - hLen2 - 2),
- dblen = k - hLen - 1,
- seed = randomBytes(hLen),
- maskedDb = xor(Buffer2.concat([iHash, ps, Buffer2.alloc(1, 1), msg], dblen), mgf(seed, dblen)),
- maskedSeed = xor(seed, mgf(maskedDb, hLen));
- return new BN(Buffer2.concat([Buffer2.alloc(1), maskedSeed, maskedDb], k));
- }
- function pkcs1(key, msg, reverse) {
- var mLen = msg.length,
- k = key.modulus.byteLength();
- if (mLen > k - 11) throw new Error("message too long");
- var ps;
- return (
- reverse ? (ps = Buffer2.alloc(k - mLen - 3, 255)) : (ps = nonZero(k - mLen - 3)),
- new BN(Buffer2.concat([Buffer2.from([0, reverse ? 1 : 2]), ps, Buffer2.alloc(1), msg], k))
- );
- }
- function nonZero(len) {
- for (var out = Buffer2.allocUnsafe(len), i = 0, cache = randomBytes(len * 2), cur = 0, num; i < len; )
- cur === cache.length && ((cache = randomBytes(len * 2)), (cur = 0)),
- (num = cache[cur++]),
- num && (out[i++] = num);
- return out;
- }
- },
-});
-
-// node_modules/public-encrypt/privateDecrypt.js
-var require_privateDecrypt = __commonJS({
- "node_modules/public-encrypt/privateDecrypt.js"(exports, module) {
- var parseKeys = require_parse_asn1(),
- mgf = require_mgf(),
- xor = require_xor(),
- BN = require_bn7(),
- crt = require_browserify_rsa(),
- createHash = require_browser2(),
- withPublic = require_withPublic(),
- Buffer2 = require_safe_buffer().Buffer;
- module.exports = function (privateKey, enc, reverse) {
- var padding;
- privateKey.padding ? (padding = privateKey.padding) : reverse ? (padding = 1) : (padding = 4);
- var key = parseKeys(privateKey),
- k = key.modulus.byteLength();
- if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) throw new Error("decryption error");
- var msg;
- reverse ? (msg = withPublic(new BN(enc), key)) : (msg = crt(enc, key));
- var zBuffer = Buffer2.alloc(k - msg.length);
- if (((msg = Buffer2.concat([zBuffer, msg], k)), padding === 4)) return oaep(key, msg);
- if (padding === 1) return pkcs1(key, msg, reverse);
- if (padding === 3) return msg;
- throw new Error("unknown padding");
- };
- function oaep(key, msg) {
- var k = key.modulus.byteLength(),
- iHash = createHash("sha1").update(Buffer2.alloc(0)).digest(),
- hLen = iHash.length;
- if (msg[0] !== 0) throw new Error("decryption error");
- var maskedSeed = msg.slice(1, hLen + 1),
- maskedDb = msg.slice(hLen + 1),
- seed = xor(maskedSeed, mgf(maskedDb, hLen)),
- db = xor(maskedDb, mgf(seed, k - hLen - 1));
- if (compare(iHash, db.slice(0, hLen))) throw new Error("decryption error");
- for (var i = hLen; db[i] === 0; ) i++;
- if (db[i++] !== 1) throw new Error("decryption error");
- return db.slice(i);
- }
- function pkcs1(key, msg, reverse) {
- for (var p1 = msg.slice(0, 2), i = 2, status = 0; msg[i++] !== 0; )
- if (i >= msg.length) {
- status++;
- break;
- }
- var ps = msg.slice(2, i - 1);
- if (
- (((p1.toString("hex") !== "0002" && !reverse) || (p1.toString("hex") !== "0001" && reverse)) && status++,
- ps.length < 8 && status++,
- status)
- )
- throw new Error("decryption error");
- return msg.slice(i);
- }
- function compare(a, b) {
- (a = Buffer2.from(a)), (b = Buffer2.from(b));
- var dif = 0,
- len = a.length;
- a.length !== b.length && (dif++, (len = Math.min(a.length, b.length)));
- for (var i = -1; ++i < len; ) dif += a[i] ^ b[i];
- return dif;
- }
- },
-});
-
-// node_modules/public-encrypt/browser.js
-var require_browser10 = __commonJS({
- "node_modules/public-encrypt/browser.js"(exports) {
- exports.publicEncrypt = require_publicEncrypt();
- exports.privateDecrypt = require_privateDecrypt();
- exports.privateEncrypt = function (key, buf) {
- return exports.publicEncrypt(key, buf, !0);
- };
- exports.publicDecrypt = function (key, buf) {
- return exports.privateDecrypt(key, buf, !0);
- };
- },
-});
-
-// node_modules/randomfill/browser.js
-var require_browser11 = __commonJS({
- "node_modules/randomfill/browser.js"(exports) {
- "use strict";
- var safeBuffer = require_safe_buffer(),
- randombytes = require_browser(),
- Buffer2 = safeBuffer.Buffer,
- kBufferMaxLength = safeBuffer.kMaxLength,
- kMaxUint32 = Math.pow(2, 32) - 1;
- function assertOffset(offset, length) {
- if (typeof offset != "number" || offset !== offset) throw new TypeError("offset must be a number");
- if (offset > kMaxUint32 || offset < 0) throw new TypeError("offset must be a uint32");
- if (offset > kBufferMaxLength || offset > length) throw new RangeError("offset out of range");
- }
- function assertSize(size, offset, length) {
- if (typeof size != "number" || size !== size) throw new TypeError("size must be a number");
- if (size > kMaxUint32 || size < 0) throw new TypeError("size must be a uint32");
- if (size + offset > length || size > kBufferMaxLength) throw new RangeError("buffer too small");
- }
-
- exports.randomFill = randomFill;
- exports.randomFillSync = randomFillSync;
-
- function randomFill(buf, offset, size, cb) {
- if (!Buffer2.isBuffer(buf) && !(buf instanceof global.Uint8Array))
- throw new TypeError('"buf" argument must be a Buffer or Uint8Array');
- if (typeof offset == "function") (cb = offset), (offset = 0), (size = buf.length);
- else if (typeof size == "function") (cb = size), (size = buf.length - offset);
- else if (typeof cb != "function") throw new TypeError('"cb" argument must be a function');
- return assertOffset(offset, buf.length), assertSize(size, offset, buf.length), actualFill(buf, offset, size, cb);
- }
- function actualFill(buf, offset, size, cb) {
- if (cb) {
- randombytes(size, function (err, bytes2) {
- if (err) return cb(err);
- bytes2.copy(buf, offset), cb(null, buf);
- });
- return;
- }
- var bytes = randombytes(size);
- return bytes.copy(buf, offset), buf;
- }
- function randomFillSync(buf, offset, size) {
- if ((typeof offset > "u" && (offset = 0), !Buffer2.isBuffer(buf) && !(buf instanceof global.Uint8Array)))
- throw new TypeError('"buf" argument must be a Buffer or Uint8Array');
- return (
- assertOffset(offset, buf.length),
- size === void 0 && (size = buf.length - offset),
- assertSize(size, offset, buf.length),
- actualFill(buf, offset, size)
- );
- }
- },
-});
-
-// node_modules/crypto-browserify/index.js
-var require_crypto_browserify2 = __commonJS({
- "node_modules/crypto-browserify/index.js"(exports) {
- "use strict";
- exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require_browser();
- exports.createHash = require_browser2();
- exports.Hash = exports.createHash.Hash;
- exports.createHmac = exports.Hmac = require_browser3();
- var algos = require_algos(),
- algoKeys = Object.keys(algos),
- hashes = ["sha1", "sha224", "sha256", "sha384", "sha512", "md5", "rmd160"].concat(algoKeys);
- exports.getHashes = function () {
- return hashes;
- };
- var p = require_browser4();
- exports.pbkdf2 = p.pbkdf2;
- exports.pbkdf2Sync = p.pbkdf2Sync;
- var aes = require_browser6();
- exports.Cipher = aes.Cipher;
- exports.createCipher = aes.createCipher;
- exports.Cipheriv = aes.Cipheriv;
- exports.createCipheriv = aes.createCipheriv;
- exports.Decipher = aes.Decipher;
- exports.createDecipher = aes.createDecipher;
- exports.Decipheriv = aes.Decipheriv;
- exports.createDecipheriv = aes.createDecipheriv;
- exports.getCiphers = aes.getCiphers;
- exports.listCiphers = aes.listCiphers;
- var dh = require_browser7();
- exports.DiffieHellmanGroup = dh.DiffieHellmanGroup;
- exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;
- exports.getDiffieHellman = dh.getDiffieHellman;
- exports.createDiffieHellman = dh.createDiffieHellman;
- exports.DiffieHellman = dh.DiffieHellman;
- var sign = require_browser8();
- exports.createSign = sign.createSign;
- exports.Sign = sign.Sign;
- exports.createVerify = sign.createVerify;
- exports.Verify = sign.Verify;
- exports.createECDH = require_browser9();
- var publicEncrypt = require_browser10();
- exports.publicEncrypt = publicEncrypt.publicEncrypt;
- exports.privateEncrypt = publicEncrypt.privateEncrypt;
- exports.publicDecrypt = publicEncrypt.publicDecrypt;
- exports.privateDecrypt = publicEncrypt.privateDecrypt;
- exports.getRandomValues = values => crypto.getRandomValues(values);
- var rf = require_browser11();
- exports.randomFill = rf.randomFill;
- exports.randomFillSync = rf.randomFillSync;
- exports.createCredentials = function () {
- throw new Error(
- [
- "sorry, createCredentials is not implemented yet",
- "we accept pull requests",
- "https://github.com/crypto-browserify/crypto-browserify",
- ].join(`
-`),
- );
- };
- exports.constants = {
- DH_CHECK_P_NOT_SAFE_PRIME: 2,
- DH_CHECK_P_NOT_PRIME: 1,
- DH_UNABLE_TO_CHECK_GENERATOR: 4,
- DH_NOT_SUITABLE_GENERATOR: 8,
- NPN_ENABLED: 1,
- ALPN_ENABLED: 1,
- RSA_PKCS1_PADDING: 1,
- RSA_SSLV23_PADDING: 2,
- RSA_NO_PADDING: 3,
- RSA_PKCS1_OAEP_PADDING: 4,
- RSA_X931_PADDING: 5,
- RSA_PKCS1_PSS_PADDING: 6,
- POINT_CONVERSION_COMPRESSED: 2,
- POINT_CONVERSION_UNCOMPRESSED: 4,
- POINT_CONVERSION_HYBRID: 6,
- };
- },
-});
-
-// crypto.js
-var crypto_exports = {
- ...require_crypto_browserify2(),
- [Symbol.for("CommonJS")]: 0,
-};
-var DEFAULT_ENCODING = "buffer",
- getRandomValues = array => crypto.getRandomValues(array),
- randomUUID = () => crypto.randomUUID(),
- timingSafeEqual =
- "timingSafeEqual" in crypto
- ? (a, b) => {
- let { byteLength: byteLengthA } = a,
- { byteLength: byteLengthB } = b;
- if (typeof byteLengthA != "number" || typeof byteLengthB != "number")
- throw new TypeError("Input must be an array buffer view");
- if (byteLengthA !== byteLengthB) throw new RangeError("Input buffers must have the same length");
- return crypto.timingSafeEqual(a, b);
- }
- : void 0,
- scryptSync =
- "scryptSync" in crypto
- ? (password, salt, keylen, options) => {
- let res = crypto.scryptSync(password, salt, keylen, options);
- return DEFAULT_ENCODING !== "buffer" ? new Buffer(res).toString(DEFAULT_ENCODING) : new Buffer(res);
- }
- : void 0,
- scrypt =
- "scryptSync" in crypto
- ? function (password, salt, keylen, options, callback) {
- if (
- (typeof options == "function" && ((callback = options), (options = void 0)), typeof callback != "function")
- ) {
- var err = new TypeError("callback must be a function");
- throw ((err.code = "ERR_INVALID_CALLBACK"), err);
- }
- try {
- let result = crypto.scryptSync(password, salt, keylen, options);
- process.nextTick(
- callback,
- null,
- DEFAULT_ENCODING !== "buffer" ? new Buffer(result).toString(DEFAULT_ENCODING) : new Buffer(result),
- );
- } catch (err2) {
- throw err2;
- }
- }
- : void 0;
-timingSafeEqual &&
- (Object.defineProperty(timingSafeEqual, "name", {
- value: "::bunternal::",
- }),
- Object.defineProperty(scrypt, "name", {
- value: "::bunternal::",
- }),
- Object.defineProperty(scryptSync, "name", {
- value: "::bunternal::",
- }));
-var webcrypto = crypto;
-__export(crypto_exports, {
- DEFAULT_ENCODING: () => DEFAULT_ENCODING,
- getRandomValues: () => getRandomValues,
- randomUUID: () => randomUUID,
- scrypt: () => scrypt,
- scryptSync: () => scryptSync,
- timingSafeEqual: () => timingSafeEqual,
- webcrypto: () => webcrypto,
- subtle: () => webcrypto.subtle,
-});
-
-export const {
- randomBytes,
- rng,
- pseudoRandomBytes,
- prng,
- Hash,
- createHash,
- createHmac,
- Hmac,
- getHashes,
- pbkdf2,
- pbkdf2Sync,
- Cipher,
- createCipher,
- Cipheriv,
- createCipheriv,
- Decipher,
- createDecipher,
- Decipheriv,
- createDecipheriv,
- getCiphers,
- listCiphers,
- DiffieHellmanGroup,
- createDiffieHellmanGroup,
- getDiffieHellman,
- createDiffieHellman,
- DiffieHellman,
- createSign,
- Sign,
- createVerify,
- Verify,
- createECDH,
- publicEncrypt,
- privateEncrypt,
- publicDecrypt,
- privateDecrypt,
- randomFill,
- randomFillSync,
- createCredentials,
- constants,
-} = crypto_exports;
-export { DEFAULT_ENCODING, getRandomValues, randomUUID, scrypt, scryptSync, timingSafeEqual, webcrypto };
-export default crypto_exports;
-/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
diff --git a/src/bun.js/depd.exports.js b/src/bun.js/depd.exports.js
deleted file mode 100644
index b76526c01..000000000
--- a/src/bun.js/depd.exports.js
+++ /dev/null
@@ -1,88 +0,0 @@
-// TODO: remove this module from being bundled into bun
-// This is a temporary workaround for a CommonJS <> ESM interop issue.
-
-/*!
- * depd
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __commonJS = (cb, mod) =>
- function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-var __copyProps = (to, from, except, desc) => {
- if ((from && typeof from === "object") || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, {
- get: () => from[key],
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
- });
- }
- return to;
-};
-var __toESM = (mod, isNodeMode, target) => (
- (target = mod != null ? __create(__getProtoOf(mod)) : {}),
- __copyProps(
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod,
- )
-);
-
-// node_modules/depd/lib/browser/index.js
-var require_browser = __commonJS({
- "node_modules/depd/lib/browser/index.js"(exports, module) {
- "use strict";
- module.exports = depd2;
- function depd2(namespace) {
- if (!namespace) {
- throw new TypeError("argument namespace is required");
- }
- function deprecate(message) {}
- deprecate._file = void 0;
- deprecate._ignored = true;
- deprecate._namespace = namespace;
- deprecate._traced = false;
- deprecate._warned = /* @__PURE__ */ Object.create(null);
- deprecate.function = wrapfunction;
- deprecate.property = wrapproperty;
- return deprecate;
- }
- function wrapfunction(fn, message) {
- if (typeof fn !== "function") {
- throw new TypeError("argument fn must be a function");
- }
- return fn;
- }
- function wrapproperty(obj, prop, message) {
- if (!obj || (typeof obj !== "object" && typeof obj !== "function")) {
- throw new TypeError("argument obj must be object");
- }
- var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
- if (!descriptor) {
- throw new TypeError("must call property on owner object");
- }
- if (!descriptor.configurable) {
- throw new TypeError("property must be configurable");
- }
- }
- },
-});
-
-// bundle.js
-var import_depd = __toESM(require_browser());
-var bundle_default = import_depd.default;
-
-function depd(...args) {
- return args.length ? bundle_default(...args) : bundle_default;
-}
-depd[Symbol.for("CommonJS")] = true; // TODO: this requires hacky default export
-
-export default depd;
diff --git a/src/bun.js/detect-libc.js b/src/bun.js/detect-libc.js
deleted file mode 100644
index 884385189..000000000
--- a/src/bun.js/detect-libc.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export function family() {
- return Promise.resolve(null);
-}
-
-export function familySync() {
- return null;
-}
-
-export const GLIBC = "glibc";
-export const MUSL = "musl";
-
-export function versionAsync() {
- return Promise.resolve(version());
-}
-
-export function version() {
- return null;
-}
-
-export function isNonGlibcLinuxSync() {
- return false;
-}
-
-export function isNonGlibcLinux() {
- return Promise.resolve(isNonGlibcLinuxSync());
-}
diff --git a/src/bun.js/detect-libc.linux.js b/src/bun.js/detect-libc.linux.js
deleted file mode 100644
index 3a46ffda0..000000000
--- a/src/bun.js/detect-libc.linux.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// bun only supports glibc at the time of writing
-export function family() {
- return Promise.resolve(GLIBC);
-}
-
-export function familySync() {
- return GLIBC;
-}
-
-export const GLIBC = "glibc";
-export const MUSL = "musl";
-
-export function versionAsync() {
- return Promise.resolve(version());
-}
-
-export function version() {
- return "2.29";
-}
-
-export function isNonGlibcLinuxSync() {
- return false;
-}
-
-export function isNonGlibcLinux() {
- return Promise.resolve(isNonGlibcLinuxSync());
-}
diff --git a/src/bun.js/dgram.exports.js b/src/bun.js/dgram.exports.js
deleted file mode 100644
index 65b531baa..000000000
--- a/src/bun.js/dgram.exports.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// This is a stub! None of this is actually implemented yet.
-
-function hideFromStack(fns) {
- for (const fn of fns) {
- Object.defineProperty(fn, "name", {
- value: "::bunternal::",
- });
- }
-}
-
-class TODO extends Error {
- constructor(messageName) {
- const message = messageName
- ? `node:dgram ${messageName} is not implemented yet in Bun. Track the status and thumbs up the issue: https://github.com/oven-sh/bun/issues/1630`
- : `node:dgram is not implemented yet in Bun. Track the status and thumbs up the issue: https://github.com/oven-sh/bun/issues/1630`;
- super(message);
- this.name = "TODO";
- }
-}
-
-function notimpl(message) {
- throw new TODO(message);
-}
-
-function createSocket() {
- notimpl("createSocket");
-}
-
-function Socket() {
- notimpl("Socket");
-}
-
-function _createSocketHandle() {
- notimpl("_createSocketHandle");
-}
-
-const defaultObject = {
- createSocket,
- Socket,
- _createSocketHandle,
- [Symbol.for("CommonJS")]: 0,
-};
-
-export { defaultObject as default, Socket, createSocket, _createSocketHandle };
-
-hideFromStack([TODO.prototype.constructor, notimpl, createSocket, Socket, _createSocketHandle]);
diff --git a/src/bun.js/diagnostics_channel.exports.js b/src/bun.js/diagnostics_channel.exports.js
deleted file mode 100644
index 732e8fb73..000000000
--- a/src/bun.js/diagnostics_channel.exports.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// This is a stub! None of this is actually implemented yet.
-
-function hideFromStack(fns) {
- for (const fn of fns) {
- Object.defineProperty(fn, "name", {
- value: "::bunternal::",
- });
- }
-}
-
-class TODO extends Error {
- constructor(messageName) {
- const message = messageName
- ? `node:diagnostics_channel ${messageName} is not implemented yet in Bun.`
- : `node:diagnostics_channel is not implemented yet in Bun.`;
- super(message);
- this.name = "TODO";
- }
-}
-
-function notimpl() {
- throw new TODO();
-}
-
-class Channel {
- constructor(name) {
- notimpl();
- }
-}
-
-function channel() {
- notimpl();
-}
-
-function hasSubscribers() {
- notimpl();
-}
-function subscribe() {
- notimpl();
-}
-
-function unsubscribe() {
- notimpl();
-}
-
-const defaultObject = {
- channel,
- hasSubscribers,
- subscribe,
- unsubscribe,
- Channel,
- [Symbol.for("CommonJS")]: 0,
-};
-
-export { defaultObject as default, Channel, channel, hasSubscribers, subscribe, unsubscribe };
-
-hideFromStack([TODO.prototype.constructor, notimpl, channel, hasSubscribers, subscribe, unsubscribe, Channel]);
diff --git a/src/bun.js/events.exports.js b/src/bun.js/events.exports.js
deleted file mode 100644
index 61cff17d6..000000000
--- a/src/bun.js/events.exports.js
+++ /dev/null
@@ -1,464 +0,0 @@
-// Reimplementation of https://nodejs.org/api/events.html
-// Reference: https://github.com/nodejs/node/blob/main/lib/events.js
-var { isPromise, Array, Object } = import.meta.primordials;
-const SymbolFor = Symbol.for;
-const ObjectDefineProperty = Object.defineProperty;
-const kCapture = Symbol("kCapture");
-const kErrorMonitor = SymbolFor("events.errorMonitor");
-const kMaxEventTargetListeners = Symbol("events.maxEventTargetListeners");
-const kMaxEventTargetListenersWarned = Symbol("events.maxEventTargetListenersWarned");
-const kWatermarkData = SymbolFor("nodejs.watermarkData");
-const kRejection = SymbolFor("nodejs.rejection");
-const captureRejectionSymbol = SymbolFor("nodejs.rejection");
-const ArrayPrototypeSlice = Array.prototype.slice;
-
-var defaultMaxListeners = 10;
-
-// EventEmitter must be a standard function because some old code will do weird tricks like `EventEmitter.apply(this)`.
-function EventEmitter(opts) {
- if (this._events === undefined || this._events === this.__proto__._events) {
- this._events = { __proto__: null };
- this._eventsCount = 0;
- }
-
- this._maxListeners ??= undefined;
- if ((this[kCapture] = opts?.captureRejections ? Boolean(opts?.captureRejections) : EventEmitterPrototype[kCapture])) {
- this.emit = emitWithRejectionCapture;
- }
-}
-const EventEmitterPrototype = EventEmitter.prototype;
-EventEmitterPrototype._events = undefined;
-EventEmitterPrototype._eventsCount = 0;
-EventEmitterPrototype._maxListeners = undefined;
-EventEmitterPrototype.setMaxListeners = function setMaxListeners(n) {
- validateNumber(n, "setMaxListeners", 0);
- this._maxListeners = n;
- return this;
-};
-
-EventEmitterPrototype.getMaxListeners = function getMaxListeners() {
- return this._maxListeners ?? defaultMaxListeners;
-};
-
-function emitError(emitter, args) {
- var { _events: events } = emitter;
- args[0] ??= new Error("Unhandled error.");
- if (!events) throw args[0];
- var errorMonitor = events[kErrorMonitor];
- if (errorMonitor) {
- for (var handler of ArrayPrototypeSlice.call(errorMonitor)) {
- handler.apply(emitter, args);
- }
- }
- var handlers = events.error;
- if (!handlers) throw args[0];
- for (var handler of ArrayPrototypeSlice.call(handlers)) {
- handler.apply(emitter, args);
- }
- return true;
-}
-
-function addCatch(emitter, promise, type, args) {
- promise.then(undefined, function (err) {
- // The callback is called with nextTick to avoid a follow-up rejection from this promise.
- process.nextTick(emitUnhandledRejectionOrErr, emitter, err, type, args);
- });
-}
-
-function emitUnhandledRejectionOrErr(emitter, err, type, args) {
- if (typeof emitter[kRejection] === "function") {
- emitter[kRejection](err, type, ...args);
- } else {
- // If the error handler throws, it is not catchable and it will end up in 'uncaughtException'.
- // We restore the previous value of kCapture in case the uncaughtException is present
- // and the exception is handled.
- try {
- emitter[kCapture] = false;
- emitter.emit("error", err);
- } finally {
- emitter[kCapture] = true;
- }
- }
-}
-
-const emitWithoutRejectionCapture = function emit(type, ...args) {
- if (type === "error") {
- return emitError(this, args);
- }
- var { _events: events } = this;
- if (events === undefined) return false;
- var handlers = events[type];
- if (handlers === undefined) return false;
-
- for (var handler of [...handlers]) {
- handler.apply(this, args);
- }
- return true;
-};
-
-const emitWithRejectionCapture = function emit(type, ...args) {
- if (type === "error") {
- return emitError(this, args);
- }
- var { _events: events } = this;
- if (events === undefined) return false;
- var handlers = events[type];
- if (handlers === undefined) return false;
- for (var handler of [...handlers]) {
- var result = handler.apply(this, args);
- if (result !== undefined && isPromise(result)) {
- addCatch(this, result, type, args);
- }
- }
- return true;
-};
-
-EventEmitterPrototype.emit = emitWithoutRejectionCapture;
-
-EventEmitterPrototype.addListener = function addListener(type, fn) {
- checkListener(fn);
- var events = this._events;
- if (!events) {
- events = this._events = { __proto__: null };
- this._eventsCount = 0;
- } else if (events.newListener) {
- this.emit("newListener", type, fn.listener ?? fn);
- }
- var handlers = events[type];
- if (!handlers) {
- events[type] = [fn];
- this._eventsCount++;
- } else {
- handlers.push(fn);
- var m = this._maxListeners ?? defaultMaxListeners;
- if (m > 0 && handlers.length > m && !handlers.warned) {
- overflowWarning(this, type, handlers);
- }
- }
- return this;
-};
-
-EventEmitterPrototype.on = EventEmitterPrototype.addListener;
-
-EventEmitterPrototype.prependListener = function prependListener(type, fn) {
- checkListener(fn);
- var events = this._events;
- if (!events) {
- events = this._events = { __proto__: null };
- this._eventsCount = 0;
- } else if (events.newListener) {
- this.emit("newListener", type, fn.listener ?? fn);
- }
- var handlers = events[type];
- if (!handlers) {
- events[type] = [fn];
- this._eventsCount++;
- } else {
- handlers.unshift(fn);
- var m = this._maxListeners ?? defaultMaxListeners;
- if (m > 0 && handlers.length > m && !handlers.warned) {
- overflowWarning(this, type, handlers);
- }
- }
- return this;
-};
-
-function overflowWarning(emitter, type, handlers) {
- handlers.warned = true;
- const warn = new Error(
- `Possible EventEmitter memory leak detected. ${handlers.length} ${String(type)} listeners ` +
- `added to [${emitter.constructor.name}]. Use emitter.setMaxListeners() to increase limit`,
- );
- warn.name = "MaxListenersExceededWarning";
- warn.emitter = emitter;
- warn.type = type;
- warn.count = handlers.length;
- process.emitWarning(warn);
-}
-
-function onceWrapper(type, listener, ...args) {
- this.removeListener(type, listener);
- listener.apply(this, args);
-}
-
-EventEmitterPrototype.once = function once(type, fn) {
- checkListener(fn);
- const bound = onceWrapper.bind(this, type, fn);
- bound.listener = fn;
- this.addListener(type, bound);
- return this;
-};
-
-EventEmitterPrototype.prependOnceListener = function prependOnceListener(type, fn) {
- checkListener(fn);
- const bound = onceWrapper.bind(this, type, fn);
- bound.listener = fn;
- this.prependListener(type, bound);
- return this;
-};
-
-EventEmitterPrototype.removeListener = function removeListener(type, fn) {
- checkListener(fn);
- var { _events: events } = this;
- if (!events) return this;
- var handlers = events[type];
- if (!handlers) return this;
- var length = handlers.length;
- let position = -1;
- for (let i = length - 1; i >= 0; i--) {
- if (handlers[i] === fn || handlers[i].listener === fn) {
- position = i;
- break;
- }
- }
- if (position < 0) return this;
- if (position === 0) {
- handlers.shift();
- } else {
- handlers.splice(position, 1);
- }
- if (handlers.length === 0) {
- delete events[type];
- this._eventsCount--;
- }
- return this;
-};
-
-EventEmitterPrototype.off = EventEmitterPrototype.removeListener;
-
-EventEmitterPrototype.removeAllListeners = function removeAllListeners(type) {
- var { _events: events } = this;
- if (type && events) {
- if (events[type]) {
- delete events[type];
- this._eventsCount--;
- }
- } else {
- this._events = { __proto__: null };
- }
- return this;
-};
-
-EventEmitterPrototype.listeners = function listeners(type) {
- var { _events: events } = this;
- if (!events) return [];
- var handlers = events[type];
- if (!handlers) return [];
- return handlers.map(x => x.listener ?? x);
-};
-
-EventEmitterPrototype.rawListeners = function rawListeners(type) {
- var { _events } = this;
- if (!_events) return [];
- var handlers = _events[type];
- if (!handlers) return [];
- return handlers.slice();
-};
-
-EventEmitterPrototype.listenerCount = function listenerCount(type) {
- var { _events: events } = this;
- if (!events) return 0;
- return events[type]?.length ?? 0;
-};
-
-EventEmitterPrototype.eventNames = function eventNames() {
- return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];
-};
-
-EventEmitterPrototype[kCapture] = false;
-
-function once(emitter, type, options) {
- var signal = options?.signal;
- validateAbortSignal(signal, "options.signal");
- if (signal?.aborted) {
- throw new AbortError(undefined, { cause: signal?.reason });
- }
- return new Promise((resolve, reject) => {
- const errorListener = err => {
- emitter.removeListener(type, resolver);
- if (signal != null) {
- eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
- }
- reject(err);
- };
- const resolver = (...args) => {
- if (typeof emitter.removeListener === "function") {
- emitter.removeListener("error", errorListener);
- }
- if (signal != null) {
- eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
- }
- resolve(args);
- };
- eventTargetAgnosticAddListener(emitter, type, resolver, { once: true });
- if (type !== "error" && typeof emitter.once === "function") {
- // EventTarget does not have `error` event semantics like Node
- // EventEmitters, we listen to `error` events only on EventEmitters.
- emitter.once("error", errorListener);
- }
- function abortListener() {
- eventTargetAgnosticRemoveListener(emitter, type, resolver);
- eventTargetAgnosticRemoveListener(emitter, "error", errorListener);
- reject(new AbortError(undefined, { cause: signal?.reason }));
- }
- if (signal != null) {
- eventTargetAgnosticAddListener(signal, "abort", abortListener, { once: true });
- }
- });
-}
-EventEmitter.once = once;
-
-function on(emitter, type, options) {
- var { signal, close, highWatermark = Number.MAX_SAFE_INTEGER, lowWatermark = 1 } = options || {};
- throw new Error("events.on is not implemented. See https://github.com/oven-sh/bun/issues/2679");
-}
-EventEmitter.on = on;
-
-function getEventListeners(emitter, type) {
- if (emitter instanceof EventTarget) {
- throw new Error(
- "getEventListeners with an EventTarget is not implemented. See https://github.com/oven-sh/bun/issues/2678",
- );
- }
- return emitter.listeners(type);
-}
-EventEmitter.getEventListeners = getEventListeners;
-
-function setMaxListeners(n, ...eventTargets) {
- validateNumber(n, "setMaxListeners", 0);
- var length;
- if (eventTargets && (length = eventTargets.length)) {
- for (let i = 0; i < length; i++) {
- eventTargets[i].setMaxListeners(n);
- }
- } else {
- defaultMaxListeners = n;
- }
-}
-EventEmitter.setMaxListeners = setMaxListeners;
-
-function listenerCount(emitter, type) {
- return emitter.listenerCount(type);
-}
-EventEmitter.listenerCount = listenerCount;
-
-EventEmitter.EventEmitter = EventEmitter;
-EventEmitter.usingDomains = false;
-EventEmitter.captureRejectionSymbol = captureRejectionSymbol;
-ObjectDefineProperty(EventEmitter, "captureRejections", {
- __proto__: null,
- get() {
- return EventEmitterPrototype[kCapture];
- },
- set(value) {
- validateBoolean(value, "EventEmitter.captureRejections");
-
- EventEmitterPrototype[kCapture] = value;
- },
- enumerable: true,
-});
-EventEmitter.errorMonitor = kErrorMonitor;
-Object.defineProperties(EventEmitter, {
- defaultMaxListeners: {
- enumerable: true,
- get: () => {
- return defaultMaxListeners;
- },
- set: arg => {
- validateNumber(arg, "defaultMaxListeners", 0);
- defaultMaxListeners = arg;
- },
- },
- kMaxEventTargetListeners: {
- __proto__: null,
- value: kMaxEventTargetListeners,
- enumerable: false,
- configurable: false,
- writable: false,
- },
- kMaxEventTargetListenersWarned: {
- __proto__: null,
- value: kMaxEventTargetListenersWarned,
- enumerable: false,
- configurable: false,
- writable: false,
- },
-});
-EventEmitter.init = EventEmitter;
-EventEmitter[Symbol.for("CommonJS")] = 0;
-
-export default EventEmitter;
-
-function eventTargetAgnosticRemoveListener(emitter, name, listener, flags) {
- if (typeof emitter.removeListener === "function") {
- emitter.removeListener(name, listener);
- } else {
- emitter.removeEventListener(name, listener, flags);
- }
-}
-
-function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
- if (typeof emitter.on === "function") {
- emitter.on(name, listener);
- } else {
- emitter.addEventListener(name, listener);
- }
-}
-
-class AbortError extends Error {
- constructor(message = "The operation was aborted", options = undefined) {
- if (options !== undefined && typeof options !== "object") {
- throw new codes.ERR_INVALID_ARG_TYPE("options", "Object", options);
- }
- super(message, options);
- this.code = "ABORT_ERR";
- this.name = "AbortError";
- }
-}
-
-function ERR_INVALID_ARG_TYPE(name, type, value) {
- const err = new TypeError(`The "${name}" argument must be of type ${type}. Received ${value}`);
- err.code = "ERR_INVALID_ARG_TYPE";
- return err;
-}
-
-function ERR_OUT_OF_RANGE(name, range, value) {
- const err = new RangeError(`The "${name}" argument is out of range. It must be ${range}. Received ${value}`);
- err.code = "ERR_OUT_OF_RANGE";
- return err;
-}
-
-function validateAbortSignal(signal, name) {
- if (signal !== undefined && (signal === null || typeof signal !== "object" || !("aborted" in signal))) {
- throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
- }
-}
-
-function validateNumber(value, name, min = undefined, max) {
- if (typeof value !== "number") throw new ERR_INVALID_ARG_TYPE(name, "number", value);
- if (
- (min != null && value < min) ||
- (max != null && value > max) ||
- ((min != null || max != null) && Number.isNaN(value))
- ) {
- throw new ERR_OUT_OF_RANGE(
- name,
- `${min != null ? `>= ${min}` : ""}${min != null && max != null ? " && " : ""}${max != null ? `<= ${max}` : ""}`,
- value,
- );
- }
-}
-
-function checkListener(listener) {
- if (typeof listener !== "function") {
- throw new TypeError("The listener must be a function");
- }
-}
-
-export class EventEmitterAsyncResource extends EventEmitter {
- constructor(options = undefined) {
- throw new Error("EventEmitterAsyncResource is not implemented. See https://github.com/oven-sh/bun/issues/2681");
- }
-}
-
-EventEmitter.EventEmitterAsyncResource = EventEmitterAsyncResource;
diff --git a/src/bun.js/ffi.exports.js b/src/bun.js/ffi.exports.js
deleted file mode 100644
index 51a34e67a..000000000
--- a/src/bun.js/ffi.exports.js
+++ /dev/null
@@ -1,391 +0,0 @@
-// --- FFIType ---
-
-var ffi = globalThis.Bun.FFI;
-export const ptr = (arg1, arg2) => (typeof arg2 === "undefined" ? ffi.ptr(arg1) : ffi.ptr(arg1, arg2));
-export const toBuffer = ffi.toBuffer;
-export const toArrayBuffer = ffi.toArrayBuffer;
-export const viewSource = ffi.viewSource;
-
-const BunCString = ffi.CString;
-const nativeLinkSymbols = ffi.linkSymbols;
-const nativeDLOpen = ffi.dlopen;
-const nativeCallback = ffi.callback;
-const closeCallback = ffi.closeCallback;
-delete ffi.callback;
-delete ffi.closeCallback;
-
-export class JSCallback {
- constructor(cb, options) {
- const { ctx, ptr } = nativeCallback(options, cb);
- this.#ctx = ctx;
- this.ptr = ptr;
- this.#threadsafe = !!options?.threadsafe;
- }
-
- ptr;
- #ctx;
- #threadsafe;
-
- get threadsafe() {
- return this.#threadsafe;
- }
-
- [Symbol.toPrimitive]() {
- const { ptr } = this;
- return typeof ptr === "number" ? ptr : 0;
- }
-
- close() {
- const ctx = this.#ctx;
- this.ptr = null;
- this.#ctx = null;
-
- if (ctx) {
- closeCallback(ctx);
- }
- }
-}
-
-export class CString extends String {
- constructor(ptr, byteOffset, byteLength) {
- super(
- ptr
- ? typeof byteLength === "number" && Number.isSafeInteger(byteLength)
- ? new BunCString(ptr, byteOffset || 0, byteLength)
- : new BunCString(ptr)
- : "",
- );
- this.ptr = typeof ptr === "number" ? ptr : 0;
- if (typeof byteOffset !== "undefined") {
- this.byteOffset = byteOffset;
- }
- if (typeof byteLength !== "undefined") {
- this.byteLength = byteLength;
- }
- }
-
- ptr;
- byteOffset;
- byteLength;
- #cachedArrayBuffer;
-
- get arrayBuffer() {
- if (this.#cachedArrayBuffer) {
- return this.#cachedArrayBuffer;
- }
-
- if (!this.ptr) {
- return (this.#cachedArrayBuffer = new ArrayBuffer(0));
- }
-
- return (this.#cachedArrayBuffer = toArrayBuffer(this.ptr, this.byteOffset, this.byteLength));
- }
-}
-Object.defineProperty(globalThis, "__GlobalBunCString", {
- value: CString,
- enumerable: false,
- configurable: false,
-});
-
-const ffiWrappers = new Array(18);
-
-var char = val => val | 0;
-ffiWrappers.fill(char);
-ffiWrappers[FFIType.uint8_t] = function uint8(val) {
- return val < 0 ? 0 : val >= 255 ? 255 : val | 0;
-};
-ffiWrappers[FFIType.int16_t] = function int16(val) {
- return val <= -32768 ? -32768 : val >= 32768 ? 32768 : val | 0;
-};
-ffiWrappers[FFIType.uint16_t] = function uint16(val) {
- return val <= 0 ? 0 : val >= 65536 ? 65536 : val | 0;
-};
-ffiWrappers[FFIType.int32_t] = function int32(val) {
- return val | 0;
-};
-// we never want to return NaN
-ffiWrappers[FFIType.uint32_t] = function uint32(val) {
- return val <= 0 ? 0 : val >= 0xffffffff ? 0xffffffff : +val || 0;
-};
-ffiWrappers[FFIType.i64_fast] = function int64(val) {
- if (typeof val === "bigint") {
- if (val <= BigInt(Number.MAX_SAFE_INTEGER) && val >= BigInt(-Number.MAX_SAFE_INTEGER)) {
- return Number(val).valueOf() || 0;
- }
-
- return val;
- }
-
- return !val ? 0 : +val || 0;
-};
-
-ffiWrappers[FFIType.u64_fast] = function u64_fast(val) {
- if (typeof val === "bigint") {
- if (val <= BigInt(Number.MAX_SAFE_INTEGER) && val >= 0) {
- return Number(val).valueOf() || 0;
- }
-
- return val;
- }
-
- return !val ? 0 : +val || 0;
-};
-
-ffiWrappers[FFIType.int64_t] = function int64(val) {
- if (typeof val === "bigint") {
- return val;
- }
-
- if (typeof val === "number") {
- return BigInt(val || 0);
- }
-
- return BigInt(+val || 0);
-};
-
-ffiWrappers[FFIType.uint64_t] = function uint64(val) {
- if (typeof val === "bigint") {
- return val;
- }
-
- if (typeof val === "number") {
- return val <= 0 ? BigInt(0) : BigInt(val || 0);
- }
-
- return BigInt(+val || 0);
-};
-
-ffiWrappers[FFIType.u64_fast] = function u64_fast(val) {
- if (typeof val === "bigint") {
- if (val <= BigInt(Number.MAX_SAFE_INTEGER) && val >= BigInt(0)) return Number(val);
- return val;
- }
-
- return typeof val === "number" ? (val <= 0 ? 0 : +val || 0) : +val || 0;
-};
-
-ffiWrappers[FFIType.uint16_t] = function uint16(val) {
- const ret = (typeof val === "bigint" ? Number(val) : val) | 0;
- return ret <= 0 ? 0 : ret > 0xffff ? 0xffff : ret;
-};
-
-ffiWrappers[FFIType.double] = function double(val) {
- if (typeof val === "bigint") {
- if (val.valueOf() < BigInt(Number.MAX_VALUE)) {
- return Math.abs(Number(val).valueOf()) + 0.00000000000001 - 0.00000000000001;
- }
- }
-
- if (!val) {
- return 0 + 0.00000000000001 - 0.00000000000001;
- }
-
- return val + 0.00000000000001 - 0.00000000000001;
-};
-
-ffiWrappers[FFIType.float] = ffiWrappers[10] = function float(val) {
- return Math.fround(val);
-};
-ffiWrappers[FFIType.bool] = function bool(val) {
- return !!val;
-};
-
-// This prevents an extra property getter in potentially hot code
-Object.defineProperty(globalThis, "__GlobalBunFFIPtrFunctionForWrapper", {
- value: ptr,
- enumerable: false,
- configurable: true,
-});
-
-ffiWrappers[FFIType.cstring] = ffiWrappers[FFIType.pointer] = function pointer(val) {
- if (typeof val === "number") return val;
- if (!val) {
- return null;
- }
-
- if (ArrayBuffer.isView(val) || val instanceof ArrayBuffer) {
- return __GlobalBunFFIPtrFunctionForWrapper(val);
- }
-
- if (typeof val === "string") {
- throw new TypeError("To convert a string to a pointer, encode it as a buffer");
- }
-
- throw new TypeError(`Unable to convert ${val} to a pointer`);
-};
-
-function cstringReturnType(val) {
- return new __GlobalBunCString(val);
-}
-
-ffiWrappers[FFIType.function] = function functionType(val) {
- if (typeof val === "number") {
- return val;
- }
-
- if (typeof val === "bigint") {
- return Number(val);
- }
-
- var ptr = val && val.ptr;
-
- if (!ptr) {
- throw new TypeError("Expected function to be a JSCallback or a number");
- }
-
- return ptr;
-};
-
-function FFIBuilder(params, returnType, functionToCall, name) {
- const hasReturnType = typeof FFIType[returnType] === "number" && FFIType[returnType] !== FFIType.void;
- var paramNames = new Array(params.length);
- var args = new Array(params.length);
- for (let i = 0; i < params.length; i++) {
- paramNames[i] = `p${i}`;
- const wrapper = ffiWrappers[FFIType[params[i]]];
- if (wrapper) {
- // doing this inline benchmarked about 4x faster than referencing
- args[i] = `(${wrapper.toString()})(p${i})`;
- } else {
- throw new TypeError(`Unsupported type ${params[i]}. Must be one of: ${Object.keys(FFIType).sort().join(", ")}`);
- }
- }
-
- var code = `functionToCall(${args.join(", ")})`;
- if (hasReturnType) {
- if (FFIType[returnType] === FFIType.cstring) {
- code = `return (${cstringReturnType.toString()})(${code})`;
- } else {
- code = `return ${code}`;
- }
- }
-
- var func = new Function("functionToCall", ...paramNames, code);
- Object.defineProperty(func, "name", {
- value: name,
- });
-
- // variadic arguments can be expensive
- // most FFI functions are going to be < 5 arguments
- // so we just inline it
- var wrap;
- switch (paramNames.length) {
- case 0:
- wrap = () => func(functionToCall);
- break;
- case 1:
- wrap = arg1 => func(functionToCall, arg1);
- break;
- case 2:
- wrap = (arg1, arg2) => func(functionToCall, arg1, arg2);
- break;
- case 3:
- wrap = (arg1, arg2, arg3) => func(functionToCall, arg1, arg2, arg3);
- break;
- case 4:
- wrap = (arg1, arg2, arg3, arg4) => func(functionToCall, arg1, arg2, arg3, arg4);
- break;
- case 5:
- wrap = (arg1, arg2, arg3, arg4, arg5) => func(functionToCall, arg1, arg2, arg3, arg4, arg5);
- break;
- case 6:
- wrap = (arg1, arg2, arg3, arg4, arg5, arg6) => func(functionToCall, arg1, arg2, arg3, arg4, arg5, arg6);
- break;
- case 7:
- wrap = (arg1, arg2, arg3, arg4, arg5, arg6, arg7) =>
- func(functionToCall, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
- break;
- case 8:
- wrap = (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) =>
- func(functionToCall, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
- break;
- case 9:
- wrap = (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) =>
- func(functionToCall, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
- break;
- default: {
- wrap = (...args) => func(functionToCall, ...args);
- break;
- }
- }
-
- wrap.native = functionToCall;
- wrap.ptr = functionToCall.ptr;
- return wrap;
-}
-
-export const native = {
- dlopen: nativeDLOpen,
- callback: () => {
- throw new Error("Deprecated. Use new JSCallback(options, fn) instead");
- },
-};
-
-export function dlopen(path, options) {
- const result = nativeDLOpen(path, options);
-
- for (let key in result.symbols) {
- var symbol = result.symbols[key];
- if (options[key]?.args?.length || FFIType[options[key]?.returns] === FFIType.cstring) {
- result.symbols[key] = FFIBuilder(
- options[key].args ?? [],
- options[key].returns ?? FFIType.void,
- symbol,
- // in stacktraces:
- // instead of
- // "/usr/lib/sqlite3.so"
- // we want
- // "sqlite3_get_version() - sqlit3.so"
- path.includes("/") ? `${key} (${path.split("/").pop()})` : `${key} (${path})`,
- );
- } else {
- // consistentcy
- result.symbols[key].native = result.symbols[key];
- }
- }
-
- return result;
-}
-
-export function linkSymbols(options) {
- const result = nativeLinkSymbols(options);
-
- for (let key in result.symbols) {
- var symbol = result.symbols[key];
- if (options[key]?.args?.length || FFIType[options[key]?.returns] === FFIType.cstring) {
- result.symbols[key] = FFIBuilder(options[key].args ?? [], options[key].returns ?? FFIType.void, symbol, key);
- } else {
- // consistentcy
- result.symbols[key].native = result.symbols[key];
- }
- }
-
- return result;
-}
-
-var cFunctionI = 0;
-var cFunctionRegistry;
-function onCloseCFunction(close) {
- close();
-}
-export function CFunction(options) {
- const identifier = `CFunction${cFunctionI++}`;
- var result = linkSymbols({
- [identifier]: options,
- });
- var hasClosed = false;
- var close = result.close;
- result.symbols[identifier].close = () => {
- if (hasClosed || !close) return;
- hasClosed = true;
- close();
- close = undefined;
- };
-
- cFunctionRegistry ||= new FinalizationRegistry(onCloseCFunction);
- cFunctionRegistry.register(result.symbols[identifier], result.symbols[identifier].close);
-
- return result.symbols[identifier];
-}
-
-export const read = ffi.read;
diff --git a/src/bun.js/fs.exports.js b/src/bun.js/fs.exports.js
deleted file mode 100644
index df2fbf382..000000000
--- a/src/bun.js/fs.exports.js
+++ /dev/null
@@ -1,1015 +0,0 @@
-var { direct, isPromise, isCallable } = import.meta.primordials;
-var promises = import.meta.require("node:fs/promises");
-
-var { Readable, NativeWritable, _getNativeReadableStreamPrototype, eos: eos_ } = import.meta.require("node:stream");
-var NativeReadable = _getNativeReadableStreamPrototype(2, Readable); // 2 means native type is a file here
-
-var fs = Bun.fs();
-var debug = process.env.DEBUG ? console.log : () => {};
-export var access = function access(...args) {
- callbackify(fs.accessSync, args);
- },
- appendFile = function appendFile(...args) {
- callbackify(fs.appendFileSync, args);
- },
- close = function close(...args) {
- callbackify(fs.closeSync, args);
- },
- rm = function rm(...args) {
- callbackify(fs.rmSync, args);
- },
- rmdir = function rmdir(...args) {
- callbackify(fs.rmdirSync, args);
- },
- copyFile = function copyFile(...args) {
- callbackify(fs.copyFileSync, args);
- },
- exists = function exists(...args) {
- callbackify(fs.existsSync, args);
- },
- chown = function chown(...args) {
- callbackify(fs.chownSync, args);
- },
- chmod = function chmod(...args) {
- callbackify(fs.chmodSync, args);
- },
- fchmod = function fchmod(...args) {
- callbackify(fs.fchmodSync, args);
- },
- fchown = function fchown(...args) {
- callbackify(fs.fchownSync, args);
- },
- fstat = function fstat(...args) {
- callbackify(fs.fstatSync, args);
- },
- fsync = function fsync(...args) {
- callbackify(fs.fsyncSync, args);
- },
- ftruncate = function ftruncate(...args) {
- callbackify(fs.ftruncateSync, args);
- },
- futimes = function futimes(...args) {
- callbackify(fs.futimesSync, args);
- },
- lchmod = function lchmod(...args) {
- callbackify(fs.lchmodSync, args);
- },
- lchown = function lchown(...args) {
- callbackify(fs.lchownSync, args);
- },
- link = function link(...args) {
- callbackify(fs.linkSync, args);
- },
- lstat = function lstat(...args) {
- callbackify(fs.lstatSync, args);
- },
- mkdir = function mkdir(...args) {
- callbackify(fs.mkdirSync, args);
- },
- mkdtemp = function mkdtemp(...args) {
- callbackify(fs.mkdtempSync, args);
- },
- open = function open(...args) {
- callbackify(fs.openSync, args);
- },
- read = function read(...args) {
- callbackify(fs.readSync, args);
- },
- write = function write(...args) {
- callbackify(fs.writeSync, args);
- },
- readdir = function readdir(...args) {
- callbackify(fs.readdirSync, args);
- },
- readFile = function readFile(...args) {
- callbackify(fs.readFileSync, args);
- },
- writeFile = function writeFile(...args) {
- callbackify(fs.writeFileSync, args);
- },
- readlink = function readlink(...args) {
- callbackify(fs.readlinkSync, args);
- },
- realpath = function realpath(...args) {
- callbackify(fs.realpathSync, args);
- },
- rename = function rename(...args) {
- callbackify(fs.renameSync, args);
- },
- stat = function stat(...args) {
- callbackify(fs.statSync, args);
- },
- symlink = function symlink(...args) {
- callbackify(fs.symlinkSync, args);
- },
- truncate = function truncate(...args) {
- callbackify(fs.truncateSync, args);
- },
- unlink = function unlink(...args) {
- callbackify(fs.unlinkSync, args);
- },
- utimes = function utimes(...args) {
- callbackify(fs.utimesSync, args);
- },
- lutimes = function lutimes(...args) {
- callbackify(fs.lutimesSync, args);
- },
- accessSync = fs.accessSync.bind(fs),
- appendFileSync = fs.appendFileSync.bind(fs),
- closeSync = fs.closeSync.bind(fs),
- copyFileSync = fs.copyFileSync.bind(fs),
- existsSync = fs.existsSync.bind(fs),
- chownSync = fs.chownSync.bind(fs),
- chmodSync = fs.chmodSync.bind(fs),
- fchmodSync = fs.fchmodSync.bind(fs),
- fchownSync = fs.fchownSync.bind(fs),
- fstatSync = fs.fstatSync.bind(fs),
- fsyncSync = fs.fsyncSync.bind(fs),
- ftruncateSync = fs.ftruncateSync.bind(fs),
- futimesSync = fs.futimesSync.bind(fs),
- lchmodSync = fs.lchmodSync.bind(fs),
- lchownSync = fs.lchownSync.bind(fs),
- linkSync = fs.linkSync.bind(fs),
- lstatSync = fs.lstatSync.bind(fs),
- mkdirSync = fs.mkdirSync.bind(fs),
- mkdtempSync = fs.mkdtempSync.bind(fs),
- openSync = fs.openSync.bind(fs),
- readSync = fs.readSync.bind(fs),
- writeSync = fs.writeSync.bind(fs),
- readdirSync = fs.readdirSync.bind(fs),
- readFileSync = fs.readFileSync.bind(fs),
- writeFileSync = fs.writeFileSync.bind(fs),
- readlinkSync = fs.readlinkSync.bind(fs),
- realpathSync = fs.realpathSync.bind(fs),
- renameSync = fs.renameSync.bind(fs),
- statSync = fs.statSync.bind(fs),
- symlinkSync = fs.symlinkSync.bind(fs),
- truncateSync = fs.truncateSync.bind(fs),
- unlinkSync = fs.unlinkSync.bind(fs),
- utimesSync = fs.utimesSync.bind(fs),
- lutimesSync = fs.lutimesSync.bind(fs),
- rmSync = fs.rmSync.bind(fs),
- rmdirSync = fs.rmdirSync.bind(fs),
- Dirent = fs.Dirent,
- Stats = fs.Stats,
- promises = import.meta.require("node:fs/promises");
-
-function callbackify(fsFunction, args) {
- try {
- const result = fsFunction.apply(fs, args.slice(0, args.length - 1));
- const callback = args[args.length - 1];
- if (typeof callback === "function") {
- queueMicrotask(() => callback(null, result));
- }
- } catch (e) {
- const callback = args[args.length - 1];
- if (typeof callback === "function") {
- queueMicrotask(() => callback(e));
- }
- }
-}
-
-// Results from Object.keys() in Node 1,
-// fd
-// path
-// flags
-// mode
-// start
-// end
-// pos
-// bytesRead
-// _readableState
-// _events
-// _eventsCount
-// _maxListener
-var readStreamPathFastPathSymbol = Symbol.for("Bun.Node.readStreamPathFastPath");
-const readStreamSymbol = Symbol.for("Bun.NodeReadStream");
-const readStreamPathOrFdSymbol = Symbol.for("Bun.NodeReadStreamPathOrFd");
-const writeStreamSymbol = Symbol.for("Bun.NodeWriteStream");
-var writeStreamPathFastPathSymbol = Symbol.for("Bun.NodeWriteStreamFastPath");
-var writeStreamPathFastPathCallSymbol = Symbol.for("Bun.NodeWriteStreamFastPathCall");
-var kIoDone = Symbol.for("kIoDone");
-
-var defaultReadStreamOptions = {
- file: undefined,
- fd: undefined,
- flags: "r",
- encoding: undefined,
- mode: 0o666,
- autoClose: true,
- emitClose: true,
- start: 0,
- end: Infinity,
- highWaterMark: 64 * 1024,
- fs: {
- read,
- open: (path, flags, mode, cb) => {
- var fd;
- try {
- fd = openSync(path, flags, mode);
- } catch (e) {
- cb(e);
- return;
- }
-
- cb(null, fd);
- },
- openSync,
- close,
- },
- autoDestroy: true,
-};
-
-var ReadStreamClass;
-export var ReadStream = (function (InternalReadStream) {
- ReadStreamClass = InternalReadStream;
- Object.defineProperty(ReadStreamClass.prototype, Symbol.toStringTag, {
- value: "ReadStream",
- enumerable: false,
- });
-
- return Object.defineProperty(
- function ReadStream(path, options) {
- return new InternalReadStream(path, options);
- },
- Symbol.hasInstance,
- {
- value(instance) {
- return instance instanceof InternalReadStream;
- },
- },
- );
-})(
- class ReadStream extends NativeReadable {
- constructor(pathOrFd, options = defaultReadStreamOptions) {
- if (typeof options !== "object" || !options) {
- throw new TypeError("Expected options to be an object");
- }
-
- var {
- flags = defaultReadStreamOptions.flags,
- encoding = defaultReadStreamOptions.encoding,
- mode = defaultReadStreamOptions.mode,
- autoClose = defaultReadStreamOptions.autoClose,
- emitClose = defaultReadStreamOptions.emitClose,
- start = defaultReadStreamOptions.start,
- end = defaultReadStreamOptions.end,
- autoDestroy = defaultReadStreamOptions.autoClose,
- fs = defaultReadStreamOptions.fs,
- highWaterMark = defaultReadStreamOptions.highWaterMark,
- } = options;
-
- if (pathOrFd?.constructor?.name === "URL") {
- pathOrFd = Bun.fileURLToPath(pathOrFd);
- }
-
- // This is kinda hacky but we create a temporary object to assign props that we will later pull into the `this` context after we call super
- var tempThis = {};
- if (typeof pathOrFd === "string") {
- if (pathOrFd.startsWith("file://")) {
- pathOrFd = Bun.fileURLToPath(pathOrFd);
- }
- if (pathOrFd.length === 0) {
- throw new TypeError("Expected path to be a non-empty string");
- }
- tempThis.path = tempThis.file = tempThis[readStreamPathOrFdSymbol] = pathOrFd;
- } else if (typeof pathOrFd === "number") {
- pathOrFd |= 0;
- if (pathOrFd < 0) {
- throw new TypeError("Expected fd to be a positive integer");
- }
- tempThis.fd = tempThis[readStreamPathOrFdSymbol] = pathOrFd;
-
- tempThis.autoClose = false;
- } else {
- throw new TypeError("Expected a path or file descriptor");
- }
-
- // If fd not open for this file, open it
- if (!tempThis.fd) {
- // NOTE: this fs is local to constructor, from options
- tempThis.fd = fs.openSync(pathOrFd, flags, mode);
- }
- // Get FileRef from fd
- var fileRef = Bun.file(tempThis.fd);
-
- // Get the stream controller
- // We need the pointer to the underlying stream controller for the NativeReadable
- var stream = fileRef.stream();
- var native = direct(stream);
- if (!native) {
- debug("no native readable stream");
- throw new Error("no native readable stream");
- }
- var { stream: ptr } = native;
-
- super(ptr, {
- ...options,
- encoding,
- autoDestroy,
- autoClose,
- emitClose,
- highWaterMark,
- });
-
- // Assign the tempThis props to this
- Object.assign(this, tempThis);
- this.#fileRef = fileRef;
-
- this.end = end;
- this._read = this.#internalRead;
- this.start = start;
- this.flags = flags;
- this.mode = mode;
- this.emitClose = emitClose;
-
- this[readStreamPathFastPathSymbol] =
- start === 0 &&
- end === Infinity &&
- autoClose &&
- fs === defaultReadStreamOptions.fs &&
- // is it an encoding which we don't need to decode?
- (encoding === "buffer" ||
- encoding === "binary" ||
- encoding == null ||
- encoding === "utf-8" ||
- encoding === "utf8");
- this._readableState.autoClose = autoDestroy = autoClose;
- this._readableState.highWaterMark = highWaterMark;
-
- if (start !== undefined) {
- this.pos = start;
- }
- }
- #fileRef;
- #fs;
- file;
- path;
- fd = null;
- flags;
- mode;
- start;
- end;
- pos;
- bytesRead = 0;
- #fileSize = -1;
- _read;
-
- [readStreamSymbol] = true;
- [readStreamPathOrFdSymbol];
- [readStreamPathFastPathSymbol];
-
- _construct(callback) {
- if (super._construct) {
- super._construct(callback);
- } else {
- callback();
- }
- this.emit("open", this.fd);
- this.emit("ready");
- }
-
- _destroy(err, cb) {
- super._destroy(err, cb);
- try {
- var fd = this.fd;
- this[readStreamPathFastPathSymbol] = false;
-
- if (!fd) {
- cb(err);
- } else {
- this.#fs.close(fd, er => {
- cb(er || err);
- });
- this.fd = null;
- }
- } catch (e) {
- throw e;
- }
- }
-
- close(cb) {
- if (typeof cb === "function") eos_()(this, cb);
- this.destroy();
- }
-
- push(chunk) {
- // Is it even possible for this to be less than 1?
- var bytesRead = chunk?.length ?? 0;
- if (bytesRead > 0) {
- this.bytesRead += bytesRead;
- var currPos = this.pos;
- // Handle case of going through bytes before pos if bytesRead is less than pos
- // If pos is undefined, we are reading through the whole file
- // Otherwise we started from somewhere in the middle of the file
- if (currPos !== undefined) {
- // At this point we still haven't hit our `start` point
- // We should discard this chunk and exit
- if (this.bytesRead < currPos) {
- return true;
- }
- // At this point, bytes read is greater than our starting position
- // If the current position is still the starting position, that means
- // this is the first chunk where we care about the bytes read
- // and we need to subtract the bytes read from the start position (n) and slice the last n bytes
- if (currPos === this.start) {
- var n = this.bytesRead - currPos;
- chunk = chunk.slice(-n);
- var [_, ...rest] = arguments;
- this.pos = this.bytesRead;
- if (this.end && this.bytesRead >= this.end) {
- chunk = chunk.slice(0, this.end - this.start);
- }
- return super.push(chunk, ...rest);
- }
- var end = this.end;
- // This is multi-chunk read case where we go passed the end of the what we want to read in the last chunk
- if (end && this.bytesRead >= end) {
- chunk = chunk.slice(0, end - currPos);
- var [_, ...rest] = arguments;
- this.pos = this.bytesRead;
- return super.push(chunk, ...rest);
- }
- this.pos = this.bytesRead;
- }
- }
-
- return super.push(...arguments);
- }
-
- // #
-
- // n should be the the highwatermark passed from Readable.read when calling internal _read (_read is set to this private fn in this class)
- #internalRead(n) {
- // pos is the current position in the file
- // by default, if a start value is provided, pos starts at this.start
- var { pos, end, bytesRead, fd, encoding } = this;
-
- n =
- pos !== undefined // if there is a pos, then we are reading from that specific position in the file
- ? Math.min(end - pos + 1, n) // takes smaller of length of the rest of the file to read minus the cursor position, or the highwatermark
- : Math.min(end - bytesRead + 1, n); // takes the smaller of the length of the rest of the file from the bytes that we have marked read, or the highwatermark
-
- debug("n @ fs.ReadStream.#internalRead, after clamp", n);
-
- // If n is 0 or less, then we read all the file, push null to stream, ending it
- if (n <= 0) {
- this.push(null);
- return;
- }
-
- // At this point, n is the lesser of the length of the rest of the file to read or the highwatermark
- // Which means n is the maximum number of bytes to read
-
- // Basically if we don't know the file size yet, then check it
- // Then if n is bigger than fileSize, set n to be fileSize
- // This is a fast path to avoid allocating more than the file size for a small file (is this respected by native stream though)
- if (this.#fileSize === -1 && bytesRead === 0 && pos === undefined) {
- var stat = fstatSync(fd);
- this.#fileSize = stat.size;
- if (this.#fileSize > 0 && n > this.#fileSize) {
- n = this.#fileSize + 1;
- }
- debug("fileSize", this.#fileSize);
- }
-
- // At this point, we know the file size and how much we want to read of the file
- this[kIoDone] = false;
- var res = super._read(n);
- debug("res -- undefined? why?", res);
- if (isPromise(res)) {
- var then = res?.then;
- if (then && isCallable(then)) {
- then(
- () => {
- this[kIoDone] = true;
- // Tell ._destroy() that it's safe to close the fd now.
- if (this.destroyed) {
- this.emit(kIoDone);
- }
- },
- er => {
- this[kIoDone] = true;
- this.#errorOrDestroy(er);
- },
- );
- }
- } else {
- this[kIoDone] = true;
- if (this.destroyed) {
- this.emit(kIoDone);
- this.#errorOrDestroy(new Error("ERR_STREAM_PREMATURE_CLOSE"));
- }
- }
- }
-
- #errorOrDestroy(err, sync = null) {
- var {
- _readableState: r = { destroyed: false, autoDestroy: false },
- _writableState: w = { destroyed: false, autoDestroy: false },
- } = this;
-
- if (w?.destroyed || r?.destroyed) {
- return this;
- }
- if (r?.autoDestroy || w?.autoDestroy) this.destroy(err);
- else if (err) {
- this.emit("error", err);
- }
- }
-
- pause() {
- this[readStreamPathFastPathSymbol] = false;
- return super.pause();
- }
-
- resume() {
- this[readStreamPathFastPathSymbol] = false;
- return super.resume();
- }
-
- unshift(...args) {
- this[readStreamPathFastPathSymbol] = false;
- return super.unshift(...args);
- }
-
- pipe(dest, pipeOpts) {
- if (this[readStreamPathFastPathSymbol] && (pipeOpts?.end ?? true) && this._readableState?.pipes?.length === 0) {
- if (writeStreamPathFastPathSymbol in dest && dest[writeStreamPathFastPathSymbol]) {
- if (dest[writeStreamPathFastPathCallSymbol](this, pipeOpts)) {
- return this;
- }
- }
- }
-
- this[readStreamPathFastPathSymbol] = false;
- return super.pipe(dest, pipeOpts);
- }
- },
-);
-
-export function createReadStream(path, options) {
- return new ReadStream(path, options);
-}
-
-var defaultWriteStreamOptions = {
- fd: null,
- start: undefined,
- pos: undefined,
- encoding: undefined,
- flags: "w",
- mode: 0o666,
- fs: {
- write,
- close,
- open,
- openSync,
- },
-};
-
-var WriteStreamClass;
-export var WriteStream = (function (InternalWriteStream) {
- WriteStreamClass = InternalWriteStream;
- Object.defineProperty(WriteStreamClass.prototype, Symbol.toStringTag, {
- value: "WritesStream",
- enumerable: false,
- });
-
- return Object.defineProperty(
- function WriteStream(options) {
- return new InternalWriteStream(options);
- },
- Symbol.hasInstance,
- {
- value(instance) {
- return instance instanceof InternalWriteStream;
- },
- },
- );
-})(
- class WriteStream extends NativeWritable {
- constructor(path, options = defaultWriteStreamOptions) {
- if (!options) {
- throw new TypeError("Expected options to be an object");
- }
-
- var {
- fs = defaultWriteStreamOptions.fs,
- start = defaultWriteStreamOptions.start,
- flags = defaultWriteStreamOptions.flags,
- mode = defaultWriteStreamOptions.mode,
- autoClose = true,
- emitClose = false,
- autoDestroy = autoClose,
- encoding = defaultWriteStreamOptions.encoding,
- fd = defaultWriteStreamOptions.fd,
- pos = defaultWriteStreamOptions.pos,
- } = options;
-
- var tempThis = {};
- if (typeof path === "string") {
- if (path.length === 0) {
- throw new TypeError("Expected a non-empty path");
- }
-
- if (path.startsWith("file:")) {
- path = Bun.fileURLToPath(path);
- }
-
- tempThis.path = path;
- tempThis.fd = null;
- tempThis[writeStreamPathFastPathSymbol] =
- autoClose &&
- (start === undefined || start === 0) &&
- fs.write === defaultWriteStreamOptions.fs.write &&
- fs.close === defaultWriteStreamOptions.fs.close;
- } else {
- tempThis.fd = fd;
- tempThis[writeStreamPathFastPathSymbol] = false;
- }
-
- if (!tempThis.fd) {
- tempThis.fd = fs.openSync(path, flags, mode);
- }
-
- super(tempThis.fd, {
- ...options,
- decodeStrings: false,
- autoDestroy,
- emitClose,
- fd: tempThis,
- });
- Object.assign(this, tempThis);
-
- if (typeof fs?.write !== "function") {
- throw new TypeError("Expected fs.write to be a function");
- }
-
- if (typeof fs?.close !== "function") {
- throw new TypeError("Expected fs.close to be a function");
- }
-
- if (typeof fs?.open !== "function") {
- throw new TypeError("Expected fs.open to be a function");
- }
-
- if (typeof path === "object" && path) {
- if (path instanceof URL) {
- path = Bun.fileURLToPath(path);
- }
- }
-
- if (typeof path !== "string" && typeof fd !== "number") {
- throw new TypeError("Expected a path or file descriptor");
- }
-
- this.start = start;
- this.#fs = fs;
- this.flags = flags;
- this.mode = mode;
-
- if (this.start !== undefined) {
- this.pos = this.start;
- }
-
- if (encoding !== defaultWriteStreamOptions.encoding) {
- this.setDefaultEncoding(encoding);
- if (encoding !== "buffer" && encoding !== "utf8" && encoding !== "utf-8" && encoding !== "binary") {
- this[writeStreamPathFastPathSymbol] = false;
- }
- }
- }
-
- get autoClose() {
- return this._writableState.autoDestroy;
- }
-
- set autoClose(val) {
- this._writableState.autoDestroy = val;
- }
-
- destroySoon = this.end; // TODO: what is this for?
-
- // noop, node has deprecated this
- open() {}
-
- path;
- fd;
- flags;
- mode;
- #fs;
- bytesWritten = 0;
- pos;
- [writeStreamPathFastPathSymbol];
- [writeStreamSymbol] = true;
- start;
-
- [writeStreamPathFastPathCallSymbol](readStream, pipeOpts) {
- if (!this[writeStreamPathFastPathSymbol]) {
- return false;
- }
-
- if (this.fd !== null) {
- this[writeStreamPathFastPathSymbol] = false;
- return false;
- }
-
- this[kIoDone] = false;
- readStream[kIoDone] = false;
- return Bun.write(this[writeStreamPathFastPathSymbol], readStream[readStreamPathOrFdSymbol]).then(
- bytesWritten => {
- readStream[kIoDone] = this[kIoDone] = true;
- this.bytesWritten += bytesWritten;
- readStream.bytesRead += bytesWritten;
- this.end();
- readStream.close();
- },
- err => {
- readStream[kIoDone] = this[kIoDone] = true;
- this.#errorOrDestroy(err);
- readStream.emit("error", err);
- },
- );
- }
-
- isBunFastPathEnabled() {
- return this[writeStreamPathFastPathSymbol];
- }
-
- disableBunFastPath() {
- this[writeStreamPathFastPathSymbol] = false;
- }
-
- #handleWrite(er, bytes) {
- if (er) {
- return this.#errorOrDestroy(er);
- }
-
- this.bytesWritten += bytes;
- }
-
- #internalClose(err, cb) {
- this[writeStreamPathFastPathSymbol] = false;
- var fd = this.fd;
- this.#fs.close(fd, er => {
- this.fd = null;
- cb(err || er);
- });
- }
-
- _construct(callback) {
- if (typeof this.fd === "number") {
- callback();
- return;
- }
-
- callback();
- this.emit("open", this.fd);
- this.emit("ready");
- }
-
- _destroy(err, cb) {
- if (this.fd === null) {
- return cb(err);
- }
-
- if (this[kIoDone]) {
- this.once(kIoDone, () => this.#internalClose(err, cb));
- return;
- }
-
- this.#internalClose(err, cb);
- }
-
- [kIoDone] = false;
-
- close(cb) {
- if (cb) {
- if (this.closed) {
- process.nextTick(cb);
- return;
- }
- this.on("close", cb);
- }
-
- // If we are not autoClosing, we should call
- // destroy on 'finish'.
- if (!this.autoClose) {
- this.on("finish", this.destroy);
- }
-
- // We use end() instead of destroy() because of
- // https://github.com/nodejs/node/issues/2006
- this.end();
- }
-
- write(chunk, encoding = this._writableState.defaultEncoding, cb) {
- this[writeStreamPathFastPathSymbol] = false;
- if (typeof chunk === "string") {
- chunk = Buffer.from(chunk, encoding);
- }
-
- // TODO: Replace this when something like lseek is available
- var native = this.pos === undefined;
- this[kIoDone] = true;
- return super.write(
- chunk,
- encoding,
- native
- ? (err, bytes) => {
- this[kIoDone] = false;
- this.#handleWrite(err, bytes);
- this.emit(kIoDone);
- if (cb) !err ? cb() : cb(err);
- }
- : () => {},
- native,
- );
- }
-
- #internalWriteSlow(chunk, encoding, cb) {
- this.#fs.write(this.fd, chunk, 0, chunk.length, this.pos, (err, bytes) => {
- this[kIoDone] = false;
- this.#handleWrite(err, bytes);
- this.emit(kIoDone);
-
- !err ? cb() : cb(err);
- });
- }
-
- end(chunk, encoding, cb) {
- var native = this.pos === undefined;
- return super.end(chunk, encoding, cb, native);
- }
-
- _write = this.#internalWriteSlow;
- _writev = undefined;
-
- get pending() {
- return this.fd === null;
- }
-
- _destroy(err, cb) {
- this.close(err, cb);
- }
-
- #errorOrDestroy(err) {
- var {
- _readableState: r = { destroyed: false, autoDestroy: false },
- _writableState: w = { destroyed: false, autoDestroy: false },
- } = this;
-
- if (w?.destroyed || r?.destroyed) {
- return this;
- }
- if (r?.autoDestroy || w?.autoDestroy) this.destroy(err);
- else if (err) {
- this.emit("error", err);
- }
- }
- },
-);
-
-export function createWriteStream(path, options) {
- // const WriteStream = getLazyWriteStream();
- return new WriteStream(path, options);
-}
-
-// NOTE: This was too smart and doesn't actually work
-// export var WriteStream = Object.defineProperty(
-// function WriteStream(path, options) {
-// var _InternalWriteStream = getLazyWriteStream();
-// return new _InternalWriteStream(path, options);
-// },
-// Symbol.hasInstance,
-// { value: (instance) => instance[writeStreamSymbol] === true },
-// );
-
-// export var ReadStream = Object.defineProperty(
-// function ReadStream(path, options) {
-// var _InternalReadStream = getLazyReadStream();
-// return new _InternalReadStream(path, options);
-// },
-// Symbol.hasInstance,
-// { value: (instance) => instance[readStreamSymbol] === true },
-// );
-
-Object.defineProperties(fs, {
- createReadStream: {
- value: createReadStream,
- },
- createWriteStream: {
- value: createWriteStream,
- },
- ReadStream: {
- value: ReadStream,
- },
- WriteStream: {
- value: WriteStream,
- },
- // ReadStream: {
- // get: () => getLazyReadStream(),
- // },
- // WriteStream: {
- // get: () => getLazyWriteStream(),
- // },
-});
-
-// lol
-realpath.native = realpath;
-realpathSync.native = realpathSync;
-
-export default {
- [Symbol.for("CommonJS")]: 0,
- access,
- accessSync,
- appendFile,
- appendFileSync,
- chmod,
- chmodSync,
- chown,
- chownSync,
- close,
- closeSync,
- constants: promises.constants,
- copyFile,
- copyFileSync,
- createReadStream,
- createWriteStream,
- Dirent,
- exists,
- existsSync,
- fchmod,
- fchmodSync,
- fchown,
- fchownSync,
- fstat,
- fstatSync,
- fsync,
- fsyncSync,
- ftruncate,
- ftruncateSync,
- futimes,
- futimesSync,
- lchmod,
- lchmodSync,
- lchown,
- lchownSync,
- link,
- linkSync,
- lstat,
- lstatSync,
- lutimes,
- lutimesSync,
- mkdir,
- mkdirSync,
- mkdtemp,
- mkdtempSync,
- open,
- openSync,
- promises,
- read,
- readFile,
- readFileSync,
- readSync,
- readdir,
- readdirSync,
- readlink,
- readlinkSync,
- realpath,
- realpathSync,
- rename,
- renameSync,
- rm,
- rmSync,
- rmdir,
- rmdirSync,
- stat,
- statSync,
- Stats,
- symlink,
- symlinkSync,
- truncate,
- truncateSync,
- unlink,
- unlinkSync,
- utimes,
- utimesSync,
- write,
- writeFile,
- writeFileSync,
- writeSync,
- WriteStream,
- ReadStream,
-
- [Symbol.for("::bunternal::")]: {
- ReadStreamClass,
- WriteStreamClass,
- },
- // get WriteStream() {
- // return getLazyWriteStream();
- // },
- // get ReadStream() {
- // return getLazyReadStream();
- // },
-};
diff --git a/src/bun.js/fs_promises.exports.js b/src/bun.js/fs_promises.exports.js
deleted file mode 100644
index bafcaee56..000000000
--- a/src/bun.js/fs_promises.exports.js
+++ /dev/null
@@ -1,113 +0,0 @@
-var fs = Bun.fs();
-
-// note: this is not quite the same as how node does it
-// in some cases, node swaps around arguments or makes small tweaks to the return type
-// this is just better than nothing.
-const notrace = "::bunternal::";
-var promisify = {
- [notrace]: fsFunction => {
- // TODO: remove variadic arguments
- // we can use new Function() here instead
- // based on fsFucntion.length
- var func = {
- [notrace]: function (resolve, reject, args) {
- var result;
- try {
- result = fsFunction.apply(fs, args);
- args = undefined;
- } catch (err) {
- args = undefined;
- reject(err);
- return;
- }
-
- resolve(result);
- },
- }[notrace];
-
- return async function (...args) {
- // we await it so that the stack is captured
- return await new Promise((resolve, reject) => {
- process.nextTick(func, resolve, reject, args);
- });
- };
- },
-}[notrace];
-
-export var access = promisify(fs.accessSync),
- appendFile = promisify(fs.appendFileSync),
- close = promisify(fs.closeSync),
- copyFile = promisify(fs.copyFileSync),
- exists = promisify(fs.existsSync),
- chown = promisify(fs.chownSync),
- chmod = promisify(fs.chmodSync),
- fchmod = promisify(fs.fchmodSync),
- fchown = promisify(fs.fchownSync),
- fstat = promisify(fs.fstatSync),
- fsync = promisify(fs.fsyncSync),
- ftruncate = promisify(fs.ftruncateSync),
- futimes = promisify(fs.futimesSync),
- lchmod = promisify(fs.lchmodSync),
- lchown = promisify(fs.lchownSync),
- link = promisify(fs.linkSync),
- lstat = promisify(fs.lstatSync),
- mkdir = promisify(fs.mkdirSync),
- mkdtemp = promisify(fs.mkdtempSync),
- open = promisify(fs.openSync),
- read = promisify(fs.readSync),
- write = promisify(fs.writeSync),
- readdir = promisify(fs.readdirSync),
- readFile = promisify(fs.readFileSync),
- writeFile = promisify(fs.writeFileSync),
- readlink = promisify(fs.readlinkSync),
- realpath = promisify(fs.realpathSync),
- rename = promisify(fs.renameSync),
- stat = promisify(fs.statSync),
- symlink = promisify(fs.symlinkSync),
- truncate = promisify(fs.truncateSync),
- unlink = promisify(fs.unlinkSync),
- utimes = promisify(fs.utimesSync),
- lutimes = promisify(fs.lutimesSync),
- rm = promisify(fs.rmSync),
- rmdir = promisify(fs.rmdirSync);
-
-export default {
- access,
- appendFile,
- close,
- copyFile,
- exists,
- chown,
- chmod,
- fchmod,
- fchown,
- fstat,
- fsync,
- ftruncate,
- futimes,
- lchmod,
- lchown,
- link,
- lstat,
- mkdir,
- mkdtemp,
- open,
- read,
- write,
- readdir,
- readFile,
- writeFile,
- readlink,
- realpath,
- rename,
- stat,
- symlink,
- truncate,
- unlink,
- utimes,
- lutimes,
- rm,
- rmdir,
- constants,
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/http.exports.js b/src/bun.js/http.exports.js
deleted file mode 100644
index d9c44836b..000000000
--- a/src/bun.js/http.exports.js
+++ /dev/null
@@ -1,1814 +0,0 @@
-const { EventEmitter } = import.meta.require("node:events");
-const { isIPv6 } = import.meta.require("node:net");
-const { Readable, Writable, Duplex } = import.meta.require("node:stream");
-const { URL } = import.meta.require("node:url");
-const { newArrayWithSize, String, Object, Array } = import.meta.primordials;
-const { isTypedArray } = import.meta.require("util/types");
-
-const globalReportError = globalThis.reportError;
-const setTimeout = globalThis.setTimeout;
-const fetch = Bun.fetch;
-const nop = () => {};
-
-const __DEBUG__ = process.env.__DEBUG__;
-const debug = __DEBUG__ ? (...args) => console.log("node:http", ...args) : nop;
-
-const kEmptyObject = Object.freeze(Object.create(null));
-const kOutHeaders = Symbol.for("kOutHeaders");
-const kEndCalled = Symbol.for("kEndCalled");
-const kAbortController = Symbol.for("kAbortController");
-const kClearTimeout = Symbol("kClearTimeout");
-
-const kCorked = Symbol.for("kCorked");
-const searchParamsSymbol = Symbol.for("query"); // This is the symbol used in Node
-
-// Primordials
-const StringPrototypeSlice = String.prototype.slice;
-const StringPrototypeStartsWith = String.prototype.startsWith;
-const StringPrototypeToUpperCase = String.prototype.toUpperCase;
-const StringPrototypeIncludes = String.prototype.includes;
-const StringPrototypeCharCodeAt = String.prototype.charCodeAt;
-const StringPrototypeIndexOf = String.prototype.indexOf;
-const ArrayIsArray = Array.isArray;
-const RegExpPrototypeExec = RegExp.prototype.exec;
-const ObjectAssign = Object.assign;
-const ObjectPrototypeHasOwnProperty = Object.prototype.hasOwnProperty;
-
-const INVALID_PATH_REGEX = /[^\u0021-\u00ff]/;
-const NODE_HTTP_WARNING =
- "WARN: Agent is mostly unused in Bun's implementation of http. If you see strange behavior, this is probably the cause.";
-
-var _globalAgent;
-var _defaultHTTPSAgent;
-var kInternalRequest = Symbol("kInternalRequest");
-var kInternalSocketData = Symbol.for("::bunternal::");
-
-const kEmptyBuffer = Buffer.alloc(0);
-
-function isValidTLSArray(obj) {
- if (typeof obj === "string" || isTypedArray(obj) || obj instanceof ArrayBuffer || obj instanceof Blob) return true;
- if (Array.isArray(obj)) {
- for (var i = 0; i < obj.length; i++) {
- if (typeof obj !== "string" && !isTypedArray(obj) && !(obj instanceof ArrayBuffer) && !(obj instanceof Blob))
- return false;
- }
- return true;
- }
-}
-
-function getHeader(headers, name) {
- if (!headers) return;
- const result = headers.get(name);
- return result == null ? undefined : result;
-}
-
-var FakeSocket = class Socket extends Duplex {
- bytesRead = 0;
- bytesWritten = 0;
- connecting = false;
- remoteAddress = null;
- localAddress = "127.0.0.1";
- remotePort;
- timeout = 0;
-
- isServer = false;
-
- address() {
- return {
- address: this.localAddress,
- family: this.localFamily,
- port: this.localPort,
- };
- }
-
- get bufferSize() {
- return this.writableLength;
- }
-
- connect(port, host, connectListener) {
- return this;
- }
-
- _destroy(err, callback) {}
-
- _final(callback) {}
-
- get localAddress() {
- return "127.0.0.1";
- }
-
- get localFamily() {
- return "IPv4";
- }
-
- get localPort() {
- return 80;
- }
-
- get pending() {
- return this.connecting;
- }
-
- _read(size) {}
-
- get readyState() {
- if (this.connecting) return "opening";
- if (this.readable) {
- return this.writable ? "open" : "readOnly";
- } else {
- return this.writable ? "writeOnly" : "closed";
- }
- }
-
- ref() {}
-
- get remoteFamily() {
- return "IPv4";
- }
-
- resetAndDestroy() {}
-
- setKeepAlive(enable = false, initialDelay = 0) {}
-
- setNoDelay(noDelay = true) {
- return this;
- }
-
- setTimeout(timeout, callback) {
- return this;
- }
-
- unref() {}
-
- _write(chunk, encoding, callback) {}
-};
-
-export function createServer(options, callback) {
- return new Server(options, callback);
-}
-
-export class Agent extends EventEmitter {
- #defaultPort = 80;
- #protocol = "http:";
- #options;
- #requests;
- #sockets;
- #freeSockets;
-
- #keepAliveMsecs;
- #keepAlive;
- #maxSockets;
- #maxFreeSockets;
- #scheduling;
- #maxTotalSockets;
- #totalSocketCount;
-
- #fakeSocket;
-
- static get globalAgent() {
- return (_globalAgent ??= new Agent());
- }
-
- static get defaultMaxSockets() {
- return Infinity;
- }
-
- constructor(options = kEmptyObject) {
- super();
- this.#options = options = { ...options, path: null };
- if (options.noDelay === undefined) options.noDelay = true;
-
- // Don't confuse net and make it think that we're connecting to a pipe
- this.#requests = kEmptyObject;
- this.#sockets = kEmptyObject;
- this.#freeSockets = kEmptyObject;
-
- this.#keepAliveMsecs = options.keepAliveMsecs || 1000;
- this.#keepAlive = options.keepAlive || false;
- this.#maxSockets = options.maxSockets || Agent.defaultMaxSockets;
- this.#maxFreeSockets = options.maxFreeSockets || 256;
- this.#scheduling = options.scheduling || "lifo";
- this.#maxTotalSockets = options.maxTotalSockets;
- this.#totalSocketCount = 0;
- this.#defaultPort = options.defaultPort || 80;
- this.#protocol = options.protocol || "http:";
- }
-
- get defaultPort() {
- return this.#defaultPort;
- }
-
- get protocol() {
- return this.#protocol;
- }
-
- get requests() {
- return this.#requests;
- }
-
- get sockets() {
- return this.#sockets;
- }
-
- get freeSockets() {
- return this.#freeSockets;
- }
-
- get options() {
- return this.#options;
- }
-
- get keepAliveMsecs() {
- return this.#keepAliveMsecs;
- }
-
- get keepAlive() {
- return this.#keepAlive;
- }
-
- get maxSockets() {
- return this.#maxSockets;
- }
-
- get maxFreeSockets() {
- return this.#maxFreeSockets;
- }
-
- get scheduling() {
- return this.#scheduling;
- }
-
- get maxTotalSockets() {
- return this.#maxTotalSockets;
- }
-
- get totalSocketCount() {
- return this.#totalSocketCount;
- }
-
- createConnection() {
- debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.createConnection is a no-op, returns fake socket");
- return (this.#fakeSocket ??= new FakeSocket());
- }
-
- getName(options = kEmptyObject) {
- let name = `http:${options.host || "localhost"}:`;
- if (options.port) name += options.port;
- name += ":";
- if (options.localAddress) name += options.localAddress;
- // Pacify parallel/test-http-agent-getname by only appending
- // the ':' when options.family is set.
- if (options.family === 4 || options.family === 6) name += `:${options.family}`;
- if (options.socketPath) name += `:${options.socketPath}`;
- return name;
- }
-
- addRequest() {
- debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.addRequest is a no-op");
- }
-
- createSocket(req, options, cb) {
- debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.createSocket returns fake socket");
- cb(null, (this.#fakeSocket ??= new FakeSocket()));
- }
-
- removeSocket() {
- debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.removeSocket is a no-op");
- }
-
- keepSocketAlive() {
- debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.keepSocketAlive is a no-op");
-
- return true;
- }
-
- reuseSocket() {
- debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.reuseSocket is a no-op");
- }
-
- destroy() {
- debug(`${NODE_HTTP_WARNING}\n`, "WARN: Agent.destroy is a no-op");
- }
-}
-function emitListeningNextTick(self, onListen, err, hostname, port) {
- if (typeof onListen === "function") {
- try {
- onListen(err, hostname, port);
- } catch (err) {
- self.emit("error", err);
- }
- }
-
- self.listening = !err;
-
- if (err) {
- self.emit("error", err);
- } else {
- self.emit("listening", hostname, port);
- }
-}
-
-export class Server extends EventEmitter {
- #server;
- #options;
- #tls;
- #is_tls = false;
- listening = false;
-
- constructor(options, callback) {
- super();
-
- if (typeof options === "function") {
- callback = options;
- options = {};
- } else if (options == null || typeof options === "object") {
- options = { ...options };
- this.#tls = null;
- let key = options.key;
- if (key) {
- if (!isValidTLSArray(key)) {
- throw new TypeError(
- "key argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.#is_tls = true;
- }
- let cert = options.cert;
- if (cert) {
- if (!isValidTLSArray(cert)) {
- throw new TypeError(
- "cert argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.#is_tls = true;
- }
-
- let ca = options.ca;
- if (ca) {
- if (!isValidTLSArray(ca)) {
- throw new TypeError(
- "ca argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.#is_tls = true;
- }
- let passphrase = options.passphrase;
- if (passphrase && typeof passphrase !== "string") {
- throw new TypeError("passphrase argument must be an string");
- }
-
- let serverName = options.servername;
- if (serverName && typeof serverName !== "string") {
- throw new TypeError("servername argument must be an string");
- }
-
- let secureOptions = options.secureOptions || 0;
- if (secureOptions && typeof secureOptions !== "number") {
- throw new TypeError("secureOptions argument must be an number");
- }
-
- if (this.#is_tls) {
- this.#tls = {
- serverName,
- key: key,
- cert: cert,
- ca: ca,
- passphrase: passphrase,
- secureOptions: secureOptions,
- };
- } else {
- this.#tls = null;
- }
- } else {
- throw new Error("bun-http-polyfill: invalid arguments");
- }
-
- this.#options = options;
-
- if (callback) this.on("request", callback);
- }
-
- closeAllConnections() {
- const server = this.#server;
- if (!server) {
- return;
- }
- this.#server = undefined;
- server.stop(true);
- this.emit("close");
- }
-
- closeIdleConnections() {
- // not actually implemented
- }
-
- close(optionalCallback) {
- const server = this.#server;
- if (!server) {
- if (typeof optionalCallback === "function")
- process.nextTick(optionalCallback, new Error("Server is not running"));
- return;
- }
- this.#server = undefined;
- if (typeof optionalCallback === "function") this.once("close", optionalCallback);
- server.stop();
- this.emit("close");
- }
-
- address() {
- if (!this.#server) return null;
-
- const address = this.#server.hostname;
- return {
- address,
- family: isIPv6(address) ? "IPv6" : "IPv4",
- port: this.#server.port,
- };
- }
-
- listen(port, host, backlog, onListen) {
- const server = this;
- if (typeof host === "function") {
- onListen = host;
- host = undefined;
- }
-
- if (typeof port === "function") {
- onListen = port;
- } else if (typeof port === "object") {
- port?.signal?.addEventListener("abort", () => {
- this.close();
- });
-
- host = port?.host;
- port = port?.port;
-
- if (typeof port?.callback === "function") onListen = port?.callback;
- }
-
- if (typeof backlog === "function") {
- onListen = backlog;
- }
-
- const ResponseClass = this.#options.ServerResponse || ServerResponse;
- const RequestClass = this.#options.IncomingMessage || IncomingMessage;
-
- try {
- const tls = this.#tls;
- if (tls) {
- this.serverName = tls.serverName || host || "localhost";
- }
- this.#server = Bun.serve({
- tls,
- port,
- hostname: host,
- // Bindings to be used for WS Server
- websocket: {
- open(ws) {
- ws.data.open(ws);
- },
- message(ws, message) {
- ws.data.message(ws, message);
- },
- close(ws, code, reason) {
- ws.data.close(ws, code, reason);
- },
- drain(ws) {
- ws.data.drain(ws);
- },
- },
- fetch(req, _server) {
- var pendingResponse;
- var pendingError;
- var rejectFunction, resolveFunction;
- var reject = err => {
- if (pendingError) return;
- pendingError = err;
- if (rejectFunction) rejectFunction(err);
- };
-
- var reply = function (resp) {
- if (pendingResponse) return;
- pendingResponse = resp;
- if (resolveFunction) resolveFunction(resp);
- };
-
- const http_req = new RequestClass(req);
- const http_res = new ResponseClass({ reply, req: http_req });
-
- http_req.once("error", err => reject(err));
- http_res.once("error", err => reject(err));
-
- const upgrade = req.headers.get("upgrade");
- if (upgrade) {
- const socket = new FakeSocket();
- socket[kInternalSocketData] = [_server, http_res, req];
- server.emit("upgrade", http_req, socket, kEmptyBuffer);
- } else {
- server.emit("request", http_req, http_res);
- }
-
- if (pendingError) {
- throw pendingError;
- }
-
- if (pendingResponse) {
- return pendingResponse;
- }
-
- return new Promise((resolve, reject) => {
- resolveFunction = resolve;
- rejectFunction = reject;
- });
- },
- });
- setTimeout(emitListeningNextTick, 1, this, onListen, null, this.#server.hostname, this.#server.port);
- } catch (err) {
- setTimeout(emitListeningNextTick, 1, this, onListen, err);
- }
-
- return this;
- }
- setTimeout(msecs, callback) {}
-}
-
-function assignHeaders(object, req) {
- var headers = req.headers.toJSON();
- const rawHeaders = newArrayWithSize(req.headers.count * 2);
- var i = 0;
- for (const key in headers) {
- rawHeaders[i++] = key;
- rawHeaders[i++] = headers[key];
- }
- object.headers = headers;
- object.rawHeaders = rawHeaders;
-}
-function destroyBodyStreamNT(bodyStream) {
- bodyStream.destroy();
-}
-
-var defaultIncomingOpts = { type: "request" };
-
-function getDefaultHTTPSAgent() {
- return (_defaultHTTPSAgent ??= new Agent({ defaultPort: 443, protocol: "https:" }));
-}
-
-export class IncomingMessage extends Readable {
- constructor(req, defaultIncomingOpts) {
- const method = req.method;
-
- super();
-
- const url = new URL(req.url);
-
- var { type = "request", [kInternalRequest]: nodeReq } = defaultIncomingOpts || {};
-
- this.#noBody =
- type === "request" // TODO: Add logic for checking for body on response
- ? "GET" === method ||
- "HEAD" === method ||
- "TRACE" === method ||
- "CONNECT" === method ||
- "OPTIONS" === method ||
- (parseInt(req.headers.get("Content-Length") || "") || 0) === 0
- : false;
-
- this.#req = req;
- this.method = method;
- this.#type = type;
- this.complete = !!this.#noBody;
-
- this.#bodyStream = null;
- const socket = new FakeSocket();
- socket.remoteAddress = url.hostname;
- socket.remotePort = url.port;
- this.#fakeSocket = socket;
-
- this.url = url.pathname + url.search;
- this.#nodeReq = nodeReq;
- assignHeaders(this, req);
- }
-
- headers;
- rawHeaders;
- _consuming = false;
- _dumped = false;
- #bodyStream = null;
- #fakeSocket = undefined;
- #noBody = false;
- #aborted = false;
- #req;
- url;
- #type;
- #nodeReq;
-
- get req() {
- return this.#nodeReq;
- }
-
- _construct(callback) {
- // TODO: streaming
- if (this.#type === "response" || this.#noBody) {
- callback();
- return;
- }
-
- const contentLength = this.#req.headers.get("content-length");
- const length = contentLength ? parseInt(contentLength, 10) : 0;
- if (length === 0) {
- this.#noBody = true;
- callback();
- return;
- }
-
- callback();
- }
-
- #closeBodyStream() {
- debug("closeBodyStream()");
- var bodyStream = this.#bodyStream;
- if (bodyStream == null) return;
- this.complete = true;
- this.#bodyStream = undefined;
- this.push(null);
- // process.nextTick(destroyBodyStreamNT, bodyStream);
- }
-
- _read(size) {
- if (this.#noBody) {
- this.push(null);
- this.complete = true;
- } else if (this.#bodyStream == null) {
- const contentLength = this.#req.headers.get("content-length");
- let remaining = contentLength ? parseInt(contentLength, 10) : 0;
- this.#bodyStream = Readable.fromWeb(this.#req.body, {
- highWaterMark: Number.isFinite(remaining) ? Math.min(remaining, 16384) : 16384,
- });
-
- const isBodySizeKnown = remaining > 0 && Number.isSafeInteger(remaining);
-
- if (isBodySizeKnown) {
- this.#bodyStream.on("data", chunk => {
- debug("body size known", remaining);
- this.push(chunk);
- // when we are streaming a known body size, automatically close the stream when we have read enough
- remaining -= chunk?.byteLength ?? 0;
- if (remaining <= 0) {
- this.#closeBodyStream();
- }
- });
- } else {
- this.#bodyStream.on("data", chunk => {
- this.push(chunk);
- });
- }
-
- // this can be closed by the time we get here if enough data was synchronously available
- this.#bodyStream &&
- this.#bodyStream.on("end", () => {
- this.#closeBodyStream();
- });
- } else {
- // this.#bodyStream.read(size);
- }
- }
-
- get aborted() {
- return this.#aborted;
- }
-
- abort() {
- if (this.#aborted) return;
- this.#aborted = true;
-
- this.#closeBodyStream();
- }
-
- get connection() {
- return this.#fakeSocket;
- }
-
- get statusCode() {
- return this.#req.status;
- }
-
- get statusMessage() {
- return STATUS_CODES[this.#req.status];
- }
-
- get httpVersion() {
- return "1.1";
- }
-
- get rawTrailers() {
- return [];
- }
-
- get httpVersionMajor() {
- return 1;
- }
-
- get httpVersionMinor() {
- return 1;
- }
-
- get trailers() {
- return kEmptyObject;
- }
-
- get socket() {
- return (this.#fakeSocket ??= new FakeSocket());
- }
-
- set socket(val) {
- this.#fakeSocket = val;
- }
-
- setTimeout(msecs, callback) {
- throw new Error("not implemented");
- }
-}
-
-function emitErrorNt(msg, err, callback) {
- callback(err);
- if (typeof msg.emit === "function" && !msg._closed) {
- msg.emit("error", err);
- }
-}
-
-function onError(self, err, cb) {
- process.nextTick(() => emitErrorNt(self, err, cb));
-}
-
-function write_(msg, chunk, encoding, callback, fromEnd) {
- if (typeof callback !== "function") callback = nop;
-
- let len;
- if (chunk === null) {
- // throw new ERR_STREAM_NULL_VALUES();
- throw new Error("ERR_STREAM_NULL_VALUES");
- } else if (typeof chunk === "string") {
- len = Buffer.byteLength(chunk, encoding);
- } else {
- throw new Error("Invalid arg type for chunk");
- // throw new ERR_INVALID_ARG_TYPE(
- // "chunk",
- // ["string", "Buffer", "Uint8Array"],
- // chunk,
- // );
- }
-
- let err;
- if (msg.finished) {
- // err = new ERR_STREAM_WRITE_AFTER_END();
- err = new Error("ERR_STREAM_WRITE_AFTER_END");
- } else if (msg.destroyed) {
- // err = new ERR_STREAM_DESTROYED("write");
- err = new Error("ERR_STREAM_DESTROYED");
- }
-
- if (err) {
- if (!msg.destroyed) {
- onError(msg, err, callback);
- } else {
- process.nextTick(callback, err);
- }
- return false;
- }
-
- if (!msg._header) {
- if (fromEnd) {
- msg._contentLength = len;
- }
- // msg._implicitHeader();
- }
-
- if (!msg._hasBody) {
- debug("This type of response MUST NOT have a body. " + "Ignoring write() calls.");
- process.nextTick(callback);
- return true;
- }
-
- // if (!fromEnd && msg.socket && !msg.socket.writableCorked) {
- // msg.socket.cork();
- // process.nextTick(connectionCorkNT, msg.socket);
- // }
-
- return true;
-}
-
-export class OutgoingMessage extends Writable {
- #headers;
- headersSent = false;
- sendDate = true;
- req;
-
- #finished = false;
- [kEndCalled] = false;
-
- #fakeSocket;
- #timeoutTimer = null;
- [kAbortController] = null;
-
- // For compat with IncomingRequest
- get headers() {
- if (!this.#headers) return kEmptyObject;
- return this.#headers.toJSON();
- }
-
- get shouldKeepAlive() {
- return true;
- }
-
- get chunkedEncoding() {
- return false;
- }
-
- set chunkedEncoding(value) {
- // throw new Error('not implemented');
- }
-
- set shouldKeepAlive(value) {
- // throw new Error('not implemented');
- }
-
- get useChunkedEncodingByDefault() {
- return true;
- }
-
- set useChunkedEncodingByDefault(value) {
- // throw new Error('not implemented');
- }
-
- get socket() {
- return (this.#fakeSocket ??= new FakeSocket());
- }
-
- set socket(val) {
- this.#fakeSocket = val;
- }
-
- get connection() {
- return this.socket;
- }
-
- get finished() {
- return this.#finished;
- }
-
- appendHeader(name, value) {
- var headers = (this.#headers ??= new Headers());
- headers.append(name, value);
- }
-
- flushHeaders() {}
-
- getHeader(name) {
- return getHeader(this.#headers, name);
- }
-
- getHeaders() {
- if (!this.#headers) return kEmptyObject;
- return this.#headers.toJSON();
- }
-
- getHeaderNames() {
- var headers = this.#headers;
- if (!headers) return [];
- return Array.from(headers.keys());
- }
-
- removeHeader(name) {
- if (!this.#headers) return;
- this.#headers.delete(name);
- }
-
- setHeader(name, value) {
- var headers = (this.#headers ??= new Headers());
- headers.set(name, value);
- return this;
- }
-
- hasHeader(name) {
- if (!this.#headers) return false;
- return this.#headers.has(name);
- }
-
- addTrailers(headers) {
- throw new Error("not implemented");
- }
-
- [kClearTimeout]() {
- if (this.#timeoutTimer) {
- clearTimeout(this.#timeoutTimer);
- this.#timeoutTimer = null;
- }
- }
-
- setTimeout(msecs, callback) {
- if (this.#timeoutTimer) return this;
- if (callback) {
- this.on("timeout", callback);
- }
-
- this.#timeoutTimer = setTimeout(async () => {
- this.#timeoutTimer = null;
- this[kAbortController]?.abort();
- this.emit("timeout");
- }, msecs);
-
- return this;
- }
-}
-
-export class ServerResponse extends Writable {
- constructor({ req, reply }) {
- super();
- this.req = req;
- this._reply = reply;
- this.sendDate = true;
- this.statusCode = 200;
- this.headersSent = false;
- this.statusMessage = undefined;
- this.#controller = undefined;
- this.#firstWrite = undefined;
- this._writableState.decodeStrings = false;
- this.#deferred = undefined;
- }
-
- req;
- _reply;
- sendDate;
- statusCode;
- #headers;
- headersSent = false;
- statusMessage;
- #controller;
- #firstWrite;
- _sent100 = false;
- _defaultKeepAlive = false;
- _removedConnection = false;
- _removedContLen = false;
- #deferred = undefined;
- #finished = false;
-
- _write(chunk, encoding, callback) {
- if (!this.#firstWrite && !this.headersSent) {
- this.#firstWrite = chunk;
- callback();
- return;
- }
-
- this.#ensureReadableStreamController(controller => {
- controller.write(chunk);
- callback();
- });
- }
-
- _writev(chunks, callback) {
- if (chunks.length === 1 && !this.headersSent && !this.#firstWrite) {
- this.#firstWrite = chunks[0].chunk;
- callback();
- return;
- }
-
- this.#ensureReadableStreamController(controller => {
- for (const chunk of chunks) {
- controller.write(chunk.chunk);
- }
-
- callback();
- });
- }
-
- #ensureReadableStreamController(run) {
- var thisController = this.#controller;
- if (thisController) return run(thisController);
- this.headersSent = true;
- var firstWrite = this.#firstWrite;
- this.#firstWrite = undefined;
- this._reply(
- new Response(
- new ReadableStream({
- type: "direct",
- pull: controller => {
- this.#controller = controller;
- if (firstWrite) controller.write(firstWrite);
- firstWrite = undefined;
- run(controller);
- if (!this.#finished) {
- return new Promise(resolve => {
- this.#deferred = resolve;
- });
- }
- },
- }),
- {
- headers: this.#headers,
- status: this.statusCode,
- statusText: this.statusMessage ?? STATUS_CODES[this.statusCode],
- },
- ),
- );
- }
-
- _final(callback) {
- if (!this.headersSent) {
- var data = this.#firstWrite || "";
- this.#firstWrite = undefined;
- this.#finished = true;
- this._reply(
- new Response(data, {
- headers: this.#headers,
- status: this.statusCode,
- statusText: this.statusMessage ?? STATUS_CODES[this.statusCode],
- }),
- );
- callback && callback();
- return;
- }
-
- this.#finished = true;
- this.#ensureReadableStreamController(controller => {
- controller.end();
-
- callback();
- var deferred = this.#deferred;
- if (deferred) {
- this.#deferred = undefined;
- deferred();
- }
- });
- }
-
- writeProcessing() {
- throw new Error("not implemented");
- }
-
- addTrailers(headers) {
- throw new Error("not implemented");
- }
-
- assignSocket(socket) {
- throw new Error("not implemented");
- }
-
- detachSocket(socket) {
- throw new Error("not implemented");
- }
-
- writeContinue(callback) {
- throw new Error("not implemented");
- }
-
- setTimeout(msecs, callback) {
- throw new Error("not implemented");
- }
-
- get shouldKeepAlive() {
- return true;
- }
-
- get chunkedEncoding() {
- return false;
- }
-
- set chunkedEncoding(value) {
- // throw new Error('not implemented');
- }
-
- set shouldKeepAlive(value) {
- // throw new Error('not implemented');
- }
-
- get useChunkedEncodingByDefault() {
- return true;
- }
-
- set useChunkedEncodingByDefault(value) {
- // throw new Error('not implemented');
- }
-
- appendHeader(name, value) {
- var headers = (this.#headers ??= new Headers());
- headers.append(name, value);
- }
-
- flushHeaders() {}
-
- getHeader(name) {
- return getHeader(this.#headers, name);
- }
-
- getHeaders() {
- var headers = this.#headers;
- if (!headers) return kEmptyObject;
- return headers.toJSON();
- }
-
- getHeaderNames() {
- var headers = this.#headers;
- if (!headers) return [];
- return Array.from(headers.keys());
- }
-
- removeHeader(name) {
- if (!this.#headers) return;
- this.#headers.delete(name);
- }
-
- setHeader(name, value) {
- var headers = (this.#headers ??= new Headers());
- headers.set(name, value);
- return this;
- }
-
- hasHeader(name) {
- if (!this.#headers) return false;
- return this.#headers.has(name);
- }
-
- writeHead(statusCode, statusMessage, headers) {
- _writeHead(statusCode, statusMessage, headers, this);
-
- return this;
- }
-}
-
-export class ClientRequest extends OutgoingMessage {
- #timeout;
- #res = null;
- #upgradeOrConnect = false;
- #parser = null;
- #maxHeadersCount = null;
- #reusedSocket = false;
- #host;
- #protocol;
- #method;
- #port;
- #useDefaultPort;
- #joinDuplicateHeaders;
- #maxHeaderSize;
- #agent = _globalAgent;
- #path;
- #socketPath;
-
- #body = null;
- #fetchRequest;
- #signal = null;
- [kAbortController] = null;
- #timeoutTimer = null;
- #options;
- #finished;
-
- get path() {
- return this.#path;
- }
-
- get port() {
- return this.#port;
- }
-
- get method() {
- return this.#method;
- }
-
- get host() {
- return this.#host;
- }
-
- get protocol() {
- return this.#protocol;
- }
-
- _write(chunk, encoding, callback) {
- var body = this.#body;
- if (!body) {
- this.#body = chunk;
- callback();
- return;
- }
- this.#body = body + chunk;
- callback();
- }
-
- _writev(chunks, callback) {
- var body = this.#body;
- if (!body) {
- this.#body = chunks.join();
- callback();
- return;
- }
- this.#body = body + chunks.join();
- callback();
- }
-
- _final(callback) {
- this.#finished = true;
- this[kAbortController] = new AbortController();
- this[kAbortController].signal.addEventListener("abort", () => {
- this[kClearTimeout]();
- });
- if (this.#signal?.aborted) {
- this[kAbortController].abort();
- }
-
- var method = this.#method,
- body = this.#body;
-
- try {
- this.#fetchRequest = fetch(
- `${this.#protocol}//${this.#host}${this.#useDefaultPort ? "" : ":" + this.#port}${this.#path}`,
- {
- method,
- headers: this.getHeaders(),
- body: body && method !== "GET" && method !== "HEAD" && method !== "OPTIONS" ? body : undefined,
- redirect: "manual",
- verbose: Boolean(__DEBUG__),
- signal: this[kAbortController].signal,
- },
- )
- .then(response => {
- var res = (this.#res = new IncomingMessage(response, {
- type: "response",
- [kInternalRequest]: this,
- }));
- this.emit("response", res);
- })
- .catch(err => {
- if (__DEBUG__) globalReportError(err);
- this.emit("error", err);
- })
- .finally(() => {
- this.#fetchRequest = null;
- this[kClearTimeout]();
- });
- } catch (err) {
- if (__DEBUG__) globalReportError(err);
- this.emit("error", err);
- } finally {
- callback();
- }
- }
-
- get aborted() {
- return this.#signal?.aborted || !!this[kAbortController]?.signal.aborted;
- }
-
- abort() {
- if (this.aborted) return;
- this[kAbortController].abort();
- // TODO: Close stream if body streaming
- }
-
- constructor(input, options, cb) {
- super();
-
- if (typeof input === "string") {
- const urlStr = input;
- try {
- var urlObject = new URL(urlStr);
- } catch (e) {
- throw new TypeError(`Invalid URL: ${urlStr}`);
- }
- input = urlToHttpOptions(urlObject);
- } else if (input && typeof input === "object" && input instanceof URL) {
- // url.URL instance
- input = urlToHttpOptions(input);
- } else {
- cb = options;
- options = input;
- input = null;
- }
-
- if (typeof options === "function") {
- cb = options;
- options = input || kEmptyObject;
- } else {
- options = ObjectAssign(input || {}, options);
- }
-
- var defaultAgent = options._defaultAgent || Agent.globalAgent;
-
- let protocol = options.protocol;
- if (!protocol) {
- if (options.port === 443) {
- protocol = "https:";
- } else {
- protocol = defaultAgent.protocol || "http:";
- }
- this.#protocol = protocol;
- }
-
- switch (this.#agent?.protocol) {
- case undefined: {
- break;
- }
- case "http:": {
- if (protocol === "https:") {
- defaultAgent = this.#agent = getDefaultHTTPSAgent();
- break;
- }
- }
- case "https:": {
- if (protocol === "https") {
- defaultAgent = this.#agent = Agent.globalAgent;
- break;
- }
- }
- default: {
- break;
- }
- }
-
- if (options.path) {
- const path = String(options.path);
- if (RegExpPrototypeExec.call(INVALID_PATH_REGEX, path) !== null) {
- debug('Path contains unescaped characters: "%s"', path);
- throw new Error("Path contains unescaped characters");
- // throw new ERR_UNESCAPED_CHARACTERS("Request path");
- }
- }
-
- // Since we don't implement Agent, we don't need this
- if (protocol !== "http:" && protocol !== "https:" && protocol) {
- const expectedProtocol = defaultAgent?.protocol ?? "http:";
- throw new Error(`Protocol mismatch. Expected: ${expectedProtocol}. Got: ${protocol}`);
- // throw new ERR_INVALID_PROTOCOL(protocol, expectedProtocol);
- }
-
- const defaultPort = protocol === "https:" ? 443 : 80;
-
- this.#port = options.port || options.defaultPort || this.#agent?.defaultPort || defaultPort;
- this.#useDefaultPort = this.#port === defaultPort;
- const host =
- (this.#host =
- options.host =
- validateHost(options.hostname, "hostname") || validateHost(options.host, "host") || "localhost");
-
- // const setHost = options.setHost === undefined || Boolean(options.setHost);
-
- this.#socketPath = options.socketPath;
-
- if (options.timeout !== undefined) this.setTimeout(options.timeout, null);
-
- const signal = options.signal;
- if (signal) {
- //We still want to control abort function and timeout so signal call our AbortController
- signal.addEventListener("abort", () => {
- this[kAbortController]?.abort();
- });
- this.#signal = signal;
- }
- let method = options.method;
- const methodIsString = typeof method === "string";
- if (method !== null && method !== undefined && !methodIsString) {
- // throw new ERR_INVALID_ARG_TYPE("options.method", "string", method);
- throw new Error("ERR_INVALID_ARG_TYPE: options.method");
- }
-
- if (methodIsString && method) {
- if (!checkIsHttpToken(method)) {
- // throw new ERR_INVALID_HTTP_TOKEN("Method", method);
- throw new Error("ERR_INVALID_HTTP_TOKEN: Method");
- }
- method = this.#method = StringPrototypeToUpperCase.call(method);
- } else {
- method = this.#method = "GET";
- }
-
- const _maxHeaderSize = options.maxHeaderSize;
- // TODO: Validators
- // if (maxHeaderSize !== undefined)
- // validateInteger(maxHeaderSize, "maxHeaderSize", 0);
- this.#maxHeaderSize = _maxHeaderSize;
-
- // const insecureHTTPParser = options.insecureHTTPParser;
- // if (insecureHTTPParser !== undefined) {
- // validateBoolean(insecureHTTPParser, 'options.insecureHTTPParser');
- // }
-
- // this.insecureHTTPParser = insecureHTTPParser;
- var _joinDuplicateHeaders = options.joinDuplicateHeaders;
- if (_joinDuplicateHeaders !== undefined) {
- // TODO: Validators
- // validateBoolean(
- // options.joinDuplicateHeaders,
- // "options.joinDuplicateHeaders",
- // );
- }
-
- this.#joinDuplicateHeaders = _joinDuplicateHeaders;
-
- this.#path = options.path || "/";
- if (cb) {
- this.once("response", cb);
- }
-
- __DEBUG__ &&
- debug(`new ClientRequest: ${this.#method} ${this.#protocol}//${this.#host}:${this.#port}${this.#path}`);
-
- // if (
- // method === "GET" ||
- // method === "HEAD" ||
- // method === "DELETE" ||
- // method === "OPTIONS" ||
- // method === "TRACE" ||
- // method === "CONNECT"
- // ) {
- // this.useChunkedEncodingByDefault = false;
- // } else {
- // this.useChunkedEncodingByDefault = true;
- // }
-
- this.#finished = false;
- this.#res = null;
- this.#upgradeOrConnect = false;
- this.#parser = null;
- this.#maxHeadersCount = null;
- this.#reusedSocket = false;
- this.#host = host;
- this.#protocol = protocol;
- this.#timeoutTimer = null;
- const headersArray = ArrayIsArray(headers);
- if (!headersArray) {
- var headers = options.headers;
- if (headers) {
- for (let key in headers) {
- this.setHeader(key, headers[key]);
- }
- }
-
- // if (host && !this.getHeader("host") && setHost) {
- // let hostHeader = host;
-
- // // For the Host header, ensure that IPv6 addresses are enclosed
- // // in square brackets, as defined by URI formatting
- // // https://tools.ietf.org/html/rfc3986#section-3.2.2
- // const posColon = StringPrototypeIndexOf.call(hostHeader, ":");
- // if (
- // posColon !== -1 &&
- // StringPrototypeIncludes(hostHeader, ":", posColon + 1) &&
- // StringPrototypeCharCodeAt(hostHeader, 0) !== 91 /* '[' */
- // ) {
- // hostHeader = `[${hostHeader}]`;
- // }
-
- // if (port && +port !== defaultPort) {
- // hostHeader += ":" + port;
- // }
- // this.setHeader("Host", hostHeader);
- // }
-
- var auth = options.auth;
- if (auth && !this.getHeader("Authorization")) {
- this.setHeader("Authorization", "Basic " + Buffer.from(auth).toString("base64"));
- }
-
- // if (this.getHeader("expect")) {
- // if (this._header) {
- // throw new ERR_HTTP_HEADERS_SENT("render");
- // }
-
- // this._storeHeader(
- // this.method + " " + this.path + " HTTP/1.1\r\n",
- // this[kOutHeaders],
- // );
- // }
- // } else {
- // this._storeHeader(
- // this.method + " " + this.path + " HTTP/1.1\r\n",
- // options.headers,
- // );
- }
-
- // this[kUniqueHeaders] = parseUniqueHeadersOption(options.uniqueHeaders);
-
- var optsWithoutSignal = options;
- if (optsWithoutSignal.signal) {
- optsWithoutSignal = ObjectAssign({}, options);
- delete optsWithoutSignal.signal;
- }
- this.#options = optsWithoutSignal;
-
- var timeout = options.timeout;
- if (timeout) {
- this.setTimeout(timeout);
- }
- }
-
- setSocketKeepAlive(enable = true, initialDelay = 0) {
- __DEBUG__ && debug(`${NODE_HTTP_WARNING}\n`, "WARN: ClientRequest.setSocketKeepAlive is a no-op");
- }
-
- setNoDelay(noDelay = true) {
- __DEBUG__ && debug(`${NODE_HTTP_WARNING}\n`, "WARN: ClientRequest.setNoDelay is a no-op");
- }
- [kClearTimeout]() {
- if (this.#timeoutTimer) {
- clearTimeout(this.#timeoutTimer);
- this.#timeoutTimer = null;
- }
- }
-
- setTimeout(msecs, callback) {
- if (this.#timeoutTimer) return this;
- if (callback) {
- this.on("timeout", callback);
- }
-
- this.#timeoutTimer = setTimeout(async () => {
- this.#timeoutTimer = null;
- this[kAbortController]?.abort();
- this.emit("timeout");
- }, msecs);
-
- return this;
- }
-}
-
-function urlToHttpOptions(url) {
- var { protocol, hostname, hash, search, pathname, href, port, username, password } = url;
- return {
- protocol,
- hostname:
- typeof hostname === "string" && StringPrototypeStartsWith.call(hostname, "[")
- ? StringPrototypeSlice.call(hostname, 1, -1)
- : hostname,
- hash,
- search,
- pathname,
- path: `${pathname || ""}${search || ""}`,
- href,
- port: port ? Number(port) : protocol === "https:" ? 443 : protocol === "http:" ? 80 : undefined,
- auth: username || password ? `${decodeURIComponent(username)}:${decodeURIComponent(password)}` : undefined,
- };
-}
-
-function validateHost(host, name) {
- if (host !== null && host !== undefined && typeof host !== "string") {
- // throw new ERR_INVALID_ARG_TYPE(
- // `options.${name}`,
- // ["string", "undefined", "null"],
- // host,
- // );
- throw new Error("Invalid arg type in options");
- }
- return host;
-}
-
-const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;
-/**
- * Verifies that the given val is a valid HTTP token
- * per the rules defined in RFC 7230
- * See https://tools.ietf.org/html/rfc7230#section-3.2.6
- */
-function checkIsHttpToken(val) {
- return RegExpPrototypeExec.call(tokenRegExp, val) !== null;
-}
-
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-export const METHODS = [
- "ACL",
- "BIND",
- "CHECKOUT",
- "CONNECT",
- "COPY",
- "DELETE",
- "GET",
- "HEAD",
- "LINK",
- "LOCK",
- "M-SEARCH",
- "MERGE",
- "MKACTIVITY",
- "MKCALENDAR",
- "MKCOL",
- "MOVE",
- "NOTIFY",
- "OPTIONS",
- "PATCH",
- "POST",
- "PROPFIND",
- "PROPPATCH",
- "PURGE",
- "PUT",
- "REBIND",
- "REPORT",
- "SEARCH",
- "SOURCE",
- "SUBSCRIBE",
- "TRACE",
- "UNBIND",
- "UNLINK",
- "UNLOCK",
- "UNSUBSCRIBE",
-];
-
-export const STATUS_CODES = {
- 100: "Continue",
- 101: "Switching Protocols",
- 102: "Processing",
- 103: "Early Hints",
- 200: "OK",
- 201: "Created",
- 202: "Accepted",
- 203: "Non-Authoritative Information",
- 204: "No Content",
- 205: "Reset Content",
- 206: "Partial Content",
- 207: "Multi-Status",
- 208: "Already Reported",
- 226: "IM Used",
- 300: "Multiple Choices",
- 301: "Moved Permanently",
- 302: "Found",
- 303: "See Other",
- 304: "Not Modified",
- 305: "Use Proxy",
- 307: "Temporary Redirect",
- 308: "Permanent Redirect",
- 400: "Bad Request",
- 401: "Unauthorized",
- 402: "Payment Required",
- 403: "Forbidden",
- 404: "Not Found",
- 405: "Method Not Allowed",
- 406: "Not Acceptable",
- 407: "Proxy Authentication Required",
- 408: "Request Timeout",
- 409: "Conflict",
- 410: "Gone",
- 411: "Length Required",
- 412: "Precondition Failed",
- 413: "Payload Too Large",
- 414: "URI Too Long",
- 415: "Unsupported Media Type",
- 416: "Range Not Satisfiable",
- 417: "Expectation Failed",
- 418: "I'm a Teapot",
- 421: "Misdirected Request",
- 422: "Unprocessable Entity",
- 423: "Locked",
- 424: "Failed Dependency",
- 425: "Too Early",
- 426: "Upgrade Required",
- 428: "Precondition Required",
- 429: "Too Many Requests",
- 431: "Request Header Fields Too Large",
- 451: "Unavailable For Legal Reasons",
- 500: "Internal Server Error",
- 501: "Not Implemented",
- 502: "Bad Gateway",
- 503: "Service Unavailable",
- 504: "Gateway Timeout",
- 505: "HTTP Version Not Supported",
- 506: "Variant Also Negotiates",
- 507: "Insufficient Storage",
- 508: "Loop Detected",
- 509: "Bandwidth Limit Exceeded",
- 510: "Not Extended",
- 511: "Network Authentication Required",
-};
-
-function _normalizeArgs(args) {
- let arr;
-
- if (args.length === 0) {
- arr = [{}, null];
- // arr[normalizedArgsSymbol] = true;
- return arr;
- }
-
- const arg0 = args[0];
- let options = {};
- if (typeof arg0 === "object" && arg0 !== null) {
- // (options[...][, cb])
- options = arg0;
- // } else if (isPipeName(arg0)) {
- // (path[...][, cb])
- // options.path = arg0;
- } else {
- // ([port][, host][...][, cb])
- options.port = arg0;
- if (args.length > 1 && typeof args[1] === "string") {
- options.host = args[1];
- }
- }
-
- const cb = args[args.length - 1];
- if (typeof cb !== "function") arr = [options, null];
- else arr = [options, cb];
-
- // arr[normalizedArgsSymbol] = true;
- return arr;
-}
-
-function _writeHead(statusCode, reason, obj, response) {
- statusCode |= 0;
- if (statusCode < 100 || statusCode > 999) {
- throw new Error("status code must be between 100 and 999");
- }
-
- if (typeof reason === "string") {
- // writeHead(statusCode, reasonPhrase[, headers])
- response.statusMessage = reason;
- } else {
- // writeHead(statusCode[, headers])
- if (!response.statusMessage) response.statusMessage = STATUS_CODES[statusCode] || "unknown";
- obj = reason;
- }
- response.statusCode = statusCode;
-
- {
- // Slow-case: when progressive API and header fields are passed.
- let k;
- if (Array.isArray(obj)) {
- if (obj.length % 2 !== 0) {
- throw new Error("raw headers must have an even number of elements");
- }
-
- for (let n = 0; n < obj.length; n += 2) {
- k = obj[n + 0];
- if (k) response.setHeader(k, obj[n + 1]);
- }
- } else if (obj) {
- const keys = Object.keys(obj);
- // Retain for(;;) loop for performance reasons
- // Refs: https://github.com/nodejs/node/pull/30958
- for (let i = 0; i < keys.length; i++) {
- k = keys[i];
- if (k) response.setHeader(k, obj[k]);
- }
- }
- }
-}
-
-/**
- * Makes an HTTP request.
- * @param {string | URL} url
- * @param {HTTPRequestOptions} [options]
- * @param {Function} [cb]
- * @returns {ClientRequest}
- */
-export function request(url, options, cb) {
- return new ClientRequest(url, options, cb);
-}
-
-/**
- * Makes a `GET` HTTP request.
- * @param {string | URL} url
- * @param {HTTPRequestOptions} [options]
- * @param {Function} [cb]
- * @returns {ClientRequest}
- */
-export function get(url, options, cb) {
- const req = request(url, options, cb);
- req.end();
- return req;
-}
-
-var defaultObject = {
- Agent,
- Server,
- METHODS,
- STATUS_CODES,
- createServer,
- ServerResponse,
- IncomingMessage,
- request,
- get,
- maxHeaderSize: 16384,
- // validateHeaderName,
- // validateHeaderValue,
- setMaxIdleHTTPParsers(max) {
- debug(`${NODE_HTTP_WARNING}\n`, "setMaxIdleHTTPParsers() is a no-op");
- },
- get globalAgent() {
- return (_globalAgent ??= new Agent());
- },
- set globalAgent(agent) {},
- [Symbol.for("CommonJS")]: 0,
-};
-
-export default defaultObject;
diff --git a/src/bun.js/http2.exports.js b/src/bun.js/http2.exports.js
deleted file mode 100644
index 9deafbd3f..000000000
--- a/src/bun.js/http2.exports.js
+++ /dev/null
@@ -1,342 +0,0 @@
-// This is a stub! None of this is actually implemented yet.
-
-function hideFromStack(fns) {
- for (const fn of fns) {
- Object.defineProperty(fn, "name", {
- value: "::bunternal::",
- });
- }
-}
-
-class TODO extends Error {
- constructor(messageName) {
- const message = messageName
- ? `node:http2 ${messageName} is not implemented yet in Bun. Track the status and thumbs up the issue: https://github.com/oven-sh/bun/issues/887`
- : `node:http2 is not implemented yet in Bun. Track the status and thumbs up the issue: https://github.com/oven-sh/bun/issues/887`;
- super(message);
- this.name = "TODO";
- }
-}
-
-function notimpl(message) {
- throw new TODO(message);
-}
-
-function connect() {
- notimpl("connect");
-}
-const constants = {
- NGHTTP2_ERR_FRAME_SIZE_ERROR: -522,
- NGHTTP2_SESSION_SERVER: 0,
- NGHTTP2_SESSION_CLIENT: 1,
- NGHTTP2_STREAM_STATE_IDLE: 1,
- NGHTTP2_STREAM_STATE_OPEN: 2,
- NGHTTP2_STREAM_STATE_RESERVED_LOCAL: 3,
- NGHTTP2_STREAM_STATE_RESERVED_REMOTE: 4,
- NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: 5,
- NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: 6,
- NGHTTP2_STREAM_STATE_CLOSED: 7,
- NGHTTP2_FLAG_NONE: 0,
- NGHTTP2_FLAG_END_STREAM: 1,
- NGHTTP2_FLAG_END_HEADERS: 4,
- NGHTTP2_FLAG_ACK: 1,
- NGHTTP2_FLAG_PADDED: 8,
- NGHTTP2_FLAG_PRIORITY: 32,
- DEFAULT_SETTINGS_HEADER_TABLE_SIZE: 4096,
- DEFAULT_SETTINGS_ENABLE_PUSH: 1,
- DEFAULT_SETTINGS_MAX_CONCURRENT_STREAMS: 4294967295,
- DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: 65535,
- DEFAULT_SETTINGS_MAX_FRAME_SIZE: 16384,
- DEFAULT_SETTINGS_MAX_HEADER_LIST_SIZE: 65535,
- DEFAULT_SETTINGS_ENABLE_CONNECT_PROTOCOL: 0,
- MAX_MAX_FRAME_SIZE: 16777215,
- MIN_MAX_FRAME_SIZE: 16384,
- MAX_INITIAL_WINDOW_SIZE: 2147483647,
- NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: 1,
- NGHTTP2_SETTINGS_ENABLE_PUSH: 2,
- NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: 3,
- NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: 4,
- NGHTTP2_SETTINGS_MAX_FRAME_SIZE: 5,
- NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: 6,
- NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: 8,
- PADDING_STRATEGY_NONE: 0,
- PADDING_STRATEGY_ALIGNED: 1,
- PADDING_STRATEGY_MAX: 2,
- PADDING_STRATEGY_CALLBACK: 1,
- NGHTTP2_NO_ERROR: 0,
- NGHTTP2_PROTOCOL_ERROR: 1,
- NGHTTP2_INTERNAL_ERROR: 2,
- NGHTTP2_FLOW_CONTROL_ERROR: 3,
- NGHTTP2_SETTINGS_TIMEOUT: 4,
- NGHTTP2_STREAM_CLOSED: 5,
- NGHTTP2_FRAME_SIZE_ERROR: 6,
- NGHTTP2_REFUSED_STREAM: 7,
- NGHTTP2_CANCEL: 8,
- NGHTTP2_COMPRESSION_ERROR: 9,
- NGHTTP2_CONNECT_ERROR: 10,
- NGHTTP2_ENHANCE_YOUR_CALM: 11,
- NGHTTP2_INADEQUATE_SECURITY: 12,
- NGHTTP2_HTTP_1_1_REQUIRED: 13,
- NGHTTP2_DEFAULT_WEIGHT: 16,
- HTTP2_HEADER_STATUS: ":status",
- HTTP2_HEADER_METHOD: ":method",
- HTTP2_HEADER_AUTHORITY: ":authority",
- HTTP2_HEADER_SCHEME: ":scheme",
- HTTP2_HEADER_PATH: ":path",
- HTTP2_HEADER_PROTOCOL: ":protocol",
- HTTP2_HEADER_ACCEPT_ENCODING: "accept-encoding",
- HTTP2_HEADER_ACCEPT_LANGUAGE: "accept-language",
- HTTP2_HEADER_ACCEPT_RANGES: "accept-ranges",
- HTTP2_HEADER_ACCEPT: "accept",
- HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS: "access-control-allow-credentials",
- HTTP2_HEADER_ACCESS_CONTROL_ALLOW_HEADERS: "access-control-allow-headers",
- HTTP2_HEADER_ACCESS_CONTROL_ALLOW_METHODS: "access-control-allow-methods",
- HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: "access-control-allow-origin",
- HTTP2_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS: "access-control-expose-headers",
- HTTP2_HEADER_ACCESS_CONTROL_REQUEST_HEADERS: "access-control-request-headers",
- HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD: "access-control-request-method",
- HTTP2_HEADER_AGE: "age",
- HTTP2_HEADER_AUTHORIZATION: "authorization",
- HTTP2_HEADER_CACHE_CONTROL: "cache-control",
- HTTP2_HEADER_CONNECTION: "connection",
- HTTP2_HEADER_CONTENT_DISPOSITION: "content-disposition",
- HTTP2_HEADER_CONTENT_ENCODING: "content-encoding",
- HTTP2_HEADER_CONTENT_LENGTH: "content-length",
- HTTP2_HEADER_CONTENT_TYPE: "content-type",
- HTTP2_HEADER_COOKIE: "cookie",
- HTTP2_HEADER_DATE: "date",
- HTTP2_HEADER_ETAG: "etag",
- HTTP2_HEADER_FORWARDED: "forwarded",
- HTTP2_HEADER_HOST: "host",
- HTTP2_HEADER_IF_MODIFIED_SINCE: "if-modified-since",
- HTTP2_HEADER_IF_NONE_MATCH: "if-none-match",
- HTTP2_HEADER_IF_RANGE: "if-range",
- HTTP2_HEADER_LAST_MODIFIED: "last-modified",
- HTTP2_HEADER_LINK: "link",
- HTTP2_HEADER_LOCATION: "location",
- HTTP2_HEADER_RANGE: "range",
- HTTP2_HEADER_REFERER: "referer",
- HTTP2_HEADER_SERVER: "server",
- HTTP2_HEADER_SET_COOKIE: "set-cookie",
- HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: "strict-transport-security",
- HTTP2_HEADER_TRANSFER_ENCODING: "transfer-encoding",
- HTTP2_HEADER_TE: "te",
- HTTP2_HEADER_UPGRADE_INSECURE_REQUESTS: "upgrade-insecure-requests",
- HTTP2_HEADER_UPGRADE: "upgrade",
- HTTP2_HEADER_USER_AGENT: "user-agent",
- HTTP2_HEADER_VARY: "vary",
- HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS: "x-content-type-options",
- HTTP2_HEADER_X_FRAME_OPTIONS: "x-frame-options",
- HTTP2_HEADER_KEEP_ALIVE: "keep-alive",
- HTTP2_HEADER_PROXY_CONNECTION: "proxy-connection",
- HTTP2_HEADER_X_XSS_PROTECTION: "x-xss-protection",
- HTTP2_HEADER_ALT_SVC: "alt-svc",
- HTTP2_HEADER_CONTENT_SECURITY_POLICY: "content-security-policy",
- HTTP2_HEADER_EARLY_DATA: "early-data",
- HTTP2_HEADER_EXPECT_CT: "expect-ct",
- HTTP2_HEADER_ORIGIN: "origin",
- HTTP2_HEADER_PURPOSE: "purpose",
- HTTP2_HEADER_TIMING_ALLOW_ORIGIN: "timing-allow-origin",
- HTTP2_HEADER_X_FORWARDED_FOR: "x-forwarded-for",
- HTTP2_HEADER_PRIORITY: "priority",
- HTTP2_HEADER_ACCEPT_CHARSET: "accept-charset",
- HTTP2_HEADER_ACCESS_CONTROL_MAX_AGE: "access-control-max-age",
- HTTP2_HEADER_ALLOW: "allow",
- HTTP2_HEADER_CONTENT_LANGUAGE: "content-language",
- HTTP2_HEADER_CONTENT_LOCATION: "content-location",
- HTTP2_HEADER_CONTENT_MD5: "content-md5",
- HTTP2_HEADER_CONTENT_RANGE: "content-range",
- HTTP2_HEADER_DNT: "dnt",
- HTTP2_HEADER_EXPECT: "expect",
- HTTP2_HEADER_EXPIRES: "expires",
- HTTP2_HEADER_FROM: "from",
- HTTP2_HEADER_IF_MATCH: "if-match",
- HTTP2_HEADER_IF_UNMODIFIED_SINCE: "if-unmodified-since",
- HTTP2_HEADER_MAX_FORWARDS: "max-forwards",
- HTTP2_HEADER_PREFER: "prefer",
- HTTP2_HEADER_PROXY_AUTHENTICATE: "proxy-authenticate",
- HTTP2_HEADER_PROXY_AUTHORIZATION: "proxy-authorization",
- HTTP2_HEADER_REFRESH: "refresh",
- HTTP2_HEADER_RETRY_AFTER: "retry-after",
- HTTP2_HEADER_TRAILER: "trailer",
- HTTP2_HEADER_TK: "tk",
- HTTP2_HEADER_VIA: "via",
- HTTP2_HEADER_WARNING: "warning",
- HTTP2_HEADER_WWW_AUTHENTICATE: "www-authenticate",
- HTTP2_HEADER_HTTP2_SETTINGS: "http2-settings",
- HTTP2_METHOD_ACL: "ACL",
- HTTP2_METHOD_BASELINE_CONTROL: "BASELINE-CONTROL",
- HTTP2_METHOD_BIND: "BIND",
- HTTP2_METHOD_CHECKIN: "CHECKIN",
- HTTP2_METHOD_CHECKOUT: "CHECKOUT",
- HTTP2_METHOD_CONNECT: "CONNECT",
- HTTP2_METHOD_COPY: "COPY",
- HTTP2_METHOD_DELETE: "DELETE",
- HTTP2_METHOD_GET: "GET",
- HTTP2_METHOD_HEAD: "HEAD",
- HTTP2_METHOD_LABEL: "LABEL",
- HTTP2_METHOD_LINK: "LINK",
- HTTP2_METHOD_LOCK: "LOCK",
- HTTP2_METHOD_MERGE: "MERGE",
- HTTP2_METHOD_MKACTIVITY: "MKACTIVITY",
- HTTP2_METHOD_MKCALENDAR: "MKCALENDAR",
- HTTP2_METHOD_MKCOL: "MKCOL",
- HTTP2_METHOD_MKREDIRECTREF: "MKREDIRECTREF",
- HTTP2_METHOD_MKWORKSPACE: "MKWORKSPACE",
- HTTP2_METHOD_MOVE: "MOVE",
- HTTP2_METHOD_OPTIONS: "OPTIONS",
- HTTP2_METHOD_ORDERPATCH: "ORDERPATCH",
- HTTP2_METHOD_PATCH: "PATCH",
- HTTP2_METHOD_POST: "POST",
- HTTP2_METHOD_PRI: "PRI",
- HTTP2_METHOD_PROPFIND: "PROPFIND",
- HTTP2_METHOD_PROPPATCH: "PROPPATCH",
- HTTP2_METHOD_PUT: "PUT",
- HTTP2_METHOD_REBIND: "REBIND",
- HTTP2_METHOD_REPORT: "REPORT",
- HTTP2_METHOD_SEARCH: "SEARCH",
- HTTP2_METHOD_TRACE: "TRACE",
- HTTP2_METHOD_UNBIND: "UNBIND",
- HTTP2_METHOD_UNCHECKOUT: "UNCHECKOUT",
- HTTP2_METHOD_UNLINK: "UNLINK",
- HTTP2_METHOD_UNLOCK: "UNLOCK",
- HTTP2_METHOD_UPDATE: "UPDATE",
- HTTP2_METHOD_UPDATEREDIRECTREF: "UPDATEREDIRECTREF",
- HTTP2_METHOD_VERSION_CONTROL: "VERSION-CONTROL",
- HTTP_STATUS_CONTINUE: 100,
- HTTP_STATUS_SWITCHING_PROTOCOLS: 101,
- HTTP_STATUS_PROCESSING: 102,
- HTTP_STATUS_EARLY_HINTS: 103,
- HTTP_STATUS_OK: 200,
- HTTP_STATUS_CREATED: 201,
- HTTP_STATUS_ACCEPTED: 202,
- HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: 203,
- HTTP_STATUS_NO_CONTENT: 204,
- HTTP_STATUS_RESET_CONTENT: 205,
- HTTP_STATUS_PARTIAL_CONTENT: 206,
- HTTP_STATUS_MULTI_STATUS: 207,
- HTTP_STATUS_ALREADY_REPORTED: 208,
- HTTP_STATUS_IM_USED: 226,
- HTTP_STATUS_MULTIPLE_CHOICES: 300,
- HTTP_STATUS_MOVED_PERMANENTLY: 301,
- HTTP_STATUS_FOUND: 302,
- HTTP_STATUS_SEE_OTHER: 303,
- HTTP_STATUS_NOT_MODIFIED: 304,
- HTTP_STATUS_USE_PROXY: 305,
- HTTP_STATUS_TEMPORARY_REDIRECT: 307,
- HTTP_STATUS_PERMANENT_REDIRECT: 308,
- HTTP_STATUS_BAD_REQUEST: 400,
- HTTP_STATUS_UNAUTHORIZED: 401,
- HTTP_STATUS_PAYMENT_REQUIRED: 402,
- HTTP_STATUS_FORBIDDEN: 403,
- HTTP_STATUS_NOT_FOUND: 404,
- HTTP_STATUS_METHOD_NOT_ALLOWED: 405,
- HTTP_STATUS_NOT_ACCEPTABLE: 406,
- HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: 407,
- HTTP_STATUS_REQUEST_TIMEOUT: 408,
- HTTP_STATUS_CONFLICT: 409,
- HTTP_STATUS_GONE: 410,
- HTTP_STATUS_LENGTH_REQUIRED: 411,
- HTTP_STATUS_PRECONDITION_FAILED: 412,
- HTTP_STATUS_PAYLOAD_TOO_LARGE: 413,
- HTTP_STATUS_URI_TOO_LONG: 414,
- HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415,
- HTTP_STATUS_RANGE_NOT_SATISFIABLE: 416,
- HTTP_STATUS_EXPECTATION_FAILED: 417,
- HTTP_STATUS_TEAPOT: 418,
- HTTP_STATUS_MISDIRECTED_REQUEST: 421,
- HTTP_STATUS_UNPROCESSABLE_ENTITY: 422,
- HTTP_STATUS_LOCKED: 423,
- HTTP_STATUS_FAILED_DEPENDENCY: 424,
- HTTP_STATUS_TOO_EARLY: 425,
- HTTP_STATUS_UPGRADE_REQUIRED: 426,
- HTTP_STATUS_PRECONDITION_REQUIRED: 428,
- HTTP_STATUS_TOO_MANY_REQUESTS: 429,
- HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
- HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: 451,
- HTTP_STATUS_INTERNAL_SERVER_ERROR: 500,
- HTTP_STATUS_NOT_IMPLEMENTED: 501,
- HTTP_STATUS_BAD_GATEWAY: 502,
- HTTP_STATUS_SERVICE_UNAVAILABLE: 503,
- HTTP_STATUS_GATEWAY_TIMEOUT: 504,
- HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: 505,
- HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: 506,
- HTTP_STATUS_INSUFFICIENT_STORAGE: 507,
- HTTP_STATUS_LOOP_DETECTED: 508,
- HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: 509,
- HTTP_STATUS_NOT_EXTENDED: 510,
- HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: 511,
-};
-
-function createServer() {
- notimpl("createServer");
-}
-function createSecureServer() {
- notimpl("createSecureServer");
-}
-function getDefaultSettings() {
- return {
- headerTableSize: 4096,
- enablePush: true,
- initialWindowSize: 65535,
- maxFrameSize: 16384,
- maxConcurrentStreams: 4294967295,
- maxHeaderSize: 65535,
- maxHeaderListSize: 65535,
- enableConnectProtocol: false,
- };
-}
-function getPackedSettings() {
- return Buffer.alloc(0);
-}
-function getUnpackedSettings() {
- return Buffer.alloc(0);
-}
-const sensitiveHeaders = Symbol.for("nodejs.http2.sensitiveHeaders");
-function Http2ServerRequest() {
- notimpl("Http2ServerRequest");
-}
-function Http2ServerResponse() {
- notimpl("Http2ServerResponse");
-}
-
-const defaultObject = {
- constants,
- createServer,
- createSecureServer,
- getDefaultSettings,
- getPackedSettings,
- getUnpackedSettings,
- sensitiveHeaders,
- Http2ServerRequest,
- Http2ServerResponse,
- [Symbol.for("CommonJS")]: 0,
- connect,
-};
-
-export {
- constants,
- createServer,
- createSecureServer,
- getDefaultSettings,
- getPackedSettings,
- getUnpackedSettings,
- sensitiveHeaders,
- Http2ServerRequest,
- Http2ServerResponse,
- defaultObject as default,
- connect,
-};
-
-hideFromStack([
- TODO.prototype.constructor,
- Http2ServerRequest,
- notimpl,
- Http2ServerResponse,
- connect,
- createServer,
- createSecureServer,
- getDefaultSettings,
- getPackedSettings,
- getUnpackedSettings,
-]);
diff --git a/src/bun.js/https.exports.js b/src/bun.js/https.exports.js
deleted file mode 100644
index 30e0469f5..000000000
--- a/src/bun.js/https.exports.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from "node:http";
-const HTTP = import.meta.require("node:http");
-export default HTTP;
diff --git a/src/bun.js/inspector.exports.js b/src/bun.js/inspector.exports.js
deleted file mode 100644
index eccb39c10..000000000
--- a/src/bun.js/inspector.exports.js
+++ /dev/null
@@ -1,68 +0,0 @@
-// This is a stub! None of this is actually implemented yet.
-
-function hideFromStack(fns) {
- for (const fn of fns) {
- Object.defineProperty(fn, "name", {
- value: "::bunternal::",
- });
- }
-}
-
-class TODO extends Error {
- constructor(messageName) {
- const message = messageName
- ? `node:inspector ${messageName} is not implemented yet in Bun. Track the status & thumbs up the issue: https://github.com/oven-sh/bun/issues/2445`
- : `node:inspector is not implemented yet in Bun. Track the status & thumbs up the issue: https://github.com/oven-sh/bun/issues/2445`;
- super(message);
- this.name = "TODO";
- }
-}
-
-function notimpl(message) {
- throw new TODO(message);
-}
-
-const { EventEmitter } = import.meta.require("node:events");
-
-function open() {
- notimpl("open");
-}
-
-function close() {
- notimpl("close");
-}
-
-function url() {
- notimpl("url");
-}
-
-function waitForDebugger() {
- notimpl("waitForDebugger");
-}
-
-class Session extends EventEmitter {
- constructor() {
- super();
- notimpl("Session");
- }
-}
-
-const console = {
- ...globalThis.console,
- context: {
- console: globalThis.console,
- },
-};
-
-var defaultObject = {
- console,
- open,
- close,
- url,
- waitForDebugger,
- Session,
- [Symbol.for("CommonJS")]: 0,
-};
-
-export { console, open, close, url, waitForDebugger, Session, defaultObject as default };
-hideFromStack([notimpl, TODO.prototype.constructor, open, close, url, waitForDebugger, Session.prototype.constructor]);
diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig
index c23efd197..eddafd5ac 100644
--- a/src/bun.js/module_loader.zig
+++ b/src/bun.js/module_loader.zig
@@ -86,22 +86,25 @@ const PackageManager = @import("../install/install.zig").PackageManager;
const Install = @import("../install/install.zig");
const VirtualMachine = JSC.VirtualMachine;
const Dependency = @import("../install/dependency.zig");
-// This exists to make it so we can reload these quicker in development
+
+// Setting BUN_OVERRIDE_MODULE_PATH to the path to the bun repo will make it so modules are loaded
+// from there instead of the ones embedded into the binary.
+// In debug mode, this is set automatically for you, using the path relative to this file.
fn jsModuleFromFile(from_path: string, comptime input: string) string {
- const absolute_path = comptime (bun.Environment.base_path ++ std.fs.path.dirname(@src().file).?) ++ "/" ++ input;
+ // `modules_dev` is not minified or committed. Later we could also try loading source maps for it too.
+ const moduleFolder = if (comptime Environment.isDebug) "modules_dev" else "modules";
+
const Holder = struct {
- pub const file = @embedFile(input);
+ pub const file = @embedFile("../js/out/" ++ moduleFolder ++ "/" ++ input);
};
- if (comptime !Environment.allow_assert) {
- if (from_path.len == 0) {
- return Holder.file;
- }
+ if ((comptime !Environment.allow_assert) and from_path.len == 0) {
+ return Holder.file;
}
var file: std.fs.File = undefined;
-
- if (comptime Environment.allow_assert) {
+ if ((comptime Environment.allow_assert) and from_path.len == 0) {
+ const absolute_path = comptime (Environment.base_path ++ (std.fs.path.dirname(std.fs.path.dirname(@src().file).?).?) ++ "/js/out/" ++ moduleFolder ++ "/" ++ input);
file = std.fs.openFileAbsoluteZ(absolute_path, .{ .mode = .read_only }) catch {
const WarnOnce = struct {
pub var warned = false;
@@ -113,7 +116,7 @@ fn jsModuleFromFile(from_path: string, comptime input: string) string {
return Holder.file;
};
} else {
- var parts = [_]string{ from_path, input };
+ var parts = [_]string{ from_path, "src/js/out/" ++ moduleFolder ++ "/" ++ input };
var buf: [bun.MAX_PATH_BYTES]u8 = undefined;
var absolute_path_to_use = Fs.FileSystem.instance.absBuf(&parts, &buf);
buf[absolute_path_to_use.len] = 0;
@@ -129,10 +132,8 @@ fn jsModuleFromFile(from_path: string, comptime input: string) string {
};
}
- var contents = file.readToEndAlloc(bun.default_allocator, std.math.maxInt(usize)) catch @panic("Cannot read file: " ++ absolute_path);
- if (comptime !Environment.allow_assert) {
- file.close();
- }
+ var contents = file.readToEndAlloc(bun.default_allocator, std.math.maxInt(usize)) catch @panic("Cannot read file " ++ input);
+ file.close();
return contents;
}
@@ -1275,8 +1276,8 @@ pub const ModuleLoader = struct {
strings.append3(
bun.default_allocator,
JSC.Node.fs.constants_string,
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./wasi.exports.js")),
- jsModuleFromFile(jsc_vm.load_builtins_from_path, "wasi-runner.js"),
+ @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "node/wasi.js")),
+ @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "bun/wasi-runner.js")),
) catch unreachable,
),
.specifier = ZigString.init(display_specifier),
@@ -1593,8 +1594,6 @@ pub const ModuleLoader = struct {
return globalObject.runOnLoadPlugins(ZigString.init(namespace), ZigString.init(after_namespace), .bun) orelse return JSValue.zero;
}
- const shared_library_suffix = if (Environment.isMac) "dylib" else if (Environment.isLinux) "so" else "";
-
pub fn fetchBuiltinModule(jsc_vm: *VirtualMachine, specifier: string, log: *logger.Log, comptime disable_transpilying: bool) !?ResolvedSource {
if (jsc_vm.node_modules != null and strings.eqlComptime(specifier, JSC.bun_file_import_path)) {
// We kind of need an abstraction around this.
@@ -1707,411 +1706,86 @@ pub const ModuleLoader = struct {
.hash = 0,
};
},
- .@"bun:jsc" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "bun-jsc.exports.js")),
- .specifier = ZigString.init("bun:jsc"),
- .source_url = ZigString.init("bun:jsc"),
- .hash = 0,
- };
- },
- .@"bun:events_native" => return jsSyntheticModule(.@"bun:events_native"),
- .@"node:child_process" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "child_process.exports.js")),
- .specifier = ZigString.init("node:child_process"),
- .source_url = ZigString.init("node:child_process"),
- .hash = 0,
- };
- },
- .@"node:net" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "net.exports.js")),
- .specifier = ZigString.init("node:net"),
- .source_url = ZigString.init("node:net"),
- .hash = 0,
- };
- },
- .@"node:fs" => {
- if (comptime Environment.isDebug) {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "fs.exports.js")),
- .specifier = ZigString.init("node:fs"),
- .source_url = ZigString.init("node:fs"),
- .hash = 0,
- };
- } else if (jsc_vm.load_builtins_from_path.len != 0) {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "fs.exports.js")),
- .specifier = ZigString.init("node:fs"),
- .source_url = ZigString.init("node:fs"),
- .hash = 0,
- };
- }
-
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(@embedFile("fs.exports.js")),
- .specifier = ZigString.init("node:fs"),
- .source_url = ZigString.init("node:fs"),
- .hash = 0,
- };
- },
.@"node:buffer" => return jsSyntheticModule(.@"node:buffer"),
.@"node:string_decoder" => return jsSyntheticModule(.@"node:string_decoder"),
.@"node:module" => return jsSyntheticModule(.@"node:module"),
- .@"node:events" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "events.exports.js")),
- .specifier = ZigString.init("node:events"),
- .source_url = ZigString.init("node:events"),
- .hash = 0,
- };
- },
.@"node:process" => return jsSyntheticModule(.@"node:process"),
.@"node:tty" => return jsSyntheticModule(.@"node:tty"),
.@"node:util/types" => return jsSyntheticModule(.@"node:util/types"),
- .@"node:stream" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "streams.exports.js")),
- .specifier = ZigString.init("node:stream"),
- .source_url = ZigString.init("node:stream"),
- .hash = 0,
- };
- },
- .@"node:zlib" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "zlib.exports.js")),
- .specifier = ZigString.init("node:zlib"),
- .source_url = ZigString.init("node:zlib"),
- .hash = 0,
- };
- },
- .@"node:async_hooks" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "async_hooks.exports.js")),
- .specifier = ZigString.init("node:async_hooks"),
- .source_url = ZigString.init("node:async_hooks"),
- .hash = 0,
- };
- },
+ .@"bun:events_native" => return jsSyntheticModule(.@"bun:events_native"),
.@"node:fs/promises" => {
return ResolvedSource{
.allocator = null,
- .source_code = ZigString.init(JSC.Node.fs.constants_string ++ @embedFile("fs_promises.exports.js")),
+ .source_code = ZigString.init(JSC.Node.fs.constants_string ++ @embedFile("../js/out/modules/node/fs.promises.js")),
.specifier = ZigString.init("node:fs/promises"),
.source_url = ZigString.init("node:fs/promises"),
.hash = 0,
};
},
- .@"node:path" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "path.exports.js")),
- .specifier = ZigString.init("node:path"),
- .source_url = ZigString.init("node:path"),
- .hash = 0,
- };
- },
- .@"node:dns" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "node-dns.exports.js")),
- .specifier = ZigString.init("node:dns"),
- .source_url = ZigString.init("node:dns"),
- .hash = 0,
- };
- },
- .@"node:tls" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "node-tls.exports.js")),
- .specifier = ZigString.init("node:tls"),
- .source_url = ZigString.init("node:tls"),
- .hash = 0,
- };
- },
- .@"node:dns/promises" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "node-dns_promises.exports.js")),
- .specifier = ZigString.init("node:dns/promises"),
- .source_url = ZigString.init("node:dns/promises"),
- .hash = 0,
- };
- },
- .@"node:path/win32" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "path-win32.exports.js")),
- .specifier = ZigString.init("node:path/win32"),
- .source_url = ZigString.init("node:path/win32"),
- .hash = 0,
- };
- },
- .@"node:path/posix" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "path-posix.exports.js")),
- .specifier = ZigString.init("node:path/posix"),
- .source_url = ZigString.init("node:path/posix"),
- .hash = 0,
- };
- },
-
- .@"node:os" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "os.exports.js")),
- .specifier = ZigString.init("node:os"),
- .source_url = ZigString.init("node:os"),
- .hash = 0,
- };
- },
- .@"node:crypto" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "crypto.exports.js")),
- .specifier = ZigString.init("node:crypto"),
- .source_url = ZigString.init("node:crypto"),
- .hash = 0,
- };
- },
- .@"node:readline" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "readline.exports.js")),
- .specifier = ZigString.init("node:readline"),
- .source_url = ZigString.init("node:readline"),
- .hash = 0,
- };
- },
- .@"node:readline/promises" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "readline_promises.exports.js")),
- .specifier = ZigString.init("node:readline/promises"),
- .source_url = ZigString.init("node:readline/promises"),
- .hash = 0,
- };
- },
.@"bun:ffi" => {
return ResolvedSource{
.allocator = null,
.source_code = ZigString.init(
- "export const FFIType = " ++
+ "export const FFIType=" ++
JSC.FFI.ABIType.map_to_js_object ++
- ";\n\n" ++
- "export const suffix = '" ++ shared_library_suffix ++ "';\n\n" ++
- @embedFile("ffi.exports.js") ++
- "\n",
+ ";" ++
+ @embedFile("../js/out/modules/bun/ffi.js"),
),
.specifier = ZigString.init("bun:ffi"),
.source_url = ZigString.init("bun:ffi"),
.hash = 0,
};
},
- .@"detect-libc" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, @embedFile(if (Environment.isLinux) "detect-libc.linux.js" else "detect-libc.js")),
- ),
- .specifier = ZigString.init("detect-libc"),
- .source_url = ZigString.init("detect-libc"),
- .hash = 0,
- };
- },
- .@"node:url" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "url.exports.js")),
- ),
- .specifier = ZigString.init("node:url"),
- .source_url = ZigString.init("node:url"),
- .hash = 0,
- };
- },
- .@"node:assert" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "assert.exports.js")),
- ),
- .specifier = ZigString.init("node:assert"),
- .source_url = ZigString.init("node:assert"),
- .hash = 0,
- };
- },
- .@"bun:sqlite" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./bindings/sqlite/sqlite.exports.js")),
- ),
- .specifier = ZigString.init("bun:sqlite"),
- .source_url = ZigString.init("bun:sqlite"),
- .hash = 0,
- };
- },
- .@"node:perf_hooks" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./perf_hooks.exports.js")),
- ),
- .specifier = ZigString.init("node:perf_hooks"),
- .source_url = ZigString.init("node:perf_hooks"),
- .hash = 0,
- };
- },
- .ws => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./ws.exports.js")),
- ),
- .specifier = ZigString.init("ws"),
- .source_url = ZigString.init("ws"),
- .hash = 0,
- };
- },
- .@"node:timers" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./node_timers.exports.js")),
- ),
- .specifier = ZigString.init("node:timers"),
- .source_url = ZigString.init("node:timers"),
- .hash = 0,
- };
- },
- .@"node:timers/promises" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./node_timers_promises.exports.js")),
- ),
- .specifier = ZigString.init("node:timers/promises"),
- .source_url = ZigString.init("node:timers/promises"),
- .hash = 0,
- };
- },
- .@"node:stream/web" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./node_streams_web.exports.js")),
- ),
- .specifier = ZigString.init("node:stream/web"),
- .source_url = ZigString.init("node:stream/web"),
- .hash = 0,
- };
- },
- .@"node:stream/consumers" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./node_streams_consumer.exports.js")),
- ),
- .specifier = ZigString.init("node:stream/consumers"),
- .source_url = ZigString.init("node:stream/consumers"),
- .hash = 0,
- };
- },
- .@"node:util" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./util.exports.js")),
- ),
- .specifier = ZigString.init("node:util"),
- .source_url = ZigString.init("node:util"),
- .hash = 0,
- };
- },
- .undici => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./undici.exports.js")),
- ),
- .specifier = ZigString.init("undici"),
- .source_url = ZigString.init("undici"),
- .hash = 0,
- };
- },
- .@"node:wasi" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- strings.append(
- bun.default_allocator,
- JSC.Node.fs.constants_string,
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./wasi.exports.js")),
- ) catch unreachable,
- ),
- .specifier = ZigString.init("node:wasi"),
- .source_url = ZigString.init("node:wasi"),
- .hash = 0,
- };
- },
- .@"node:http" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./http.exports.js")),
- ),
- .specifier = ZigString.init("node:http"),
- .source_url = ZigString.init("node:http"),
- .hash = 0,
- };
- },
- .@"node:https" => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./https.exports.js")),
- ),
- .specifier = ZigString.init("node:https"),
- .source_url = ZigString.init("node:https"),
- .hash = 0,
- };
- },
- .depd => {
- return ResolvedSource{
- .allocator = null,
- .source_code = ZigString.init(
- @as(string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "./depd.exports.js")),
- ),
- .specifier = ZigString.init("depd"),
- .source_url = ZigString.init("depd"),
- .hash = 0,
- };
- },
- .@"node:stream/promises" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:stream/promises", "node_streams_promises.exports.js"),
- .@"node:vm" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:vm", "vm.exports.js"),
- .@"node:assert/strict" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:assert/strict", "assert_strict.exports.js"),
- .@"node:v8" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:v8", "v8.exports.js"),
- .@"node:trace_events" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:trace_events", "trace_events.exports.js"),
- .@"node:repl" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:repl", "repl.exports.js"),
- .@"node:inspector" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:inspector", "inspector.exports.js"),
- .@"node:http2" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:http2", "http2.exports.js"),
- .@"node:diagnostics_channel" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:diagnostics_channel", "diagnostics_channel.exports.js"),
- .@"node:dgram" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:dgram", "dgram.exports.js"),
- .@"node:cluster" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:cluster", "cluster.exports.js"),
+
+ .@"bun:jsc" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"bun:jsc", "bun/jsc.js"),
+ .@"bun:sqlite" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"bun:sqlite", "bun/sqlite.js"),
+
+ .@"node:assert" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:assert", "node/assert.js"),
+ .@"node:assert/strict" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:assert/strict", "node/assert.strict.js"),
+ .@"node:async_hooks" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:async_hooks", "node/async_hooks.js"),
+ .@"node:child_process" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:child_process", "node/child_process.js"),
+ .@"node:crypto" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:crypto", "node/crypto.js"),
+ .@"node:dns" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:dns", "node/dns.js"),
+ .@"node:dns/promises" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:dns/promises", "node/dns.promises.js"),
+ .@"node:events" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:child_process", "node/events.js"),
+ .@"node:fs" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:fs", "node/fs.js"),
+ .@"node:http" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:http", "node/http.js"),
+ .@"node:https" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:https", "node/https.js"),
+ .@"node:net" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:net", "node/net.js"),
+ .@"node:os" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:os", "node/os.js"),
+ .@"node:path" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:path", "node/path.js"),
+ .@"node:path/posix" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:path/posix", "node/path.posix.js"),
+ .@"node:path/win32" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:path/win32", "node/path.win32.js"),
+ .@"node:perf_hooks" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:perf_hooks", "node/perf_hooks.js"),
+ .@"node:readline" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:readline", "node/readline.js"),
+ .@"node:readline/promises" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:readline/promises", "node/readline.promises.js"),
+ .@"node:stream" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:stream", "node/stream.js"),
+ .@"node:stream/consumers" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:stream/consumers", "node/stream.consumers.js"),
+ .@"node:stream/promises" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:stream/promises", "node/stream.promises.js"),
+ .@"node:stream/web" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:stream/web", "node/stream.web.js"),
+ .@"node:timers" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:timers", "node/timers.js"),
+ .@"node:timers/promises" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:timers/promises", "node/timers.promises.js"),
+ .@"node:tls" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:tls", "node/tls.js"),
+ .@"node:url" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:url", "node/url.js"),
+ .@"node:util" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:util", "node/util.js"),
+ .@"node:vm" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:vm", "node/vm.js"),
+ .@"node:wasi" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:wasi", "node/wasi.js"),
+ .@"node:zlib" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:zlib", "node/zlib.js"),
+
+ .@"detect-libc" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"detect-libc", "thirdparty/detect-libc.js"),
+ .depd => return jsResolvedSource(jsc_vm.load_builtins_from_path, .depd, "thirdparty/depd.js"),
+ .undici => return jsResolvedSource(jsc_vm.load_builtins_from_path, .undici, "thirdparty/undici.js"),
+ .ws => return jsResolvedSource(jsc_vm.load_builtins_from_path, .ws, "thirdparty/ws.js"),
+
+ .@"node:cluster" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:cluster", "node/cluster.js"),
+ .@"node:dgram" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:dgram", "node/dgram.js"),
+ .@"node:diagnostics_channel" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:diagnostics_channel", "node/diagnostics_channel.js"),
+ .@"node:http2" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:http2", "node/http2.js"),
+ .@"node:inspector" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:inspector", "node/inspector.js"),
+ .@"node:repl" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:repl", "node/repl.js"),
+ .@"node:trace_events" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:trace_events", "node/trace_events.js"),
+ .@"node:v8" => return jsResolvedSource(jsc_vm.load_builtins_from_path, .@"node:v8", "node/v8.js"),
}
} else if (strings.hasPrefixComptime(specifier, js_ast.Macro.namespaceWithColon)) {
if (jsc_vm.macro_entry_points.get(MacroEntryPoint.generateIDFromSpecifier(specifier))) |entry| {
@@ -2513,7 +2187,7 @@ pub const DisabledModule = bun.ComptimeStringMap(
},
);
-fn jsResolvedSource(builtins: []const u8, comptime module: HardcodedModule, comptime input: []const u8) ResolvedSource {
+inline fn jsResolvedSource(builtins: []const u8, comptime module: HardcodedModule, comptime input: []const u8) ResolvedSource {
return ResolvedSource{
.allocator = null,
.source_code = ZigString.init(jsModuleFromFile(builtins, input)),
diff --git a/src/bun.js/net.exports.js b/src/bun.js/net.exports.js
deleted file mode 100644
index 3d15eed2b..000000000
--- a/src/bun.js/net.exports.js
+++ /dev/null
@@ -1,795 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-// IPv4 Segment
-const v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
-const v4Str = `(${v4Seg}[.]){3}${v4Seg}`;
-const IPv4Reg = new RegExp(`^${v4Str}$`);
-
-// IPv6 Segment
-const v6Seg = "(?:[0-9a-fA-F]{1,4})";
-const IPv6Reg = new RegExp(
- "^(" +
- `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` +
- `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` +
- `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` +
- `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` +
- `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` +
- `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` +
- `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` +
- `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` +
- ")(%[0-9a-zA-Z-.:]{1,})?$",
-);
-
-function isIPv4(s) {
- return IPv4Reg.test(s);
-}
-
-function isIPv6(s) {
- return IPv6Reg.test(s);
-}
-
-function isIP(s) {
- if (isIPv4(s)) return 4;
- if (isIPv6(s)) return 6;
- return 0;
-}
-
-const { Bun, createFIFO, Object } = import.meta.primordials;
-const { connect: bunConnect } = Bun;
-const { Duplex } = import.meta.require("node:stream");
-const { EventEmitter } = import.meta.require("node:events");
-var { setTimeout } = globalThis;
-
-const bunTlsSymbol = Symbol.for("::buntls::");
-const bunSocketServerHandlers = Symbol.for("::bunsocket_serverhandlers::");
-const bunSocketServerConnections = Symbol.for("::bunnetserverconnections::");
-const bunSocketServerOptions = Symbol.for("::bunnetserveroptions::");
-
-var SocketClass;
-const Socket = (function (InternalSocket) {
- SocketClass = InternalSocket;
- Object.defineProperty(SocketClass.prototype, Symbol.toStringTag, {
- value: "Socket",
- enumerable: false,
- });
-
- return Object.defineProperty(
- function Socket(options) {
- return new InternalSocket(options);
- },
- Symbol.hasInstance,
- {
- value(instance) {
- return instance instanceof InternalSocket;
- },
- },
- );
-})(
- class Socket extends Duplex {
- static #Handlers = {
- close: Socket.#Close,
- connectError(socket, error) {
- const self = socket.data;
-
- self.emit("error", error);
- },
- data({ data: self }, buffer) {
- self.bytesRead += buffer.length;
- const queue = self.#readQueue;
-
- if (queue.isEmpty()) {
- if (self.push(buffer)) return;
- }
- queue.push(buffer);
- },
- drain: Socket.#Drain,
- end: Socket.#Close,
- error(socket, error) {
- const self = socket.data;
- const callback = self.#writeCallback;
- if (callback) {
- self.#writeCallback = null;
- callback(error);
- }
- self.emit("error", error);
- },
- open(socket) {
- const self = socket.data;
- socket.timeout(self.timeout);
- socket.ref();
- self.#socket = socket;
- self.connecting = false;
- self.emit("connect", self);
- Socket.#Drain(socket);
- },
- handshake(socket, success, verifyError) {
- const { data: self } = socket;
- self._securePending = false;
- self.secureConnecting = false;
- self._secureEstablished = !!success;
-
- // Needs getPeerCertificate support (not implemented yet)
- // if (!verifyError && !this.isSessionReused()) {
- // const hostname = options.servername ||
- // options.host ||
- // (options.socket && options.socket._host) ||
- // 'localhost';
- // const cert = this.getPeerCertificate(true);
- // verifyError = options.checkServerIdentity(hostname, cert);
- // }
-
- if (self._requestCert || self._rejectUnauthorized) {
- if (verifyError) {
- self.authorized = false;
- self.authorizationError = verifyError.code || verifyError.message;
- if (self._rejectUnauthorized) {
- self.destroy(verifyError);
- return;
- }
- }
- } else {
- self.authorized = true;
- }
- self.emit("secureConnect", verifyError);
- },
- timeout(socket) {
- const self = socket.data;
- self.emit("timeout", self);
- },
- binaryType: "buffer",
- };
-
- static #Close(socket) {
- const self = socket.data;
- if (self.#closed) return;
- self.#closed = true;
- //socket cannot be used after close
- self.#socket = null;
- const queue = self.#readQueue;
- if (queue.isEmpty()) {
- if (self.push(null)) return;
- }
- queue.push(null);
- }
-
- static #Drain(socket) {
- const self = socket.data;
-
- const callback = self.#writeCallback;
- if (callback) {
- const chunk = self.#writeChunk;
- const written = socket.write(chunk);
-
- self.bytesWritten += written;
- if (written < chunk.length) {
- self.#writeChunk = chunk.slice(written);
- } else {
- self.#writeCallback = null;
- self.#writeChunk = null;
- callback(null);
- }
- }
- }
-
- static [bunSocketServerHandlers] = {
- data: Socket.#Handlers.data,
- close(socket) {
- Socket.#Handlers.close(socket);
- this.data[bunSocketServerConnections]--;
- },
- end(socket) {
- Socket.#Handlers.end(socket);
- this.data[bunSocketServerConnections]--;
- },
- open(socket) {
- const self = this.data;
- const options = self[bunSocketServerOptions];
- const { pauseOnConnect, connectionListener, InternalSocketClass, requestCert, rejectUnauthorized } = options;
- const _socket = new InternalSocketClass({});
- _socket.isServer = true;
- _socket._requestCert = requestCert;
- _socket._rejectUnauthorized = rejectUnauthorized;
-
- _socket.#attach(this.localPort, socket);
- if (self.maxConnections && self[bunSocketServerConnections] >= self.maxConnections) {
- const data = {
- localAddress: _socket.localAddress,
- localPort: _socket.localPort,
- localFamily: _socket.localFamily,
- remoteAddress: _socket.remoteAddress,
- remotePort: _socket.remotePort,
- remoteFamily: _socket.remoteFamily || "IPv4",
- };
-
- socket.end();
-
- self.emit("drop", data);
- return;
- }
- // the duplex implementation start paused, so we resume when pauseOnConnect is falsy
- if (!pauseOnConnect) {
- _socket.resume();
- }
-
- self[bunSocketServerConnections]++;
-
- if (typeof connectionListener == "function") {
- if (InternalSocketClass.name === "TLSSocket") {
- // add secureConnection event handler
- self.once("secureConnection", () => connectionListener(_socket));
- } else {
- connectionListener(_socket);
- }
- }
-
- self.emit("connection", _socket);
- },
- handshake({ data: self }, success, verifyError) {
- self._securePending = false;
- self.secureConnecting = false;
- self._secureEstablished = !!success;
- // Needs getPeerCertificate support (not implemented yet)
- // if (!verifyError && !this.isSessionReused()) {
- // const hostname = options.servername ||
- // options.host ||
- // (options.socket && options.socket._host) ||
- // 'localhost';
- // const cert = this.getPeerCertificate(true);
- // verifyError = options.checkServerIdentity(hostname, cert);
- // }
-
- if (self._requestCert || self._rejectUnauthorized) {
- if (verifyError) {
- self.authorized = false;
- self.authorizationError = verifyError.code || verifyError.message;
- if (self._rejectUnauthorized) {
- self.destroy(verifyError);
- return;
- }
- }
- } else {
- self.authorized = true;
- }
- self.emit("secureConnect", verifyError);
- },
- error(socket, error) {
- Socket.#Handlers.error(socket, error);
- this.data.emit("error", error);
- },
- timeout: Socket.#Handlers.timeout,
- connectError: Socket.#Handlers.connectError,
- drain: Socket.#Handlers.drain,
- binaryType: "buffer",
- };
-
- bytesRead = 0;
- bytesWritten = 0;
- #closed = false;
- connecting = false;
- localAddress = "127.0.0.1";
- #readQueue = createFIFO();
- remotePort;
- #socket;
- timeout = 0;
- #writeCallback;
- #writeChunk;
- #pendingRead;
-
- isServer = false;
-
- constructor(options) {
- const { signal, write, read, allowHalfOpen = false, ...opts } = options || {};
- super({
- ...opts,
- allowHalfOpen,
- readable: true,
- writable: true,
- });
- this.#pendingRead = undefined;
- signal?.once("abort", () => this.destroy());
- this.once("connect", () => this.emit("ready"));
- }
-
- address() {
- return {
- address: this.localAddress,
- family: this.localFamily,
- port: this.localPort,
- };
- }
-
- get bufferSize() {
- return this.writableLength;
- }
-
- #attach(port, socket) {
- this.remotePort = port;
- socket.data = this;
- socket.timeout(this.timeout);
- socket.ref();
- this.#socket = socket;
- this.connecting = false;
- this.emit("connect", this);
- Socket.#Drain(socket);
- }
-
- connect(port, host, connectListener) {
- var path;
- if (typeof port === "string") {
- path = port;
- port = undefined;
-
- if (typeof host === "function") {
- connectListener = host;
- host = undefined;
- }
- } else if (typeof host == "function") {
- if (typeof port === "string") {
- path = port;
- port = undefined;
- }
-
- connectListener = host;
- host = undefined;
- }
- if (typeof port == "object") {
- var {
- port,
- host,
- path,
- // TODOs
- localAddress,
- localPort,
- family,
- hints,
- lookup,
- noDelay,
- keepAlive,
- keepAliveInitialDelay,
- requestCert,
- rejectUnauthorized,
- pauseOnConnect,
- servername,
- } = port;
- this.servername = servername;
- }
-
- if (!pauseOnConnect) {
- this.resume();
- }
- this.connecting = true;
- this.remotePort = port;
-
- const bunTLS = this[bunTlsSymbol];
- var tls = undefined;
-
- if (typeof bunTLS === "function") {
- tls = bunTLS.call(this, port, host, true);
- // Client always request Cert
- this._requestCert = true;
- this._rejectUnauthorized = rejectUnauthorized;
-
- if (tls) {
- // TLS can true/false or options
- if (typeof tls !== "object") {
- tls = {
- rejectUnauthorized: rejectUnauthorized,
- requestCert: true,
- };
- } else {
- tls.rejectUnauthorized = rejectUnauthorized;
- tls.requestCert = true;
- }
- }
-
- this.authorized = false;
- this.secureConnecting = true;
- this._secureEstablished = false;
- this._securePending = true;
- if (connectListener) this.on("secureConnect", connectListener);
- } else if (connectListener) this.on("connect", connectListener);
- bunConnect(
- path
- ? {
- data: this,
- unix: path,
- socket: Socket.#Handlers,
- tls,
- }
- : {
- data: this,
- hostname: host || "localhost",
- port: port,
- socket: Socket.#Handlers,
- tls,
- },
- );
- return this;
- }
-
- _destroy(err, callback) {
- this.#socket?.end();
- callback(err);
- }
-
- _final(callback) {
- this.#socket?.end();
- callback();
- }
-
- get localAddress() {
- return "127.0.0.1";
- }
-
- get localFamily() {
- return "IPv4";
- }
-
- get localPort() {
- return this.#socket?.localPort;
- }
-
- get pending() {
- return this.connecting;
- }
-
- _read(size) {
- const queue = this.#readQueue;
- let chunk;
- while ((chunk = queue.peek())) {
- if (!this.push(chunk)) return;
- queue.shift();
- }
- }
-
- get readyState() {
- if (this.connecting) return "opening";
- if (this.readable) {
- return this.writable ? "open" : "readOnly";
- } else {
- return this.writable ? "writeOnly" : "closed";
- }
- }
-
- ref() {
- this.#socket?.ref();
- }
-
- get remoteAddress() {
- return this.#socket?.remoteAddress;
- }
-
- get remoteFamily() {
- return "IPv4";
- }
-
- resetAndDestroy() {
- this.#socket?.end();
- }
-
- setKeepAlive(enable = false, initialDelay = 0) {
- // TODO
- return this;
- }
-
- setNoDelay(noDelay = true) {
- // TODO
- return this;
- }
-
- setTimeout(timeout, callback) {
- this.#socket?.timeout(timeout);
- this.timeout = timeout;
- if (callback) this.once("timeout", callback);
- return this;
- }
-
- unref() {
- this.#socket?.unref();
- }
-
- _write(chunk, encoding, callback) {
- if (typeof chunk == "string" && encoding !== "utf8") chunk = Buffer.from(chunk, encoding);
- var written = this.#socket?.write(chunk);
- if (written == chunk.length) {
- callback();
- } else if (this.#writeCallback) {
- callback(new Error("overlapping _write()"));
- } else {
- if (written > 0) {
- if (typeof chunk == "string") {
- chunk = chunk.slice(written);
- } else {
- chunk = chunk.subarray(written);
- }
- }
-
- this.#writeCallback = callback;
- this.#writeChunk = chunk;
- }
- }
- },
-);
-
-function createConnection(port, host, connectListener) {
- if (typeof port === "object") {
- // port is option pass Socket options and let connect handle connection options
- return new Socket(port).connect(port, host, connectListener);
- }
- // port is path or host, let connect handle this
- return new Socket().connect(port, host, connectListener);
-}
-
-const connect = createConnection;
-
-class Server extends EventEmitter {
- #server;
- #listening = false;
- [bunSocketServerConnections] = 0;
- [bunSocketServerOptions];
- maxConnections = 0;
-
- constructor(options, connectionListener) {
- super();
-
- if (typeof options === "function") {
- connectionListener = options;
- options = {};
- } else if (options == null || typeof options === "object") {
- options = { ...options };
- } else {
- throw new Error("bun-net-polyfill: invalid arguments");
- }
-
- const { maxConnections } = options;
- this.maxConnections = Number.isSafeInteger(maxConnections) && maxConnections > 0 ? maxConnections : 0;
-
- options.connectionListener = connectionListener;
- this[bunSocketServerOptions] = options;
- }
-
- ref() {
- this.#server?.ref();
- return this;
- }
-
- unref() {
- this.#server?.unref();
- return this;
- }
-
- close(callback) {
- if (this.#server) {
- this.#server.stop(true);
- this.#server = null;
- this.#listening = false;
- this[bunSocketServerConnections] = 0;
- this.emit("close");
- if (typeof callback === "function") {
- callback();
- }
-
- return this;
- }
-
- if (typeof callback === "function") {
- const error = new Error("Server is not running");
- error.code = "ERR_SERVER_NOT_RUNNING";
- callback(error);
- }
- return this;
- }
-
- address() {
- const server = this.#server;
- if (server) {
- const unix = server.unix;
- if (unix) {
- return unix;
- }
-
- //TODO: fix adress when host is passed
- let address = server.hostname;
- const type = isIP(address);
- const port = server.port;
- if (typeof port === "number") {
- return {
- port,
- address,
- family: type ? `IPv${type}` : undefined,
- };
- }
- if (type) {
- return {
- address,
- family: type ? `IPv${type}` : undefined,
- };
- }
-
- return address;
- }
- return null;
- }
-
- getConnections(callback) {
- if (typeof callback === "function") {
- //in Bun case we will never error on getConnections
- //node only errors if in the middle of the couting the server got disconnected, what never happens in Bun
- //if disconnected will only pass null as well and 0 connected
- callback(null, this.#server ? this[bunSocketServerConnections] : 0);
- }
- return this;
- }
-
- listen(port, hostname, onListen) {
- let backlog;
- let path;
- let exclusive = false;
- //port is actually path
- if (typeof port === "string") {
- if (Number.isSafeInteger(hostname)) {
- if (hostname > 0) {
- //hostname is backlog
- backlog = hostname;
- }
- } else if (typeof hostname === "function") {
- //hostname is callback
- onListen = hostname;
- }
-
- path = port;
- hostname = undefined;
- port = undefined;
- } else {
- if (typeof hostname === "function") {
- onListen = hostname;
- hostname = undefined;
- }
-
- if (typeof port === "function") {
- onListen = port;
- port = 0;
- } else if (typeof port === "object") {
- const options = port;
- options.signal?.addEventListener("abort", () => this.close());
-
- hostname = options.host;
- exclusive = options.exclusive === true;
- const path = options.path;
- port = options.port;
-
- if (!Number.isSafeInteger(port) || port < 0) {
- if (path) {
- hostname = path;
- port = undefined;
- } else {
- let message = 'The argument \'options\' must have the property "port" or "path"';
- try {
- message = `${message}. Received ${JSON.stringify(options)}`;
- } catch {}
-
- const error = new TypeError(message);
- error.code = "ERR_INVALID_ARG_VALUE";
- throw error;
- }
- } else if (!Number.isSafeInteger(port) || port < 0) {
- port = 0;
- }
-
- // port <number>
- // host <string>
- // path <string> Will be ignored if port is specified. See Identifying paths for IPC connections.
- // backlog <number> Common parameter of server.listen() functions.
- // exclusive <boolean> Default: false
- // readableAll <boolean> For IPC servers makes the pipe readable for all users. Default: false.
- // writableAll <boolean> For IPC servers makes the pipe writable for all users. Default: false.
- // ipv6Only <boolean> For TCP servers, setting ipv6Only to true will disable dual-stack support, i.e., binding to host :: won't make 0.0.0.0 be bound. Default: false.
- // signal <AbortSignal> An AbortSignal that may be used to close a listening server.
-
- if (typeof port.callback === "function") onListen = port?.callback;
- } else if (!Number.isSafeInteger(port) || port < 0) {
- port = 0;
- }
- hostname = hostname || "::";
- }
-
- try {
- var tls = undefined;
- var TLSSocketClass = undefined;
- const bunTLS = this[bunTlsSymbol];
- if (typeof bunTLS === "function") {
- [tls, TLSSocketClass] = bunTLS.call(this, port, hostname, false);
- }
-
- this[bunSocketServerOptions].InternalSocketClass = TLSSocketClass || SocketClass;
-
- this.#server = Bun.listen(
- path
- ? {
- exclusive,
- unix: path,
- tls,
- socket: SocketClass[bunSocketServerHandlers],
- }
- : {
- exclusive,
- port,
- hostname,
- tls,
- socket: SocketClass[bunSocketServerHandlers],
- },
- );
-
- //make this instance available on handlers
- this.#server.data = this;
-
- this.#listening = true;
-
- // We must schedule the emitListeningNextTick() only after the next run of
- // the event loop's IO queue. Otherwise, the server may not actually be listening
- // when the 'listening' event is emitted.
- //
- // That leads to all sorts of confusion.
- //
- // process.nextTick() is not sufficient because it will run before the IO queue.
- setTimeout(emitListeningNextTick, 1, this, onListen);
- } catch (err) {
- this.#listening = false;
- setTimeout(emitErrorNextTick, 1, this, err);
- }
- return this;
- }
-}
-
-function emitErrorNextTick(self, error) {
- self.emit("error", error);
-}
-
-function emitListeningNextTick(self, onListen) {
- if (typeof onListen === "function") {
- try {
- onListen();
- } catch (err) {
- self.emit("error", err);
- }
- }
- self.emit("listening");
-}
-
-function createServer(options, connectionListener) {
- return new Server(options, connectionListener);
-}
-
-export default {
- createServer,
- Server,
- createConnection,
- connect,
- isIP,
- isIPv4,
- isIPv6,
- Socket,
- [Symbol.for("CommonJS")]: 0,
- [Symbol.for("::bunternal::")]: SocketClass,
-};
-
-export { createServer, Server, createConnection, connect, isIP, isIPv4, isIPv6, Socket };
diff --git a/src/bun.js/node-dns.exports.js b/src/bun.js/node-dns.exports.js
deleted file mode 100644
index dc05c6c51..000000000
--- a/src/bun.js/node-dns.exports.js
+++ /dev/null
@@ -1,719 +0,0 @@
-// only resolve4, resolve, lookup, resolve6 and resolveSrv are implemented.
-
-const { dns } = globalThis.Bun;
-
-function lookup(domain, options, callback) {
- if (typeof options == "function") {
- callback = options;
- }
-
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- if (typeof options == "number") {
- options = { family: options };
- }
-
- dns.lookup(domain, options).then(
- res => {
- res.sort((a, b) => a.family - b.family);
-
- if (options?.all) {
- callback(null, res.map(mapLookupAll));
- } else {
- const [{ address, family }] = res;
- callback(null, address, family);
- }
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolveSrv(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveSrv(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolveTxt(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveTxt(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolveSoa(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveSoa(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolveNaptr(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveNaptr(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolveMx(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveMx(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolveCaa(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveCaa(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolveNs(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveNs(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolvePtr(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolvePtr(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function resolveCname(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveCname(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
-}
-
-function lookupService(address, port, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- callback(null, address, port);
-}
-
-var InternalResolver = class Resolver {
- constructor(options) {}
-
- cancel() {}
-
- getServers() {
- return [];
- }
-
- resolve(hostname, rrtype, callback) {
- if (typeof rrtype == "function") {
- callback = rrtype;
- rrtype = null;
- }
-
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolve(hostname).then(
- results => {
- switch (rrtype?.toLowerCase()) {
- case "a":
- case "aaaa":
- callback(null, hostname, results.map(mapResolveX));
- break;
- default:
- callback(null, results);
- break;
- }
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolve4(hostname, options, callback) {
- if (typeof options == "function") {
- callback = options;
- options = null;
- }
-
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.lookup(hostname, { family: 4 }).then(
- addresses => {
- callback(null, options?.ttl ? addresses : addresses.map(mapResolveX));
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolve6(hostname, options, callback) {
- if (typeof options == "function") {
- callback = options;
- options = null;
- }
-
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.lookup(hostname, { family: 6 }).then(
- addresses => {
- callback(null, options?.ttl ? addresses : addresses.map(({ address }) => address));
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolveAny(hostname, callback) {
- callback(null, []);
- }
-
- resolveCname(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveCname(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolveMx(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveMx(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolveNaptr(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveNaptr(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolveNs(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveNs(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolvePtr(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolvePtr(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolveSrv(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveSrv(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolveCaa(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveCaa(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
-
- resolveTxt(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveTxt(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
- resolveSoa(hostname, callback) {
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolveSoa(hostname, callback).then(
- results => {
- callback(null, results);
- },
- error => {
- callback(error);
- },
- );
- }
-
- reverse(ip, callback) {
- callback(null, []);
- }
-
- setServers(servers) {}
-};
-
-function resolve(hostname, rrtype, callback) {
- if (typeof rrtype == "function") {
- callback = rrtype;
- }
-
- if (typeof callback != "function") {
- throw new TypeError("callback must be a function");
- }
-
- dns.resolve(hostname).then(
- results => {
- switch (rrtype?.toLowerCase()) {
- case "a":
- case "aaaa":
- callback(
- null,
- hostname,
- results.map(({ address }) => address),
- );
- break;
- default:
- callback(null, results);
- break;
- }
- },
- error => {
- callback(error);
- },
- );
-}
-
-function Resolver(options) {
- return new InternalResolver(options);
-}
-Object.setPrototypeOf(Resolver.prototype, InternalResolver.prototype);
-Object.setPrototypeOf(Resolver, InternalResolver);
-
-export var {
- resolve,
- resolve4,
- resolve6,
- resolveAny,
- resolveCname,
- resolveCaa,
- resolveMx,
- resolveNaptr,
- resolveNs,
- resolvePtr,
- resolveSoa,
- resolveSrv,
- reverse,
- resolveTxt,
-} = InternalResolver.prototype;
-
-function setDefaultResultOrder() {}
-function setServers() {}
-
-const promisifyLookup = res => {
- res.sort((a, b) => a.family - b.family);
- const [{ address, family }] = res;
- return { address, family };
-};
-
-const mapLookupAll = res => {
- const { address, family } = res;
- return { address, family };
-};
-
-const promisifyLookupAll = res => {
- res.sort((a, b) => a.family - b.family);
- return res.map(mapLookupAll);
-};
-
-const mapResolveX = a => a.address;
-
-const promisifyResolveX = res => {
- return res?.map(mapResolveX);
-};
-
-// promisified versions
-export const promises = {
- lookup(domain, options) {
- if (options?.all) {
- return dns.lookup(domain, options).then(promisifyLookupAll);
- }
- return dns.lookup(domain, options).then(promisifyLookup);
- },
-
- lookupService(address, port) {
- return Promise.resolve([]);
- },
-
- resolve(hostname, rrtype) {
- if (typeof rrtype !== "string") {
- rrtype = null;
- }
- switch (rrtype?.toLowerCase()) {
- case "a":
- case "aaaa":
- return dns.resolve(hostname, rrtype).then(promisifyLookup);
- default:
- return dns.resolve(hostname, rrtype);
- }
- },
-
- resolve4(hostname, options) {
- if (options?.ttl) {
- return dns.lookup(hostname, { family: 4 });
- }
- return dns.lookup(hostname, { family: 4 }).then(promisifyResolveX);
- },
-
- resolve6(hostname, options) {
- if (options?.ttl) {
- return dns.lookup(hostname, { family: 6 });
- }
- return dns.lookup(hostname, { family: 6 }).then(promisifyResolveX);
- },
-
- resolveSrv(hostname) {
- return dns.resolveSrv(hostname);
- },
- resolveTxt(hostname) {
- return dns.resolveTxt(hostname);
- },
- resolveSoa(hostname) {
- return dns.resolveSoa(hostname);
- },
- resolveNaptr(hostname) {
- return dns.resolveNaptr(hostname);
- },
-
- resolveMx(hostname) {
- return dns.resolveMx(hostname);
- },
- resolveCaa(hostname) {
- return dns.resolveCaa(hostname);
- },
- resolveNs(hostname) {
- return dns.resolveNs(hostname);
- },
- resolvePtr(hostname) {
- return dns.resolvePtr(hostname);
- },
- resolveCname(hostname) {
- return dns.resolveCname(hostname);
- },
-
- Resolver: class Resolver {
- constructor(options) {}
-
- cancel() {}
-
- getServers() {
- return [];
- }
-
- resolve(hostname, rrtype) {
- if (typeof rrtype !== "string") {
- rrtype = null;
- }
- switch (rrtype?.toLowerCase()) {
- case "a":
- case "aaaa":
- return dns.resolve(hostname, rrtype).then(promisifyLookup);
- default:
- return dns.resolve(hostname, rrtype);
- }
- }
-
- resolve4(hostname, options) {
- if (options?.ttl) {
- return dns.lookup(hostname, { family: 4 });
- }
- return dns.lookup(hostname, { family: 4 }).then(promisifyResolveX);
- }
-
- resolve6(hostname, options) {
- if (options?.ttl) {
- return dns.lookup(hostname, { family: 6 });
- }
- return dns.lookup(hostname, { family: 6 }).then(promisifyResolveX);
- }
-
- resolveAny(hostname) {
- return Promise.resolve([]);
- }
-
- resolveCname(hostname) {
- return dns.resolveCname(hostname);
- }
-
- resolveMx(hostname) {
- return dns.resolveMx(hostname);
- }
-
- resolveNaptr(hostname) {
- return dns.resolveNaptr(hostname);
- }
-
- resolveNs(hostname) {
- return dns.resolveNs(hostname);
- }
-
- resolvePtr(hostname) {
- return dns.resolvePtr(hostname);
- }
-
- resolveSoa(hostname) {
- return dns.resolveSoa(hostname);
- }
-
- resolveSrv(hostname) {
- return dns.resolveSrv(hostname);
- }
-
- resolveCaa(hostname) {
- return dns.resolveCaa(hostname);
- }
-
- resolveTxt(hostname) {
- return dns.resolveTxt(hostname);
- }
-
- reverse(ip) {
- return Promise.resolve([]);
- }
-
- setServers(servers) {}
- },
-};
-for (const key of ["resolveAny", "reverse"]) {
- promises[key] = () => Promise.resolve(undefined);
-}
-
-const exports = {
- // these are wrong
- ADDRCONFIG: 0,
- ALL: 1,
- V4MAPPED: 2,
-
- // ERROR CODES
- NODATA: "DNS_ENODATA",
- FORMERR: "DNS_EFORMERR",
- SERVFAIL: "DNS_ESERVFAIL",
- NOTFOUND: "DNS_ENOTFOUND",
- NOTIMP: "DNS_ENOTIMP",
- REFUSED: "DNS_EREFUSED",
- BADQUERY: "DNS_EBADQUERY",
- BADNAME: "DNS_EBADNAME",
- BADFAMILY: "DNS_EBADFAMILY",
- BADRESP: "DNS_EBADRESP",
- CONNREFUSED: "DNS_ECONNREFUSED",
- TIMEOUT: "DNS_ETIMEOUT",
- EOF: "DNS_EEOF",
- FILE: "DNS_EFILE",
- NOMEM: "DNS_ENOMEM",
- DESTRUCTION: "DNS_EDESTRUCTION",
- BADSTR: "DNS_EBADSTR",
- BADFLAGS: "DNS_EBADFLAGS",
- NONAME: "DNS_ENONAME",
- BADHINTS: "DNS_EBADHINTS",
- NOTINITIALIZED: "DNS_ENOTINITIALIZED",
- LOADIPHLPAPI: "DNS_ELOADIPHLPAPI",
- ADDRGETNETWORKPARAMS: "DNS_EADDRGETNETWORKPARAMS",
- CANCELLED: "DNS_ECANCELLED",
-
- lookup,
- lookupService,
- Resolver,
- setServers,
- setDefaultResultOrder,
- resolve,
- reverse,
- resolve4,
- resolve6,
- resolveAny,
- resolveCname,
- resolveCaa,
- resolveMx,
- resolveNs,
- resolvePtr,
- resolveSoa,
- resolveSrv,
- resolveTxt,
- resolveNaptr,
- promises,
- [Symbol.for("CommonJS")]: 0,
-};
-export default exports;
-export const {
- ADDRCONFIG,
- ALL,
- V4MAPPED,
- NODATA,
- FORMERR,
- SERVFAIL,
- NOTFOUND,
- NOTIMP,
- REFUSED,
- BADQUERY,
- BADNAME,
- BADFAMILY,
- BADRESP,
- CONNREFUSED,
- TIMEOUT,
- EOF,
- FILE,
- NOMEM,
- DESTRUCTION,
- BADSTR,
- BADFLAGS,
- NONAME,
- BADHINTS,
- NOTINITIALIZED,
- LOADIPHLPAPI,
- ADDRGETNETWORKPARAMS,
- CANCELLED,
-} = exports;
-export { lookup, lookupService, Resolver, setServers, setDefaultResultOrder };
diff --git a/src/bun.js/node-dns_promises.exports.js b/src/bun.js/node-dns_promises.exports.js
deleted file mode 100644
index 1fc894fe1..000000000
--- a/src/bun.js/node-dns_promises.exports.js
+++ /dev/null
@@ -1,44 +0,0 @@
-const { promises } = import.meta.require("node:dns");
-
-export const {
- lookup,
- lookupService,
- resolve,
- resolve4,
- resolveAny,
- resolveCname,
- resolveCaa,
- resolveMx,
- resolveNaptr,
- resolveNs,
- resolvePtr,
- resolveSoa,
- resolveSrv,
- resolveTxt,
- reverse,
- Resolver,
- setServers,
- setDefaultResultOrder,
-} = promises;
-
-export default {
- lookup,
- lookupService,
- resolve,
- resolve4,
- resolveAny,
- resolveCname,
- resolveCaa,
- resolveMx,
- resolveNaptr,
- resolveNs,
- resolvePtr,
- resolveSoa,
- resolveSrv,
- resolveTxt,
- reverse,
- Resolver,
- setServers,
- setDefaultResultOrder,
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/node-tls.exports.js b/src/bun.js/node-tls.exports.js
deleted file mode 100644
index d54b79089..000000000
--- a/src/bun.js/node-tls.exports.js
+++ /dev/null
@@ -1,336 +0,0 @@
-const { isTypedArray } = import.meta.require("util/types");
-
-function parseCertString() {
- throw Error("Not implemented");
-}
-
-function isValidTLSArray(obj) {
- if (typeof obj === "string" || isTypedArray(obj) || obj instanceof ArrayBuffer || obj instanceof Blob) return true;
- if (Array.isArray(obj)) {
- for (var i = 0; i < obj.length; i++) {
- if (typeof obj !== "string" && !isTypedArray(obj) && !(obj instanceof ArrayBuffer) && !(obj instanceof Blob))
- return false;
- }
- return true;
- }
-}
-
-var InternalSecureContext = class SecureContext {
- context;
-
- constructor(options) {
- const context = {};
- if (options) {
- let key = options.key;
- if (key) {
- if (!isValidTLSArray(key)) {
- throw new TypeError(
- "key argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.key = key;
- }
- let cert = options.cert;
- if (cert) {
- if (!isValidTLSArray(cert)) {
- throw new TypeError(
- "cert argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.cert = cert;
- }
-
- let ca = options.ca;
- if (ca) {
- if (!isValidTLSArray(ca)) {
- throw new TypeError(
- "ca argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.ca = ca;
- }
-
- let passphrase = options.passphrase;
- if (passphrase && typeof passphrase !== "string") {
- throw new TypeError("passphrase argument must be an string");
- }
- this.passphrase = passphrase;
-
- let servername = options.servername;
- if (servername && typeof servername !== "string") {
- throw new TypeError("servername argument must be an string");
- }
- this.servername = servername;
-
- let secureOptions = options.secureOptions || 0;
- if (secureOptions && typeof secureOptions !== "number") {
- throw new TypeError("secureOptions argument must be an number");
- }
- this.secureOptions = secureOptions;
- }
- this.context = context;
- }
-};
-
-function SecureContext(options) {
- return new InternalSecureContext(options);
-}
-
-function createSecureContext(options) {
- return new SecureContext(options);
-}
-
-const { [Symbol.for("::bunternal::")]: InternalTCPSocket, Server: NetServer } = import.meta.require("net");
-
-const buntls = Symbol.for("::buntls::");
-
-var SocketClass;
-const TLSSocket = (function (InternalTLSSocket) {
- SocketClass = InternalTLSSocket;
- Object.defineProperty(SocketClass.prototype, Symbol.toStringTag, {
- value: "TLSSocket",
- enumerable: false,
- });
-
- return Object.defineProperty(
- function Socket(options) {
- return new InternalTLSSocket(options);
- },
- Symbol.hasInstance,
- {
- value(instance) {
- return instance instanceof InternalTLSSocket;
- },
- },
- );
-})(
- class TLSSocket extends InternalTCPSocket {
- #secureContext;
- constructor(options) {
- super(options);
- this.#secureContext = options.secureContext || createSecureContext(options);
- this.authorized = false;
- this.secureConnecting = true;
- this._secureEstablished = false;
- this._securePending = true;
- }
-
- _secureEstablished = false;
- _securePending = true;
- _newSessionPending;
- _controlReleased;
- secureConnecting = false;
- _SNICallback;
- servername;
- alpnProtocol;
- authorized = false;
- authorizationError;
-
- encrypted = true;
-
- exportKeyingMaterial() {
- throw Error("Not implented in Bun yet");
- }
- setMaxSendFragment() {
- throw Error("Not implented in Bun yet");
- }
- setServername() {
- throw Error("Not implented in Bun yet");
- }
- setSession() {
- throw Error("Not implented in Bun yet");
- }
- getPeerCertificate() {
- throw Error("Not implented in Bun yet");
- }
- getCertificate() {
- throw Error("Not implented in Bun yet");
- }
- getPeerX509Certificate() {
- throw Error("Not implented in Bun yet");
- }
- getX509Certificate() {
- throw Error("Not implented in Bun yet");
- }
-
- [buntls](port, host) {
- var { servername } = this;
- if (servername) {
- return {
- serverName: typeof servername === "string" ? servername : host,
- ...this.#secureContext,
- };
- }
-
- return true;
- }
- },
-);
-
-class Server extends NetServer {
- key;
- cert;
- ca;
- passphrase;
- secureOptions;
- _rejectUnauthorized;
- _requestCert;
- servername;
-
- constructor(options, secureConnectionListener) {
- super(options, secureConnectionListener);
- this.setSecureContext(options);
- }
- emit(event, args) {
- super.emit(event, args);
-
- if (event === "connection") {
- // grabs secureConnect to emit secureConnection
- args.once("secureConnect", () => {
- super.emit("secureConnection", args);
- });
- }
- }
- setSecureContext(options) {
- if (options instanceof InternalSecureContext) {
- options = options.context;
- }
- if (options) {
- let key = options.key;
- if (key) {
- if (!isValidTLSArray(key)) {
- throw new TypeError(
- "key argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.key = key;
- }
- let cert = options.cert;
- if (cert) {
- if (!isValidTLSArray(cert)) {
- throw new TypeError(
- "cert argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.cert = cert;
- }
-
- let ca = options.ca;
- if (ca) {
- if (!isValidTLSArray(ca)) {
- throw new TypeError(
- "ca argument must be an string, Buffer, TypedArray, BunFile or an array containing string, Buffer, TypedArray or BunFile",
- );
- }
- this.ca = ca;
- }
-
- let passphrase = options.passphrase;
- if (passphrase && typeof passphrase !== "string") {
- throw new TypeError("passphrase argument must be an string");
- }
- this.passphrase = passphrase;
-
- let servername = options.servername;
- if (servername && typeof servername !== "string") {
- throw new TypeError("servername argument must be an string");
- }
- this.servername = servername;
-
- let secureOptions = options.secureOptions || 0;
- if (secureOptions && typeof secureOptions !== "number") {
- throw new TypeError("secureOptions argument must be an number");
- }
- this.secureOptions = secureOptions;
-
- const requestCert = options.requestCert || false;
-
- if (requestCert) this._requestCert = requestCert;
- else this._requestCert = undefined;
-
- const rejectUnauthorized = options.rejectUnauthorized || false;
-
- if (rejectUnauthorized) {
- this._rejectUnauthorized = rejectUnauthorized;
- } else this._rejectUnauthorized = undefined;
- }
- }
-
- getTicketKeys() {
- throw Error("Not implented in Bun yet");
- }
-
- setTicketKeys() {
- throw Error("Not implented in Bun yet");
- }
-
- [buntls](port, host, isClient) {
- return [
- {
- serverName: this.servername || host || "localhost",
- key: this.key,
- cert: this.cert,
- ca: this.ca,
- passphrase: this.passphrase,
- secureOptions: this.secureOptions,
- // Client always is NONE on set_verify
- rejectUnauthorized: isClient ? false : this._rejectUnauthorized,
- requestCert: isClient ? false : this._requestCert,
- },
- SocketClass,
- ];
- }
-}
-
-function createServer(options, connectionListener) {
- return new Server(options, connectionListener);
-}
-export const CLIENT_RENEG_LIMIT = 3,
- CLIENT_RENEG_WINDOW = 600,
- DEFAULT_ECDH_CURVE = "auto",
- // https://github.com/Jarred-Sumner/uSockets/blob/fafc241e8664243fc0c51d69684d5d02b9805134/src/crypto/openssl.c#L519-L523
- DEFAULT_CIPHERS =
- "DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
- DEFAULT_MIN_VERSION = "TLSv1.2",
- DEFAULT_MAX_VERSION = "TLSv1.3",
- createConnection = (port, host, connectListener) => {
- if (typeof port === "object") {
- // port is option pass Socket options and let connect handle connection options
- return new TLSSocket(port).connect(port, host, connectListener);
- }
- // port is path or host, let connect handle this
- return new TLSSocket().connect(port, host, connectListener);
- },
- connect = createConnection;
-
-var exports = {
- createSecureContext,
- parseCertString,
-
- getCiphers() {
- return DEFAULT_CIPHERS.split(":");
- },
-
- getCurves() {
- return;
- },
-
- convertALPNProtocols(protocols, out) {},
- TLSSocket,
- SecureContext,
- CLIENT_RENEG_LIMIT,
- CLIENT_RENEG_WINDOW,
- DEFAULT_ECDH_CURVE,
- DEFAULT_CIPHERS,
- DEFAULT_MIN_VERSION,
- DEFAULT_MAX_VERSION,
- [Symbol.for("CommonJS")]: 0,
- connect,
- createConnection,
- Server,
- createServer,
-};
-
-export default exports;
-
-export { createSecureContext, parseCertString, TLSSocket, SecureContext };
diff --git a/src/bun.js/node_streams_consumer.exports.js b/src/bun.js/node_streams_consumer.exports.js
deleted file mode 100644
index dba3f6a93..000000000
--- a/src/bun.js/node_streams_consumer.exports.js
+++ /dev/null
@@ -1,20 +0,0 @@
-const { Bun } = import.meta.primordials;
-
-export const arrayBuffer = Bun.readableStreamToArrayBuffer;
-export const text = Bun.readableStreamToText;
-export const json = stream => Bun.readableStreamToText(stream).then(JSON.parse);
-
-export const buffer = async readableStream => {
- return new Buffer(await arrayBuffer(readableStream));
-};
-
-export const blob = Bun.readableStreamToBlob;
-
-export default {
- [Symbol.for("CommonJS")]: 0,
- arrayBuffer,
- text,
- json,
- buffer,
- blob,
-};
diff --git a/src/bun.js/node_streams_promises.exports.js b/src/bun.js/node_streams_promises.exports.js
deleted file mode 100644
index 1755c73eb..000000000
--- a/src/bun.js/node_streams_promises.exports.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var { promises } = import.meta.require("node:stream");
-
-export var { pipeline, finished } = promises;
-
-export default {
- pipeline,
- finished,
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/node_streams_web.exports.js b/src/bun.js/node_streams_web.exports.js
deleted file mode 100644
index d4c5a278c..000000000
--- a/src/bun.js/node_streams_web.exports.js
+++ /dev/null
@@ -1,29 +0,0 @@
-export const {
- ReadableStream,
- ReadableStreamDefaultController,
- WritableStream,
- WritableStreamDefaultController,
- WritableStreamDefaultWriter,
- TransformStream,
- TransformStreamDefaultController,
- ByteLengthQueuingStrategy,
- CountQueuingStrategy,
- ReadableStreamBYOBReader,
- ReadableStreamBYOBRequest,
- ReadableStreamDefaultReader,
-} = globalThis;
-export default {
- ReadableStream,
- ReadableStreamDefaultController,
- WritableStream,
- WritableStreamDefaultController,
- WritableStreamDefaultWriter,
- TransformStream,
- TransformStreamDefaultController,
- ByteLengthQueuingStrategy,
- CountQueuingStrategy,
- ReadableStreamBYOBReader,
- ReadableStreamBYOBRequest,
- ReadableStreamDefaultReader,
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/node_timers.exports.js b/src/bun.js/node_timers.exports.js
deleted file mode 100644
index 52dec5baa..000000000
--- a/src/bun.js/node_timers.exports.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// This implementation isn't 100% correct
-// Ref/unref does not impact whether the process is kept alive
-
-export var { setTimeout, clearTimeout, setInterval, setImmediate, clearInterval, clearImmediate } = globalThis;
-
-export default {
- setInterval,
- setImmediate,
- setTimeout,
- clearInterval,
- clearTimeout,
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/node_timers_promises.exports.js b/src/bun.js/node_timers_promises.exports.js
deleted file mode 100644
index 3c4c5d1a5..000000000
--- a/src/bun.js/node_timers_promises.exports.js
+++ /dev/null
@@ -1,234 +0,0 @@
-// https://github.com/niksy/isomorphic-timers-promises/blob/master/index.js
-const symbolAsyncIterator = Symbol.asyncIterator;
-
-class ERR_INVALID_ARG_TYPE extends Error {
- constructor(name, expected, actual) {
- super(`${name} must be ${expected}, ${typeof actual} given`);
- this.code = "ERR_INVALID_ARG_TYPE";
- }
-}
-
-class AbortError extends Error {
- constructor() {
- super("The operation was aborted");
- this.code = "ABORT_ERR";
- }
-}
-
-function validateObject(object, name) {
- if (object === null || typeof object !== "object") {
- throw new ERR_INVALID_ARG_TYPE(name, "Object", object);
- }
-}
-
-function validateBoolean(value, name) {
- if (typeof value !== "boolean") {
- throw new ERR_INVALID_ARG_TYPE(name, "boolean", value);
- }
-}
-
-function validateAbortSignal(signal, name) {
- if (typeof signal !== "undefined" && (signal === null || typeof signal !== "object" || !("aborted" in signal))) {
- throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
- }
-}
-
-function asyncIterator({ next: nextFunction, return: returnFunction }) {
- const result = {};
- if (typeof nextFunction === "function") {
- result.next = nextFunction;
- }
- if (typeof returnFunction === "function") {
- result.return = returnFunction;
- }
- result[symbolAsyncIterator] = function () {
- return this;
- };
-
- return result;
-}
-
-function setTimeoutPromise(after = 1, value, options = {}) {
- const arguments_ = [].concat(value ?? []);
- try {
- validateObject(options, "options");
- } catch (error) {
- return Promise.reject(error);
- }
- const { signal, ref: reference = true } = options;
- try {
- validateAbortSignal(signal, "options.signal");
- } catch (error) {
- return Promise.reject(error);
- }
- try {
- validateBoolean(reference, "options.ref");
- } catch (error) {
- return Promise.reject(error);
- }
- if (signal?.aborted) {
- return Promise.reject(new AbortError());
- }
- let onCancel;
- const returnValue = new Promise((resolve, reject) => {
- const timeout = setTimeout(() => resolve(value), after, ...arguments_);
- if (!reference) {
- timeout?.unref?.();
- }
- if (signal) {
- onCancel = () => {
- clearTimeout(timeout);
- reject(new AbortError());
- };
- signal.addEventListener("abort", onCancel);
- }
- });
- if (typeof onCancel !== "undefined") {
- returnValue.finally(() => signal.removeEventListener("abort", onCancel));
- }
- return returnValue;
-}
-
-function setImmediatePromise(value, options = {}) {
- try {
- validateObject(options, "options");
- } catch (error) {
- return Promise.reject(error);
- }
- const { signal, ref: reference = true } = options;
- try {
- validateAbortSignal(signal, "options.signal");
- } catch (error) {
- return Promise.reject(error);
- }
- try {
- validateBoolean(reference, "options.ref");
- } catch (error) {
- return Promise.reject(error);
- }
- if (signal?.aborted) {
- return Promise.reject(new AbortError());
- }
- let onCancel;
- const returnValue = new Promise((resolve, reject) => {
- const immediate = setImmediate(() => resolve(value));
- if (!reference) {
- immediate?.unref?.();
- }
- if (signal) {
- onCancel = () => {
- clearImmediate(immediate);
- reject(new AbortError());
- };
- signal.addEventListener("abort", onCancel);
- }
- });
- if (typeof onCancel !== "undefined") {
- returnValue.finally(() => signal.removeEventListener("abort", onCancel));
- }
- return returnValue;
-}
-
-function setIntervalPromise(after = 1, value, options = {}) {
- /* eslint-disable no-undefined, no-unreachable-loop, no-loop-func */
- try {
- validateObject(options, "options");
- } catch (error) {
- return asyncIterator({
- next: function () {
- return Promise.reject(error);
- },
- });
- }
- const { signal, ref: reference = true } = options;
- try {
- validateAbortSignal(signal, "options.signal");
- } catch (error) {
- return asyncIterator({
- next: function () {
- return Promise.reject(error);
- },
- });
- }
- try {
- validateBoolean(reference, "options.ref");
- } catch (error) {
- return asyncIterator({
- next: function () {
- return Promise.reject(error);
- },
- });
- }
- if (signal?.aborted) {
- return asyncIterator({
- next: function () {
- return Promise.reject(new AbortError());
- },
- });
- }
-
- let onCancel, interval;
-
- try {
- let notYielded = 0;
- let callback;
- interval = setInterval(() => {
- notYielded++;
- if (callback) {
- callback();
- callback = undefined;
- }
- }, after);
- if (!reference) {
- interval?.unref?.();
- }
- if (signal) {
- onCancel = () => {
- clearInterval(interval);
- if (callback) {
- callback();
- callback = undefined;
- }
- };
- signal.addEventListener("abort", onCancel);
- }
-
- return asyncIterator({
- next: function () {
- return new Promise((resolve, reject) => {
- if (!signal?.aborted) {
- if (notYielded === 0) {
- callback = resolve;
- } else {
- resolve();
- }
- } else if (notYielded === 0) {
- reject(new AbortError());
- } else {
- resolve();
- }
- }).then(() => {
- if (notYielded > 0) {
- notYielded = notYielded - 1;
- return { done: false, value: value };
- }
- return { done: true };
- });
- },
- return: function () {
- clearInterval(interval);
- signal?.removeEventListener("abort", onCancel);
- return Promise.resolve({});
- },
- });
- } catch (error) {
- return asyncIterator({
- next: function () {
- clearInterval(interval);
- signal?.removeEventListener("abort", onCancel);
- },
- });
- }
-}
-
-export { setTimeoutPromise as setTimeout, setImmediatePromise as setImmediate, setIntervalPromise as setInterval };
diff --git a/src/bun.js/os.exports.js b/src/bun.js/os.exports.js
deleted file mode 100644
index 78f6d5ffc..000000000
--- a/src/bun.js/os.exports.js
+++ /dev/null
@@ -1,56 +0,0 @@
-function bound(obj) {
- return {
- arch: obj.arch.bind(obj),
- cpus: obj.cpus.bind(obj),
- endianness: obj.endianness.bind(obj),
- freemem: obj.freemem.bind(obj),
- getPriority: obj.getPriority.bind(obj),
- homedir: obj.homedir.bind(obj),
- hostname: obj.hostname.bind(obj),
- loadavg: obj.loadavg.bind(obj),
- networkInterfaces: obj.networkInterfaces.bind(obj),
- platform: obj.platform.bind(obj),
- release: obj.release.bind(obj),
- setPriority: obj.setPriority.bind(obj),
- tmpdir: obj.tmpdir.bind(obj),
- totalmem: obj.totalmem.bind(obj),
- type: obj.type.bind(obj),
- uptime: obj.uptime.bind(obj),
- userInfo: obj.userInfo.bind(obj),
- version: obj.version.bind(obj),
- machine: obj.machine.bind(obj),
- devNull: obj.devNull,
- EOL: obj.EOL,
- constants: obj.constants,
- [Symbol.for("CommonJS")]: 0,
- };
-}
-
-var os = bound(Bun._Os());
-
-export var {
- arch,
- cpus,
- endianness,
- freemem,
- getPriority,
- homedir,
- hostname,
- loadavg,
- networkInterfaces,
- platform,
- release,
- setPriority,
- tmpdir,
- totalmem,
- type,
- uptime,
- userInfo,
- version,
- machine,
- devNull,
- EOL,
- constants,
-} = os;
-
-export default os;
diff --git a/src/bun.js/path-posix.exports.js b/src/bun.js/path-posix.exports.js
deleted file mode 100644
index 43630421a..000000000
--- a/src/bun.js/path-posix.exports.js
+++ /dev/null
@@ -1,36 +0,0 @@
-function bound(obj) {
- return {
- basename: obj.basename.bind(obj),
- dirname: obj.dirname.bind(obj),
- extname: obj.extname.bind(obj),
- format: obj.format.bind(obj),
- isAbsolute: obj.isAbsolute.bind(obj),
- join: obj.join.bind(obj),
- normalize: obj.normalize.bind(obj),
- parse: obj.parse.bind(obj),
- relative: obj.relative.bind(obj),
- resolve: obj.resolve.bind(obj),
- toNamespacedPath: obj.toNamespacedPath.bind(obj),
- sep: obj.sep,
- delimiter: obj.delimiter,
- };
-}
-var path = bound(Bun._Path(false));
-path[Symbol.for("CommonJS")] = 0;
-
-export var {
- basename,
- dirname,
- extname,
- format,
- isAbsolute,
- join,
- normalize,
- parse,
- relative,
- resolve,
- toNamespacedPath,
- sep,
- delimiter,
-} = path;
-export default path;
diff --git a/src/bun.js/path-win32.exports.js b/src/bun.js/path-win32.exports.js
deleted file mode 100644
index 932cc8960..000000000
--- a/src/bun.js/path-win32.exports.js
+++ /dev/null
@@ -1,35 +0,0 @@
-function bound(obj) {
- return {
- basename: obj.basename.bind(obj),
- dirname: obj.dirname.bind(obj),
- extname: obj.extname.bind(obj),
- format: obj.format.bind(obj),
- isAbsolute: obj.isAbsolute.bind(obj),
- join: obj.join.bind(obj),
- normalize: obj.normalize.bind(obj),
- parse: obj.parse.bind(obj),
- relative: obj.relative.bind(obj),
- resolve: obj.resolve.bind(obj),
- toNamespacedPath: obj.toNamespacedPath.bind(obj),
- sep: obj.sep,
- delimiter: obj.delimiter,
- };
-}
-var path = bound(Bun._Path(true));
-
-export var {
- basename,
- dirname,
- extname,
- format,
- isAbsolute,
- join,
- normalize,
- parse,
- relative,
- resolve,
- toNamespacedPath,
- sep,
- delimiter,
-} = path;
-export default path;
diff --git a/src/bun.js/path.exports.js b/src/bun.js/path.exports.js
deleted file mode 100644
index dd0aabadd..000000000
--- a/src/bun.js/path.exports.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Utils to extract later
-const createModule = obj => Object.assign(Object.create(null), obj);
-
-function bound(obj) {
- var result = createModule({
- basename: obj.basename.bind(obj),
- dirname: obj.dirname.bind(obj),
- extname: obj.extname.bind(obj),
- format: obj.format.bind(obj),
- isAbsolute: obj.isAbsolute.bind(obj),
- join: obj.join.bind(obj),
- normalize: obj.normalize.bind(obj),
- parse: obj.parse.bind(obj),
- relative: obj.relative.bind(obj),
- resolve: obj.resolve.bind(obj),
- toNamespacedPath: obj.toNamespacedPath.bind(obj),
- sep: obj.sep,
- delimiter: obj.delimiter,
- });
- result.default = result;
- return result;
-}
-var path = bound(Bun._Path());
-
-export var posix = bound(Bun._Path(false));
-export var win32 = bound(Bun._Path(true));
-
-path.win32 = win32;
-path.posix = posix;
-
-export var {
- basename,
- dirname,
- extname,
- format,
- isAbsolute,
- join,
- normalize,
- parse,
- relative,
- resolve,
- toNamespacedPath,
- sep,
- delimiter,
- __esModule,
-} = path;
-
-path[Symbol.for("CommonJS")] = 0;
-path.__esModule = true;
-export default path;
diff --git a/src/bun.js/perf_hooks.exports.js b/src/bun.js/perf_hooks.exports.js
deleted file mode 100644
index 5cc46a5e1..000000000
--- a/src/bun.js/perf_hooks.exports.js
+++ /dev/null
@@ -1,25 +0,0 @@
-export var performance = globalThis.performance;
-
-export class PerformanceObserver {
- constructor() {
- throw new Error("PerformanceEntry is not implemented yet");
- }
-}
-
-export class PerformanceEntry {
- constructor() {
- throw new Error("PerformanceEntry is not implemented yet");
- }
-}
-export class PerformanceNodeTiming {
- constructor() {
- throw new Error("PerformanceNodeTiming is not supported in this environment.");
- }
-}
-
-export default {
- performance,
- PerformanceEntry,
- PerformanceNodeTiming,
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/process-stdio-polyfill.js b/src/bun.js/process-stdio-polyfill.js
deleted file mode 100644
index e69de29bb..000000000
--- a/src/bun.js/process-stdio-polyfill.js
+++ /dev/null
diff --git a/src/bun.js/readline.exports.js b/src/bun.js/readline.exports.js
deleted file mode 100644
index 3044c5c20..000000000
--- a/src/bun.js/readline.exports.js
+++ /dev/null
@@ -1,3137 +0,0 @@
-// Attribution: Some parts of of this module are derived from code originating from the Node.js
-// readline module which is licensed under an MIT license:
-//
-// Copyright Node.js contributors. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-
-// ----------------------------------------------------------------------------
-// Section: Imports
-// ----------------------------------------------------------------------------
-var { Array, RegExp, String, Bun } = import.meta.primordials;
-var EventEmitter = import.meta.require("node:events");
-var { clearTimeout, setTimeout } = import.meta.require("timers");
-var { StringDecoder } = import.meta.require("string_decoder");
-var isWritable;
-
-var { inspect } = Bun;
-var debug = process.env.BUN_JS_DEBUG ? console.log : () => {};
-
-// ----------------------------------------------------------------------------
-// Section: Preamble
-// ----------------------------------------------------------------------------
-
-var SymbolAsyncIterator = Symbol.asyncIterator;
-var SymbolIterator = Symbol.iterator;
-var SymbolFor = Symbol.for;
-var SymbolReplace = Symbol.replace;
-var ArrayFrom = Array.from;
-var ArrayIsArray = Array.isArray;
-var ArrayPrototypeFilter = Array.prototype.filter;
-var ArrayPrototypeSort = Array.prototype.sort;
-var ArrayPrototypeIndexOf = Array.prototype.indexOf;
-var ArrayPrototypeJoin = Array.prototype.join;
-var ArrayPrototypeMap = Array.prototype.map;
-var ArrayPrototypePop = Array.prototype.pop;
-var ArrayPrototypePush = Array.prototype.push;
-var ArrayPrototypeSlice = Array.prototype.slice;
-var ArrayPrototypeSplice = Array.prototype.splice;
-var ArrayPrototypeReverse = Array.prototype.reverse;
-var ArrayPrototypeShift = Array.prototype.shift;
-var ArrayPrototypeUnshift = Array.prototype.unshift;
-var RegExpPrototypeExec = RegExp.prototype.exec;
-var RegExpPrototypeSymbolReplace = RegExp.prototype[SymbolReplace];
-var StringFromCharCode = String.fromCharCode;
-var StringPrototypeCharCodeAt = String.prototype.charCodeAt;
-var StringPrototypeCodePointAt = String.prototype.codePointAt;
-var StringPrototypeSlice = String.prototype.slice;
-var StringPrototypeToLowerCase = String.prototype.toLowerCase;
-var StringPrototypeEndsWith = String.prototype.endsWith;
-var StringPrototypeRepeat = String.prototype.repeat;
-var StringPrototypeStartsWith = String.prototype.startsWith;
-var StringPrototypeTrim = String.prototype.trim;
-var StringPrototypeNormalize = String.prototype.normalize;
-var NumberIsNaN = Number.isNaN;
-var NumberIsFinite = Number.isFinite;
-var NumberIsInteger = Number.isInteger;
-var NumberMAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
-var NumberMIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
-var MathCeil = Math.ceil;
-var MathFloor = Math.floor;
-var MathMax = Math.max;
-var MathMaxApply = Math.max.apply;
-var DateNow = Date.now;
-var FunctionPrototype = Function.prototype;
-var StringPrototype = String.prototype;
-var StringPrototypeSymbolIterator = StringPrototype[SymbolIterator];
-var StringIteratorPrototypeNext = StringPrototypeSymbolIterator.call("").next;
-var ObjectSetPrototypeOf = Object.setPrototypeOf;
-var ObjectDefineProperty = Object.defineProperty;
-var ObjectDefineProperties = Object.defineProperties;
-var ObjectFreeze = Object.freeze;
-var ObjectAssign = Object.assign;
-var ObjectCreate = Object.create;
-var ObjectKeys = Object.keys;
-var ObjectSeal = Object.seal;
-
-var createSafeIterator = (factory, next) => {
- class SafeIterator {
- #iterator;
- constructor(iterable) {
- this.#iterator = factory.call(iterable);
- }
- next() {
- return next.call(this.#iterator);
- }
- [SymbolIterator]() {
- return this;
- }
- }
- ObjectSetPrototypeOf(SafeIterator.prototype, null);
- ObjectFreeze(SafeIterator.prototype);
- ObjectFreeze(SafeIterator);
- return SafeIterator;
-};
-
-var SafeStringIterator = createSafeIterator(StringPrototypeSymbolIterator, StringIteratorPrototypeNext);
-
-// ----------------------------------------------------------------------------
-// Section: "Internal" modules
-// ----------------------------------------------------------------------------
-
-/**
- * Returns true if the character represented by a given
- * Unicode code point is full-width. Otherwise returns false.
- */
-var isFullWidthCodePoint = code => {
- // Code points are partially derived from:
- // https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt
- return (
- code >= 0x1100 &&
- (code <= 0x115f || // Hangul Jamo
- code === 0x2329 || // LEFT-POINTING ANGLE BRACKET
- code === 0x232a || // RIGHT-POINTING ANGLE BRACKET
- // CJK Radicals Supplement .. Enclosed CJK Letters and Months
- (code >= 0x2e80 && code <= 0x3247 && code !== 0x303f) ||
- // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
- (code >= 0x3250 && code <= 0x4dbf) ||
- // CJK Unified Ideographs .. Yi Radicals
- (code >= 0x4e00 && code <= 0xa4c6) ||
- // Hangul Jamo Extended-A
- (code >= 0xa960 && code <= 0xa97c) ||
- // Hangul Syllables
- (code >= 0xac00 && code <= 0xd7a3) ||
- // CJK Compatibility Ideographs
- (code >= 0xf900 && code <= 0xfaff) ||
- // Vertical Forms
- (code >= 0xfe10 && code <= 0xfe19) ||
- // CJK Compatibility Forms .. Small Form Variants
- (code >= 0xfe30 && code <= 0xfe6b) ||
- // Halfwidth and Fullwidth Forms
- (code >= 0xff01 && code <= 0xff60) ||
- (code >= 0xffe0 && code <= 0xffe6) ||
- // Kana Supplement
- (code >= 0x1b000 && code <= 0x1b001) ||
- // Enclosed Ideographic Supplement
- (code >= 0x1f200 && code <= 0x1f251) ||
- // Miscellaneous Symbols and Pictographs 0x1f300 - 0x1f5ff
- // Emoticons 0x1f600 - 0x1f64f
- (code >= 0x1f300 && code <= 0x1f64f) ||
- // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
- (code >= 0x20000 && code <= 0x3fffd))
- );
-};
-
-var isZeroWidthCodePoint = code => {
- return (
- code <= 0x1f || // C0 control codes
- (code >= 0x7f && code <= 0x9f) || // C1 control codes
- (code >= 0x300 && code <= 0x36f) || // Combining Diacritical Marks
- (code >= 0x200b && code <= 0x200f) || // Modifying Invisible Characters
- // Combining Diacritical Marks for Symbols
- (code >= 0x20d0 && code <= 0x20ff) ||
- (code >= 0xfe00 && code <= 0xfe0f) || // Variation Selectors
- (code >= 0xfe20 && code <= 0xfe2f) || // Combining Half Marks
- (code >= 0xe0100 && code <= 0xe01ef)
- ); // Variation Selectors
-};
-
-/**
- * Returns the number of columns required to display the given string.
- */
-var getStringWidth = function getStringWidth(str, removeControlChars = true) {
- var width = 0;
-
- if (removeControlChars) str = stripVTControlCharacters(str);
- str = StringPrototypeNormalize.call(str, "NFC");
- for (var char of new SafeStringIterator(str)) {
- var code = StringPrototypeCodePointAt.call(char, 0);
- if (isFullWidthCodePoint(code)) {
- width += 2;
- } else if (!isZeroWidthCodePoint(code)) {
- width++;
- }
- }
-
- return width;
-};
-
-// Regex used for ansi escape code splitting
-// Adopted from https://github.com/chalk/ansi-regex/blob/HEAD/index.js
-// License: MIT, authors: @sindresorhus, Qix-, arjunmehta and LitoMore
-// Matches all ansi escape code sequences in a string
-var ansiPattern =
- "[\\u001B\\u009B][[\\]()#;?]*" +
- "(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*" +
- "|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)" +
- "|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))";
-var ansi = new RegExp(ansiPattern, "g");
-
-/**
- * Remove all VT control characters. Use to estimate displayed string width.
- */
-function stripVTControlCharacters(str) {
- validateString(str, "str");
- return RegExpPrototypeSymbolReplace.call(ansi, str, "");
-}
-
-// Promisify
-
-var kCustomPromisifiedSymbol = SymbolFor("nodejs.util.promisify.custom");
-var kCustomPromisifyArgsSymbol = Symbol("customPromisifyArgs");
-
-function promisify(original) {
- validateFunction(original, "original");
-
- if (original[kCustomPromisifiedSymbol]) {
- var fn = original[kCustomPromisifiedSymbol];
-
- validateFunction(fn, "util.promisify.custom");
-
- return ObjectDefineProperty(fn, kCustomPromisifiedSymbol, {
- __proto__: null,
- value: fn,
- enumerable: false,
- writable: false,
- configurable: true,
- });
- }
-
- // Names to create an object from in case the callback receives multiple
- // arguments, e.g. ['bytesRead', 'buffer'] for fs.read.
- var argumentNames = original[kCustomPromisifyArgsSymbol];
-
- function fn(...args) {
- return new Promise((resolve, reject) => {
- ArrayPrototypePush.call(args, (err, ...values) => {
- if (err) {
- return reject(err);
- }
- if (argumentNames !== undefined && values.length > 1) {
- var obj = {};
- for (var i = 0; i < argumentNames.length; i++) obj[argumentNames[i]] = values[i];
- resolve(obj);
- } else {
- resolve(values[0]);
- }
- });
- ReflectApply(original, this, args);
- });
- }
-
- ObjectSetPrototypeOf(fn, ObjectGetPrototypeOf(original));
-
- ObjectDefineProperty(fn, kCustomPromisifiedSymbol, {
- __proto__: null,
- value: fn,
- enumerable: false,
- writable: false,
- configurable: true,
- });
-
- var descriptors = ObjectGetOwnPropertyDescriptors(original);
- var propertiesValues = ObjectValues(descriptors);
- for (var i = 0; i < propertiesValues.length; i++) {
- // We want to use null-prototype objects to not rely on globally mutable
- // %Object.prototype%.
- ObjectSetPrototypeOf(propertiesValues[i], null);
- }
- return ObjectDefineProperties(fn, descriptors);
-}
-
-promisify.custom = kCustomPromisifiedSymbol;
-
-// Constants
-
-var kUTF16SurrogateThreshold = 0x10000; // 2 ** 16
-var kEscape = "\x1b";
-var kSubstringSearch = Symbol("kSubstringSearch");
-
-var kIsNodeError = Symbol("kIsNodeError");
-
-// Errors
-var errorBases = {};
-var VALID_NODE_ERROR_BASES = {
- TypeError,
- RangeError,
- Error,
-};
-
-function getNodeErrorByName(typeName) {
- var base = errorBases[typeName];
- if (base) {
- return base;
- }
- if (!ObjectKeys(VALID_NODE_ERROR_BASES).includes(typeName)) {
- throw new Error("Invalid NodeError type");
- }
-
- var Base = VALID_NODE_ERROR_BASES[typeName];
-
- class NodeError extends Base {
- [kIsNodeError] = true;
- code;
- constructor(msg, opts) {
- super(msg, opts);
- this.code = opts?.code || "ERR_GENERIC";
- }
-
- toString() {
- return `${this.name} [${this.code}]: ${this.message}`;
- }
- }
- errorBases[typeName] = NodeError;
- return NodeError;
-}
-
-var NodeError = getNodeErrorByName("Error");
-var NodeTypeError = getNodeErrorByName("TypeError");
-var NodeRangeError = getNodeErrorByName("RangeError");
-
-class ERR_INVALID_ARG_TYPE extends NodeTypeError {
- constructor(name, type, value) {
- super(`The "${name}" argument must be of type ${type}. Received type ${typeof value}`, {
- code: "ERR_INVALID_ARG_TYPE",
- });
- }
-}
-
-class ERR_INVALID_ARG_VALUE extends NodeTypeError {
- constructor(name, value, reason = "not specified") {
- super(`The value "${String(value)}" is invalid for argument '${name}'. Reason: ${reason}`, {
- code: "ERR_INVALID_ARG_VALUE",
- });
- }
-}
-
-class ERR_INVALID_CURSOR_POS extends NodeTypeError {
- constructor() {
- super("Cannot set cursor row without setting its column", {
- code: "ERR_INVALID_CURSOR_POS",
- });
- }
-}
-
-class ERR_OUT_OF_RANGE extends NodeRangeError {
- constructor(name, range, received) {
- super(`The value of "${name}" is out of range. It must be ${range}. Received ${received}`, {
- code: "ERR_OUT_OF_RANGE",
- });
- }
-}
-
-class ERR_USE_AFTER_CLOSE extends NodeError {
- constructor() {
- super("This socket has been ended by the other party", {
- code: "ERR_USE_AFTER_CLOSE",
- });
- }
-}
-
-class AbortError extends Error {
- code;
- constructor() {
- super("The operation was aborted");
- this.code = "ABORT_ERR";
- }
-}
-
-// Validators
-
-/**
- * @callback validateFunction
- * @param {*} value
- * @param {string} name
- * @returns {asserts value is Function}
- */
-function validateFunction(value, name) {
- if (typeof value !== "function") throw new ERR_INVALID_ARG_TYPE(name, "Function", value);
-}
-
-/**
- * @callback validateAbortSignal
- * @param {*} signal
- * @param {string} name
- */
-function validateAbortSignal(signal, name) {
- if (signal !== undefined && (signal === null || typeof signal !== "object" || !("aborted" in signal))) {
- throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
- }
-}
-
-/**
- * @callback validateArray
- * @param {*} value
- * @param {string} name
- * @param {number} [minLength]
- * @returns {asserts value is any[]}
- */
-function validateArray(value, name, minLength = 0) {
- // var validateArray = hideStackFrames((value, name, minLength = 0) => {
- if (!ArrayIsArray(value)) {
- throw new ERR_INVALID_ARG_TYPE(name, "Array", value);
- }
- if (value.length < minLength) {
- var reason = `must be longer than ${minLength}`;
- throw new ERR_INVALID_ARG_VALUE(name, value, reason);
- }
-}
-
-/**
- * @callback validateString
- * @param {*} value
- * @param {string} name
- * @returns {asserts value is string}
- */
-function validateString(value, name) {
- if (typeof value !== "string") throw new ERR_INVALID_ARG_TYPE(name, "string", value);
-}
-
-/**
- * @callback validateBoolean
- * @param {*} value
- * @param {string} name
- * @returns {asserts value is boolean}
- */
-function validateBoolean(value, name) {
- if (typeof value !== "boolean") throw new ERR_INVALID_ARG_TYPE(name, "boolean", value);
-}
-
-/**
- * @callback validateObject
- * @param {*} value
- * @param {string} name
- * @param {{
- * allowArray?: boolean,
- * allowFunction?: boolean,
- * nullable?: boolean
- * }} [options]
- */
-function validateObject(value, name, options = null) {
- // var validateObject = hideStackFrames((value, name, options = null) => {
- var allowArray = options?.allowArray ?? false;
- var allowFunction = options?.allowFunction ?? false;
- var nullable = options?.nullable ?? false;
- if (
- (!nullable && value === null) ||
- (!allowArray && ArrayIsArray.call(value)) ||
- (typeof value !== "object" && (!allowFunction || typeof value !== "function"))
- ) {
- throw new ERR_INVALID_ARG_TYPE(name, "object", value);
- }
-}
-
-/**
- * @callback validateInteger
- * @param {*} value
- * @param {string} name
- * @param {number} [min]
- * @param {number} [max]
- * @returns {asserts value is number}
- */
-function validateInteger(value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) {
- if (typeof value !== "number") throw new ERR_INVALID_ARG_TYPE(name, "number", value);
- if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, "an integer", value);
- if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
-}
-
-/**
- * @callback validateUint32
- * @param {*} value
- * @param {string} name
- * @param {number|boolean} [positive=false]
- * @returns {asserts value is number}
- */
-function validateUint32(value, name, positive = false) {
- if (typeof value !== "number") {
- throw new ERR_INVALID_ARG_TYPE(name, "number", value);
- }
-
- if (!NumberIsInteger(value)) {
- throw new ERR_OUT_OF_RANGE(name, "an integer", value);
- }
-
- var min = positive ? 1 : 0; // 2 ** 32 === 4294967296
- var max = 4_294_967_295;
-
- if (value < min || value > max) {
- throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
- }
-}
-
-// ----------------------------------------------------------------------------
-// Section: Utils
-// ----------------------------------------------------------------------------
-
-function CSI(strings, ...args) {
- var ret = `${kEscape}[`;
- for (var n = 0; n < strings.length; n++) {
- ret += strings[n];
- if (n < args.length) ret += args[n];
- }
- return ret;
-}
-
-var kClearLine, kClearScreenDown, kClearToLineBeginning, kClearToLineEnd;
-
-CSI.kEscape = kEscape;
-CSI.kClearLine = kClearLine = CSI`2K`;
-CSI.kClearScreenDown = kClearScreenDown = CSI`0J`;
-CSI.kClearToLineBeginning = kClearToLineBeginning = CSI`1K`;
-CSI.kClearToLineEnd = kClearToLineEnd = CSI`0K`;
-
-function charLengthLeft(str, i) {
- if (i <= 0) return 0;
- if (
- (i > 1 && StringPrototypeCodePointAt.call(str, i - 2) >= kUTF16SurrogateThreshold) ||
- StringPrototypeCodePointAt.call(str, i - 1) >= kUTF16SurrogateThreshold
- ) {
- return 2;
- }
- return 1;
-}
-
-function charLengthAt(str, i) {
- if (str.length <= i) {
- // Pretend to move to the right. This is necessary to autocomplete while
- // moving to the right.
- return 1;
- }
- return StringPrototypeCodePointAt.call(str, i) >= kUTF16SurrogateThreshold ? 2 : 1;
-}
-
-/*
- Some patterns seen in terminal key escape codes, derived from combos seen
- at http://www.midnight-commander.org/browser/lib/tty/key.c
- ESC letter
- ESC [ letter
- ESC [ modifier letter
- ESC [ 1 ; modifier letter
- ESC [ num char
- ESC [ num ; modifier char
- ESC O letter
- ESC O modifier letter
- ESC O 1 ; modifier letter
- ESC N letter
- ESC [ [ num ; modifier char
- ESC [ [ 1 ; modifier letter
- ESC ESC [ num char
- ESC ESC O letter
- - char is usually ~ but $ and ^ also happen with rxvt
- - modifier is 1 +
- (shift * 1) +
- (left_alt * 2) +
- (ctrl * 4) +
- (right_alt * 8)
- - two leading ESCs apparently mean the same as one leading ESC
-*/
-function* emitKeys(stream) {
- while (true) {
- var ch = yield;
- var s = ch;
- var escaped = false;
-
- var keySeq = null;
- var keyName;
- var keyCtrl = false;
- var keyMeta = false;
- var keyShift = false;
-
- // var key = {
- // sequence: null,
- // name: undefined,
- // ctrl: false,
- // meta: false,
- // shift: false,
- // };
-
- if (ch === kEscape) {
- escaped = true;
- s += ch = yield;
-
- if (ch === kEscape) {
- s += ch = yield;
- }
- }
-
- if (escaped && (ch === "O" || ch === "[")) {
- // ANSI escape sequence
- var code = ch;
- var modifier = 0;
-
- if (ch === "O") {
- // ESC O letter
- // ESC O modifier letter
- s += ch = yield;
-
- if (ch >= "0" && ch <= "9") {
- modifier = (ch >> 0) - 1;
- s += ch = yield;
- }
-
- code += ch;
- } else if (ch === "[") {
- // ESC [ letter
- // ESC [ modifier letter
- // ESC [ [ modifier letter
- // ESC [ [ num char
- s += ch = yield;
-
- if (ch === "[") {
- // \x1b[[A
- // ^--- escape codes might have a second bracket
- code += ch;
- s += ch = yield;
- }
-
- /*
- * Here and later we try to buffer just enough data to get
- * a complete ascii sequence.
- *
- * We have basically two classes of ascii characters to process:
- *
- *
- * 1. `\x1b[24;5~` should be parsed as { code: '[24~', modifier: 5 }
- *
- * This particular example is featuring Ctrl+F12 in xterm.
- *
- * - `;5` part is optional, e.g. it could be `\x1b[24~`
- * - first part can contain one or two digits
- *
- * So the generic regexp is like /^\d\d?(;\d)?[~^$]$/
- *
- *
- * 2. `\x1b[1;5H` should be parsed as { code: '[H', modifier: 5 }
- *
- * This particular example is featuring Ctrl+Home in xterm.
- *
- * - `1;5` part is optional, e.g. it could be `\x1b[H`
- * - `1;` part is optional, e.g. it could be `\x1b[5H`
- *
- * So the generic regexp is like /^((\d;)?\d)?[A-Za-z]$/
- *
- */
- var cmdStart = s.length - 1;
-
- // Skip one or two leading digits
- if (ch >= "0" && ch <= "9") {
- s += ch = yield;
-
- if (ch >= "0" && ch <= "9") {
- s += ch = yield;
- }
- }
-
- // skip modifier
- if (ch === ";") {
- s += ch = yield;
-
- if (ch >= "0" && ch <= "9") {
- s += yield;
- }
- }
-
- /*
- * We buffered enough data, now trying to extract code
- * and modifier from it
- */
- var cmd = StringPrototypeSlice.call(s, cmdStart);
- var match;
-
- if ((match = RegExpPrototypeExec.call(/^(\d\d?)(;(\d))?([~^$])$/, cmd))) {
- code += match[1] + match[4];
- modifier = (match[3] || 1) - 1;
- } else if ((match = RegExpPrototypeExec.call(/^((\d;)?(\d))?([A-Za-z])$/, cmd))) {
- code += match[4];
- modifier = (match[3] || 1) - 1;
- } else {
- code += cmd;
- }
- }
-
- // Parse the key modifier
- keyCtrl = !!(modifier & 4);
- keyMeta = !!(modifier & 10);
- keyShift = !!(modifier & 1);
- keyCode = code;
-
- // Parse the key itself
- switch (code) {
- /* xterm/gnome ESC [ letter (with modifier) */
- case "[P":
- keyName = "f1";
- break;
- case "[Q":
- keyName = "f2";
- break;
- case "[R":
- keyName = "f3";
- break;
- case "[S":
- keyName = "f4";
- break;
-
- /* xterm/gnome ESC O letter (without modifier) */
- case "OP":
- keyName = "f1";
- break;
- case "OQ":
- keyName = "f2";
- break;
- case "OR":
- keyName = "f3";
- break;
- case "OS":
- keyName = "f4";
- break;
-
- /* xterm/rxvt ESC [ number ~ */
- case "[11~":
- keyName = "f1";
- break;
- case "[12~":
- keyName = "f2";
- break;
- case "[13~":
- keyName = "f3";
- break;
- case "[14~":
- keyName = "f4";
- break;
-
- /* from Cygwin and used in libuv */
- case "[[A":
- keyName = "f1";
- break;
- case "[[B":
- keyName = "f2";
- break;
- case "[[C":
- keyName = "f3";
- break;
- case "[[D":
- keyName = "f4";
- break;
- case "[[E":
- keyName = "f5";
- break;
-
- /* common */
- case "[15~":
- keyName = "f5";
- break;
- case "[17~":
- keyName = "f6";
- break;
- case "[18~":
- keyName = "f7";
- break;
- case "[19~":
- keyName = "f8";
- break;
- case "[20~":
- keyName = "f9";
- break;
- case "[21~":
- keyName = "f10";
- break;
- case "[23~":
- keyName = "f11";
- break;
- case "[24~":
- keyName = "f12";
- break;
-
- /* xterm ESC [ letter */
- case "[A":
- keyName = "up";
- break;
- case "[B":
- keyName = "down";
- break;
- case "[C":
- keyName = "right";
- break;
- case "[D":
- keyName = "left";
- break;
- case "[E":
- keyName = "clear";
- break;
- case "[F":
- keyName = "end";
- break;
- case "[H":
- keyName = "home";
- break;
-
- /* xterm/gnome ESC O letter */
- case "OA":
- keyName = "up";
- break;
- case "OB":
- keyName = "down";
- break;
- case "OC":
- keyName = "right";
- break;
- case "OD":
- keyName = "left";
- break;
- case "OE":
- keyName = "clear";
- break;
- case "OF":
- keyName = "end";
- break;
- case "OH":
- keyName = "home";
- break;
-
- /* xterm/rxvt ESC [ number ~ */
- case "[1~":
- keyName = "home";
- break;
- case "[2~":
- keyName = "insert";
- break;
- case "[3~":
- keyName = "delete";
- break;
- case "[4~":
- keyName = "end";
- break;
- case "[5~":
- keyName = "pageup";
- break;
- case "[6~":
- keyName = "pagedown";
- break;
-
- /* putty */
- case "[[5~":
- keyName = "pageup";
- break;
- case "[[6~":
- keyName = "pagedown";
- break;
-
- /* rxvt */
- case "[7~":
- keyName = "home";
- break;
- case "[8~":
- keyName = "end";
- break;
-
- /* rxvt keys with modifiers */
- case "[a":
- keyName = "up";
- keyShift = true;
- break;
- case "[b":
- keyName = "down";
- keyShift = true;
- break;
- case "[c":
- keyName = "right";
- keyShift = true;
- break;
- case "[d":
- keyName = "left";
- keyShift = true;
- break;
- case "[e":
- keyName = "clear";
- keyShift = true;
- break;
-
- case "[2$":
- keyName = "insert";
- keyShift = true;
- break;
- case "[3$":
- keyName = "delete";
- keyShift = true;
- break;
- case "[5$":
- keyName = "pageup";
- keyShift = true;
- break;
- case "[6$":
- keyName = "pagedown";
- keyShift = true;
- break;
- case "[7$":
- keyName = "home";
- keyShift = true;
- break;
- case "[8$":
- keyName = "end";
- keyShift = true;
- break;
-
- case "Oa":
- keyName = "up";
- keyCtrl = true;
- break;
- case "Ob":
- keyName = "down";
- keyCtrl = true;
- break;
- case "Oc":
- keyName = "right";
- keyCtrl = true;
- break;
- case "Od":
- keyName = "left";
- keyCtrl = true;
- break;
- case "Oe":
- keyName = "clear";
- keyCtrl = true;
- break;
-
- case "[2^":
- keyName = "insert";
- keyCtrl = true;
- break;
- case "[3^":
- keyName = "delete";
- keyCtrl = true;
- break;
- case "[5^":
- keyName = "pageup";
- keyCtrl = true;
- break;
- case "[6^":
- keyName = "pagedown";
- keyCtrl = true;
- break;
- case "[7^":
- keyName = "home";
- keyCtrl = true;
- break;
- case "[8^":
- keyName = "end";
- keyCtrl = true;
- break;
-
- /* misc. */
- case "[Z":
- keyName = "tab";
- keyShift = true;
- break;
- default:
- keyName = "undefined";
- break;
- }
- } else if (ch === "\r") {
- // carriage return
- keyName = "return";
- keyMeta = escaped;
- } else if (ch === "\n") {
- // Enter, should have been called linefeed
- keyName = "enter";
- keyMeta = escaped;
- } else if (ch === "\t") {
- // tab
- keyName = "tab";
- keyMeta = escaped;
- } else if (ch === "\b" || ch === "\x7f") {
- // backspace or ctrl+h
- keyName = "backspace";
- keyMeta = escaped;
- } else if (ch === kEscape) {
- // escape key
- keyName = "escape";
- keyMeta = escaped;
- } else if (ch === " ") {
- keyName = "space";
- keyMeta = escaped;
- } else if (!escaped && ch <= "\x1a") {
- // ctrl+letter
- keyName = StringFromCharCode(StringPrototypeCharCodeAt.call(ch) + StringPrototypeCharCodeAt.call("a") - 1);
- keyCtrl = true;
- } else if (RegExpPrototypeExec.call(/^[0-9A-Za-z]$/, ch) !== null) {
- // Letter, number, shift+letter
- keyName = StringPrototypeToLowerCase.call(ch);
- keyShift = RegExpPrototypeExec.call(/^[A-Z]$/, ch) !== null;
- keyMeta = escaped;
- } else if (escaped) {
- // Escape sequence timeout
- keyName = ch.length ? undefined : "escape";
- keyMeta = true;
- }
-
- keySeq = s;
-
- if (s.length !== 0 && (keyName !== undefined || escaped)) {
- /* Named character or sequence */
- stream.emit("keypress", escaped ? undefined : s, {
- sequence: keySeq,
- name: keyName,
- ctrl: keyCtrl,
- meta: keyMeta,
- shift: keyShift,
- });
- } else if (charLengthAt(s, 0) === s.length) {
- /* Single unnamed character, e.g. "." */
- stream.emit("keypress", s, {
- sequence: keySeq,
- name: keyName,
- ctrl: keyCtrl,
- meta: keyMeta,
- shift: keyShift,
- });
- }
- /* Unrecognized or broken escape sequence, don't emit anything */
- }
-}
-
-// This runs in O(n log n).
-function commonPrefix(strings) {
- if (strings.length === 0) {
- return "";
- }
- if (strings.length === 1) {
- return strings[0];
- }
- var sorted = ArrayPrototypeSort.call(ArrayPrototypeSlice.call(strings));
- var min = sorted[0];
- var max = sorted[sorted.length - 1];
- for (var i = 0; i < min.length; i++) {
- if (min[i] !== max[i]) {
- return StringPrototypeSlice.call(min, 0, i);
- }
- }
- return min;
-}
-
-// ----------------------------------------------------------------------------
-// Section: Cursor Functions
-// ----------------------------------------------------------------------------
-
-/**
- * moves the cursor to the x and y coordinate on the given stream
- */
-
-function cursorTo(stream, x, y, callback) {
- if (callback !== undefined) {
- validateFunction(callback, "callback");
- }
-
- if (typeof y === "function") {
- callback = y;
- y = undefined;
- }
-
- if (NumberIsNaN(x)) throw new ERR_INVALID_ARG_VALUE("x", x);
- if (NumberIsNaN(y)) throw new ERR_INVALID_ARG_VALUE("y", y);
-
- if (stream == null || (typeof x !== "number" && typeof y !== "number")) {
- if (typeof callback === "function") process.nextTick(callback, null);
- return true;
- }
-
- if (typeof x !== "number") throw new ERR_INVALID_CURSOR_POS();
-
- var data = typeof y !== "number" ? CSI`${x + 1}G` : CSI`${y + 1};${x + 1}H`;
- return stream.write(data, callback);
-}
-
-/**
- * moves the cursor relative to its current location
- */
-
-function moveCursor(stream, dx, dy, callback) {
- if (callback !== undefined) {
- validateFunction(callback, "callback");
- }
-
- if (stream == null || !(dx || dy)) {
- if (typeof callback === "function") process.nextTick(callback, null);
- return true;
- }
-
- var data = "";
-
- if (dx < 0) {
- data += CSI`${-dx}D`;
- } else if (dx > 0) {
- data += CSI`${dx}C`;
- }
-
- if (dy < 0) {
- data += CSI`${-dy}A`;
- } else if (dy > 0) {
- data += CSI`${dy}B`;
- }
-
- return stream.write(data, callback);
-}
-
-/**
- * clears the current line the cursor is on:
- * -1 for left of the cursor
- * +1 for right of the cursor
- * 0 for the entire line
- */
-
-function clearLine(stream, dir, callback) {
- if (callback !== undefined) {
- validateFunction(callback, "callback");
- }
-
- if (stream === null || stream === undefined) {
- if (typeof callback === "function") process.nextTick(callback, null);
- return true;
- }
-
- var type = dir < 0 ? kClearToLineBeginning : dir > 0 ? kClearToLineEnd : kClearLine;
- return stream.write(type, callback);
-}
-
-/**
- * clears the screen from the current position of the cursor down
- */
-
-function clearScreenDown(stream, callback) {
- if (callback !== undefined) {
- validateFunction(callback, "callback");
- }
-
- if (stream === null || stream === undefined) {
- if (typeof callback === "function") process.nextTick(callback, null);
- return true;
- }
-
- return stream.write(kClearScreenDown, callback);
-}
-
-// ----------------------------------------------------------------------------
-// Section: Emit keypress events
-// ----------------------------------------------------------------------------
-
-var KEYPRESS_DECODER = Symbol("keypress-decoder");
-var ESCAPE_DECODER = Symbol("escape-decoder");
-
-// GNU readline library - keyseq-timeout is 500ms (default)
-var ESCAPE_CODE_TIMEOUT = 500;
-
-/**
- * accepts a readable Stream instance and makes it emit "keypress" events
- */
-
-function emitKeypressEvents(stream, iface = {}) {
- if (stream[KEYPRESS_DECODER]) return;
-
- stream[KEYPRESS_DECODER] = new StringDecoder("utf8");
-
- stream[ESCAPE_DECODER] = emitKeys(stream);
- stream[ESCAPE_DECODER].next();
-
- var triggerEscape = () => stream[ESCAPE_DECODER].next("");
- var { escapeCodeTimeout = ESCAPE_CODE_TIMEOUT } = iface;
- var timeoutId;
-
- function onData(input) {
- if (stream.listenerCount("keypress") > 0) {
- var string = stream[KEYPRESS_DECODER].write(input);
- if (string) {
- clearTimeout(timeoutId);
-
- // This supports characters of length 2.
- iface[kSawKeyPress] = charLengthAt(string, 0) === string.length;
- iface.isCompletionEnabled = false;
-
- var length = 0;
- for (var character of new SafeStringIterator(string)) {
- length += character.length;
- if (length === string.length) {
- iface.isCompletionEnabled = true;
- }
-
- try {
- stream[ESCAPE_DECODER].next(character);
- // Escape letter at the tail position
- if (length === string.length && character === kEscape) {
- timeoutId = setTimeout(triggerEscape, escapeCodeTimeout);
- }
- } catch (err) {
- // If the generator throws (it could happen in the `keypress`
- // event), we need to restart it.
- stream[ESCAPE_DECODER] = emitKeys(stream);
- stream[ESCAPE_DECODER].next();
- throw err;
- }
- }
- }
- } else {
- // Nobody's watching anyway
- stream.removeListener("data", onData);
- stream.on("newListener", onNewListener);
- }
- }
-
- function onNewListener(event) {
- if (event === "keypress") {
- stream.on("data", onData);
- stream.removeListener("newListener", onNewListener);
- }
- }
-
- if (stream.listenerCount("keypress") > 0) {
- stream.on("data", onData);
- } else {
- stream.on("newListener", onNewListener);
- }
-}
-
-// ----------------------------------------------------------------------------
-// Section: Interface
-// ----------------------------------------------------------------------------
-
-var kEmptyObject = ObjectFreeze(ObjectCreate(null));
-
-// Some constants regarding configuration of interface
-var kHistorySize = 30;
-var kMaxUndoRedoStackSize = 2048;
-var kMincrlfDelay = 100;
-// \r\n, \n, or \r followed by something other than \n
-var lineEnding = /\r?\n|\r(?!\n)/g;
-
-// Max length of the kill ring
-var kMaxLengthOfKillRing = 32;
-
-// Symbols
-
-// Public symbols
-var kLineObjectStream = Symbol("line object stream");
-var kQuestionCancel = Symbol("kQuestionCancel");
-var kQuestion = Symbol("kQuestion");
-
-// Private symbols
-var kAddHistory = Symbol("_addHistory");
-var kBeforeEdit = Symbol("_beforeEdit");
-var kDecoder = Symbol("_decoder");
-var kDeleteLeft = Symbol("_deleteLeft");
-var kDeleteLineLeft = Symbol("_deleteLineLeft");
-var kDeleteLineRight = Symbol("_deleteLineRight");
-var kDeleteRight = Symbol("_deleteRight");
-var kDeleteWordLeft = Symbol("_deleteWordLeft");
-var kDeleteWordRight = Symbol("_deleteWordRight");
-var kGetDisplayPos = Symbol("_getDisplayPos");
-var kHistoryNext = Symbol("_historyNext");
-var kHistoryPrev = Symbol("_historyPrev");
-var kInsertString = Symbol("_insertString");
-var kLine = Symbol("_line");
-var kLine_buffer = Symbol("_line_buffer");
-var kKillRing = Symbol("_killRing");
-var kKillRingCursor = Symbol("_killRingCursor");
-var kMoveCursor = Symbol("_moveCursor");
-var kNormalWrite = Symbol("_normalWrite");
-var kOldPrompt = Symbol("_oldPrompt");
-var kOnLine = Symbol("_onLine");
-var kPreviousKey = Symbol("_previousKey");
-var kPrompt = Symbol("_prompt");
-var kPushToKillRing = Symbol("_pushToKillRing");
-var kPushToUndoStack = Symbol("_pushToUndoStack");
-var kQuestionCallback = Symbol("_questionCallback");
-var kRedo = Symbol("_redo");
-var kRedoStack = Symbol("_redoStack");
-var kRefreshLine = Symbol("_refreshLine");
-var kSawKeyPress = Symbol("_sawKeyPress");
-var kSawReturnAt = Symbol("_sawReturnAt");
-var kSetRawMode = Symbol("_setRawMode");
-var kTabComplete = Symbol("_tabComplete");
-var kTabCompleter = Symbol("_tabCompleter");
-var kTtyWrite = Symbol("_ttyWrite");
-var kUndo = Symbol("_undo");
-var kUndoStack = Symbol("_undoStack");
-var kWordLeft = Symbol("_wordLeft");
-var kWordRight = Symbol("_wordRight");
-var kWriteToOutput = Symbol("_writeToOutput");
-var kYank = Symbol("_yank");
-var kYanking = Symbol("_yanking");
-var kYankPop = Symbol("_yankPop");
-
-// Event symbols
-var kFirstEventParam = Symbol("nodejs.kFirstEventParam");
-
-// class InterfaceConstructor extends EventEmitter {
-// #onSelfCloseWithTerminal;
-// #onSelfCloseWithoutTerminal;
-
-// #onError;
-// #onData;
-// #onEnd;
-// #onTermEnd;
-// #onKeyPress;
-// #onResize;
-
-// [kSawReturnAt];
-// isCompletionEnabled = true;
-// [kSawKeyPress];
-// [kPreviousKey];
-// escapeCodeTimeout;
-// tabSize;
-
-// line;
-// [kSubstringSearch];
-// output;
-// input;
-// [kUndoStack];
-// [kRedoStack];
-// history;
-// historySize;
-
-// [kKillRing];
-// [kKillRingCursor];
-
-// removeHistoryDuplicates;
-// crlfDelay;
-// completer;
-
-// terminal;
-// [kLineObjectStream];
-
-// cursor;
-// historyIndex;
-
-// constructor(input, output, completer, terminal) {
-// super();
-
-var kOnSelfCloseWithTerminal = Symbol("_onSelfCloseWithTerminal");
-var kOnSelfCloseWithoutTerminal = Symbol("_onSelfCloseWithoutTerminal");
-var kOnKeyPress = Symbol("_onKeyPress");
-var kOnError = Symbol("_onError");
-var kOnData = Symbol("_onData");
-var kOnEnd = Symbol("_onEnd");
-var kOnTermEnd = Symbol("_onTermEnd");
-var kOnResize = Symbol("_onResize");
-
-function onSelfCloseWithTerminal() {
- var input = this.input;
- var output = this.output;
-
- if (!input) throw new Error("Input not set, invalid state for readline!");
-
- input.removeListener("keypress", this[kOnKeyPress]);
- input.removeListener("error", this[kOnError]);
- input.removeListener("end", this[kOnTermEnd]);
- if (output !== null && output !== undefined) {
- output.removeListener("resize", this[kOnResize]);
- }
-}
-
-function onSelfCloseWithoutTerminal() {
- var input = this.input;
- if (!input) throw new Error("Input not set, invalid state for readline!");
-
- input.removeListener("data", this[kOnData]);
- input.removeListener("error", this[kOnError]);
- input.removeListener("end", this[kOnEnd]);
-}
-
-function onError(err) {
- this.emit("error", err);
-}
-
-function onData(data) {
- debug("onData");
- this[kNormalWrite](data);
-}
-
-function onEnd() {
- debug("onEnd");
- if (typeof this[kLine_buffer] === "string" && this[kLine_buffer].length > 0) {
- this.emit("line", this[kLine_buffer]);
- }
- this.close();
-}
-
-function onTermEnd() {
- debug("onTermEnd");
- if (typeof this.line === "string" && this.line.length > 0) {
- this.emit("line", this.line);
- }
- this.close();
-}
-
-function onKeyPress(s, key) {
- this[kTtyWrite](s, key);
- if (key && key.sequence) {
- // If the keySeq is half of a surrogate pair
- // (>= 0xd800 and <= 0xdfff), refresh the line so
- // the character is displayed appropriately.
- var ch = StringPrototypeCodePointAt.call(key.sequence, 0);
- if (ch >= 0xd800 && ch <= 0xdfff) this[kRefreshLine]();
- }
-}
-
-function onResize() {
- this[kRefreshLine]();
-}
-
-function InterfaceConstructor(input, output, completer, terminal) {
- if (!(this instanceof InterfaceConstructor)) {
- return new InterfaceConstructor(input, output, completer, terminal);
- }
-
- EventEmitter.call(this);
-
- this[kOnSelfCloseWithoutTerminal] = onSelfCloseWithoutTerminal.bind(this);
- this[kOnSelfCloseWithTerminal] = onSelfCloseWithTerminal.bind(this);
-
- this[kOnError] = onError.bind(this);
- this[kOnData] = onData.bind(this);
- this[kOnEnd] = onEnd.bind(this);
- this[kOnTermEnd] = onTermEnd.bind(this);
- this[kOnKeyPress] = onKeyPress.bind(this);
- this[kOnResize] = onResize.bind(this);
-
- this[kSawReturnAt] = 0;
- this.isCompletionEnabled = true;
- this[kSawKeyPress] = false;
- this[kPreviousKey] = null;
- this.escapeCodeTimeout = ESCAPE_CODE_TIMEOUT;
- this.tabSize = 8;
-
- var history;
- var historySize;
- var removeHistoryDuplicates = false;
- var crlfDelay;
- var prompt = "> ";
- var signal;
-
- if (input?.input) {
- // An options object was given
- output = input.output;
- completer = input.completer;
- terminal = input.terminal;
- history = input.history;
- historySize = input.historySize;
- signal = input.signal;
-
- var tabSize = input.tabSize;
- if (tabSize !== undefined) {
- validateUint32(tabSize, "tabSize", true);
- this.tabSize = tabSize;
- }
- removeHistoryDuplicates = input.removeHistoryDuplicates;
-
- var inputPrompt = input.prompt;
- if (inputPrompt !== undefined) {
- prompt = inputPrompt;
- }
-
- var inputEscapeCodeTimeout = input.escapeCodeTimeout;
- if (inputEscapeCodeTimeout !== undefined) {
- if (NumberIsFinite(inputEscapeCodeTimeout)) {
- this.escapeCodeTimeout = inputEscapeCodeTimeout;
- } else {
- throw new ERR_INVALID_ARG_VALUE("input.escapeCodeTimeout", this.escapeCodeTimeout);
- }
- }
-
- if (signal) {
- validateAbortSignal(signal, "options.signal");
- }
-
- crlfDelay = input.crlfDelay;
- input = input.input;
- }
-
- if (completer !== undefined && typeof completer !== "function") {
- throw new ERR_INVALID_ARG_VALUE("completer", completer);
- }
-
- if (history === undefined) {
- history = [];
- } else {
- validateArray(history, "history");
- }
-
- if (historySize === undefined) {
- historySize = kHistorySize;
- }
-
- if (typeof historySize !== "number" || NumberIsNaN(historySize) || historySize < 0) {
- throw new ERR_INVALID_ARG_VALUE("historySize", historySize);
- }
-
- // Backwards compat; check the isTTY prop of the output stream
- // when `terminal` was not specified
- if (terminal === undefined && !(output === null || output === undefined)) {
- terminal = !!output.isTTY;
- }
-
- this.line = "";
- this[kSubstringSearch] = null;
- this.output = output;
- this.input = input;
- this[kUndoStack] = [];
- this[kRedoStack] = [];
- this.history = history;
- this.historySize = historySize;
-
- // The kill ring is a global list of blocks of text that were previously
- // killed (deleted). If its size exceeds kMaxLengthOfKillRing, the oldest
- // element will be removed to make room for the latest deletion. With kill
- // ring, users are able to recall (yank) or cycle (yank pop) among previously
- // killed texts, quite similar to the behavior of Emacs.
- this[kKillRing] = [];
- this[kKillRingCursor] = 0;
-
- this.removeHistoryDuplicates = !!removeHistoryDuplicates;
- this.crlfDelay = crlfDelay ? MathMax(kMincrlfDelay, crlfDelay) : kMincrlfDelay;
- this.completer = completer;
-
- this.setPrompt(prompt);
-
- this.terminal = !!terminal;
-
- this[kLineObjectStream] = undefined;
-
- input.on("error", this[kOnError]);
-
- if (!this.terminal) {
- input.on("data", this[kOnData]);
- input.on("end", this[kOnEnd]);
- this.once("close", this[kOnSelfCloseWithoutTerminal]);
- this[kDecoder] = new StringDecoder("utf8");
- } else {
- emitKeypressEvents(input, this);
-
- // `input` usually refers to stdin
- input.on("keypress", this[kOnKeyPress]);
- input.on("end", this[kOnTermEnd]);
-
- this[kSetRawMode](true);
- this.terminal = true;
-
- // Cursor position on the line.
- this.cursor = 0;
- this.historyIndex = -1;
-
- if (output !== null && output !== undefined) output.on("resize", this[kOnResize]);
-
- this.once("close", this[kOnSelfCloseWithTerminal]);
- }
-
- if (signal) {
- var onAborted = (() => this.close()).bind(this);
- if (signal.aborted) {
- process.nextTick(onAborted);
- } else {
- signal.addEventListener("abort", onAborted, { once: true });
- this.once("close", () => signal.removeEventListener("abort", onAborted));
- }
- }
-
- // Current line
- this.line = "";
-
- input.resume();
-}
-
-ObjectSetPrototypeOf(InterfaceConstructor.prototype, EventEmitter.prototype);
-ObjectSetPrototypeOf(InterfaceConstructor, EventEmitter);
-
-var _Interface = class Interface extends InterfaceConstructor {
- // TODO: Enumerate all the properties of the class
-
- // eslint-disable-next-line no-useless-constructor
- constructor(input, output, completer, terminal) {
- super(input, output, completer, terminal);
- }
- get columns() {
- var output = this.output;
- if (output && output.columns) return output.columns;
- return Infinity;
- }
-
- /**
- * Sets the prompt written to the output.
- * @param {string} prompt
- * @returns {void}
- */
- setPrompt(prompt) {
- this[kPrompt] = prompt;
- }
-
- /**
- * Returns the current prompt used by `rl.prompt()`.
- * @returns {string}
- */
- getPrompt() {
- return this[kPrompt];
- }
-
- [kSetRawMode](mode) {
- var input = this.input;
- var { setRawMode, wasInRawMode } = input;
-
- // TODO: Make this work, for now just stub this and print debug
- debug("setRawMode", mode, "set!");
- // if (typeof setRawMode === "function") {
- // setRawMode(mode);
- // }
-
- return wasInRawMode;
- }
-
- /**
- * Writes the configured `prompt` to a new line in `output`.
- * @param {boolean} [preserveCursor]
- * @returns {void}
- */
- prompt(preserveCursor) {
- if (this.paused) this.resume();
- if (this.terminal && process.env.TERM !== "dumb") {
- if (!preserveCursor) this.cursor = 0;
- this[kRefreshLine]();
- } else {
- this[kWriteToOutput](this[kPrompt]);
- }
- }
-
- [kQuestion](query, cb) {
- if (this.closed) {
- throw new ERR_USE_AFTER_CLOSE("readline");
- }
- if (this[kQuestionCallback]) {
- this.prompt();
- } else {
- this[kOldPrompt] = this[kPrompt];
- this.setPrompt(query);
- this[kQuestionCallback] = cb;
- this.prompt();
- }
- }
-
- [kOnLine](line) {
- if (this[kQuestionCallback]) {
- var cb = this[kQuestionCallback];
- this[kQuestionCallback] = null;
- this.setPrompt(this[kOldPrompt]);
- cb(line);
- } else {
- this.emit("line", line);
- }
- }
-
- [kBeforeEdit](oldText, oldCursor) {
- this[kPushToUndoStack](oldText, oldCursor);
- }
-
- [kQuestionCancel]() {
- if (this[kQuestionCallback]) {
- this[kQuestionCallback] = null;
- this.setPrompt(this[kOldPrompt]);
- this.clearLine();
- }
- }
-
- [kWriteToOutput](stringToWrite) {
- validateString(stringToWrite, "stringToWrite");
-
- if (this.output !== null && this.output !== undefined) {
- this.output.write(stringToWrite);
- }
- }
-
- [kAddHistory]() {
- if (this.line.length === 0) return "";
-
- // If the history is disabled then return the line
- if (this.historySize === 0) return this.line;
-
- // If the trimmed line is empty then return the line
- if (StringPrototypeTrim.call(this.line).length === 0) return this.line;
-
- if (this.history.length === 0 || this.history[0] !== this.line) {
- if (this.removeHistoryDuplicates) {
- // Remove older history line if identical to new one
- var dupIndex = ArrayPrototypeIndexOf.call(this.history, this.line);
- if (dupIndex !== -1) ArrayPrototypeSplice.call(this.history, dupIndex, 1);
- }
-
- ArrayPrototypeUnshift.call(this.history, this.line);
-
- // Only store so many
- if (this.history.length > this.historySize) ArrayPrototypePop.call(this.history);
- }
-
- this.historyIndex = -1;
-
- // The listener could change the history object, possibly
- // to remove the last added entry if it is sensitive and should
- // not be persisted in the history, like a password
- var line = this.history[0];
-
- // Emit history event to notify listeners of update
- this.emit("history", this.history);
-
- return line;
- }
-
- [kRefreshLine]() {
- // line length
- var line = this[kPrompt] + this.line;
- var dispPos = this[kGetDisplayPos](line);
- var lineCols = dispPos.cols;
- var lineRows = dispPos.rows;
-
- // cursor position
- var cursorPos = this.getCursorPos();
-
- // First move to the bottom of the current line, based on cursor pos
- var prevRows = this.prevRows || 0;
- if (prevRows > 0) {
- moveCursor(this.output, 0, -prevRows);
- }
-
- // Cursor to left edge.
- cursorTo(this.output, 0);
- // erase data
- clearScreenDown(this.output);
-
- // Write the prompt and the current buffer content.
- this[kWriteToOutput](line);
-
- // Force terminal to allocate a new line
- if (lineCols === 0) {
- this[kWriteToOutput](" ");
- }
-
- // Move cursor to original position.
- cursorTo(this.output, cursorPos.cols);
-
- var diff = lineRows - cursorPos.rows;
- if (diff > 0) {
- moveCursor(this.output, 0, -diff);
- }
-
- this.prevRows = cursorPos.rows;
- }
-
- /**
- * Closes the `readline.Interface` instance.
- * @returns {void}
- */
- close() {
- if (this.closed) return;
- this.pause();
- if (this.terminal) {
- this[kSetRawMode](false);
- }
- this.closed = true;
- this.emit("close");
- }
-
- /**
- * Pauses the `input` stream.
- * @returns {void | Interface}
- */
- pause() {
- if (this.paused) return;
- this.input.pause();
- this.paused = true;
- this.emit("pause");
- return this;
- }
-
- /**
- * Resumes the `input` stream if paused.
- * @returns {void | Interface}
- */
- resume() {
- if (!this.paused) return;
- this.input.resume();
- this.paused = false;
- this.emit("resume");
- return this;
- }
-
- /**
- * Writes either `data` or a `key` sequence identified by
- * `key` to the `output`.
- * @param {string} d
- * @param {{
- * ctrl?: boolean;
- * meta?: boolean;
- * shift?: boolean;
- * name?: string;
- * }} [key]
- * @returns {void}
- */
- write(d, key) {
- if (this.paused) this.resume();
- if (this.terminal) {
- this[kTtyWrite](d, key);
- } else {
- this[kNormalWrite](d);
- }
- }
-
- [kNormalWrite](b) {
- if (b === undefined) {
- return;
- }
- var string = this[kDecoder].write(b);
- if (this[kSawReturnAt] && DateNow() - this[kSawReturnAt] <= this.crlfDelay) {
- if (StringPrototypeCodePointAt.call(string) === 10) string = StringPrototypeSlice.call(string, 1);
- this[kSawReturnAt] = 0;
- }
-
- // Run test() on the new string chunk, not on the entire line buffer.
- var newPartContainsEnding = RegExpPrototypeExec.call(lineEnding, string);
- if (newPartContainsEnding !== null) {
- if (this[kLine_buffer]) {
- string = this[kLine_buffer] + string;
- this[kLine_buffer] = null;
- newPartContainsEnding = RegExpPrototypeExec.call(lineEnding, string);
- }
- this[kSawReturnAt] = StringPrototypeEndsWith.call(string, "\r") ? DateNow() : 0;
-
- var indexes = [0, newPartContainsEnding.index, lineEnding.lastIndex];
- var nextMatch;
- while ((nextMatch = RegExpPrototypeExec.call(lineEnding, string)) !== null) {
- ArrayPrototypePush.call(indexes, nextMatch.index, lineEnding.lastIndex);
- }
- var lastIndex = indexes.length - 1;
- // Either '' or (conceivably) the unfinished portion of the next line
- this[kLine_buffer] = StringPrototypeSlice.call(string, indexes[lastIndex]);
- for (var i = 1; i < lastIndex; i += 2) {
- this[kOnLine](StringPrototypeSlice.call(string, indexes[i - 1], indexes[i]));
- }
- } else if (string) {
- // No newlines this time, save what we have for next time
- if (this[kLine_buffer]) {
- this[kLine_buffer] += string;
- } else {
- this[kLine_buffer] = string;
- }
- }
- }
-
- [kInsertString](c) {
- this[kBeforeEdit](this.line, this.cursor);
- if (this.cursor < this.line.length) {
- var beg = StringPrototypeSlice.call(this.line, 0, this.cursor);
- var end = StringPrototypeSlice.call(this.line, this.cursor, this.line.length);
- this.line = beg + c + end;
- this.cursor += c.length;
- this[kRefreshLine]();
- } else {
- var oldPos = this.getCursorPos();
- this.line += c;
- this.cursor += c.length;
- var newPos = this.getCursorPos();
-
- if (oldPos.rows < newPos.rows) {
- this[kRefreshLine]();
- } else {
- this[kWriteToOutput](c);
- }
- }
- }
-
- async [kTabComplete](lastKeypressWasTab) {
- this.pause();
- var string = StringPrototypeSlice.call(this.line, 0, this.cursor);
- var value;
- try {
- value = await this.completer(string);
- } catch (err) {
- this[kWriteToOutput](`Tab completion error: ${inspect(err)}`);
- return;
- } finally {
- this.resume();
- }
- this[kTabCompleter](lastKeypressWasTab, value);
- }
-
- [kTabCompleter](lastKeypressWasTab, { 0: completions, 1: completeOn }) {
- // Result and the text that was completed.
-
- if (!completions || completions.length === 0) {
- return;
- }
-
- // If there is a common prefix to all matches, then apply that portion.
- var prefix = commonPrefix(ArrayPrototypeFilter.call(completions, e => e !== ""));
- if (StringPrototypeStartsWith.call(prefix, completeOn) && prefix.length > completeOn.length) {
- this[kInsertString](StringPrototypeSlice.call(prefix, completeOn.length));
- return;
- } else if (!StringPrototypeStartsWith.call(completeOn, prefix)) {
- this.line =
- StringPrototypeSlice.call(this.line, 0, this.cursor - completeOn.length) +
- prefix +
- StringPrototypeSlice.call(this.line, this.cursor, this.line.length);
- this.cursor = this.cursor - completeOn.length + prefix.length;
- this._refreshLine();
- return;
- }
-
- if (!lastKeypressWasTab) {
- return;
- }
-
- this[kBeforeEdit](this.line, this.cursor);
-
- // Apply/show completions.
- var completionsWidth = ArrayPrototypeMap.call(completions, e => getStringWidth(e));
- var width = MathMaxApply(completionsWidth) + 2; // 2 space padding
- var maxColumns = MathFloor(this.columns / width) || 1;
- if (maxColumns === Infinity) {
- maxColumns = 1;
- }
- var output = "\r\n";
- var lineIndex = 0;
- var whitespace = 0;
- for (var i = 0; i < completions.length; i++) {
- var completion = completions[i];
- if (completion === "" || lineIndex === maxColumns) {
- output += "\r\n";
- lineIndex = 0;
- whitespace = 0;
- } else {
- output += StringPrototypeRepeat.call(" ", whitespace);
- }
- if (completion !== "") {
- output += completion;
- whitespace = width - completionsWidth[i];
- lineIndex++;
- } else {
- output += "\r\n";
- }
- }
- if (lineIndex !== 0) {
- output += "\r\n\r\n";
- }
- this[kWriteToOutput](output);
- this[kRefreshLine]();
- }
-
- [kWordLeft]() {
- if (this.cursor > 0) {
- // Reverse the string and match a word near beginning
- // to avoid quadratic time complexity
- var leading = StringPrototypeSlice.call(this.line, 0, this.cursor);
- var reversed = ArrayPrototypeJoin.call(ArrayPrototypeReverse.call(ArrayFrom(leading)), "");
- var match = RegExpPrototypeExec.call(/^\s*(?:[^\w\s]+|\w+)?/, reversed);
- this[kMoveCursor](-match[0].length);
- }
- }
-
- [kWordRight]() {
- if (this.cursor < this.line.length) {
- var trailing = StringPrototypeSlice.call(this.line, this.cursor);
- var match = RegExpPrototypeExec.call(/^(?:\s+|[^\w\s]+|\w+)\s*/, trailing);
- this[kMoveCursor](match[0].length);
- }
- }
-
- [kDeleteLeft]() {
- if (this.cursor > 0 && this.line.length > 0) {
- this[kBeforeEdit](this.line, this.cursor);
- // The number of UTF-16 units comprising the character to the left
- var charSize = charLengthLeft(this.line, this.cursor);
- this.line =
- StringPrototypeSlice.call(this.line, 0, this.cursor - charSize) +
- StringPrototypeSlice.call(this.line, this.cursor, this.line.length);
-
- this.cursor -= charSize;
- this[kRefreshLine]();
- }
- }
-
- [kDeleteRight]() {
- if (this.cursor < this.line.length) {
- this[kBeforeEdit](this.line, this.cursor);
- // The number of UTF-16 units comprising the character to the left
- var charSize = charLengthAt(this.line, this.cursor);
- this.line =
- StringPrototypeSlice.call(this.line, 0, this.cursor) +
- StringPrototypeSlice.call(this.line, this.cursor + charSize, this.line.length);
- this[kRefreshLine]();
- }
- }
-
- [kDeleteWordLeft]() {
- if (this.cursor > 0) {
- this[kBeforeEdit](this.line, this.cursor);
- // Reverse the string and match a word near beginning
- // to avoid quadratic time complexity
- var leading = StringPrototypeSlice.call(this.line, 0, this.cursor);
- var reversed = ArrayPrototypeJoin.call(ArrayPrototypeReverse.call(ArrayFrom(leading)), "");
- var match = RegExpPrototypeExec.call(/^\s*(?:[^\w\s]+|\w+)?/, reversed);
- leading = StringPrototypeSlice.call(leading, 0, leading.length - match[0].length);
- this.line = leading + StringPrototypeSlice.call(this.line, this.cursor, this.line.length);
- this.cursor = leading.length;
- this[kRefreshLine]();
- }
- }
-
- [kDeleteWordRight]() {
- if (this.cursor < this.line.length) {
- this[kBeforeEdit](this.line, this.cursor);
- var trailing = StringPrototypeSlice.call(this.line, this.cursor);
- var match = RegExpPrototypeExec.call(/^(?:\s+|\W+|\w+)\s*/, trailing);
- this.line =
- StringPrototypeSlice.call(this.line, 0, this.cursor) + StringPrototypeSlice.call(trailing, match[0].length);
- this[kRefreshLine]();
- }
- }
-
- [kDeleteLineLeft]() {
- this[kBeforeEdit](this.line, this.cursor);
- var del = StringPrototypeSlice.call(this.line, 0, this.cursor);
- this.line = StringPrototypeSlice.call(this.line, this.cursor);
- this.cursor = 0;
- this[kPushToKillRing](del);
- this[kRefreshLine]();
- }
-
- [kDeleteLineRight]() {
- this[kBeforeEdit](this.line, this.cursor);
- var del = StringPrototypeSlice.call(this.line, this.cursor);
- this.line = StringPrototypeSlice.call(this.line, 0, this.cursor);
- this[kPushToKillRing](del);
- this[kRefreshLine]();
- }
-
- [kPushToKillRing](del) {
- if (!del || del === this[kKillRing][0]) return;
- ArrayPrototypeUnshift.call(this[kKillRing], del);
- this[kKillRingCursor] = 0;
- while (this[kKillRing].length > kMaxLengthOfKillRing) ArrayPrototypePop.call(this[kKillRing]);
- }
-
- [kYank]() {
- if (this[kKillRing].length > 0) {
- this[kYanking] = true;
- this[kInsertString](this[kKillRing][this[kKillRingCursor]]);
- }
- }
-
- [kYankPop]() {
- if (!this[kYanking]) {
- return;
- }
- if (this[kKillRing].length > 1) {
- var lastYank = this[kKillRing][this[kKillRingCursor]];
- this[kKillRingCursor]++;
- if (this[kKillRingCursor] >= this[kKillRing].length) {
- this[kKillRingCursor] = 0;
- }
- var currentYank = this[kKillRing][this[kKillRingCursor]];
- var head = StringPrototypeSlice.call(this.line, 0, this.cursor - lastYank.length);
- var tail = StringPrototypeSlice.call(this.line, this.cursor);
- this.line = head + currentYank + tail;
- this.cursor = head.length + currentYank.length;
- this[kRefreshLine]();
- }
- }
-
- clearLine() {
- this[kMoveCursor](+Infinity);
- this[kWriteToOutput]("\r\n");
- this.line = "";
- this.cursor = 0;
- this.prevRows = 0;
- }
-
- [kLine]() {
- var line = this[kAddHistory]();
- this[kUndoStack] = [];
- this[kRedoStack] = [];
- this.clearLine();
- this[kOnLine](line);
- }
-
- [kPushToUndoStack](text, cursor) {
- if (ArrayPrototypePush.call(this[kUndoStack], { text, cursor }) > kMaxUndoRedoStackSize) {
- ArrayPrototypeShift.call(this[kUndoStack]);
- }
- }
-
- [kUndo]() {
- if (this[kUndoStack].length <= 0) return;
-
- ArrayPrototypePush.call(this[kRedoStack], {
- text: this.line,
- cursor: this.cursor,
- });
-
- var entry = ArrayPrototypePop.call(this[kUndoStack]);
- this.line = entry.text;
- this.cursor = entry.cursor;
-
- this[kRefreshLine]();
- }
-
- [kRedo]() {
- if (this[kRedoStack].length <= 0) return;
-
- ArrayPrototypePush.call(this[kUndoStack], {
- text: this.line,
- cursor: this.cursor,
- });
-
- var entry = ArrayPrototypePop.call(this[kRedoStack]);
- this.line = entry.text;
- this.cursor = entry.cursor;
-
- this[kRefreshLine]();
- }
-
- [kHistoryNext]() {
- if (this.historyIndex >= 0) {
- this[kBeforeEdit](this.line, this.cursor);
- var search = this[kSubstringSearch] || "";
- var index = this.historyIndex - 1;
- while (
- index >= 0 &&
- (!StringPrototypeStartsWith.call(this.history[index], search) || this.line === this.history[index])
- ) {
- index--;
- }
- if (index === -1) {
- this.line = search;
- } else {
- this.line = this.history[index];
- }
- this.historyIndex = index;
- this.cursor = this.line.length; // Set cursor to end of line.
- this[kRefreshLine]();
- }
- }
-
- [kHistoryPrev]() {
- if (this.historyIndex < this.history.length && this.history.length) {
- this[kBeforeEdit](this.line, this.cursor);
- var search = this[kSubstringSearch] || "";
- var index = this.historyIndex + 1;
- while (
- index < this.history.length &&
- (!StringPrototypeStartsWith.call(this.history[index], search) || this.line === this.history[index])
- ) {
- index++;
- }
- if (index === this.history.length) {
- this.line = search;
- } else {
- this.line = this.history[index];
- }
- this.historyIndex = index;
- this.cursor = this.line.length; // Set cursor to end of line.
- this[kRefreshLine]();
- }
- }
-
- // Returns the last character's display position of the given string
- [kGetDisplayPos](str) {
- var offset = 0;
- var col = this.columns;
- var rows = 0;
- str = stripVTControlCharacters(str);
- for (var char of new SafeStringIterator(str)) {
- if (char === "\n") {
- // Rows must be incremented by 1 even if offset = 0 or col = +Infinity.
- rows += MathCeil(offset / col) || 1;
- offset = 0;
- continue;
- }
- // Tabs must be aligned by an offset of the tab size.
- if (char === "\t") {
- offset += this.tabSize - (offset % this.tabSize);
- continue;
- }
- var width = getStringWidth(char, false /* stripVTControlCharacters */);
- if (width === 0 || width === 1) {
- offset += width;
- } else {
- // width === 2
- if ((offset + 1) % col === 0) {
- offset++;
- }
- offset += 2;
- }
- }
- var cols = offset % col;
- rows += (offset - cols) / col;
- return { cols, rows };
- }
-
- /**
- * Returns the real position of the cursor in relation
- * to the input prompt + string.
- * @returns {{
- * rows: number;
- * cols: number;
- * }}
- */
- getCursorPos() {
- var strBeforeCursor = this[kPrompt] + StringPrototypeSlice.call(this.line, 0, this.cursor);
- return this[kGetDisplayPos](strBeforeCursor);
- }
-
- // This function moves cursor dx places to the right
- // (-dx for left) and refreshes the line if it is needed.
- [kMoveCursor](dx) {
- if (dx === 0) {
- return;
- }
- var oldPos = this.getCursorPos();
- this.cursor += dx;
-
- // Bounds check
- if (this.cursor < 0) {
- this.cursor = 0;
- } else if (this.cursor > this.line.length) {
- this.cursor = this.line.length;
- }
-
- var newPos = this.getCursorPos();
-
- // Check if cursor stayed on the line.
- if (oldPos.rows === newPos.rows) {
- var diffWidth = newPos.cols - oldPos.cols;
- moveCursor(this.output, diffWidth, 0);
- } else {
- this[kRefreshLine]();
- }
- }
-
- // Handle a write from the tty
- [kTtyWrite](s, key) {
- var previousKey = this[kPreviousKey];
- key = key || kEmptyObject;
- this[kPreviousKey] = key;
- var { name: keyName, meta: keyMeta, ctrl: keyCtrl, shift: keyShift, sequence: keySeq } = key;
-
- if (!keyMeta || keyName !== "y") {
- // Reset yanking state unless we are doing yank pop.
- this[kYanking] = false;
- }
-
- // Activate or deactivate substring search.
- if ((keyName === "up" || keyName === "down") && !keyCtrl && !keyMeta && !keyShift) {
- if (this[kSubstringSearch] === null) {
- this[kSubstringSearch] = StringPrototypeSlice.call(this.line, 0, this.cursor);
- }
- } else if (this[kSubstringSearch] !== null) {
- this[kSubstringSearch] = null;
- // Reset the index in case there's no match.
- if (this.history.length === this.historyIndex) {
- this.historyIndex = -1;
- }
- }
-
- // Undo & Redo
- if (typeof keySeq === "string") {
- switch (StringPrototypeCodePointAt.call(keySeq, 0)) {
- case 0x1f:
- this[kUndo]();
- return;
- case 0x1e:
- this[kRedo]();
- return;
- default:
- break;
- }
- }
-
- // Ignore escape key, fixes
- // https://github.com/nodejs/node-v0.x-archive/issues/2876.
- if (keyName === "escape") return;
-
- if (keyCtrl && keyShift) {
- /* Control and shift pressed */
- switch (keyName) {
- // TODO(BridgeAR): The transmitted escape sequence is `\b` and that is
- // identical to <ctrl>-h. It should have a unique escape sequence.
- case "backspace":
- this[kDeleteLineLeft]();
- break;
-
- case "delete":
- this[kDeleteLineRight]();
- break;
- }
- } else if (keyCtrl) {
- /* Control key pressed */
-
- switch (keyName) {
- case "c":
- if (this.listenerCount("SIGINT") > 0) {
- this.emit("SIGINT");
- } else {
- // This readline instance is finished
- this.close();
- }
- break;
-
- case "h": // delete left
- this[kDeleteLeft]();
- break;
-
- case "d": // delete right or EOF
- if (this.cursor === 0 && this.line.length === 0) {
- // This readline instance is finished
- this.close();
- } else if (this.cursor < this.line.length) {
- this[kDeleteRight]();
- }
- break;
-
- case "u": // Delete from current to start of line
- this[kDeleteLineLeft]();
- break;
-
- case "k": // Delete from current to end of line
- this[kDeleteLineRight]();
- break;
-
- case "a": // Go to the start of the line
- this[kMoveCursor](-Infinity);
- break;
-
- case "e": // Go to the end of the line
- this[kMoveCursor](+Infinity);
- break;
-
- case "b": // back one character
- this[kMoveCursor](-charLengthLeft(this.line, this.cursor));
- break;
-
- case "f": // Forward one character
- this[kMoveCursor](+charLengthAt(this.line, this.cursor));
- break;
-
- case "l": // Clear the whole screen
- cursorTo(this.output, 0, 0);
- clearScreenDown(this.output);
- this[kRefreshLine]();
- break;
-
- case "n": // next history item
- this[kHistoryNext]();
- break;
-
- case "p": // Previous history item
- this[kHistoryPrev]();
- break;
-
- case "y": // Yank killed string
- this[kYank]();
- break;
-
- case "z":
- if (process.platform === "win32") break;
- if (this.listenerCount("SIGTSTP") > 0) {
- this.emit("SIGTSTP");
- } else {
- process.once("SIGCONT", () => {
- // Don't raise events if stream has already been abandoned.
- if (!this.paused) {
- // Stream must be paused and resumed after SIGCONT to catch
- // SIGINT, SIGTSTP, and EOF.
- this.pause();
- this.emit("SIGCONT");
- }
- // Explicitly re-enable "raw mode" and move the cursor to
- // the correct position.
- // See https://github.com/joyent/node/issues/3295.
- this[kSetRawMode](true);
- this[kRefreshLine]();
- });
- this[kSetRawMode](false);
- process.kill(process.pid, "SIGTSTP");
- }
- break;
-
- case "w": // Delete backwards to a word boundary
- case "backspace":
- this[kDeleteWordLeft]();
- break;
-
- case "delete": // Delete forward to a word boundary
- this[kDeleteWordRight]();
- break;
-
- case "left":
- this[kWordLeft]();
- break;
-
- case "right":
- this[kWordRight]();
- break;
- }
- } else if (keyMeta) {
- /* Meta key pressed */
-
- switch (keyName) {
- case "b": // backward word
- this[kWordLeft]();
- break;
-
- case "f": // forward word
- this[kWordRight]();
- break;
-
- case "d": // delete forward word
- case "delete":
- this[kDeleteWordRight]();
- break;
-
- case "backspace": // Delete backwards to a word boundary
- this[kDeleteWordLeft]();
- break;
-
- case "y": // Doing yank pop
- this[kYankPop]();
- break;
- }
- } else {
- /* No modifier keys used */
-
- // \r bookkeeping is only relevant if a \n comes right after.
- if (this[kSawReturnAt] && keyName !== "enter") this[kSawReturnAt] = 0;
-
- switch (keyName) {
- case "return": // Carriage return, i.e. \r
- this[kSawReturnAt] = DateNow();
- this[kLine]();
- break;
-
- case "enter":
- // When key interval > crlfDelay
- if (this[kSawReturnAt] === 0 || DateNow() - this[kSawReturnAt] > this.crlfDelay) {
- this[kLine]();
- }
- this[kSawReturnAt] = 0;
- break;
-
- case "backspace":
- this[kDeleteLeft]();
- break;
-
- case "delete":
- this[kDeleteRight]();
- break;
-
- case "left":
- // Obtain the code point to the left
- this[kMoveCursor](-charLengthLeft(this.line, this.cursor));
- break;
-
- case "right":
- this[kMoveCursor](+charLengthAt(this.line, this.cursor));
- break;
-
- case "home":
- this[kMoveCursor](-Infinity);
- break;
-
- case "end":
- this[kMoveCursor](+Infinity);
- break;
-
- case "up":
- this[kHistoryPrev]();
- break;
-
- case "down":
- this[kHistoryNext]();
- break;
-
- case "tab":
- // If tab completion enabled, do that...
- if (typeof this.completer === "function" && this.isCompletionEnabled) {
- var lastKeypressWasTab = previousKey && previousKey.name === "tab";
- this[kTabComplete](lastKeypressWasTab);
- break;
- }
- // falls through
- default:
- if (typeof s === "string" && s) {
- var nextMatch = RegExpPrototypeExec.call(lineEnding, s);
- if (nextMatch !== null) {
- this[kInsertString](StringPrototypeSlice.call(s, 0, nextMatch.index));
- var { lastIndex } = lineEnding;
- while ((nextMatch = RegExpPrototypeExec.call(lineEnding, s)) !== null) {
- this[kLine]();
- this[kInsertString](StringPrototypeSlice.call(s, lastIndex, nextMatch.index));
- ({ lastIndex } = lineEnding);
- }
- if (lastIndex === s.length) this[kLine]();
- } else {
- this[kInsertString](s);
- }
- }
- }
- }
- }
-
- /**
- * Creates an `AsyncIterator` object that iterates through
- * each line in the input stream as a string.
- * @typedef {{
- * [Symbol.asyncIterator]: () => InterfaceAsyncIterator,
- * next: () => Promise<string>
- * }} InterfaceAsyncIterator
- * @returns {InterfaceAsyncIterator}
- */
- [SymbolAsyncIterator]() {
- if (this[kLineObjectStream] === undefined) {
- this[kLineObjectStream] = EventEmitter.on(this, "line", {
- close: ["close"],
- highWatermark: 1024,
- [kFirstEventParam]: true,
- });
- }
- return this[kLineObjectStream];
- }
-};
-
-function Interface(input, output, completer, terminal) {
- if (!(this instanceof Interface)) {
- return new Interface(input, output, completer, terminal);
- }
-
- if (input?.input && typeof input.completer === "function" && input.completer.length !== 2) {
- var { completer } = input;
- input.completer = (v, cb) => cb(null, completer(v));
- } else if (typeof completer === "function" && completer.length !== 2) {
- var realCompleter = completer;
- completer = (v, cb) => cb(null, realCompleter(v));
- }
-
- InterfaceConstructor.call(this, input, output, completer, terminal);
-
- // TODO: Test this
- if (process.env.TERM === "dumb") {
- this._ttyWrite = _ttyWriteDumb.bind(this);
- }
-}
-
-ObjectSetPrototypeOf(Interface.prototype, _Interface.prototype);
-ObjectSetPrototypeOf(Interface, _Interface);
-
-/**
- * Displays `query` by writing it to the `output`.
- * @param {string} query
- * @param {{ signal?: AbortSignal; }} [options]
- * @param {Function} cb
- * @returns {void}
- */
-Interface.prototype.question = function question(query, options, cb) {
- cb = typeof options === "function" ? options : cb;
- if (options === null || typeof options !== "object") {
- options = kEmptyObject;
- }
-
- var signal = options?.signal;
- if (signal) {
- validateAbortSignal(signal, "options.signal");
- if (signal.aborted) {
- return;
- }
-
- var onAbort = () => {
- this[kQuestionCancel]();
- };
- signal.addEventListener("abort", onAbort, { once: true });
- var cleanup = () => {
- signal.removeEventListener("abort", onAbort);
- };
- var originalCb = cb;
- cb =
- typeof cb === "function"
- ? answer => {
- cleanup();
- return originalCb(answer);
- }
- : cleanup;
- }
-
- if (typeof cb === "function") {
- this[kQuestion](query, cb);
- }
-};
-
-Interface.prototype.question[promisify.custom] = function question(query, options) {
- if (options === null || typeof options !== "object") {
- options = kEmptyObject;
- }
-
- var signal = options?.signal;
-
- if (signal && signal.aborted) {
- return PromiseReject(new AbortError(undefined, { cause: signal.reason }));
- }
-
- return new Promise((resolve, reject) => {
- var cb = resolve;
- if (signal) {
- var onAbort = () => {
- reject(new AbortError(undefined, { cause: signal.reason }));
- };
- signal.addEventListener("abort", onAbort, { once: true });
- cb = answer => {
- signal.removeEventListener("abort", onAbort);
- resolve(answer);
- };
- }
- this.question(query, options, cb);
- });
-};
-
-/**
- * Creates a new `readline.Interface` instance.
- * @param {Readable | {
- * input: Readable;
- * output: Writable;
- * completer?: Function;
- * terminal?: boolean;
- * history?: string[];
- * historySize?: number;
- * removeHistoryDuplicates?: boolean;
- * prompt?: string;
- * crlfDelay?: number;
- * escapeCodeTimeout?: number;
- * tabSize?: number;
- * signal?: AbortSignal;
- * }} input
- * @param {Writable} [output]
- * @param {Function} [completer]
- * @param {boolean} [terminal]
- * @returns {Interface}
- */
-function createInterface(input, output, completer, terminal) {
- return new Interface(input, output, completer, terminal);
-}
-
-ObjectDefineProperties(Interface.prototype, {
- // Redirect internal prototype methods to the underscore notation for backward
- // compatibility.
- [kSetRawMode]: {
- __proto__: null,
- get() {
- return this._setRawMode;
- },
- },
- [kOnLine]: {
- __proto__: null,
- get() {
- return this._onLine;
- },
- },
- [kWriteToOutput]: {
- __proto__: null,
- get() {
- return this._writeToOutput;
- },
- },
- [kAddHistory]: {
- __proto__: null,
- get() {
- return this._addHistory;
- },
- },
- [kRefreshLine]: {
- __proto__: null,
- get() {
- return this._refreshLine;
- },
- },
- [kNormalWrite]: {
- __proto__: null,
- get() {
- return this._normalWrite;
- },
- },
- [kInsertString]: {
- __proto__: null,
- get() {
- return this._insertString;
- },
- },
- [kTabComplete]: {
- __proto__: null,
- get() {
- return this._tabComplete;
- },
- },
- [kWordLeft]: {
- __proto__: null,
- get() {
- return this._wordLeft;
- },
- },
- [kWordRight]: {
- __proto__: null,
- get() {
- return this._wordRight;
- },
- },
- [kDeleteLeft]: {
- __proto__: null,
- get() {
- return this._deleteLeft;
- },
- },
- [kDeleteRight]: {
- __proto__: null,
- get() {
- return this._deleteRight;
- },
- },
- [kDeleteWordLeft]: {
- __proto__: null,
- get() {
- return this._deleteWordLeft;
- },
- },
- [kDeleteWordRight]: {
- __proto__: null,
- get() {
- return this._deleteWordRight;
- },
- },
- [kDeleteLineLeft]: {
- __proto__: null,
- get() {
- return this._deleteLineLeft;
- },
- },
- [kDeleteLineRight]: {
- __proto__: null,
- get() {
- return this._deleteLineRight;
- },
- },
- [kLine]: {
- __proto__: null,
- get() {
- return this._line;
- },
- },
- [kHistoryNext]: {
- __proto__: null,
- get() {
- return this._historyNext;
- },
- },
- [kHistoryPrev]: {
- __proto__: null,
- get() {
- return this._historyPrev;
- },
- },
- [kGetDisplayPos]: {
- __proto__: null,
- get() {
- return this._getDisplayPos;
- },
- },
- [kMoveCursor]: {
- __proto__: null,
- get() {
- return this._moveCursor;
- },
- },
- [kTtyWrite]: {
- __proto__: null,
- get() {
- return this._ttyWrite;
- },
- },
-
- // Defining proxies for the internal instance properties for backward
- // compatibility.
- _decoder: {
- __proto__: null,
- get() {
- return this[kDecoder];
- },
- set(value) {
- this[kDecoder] = value;
- },
- },
- _line_buffer: {
- __proto__: null,
- get() {
- return this[kLine_buffer];
- },
- set(value) {
- this[kLine_buffer] = value;
- },
- },
- _oldPrompt: {
- __proto__: null,
- get() {
- return this[kOldPrompt];
- },
- set(value) {
- this[kOldPrompt] = value;
- },
- },
- _previousKey: {
- __proto__: null,
- get() {
- return this[kPreviousKey];
- },
- set(value) {
- this[kPreviousKey] = value;
- },
- },
- _prompt: {
- __proto__: null,
- get() {
- return this[kPrompt];
- },
- set(value) {
- this[kPrompt] = value;
- },
- },
- _questionCallback: {
- __proto__: null,
- get() {
- return this[kQuestionCallback];
- },
- set(value) {
- this[kQuestionCallback] = value;
- },
- },
- _sawKeyPress: {
- __proto__: null,
- get() {
- return this[kSawKeyPress];
- },
- set(value) {
- this[kSawKeyPress] = value;
- },
- },
- _sawReturnAt: {
- __proto__: null,
- get() {
- return this[kSawReturnAt];
- },
- set(value) {
- this[kSawReturnAt] = value;
- },
- },
-});
-
-// Make internal methods public for backward compatibility.
-Interface.prototype._setRawMode = _Interface.prototype[kSetRawMode];
-Interface.prototype._onLine = _Interface.prototype[kOnLine];
-Interface.prototype._writeToOutput = _Interface.prototype[kWriteToOutput];
-Interface.prototype._addHistory = _Interface.prototype[kAddHistory];
-Interface.prototype._refreshLine = _Interface.prototype[kRefreshLine];
-Interface.prototype._normalWrite = _Interface.prototype[kNormalWrite];
-Interface.prototype._insertString = _Interface.prototype[kInsertString];
-Interface.prototype._tabComplete = function (lastKeypressWasTab) {
- // Overriding parent method because `this.completer` in the legacy
- // implementation takes a callback instead of being an async function.
- this.pause();
- var string = StringPrototypeSlice.call(this.line, 0, this.cursor);
- this.completer(string, (err, value) => {
- this.resume();
-
- if (err) {
- this._writeToOutput(`Tab completion error: ${inspect(err)}`);
- return;
- }
-
- this[kTabCompleter](lastKeypressWasTab, value);
- });
-};
-Interface.prototype._wordLeft = _Interface.prototype[kWordLeft];
-Interface.prototype._wordRight = _Interface.prototype[kWordRight];
-Interface.prototype._deleteLeft = _Interface.prototype[kDeleteLeft];
-Interface.prototype._deleteRight = _Interface.prototype[kDeleteRight];
-Interface.prototype._deleteWordLeft = _Interface.prototype[kDeleteWordLeft];
-Interface.prototype._deleteWordRight = _Interface.prototype[kDeleteWordRight];
-Interface.prototype._deleteLineLeft = _Interface.prototype[kDeleteLineLeft];
-Interface.prototype._deleteLineRight = _Interface.prototype[kDeleteLineRight];
-Interface.prototype._line = _Interface.prototype[kLine];
-Interface.prototype._historyNext = _Interface.prototype[kHistoryNext];
-Interface.prototype._historyPrev = _Interface.prototype[kHistoryPrev];
-Interface.prototype._getDisplayPos = _Interface.prototype[kGetDisplayPos];
-Interface.prototype._getCursorPos = _Interface.prototype.getCursorPos;
-Interface.prototype._moveCursor = _Interface.prototype[kMoveCursor];
-Interface.prototype._ttyWrite = _Interface.prototype[kTtyWrite];
-
-function _ttyWriteDumb(s, key) {
- key = key || kEmptyObject;
-
- if (key.name === "escape") return;
-
- if (this[kSawReturnAt] && key.name !== "enter") this[kSawReturnAt] = 0;
-
- if (keyCtrl) {
- if (key.name === "c") {
- if (this.listenerCount("SIGINT") > 0) {
- this.emit("SIGINT");
- } else {
- // This readline instance is finished
- this.close();
- }
-
- return;
- } else if (key.name === "d") {
- this.close();
- return;
- }
- }
-
- switch (key.name) {
- case "return": // Carriage return, i.e. \r
- this[kSawReturnAt] = DateNow();
- this._line();
- break;
-
- case "enter":
- // When key interval > crlfDelay
- if (this[kSawReturnAt] === 0 || DateNow() - this[kSawReturnAt] > this.crlfDelay) {
- this._line();
- }
- this[kSawReturnAt] = 0;
- break;
-
- default:
- if (typeof s === "string" && s) {
- this.line += s;
- this.cursor += s.length;
- this._writeToOutput(s);
- }
- }
-}
-
-class Readline {
- #autoCommit = false;
- #stream;
- #todo = [];
-
- constructor(stream, options = undefined) {
- isWritable ??= import.meta.require("node:stream").isWritable;
- if (!isWritable(stream)) throw new ERR_INVALID_ARG_TYPE("stream", "Writable", stream);
- this.#stream = stream;
- if (options?.autoCommit != null) {
- validateBoolean(options.autoCommit, "options.autoCommit");
- this.#autoCommit = options.autoCommit;
- }
- }
-
- /**
- * Moves the cursor to the x and y coordinate on the given stream.
- * @param {integer} x
- * @param {integer} [y]
- * @returns {Readline} this
- */
- cursorTo(x, y = undefined) {
- validateInteger(x, "x");
- if (y != null) validateInteger(y, "y");
-
- var data = y == null ? CSI`${x + 1}G` : CSI`${y + 1};${x + 1}H`;
- if (this.#autoCommit) process.nextTick(() => this.#stream.write(data));
- else ArrayPrototypePush.call(this.#todo, data);
-
- return this;
- }
-
- /**
- * Moves the cursor relative to its current location.
- * @param {integer} dx
- * @param {integer} dy
- * @returns {Readline} this
- */
- moveCursor(dx, dy) {
- if (dx || dy) {
- validateInteger(dx, "dx");
- validateInteger(dy, "dy");
-
- var data = "";
-
- if (dx < 0) {
- data += CSI`${-dx}D`;
- } else if (dx > 0) {
- data += CSI`${dx}C`;
- }
-
- if (dy < 0) {
- data += CSI`${-dy}A`;
- } else if (dy > 0) {
- data += CSI`${dy}B`;
- }
- if (this.#autoCommit) process.nextTick(() => this.#stream.write(data));
- else ArrayPrototypePush.call(this.#todo, data);
- }
- return this;
- }
-
- /**
- * Clears the current line the cursor is on.
- * @param {-1|0|1} dir Direction to clear:
- * -1 for left of the cursor
- * +1 for right of the cursor
- * 0 for the entire line
- * @returns {Readline} this
- */
- clearLine(dir) {
- validateInteger(dir, "dir", -1, 1);
-
- var data = dir < 0 ? kClearToLineBeginning : dir > 0 ? kClearToLineEnd : kClearLine;
- if (this.#autoCommit) process.nextTick(() => this.#stream.write(data));
- else ArrayPrototypePush.call(this.#todo, data);
- return this;
- }
-
- /**
- * Clears the screen from the current position of the cursor down.
- * @returns {Readline} this
- */
- clearScreenDown() {
- if (this.#autoCommit) {
- process.nextTick(() => this.#stream.write(kClearScreenDown));
- } else {
- ArrayPrototypePush.call(this.#todo, kClearScreenDown);
- }
- return this;
- }
-
- /**
- * Sends all the pending actions to the associated `stream` and clears the
- * internal list of pending actions.
- * @returns {Promise<void>} Resolves when all pending actions have been
- * flushed to the associated `stream`.
- */
- commit() {
- return new Promise(resolve => {
- this.#stream.write(ArrayPrototypeJoin.call(this.#todo, ""), resolve);
- this.#todo = [];
- });
- }
-
- /**
- * Clears the internal list of pending actions without sending it to the
- * associated `stream`.
- * @returns {Readline} this
- */
- rollback() {
- this.#todo = [];
- return this;
- }
-}
-
-var PromisesInterface = class Interface extends _Interface {
- // eslint-disable-next-line no-useless-constructor
- constructor(input, output, completer, terminal) {
- super(input, output, completer, terminal);
- }
- question(query, options = kEmptyObject) {
- var signal = options?.signal;
- if (signal) {
- validateAbortSignal(signal, "options.signal");
- if (signal.aborted) {
- return PromiseReject(new AbortError(undefined, { cause: signal.reason }));
- }
- }
- return new Promise((resolve, reject) => {
- var cb = resolve;
- if (options?.signal) {
- var onAbort = () => {
- this[kQuestionCancel]();
- reject(new AbortError(undefined, { cause: signal.reason }));
- };
- signal.addEventListener("abort", onAbort, { once: true });
- cb = answer => {
- signal.removeEventListener("abort", onAbort);
- resolve(answer);
- };
- }
- this[kQuestion](query, cb);
- });
- }
-};
-
-// ----------------------------------------------------------------------------
-// Exports
-// ----------------------------------------------------------------------------
-export var Interface = Interface;
-export var clearLine = clearLine;
-export var clearScreenDown = clearScreenDown;
-export var createInterface = createInterface;
-export var cursorTo = cursorTo;
-export var emitKeypressEvents = emitKeypressEvents;
-export var moveCursor = moveCursor;
-export var promises = {
- Readline,
- Interface: PromisesInterface,
- createInterface(input, output, completer, terminal) {
- return new PromisesInterface(input, output, completer, terminal);
- },
-};
-
-export default {
- Interface,
- clearLine,
- clearScreenDown,
- createInterface,
- cursorTo,
- emitKeypressEvents,
- moveCursor,
- promises,
-
- [SymbolFor("__BUN_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED__")]: {
- CSI,
- utils: {
- getStringWidth,
- stripVTControlCharacters,
- },
- },
- [SymbolFor("CommonJS")]: 0,
-};
diff --git a/src/bun.js/readline_promises.exports.js b/src/bun.js/readline_promises.exports.js
deleted file mode 100644
index b3cd52584..000000000
--- a/src/bun.js/readline_promises.exports.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var {
- promises: { Readline, Interface, createInterface },
-} = import.meta.require("node:readline");
-
-export default {
- Readline,
- Interface,
- createInterface,
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/repl.exports.js b/src/bun.js/repl.exports.js
deleted file mode 100644
index 35f500de3..000000000
--- a/src/bun.js/repl.exports.js
+++ /dev/null
@@ -1,85 +0,0 @@
-// This is a stub! None of this is actually implemented yet.
-// It only exists to make some packages which import this module work.
-
-class NotImplementedYet extends Error {
- constructor(message = "node:repl is not implemented yet in Bun") {
- super(message);
- this.name = "NotImplementedYet";
- }
-}
-
-function REPLServer() {
- throw new NotImplementedYet("REPLServer is not implemented yet in Bun");
-}
-
-function Recoverable() {
- throw new NotImplementedYet("Recoverable is not implemented yet in Bun");
-}
-
-var REPL_MODE_SLOPPY = 0,
- REPL_MODE_STRICT = 1;
-
-function start() {
- throw new NotImplementedYet();
-}
-
-var repl = {
- [Symbol.for("CommonJS")]: 0,
- lines: [],
- context: globalThis,
- historyIndex: -1,
- cursor: 0,
- historySize: 1000,
- removeHistoryDuplicates: false,
- crlfDelay: 100,
- completer: () => {
- throw new NotImplementedYet();
- },
- history: [],
- _initialPrompt: "> ",
- terminal: true,
- input: new Proxy(
- {},
- {
- get() {
- throw new NotImplementedYet();
- },
- has: () => false,
- ownKeys: () => [],
- getOwnPropertyDescriptor: () => undefined,
- set() {
- throw new NotImplementedYet();
- },
- },
- ),
- line: "",
- eval: () => {
- throw new NotImplementedYet();
- },
- isCompletionEnabled: true,
- escapeCodeTimeout: 500,
- tabSize: 8,
- breakEvalOnSigint: true,
- useGlobal: true,
- underscoreAssigned: false,
- last: undefined,
- _domain: undefined,
- allowBlockingCompletions: false,
- useColors: true,
- output: new Proxy(
- {},
- {
- get() {
- throw new NotImplementedYet();
- },
- has: () => false,
- ownKeys: () => [],
- getOwnPropertyDescriptor: () => undefined,
- set() {
- throw new NotImplementedYet();
- },
- },
- ),
-};
-
-export { repl as default, repl, REPLServer, Recoverable, REPL_MODE_SLOPPY, REPL_MODE_STRICT, start };
diff --git a/src/bun.js/streams.exports.js b/src/bun.js/streams.exports.js
deleted file mode 100644
index 9e579eb2b..000000000
--- a/src/bun.js/streams.exports.js
+++ /dev/null
@@ -1,5656 +0,0 @@
-// "readable-stream" npm package
-// just transpiled
-var { isPromise, isCallable, direct, Object } = import.meta.primordials;
-
-globalThis.__IDS_TO_TRACK = process.env.DEBUG_TRACK_EE?.length
- ? process.env.DEBUG_TRACK_EE.split(",")
- : process.env.DEBUG_STREAMS?.length
- ? process.env.DEBUG_STREAMS.split(",")
- : null;
-
-// Separating DEBUG, DEBUG_STREAMS and DEBUG_TRACK_EE env vars makes it easier to focus on the
-// events in this file rather than all debug output across all files
-
-// You can include comma-delimited IDs as the value to either DEBUG_STREAMS or DEBUG_TRACK_EE and it will track
-// The events and/or all of the outputs for the given stream IDs assigned at stream construction
-// By default, child_process gives
-
-const __TRACK_EE__ = !!process.env.DEBUG_TRACK_EE;
-const __DEBUG__ = !!(process.env.DEBUG || process.env.DEBUG_STREAMS || __TRACK_EE__);
-
-var debug = __DEBUG__
- ? globalThis.__IDS_TO_TRACK
- ? // If we are tracking IDs for debug event emitters, we should prefix the debug output with the ID
- (...args) => {
- const lastItem = args[args.length - 1];
- if (!globalThis.__IDS_TO_TRACK.includes(lastItem)) return;
- console.log(`ID: ${lastItem}`, ...args.slice(0, -1));
- }
- : (...args) => console.log(...args.slice(0, -1))
- : () => {};
-
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __ObjectSetPrototypeOf = Object.setPrototypeOf;
-var __require = x => import.meta.require(x);
-
-var _EE = __require("bun:events_native");
-
-function DebugEventEmitter(opts) {
- if (!(this instanceof DebugEventEmitter)) return new DebugEventEmitter(opts);
- _EE.call(this, opts);
- const __id = opts.__id;
- if (__id) {
- __defProp(this, "__id", {
- value: __id,
- readable: true,
- writable: false,
- enumerable: false,
- });
- }
-}
-
-__ObjectSetPrototypeOf(DebugEventEmitter.prototype, _EE.prototype);
-__ObjectSetPrototypeOf(DebugEventEmitter, _EE);
-
-DebugEventEmitter.prototype.emit = function (event, ...args) {
- var __id = this.__id;
- if (__id) {
- debug("emit", event, ...args, __id);
- } else {
- debug("emit", event, ...args);
- }
- return _EE.prototype.emit.call(this, event, ...args);
-};
-DebugEventEmitter.prototype.on = function (event, handler) {
- var __id = this.__id;
- if (__id) {
- debug("on", event, "added", __id);
- } else {
- debug("on", event, "added");
- }
- return _EE.prototype.on.call(this, event, handler);
-};
-DebugEventEmitter.prototype.addListener = function (event, handler) {
- return this.on(event, handler);
-};
-
-var __commonJS = (cb, mod) =>
- function __require2() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-var __copyProps = (to, from, except, desc) => {
- if ((from && typeof from === "object") || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, {
- get: () => from[key],
- set: val => (from[key] = val),
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
- configurable: true,
- });
- }
- return to;
-};
-
-var runOnNextTick = process.nextTick;
-
-function isReadableStream(value) {
- return typeof value === "object" && value !== null && value instanceof ReadableStream;
-}
-
-function validateBoolean(value, name) {
- if (typeof value !== "boolean") throw new ERR_INVALID_ARG_TYPE(name, "boolean", value);
-}
-
-/**
- * @callback validateObject
- * @param {*} value
- * @param {string} name
- * @param {{
- * allowArray?: boolean,
- * allowFunction?: boolean,
- * nullable?: boolean
- * }} [options]
- */
-
-/** @type {validateObject} */
-const validateObject = (value, name, options = null) => {
- const allowArray = options?.allowArray ?? false;
- const allowFunction = options?.allowFunction ?? false;
- const nullable = options?.nullable ?? false;
- if (
- (!nullable && value === null) ||
- (!allowArray && ArrayIsArray(value)) ||
- (typeof value !== "object" && (!allowFunction || typeof value !== "function"))
- ) {
- throw new ERR_INVALID_ARG_TYPE(name, "Object", value);
- }
-};
-
-/**
- * @callback validateString
- * @param {*} value
- * @param {string} name
- * @returns {asserts value is string}
- */
-
-/** @type {validateString} */
-function validateString(value, name) {
- if (typeof value !== "string") throw new ERR_INVALID_ARG_TYPE(name, "string", value);
-}
-
-var ArrayIsArray = Array.isArray;
-
-//------------------------------------------------------------------------------
-// Node error polyfills
-//------------------------------------------------------------------------------
-
-function ERR_INVALID_ARG_TYPE(name, type, value) {
- return new Error(`The argument '${name}' is invalid. Received '${value}' for type '${type}'`);
-}
-
-function ERR_INVALID_ARG_VALUE(name, value, reason) {
- return new Error(`The value '${value}' is invalid for argument '${name}'. Reason: ${reason}`);
-}
-
-// node_modules/readable-stream/lib/ours/primordials.js
-var require_primordials = __commonJS({
- "node_modules/readable-stream/lib/ours/primordials.js"(exports, module) {
- "use strict";
- module.exports = {
- ArrayIsArray(self) {
- return Array.isArray(self);
- },
- ArrayPrototypeIncludes(self, el) {
- return self.includes(el);
- },
- ArrayPrototypeIndexOf(self, el) {
- return self.indexOf(el);
- },
- ArrayPrototypeJoin(self, sep) {
- return self.join(sep);
- },
- ArrayPrototypeMap(self, fn) {
- return self.map(fn);
- },
- ArrayPrototypePop(self, el) {
- return self.pop(el);
- },
- ArrayPrototypePush(self, el) {
- return self.push(el);
- },
- ArrayPrototypeSlice(self, start, end) {
- return self.slice(start, end);
- },
- Error,
- FunctionPrototypeCall(fn, thisArgs, ...args) {
- return fn.call(thisArgs, ...args);
- },
- FunctionPrototypeSymbolHasInstance(self, instance) {
- return Function.prototype[Symbol.hasInstance].call(self, instance);
- },
- MathFloor: Math.floor,
- Number,
- NumberIsInteger: Number.isInteger,
- NumberIsNaN: Number.isNaN,
- NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,
- NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,
- NumberParseInt: Number.parseInt,
- ObjectDefineProperties(self, props) {
- return Object.defineProperties(self, props);
- },
- ObjectDefineProperty(self, name, prop) {
- return Object.defineProperty(self, name, prop);
- },
- ObjectGetOwnPropertyDescriptor(self, name) {
- return Object.getOwnPropertyDescriptor(self, name);
- },
- ObjectKeys(obj) {
- return Object.keys(obj);
- },
- ObjectSetPrototypeOf(target, proto) {
- return Object.setPrototypeOf(target, proto);
- },
- Promise,
- PromisePrototypeCatch(self, fn) {
- return self.catch(fn);
- },
- PromisePrototypeThen(self, thenFn, catchFn) {
- return self.then(thenFn, catchFn);
- },
- PromiseReject(err) {
- return Promise.reject(err);
- },
- ReflectApply: Reflect.apply,
- RegExpPrototypeTest(self, value) {
- return self.test(value);
- },
- SafeSet: Set,
- String,
- StringPrototypeSlice(self, start, end) {
- return self.slice(start, end);
- },
- StringPrototypeToLowerCase(self) {
- return self.toLowerCase();
- },
- StringPrototypeToUpperCase(self) {
- return self.toUpperCase();
- },
- StringPrototypeTrim(self) {
- return self.trim();
- },
- Symbol,
- SymbolAsyncIterator: Symbol.asyncIterator,
- SymbolHasInstance: Symbol.hasInstance,
- SymbolIterator: Symbol.iterator,
- TypedArrayPrototypeSet(self, buf, len) {
- return self.set(buf, len);
- },
- Uint8Array,
- };
- },
-});
-// node_modules/readable-stream/lib/ours/util.js
-var require_util = __commonJS({
- "node_modules/readable-stream/lib/ours/util.js"(exports, module) {
- "use strict";
- var bufferModule = __require("buffer");
- var AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;
- var Blob = globalThis.Blob || bufferModule.Blob;
- var isBlob =
- typeof Blob !== "undefined"
- ? function isBlob2(b) {
- return b instanceof Blob;
- }
- : function isBlob2(b) {
- return false;
- };
- var AggregateError = class extends Error {
- constructor(errors) {
- if (!Array.isArray(errors)) {
- throw new TypeError(`Expected input to be an Array, got ${typeof errors}`);
- }
- let message = "";
- for (let i = 0; i < errors.length; i++) {
- message += ` ${errors[i].stack}
-`;
- }
- super(message);
- this.name = "AggregateError";
- this.errors = errors;
- }
- };
- module.exports = {
- AggregateError,
- once(callback) {
- let called = false;
- return function (...args) {
- if (called) {
- return;
- }
- called = true;
- callback.apply(this, args);
- };
- },
- createDeferredPromise: function () {
- let resolve;
- let reject;
- const promise = new Promise((res, rej) => {
- resolve = res;
- reject = rej;
- });
- return {
- promise,
- resolve,
- reject,
- };
- },
- promisify(fn) {
- return new Promise((resolve, reject) => {
- fn((err, ...args) => {
- if (err) {
- return reject(err);
- }
- return resolve(...args);
- });
- });
- },
- debuglog() {
- return function () {};
- },
- format(format, ...args) {
- return format.replace(/%([sdifj])/g, function (...[_unused, type]) {
- const replacement = args.shift();
- if (type === "f") {
- return replacement.toFixed(6);
- } else if (type === "j") {
- return JSON.stringify(replacement);
- } else if (type === "s" && typeof replacement === "object") {
- const ctor = replacement.constructor !== Object ? replacement.constructor.name : "";
- return `${ctor} {}`.trim();
- } else {
- return replacement.toString();
- }
- });
- },
- inspect(value) {
- switch (typeof value) {
- case "string":
- if (value.includes("'")) {
- if (!value.includes('"')) {
- return `"${value}"`;
- } else if (!value.includes("`") && !value.includes("${")) {
- return `\`${value}\``;
- }
- }
- return `'${value}'`;
- case "number":
- if (isNaN(value)) {
- return "NaN";
- } else if (Object.is(value, -0)) {
- return String(value);
- }
- return value;
- case "bigint":
- return `${String(value)}n`;
- case "boolean":
- case "undefined":
- return String(value);
- case "object":
- return "{}";
- }
- },
- types: {
- isAsyncFunction(fn) {
- return fn instanceof AsyncFunction;
- },
- isArrayBufferView(arr) {
- return ArrayBuffer.isView(arr);
- },
- },
- isBlob,
- };
- module.exports.promisify.custom = Symbol.for("nodejs.util.promisify.custom");
- },
-});
-
-// node_modules/readable-stream/lib/ours/errors.js
-var require_errors = __commonJS({
- "node_modules/readable-stream/lib/ours/errors.js"(exports, module) {
- "use strict";
- var { format, inspect, AggregateError: CustomAggregateError } = require_util();
- var AggregateError = globalThis.AggregateError || CustomAggregateError;
- var kIsNodeError = Symbol("kIsNodeError");
- var kTypes = ["string", "function", "number", "object", "Function", "Object", "boolean", "bigint", "symbol"];
- var classRegExp = /^([A-Z][a-z0-9]*)+$/;
- var nodeInternalPrefix = "__node_internal_";
- var codes = {};
- function assert(value, message) {
- if (!value) {
- throw new codes.ERR_INTERNAL_ASSERTION(message);
- }
- }
- function addNumericalSeparator(val) {
- let res = "";
- let i = val.length;
- const start = val[0] === "-" ? 1 : 0;
- for (; i >= start + 4; i -= 3) {
- res = `_${val.slice(i - 3, i)}${res}`;
- }
- return `${val.slice(0, i)}${res}`;
- }
- function getMessage(key, msg, args) {
- if (typeof msg === "function") {
- assert(
- msg.length <= args.length,
- `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`,
- );
- return msg(...args);
- }
- const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length;
- assert(
- expectedLength === args.length,
- `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`,
- );
- if (args.length === 0) {
- return msg;
- }
- return format(msg, ...args);
- }
- function E(code, message, Base) {
- if (!Base) {
- Base = Error;
- }
- class NodeError extends Base {
- constructor(...args) {
- super(getMessage(code, message, args));
- }
- toString() {
- return `${this.name} [${code}]: ${this.message}`;
- }
- }
- Object.defineProperties(NodeError.prototype, {
- name: {
- value: Base.name,
- writable: true,
- enumerable: false,
- configurable: true,
- },
- toString: {
- value() {
- return `${this.name} [${code}]: ${this.message}`;
- },
- writable: true,
- enumerable: false,
- configurable: true,
- },
- });
- NodeError.prototype.code = code;
- NodeError.prototype[kIsNodeError] = true;
- codes[code] = NodeError;
- }
- function hideStackFrames(fn) {
- const hidden = nodeInternalPrefix + fn.name;
- Object.defineProperty(fn, "name", {
- value: hidden,
- });
- return fn;
- }
- function aggregateTwoErrors(innerError, outerError) {
- if (innerError && outerError && innerError !== outerError) {
- if (Array.isArray(outerError.errors)) {
- outerError.errors.push(innerError);
- return outerError;
- }
- const err = new AggregateError([outerError, innerError], outerError.message);
- err.code = outerError.code;
- return err;
- }
- return innerError || outerError;
- }
- var AbortError = class extends Error {
- constructor(message = "The operation was aborted", options = void 0) {
- if (options !== void 0 && typeof options !== "object") {
- throw new codes.ERR_INVALID_ARG_TYPE("options", "Object", options);
- }
- super(message, options);
- this.code = "ABORT_ERR";
- this.name = "AbortError";
- }
- };
- E("ERR_ASSERTION", "%s", Error);
- E(
- "ERR_INVALID_ARG_TYPE",
- (name, expected, actual) => {
- assert(typeof name === "string", "'name' must be a string");
- if (!Array.isArray(expected)) {
- expected = [expected];
- }
- let msg = "The ";
- if (name.endsWith(" argument")) {
- msg += `${name} `;
- } else {
- msg += `"${name}" ${name.includes(".") ? "property" : "argument"} `;
- }
- msg += "must be ";
- const types = [];
- const instances = [];
- const other = [];
- for (const value of expected) {
- assert(typeof value === "string", "All expected entries have to be of type string");
- if (kTypes.includes(value)) {
- types.push(value.toLowerCase());
- } else if (classRegExp.test(value)) {
- instances.push(value);
- } else {
- assert(value !== "object", 'The value "object" should be written as "Object"');
- other.push(value);
- }
- }
- if (instances.length > 0) {
- const pos = types.indexOf("object");
- if (pos !== -1) {
- types.splice(types, pos, 1);
- instances.push("Object");
- }
- }
- if (types.length > 0) {
- switch (types.length) {
- case 1:
- msg += `of type ${types[0]}`;
- break;
- case 2:
- msg += `one of type ${types[0]} or ${types[1]}`;
- break;
- default: {
- const last = types.pop();
- msg += `one of type ${types.join(", ")}, or ${last}`;
- }
- }
- if (instances.length > 0 || other.length > 0) {
- msg += " or ";
- }
- }
- if (instances.length > 0) {
- switch (instances.length) {
- case 1:
- msg += `an instance of ${instances[0]}`;
- break;
- case 2:
- msg += `an instance of ${instances[0]} or ${instances[1]}`;
- break;
- default: {
- const last = instances.pop();
- msg += `an instance of ${instances.join(", ")}, or ${last}`;
- }
- }
- if (other.length > 0) {
- msg += " or ";
- }
- }
- switch (other.length) {
- case 0:
- break;
- case 1:
- if (other[0].toLowerCase() !== other[0]) {
- msg += "an ";
- }
- msg += `${other[0]}`;
- break;
- case 2:
- msg += `one of ${other[0]} or ${other[1]}`;
- break;
- default: {
- const last = other.pop();
- msg += `one of ${other.join(", ")}, or ${last}`;
- }
- }
- if (actual == null) {
- msg += `. Received ${actual}`;
- } else if (typeof actual === "function" && actual.name) {
- msg += `. Received function ${actual.name}`;
- } else if (typeof actual === "object") {
- var _actual$constructor;
- if (
- (_actual$constructor = actual.constructor) !== null &&
- _actual$constructor !== void 0 &&
- _actual$constructor.name
- ) {
- msg += `. Received an instance of ${actual.constructor.name}`;
- } else {
- const inspected = inspect(actual, {
- depth: -1,
- });
- msg += `. Received ${inspected}`;
- }
- } else {
- let inspected = inspect(actual, {
- colors: false,
- });
- if (inspected.length > 25) {
- inspected = `${inspected.slice(0, 25)}...`;
- }
- msg += `. Received type ${typeof actual} (${inspected})`;
- }
- return msg;
- },
- TypeError,
- );
- E(
- "ERR_INVALID_ARG_VALUE",
- (name, value, reason = "is invalid") => {
- let inspected = inspect(value);
- if (inspected.length > 128) {
- inspected = inspected.slice(0, 128) + "...";
- }
- const type = name.includes(".") ? "property" : "argument";
- return `The ${type} '${name}' ${reason}. Received ${inspected}`;
- },
- TypeError,
- );
- E(
- "ERR_INVALID_RETURN_VALUE",
- (input, name, value) => {
- var _value$constructor;
- const type =
- value !== null &&
- value !== void 0 &&
- (_value$constructor = value.constructor) !== null &&
- _value$constructor !== void 0 &&
- _value$constructor.name
- ? `instance of ${value.constructor.name}`
- : `type ${typeof value}`;
- return `Expected ${input} to be returned from the "${name}" function but got ${type}.`;
- },
- TypeError,
- );
- E(
- "ERR_MISSING_ARGS",
- (...args) => {
- assert(args.length > 0, "At least one arg needs to be specified");
- let msg;
- const len = args.length;
- args = (Array.isArray(args) ? args : [args]).map(a => `"${a}"`).join(" or ");
- switch (len) {
- case 1:
- msg += `The ${args[0]} argument`;
- break;
- case 2:
- msg += `The ${args[0]} and ${args[1]} arguments`;
- break;
- default:
- {
- const last = args.pop();
- msg += `The ${args.join(", ")}, and ${last} arguments`;
- }
- break;
- }
- return `${msg} must be specified`;
- },
- TypeError,
- );
- E(
- "ERR_OUT_OF_RANGE",
- (str, range, input) => {
- assert(range, 'Missing "range" argument');
- let received;
- if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {
- received = addNumericalSeparator(String(input));
- } else if (typeof input === "bigint") {
- received = String(input);
- if (input > 2n ** 32n || input < -(2n ** 32n)) {
- received = addNumericalSeparator(received);
- }
- received += "n";
- } else {
- received = inspect(input);
- }
- return `The value of "${str}" is out of range. It must be ${range}. Received ${received}`;
- },
- RangeError,
- );
- E("ERR_MULTIPLE_CALLBACK", "Callback called multiple times", Error);
- E("ERR_METHOD_NOT_IMPLEMENTED", "The %s method is not implemented", Error);
- E("ERR_STREAM_ALREADY_FINISHED", "Cannot call %s after a stream was finished", Error);
- E("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable", Error);
- E("ERR_STREAM_DESTROYED", "Cannot call %s after a stream was destroyed", Error);
- E("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);
- E("ERR_STREAM_PREMATURE_CLOSE", "Premature close", Error);
- E("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF", Error);
- E("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event", Error);
- E("ERR_STREAM_WRITE_AFTER_END", "write after end", Error);
- E("ERR_UNKNOWN_ENCODING", "Unknown encoding: %s", TypeError);
- module.exports = {
- AbortError,
- aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),
- hideStackFrames,
- codes,
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/validators.js
-var require_validators = __commonJS({
- "node_modules/readable-stream/lib/internal/validators.js"(exports, module) {
- "use strict";
- var {
- ArrayIsArray,
- ArrayPrototypeIncludes,
- ArrayPrototypeJoin,
- ArrayPrototypeMap,
- NumberIsInteger,
- NumberMAX_SAFE_INTEGER,
- NumberMIN_SAFE_INTEGER,
- NumberParseInt,
- RegExpPrototypeTest,
- String: String2,
- StringPrototypeToUpperCase,
- StringPrototypeTrim,
- } = require_primordials();
- var {
- hideStackFrames,
- codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL },
- } = require_errors();
- var { normalizeEncoding } = require_util();
- var { isAsyncFunction, isArrayBufferView } = require_util().types;
- var signals = {};
- function isInt32(value) {
- return value === (value | 0);
- }
- function isUint32(value) {
- return value === value >>> 0;
- }
- var octalReg = /^[0-7]+$/;
- var modeDesc = "must be a 32-bit unsigned integer or an octal string";
- function parseFileMode(value, name, def) {
- if (typeof value === "undefined") {
- value = def;
- }
- if (typeof value === "string") {
- if (!RegExpPrototypeTest(octalReg, value)) {
- throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc);
- }
- value = NumberParseInt(value, 8);
- }
- validateInt32(value, name, 0, 2 ** 32 - 1);
- return value;
- }
- var validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {
- if (typeof value !== "number") throw new ERR_INVALID_ARG_TYPE(name, "number", value);
- if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, "an integer", value);
- if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
- });
- var validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {
- if (typeof value !== "number") {
- throw new ERR_INVALID_ARG_TYPE(name, "number", value);
- }
- if (!isInt32(value)) {
- if (!NumberIsInteger(value)) {
- throw new ERR_OUT_OF_RANGE(name, "an integer", value);
- }
- throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
- }
- if (value < min || value > max) {
- throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
- }
- });
- var validateUint32 = hideStackFrames((value, name, positive) => {
- if (typeof value !== "number") {
- throw new ERR_INVALID_ARG_TYPE(name, "number", value);
- }
- if (!isUint32(value)) {
- if (!NumberIsInteger(value)) {
- throw new ERR_OUT_OF_RANGE(name, "an integer", value);
- }
- const min = positive ? 1 : 0;
- throw new ERR_OUT_OF_RANGE(name, `>= ${min} && < 4294967296`, value);
- }
- if (positive && value === 0) {
- throw new ERR_OUT_OF_RANGE(name, ">= 1 && < 4294967296", value);
- }
- });
- function validateString(value, name) {
- if (typeof value !== "string") throw new ERR_INVALID_ARG_TYPE(name, "string", value);
- }
- function validateNumber(value, name) {
- if (typeof value !== "number") throw new ERR_INVALID_ARG_TYPE(name, "number", value);
- }
- var validateOneOf = hideStackFrames((value, name, oneOf) => {
- if (!ArrayPrototypeIncludes(oneOf, value)) {
- const allowed = ArrayPrototypeJoin(
- ArrayPrototypeMap(oneOf, v => (typeof v === "string" ? `'${v}'` : String2(v))),
- ", ",
- );
- const reason = "must be one of: " + allowed;
- throw new ERR_INVALID_ARG_VALUE(name, value, reason);
- }
- });
- function validateBoolean(value, name) {
- if (typeof value !== "boolean") throw new ERR_INVALID_ARG_TYPE(name, "boolean", value);
- }
- var validateObject = hideStackFrames((value, name, options) => {
- const useDefaultOptions = options == null;
- const allowArray = useDefaultOptions ? false : options.allowArray;
- const allowFunction = useDefaultOptions ? false : options.allowFunction;
- const nullable = useDefaultOptions ? false : options.nullable;
- if (
- (!nullable && value === null) ||
- (!allowArray && ArrayIsArray(value)) ||
- (typeof value !== "object" && (!allowFunction || typeof value !== "function"))
- ) {
- throw new ERR_INVALID_ARG_TYPE(name, "Object", value);
- }
- });
- var validateArray = hideStackFrames((value, name, minLength = 0) => {
- if (!ArrayIsArray(value)) {
- throw new ERR_INVALID_ARG_TYPE(name, "Array", value);
- }
- if (value.length < minLength) {
- const reason = `must be longer than ${minLength}`;
- throw new ERR_INVALID_ARG_VALUE(name, value, reason);
- }
- });
- function validateSignalName(signal, name = "signal") {
- validateString(signal, name);
- if (signals[signal] === void 0) {
- if (signals[StringPrototypeToUpperCase(signal)] !== void 0) {
- throw new ERR_UNKNOWN_SIGNAL(signal + " (signals must use all capital letters)");
- }
- throw new ERR_UNKNOWN_SIGNAL(signal);
- }
- }
- var validateBuffer = hideStackFrames((buffer, name = "buffer") => {
- if (!isArrayBufferView(buffer)) {
- throw new ERR_INVALID_ARG_TYPE(name, ["Buffer", "TypedArray", "DataView"], buffer);
- }
- });
- function validateEncoding(data, encoding) {
- const normalizedEncoding = normalizeEncoding(encoding);
- const length = data.length;
- if (normalizedEncoding === "hex" && length % 2 !== 0) {
- throw new ERR_INVALID_ARG_VALUE("encoding", encoding, `is invalid for data of length ${length}`);
- }
- }
- function validatePort(port, name = "Port", allowZero = true) {
- if (
- (typeof port !== "number" && typeof port !== "string") ||
- (typeof port === "string" && StringPrototypeTrim(port).length === 0) ||
- +port !== +port >>> 0 ||
- port > 65535 ||
- (port === 0 && !allowZero)
- ) {
- throw new ERR_SOCKET_BAD_PORT(name, port, allowZero);
- }
- return port | 0;
- }
- var validateAbortSignal = hideStackFrames((signal, name) => {
- if (signal !== void 0 && (signal === null || typeof signal !== "object" || !("aborted" in signal))) {
- throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
- }
- });
- var validateFunction = hideStackFrames((value, name) => {
- if (typeof value !== "function") throw new ERR_INVALID_ARG_TYPE(name, "Function", value);
- });
- var validatePlainFunction = hideStackFrames((value, name) => {
- if (typeof value !== "function" || isAsyncFunction(value))
- throw new ERR_INVALID_ARG_TYPE(name, "Function", value);
- });
- var validateUndefined = hideStackFrames((value, name) => {
- if (value !== void 0) throw new ERR_INVALID_ARG_TYPE(name, "undefined", value);
- });
- module.exports = {
- isInt32,
- isUint32,
- parseFileMode,
- validateArray,
- validateBoolean,
- validateBuffer,
- validateEncoding,
- validateFunction,
- validateInt32,
- validateInteger,
- validateNumber,
- validateObject,
- validateOneOf,
- validatePlainFunction,
- validatePort,
- validateSignalName,
- validateString,
- validateUint32,
- validateUndefined,
- validateAbortSignal,
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/utils.js
-var require_utils = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/utils.js"(exports, module) {
- "use strict";
- var { Symbol: Symbol2, SymbolAsyncIterator, SymbolIterator } = require_primordials();
- var kDestroyed = Symbol2("kDestroyed");
- var kIsErrored = Symbol2("kIsErrored");
- var kIsReadable = Symbol2("kIsReadable");
- var kIsDisturbed = Symbol2("kIsDisturbed");
- function isReadableNodeStream(obj, strict = false) {
- var _obj$_readableState;
- return !!(
- obj &&
- typeof obj.pipe === "function" &&
- typeof obj.on === "function" &&
- (!strict || (typeof obj.pause === "function" && typeof obj.resume === "function")) &&
- (!obj._writableState ||
- ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === void 0
- ? void 0
- : _obj$_readableState.readable) !== false) &&
- (!obj._writableState || obj._readableState)
- );
- }
- function isWritableNodeStream(obj) {
- var _obj$_writableState;
- return !!(
- obj &&
- typeof obj.write === "function" &&
- typeof obj.on === "function" &&
- (!obj._readableState ||
- ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === void 0
- ? void 0
- : _obj$_writableState.writable) !== false)
- );
- }
- function isDuplexNodeStream(obj) {
- return !!(
- obj &&
- typeof obj.pipe === "function" &&
- obj._readableState &&
- typeof obj.on === "function" &&
- typeof obj.write === "function"
- );
- }
- function isNodeStream(obj) {
- return (
- obj &&
- (obj._readableState ||
- obj._writableState ||
- (typeof obj.write === "function" && typeof obj.on === "function") ||
- (typeof obj.pipe === "function" && typeof obj.on === "function"))
- );
- }
- function isIterable(obj, isAsync) {
- if (obj == null) return false;
- if (isAsync === true) return typeof obj[SymbolAsyncIterator] === "function";
- if (isAsync === false) return typeof obj[SymbolIterator] === "function";
- return typeof obj[SymbolAsyncIterator] === "function" || typeof obj[SymbolIterator] === "function";
- }
- function isDestroyed(stream) {
- if (!isNodeStream(stream)) return null;
- const wState = stream._writableState;
- const rState = stream._readableState;
- const state = wState || rState;
- return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== void 0 && state.destroyed));
- }
- function isWritableEnded(stream) {
- if (!isWritableNodeStream(stream)) return null;
- if (stream.writableEnded === true) return true;
- const wState = stream._writableState;
- if (wState !== null && wState !== void 0 && wState.errored) return false;
- if (typeof (wState === null || wState === void 0 ? void 0 : wState.ended) !== "boolean") return null;
- return wState.ended;
- }
- function isWritableFinished(stream, strict) {
- if (!isWritableNodeStream(stream)) return null;
- if (stream.writableFinished === true) return true;
- const wState = stream._writableState;
- if (wState !== null && wState !== void 0 && wState.errored) return false;
- if (typeof (wState === null || wState === void 0 ? void 0 : wState.finished) !== "boolean") return null;
- return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0));
- }
- function isReadableEnded(stream) {
- if (!isReadableNodeStream(stream)) return null;
- if (stream.readableEnded === true) return true;
- const rState = stream._readableState;
- if (!rState || rState.errored) return false;
- if (typeof (rState === null || rState === void 0 ? void 0 : rState.ended) !== "boolean") return null;
- return rState.ended;
- }
- function isReadableFinished(stream, strict) {
- if (!isReadableNodeStream(stream)) return null;
- const rState = stream._readableState;
- if (rState !== null && rState !== void 0 && rState.errored) return false;
- if (typeof (rState === null || rState === void 0 ? void 0 : rState.endEmitted) !== "boolean") return null;
- return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0));
- }
- function isReadable(stream) {
- if (stream && stream[kIsReadable] != null) return stream[kIsReadable];
- if (typeof (stream === null || stream === void 0 ? void 0 : stream.readable) !== "boolean") return null;
- if (isDestroyed(stream)) return false;
- return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream);
- }
- function isWritable(stream) {
- if (typeof (stream === null || stream === void 0 ? void 0 : stream.writable) !== "boolean") return null;
- if (isDestroyed(stream)) return false;
- return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream);
- }
- function isFinished(stream, opts) {
- if (!isNodeStream(stream)) {
- return null;
- }
- if (isDestroyed(stream)) {
- return true;
- }
- if ((opts === null || opts === void 0 ? void 0 : opts.readable) !== false && isReadable(stream)) {
- return false;
- }
- if ((opts === null || opts === void 0 ? void 0 : opts.writable) !== false && isWritable(stream)) {
- return false;
- }
- return true;
- }
- function isWritableErrored(stream) {
- var _stream$_writableStat, _stream$_writableStat2;
- if (!isNodeStream(stream)) {
- return null;
- }
- if (stream.writableErrored) {
- return stream.writableErrored;
- }
- return (_stream$_writableStat =
- (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === void 0
- ? void 0
- : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== void 0
- ? _stream$_writableStat
- : null;
- }
- function isReadableErrored(stream) {
- var _stream$_readableStat, _stream$_readableStat2;
- if (!isNodeStream(stream)) {
- return null;
- }
- if (stream.readableErrored) {
- return stream.readableErrored;
- }
- return (_stream$_readableStat =
- (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === void 0
- ? void 0
- : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== void 0
- ? _stream$_readableStat
- : null;
- }
- function isClosed(stream) {
- if (!isNodeStream(stream)) {
- return null;
- }
- if (typeof stream.closed === "boolean") {
- return stream.closed;
- }
- const wState = stream._writableState;
- const rState = stream._readableState;
- if (
- typeof (wState === null || wState === void 0 ? void 0 : wState.closed) === "boolean" ||
- typeof (rState === null || rState === void 0 ? void 0 : rState.closed) === "boolean"
- ) {
- return (
- (wState === null || wState === void 0 ? void 0 : wState.closed) ||
- (rState === null || rState === void 0 ? void 0 : rState.closed)
- );
- }
- if (typeof stream._closed === "boolean" && isOutgoingMessage(stream)) {
- return stream._closed;
- }
- return null;
- }
- function isOutgoingMessage(stream) {
- return (
- typeof stream._closed === "boolean" &&
- typeof stream._defaultKeepAlive === "boolean" &&
- typeof stream._removedConnection === "boolean" &&
- typeof stream._removedContLen === "boolean"
- );
- }
- function isServerResponse(stream) {
- return typeof stream._sent100 === "boolean" && isOutgoingMessage(stream);
- }
- function isServerRequest(stream) {
- var _stream$req;
- return (
- typeof stream._consuming === "boolean" &&
- typeof stream._dumped === "boolean" &&
- ((_stream$req = stream.req) === null || _stream$req === void 0 ? void 0 : _stream$req.upgradeOrConnect) ===
- void 0
- );
- }
- function willEmitClose(stream) {
- if (!isNodeStream(stream)) return null;
- const wState = stream._writableState;
- const rState = stream._readableState;
- const state = wState || rState;
- return (
- (!state && isServerResponse(stream)) ||
- !!(state && state.autoDestroy && state.emitClose && state.closed === false)
- );
- }
- function isDisturbed(stream) {
- var _stream$kIsDisturbed;
- return !!(
- stream &&
- ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== void 0
- ? _stream$kIsDisturbed
- : stream.readableDidRead || stream.readableAborted)
- );
- }
- function isErrored(stream) {
- var _ref,
- _ref2,
- _ref3,
- _ref4,
- _ref5,
- _stream$kIsErrored,
- _stream$_readableStat3,
- _stream$_writableStat3,
- _stream$_readableStat4,
- _stream$_writableStat4;
- return !!(
- stream &&
- ((_ref =
- (_ref2 =
- (_ref3 =
- (_ref4 =
- (_ref5 =
- (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== void 0
- ? _stream$kIsErrored
- : stream.readableErrored) !== null && _ref5 !== void 0
- ? _ref5
- : stream.writableErrored) !== null && _ref4 !== void 0
- ? _ref4
- : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === void 0
- ? void 0
- : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== void 0
- ? _ref3
- : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === void 0
- ? void 0
- : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== void 0
- ? _ref2
- : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === void 0
- ? void 0
- : _stream$_readableStat4.errored) !== null && _ref !== void 0
- ? _ref
- : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === void 0
- ? void 0
- : _stream$_writableStat4.errored)
- );
- }
- module.exports = {
- kDestroyed,
- isDisturbed,
- kIsDisturbed,
- isErrored,
- kIsErrored,
- isReadable,
- kIsReadable,
- isClosed,
- isDestroyed,
- isDuplexNodeStream,
- isFinished,
- isIterable,
- isReadableNodeStream,
- isReadableEnded,
- isReadableFinished,
- isReadableErrored,
- isNodeStream,
- isWritable,
- isWritableNodeStream,
- isWritableEnded,
- isWritableFinished,
- isWritableErrored,
- isServerRequest,
- isServerResponse,
- willEmitClose,
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/end-of-stream.js
-var require_end_of_stream = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {
- "use strict";
- var { AbortError, codes } = require_errors();
- var { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes;
- var { once } = require_util();
- var { validateAbortSignal, validateFunction, validateObject } = require_validators();
- var { Promise: Promise2 } = require_primordials();
- var {
- isClosed,
- isReadable,
- isReadableNodeStream,
- isReadableFinished,
- isReadableErrored,
- isWritable,
- isWritableNodeStream,
- isWritableFinished,
- isWritableErrored,
- isNodeStream,
- willEmitClose: _willEmitClose,
- } = require_utils();
- function isRequest(stream) {
- return stream.setHeader && typeof stream.abort === "function";
- }
- var nop = () => {};
- function eos(stream, options, callback) {
- var _options$readable, _options$writable;
- if (arguments.length === 2) {
- callback = options;
- options = {};
- } else if (options == null) {
- options = {};
- } else {
- validateObject(options, "options");
- }
- validateFunction(callback, "callback");
- validateAbortSignal(options.signal, "options.signal");
- callback = once(callback);
- const readable =
- (_options$readable = options.readable) !== null && _options$readable !== void 0
- ? _options$readable
- : isReadableNodeStream(stream);
- const writable =
- (_options$writable = options.writable) !== null && _options$writable !== void 0
- ? _options$writable
- : isWritableNodeStream(stream);
- if (!isNodeStream(stream)) {
- throw new ERR_INVALID_ARG_TYPE("stream", "Stream", stream);
- }
- const wState = stream._writableState;
- const rState = stream._readableState;
- const onlegacyfinish = () => {
- if (!stream.writable) {
- onfinish();
- }
- };
- let willEmitClose =
- _willEmitClose(stream) &&
- isReadableNodeStream(stream) === readable &&
- isWritableNodeStream(stream) === writable;
- let writableFinished = isWritableFinished(stream, false);
- const onfinish = () => {
- writableFinished = true;
- if (stream.destroyed) {
- willEmitClose = false;
- }
- if (willEmitClose && (!stream.readable || readable)) {
- return;
- }
- if (!readable || readableFinished) {
- callback.call(stream);
- }
- };
- let readableFinished = isReadableFinished(stream, false);
- const onend = () => {
- readableFinished = true;
- if (stream.destroyed) {
- willEmitClose = false;
- }
- if (willEmitClose && (!stream.writable || writable)) {
- return;
- }
- if (!writable || writableFinished) {
- callback.call(stream);
- }
- };
- const onerror = err => {
- callback.call(stream, err);
- };
- let closed = isClosed(stream);
- const onclose = () => {
- closed = true;
- const errored = isWritableErrored(stream) || isReadableErrored(stream);
- if (errored && typeof errored !== "boolean") {
- return callback.call(stream, errored);
- }
- if (readable && !readableFinished && isReadableNodeStream(stream, true)) {
- if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE());
- }
- if (writable && !writableFinished) {
- if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE());
- }
- callback.call(stream);
- };
- const onrequest = () => {
- stream.req.on("finish", onfinish);
- };
- if (isRequest(stream)) {
- stream.on("complete", onfinish);
- if (!willEmitClose) {
- stream.on("abort", onclose);
- }
- if (stream.req) {
- onrequest();
- } else {
- stream.on("request", onrequest);
- }
- } else if (writable && !wState) {
- stream.on("end", onlegacyfinish);
- stream.on("close", onlegacyfinish);
- }
- if (!willEmitClose && typeof stream.aborted === "boolean") {
- stream.on("aborted", onclose);
- }
- stream.on("end", onend);
- stream.on("finish", onfinish);
- if (options.error !== false) {
- stream.on("error", onerror);
- }
- stream.on("close", onclose);
- if (closed) {
- runOnNextTick(onclose);
- } else if (
- (wState !== null && wState !== void 0 && wState.errorEmitted) ||
- (rState !== null && rState !== void 0 && rState.errorEmitted)
- ) {
- if (!willEmitClose) {
- runOnNextTick(onclose);
- }
- } else if (
- !readable &&
- (!willEmitClose || isReadable(stream)) &&
- (writableFinished || isWritable(stream) === false)
- ) {
- runOnNextTick(onclose);
- } else if (
- !writable &&
- (!willEmitClose || isWritable(stream)) &&
- (readableFinished || isReadable(stream) === false)
- ) {
- runOnNextTick(onclose);
- } else if (rState && stream.req && stream.aborted) {
- runOnNextTick(onclose);
- }
- const cleanup = () => {
- callback = nop;
- stream.removeListener("aborted", onclose);
- stream.removeListener("complete", onfinish);
- stream.removeListener("abort", onclose);
- stream.removeListener("request", onrequest);
- if (stream.req) stream.req.removeListener("finish", onfinish);
- stream.removeListener("end", onlegacyfinish);
- stream.removeListener("close", onlegacyfinish);
- stream.removeListener("finish", onfinish);
- stream.removeListener("end", onend);
- stream.removeListener("error", onerror);
- stream.removeListener("close", onclose);
- };
- if (options.signal && !closed) {
- const abort = () => {
- const endCallback = callback;
- cleanup();
- endCallback.call(
- stream,
- new AbortError(void 0, {
- cause: options.signal.reason,
- }),
- );
- };
- if (options.signal.aborted) {
- runOnNextTick(abort);
- } else {
- const originalCallback = callback;
- callback = once((...args) => {
- options.signal.removeEventListener("abort", abort);
- originalCallback.apply(stream, args);
- });
- options.signal.addEventListener("abort", abort);
- }
- }
- return cleanup;
- }
- function finished(stream, opts) {
- return new Promise2((resolve, reject) => {
- eos(stream, opts, err => {
- if (err) {
- reject(err);
- } else {
- resolve();
- }
- });
- });
- }
- module.exports = eos;
- module.exports.finished = finished;
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/operators.js
-var require_operators = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/operators.js"(exports, module) {
- "use strict";
- var AbortController = globalThis.AbortController || __require("abort-controller").AbortController;
- var {
- codes: { ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },
- AbortError,
- } = require_errors();
- var { validateAbortSignal, validateInteger, validateObject } = require_validators();
- var kWeakHandler = require_primordials().Symbol("kWeak");
- var { finished } = require_end_of_stream();
- var {
- ArrayPrototypePush,
- MathFloor,
- Number: Number2,
- NumberIsNaN,
- Promise: Promise2,
- PromiseReject,
- PromisePrototypeCatch,
- Symbol: Symbol2,
- } = require_primordials();
- var kEmpty = Symbol2("kEmpty");
- var kEof = Symbol2("kEof");
- function map(fn, options) {
- if (typeof fn !== "function") {
- throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn);
- }
- if (options != null) {
- validateObject(options, "options");
- }
- if ((options === null || options === void 0 ? void 0 : options.signal) != null) {
- validateAbortSignal(options.signal, "options.signal");
- }
- let concurrency = 1;
- if ((options === null || options === void 0 ? void 0 : options.concurrency) != null) {
- concurrency = MathFloor(options.concurrency);
- }
- validateInteger(concurrency, "concurrency", 1);
- return async function* map2() {
- var _options$signal, _options$signal2;
- const ac = new AbortController();
- const stream = this;
- const queue = [];
- const signal = ac.signal;
- const signalOpt = {
- signal,
- };
- const abort = () => ac.abort();
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal = options.signal) !== null &&
- _options$signal !== void 0 &&
- _options$signal.aborted
- ) {
- abort();
- }
- options === null || options === void 0
- ? void 0
- : (_options$signal2 = options.signal) === null || _options$signal2 === void 0
- ? void 0
- : _options$signal2.addEventListener("abort", abort);
- let next;
- let resume;
- let done = false;
- function onDone() {
- done = true;
- }
- async function pump() {
- try {
- for await (let val of stream) {
- var _val;
- if (done) {
- return;
- }
- if (signal.aborted) {
- throw new AbortError();
- }
- try {
- val = fn(val, signalOpt);
- } catch (err) {
- val = PromiseReject(err);
- }
- if (val === kEmpty) {
- continue;
- }
- if (typeof ((_val = val) === null || _val === void 0 ? void 0 : _val.catch) === "function") {
- val.catch(onDone);
- }
- queue.push(val);
- if (next) {
- next();
- next = null;
- }
- if (!done && queue.length && queue.length >= concurrency) {
- await new Promise2(resolve => {
- resume = resolve;
- });
- }
- }
- queue.push(kEof);
- } catch (err) {
- const val = PromiseReject(err);
- PromisePrototypeCatch(val, onDone);
- queue.push(val);
- } finally {
- var _options$signal3;
- done = true;
- if (next) {
- next();
- next = null;
- }
- options === null || options === void 0
- ? void 0
- : (_options$signal3 = options.signal) === null || _options$signal3 === void 0
- ? void 0
- : _options$signal3.removeEventListener("abort", abort);
- }
- }
- pump();
- try {
- while (true) {
- while (queue.length > 0) {
- const val = await queue[0];
- if (val === kEof) {
- return;
- }
- if (signal.aborted) {
- throw new AbortError();
- }
- if (val !== kEmpty) {
- yield val;
- }
- queue.shift();
- if (resume) {
- resume();
- resume = null;
- }
- }
- await new Promise2(resolve => {
- next = resolve;
- });
- }
- } finally {
- ac.abort();
- done = true;
- if (resume) {
- resume();
- resume = null;
- }
- }
- }.call(this);
- }
- function asIndexedPairs(options = void 0) {
- if (options != null) {
- validateObject(options, "options");
- }
- if ((options === null || options === void 0 ? void 0 : options.signal) != null) {
- validateAbortSignal(options.signal, "options.signal");
- }
- return async function* asIndexedPairs2() {
- let index = 0;
- for await (const val of this) {
- var _options$signal4;
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal4 = options.signal) !== null &&
- _options$signal4 !== void 0 &&
- _options$signal4.aborted
- ) {
- throw new AbortError({
- cause: options.signal.reason,
- });
- }
- yield [index++, val];
- }
- }.call(this);
- }
- async function some(fn, options = void 0) {
- for await (const unused of filter.call(this, fn, options)) {
- return true;
- }
- return false;
- }
- async function every(fn, options = void 0) {
- if (typeof fn !== "function") {
- throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn);
- }
- return !(await some.call(
- this,
- async (...args) => {
- return !(await fn(...args));
- },
- options,
- ));
- }
- async function find(fn, options) {
- for await (const result of filter.call(this, fn, options)) {
- return result;
- }
- return void 0;
- }
- async function forEach(fn, options) {
- if (typeof fn !== "function") {
- throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn);
- }
- async function forEachFn(value, options2) {
- await fn(value, options2);
- return kEmpty;
- }
- for await (const unused of map.call(this, forEachFn, options));
- }
- function filter(fn, options) {
- if (typeof fn !== "function") {
- throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn);
- }
- async function filterFn(value, options2) {
- if (await fn(value, options2)) {
- return value;
- }
- return kEmpty;
- }
- return map.call(this, filterFn, options);
- }
- var ReduceAwareErrMissingArgs = class extends ERR_MISSING_ARGS {
- constructor() {
- super("reduce");
- this.message = "Reduce of an empty stream requires an initial value";
- }
- };
- async function reduce(reducer, initialValue, options) {
- var _options$signal5;
- if (typeof reducer !== "function") {
- throw new ERR_INVALID_ARG_TYPE("reducer", ["Function", "AsyncFunction"], reducer);
- }
- if (options != null) {
- validateObject(options, "options");
- }
- if ((options === null || options === void 0 ? void 0 : options.signal) != null) {
- validateAbortSignal(options.signal, "options.signal");
- }
- let hasInitialValue = arguments.length > 1;
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal5 = options.signal) !== null &&
- _options$signal5 !== void 0 &&
- _options$signal5.aborted
- ) {
- const err = new AbortError(void 0, {
- cause: options.signal.reason,
- });
- this.once("error", () => {});
- await finished(this.destroy(err));
- throw err;
- }
- const ac = new AbortController();
- const signal = ac.signal;
- if (options !== null && options !== void 0 && options.signal) {
- const opts = {
- once: true,
- [kWeakHandler]: this,
- };
- options.signal.addEventListener("abort", () => ac.abort(), opts);
- }
- let gotAnyItemFromStream = false;
- try {
- for await (const value of this) {
- var _options$signal6;
- gotAnyItemFromStream = true;
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal6 = options.signal) !== null &&
- _options$signal6 !== void 0 &&
- _options$signal6.aborted
- ) {
- throw new AbortError();
- }
- if (!hasInitialValue) {
- initialValue = value;
- hasInitialValue = true;
- } else {
- initialValue = await reducer(initialValue, value, {
- signal,
- });
- }
- }
- if (!gotAnyItemFromStream && !hasInitialValue) {
- throw new ReduceAwareErrMissingArgs();
- }
- } finally {
- ac.abort();
- }
- return initialValue;
- }
- async function toArray(options) {
- if (options != null) {
- validateObject(options, "options");
- }
- if ((options === null || options === void 0 ? void 0 : options.signal) != null) {
- validateAbortSignal(options.signal, "options.signal");
- }
- const result = [];
- for await (const val of this) {
- var _options$signal7;
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal7 = options.signal) !== null &&
- _options$signal7 !== void 0 &&
- _options$signal7.aborted
- ) {
- throw new AbortError(void 0, {
- cause: options.signal.reason,
- });
- }
- ArrayPrototypePush(result, val);
- }
- return result;
- }
- function flatMap(fn, options) {
- const values = map.call(this, fn, options);
- return async function* flatMap2() {
- for await (const val of values) {
- yield* val;
- }
- }.call(this);
- }
- function toIntegerOrInfinity(number) {
- number = Number2(number);
- if (NumberIsNaN(number)) {
- return 0;
- }
- if (number < 0) {
- throw new ERR_OUT_OF_RANGE("number", ">= 0", number);
- }
- return number;
- }
- function drop(number, options = void 0) {
- if (options != null) {
- validateObject(options, "options");
- }
- if ((options === null || options === void 0 ? void 0 : options.signal) != null) {
- validateAbortSignal(options.signal, "options.signal");
- }
- number = toIntegerOrInfinity(number);
- return async function* drop2() {
- var _options$signal8;
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal8 = options.signal) !== null &&
- _options$signal8 !== void 0 &&
- _options$signal8.aborted
- ) {
- throw new AbortError();
- }
- for await (const val of this) {
- var _options$signal9;
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal9 = options.signal) !== null &&
- _options$signal9 !== void 0 &&
- _options$signal9.aborted
- ) {
- throw new AbortError();
- }
- if (number-- <= 0) {
- yield val;
- }
- }
- }.call(this);
- }
- function take(number, options = void 0) {
- if (options != null) {
- validateObject(options, "options");
- }
- if ((options === null || options === void 0 ? void 0 : options.signal) != null) {
- validateAbortSignal(options.signal, "options.signal");
- }
- number = toIntegerOrInfinity(number);
- return async function* take2() {
- var _options$signal10;
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal10 = options.signal) !== null &&
- _options$signal10 !== void 0 &&
- _options$signal10.aborted
- ) {
- throw new AbortError();
- }
- for await (const val of this) {
- var _options$signal11;
- if (
- options !== null &&
- options !== void 0 &&
- (_options$signal11 = options.signal) !== null &&
- _options$signal11 !== void 0 &&
- _options$signal11.aborted
- ) {
- throw new AbortError();
- }
- if (number-- > 0) {
- yield val;
- } else {
- return;
- }
- }
- }.call(this);
- }
- module.exports.streamReturningOperators = {
- asIndexedPairs,
- drop,
- filter,
- flatMap,
- map,
- take,
- };
- module.exports.promiseReturningOperators = {
- every,
- forEach,
- reduce,
- toArray,
- some,
- find,
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/destroy.js
-var require_destroy = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {
- "use strict";
- var {
- aggregateTwoErrors,
- codes: { ERR_MULTIPLE_CALLBACK },
- AbortError,
- } = require_errors();
- var { Symbol: Symbol2 } = require_primordials();
- var { kDestroyed, isDestroyed, isFinished, isServerRequest } = require_utils();
- var kDestroy = "#kDestroy";
- var kConstruct = "#kConstruct";
- function checkError(err, w, r) {
- if (err) {
- err.stack;
- if (w && !w.errored) {
- w.errored = err;
- }
- if (r && !r.errored) {
- r.errored = err;
- }
- }
- }
- function destroy(err, cb) {
- const r = this._readableState;
- const w = this._writableState;
- const s = w || r;
- if ((w && w.destroyed) || (r && r.destroyed)) {
- if (typeof cb === "function") {
- cb();
- }
- return this;
- }
- checkError(err, w, r);
- if (w) {
- w.destroyed = true;
- }
- if (r) {
- r.destroyed = true;
- }
- if (!s.constructed) {
- this.once(kDestroy, er => {
- _destroy(this, aggregateTwoErrors(er, err), cb);
- });
- } else {
- _destroy(this, err, cb);
- }
- return this;
- }
- function _destroy(self, err, cb) {
- let called = false;
- function onDestroy(err2) {
- if (called) {
- return;
- }
- called = true;
- const r = self._readableState;
- const w = self._writableState;
- checkError(err2, w, r);
- if (w) {
- w.closed = true;
- }
- if (r) {
- r.closed = true;
- }
- if (typeof cb === "function") {
- cb(err2);
- }
- if (err2) {
- runOnNextTick(emitErrorCloseNT, self, err2);
- } else {
- runOnNextTick(emitCloseNT, self);
- }
- }
- try {
- self._destroy(err || null, onDestroy);
- } catch (err2) {
- onDestroy(err2);
- }
- }
- function emitErrorCloseNT(self, err) {
- emitErrorNT(self, err);
- emitCloseNT(self);
- }
- function emitCloseNT(self) {
- const r = self._readableState;
- const w = self._writableState;
- if (w) {
- w.closeEmitted = true;
- }
- if (r) {
- r.closeEmitted = true;
- }
- if ((w && w.emitClose) || (r && r.emitClose)) {
- self.emit("close");
- }
- }
- function emitErrorNT(self, err) {
- const r = self?._readableState;
- const w = self?._writableState;
- if (w?.errorEmitted || r?.errorEmitted) {
- return;
- }
- if (w) {
- w.errorEmitted = true;
- }
- if (r) {
- r.errorEmitted = true;
- }
- self?.emit?.("error", err);
- }
- function undestroy() {
- const r = this._readableState;
- const w = this._writableState;
- if (r) {
- r.constructed = true;
- r.closed = false;
- r.closeEmitted = false;
- r.destroyed = false;
- r.errored = null;
- r.errorEmitted = false;
- r.reading = false;
- r.ended = r.readable === false;
- r.endEmitted = r.readable === false;
- }
- if (w) {
- w.constructed = true;
- w.destroyed = false;
- w.closed = false;
- w.closeEmitted = false;
- w.errored = null;
- w.errorEmitted = false;
- w.finalCalled = false;
- w.prefinished = false;
- w.ended = w.writable === false;
- w.ending = w.writable === false;
- w.finished = w.writable === false;
- }
- }
- function errorOrDestroy(stream, err, sync) {
- const r = stream?._readableState;
- const w = stream?._writableState;
- if ((w && w.destroyed) || (r && r.destroyed)) {
- return this;
- }
- if ((r && r.autoDestroy) || (w && w.autoDestroy)) stream.destroy(err);
- else if (err) {
- Error.captureStackTrace(err);
- if (w && !w.errored) {
- w.errored = err;
- }
- if (r && !r.errored) {
- r.errored = err;
- }
- if (sync) {
- runOnNextTick(emitErrorNT, stream, err);
- } else {
- emitErrorNT(stream, err);
- }
- }
- }
- function construct(stream, cb) {
- if (typeof stream._construct !== "function") {
- return;
- }
- const r = stream._readableState;
- const w = stream._writableState;
- if (r) {
- r.constructed = false;
- }
- if (w) {
- w.constructed = false;
- }
- stream.once(kConstruct, cb);
- if (stream.listenerCount(kConstruct) > 1) {
- return;
- }
- runOnNextTick(constructNT, stream);
- }
- function constructNT(stream) {
- let called = false;
- function onConstruct(err) {
- if (called) {
- errorOrDestroy(stream, err !== null && err !== void 0 ? err : new ERR_MULTIPLE_CALLBACK());
- return;
- }
- called = true;
- const r = stream._readableState;
- const w = stream._writableState;
- const s = w || r;
- if (r) {
- r.constructed = true;
- }
- if (w) {
- w.constructed = true;
- }
- if (s.destroyed) {
- stream.emit(kDestroy, err);
- } else if (err) {
- errorOrDestroy(stream, err, true);
- } else {
- runOnNextTick(emitConstructNT, stream);
- }
- }
- try {
- stream._construct(onConstruct);
- } catch (err) {
- onConstruct(err);
- }
- }
- function emitConstructNT(stream) {
- stream.emit(kConstruct);
- }
- function isRequest(stream) {
- return stream && stream.setHeader && typeof stream.abort === "function";
- }
- function emitCloseLegacy(stream) {
- stream.emit("close");
- }
- function emitErrorCloseLegacy(stream, err) {
- stream.emit("error", err);
- runOnNextTick(emitCloseLegacy, stream);
- }
- function destroyer(stream, err) {
- if (!stream || isDestroyed(stream)) {
- return;
- }
- if (!err && !isFinished(stream)) {
- err = new AbortError();
- }
- if (isServerRequest(stream)) {
- stream.socket = null;
- stream.destroy(err);
- } else if (isRequest(stream)) {
- stream.abort();
- } else if (isRequest(stream.req)) {
- stream.req.abort();
- } else if (typeof stream.destroy === "function") {
- stream.destroy(err);
- } else if (typeof stream.close === "function") {
- stream.close();
- } else if (err) {
- runOnNextTick(emitErrorCloseLegacy, stream);
- } else {
- runOnNextTick(emitCloseLegacy, stream);
- }
- if (!stream.destroyed) {
- stream[kDestroyed] = true;
- }
- }
- module.exports = {
- construct,
- destroyer,
- destroy,
- undestroy,
- errorOrDestroy,
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/legacy.js
-var require_legacy = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/legacy.js"(exports, module) {
- "use strict";
- var { ArrayIsArray, ObjectSetPrototypeOf } = require_primordials();
- var { EventEmitter: _EE } = __require("bun:events_native");
- var EE;
- if (__TRACK_EE__) {
- EE = DebugEventEmitter;
- } else {
- EE = _EE;
- }
-
- function Stream(options) {
- if (!(this instanceof Stream)) return new Stream(options);
- EE.call(this, options);
- }
- ObjectSetPrototypeOf(Stream.prototype, EE.prototype);
- ObjectSetPrototypeOf(Stream, EE);
-
- Stream.prototype.pipe = function (dest, options) {
- const source = this;
- function ondata(chunk) {
- if (dest.writable && dest.write(chunk) === false && source.pause) {
- source.pause();
- }
- }
- source.on("data", ondata);
- function ondrain() {
- if (source.readable && source.resume) {
- source.resume();
- }
- }
- dest.on("drain", ondrain);
- if (!dest._isStdio && (!options || options.end !== false)) {
- source.on("end", onend);
- source.on("close", onclose);
- }
- let didOnEnd = false;
- function onend() {
- if (didOnEnd) return;
- didOnEnd = true;
- dest.end();
- }
- function onclose() {
- if (didOnEnd) return;
- didOnEnd = true;
- if (typeof dest.destroy === "function") dest.destroy();
- }
- function onerror(er) {
- cleanup();
- if (EE.listenerCount(this, "error") === 0) {
- this.emit("error", er);
- }
- }
- prependListener(source, "error", onerror);
- prependListener(dest, "error", onerror);
- function cleanup() {
- source.removeListener("data", ondata);
- dest.removeListener("drain", ondrain);
- source.removeListener("end", onend);
- source.removeListener("close", onclose);
- source.removeListener("error", onerror);
- dest.removeListener("error", onerror);
- source.removeListener("end", cleanup);
- source.removeListener("close", cleanup);
- dest.removeListener("close", cleanup);
- }
- source.on("end", cleanup);
- source.on("close", cleanup);
- dest.on("close", cleanup);
- dest.emit("pipe", source);
- return dest;
- };
- function prependListener(emitter, event, fn) {
- if (typeof emitter.prependListener === "function") return emitter.prependListener(event, fn);
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);
- else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn);
- else emitter._events[event] = [fn, emitter._events[event]];
- }
- module.exports = {
- Stream,
- prependListener,
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/add-abort-signal.js
-var require_add_abort_signal = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(exports, module) {
- "use strict";
- var { AbortError, codes } = require_errors();
- var eos = require_end_of_stream();
- var { ERR_INVALID_ARG_TYPE } = codes;
- var validateAbortSignal = (signal, name) => {
- if (typeof signal !== "object" || !("aborted" in signal)) {
- throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
- }
- };
- function isNodeStream(obj) {
- return !!(obj && typeof obj.pipe === "function");
- }
- module.exports.addAbortSignal = function addAbortSignal(signal, stream) {
- validateAbortSignal(signal, "signal");
- if (!isNodeStream(stream)) {
- throw new ERR_INVALID_ARG_TYPE("stream", "stream.Stream", stream);
- }
- return module.exports.addAbortSignalNoValidate(signal, stream);
- };
- module.exports.addAbortSignalNoValidate = function (signal, stream) {
- if (typeof signal !== "object" || !("aborted" in signal)) {
- return stream;
- }
- const onAbort = () => {
- stream.destroy(
- new AbortError(void 0, {
- cause: signal.reason,
- }),
- );
- };
- if (signal.aborted) {
- onAbort();
- } else {
- signal.addEventListener("abort", onAbort);
- eos(stream, () => signal.removeEventListener("abort", onAbort));
- }
- return stream;
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/state.js
-var require_state = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {
- "use strict";
- var { MathFloor, NumberIsInteger } = require_primordials();
- var { ERR_INVALID_ARG_VALUE } = require_errors().codes;
- function highWaterMarkFrom(options, isDuplex, duplexKey) {
- return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;
- }
- function getDefaultHighWaterMark(objectMode) {
- return objectMode ? 16 : 16 * 1024;
- }
- function getHighWaterMark(state, options, duplexKey, isDuplex) {
- const hwm = highWaterMarkFrom(options, isDuplex, duplexKey);
- if (hwm != null) {
- if (!NumberIsInteger(hwm) || hwm < 0) {
- const name = isDuplex ? `options.${duplexKey}` : "options.highWaterMark";
- throw new ERR_INVALID_ARG_VALUE(name, hwm);
- }
- return MathFloor(hwm);
- }
- return getDefaultHighWaterMark(state.objectMode);
- }
- module.exports = {
- getHighWaterMark,
- getDefaultHighWaterMark,
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/from.js
-var require_from = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/from.js"(exports, module) {
- "use strict";
- var { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require_primordials();
- var { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require_errors().codes;
- function from(Readable, iterable, opts) {
- let iterator;
- if (typeof iterable === "string" || iterable instanceof Buffer) {
- return new Readable({
- objectMode: true,
- ...opts,
- read() {
- this.push(iterable);
- this.push(null);
- },
- });
- }
- let isAsync;
- if (iterable && iterable[SymbolAsyncIterator]) {
- isAsync = true;
- iterator = iterable[SymbolAsyncIterator]();
- } else if (iterable && iterable[SymbolIterator]) {
- isAsync = false;
- iterator = iterable[SymbolIterator]();
- } else {
- throw new ERR_INVALID_ARG_TYPE("iterable", ["Iterable"], iterable);
- }
- const readable = new Readable({
- objectMode: true,
- highWaterMark: 1,
- ...opts,
- });
- let reading = false;
- readable._read = function () {
- if (!reading) {
- reading = true;
- next();
- }
- };
- readable._destroy = function (error, cb) {
- PromisePrototypeThen(
- close(error),
- () => runOnNextTick(cb, error),
- e => runOnNextTick(cb, e || error),
- );
- };
- async function close(error) {
- const hadError = error !== void 0 && error !== null;
- const hasThrow = typeof iterator.throw === "function";
- if (hadError && hasThrow) {
- const { value, done } = await iterator.throw(error);
- await value;
- if (done) {
- return;
- }
- }
- if (typeof iterator.return === "function") {
- const { value } = await iterator.return();
- await value;
- }
- }
- async function next() {
- for (;;) {
- try {
- const { value, done } = isAsync ? await iterator.next() : iterator.next();
- if (done) {
- readable.push(null);
- } else {
- const res = value && typeof value.then === "function" ? await value : value;
- if (res === null) {
- reading = false;
- throw new ERR_STREAM_NULL_VALUES();
- } else if (readable.push(res)) {
- continue;
- } else {
- reading = false;
- }
- }
- } catch (err) {
- readable.destroy(err);
- }
- break;
- }
- }
- return readable;
- }
- module.exports = from;
- },
-});
-
-var _ReadableFromWeb;
-
-// node_modules/readable-stream/lib/internal/streams/readable.js
-var require_readable = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/readable.js"(exports, module) {
- "use strict";
- var {
- ArrayPrototypeIndexOf,
- NumberIsInteger,
- NumberIsNaN,
- NumberParseInt,
- ObjectDefineProperties,
- ObjectKeys,
- ObjectSetPrototypeOf,
- Promise: Promise2,
- SafeSet,
- SymbolAsyncIterator,
- Symbol: Symbol2,
- } = require_primordials();
-
- var ReadableState = globalThis[Symbol.for("Bun.lazy")]("bun:stream").ReadableState;
- var { EventEmitter: EE } = __require("bun:events_native");
- var { Stream, prependListener } = require_legacy();
-
- function Readable(options) {
- if (!(this instanceof Readable)) return new Readable(options);
- const isDuplex = this instanceof require_duplex();
- this._readableState = new ReadableState(options, this, isDuplex);
- if (options) {
- const { read, destroy, construct, signal } = options;
- if (typeof read === "function") this._read = read;
- if (typeof destroy === "function") this._destroy = destroy;
- if (typeof construct === "function") this._construct = construct;
- if (signal && !isDuplex) addAbortSignal(signal, this);
- }
- Stream.call(this, options);
-
- destroyImpl.construct(this, () => {
- if (this._readableState.needReadable) {
- maybeReadMore(this, this._readableState);
- }
- });
- }
- ObjectSetPrototypeOf(Readable.prototype, Stream.prototype);
- ObjectSetPrototypeOf(Readable, Stream);
-
- Readable.prototype.on = function (ev, fn) {
- const res = Stream.prototype.on.call(this, ev, fn);
- const state = this._readableState;
- if (ev === "data") {
- state.readableListening = this.listenerCount("readable") > 0;
- if (state.flowing !== false) {
- __DEBUG__ && debug("in flowing mode!", this.__id);
- this.resume();
- } else {
- __DEBUG__ && debug("in readable mode!", this.__id);
- }
- } else if (ev === "readable") {
- __DEBUG__ && debug("readable listener added!", this.__id);
- if (!state.endEmitted && !state.readableListening) {
- state.readableListening = state.needReadable = true;
- state.flowing = false;
- state.emittedReadable = false;
- __DEBUG__ &&
- debug(
- "on readable - state.length, reading, emittedReadable",
- state.length,
- state.reading,
- state.emittedReadable,
- this.__id,
- );
- if (state.length) {
- emitReadable(this, state);
- } else if (!state.reading) {
- runOnNextTick(nReadingNextTick, this);
- }
- } else if (state.endEmitted) {
- __DEBUG__ && debug("end already emitted...", this.__id);
- }
- }
- return res;
- };
-
- class ReadableFromWeb extends Readable {
- #reader;
- #closed;
- #pendingChunks;
- #stream;
-
- constructor(options, stream) {
- const { objectMode, highWaterMark, encoding, signal } = options;
- super({
- objectMode,
- highWaterMark,
- encoding,
- signal,
- });
- this.#pendingChunks = [];
- this.#reader = undefined;
- this.#stream = stream;
- this.#closed = false;
- }
-
- #drainPending() {
- var pendingChunks = this.#pendingChunks,
- pendingChunksI = 0,
- pendingChunksCount = pendingChunks.length;
-
- for (; pendingChunksI < pendingChunksCount; pendingChunksI++) {
- const chunk = pendingChunks[pendingChunksI];
- pendingChunks[pendingChunksI] = undefined;
- if (!this.push(chunk, undefined)) {
- this.#pendingChunks = pendingChunks.slice(pendingChunksI + 1);
- return true;
- }
- }
-
- if (pendingChunksCount > 0) {
- this.#pendingChunks = [];
- }
-
- return false;
- }
-
- #handleDone(reader) {
- reader.releaseLock();
- this.#reader = undefined;
- this.#closed = true;
- this.push(null);
- return;
- }
-
- async _read() {
- __DEBUG__ && debug("ReadableFromWeb _read()", this.__id);
- var stream = this.#stream,
- reader = this.#reader;
- if (stream) {
- reader = this.#reader = stream.getReader();
- this.#stream = undefined;
- } else if (this.#drainPending()) {
- return;
- }
-
- var deferredError;
- try {
- do {
- var done = false,
- value;
- const firstResult = reader.readMany();
-
- if (isPromise(firstResult)) {
- ({ done, value } = await firstResult);
-
- if (this.#closed) {
- this.#pendingChunks.push(...value);
- return;
- }
- } else {
- ({ done, value } = firstResult);
- }
-
- if (done) {
- this.#handleDone(reader);
- return;
- }
-
- if (!this.push(value[0])) {
- this.#pendingChunks = value.slice(1);
- return;
- }
-
- for (let i = 1, count = value.length; i < count; i++) {
- if (!this.push(value[i])) {
- this.#pendingChunks = value.slice(i + 1);
- return;
- }
- }
- } while (!this.#closed);
- } catch (e) {
- deferredError = e;
- } finally {
- if (deferredError) throw deferredError;
- }
- }
-
- _destroy(error, callback) {
- if (!this.#closed) {
- var reader = this.#reader;
- if (reader) {
- this.#reader = undefined;
- reader.cancel(error).finally(() => {
- this.#closed = true;
- callback(error);
- });
- }
-
- return;
- }
- try {
- callback(error);
- } catch (error) {
- globalThis.reportError(error);
- }
- }
- }
-
- /**
- * @param {ReadableStream} readableStream
- * @param {{
- * highWaterMark? : number,
- * encoding? : string,
- * objectMode? : boolean,
- * signal? : AbortSignal,
- * }} [options]
- * @returns {Readable}
- */
- function newStreamReadableFromReadableStream(readableStream, options = {}) {
- if (!isReadableStream(readableStream)) {
- throw new ERR_INVALID_ARG_TYPE("readableStream", "ReadableStream", readableStream);
- }
-
- validateObject(options, "options");
- const {
- highWaterMark,
- encoding,
- objectMode = false,
- signal,
- // native = true,
- } = options;
-
- if (encoding !== undefined && !Buffer.isEncoding(encoding))
- throw new ERR_INVALID_ARG_VALUE(encoding, "options.encoding");
- validateBoolean(objectMode, "options.objectMode");
-
- // validateBoolean(native, "options.native");
-
- // if (!native) {
- // return new ReadableFromWeb(
- // {
- // highWaterMark,
- // encoding,
- // objectMode,
- // signal,
- // },
- // readableStream,
- // );
- // }
-
- const nativeStream = getNativeReadableStream(Readable, readableStream, options);
-
- return (
- nativeStream ||
- new ReadableFromWeb(
- {
- highWaterMark,
- encoding,
- objectMode,
- signal,
- },
- readableStream,
- )
- );
- }
-
- module.exports = Readable;
- _ReadableFromWeb = ReadableFromWeb;
-
- var { addAbortSignal } = require_add_abort_signal();
- var eos = require_end_of_stream();
- const {
- maybeReadMore: _maybeReadMore,
- resume,
- emitReadable: _emitReadable,
- onEofChunk,
- } = globalThis[Symbol.for("Bun.lazy")]("bun:stream");
- function maybeReadMore(stream, state) {
- process.nextTick(_maybeReadMore, stream, state);
- }
- // REVERT ME
- function emitReadable(stream, state) {
- __DEBUG__ && debug("NativeReadable - emitReadable", stream.__id);
- _emitReadable(stream, state);
- }
- var destroyImpl = require_destroy();
- var {
- aggregateTwoErrors,
- codes: {
- ERR_INVALID_ARG_TYPE,
- ERR_METHOD_NOT_IMPLEMENTED,
- ERR_OUT_OF_RANGE,
- ERR_STREAM_PUSH_AFTER_EOF,
- ERR_STREAM_UNSHIFT_AFTER_END_EVENT,
- },
- } = require_errors();
- var { validateObject } = require_validators();
- var { StringDecoder } = __require("string_decoder");
- var from = require_from();
- var nop = () => {};
- var { errorOrDestroy } = destroyImpl;
-
- Readable.prototype.destroy = destroyImpl.destroy;
- Readable.prototype._undestroy = destroyImpl.undestroy;
- Readable.prototype._destroy = function (err, cb) {
- cb(err);
- };
- Readable.prototype[EE.captureRejectionSymbol] = function (err) {
- this.destroy(err);
- };
- Readable.prototype.push = function (chunk, encoding) {
- return readableAddChunk(this, chunk, encoding, false);
- };
- Readable.prototype.unshift = function (chunk, encoding) {
- return readableAddChunk(this, chunk, encoding, true);
- };
- function readableAddChunk(stream, chunk, encoding, addToFront) {
- __DEBUG__ && debug("readableAddChunk", chunk, stream.__id);
- const state = stream._readableState;
- let err;
- if (!state.objectMode) {
- if (typeof chunk === "string") {
- encoding = encoding || state.defaultEncoding;
- if (state.encoding !== encoding) {
- if (addToFront && state.encoding) {
- chunk = Buffer.from(chunk, encoding).toString(state.encoding);
- } else {
- chunk = Buffer.from(chunk, encoding);
- encoding = "";
- }
- }
- } else if (chunk instanceof Buffer) {
- encoding = "";
- } else if (Stream._isUint8Array(chunk)) {
- if (addToFront || !state.decoder) {
- chunk = Stream._uint8ArrayToBuffer(chunk);
- }
- encoding = "";
- } else if (chunk != null) {
- err = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);
- }
- }
- if (err) {
- errorOrDestroy(stream, err);
- } else if (chunk === null) {
- state.reading = false;
- onEofChunk(stream, state);
- } else if (state.objectMode || (chunk && chunk.length > 0)) {
- if (addToFront) {
- if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());
- else if (state.destroyed || state.errored) return false;
- else addChunk(stream, state, chunk, true);
- } else if (state.ended) {
- errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());
- } else if (state.destroyed || state.errored) {
- return false;
- } else {
- state.reading = false;
- if (state.decoder && !encoding) {
- chunk = state.decoder.write(chunk);
- if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);
- else maybeReadMore(stream, state);
- } else {
- addChunk(stream, state, chunk, false);
- }
- }
- } else if (!addToFront) {
- state.reading = false;
- maybeReadMore(stream, state);
- }
- return !state.ended && (state.length < state.highWaterMark || state.length === 0);
- }
- function addChunk(stream, state, chunk, addToFront) {
- __DEBUG__ && debug("adding chunk", stream.__id);
- __DEBUG__ && debug("chunk", chunk.toString(), stream.__id);
- if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount("data") > 0) {
- if (state.multiAwaitDrain) {
- state.awaitDrainWriters.clear();
- } else {
- state.awaitDrainWriters = null;
- }
- state.dataEmitted = true;
- stream.emit("data", chunk);
- } else {
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront) state.buffer.unshift(chunk);
- else state.buffer.push(chunk);
- __DEBUG__ && debug("needReadable @ addChunk", state.needReadable, stream.__id);
- if (state.needReadable) emitReadable(stream, state);
- }
- maybeReadMore(stream, state);
- }
- Readable.prototype.isPaused = function () {
- const state = this._readableState;
- return state.paused === true || state.flowing === false;
- };
- Readable.prototype.setEncoding = function (enc) {
- const decoder = new StringDecoder(enc);
- this._readableState.decoder = decoder;
- this._readableState.encoding = this._readableState.decoder.encoding;
- const buffer = this._readableState.buffer;
- let content = "";
- // BufferList does not support iterator now, and iterator is slow in JSC.
- // for (const data of buffer) {
- // content += decoder.write(data);
- // }
- // buffer.clear();
- for (let i = buffer.length; i > 0; i--) {
- content += decoder.write(buffer.shift());
- }
- if (content !== "") buffer.push(content);
- this._readableState.length = content.length;
- return this;
- };
- var MAX_HWM = 1073741824;
- function computeNewHighWaterMark(n) {
- if (n > MAX_HWM) {
- throw new ERR_OUT_OF_RANGE("size", "<= 1GiB", n);
- } else {
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
- }
- function howMuchToRead(n, state) {
- if (n <= 0 || (state.length === 0 && state.ended)) return 0;
- if (state.objectMode) return 1;
- if (NumberIsNaN(n)) {
- if (state.flowing && state.length) return state.buffer.first().length;
- return state.length;
- }
- if (n <= state.length) return n;
- return state.ended ? state.length : 0;
- }
- // You can override either this method, or the async _read(n) below.
- Readable.prototype.read = function (n) {
- __DEBUG__ && debug("read - n =", n, this.__id);
- if (!NumberIsInteger(n)) {
- n = NumberParseInt(n, 10);
- }
- const state = this._readableState;
- const nOrig = n;
-
- // If we're asking for more than the current hwm, then raise the hwm.
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
-
- if (n !== 0) state.emittedReadable = false;
-
- // If we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (
- n === 0 &&
- state.needReadable &&
- ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)
- ) {
- __DEBUG__ && debug("read: emitReadable or endReadable", state.length, state.ended, this.__id);
- if (state.length === 0 && state.ended) endReadable(this);
- else emitReadable(this, state);
- return null;
- }
-
- n = howMuchToRead(n, state);
-
- // If we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- __DEBUG__ &&
- debug("read: calling endReadable if length 0 -- length, state.ended", state.length, state.ended, this.__id);
- if (state.length === 0) endReadable(this);
- return null;
- }
-
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
-
- // if we need a readable event, then we need to do some reading.
- let doRead = state.needReadable;
- __DEBUG__ && debug("need readable", doRead, this.__id);
-
- // If we currently have less than the highWaterMark, then also read some.
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- __DEBUG__ && debug("length less than watermark", doRead, this.__id);
- }
-
- // However, if we've ended, then there's no point, if we're already
- // reading, then it's unnecessary, if we're constructing we have to wait,
- // and if we're destroyed or errored, then it's not allowed,
- if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {
- __DEBUG__ && debug("state.constructed?", state.constructed, this.__id);
- doRead = false;
- __DEBUG__ && debug("reading, ended or constructing", doRead, this.__id);
- } else if (doRead) {
- __DEBUG__ && debug("do read", this.__id);
- state.reading = true;
- state.sync = true;
- // If the length is currently zero, then we *need* a readable event.
- if (state.length === 0) state.needReadable = true;
-
- // Call internal read method
- try {
- var result = this._read(state.highWaterMark);
- if (isPromise(result)) {
- __DEBUG__ && debug("async _read", this.__id);
- const peeked = Bun.peek(result);
- __DEBUG__ && debug("peeked promise", peeked, this.__id);
- if (peeked !== result) {
- result = peeked;
- }
- }
-
- if (isPromise(result) && result?.then && isCallable(result.then)) {
- __DEBUG__ && debug("async _read result.then setup", this.__id);
- result.then(nop, function (err) {
- errorOrDestroy(this, err);
- });
- }
- } catch (err) {
- errorOrDestroy(this, err);
- }
-
- state.sync = false;
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (!state.reading) n = howMuchToRead(nOrig, state);
- }
-
- __DEBUG__ && debug("n @ fromList", n, this.__id);
- let ret;
- if (n > 0) ret = fromList(n, state);
- else ret = null;
-
- __DEBUG__ && debug("ret @ read", ret, this.__id);
-
- if (ret === null) {
- state.needReadable = state.length <= state.highWaterMark;
- __DEBUG__ && debug("state.length while ret = null", state.length, this.__id);
- n = 0;
- } else {
- state.length -= n;
- if (state.multiAwaitDrain) {
- state.awaitDrainWriters.clear();
- } else {
- state.awaitDrainWriters = null;
- }
- }
-
- if (state.length === 0) {
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (!state.ended) state.needReadable = true;
-
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended) endReadable(this);
- }
-
- if (ret !== null && !state.errorEmitted && !state.closeEmitted) {
- state.dataEmitted = true;
- this.emit("data", ret);
- }
-
- return ret;
- };
- Readable.prototype._read = function (n) {
- throw new ERR_METHOD_NOT_IMPLEMENTED("_read()");
- };
- Readable.prototype.pipe = function (dest, pipeOpts) {
- const src = this;
- const state = this._readableState;
- if (state.pipes.length === 1) {
- if (!state.multiAwaitDrain) {
- state.multiAwaitDrain = true;
- state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : []);
- }
- }
- state.pipes.push(dest);
- __DEBUG__ && debug("pipe count=%d opts=%j", state.pipes.length, pipeOpts, src.__id);
- const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
- const endFn = doEnd ? onend : unpipe;
- if (state.endEmitted) runOnNextTick(endFn);
- else src.once("end", endFn);
- dest.on("unpipe", onunpipe);
- function onunpipe(readable, unpipeInfo) {
- __DEBUG__ && debug("onunpipe", src.__id);
- if (readable === src) {
- if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
- unpipeInfo.hasUnpiped = true;
- cleanup();
- }
- }
- }
- function onend() {
- __DEBUG__ && debug("onend", src.__id);
- dest.end();
- }
- let ondrain;
- let cleanedUp = false;
- function cleanup() {
- __DEBUG__ && debug("cleanup", src.__id);
- dest.removeListener("close", onclose);
- dest.removeListener("finish", onfinish);
- if (ondrain) {
- dest.removeListener("drain", ondrain);
- }
- dest.removeListener("error", onerror);
- dest.removeListener("unpipe", onunpipe);
- src.removeListener("end", onend);
- src.removeListener("end", unpipe);
- src.removeListener("data", ondata);
- cleanedUp = true;
- if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain();
- }
- function pause() {
- if (!cleanedUp) {
- if (state.pipes.length === 1 && state.pipes[0] === dest) {
- __DEBUG__ && debug("false write response, pause", 0, src.__id);
- state.awaitDrainWriters = dest;
- state.multiAwaitDrain = false;
- } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {
- __DEBUG__ && debug("false write response, pause", state.awaitDrainWriters.size, src.__id);
- state.awaitDrainWriters.add(dest);
- }
- src.pause();
- }
- if (!ondrain) {
- ondrain = pipeOnDrain(src, dest);
- dest.on("drain", ondrain);
- }
- }
- src.on("data", ondata);
- function ondata(chunk) {
- __DEBUG__ && debug("ondata", src.__id);
- const ret = dest.write(chunk);
- __DEBUG__ && debug("dest.write", ret, src.__id);
- if (ret === false) {
- pause();
- }
- }
- function onerror(er) {
- debug("onerror", er);
- unpipe();
- dest.removeListener("error", onerror);
- if (dest.listenerCount("error") === 0) {
- const s = dest._writableState || dest._readableState;
- if (s && !s.errorEmitted) {
- errorOrDestroy(dest, er);
- } else {
- dest.emit("error", er);
- }
- }
- }
- prependListener(dest, "error", onerror);
- function onclose() {
- dest.removeListener("finish", onfinish);
- unpipe();
- }
- dest.once("close", onclose);
- function onfinish() {
- debug("onfinish");
- dest.removeListener("close", onclose);
- unpipe();
- }
- dest.once("finish", onfinish);
- function unpipe() {
- debug("unpipe");
- src.unpipe(dest);
- }
- dest.emit("pipe", src);
- if (dest.writableNeedDrain === true) {
- if (state.flowing) {
- pause();
- }
- } else if (!state.flowing) {
- debug("pipe resume");
- src.resume();
- }
- return dest;
- };
- function pipeOnDrain(src, dest) {
- return function pipeOnDrainFunctionResult() {
- const state = src._readableState;
- if (state.awaitDrainWriters === dest) {
- debug("pipeOnDrain", 1);
- state.awaitDrainWriters = null;
- } else if (state.multiAwaitDrain) {
- debug("pipeOnDrain", state.awaitDrainWriters.size);
- state.awaitDrainWriters.delete(dest);
- }
- if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount("data")) {
- src.resume();
- }
- };
- }
- Readable.prototype.unpipe = function (dest) {
- const state = this._readableState;
- const unpipeInfo = {
- hasUnpiped: false,
- };
- if (state.pipes.length === 0) return this;
- if (!dest) {
- const dests = state.pipes;
- state.pipes = [];
- this.pause();
- for (let i = 0; i < dests.length; i++)
- dests[i].emit("unpipe", this, {
- hasUnpiped: false,
- });
- return this;
- }
- const index = ArrayPrototypeIndexOf(state.pipes, dest);
- if (index === -1) return this;
- state.pipes.splice(index, 1);
- if (state.pipes.length === 0) this.pause();
- dest.emit("unpipe", this, unpipeInfo);
- return this;
- };
- Readable.prototype.addListener = Readable.prototype.on;
- Readable.prototype.removeListener = function (ev, fn) {
- const res = Stream.prototype.removeListener.call(this, ev, fn);
- if (ev === "readable") {
- runOnNextTick(updateReadableListening, this);
- }
- return res;
- };
- Readable.prototype.off = Readable.prototype.removeListener;
- Readable.prototype.removeAllListeners = function (ev) {
- const res = Stream.prototype.removeAllListeners.apply(this, arguments);
- if (ev === "readable" || ev === void 0) {
- runOnNextTick(updateReadableListening, this);
- }
- return res;
- };
- function updateReadableListening(self) {
- const state = self._readableState;
- state.readableListening = self.listenerCount("readable") > 0;
- if (state.resumeScheduled && state.paused === false) {
- state.flowing = true;
- } else if (self.listenerCount("data") > 0) {
- self.resume();
- } else if (!state.readableListening) {
- state.flowing = null;
- }
- }
- function nReadingNextTick(self) {
- __DEBUG__ && debug("on readable nextTick, calling read(0)", self.__id);
- self.read(0);
- }
- Readable.prototype.resume = function () {
- const state = this._readableState;
- if (!state.flowing) {
- __DEBUG__ && debug("resume", this.__id);
- state.flowing = !state.readableListening;
- resume(this, state);
- }
- state.paused = false;
- return this;
- };
- Readable.prototype.pause = function () {
- __DEBUG__ && debug("call pause flowing=%j", this._readableState.flowing, this.__id);
- if (this._readableState.flowing !== false) {
- __DEBUG__ && debug("pause", this.__id);
- this._readableState.flowing = false;
- this.emit("pause");
- }
- this._readableState.paused = true;
- return this;
- };
- Readable.prototype.wrap = function (stream) {
- let paused = false;
- stream.on("data", chunk => {
- if (!this.push(chunk) && stream.pause) {
- paused = true;
- stream.pause();
- }
- });
- stream.on("end", () => {
- this.push(null);
- });
- stream.on("error", err => {
- errorOrDestroy(this, err);
- });
- stream.on("close", () => {
- this.destroy();
- });
- stream.on("destroy", () => {
- this.destroy();
- });
- this._read = () => {
- if (paused && stream.resume) {
- paused = false;
- stream.resume();
- }
- };
- const streamKeys = ObjectKeys(stream);
- for (let j = 1; j < streamKeys.length; j++) {
- const i = streamKeys[j];
- if (this[i] === void 0 && typeof stream[i] === "function") {
- this[i] = stream[i].bind(stream);
- }
- }
- return this;
- };
- Readable.prototype[SymbolAsyncIterator] = function () {
- return streamToAsyncIterator(this);
- };
- Readable.prototype.iterator = function (options) {
- if (options !== void 0) {
- validateObject(options, "options");
- }
- return streamToAsyncIterator(this, options);
- };
- function streamToAsyncIterator(stream, options) {
- if (typeof stream.read !== "function") {
- stream = Readable.wrap(stream, {
- objectMode: true,
- });
- }
- const iter = createAsyncIterator(stream, options);
- iter.stream = stream;
- return iter;
- }
- async function* createAsyncIterator(stream, options) {
- let callback = nop;
- function next(resolve) {
- if (this === stream) {
- callback();
- callback = nop;
- } else {
- callback = resolve;
- }
- }
- stream.on("readable", next);
- let error;
- const cleanup = eos(
- stream,
- {
- writable: false,
- },
- err => {
- error = err ? aggregateTwoErrors(error, err) : null;
- callback();
- callback = nop;
- },
- );
- try {
- while (true) {
- const chunk = stream.destroyed ? null : stream.read();
- if (chunk !== null) {
- yield chunk;
- } else if (error) {
- throw error;
- } else if (error === null) {
- return;
- } else {
- await new Promise2(next);
- }
- }
- } catch (err) {
- error = aggregateTwoErrors(error, err);
- throw error;
- } finally {
- if (
- (error || (options === null || options === void 0 ? void 0 : options.destroyOnReturn) !== false) &&
- (error === void 0 || stream._readableState.autoDestroy)
- ) {
- destroyImpl.destroyer(stream, null);
- } else {
- stream.off("readable", next);
- cleanup();
- }
- }
- }
- ObjectDefineProperties(Readable.prototype, {
- readable: {
- get() {
- const r = this._readableState;
- return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted;
- },
- set(val) {
- if (this._readableState) {
- this._readableState.readable = !!val;
- }
- },
- },
- readableDidRead: {
- enumerable: false,
- get: function () {
- return this._readableState.dataEmitted;
- },
- },
- readableAborted: {
- enumerable: false,
- get: function () {
- return !!(
- this._readableState.readable !== false &&
- (this._readableState.destroyed || this._readableState.errored) &&
- !this._readableState.endEmitted
- );
- },
- },
- readableHighWaterMark: {
- enumerable: false,
- get: function () {
- return this._readableState.highWaterMark;
- },
- },
- readableBuffer: {
- enumerable: false,
- get: function () {
- return this._readableState && this._readableState.buffer;
- },
- },
- readableFlowing: {
- enumerable: false,
- get: function () {
- return this._readableState.flowing;
- },
- set: function (state) {
- if (this._readableState) {
- this._readableState.flowing = state;
- }
- },
- },
- readableLength: {
- enumerable: false,
- get() {
- return this._readableState.length;
- },
- },
- readableObjectMode: {
- enumerable: false,
- get() {
- return this._readableState ? this._readableState.objectMode : false;
- },
- },
- readableEncoding: {
- enumerable: false,
- get() {
- return this._readableState ? this._readableState.encoding : null;
- },
- },
- errored: {
- enumerable: false,
- get() {
- return this._readableState ? this._readableState.errored : null;
- },
- },
- closed: {
- get() {
- return this._readableState ? this._readableState.closed : false;
- },
- },
- destroyed: {
- enumerable: false,
- get() {
- return this._readableState ? this._readableState.destroyed : false;
- },
- set(value) {
- if (!this._readableState) {
- return;
- }
- this._readableState.destroyed = value;
- },
- },
- readableEnded: {
- enumerable: false,
- get() {
- return this._readableState ? this._readableState.endEmitted : false;
- },
- },
- });
- Readable._fromList = fromList;
- function fromList(n, state) {
- if (state.length === 0) return null;
- let ret;
- if (state.objectMode) ret = state.buffer.shift();
- else if (!n || n >= state.length) {
- if (state.decoder) ret = state.buffer.join("");
- else if (state.buffer.length === 1) ret = state.buffer.first();
- else ret = state.buffer.concat(state.length);
- state.buffer.clear();
- } else {
- ret = state.buffer.consume(n, state.decoder);
- }
- return ret;
- }
- function endReadable(stream) {
- const state = stream._readableState;
- __DEBUG__ && debug("endEmitted @ endReadable", state.endEmitted, stream.__id);
- if (!state.endEmitted) {
- state.ended = true;
- runOnNextTick(endReadableNT, state, stream);
- }
- }
- function endReadableNT(state, stream) {
- __DEBUG__ && debug("endReadableNT -- endEmitted, state.length", state.endEmitted, state.length, stream.__id);
- if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.emit("end");
- __DEBUG__ && debug("end emitted @ endReadableNT", stream.__id);
- if (stream.writable && stream.allowHalfOpen === false) {
- runOnNextTick(endWritableNT, stream);
- } else if (state.autoDestroy) {
- const wState = stream._writableState;
- const autoDestroy = !wState || (wState.autoDestroy && (wState.finished || wState.writable === false));
- if (autoDestroy) {
- stream.destroy();
- }
- }
- }
- }
- function endWritableNT(stream) {
- const writable = stream.writable && !stream.writableEnded && !stream.destroyed;
- if (writable) {
- stream.end();
- }
- }
- Readable.from = function (iterable, opts) {
- return from(Readable, iterable, opts);
- };
- var webStreamsAdapters = {
- newStreamReadableFromReadableStream,
- };
- function lazyWebStreams() {
- if (webStreamsAdapters === void 0) webStreamsAdapters = {};
- return webStreamsAdapters;
- }
- Readable.fromWeb = function (readableStream, options) {
- return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options);
- };
- Readable.toWeb = function (streamReadable) {
- return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable);
- };
- Readable.wrap = function (src, options) {
- var _ref, _src$readableObjectMo;
- return new Readable({
- objectMode:
- (_ref =
- (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== void 0
- ? _src$readableObjectMo
- : src.objectMode) !== null && _ref !== void 0
- ? _ref
- : true,
- ...options,
- destroy(err, callback) {
- destroyImpl.destroyer(src, err);
- callback(err);
- },
- }).wrap(src);
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/writable.js
-var require_writable = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/writable.js"(exports, module) {
- "use strict";
- var {
- ArrayPrototypeSlice,
- Error: Error2,
- FunctionPrototypeSymbolHasInstance,
- ObjectDefineProperty,
- ObjectDefineProperties,
- ObjectSetPrototypeOf,
- StringPrototypeToLowerCase,
- Symbol: Symbol2,
- SymbolHasInstance,
- } = require_primordials();
-
- var { EventEmitter: EE } = __require("bun:events_native");
- var Stream = require_legacy().Stream;
- var destroyImpl = require_destroy();
- var { addAbortSignal } = require_add_abort_signal();
- var { getHighWaterMark, getDefaultHighWaterMark } = require_state();
- var {
- ERR_INVALID_ARG_TYPE,
- ERR_METHOD_NOT_IMPLEMENTED,
- ERR_MULTIPLE_CALLBACK,
- ERR_STREAM_CANNOT_PIPE,
- ERR_STREAM_DESTROYED,
- ERR_STREAM_ALREADY_FINISHED,
- ERR_STREAM_NULL_VALUES,
- ERR_STREAM_WRITE_AFTER_END,
- ERR_UNKNOWN_ENCODING,
- } = require_errors().codes;
- var { errorOrDestroy } = destroyImpl;
-
- function Writable(options = {}) {
- const isDuplex = this instanceof require_duplex();
- if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options);
- this._writableState = new WritableState(options, this, isDuplex);
- if (options) {
- if (typeof options.write === "function") this._write = options.write;
- if (typeof options.writev === "function") this._writev = options.writev;
- if (typeof options.destroy === "function") this._destroy = options.destroy;
- if (typeof options.final === "function") this._final = options.final;
- if (typeof options.construct === "function") this._construct = options.construct;
- if (options.signal) addAbortSignal(options.signal, this);
- }
- Stream.call(this, options);
-
- destroyImpl.construct(this, () => {
- const state = this._writableState;
- if (!state.writing) {
- clearBuffer(this, state);
- }
- finishMaybe(this, state);
- });
- }
- ObjectSetPrototypeOf(Writable.prototype, Stream.prototype);
- ObjectSetPrototypeOf(Writable, Stream);
- module.exports = Writable;
-
- function nop() {}
- var kOnFinished = Symbol2("kOnFinished");
- function WritableState(options, stream, isDuplex) {
- if (typeof isDuplex !== "boolean") isDuplex = stream instanceof require_duplex();
- this.objectMode = !!(options && options.objectMode);
- if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode);
- this.highWaterMark = options
- ? getHighWaterMark(this, options, "writableHighWaterMark", isDuplex)
- : getDefaultHighWaterMark(false);
- this.finalCalled = false;
- this.needDrain = false;
- this.ending = false;
- this.ended = false;
- this.finished = false;
- this.destroyed = false;
- const noDecode = !!(options && options.decodeStrings === false);
- this.decodeStrings = !noDecode;
- this.defaultEncoding = (options && options.defaultEncoding) || "utf8";
- this.length = 0;
- this.writing = false;
- this.corked = 0;
- this.sync = true;
- this.bufferProcessing = false;
- this.onwrite = onwrite.bind(void 0, stream);
- this.writecb = null;
- this.writelen = 0;
- this.afterWriteTickInfo = null;
- resetBuffer(this);
- this.pendingcb = 0;
- this.constructed = true;
- this.prefinished = false;
- this.errorEmitted = false;
- this.emitClose = !options || options.emitClose !== false;
- this.autoDestroy = !options || options.autoDestroy !== false;
- this.errored = null;
- this.closed = false;
- this.closeEmitted = false;
- this[kOnFinished] = [];
- }
- function resetBuffer(state) {
- state.buffered = [];
- state.bufferedIndex = 0;
- state.allBuffers = true;
- state.allNoop = true;
- }
- WritableState.prototype.getBuffer = function getBuffer() {
- return ArrayPrototypeSlice(this.buffered, this.bufferedIndex);
- };
- ObjectDefineProperty(WritableState.prototype, "bufferedRequestCount", {
- get() {
- return this.buffered.length - this.bufferedIndex;
- },
- });
-
- ObjectDefineProperty(Writable, SymbolHasInstance, {
- value: function (object) {
- if (FunctionPrototypeSymbolHasInstance(this, object)) return true;
- if (this !== Writable) return false;
- return object && object._writableState instanceof WritableState;
- },
- });
- Writable.prototype.pipe = function () {
- errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());
- };
- function _write(stream, chunk, encoding, cb) {
- const state = stream._writableState;
- if (typeof encoding === "function") {
- cb = encoding;
- encoding = state.defaultEncoding;
- } else {
- if (!encoding) encoding = state.defaultEncoding;
- else if (encoding !== "buffer" && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding);
- if (typeof cb !== "function") cb = nop;
- }
- if (chunk === null) {
- throw new ERR_STREAM_NULL_VALUES();
- } else if (!state.objectMode) {
- if (typeof chunk === "string") {
- if (state.decodeStrings !== false) {
- chunk = Buffer.from(chunk, encoding);
- encoding = "buffer";
- }
- } else if (chunk instanceof Buffer) {
- encoding = "buffer";
- } else if (Stream._isUint8Array(chunk)) {
- chunk = Stream._uint8ArrayToBuffer(chunk);
- encoding = "buffer";
- } else {
- throw new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);
- }
- }
- let err;
- if (state.ending) {
- err = new ERR_STREAM_WRITE_AFTER_END();
- } else if (state.destroyed) {
- err = new ERR_STREAM_DESTROYED("write");
- }
- if (err) {
- runOnNextTick(cb, err);
- errorOrDestroy(stream, err, true);
- return err;
- }
- state.pendingcb++;
- return writeOrBuffer(stream, state, chunk, encoding, cb);
- }
- Writable.prototype.write = function (chunk, encoding, cb) {
- return _write(this, chunk, encoding, cb) === true;
- };
- Writable.prototype.cork = function () {
- this._writableState.corked++;
- };
- Writable.prototype.uncork = function () {
- const state = this._writableState;
- if (state.corked) {
- state.corked--;
- if (!state.writing) clearBuffer(this, state);
- }
- };
- Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- if (typeof encoding === "string") encoding = StringPrototypeToLowerCase(encoding);
- if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding);
- this._writableState.defaultEncoding = encoding;
- return this;
- };
- function writeOrBuffer(stream, state, chunk, encoding, callback) {
- const len = state.objectMode ? 1 : chunk.length;
- state.length += len;
- const ret = state.length < state.highWaterMark;
- if (!ret) state.needDrain = true;
- if (state.writing || state.corked || state.errored || !state.constructed) {
- state.buffered.push({
- chunk,
- encoding,
- callback,
- });
- if (state.allBuffers && encoding !== "buffer") {
- state.allBuffers = false;
- }
- if (state.allNoop && callback !== nop) {
- state.allNoop = false;
- }
- } else {
- state.writelen = len;
- state.writecb = callback;
- state.writing = true;
- state.sync = true;
- stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
- }
- return ret && !state.errored && !state.destroyed;
- }
- function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED("write"));
- else if (writev) stream._writev(chunk, state.onwrite);
- else stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
- }
- function onwriteError(stream, state, er, cb) {
- --state.pendingcb;
- cb(er);
- errorBuffer(state);
- errorOrDestroy(stream, er);
- }
- function onwrite(stream, er) {
- const state = stream._writableState;
- const sync = state.sync;
- const cb = state.writecb;
- if (typeof cb !== "function") {
- errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK());
- return;
- }
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
- if (er) {
- Error.captureStackTrace(er);
- if (!state.errored) {
- state.errored = er;
- }
- if (stream._readableState && !stream._readableState.errored) {
- stream._readableState.errored = er;
- }
- if (sync) {
- runOnNextTick(onwriteError, stream, state, er, cb);
- } else {
- onwriteError(stream, state, er, cb);
- }
- } else {
- if (state.buffered.length > state.bufferedIndex) {
- clearBuffer(stream, state);
- }
- if (sync) {
- if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {
- state.afterWriteTickInfo.count++;
- } else {
- state.afterWriteTickInfo = {
- count: 1,
- cb,
- stream,
- state,
- };
- runOnNextTick(afterWriteTick, state.afterWriteTickInfo);
- }
- } else {
- afterWrite(stream, state, 1, cb);
- }
- }
- }
- function afterWriteTick({ stream, state, count, cb }) {
- state.afterWriteTickInfo = null;
- return afterWrite(stream, state, count, cb);
- }
- function afterWrite(stream, state, count, cb) {
- const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain;
- if (needDrain) {
- state.needDrain = false;
- stream.emit("drain");
- }
- while (count-- > 0) {
- state.pendingcb--;
- cb();
- }
- if (state.destroyed) {
- errorBuffer(state);
- }
- finishMaybe(stream, state);
- }
- function errorBuffer(state) {
- if (state.writing) {
- return;
- }
- for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {
- var _state$errored;
- const { chunk, callback } = state.buffered[n];
- const len = state.objectMode ? 1 : chunk.length;
- state.length -= len;
- callback(
- (_state$errored = state.errored) !== null && _state$errored !== void 0
- ? _state$errored
- : new ERR_STREAM_DESTROYED("write"),
- );
- }
- const onfinishCallbacks = state[kOnFinished].splice(0);
- for (let i = 0; i < onfinishCallbacks.length; i++) {
- var _state$errored2;
- onfinishCallbacks[i](
- (_state$errored2 = state.errored) !== null && _state$errored2 !== void 0
- ? _state$errored2
- : new ERR_STREAM_DESTROYED("end"),
- );
- }
- resetBuffer(state);
- }
- function clearBuffer(stream, state) {
- if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {
- return;
- }
- const { buffered, bufferedIndex, objectMode } = state;
- const bufferedLength = buffered.length - bufferedIndex;
- if (!bufferedLength) {
- return;
- }
- let i = bufferedIndex;
- state.bufferProcessing = true;
- if (bufferedLength > 1 && stream._writev) {
- state.pendingcb -= bufferedLength - 1;
- const callback = state.allNoop
- ? nop
- : err => {
- for (let n = i; n < buffered.length; ++n) {
- buffered[n].callback(err);
- }
- };
- const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i);
- chunks.allBuffers = state.allBuffers;
- doWrite(stream, state, true, state.length, chunks, "", callback);
- resetBuffer(state);
- } else {
- do {
- const { chunk, encoding, callback } = buffered[i];
- buffered[i++] = null;
- const len = objectMode ? 1 : chunk.length;
- doWrite(stream, state, false, len, chunk, encoding, callback);
- } while (i < buffered.length && !state.writing);
- if (i === buffered.length) {
- resetBuffer(state);
- } else if (i > 256) {
- buffered.splice(0, i);
- state.bufferedIndex = 0;
- } else {
- state.bufferedIndex = i;
- }
- }
- state.bufferProcessing = false;
- }
- Writable.prototype._write = function (chunk, encoding, cb) {
- if (this._writev) {
- this._writev(
- [
- {
- chunk,
- encoding,
- },
- ],
- cb,
- );
- } else {
- throw new ERR_METHOD_NOT_IMPLEMENTED("_write()");
- }
- };
- Writable.prototype._writev = null;
- Writable.prototype.end = function (chunk, encoding, cb, native = false) {
- const state = this._writableState;
- __DEBUG__ && debug("end", state, this.__id);
- if (typeof chunk === "function") {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === "function") {
- cb = encoding;
- encoding = null;
- }
- let err;
- if (chunk !== null && chunk !== void 0) {
- let ret;
- if (!native) {
- ret = _write(this, chunk, encoding);
- } else {
- ret = this.write(chunk, encoding);
- }
- if (ret instanceof Error2) {
- err = ret;
- }
- }
- if (state.corked) {
- state.corked = 1;
- this.uncork();
- }
- if (err) {
- this.emit("error", err);
- } else if (!state.errored && !state.ending) {
- state.ending = true;
- finishMaybe(this, state, true);
- state.ended = true;
- } else if (state.finished) {
- err = new ERR_STREAM_ALREADY_FINISHED("end");
- } else if (state.destroyed) {
- err = new ERR_STREAM_DESTROYED("end");
- }
- if (typeof cb === "function") {
- if (err || state.finished) {
- runOnNextTick(cb, err);
- } else {
- state[kOnFinished].push(cb);
- }
- }
- return this;
- };
- function needFinish(state, tag) {
- var needFinish =
- state.ending &&
- !state.destroyed &&
- state.constructed &&
- state.length === 0 &&
- !state.errored &&
- state.buffered.length === 0 &&
- !state.finished &&
- !state.writing &&
- !state.errorEmitted &&
- !state.closeEmitted;
- debug("needFinish", needFinish, tag);
- return needFinish;
- }
- function callFinal(stream, state) {
- let called = false;
- function onFinish(err) {
- if (called) {
- errorOrDestroy(stream, err !== null && err !== void 0 ? err : ERR_MULTIPLE_CALLBACK());
- return;
- }
- called = true;
- state.pendingcb--;
- if (err) {
- const onfinishCallbacks = state[kOnFinished].splice(0);
- for (let i = 0; i < onfinishCallbacks.length; i++) {
- onfinishCallbacks[i](err);
- }
- errorOrDestroy(stream, err, state.sync);
- } else if (needFinish(state)) {
- state.prefinished = true;
- stream.emit("prefinish");
- state.pendingcb++;
- runOnNextTick(finish, stream, state);
- }
- }
- state.sync = true;
- state.pendingcb++;
- try {
- stream._final(onFinish);
- } catch (err) {
- onFinish(err);
- }
- state.sync = false;
- }
- function prefinish(stream, state) {
- if (!state.prefinished && !state.finalCalled) {
- if (typeof stream._final === "function" && !state.destroyed) {
- state.finalCalled = true;
- callFinal(stream, state);
- } else {
- state.prefinished = true;
- stream.emit("prefinish");
- }
- }
- }
- function finishMaybe(stream, state, sync) {
- __DEBUG__ && debug("finishMaybe -- state, sync", state, sync, stream.__id);
-
- if (!needFinish(state, stream.__id)) return;
-
- prefinish(stream, state);
- if (state.pendingcb === 0) {
- if (sync) {
- state.pendingcb++;
- runOnNextTick(
- (stream2, state2) => {
- if (needFinish(state2)) {
- finish(stream2, state2);
- } else {
- state2.pendingcb--;
- }
- },
- stream,
- state,
- );
- } else if (needFinish(state)) {
- state.pendingcb++;
- finish(stream, state);
- }
- }
- }
- function finish(stream, state) {
- state.pendingcb--;
- state.finished = true;
- const onfinishCallbacks = state[kOnFinished].splice(0);
- for (let i = 0; i < onfinishCallbacks.length; i++) {
- onfinishCallbacks[i]();
- }
- stream.emit("finish");
- if (state.autoDestroy) {
- const rState = stream._readableState;
- const autoDestroy = !rState || (rState.autoDestroy && (rState.endEmitted || rState.readable === false));
- if (autoDestroy) {
- stream.destroy();
- }
- }
- }
- ObjectDefineProperties(Writable.prototype, {
- closed: {
- get() {
- return this._writableState ? this._writableState.closed : false;
- },
- },
- destroyed: {
- get() {
- return this._writableState ? this._writableState.destroyed : false;
- },
- set(value) {
- if (this._writableState) {
- this._writableState.destroyed = value;
- }
- },
- },
- writable: {
- get() {
- const w = this._writableState;
- return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended;
- },
- set(val) {
- if (this._writableState) {
- this._writableState.writable = !!val;
- }
- },
- },
- writableFinished: {
- get() {
- return this._writableState ? this._writableState.finished : false;
- },
- },
- writableObjectMode: {
- get() {
- return this._writableState ? this._writableState.objectMode : false;
- },
- },
- writableBuffer: {
- get() {
- return this._writableState && this._writableState.getBuffer();
- },
- },
- writableEnded: {
- get() {
- return this._writableState ? this._writableState.ending : false;
- },
- },
- writableNeedDrain: {
- get() {
- const wState = this._writableState;
- if (!wState) return false;
- return !wState.destroyed && !wState.ending && wState.needDrain;
- },
- },
- writableHighWaterMark: {
- get() {
- return this._writableState && this._writableState.highWaterMark;
- },
- },
- writableCorked: {
- get() {
- return this._writableState ? this._writableState.corked : 0;
- },
- },
- writableLength: {
- get() {
- return this._writableState && this._writableState.length;
- },
- },
- errored: {
- enumerable: false,
- get() {
- return this._writableState ? this._writableState.errored : null;
- },
- },
- writableAborted: {
- enumerable: false,
- get: function () {
- return !!(
- this._writableState.writable !== false &&
- (this._writableState.destroyed || this._writableState.errored) &&
- !this._writableState.finished
- );
- },
- },
- });
- var destroy = destroyImpl.destroy;
- Writable.prototype.destroy = function (err, cb) {
- const state = this._writableState;
- if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {
- runOnNextTick(errorBuffer, state);
- }
- destroy.call(this, err, cb);
- return this;
- };
- Writable.prototype._undestroy = destroyImpl.undestroy;
- Writable.prototype._destroy = function (err, cb) {
- cb(err);
- };
- Writable.prototype[EE.captureRejectionSymbol] = function (err) {
- this.destroy(err);
- };
- var webStreamsAdapters;
- function lazyWebStreams() {
- if (webStreamsAdapters === void 0) webStreamsAdapters = {};
- return webStreamsAdapters;
- }
- Writable.fromWeb = function (writableStream, options) {
- return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options);
- };
- Writable.toWeb = function (streamWritable) {
- return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable);
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/duplexify.js
-var require_duplexify = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/duplexify.js"(exports, module) {
- "use strict";
- var bufferModule = __require("buffer");
- var {
- isReadable,
- isWritable,
- isIterable,
- isNodeStream,
- isReadableNodeStream,
- isWritableNodeStream,
- isDuplexNodeStream,
- } = require_utils();
- var eos = require_end_of_stream();
- var {
- AbortError,
- codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE },
- } = require_errors();
- var { destroyer } = require_destroy();
- var Duplex = require_duplex();
- var Readable = require_readable();
- var { createDeferredPromise } = require_util();
- var from = require_from();
- var Blob = globalThis.Blob || bufferModule.Blob;
- var isBlob =
- typeof Blob !== "undefined"
- ? function isBlob2(b) {
- return b instanceof Blob;
- }
- : function isBlob2(b) {
- return false;
- };
- var AbortController = globalThis.AbortController || __require("abort-controller").AbortController;
- var { FunctionPrototypeCall } = require_primordials();
- class Duplexify extends Duplex {
- constructor(options) {
- super(options);
-
- // https://github.com/nodejs/node/pull/34385
-
- if ((options === null || options === undefined ? undefined : options.readable) === false) {
- this._readableState.readable = false;
- this._readableState.ended = true;
- this._readableState.endEmitted = true;
- }
- if ((options === null || options === undefined ? undefined : options.writable) === false) {
- this._writableState.writable = false;
- this._writableState.ending = true;
- this._writableState.ended = true;
- this._writableState.finished = true;
- }
- }
- }
- module.exports = function duplexify(body, name) {
- if (isDuplexNodeStream(body)) {
- return body;
- }
- if (isReadableNodeStream(body)) {
- return _duplexify({
- readable: body,
- });
- }
- if (isWritableNodeStream(body)) {
- return _duplexify({
- writable: body,
- });
- }
- if (isNodeStream(body)) {
- return _duplexify({
- writable: false,
- readable: false,
- });
- }
- if (typeof body === "function") {
- const { value, write, final, destroy } = fromAsyncGen(body);
- if (isIterable(value)) {
- return from(Duplexify, value, {
- objectMode: true,
- write,
- final,
- destroy,
- });
- }
- const then2 = value === null || value === void 0 ? void 0 : value.then;
- if (typeof then2 === "function") {
- let d;
- const promise = FunctionPrototypeCall(
- then2,
- value,
- val => {
- if (val != null) {
- throw new ERR_INVALID_RETURN_VALUE("nully", "body", val);
- }
- },
- err => {
- destroyer(d, err);
- },
- );
- return (d = new Duplexify({
- objectMode: true,
- readable: false,
- write,
- final(cb) {
- final(async () => {
- try {
- await promise;
- runOnNextTick(cb, null);
- } catch (err) {
- runOnNextTick(cb, err);
- }
- });
- },
- destroy,
- }));
- }
- throw new ERR_INVALID_RETURN_VALUE("Iterable, AsyncIterable or AsyncFunction", name, value);
- }
- if (isBlob(body)) {
- return duplexify(body.arrayBuffer());
- }
- if (isIterable(body)) {
- return from(Duplexify, body, {
- objectMode: true,
- writable: false,
- });
- }
- if (
- typeof (body === null || body === void 0 ? void 0 : body.writable) === "object" ||
- typeof (body === null || body === void 0 ? void 0 : body.readable) === "object"
- ) {
- const readable =
- body !== null && body !== void 0 && body.readable
- ? isReadableNodeStream(body === null || body === void 0 ? void 0 : body.readable)
- ? body === null || body === void 0
- ? void 0
- : body.readable
- : duplexify(body.readable)
- : void 0;
- const writable =
- body !== null && body !== void 0 && body.writable
- ? isWritableNodeStream(body === null || body === void 0 ? void 0 : body.writable)
- ? body === null || body === void 0
- ? void 0
- : body.writable
- : duplexify(body.writable)
- : void 0;
- return _duplexify({
- readable,
- writable,
- });
- }
- const then = body === null || body === void 0 ? void 0 : body.then;
- if (typeof then === "function") {
- let d;
- FunctionPrototypeCall(
- then,
- body,
- val => {
- if (val != null) {
- d.push(val);
- }
- d.push(null);
- },
- err => {
- destroyer(d, err);
- },
- );
- return (d = new Duplexify({
- objectMode: true,
- writable: false,
- read() {},
- }));
- }
- throw new ERR_INVALID_ARG_TYPE(
- name,
- [
- "Blob",
- "ReadableStream",
- "WritableStream",
- "Stream",
- "Iterable",
- "AsyncIterable",
- "Function",
- "{ readable, writable } pair",
- "Promise",
- ],
- body,
- );
- };
- function fromAsyncGen(fn) {
- let { promise, resolve } = createDeferredPromise();
- const ac = new AbortController();
- const signal = ac.signal;
- const value = fn(
- (async function* () {
- while (true) {
- const _promise = promise;
- promise = null;
- const { chunk, done, cb } = await _promise;
- runOnNextTick(cb);
- if (done) return;
- if (signal.aborted)
- throw new AbortError(void 0, {
- cause: signal.reason,
- });
- ({ promise, resolve } = createDeferredPromise());
- yield chunk;
- }
- })(),
- {
- signal,
- },
- );
- return {
- value,
- write(chunk, encoding, cb) {
- const _resolve = resolve;
- resolve = null;
- _resolve({
- chunk,
- done: false,
- cb,
- });
- },
- final(cb) {
- const _resolve = resolve;
- resolve = null;
- _resolve({
- done: true,
- cb,
- });
- },
- destroy(err, cb) {
- ac.abort();
- cb(err);
- },
- };
- }
- function _duplexify(pair) {
- const r =
- pair.readable && typeof pair.readable.read !== "function" ? Readable.wrap(pair.readable) : pair.readable;
- const w = pair.writable;
- let readable = !!isReadable(r);
- let writable = !!isWritable(w);
- let ondrain;
- let onfinish;
- let onreadable;
- let onclose;
- let d;
- function onfinished(err) {
- const cb = onclose;
- onclose = null;
- if (cb) {
- cb(err);
- } else if (err) {
- d.destroy(err);
- } else if (!readable && !writable) {
- d.destroy();
- }
- }
- d = new Duplexify({
- readableObjectMode: !!(r !== null && r !== void 0 && r.readableObjectMode),
- writableObjectMode: !!(w !== null && w !== void 0 && w.writableObjectMode),
- readable,
- writable,
- });
- if (writable) {
- eos(w, err => {
- writable = false;
- if (err) {
- destroyer(r, err);
- }
- onfinished(err);
- });
- d._write = function (chunk, encoding, callback) {
- if (w.write(chunk, encoding)) {
- callback();
- } else {
- ondrain = callback;
- }
- };
- d._final = function (callback) {
- w.end();
- onfinish = callback;
- };
- w.on("drain", function () {
- if (ondrain) {
- const cb = ondrain;
- ondrain = null;
- cb();
- }
- });
- w.on("finish", function () {
- if (onfinish) {
- const cb = onfinish;
- onfinish = null;
- cb();
- }
- });
- }
- if (readable) {
- eos(r, err => {
- readable = false;
- if (err) {
- destroyer(r, err);
- }
- onfinished(err);
- });
- r.on("readable", function () {
- if (onreadable) {
- const cb = onreadable;
- onreadable = null;
- cb();
- }
- });
- r.on("end", function () {
- d.push(null);
- });
- d._read = function () {
- while (true) {
- const buf = r.read();
- if (buf === null) {
- onreadable = d._read;
- return;
- }
- if (!d.push(buf)) {
- return;
- }
- }
- };
- }
- d._destroy = function (err, callback) {
- if (!err && onclose !== null) {
- err = new AbortError();
- }
- onreadable = null;
- ondrain = null;
- onfinish = null;
- if (onclose === null) {
- callback(err);
- } else {
- onclose = callback;
- destroyer(w, err);
- destroyer(r, err);
- }
- };
- return d;
- }
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/duplex.js
-var require_duplex = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/duplex.js"(exports, module) {
- "use strict";
- var { ObjectDefineProperties, ObjectGetOwnPropertyDescriptor, ObjectKeys, ObjectSetPrototypeOf } =
- require_primordials();
-
- var Readable = require_readable();
-
- function Duplex(options) {
- if (!(this instanceof Duplex)) return new Duplex(options);
- Readable.call(this, options);
- Writable.call(this, options);
-
- if (options) {
- this.allowHalfOpen = options.allowHalfOpen !== false;
- if (options.readable === false) {
- this._readableState.readable = false;
- this._readableState.ended = true;
- this._readableState.endEmitted = true;
- }
- if (options.writable === false) {
- this._writableState.writable = false;
- this._writableState.ending = true;
- this._writableState.ended = true;
- this._writableState.finished = true;
- }
- } else {
- this.allowHalfOpen = true;
- }
- }
- module.exports = Duplex;
-
- ObjectSetPrototypeOf(Duplex.prototype, Readable.prototype);
- ObjectSetPrototypeOf(Duplex, Readable);
-
- {
- for (var method in Writable.prototype) {
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
- }
- }
-
- ObjectDefineProperties(Duplex.prototype, {
- writable: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writable"),
- writableHighWaterMark: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableHighWaterMark"),
- writableObjectMode: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableObjectMode"),
- writableBuffer: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableBuffer"),
- writableLength: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableLength"),
- writableFinished: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableFinished"),
- writableCorked: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableCorked"),
- writableEnded: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableEnded"),
- writableNeedDrain: ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableNeedDrain"),
- destroyed: {
- get() {
- if (this._readableState === void 0 || this._writableState === void 0) {
- return false;
- }
- return this._readableState.destroyed && this._writableState.destroyed;
- },
- set(value) {
- if (this._readableState && this._writableState) {
- this._readableState.destroyed = value;
- this._writableState.destroyed = value;
- }
- },
- },
- });
- var webStreamsAdapters;
- function lazyWebStreams() {
- if (webStreamsAdapters === void 0) webStreamsAdapters = {};
- return webStreamsAdapters;
- }
- Duplex.fromWeb = function (pair, options) {
- return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options);
- };
- Duplex.toWeb = function (duplex) {
- return lazyWebStreams().newReadableWritablePairFromDuplex(duplex);
- };
- var duplexify;
- Duplex.from = function (body) {
- if (!duplexify) {
- duplexify = require_duplexify();
- }
- return duplexify(body, "body");
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/transform.js
-var require_transform = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/transform.js"(exports, module) {
- "use strict";
- var { ObjectSetPrototypeOf, Symbol: Symbol2 } = require_primordials();
- var { ERR_METHOD_NOT_IMPLEMENTED } = require_errors().codes;
- var Duplex = require_duplex();
- function Transform(options) {
- if (!(this instanceof Transform)) return new Transform(options);
- Duplex.call(this, options);
-
- this._readableState.sync = false;
- this[kCallback] = null;
-
- if (options) {
- if (typeof options.transform === "function") this._transform = options.transform;
- if (typeof options.flush === "function") this._flush = options.flush;
- }
-
- this.on("prefinish", prefinish.bind(this));
- }
- ObjectSetPrototypeOf(Transform.prototype, Duplex.prototype);
- ObjectSetPrototypeOf(Transform, Duplex);
-
- module.exports = Transform;
- var kCallback = Symbol2("kCallback");
- function final(cb) {
- if (typeof this._flush === "function" && !this.destroyed) {
- this._flush((er, data) => {
- if (er) {
- if (cb) {
- cb(er);
- } else {
- this.destroy(er);
- }
- return;
- }
- if (data != null) {
- this.push(data);
- }
- this.push(null);
- if (cb) {
- cb();
- }
- });
- } else {
- this.push(null);
- if (cb) {
- cb();
- }
- }
- }
- function prefinish() {
- if (this._final !== final) {
- final.call(this);
- }
- }
- Transform.prototype._final = final;
- Transform.prototype._transform = function (chunk, encoding, callback) {
- throw new ERR_METHOD_NOT_IMPLEMENTED("_transform()");
- };
- Transform.prototype._write = function (chunk, encoding, callback) {
- const rState = this._readableState;
- const wState = this._writableState;
- const length = rState.length;
- this._transform(chunk, encoding, (err, val) => {
- if (err) {
- callback(err);
- return;
- }
- if (val != null) {
- this.push(val);
- }
- if (
- wState.ended ||
- length === rState.length ||
- rState.length < rState.highWaterMark ||
- rState.highWaterMark === 0 ||
- rState.length === 0
- ) {
- callback();
- } else {
- this[kCallback] = callback;
- }
- });
- };
- Transform.prototype._read = function () {
- if (this[kCallback]) {
- const callback = this[kCallback];
- this[kCallback] = null;
- callback();
- }
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/passthrough.js
-var require_passthrough = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/passthrough.js"(exports, module) {
- "use strict";
- var { ObjectSetPrototypeOf } = require_primordials();
- var Transform = require_transform();
-
- function PassThrough(options) {
- if (!(this instanceof PassThrough)) return new PassThrough(options);
- Transform.call(this, options);
- }
-
- ObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype);
- ObjectSetPrototypeOf(PassThrough, Transform);
-
- PassThrough.prototype._transform = function (chunk, encoding, cb) {
- cb(null, chunk);
- };
-
- module.exports = PassThrough;
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/pipeline.js
-var require_pipeline = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {
- "use strict";
- var { ArrayIsArray, Promise: Promise2, SymbolAsyncIterator } = require_primordials();
- var eos = require_end_of_stream();
- var { once } = require_util();
- var destroyImpl = require_destroy();
- var Duplex = require_duplex();
- var {
- aggregateTwoErrors,
- codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE, ERR_MISSING_ARGS, ERR_STREAM_DESTROYED },
- AbortError,
- } = require_errors();
- var { validateFunction, validateAbortSignal } = require_validators();
- var { isIterable, isReadable, isReadableNodeStream, isNodeStream } = require_utils();
- var AbortController = globalThis.AbortController || __require("abort-controller").AbortController;
- var PassThrough;
- var Readable;
- function destroyer(stream, reading, writing) {
- let finished = false;
- stream.on("close", () => {
- finished = true;
- });
- const cleanup = eos(
- stream,
- {
- readable: reading,
- writable: writing,
- },
- err => {
- finished = !err;
- },
- );
- return {
- destroy: err => {
- if (finished) return;
- finished = true;
- destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED("pipe"));
- },
- cleanup,
- };
- }
- function popCallback(streams) {
- validateFunction(streams[streams.length - 1], "streams[stream.length - 1]");
- return streams.pop();
- }
- function makeAsyncIterable(val) {
- if (isIterable(val)) {
- return val;
- } else if (isReadableNodeStream(val)) {
- return fromReadable(val);
- }
- throw new ERR_INVALID_ARG_TYPE("val", ["Readable", "Iterable", "AsyncIterable"], val);
- }
- async function* fromReadable(val) {
- if (!Readable) {
- Readable = require_readable();
- }
- yield* Readable.prototype[SymbolAsyncIterator].call(val);
- }
- async function pump(iterable, writable, finish, { end }) {
- let error;
- let onresolve = null;
- const resume = err => {
- if (err) {
- error = err;
- }
- if (onresolve) {
- const callback = onresolve;
- onresolve = null;
- callback();
- }
- };
- const wait = () =>
- new Promise2((resolve, reject) => {
- if (error) {
- reject(error);
- } else {
- onresolve = () => {
- if (error) {
- reject(error);
- } else {
- resolve();
- }
- };
- }
- });
- writable.on("drain", resume);
- const cleanup = eos(
- writable,
- {
- readable: false,
- },
- resume,
- );
- try {
- if (writable.writableNeedDrain) {
- await wait();
- }
- for await (const chunk of iterable) {
- if (!writable.write(chunk)) {
- await wait();
- }
- }
- if (end) {
- writable.end();
- }
- await wait();
- finish();
- } catch (err) {
- finish(error !== err ? aggregateTwoErrors(error, err) : err);
- } finally {
- cleanup();
- writable.off("drain", resume);
- }
- }
- function pipeline(...streams) {
- return pipelineImpl(streams, once(popCallback(streams)));
- }
- function pipelineImpl(streams, callback, opts) {
- if (streams.length === 1 && ArrayIsArray(streams[0])) {
- streams = streams[0];
- }
- if (streams.length < 2) {
- throw new ERR_MISSING_ARGS("streams");
- }
- const ac = new AbortController();
- const signal = ac.signal;
- const outerSignal = opts === null || opts === void 0 ? void 0 : opts.signal;
- const lastStreamCleanup = [];
- validateAbortSignal(outerSignal, "options.signal");
- function abort() {
- finishImpl(new AbortError());
- }
- outerSignal === null || outerSignal === void 0 ? void 0 : outerSignal.addEventListener("abort", abort);
- let error;
- let value;
- const destroys = [];
- let finishCount = 0;
- function finish(err) {
- finishImpl(err, --finishCount === 0);
- }
- function finishImpl(err, final) {
- if (err && (!error || error.code === "ERR_STREAM_PREMATURE_CLOSE")) {
- error = err;
- }
- if (!error && !final) {
- return;
- }
- while (destroys.length) {
- destroys.shift()(error);
- }
- outerSignal === null || outerSignal === void 0 ? void 0 : outerSignal.removeEventListener("abort", abort);
- ac.abort();
- if (final) {
- if (!error) {
- lastStreamCleanup.forEach(fn => fn());
- }
- runOnNextTick(callback, error, value);
- }
- }
- let ret;
- for (let i = 0; i < streams.length; i++) {
- const stream = streams[i];
- const reading = i < streams.length - 1;
- const writing = i > 0;
- const end = reading || (opts === null || opts === void 0 ? void 0 : opts.end) !== false;
- const isLastStream = i === streams.length - 1;
- if (isNodeStream(stream)) {
- let onError = function (err) {
- if (err && err.name !== "AbortError" && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {
- finish(err);
- }
- };
- if (end) {
- const { destroy, cleanup } = destroyer(stream, reading, writing);
- destroys.push(destroy);
- if (isReadable(stream) && isLastStream) {
- lastStreamCleanup.push(cleanup);
- }
- }
- stream.on("error", onError);
- if (isReadable(stream) && isLastStream) {
- lastStreamCleanup.push(() => {
- stream.removeListener("error", onError);
- });
- }
- }
- if (i === 0) {
- if (typeof stream === "function") {
- ret = stream({
- signal,
- });
- if (!isIterable(ret)) {
- throw new ERR_INVALID_RETURN_VALUE("Iterable, AsyncIterable or Stream", "source", ret);
- }
- } else if (isIterable(stream) || isReadableNodeStream(stream)) {
- ret = stream;
- } else {
- ret = Duplex.from(stream);
- }
- } else if (typeof stream === "function") {
- ret = makeAsyncIterable(ret);
- ret = stream(ret, {
- signal,
- });
- if (reading) {
- if (!isIterable(ret, true)) {
- throw new ERR_INVALID_RETURN_VALUE("AsyncIterable", `transform[${i - 1}]`, ret);
- }
- } else {
- var _ret;
- if (!PassThrough) {
- PassThrough = require_passthrough();
- }
- const pt = new PassThrough({
- objectMode: true,
- });
- const then = (_ret = ret) === null || _ret === void 0 ? void 0 : _ret.then;
- if (typeof then === "function") {
- finishCount++;
- then.call(
- ret,
- val => {
- value = val;
- if (val != null) {
- pt.write(val);
- }
- if (end) {
- pt.end();
- }
- runOnNextTick(finish);
- },
- err => {
- pt.destroy(err);
- runOnNextTick(finish, err);
- },
- );
- } else if (isIterable(ret, true)) {
- finishCount++;
- pump(ret, pt, finish, {
- end,
- });
- } else {
- throw new ERR_INVALID_RETURN_VALUE("AsyncIterable or Promise", "destination", ret);
- }
- ret = pt;
- const { destroy, cleanup } = destroyer(ret, false, true);
- destroys.push(destroy);
- if (isLastStream) {
- lastStreamCleanup.push(cleanup);
- }
- }
- } else if (isNodeStream(stream)) {
- if (isReadableNodeStream(ret)) {
- finishCount += 2;
- const cleanup = pipe(ret, stream, finish, {
- end,
- });
- if (isReadable(stream) && isLastStream) {
- lastStreamCleanup.push(cleanup);
- }
- } else if (isIterable(ret)) {
- finishCount++;
- pump(ret, stream, finish, {
- end,
- });
- } else {
- throw new ERR_INVALID_ARG_TYPE("val", ["Readable", "Iterable", "AsyncIterable"], ret);
- }
- ret = stream;
- } else {
- ret = Duplex.from(stream);
- }
- }
- if (
- (signal !== null && signal !== void 0 && signal.aborted) ||
- (outerSignal !== null && outerSignal !== void 0 && outerSignal.aborted)
- ) {
- runOnNextTick(abort);
- }
- return ret;
- }
- function pipe(src, dst, finish, { end }) {
- src.pipe(dst, {
- end,
- });
- if (end) {
- src.once("end", () => dst.end());
- } else {
- finish();
- }
- eos(
- src,
- {
- readable: true,
- writable: false,
- },
- err => {
- const rState = src._readableState;
- if (
- err &&
- err.code === "ERR_STREAM_PREMATURE_CLOSE" &&
- rState &&
- rState.ended &&
- !rState.errored &&
- !rState.errorEmitted
- ) {
- src.once("end", finish).once("error", finish);
- } else {
- finish(err);
- }
- },
- );
- return eos(
- dst,
- {
- readable: false,
- writable: true,
- },
- finish,
- );
- }
- module.exports = {
- pipelineImpl,
- pipeline,
- };
- },
-});
-
-// node_modules/readable-stream/lib/internal/streams/compose.js
-var require_compose = __commonJS({
- "node_modules/readable-stream/lib/internal/streams/compose.js"(exports, module) {
- "use strict";
- var { pipeline } = require_pipeline();
- var Duplex = require_duplex();
- var { destroyer } = require_destroy();
- var { isNodeStream, isReadable, isWritable } = require_utils();
- var {
- AbortError,
- codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS },
- } = require_errors();
- module.exports = function compose(...streams) {
- if (streams.length === 0) {
- throw new ERR_MISSING_ARGS("streams");
- }
- if (streams.length === 1) {
- return Duplex.from(streams[0]);
- }
- const orgStreams = [...streams];
- if (typeof streams[0] === "function") {
- streams[0] = Duplex.from(streams[0]);
- }
- if (typeof streams[streams.length - 1] === "function") {
- const idx = streams.length - 1;
- streams[idx] = Duplex.from(streams[idx]);
- }
- for (let n = 0; n < streams.length; ++n) {
- if (!isNodeStream(streams[n])) {
- continue;
- }
- if (n < streams.length - 1 && !isReadable(streams[n])) {
- throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], "must be readable");
- }
- if (n > 0 && !isWritable(streams[n])) {
- throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], "must be writable");
- }
- }
- let ondrain;
- let onfinish;
- let onreadable;
- let onclose;
- let d;
- function onfinished(err) {
- const cb = onclose;
- onclose = null;
- if (cb) {
- cb(err);
- } else if (err) {
- d.destroy(err);
- } else if (!readable && !writable) {
- d.destroy();
- }
- }
- const head = streams[0];
- const tail = pipeline(streams, onfinished);
- const writable = !!isWritable(head);
- const readable = !!isReadable(tail);
- d = new Duplex({
- writableObjectMode: !!(head !== null && head !== void 0 && head.writableObjectMode),
- readableObjectMode: !!(tail !== null && tail !== void 0 && tail.writableObjectMode),
- writable,
- readable,
- });
- if (writable) {
- d._write = function (chunk, encoding, callback) {
- if (head.write(chunk, encoding)) {
- callback();
- } else {
- ondrain = callback;
- }
- };
- d._final = function (callback) {
- head.end();
- onfinish = callback;
- };
- head.on("drain", function () {
- if (ondrain) {
- const cb = ondrain;
- ondrain = null;
- cb();
- }
- });
- tail.on("finish", function () {
- if (onfinish) {
- const cb = onfinish;
- onfinish = null;
- cb();
- }
- });
- }
- if (readable) {
- tail.on("readable", function () {
- if (onreadable) {
- const cb = onreadable;
- onreadable = null;
- cb();
- }
- });
- tail.on("end", function () {
- d.push(null);
- });
- d._read = function () {
- while (true) {
- const buf = tail.read();
- if (buf === null) {
- onreadable = d._read;
- return;
- }
- if (!d.push(buf)) {
- return;
- }
- }
- };
- }
- d._destroy = function (err, callback) {
- if (!err && onclose !== null) {
- err = new AbortError();
- }
- onreadable = null;
- ondrain = null;
- onfinish = null;
- if (onclose === null) {
- callback(err);
- } else {
- onclose = callback;
- destroyer(tail, err);
- }
- };
- return d;
- };
- },
-});
-
-// node_modules/readable-stream/lib/stream/promises.js
-var require_promises = __commonJS({
- "node_modules/readable-stream/lib/stream/promises.js"(exports, module) {
- "use strict";
- var { ArrayPrototypePop, Promise: Promise2 } = require_primordials();
- var { isIterable, isNodeStream } = require_utils();
- var { pipelineImpl: pl } = require_pipeline();
- var { finished } = require_end_of_stream();
- function pipeline(...streams) {
- return new Promise2((resolve, reject) => {
- let signal;
- let end;
- const lastArg = streams[streams.length - 1];
- if (lastArg && typeof lastArg === "object" && !isNodeStream(lastArg) && !isIterable(lastArg)) {
- const options = ArrayPrototypePop(streams);
- signal = options.signal;
- end = options.end;
- }
- pl(
- streams,
- (err, value) => {
- if (err) {
- reject(err);
- } else {
- resolve(value);
- }
- },
- {
- signal,
- end,
- },
- );
- });
- }
- module.exports = {
- finished,
- pipeline,
- };
- },
-});
-// node_modules/readable-stream/lib/stream.js
-var require_stream = __commonJS({
- "node_modules/readable-stream/lib/stream.js"(exports, module) {
- "use strict";
- var { ObjectDefineProperty, ObjectKeys, ReflectApply } = require_primordials();
- var {
- promisify: { custom: customPromisify },
- } = require_util();
-
- var { streamReturningOperators, promiseReturningOperators } = require_operators();
- var {
- codes: { ERR_ILLEGAL_CONSTRUCTOR },
- } = require_errors();
- var compose = require_compose();
- var { pipeline } = require_pipeline();
- var { destroyer } = require_destroy();
- var eos = require_end_of_stream();
- var promises = require_promises();
- var utils = require_utils();
- var Stream = (module.exports = require_legacy().Stream);
- Stream.isDisturbed = utils.isDisturbed;
- Stream.isErrored = utils.isErrored;
- Stream.isWritable = utils.isWritable;
- Stream.isReadable = utils.isReadable;
- Stream.Readable = require_readable();
- for (const key of ObjectKeys(streamReturningOperators)) {
- let fn = function (...args) {
- if (new.target) {
- throw ERR_ILLEGAL_CONSTRUCTOR();
- }
- return Stream.Readable.from(ReflectApply(op, this, args));
- };
- const op = streamReturningOperators[key];
- ObjectDefineProperty(fn, "name", {
- value: op.name,
- });
- ObjectDefineProperty(fn, "length", {
- value: op.length,
- });
- ObjectDefineProperty(Stream.Readable.prototype, key, {
- value: fn,
- enumerable: false,
- configurable: true,
- writable: true,
- });
- }
- for (const key of ObjectKeys(promiseReturningOperators)) {
- let fn = function (...args) {
- if (new.target) {
- throw ERR_ILLEGAL_CONSTRUCTOR();
- }
- return ReflectApply(op, this, args);
- };
- const op = promiseReturningOperators[key];
- ObjectDefineProperty(fn, "name", {
- value: op.name,
- });
- ObjectDefineProperty(fn, "length", {
- value: op.length,
- });
- ObjectDefineProperty(Stream.Readable.prototype, key, {
- value: fn,
- enumerable: false,
- configurable: true,
- writable: true,
- });
- }
- Stream.Writable = require_writable();
- Stream.Duplex = require_duplex();
- Stream.Transform = require_transform();
- Stream.PassThrough = require_passthrough();
- Stream.pipeline = pipeline;
- var { addAbortSignal } = require_add_abort_signal();
- Stream.addAbortSignal = addAbortSignal;
- Stream.finished = eos;
- Stream.destroy = destroyer;
- Stream.compose = compose;
- ObjectDefineProperty(Stream, "promises", {
- configurable: true,
- enumerable: true,
- get() {
- return promises;
- },
- });
- ObjectDefineProperty(pipeline, customPromisify, {
- enumerable: true,
- get() {
- return promises.pipeline;
- },
- });
- ObjectDefineProperty(eos, customPromisify, {
- enumerable: true,
- get() {
- return promises.finished;
- },
- });
- Stream.Stream = Stream;
- Stream._isUint8Array = function isUint8Array(value) {
- return value instanceof Uint8Array;
- };
- Stream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {
- return new Buffer(chunk.buffer, chunk.byteOffset, chunk.byteLength);
- };
- },
-});
-
-// node_modules/readable-stream/lib/ours/index.js
-var require_ours = __commonJS({
- "node_modules/readable-stream/lib/ours/index.js"(exports, module) {
- "use strict";
- const CustomStream = require_stream();
- const promises = require_promises();
- const originalDestroy = CustomStream.Readable.destroy;
- module.exports = CustomStream;
- module.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer;
- module.exports._isUint8Array = CustomStream._isUint8Array;
- module.exports.isDisturbed = CustomStream.isDisturbed;
- module.exports.isErrored = CustomStream.isErrored;
- module.exports.isWritable = CustomStream.isWritable;
- module.exports.isReadable = CustomStream.isReadable;
- module.exports.Readable = CustomStream.Readable;
- module.exports.Writable = CustomStream.Writable;
- module.exports.Duplex = CustomStream.Duplex;
- module.exports.Transform = CustomStream.Transform;
- module.exports.PassThrough = CustomStream.PassThrough;
- module.exports.addAbortSignal = CustomStream.addAbortSignal;
- module.exports.finished = CustomStream.finished;
- module.exports.destroy = CustomStream.destroy;
- module.exports.destroy = originalDestroy;
- module.exports.pipeline = CustomStream.pipeline;
- module.exports.compose = CustomStream.compose;
-
- module.exports._getNativeReadableStreamPrototype = getNativeReadableStreamPrototype;
- module.exports.NativeWritable = NativeWritable;
-
- Object.defineProperty(CustomStream, "promises", {
- configurable: true,
- enumerable: true,
- get() {
- return promises;
- },
- });
- module.exports.Stream = CustomStream.Stream;
- module.exports.default = module.exports;
- },
-});
-
-/**
- * Bun native stream wrapper
- *
- * This glue code lets us avoid using ReadableStreams to wrap Bun internal streams
- *
- */
-function createNativeStreamReadable(nativeType, Readable) {
- var [pull, start, cancel, setClose, deinit, updateRef, drainFn] = globalThis[Symbol.for("Bun.lazy")](nativeType);
-
- var closer = [false];
- var handleNumberResult = function (nativeReadable, result, view, isClosed) {
- if (result > 0) {
- const slice = view.subarray(0, result);
- const remainder = view.subarray(result);
- if (slice.byteLength > 0) {
- nativeReadable.push(slice);
- }
-
- if (isClosed) {
- nativeReadable.push(null);
- }
-
- return remainder.byteLength > 0 ? remainder : undefined;
- }
-
- if (isClosed) {
- nativeReadable.push(null);
- }
-
- return view;
- };
-
- var handleArrayBufferViewResult = function (nativeReadable, result, view, isClosed) {
- if (result.byteLength > 0) {
- nativeReadable.push(result);
- }
-
- if (isClosed) {
- nativeReadable.push(null);
- }
-
- return view;
- };
-
- var DYNAMICALLY_ADJUST_CHUNK_SIZE = process.env.BUN_DISABLE_DYNAMIC_CHUNK_SIZE !== "1";
-
- const finalizer = new FinalizationRegistry(ptr => ptr && deinit(ptr));
- const MIN_BUFFER_SIZE = 512;
- var NativeReadable = class NativeReadable extends Readable {
- #ptr;
- #refCount = 1;
- #constructed = false;
- #remainingChunk = undefined;
- #highWaterMark;
- #pendingRead = false;
- #hasResized = !DYNAMICALLY_ADJUST_CHUNK_SIZE;
- #unregisterToken;
- constructor(ptr, options = {}) {
- super(options);
- if (typeof options.highWaterMark === "number") {
- this.#highWaterMark = options.highWaterMark;
- } else {
- this.#highWaterMark = 256 * 1024;
- }
- this.#ptr = ptr;
- this.#constructed = false;
- this.#remainingChunk = undefined;
- this.#pendingRead = false;
- this.#unregisterToken = {};
- finalizer.register(this, this.#ptr, this.#unregisterToken);
- }
-
- // maxToRead is by default the highWaterMark passed from the Readable.read call to this fn
- // However, in the case of an fs.ReadStream, we can pass the number of bytes we want to read
- // which may be significantly less than the actual highWaterMark
- _read(maxToRead) {
- __DEBUG__ && debug("NativeReadable._read", this.__id);
- if (this.#pendingRead) {
- __DEBUG__ && debug("pendingRead is true", this.__id);
- return;
- }
-
- var ptr = this.#ptr;
- __DEBUG__ && debug("ptr @ NativeReadable._read", ptr, this.__id);
- if (ptr === 0) {
- this.push(null);
- return;
- }
-
- if (!this.#constructed) {
- __DEBUG__ && debug("NativeReadable not constructed yet", this.__id);
- this.#internalConstruct(ptr);
- }
-
- return this.#internalRead(this.#getRemainingChunk(maxToRead), ptr);
- // const internalReadRes = this.#internalRead(
- // this.#getRemainingChunk(),
- // ptr,
- // );
- // // REVERT ME
- // const wrap = new Promise((resolve) => {
- // if (!this.internalReadRes?.then) {
- // debug("internalReadRes not promise");
- // resolve(internalReadRes);
- // return;
- // }
- // internalReadRes.then((result) => {
- // debug("internalReadRes done");
- // resolve(result);
- // });
- // });
- // return wrap;
- }
-
- #internalConstruct(ptr) {
- this.#constructed = true;
- const result = start(ptr, this.#highWaterMark);
- __DEBUG__ && debug("NativeReadable internal `start` result", result, this.__id);
-
- if (typeof result === "number" && result > 1) {
- this.#hasResized = true;
- __DEBUG__ && debug("NativeReadable resized", this.__id);
-
- this.#highWaterMark = Math.min(this.#highWaterMark, result);
- }
-
- if (drainFn) {
- const drainResult = drainFn(ptr);
- __DEBUG__ && debug("NativeReadable drain result", drainResult, this.__id);
- if ((drainResult?.byteLength ?? 0) > 0) {
- this.push(drainResult);
- }
- }
- }
-
- // maxToRead can be the highWaterMark (by default) or the remaining amount of the stream to read
- // This is so the the consumer of the stream can terminate the stream early if they know
- // how many bytes they want to read (ie. when reading only part of a file)
- #getRemainingChunk(maxToRead = this.#highWaterMark) {
- var chunk = this.#remainingChunk;
- __DEBUG__ && debug("chunk @ #getRemainingChunk", chunk, this.__id);
- if (chunk?.byteLength ?? 0 < MIN_BUFFER_SIZE) {
- var size = maxToRead > MIN_BUFFER_SIZE ? maxToRead : MIN_BUFFER_SIZE;
- this.#remainingChunk = chunk = new Buffer(size);
- }
- return chunk;
- }
-
- push(result, encoding) {
- __DEBUG__ && debug("NativeReadable push -- result, encoding", result, encoding, this.__id);
- return super.push(...arguments);
- }
-
- #handleResult(result, view, isClosed) {
- __DEBUG__ && debug("result, isClosed @ #handleResult", result, isClosed, this.__id);
-
- if (typeof result === "number") {
- if (result >= this.#highWaterMark && !this.#hasResized && !isClosed) {
- this.#highWaterMark *= 2;
- this.#hasResized = true;
- }
-
- return handleNumberResult(this, result, view, isClosed);
- } else if (typeof result === "boolean") {
- this.push(null);
- return view?.byteLength ?? 0 > 0 ? view : undefined;
- } else if (ArrayBuffer.isView(result)) {
- if (result.byteLength >= this.#highWaterMark && !this.#hasResized && !isClosed) {
- this.#highWaterMark *= 2;
- this.#hasResized = true;
- __DEBUG__ && debug("Resized", this.__id);
- }
-
- return handleArrayBufferViewResult(this, result, view, isClosed);
- } else {
- __DEBUG__ && debug("Unknown result type", result, this.__id);
- throw new Error("Invalid result from pull");
- }
- }
-
- #internalRead(view, ptr) {
- __DEBUG__ && debug("#internalRead()", this.__id);
- closer[0] = false;
- var result = pull(ptr, view, closer);
- if (isPromise(result)) {
- this.#pendingRead = true;
- return result.then(
- result => {
- this.#pendingRead = false;
- __DEBUG__ && debug("pending no longerrrrrrrr (result returned from pull)", this.__id);
- this.#remainingChunk = this.#handleResult(result, view, closer[0]);
- },
- reason => {
- __DEBUG__ && debug("error from pull", reason, this.__id);
- errorOrDestroy(this, reason);
- },
- );
- } else {
- this.#remainingChunk = this.#handleResult(result, view, closer[0]);
- }
- }
-
- _destroy(error, callback) {
- var ptr = this.#ptr;
- if (ptr === 0) {
- callback(error);
- return;
- }
-
- finalizer.unregister(this.#unregisterToken);
- this.#ptr = 0;
- if (updateRef) {
- updateRef(ptr, false);
- }
- __DEBUG__ && debug("NativeReadable destroyed", this.__id);
- cancel(ptr, error);
- callback(error);
- }
-
- ref() {
- var ptr = this.#ptr;
- if (ptr === 0) return;
- if (this.#refCount++ === 0) {
- updateRef(ptr, true);
- }
- }
-
- unref() {
- var ptr = this.#ptr;
- if (ptr === 0) return;
- if (this.#refCount-- === 1) {
- updateRef(ptr, false);
- }
- }
- };
-
- if (!updateRef) {
- NativeReadable.prototype.ref = undefined;
- NativeReadable.prototype.unref = undefined;
- }
-
- return NativeReadable;
-}
-
-var nativeReadableStreamPrototypes = {
- 0: undefined,
- 1: undefined,
- 2: undefined,
- 3: undefined,
- 4: undefined,
- 5: undefined,
-};
-function getNativeReadableStreamPrototype(nativeType, Readable) {
- return (nativeReadableStreamPrototypes[nativeType] ||= createNativeStreamReadable(nativeType, Readable));
-}
-
-function getNativeReadableStream(Readable, stream, options) {
- if (!(stream && typeof stream === "object" && stream instanceof ReadableStream)) {
- return undefined;
- }
-
- const native = direct(stream);
- if (!native) {
- debug("no native readable stream");
- return undefined;
- }
- const { stream: ptr, data: type } = native;
-
- const NativeReadable = getNativeReadableStreamPrototype(type, Readable);
-
- return new NativeReadable(ptr, options);
-}
-/** --- Bun native stream wrapper --- */
-
-var Writable = require_writable();
-var NativeWritable = class NativeWritable extends Writable {
- #pathOrFdOrSink;
- #fileSink;
- #native = true;
-
- _construct;
- _destroy;
- _final;
-
- constructor(pathOrFdOrSink, options = {}) {
- super(options);
-
- this._construct = this.#internalConstruct;
- this._destroy = this.#internalDestroy;
- this._final = this.#internalFinal;
-
- this.#pathOrFdOrSink = pathOrFdOrSink;
- }
-
- // These are confusingly two different fns for construct which initially were the same thing because
- // `_construct` is part of the lifecycle of Writable and is not called lazily,
- // so we need to separate our _construct for Writable state and actual construction of the write stream
- #internalConstruct(cb) {
- this._writableState.constructed = true;
- this.constructed = true;
- cb();
- }
-
- #lazyConstruct() {
- // TODO: Turn this check into check for instanceof FileSink
- if (typeof this.#pathOrFdOrSink === "object") {
- if (typeof this.#pathOrFdOrSink.write === "function") {
- this.#fileSink = this.#pathOrFdOrSink;
- } else {
- throw new Error("Invalid FileSink");
- }
- } else {
- this.#fileSink = Bun.file(this.#pathOrFdOrSink).writer();
- }
- }
-
- write(chunk, encoding, cb, native = this.#native) {
- if (!native) {
- this.#native = false;
- return super.write(chunk, encoding, cb);
- }
-
- if (!this.#fileSink) {
- this.#lazyConstruct();
- }
- var fileSink = this.#fileSink;
- var result = fileSink.write(chunk);
-
- if (isPromise(result)) {
- // var writePromises = this.#writePromises;
- // var i = writePromises.length;
- // writePromises[i] = result;
- result.then(() => {
- this.emit("drain");
- fileSink.flush(true);
- // // We can't naively use i here because we don't know when writes will resolve necessarily
- // writePromises.splice(writePromises.indexOf(result), 1);
- });
- return false;
- }
- fileSink.flush(true);
- // TODO: Should we just have a calculation based on encoding and length of chunk?
- if (cb) cb(null, chunk.byteLength);
- return true;
- }
-
- end(chunk, encoding, cb, native = this.#native) {
- return super.end(chunk, encoding, cb, native);
- }
-
- #internalDestroy(error, cb) {
- this._writableState.destroyed = true;
- if (cb) cb(error);
- }
-
- #internalFinal(cb) {
- if (this.#fileSink) {
- this.#fileSink.end();
- }
- if (cb) cb();
- }
-
- ref() {
- if (!this.#fileSink) {
- this.#lazyConstruct();
- }
- this.#fileSink.ref();
- }
-
- unref() {
- if (!this.#fileSink) return;
- this.#fileSink.unref();
- }
-};
-
-const stream_exports = require_ours();
-stream_exports[Symbol.for("CommonJS")] = 0;
-stream_exports[Symbol.for("::bunternal::")] = { _ReadableFromWeb };
-export default stream_exports;
-export var _uint8ArrayToBuffer = stream_exports._uint8ArrayToBuffer;
-export var _isUint8Array = stream_exports._isUint8Array;
-export var isDisturbed = stream_exports.isDisturbed;
-export var isErrored = stream_exports.isErrored;
-export var isWritable = stream_exports.isWritable;
-export var isReadable = stream_exports.isReadable;
-export var Readable = stream_exports.Readable;
-export var Writable = stream_exports.Writable;
-export var Duplex = stream_exports.Duplex;
-export var Transform = stream_exports.Transform;
-export var PassThrough = stream_exports.PassThrough;
-export var addAbortSignal = stream_exports.addAbortSignal;
-export var finished = stream_exports.finished;
-export var destroy = stream_exports.destroy;
-export var pipeline = stream_exports.pipeline;
-export var compose = stream_exports.compose;
-export var Stream = stream_exports.Stream;
-export var eos = (stream_exports["eos"] = require_end_of_stream);
-export var _getNativeReadableStreamPrototype = stream_exports._getNativeReadableStreamPrototype;
-export var NativeWritable = stream_exports.NativeWritable;
-export var promises = Stream.promise;
diff --git a/src/bun.js/trace_events.exports.js b/src/bun.js/trace_events.exports.js
deleted file mode 100644
index 44ee28203..000000000
--- a/src/bun.js/trace_events.exports.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// This is a stub! This is not actually implemented yet.
-
-class Tracing {
- enabled = false;
- categories = "";
-}
-
-function ERR_INVALID_ARG_TYPE(name, type, value) {
- const err = new TypeError(`The "${name}" argument must be of type ${type}. Received ${value}`);
- err.code = "ERR_INVALID_ARG_TYPE";
- return err;
-}
-
-function createTracing(opts) {
- if (typeof opts !== "object" || opts == null) {
- throw new ERR_INVALID_ARG_TYPE("options", "Object", opts);
- }
-
- // TODO: validate categories
- return new Tracing(opts);
-}
-
-function getEnabledCategories() {
- return "";
-}
-
-var defaultObject = {
- createTracing,
- getEnabledCategories,
- [Symbol.for("CommonJS")]: 0,
-};
-
-export { defaultObject as default, createTracing, getEnabledCategories };
diff --git a/src/bun.js/undici.exports.js b/src/bun.js/undici.exports.js
deleted file mode 100644
index cf3968b58..000000000
--- a/src/bun.js/undici.exports.js
+++ /dev/null
@@ -1,331 +0,0 @@
-// const { Object } = import.meta.primordials;
-const { EventEmitter } = import.meta.require("events");
-const {
- Readable,
- [Symbol.for("::bunternal::")]: { _ReadableFromWeb },
-} = import.meta.require("node:stream");
-
-const ObjectCreate = Object.create;
-const kEmptyObject = ObjectCreate(null);
-
-export var fetch = Bun.fetch;
-export var Response = globalThis.Response;
-export var Headers = globalThis.Headers;
-export var Request = globalThis.Request;
-export var URLSearchParams = globalThis.URLSearchParams;
-export var URL = globalThis.URL;
-export class File extends Blob {}
-export class FileReader extends EventTarget {
- constructor() {
- throw new Error("Not implemented yet!");
- }
-}
-
-export var FormData = globalThis.FormData;
-function notImplemented() {
- throw new Error("Not implemented in bun");
-}
-
-/**
- * An object representing a URL.
- * @typedef {Object} UrlObject
- * @property {string | number} [port]
- * @property {string} [path]
- * @property {string} [pathname]
- * @property {string} [hostname]
- * @property {string} [origin]
- * @property {string} [protocol]
- * @property {string} [search]
- */
-
-/**
- * @typedef {import('http').IncomingHttpHeaders} IncomingHttpHeaders
- * @typedef {'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH'} HttpMethod
- * @typedef {import('stream').Readable} Readable
- * @typedef {import('events').EventEmitter} EventEmitter
- */
-
-class BodyReadable extends _ReadableFromWeb {
- #response;
- #bodyUsed;
-
- constructor(response, options = {}) {
- var { body } = response;
- if (!body) throw new Error("Response body is null");
- super(options, body);
-
- this.#response = response;
- this.#bodyUsed = response.bodyUsed;
- }
-
- get bodyUsed() {
- // return this.#response.bodyUsed;
- return this.#bodyUsed;
- }
-
- #consume() {
- if (this.#bodyUsed) throw new TypeError("unusable");
- this.#bodyUsed = true;
- }
-
- async arrayBuffer() {
- this.#consume();
- return await this.#response.arrayBuffer();
- }
-
- async blob() {
- this.#consume();
- return await this.#response.blob();
- }
-
- async formData() {
- this.#consume();
- return await this.#response.formData();
- }
-
- async json() {
- this.#consume();
- return await this.#response.json();
- }
-
- async text() {
- this.#consume();
- return await this.#response.text();
- }
-}
-
-// NOT IMPLEMENTED
-// * idempotent?: boolean;
-// * onInfo?: (info: { statusCode: number, headers: Object<string, string | string[]> }) => void;
-// * opaque?: *;
-// * responseHeader: 'raw' | null;
-// * headersTimeout?: number | null;
-// * bodyTimeout?: number | null;
-// * upgrade?: boolean | string | null;
-// * blocking?: boolean;
-
-/**
- * Performs an HTTP request.
- * @param {string | URL | UrlObject} url
- * @param {{
- * dispatcher: Dispatcher;
- * method: HttpMethod;
- * signal?: AbortSignal | EventEmitter | null;
- * maxRedirections?: number;
- * body?: string | Buffer | Uint8Array | Readable | null | FormData;
- * headers?: IncomingHttpHeaders | string[] | null;
- * query?: Record<string, any>;
- * reset?: boolean;
- * throwOnError?: boolean;
- * }} [options]
- * @returns {{
- * statusCode: number;
- * headers: IncomingHttpHeaders;
- * body: ResponseBody;
- * trailers: Object<string, string>;
- * opaque: *;
- * context: Object<string, *>;
- * }}
- */
-export async function request(
- url,
- options = {
- method: "GET",
- signal: null,
- headers: null,
- query: null,
- // idempotent: false, // GET and HEAD requests are idempotent by default
- // blocking = false,
- // upgrade = false,
- // headersTimeout: 30000,
- // bodyTimeout: 30000,
- reset: false,
- throwOnError: false,
- body: null,
- // dispatcher,
- },
-) {
- let {
- method = "GET",
- headers: inputHeaders,
- query,
- signal,
- // idempotent, // GET and HEAD requests are idempotent by default
- // blocking = false,
- // upgrade = false,
- // headersTimeout = 30000,
- // bodyTimeout = 30000,
- reset = false,
- throwOnError = false,
- body: inputBody,
- maxRedirections,
- // dispatcher,
- } = options;
-
- // TODO: More validations
-
- if (typeof url === "string") {
- if (query) url = new URL(url);
- } else if (typeof url === "object" && url !== null) {
- if (!(url instanceof URL)) {
- // TODO: Parse undici UrlObject
- throw new Error("not implemented");
- }
- } else throw new TypeError("url must be a string, URL, or UrlObject");
-
- if (typeof url === "string" && query) url = new URL(url);
- if (typeof url === "object" && url !== null && query) if (query) url.search = new URLSearchParams(query).toString();
-
- method = method && typeof method === "string" ? method.toUpperCase() : null;
- // idempotent = idempotent === undefined ? method === "GET" || method === "HEAD" : idempotent;
-
- if (inputBody && (method === "GET" || method === "HEAD")) {
- throw new Error("Body not allowed for GET or HEAD requests");
- }
-
- if (inputBody && inputBody.read && inputBody instanceof Readable) {
- // TODO: Streaming via ReadableStream?
- let data = "";
- inputBody.setEncoding("utf8");
- for await (const chunk of stream) {
- data += chunk;
- }
- inputBody = new TextEncoder().encode(data);
- }
-
- if (maxRedirections !== undefined && Number.isNaN(maxRedirections)) {
- throw new Error("maxRedirections must be a number if defined");
- }
-
- if (signal && !(signal instanceof AbortSignal)) {
- // TODO: Add support for event emitter signal
- throw new Error("signal must be an instance of AbortSignal");
- }
-
- let resp;
- /** @type {Response} */
- const {
- status: statusCode,
- headers,
- trailers,
- } = (resp = await fetch(url, {
- signal,
- mode: "cors",
- method,
- headers: inputHeaders || kEmptyObject,
- body: inputBody,
- redirect: maxRedirections === "undefined" || maxRedirections > 0 ? "follow" : "manual",
- keepalive: !reset,
- }));
-
- // Throw if received 4xx or 5xx response indicating HTTP error
- if (throwOnError && statusCode >= 400 && statusCode < 600) {
- throw new Error(`Request failed with status code ${statusCode}`);
- }
-
- const body = resp.body ? new BodyReadable(resp) : null;
-
- return { statusCode, headers: headers.toJSON(), body, trailers, opaque: kEmptyObject, context: kEmptyObject };
-}
-
-export function stream() {
- throw new Error("Not implemented in bun");
-}
-export function pipeline() {
- throw new Error("Not implemented in bun");
-}
-export function connect() {
- throw new Error("Not implemented in bun");
-}
-export function upgrade() {
- throw new Error("Not implemented in bun");
-}
-
-export class MockClient {
- constructor() {
- throw new Error("Not implemented in bun");
- }
-}
-export class MockPool {
- constructor() {
- throw new Error("Not implemented in bun");
- }
-}
-export class MockAgent {
- constructor() {
- throw new Error("Not implemented in bun");
- }
-}
-
-export function mockErrors() {
- throw new Error("Not implemented in bun");
-}
-
-export function Undici() {
- throw new Error("Not implemented in bun");
-}
-
-class Dispatcher extends EventEmitter {}
-class Agent extends Dispatcher {}
-class Pool extends Dispatcher {
- request() {
- throw new Error("Not implemented in bun");
- }
-}
-class BalancedPool extends Dispatcher {}
-class Client extends Dispatcher {
- request() {
- throw new Error("Not implemented in bun");
- }
-}
-
-Undici.Dispatcher = Dispatcher;
-Undici.Pool = Pool;
-Undici.BalancedPool = BalancedPool;
-Undici.Client = Client;
-Undici.Agent = Agent;
-
-Undici.buildConnector =
- Undici.errors =
- Undici.setGlobalDispatcher =
- Undici.getGlobalDispatcher =
- Undici.request =
- Undici.stream =
- Undici.pipeline =
- Undici.connect =
- Undici.upgrade =
- Undici.MockClient =
- Undici.MockPool =
- Undici.MockAgent =
- Undici.mockErrors =
- notImplemented;
-
-Undici.fetch = fetch;
-
-export default {
- fetch,
- Response,
- Headers,
- Request,
- URLSearchParams,
- URL,
- File,
- FileReader,
- FormData,
- request,
- stream,
- pipeline,
- connect,
- upgrade,
- MockClient,
- MockPool,
- MockAgent,
- mockErrors,
- Dispatcher,
- Pool,
- BalancedPool,
- Client,
- Agent,
- Undici,
- [Symbol.for("CommonJS")]: 0,
-};
diff --git a/src/bun.js/url.exports.js b/src/bun.js/url.exports.js
deleted file mode 100644
index c7d91d509..000000000
--- a/src/bun.js/url.exports.js
+++ /dev/null
@@ -1,397 +0,0 @@
-"use strict";
-const { URL: F, URLSearchParams: M, [Symbol.for("Bun.lazy")]: S } = globalThis;
-function it(s) {
- return typeof s == "string";
-}
-function D(s) {
- return typeof s == "object" && s !== null;
-}
-function I(s) {
- return s === null;
-}
-function E(s) {
- return s == null;
-}
-function ft(s) {
- return s === void 0;
-}
-function m() {
- (this.protocol = null),
- (this.slashes = null),
- (this.auth = null),
- (this.host = null),
- (this.port = null),
- (this.hostname = null),
- (this.hash = null),
- (this.search = null),
- (this.query = null),
- (this.pathname = null),
- (this.path = null),
- (this.href = null);
-}
-var tt = /^([a-z0-9.+-]+:)/i,
- st = /:[0-9]*$/,
- ht = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
- et = [
- "<",
- ">",
- '"',
- "`",
- " ",
- "\r",
- `
-`,
- " ",
- ],
- rt = ["{", "}", "|", "\\", "^", "`"].concat(et),
- B = ["'"].concat(rt),
- G = ["%", "/", "?", ";", "#"].concat(B),
- J = ["/", "?", "#"],
- ot = 255,
- K = /^[+a-z0-9A-Z_-]{0,63}$/,
- at = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
- nt = { javascript: !0, "javascript:": !0 },
- N = { javascript: !0, "javascript:": !0 },
- R = {
- http: !0,
- https: !0,
- ftp: !0,
- gopher: !0,
- file: !0,
- "http:": !0,
- "https:": !0,
- "ftp:": !0,
- "gopher:": !0,
- "file:": !0,
- },
- Z = {
- parse(s) {
- var r = decodeURIComponent;
- return (s + "")
- .replace(/\+/g, " ")
- .split("&")
- .filter(Boolean)
- .reduce(function (t, o, a) {
- var l = o.split("="),
- f = r(l[0] || ""),
- h = r(l[1] || ""),
- g = t[f];
- return (t[f] = g === void 0 ? h : [].concat(g, h)), t;
- }, {});
- },
- stringify(s) {
- var r = encodeURIComponent;
- return Object.keys(s || {})
- .reduce(function (t, o) {
- return (
- [].concat(s[o]).forEach(function (a) {
- t.push(r(o) + "=" + r(a));
- }),
- t
- );
- }, [])
- .join("&")
- .replace(/\s/g, "+");
- },
- };
-function A(s, r, t) {
- if (s && D(s) && s instanceof m) return s;
- var o = new m();
- return o.parse(s, r, t), o;
-}
-m.prototype.parse = function (s, r, t) {
- if (!it(s)) throw new TypeError("Parameter 'url' must be a string, not " + typeof s);
- var o = s.indexOf("?"),
- a = o !== -1 && o < s.indexOf("#") ? "?" : "#",
- l = s.split(a),
- f = /\\/g;
- (l[0] = l[0].replace(f, "/")), (s = l.join(a));
- var h = s;
- if (((h = h.trim()), !t && s.split("#").length === 1)) {
- var g = ht.exec(h);
- if (g)
- return (
- (this.path = h),
- (this.href = h),
- (this.pathname = g[1]),
- g[2]
- ? ((this.search = g[2]),
- r ? (this.query = Z.parse(this.search.substr(1))) : (this.query = this.search.substr(1)))
- : r && ((this.search = ""), (this.query = {})),
- this
- );
- }
- var c = tt.exec(h);
- if (c) {
- c = c[0];
- var v = c.toLowerCase();
- (this.protocol = v), (h = h.substr(c.length));
- }
- if (t || c || h.match(/^\/\/[^@\/]+@[^@\/]+/)) {
- var j = h.substr(0, 2) === "//";
- j && !(c && N[c]) && ((h = h.substr(2)), (this.slashes = !0));
- }
- if (!N[c] && (j || (c && !R[c]))) {
- for (var u = -1, n = 0; n < J.length; n++) {
- var b = h.indexOf(J[n]);
- b !== -1 && (u === -1 || b < u) && (u = b);
- }
- var P, p;
- u === -1 ? (p = h.lastIndexOf("@")) : (p = h.lastIndexOf("@", u)),
- p !== -1 && ((P = h.slice(0, p)), (h = h.slice(p + 1)), (this.auth = decodeURIComponent(P))),
- (u = -1);
- for (var n = 0; n < G.length; n++) {
- var b = h.indexOf(G[n]);
- b !== -1 && (u === -1 || b < u) && (u = b);
- }
- u === -1 && (u = h.length),
- (this.host = h.slice(0, u)),
- (h = h.slice(u)),
- this.parseHost(),
- (this.hostname = this.hostname || "");
- var C = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]";
- if (!C)
- for (var e = this.hostname.split(/\./), n = 0, i = e.length; n < i; n++) {
- var d = e[n];
- if (!!d && !d.match(K)) {
- for (var y = "", x = 0, _ = d.length; x < _; x++) d.charCodeAt(x) > 127 ? (y += "x") : (y += d[x]);
- if (!y.match(K)) {
- var q = e.slice(0, n),
- O = e.slice(n + 1),
- U = d.match(at);
- U && (q.push(U[1]), O.unshift(U[2])),
- O.length && (h = "/" + O.join(".") + h),
- (this.hostname = q.join("."));
- break;
- }
- }
- }
- this.hostname.length > ot ? (this.hostname = "") : (this.hostname = this.hostname.toLowerCase()),
- C || (this.hostname = new F(`https://${this.hostname}`).hostname);
- var w = this.port ? ":" + this.port : "",
- H = this.hostname || "";
- (this.host = H + w),
- (this.href += this.host),
- C && ((this.hostname = this.hostname.substr(1, this.hostname.length - 2)), h[0] !== "/" && (h = "/" + h));
- }
- if (!nt[v])
- for (var n = 0, i = B.length; n < i; n++) {
- var L = B[n];
- if (h.indexOf(L) !== -1) {
- var z = encodeURIComponent(L);
- z === L && (z = escape(L)), (h = h.split(L).join(z));
- }
- }
- var $ = h.indexOf("#");
- $ !== -1 && ((this.hash = h.substr($)), (h = h.slice(0, $)));
- var T = h.indexOf("?");
- if (
- (T !== -1
- ? ((this.search = h.substr(T)),
- (this.query = h.substr(T + 1)),
- r && (this.query = Z.parse(this.query)),
- (h = h.slice(0, T)))
- : r && ((this.search = ""), (this.query = {})),
- h && (this.pathname = h),
- R[v] && this.hostname && !this.pathname && (this.pathname = "/"),
- this.pathname || this.search)
- ) {
- var w = this.pathname || "",
- Q = this.search || "";
- this.path = w + Q;
- }
- return (this.href = this.format()), this;
-};
-function V(s) {
- return it(s) && (s = A(s)), s instanceof m ? s.format() : m.prototype.format.call(s);
-}
-m.prototype.format = function () {
- var s = this.auth || "";
- s && ((s = encodeURIComponent(s)), (s = s.replace(/%3A/i, ":")), (s += "@"));
- var r = this.protocol || "",
- t = this.pathname || "",
- o = this.hash || "",
- a = !1,
- l = "";
- this.host
- ? (a = s + this.host)
- : this.hostname &&
- ((a = s + (this.hostname.indexOf(":") === -1 ? this.hostname : "[" + this.hostname + "]")),
- this.port && (a += ":" + this.port)),
- this.query && D(this.query) && Object.keys(this.query).length && (l = Z.stringify(this.query));
- var f = this.search || (l && "?" + l) || "";
- return (
- r && r.substr(-1) !== ":" && (r += ":"),
- this.slashes || ((!r || R[r]) && a !== !1)
- ? ((a = "//" + (a || "")), t && t.charAt(0) !== "/" && (t = "/" + t))
- : a || (a = ""),
- o && o.charAt(0) !== "#" && (o = "#" + o),
- f && f.charAt(0) !== "?" && (f = "?" + f),
- (t = t.replace(/[?#]/g, function (h) {
- return encodeURIComponent(h);
- })),
- (f = f.replace("#", "%23")),
- r + a + t + f + o
- );
-};
-function W(s, r) {
- return A(s, !1, !0).resolve(r);
-}
-m.prototype.resolve = function (s) {
- return this.resolveObject(A(s, !1, !0)).format();
-};
-function X(s, r) {
- return s ? A(s, !1, !0).resolveObject(r) : r;
-}
-(m.prototype.resolveObject = function (s) {
- if (it(s)) {
- var r = new m();
- r.parse(s, !1, !0), (s = r);
- }
- for (var t = new m(), o = Object.keys(this), a = 0; a < o.length; a++) {
- var l = o[a];
- t[l] = this[l];
- }
- if (((t.hash = s.hash), s.href === "")) return (t.href = t.format()), t;
- if (s.slashes && !s.protocol) {
- for (var f = Object.keys(s), h = 0; h < f.length; h++) {
- var g = f[h];
- g !== "protocol" && (t[g] = s[g]);
- }
- return R[t.protocol] && t.hostname && !t.pathname && (t.path = t.pathname = "/"), (t.href = t.format()), t;
- }
- if (s.protocol && s.protocol !== t.protocol) {
- if (!R[s.protocol]) {
- for (var c = Object.keys(s), v = 0; v < c.length; v++) {
- var j = c[v];
- t[j] = s[j];
- }
- return (t.href = t.format()), t;
- }
- if (((t.protocol = s.protocol), !s.host && !N[s.protocol])) {
- for (var i = (s.pathname || "").split("/"); i.length && !(s.host = i.shift()); );
- s.host || (s.host = ""),
- s.hostname || (s.hostname = ""),
- i[0] !== "" && i.unshift(""),
- i.length < 2 && i.unshift(""),
- (t.pathname = i.join("/"));
- } else t.pathname = s.pathname;
- if (
- ((t.search = s.search),
- (t.query = s.query),
- (t.host = s.host || ""),
- (t.auth = s.auth),
- (t.hostname = s.hostname || s.host),
- (t.port = s.port),
- t.pathname || t.search)
- ) {
- var u = t.pathname || "",
- n = t.search || "";
- t.path = u + n;
- }
- return (t.slashes = t.slashes || s.slashes), (t.href = t.format()), t;
- }
- var b = t.pathname && t.pathname.charAt(0) === "/",
- P = s.host || (s.pathname && s.pathname.charAt(0) === "/"),
- p = P || b || (t.host && s.pathname),
- C = p,
- e = (t.pathname && t.pathname.split("/")) || [],
- i = (s.pathname && s.pathname.split("/")) || [],
- d = t.protocol && !R[t.protocol];
- if (
- (d &&
- ((t.hostname = ""),
- (t.port = null),
- t.host && (e[0] === "" ? (e[0] = t.host) : e.unshift(t.host)),
- (t.host = ""),
- s.protocol &&
- ((s.hostname = null),
- (s.port = null),
- s.host && (i[0] === "" ? (i[0] = s.host) : i.unshift(s.host)),
- (s.host = null)),
- (p = p && (i[0] === "" || e[0] === ""))),
- P)
- )
- (t.host = s.host || s.host === "" ? s.host : t.host),
- (t.hostname = s.hostname || s.hostname === "" ? s.hostname : t.hostname),
- (t.search = s.search),
- (t.query = s.query),
- (e = i);
- else if (i.length) e || (e = []), e.pop(), (e = e.concat(i)), (t.search = s.search), (t.query = s.query);
- else if (!E(s.search)) {
- if (d) {
- t.hostname = t.host = e.shift();
- var y = t.host && t.host.indexOf("@") > 0 ? t.host.split("@") : !1;
- y && ((t.auth = y.shift()), (t.host = t.hostname = y.shift()));
- }
- return (
- (t.search = s.search),
- (t.query = s.query),
- (!I(t.pathname) || !I(t.search)) && (t.path = (t.pathname ? t.pathname : "") + (t.search ? t.search : "")),
- (t.href = t.format()),
- t
- );
- }
- if (!e.length)
- return (t.pathname = null), t.search ? (t.path = "/" + t.search) : (t.path = null), (t.href = t.format()), t;
- for (
- var x = e.slice(-1)[0],
- _ = ((t.host || s.host || e.length > 1) && (x === "." || x === "..")) || x === "",
- q = 0,
- O = e.length;
- O >= 0;
- O--
- )
- (x = e[O]), x === "." ? e.splice(O, 1) : x === ".." ? (e.splice(O, 1), q++) : q && (e.splice(O, 1), q--);
- if (!p && !C) for (; q--; q) e.unshift("..");
- p && e[0] !== "" && (!e[0] || e[0].charAt(0) !== "/") && e.unshift(""),
- _ && e.join("/").substr(-1) !== "/" && e.push("");
- var U = e[0] === "" || (e[0] && e[0].charAt(0) === "/");
- if (d) {
- t.hostname = t.host = U ? "" : e.length ? e.shift() : "";
- var y = t.host && t.host.indexOf("@") > 0 ? t.host.split("@") : !1;
- y && ((t.auth = y.shift()), (t.host = t.hostname = y.shift()));
- }
- return (
- (p = p || (t.host && e.length)),
- p && !U && e.unshift(""),
- e.length ? (t.pathname = e.join("/")) : ((t.pathname = null), (t.path = null)),
- (!I(t.pathname) || !I(t.search)) && (t.path = (t.pathname ? t.pathname : "") + (t.search ? t.search : "")),
- (t.auth = s.auth || t.auth),
- (t.slashes = t.slashes || s.slashes),
- (t.href = t.format()),
- t
- );
-}),
- (m.prototype.parseHost = function () {
- var s = this.host,
- r = st.exec(s);
- r && ((r = r[0]), r !== ":" && (this.port = r.substr(1)), (s = s.substr(0, s.length - r.length))),
- s && (this.hostname = s);
- });
-var Y, k;
-S && ((Y = S("pathToFileURL")), (k = S("fileURLToPath")));
-var ut = {
- parse: A,
- resolve: W,
- resolveObject: X,
- format: V,
- Url: m,
- pathToFileURL: Y,
- fileURLToPath: k,
- URL: F,
- URLSearchParams: M,
-};
-("use strict");
-export {
- F as URL,
- M as URLSearchParams,
- m as Url,
- ut as default,
- k as fileURLToPath,
- V as format,
- A as parse,
- Y as pathToFileURL,
- W as resolve,
- X as resolveObject,
-};
diff --git a/src/bun.js/util.exports.js b/src/bun.js/util.exports.js
deleted file mode 100644
index ce618784d..000000000
--- a/src/bun.js/util.exports.js
+++ /dev/null
@@ -1,588 +0,0 @@
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __commonJS = (cb, mod) =>
- function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-
-function isBufferInterface({ copy, fill, readUint8 }) {
- return typeof copy === "function" && typeof fill === "function" && typeof readUint8 === "function";
-}
-
-export function isBuffer(value) {
- return (
- Buffer.isBuffer(value) ||
- // incase it ends up as a browserify buffer
- (typeof value === "object" && isBufferInterface(value || {}))
- );
-}
-
-// node_modules/inherits/inherits_browser.js
-var require_inherits_browser = __commonJS({
- "node_modules/inherits/inherits_browser.js"(exports, module2) {
- module2.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor;
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true,
- },
- });
- };
- },
-});
-const deepEquals = Bun.deepEquals;
-const isDeepStrictEqual = (a, b) => deepEquals(a, b, true);
-const exports = {
- isDeepStrictEqual,
-};
-var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors;
-var formatRegExp = /%[sdj%]/g;
-function format(f) {
- if (!isString(f)) {
- var objects = [];
- for (var i = 0; i < arguments.length; i++) {
- objects.push(inspect(arguments[i]));
- }
- return objects.join(" ");
- }
- var i = 1;
- var args = arguments;
- var len = args.length;
- var str = String(f).replace(formatRegExp, function (x2) {
- if (x2 === "%%") return "%";
- if (i >= len) return x2;
- switch (x2) {
- case "%s":
- return String(args[i++]);
- case "%d":
- return Number(args[i++]);
- case "%j":
- try {
- return JSON.stringify(args[i++]);
- } catch (_) {
- return "[Circular]";
- }
- default:
- return x2;
- }
- });
- for (var x = args[i]; i < len; x = args[++i]) {
- if (isNull(x) || !isObject(x)) {
- str += " " + x;
- } else {
- str += " " + inspect(x);
- }
- }
- return str;
-}
-exports.format = format;
-function deprecate(fn, msg) {
- if (typeof process !== "undefined" && process.noDeprecation === true) {
- return fn;
- }
- if (typeof process === "undefined") {
- return function () {
- return exports.deprecate(fn, msg).apply(this, arguments);
- };
- }
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (process.throwDeprecation) {
- throw new Error(msg);
- } else if (process.traceDeprecation) {
- console.trace(msg);
- } else {
- console.error(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
- return deprecated;
-}
-exports.deprecate = deprecate;
-var debugs = {};
-var debugEnvRegex = /^$/;
-if (process.env.NODE_DEBUG) {
- debugEnv = process.env.NODE_DEBUG;
- debugEnv = debugEnv
- .replace(/[|\\{}()[\]^$+?.]/g, "\\$&")
- .replace(/\*/g, ".*")
- .replace(/,/g, "$|^")
- .toUpperCase();
- debugEnvRegex = new RegExp("^" + debugEnv + "$", "i");
-}
-var debugEnv;
-function debuglog(set) {
- set = set.toUpperCase();
- if (!debugs[set]) {
- if (debugEnvRegex.test(set)) {
- var pid = process.pid;
- debugs[set] = function () {
- var msg = exports.format.apply(exports, arguments);
- console.error("%s %d: %s", set, pid, msg);
- };
- } else {
- debugs[set] = function () {};
- }
- }
- return debugs[set];
-}
-exports.debuglog = debuglog;
-function inspect(obj, opts) {
- var ctx = {
- seen: [],
- stylize: stylizeNoColor,
- };
- if (arguments.length >= 3) ctx.depth = arguments[2];
- if (arguments.length >= 4) ctx.colors = arguments[3];
- if (isBoolean(opts)) {
- ctx.showHidden = opts;
- } else if (opts) {
- exports._extend(ctx, opts);
- }
- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
- if (isUndefined(ctx.depth)) ctx.depth = 2;
- if (isUndefined(ctx.colors)) ctx.colors = false;
- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
- if (ctx.colors) ctx.stylize = stylizeWithColor;
- return formatValue(ctx, obj, ctx.depth);
-}
-exports.inspect = inspect;
-inspect.colors = {
- bold: [1, 22],
- italic: [3, 23],
- underline: [4, 24],
- inverse: [7, 27],
- white: [37, 39],
- grey: [90, 39],
- black: [30, 39],
- blue: [34, 39],
- cyan: [36, 39],
- green: [32, 39],
- magenta: [35, 39],
- red: [31, 39],
- yellow: [33, 39],
-};
-inspect.styles = {
- special: "cyan",
- number: "yellow",
- boolean: "yellow",
- undefined: "grey",
- null: "bold",
- string: "green",
- date: "magenta",
- regexp: "red",
-};
-function stylizeWithColor(str, styleType) {
- var style = inspect.styles[styleType];
- if (style) {
- return "\x1B[" + inspect.colors[style][0] + "m" + str + "\x1B[" + inspect.colors[style][1] + "m";
- } else {
- return str;
- }
-}
-function stylizeNoColor(str, styleType) {
- return str;
-}
-function arrayToHash(array) {
- var hash = {};
- array.forEach(function (val, idx) {
- hash[val] = true;
- });
- return hash;
-}
-function formatValue(ctx, value, recurseTimes) {
- if (
- ctx.customInspect &&
- value &&
- isFunction(value.inspect) &&
- value.inspect !== exports.inspect &&
- !(value.constructor && value.constructor.prototype === value)
- ) {
- var ret = value.inspect(recurseTimes, ctx);
- if (!isString(ret)) {
- ret = formatValue(ctx, ret, recurseTimes);
- }
- return ret;
- }
- var primitive = formatPrimitive(ctx, value);
- if (primitive) {
- return primitive;
- }
- var keys = Object.keys(value);
- var visibleKeys = arrayToHash(keys);
- if (ctx.showHidden) {
- keys = Object.getOwnPropertyNames(value);
- }
- if (isError(value) && (keys.indexOf("message") >= 0 || keys.indexOf("description") >= 0)) {
- return formatError(value);
- }
- if (keys.length === 0) {
- if (isFunction(value)) {
- var name = value.name ? ": " + value.name : "";
- return ctx.stylize("[Function" + name + "]", "special");
- }
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), "regexp");
- }
- if (isDate(value)) {
- return ctx.stylize(Date.prototype.toString.call(value), "date");
- }
- if (isError(value)) {
- return formatError(value);
- }
- }
- var base = "",
- array = false,
- braces = ["{", "}"];
- if (isArray(value)) {
- array = true;
- braces = ["[", "]"];
- }
- if (isFunction(value)) {
- var n = value.name ? ": " + value.name : "";
- base = " [Function" + n + "]";
- }
- if (isRegExp(value)) {
- base = " " + RegExp.prototype.toString.call(value);
- }
- if (isDate(value)) {
- base = " " + Date.prototype.toUTCString.call(value);
- }
- if (isError(value)) {
- base = " " + formatError(value);
- }
- if (keys.length === 0 && (!array || value.length == 0)) {
- return braces[0] + base + braces[1];
- }
- if (recurseTimes < 0) {
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), "regexp");
- } else {
- return ctx.stylize("[Object]", "special");
- }
- }
- ctx.seen.push(value);
- var output;
- if (array) {
- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
- } else {
- output = keys.map(function (key) {
- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
- });
- }
- ctx.seen.pop();
- return reduceToSingleString(output, base, braces);
-}
-function formatPrimitive(ctx, value) {
- if (isUndefined(value)) return ctx.stylize("undefined", "undefined");
- if (isString(value)) {
- var simple = "'" + JSON.stringify(value).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
- return ctx.stylize(simple, "string");
- }
- if (isNumber(value)) return ctx.stylize("" + value, "number");
- if (isBoolean(value)) return ctx.stylize("" + value, "boolean");
- if (isNull(value)) return ctx.stylize("null", "null");
-}
-function formatError(value) {
- return "[" + Error.prototype.toString.call(value) + "]";
-}
-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
- var output = [];
- for (var i = 0, l = value.length; i < l; ++i) {
- if (hasOwnProperty(value, String(i))) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));
- } else {
- output.push("");
- }
- }
- keys.forEach(function (key) {
- if (!key.match(/^\d+$/)) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));
- }
- });
- return output;
-}
-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
- var name, str, desc;
- desc = Object.getOwnPropertyDescriptor(value, key) || {
- value: value[key],
- };
- if (desc.get) {
- if (desc.set) {
- str = ctx.stylize("[Getter/Setter]", "special");
- } else {
- str = ctx.stylize("[Getter]", "special");
- }
- } else {
- if (desc.set) {
- str = ctx.stylize("[Setter]", "special");
- }
- }
- if (!hasOwnProperty(visibleKeys, key)) {
- name = "[" + key + "]";
- }
- if (!str) {
- if (ctx.seen.indexOf(desc.value) < 0) {
- if (isNull(recurseTimes)) {
- str = formatValue(ctx, desc.value, null);
- } else {
- str = formatValue(ctx, desc.value, recurseTimes - 1);
- }
- if (str.indexOf("\n") > -1) {
- if (array) {
- str = str
- .split("\n")
- .map(function (line) {
- return " " + line;
- })
- .join("\n")
- .substr(2);
- } else {
- str =
- "\n" +
- str
- .split("\n")
- .map(function (line) {
- return " " + line;
- })
- .join("\n");
- }
- }
- } else {
- str = ctx.stylize("[Circular]", "special");
- }
- }
- if (isUndefined(name)) {
- if (array && key.match(/^\d+$/)) {
- return str;
- }
- name = JSON.stringify("" + key);
- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
- name = name.substr(1, name.length - 2);
- name = ctx.stylize(name, "name");
- } else {
- name = name
- .replace(/'/g, "\\'")
- .replace(/\\"/g, '"')
- .replace(/(^"|"$)/g, "'");
- name = ctx.stylize(name, "string");
- }
- }
- return name + ": " + str;
-}
-function reduceToSingleString(output, base, braces) {
- var numLinesEst = 0;
- var length = output.reduce(function (prev, cur) {
- numLinesEst++;
- if (cur.indexOf("\n") >= 0) numLinesEst++;
- return prev + cur.replace(/\u001b\[\d\d?m/g, "").length + 1;
- }, 0);
- if (length > 60) {
- return braces[0] + (base === "" ? "" : base + "\n ") + " " + output.join(",\n ") + " " + braces[1];
- }
- return braces[0] + base + " " + output.join(", ") + " " + braces[1];
-}
-const types = import.meta.require("node:util/types");
-exports.types = types;
-function isArray(ar) {
- return Array.isArray(ar);
-}
-exports.isArray = isArray;
-function isBoolean(arg) {
- return typeof arg === "boolean";
-}
-exports.isBoolean = isBoolean;
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-function isNumber(arg) {
- return typeof arg === "number";
-}
-exports.isNumber = isNumber;
-function isString(arg) {
- return typeof arg === "string";
-}
-exports.isString = isString;
-function isSymbol(arg) {
- return typeof arg === "symbol";
-}
-exports.isSymbol = isSymbol;
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-var isRegExp = (exports.isRegExp = exports.types.isRegExp);
-function isObject(arg) {
- return typeof arg === "object" && arg !== null;
-}
-exports.isObject = isObject;
-var isDate = (exports.isDate = exports.types.isDate);
-var isError = (exports.isError = exports.types.isNativeError);
-function isFunction(arg) {
- return typeof arg === "function";
-}
-var isFunction = (exports.isFunction = isFunction);
-function isPrimitive(arg) {
- return (
- arg === null ||
- typeof arg === "boolean" ||
- typeof arg === "number" ||
- typeof arg === "string" ||
- typeof arg === "symbol" ||
- typeof arg === "undefined"
- );
-}
-exports.isPrimitive = isPrimitive;
-exports.isBuffer = isBuffer;
-function pad(n) {
- return n < 10 ? "0" + n.toString(10) : n.toString(10);
-}
-var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
-function timestamp() {
- var d = new Date();
- var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(":");
- return [d.getDate(), months[d.getMonth()], time].join(" ");
-}
-var log = (exports.log = function () {
- console.log("%s - %s", timestamp(), exports.format.apply(exports, arguments));
-});
-var inherits = (exports.inherits = require_inherits_browser());
-var _extend = (exports._extend = function (origin, add) {
- if (!add || !isObject(add)) return origin;
- var keys = Object.keys(add);
- var i = keys.length;
- while (i--) {
- origin[keys[i]] = add[keys[i]];
- }
- return origin;
-});
-function hasOwnProperty(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-}
-var kCustomPromisifiedSymbol = Symbol.for("util.promisify.custom");
-var promisify = (exports.promisify = function promisify(original) {
- if (typeof original !== "function") throw new TypeError('The "original" argument must be of type Function');
- if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {
- var fn = original[kCustomPromisifiedSymbol];
- if (typeof fn !== "function") {
- throw new TypeError('The "util.promisify.custom" argument must be of type Function');
- }
- Object.defineProperty(fn, kCustomPromisifiedSymbol, {
- value: fn,
- enumerable: false,
- writable: false,
- configurable: true,
- });
- return fn;
- }
- function fn() {
- var promiseResolve, promiseReject;
- var promise = new Promise(function (resolve, reject) {
- promiseResolve = resolve;
- promiseReject = reject;
- });
- var args = [];
- for (var i = 0; i < arguments.length; i++) {
- args.push(arguments[i]);
- }
- args.push(function (err, value) {
- if (err) {
- promiseReject(err);
- } else {
- promiseResolve(value);
- }
- });
- try {
- original.apply(this, args);
- } catch (err) {
- promiseReject(err);
- }
- return promise;
- }
- Object.setPrototypeOf(fn, Object.getPrototypeOf(original));
- if (kCustomPromisifiedSymbol)
- Object.defineProperty(fn, kCustomPromisifiedSymbol, {
- value: fn,
- enumerable: false,
- writable: false,
- configurable: true,
- });
- return Object.defineProperties(fn, getOwnPropertyDescriptors(original));
-});
-exports.promisify.custom = kCustomPromisifiedSymbol;
-function callbackifyOnRejected(reason, cb) {
- if (!reason) {
- var newReason = new Error("Promise was rejected with a falsy value");
- newReason.reason = reason;
- reason = newReason;
- }
- return cb(reason);
-}
-function callbackify(original) {
- if (typeof original !== "function") {
- throw new TypeError('The "original" argument must be of type Function');
- }
- function callbackified() {
- var args = Array.prototype.slice.call(arguments);
- var maybeCb = args.pop();
- if (typeof maybeCb !== "function") {
- throw new TypeError("The last argument must be of type Function");
- }
- var self = this;
- var cb = function () {
- return maybeCb.apply(self, arguments);
- };
- original.apply(this, args).then(
- function (ret) {
- process.nextTick(cb, null, null, ret);
- },
- function (rej) {
- process.nextTick(callbackifyOnRejected, null, rej, cb);
- },
- );
- }
- Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));
- Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));
- return callbackified;
-}
-exports.callbackify = callbackify;
-export var TextDecoder = (exports.TextDecoder = globalThis.TextDecoder);
-export var TextEncoder = (exports.TextEncoder = globalThis.TextEncoder);
-exports[Symbol.for("CommonJS")] = 0;
-export default exports;
-
-export {
- format,
- deprecate,
- debuglog,
- inspect,
- isArray,
- isBoolean,
- isNull,
- isNullOrUndefined,
- isNumber,
- isString,
- isSymbol,
- isUndefined,
- isRegExp,
- isObject,
- isDate,
- isError,
- isFunction,
- isPrimitive,
- log,
- inherits,
- promisify,
- callbackify,
- isDeepStrictEqual,
-};
diff --git a/src/bun.js/v8.exports.js b/src/bun.js/v8.exports.js
deleted file mode 100644
index 4ac85fd3b..000000000
--- a/src/bun.js/v8.exports.js
+++ /dev/null
@@ -1,166 +0,0 @@
-// This is a stub! None of this is actually implemented yet.
-
-class TODO extends Error {
- constructor(messageName) {
- const message = messageName
- ? `node:v8 ${messageName} is not implemented yet in Bun. `
- : `node:v8 is not implemented yet in Bun`;
- super(message);
- this.name = "TODO";
- }
-}
-
-function hideFromStack(fns) {
- for (const fn of fns) {
- Object.defineProperty(fn, "name", {
- value: "::bunternal::",
- });
- }
-}
-
-function notimpl(message) {
- throw new TODO(message);
-}
-
-class Deserializer {
- constructor() {
- notimpl();
- }
-}
-class Serializer {
- constructor() {
- notimpl();
- }
-}
-class DefaultDeserializer extends Deserializer {}
-class DefaultSerializer extends Serializer {}
-class GCProfiler {
- constructor() {
- notimpl();
- }
-}
-
-function cachedDataVersionTag() {
- notimpl("cachedDataVersionTag");
-}
-function getHeapSnapshot() {
- notimpl("getHeapSnapshot");
-}
-function getHeapStatistics() {
- notimpl("getHeapStatistics");
-}
-function getHeapSpaceStatistics() {
- notimpl("getHeapSpaceStatistics");
-}
-function getHeapCodeStatistics() {
- notimpl("getHeapCodeStatistics");
-}
-function setFlagsFromString() {
- notimpl("setFlagsFromString");
-}
-function deserialize() {
- notimpl("deserialize");
-}
-function takeCoverage() {
- notimpl("takeCoverage");
-}
-function stopCoverage() {
- notimpl("stopCoverage");
-}
-function serialize() {
- notimpl("serialize");
-}
-function writeHeapSnapshot() {
- notimpl("writeHeapSnapshot");
-}
-function setHeapSnapshotNearHeapLimit() {
- notimpl("setHeapSnapshotNearHeapLimit");
-}
-const promiseHooks = {
- createHook: () => {
- notimpl("createHook");
- },
- onInit: () => {
- notimpl("onInit");
- },
- onBefore: () => {
- notimpl("onBefore");
- },
- onAfter: () => {
- notimpl("onAfter");
- },
- onSettled: () => {
- notimpl("onSettled");
- },
- },
- startupSnapshot = {
- addDeserializeCallback: () => notimpl("addDeserializeCallback"),
- addSerializeCallback: () => notimpl("addSerializeCallback"),
- setDeserializeMainFunction: () => notimpl("setDeserializeMainFunction"),
- isBuildingSnapshot: () => notimpl("isBuildingSnapshot"),
- };
-
-const defaultObject = {
- cachedDataVersionTag,
- getHeapSnapshot,
- getHeapStatistics,
- getHeapSpaceStatistics,
- getHeapCodeStatistics,
- setFlagsFromString,
- deserialize,
- takeCoverage,
- stopCoverage,
- serialize,
- writeHeapSnapshot,
- setHeapSnapshotNearHeapLimit,
- promiseHooks,
- startupSnapshot,
- Deserializer,
- Serializer,
- [Symbol.for("CommonJS")]: 0,
-};
-
-export {
- cachedDataVersionTag,
- getHeapSnapshot,
- getHeapStatistics,
- getHeapSpaceStatistics,
- getHeapCodeStatistics,
- setFlagsFromString,
- deserialize,
- takeCoverage,
- stopCoverage,
- serialize,
- writeHeapSnapshot,
- setHeapSnapshotNearHeapLimit,
- promiseHooks,
- startupSnapshot,
- Deserializer,
- Serializer,
- DefaultDeserializer,
- DefaultSerializer,
- GCProfiler,
- defaultObject as default,
-};
-
-hideFromStack([
- TODO.prototype.constructor,
- notimpl,
- cachedDataVersionTag,
- getHeapSnapshot,
- getHeapStatistics,
- getHeapSpaceStatistics,
- getHeapCodeStatistics,
- setFlagsFromString,
- deserialize,
- takeCoverage,
- stopCoverage,
- serialize,
- writeHeapSnapshot,
- setHeapSnapshotNearHeapLimit,
- Deserializer,
- Serializer,
- DefaultDeserializer,
- DefaultSerializer,
- GCProfiler,
-]);
diff --git a/src/bun.js/vm.exports.js b/src/bun.js/vm.exports.js
deleted file mode 100644
index fdc624540..000000000
--- a/src/bun.js/vm.exports.js
+++ /dev/null
@@ -1,56 +0,0 @@
-const lazy = globalThis[Symbol.for("Bun.lazy")];
-if (!lazy || typeof lazy !== "function") {
- throw new Error("Something went wrong while loading Bun. Expected 'Bun.lazy' to be defined.");
-}
-const vm = lazy("vm");
-
-class TODO extends Error {
- constructor(messageName) {
- const message = messageName
- ? `node:vm ${messageName} is not implemented yet in Bun. Track the status & thumbs up the issue: https://github.com/oven-sh/bun/issues/401`
- : `node:vm is not implemented yet in Bun. Track the status & thumbs up the issue: https://github.com/oven-sh/bun/issues/401`;
- super(message);
- this.name = "TODO";
- }
-}
-
-function notimpl(message) {
- throw new TODO(message);
-}
-
-const { createContext, isContext, Script, runInNewContext, runInThisContext } = vm;
-
-function runInContext(code, context, options) {
- return new Script(code, options).runInContext(context);
-}
-
-function compileFunction() {
- notimpl("compileFunction");
-}
-function measureMemory() {
- notimpl("measureMemory");
-}
-
-const defaultObject = {
- createContext,
- runInContext,
- runInNewContext,
- runInThisContext,
- isContext,
- compileFunction,
- measureMemory,
- Script,
- [Symbol.for("CommonJS")]: 0,
-};
-
-export {
- defaultObject as default,
- createContext,
- runInContext,
- runInNewContext,
- runInThisContext,
- isContext,
- compileFunction,
- measureMemory,
- Script,
-};
diff --git a/src/bun.js/wasi-runner.js b/src/bun.js/wasi-runner.js
deleted file mode 100644
index 6a89510b1..000000000
--- a/src/bun.js/wasi-runner.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/** --- WASI */
-// wasi is imported into the top of this file
-
-const filePath = process.argv.at(1);
-if (!filePath) {
- var err = new Error("To run a wasm file with Bun, the first argument must be a path to a .wasm file");
- err.name = "WasmFileNotFound";
- throw err;
-}
-
-// The module specifier is the resolved path to the wasm file
-
-var { WASM_CWD = process.cwd(), WASM_ROOT_DIR = "/", WASM_ENV_STR = undefined, WASM_USE_ASYNC_INIT = "" } = process.env;
-
-var env = process.env;
-if (WASM_ENV_STR?.length) {
- env = JSON.parse(WASM_ENV_STR);
-}
-
-const wasi = new WASI({
- args: process.argv.slice(1),
- env,
- preopens: {
- ".": WASM_CWD || process.cwd(),
- "/": WASM_ROOT_DIR || "/",
- },
-});
-
-let source = globalThis.wasmSourceBytes;
-if (!source) {
- const fs = Bun.fs();
- const file = import.meta.path;
- source = fs.readFileSync(file);
-}
-
-const wasm = new WebAssembly.Module(source);
-const instance = !WASM_USE_ASYNC_INIT
- ? new WebAssembly.Instance(wasm, wasi.getImports(wasm))
- : await WebAssembly.instantiate(wasm, wasi.getImports(wasm));
-wasi.start(instance);
-
-process.exit(0);
diff --git a/src/bun.js/wasi.exports.js b/src/bun.js/wasi.exports.js
deleted file mode 100644
index a01d88d6b..000000000
--- a/src/bun.js/wasi.exports.js
+++ /dev/null
@@ -1,1942 +0,0 @@
-// HUGE thanks to:
-// - @williamstein and https://github.com/sagemathinc/cowasm/tree/main/core/wasi-js
-// - @syrusakbary for wasmer-js https://github.com/wasmerio/wasmer-js
-// - Gus Caplan for node-wasi https://github.com/devsnek/node-wasi
-//
-// Eventually we will implement this in native code, but this is just a quick hack to get WASI working.
-
-/** **/
-// constants is injected into the top of this file
-const nodeFsConstants = constants;
-
-var __getOwnPropNames = Object.getOwnPropertyNames;
-
-var __commonJS = (cb, mod) =>
- function __require2() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-
-// node_modules/wasi-js/dist/types.js
-var require_types = __commonJS({
- "node_modules/wasi-js/dist/types.js"(exports) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.WASIKillError = exports.WASIExitError = exports.WASIError = void 0;
- var WASIError = class extends Error {
- constructor(errno) {
- super();
- this.errno = errno;
- Object.setPrototypeOf(this, WASIError.prototype);
- }
- };
- exports.WASIError = WASIError;
- var WASIExitError = class extends Error {
- constructor(code) {
- super(`WASI Exit error: ${code}`);
- this.code = code;
- Object.setPrototypeOf(this, WASIExitError.prototype);
- }
- };
- exports.WASIExitError = WASIExitError;
- var WASIKillError = class extends Error {
- constructor(signal) {
- super(`WASI Kill signal: ${signal}`);
- this.signal = signal;
- Object.setPrototypeOf(this, WASIKillError.prototype);
- }
- };
- exports.WASIKillError = WASIKillError;
- },
-});
-
-// node_modules/wasi-js/dist/constants.js
-var require_constants = __commonJS({
- "node_modules/wasi-js/dist/constants.js"(exports) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.WASI_ENOMSG =
- exports.WASI_ENOMEM =
- exports.WASI_ENOLINK =
- exports.WASI_ENOLCK =
- exports.WASI_ENOEXEC =
- exports.WASI_ENOENT =
- exports.WASI_ENODEV =
- exports.WASI_ENOBUFS =
- exports.WASI_ENFILE =
- exports.WASI_ENETUNREACH =
- exports.WASI_ENETRESET =
- exports.WASI_ENETDOWN =
- exports.WASI_ENAMETOOLONG =
- exports.WASI_EMULTIHOP =
- exports.WASI_EMSGSIZE =
- exports.WASI_EMLINK =
- exports.WASI_EMFILE =
- exports.WASI_ELOOP =
- exports.WASI_EISDIR =
- exports.WASI_EISCONN =
- exports.WASI_EIO =
- exports.WASI_EINVAL =
- exports.WASI_EINTR =
- exports.WASI_EINPROGRESS =
- exports.WASI_EILSEQ =
- exports.WASI_EIDRM =
- exports.WASI_EHOSTUNREACH =
- exports.WASI_EFBIG =
- exports.WASI_EFAULT =
- exports.WASI_EEXIST =
- exports.WASI_EDQUOT =
- exports.WASI_EDOM =
- exports.WASI_EDESTADDRREQ =
- exports.WASI_EDEADLK =
- exports.WASI_ECONNRESET =
- exports.WASI_ECONNREFUSED =
- exports.WASI_ECONNABORTED =
- exports.WASI_ECHILD =
- exports.WASI_ECANCELED =
- exports.WASI_EBUSY =
- exports.WASI_EBADMSG =
- exports.WASI_EBADF =
- exports.WASI_EALREADY =
- exports.WASI_EAGAIN =
- exports.WASI_EAFNOSUPPORT =
- exports.WASI_EADDRNOTAVAIL =
- exports.WASI_EADDRINUSE =
- exports.WASI_EACCES =
- exports.WASI_E2BIG =
- exports.WASI_ESUCCESS =
- void 0;
- exports.WASI_SIGVTALRM =
- exports.WASI_SIGUSR2 =
- exports.WASI_SIGUSR1 =
- exports.WASI_SIGURG =
- exports.WASI_SIGTTOU =
- exports.WASI_SIGTTIN =
- exports.WASI_SIGTSTP =
- exports.WASI_SIGTRAP =
- exports.WASI_SIGTERM =
- exports.WASI_SIGSTOP =
- exports.WASI_SIGSEGV =
- exports.WASI_SIGQUIT =
- exports.WASI_SIGPIPE =
- exports.WASI_SIGKILL =
- exports.WASI_SIGINT =
- exports.WASI_SIGILL =
- exports.WASI_SIGHUP =
- exports.WASI_SIGFPE =
- exports.WASI_SIGCONT =
- exports.WASI_SIGCHLD =
- exports.WASI_SIGBUS =
- exports.WASI_SIGALRM =
- exports.WASI_SIGABRT =
- exports.WASI_ENOTCAPABLE =
- exports.WASI_EXDEV =
- exports.WASI_ETXTBSY =
- exports.WASI_ETIMEDOUT =
- exports.WASI_ESTALE =
- exports.WASI_ESRCH =
- exports.WASI_ESPIPE =
- exports.WASI_EROFS =
- exports.WASI_ERANGE =
- exports.WASI_EPROTOTYPE =
- exports.WASI_EPROTONOSUPPORT =
- exports.WASI_EPROTO =
- exports.WASI_EPIPE =
- exports.WASI_EPERM =
- exports.WASI_EOWNERDEAD =
- exports.WASI_EOVERFLOW =
- exports.WASI_ENXIO =
- exports.WASI_ENOTTY =
- exports.WASI_ENOTSUP =
- exports.WASI_ENOTSOCK =
- exports.WASI_ENOTRECOVERABLE =
- exports.WASI_ENOTEMPTY =
- exports.WASI_ENOTDIR =
- exports.WASI_ENOTCONN =
- exports.WASI_ENOSYS =
- exports.WASI_ENOSPC =
- exports.WASI_ENOPROTOOPT =
- void 0;
- exports.RIGHTS_REGULAR_FILE_BASE =
- exports.RIGHTS_CHARACTER_DEVICE_INHERITING =
- exports.RIGHTS_CHARACTER_DEVICE_BASE =
- exports.RIGHTS_BLOCK_DEVICE_INHERITING =
- exports.RIGHTS_BLOCK_DEVICE_BASE =
- exports.RIGHTS_ALL =
- exports.WASI_RIGHT_SOCK_SHUTDOWN =
- exports.WASI_RIGHT_POLL_FD_READWRITE =
- exports.WASI_RIGHT_PATH_UNLINK_FILE =
- exports.WASI_RIGHT_PATH_REMOVE_DIRECTORY =
- exports.WASI_RIGHT_PATH_SYMLINK =
- exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES =
- exports.WASI_RIGHT_FD_FILESTAT_SET_SIZE =
- exports.WASI_RIGHT_FD_FILESTAT_GET =
- exports.WASI_RIGHT_PATH_FILESTAT_SET_TIMES =
- exports.WASI_RIGHT_PATH_FILESTAT_SET_SIZE =
- exports.WASI_RIGHT_PATH_FILESTAT_GET =
- exports.WASI_RIGHT_PATH_RENAME_TARGET =
- exports.WASI_RIGHT_PATH_RENAME_SOURCE =
- exports.WASI_RIGHT_PATH_READLINK =
- exports.WASI_RIGHT_FD_READDIR =
- exports.WASI_RIGHT_PATH_OPEN =
- exports.WASI_RIGHT_PATH_LINK_TARGET =
- exports.WASI_RIGHT_PATH_LINK_SOURCE =
- exports.WASI_RIGHT_PATH_CREATE_FILE =
- exports.WASI_RIGHT_PATH_CREATE_DIRECTORY =
- exports.WASI_RIGHT_FD_ALLOCATE =
- exports.WASI_RIGHT_FD_ADVISE =
- exports.WASI_RIGHT_FD_WRITE =
- exports.WASI_RIGHT_FD_TELL =
- exports.WASI_RIGHT_FD_SYNC =
- exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS =
- exports.WASI_RIGHT_FD_SEEK =
- exports.WASI_RIGHT_FD_READ =
- exports.WASI_RIGHT_FD_DATASYNC =
- exports.WASI_FDFLAG_SYNC =
- exports.WASI_FDFLAG_RSYNC =
- exports.WASI_FDFLAG_NONBLOCK =
- exports.WASI_FDFLAG_DSYNC =
- exports.WASI_FDFLAG_APPEND =
- exports.WASI_FILETYPE_SYMBOLIC_LINK =
- exports.WASI_FILETYPE_SOCKET_STREAM =
- exports.WASI_FILETYPE_SOCKET_DGRAM =
- exports.WASI_FILETYPE_REGULAR_FILE =
- exports.WASI_FILETYPE_DIRECTORY =
- exports.WASI_FILETYPE_CHARACTER_DEVICE =
- exports.WASI_FILETYPE_BLOCK_DEVICE =
- exports.WASI_FILETYPE_UNKNOWN =
- exports.WASI_SIGXFSZ =
- exports.WASI_SIGXCPU =
- void 0;
- exports.SIGNAL_MAP =
- exports.ERROR_MAP =
- exports.WASI_WHENCE_END =
- exports.WASI_WHENCE_CUR =
- exports.WASI_WHENCE_SET =
- exports.WASI_STDERR_FILENO =
- exports.WASI_STDOUT_FILENO =
- exports.WASI_STDIN_FILENO =
- exports.WASI_DIRCOOKIE_START =
- exports.WASI_PREOPENTYPE_DIR =
- exports.WASI_O_TRUNC =
- exports.WASI_O_EXCL =
- exports.WASI_O_DIRECTORY =
- exports.WASI_O_CREAT =
- exports.WASI_FILESTAT_SET_MTIM_NOW =
- exports.WASI_FILESTAT_SET_MTIM =
- exports.WASI_FILESTAT_SET_ATIM_NOW =
- exports.WASI_FILESTAT_SET_ATIM =
- exports.WASI_EVENTTYPE_FD_WRITE =
- exports.WASI_EVENTTYPE_FD_READ =
- exports.WASI_EVENTTYPE_CLOCK =
- exports.WASI_CLOCK_THREAD_CPUTIME_ID =
- exports.WASI_CLOCK_PROCESS_CPUTIME_ID =
- exports.WASI_CLOCK_MONOTONIC =
- exports.WASI_CLOCK_REALTIME =
- exports.RIGHTS_TTY_INHERITING =
- exports.RIGHTS_TTY_BASE =
- exports.RIGHTS_SOCKET_INHERITING =
- exports.RIGHTS_SOCKET_BASE =
- exports.RIGHTS_DIRECTORY_INHERITING =
- exports.RIGHTS_DIRECTORY_BASE =
- exports.RIGHTS_REGULAR_FILE_INHERITING =
- void 0;
- exports.WASI_ESUCCESS = 0;
- exports.WASI_E2BIG = 1;
- exports.WASI_EACCES = 2;
- exports.WASI_EADDRINUSE = 3;
- exports.WASI_EADDRNOTAVAIL = 4;
- exports.WASI_EAFNOSUPPORT = 5;
- exports.WASI_EAGAIN = 6;
- exports.WASI_EALREADY = 7;
- exports.WASI_EBADF = 8;
- exports.WASI_EBADMSG = 9;
- exports.WASI_EBUSY = 10;
- exports.WASI_ECANCELED = 11;
- exports.WASI_ECHILD = 12;
- exports.WASI_ECONNABORTED = 13;
- exports.WASI_ECONNREFUSED = 14;
- exports.WASI_ECONNRESET = 15;
- exports.WASI_EDEADLK = 16;
- exports.WASI_EDESTADDRREQ = 17;
- exports.WASI_EDOM = 18;
- exports.WASI_EDQUOT = 19;
- exports.WASI_EEXIST = 20;
- exports.WASI_EFAULT = 21;
- exports.WASI_EFBIG = 22;
- exports.WASI_EHOSTUNREACH = 23;
- exports.WASI_EIDRM = 24;
- exports.WASI_EILSEQ = 25;
- exports.WASI_EINPROGRESS = 26;
- exports.WASI_EINTR = 27;
- exports.WASI_EINVAL = 28;
- exports.WASI_EIO = 29;
- exports.WASI_EISCONN = 30;
- exports.WASI_EISDIR = 31;
- exports.WASI_ELOOP = 32;
- exports.WASI_EMFILE = 33;
- exports.WASI_EMLINK = 34;
- exports.WASI_EMSGSIZE = 35;
- exports.WASI_EMULTIHOP = 36;
- exports.WASI_ENAMETOOLONG = 37;
- exports.WASI_ENETDOWN = 38;
- exports.WASI_ENETRESET = 39;
- exports.WASI_ENETUNREACH = 40;
- exports.WASI_ENFILE = 41;
- exports.WASI_ENOBUFS = 42;
- exports.WASI_ENODEV = 43;
- exports.WASI_ENOENT = 44;
- exports.WASI_ENOEXEC = 45;
- exports.WASI_ENOLCK = 46;
- exports.WASI_ENOLINK = 47;
- exports.WASI_ENOMEM = 48;
- exports.WASI_ENOMSG = 49;
- exports.WASI_ENOPROTOOPT = 50;
- exports.WASI_ENOSPC = 51;
- exports.WASI_ENOSYS = 52;
- exports.WASI_ENOTCONN = 53;
- exports.WASI_ENOTDIR = 54;
- exports.WASI_ENOTEMPTY = 55;
- exports.WASI_ENOTRECOVERABLE = 56;
- exports.WASI_ENOTSOCK = 57;
- exports.WASI_ENOTSUP = 58;
- exports.WASI_ENOTTY = 59;
- exports.WASI_ENXIO = 60;
- exports.WASI_EOVERFLOW = 61;
- exports.WASI_EOWNERDEAD = 62;
- exports.WASI_EPERM = 63;
- exports.WASI_EPIPE = 64;
- exports.WASI_EPROTO = 65;
- exports.WASI_EPROTONOSUPPORT = 66;
- exports.WASI_EPROTOTYPE = 67;
- exports.WASI_ERANGE = 68;
- exports.WASI_EROFS = 69;
- exports.WASI_ESPIPE = 70;
- exports.WASI_ESRCH = 71;
- exports.WASI_ESTALE = 72;
- exports.WASI_ETIMEDOUT = 73;
- exports.WASI_ETXTBSY = 74;
- exports.WASI_EXDEV = 75;
- exports.WASI_ENOTCAPABLE = 76;
- exports.WASI_SIGABRT = 0;
- exports.WASI_SIGALRM = 1;
- exports.WASI_SIGBUS = 2;
- exports.WASI_SIGCHLD = 3;
- exports.WASI_SIGCONT = 4;
- exports.WASI_SIGFPE = 5;
- exports.WASI_SIGHUP = 6;
- exports.WASI_SIGILL = 7;
- exports.WASI_SIGINT = 8;
- exports.WASI_SIGKILL = 9;
- exports.WASI_SIGPIPE = 10;
- exports.WASI_SIGQUIT = 11;
- exports.WASI_SIGSEGV = 12;
- exports.WASI_SIGSTOP = 13;
- exports.WASI_SIGTERM = 14;
- exports.WASI_SIGTRAP = 15;
- exports.WASI_SIGTSTP = 16;
- exports.WASI_SIGTTIN = 17;
- exports.WASI_SIGTTOU = 18;
- exports.WASI_SIGURG = 19;
- exports.WASI_SIGUSR1 = 20;
- exports.WASI_SIGUSR2 = 21;
- exports.WASI_SIGVTALRM = 22;
- exports.WASI_SIGXCPU = 23;
- exports.WASI_SIGXFSZ = 24;
- exports.WASI_FILETYPE_UNKNOWN = 0;
- exports.WASI_FILETYPE_BLOCK_DEVICE = 1;
- exports.WASI_FILETYPE_CHARACTER_DEVICE = 2;
- exports.WASI_FILETYPE_DIRECTORY = 3;
- exports.WASI_FILETYPE_REGULAR_FILE = 4;
- exports.WASI_FILETYPE_SOCKET_DGRAM = 5;
- exports.WASI_FILETYPE_SOCKET_STREAM = 6;
- exports.WASI_FILETYPE_SYMBOLIC_LINK = 7;
- exports.WASI_FDFLAG_APPEND = 1;
- exports.WASI_FDFLAG_DSYNC = 2;
- exports.WASI_FDFLAG_NONBLOCK = 4;
- exports.WASI_FDFLAG_RSYNC = 8;
- exports.WASI_FDFLAG_SYNC = 16;
- exports.WASI_RIGHT_FD_DATASYNC = BigInt(1);
- exports.WASI_RIGHT_FD_READ = BigInt(2);
- exports.WASI_RIGHT_FD_SEEK = BigInt(4);
- exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS = BigInt(8);
- exports.WASI_RIGHT_FD_SYNC = BigInt(16);
- exports.WASI_RIGHT_FD_TELL = BigInt(32);
- exports.WASI_RIGHT_FD_WRITE = BigInt(64);
- exports.WASI_RIGHT_FD_ADVISE = BigInt(128);
- exports.WASI_RIGHT_FD_ALLOCATE = BigInt(256);
- exports.WASI_RIGHT_PATH_CREATE_DIRECTORY = BigInt(512);
- exports.WASI_RIGHT_PATH_CREATE_FILE = BigInt(1024);
- exports.WASI_RIGHT_PATH_LINK_SOURCE = BigInt(2048);
- exports.WASI_RIGHT_PATH_LINK_TARGET = BigInt(4096);
- exports.WASI_RIGHT_PATH_OPEN = BigInt(8192);
- exports.WASI_RIGHT_FD_READDIR = BigInt(16384);
- exports.WASI_RIGHT_PATH_READLINK = BigInt(32768);
- exports.WASI_RIGHT_PATH_RENAME_SOURCE = BigInt(65536);
- exports.WASI_RIGHT_PATH_RENAME_TARGET = BigInt(131072);
- exports.WASI_RIGHT_PATH_FILESTAT_GET = BigInt(262144);
- exports.WASI_RIGHT_PATH_FILESTAT_SET_SIZE = BigInt(524288);
- exports.WASI_RIGHT_PATH_FILESTAT_SET_TIMES = BigInt(1048576);
- exports.WASI_RIGHT_FD_FILESTAT_GET = BigInt(2097152);
- exports.WASI_RIGHT_FD_FILESTAT_SET_SIZE = BigInt(4194304);
- exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES = BigInt(8388608);
- exports.WASI_RIGHT_PATH_SYMLINK = BigInt(16777216);
- exports.WASI_RIGHT_PATH_REMOVE_DIRECTORY = BigInt(33554432);
- exports.WASI_RIGHT_PATH_UNLINK_FILE = BigInt(67108864);
- exports.WASI_RIGHT_POLL_FD_READWRITE = BigInt(134217728);
- exports.WASI_RIGHT_SOCK_SHUTDOWN = BigInt(268435456);
- exports.RIGHTS_ALL =
- exports.WASI_RIGHT_FD_DATASYNC |
- exports.WASI_RIGHT_FD_READ |
- exports.WASI_RIGHT_FD_SEEK |
- exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
- exports.WASI_RIGHT_FD_SYNC |
- exports.WASI_RIGHT_FD_TELL |
- exports.WASI_RIGHT_FD_WRITE |
- exports.WASI_RIGHT_FD_ADVISE |
- exports.WASI_RIGHT_FD_ALLOCATE |
- exports.WASI_RIGHT_PATH_CREATE_DIRECTORY |
- exports.WASI_RIGHT_PATH_CREATE_FILE |
- exports.WASI_RIGHT_PATH_LINK_SOURCE |
- exports.WASI_RIGHT_PATH_LINK_TARGET |
- exports.WASI_RIGHT_PATH_OPEN |
- exports.WASI_RIGHT_FD_READDIR |
- exports.WASI_RIGHT_PATH_READLINK |
- exports.WASI_RIGHT_PATH_RENAME_SOURCE |
- exports.WASI_RIGHT_PATH_RENAME_TARGET |
- exports.WASI_RIGHT_PATH_FILESTAT_GET |
- exports.WASI_RIGHT_PATH_FILESTAT_SET_SIZE |
- exports.WASI_RIGHT_PATH_FILESTAT_SET_TIMES |
- exports.WASI_RIGHT_FD_FILESTAT_GET |
- exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES |
- exports.WASI_RIGHT_FD_FILESTAT_SET_SIZE |
- exports.WASI_RIGHT_PATH_SYMLINK |
- exports.WASI_RIGHT_PATH_UNLINK_FILE |
- exports.WASI_RIGHT_PATH_REMOVE_DIRECTORY |
- exports.WASI_RIGHT_POLL_FD_READWRITE |
- exports.WASI_RIGHT_SOCK_SHUTDOWN;
- exports.RIGHTS_BLOCK_DEVICE_BASE = exports.RIGHTS_ALL;
- exports.RIGHTS_BLOCK_DEVICE_INHERITING = exports.RIGHTS_ALL;
- exports.RIGHTS_CHARACTER_DEVICE_BASE = exports.RIGHTS_ALL;
- exports.RIGHTS_CHARACTER_DEVICE_INHERITING = exports.RIGHTS_ALL;
- exports.RIGHTS_REGULAR_FILE_BASE =
- exports.WASI_RIGHT_FD_DATASYNC |
- exports.WASI_RIGHT_FD_READ |
- exports.WASI_RIGHT_FD_SEEK |
- exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
- exports.WASI_RIGHT_FD_SYNC |
- exports.WASI_RIGHT_FD_TELL |
- exports.WASI_RIGHT_FD_WRITE |
- exports.WASI_RIGHT_FD_ADVISE |
- exports.WASI_RIGHT_FD_ALLOCATE |
- exports.WASI_RIGHT_FD_FILESTAT_GET |
- exports.WASI_RIGHT_FD_FILESTAT_SET_SIZE |
- exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES |
- exports.WASI_RIGHT_POLL_FD_READWRITE;
- exports.RIGHTS_REGULAR_FILE_INHERITING = BigInt(0);
- exports.RIGHTS_DIRECTORY_BASE =
- exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
- exports.WASI_RIGHT_FD_SYNC |
- exports.WASI_RIGHT_FD_ADVISE |
- exports.WASI_RIGHT_PATH_CREATE_DIRECTORY |
- exports.WASI_RIGHT_PATH_CREATE_FILE |
- exports.WASI_RIGHT_PATH_LINK_SOURCE |
- exports.WASI_RIGHT_PATH_LINK_TARGET |
- exports.WASI_RIGHT_PATH_OPEN |
- exports.WASI_RIGHT_FD_READDIR |
- exports.WASI_RIGHT_PATH_READLINK |
- exports.WASI_RIGHT_PATH_RENAME_SOURCE |
- exports.WASI_RIGHT_PATH_RENAME_TARGET |
- exports.WASI_RIGHT_PATH_FILESTAT_GET |
- exports.WASI_RIGHT_PATH_FILESTAT_SET_SIZE |
- exports.WASI_RIGHT_PATH_FILESTAT_SET_TIMES |
- exports.WASI_RIGHT_FD_FILESTAT_GET |
- exports.WASI_RIGHT_FD_FILESTAT_SET_TIMES |
- exports.WASI_RIGHT_PATH_SYMLINK |
- exports.WASI_RIGHT_PATH_UNLINK_FILE |
- exports.WASI_RIGHT_PATH_REMOVE_DIRECTORY |
- exports.WASI_RIGHT_POLL_FD_READWRITE;
- exports.RIGHTS_DIRECTORY_INHERITING = exports.RIGHTS_DIRECTORY_BASE | exports.RIGHTS_REGULAR_FILE_BASE;
- exports.RIGHTS_SOCKET_BASE =
- exports.WASI_RIGHT_FD_READ |
- exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
- exports.WASI_RIGHT_FD_WRITE |
- exports.WASI_RIGHT_FD_FILESTAT_GET |
- exports.WASI_RIGHT_POLL_FD_READWRITE |
- exports.WASI_RIGHT_SOCK_SHUTDOWN;
- exports.RIGHTS_SOCKET_INHERITING = exports.RIGHTS_ALL;
- exports.RIGHTS_TTY_BASE =
- exports.WASI_RIGHT_FD_READ |
- exports.WASI_RIGHT_FD_FDSTAT_SET_FLAGS |
- exports.WASI_RIGHT_FD_WRITE |
- exports.WASI_RIGHT_FD_FILESTAT_GET |
- exports.WASI_RIGHT_POLL_FD_READWRITE;
- exports.RIGHTS_TTY_INHERITING = BigInt(0);
- exports.WASI_CLOCK_REALTIME = 0;
- exports.WASI_CLOCK_MONOTONIC = 1;
- exports.WASI_CLOCK_PROCESS_CPUTIME_ID = 2;
- exports.WASI_CLOCK_THREAD_CPUTIME_ID = 3;
- exports.WASI_EVENTTYPE_CLOCK = 0;
- exports.WASI_EVENTTYPE_FD_READ = 1;
- exports.WASI_EVENTTYPE_FD_WRITE = 2;
- exports.WASI_FILESTAT_SET_ATIM = 1 << 0;
- exports.WASI_FILESTAT_SET_ATIM_NOW = 1 << 1;
- exports.WASI_FILESTAT_SET_MTIM = 1 << 2;
- exports.WASI_FILESTAT_SET_MTIM_NOW = 1 << 3;
- exports.WASI_O_CREAT = 1 << 0;
- exports.WASI_O_DIRECTORY = 1 << 1;
- exports.WASI_O_EXCL = 1 << 2;
- exports.WASI_O_TRUNC = 1 << 3;
- exports.WASI_PREOPENTYPE_DIR = 0;
- exports.WASI_DIRCOOKIE_START = 0;
- exports.WASI_STDIN_FILENO = 0;
- exports.WASI_STDOUT_FILENO = 1;
- exports.WASI_STDERR_FILENO = 2;
- exports.WASI_WHENCE_SET = 0;
- exports.WASI_WHENCE_CUR = 1;
- exports.WASI_WHENCE_END = 2;
- exports.ERROR_MAP = {
- E2BIG: exports.WASI_E2BIG,
- EACCES: exports.WASI_EACCES,
- EADDRINUSE: exports.WASI_EADDRINUSE,
- EADDRNOTAVAIL: exports.WASI_EADDRNOTAVAIL,
- EAFNOSUPPORT: exports.WASI_EAFNOSUPPORT,
- EALREADY: exports.WASI_EALREADY,
- EAGAIN: exports.WASI_EAGAIN,
- EBADF: exports.WASI_EBADF,
- EBADMSG: exports.WASI_EBADMSG,
- EBUSY: exports.WASI_EBUSY,
- ECANCELED: exports.WASI_ECANCELED,
- ECHILD: exports.WASI_ECHILD,
- ECONNABORTED: exports.WASI_ECONNABORTED,
- ECONNREFUSED: exports.WASI_ECONNREFUSED,
- ECONNRESET: exports.WASI_ECONNRESET,
- EDEADLOCK: exports.WASI_EDEADLK,
- EDESTADDRREQ: exports.WASI_EDESTADDRREQ,
- EDOM: exports.WASI_EDOM,
- EDQUOT: exports.WASI_EDQUOT,
- EEXIST: exports.WASI_EEXIST,
- EFAULT: exports.WASI_EFAULT,
- EFBIG: exports.WASI_EFBIG,
- EHOSTDOWN: exports.WASI_EHOSTUNREACH,
- EHOSTUNREACH: exports.WASI_EHOSTUNREACH,
- EIDRM: exports.WASI_EIDRM,
- EILSEQ: exports.WASI_EILSEQ,
- EINPROGRESS: exports.WASI_EINPROGRESS,
- EINTR: exports.WASI_EINTR,
- EINVAL: exports.WASI_EINVAL,
- EIO: exports.WASI_EIO,
- EISCONN: exports.WASI_EISCONN,
- EISDIR: exports.WASI_EISDIR,
- ELOOP: exports.WASI_ELOOP,
- EMFILE: exports.WASI_EMFILE,
- EMLINK: exports.WASI_EMLINK,
- EMSGSIZE: exports.WASI_EMSGSIZE,
- EMULTIHOP: exports.WASI_EMULTIHOP,
- ENAMETOOLONG: exports.WASI_ENAMETOOLONG,
- ENETDOWN: exports.WASI_ENETDOWN,
- ENETRESET: exports.WASI_ENETRESET,
- ENETUNREACH: exports.WASI_ENETUNREACH,
- ENFILE: exports.WASI_ENFILE,
- ENOBUFS: exports.WASI_ENOBUFS,
- ENODEV: exports.WASI_ENODEV,
- ENOENT: exports.WASI_ENOENT,
- ENOEXEC: exports.WASI_ENOEXEC,
- ENOLCK: exports.WASI_ENOLCK,
- ENOLINK: exports.WASI_ENOLINK,
- ENOMEM: exports.WASI_ENOMEM,
- ENOMSG: exports.WASI_ENOMSG,
- ENOPROTOOPT: exports.WASI_ENOPROTOOPT,
- ENOSPC: exports.WASI_ENOSPC,
- ENOSYS: exports.WASI_ENOSYS,
- ENOTCONN: exports.WASI_ENOTCONN,
- ENOTDIR: exports.WASI_ENOTDIR,
- ENOTEMPTY: exports.WASI_ENOTEMPTY,
- ENOTRECOVERABLE: exports.WASI_ENOTRECOVERABLE,
- ENOTSOCK: exports.WASI_ENOTSOCK,
- ENOTTY: exports.WASI_ENOTTY,
- ENXIO: exports.WASI_ENXIO,
- EOVERFLOW: exports.WASI_EOVERFLOW,
- EOWNERDEAD: exports.WASI_EOWNERDEAD,
- EPERM: exports.WASI_EPERM,
- EPIPE: exports.WASI_EPIPE,
- EPROTO: exports.WASI_EPROTO,
- EPROTONOSUPPORT: exports.WASI_EPROTONOSUPPORT,
- EPROTOTYPE: exports.WASI_EPROTOTYPE,
- ERANGE: exports.WASI_ERANGE,
- EROFS: exports.WASI_EROFS,
- ESPIPE: exports.WASI_ESPIPE,
- ESRCH: exports.WASI_ESRCH,
- ESTALE: exports.WASI_ESTALE,
- ETIMEDOUT: exports.WASI_ETIMEDOUT,
- ETXTBSY: exports.WASI_ETXTBSY,
- EXDEV: exports.WASI_EXDEV,
- };
- exports.SIGNAL_MAP = {
- [exports.WASI_SIGHUP]: "SIGHUP",
- [exports.WASI_SIGINT]: "SIGINT",
- [exports.WASI_SIGQUIT]: "SIGQUIT",
- [exports.WASI_SIGILL]: "SIGILL",
- [exports.WASI_SIGTRAP]: "SIGTRAP",
- [exports.WASI_SIGABRT]: "SIGABRT",
- [exports.WASI_SIGBUS]: "SIGBUS",
- [exports.WASI_SIGFPE]: "SIGFPE",
- [exports.WASI_SIGKILL]: "SIGKILL",
- [exports.WASI_SIGUSR1]: "SIGUSR1",
- [exports.WASI_SIGSEGV]: "SIGSEGV",
- [exports.WASI_SIGUSR2]: "SIGUSR2",
- [exports.WASI_SIGPIPE]: "SIGPIPE",
- [exports.WASI_SIGALRM]: "SIGALRM",
- [exports.WASI_SIGTERM]: "SIGTERM",
- [exports.WASI_SIGCHLD]: "SIGCHLD",
- [exports.WASI_SIGCONT]: "SIGCONT",
- [exports.WASI_SIGSTOP]: "SIGSTOP",
- [exports.WASI_SIGTSTP]: "SIGTSTP",
- [exports.WASI_SIGTTIN]: "SIGTTIN",
- [exports.WASI_SIGTTOU]: "SIGTTOU",
- [exports.WASI_SIGURG]: "SIGURG",
- [exports.WASI_SIGXCPU]: "SIGXCPU",
- [exports.WASI_SIGXFSZ]: "SIGXFSZ",
- [exports.WASI_SIGVTALRM]: "SIGVTALRM",
- };
- },
-});
-
-// node_modules/wasi-js/dist/wasi.js
-var require_wasi = __commonJS({
- "node_modules/wasi-js/dist/wasi.js"(exports) {
- var __importDefault =
- (exports && exports.__importDefault) ||
- function (mod) {
- return mod && mod.__esModule ? mod : { default: mod };
- };
- let fs;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SOCKET_DEFAULT_RIGHTS = void 0;
- var log = () => {};
- var logOpen = () => {};
- var SC_OPEN_MAX = 32768;
- var types_1 = require_types();
-
- var constants_1 = require_constants();
- var STDIN_DEFAULT_RIGHTS =
- constants_1.WASI_RIGHT_FD_DATASYNC |
- constants_1.WASI_RIGHT_FD_READ |
- constants_1.WASI_RIGHT_FD_SYNC |
- constants_1.WASI_RIGHT_FD_ADVISE |
- constants_1.WASI_RIGHT_FD_FILESTAT_GET |
- constants_1.WASI_RIGHT_POLL_FD_READWRITE;
- var STDOUT_DEFAULT_RIGHTS =
- constants_1.WASI_RIGHT_FD_DATASYNC |
- constants_1.WASI_RIGHT_FD_WRITE |
- constants_1.WASI_RIGHT_FD_SYNC |
- constants_1.WASI_RIGHT_FD_ADVISE |
- constants_1.WASI_RIGHT_FD_FILESTAT_GET |
- constants_1.WASI_RIGHT_POLL_FD_READWRITE;
- var STDERR_DEFAULT_RIGHTS = STDOUT_DEFAULT_RIGHTS;
- exports.SOCKET_DEFAULT_RIGHTS =
- constants_1.WASI_RIGHT_FD_DATASYNC |
- constants_1.WASI_RIGHT_FD_READ |
- constants_1.WASI_RIGHT_FD_WRITE |
- constants_1.WASI_RIGHT_FD_ADVISE |
- constants_1.WASI_RIGHT_FD_FILESTAT_GET |
- constants_1.WASI_RIGHT_POLL_FD_READWRITE |
- constants_1.WASI_RIGHT_FD_FDSTAT_SET_FLAGS;
- var msToNs = ms => {
- const msInt = Math.trunc(ms);
-
- const decimal = BigInt(Math.round((ms - msInt) * 1e6));
- const ns = BigInt(msInt) * BigInt(1e6);
- return ns + decimal;
- };
- var nsToMs = ns => {
- if (typeof ns === "number") {
- ns = Math.trunc(ns);
- }
- const nsInt = BigInt(ns);
- return Number(nsInt / BigInt(1e6));
- };
- var wrap =
- f =>
- (...args) => {
- try {
- return f(...args);
- } catch (err) {
- let e = err;
- while (e.prev != null) {
- e = e.prev;
- }
- if (e?.code && typeof e?.code === "string") {
- return constants_1.ERROR_MAP[e.code] || constants_1.WASI_EINVAL;
- }
- if (e instanceof types_1.WASIError) {
- return e.errno;
- }
- throw e;
- }
- };
- var stat = (wasi, fd) => {
- const entry = wasi.FD_MAP.get(fd);
- if (!entry) {
- throw new types_1.WASIError(constants_1.WASI_EBADF);
- }
- if (entry.filetype === void 0) {
- const stats = wasi.fstatSync(entry.real);
- const { filetype, rightsBase, rightsInheriting } = translateFileAttributes(wasi, fd, stats);
- entry.filetype = filetype;
- if (!entry.rights) {
- entry.rights = {
- base: rightsBase,
- inheriting: rightsInheriting,
- };
- }
- }
- return entry;
- };
- var translateFileAttributes = (wasi, fd, stats) => {
- switch (true) {
- case stats.isBlockDevice():
- return {
- filetype: constants_1.WASI_FILETYPE_BLOCK_DEVICE,
- rightsBase: constants_1.RIGHTS_BLOCK_DEVICE_BASE,
- rightsInheriting: constants_1.RIGHTS_BLOCK_DEVICE_INHERITING,
- };
- case stats.isCharacterDevice(): {
- const filetype = constants_1.WASI_FILETYPE_CHARACTER_DEVICE;
- if (fd !== void 0 && wasi.bindings.isTTY(fd)) {
- return {
- filetype,
- rightsBase: constants_1.RIGHTS_TTY_BASE,
- rightsInheriting: constants_1.RIGHTS_TTY_INHERITING,
- };
- }
- return {
- filetype,
- rightsBase: constants_1.RIGHTS_CHARACTER_DEVICE_BASE,
- rightsInheriting: constants_1.RIGHTS_CHARACTER_DEVICE_INHERITING,
- };
- }
- case stats.isDirectory():
- return {
- filetype: constants_1.WASI_FILETYPE_DIRECTORY,
- rightsBase: constants_1.RIGHTS_DIRECTORY_BASE,
- rightsInheriting: constants_1.RIGHTS_DIRECTORY_INHERITING,
- };
- case stats.isFIFO():
- return {
- filetype: constants_1.WASI_FILETYPE_SOCKET_STREAM,
- rightsBase: constants_1.RIGHTS_SOCKET_BASE,
- rightsInheriting: constants_1.RIGHTS_SOCKET_INHERITING,
- };
- case stats.isFile():
- return {
- filetype: constants_1.WASI_FILETYPE_REGULAR_FILE,
- rightsBase: constants_1.RIGHTS_REGULAR_FILE_BASE,
- rightsInheriting: constants_1.RIGHTS_REGULAR_FILE_INHERITING,
- };
- case stats.isSocket():
- return {
- filetype: constants_1.WASI_FILETYPE_SOCKET_STREAM,
- rightsBase: constants_1.RIGHTS_SOCKET_BASE,
- rightsInheriting: constants_1.RIGHTS_SOCKET_INHERITING,
- };
- case stats.isSymbolicLink():
- return {
- filetype: constants_1.WASI_FILETYPE_SYMBOLIC_LINK,
- rightsBase: BigInt(0),
- rightsInheriting: BigInt(0),
- };
- default:
- return {
- filetype: constants_1.WASI_FILETYPE_UNKNOWN,
- rightsBase: BigInt(0),
- rightsInheriting: BigInt(0),
- };
- }
- };
- var warnedAboutSleep = false;
-
- var defaultConfig;
- function getDefaults() {
- if (defaultConfig) return defaultConfig;
-
- const defaultBindings = {
- hrtime: () => process.hrtime.bigint(),
- exit: code => {
- process.exit(code);
- },
- kill: signal => {
- process.kill(process.pid, signal);
- },
- randomFillSync: array => crypto.getRandomValues(array),
- isTTY: fd => import.meta.require("node:tty").isatty(fd),
- fs: Bun.fs(),
- path: import.meta.require("node:path"),
- };
-
- return (defaultConfig = {
- args: [],
- env: {},
- preopens: {},
- bindings: defaultBindings,
- sleep: ms => {
- Bun.sleepSync(ms);
- },
- });
- }
-
- var WASI = class WASI {
- constructor(wasiConfig = {}) {
- const defaultConfig = getDefaults();
- this.lastStdin = 0;
- this.sleep = wasiConfig.sleep || defaultConfig.sleep;
- this.getStdin = wasiConfig.getStdin;
- this.sendStdout = wasiConfig.sendStdout;
- this.sendStderr = wasiConfig.sendStderr;
- let preopens = wasiConfig.preopens ?? defaultConfig.preopens;
- this.env = wasiConfig.env ?? defaultConfig.env;
-
- const args = wasiConfig.args ?? defaultConfig.args;
- this.memory = void 0;
- this.view = void 0;
- this.bindings = wasiConfig.bindings || defaultConfig.bindings;
- const bindings = this.bindings;
- fs = bindings.fs;
- this.FD_MAP = /* @__PURE__ */ new Map([
- [
- constants_1.WASI_STDIN_FILENO,
- {
- real: 0,
- filetype: constants_1.WASI_FILETYPE_CHARACTER_DEVICE,
- rights: {
- base: STDIN_DEFAULT_RIGHTS,
- inheriting: BigInt(0),
- },
- path: "/dev/stdin",
- },
- ],
- [
- constants_1.WASI_STDOUT_FILENO,
- {
- real: 1,
- filetype: constants_1.WASI_FILETYPE_CHARACTER_DEVICE,
- rights: {
- base: STDOUT_DEFAULT_RIGHTS,
- inheriting: BigInt(0),
- },
- path: "/dev/stdout",
- },
- ],
- [
- constants_1.WASI_STDERR_FILENO,
- {
- real: 2,
- filetype: constants_1.WASI_FILETYPE_CHARACTER_DEVICE,
- rights: {
- base: STDERR_DEFAULT_RIGHTS,
- inheriting: BigInt(0),
- },
- path: "/dev/stderr",
- },
- ],
- ]);
- const path = bindings.path;
- for (const [k, v] of Object.entries(preopens)) {
- const real = fs.openSync(v, nodeFsConstants.O_RDONLY);
- const newfd = this.getUnusedFileDescriptor();
- this.FD_MAP.set(newfd, {
- real,
- filetype: constants_1.WASI_FILETYPE_DIRECTORY,
- rights: {
- base: constants_1.RIGHTS_DIRECTORY_BASE,
- inheriting: constants_1.RIGHTS_DIRECTORY_INHERITING,
- },
- fakePath: k,
- path: v,
- });
- }
- const getiovs = (iovs, iovsLen) => {
- this.refreshMemory();
-
- const { view, memory } = this;
- const { buffer } = memory;
- const { byteLength } = buffer;
-
- if (iovsLen === 1) {
- const ptr = iovs;
- const buf = view.getUint32(ptr, true);
- let bufLen = view.getUint32(ptr + 4, true);
-
- if (bufLen > byteLength - buf) {
- console.log({
- buf,
- bufLen,
- total_memory: byteLength,
- });
- log("getiovs: warning -- truncating buffer to fit in memory");
- bufLen = Math.min(bufLen, Math.max(0, byteLength - buf));
- }
- try {
- return [new Uint8Array(buffer, buf, bufLen)];
- } catch (err) {
- console.warn("WASI.getiovs -- invalid buffer", err);
- throw new types_1.WASIError(constants_1.WASI_EINVAL);
- }
- }
-
- // Avoid referencing Array because materializing the Array constructor can show up in profiling
- const buffers = [];
- buffers.length = iovsLen;
-
- for (let i = 0, ptr = iovs; i < iovsLen; i++, ptr += 8) {
- const buf = view.getUint32(ptr, true);
- let bufLen = view.getUint32(ptr + 4, true);
-
- if (bufLen > byteLength - buf) {
- console.log({
- buf,
- bufLen,
- total_memory: byteLength,
- });
- log("getiovs: warning -- truncating buffer to fit in memory");
- bufLen = Math.min(bufLen, Math.max(0, byteLength - buf));
- }
- try {
- buffers[i] = new Uint8Array(buffer, buf, bufLen);
- } catch (err) {
- console.warn("WASI.getiovs -- invalid buffer", err);
- throw new types_1.WASIError(constants_1.WASI_EINVAL);
- }
- }
- return buffers;
- };
- const CHECK_FD = (fd, rights) => {
- const stats = stat(this, fd);
- if (rights !== BigInt(0) && (stats.rights.base & rights) === BigInt(0)) {
- throw new types_1.WASIError(constants_1.WASI_EPERM);
- }
- return stats;
- };
- const CPUTIME_START = Bun.nanoseconds();
- const timeOrigin = Math.trunc(performance.timeOrigin * 1e6);
- const now = clockId => {
- switch (clockId) {
- case constants_1.WASI_CLOCK_MONOTONIC:
- return Bun.nanoseconds();
- case constants_1.WASI_CLOCK_REALTIME:
- return Bun.nanoseconds() + timeOrigin;
- case constants_1.WASI_CLOCK_PROCESS_CPUTIME_ID:
- case constants_1.WASI_CLOCK_THREAD_CPUTIME_ID:
- return Bun.nanoseconds() - CPUTIME_START;
- default:
- return null;
- }
- };
- this.wasiImport = {
- args_get: (argv, argvBuf) => {
- this.refreshMemory();
- let coffset = argv;
- let offset = argvBuf;
- args.forEach(a => {
- this.view.setUint32(coffset, offset, true);
- coffset += 4;
- offset += Buffer.from(this.memory.buffer).write(`${a}\0`, offset);
- });
- return constants_1.WASI_ESUCCESS;
- },
- args_sizes_get: (argc, argvBufSize) => {
- this.refreshMemory();
- this.view.setUint32(argc, args.length, true);
- const size = args.reduce((acc, a) => acc + Buffer.byteLength(a) + 1, 0);
- this.view.setUint32(argvBufSize, size, true);
- return constants_1.WASI_ESUCCESS;
- },
- environ_get: (environ, environBuf) => {
- this.refreshMemory();
- let coffset = environ;
- let offset = environBuf;
- Object.entries(this.env).forEach(([key, value]) => {
- this.view.setUint32(coffset, offset, true);
- coffset += 4;
- offset += Buffer.from(this.memory.buffer).write(`${key}=${value}\0`, offset);
- });
- return constants_1.WASI_ESUCCESS;
- },
- environ_sizes_get: (environCount, environBufSize) => {
- this.refreshMemory();
- const envProcessed = Object.entries(this.env).map(([key, value]) => `${key}=${value}\0`);
- const size = envProcessed.reduce((acc, e) => acc + Buffer.byteLength(e), 0);
- this.view.setUint32(environCount, envProcessed.length, true);
- this.view.setUint32(environBufSize, size, true);
- return constants_1.WASI_ESUCCESS;
- },
- clock_res_get: (clockId, resolution) => {
- let res;
- switch (clockId) {
- case constants_1.WASI_CLOCK_MONOTONIC:
- case constants_1.WASI_CLOCK_PROCESS_CPUTIME_ID:
- case constants_1.WASI_CLOCK_THREAD_CPUTIME_ID: {
- res = BigInt(1);
- break;
- }
- case constants_1.WASI_CLOCK_REALTIME: {
- res = BigInt(1e3);
- break;
- }
- }
- if (!res) {
- throw Error("invalid clockId");
- }
- this.view.setBigUint64(resolution, res);
- return constants_1.WASI_ESUCCESS;
- },
- clock_time_get: (clockId, _precision, time) => {
- this.refreshMemory();
- const n = now(clockId);
- if (n === null) {
- return constants_1.WASI_EINVAL;
- }
- this.view.setBigUint64(time, BigInt(n), true);
- return constants_1.WASI_ESUCCESS;
- },
- fd_advise: wrap((fd, _offset, _len, _advice) => {
- CHECK_FD(fd, constants_1.WASI_RIGHT_FD_ADVISE);
- return constants_1.WASI_ENOSYS;
- }),
- fd_allocate: wrap((fd, _offset, _len) => {
- CHECK_FD(fd, constants_1.WASI_RIGHT_FD_ALLOCATE);
- return constants_1.WASI_ENOSYS;
- }),
- fd_close: wrap(fd => {
- const stats = CHECK_FD(fd, BigInt(0));
- fs.closeSync(stats.real);
- this.FD_MAP.delete(fd);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_datasync: wrap(fd => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_DATASYNC);
- fs.fdatasyncSync(stats.real);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_fdstat_get: wrap((fd, bufPtr) => {
- const stats = CHECK_FD(fd, BigInt(0));
- this.refreshMemory();
- if (stats.filetype == null) {
- throw Error("stats.filetype must be set");
- }
- this.view.setUint8(bufPtr, stats.filetype);
- this.view.setUint16(bufPtr + 2, 0, true);
- this.view.setUint16(bufPtr + 4, 0, true);
- this.view.setBigUint64(bufPtr + 8, BigInt(stats.rights.base), true);
- this.view.setBigUint64(bufPtr + 8 + 8, BigInt(stats.rights.inheriting), true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_fdstat_set_flags: wrap((fd, flags) => {
- CHECK_FD(fd, constants_1.WASI_RIGHT_FD_FDSTAT_SET_FLAGS);
- if (this.wasiImport.sock_fcntlSetFlags(fd, flags) == 0) {
- return constants_1.WASI_ESUCCESS;
- }
- return constants_1.WASI_ENOSYS;
- }),
- fd_fdstat_set_rights: wrap((fd, fsRightsBase, fsRightsInheriting) => {
- const stats = CHECK_FD(fd, BigInt(0));
- const nrb = stats.rights.base | fsRightsBase;
- if (nrb > stats.rights.base) {
- return constants_1.WASI_EPERM;
- }
- const nri = stats.rights.inheriting | fsRightsInheriting;
- if (nri > stats.rights.inheriting) {
- return constants_1.WASI_EPERM;
- }
- stats.rights.base = fsRightsBase;
- stats.rights.inheriting = fsRightsInheriting;
- return constants_1.WASI_ESUCCESS;
- }),
- fd_filestat_get: wrap((fd, bufPtr) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_FILESTAT_GET);
- const rstats = this.fstatSync(stats.real);
- this.refreshMemory();
- this.view.setBigUint64(bufPtr, BigInt(rstats.dev), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.ino), true);
- bufPtr += 8;
- if (stats.filetype == null) {
- throw Error("stats.filetype must be set");
- }
- this.view.setUint8(bufPtr, stats.filetype);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.nlink), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.size), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, msToNs(rstats.atimeMs), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, msToNs(rstats.mtimeMs), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, msToNs(rstats.ctimeMs), true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_filestat_set_size: wrap((fd, stSize) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_FILESTAT_SET_SIZE);
- fs.ftruncateSync(stats.real, Number(stSize));
- return constants_1.WASI_ESUCCESS;
- }),
- fd_filestat_set_times: wrap((fd, stAtim, stMtim, fstflags) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_FILESTAT_SET_TIMES);
- const rstats = this.fstatSync(stats.real);
- let atim = rstats.atime;
- let mtim = rstats.mtime;
- const n = nsToMs(now(constants_1.WASI_CLOCK_REALTIME));
- const atimflags = constants_1.WASI_FILESTAT_SET_ATIM | constants_1.WASI_FILESTAT_SET_ATIM_NOW;
- if ((fstflags & atimflags) === atimflags) {
- return constants_1.WASI_EINVAL;
- }
- const mtimflags = constants_1.WASI_FILESTAT_SET_MTIM | constants_1.WASI_FILESTAT_SET_MTIM_NOW;
- if ((fstflags & mtimflags) === mtimflags) {
- return constants_1.WASI_EINVAL;
- }
- if ((fstflags & constants_1.WASI_FILESTAT_SET_ATIM) === constants_1.WASI_FILESTAT_SET_ATIM) {
- atim = nsToMs(stAtim);
- } else if ((fstflags & constants_1.WASI_FILESTAT_SET_ATIM_NOW) === constants_1.WASI_FILESTAT_SET_ATIM_NOW) {
- atim = n;
- }
- if ((fstflags & constants_1.WASI_FILESTAT_SET_MTIM) === constants_1.WASI_FILESTAT_SET_MTIM) {
- mtim = nsToMs(stMtim);
- } else if ((fstflags & constants_1.WASI_FILESTAT_SET_MTIM_NOW) === constants_1.WASI_FILESTAT_SET_MTIM_NOW) {
- mtim = n;
- }
- fs.futimesSync(stats.real, new Date(atim), new Date(mtim));
- return constants_1.WASI_ESUCCESS;
- }),
- fd_prestat_get: wrap((fd, bufPtr) => {
- const stats = CHECK_FD(fd, BigInt(0));
- this.refreshMemory();
- this.view.setUint8(bufPtr, constants_1.WASI_PREOPENTYPE_DIR);
- this.view.setUint32(bufPtr + 4, Buffer.byteLength(stats.fakePath ?? stats.path ?? ""), true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_prestat_dir_name: wrap((fd, pathPtr, pathLen) => {
- const stats = CHECK_FD(fd, BigInt(0));
- this.refreshMemory();
- Buffer.from(this.memory.buffer).write(stats.fakePath ?? stats.path ?? "", pathPtr, pathLen, "utf8");
- return constants_1.WASI_ESUCCESS;
- }),
- fd_pwrite: wrap((fd, iovs, iovsLen, offset, nwritten) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_WRITE | constants_1.WASI_RIGHT_FD_SEEK);
- let written = 0;
- getiovs(iovs, iovsLen).forEach(iov => {
- let w = 0;
- while (w < iov.byteLength) {
- w += fs.writeSync(stats.real, iov, w, iov.byteLength - w, Number(offset) + written + w);
- }
- written += w;
- });
- this.view.setUint32(nwritten, written, true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_write: wrap((fd, iovs, iovsLen, nwritten) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_WRITE);
- const IS_STDOUT = fd == constants_1.WASI_STDOUT_FILENO;
- const IS_STDERR = fd == constants_1.WASI_STDERR_FILENO;
- let written = 0;
- getiovs(iovs, iovsLen).forEach(iov => {
- if (iov.byteLength == 0) return;
- if (IS_STDOUT && this.sendStdout != null) {
- this.sendStdout(iov);
- written += iov.byteLength;
- } else if (IS_STDERR && this.sendStderr != null) {
- this.sendStderr(iov);
- written += iov.byteLength;
- } else {
- let w = 0;
- while (w < iov.byteLength) {
- const i = fs.writeSync(
- stats.real,
- iov,
- w,
- iov.byteLength - w,
- stats.offset ? Number(stats.offset) : null,
- );
- if (stats.offset) stats.offset += BigInt(i);
- w += i;
- }
- written += w;
- }
- });
- this.view.setUint32(nwritten, written, true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_pread: wrap((fd, iovs, iovsLen, offset, nread) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_READ | constants_1.WASI_RIGHT_FD_SEEK);
- let read = 0;
- outer: for (const iov of getiovs(iovs, iovsLen)) {
- let r = 0;
- while (r < iov.byteLength) {
- const length = iov.byteLength - r;
- const rr = fs.readSync(stats.real, iov, r, iov.byteLength - r, Number(offset) + read + r);
- r += rr;
- read += rr;
- if (rr === 0 || rr < length) {
- break outer;
- }
- }
- read += r;
- }
- this.view.setUint32(nread, read, true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_read: wrap((fd, iovs, iovsLen, nread) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_READ);
- const IS_STDIN = fd == constants_1.WASI_STDIN_FILENO;
- let read = 0;
- outer: for (const iov of getiovs(iovs, iovsLen)) {
- let r = 0;
- while (r < iov.byteLength) {
- let length = iov.byteLength - r;
- let position = IS_STDIN || stats.offset === void 0 ? null : Number(stats.offset);
- let rr = 0;
- if (IS_STDIN) {
- if (this.getStdin != null) {
- if (this.stdinBuffer == null) {
- this.stdinBuffer = this.getStdin();
- }
- if (this.stdinBuffer != null) {
- rr = this.stdinBuffer.copy(iov);
- if (rr == this.stdinBuffer.length) {
- this.stdinBuffer = void 0;
- } else {
- this.stdinBuffer = this.stdinBuffer.slice(rr);
- }
- if (rr > 0) {
- this.lastStdin = new Date().valueOf();
- }
- }
- } else {
- if (this.sleep == null && !warnedAboutSleep) {
- warnedAboutSleep = true;
- console.log("(cpu waiting for stdin: please define a way to sleep!) ");
- }
- try {
- rr = fs.readSync(stats.real, iov, r, length, position);
- } catch (_err) {}
- if (rr == 0) {
- this.shortPause();
- } else {
- this.lastStdin = new Date().valueOf();
- }
- }
- } else {
- rr = fs.readSync(stats.real, iov, r, length, position);
- }
- if (stats.filetype == constants_1.WASI_FILETYPE_REGULAR_FILE) {
- stats.offset = (stats.offset ? stats.offset : BigInt(0)) + BigInt(rr);
- }
- r += rr;
- read += rr;
- if (rr === 0 || rr < length) {
- break outer;
- }
- }
- }
- this.view.setUint32(nread, read, true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_readdir: wrap((fd, bufPtr, bufLen, cookie, bufusedPtr) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_READDIR);
- this.refreshMemory();
- const entries = fs.readdirSync(stats.path, { withFileTypes: true });
- const startPtr = bufPtr;
- for (let i = Number(cookie); i < entries.length; i += 1) {
- const entry = entries[i];
- let nameLength = Buffer.byteLength(entry.name);
- if (bufPtr - startPtr > bufLen) {
- break;
- }
- this.view.setBigUint64(bufPtr, BigInt(i + 1), true);
- bufPtr += 8;
- if (bufPtr - startPtr > bufLen) {
- break;
- }
- const rstats = fs.lstatSync(path.resolve(stats.path, entry.name));
- this.view.setBigUint64(bufPtr, BigInt(rstats.ino), true);
- bufPtr += 8;
- if (bufPtr - startPtr > bufLen) {
- break;
- }
- this.view.setUint32(bufPtr, nameLength, true);
- bufPtr += 4;
- if (bufPtr - startPtr > bufLen) {
- break;
- }
- let filetype;
- switch (true) {
- case rstats.isBlockDevice():
- filetype = constants_1.WASI_FILETYPE_BLOCK_DEVICE;
- break;
- case rstats.isCharacterDevice():
- filetype = constants_1.WASI_FILETYPE_CHARACTER_DEVICE;
- break;
- case rstats.isDirectory():
- filetype = constants_1.WASI_FILETYPE_DIRECTORY;
- break;
- case rstats.isFIFO():
- filetype = constants_1.WASI_FILETYPE_SOCKET_STREAM;
- break;
- case rstats.isFile():
- filetype = constants_1.WASI_FILETYPE_REGULAR_FILE;
- break;
- case rstats.isSocket():
- filetype = constants_1.WASI_FILETYPE_SOCKET_STREAM;
- break;
- case rstats.isSymbolicLink():
- filetype = constants_1.WASI_FILETYPE_SYMBOLIC_LINK;
- break;
- default:
- filetype = constants_1.WASI_FILETYPE_UNKNOWN;
- break;
- }
- this.view.setUint8(bufPtr, filetype);
- bufPtr += 1;
- bufPtr += 3;
- if (bufPtr + nameLength >= startPtr + bufLen) {
- break;
- }
- let memory_buffer = Buffer.from(this.memory.buffer);
- memory_buffer.write(entry.name, bufPtr);
- bufPtr += nameLength;
- }
- const bufused = bufPtr - startPtr;
- this.view.setUint32(bufusedPtr, Math.min(bufused, bufLen), true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_renumber: wrap((from, to) => {
- CHECK_FD(from, BigInt(0));
- CHECK_FD(to, BigInt(0));
- fs.closeSync(this.FD_MAP.get(from).real);
- this.FD_MAP.set(from, this.FD_MAP.get(to));
- this.FD_MAP.delete(to);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_seek: wrap((fd, offset, whence, newOffsetPtr) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_SEEK);
- this.refreshMemory();
- switch (whence) {
- case constants_1.WASI_WHENCE_CUR:
- stats.offset = (stats.offset ? stats.offset : BigInt(0)) + BigInt(offset);
- break;
- case constants_1.WASI_WHENCE_END:
- const { size } = this.fstatSync(stats.real);
- stats.offset = BigInt(size) + BigInt(offset);
- break;
- case constants_1.WASI_WHENCE_SET:
- stats.offset = BigInt(offset);
- break;
- }
- if (stats.offset == null) {
- throw Error("stats.offset must be defined");
- }
- this.view.setBigUint64(newOffsetPtr, stats.offset, true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_tell: wrap((fd, offsetPtr) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_TELL);
- this.refreshMemory();
- if (!stats.offset) {
- stats.offset = BigInt(0);
- }
- this.view.setBigUint64(offsetPtr, stats.offset, true);
- return constants_1.WASI_ESUCCESS;
- }),
- fd_sync: wrap(fd => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_FD_SYNC);
- fs.fsyncSync(stats.real);
- return constants_1.WASI_ESUCCESS;
- }),
- path_create_directory: wrap((fd, pathPtr, pathLen) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_CREATE_DIRECTORY);
- if (!stats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString();
- fs.mkdirSync(path.resolve(stats.path, p));
- return constants_1.WASI_ESUCCESS;
- }),
- path_filestat_get: wrap((fd, flags, pathPtr, pathLen, bufPtr) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_FILESTAT_GET);
- if (!stats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString();
- let rstats;
- if (flags) {
- rstats = fs.statSync(path.resolve(stats.path, p));
- } else {
- rstats = fs.lstatSync(path.resolve(stats.path, p));
- }
- this.view.setBigUint64(bufPtr, BigInt(rstats.dev), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.ino), true);
- bufPtr += 8;
- this.view.setUint8(bufPtr, translateFileAttributes(this, void 0, rstats).filetype);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.nlink), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.size), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.atime.getTime() * 1e6), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.mtime.getTime() * 1e6), true);
- bufPtr += 8;
- this.view.setBigUint64(bufPtr, BigInt(rstats.ctime.getTime() * 1e6), true);
- return constants_1.WASI_ESUCCESS;
- }),
- path_filestat_set_times: wrap((fd, _dirflags, pathPtr, pathLen, stAtim, stMtim, fstflags) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_FILESTAT_SET_TIMES);
- if (!stats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const rstats = this.fstatSync(stats.real);
- let atim = rstats.atime;
- let mtim = rstats.mtime;
- const n = nsToMs(now(constants_1.WASI_CLOCK_REALTIME));
- const atimflags = constants_1.WASI_FILESTAT_SET_ATIM | constants_1.WASI_FILESTAT_SET_ATIM_NOW;
- if ((fstflags & atimflags) === atimflags) {
- return constants_1.WASI_EINVAL;
- }
- const mtimflags = constants_1.WASI_FILESTAT_SET_MTIM | constants_1.WASI_FILESTAT_SET_MTIM_NOW;
- if ((fstflags & mtimflags) === mtimflags) {
- return constants_1.WASI_EINVAL;
- }
- if ((fstflags & constants_1.WASI_FILESTAT_SET_ATIM) === constants_1.WASI_FILESTAT_SET_ATIM) {
- atim = nsToMs(stAtim);
- } else if ((fstflags & constants_1.WASI_FILESTAT_SET_ATIM_NOW) === constants_1.WASI_FILESTAT_SET_ATIM_NOW) {
- atim = n;
- }
- if ((fstflags & constants_1.WASI_FILESTAT_SET_MTIM) === constants_1.WASI_FILESTAT_SET_MTIM) {
- mtim = nsToMs(stMtim);
- } else if ((fstflags & constants_1.WASI_FILESTAT_SET_MTIM_NOW) === constants_1.WASI_FILESTAT_SET_MTIM_NOW) {
- mtim = n;
- }
- const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString();
- fs.utimesSync(path.resolve(stats.path, p), new Date(atim), new Date(mtim));
- return constants_1.WASI_ESUCCESS;
- }),
- path_link: wrap((oldFd, _oldFlags, oldPath, oldPathLen, newFd, newPath, newPathLen) => {
- const ostats = CHECK_FD(oldFd, constants_1.WASI_RIGHT_PATH_LINK_SOURCE);
- const nstats = CHECK_FD(newFd, constants_1.WASI_RIGHT_PATH_LINK_TARGET);
- if (!ostats.path || !nstats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const op = Buffer.from(this.memory.buffer, oldPath, oldPathLen).toString();
- const np = Buffer.from(this.memory.buffer, newPath, newPathLen).toString();
- fs.linkSync(path.resolve(ostats.path, op), path.resolve(nstats.path, np));
- return constants_1.WASI_ESUCCESS;
- }),
- path_open: wrap(
- (dirfd, _dirflags, pathPtr, pathLen, oflags, fsRightsBase, fsRightsInheriting, fsFlags, fdPtr) => {
- try {
- const stats = CHECK_FD(dirfd, constants_1.WASI_RIGHT_PATH_OPEN);
- fsRightsBase = BigInt(fsRightsBase);
- fsRightsInheriting = BigInt(fsRightsInheriting);
- const read =
- (fsRightsBase & (constants_1.WASI_RIGHT_FD_READ | constants_1.WASI_RIGHT_FD_READDIR)) !== BigInt(0);
- const write =
- (fsRightsBase &
- (constants_1.WASI_RIGHT_FD_DATASYNC |
- constants_1.WASI_RIGHT_FD_WRITE |
- constants_1.WASI_RIGHT_FD_ALLOCATE |
- constants_1.WASI_RIGHT_FD_FILESTAT_SET_SIZE)) !==
- BigInt(0);
- let noflags;
- if (write && read) {
- noflags = nodeFsConstants.O_RDWR;
- } else if (read) {
- noflags = nodeFsConstants.O_RDONLY;
- } else if (write) {
- noflags = nodeFsConstants.O_WRONLY;
- }
- let neededBase = fsRightsBase | constants_1.WASI_RIGHT_PATH_OPEN;
- let neededInheriting = fsRightsBase | fsRightsInheriting;
- if ((oflags & constants_1.WASI_O_CREAT) !== 0) {
- noflags |= nodeFsConstants.O_CREAT;
- neededBase |= constants_1.WASI_RIGHT_PATH_CREATE_FILE;
- }
- if ((oflags & constants_1.WASI_O_DIRECTORY) !== 0) {
- noflags |= nodeFsConstants.O_DIRECTORY;
- }
- if ((oflags & constants_1.WASI_O_EXCL) !== 0) {
- noflags |= nodeFsConstants.O_EXCL;
- }
- if ((oflags & constants_1.WASI_O_TRUNC) !== 0) {
- noflags |= nodeFsConstants.O_TRUNC;
- neededBase |= constants_1.WASI_RIGHT_PATH_FILESTAT_SET_SIZE;
- }
- if ((fsFlags & constants_1.WASI_FDFLAG_APPEND) !== 0) {
- noflags |= nodeFsConstants.O_APPEND;
- }
- if ((fsFlags & constants_1.WASI_FDFLAG_DSYNC) !== 0) {
- if (nodeFsConstants.O_DSYNC) {
- noflags |= nodeFsConstants.O_DSYNC;
- } else {
- noflags |= nodeFsConstants.O_SYNC;
- }
- neededInheriting |= constants_1.WASI_RIGHT_FD_DATASYNC;
- }
- if ((fsFlags & constants_1.WASI_FDFLAG_NONBLOCK) !== 0) {
- noflags |= nodeFsConstants.O_NONBLOCK;
- }
- if ((fsFlags & constants_1.WASI_FDFLAG_RSYNC) !== 0) {
- if (nodeFsConstants.O_RSYNC) {
- noflags |= nodeFsConstants.O_RSYNC;
- } else {
- noflags |= nodeFsConstants.O_SYNC;
- }
- neededInheriting |= constants_1.WASI_RIGHT_FD_SYNC;
- }
- if ((fsFlags & constants_1.WASI_FDFLAG_SYNC) !== 0) {
- noflags |= nodeFsConstants.O_SYNC;
- neededInheriting |= constants_1.WASI_RIGHT_FD_SYNC;
- }
- if (write && (noflags & (nodeFsConstants.O_APPEND | nodeFsConstants.O_TRUNC)) === 0) {
- neededInheriting |= constants_1.WASI_RIGHT_FD_SEEK;
- }
- this.refreshMemory();
- const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString();
- if (p == "dev/tty") {
- this.view.setUint32(fdPtr, constants_1.WASI_STDIN_FILENO, true);
- return constants_1.WASI_ESUCCESS;
- }
- logOpen("path_open", p);
- if (p.startsWith("proc/")) {
- throw new types_1.WASIError(constants_1.WASI_EBADF);
- }
- const fullUnresolved = path.resolve(p);
- let full;
- try {
- full = fs.realpathSync(fullUnresolved);
- } catch (e) {
- if (e?.code === "ENOENT") {
- full = fullUnresolved;
- } else {
- throw e;
- }
- }
- let isDirectory;
- if (write) {
- try {
- isDirectory = fs.statSync(full).isDirectory();
- } catch (_err) {}
- }
- let realfd;
- if (!write && isDirectory) {
- realfd = fs.openSync(full, nodeFsConstants.O_RDONLY);
- } else {
- realfd = fs.openSync(full, noflags);
- }
- const newfd = this.getUnusedFileDescriptor();
- this.FD_MAP.set(newfd, {
- real: realfd,
- filetype: void 0,
- rights: {
- base: neededBase,
- inheriting: neededInheriting,
- },
- path: full,
- });
- stat(this, newfd);
- this.view.setUint32(fdPtr, newfd, true);
- } catch (e) {
- console.error(e);
- }
- return constants_1.WASI_ESUCCESS;
- },
- ),
- path_readlink: wrap((fd, pathPtr, pathLen, buf, bufLen, bufused) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_READLINK);
- if (!stats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString();
- const full = path.resolve(stats.path, p);
- const r = fs.readlinkSync(full);
- const used = Buffer.from(this.memory.buffer).write(r, buf, bufLen);
- this.view.setUint32(bufused, used, true);
- return constants_1.WASI_ESUCCESS;
- }),
- path_remove_directory: wrap((fd, pathPtr, pathLen) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_REMOVE_DIRECTORY);
- if (!stats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString();
- fs.rmdirSync(path.resolve(stats.path, p));
- return constants_1.WASI_ESUCCESS;
- }),
- path_rename: wrap((oldFd, oldPath, oldPathLen, newFd, newPath, newPathLen) => {
- const ostats = CHECK_FD(oldFd, constants_1.WASI_RIGHT_PATH_RENAME_SOURCE);
- const nstats = CHECK_FD(newFd, constants_1.WASI_RIGHT_PATH_RENAME_TARGET);
- if (!ostats.path || !nstats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const op = Buffer.from(this.memory.buffer, oldPath, oldPathLen).toString();
- const np = Buffer.from(this.memory.buffer, newPath, newPathLen).toString();
- fs.renameSync(path.resolve(ostats.path, op), path.resolve(nstats.path, np));
- return constants_1.WASI_ESUCCESS;
- }),
- path_symlink: wrap((oldPath, oldPathLen, fd, newPath, newPathLen) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_SYMLINK);
- if (!stats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const op = Buffer.from(this.memory.buffer, oldPath, oldPathLen).toString();
- const np = Buffer.from(this.memory.buffer, newPath, newPathLen).toString();
- fs.symlinkSync(op, path.resolve(stats.path, np));
- return constants_1.WASI_ESUCCESS;
- }),
- path_unlink_file: wrap((fd, pathPtr, pathLen) => {
- const stats = CHECK_FD(fd, constants_1.WASI_RIGHT_PATH_UNLINK_FILE);
- if (!stats.path) {
- return constants_1.WASI_EINVAL;
- }
- this.refreshMemory();
- const p = Buffer.from(this.memory.buffer, pathPtr, pathLen).toString();
- fs.unlinkSync(path.resolve(stats.path, p));
- return constants_1.WASI_ESUCCESS;
- }),
- poll_oneoff: (sin, sout, nsubscriptions, neventsPtr) => {
- let nevents = 0;
- let name = "";
- let waitTimeNs = BigInt(0);
- let fd = -1;
- let fd_type = "read";
- let fd_timeout_ms = 0;
- const startNs = BigInt(bindings.hrtime());
- this.refreshMemory();
- let last_sin = sin;
- for (let i = 0; i < nsubscriptions; i += 1) {
- const userdata = this.view.getBigUint64(sin, true);
- sin += 8;
- const type = this.view.getUint8(sin);
- sin += 1;
- sin += 7;
- if (log.enabled) {
- if (type == constants_1.WASI_EVENTTYPE_CLOCK) {
- name = "poll_oneoff (type=WASI_EVENTTYPE_CLOCK): ";
- } else if (type == constants_1.WASI_EVENTTYPE_FD_READ) {
- name = "poll_oneoff (type=WASI_EVENTTYPE_FD_READ): ";
- } else {
- name = "poll_oneoff (type=WASI_EVENTTYPE_FD_WRITE): ";
- }
- log(name);
- }
- switch (type) {
- case constants_1.WASI_EVENTTYPE_CLOCK: {
- const clockid = this.view.getUint32(sin, true);
- sin += 4;
- sin += 4;
- const timeout = this.view.getBigUint64(sin, true);
- sin += 8;
- sin += 8;
- const subclockflags = this.view.getUint16(sin, true);
- sin += 2;
- sin += 6;
- const absolute = subclockflags === 1;
- if (log.enabled) {
- log(name, { clockid, timeout, absolute });
- }
- if (!absolute) {
- fd_timeout_ms = timeout / BigInt(1e6);
- }
- let e = constants_1.WASI_ESUCCESS;
- const t = now(clockid);
- if (t == null) {
- e = constants_1.WASI_EINVAL;
- } else {
- const tNS = BigInt(t);
- const end = absolute ? timeout : tNS + timeout;
- const waitNs = end - tNS;
- if (waitNs > waitTimeNs) {
- waitTimeNs = waitNs;
- }
- }
- this.view.setBigUint64(sout, userdata, true);
- sout += 8;
- this.view.setUint16(sout, e, true);
- sout += 2;
- this.view.setUint8(sout, constants_1.WASI_EVENTTYPE_CLOCK);
- sout += 1;
- sout += 5;
- nevents += 1;
- break;
- }
- case constants_1.WASI_EVENTTYPE_FD_READ:
- case constants_1.WASI_EVENTTYPE_FD_WRITE: {
- fd = this.view.getUint32(sin, true);
- fd_type = type == constants_1.WASI_EVENTTYPE_FD_READ ? "read" : "write";
- sin += 4;
- log(name, "fd =", fd);
- sin += 28;
- this.view.setBigUint64(sout, userdata, true);
- sout += 8;
- this.view.setUint16(sout, constants_1.WASI_ENOSYS, true);
- sout += 2;
- this.view.setUint8(sout, type);
- sout += 1;
- sout += 5;
- nevents += 1;
- if (fd == constants_1.WASI_STDIN_FILENO && constants_1.WASI_EVENTTYPE_FD_READ == type) {
- this.shortPause();
- }
- break;
- }
- default:
- return constants_1.WASI_EINVAL;
- }
- if (sin - last_sin != 48) {
- console.warn("*** BUG in wasi-js in poll_oneoff ", {
- i,
- sin,
- last_sin,
- diff: sin - last_sin,
- });
- }
- last_sin = sin;
- }
- this.view.setUint32(neventsPtr, nevents, true);
- if (nevents == 2 && fd >= 0) {
- const r = this.wasiImport.sock_pollSocket(fd, fd_type, fd_timeout_ms);
- if (r != constants_1.WASI_ENOSYS) {
- return r;
- }
- }
- if (waitTimeNs > 0) {
- waitTimeNs -= Bun.nanoseconds() - timeOrigin;
- if (waitTimeNs >= 1e6) {
- if (this.sleep == null && !warnedAboutSleep) {
- warnedAboutSleep = true;
- console.log("(100% cpu burning waiting for stdin: please define a way to sleep!) ");
- }
- if (this.sleep != null) {
- const ms = nsToMs(waitTimeNs);
- this.sleep(ms);
- } else {
- const end = BigInt(bindings.hrtime()) + waitTimeNs;
- while (BigInt(bindings.hrtime()) < end) {}
- }
- }
- }
- return constants_1.WASI_ESUCCESS;
- },
- proc_exit: rval => {
- bindings.exit(rval);
- return constants_1.WASI_ESUCCESS;
- },
- proc_raise: sig => {
- if (!(sig in constants_1.SIGNAL_MAP)) {
- return constants_1.WASI_EINVAL;
- }
- bindings.kill(constants_1.SIGNAL_MAP[sig]);
- return constants_1.WASI_ESUCCESS;
- },
- random_get: (bufPtr, bufLen) => {
- this.refreshMemory();
- crypto.getRandomValues(this.memory.buffer, bufPtr, bufLen);
- return bufLen;
- },
- sched_yield() {
- return constants_1.WASI_ESUCCESS;
- },
- sock_recv() {
- return constants_1.WASI_ENOSYS;
- },
- sock_send() {
- return constants_1.WASI_ENOSYS;
- },
- sock_shutdown() {
- return constants_1.WASI_ENOSYS;
- },
- sock_fcntlSetFlags(_fd, _flags) {
- return constants_1.WASI_ENOSYS;
- },
- sock_pollSocket(_fd, _eventtype, _timeout_ms) {
- return constants_1.WASI_ENOSYS;
- },
- };
- if (log.enabled) {
- Object.keys(this.wasiImport).forEach(key => {
- const prevImport = this.wasiImport[key];
- this.wasiImport[key] = function (...args2) {
- log(key, args2);
- try {
- let result = prevImport(...args2);
- log("result", result);
- return result;
- } catch (e) {
- log("error: ", e);
- throw e;
- }
- };
- });
- }
- }
- getState() {
- return { env: this.env, FD_MAP: this.FD_MAP, bindings: bindings };
- }
- setState(state) {
- this.env = state.env;
- this.FD_MAP = state.FD_MAP;
- bindings = state.bindings;
- }
- fstatSync(real_fd) {
- if (real_fd <= 2) {
- try {
- return fs.fstatSync(real_fd);
- } catch (_) {
- const now = new Date();
- return {
- dev: 0,
- mode: 8592,
- nlink: 1,
- uid: 0,
- gid: 0,
- rdev: 0,
- blksize: 65536,
- ino: 0,
- size: 0,
- blocks: 0,
- atimeMs: now.valueOf(),
- mtimeMs: now.valueOf(),
- ctimeMs: now.valueOf(),
- birthtimeMs: 0,
- atime: new Date(),
- mtime: new Date(),
- ctime: new Date(),
- birthtime: new Date(0),
- };
- }
- }
- return fs.fstatSync(real_fd);
- }
- shortPause() {
- if (this.sleep == null) return;
- const now = new Date().valueOf();
- if (now - this.lastStdin > 2e3) {
- this.sleep(50);
- }
- }
- getUnusedFileDescriptor(start = 3) {
- let fd = start;
- while (this.FD_MAP.has(fd)) {
- fd += 1;
- }
- if (fd > SC_OPEN_MAX) {
- throw Error("no available file descriptors");
- }
- return fd;
- }
- refreshMemory() {
- if (!this.view || this.view.buffer.byteLength === 0) {
- this.view = new DataView(this.memory.buffer);
- }
- }
- setMemory(memory) {
- this.memory = memory;
- }
- start(instance, memory) {
- const exports2 = instance.exports;
- if (exports2 === null || typeof exports2 !== "object") {
- throw new Error(`instance.exports must be an Object. Received ${exports2}.`);
- }
- if (memory == null) {
- memory = exports2.memory;
- if (!(memory instanceof WebAssembly.Memory)) {
- throw new Error(`instance.exports.memory must be a WebAssembly.Memory. Recceived ${memory}.`);
- }
- }
- this.setMemory(memory);
- if (exports2._start) {
- exports2._start();
- }
- }
- getImports(module2) {
- let namespace = null;
- const imports = WebAssembly.Module.imports(module2);
-
- for (let imp of imports) {
- if (imp.kind !== "function") {
- continue;
- }
- if (!imp.module.startsWith("wasi_")) {
- continue;
- }
-
- namespace = imp.module;
- break;
- }
-
- switch (namespace) {
- case "wasi_unstable":
- return {
- wasi_unstable: this.wasiImport,
- };
- case "wasi_snapshot_preview1":
- return {
- wasi_snapshot_preview1: this.wasiImport,
- };
- default: {
- throw new Error(
- "No WASI namespace found. Only wasi_unstable and wasi_snapshot_preview1 are supported.\n\nList of imports:\n\n" +
- imports.map(({ name, kind, module }) => `${module}:${name} (${kind})`).join("\n") +
- "\n",
- );
- }
- }
- }
- initWasiFdInfo() {
- if (this.env["WASI_FD_INFO"] != null) {
- const fdInfo = JSON.parse(this.env["WASI_FD_INFO"]);
- for (const wasi_fd in fdInfo) {
- console.log(wasi_fd);
- const fd = parseInt(wasi_fd);
- if (this.FD_MAP.has(fd)) {
- continue;
- }
- const real = fdInfo[wasi_fd];
- try {
- this.fstatSync(real);
- } catch (_err) {
- console.log("discarding ", { wasi_fd, real });
- continue;
- }
- const file = {
- real,
- filetype: constants_1.WASI_FILETYPE_SOCKET_STREAM,
- rights: {
- base: STDIN_DEFAULT_RIGHTS,
- inheriting: BigInt(0),
- },
- };
- this.FD_MAP.set(fd, file);
- }
- console.log("after initWasiFdInfo: ", this.FD_MAP);
- console.log("fdInfo = ", fdInfo);
- } else {
- console.log("no WASI_FD_INFO");
- }
- }
- };
- exports.default = WASI;
- },
-});
-const WASIExport = require_wasi();
-const WASI = WASIExport.default;
-WASIExport[Symbol.for("CommonJS")] = 0;
-export { WASIExport as WASI };
-export default WASIExport;
diff --git a/src/bun.js/ws.exports.js b/src/bun.js/ws.exports.js
deleted file mode 100644
index e1f042220..000000000
--- a/src/bun.js/ws.exports.js
+++ /dev/null
@@ -1,1118 +0,0 @@
-// Mocking https://github.com/websockets/ws
-// this just wraps WebSocket to look like an EventEmitter
-// without actually using an EventEmitter polyfill
-
-import EventEmitter from "events";
-import http from "http";
-
-const kBunInternals = Symbol.for("::bunternal::");
-const readyStates = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"];
-const encoder = new TextEncoder();
-
-const emittedWarnings = new Set();
-function emitWarning(type, message) {
- if (emittedWarnings.has(type)) return;
- emittedWarnings.add(type);
- // process.emitWarning(message); // our printing is bad
- console.warn("[bun] Warning:", message);
-}
-
-/*
- * deviations: we do not implement these events
- * - "unexpected-response"
- * - "upgrade"
- * - "ping"
- * - "pong"
- * - "redirect"
- */
-class BunWebSocket extends EventEmitter {
- static CONNECTING = 0;
- static OPEN = 1;
- static CLOSING = 2;
- static CLOSED = 3;
-
- #ws;
- #paused = false;
- #fragments = false;
- #binaryType = "nodebuffer";
- readyState = BunWebSocket.CONNECTING;
-
- constructor(url, protocols, options) {
- // deviation: we don't support anything in `options`
- super();
- let ws = (this.#ws = new WebSocket(url, protocols));
- ws.binaryType = "nodebuffer"; // bun's WebSocket supports "nodebuffer"
- ws.addEventListener("open", () => {
- this.readyState = BunWebSocket.OPEN;
- this.emit("open");
- });
- ws.addEventListener("error", err => {
- this.readyState = BunWebSocket.CLOSED;
- this.emit("error", err);
- });
- ws.addEventListener("close", ev => {
- this.readyState = BunWebSocket.CLOSED;
- this.emit("close", ev.code, ev.reason);
- });
- ws.addEventListener("message", ev => {
- const isBinary = typeof ev.data !== "string";
- if (isBinary) {
- this.emit("message", this.#fragments ? [ev.data] : ev.data, isBinary);
- } else {
- var encoded = encoder.encode(ev.data);
- if (this.#binaryType !== "arraybuffer") {
- encoded = Buffer.from(encoded.buffer, encoded.byteOffset, encoded.byteLength);
- }
- this.emit("message", this.#fragments ? [encoded] : encoded, isBinary);
- }
- });
- }
-
- on(event, listener) {
- if (
- event === "unexpected-response" ||
- event === "upgrade" ||
- event === "ping" ||
- event === "pong" ||
- event === "redirect"
- ) {
- emitWarning(event, "ws.WebSocket '" + event + "' event is not implemented in bun");
- }
- return super.on(event, listener);
- }
-
- send(data, opts, cb) {
- this.#ws.send(data, opts?.compress);
- // deviation: this should be called once the data is written, not immediately
- typeof cb === "function" && cb();
- }
-
- close(code, reason) {
- this.#ws.close(code, reason);
- }
-
- get binaryType() {
- return this.#binaryType;
- }
-
- set binaryType(value) {
- if (value) this.#ws.binaryType = value;
- }
-
- set binaryType(value) {
- if (value === "nodebuffer" || value === "arraybuffer") {
- this.#ws.binaryType = this.#binaryType = value;
- this.#fragments = false;
- } else if (value === "fragments") {
- this.#ws.binaryType = "nodebuffer";
- this.#binaryType = "fragments";
- this.#fragments = true;
- }
- }
-
- get protocol() {
- return this.#ws.protocol;
- }
-
- get extensions() {
- return this.#ws.extensions;
- }
-
- // deviation: this does not support `message` with `binaryType = "fragments"`
- addEventListener(type, listener, options) {
- this.#ws.addEventListener(type, listener, options);
- }
-
- removeEventListener(type, listener) {
- this.#ws.removeEventListener(type, listener);
- }
-
- get onopen() {
- return this.#ws.onopen;
- }
-
- set onopen(value) {
- this.#ws.onopen = value;
- }
-
- get onerror() {
- return this.#ws.onerror;
- }
-
- set onerror(value) {
- this.#ws.onerror = value;
- }
-
- get onclose() {
- return this.#ws.onclose;
- }
-
- set onclose(value) {
- this.#ws.onclose = value;
- }
-
- get onmessage() {
- return this.#ws.onmessage;
- }
-
- // deviation: this does not support `binaryType = "fragments"`
- set onmessage(value) {
- this.#ws.onmessage = value;
- }
-
- get bufferedAmount() {
- return this.#ws.bufferedAmount;
- }
-
- get isPaused() {
- return this.#paused;
- }
-
- ping(data, mask, cb) {
- if (this.readyState === BunWebSocket.CONNECTING) {
- throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
- }
-
- if (typeof data === "function") {
- cb = data;
- data = mask = undefined;
- } else if (typeof mask === "function") {
- cb = mask;
- mask = undefined;
- }
-
- if (typeof data === "number") data = data.toString();
-
- // deviation: we don't support ping
- emitWarning("ping()", "ws.WebSocket.ping() is not implemented in bun");
- typeof cb === "function" && cb();
- }
-
- pong(data, mask, cb) {
- if (this.readyState === BunWebSocket.CONNECTING) {
- throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
- }
-
- if (typeof data === "function") {
- cb = data;
- data = mask = undefined;
- } else if (typeof mask === "function") {
- cb = mask;
- mask = undefined;
- }
-
- if (typeof data === "number") data = data.toString();
-
- // deviation: we don't support pong
- emitWarning("pong()", "ws.WebSocket.pong() is not implemented in bun");
- typeof cb === "function" && cb();
- }
-
- pause() {
- if (this.readyState === WebSocket.CONNECTING || this.readyState === WebSocket.CLOSED) {
- return;
- }
-
- this.#paused = true;
-
- // deviation: we dont support pause()
- emitWarning("pause()", "ws.WebSocket.pause() is not implemented in bun");
- }
-
- resume() {
- if (this.readyState === WebSocket.CONNECTING || this.readyState === WebSocket.CLOSED) {
- return;
- }
-
- this.#paused = false;
-
- // deviation: we dont support resume()
- emitWarning("resume()", "ws.WebSocket.resume() is not implemented in bun");
- }
-}
-
-BunWebSocket.WebSocket = BunWebSocket;
-
-const wsKeyRegex = /^[+/0-9A-Za-z]{22}==$/;
-const wsTokenChars = [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, // 0 - 15
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, // 16 - 31
- 0,
- 1,
- 0,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 0,
- 1,
- 1,
- 0,
- 1,
- 1,
- 0, // 32 - 47
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, // 48 - 63
- 0,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1, // 64 - 79
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 0,
- 0,
- 1,
- 1, // 80 - 95
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1, // 96 - 111
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 1,
- 0,
- 1,
- 0, // 112 - 127
-];
-
-/**
- * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.
- *
- * @param {String} header The field value of the header
- * @return {Set} The subprotocol names
- * @public
- */
-function subprotocolParse(header) {
- const protocols = new Set();
- let start = -1;
- let end = -1;
- let i = 0;
-
- for (i; i < header.length; i++) {
- const code = header.charCodeAt(i);
-
- if (end === -1 && wsTokenChars[code] === 1) {
- if (start === -1) start = i;
- } else if (i !== 0 && (code === 0x20 /* ' ' */ || code === 0x09) /* '\t' */) {
- if (end === -1 && start !== -1) end = i;
- } else if (code === 0x2c /* ',' */) {
- if (start === -1) {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
-
- if (end === -1) end = i;
-
- const protocol = header.slice(start, end);
-
- if (protocols.has(protocol)) {
- throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`);
- }
-
- protocols.add(protocol);
- start = end = -1;
- } else {
- throw new SyntaxError(`Unexpected character at index ${i}`);
- }
- }
-
- if (start === -1 || end !== -1) {
- throw new SyntaxError("Unexpected end of input");
- }
-
- const protocol = header.slice(start, i);
-
- if (protocols.has(protocol)) {
- throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`);
- }
-
- protocols.add(protocol);
- return protocols;
-}
-
-/**
- * Emit a `'close'` event on an `EventEmitter`.
- *
- * @param {EventEmitter} server The event emitter
- * @private
- */
-function wsEmitClose(server) {
- server._state = CLOSED;
- server.emit("close");
-}
-
-function abortHandshake(response, code, message, headers) {
- message = message || http.STATUS_CODES[code];
- headers = {
- Connection: "close",
- "Content-Type": "text/html",
- "Content-Length": Buffer.byteLength(message),
- ...headers,
- };
-
- response.writeHead(code, headers);
- response.write(message);
- response.end();
-}
-
-function abortHandshakeOrEmitwsClientError(server, req, response, socket, code, message) {
- if (server.listenerCount("wsClientError")) {
- const err = new Error(message);
- Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);
-
- server.emit("wsClientError", err, socket, req);
- } else {
- abortHandshake(response, code, message);
- }
-}
-
-const RUNNING = 0;
-const CLOSING = 1;
-const CLOSED = 2;
-
-class BunWebSocketMocked extends EventEmitter {
- #ws;
- #state;
- #enquedMessages = [];
- #url;
- #protocol;
- #extensions;
- #bufferedAmount = 0;
- #binaryType = "arraybuffer";
-
- #onclose;
- #onerror;
- #onmessage;
- #onopen;
-
- constructor(url, protocol, extensions, binaryType) {
- super();
- this.#ws = null;
- this.#state = 0;
- this.#url = url;
- this.#bufferedAmount = 0;
- binaryType = binaryType || "arraybuffer";
- if (binaryType !== "nodebuffer" && binaryType !== "blob" && binaryType !== "arraybuffer") {
- throw new TypeError("binaryType must be either 'blob', 'arraybuffer' or 'nodebuffer'");
- }
- this.#binaryType = binaryType;
- this.#protocol = protocol;
- this.#extensions = extensions;
-
- const message = this.#message.bind(this);
- const open = this.#open.bind(this);
- const close = this.#close.bind(this);
- const drain = this.#drain.bind(this);
-
- this[kBunInternals] = {
- message, // a message is received
- open, // a socket is opened
- close, // a socket is closed
- drain, // the socket is ready to receive more data
- };
- }
-
- #message(ws, message) {
- this.#ws = ws;
-
- if (typeof message === "string") {
- if (this.#binaryType === "arraybuffer") {
- message = encoder.encode(message).buffer;
- } else if (this.#binaryType === "blob") {
- message = new Blob([message], { type: "text/plain" });
- } else {
- // nodebuffer
- message = Buffer.from(message);
- }
- } else {
- //Buffer
- if (this.#binaryType !== "nodebuffer") {
- if (this.#binaryType === "arraybuffer") {
- message = new Uint8Array(message);
- } else if (this.#binaryType === "blob") {
- message = new Blob([message]);
- }
- }
- }
-
- this.emit("message", message);
- }
-
- #open(ws) {
- this.#ws = ws;
- this.#state = 1;
- this.emit("open", this);
- // first drain event
- this.#drain(ws);
- }
-
- #close(ws, code, reason) {
- this.#state = 3;
- this.#ws = null;
-
- this.emit("close", code, reason);
- }
-
- #drain(ws) {
- const chunk = this.#enquedMessages[0];
- if (chunk) {
- const [data, compress, cb] = chunk;
- const written = ws.send(data, compress);
- if (written == -1) {
- // backpressure wait until next drain event
- return;
- }
-
- typeof cb === "function" && cb();
-
- this.#bufferedAmount -= chunk.length;
- this.#enquedMessages.shift();
- }
- }
-
- send(data, opts, cb) {
- if (this.#state === 1) {
- const compress = opts?.compress;
- const written = this.#ws.send(data, compress);
- if (written == -1) {
- // backpressure
- this.#enquedMessages.push([data, compress, cb]);
- this.#bufferedAmount += data.length;
- return;
- }
-
- typeof cb === "function" && cb();
- } else if (this.#state === 0) {
- // not connected yet
- this.#enquedMessages.push([data, opts?.compress, cb]);
- this.#bufferedAmount += data.length;
- }
- }
-
- close(code, reason) {
- if (this.#state === 1) {
- this.#state = 2;
- this.#ws.close(code, reason);
- }
- }
- get binaryType() {
- return this.#binaryType;
- }
-
- set binaryType(type) {
- if (type !== "nodebuffer" && type !== "blob" && type !== "arraybuffer") {
- throw new TypeError("binaryType must be either 'blob', 'arraybuffer' or 'nodebuffer'");
- }
- this.#binaryType = type;
- }
-
- get readyState() {
- return readyStates[this.#state];
- }
- get url() {
- return this.#url;
- }
-
- get protocol() {
- return this.#protocol;
- }
-
- get extensions() {
- return this.#extensions;
- }
-
- get bufferedAmount() {
- return this.#bufferedAmount ?? 0;
- }
- /**
- * Set up the socket and the internal resources.
- *
- * @param {(net.Socket|tls.Socket)} socket The network socket between the
- * server and client
- * @param {Buffer} head The first packet of the upgraded stream
- * @param {Object} options Options object
- * @param {Function} [options.generateMask] The function used to generate the
- * masking key
- * @param {Number} [options.maxPayload=0] The maximum allowed message size
- * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
- * not to skip UTF-8 validation for text and close messages
- * @private
- */
- setSocket(socket, head, options) {
- throw new Error("Not implemented");
- }
-
- set onclose(cb) {
- if (this.#onclose) {
- this.removeListener("close", this.#onclose);
- }
- this.on("close", cb);
- this.#onclose = cb;
- }
-
- set onerror(cb) {
- if (this.#onerror) {
- this.removeListener("error", this.#onerror);
- }
- this.on("error", cb);
- this.#onerror = cb;
- }
-
- set onmessage(cb) {
- if (this.#onmessage) {
- this.removeListener("message", this.#onmessage);
- }
- this.on("message", cb);
- this.#onmessage = cb;
- }
-
- set onopen(cb) {
- if (this.#onopen) {
- this.removeListener("open", this.#onopen);
- }
- this.on("open", cb);
- this.#onopen = cb;
- }
-
- get onclose() {
- return this.#onclose;
- }
-
- get onerror() {
- return this.#onerror;
- }
-
- get onmessage() {
- return this.#onmessage;
- }
-
- get onopen() {
- return this.#onopen;
- }
-}
-
-class Server extends EventEmitter {
- _server;
- options;
- clients;
- _shouldEmitClose;
- _state;
- _removeListeners;
-
- /**
- * Create a `WebSocketServer` instance.
- *
- * @param {Object} options Configuration options
- * @param {Number} [options.backlog=511] The maximum length of the queue of
- * pending connections
- * @param {Boolean} [options.clientTracking=true] Specifies whether or not to
- * track clients
- * @param {Function} [options.handleProtocols] A hook to handle protocols
- * @param {String} [options.host] The hostname where to bind the server
- * size
- * @param {Boolean} [options.noServer=false] Enable no server mode
- * @param {String} [options.path] Accept only connections matching this path
- * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable
- * permessage-deflate
- * @param {Number} [options.port] The port where to bind the server
- * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S
- * @param {Function} [options.verifyClient] A hook to reject connections
- * class to use. It must be the `WebSocket` class or class that extends it
- * @param {Function} [callback] A listener for the `listening` event
- */
- constructor(options, callback) {
- super();
-
- options = {
- maxPayload: 100 * 1024 * 1024,
- skipUTF8Validation: false,
- perMessageDeflate: false,
- handleProtocols: null,
- clientTracking: true,
- verifyClient: null,
- noServer: false,
- backlog: null, // use default (511 as implemented in net.js)
- server: null,
- host: null,
- path: null,
- port: null,
- ...options,
- };
-
- if (
- (options.port == null && !options.server && !options.noServer) ||
- (options.port != null && (options.server || options.noServer)) ||
- (options.server && options.noServer)
- ) {
- throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');
- }
-
- if (options.port != null) {
- this._server = http.createServer((req, res) => {
- const body = http.STATUS_CODES[426];
-
- res.writeHead(426, {
- "Content-Length": body.length,
- "Content-Type": "text/plain",
- });
- res.end(body);
- });
-
- this._server.listen(options.port, options.host, options.backlog, callback);
- } else if (options.server) {
- this._server = options.server;
- }
-
- if (this._server) {
- const emitConnection = this.emit.bind(this, "connection");
- const emitListening = this.emit.bind(this, "listening");
- const emitError = this.emit.bind(this, "error");
- const doUpgrade = (req, socket, head) => {
- this.handleUpgrade(req, socket, head, emitConnection);
- };
-
- this._server.on("listening", emitListening);
- this._server.on("error", emitError);
- this._server.on("upgrade", doUpgrade);
-
- this._removeListeners = () => {
- this._server.removeListener("upgrade", doUpgrade);
- this._server.removeListener("listening", emitListening);
- this._server.removeListener("error", emitError);
- };
- }
-
- if (options.perMessageDeflate === true) options.perMessageDeflate = {};
- if (options.clientTracking) {
- this.clients = new Set();
- this._shouldEmitClose = false;
- }
-
- this.options = options;
- this._state = RUNNING;
- }
-
- /**
- * Returns the bound address, the address family name, and port of the server
- * as reported by the operating system if listening on an IP socket.
- * If the server is listening on a pipe or UNIX domain socket, the name is
- * returned as a string.
- *
- * @return {(Object|String|null)} The address of the server
- * @public
- */
- address() {
- if (this.options.noServer) {
- throw new Error('The server is operating in "noServer" mode');
- }
-
- if (!this._server) return null;
- return this._server.address();
- }
-
- /**
- * Stop the server from accepting new connections and emit the `'close'` event
- * when all existing connections are closed.
- *
- * @param {Function} [cb] A one-time listener for the `'close'` event
- * @public
- */
- close(cb) {
- if (this._state === CLOSED) {
- if (cb) {
- this.once("close", () => {
- cb(new Error("The server is not running"));
- });
- }
-
- process.nextTick(server => {
- server._state = CLOSED;
- server.emit("close");
- }, this);
- return;
- }
-
- if (cb) this.once("close", cb);
-
- if (this._state === CLOSING) return;
- this._state = CLOSING;
-
- if (this.options.noServer || this.options.server) {
- if (this._server) {
- this._removeListeners();
- this._removeListeners = this._server = null;
- }
-
- if (this.clients) {
- if (!this.clients.size) {
- process.nextTick(server => {
- server._state = CLOSED;
- server.emit("close");
- }, this);
- } else {
- this._shouldEmitClose = true;
- }
- } else {
- process.nextTick(server => {
- server._state = CLOSED;
- server.emit("close");
- }, this);
- }
- } else {
- const server = this._server;
-
- this._removeListeners();
- this._removeListeners = this._server = null;
-
- //
- // The HTTP/S server was created internally. Close it, and rely on its
- // `'close'` event.
- //
- server.close(() => {
- this._state = CLOSED;
- this.emit("close");
- });
- }
- }
-
- /**
- * See if a given request should be handled by this server instance.
- *
- * @param {http.IncomingMessage} req Request object to inspect
- * @return {Boolean} `true` if the request is valid, else `false`
- * @public
- */
- shouldHandle(req) {
- if (this.options.path) {
- const index = req.url.indexOf("?");
- const pathname = index !== -1 ? req.url.slice(0, index) : req.url;
-
- if (pathname !== this.options.path) return false;
- }
-
- return true;
- }
-
- /**
- * Upgrade the connection to WebSocket.
- *
- * @param {Object} extensions The accepted extensions
- * @param {String} key The value of the `Sec-WebSocket-Key` header
- * @param {Set} protocols The subprotocols
- * @param {http.IncomingMessage} request The request object
- * @param {(net.Socket|tls.Socket)} socket The network socket between the
- * server and client
- * @param {Buffer} head The first packet of the upgraded stream
- * @param {Function} cb Callback
- * @throws {Error} If called more than once with the same socket
- * @private
- */
- completeUpgrade(extensions, key, protocols, request, socket, head, cb) {
- const [server, response, req] = socket[kBunInternals];
- if (this._state > RUNNING) return abortHandshake(response, 503);
-
- let protocol = "";
- if (protocols.size) {
- //
- // Optionally call external protocol selection handler.
- //
- protocol = this.options.handleProtocols
- ? this.options.handleProtocols(protocols, request)
- : protocols.values().next().value;
- }
- const ws = new BunWebSocketMocked(request.url, protocol, extensions, "nodebuffer");
-
- const headers = ["HTTP/1.1 101 Switching Protocols", "Upgrade: websocket", "Connection: Upgrade"];
- this.emit("headers", headers, request);
-
- if (
- server.upgrade(req, {
- data: ws[kBunInternals],
- })
- ) {
- response._reply(undefined);
- if (this.clients) {
- this.clients.add(ws);
- ws.on("close", () => {
- this.clients.delete(ws);
-
- if (this._shouldEmitClose && !this.clients.size) {
- process.nextTick(wsEmitClose, this);
- }
- });
- }
- cb(ws, request);
- } else {
- abortHandshake(response, 500);
- }
- }
- /**
- * Handle a HTTP Upgrade request.
- *
- * @param {http.IncomingMessage} req The request object
- * @param {(net.Socket|tls.Socket)} socket The network socket between the
- * server and client
- * @param {Buffer} head The first packet of the upgraded stream
- * @param {Function} cb Callback
- * @public
- */
- handleUpgrade(req, socket, head, cb) {
- // socket is actually fake so we use internal http_res
- const [_, response] = socket[kBunInternals];
-
- // socket.on("error", socketOnError);
-
- const key = req.headers["sec-websocket-key"];
- const version = +req.headers["sec-websocket-version"];
-
- if (req.method !== "GET") {
- const message = "Invalid HTTP method";
- abortHandshakeOrEmitwsClientError(this, req, response, socket, 405, message);
- return;
- }
-
- if (req.headers.upgrade.toLowerCase() !== "websocket") {
- const message = "Invalid Upgrade header";
- abortHandshakeOrEmitwsClientError(this, req, response, socket, 400, message);
- return;
- }
-
- if (!key || !wsKeyRegex.test(key)) {
- const message = "Missing or invalid Sec-WebSocket-Key header";
- abortHandshakeOrEmitwsClientError(this, req, response, socket, 400, message);
- return;
- }
-
- if (version !== 8 && version !== 13) {
- const message = "Missing or invalid Sec-WebSocket-Version header";
- abortHandshakeOrEmitwsClientError(this, req, response, socket, 400, message);
- return;
- }
-
- if (!this.shouldHandle(req)) {
- abortHandshake(response, 400);
- return;
- }
-
- const secWebSocketProtocol = req.headers["sec-websocket-protocol"];
- let protocols = new Set();
-
- if (secWebSocketProtocol !== undefined) {
- try {
- protocols = subprotocolParse(secWebSocketProtocol);
- } catch (err) {
- const message = "Invalid Sec-WebSocket-Protocol header";
- abortHandshakeOrEmitwsClientError(this, req, response, socket, 400, message);
- return;
- }
- }
-
- // TODO: add perMessageDeflate options
-
- // const secWebSocketExtensions = req.headers["sec-websocket-extensions"];
- const extensions = {};
-
- // if (secWebSocketExtensions !== undefined) {
- // console.log(secWebSocketExtensions);
- // const perMessageDeflate = new PerMessageDeflate(this.options.perMessageDeflate, true, this.options.maxPayload);
-
- // try {
- // const offers = extension.parse(secWebSocketExtensions);
-
- // if (offers[PerMessageDeflate.extensionName]) {
- // perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);
- // extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
- // }
- // } catch (err) {
- // const message = "Invalid or unacceptable Sec-WebSocket-Extensions header";
- // abortHandshakeOrEmitwsClientError(this, req, response, socket, 400, message);
- // return;
- // }
- // }
-
- //
- // Optionally call external client verification handler.
- //
- if (this.options.verifyClient) {
- const info = {
- origin: req.headers[`${version === 8 ? "sec-websocket-origin" : "origin"}`],
- secure: !!(req.socket.authorized || req.socket.encrypted),
- req,
- };
-
- if (this.options.verifyClient.length === 2) {
- this.options.verifyClient(info, (verified, code, message, headers) => {
- if (!verified) {
- return abortHandshake(response, code || 401, message, headers);
- }
-
- this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);
- });
- return;
- }
-
- if (!this.options.verifyClient(info)) return abortHandshake(response, 401);
- }
-
- this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);
- }
-}
-
-BunWebSocket.WebSocketServer = Server;
-BunWebSocket.Server = Server;
-
-Object.defineProperty(BunWebSocket, "CONNECTING", {
- enumerable: true,
- value: readyStates.indexOf("CONNECTING"),
-});
-
-Object.defineProperty(BunWebSocket.prototype, "CONNECTING", {
- enumerable: true,
- value: readyStates.indexOf("CONNECTING"),
-});
-
-Object.defineProperty(BunWebSocket, "OPEN", {
- enumerable: true,
- value: readyStates.indexOf("OPEN"),
-});
-
-Object.defineProperty(BunWebSocket.prototype, "OPEN", {
- enumerable: true,
- value: readyStates.indexOf("OPEN"),
-});
-
-Object.defineProperty(BunWebSocket, "CLOSING", {
- enumerable: true,
- value: readyStates.indexOf("CLOSING"),
-});
-
-Object.defineProperty(BunWebSocket.prototype, "CLOSING", {
- enumerable: true,
- value: readyStates.indexOf("CLOSING"),
-});
-
-Object.defineProperty(BunWebSocket, "CLOSED", {
- enumerable: true,
- value: readyStates.indexOf("CLOSED"),
-});
-
-Object.defineProperty(BunWebSocket.prototype, "CLOSED", {
- enumerable: true,
- value: readyStates.indexOf("CLOSED"),
-});
-
-class Sender {
- constructor() {
- throw new Error("Not supported yet in Bun");
- }
-}
-
-BunWebSocket.Sender = Sender;
-
-class Receiver {
- constructor() {
- throw new Error("Not supported yet in Bun");
- }
-}
-
-BunWebSocket.Receiver = Receiver;
-
-var createWebSocketStream = ws => {
- throw new Error("Not supported yet in Bun");
-};
-
-BunWebSocket.createWebSocketStream = createWebSocketStream;
-
-BunWebSocket[Symbol.for("CommonJS")] = 0;
-
-export default BunWebSocket;
-export { createWebSocketStream, Server, Receiver, Sender, BunWebSocket as WebSocket, Server as WebSocketServer };
diff --git a/src/bun.js/zlib.exports.js b/src/bun.js/zlib.exports.js
deleted file mode 100644
index 33b89d878..000000000
--- a/src/bun.js/zlib.exports.js
+++ /dev/null
@@ -1,4471 +0,0 @@
-// TODO: **use a native binding from Bun for this!!**
-// This is a very slow module!
-// It should really be fixed. It will show up in benchmarking. It also loads
-// slowly. We need to fix it!
-
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __commonJS = (cb, mod) =>
- function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
-
-var __copyProps = (to, from, except, desc) => {
- if ((from && typeof from === "object") || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, {
- get: () => from[key],
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
- });
- }
- return to;
-};
-var __reExport = (target, mod, secondTarget) => (
- __copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")
-);
-var __toESM = (mod, isNodeMode, target) => (
- (target = mod != null ? __create(__getProtoOf(mod)) : {}),
- __copyProps(
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod,
- )
-);
-var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-const require = id => import.meta.require(id);
-
-// node_modules/pako/lib/zlib/zstream.js
-var require_zstream = __commonJS({
- "node_modules/pako/lib/zlib/zstream.js"(exports, module2) {
- "use strict";
- function ZStream() {
- this.input = null;
- this.next_in = 0;
- this.avail_in = 0;
- this.total_in = 0;
- this.output = null;
- this.next_out = 0;
- this.avail_out = 0;
- this.total_out = 0;
- this.msg = "";
- this.state = null;
- this.data_type = 2;
- this.adler = 0;
- }
- module2.exports = ZStream;
- },
-});
-
-// node_modules/pako/lib/utils/common.js
-var require_common = __commonJS({
- "node_modules/pako/lib/utils/common.js"(exports) {
- "use strict";
- var TYPED_OK =
- typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined";
- function _has(obj, key) {
- return Object.prototype.hasOwnProperty.call(obj, key);
- }
- exports.assign = function (obj) {
- var sources = Array.prototype.slice.call(arguments, 1);
- while (sources.length) {
- var source = sources.shift();
- if (!source) {
- continue;
- }
- if (typeof source !== "object") {
- throw new TypeError(source + "must be non-object");
- }
- for (var p in source) {
- if (_has(source, p)) {
- obj[p] = source[p];
- }
- }
- }
- return obj;
- };
- exports.shrinkBuf = function (buf, size) {
- if (buf.length === size) {
- return buf;
- }
- if (buf.subarray) {
- return buf.subarray(0, size);
- }
- buf.length = size;
- return buf;
- };
- var fnTyped = {
- arraySet: function (dest, src, src_offs, len, dest_offs) {
- if (src.subarray && dest.subarray) {
- dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
- return;
- }
- for (var i = 0; i < len; i++) {
- dest[dest_offs + i] = src[src_offs + i];
- }
- },
- flattenChunks: function (chunks) {
- var i, l, len, pos, chunk, result;
- len = 0;
- for (i = 0, l = chunks.length; i < l; i++) {
- len += chunks[i].length;
- }
- result = new Uint8Array(len);
- pos = 0;
- for (i = 0, l = chunks.length; i < l; i++) {
- chunk = chunks[i];
- result.set(chunk, pos);
- pos += chunk.length;
- }
- return result;
- },
- };
- var fnUntyped = {
- arraySet: function (dest, src, src_offs, len, dest_offs) {
- for (var i = 0; i < len; i++) {
- dest[dest_offs + i] = src[src_offs + i];
- }
- },
- flattenChunks: function (chunks) {
- return [].concat.apply([], chunks);
- },
- };
- exports.setTyped = function (on) {
- if (on) {
- exports.Buf8 = Uint8Array;
- exports.Buf16 = Uint16Array;
- exports.Buf32 = Int32Array;
- exports.assign(exports, fnTyped);
- } else {
- exports.Buf8 = Array;
- exports.Buf16 = Array;
- exports.Buf32 = Array;
- exports.assign(exports, fnUntyped);
- }
- };
- exports.setTyped(TYPED_OK);
- },
-});
-
-// node_modules/pako/lib/zlib/trees.js
-var require_trees = __commonJS({
- "node_modules/pako/lib/zlib/trees.js"(exports) {
- "use strict";
- var utils = require_common();
- var Z_FIXED = 4;
- var Z_BINARY = 0;
- var Z_TEXT = 1;
- var Z_UNKNOWN = 2;
- function zero(buf) {
- var len = buf.length;
- while (--len >= 0) {
- buf[len] = 0;
- }
- }
- var STORED_BLOCK = 0;
- var STATIC_TREES = 1;
- var DYN_TREES = 2;
- var MIN_MATCH = 3;
- var MAX_MATCH = 258;
- var LENGTH_CODES = 29;
- var LITERALS = 256;
- var L_CODES = LITERALS + 1 + LENGTH_CODES;
- var D_CODES = 30;
- var BL_CODES = 19;
- var HEAP_SIZE = 2 * L_CODES + 1;
- var MAX_BITS = 15;
- var Buf_size = 16;
- var MAX_BL_BITS = 7;
- var END_BLOCK = 256;
- var REP_3_6 = 16;
- var REPZ_3_10 = 17;
- var REPZ_11_138 = 18;
- var extra_lbits = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];
- var extra_dbits = [
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13,
- ];
- var extra_blbits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];
- var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
- var DIST_CODE_LEN = 512;
- var static_ltree = new Array((L_CODES + 2) * 2);
- zero(static_ltree);
- var static_dtree = new Array(D_CODES * 2);
- zero(static_dtree);
- var _dist_code = new Array(DIST_CODE_LEN);
- zero(_dist_code);
- var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);
- zero(_length_code);
- var base_length = new Array(LENGTH_CODES);
- zero(base_length);
- var base_dist = new Array(D_CODES);
- zero(base_dist);
- function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
- this.static_tree = static_tree;
- this.extra_bits = extra_bits;
- this.extra_base = extra_base;
- this.elems = elems;
- this.max_length = max_length;
- this.has_stree = static_tree && static_tree.length;
- }
- var static_l_desc;
- var static_d_desc;
- var static_bl_desc;
- function TreeDesc(dyn_tree, stat_desc) {
- this.dyn_tree = dyn_tree;
- this.max_code = 0;
- this.stat_desc = stat_desc;
- }
- function d_code(dist) {
- return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
- }
- function put_short(s, w) {
- s.pending_buf[s.pending++] = w & 255;
- s.pending_buf[s.pending++] = (w >>> 8) & 255;
- }
- function send_bits(s, value, length) {
- if (s.bi_valid > Buf_size - length) {
- s.bi_buf |= (value << s.bi_valid) & 65535;
- put_short(s, s.bi_buf);
- s.bi_buf = value >> (Buf_size - s.bi_valid);
- s.bi_valid += length - Buf_size;
- } else {
- s.bi_buf |= (value << s.bi_valid) & 65535;
- s.bi_valid += length;
- }
- }
- function send_code(s, c, tree) {
- send_bits(s, tree[c * 2], tree[c * 2 + 1]);
- }
- function bi_reverse(code, len) {
- var res = 0;
- do {
- res |= code & 1;
- code >>>= 1;
- res <<= 1;
- } while (--len > 0);
- return res >>> 1;
- }
- function bi_flush(s) {
- if (s.bi_valid === 16) {
- put_short(s, s.bi_buf);
- s.bi_buf = 0;
- s.bi_valid = 0;
- } else if (s.bi_valid >= 8) {
- s.pending_buf[s.pending++] = s.bi_buf & 255;
- s.bi_buf >>= 8;
- s.bi_valid -= 8;
- }
- }
- function gen_bitlen(s, desc) {
- var tree = desc.dyn_tree;
- var max_code = desc.max_code;
- var stree = desc.stat_desc.static_tree;
- var has_stree = desc.stat_desc.has_stree;
- var extra = desc.stat_desc.extra_bits;
- var base = desc.stat_desc.extra_base;
- var max_length = desc.stat_desc.max_length;
- var h;
- var n, m;
- var bits;
- var xbits;
- var f;
- var overflow = 0;
- for (bits = 0; bits <= MAX_BITS; bits++) {
- s.bl_count[bits] = 0;
- }
- tree[s.heap[s.heap_max] * 2 + 1] = 0;
- for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
- n = s.heap[h];
- bits = tree[tree[n * 2 + 1] * 2 + 1] + 1;
- if (bits > max_length) {
- bits = max_length;
- overflow++;
- }
- tree[n * 2 + 1] = bits;
- if (n > max_code) {
- continue;
- }
- s.bl_count[bits]++;
- xbits = 0;
- if (n >= base) {
- xbits = extra[n - base];
- }
- f = tree[n * 2];
- s.opt_len += f * (bits + xbits);
- if (has_stree) {
- s.static_len += f * (stree[n * 2 + 1] + xbits);
- }
- }
- if (overflow === 0) {
- return;
- }
- do {
- bits = max_length - 1;
- while (s.bl_count[bits] === 0) {
- bits--;
- }
- s.bl_count[bits]--;
- s.bl_count[bits + 1] += 2;
- s.bl_count[max_length]--;
- overflow -= 2;
- } while (overflow > 0);
- for (bits = max_length; bits !== 0; bits--) {
- n = s.bl_count[bits];
- while (n !== 0) {
- m = s.heap[--h];
- if (m > max_code) {
- continue;
- }
- if (tree[m * 2 + 1] !== bits) {
- s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];
- tree[m * 2 + 1] = bits;
- }
- n--;
- }
- }
- }
- function gen_codes(tree, max_code, bl_count) {
- var next_code = new Array(MAX_BITS + 1);
- var code = 0;
- var bits;
- var n;
- for (bits = 1; bits <= MAX_BITS; bits++) {
- next_code[bits] = code = (code + bl_count[bits - 1]) << 1;
- }
- for (n = 0; n <= max_code; n++) {
- var len = tree[n * 2 + 1];
- if (len === 0) {
- continue;
- }
- tree[n * 2] = bi_reverse(next_code[len]++, len);
- }
- }
- function tr_static_init() {
- var n;
- var bits;
- var length;
- var code;
- var dist;
- var bl_count = new Array(MAX_BITS + 1);
- length = 0;
- for (code = 0; code < LENGTH_CODES - 1; code++) {
- base_length[code] = length;
- for (n = 0; n < 1 << extra_lbits[code]; n++) {
- _length_code[length++] = code;
- }
- }
- _length_code[length - 1] = code;
- dist = 0;
- for (code = 0; code < 16; code++) {
- base_dist[code] = dist;
- for (n = 0; n < 1 << extra_dbits[code]; n++) {
- _dist_code[dist++] = code;
- }
- }
- dist >>= 7;
- for (; code < D_CODES; code++) {
- base_dist[code] = dist << 7;
- for (n = 0; n < 1 << (extra_dbits[code] - 7); n++) {
- _dist_code[256 + dist++] = code;
- }
- }
- for (bits = 0; bits <= MAX_BITS; bits++) {
- bl_count[bits] = 0;
- }
- n = 0;
- while (n <= 143) {
- static_ltree[n * 2 + 1] = 8;
- n++;
- bl_count[8]++;
- }
- while (n <= 255) {
- static_ltree[n * 2 + 1] = 9;
- n++;
- bl_count[9]++;
- }
- while (n <= 279) {
- static_ltree[n * 2 + 1] = 7;
- n++;
- bl_count[7]++;
- }
- while (n <= 287) {
- static_ltree[n * 2 + 1] = 8;
- n++;
- bl_count[8]++;
- }
- gen_codes(static_ltree, L_CODES + 1, bl_count);
- for (n = 0; n < D_CODES; n++) {
- static_dtree[n * 2 + 1] = 5;
- static_dtree[n * 2] = bi_reverse(n, 5);
- }
- static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
- static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);
- static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);
- }
- function init_block(s) {
- var n;
- for (n = 0; n < L_CODES; n++) {
- s.dyn_ltree[n * 2] = 0;
- }
- for (n = 0; n < D_CODES; n++) {
- s.dyn_dtree[n * 2] = 0;
- }
- for (n = 0; n < BL_CODES; n++) {
- s.bl_tree[n * 2] = 0;
- }
- s.dyn_ltree[END_BLOCK * 2] = 1;
- s.opt_len = s.static_len = 0;
- s.last_lit = s.matches = 0;
- }
- function bi_windup(s) {
- if (s.bi_valid > 8) {
- put_short(s, s.bi_buf);
- } else if (s.bi_valid > 0) {
- s.pending_buf[s.pending++] = s.bi_buf;
- }
- s.bi_buf = 0;
- s.bi_valid = 0;
- }
- function copy_block(s, buf, len, header) {
- bi_windup(s);
- if (header) {
- put_short(s, len);
- put_short(s, ~len);
- }
- utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
- s.pending += len;
- }
- function smaller(tree, n, m, depth) {
- var _n2 = n * 2;
- var _m2 = m * 2;
- return tree[_n2] < tree[_m2] || (tree[_n2] === tree[_m2] && depth[n] <= depth[m]);
- }
- function pqdownheap(s, tree, k) {
- var v = s.heap[k];
- var j = k << 1;
- while (j <= s.heap_len) {
- if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
- j++;
- }
- if (smaller(tree, v, s.heap[j], s.depth)) {
- break;
- }
- s.heap[k] = s.heap[j];
- k = j;
- j <<= 1;
- }
- s.heap[k] = v;
- }
- function compress_block(s, ltree, dtree) {
- var dist;
- var lc;
- var lx = 0;
- var code;
- var extra;
- if (s.last_lit !== 0) {
- do {
- dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | s.pending_buf[s.d_buf + lx * 2 + 1];
- lc = s.pending_buf[s.l_buf + lx];
- lx++;
- if (dist === 0) {
- send_code(s, lc, ltree);
- } else {
- code = _length_code[lc];
- send_code(s, code + LITERALS + 1, ltree);
- extra = extra_lbits[code];
- if (extra !== 0) {
- lc -= base_length[code];
- send_bits(s, lc, extra);
- }
- dist--;
- code = d_code(dist);
- send_code(s, code, dtree);
- extra = extra_dbits[code];
- if (extra !== 0) {
- dist -= base_dist[code];
- send_bits(s, dist, extra);
- }
- }
- } while (lx < s.last_lit);
- }
- send_code(s, END_BLOCK, ltree);
- }
- function build_tree(s, desc) {
- var tree = desc.dyn_tree;
- var stree = desc.stat_desc.static_tree;
- var has_stree = desc.stat_desc.has_stree;
- var elems = desc.stat_desc.elems;
- var n, m;
- var max_code = -1;
- var node;
- s.heap_len = 0;
- s.heap_max = HEAP_SIZE;
- for (n = 0; n < elems; n++) {
- if (tree[n * 2] !== 0) {
- s.heap[++s.heap_len] = max_code = n;
- s.depth[n] = 0;
- } else {
- tree[n * 2 + 1] = 0;
- }
- }
- while (s.heap_len < 2) {
- node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;
- tree[node * 2] = 1;
- s.depth[node] = 0;
- s.opt_len--;
- if (has_stree) {
- s.static_len -= stree[node * 2 + 1];
- }
- }
- desc.max_code = max_code;
- for (n = s.heap_len >> 1; n >= 1; n--) {
- pqdownheap(s, tree, n);
- }
- node = elems;
- do {
- n = s.heap[1];
- s.heap[1] = s.heap[s.heap_len--];
- pqdownheap(s, tree, 1);
- m = s.heap[1];
- s.heap[--s.heap_max] = n;
- s.heap[--s.heap_max] = m;
- tree[node * 2] = tree[n * 2] + tree[m * 2];
- s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
- tree[n * 2 + 1] = tree[m * 2 + 1] = node;
- s.heap[1] = node++;
- pqdownheap(s, tree, 1);
- } while (s.heap_len >= 2);
- s.heap[--s.heap_max] = s.heap[1];
- gen_bitlen(s, desc);
- gen_codes(tree, max_code, s.bl_count);
- }
- function scan_tree(s, tree, max_code) {
- var n;
- var prevlen = -1;
- var curlen;
- var nextlen = tree[0 * 2 + 1];
- var count = 0;
- var max_count = 7;
- var min_count = 4;
- if (nextlen === 0) {
- max_count = 138;
- min_count = 3;
- }
- tree[(max_code + 1) * 2 + 1] = 65535;
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen;
- nextlen = tree[(n + 1) * 2 + 1];
- if (++count < max_count && curlen === nextlen) {
- continue;
- } else if (count < min_count) {
- s.bl_tree[curlen * 2] += count;
- } else if (curlen !== 0) {
- if (curlen !== prevlen) {
- s.bl_tree[curlen * 2]++;
- }
- s.bl_tree[REP_3_6 * 2]++;
- } else if (count <= 10) {
- s.bl_tree[REPZ_3_10 * 2]++;
- } else {
- s.bl_tree[REPZ_11_138 * 2]++;
- }
- count = 0;
- prevlen = curlen;
- if (nextlen === 0) {
- max_count = 138;
- min_count = 3;
- } else if (curlen === nextlen) {
- max_count = 6;
- min_count = 3;
- } else {
- max_count = 7;
- min_count = 4;
- }
- }
- }
- function send_tree(s, tree, max_code) {
- var n;
- var prevlen = -1;
- var curlen;
- var nextlen = tree[0 * 2 + 1];
- var count = 0;
- var max_count = 7;
- var min_count = 4;
- if (nextlen === 0) {
- max_count = 138;
- min_count = 3;
- }
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen;
- nextlen = tree[(n + 1) * 2 + 1];
- if (++count < max_count && curlen === nextlen) {
- continue;
- } else if (count < min_count) {
- do {
- send_code(s, curlen, s.bl_tree);
- } while (--count !== 0);
- } else if (curlen !== 0) {
- if (curlen !== prevlen) {
- send_code(s, curlen, s.bl_tree);
- count--;
- }
- send_code(s, REP_3_6, s.bl_tree);
- send_bits(s, count - 3, 2);
- } else if (count <= 10) {
- send_code(s, REPZ_3_10, s.bl_tree);
- send_bits(s, count - 3, 3);
- } else {
- send_code(s, REPZ_11_138, s.bl_tree);
- send_bits(s, count - 11, 7);
- }
- count = 0;
- prevlen = curlen;
- if (nextlen === 0) {
- max_count = 138;
- min_count = 3;
- } else if (curlen === nextlen) {
- max_count = 6;
- min_count = 3;
- } else {
- max_count = 7;
- min_count = 4;
- }
- }
- }
- function build_bl_tree(s) {
- var max_blindex;
- scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
- scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
- build_tree(s, s.bl_desc);
- for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
- if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) {
- break;
- }
- }
- s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
- return max_blindex;
- }
- function send_all_trees(s, lcodes, dcodes, blcodes) {
- var rank;
- send_bits(s, lcodes - 257, 5);
- send_bits(s, dcodes - 1, 5);
- send_bits(s, blcodes - 4, 4);
- for (rank = 0; rank < blcodes; rank++) {
- send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3);
- }
- send_tree(s, s.dyn_ltree, lcodes - 1);
- send_tree(s, s.dyn_dtree, dcodes - 1);
- }
- function detect_data_type(s) {
- var black_mask = 4093624447;
- var n;
- for (n = 0; n <= 31; n++, black_mask >>>= 1) {
- if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) {
- return Z_BINARY;
- }
- }
- if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) {
- return Z_TEXT;
- }
- for (n = 32; n < LITERALS; n++) {
- if (s.dyn_ltree[n * 2] !== 0) {
- return Z_TEXT;
- }
- }
- return Z_BINARY;
- }
- var static_init_done = false;
- function _tr_init(s) {
- if (!static_init_done) {
- tr_static_init();
- static_init_done = true;
- }
- s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);
- s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);
- s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
- s.bi_buf = 0;
- s.bi_valid = 0;
- init_block(s);
- }
- function _tr_stored_block(s, buf, stored_len, last) {
- send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);
- copy_block(s, buf, stored_len, true);
- }
- function _tr_align(s) {
- send_bits(s, STATIC_TREES << 1, 3);
- send_code(s, END_BLOCK, static_ltree);
- bi_flush(s);
- }
- function _tr_flush_block(s, buf, stored_len, last) {
- var opt_lenb, static_lenb;
- var max_blindex = 0;
- if (s.level > 0) {
- if (s.strm.data_type === Z_UNKNOWN) {
- s.strm.data_type = detect_data_type(s);
- }
- build_tree(s, s.l_desc);
- build_tree(s, s.d_desc);
- max_blindex = build_bl_tree(s);
- opt_lenb = (s.opt_len + 3 + 7) >>> 3;
- static_lenb = (s.static_len + 3 + 7) >>> 3;
- if (static_lenb <= opt_lenb) {
- opt_lenb = static_lenb;
- }
- } else {
- opt_lenb = static_lenb = stored_len + 5;
- }
- if (stored_len + 4 <= opt_lenb && buf !== -1) {
- _tr_stored_block(s, buf, stored_len, last);
- } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
- send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
- compress_block(s, static_ltree, static_dtree);
- } else {
- send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
- send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
- compress_block(s, s.dyn_ltree, s.dyn_dtree);
- }
- init_block(s);
- if (last) {
- bi_windup(s);
- }
- }
- function _tr_tally(s, dist, lc) {
- s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 255;
- s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255;
- s.pending_buf[s.l_buf + s.last_lit] = lc & 255;
- s.last_lit++;
- if (dist === 0) {
- s.dyn_ltree[lc * 2]++;
- } else {
- s.matches++;
- dist--;
- s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++;
- s.dyn_dtree[d_code(dist) * 2]++;
- }
- return s.last_lit === s.lit_bufsize - 1;
- }
- exports._tr_init = _tr_init;
- exports._tr_stored_block = _tr_stored_block;
- exports._tr_flush_block = _tr_flush_block;
- exports._tr_tally = _tr_tally;
- exports._tr_align = _tr_align;
- },
-});
-
-// node_modules/pako/lib/zlib/adler32.js
-var require_adler32 = __commonJS({
- "node_modules/pako/lib/zlib/adler32.js"(exports, module2) {
- "use strict";
- function adler32(adler, buf, len, pos) {
- var s1 = (adler & 65535) | 0,
- s2 = ((adler >>> 16) & 65535) | 0,
- n = 0;
- while (len !== 0) {
- n = len > 2e3 ? 2e3 : len;
- len -= n;
- do {
- s1 = (s1 + buf[pos++]) | 0;
- s2 = (s2 + s1) | 0;
- } while (--n);
- s1 %= 65521;
- s2 %= 65521;
- }
- return s1 | (s2 << 16) | 0;
- }
- module2.exports = adler32;
- },
-});
-
-// node_modules/pako/lib/zlib/crc32.js
-var require_crc32 = __commonJS({
- "node_modules/pako/lib/zlib/crc32.js"(exports, module2) {
- "use strict";
- function makeTable() {
- var c,
- table = [];
- for (var n = 0; n < 256; n++) {
- c = n;
- for (var k = 0; k < 8; k++) {
- c = c & 1 ? 3988292384 ^ (c >>> 1) : c >>> 1;
- }
- table[n] = c;
- }
- return table;
- }
- var crcTable = makeTable();
- function crc32(crc, buf, len, pos) {
- var t = crcTable,
- end = pos + len;
- crc ^= -1;
- for (var i = pos; i < end; i++) {
- crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 255];
- }
- return crc ^ -1;
- }
- module2.exports = crc32;
- },
-});
-
-// node_modules/pako/lib/zlib/messages.js
-var require_messages = __commonJS({
- "node_modules/pako/lib/zlib/messages.js"(exports, module2) {
- "use strict";
- module2.exports = {
- 2: "need dictionary",
- 1: "stream end",
- 0: "",
- "-1": "file error",
- "-2": "stream error",
- "-3": "data error",
- "-4": "insufficient memory",
- "-5": "buffer error",
- "-6": "incompatible version",
- };
- },
-});
-
-// node_modules/pako/lib/zlib/deflate.js
-var require_deflate = __commonJS({
- "node_modules/pako/lib/zlib/deflate.js"(exports) {
- "use strict";
- var utils = require_common();
- var trees = require_trees();
- var adler32 = require_adler32();
- var crc32 = require_crc32();
- var msg = require_messages();
- var Z_NO_FLUSH = 0;
- var Z_PARTIAL_FLUSH = 1;
- var Z_FULL_FLUSH = 3;
- var Z_FINISH = 4;
- var Z_BLOCK = 5;
- var Z_OK = 0;
- var Z_STREAM_END = 1;
- var Z_STREAM_ERROR = -2;
- var Z_DATA_ERROR = -3;
- var Z_BUF_ERROR = -5;
- var Z_DEFAULT_COMPRESSION = -1;
- var Z_FILTERED = 1;
- var Z_HUFFMAN_ONLY = 2;
- var Z_RLE = 3;
- var Z_FIXED = 4;
- var Z_DEFAULT_STRATEGY = 0;
- var Z_UNKNOWN = 2;
- var Z_DEFLATED = 8;
- var MAX_MEM_LEVEL = 9;
- var MAX_WBITS = 15;
- var DEF_MEM_LEVEL = 8;
- var LENGTH_CODES = 29;
- var LITERALS = 256;
- var L_CODES = LITERALS + 1 + LENGTH_CODES;
- var D_CODES = 30;
- var BL_CODES = 19;
- var HEAP_SIZE = 2 * L_CODES + 1;
- var MAX_BITS = 15;
- var MIN_MATCH = 3;
- var MAX_MATCH = 258;
- var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
- var PRESET_DICT = 32;
- var INIT_STATE = 42;
- var EXTRA_STATE = 69;
- var NAME_STATE = 73;
- var COMMENT_STATE = 91;
- var HCRC_STATE = 103;
- var BUSY_STATE = 113;
- var FINISH_STATE = 666;
- var BS_NEED_MORE = 1;
- var BS_BLOCK_DONE = 2;
- var BS_FINISH_STARTED = 3;
- var BS_FINISH_DONE = 4;
- var OS_CODE = 3;
- function err(strm, errorCode) {
- strm.msg = msg[errorCode];
- return errorCode;
- }
- function rank(f) {
- return (f << 1) - (f > 4 ? 9 : 0);
- }
- function zero(buf) {
- var len = buf.length;
- while (--len >= 0) {
- buf[len] = 0;
- }
- }
- function flush_pending(strm) {
- var s = strm.state;
- var len = s.pending;
- if (len > strm.avail_out) {
- len = strm.avail_out;
- }
- if (len === 0) {
- return;
- }
- utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
- strm.next_out += len;
- s.pending_out += len;
- strm.total_out += len;
- strm.avail_out -= len;
- s.pending -= len;
- if (s.pending === 0) {
- s.pending_out = 0;
- }
- }
- function flush_block_only(s, last) {
- trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);
- s.block_start = s.strstart;
- flush_pending(s.strm);
- }
- function put_byte(s, b) {
- s.pending_buf[s.pending++] = b;
- }
- function putShortMSB(s, b) {
- s.pending_buf[s.pending++] = (b >>> 8) & 255;
- s.pending_buf[s.pending++] = b & 255;
- }
- function read_buf(strm, buf, start, size) {
- var len = strm.avail_in;
- if (len > size) {
- len = size;
- }
- if (len === 0) {
- return 0;
- }
- strm.avail_in -= len;
- utils.arraySet(buf, strm.input, strm.next_in, len, start);
- if (strm.state.wrap === 1) {
- strm.adler = adler32(strm.adler, buf, len, start);
- } else if (strm.state.wrap === 2) {
- strm.adler = crc32(strm.adler, buf, len, start);
- }
- strm.next_in += len;
- strm.total_in += len;
- return len;
- }
- function longest_match(s, cur_match) {
- var chain_length = s.max_chain_length;
- var scan = s.strstart;
- var match;
- var len;
- var best_len = s.prev_length;
- var nice_match = s.nice_match;
- var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0;
- var _win = s.window;
- var wmask = s.w_mask;
- var prev = s.prev;
- var strend = s.strstart + MAX_MATCH;
- var scan_end1 = _win[scan + best_len - 1];
- var scan_end = _win[scan + best_len];
- if (s.prev_length >= s.good_match) {
- chain_length >>= 2;
- }
- if (nice_match > s.lookahead) {
- nice_match = s.lookahead;
- }
- do {
- match = cur_match;
- if (
- _win[match + best_len] !== scan_end ||
- _win[match + best_len - 1] !== scan_end1 ||
- _win[match] !== _win[scan] ||
- _win[++match] !== _win[scan + 1]
- ) {
- continue;
- }
- scan += 2;
- match++;
- do {} while (
- _win[++scan] === _win[++match] &&
- _win[++scan] === _win[++match] &&
- _win[++scan] === _win[++match] &&
- _win[++scan] === _win[++match] &&
- _win[++scan] === _win[++match] &&
- _win[++scan] === _win[++match] &&
- _win[++scan] === _win[++match] &&
- _win[++scan] === _win[++match] &&
- scan < strend
- );
- len = MAX_MATCH - (strend - scan);
- scan = strend - MAX_MATCH;
- if (len > best_len) {
- s.match_start = cur_match;
- best_len = len;
- if (len >= nice_match) {
- break;
- }
- scan_end1 = _win[scan + best_len - 1];
- scan_end = _win[scan + best_len];
- }
- } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
- if (best_len <= s.lookahead) {
- return best_len;
- }
- return s.lookahead;
- }
- function fill_window(s) {
- var _w_size = s.w_size;
- var p, n, m, more, str;
- do {
- more = s.window_size - s.lookahead - s.strstart;
- if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
- utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
- s.match_start -= _w_size;
- s.strstart -= _w_size;
- s.block_start -= _w_size;
- n = s.hash_size;
- p = n;
- do {
- m = s.head[--p];
- s.head[p] = m >= _w_size ? m - _w_size : 0;
- } while (--n);
- n = _w_size;
- p = n;
- do {
- m = s.prev[--p];
- s.prev[p] = m >= _w_size ? m - _w_size : 0;
- } while (--n);
- more += _w_size;
- }
- if (s.strm.avail_in === 0) {
- break;
- }
- n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
- s.lookahead += n;
- if (s.lookahead + s.insert >= MIN_MATCH) {
- str = s.strstart - s.insert;
- s.ins_h = s.window[str];
- s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;
- while (s.insert) {
- s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
- s.prev[str & s.w_mask] = s.head[s.ins_h];
- s.head[s.ins_h] = str;
- str++;
- s.insert--;
- if (s.lookahead + s.insert < MIN_MATCH) {
- break;
- }
- }
- }
- } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
- }
- function deflate_stored(s, flush) {
- var max_block_size = 65535;
- if (max_block_size > s.pending_buf_size - 5) {
- max_block_size = s.pending_buf_size - 5;
- }
- for (;;) {
- if (s.lookahead <= 1) {
- fill_window(s);
- if (s.lookahead === 0 && flush === Z_NO_FLUSH) {
- return BS_NEED_MORE;
- }
- if (s.lookahead === 0) {
- break;
- }
- }
- s.strstart += s.lookahead;
- s.lookahead = 0;
- var max_start = s.block_start + max_block_size;
- if (s.strstart === 0 || s.strstart >= max_start) {
- s.lookahead = s.strstart - max_start;
- s.strstart = max_start;
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- }
- s.insert = 0;
- if (flush === Z_FINISH) {
- flush_block_only(s, true);
- if (s.strm.avail_out === 0) {
- return BS_FINISH_STARTED;
- }
- return BS_FINISH_DONE;
- }
- if (s.strstart > s.block_start) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- return BS_NEED_MORE;
- }
- function deflate_fast(s, flush) {
- var hash_head;
- var bflush;
- for (;;) {
- if (s.lookahead < MIN_LOOKAHEAD) {
- fill_window(s);
- if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
- return BS_NEED_MORE;
- }
- if (s.lookahead === 0) {
- break;
- }
- }
- hash_head = 0;
- if (s.lookahead >= MIN_MATCH) {
- s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
- hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
- s.head[s.ins_h] = s.strstart;
- }
- if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
- s.match_length = longest_match(s, hash_head);
- }
- if (s.match_length >= MIN_MATCH) {
- bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
- s.lookahead -= s.match_length;
- if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) {
- s.match_length--;
- do {
- s.strstart++;
- s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
- hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
- s.head[s.ins_h] = s.strstart;
- } while (--s.match_length !== 0);
- s.strstart++;
- } else {
- s.strstart += s.match_length;
- s.match_length = 0;
- s.ins_h = s.window[s.strstart];
- s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;
- }
- } else {
- bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
- s.lookahead--;
- s.strstart++;
- }
- if (bflush) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- }
- s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
- if (flush === Z_FINISH) {
- flush_block_only(s, true);
- if (s.strm.avail_out === 0) {
- return BS_FINISH_STARTED;
- }
- return BS_FINISH_DONE;
- }
- if (s.last_lit) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- return BS_BLOCK_DONE;
- }
- function deflate_slow(s, flush) {
- var hash_head;
- var bflush;
- var max_insert;
- for (;;) {
- if (s.lookahead < MIN_LOOKAHEAD) {
- fill_window(s);
- if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
- return BS_NEED_MORE;
- }
- if (s.lookahead === 0) {
- break;
- }
- }
- hash_head = 0;
- if (s.lookahead >= MIN_MATCH) {
- s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
- hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
- s.head[s.ins_h] = s.strstart;
- }
- s.prev_length = s.match_length;
- s.prev_match = s.match_start;
- s.match_length = MIN_MATCH - 1;
- if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
- s.match_length = longest_match(s, hash_head);
- if (
- s.match_length <= 5 &&
- (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096))
- ) {
- s.match_length = MIN_MATCH - 1;
- }
- }
- if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
- max_insert = s.strstart + s.lookahead - MIN_MATCH;
- bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
- s.lookahead -= s.prev_length - 1;
- s.prev_length -= 2;
- do {
- if (++s.strstart <= max_insert) {
- s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
- hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
- s.head[s.ins_h] = s.strstart;
- }
- } while (--s.prev_length !== 0);
- s.match_available = 0;
- s.match_length = MIN_MATCH - 1;
- s.strstart++;
- if (bflush) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- } else if (s.match_available) {
- bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
- if (bflush) {
- flush_block_only(s, false);
- }
- s.strstart++;
- s.lookahead--;
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- } else {
- s.match_available = 1;
- s.strstart++;
- s.lookahead--;
- }
- }
- if (s.match_available) {
- bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
- s.match_available = 0;
- }
- s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
- if (flush === Z_FINISH) {
- flush_block_only(s, true);
- if (s.strm.avail_out === 0) {
- return BS_FINISH_STARTED;
- }
- return BS_FINISH_DONE;
- }
- if (s.last_lit) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- return BS_BLOCK_DONE;
- }
- function deflate_rle(s, flush) {
- var bflush;
- var prev;
- var scan, strend;
- var _win = s.window;
- for (;;) {
- if (s.lookahead <= MAX_MATCH) {
- fill_window(s);
- if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
- return BS_NEED_MORE;
- }
- if (s.lookahead === 0) {
- break;
- }
- }
- s.match_length = 0;
- if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
- scan = s.strstart - 1;
- prev = _win[scan];
- if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
- strend = s.strstart + MAX_MATCH;
- do {} while (
- prev === _win[++scan] &&
- prev === _win[++scan] &&
- prev === _win[++scan] &&
- prev === _win[++scan] &&
- prev === _win[++scan] &&
- prev === _win[++scan] &&
- prev === _win[++scan] &&
- prev === _win[++scan] &&
- scan < strend
- );
- s.match_length = MAX_MATCH - (strend - scan);
- if (s.match_length > s.lookahead) {
- s.match_length = s.lookahead;
- }
- }
- }
- if (s.match_length >= MIN_MATCH) {
- bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
- s.lookahead -= s.match_length;
- s.strstart += s.match_length;
- s.match_length = 0;
- } else {
- bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
- s.lookahead--;
- s.strstart++;
- }
- if (bflush) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- }
- s.insert = 0;
- if (flush === Z_FINISH) {
- flush_block_only(s, true);
- if (s.strm.avail_out === 0) {
- return BS_FINISH_STARTED;
- }
- return BS_FINISH_DONE;
- }
- if (s.last_lit) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- return BS_BLOCK_DONE;
- }
- function deflate_huff(s, flush) {
- var bflush;
- for (;;) {
- if (s.lookahead === 0) {
- fill_window(s);
- if (s.lookahead === 0) {
- if (flush === Z_NO_FLUSH) {
- return BS_NEED_MORE;
- }
- break;
- }
- }
- s.match_length = 0;
- bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
- s.lookahead--;
- s.strstart++;
- if (bflush) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- }
- s.insert = 0;
- if (flush === Z_FINISH) {
- flush_block_only(s, true);
- if (s.strm.avail_out === 0) {
- return BS_FINISH_STARTED;
- }
- return BS_FINISH_DONE;
- }
- if (s.last_lit) {
- flush_block_only(s, false);
- if (s.strm.avail_out === 0) {
- return BS_NEED_MORE;
- }
- }
- return BS_BLOCK_DONE;
- }
- function Config(good_length, max_lazy, nice_length, max_chain, func) {
- this.good_length = good_length;
- this.max_lazy = max_lazy;
- this.nice_length = nice_length;
- this.max_chain = max_chain;
- this.func = func;
- }
- var configuration_table;
- configuration_table = [
- new Config(0, 0, 0, 0, deflate_stored),
- new Config(4, 4, 8, 4, deflate_fast),
- new Config(4, 5, 16, 8, deflate_fast),
- new Config(4, 6, 32, 32, deflate_fast),
- new Config(4, 4, 16, 16, deflate_slow),
- new Config(8, 16, 32, 32, deflate_slow),
- new Config(8, 16, 128, 128, deflate_slow),
- new Config(8, 32, 128, 256, deflate_slow),
- new Config(32, 128, 258, 1024, deflate_slow),
- new Config(32, 258, 258, 4096, deflate_slow),
- ];
- function lm_init(s) {
- s.window_size = 2 * s.w_size;
- zero(s.head);
- s.max_lazy_match = configuration_table[s.level].max_lazy;
- s.good_match = configuration_table[s.level].good_length;
- s.nice_match = configuration_table[s.level].nice_length;
- s.max_chain_length = configuration_table[s.level].max_chain;
- s.strstart = 0;
- s.block_start = 0;
- s.lookahead = 0;
- s.insert = 0;
- s.match_length = s.prev_length = MIN_MATCH - 1;
- s.match_available = 0;
- s.ins_h = 0;
- }
- function DeflateState() {
- this.strm = null;
- this.status = 0;
- this.pending_buf = null;
- this.pending_buf_size = 0;
- this.pending_out = 0;
- this.pending = 0;
- this.wrap = 0;
- this.gzhead = null;
- this.gzindex = 0;
- this.method = Z_DEFLATED;
- this.last_flush = -1;
- this.w_size = 0;
- this.w_bits = 0;
- this.w_mask = 0;
- this.window = null;
- this.window_size = 0;
- this.prev = null;
- this.head = null;
- this.ins_h = 0;
- this.hash_size = 0;
- this.hash_bits = 0;
- this.hash_mask = 0;
- this.hash_shift = 0;
- this.block_start = 0;
- this.match_length = 0;
- this.prev_match = 0;
- this.match_available = 0;
- this.strstart = 0;
- this.match_start = 0;
- this.lookahead = 0;
- this.prev_length = 0;
- this.max_chain_length = 0;
- this.max_lazy_match = 0;
- this.level = 0;
- this.strategy = 0;
- this.good_match = 0;
- this.nice_match = 0;
- this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);
- this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);
- this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);
- zero(this.dyn_ltree);
- zero(this.dyn_dtree);
- zero(this.bl_tree);
- this.l_desc = null;
- this.d_desc = null;
- this.bl_desc = null;
- this.bl_count = new utils.Buf16(MAX_BITS + 1);
- this.heap = new utils.Buf16(2 * L_CODES + 1);
- zero(this.heap);
- this.heap_len = 0;
- this.heap_max = 0;
- this.depth = new utils.Buf16(2 * L_CODES + 1);
- zero(this.depth);
- this.l_buf = 0;
- this.lit_bufsize = 0;
- this.last_lit = 0;
- this.d_buf = 0;
- this.opt_len = 0;
- this.static_len = 0;
- this.matches = 0;
- this.insert = 0;
- this.bi_buf = 0;
- this.bi_valid = 0;
- }
- function deflateResetKeep(strm) {
- var s;
- if (!strm || !strm.state) {
- return err(strm, Z_STREAM_ERROR);
- }
- strm.total_in = strm.total_out = 0;
- strm.data_type = Z_UNKNOWN;
- s = strm.state;
- s.pending = 0;
- s.pending_out = 0;
- if (s.wrap < 0) {
- s.wrap = -s.wrap;
- }
- s.status = s.wrap ? INIT_STATE : BUSY_STATE;
- strm.adler = s.wrap === 2 ? 0 : 1;
- s.last_flush = Z_NO_FLUSH;
- trees._tr_init(s);
- return Z_OK;
- }
- function deflateReset(strm) {
- var ret = deflateResetKeep(strm);
- if (ret === Z_OK) {
- lm_init(strm.state);
- }
- return ret;
- }
- function deflateSetHeader(strm, head) {
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- if (strm.state.wrap !== 2) {
- return Z_STREAM_ERROR;
- }
- strm.state.gzhead = head;
- return Z_OK;
- }
- function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
- if (!strm) {
- return Z_STREAM_ERROR;
- }
- var wrap = 1;
- if (level === Z_DEFAULT_COMPRESSION) {
- level = 6;
- }
- if (windowBits < 0) {
- wrap = 0;
- windowBits = -windowBits;
- } else if (windowBits > 15) {
- wrap = 2;
- windowBits -= 16;
- }
- if (
- memLevel < 1 ||
- memLevel > MAX_MEM_LEVEL ||
- method !== Z_DEFLATED ||
- windowBits < 8 ||
- windowBits > 15 ||
- level < 0 ||
- level > 9 ||
- strategy < 0 ||
- strategy > Z_FIXED
- ) {
- return err(strm, Z_STREAM_ERROR);
- }
- if (windowBits === 8) {
- windowBits = 9;
- }
- var s = new DeflateState();
- strm.state = s;
- s.strm = strm;
- s.wrap = wrap;
- s.gzhead = null;
- s.w_bits = windowBits;
- s.w_size = 1 << s.w_bits;
- s.w_mask = s.w_size - 1;
- s.hash_bits = memLevel + 7;
- s.hash_size = 1 << s.hash_bits;
- s.hash_mask = s.hash_size - 1;
- s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
- s.window = new utils.Buf8(s.w_size * 2);
- s.head = new utils.Buf16(s.hash_size);
- s.prev = new utils.Buf16(s.w_size);
- s.lit_bufsize = 1 << (memLevel + 6);
- s.pending_buf_size = s.lit_bufsize * 4;
- s.pending_buf = new utils.Buf8(s.pending_buf_size);
- s.d_buf = 1 * s.lit_bufsize;
- s.l_buf = (1 + 2) * s.lit_bufsize;
- s.level = level;
- s.strategy = strategy;
- s.method = method;
- return deflateReset(strm);
- }
- function deflateInit(strm, level) {
- return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
- }
- function deflate(strm, flush) {
- var old_flush, s;
- var beg, val;
- if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) {
- return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
- }
- s = strm.state;
- if (!strm.output || (!strm.input && strm.avail_in !== 0) || (s.status === FINISH_STATE && flush !== Z_FINISH)) {
- return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR);
- }
- s.strm = strm;
- old_flush = s.last_flush;
- s.last_flush = flush;
- if (s.status === INIT_STATE) {
- if (s.wrap === 2) {
- strm.adler = 0;
- put_byte(s, 31);
- put_byte(s, 139);
- put_byte(s, 8);
- if (!s.gzhead) {
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, 0);
- put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
- put_byte(s, OS_CODE);
- s.status = BUSY_STATE;
- } else {
- put_byte(
- s,
- (s.gzhead.text ? 1 : 0) +
- (s.gzhead.hcrc ? 2 : 0) +
- (!s.gzhead.extra ? 0 : 4) +
- (!s.gzhead.name ? 0 : 8) +
- (!s.gzhead.comment ? 0 : 16),
- );
- put_byte(s, s.gzhead.time & 255);
- put_byte(s, (s.gzhead.time >> 8) & 255);
- put_byte(s, (s.gzhead.time >> 16) & 255);
- put_byte(s, (s.gzhead.time >> 24) & 255);
- put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
- put_byte(s, s.gzhead.os & 255);
- if (s.gzhead.extra && s.gzhead.extra.length) {
- put_byte(s, s.gzhead.extra.length & 255);
- put_byte(s, (s.gzhead.extra.length >> 8) & 255);
- }
- if (s.gzhead.hcrc) {
- strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
- }
- s.gzindex = 0;
- s.status = EXTRA_STATE;
- }
- } else {
- var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;
- var level_flags = -1;
- if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
- level_flags = 0;
- } else if (s.level < 6) {
- level_flags = 1;
- } else if (s.level === 6) {
- level_flags = 2;
- } else {
- level_flags = 3;
- }
- header |= level_flags << 6;
- if (s.strstart !== 0) {
- header |= PRESET_DICT;
- }
- header += 31 - (header % 31);
- s.status = BUSY_STATE;
- putShortMSB(s, header);
- if (s.strstart !== 0) {
- putShortMSB(s, strm.adler >>> 16);
- putShortMSB(s, strm.adler & 65535);
- }
- strm.adler = 1;
- }
- }
- if (s.status === EXTRA_STATE) {
- if (s.gzhead.extra) {
- beg = s.pending;
- while (s.gzindex < (s.gzhead.extra.length & 65535)) {
- if (s.pending === s.pending_buf_size) {
- if (s.gzhead.hcrc && s.pending > beg) {
- strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
- }
- flush_pending(strm);
- beg = s.pending;
- if (s.pending === s.pending_buf_size) {
- break;
- }
- }
- put_byte(s, s.gzhead.extra[s.gzindex] & 255);
- s.gzindex++;
- }
- if (s.gzhead.hcrc && s.pending > beg) {
- strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
- }
- if (s.gzindex === s.gzhead.extra.length) {
- s.gzindex = 0;
- s.status = NAME_STATE;
- }
- } else {
- s.status = NAME_STATE;
- }
- }
- if (s.status === NAME_STATE) {
- if (s.gzhead.name) {
- beg = s.pending;
- do {
- if (s.pending === s.pending_buf_size) {
- if (s.gzhead.hcrc && s.pending > beg) {
- strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
- }
- flush_pending(strm);
- beg = s.pending;
- if (s.pending === s.pending_buf_size) {
- val = 1;
- break;
- }
- }
- if (s.gzindex < s.gzhead.name.length) {
- val = s.gzhead.name.charCodeAt(s.gzindex++) & 255;
- } else {
- val = 0;
- }
- put_byte(s, val);
- } while (val !== 0);
- if (s.gzhead.hcrc && s.pending > beg) {
- strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
- }
- if (val === 0) {
- s.gzindex = 0;
- s.status = COMMENT_STATE;
- }
- } else {
- s.status = COMMENT_STATE;
- }
- }
- if (s.status === COMMENT_STATE) {
- if (s.gzhead.comment) {
- beg = s.pending;
- do {
- if (s.pending === s.pending_buf_size) {
- if (s.gzhead.hcrc && s.pending > beg) {
- strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
- }
- flush_pending(strm);
- beg = s.pending;
- if (s.pending === s.pending_buf_size) {
- val = 1;
- break;
- }
- }
- if (s.gzindex < s.gzhead.comment.length) {
- val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255;
- } else {
- val = 0;
- }
- put_byte(s, val);
- } while (val !== 0);
- if (s.gzhead.hcrc && s.pending > beg) {
- strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
- }
- if (val === 0) {
- s.status = HCRC_STATE;
- }
- } else {
- s.status = HCRC_STATE;
- }
- }
- if (s.status === HCRC_STATE) {
- if (s.gzhead.hcrc) {
- if (s.pending + 2 > s.pending_buf_size) {
- flush_pending(strm);
- }
- if (s.pending + 2 <= s.pending_buf_size) {
- put_byte(s, strm.adler & 255);
- put_byte(s, (strm.adler >> 8) & 255);
- strm.adler = 0;
- s.status = BUSY_STATE;
- }
- } else {
- s.status = BUSY_STATE;
- }
- }
- if (s.pending !== 0) {
- flush_pending(strm);
- if (strm.avail_out === 0) {
- s.last_flush = -1;
- return Z_OK;
- }
- } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) {
- return err(strm, Z_BUF_ERROR);
- }
- if (s.status === FINISH_STATE && strm.avail_in !== 0) {
- return err(strm, Z_BUF_ERROR);
- }
- if (strm.avail_in !== 0 || s.lookahead !== 0 || (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {
- var bstate =
- s.strategy === Z_HUFFMAN_ONLY
- ? deflate_huff(s, flush)
- : s.strategy === Z_RLE
- ? deflate_rle(s, flush)
- : configuration_table[s.level].func(s, flush);
- if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
- s.status = FINISH_STATE;
- }
- if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
- if (strm.avail_out === 0) {
- s.last_flush = -1;
- }
- return Z_OK;
- }
- if (bstate === BS_BLOCK_DONE) {
- if (flush === Z_PARTIAL_FLUSH) {
- trees._tr_align(s);
- } else if (flush !== Z_BLOCK) {
- trees._tr_stored_block(s, 0, 0, false);
- if (flush === Z_FULL_FLUSH) {
- zero(s.head);
- if (s.lookahead === 0) {
- s.strstart = 0;
- s.block_start = 0;
- s.insert = 0;
- }
- }
- }
- flush_pending(strm);
- if (strm.avail_out === 0) {
- s.last_flush = -1;
- return Z_OK;
- }
- }
- }
- if (flush !== Z_FINISH) {
- return Z_OK;
- }
- if (s.wrap <= 0) {
- return Z_STREAM_END;
- }
- if (s.wrap === 2) {
- put_byte(s, strm.adler & 255);
- put_byte(s, (strm.adler >> 8) & 255);
- put_byte(s, (strm.adler >> 16) & 255);
- put_byte(s, (strm.adler >> 24) & 255);
- put_byte(s, strm.total_in & 255);
- put_byte(s, (strm.total_in >> 8) & 255);
- put_byte(s, (strm.total_in >> 16) & 255);
- put_byte(s, (strm.total_in >> 24) & 255);
- } else {
- putShortMSB(s, strm.adler >>> 16);
- putShortMSB(s, strm.adler & 65535);
- }
- flush_pending(strm);
- if (s.wrap > 0) {
- s.wrap = -s.wrap;
- }
- return s.pending !== 0 ? Z_OK : Z_STREAM_END;
- }
- function deflateEnd(strm) {
- var status;
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- status = strm.state.status;
- if (
- status !== INIT_STATE &&
- status !== EXTRA_STATE &&
- status !== NAME_STATE &&
- status !== COMMENT_STATE &&
- status !== HCRC_STATE &&
- status !== BUSY_STATE &&
- status !== FINISH_STATE
- ) {
- return err(strm, Z_STREAM_ERROR);
- }
- strm.state = null;
- return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
- }
- function deflateSetDictionary(strm, dictionary) {
- var dictLength = dictionary.length;
- var s;
- var str, n;
- var wrap;
- var avail;
- var next;
- var input;
- var tmpDict;
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- s = strm.state;
- wrap = s.wrap;
- if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {
- return Z_STREAM_ERROR;
- }
- if (wrap === 1) {
- strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
- }
- s.wrap = 0;
- if (dictLength >= s.w_size) {
- if (wrap === 0) {
- zero(s.head);
- s.strstart = 0;
- s.block_start = 0;
- s.insert = 0;
- }
- tmpDict = new utils.Buf8(s.w_size);
- utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
- dictionary = tmpDict;
- dictLength = s.w_size;
- }
- avail = strm.avail_in;
- next = strm.next_in;
- input = strm.input;
- strm.avail_in = dictLength;
- strm.next_in = 0;
- strm.input = dictionary;
- fill_window(s);
- while (s.lookahead >= MIN_MATCH) {
- str = s.strstart;
- n = s.lookahead - (MIN_MATCH - 1);
- do {
- s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
- s.prev[str & s.w_mask] = s.head[s.ins_h];
- s.head[s.ins_h] = str;
- str++;
- } while (--n);
- s.strstart = str;
- s.lookahead = MIN_MATCH - 1;
- fill_window(s);
- }
- s.strstart += s.lookahead;
- s.block_start = s.strstart;
- s.insert = s.lookahead;
- s.lookahead = 0;
- s.match_length = s.prev_length = MIN_MATCH - 1;
- s.match_available = 0;
- strm.next_in = next;
- strm.input = input;
- strm.avail_in = avail;
- s.wrap = wrap;
- return Z_OK;
- }
- exports.deflateInit = deflateInit;
- exports.deflateInit2 = deflateInit2;
- exports.deflateReset = deflateReset;
- exports.deflateResetKeep = deflateResetKeep;
- exports.deflateSetHeader = deflateSetHeader;
- exports.deflate = deflate;
- exports.deflateEnd = deflateEnd;
- exports.deflateSetDictionary = deflateSetDictionary;
- exports.deflateInfo = "pako deflate (from Nodeca project)";
- },
-});
-
-// node_modules/pako/lib/zlib/inffast.js
-var require_inffast = __commonJS({
- "node_modules/pako/lib/zlib/inffast.js"(exports, module2) {
- "use strict";
- var BAD = 30;
- var TYPE = 12;
- module2.exports = function inflate_fast(strm, start) {
- var state;
- var _in;
- var last;
- var _out;
- var beg;
- var end;
- var dmax;
- var wsize;
- var whave;
- var wnext;
- var s_window;
- var hold;
- var bits;
- var lcode;
- var dcode;
- var lmask;
- var dmask;
- var here;
- var op;
- var len;
- var dist;
- var from;
- var from_source;
- var input, output;
- state = strm.state;
- _in = strm.next_in;
- input = strm.input;
- last = _in + (strm.avail_in - 5);
- _out = strm.next_out;
- output = strm.output;
- beg = _out - (start - strm.avail_out);
- end = _out + (strm.avail_out - 257);
- dmax = state.dmax;
- wsize = state.wsize;
- whave = state.whave;
- wnext = state.wnext;
- s_window = state.window;
- hold = state.hold;
- bits = state.bits;
- lcode = state.lencode;
- dcode = state.distcode;
- lmask = (1 << state.lenbits) - 1;
- dmask = (1 << state.distbits) - 1;
- top: do {
- if (bits < 15) {
- hold += input[_in++] << bits;
- bits += 8;
- hold += input[_in++] << bits;
- bits += 8;
- }
- here = lcode[hold & lmask];
- dolen: for (;;) {
- op = here >>> 24;
- hold >>>= op;
- bits -= op;
- op = (here >>> 16) & 255;
- if (op === 0) {
- output[_out++] = here & 65535;
- } else if (op & 16) {
- len = here & 65535;
- op &= 15;
- if (op) {
- if (bits < op) {
- hold += input[_in++] << bits;
- bits += 8;
- }
- len += hold & ((1 << op) - 1);
- hold >>>= op;
- bits -= op;
- }
- if (bits < 15) {
- hold += input[_in++] << bits;
- bits += 8;
- hold += input[_in++] << bits;
- bits += 8;
- }
- here = dcode[hold & dmask];
- dodist: for (;;) {
- op = here >>> 24;
- hold >>>= op;
- bits -= op;
- op = (here >>> 16) & 255;
- if (op & 16) {
- dist = here & 65535;
- op &= 15;
- if (bits < op) {
- hold += input[_in++] << bits;
- bits += 8;
- if (bits < op) {
- hold += input[_in++] << bits;
- bits += 8;
- }
- }
- dist += hold & ((1 << op) - 1);
- if (dist > dmax) {
- strm.msg = "invalid distance too far back";
- state.mode = BAD;
- break top;
- }
- hold >>>= op;
- bits -= op;
- op = _out - beg;
- if (dist > op) {
- op = dist - op;
- if (op > whave) {
- if (state.sane) {
- strm.msg = "invalid distance too far back";
- state.mode = BAD;
- break top;
- }
- }
- from = 0;
- from_source = s_window;
- if (wnext === 0) {
- from += wsize - op;
- if (op < len) {
- len -= op;
- do {
- output[_out++] = s_window[from++];
- } while (--op);
- from = _out - dist;
- from_source = output;
- }
- } else if (wnext < op) {
- from += wsize + wnext - op;
- op -= wnext;
- if (op < len) {
- len -= op;
- do {
- output[_out++] = s_window[from++];
- } while (--op);
- from = 0;
- if (wnext < len) {
- op = wnext;
- len -= op;
- do {
- output[_out++] = s_window[from++];
- } while (--op);
- from = _out - dist;
- from_source = output;
- }
- }
- } else {
- from += wnext - op;
- if (op < len) {
- len -= op;
- do {
- output[_out++] = s_window[from++];
- } while (--op);
- from = _out - dist;
- from_source = output;
- }
- }
- while (len > 2) {
- output[_out++] = from_source[from++];
- output[_out++] = from_source[from++];
- output[_out++] = from_source[from++];
- len -= 3;
- }
- if (len) {
- output[_out++] = from_source[from++];
- if (len > 1) {
- output[_out++] = from_source[from++];
- }
- }
- } else {
- from = _out - dist;
- do {
- output[_out++] = output[from++];
- output[_out++] = output[from++];
- output[_out++] = output[from++];
- len -= 3;
- } while (len > 2);
- if (len) {
- output[_out++] = output[from++];
- if (len > 1) {
- output[_out++] = output[from++];
- }
- }
- }
- } else if ((op & 64) === 0) {
- here = dcode[(here & 65535) + (hold & ((1 << op) - 1))];
- continue dodist;
- } else {
- strm.msg = "invalid distance code";
- state.mode = BAD;
- break top;
- }
- break;
- }
- } else if ((op & 64) === 0) {
- here = lcode[(here & 65535) + (hold & ((1 << op) - 1))];
- continue dolen;
- } else if (op & 32) {
- state.mode = TYPE;
- break top;
- } else {
- strm.msg = "invalid literal/length code";
- state.mode = BAD;
- break top;
- }
- break;
- }
- } while (_in < last && _out < end);
- len = bits >> 3;
- _in -= len;
- bits -= len << 3;
- hold &= (1 << bits) - 1;
- strm.next_in = _in;
- strm.next_out = _out;
- strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);
- strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);
- state.hold = hold;
- state.bits = bits;
- return;
- };
- },
-});
-
-// node_modules/pako/lib/zlib/inftrees.js
-var require_inftrees = __commonJS({
- "node_modules/pako/lib/zlib/inftrees.js"(exports, module2) {
- "use strict";
- var utils = require_common();
- var MAXBITS = 15;
- var ENOUGH_LENS = 852;
- var ENOUGH_DISTS = 592;
- var CODES = 0;
- var LENS = 1;
- var DISTS = 2;
- var lbase = [
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258,
- 0, 0,
- ];
- var lext = [
- 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21,
- 16, 72, 78,
- ];
- var dbase = [
- 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
- 8193, 12289, 16385, 24577, 0, 0,
- ];
- var dext = [
- 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28,
- 29, 29, 64, 64,
- ];
- module2.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {
- var bits = opts.bits;
- var len = 0;
- var sym = 0;
- var min = 0,
- max = 0;
- var root = 0;
- var curr = 0;
- var drop = 0;
- var left = 0;
- var used = 0;
- var huff = 0;
- var incr;
- var fill;
- var low;
- var mask;
- var next;
- var base = null;
- var base_index = 0;
- var end;
- var count = new utils.Buf16(MAXBITS + 1);
- var offs = new utils.Buf16(MAXBITS + 1);
- var extra = null;
- var extra_index = 0;
- var here_bits, here_op, here_val;
- for (len = 0; len <= MAXBITS; len++) {
- count[len] = 0;
- }
- for (sym = 0; sym < codes; sym++) {
- count[lens[lens_index + sym]]++;
- }
- root = bits;
- for (max = MAXBITS; max >= 1; max--) {
- if (count[max] !== 0) {
- break;
- }
- }
- if (root > max) {
- root = max;
- }
- if (max === 0) {
- table[table_index++] = (1 << 24) | (64 << 16) | 0;
- table[table_index++] = (1 << 24) | (64 << 16) | 0;
- opts.bits = 1;
- return 0;
- }
- for (min = 1; min < max; min++) {
- if (count[min] !== 0) {
- break;
- }
- }
- if (root < min) {
- root = min;
- }
- left = 1;
- for (len = 1; len <= MAXBITS; len++) {
- left <<= 1;
- left -= count[len];
- if (left < 0) {
- return -1;
- }
- }
- if (left > 0 && (type === CODES || max !== 1)) {
- return -1;
- }
- offs[1] = 0;
- for (len = 1; len < MAXBITS; len++) {
- offs[len + 1] = offs[len] + count[len];
- }
- for (sym = 0; sym < codes; sym++) {
- if (lens[lens_index + sym] !== 0) {
- work[offs[lens[lens_index + sym]]++] = sym;
- }
- }
- if (type === CODES) {
- base = extra = work;
- end = 19;
- } else if (type === LENS) {
- base = lbase;
- base_index -= 257;
- extra = lext;
- extra_index -= 257;
- end = 256;
- } else {
- base = dbase;
- extra = dext;
- end = -1;
- }
- huff = 0;
- sym = 0;
- len = min;
- next = table_index;
- curr = root;
- drop = 0;
- low = -1;
- used = 1 << root;
- mask = used - 1;
- if ((type === LENS && used > ENOUGH_LENS) || (type === DISTS && used > ENOUGH_DISTS)) {
- return 1;
- }
- for (;;) {
- here_bits = len - drop;
- if (work[sym] < end) {
- here_op = 0;
- here_val = work[sym];
- } else if (work[sym] > end) {
- here_op = extra[extra_index + work[sym]];
- here_val = base[base_index + work[sym]];
- } else {
- here_op = 32 + 64;
- here_val = 0;
- }
- incr = 1 << (len - drop);
- fill = 1 << curr;
- min = fill;
- do {
- fill -= incr;
- table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val | 0;
- } while (fill !== 0);
- incr = 1 << (len - 1);
- while (huff & incr) {
- incr >>= 1;
- }
- if (incr !== 0) {
- huff &= incr - 1;
- huff += incr;
- } else {
- huff = 0;
- }
- sym++;
- if (--count[len] === 0) {
- if (len === max) {
- break;
- }
- len = lens[lens_index + work[sym]];
- }
- if (len > root && (huff & mask) !== low) {
- if (drop === 0) {
- drop = root;
- }
- next += min;
- curr = len - drop;
- left = 1 << curr;
- while (curr + drop < max) {
- left -= count[curr + drop];
- if (left <= 0) {
- break;
- }
- curr++;
- left <<= 1;
- }
- used += 1 << curr;
- if ((type === LENS && used > ENOUGH_LENS) || (type === DISTS && used > ENOUGH_DISTS)) {
- return 1;
- }
- low = huff & mask;
- table[low] = (root << 24) | (curr << 16) | (next - table_index) | 0;
- }
- }
- if (huff !== 0) {
- table[next + huff] = ((len - drop) << 24) | (64 << 16) | 0;
- }
- opts.bits = root;
- return 0;
- };
- },
-});
-
-// node_modules/pako/lib/zlib/inflate.js
-var require_inflate = __commonJS({
- "node_modules/pako/lib/zlib/inflate.js"(exports) {
- "use strict";
- var utils = require_common();
- var adler32 = require_adler32();
- var crc32 = require_crc32();
- var inflate_fast = require_inffast();
- var inflate_table = require_inftrees();
- var CODES = 0;
- var LENS = 1;
- var DISTS = 2;
- var Z_FINISH = 4;
- var Z_BLOCK = 5;
- var Z_TREES = 6;
- var Z_OK = 0;
- var Z_STREAM_END = 1;
- var Z_NEED_DICT = 2;
- var Z_STREAM_ERROR = -2;
- var Z_DATA_ERROR = -3;
- var Z_MEM_ERROR = -4;
- var Z_BUF_ERROR = -5;
- var Z_DEFLATED = 8;
- var HEAD = 1;
- var FLAGS = 2;
- var TIME = 3;
- var OS = 4;
- var EXLEN = 5;
- var EXTRA = 6;
- var NAME = 7;
- var COMMENT = 8;
- var HCRC = 9;
- var DICTID = 10;
- var DICT = 11;
- var TYPE = 12;
- var TYPEDO = 13;
- var STORED = 14;
- var COPY_ = 15;
- var COPY = 16;
- var TABLE = 17;
- var LENLENS = 18;
- var CODELENS = 19;
- var LEN_ = 20;
- var LEN = 21;
- var LENEXT = 22;
- var DIST = 23;
- var DISTEXT = 24;
- var MATCH = 25;
- var LIT = 26;
- var CHECK = 27;
- var LENGTH = 28;
- var DONE = 29;
- var BAD = 30;
- var MEM = 31;
- var SYNC = 32;
- var ENOUGH_LENS = 852;
- var ENOUGH_DISTS = 592;
- var MAX_WBITS = 15;
- var DEF_WBITS = MAX_WBITS;
- function zswap32(q) {
- return ((q >>> 24) & 255) + ((q >>> 8) & 65280) + ((q & 65280) << 8) + ((q & 255) << 24);
- }
- function InflateState() {
- this.mode = 0;
- this.last = false;
- this.wrap = 0;
- this.havedict = false;
- this.flags = 0;
- this.dmax = 0;
- this.check = 0;
- this.total = 0;
- this.head = null;
- this.wbits = 0;
- this.wsize = 0;
- this.whave = 0;
- this.wnext = 0;
- this.window = null;
- this.hold = 0;
- this.bits = 0;
- this.length = 0;
- this.offset = 0;
- this.extra = 0;
- this.lencode = null;
- this.distcode = null;
- this.lenbits = 0;
- this.distbits = 0;
- this.ncode = 0;
- this.nlen = 0;
- this.ndist = 0;
- this.have = 0;
- this.next = null;
- this.lens = new utils.Buf16(320);
- this.work = new utils.Buf16(288);
- this.lendyn = null;
- this.distdyn = null;
- this.sane = 0;
- this.back = 0;
- this.was = 0;
- }
- function inflateResetKeep(strm) {
- var state;
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- state = strm.state;
- strm.total_in = strm.total_out = state.total = 0;
- strm.msg = "";
- if (state.wrap) {
- strm.adler = state.wrap & 1;
- }
- state.mode = HEAD;
- state.last = 0;
- state.havedict = 0;
- state.dmax = 32768;
- state.head = null;
- state.hold = 0;
- state.bits = 0;
- state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
- state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
- state.sane = 1;
- state.back = -1;
- return Z_OK;
- }
- function inflateReset(strm) {
- var state;
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- state = strm.state;
- state.wsize = 0;
- state.whave = 0;
- state.wnext = 0;
- return inflateResetKeep(strm);
- }
- function inflateReset2(strm, windowBits) {
- var wrap;
- var state;
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- state = strm.state;
- if (windowBits < 0) {
- wrap = 0;
- windowBits = -windowBits;
- } else {
- wrap = (windowBits >> 4) + 1;
- if (windowBits < 48) {
- windowBits &= 15;
- }
- }
- if (windowBits && (windowBits < 8 || windowBits > 15)) {
- return Z_STREAM_ERROR;
- }
- if (state.window !== null && state.wbits !== windowBits) {
- state.window = null;
- }
- state.wrap = wrap;
- state.wbits = windowBits;
- return inflateReset(strm);
- }
- function inflateInit2(strm, windowBits) {
- var ret;
- var state;
- if (!strm) {
- return Z_STREAM_ERROR;
- }
- state = new InflateState();
- strm.state = state;
- state.window = null;
- ret = inflateReset2(strm, windowBits);
- if (ret !== Z_OK) {
- strm.state = null;
- }
- return ret;
- }
- function inflateInit(strm) {
- return inflateInit2(strm, DEF_WBITS);
- }
- var virgin = true;
- var lenfix;
- var distfix;
- function fixedtables(state) {
- if (virgin) {
- var sym;
- lenfix = new utils.Buf32(512);
- distfix = new utils.Buf32(32);
- sym = 0;
- while (sym < 144) {
- state.lens[sym++] = 8;
- }
- while (sym < 256) {
- state.lens[sym++] = 9;
- }
- while (sym < 280) {
- state.lens[sym++] = 7;
- }
- while (sym < 288) {
- state.lens[sym++] = 8;
- }
- inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {
- bits: 9,
- });
- sym = 0;
- while (sym < 32) {
- state.lens[sym++] = 5;
- }
- inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {
- bits: 5,
- });
- virgin = false;
- }
- state.lencode = lenfix;
- state.lenbits = 9;
- state.distcode = distfix;
- state.distbits = 5;
- }
- function updatewindow(strm, src, end, copy) {
- var dist;
- var state = strm.state;
- if (state.window === null) {
- state.wsize = 1 << state.wbits;
- state.wnext = 0;
- state.whave = 0;
- state.window = new utils.Buf8(state.wsize);
- }
- if (copy >= state.wsize) {
- utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
- state.wnext = 0;
- state.whave = state.wsize;
- } else {
- dist = state.wsize - state.wnext;
- if (dist > copy) {
- dist = copy;
- }
- utils.arraySet(state.window, src, end - copy, dist, state.wnext);
- copy -= dist;
- if (copy) {
- utils.arraySet(state.window, src, end - copy, copy, 0);
- state.wnext = copy;
- state.whave = state.wsize;
- } else {
- state.wnext += dist;
- if (state.wnext === state.wsize) {
- state.wnext = 0;
- }
- if (state.whave < state.wsize) {
- state.whave += dist;
- }
- }
- }
- return 0;
- }
- function inflate(strm, flush) {
- var state;
- var input, output;
- var next;
- var put;
- var have, left;
- var hold;
- var bits;
- var _in, _out;
- var copy;
- var from;
- var from_source;
- var here = 0;
- var here_bits, here_op, here_val;
- var last_bits, last_op, last_val;
- var len;
- var ret;
- var hbuf = new utils.Buf8(4);
- var opts;
- var n;
- var order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
- if (!strm || !strm.state || !strm.output || (!strm.input && strm.avail_in !== 0)) {
- return Z_STREAM_ERROR;
- }
- state = strm.state;
- if (state.mode === TYPE) {
- state.mode = TYPEDO;
- }
- put = strm.next_out;
- output = strm.output;
- left = strm.avail_out;
- next = strm.next_in;
- input = strm.input;
- have = strm.avail_in;
- hold = state.hold;
- bits = state.bits;
- _in = have;
- _out = left;
- ret = Z_OK;
- inf_leave: for (;;) {
- switch (state.mode) {
- case HEAD:
- if (state.wrap === 0) {
- state.mode = TYPEDO;
- break;
- }
- while (bits < 16) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if (state.wrap & 2 && hold === 35615) {
- state.check = 0;
- hbuf[0] = hold & 255;
- hbuf[1] = (hold >>> 8) & 255;
- state.check = crc32(state.check, hbuf, 2, 0);
- hold = 0;
- bits = 0;
- state.mode = FLAGS;
- break;
- }
- state.flags = 0;
- if (state.head) {
- state.head.done = false;
- }
- if (!(state.wrap & 1) || (((hold & 255) << 8) + (hold >> 8)) % 31) {
- strm.msg = "incorrect header check";
- state.mode = BAD;
- break;
- }
- if ((hold & 15) !== Z_DEFLATED) {
- strm.msg = "unknown compression method";
- state.mode = BAD;
- break;
- }
- hold >>>= 4;
- bits -= 4;
- len = (hold & 15) + 8;
- if (state.wbits === 0) {
- state.wbits = len;
- } else if (len > state.wbits) {
- strm.msg = "invalid window size";
- state.mode = BAD;
- break;
- }
- state.dmax = 1 << len;
- strm.adler = state.check = 1;
- state.mode = hold & 512 ? DICTID : TYPE;
- hold = 0;
- bits = 0;
- break;
- case FLAGS:
- while (bits < 16) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- state.flags = hold;
- if ((state.flags & 255) !== Z_DEFLATED) {
- strm.msg = "unknown compression method";
- state.mode = BAD;
- break;
- }
- if (state.flags & 57344) {
- strm.msg = "unknown header flags set";
- state.mode = BAD;
- break;
- }
- if (state.head) {
- state.head.text = (hold >> 8) & 1;
- }
- if (state.flags & 512) {
- hbuf[0] = hold & 255;
- hbuf[1] = (hold >>> 8) & 255;
- state.check = crc32(state.check, hbuf, 2, 0);
- }
- hold = 0;
- bits = 0;
- state.mode = TIME;
- case TIME:
- while (bits < 32) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if (state.head) {
- state.head.time = hold;
- }
- if (state.flags & 512) {
- hbuf[0] = hold & 255;
- hbuf[1] = (hold >>> 8) & 255;
- hbuf[2] = (hold >>> 16) & 255;
- hbuf[3] = (hold >>> 24) & 255;
- state.check = crc32(state.check, hbuf, 4, 0);
- }
- hold = 0;
- bits = 0;
- state.mode = OS;
- case OS:
- while (bits < 16) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if (state.head) {
- state.head.xflags = hold & 255;
- state.head.os = hold >> 8;
- }
- if (state.flags & 512) {
- hbuf[0] = hold & 255;
- hbuf[1] = (hold >>> 8) & 255;
- state.check = crc32(state.check, hbuf, 2, 0);
- }
- hold = 0;
- bits = 0;
- state.mode = EXLEN;
- case EXLEN:
- if (state.flags & 1024) {
- while (bits < 16) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- state.length = hold;
- if (state.head) {
- state.head.extra_len = hold;
- }
- if (state.flags & 512) {
- hbuf[0] = hold & 255;
- hbuf[1] = (hold >>> 8) & 255;
- state.check = crc32(state.check, hbuf, 2, 0);
- }
- hold = 0;
- bits = 0;
- } else if (state.head) {
- state.head.extra = null;
- }
- state.mode = EXTRA;
- case EXTRA:
- if (state.flags & 1024) {
- copy = state.length;
- if (copy > have) {
- copy = have;
- }
- if (copy) {
- if (state.head) {
- len = state.head.extra_len - state.length;
- if (!state.head.extra) {
- state.head.extra = new Array(state.head.extra_len);
- }
- utils.arraySet(state.head.extra, input, next, copy, len);
- }
- if (state.flags & 512) {
- state.check = crc32(state.check, input, copy, next);
- }
- have -= copy;
- next += copy;
- state.length -= copy;
- }
- if (state.length) {
- break inf_leave;
- }
- }
- state.length = 0;
- state.mode = NAME;
- case NAME:
- if (state.flags & 2048) {
- if (have === 0) {
- break inf_leave;
- }
- copy = 0;
- do {
- len = input[next + copy++];
- if (state.head && len && state.length < 65536) {
- state.head.name += String.fromCharCode(len);
- }
- } while (len && copy < have);
- if (state.flags & 512) {
- state.check = crc32(state.check, input, copy, next);
- }
- have -= copy;
- next += copy;
- if (len) {
- break inf_leave;
- }
- } else if (state.head) {
- state.head.name = null;
- }
- state.length = 0;
- state.mode = COMMENT;
- case COMMENT:
- if (state.flags & 4096) {
- if (have === 0) {
- break inf_leave;
- }
- copy = 0;
- do {
- len = input[next + copy++];
- if (state.head && len && state.length < 65536) {
- state.head.comment += String.fromCharCode(len);
- }
- } while (len && copy < have);
- if (state.flags & 512) {
- state.check = crc32(state.check, input, copy, next);
- }
- have -= copy;
- next += copy;
- if (len) {
- break inf_leave;
- }
- } else if (state.head) {
- state.head.comment = null;
- }
- state.mode = HCRC;
- case HCRC:
- if (state.flags & 512) {
- while (bits < 16) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if (hold !== (state.check & 65535)) {
- strm.msg = "header crc mismatch";
- state.mode = BAD;
- break;
- }
- hold = 0;
- bits = 0;
- }
- if (state.head) {
- state.head.hcrc = (state.flags >> 9) & 1;
- state.head.done = true;
- }
- strm.adler = state.check = 0;
- state.mode = TYPE;
- break;
- case DICTID:
- while (bits < 32) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- strm.adler = state.check = zswap32(hold);
- hold = 0;
- bits = 0;
- state.mode = DICT;
- case DICT:
- if (state.havedict === 0) {
- strm.next_out = put;
- strm.avail_out = left;
- strm.next_in = next;
- strm.avail_in = have;
- state.hold = hold;
- state.bits = bits;
- return Z_NEED_DICT;
- }
- strm.adler = state.check = 1;
- state.mode = TYPE;
- case TYPE:
- if (flush === Z_BLOCK || flush === Z_TREES) {
- break inf_leave;
- }
- case TYPEDO:
- if (state.last) {
- hold >>>= bits & 7;
- bits -= bits & 7;
- state.mode = CHECK;
- break;
- }
- while (bits < 3) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- state.last = hold & 1;
- hold >>>= 1;
- bits -= 1;
- switch (hold & 3) {
- case 0:
- state.mode = STORED;
- break;
- case 1:
- fixedtables(state);
- state.mode = LEN_;
- if (flush === Z_TREES) {
- hold >>>= 2;
- bits -= 2;
- break inf_leave;
- }
- break;
- case 2:
- state.mode = TABLE;
- break;
- case 3:
- strm.msg = "invalid block type";
- state.mode = BAD;
- }
- hold >>>= 2;
- bits -= 2;
- break;
- case STORED:
- hold >>>= bits & 7;
- bits -= bits & 7;
- while (bits < 32) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if ((hold & 65535) !== ((hold >>> 16) ^ 65535)) {
- strm.msg = "invalid stored block lengths";
- state.mode = BAD;
- break;
- }
- state.length = hold & 65535;
- hold = 0;
- bits = 0;
- state.mode = COPY_;
- if (flush === Z_TREES) {
- break inf_leave;
- }
- case COPY_:
- state.mode = COPY;
- case COPY:
- copy = state.length;
- if (copy) {
- if (copy > have) {
- copy = have;
- }
- if (copy > left) {
- copy = left;
- }
- if (copy === 0) {
- break inf_leave;
- }
- utils.arraySet(output, input, next, copy, put);
- have -= copy;
- next += copy;
- left -= copy;
- put += copy;
- state.length -= copy;
- break;
- }
- state.mode = TYPE;
- break;
- case TABLE:
- while (bits < 14) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- state.nlen = (hold & 31) + 257;
- hold >>>= 5;
- bits -= 5;
- state.ndist = (hold & 31) + 1;
- hold >>>= 5;
- bits -= 5;
- state.ncode = (hold & 15) + 4;
- hold >>>= 4;
- bits -= 4;
- if (state.nlen > 286 || state.ndist > 30) {
- strm.msg = "too many length or distance symbols";
- state.mode = BAD;
- break;
- }
- state.have = 0;
- state.mode = LENLENS;
- case LENLENS:
- while (state.have < state.ncode) {
- while (bits < 3) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- state.lens[order[state.have++]] = hold & 7;
- hold >>>= 3;
- bits -= 3;
- }
- while (state.have < 19) {
- state.lens[order[state.have++]] = 0;
- }
- state.lencode = state.lendyn;
- state.lenbits = 7;
- opts = { bits: state.lenbits };
- ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
- state.lenbits = opts.bits;
- if (ret) {
- strm.msg = "invalid code lengths set";
- state.mode = BAD;
- break;
- }
- state.have = 0;
- state.mode = CODELENS;
- case CODELENS:
- while (state.have < state.nlen + state.ndist) {
- for (;;) {
- here = state.lencode[hold & ((1 << state.lenbits) - 1)];
- here_bits = here >>> 24;
- here_op = (here >>> 16) & 255;
- here_val = here & 65535;
- if (here_bits <= bits) {
- break;
- }
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if (here_val < 16) {
- hold >>>= here_bits;
- bits -= here_bits;
- state.lens[state.have++] = here_val;
- } else {
- if (here_val === 16) {
- n = here_bits + 2;
- while (bits < n) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- hold >>>= here_bits;
- bits -= here_bits;
- if (state.have === 0) {
- strm.msg = "invalid bit length repeat";
- state.mode = BAD;
- break;
- }
- len = state.lens[state.have - 1];
- copy = 3 + (hold & 3);
- hold >>>= 2;
- bits -= 2;
- } else if (here_val === 17) {
- n = here_bits + 3;
- while (bits < n) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- hold >>>= here_bits;
- bits -= here_bits;
- len = 0;
- copy = 3 + (hold & 7);
- hold >>>= 3;
- bits -= 3;
- } else {
- n = here_bits + 7;
- while (bits < n) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- hold >>>= here_bits;
- bits -= here_bits;
- len = 0;
- copy = 11 + (hold & 127);
- hold >>>= 7;
- bits -= 7;
- }
- if (state.have + copy > state.nlen + state.ndist) {
- strm.msg = "invalid bit length repeat";
- state.mode = BAD;
- break;
- }
- while (copy--) {
- state.lens[state.have++] = len;
- }
- }
- }
- if (state.mode === BAD) {
- break;
- }
- if (state.lens[256] === 0) {
- strm.msg = "invalid code -- missing end-of-block";
- state.mode = BAD;
- break;
- }
- state.lenbits = 9;
- opts = { bits: state.lenbits };
- ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
- state.lenbits = opts.bits;
- if (ret) {
- strm.msg = "invalid literal/lengths set";
- state.mode = BAD;
- break;
- }
- state.distbits = 6;
- state.distcode = state.distdyn;
- opts = { bits: state.distbits };
- ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
- state.distbits = opts.bits;
- if (ret) {
- strm.msg = "invalid distances set";
- state.mode = BAD;
- break;
- }
- state.mode = LEN_;
- if (flush === Z_TREES) {
- break inf_leave;
- }
- case LEN_:
- state.mode = LEN;
- case LEN:
- if (have >= 6 && left >= 258) {
- strm.next_out = put;
- strm.avail_out = left;
- strm.next_in = next;
- strm.avail_in = have;
- state.hold = hold;
- state.bits = bits;
- inflate_fast(strm, _out);
- put = strm.next_out;
- output = strm.output;
- left = strm.avail_out;
- next = strm.next_in;
- input = strm.input;
- have = strm.avail_in;
- hold = state.hold;
- bits = state.bits;
- if (state.mode === TYPE) {
- state.back = -1;
- }
- break;
- }
- state.back = 0;
- for (;;) {
- here = state.lencode[hold & ((1 << state.lenbits) - 1)];
- here_bits = here >>> 24;
- here_op = (here >>> 16) & 255;
- here_val = here & 65535;
- if (here_bits <= bits) {
- break;
- }
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if (here_op && (here_op & 240) === 0) {
- last_bits = here_bits;
- last_op = here_op;
- last_val = here_val;
- for (;;) {
- here = state.lencode[last_val + ((hold & ((1 << (last_bits + last_op)) - 1)) >> last_bits)];
- here_bits = here >>> 24;
- here_op = (here >>> 16) & 255;
- here_val = here & 65535;
- if (last_bits + here_bits <= bits) {
- break;
- }
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- hold >>>= last_bits;
- bits -= last_bits;
- state.back += last_bits;
- }
- hold >>>= here_bits;
- bits -= here_bits;
- state.back += here_bits;
- state.length = here_val;
- if (here_op === 0) {
- state.mode = LIT;
- break;
- }
- if (here_op & 32) {
- state.back = -1;
- state.mode = TYPE;
- break;
- }
- if (here_op & 64) {
- strm.msg = "invalid literal/length code";
- state.mode = BAD;
- break;
- }
- state.extra = here_op & 15;
- state.mode = LENEXT;
- case LENEXT:
- if (state.extra) {
- n = state.extra;
- while (bits < n) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- state.length += hold & ((1 << state.extra) - 1);
- hold >>>= state.extra;
- bits -= state.extra;
- state.back += state.extra;
- }
- state.was = state.length;
- state.mode = DIST;
- case DIST:
- for (;;) {
- here = state.distcode[hold & ((1 << state.distbits) - 1)];
- here_bits = here >>> 24;
- here_op = (here >>> 16) & 255;
- here_val = here & 65535;
- if (here_bits <= bits) {
- break;
- }
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if ((here_op & 240) === 0) {
- last_bits = here_bits;
- last_op = here_op;
- last_val = here_val;
- for (;;) {
- here = state.distcode[last_val + ((hold & ((1 << (last_bits + last_op)) - 1)) >> last_bits)];
- here_bits = here >>> 24;
- here_op = (here >>> 16) & 255;
- here_val = here & 65535;
- if (last_bits + here_bits <= bits) {
- break;
- }
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- hold >>>= last_bits;
- bits -= last_bits;
- state.back += last_bits;
- }
- hold >>>= here_bits;
- bits -= here_bits;
- state.back += here_bits;
- if (here_op & 64) {
- strm.msg = "invalid distance code";
- state.mode = BAD;
- break;
- }
- state.offset = here_val;
- state.extra = here_op & 15;
- state.mode = DISTEXT;
- case DISTEXT:
- if (state.extra) {
- n = state.extra;
- while (bits < n) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- state.offset += hold & ((1 << state.extra) - 1);
- hold >>>= state.extra;
- bits -= state.extra;
- state.back += state.extra;
- }
- if (state.offset > state.dmax) {
- strm.msg = "invalid distance too far back";
- state.mode = BAD;
- break;
- }
- state.mode = MATCH;
- case MATCH:
- if (left === 0) {
- break inf_leave;
- }
- copy = _out - left;
- if (state.offset > copy) {
- copy = state.offset - copy;
- if (copy > state.whave) {
- if (state.sane) {
- strm.msg = "invalid distance too far back";
- state.mode = BAD;
- break;
- }
- }
- if (copy > state.wnext) {
- copy -= state.wnext;
- from = state.wsize - copy;
- } else {
- from = state.wnext - copy;
- }
- if (copy > state.length) {
- copy = state.length;
- }
- from_source = state.window;
- } else {
- from_source = output;
- from = put - state.offset;
- copy = state.length;
- }
- if (copy > left) {
- copy = left;
- }
- left -= copy;
- state.length -= copy;
- do {
- output[put++] = from_source[from++];
- } while (--copy);
- if (state.length === 0) {
- state.mode = LEN;
- }
- break;
- case LIT:
- if (left === 0) {
- break inf_leave;
- }
- output[put++] = state.length;
- left--;
- state.mode = LEN;
- break;
- case CHECK:
- if (state.wrap) {
- while (bits < 32) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold |= input[next++] << bits;
- bits += 8;
- }
- _out -= left;
- strm.total_out += _out;
- state.total += _out;
- if (_out) {
- strm.adler = state.check = state.flags
- ? crc32(state.check, output, _out, put - _out)
- : adler32(state.check, output, _out, put - _out);
- }
- _out = left;
- if ((state.flags ? hold : zswap32(hold)) !== state.check) {
- strm.msg = "incorrect data check";
- state.mode = BAD;
- break;
- }
- hold = 0;
- bits = 0;
- }
- state.mode = LENGTH;
- case LENGTH:
- if (state.wrap && state.flags) {
- while (bits < 32) {
- if (have === 0) {
- break inf_leave;
- }
- have--;
- hold += input[next++] << bits;
- bits += 8;
- }
- if (hold !== (state.total & 4294967295)) {
- strm.msg = "incorrect length check";
- state.mode = BAD;
- break;
- }
- hold = 0;
- bits = 0;
- }
- state.mode = DONE;
- case DONE:
- ret = Z_STREAM_END;
- break inf_leave;
- case BAD:
- ret = Z_DATA_ERROR;
- break inf_leave;
- case MEM:
- return Z_MEM_ERROR;
- case SYNC:
- default:
- return Z_STREAM_ERROR;
- }
- }
- strm.next_out = put;
- strm.avail_out = left;
- strm.next_in = next;
- strm.avail_in = have;
- state.hold = hold;
- state.bits = bits;
- if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH))) {
- if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
- state.mode = MEM;
- return Z_MEM_ERROR;
- }
- }
- _in -= strm.avail_in;
- _out -= strm.avail_out;
- strm.total_in += _in;
- strm.total_out += _out;
- state.total += _out;
- if (state.wrap && _out) {
- strm.adler = state.check = state.flags
- ? crc32(state.check, output, _out, strm.next_out - _out)
- : adler32(state.check, output, _out, strm.next_out - _out);
- }
- strm.data_type =
- state.bits +
- (state.last ? 64 : 0) +
- (state.mode === TYPE ? 128 : 0) +
- (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
- if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {
- ret = Z_BUF_ERROR;
- }
- return ret;
- }
- function inflateEnd(strm) {
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- var state = strm.state;
- if (state.window) {
- state.window = null;
- }
- strm.state = null;
- return Z_OK;
- }
- function inflateGetHeader(strm, head) {
- var state;
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- state = strm.state;
- if ((state.wrap & 2) === 0) {
- return Z_STREAM_ERROR;
- }
- state.head = head;
- head.done = false;
- return Z_OK;
- }
- function inflateSetDictionary(strm, dictionary) {
- var dictLength = dictionary.length;
- var state;
- var dictid;
- var ret;
- if (!strm || !strm.state) {
- return Z_STREAM_ERROR;
- }
- state = strm.state;
- if (state.wrap !== 0 && state.mode !== DICT) {
- return Z_STREAM_ERROR;
- }
- if (state.mode === DICT) {
- dictid = 1;
- dictid = adler32(dictid, dictionary, dictLength, 0);
- if (dictid !== state.check) {
- return Z_DATA_ERROR;
- }
- }
- ret = updatewindow(strm, dictionary, dictLength, dictLength);
- if (ret) {
- state.mode = MEM;
- return Z_MEM_ERROR;
- }
- state.havedict = 1;
- return Z_OK;
- }
- exports.inflateReset = inflateReset;
- exports.inflateReset2 = inflateReset2;
- exports.inflateResetKeep = inflateResetKeep;
- exports.inflateInit = inflateInit;
- exports.inflateInit2 = inflateInit2;
- exports.inflate = inflate;
- exports.inflateEnd = inflateEnd;
- exports.inflateGetHeader = inflateGetHeader;
- exports.inflateSetDictionary = inflateSetDictionary;
- exports.inflateInfo = "pako inflate (from Nodeca project)";
- },
-});
-
-// node_modules/pako/lib/zlib/constants.js
-var require_constants = __commonJS({
- "node_modules/pako/lib/zlib/constants.js"(exports, module2) {
- "use strict";
- module2.exports = {
- Z_NO_FLUSH: 0,
- Z_PARTIAL_FLUSH: 1,
- Z_SYNC_FLUSH: 2,
- Z_FULL_FLUSH: 3,
- Z_FINISH: 4,
- Z_BLOCK: 5,
- Z_TREES: 6,
- Z_OK: 0,
- Z_STREAM_END: 1,
- Z_NEED_DICT: 2,
- Z_ERRNO: -1,
- Z_STREAM_ERROR: -2,
- Z_DATA_ERROR: -3,
- Z_BUF_ERROR: -5,
- Z_NO_COMPRESSION: 0,
- Z_BEST_SPEED: 1,
- Z_BEST_COMPRESSION: 9,
- Z_DEFAULT_COMPRESSION: -1,
- Z_FILTERED: 1,
- Z_HUFFMAN_ONLY: 2,
- Z_RLE: 3,
- Z_FIXED: 4,
- Z_DEFAULT_STRATEGY: 0,
- Z_BINARY: 0,
- Z_TEXT: 1,
- Z_UNKNOWN: 2,
- Z_DEFLATED: 8,
- };
- },
-});
-
-// node_modules/browserify-zlib/lib/binding.js
-var require_binding = __commonJS({
- "node_modules/browserify-zlib/lib/binding.js"(exports) {
- "use strict";
- var assert = require("assert");
- var Zstream = require_zstream();
- var zlib_deflate = require_deflate();
- var zlib_inflate = require_inflate();
- var constants = require_constants();
- for (key in constants) {
- exports[key] = constants[key];
- }
- var key;
- exports.NONE = 0;
- exports.DEFLATE = 1;
- exports.INFLATE = 2;
- exports.GZIP = 3;
- exports.GUNZIP = 4;
- exports.DEFLATERAW = 5;
- exports.INFLATERAW = 6;
- exports.UNZIP = 7;
- var GZIP_HEADER_ID1 = 31;
- var GZIP_HEADER_ID2 = 139;
- function Zlib(mode) {
- if (typeof mode !== "number" || mode < exports.DEFLATE || mode > exports.UNZIP) {
- throw new TypeError("Bad argument");
- }
- this.dictionary = null;
- this.err = 0;
- this.flush = 0;
- this.init_done = false;
- this.level = 0;
- this.memLevel = 0;
- this.mode = mode;
- this.strategy = 0;
- this.windowBits = 0;
- this.write_in_progress = false;
- this.pending_close = false;
- this.gzip_id_bytes_read = 0;
- }
- Zlib.prototype.close = function () {
- if (this.write_in_progress) {
- this.pending_close = true;
- return;
- }
- this.pending_close = false;
- assert(this.init_done, "close before init");
- assert(this.mode <= exports.UNZIP);
- if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {
- zlib_deflate.deflateEnd(this.strm);
- } else if (
- this.mode === exports.INFLATE ||
- this.mode === exports.GUNZIP ||
- this.mode === exports.INFLATERAW ||
- this.mode === exports.UNZIP
- ) {
- zlib_inflate.inflateEnd(this.strm);
- }
- this.mode = exports.NONE;
- this.dictionary = null;
- };
- Zlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {
- return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);
- };
- Zlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {
- return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);
- };
- Zlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {
- assert.equal(arguments.length, 8);
- assert(this.init_done, "write before init");
- assert(this.mode !== exports.NONE, "already finalized");
- assert.equal(false, this.write_in_progress, "write already in progress");
- assert.equal(false, this.pending_close, "close is pending");
- this.write_in_progress = true;
- assert.equal(false, flush === void 0, "must provide flush value");
- this.write_in_progress = true;
- if (
- flush !== exports.Z_NO_FLUSH &&
- flush !== exports.Z_PARTIAL_FLUSH &&
- flush !== exports.Z_SYNC_FLUSH &&
- flush !== exports.Z_FULL_FLUSH &&
- flush !== exports.Z_FINISH &&
- flush !== exports.Z_BLOCK
- ) {
- throw new Error("Invalid flush value");
- }
- if (input == null) {
- input = Buffer.alloc(0);
- in_len = 0;
- in_off = 0;
- }
- this.strm.avail_in = in_len;
- this.strm.input = input;
- this.strm.next_in = in_off;
- this.strm.avail_out = out_len;
- this.strm.output = out;
- this.strm.next_out = out_off;
- this.flush = flush;
- if (!async) {
- this._process();
- if (this._checkError()) {
- return this._afterSync();
- }
- return;
- }
- var self = this;
- process.nextTick(function () {
- self._process();
- self._after();
- });
- return this;
- };
- Zlib.prototype._afterSync = function () {
- var avail_out = this.strm.avail_out;
- var avail_in = this.strm.avail_in;
- this.write_in_progress = false;
- return [avail_in, avail_out];
- };
- Zlib.prototype._process = function () {
- var next_expected_header_byte = null;
- switch (this.mode) {
- case exports.DEFLATE:
- case exports.GZIP:
- case exports.DEFLATERAW:
- this.err = zlib_deflate.deflate(this.strm, this.flush);
- break;
- case exports.UNZIP:
- if (this.strm.avail_in > 0) {
- next_expected_header_byte = this.strm.next_in;
- }
- switch (this.gzip_id_bytes_read) {
- case 0:
- if (next_expected_header_byte === null) {
- break;
- }
- if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {
- this.gzip_id_bytes_read = 1;
- next_expected_header_byte++;
- if (this.strm.avail_in === 1) {
- break;
- }
- } else {
- this.mode = exports.INFLATE;
- break;
- }
- case 1:
- if (next_expected_header_byte === null) {
- break;
- }
- if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {
- this.gzip_id_bytes_read = 2;
- this.mode = exports.GUNZIP;
- } else {
- this.mode = exports.INFLATE;
- }
- break;
- default:
- throw new Error("invalid number of gzip magic number bytes read");
- }
- case exports.INFLATE:
- case exports.GUNZIP:
- case exports.INFLATERAW:
- this.err = zlib_inflate.inflate(this.strm, this.flush);
- if (this.err === exports.Z_NEED_DICT && this.dictionary) {
- this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);
- if (this.err === exports.Z_OK) {
- this.err = zlib_inflate.inflate(this.strm, this.flush);
- } else if (this.err === exports.Z_DATA_ERROR) {
- this.err = exports.Z_NEED_DICT;
- }
- }
- while (
- this.strm.avail_in > 0 &&
- this.mode === exports.GUNZIP &&
- this.err === exports.Z_STREAM_END &&
- this.strm.next_in[0] !== 0
- ) {
- this.reset();
- this.err = zlib_inflate.inflate(this.strm, this.flush);
- }
- break;
- default:
- throw new Error("Unknown mode " + this.mode);
- }
- };
- Zlib.prototype._checkError = function () {
- switch (this.err) {
- case exports.Z_OK:
- case exports.Z_BUF_ERROR:
- if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {
- this._error("unexpected end of file");
- return false;
- }
- break;
- case exports.Z_STREAM_END:
- break;
- case exports.Z_NEED_DICT:
- if (this.dictionary == null) {
- this._error("Missing dictionary");
- } else {
- this._error("Bad dictionary");
- }
- return false;
- default:
- this._error("Zlib error");
- return false;
- }
- return true;
- };
- Zlib.prototype._after = function () {
- if (!this._checkError()) {
- return;
- }
- var avail_out = this.strm.avail_out;
- var avail_in = this.strm.avail_in;
- this.write_in_progress = false;
- this.callback(avail_in, avail_out);
- if (this.pending_close) {
- this.close();
- }
- };
- Zlib.prototype._error = function (message) {
- if (this.strm.msg) {
- message = this.strm.msg;
- }
- this.onerror(message, this.err);
- this.write_in_progress = false;
- if (this.pending_close) {
- this.close();
- }
- };
- Zlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {
- assert(
- arguments.length === 4 || arguments.length === 5,
- "init(windowBits, level, memLevel, strategy, [dictionary])",
- );
- assert(windowBits >= 8 && windowBits <= 15, "invalid windowBits");
- assert(level >= -1 && level <= 9, "invalid compression level");
- assert(memLevel >= 1 && memLevel <= 9, "invalid memlevel");
- assert(
- strategy === exports.Z_FILTERED ||
- strategy === exports.Z_HUFFMAN_ONLY ||
- strategy === exports.Z_RLE ||
- strategy === exports.Z_FIXED ||
- strategy === exports.Z_DEFAULT_STRATEGY,
- "invalid strategy",
- );
- this._init(level, windowBits, memLevel, strategy, dictionary);
- this._setDictionary();
- };
- Zlib.prototype.params = function () {
- throw new Error("deflateParams Not supported");
- };
- Zlib.prototype.reset = function () {
- this._reset();
- this._setDictionary();
- };
- Zlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {
- this.level = level;
- this.windowBits = windowBits;
- this.memLevel = memLevel;
- this.strategy = strategy;
- this.flush = exports.Z_NO_FLUSH;
- this.err = exports.Z_OK;
- if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {
- this.windowBits += 16;
- }
- if (this.mode === exports.UNZIP) {
- this.windowBits += 32;
- }
- if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {
- this.windowBits = -1 * this.windowBits;
- }
- this.strm = new Zstream();
- switch (this.mode) {
- case exports.DEFLATE:
- case exports.GZIP:
- case exports.DEFLATERAW:
- this.err = zlib_deflate.deflateInit2(
- this.strm,
- this.level,
- exports.Z_DEFLATED,
- this.windowBits,
- this.memLevel,
- this.strategy,
- );
- break;
- case exports.INFLATE:
- case exports.GUNZIP:
- case exports.INFLATERAW:
- case exports.UNZIP:
- this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);
- break;
- default:
- throw new Error("Unknown mode " + this.mode);
- }
- if (this.err !== exports.Z_OK) {
- this._error("Init error");
- }
- this.dictionary = dictionary;
- this.write_in_progress = false;
- this.init_done = true;
- };
- Zlib.prototype._setDictionary = function () {
- if (this.dictionary == null) {
- return;
- }
- this.err = exports.Z_OK;
- switch (this.mode) {
- case exports.DEFLATE:
- case exports.DEFLATERAW:
- this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);
- break;
- default:
- break;
- }
- if (this.err !== exports.Z_OK) {
- this._error("Failed to set dictionary");
- }
- };
- Zlib.prototype._reset = function () {
- this.err = exports.Z_OK;
- switch (this.mode) {
- case exports.DEFLATE:
- case exports.DEFLATERAW:
- case exports.GZIP:
- this.err = zlib_deflate.deflateReset(this.strm);
- break;
- case exports.INFLATE:
- case exports.INFLATERAW:
- case exports.GUNZIP:
- this.err = zlib_inflate.inflateReset(this.strm);
- break;
- default:
- break;
- }
- if (this.err !== exports.Z_OK) {
- this._error("Failed to reset stream");
- }
- };
- exports.Zlib = Zlib;
- },
-});
-
-// node_modules/browserify-zlib/lib/index.js
-var require_lib = __commonJS({
- "node_modules/browserify-zlib/lib/index.js"(exports) {
- "use strict";
- var Buffer2 = require("buffer").Buffer;
- var Transform = require("stream").Transform;
- var binding = require_binding();
- var util = require("util");
- var assert = require("assert").ok;
- var kMaxLength = require("buffer").kMaxLength;
- var kRangeErrorMessage =
- "Cannot create final Buffer. It would be larger than 0x" + kMaxLength.toString(16) + " bytes";
- binding.Z_MIN_WINDOWBITS = 8;
- binding.Z_MAX_WINDOWBITS = 15;
- binding.Z_DEFAULT_WINDOWBITS = 15;
- binding.Z_MIN_CHUNK = 64;
- binding.Z_MAX_CHUNK = Infinity;
- binding.Z_DEFAULT_CHUNK = 16 * 1024;
- binding.Z_MIN_MEMLEVEL = 1;
- binding.Z_MAX_MEMLEVEL = 9;
- binding.Z_DEFAULT_MEMLEVEL = 8;
- binding.Z_MIN_LEVEL = -1;
- binding.Z_MAX_LEVEL = 9;
- binding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;
- var bkeys = Object.keys(binding);
- for (bk = 0; bk < bkeys.length; bk++) {
- bkey = bkeys[bk];
- if (bkey.match(/^Z/)) {
- Object.defineProperty(exports, bkey, {
- enumerable: true,
- value: binding[bkey],
- writable: false,
- });
- }
- }
- var bkey;
- var bk;
- var codes = {
- Z_OK: binding.Z_OK,
- Z_STREAM_END: binding.Z_STREAM_END,
- Z_NEED_DICT: binding.Z_NEED_DICT,
- Z_ERRNO: binding.Z_ERRNO,
- Z_STREAM_ERROR: binding.Z_STREAM_ERROR,
- Z_DATA_ERROR: binding.Z_DATA_ERROR,
- Z_MEM_ERROR: binding.Z_MEM_ERROR,
- Z_BUF_ERROR: binding.Z_BUF_ERROR,
- Z_VERSION_ERROR: binding.Z_VERSION_ERROR,
- };
- var ckeys = Object.keys(codes);
- for (ck = 0; ck < ckeys.length; ck++) {
- ckey = ckeys[ck];
- codes[codes[ckey]] = ckey;
- }
- var ckey;
- var ck;
- Object.defineProperty(exports, "codes", {
- enumerable: true,
- value: Object.freeze(codes),
- writable: false,
- });
- exports.constants = require_constants();
- exports.Deflate = Deflate;
- exports.Inflate = Inflate;
- exports.Gzip = Gzip;
- exports.Gunzip = Gunzip;
- exports.DeflateRaw = DeflateRaw;
- exports.InflateRaw = InflateRaw;
- exports.Unzip = Unzip;
- exports.createDeflate = function (o) {
- return new Deflate(o);
- };
- exports.createInflate = function (o) {
- return new Inflate(o);
- };
- exports.createDeflateRaw = function (o) {
- return new DeflateRaw(o);
- };
- exports.createInflateRaw = function (o) {
- return new InflateRaw(o);
- };
- exports.createGzip = function (o) {
- return new Gzip(o);
- };
- exports.createGunzip = function (o) {
- return new Gunzip(o);
- };
- exports.createUnzip = function (o) {
- return new Unzip(o);
- };
- exports.deflate = function (buffer, opts, callback) {
- if (typeof opts === "function") {
- callback = opts;
- opts = {};
- }
- return zlibBuffer(new Deflate(opts), buffer, callback);
- };
- exports.deflateSync = function (buffer, opts) {
- return zlibBufferSync(new Deflate(opts), buffer);
- };
- exports.gzip = function (buffer, opts, callback) {
- if (typeof opts === "function") {
- callback = opts;
- opts = {};
- }
- return zlibBuffer(new Gzip(opts), buffer, callback);
- };
- exports.gzipSync = function (buffer, opts) {
- return zlibBufferSync(new Gzip(opts), buffer);
- };
- exports.deflateRaw = function (buffer, opts, callback) {
- if (typeof opts === "function") {
- callback = opts;
- opts = {};
- }
- return zlibBuffer(new DeflateRaw(opts), buffer, callback);
- };
- exports.deflateRawSync = function (buffer, opts) {
- return zlibBufferSync(new DeflateRaw(opts), buffer);
- };
- exports.unzip = function (buffer, opts, callback) {
- if (typeof opts === "function") {
- callback = opts;
- opts = {};
- }
- return zlibBuffer(new Unzip(opts), buffer, callback);
- };
- exports.unzipSync = function (buffer, opts) {
- return zlibBufferSync(new Unzip(opts), buffer);
- };
- exports.inflate = function (buffer, opts, callback) {
- if (typeof opts === "function") {
- callback = opts;
- opts = {};
- }
- return zlibBuffer(new Inflate(opts), buffer, callback);
- };
- exports.inflateSync = function (buffer, opts) {
- return zlibBufferSync(new Inflate(opts), buffer);
- };
- exports.gunzip = function (buffer, opts, callback) {
- if (typeof opts === "function") {
- callback = opts;
- opts = {};
- }
- return zlibBuffer(new Gunzip(opts), buffer, callback);
- };
- exports.gunzipSync = function (buffer, opts) {
- return zlibBufferSync(new Gunzip(opts), buffer);
- };
- exports.inflateRaw = function (buffer, opts, callback) {
- if (typeof opts === "function") {
- callback = opts;
- opts = {};
- }
- return zlibBuffer(new InflateRaw(opts), buffer, callback);
- };
- exports.inflateRawSync = function (buffer, opts) {
- return zlibBufferSync(new InflateRaw(opts), buffer);
- };
- function zlibBuffer(engine, buffer, callback) {
- var buffers = [];
- var nread = 0;
- engine.on("error", onError);
- engine.on("end", onEnd);
- engine.end(buffer);
- flow();
- function flow() {
- var chunk;
- while (null !== (chunk = engine.read())) {
- buffers.push(chunk);
- nread += chunk.length;
- }
- engine.once("readable", flow);
- }
- function onError(err) {
- engine.removeListener("end", onEnd);
- engine.removeListener("readable", flow);
- callback(err);
- }
- function onEnd() {
- var buf;
- var err = null;
- if (nread >= kMaxLength) {
- err = new RangeError(kRangeErrorMessage);
- } else {
- buf = Buffer2.concat(buffers, nread);
- }
- buffers = [];
- engine.close();
- callback(err, buf);
- }
- }
- function zlibBufferSync(engine, buffer) {
- if (typeof buffer === "string") buffer = Buffer2.from(buffer);
- if (!Buffer2.isBuffer(buffer)) throw new TypeError("Not a string or buffer");
- var flushFlag = engine._finishFlushFlag;
- return engine._processChunk(buffer, flushFlag);
- }
- function Deflate(opts) {
- if (!(this instanceof Deflate)) return new Deflate(opts);
- Zlib.call(this, opts, binding.DEFLATE);
- }
- function Inflate(opts) {
- if (!(this instanceof Inflate)) return new Inflate(opts);
- Zlib.call(this, opts, binding.INFLATE);
- }
- function Gzip(opts) {
- if (!(this instanceof Gzip)) return new Gzip(opts);
- Zlib.call(this, opts, binding.GZIP);
- }
- function Gunzip(opts) {
- if (!(this instanceof Gunzip)) return new Gunzip(opts);
- Zlib.call(this, opts, binding.GUNZIP);
- }
- function DeflateRaw(opts) {
- if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);
- Zlib.call(this, opts, binding.DEFLATERAW);
- }
- function InflateRaw(opts) {
- if (!(this instanceof InflateRaw)) return new InflateRaw(opts);
- Zlib.call(this, opts, binding.INFLATERAW);
- }
- function Unzip(opts) {
- if (!(this instanceof Unzip)) return new Unzip(opts);
- Zlib.call(this, opts, binding.UNZIP);
- }
- function isValidFlushFlag(flag) {
- return (
- flag === binding.Z_NO_FLUSH ||
- flag === binding.Z_PARTIAL_FLUSH ||
- flag === binding.Z_SYNC_FLUSH ||
- flag === binding.Z_FULL_FLUSH ||
- flag === binding.Z_FINISH ||
- flag === binding.Z_BLOCK
- );
- }
- function Zlib(opts, mode) {
- var _this = this;
- this._opts = opts = opts || {};
- this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;
- Transform.call(this, opts);
- if (opts.flush && !isValidFlushFlag(opts.flush)) {
- throw new Error("Invalid flush flag: " + opts.flush);
- }
- if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {
- throw new Error("Invalid flush flag: " + opts.finishFlush);
- }
- this._flushFlag = opts.flush || binding.Z_NO_FLUSH;
- this._finishFlushFlag = typeof opts.finishFlush !== "undefined" ? opts.finishFlush : binding.Z_FINISH;
- if (opts.chunkSize) {
- if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {
- throw new Error("Invalid chunk size: " + opts.chunkSize);
- }
- }
- if (opts.windowBits) {
- if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {
- throw new Error("Invalid windowBits: " + opts.windowBits);
- }
- }
- if (opts.level) {
- if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {
- throw new Error("Invalid compression level: " + opts.level);
- }
- }
- if (opts.memLevel) {
- if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {
- throw new Error("Invalid memLevel: " + opts.memLevel);
- }
- }
- if (opts.strategy) {
- if (
- opts.strategy != exports.Z_FILTERED &&
- opts.strategy != exports.Z_HUFFMAN_ONLY &&
- opts.strategy != exports.Z_RLE &&
- opts.strategy != exports.Z_FIXED &&
- opts.strategy != exports.Z_DEFAULT_STRATEGY
- ) {
- throw new Error("Invalid strategy: " + opts.strategy);
- }
- }
- if (opts.dictionary) {
- if (!Buffer2.isBuffer(opts.dictionary)) {
- throw new Error("Invalid dictionary: it should be a Buffer instance");
- }
- }
- this._handle = new binding.Zlib(mode);
- var self = this;
- this._hadError = false;
- this._handle.onerror = function (message, errno) {
- _close(self);
- self._hadError = true;
- var error = new Error(message);
- error.errno = errno;
- error.code = exports.codes[errno];
- self.emit("error", error);
- };
- var level = exports.Z_DEFAULT_COMPRESSION;
- if (typeof opts.level === "number") level = opts.level;
- var strategy = exports.Z_DEFAULT_STRATEGY;
- if (typeof opts.strategy === "number") strategy = opts.strategy;
- this._handle.init(
- opts.windowBits || exports.Z_DEFAULT_WINDOWBITS,
- level,
- opts.memLevel || exports.Z_DEFAULT_MEMLEVEL,
- strategy,
- opts.dictionary,
- );
- this._buffer = Buffer2.allocUnsafe(this._chunkSize);
- this._offset = 0;
- this._level = level;
- this._strategy = strategy;
- this.once("end", this.close);
- Object.defineProperty(this, "_closed", {
- get: function () {
- return !_this._handle;
- },
- configurable: true,
- enumerable: true,
- });
- }
- util.inherits(Zlib, Transform);
- Zlib.prototype.params = function (level, strategy, callback) {
- if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {
- throw new RangeError("Invalid compression level: " + level);
- }
- if (
- strategy != exports.Z_FILTERED &&
- strategy != exports.Z_HUFFMAN_ONLY &&
- strategy != exports.Z_RLE &&
- strategy != exports.Z_FIXED &&
- strategy != exports.Z_DEFAULT_STRATEGY
- ) {
- throw new TypeError("Invalid strategy: " + strategy);
- }
- if (this._level !== level || this._strategy !== strategy) {
- var self = this;
- this.flush(binding.Z_SYNC_FLUSH, function () {
- assert(self._handle, "zlib binding closed");
- self._handle.params(level, strategy);
- if (!self._hadError) {
- self._level = level;
- self._strategy = strategy;
- if (callback) callback();
- }
- });
- } else {
- process.nextTick(callback);
- }
- };
- Zlib.prototype.reset = function () {
- assert(this._handle, "zlib binding closed");
- return this._handle.reset();
- };
- Zlib.prototype._flush = function (callback) {
- this._transform(Buffer2.alloc(0), "", callback);
- };
- Zlib.prototype.flush = function (kind, callback) {
- var _this2 = this;
- var ws = this._writableState;
- if (typeof kind === "function" || (kind === void 0 && !callback)) {
- callback = kind;
- kind = binding.Z_FULL_FLUSH;
- }
- if (ws.ended) {
- if (callback) process.nextTick(callback);
- } else if (ws.ending) {
- if (callback) this.once("end", callback);
- } else if (ws.needDrain) {
- if (callback) {
- this.once("drain", function () {
- return _this2.flush(kind, callback);
- });
- }
- } else {
- this._flushFlag = kind;
- this.write(Buffer2.alloc(0), "", callback);
- }
- };
- Zlib.prototype.close = function (callback) {
- _close(this, callback);
- process.nextTick(emitCloseNT, this);
- };
- function _close(engine, callback) {
- if (callback) process.nextTick(callback);
- if (!engine._handle) return;
- engine._handle.close();
- engine._handle = null;
- }
- function emitCloseNT(self) {
- self.emit("close");
- }
- Zlib.prototype._transform = function (chunk, encoding, cb) {
- var flushFlag;
- var ws = this._writableState;
- var ending = ws.ending || ws.ended;
- var last = ending && (!chunk || ws.length === chunk.length);
- if (chunk !== null && !Buffer2.isBuffer(chunk)) return cb(new Error("invalid input"));
- if (!this._handle) return cb(new Error("zlib binding closed"));
- if (last) flushFlag = this._finishFlushFlag;
- else {
- flushFlag = this._flushFlag;
- if (chunk.length >= ws.length) {
- this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;
- }
- }
- this._processChunk(chunk, flushFlag, cb);
- };
- Zlib.prototype._processChunk = function (chunk, flushFlag, cb) {
- var availInBefore = chunk && chunk.length;
- var availOutBefore = this._chunkSize - this._offset;
- var inOff = 0;
- var self = this;
- var async = typeof cb === "function";
- if (!async) {
- var buffers = [];
- var nread = 0;
- var error;
- this.on("error", function (er) {
- error = er;
- });
- assert(this._handle, "zlib binding closed");
- do {
- var res = this._handle.writeSync(
- flushFlag,
- chunk,
- inOff,
- availInBefore,
- this._buffer,
- this._offset,
- availOutBefore,
- );
- } while (!this._hadError && callback(res[0], res[1]));
- if (this._hadError) {
- throw error;
- }
- if (nread >= kMaxLength) {
- _close(this);
- throw new RangeError(kRangeErrorMessage);
- }
- var buf = Buffer2.concat(buffers, nread);
- _close(this);
- return buf;
- }
- assert(this._handle, "zlib binding closed");
- var req = this._handle.write(flushFlag, chunk, inOff, availInBefore, this._buffer, this._offset, availOutBefore);
- req.buffer = chunk;
- req.callback = callback;
- function callback(availInAfter, availOutAfter) {
- if (this) {
- this.buffer = null;
- this.callback = null;
- }
- if (self._hadError) return;
- var have = availOutBefore - availOutAfter;
- assert(have >= 0, "have should not go down");
- if (have > 0) {
- var out = self._buffer.slice(self._offset, self._offset + have);
- self._offset += have;
- if (async) {
- self.push(out);
- } else {
- buffers.push(out);
- nread += out.length;
- }
- }
- if (availOutAfter === 0 || self._offset >= self._chunkSize) {
- availOutBefore = self._chunkSize;
- self._offset = 0;
- self._buffer = Buffer2.allocUnsafe(self._chunkSize);
- }
- if (availOutAfter === 0) {
- inOff += availInBefore - availInAfter;
- availInBefore = availInAfter;
- if (!async) return true;
- var newReq = self._handle.write(
- flushFlag,
- chunk,
- inOff,
- availInBefore,
- self._buffer,
- self._offset,
- self._chunkSize,
- );
- newReq.callback = callback;
- newReq.buffer = chunk;
- return;
- }
- if (!async) return false;
- cb();
- }
- };
- util.inherits(Deflate, Zlib);
- util.inherits(Inflate, Zlib);
- util.inherits(Gzip, Zlib);
- util.inherits(Gunzip, Zlib);
- util.inherits(DeflateRaw, Zlib);
- util.inherits(InflateRaw, Zlib);
- util.inherits(Unzip, Zlib);
- },
-});
-
-// zlib.js
-var zlib_exports = require_lib();
-zlib_exports[Symbol.for("CommonJS")] = 0;
-export default zlib_exports;
-
-export var {
- Deflate,
- Inflate,
- Gzip,
- Gunzip,
- DeflateRaw,
- InflateRaw,
- Unzip,
- createDeflate,
- createInflate,
- createDeflateRaw,
- createInflateRaw,
- createGzip,
- createGunzip,
- createUnzip,
- deflate,
- deflateSync,
- gzip,
- gzipSync,
- deflateRaw,
- deflateRawSync,
- unzip,
- unzipSync,
- inflate,
- inflateSync,
- gunzip,
- gunzipSync,
- inflateRaw,
- inflateRawSync,
- constants,
-} = zlib_exports;