diff --git a/docs/transfer-ledger-create.html b/docs/transfer-ledger-create.html
new file mode 100644
index 0000000..4b2f301
--- /dev/null
+++ b/docs/transfer-ledger-create.html
@@ -0,0 +1,1082 @@
+
+
+
+
+
+
diff --git a/index.html b/index.html
index 799caaf..42cc158 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
diff --git a/node_modules/browser-resolve/node_modules/resolve/test/pathfilter/deep_ref/main.js b/ledger-bundle/bundle.js
similarity index 100%
rename from node_modules/browser-resolve/node_modules/resolve/test/pathfilter/deep_ref/main.js
rename to ledger-bundle/bundle.js
diff --git a/ledger-bundle/main.js b/ledger-bundle/main.js
new file mode 100644
index 0000000..a559c44
--- /dev/null
+++ b/ledger-bundle/main.js
@@ -0,0 +1,13 @@
+const Kadena = require("hw-app-kda").default;
+const SpeculosTransport = require("@ledgerhq/hw-transport-node-speculos").default;
+const TranspWeb = require("@ledgerhq/hw-transport-webhid").default;
+const WebUSB = require("@ledgerhq/hw-transport-webusb").default;
+
+function load_modules(){
+ window.Kadena = Kadena;
+ window.SpeculosTransport = SpeculosTransport;
+ window.TranspWeb = TranspWeb;
+ window.WebUSB = WebUSB;
+}
+
+load_modules();
diff --git a/ledger-bundle/main1.js b/ledger-bundle/main1.js
new file mode 100644
index 0000000..4c6a8f0
--- /dev/null
+++ b/ledger-bundle/main1.js
@@ -0,0 +1,12558 @@
+(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i
dataLength) {
+ data = data.slice(0, dataLength);
+ }
+ return {
+ data: data,
+ dataLength: dataLength,
+ sequence: sequence
+ };
+ },
+ getReducedResult: function (acc) {
+ if (acc && acc.dataLength === acc.data.length) {
+ return acc.data;
+ }
+ }
+ };
+};
+exports["default"] = createHIDframing;
+
+}).call(this)}).call(this,require("buffer").Buffer)
+},{"@ledgerhq/errors":5,"buffer":165}],3:[function(require,module,exports){
+"use strict";
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
+exports.__esModule = true;
+exports.getInfosForServiceUuid = exports.getBluetoothServiceUuids = exports.identifyProductName = exports.identifyUSBProductId = exports.identifyTargetId = exports.getDeviceModel = exports.ledgerUSBVendorId = exports.DeviceModelId = exports.IIWebUSB = exports.IICCID = exports.IIU2F = exports.IIKeyboardHID = exports.IIGenericHID = void 0;
+var semver_1 = __importDefault(require("semver"));
+/**
+ * The USB product IDs will be defined as MMII, encoding a model (MM) and an interface bitfield (II)
+ *
+ ** Model
+ * Ledger Nano S : 0x10
+ * Ledger Blue : 0x00
+ * Ledger Nano X : 0x40
+ *
+ ** Interface support bitfield
+ * Generic HID : 0x01
+ * Keyboard HID : 0x02
+ * U2F : 0x04
+ * CCID : 0x08
+ * WebUSB : 0x10
+ */
+exports.IIGenericHID = 0x01;
+exports.IIKeyboardHID = 0x02;
+exports.IIU2F = 0x04;
+exports.IICCID = 0x08;
+exports.IIWebUSB = 0x10;
+var DeviceModelId;
+(function (DeviceModelId) {
+ DeviceModelId["blue"] = "blue";
+ DeviceModelId["nanoS"] = "nanoS";
+ DeviceModelId["nanoSP"] = "nanoSP";
+ DeviceModelId["nanoX"] = "nanoX";
+})(DeviceModelId = exports.DeviceModelId || (exports.DeviceModelId = {}));
+var devices = (_a = {},
+ _a[DeviceModelId.blue] = {
+ id: DeviceModelId.blue,
+ productName: "Ledger Blue",
+ productIdMM: 0x00,
+ legacyUsbProductId: 0x0000,
+ usbOnly: true,
+ memorySize: 480 * 1024,
+ masks: [0x31000000, 0x31010000],
+ getBlockSize: function (_firwareVersion) { return 4 * 1024; }
+ },
+ _a[DeviceModelId.nanoS] = {
+ id: DeviceModelId.nanoS,
+ productName: "Ledger Nano S",
+ productIdMM: 0x10,
+ legacyUsbProductId: 0x0001,
+ usbOnly: true,
+ memorySize: 320 * 1024,
+ masks: [0x31100000],
+ getBlockSize: function (firmwareVersion) {
+ var _a;
+ return semver_1["default"].lt((_a = semver_1["default"].coerce(firmwareVersion)) !== null && _a !== void 0 ? _a : "", "2.0.0")
+ ? 4 * 1024
+ : 2 * 1024;
+ }
+ },
+ _a[DeviceModelId.nanoSP] = {
+ id: DeviceModelId.nanoSP,
+ productName: "Ledger Nano SP",
+ productIdMM: 0x50,
+ legacyUsbProductId: 0x0005,
+ usbOnly: true,
+ memorySize: 1533 * 1024,
+ masks: [0x33100000],
+ getBlockSize: function (_firmwareVersion) { return 32; }
+ },
+ _a[DeviceModelId.nanoX] = {
+ id: DeviceModelId.nanoX,
+ productName: "Ledger Nano X",
+ productIdMM: 0x40,
+ legacyUsbProductId: 0x0004,
+ usbOnly: false,
+ memorySize: 2 * 1024 * 1024,
+ masks: [0x33000000],
+ getBlockSize: function (_firwareVersion) { return 4 * 1024; },
+ bluetoothSpec: [
+ {
+ // this is the legacy one (prototype version). we will eventually drop it.
+ serviceUuid: "d973f2e0-b19e-11e2-9e96-0800200c9a66",
+ notifyUuid: "d973f2e1-b19e-11e2-9e96-0800200c9a66",
+ writeUuid: "d973f2e2-b19e-11e2-9e96-0800200c9a66",
+ writeCmdUuid: "d973f2e3-b19e-11e2-9e96-0800200c9a66"
+ },
+ {
+ serviceUuid: "13d63400-2c97-0004-0000-4c6564676572",
+ notifyUuid: "13d63400-2c97-0004-0001-4c6564676572",
+ writeUuid: "13d63400-2c97-0004-0002-4c6564676572",
+ writeCmdUuid: "13d63400-2c97-0004-0003-4c6564676572"
+ },
+ ]
+ },
+ _a);
+var productMap = {
+ Blue: DeviceModelId.blue,
+ "Nano S": DeviceModelId.nanoS,
+ "Nano X": DeviceModelId.nanoX
+};
+var devicesList = Object.values(devices);
+/**
+ *
+ */
+exports.ledgerUSBVendorId = 0x2c97;
+/**
+ *
+ */
+var getDeviceModel = function (id) {
+ var info = devices[id];
+ if (!info)
+ throw new Error("device '" + id + "' does not exist");
+ return info;
+};
+exports.getDeviceModel = getDeviceModel;
+/**
+ * Given a `targetId`, return the deviceModel associated to it,
+ * based on the first two bytes.
+ */
+var identifyTargetId = function (targetId) {
+ var deviceModel = devicesList.find(function (_a) {
+ var masks = _a.masks;
+ return masks.find(function (mask) { return (targetId & 0xffff0000) === mask; });
+ });
+ return deviceModel;
+};
+exports.identifyTargetId = identifyTargetId;
+/**
+ *
+ */
+var identifyUSBProductId = function (usbProductId) {
+ var legacy = devicesList.find(function (d) { return d.legacyUsbProductId === usbProductId; });
+ if (legacy)
+ return legacy;
+ var mm = usbProductId >> 8;
+ var deviceModel = devicesList.find(function (d) { return d.productIdMM === mm; });
+ return deviceModel;
+};
+exports.identifyUSBProductId = identifyUSBProductId;
+var identifyProductName = function (productName) {
+ var productId = productMap[productName];
+ if (!productId && productName.startsWith("Nano S")) {
+ productId = DeviceModelId.nanoSP;
+ }
+ var deviceModel = devicesList.find(function (d) { return d.id === productId; });
+ return deviceModel;
+};
+exports.identifyProductName = identifyProductName;
+var bluetoothServices = [];
+var serviceUuidToInfos = {};
+for (var id in devices) {
+ var deviceModel = devices[id];
+ var bluetoothSpec = deviceModel.bluetoothSpec;
+ if (bluetoothSpec) {
+ for (var i = 0; i < bluetoothSpec.length; i++) {
+ var spec = bluetoothSpec[i];
+ bluetoothServices.push(spec.serviceUuid);
+ serviceUuidToInfos[spec.serviceUuid] = serviceUuidToInfos[spec.serviceUuid.replace(/-/g, "")] = __assign({ deviceModel: deviceModel }, spec);
+ }
+ }
+}
+/**
+ *
+ */
+var getBluetoothServiceUuids = function () { return bluetoothServices; };
+exports.getBluetoothServiceUuids = getBluetoothServiceUuids;
+/**
+ *
+ */
+var getInfosForServiceUuid = function (uuid) { return serviceUuidToInfos[uuid.toLowerCase()]; };
+exports.getInfosForServiceUuid = getInfosForServiceUuid;
+
+},{"semver":144}],4:[function(require,module,exports){
+"use strict";
+/* eslint-disable no-continue */
+/* eslint-disable no-unused-vars */
+/* eslint-disable no-param-reassign */
+/* eslint-disable no-prototype-builtins */
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+exports.__esModule = true;
+exports.serializeError = exports.deserializeError = exports.createCustomErrorClass = exports.addCustomErrorDeserializer = void 0;
+var errorClasses = {};
+var deserializers = {};
+var addCustomErrorDeserializer = function (name, deserializer) {
+ deserializers[name] = deserializer;
+};
+exports.addCustomErrorDeserializer = addCustomErrorDeserializer;
+var createCustomErrorClass = function (name) {
+ var C = function CustomError(message, fields) {
+ Object.assign(this, fields);
+ this.name = name;
+ this.message = message || name;
+ this.stack = new Error().stack;
+ };
+ C.prototype = new Error();
+ errorClasses[name] = C;
+ return C;
+};
+exports.createCustomErrorClass = createCustomErrorClass;
+// inspired from https://github.com/programble/errio/blob/master/index.js
+var deserializeError = function (object) {
+ if (typeof object === "object" && object) {
+ try {
+ // $FlowFixMe FIXME HACK
+ var msg = JSON.parse(object.message);
+ if (msg.message && msg.name) {
+ object = msg;
+ }
+ }
+ catch (e) {
+ // nothing
+ }
+ var error = void 0;
+ if (typeof object.name === "string") {
+ var name_1 = object.name;
+ var des = deserializers[name_1];
+ if (des) {
+ error = des(object);
+ }
+ else {
+ var constructor = name_1 === "Error" ? Error : errorClasses[name_1];
+ if (!constructor) {
+ console.warn("deserializing an unknown class '" + name_1 + "'");
+ constructor = (0, exports.createCustomErrorClass)(name_1);
+ }
+ error = Object.create(constructor.prototype);
+ try {
+ for (var prop in object) {
+ if (object.hasOwnProperty(prop)) {
+ error[prop] = object[prop];
+ }
+ }
+ }
+ catch (e) {
+ // sometimes setting a property can fail (e.g. .name)
+ }
+ }
+ }
+ else {
+ error = new Error(object.message);
+ }
+ if (!error.stack && Error.captureStackTrace) {
+ Error.captureStackTrace(error, exports.deserializeError);
+ }
+ return error;
+ }
+ return new Error(String(object));
+};
+exports.deserializeError = deserializeError;
+// inspired from https://github.com/sindresorhus/serialize-error/blob/master/index.js
+var serializeError = function (value) {
+ if (!value)
+ return value;
+ if (typeof value === "object") {
+ return destroyCircular(value, []);
+ }
+ if (typeof value === "function") {
+ return "[Function: " + (value.name || "anonymous") + "]";
+ }
+ return value;
+};
+exports.serializeError = serializeError;
+// https://www.npmjs.com/package/destroy-circular
+function destroyCircular(from, seen) {
+ var e_1, _a;
+ var to = {};
+ seen.push(from);
+ try {
+ for (var _b = __values(Object.keys(from)), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var key = _c.value;
+ var value = from[key];
+ if (typeof value === "function") {
+ continue;
+ }
+ if (!value || typeof value !== "object") {
+ to[key] = value;
+ continue;
+ }
+ if (seen.indexOf(from[key]) === -1) {
+ to[key] = destroyCircular(from[key], seen.slice(0));
+ continue;
+ }
+ to[key] = "[Circular]";
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b["return"])) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ if (typeof from.name === "string") {
+ to.name = from.name;
+ }
+ if (typeof from.message === "string") {
+ to.message = from.message;
+ }
+ if (typeof from.stack === "string") {
+ to.stack = from.stack;
+ }
+ return to;
+}
+
+},{}],5:[function(require,module,exports){
+"use strict";
+exports.__esModule = true;
+exports.NotEnoughBalanceInParentAccount = exports.NotEnoughBalanceToDelegate = exports.NotEnoughBalance = exports.NoAddressesFound = exports.NetworkDown = exports.ManagerUninstallBTCDep = exports.ManagerNotEnoughSpaceError = exports.ManagerFirmwareNotEnoughSpaceError = exports.ManagerDeviceLockedError = exports.ManagerAppDepUninstallRequired = exports.ManagerAppDepInstallRequired = exports.ManagerAppRelyOnBTCError = exports.ManagerAppAlreadyInstalledError = exports.LedgerAPINotAvailable = exports.LedgerAPIErrorWithMessage = exports.LedgerAPIError = exports.UnknownMCU = exports.LatestMCUInstalledError = exports.InvalidAddressBecauseDestinationIsAlsoSource = exports.InvalidAddress = exports.InvalidXRPTag = exports.HardResetFail = exports.FirmwareNotRecognized = exports.FeeEstimationFailed = exports.EthAppPleaseEnableContractData = exports.EnpointConfigError = exports.DisconnectedDeviceDuringOperation = exports.DisconnectedDevice = exports.DeviceSocketNoBulkStatus = exports.DeviceSocketFail = exports.DeviceNameInvalid = exports.DeviceHalted = exports.DeviceInOSUExpected = exports.DeviceOnDashboardUnexpected = exports.DeviceOnDashboardExpected = exports.DeviceNotGenuineError = exports.DeviceGenuineSocketEarlyClose = exports.DeviceAppVerifyNotSupported = exports.CurrencyNotSupported = exports.CashAddrNotSupported = exports.CantOpenDevice = exports.BtcUnmatchedApp = exports.BluetoothRequired = exports.AmountRequired = exports.AccountNotSupported = exports.AccountNameRequiredError = exports.addCustomErrorDeserializer = exports.createCustomErrorClass = exports.deserializeError = exports.serializeError = void 0;
+exports.StatusCodes = exports.TransportError = exports.DBNotReset = exports.DBWrongPassword = exports.NoDBPathGiven = exports.FirmwareOrAppUpdateRequired = exports.LedgerAPI5xx = exports.LedgerAPI4xx = exports.GenuineCheckFailed = exports.PairingFailed = exports.SyncError = exports.FeeTooHigh = exports.FeeRequired = exports.FeeNotLoaded = exports.CantScanQRCode = exports.ETHAddressNonEIP = exports.WrongAppForCurrency = exports.WrongDeviceForAccount = exports.WebsocketConnectionFailed = exports.WebsocketConnectionError = exports.DeviceShouldStayInApp = exports.TransportWebUSBGestureRequired = exports.TransportRaceCondition = exports.TransportInterfaceNotAvailable = exports.TransportOpenUserCancelled = exports.UserRefusedOnDevice = exports.UserRefusedAllowManager = exports.UserRefusedFirmwareUpdate = exports.UserRefusedAddress = exports.UserRefusedDeviceNameChange = exports.UpdateYourApp = exports.UpdateIncorrectSig = exports.UpdateIncorrectHash = exports.UpdateFetchFileFail = exports.UnavailableTezosOriginatedAccountSend = exports.UnavailableTezosOriginatedAccountReceive = exports.RecipientRequired = exports.MCUNotGenuineToDashboard = exports.UnexpectedBootloader = exports.TimeoutTagged = exports.RecommendUndelegation = exports.RecommendSubAccountsToEmpty = exports.PasswordIncorrectError = exports.PasswordsDontMatchError = exports.GasLessThanEstimate = exports.NotSupportedLegacyAddress = exports.NotEnoughGas = exports.NoAccessToCamera = exports.NotEnoughBalanceBecauseDestinationNotCreated = exports.NotEnoughSpendableBalance = void 0;
+exports.TransportStatusError = exports.getAltStatusMessage = void 0;
+var helpers_1 = require("./helpers");
+exports.serializeError = helpers_1.serializeError;
+exports.deserializeError = helpers_1.deserializeError;
+exports.createCustomErrorClass = helpers_1.createCustomErrorClass;
+exports.addCustomErrorDeserializer = helpers_1.addCustomErrorDeserializer;
+exports.AccountNameRequiredError = (0, helpers_1.createCustomErrorClass)("AccountNameRequired");
+exports.AccountNotSupported = (0, helpers_1.createCustomErrorClass)("AccountNotSupported");
+exports.AmountRequired = (0, helpers_1.createCustomErrorClass)("AmountRequired");
+exports.BluetoothRequired = (0, helpers_1.createCustomErrorClass)("BluetoothRequired");
+exports.BtcUnmatchedApp = (0, helpers_1.createCustomErrorClass)("BtcUnmatchedApp");
+exports.CantOpenDevice = (0, helpers_1.createCustomErrorClass)("CantOpenDevice");
+exports.CashAddrNotSupported = (0, helpers_1.createCustomErrorClass)("CashAddrNotSupported");
+exports.CurrencyNotSupported = (0, helpers_1.createCustomErrorClass)("CurrencyNotSupported");
+exports.DeviceAppVerifyNotSupported = (0, helpers_1.createCustomErrorClass)("DeviceAppVerifyNotSupported");
+exports.DeviceGenuineSocketEarlyClose = (0, helpers_1.createCustomErrorClass)("DeviceGenuineSocketEarlyClose");
+exports.DeviceNotGenuineError = (0, helpers_1.createCustomErrorClass)("DeviceNotGenuine");
+exports.DeviceOnDashboardExpected = (0, helpers_1.createCustomErrorClass)("DeviceOnDashboardExpected");
+exports.DeviceOnDashboardUnexpected = (0, helpers_1.createCustomErrorClass)("DeviceOnDashboardUnexpected");
+exports.DeviceInOSUExpected = (0, helpers_1.createCustomErrorClass)("DeviceInOSUExpected");
+exports.DeviceHalted = (0, helpers_1.createCustomErrorClass)("DeviceHalted");
+exports.DeviceNameInvalid = (0, helpers_1.createCustomErrorClass)("DeviceNameInvalid");
+exports.DeviceSocketFail = (0, helpers_1.createCustomErrorClass)("DeviceSocketFail");
+exports.DeviceSocketNoBulkStatus = (0, helpers_1.createCustomErrorClass)("DeviceSocketNoBulkStatus");
+exports.DisconnectedDevice = (0, helpers_1.createCustomErrorClass)("DisconnectedDevice");
+exports.DisconnectedDeviceDuringOperation = (0, helpers_1.createCustomErrorClass)("DisconnectedDeviceDuringOperation");
+exports.EnpointConfigError = (0, helpers_1.createCustomErrorClass)("EnpointConfig");
+exports.EthAppPleaseEnableContractData = (0, helpers_1.createCustomErrorClass)("EthAppPleaseEnableContractData");
+exports.FeeEstimationFailed = (0, helpers_1.createCustomErrorClass)("FeeEstimationFailed");
+exports.FirmwareNotRecognized = (0, helpers_1.createCustomErrorClass)("FirmwareNotRecognized");
+exports.HardResetFail = (0, helpers_1.createCustomErrorClass)("HardResetFail");
+exports.InvalidXRPTag = (0, helpers_1.createCustomErrorClass)("InvalidXRPTag");
+exports.InvalidAddress = (0, helpers_1.createCustomErrorClass)("InvalidAddress");
+exports.InvalidAddressBecauseDestinationIsAlsoSource = (0, helpers_1.createCustomErrorClass)("InvalidAddressBecauseDestinationIsAlsoSource");
+exports.LatestMCUInstalledError = (0, helpers_1.createCustomErrorClass)("LatestMCUInstalledError");
+exports.UnknownMCU = (0, helpers_1.createCustomErrorClass)("UnknownMCU");
+exports.LedgerAPIError = (0, helpers_1.createCustomErrorClass)("LedgerAPIError");
+exports.LedgerAPIErrorWithMessage = (0, helpers_1.createCustomErrorClass)("LedgerAPIErrorWithMessage");
+exports.LedgerAPINotAvailable = (0, helpers_1.createCustomErrorClass)("LedgerAPINotAvailable");
+exports.ManagerAppAlreadyInstalledError = (0, helpers_1.createCustomErrorClass)("ManagerAppAlreadyInstalled");
+exports.ManagerAppRelyOnBTCError = (0, helpers_1.createCustomErrorClass)("ManagerAppRelyOnBTC");
+exports.ManagerAppDepInstallRequired = (0, helpers_1.createCustomErrorClass)("ManagerAppDepInstallRequired");
+exports.ManagerAppDepUninstallRequired = (0, helpers_1.createCustomErrorClass)("ManagerAppDepUninstallRequired");
+exports.ManagerDeviceLockedError = (0, helpers_1.createCustomErrorClass)("ManagerDeviceLocked");
+exports.ManagerFirmwareNotEnoughSpaceError = (0, helpers_1.createCustomErrorClass)("ManagerFirmwareNotEnoughSpace");
+exports.ManagerNotEnoughSpaceError = (0, helpers_1.createCustomErrorClass)("ManagerNotEnoughSpace");
+exports.ManagerUninstallBTCDep = (0, helpers_1.createCustomErrorClass)("ManagerUninstallBTCDep");
+exports.NetworkDown = (0, helpers_1.createCustomErrorClass)("NetworkDown");
+exports.NoAddressesFound = (0, helpers_1.createCustomErrorClass)("NoAddressesFound");
+exports.NotEnoughBalance = (0, helpers_1.createCustomErrorClass)("NotEnoughBalance");
+exports.NotEnoughBalanceToDelegate = (0, helpers_1.createCustomErrorClass)("NotEnoughBalanceToDelegate");
+exports.NotEnoughBalanceInParentAccount = (0, helpers_1.createCustomErrorClass)("NotEnoughBalanceInParentAccount");
+exports.NotEnoughSpendableBalance = (0, helpers_1.createCustomErrorClass)("NotEnoughSpendableBalance");
+exports.NotEnoughBalanceBecauseDestinationNotCreated = (0, helpers_1.createCustomErrorClass)("NotEnoughBalanceBecauseDestinationNotCreated");
+exports.NoAccessToCamera = (0, helpers_1.createCustomErrorClass)("NoAccessToCamera");
+exports.NotEnoughGas = (0, helpers_1.createCustomErrorClass)("NotEnoughGas");
+exports.NotSupportedLegacyAddress = (0, helpers_1.createCustomErrorClass)("NotSupportedLegacyAddress");
+exports.GasLessThanEstimate = (0, helpers_1.createCustomErrorClass)("GasLessThanEstimate");
+exports.PasswordsDontMatchError = (0, helpers_1.createCustomErrorClass)("PasswordsDontMatch");
+exports.PasswordIncorrectError = (0, helpers_1.createCustomErrorClass)("PasswordIncorrect");
+exports.RecommendSubAccountsToEmpty = (0, helpers_1.createCustomErrorClass)("RecommendSubAccountsToEmpty");
+exports.RecommendUndelegation = (0, helpers_1.createCustomErrorClass)("RecommendUndelegation");
+exports.TimeoutTagged = (0, helpers_1.createCustomErrorClass)("TimeoutTagged");
+exports.UnexpectedBootloader = (0, helpers_1.createCustomErrorClass)("UnexpectedBootloader");
+exports.MCUNotGenuineToDashboard = (0, helpers_1.createCustomErrorClass)("MCUNotGenuineToDashboard");
+exports.RecipientRequired = (0, helpers_1.createCustomErrorClass)("RecipientRequired");
+exports.UnavailableTezosOriginatedAccountReceive = (0, helpers_1.createCustomErrorClass)("UnavailableTezosOriginatedAccountReceive");
+exports.UnavailableTezosOriginatedAccountSend = (0, helpers_1.createCustomErrorClass)("UnavailableTezosOriginatedAccountSend");
+exports.UpdateFetchFileFail = (0, helpers_1.createCustomErrorClass)("UpdateFetchFileFail");
+exports.UpdateIncorrectHash = (0, helpers_1.createCustomErrorClass)("UpdateIncorrectHash");
+exports.UpdateIncorrectSig = (0, helpers_1.createCustomErrorClass)("UpdateIncorrectSig");
+exports.UpdateYourApp = (0, helpers_1.createCustomErrorClass)("UpdateYourApp");
+exports.UserRefusedDeviceNameChange = (0, helpers_1.createCustomErrorClass)("UserRefusedDeviceNameChange");
+exports.UserRefusedAddress = (0, helpers_1.createCustomErrorClass)("UserRefusedAddress");
+exports.UserRefusedFirmwareUpdate = (0, helpers_1.createCustomErrorClass)("UserRefusedFirmwareUpdate");
+exports.UserRefusedAllowManager = (0, helpers_1.createCustomErrorClass)("UserRefusedAllowManager");
+exports.UserRefusedOnDevice = (0, helpers_1.createCustomErrorClass)("UserRefusedOnDevice"); // TODO rename because it's just for transaction refusal
+exports.TransportOpenUserCancelled = (0, helpers_1.createCustomErrorClass)("TransportOpenUserCancelled");
+exports.TransportInterfaceNotAvailable = (0, helpers_1.createCustomErrorClass)("TransportInterfaceNotAvailable");
+exports.TransportRaceCondition = (0, helpers_1.createCustomErrorClass)("TransportRaceCondition");
+exports.TransportWebUSBGestureRequired = (0, helpers_1.createCustomErrorClass)("TransportWebUSBGestureRequired");
+exports.DeviceShouldStayInApp = (0, helpers_1.createCustomErrorClass)("DeviceShouldStayInApp");
+exports.WebsocketConnectionError = (0, helpers_1.createCustomErrorClass)("WebsocketConnectionError");
+exports.WebsocketConnectionFailed = (0, helpers_1.createCustomErrorClass)("WebsocketConnectionFailed");
+exports.WrongDeviceForAccount = (0, helpers_1.createCustomErrorClass)("WrongDeviceForAccount");
+exports.WrongAppForCurrency = (0, helpers_1.createCustomErrorClass)("WrongAppForCurrency");
+exports.ETHAddressNonEIP = (0, helpers_1.createCustomErrorClass)("ETHAddressNonEIP");
+exports.CantScanQRCode = (0, helpers_1.createCustomErrorClass)("CantScanQRCode");
+exports.FeeNotLoaded = (0, helpers_1.createCustomErrorClass)("FeeNotLoaded");
+exports.FeeRequired = (0, helpers_1.createCustomErrorClass)("FeeRequired");
+exports.FeeTooHigh = (0, helpers_1.createCustomErrorClass)("FeeTooHigh");
+exports.SyncError = (0, helpers_1.createCustomErrorClass)("SyncError");
+exports.PairingFailed = (0, helpers_1.createCustomErrorClass)("PairingFailed");
+exports.GenuineCheckFailed = (0, helpers_1.createCustomErrorClass)("GenuineCheckFailed");
+exports.LedgerAPI4xx = (0, helpers_1.createCustomErrorClass)("LedgerAPI4xx");
+exports.LedgerAPI5xx = (0, helpers_1.createCustomErrorClass)("LedgerAPI5xx");
+exports.FirmwareOrAppUpdateRequired = (0, helpers_1.createCustomErrorClass)("FirmwareOrAppUpdateRequired");
+// db stuff, no need to translate
+exports.NoDBPathGiven = (0, helpers_1.createCustomErrorClass)("NoDBPathGiven");
+exports.DBWrongPassword = (0, helpers_1.createCustomErrorClass)("DBWrongPassword");
+exports.DBNotReset = (0, helpers_1.createCustomErrorClass)("DBNotReset");
+/**
+ * TransportError is used for any generic transport errors.
+ * e.g. Error thrown when data received by exchanges are incorrect or if exchanged failed to communicate with the device for various reason.
+ */
+function TransportError(message, id) {
+ this.name = "TransportError";
+ this.message = message;
+ this.stack = new Error().stack;
+ this.id = id;
+}
+exports.TransportError = TransportError;
+TransportError.prototype = new Error();
+(0, helpers_1.addCustomErrorDeserializer)("TransportError", function (e) { return new TransportError(e.message, e.id); });
+exports.StatusCodes = {
+ PIN_REMAINING_ATTEMPTS: 0x63c0,
+ INCORRECT_LENGTH: 0x6700,
+ MISSING_CRITICAL_PARAMETER: 0x6800,
+ COMMAND_INCOMPATIBLE_FILE_STRUCTURE: 0x6981,
+ SECURITY_STATUS_NOT_SATISFIED: 0x6982,
+ CONDITIONS_OF_USE_NOT_SATISFIED: 0x6985,
+ INCORRECT_DATA: 0x6a80,
+ NOT_ENOUGH_MEMORY_SPACE: 0x6a84,
+ REFERENCED_DATA_NOT_FOUND: 0x6a88,
+ FILE_ALREADY_EXISTS: 0x6a89,
+ INCORRECT_P1_P2: 0x6b00,
+ INS_NOT_SUPPORTED: 0x6d00,
+ CLA_NOT_SUPPORTED: 0x6e00,
+ TECHNICAL_PROBLEM: 0x6f00,
+ OK: 0x9000,
+ MEMORY_PROBLEM: 0x9240,
+ NO_EF_SELECTED: 0x9400,
+ INVALID_OFFSET: 0x9402,
+ FILE_NOT_FOUND: 0x9404,
+ INCONSISTENT_FILE: 0x9408,
+ ALGORITHM_NOT_SUPPORTED: 0x9484,
+ INVALID_KCV: 0x9485,
+ CODE_NOT_INITIALIZED: 0x9802,
+ ACCESS_CONDITION_NOT_FULFILLED: 0x9804,
+ CONTRADICTION_SECRET_CODE_STATUS: 0x9808,
+ CONTRADICTION_INVALIDATION: 0x9810,
+ CODE_BLOCKED: 0x9840,
+ MAX_VALUE_REACHED: 0x9850,
+ GP_AUTH_FAILED: 0x6300,
+ LICENSING: 0x6f42,
+ HALTED: 0x6faa
+};
+function getAltStatusMessage(code) {
+ switch (code) {
+ // improve text of most common errors
+ case 0x6700:
+ return "Incorrect length";
+ case 0x6800:
+ return "Missing critical parameter";
+ case 0x6982:
+ return "Security not satisfied (dongle locked or have invalid access rights)";
+ case 0x6985:
+ return "Condition of use not satisfied (denied by the user?)";
+ case 0x6a80:
+ return "Invalid data received";
+ case 0x6b00:
+ return "Invalid parameter received";
+ }
+ if (0x6f00 <= code && code <= 0x6fff) {
+ return "Internal error, please report";
+ }
+}
+exports.getAltStatusMessage = getAltStatusMessage;
+/**
+ * Error thrown when a device returned a non success status.
+ * the error.statusCode is one of the `StatusCodes` exported by this library.
+ */
+function TransportStatusError(statusCode) {
+ this.name = "TransportStatusError";
+ var statusText = Object.keys(exports.StatusCodes).find(function (k) { return exports.StatusCodes[k] === statusCode; }) ||
+ "UNKNOWN_ERROR";
+ var smsg = getAltStatusMessage(statusCode) || statusText;
+ var statusCodeStr = statusCode.toString(16);
+ this.message = "Ledger device: " + smsg + " (0x" + statusCodeStr + ")";
+ this.stack = new Error().stack;
+ this.statusCode = statusCode;
+ this.statusText = statusText;
+}
+exports.TransportStatusError = TransportStatusError;
+TransportStatusError.prototype = new Error();
+(0, helpers_1.addCustomErrorDeserializer)("TransportStatusError", function (e) { return new TransportStatusError(e.statusCode); });
+
+},{"./helpers":4}],6:[function(require,module,exports){
+(function (Buffer){(function (){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+exports.__esModule = true;
+var rxjs_1 = require("rxjs");
+var net_1 = __importDefault(require("net"));
+var hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport"));
+var errors_1 = require("@ledgerhq/errors");
+var logs_1 = require("@ledgerhq/logs");
+/**
+ * Speculos TCP transport implementation
+ *
+ * @example
+ * import SpeculosTransport from "@ledgerhq/hw-transport-node-speculos";
+ * const transport = await SpeculosTransport.open({ apduPort });
+ * const res = await transport.send(0xE0, 0x01, 0, 0);
+ */
+var SpeculosTransport = /** @class */ (function (_super) {
+ __extends(SpeculosTransport, _super);
+ function SpeculosTransport(apduSocket, opts) {
+ var _this = _super.call(this) || this;
+ _this.rejectExchange = function (_e) { };
+ _this.resolveExchange = function (_b) { };
+ _this.automationEvents = new rxjs_1.Subject();
+ /**
+ * Send a speculos button command
+ * typically "Ll" would press and release the left button
+ * typically "Rr" would press and release the right button
+ * @param {*} command
+ */
+ _this.button = function (command) {
+ return new Promise(function (resolve, reject) {
+ (0, logs_1.log)("speculos-button", command);
+ var _a = _this.opts, buttonPort = _a.buttonPort, host = _a.host;
+ if (!buttonPort)
+ throw new Error("buttonPort is missing");
+ var socket = new net_1["default"].Socket();
+ socket.on("error", function (e) {
+ socket.destroy();
+ reject(e);
+ });
+ socket.connect(buttonPort, host || "127.0.0.1", function () {
+ socket.write(Buffer.from(command, "ascii"));
+ socket.destroy();
+ resolve();
+ });
+ });
+ };
+ _this.opts = opts;
+ _this.apduSocket = apduSocket;
+ apduSocket.on("error", function (e) {
+ _this.emit("disconnect", new errors_1.DisconnectedDevice(e.message));
+ _this.rejectExchange(e);
+ _this.apduSocket.destroy();
+ });
+ apduSocket.on("end", function () {
+ _this.emit("disconnect", new errors_1.DisconnectedDevice());
+ _this.rejectExchange(new errors_1.DisconnectedDeviceDuringOperation());
+ });
+ apduSocket.on("data", function (data) {
+ try {
+ _this.resolveExchange(decodeAPDUPayload(data));
+ }
+ catch (e) {
+ _this.rejectExchange(e);
+ }
+ });
+ var automationPort = opts.automationPort;
+ if (automationPort) {
+ var socket_1 = new net_1["default"].Socket();
+ _this.automationSocket = socket_1;
+ socket_1.on("error", function (e) {
+ (0, logs_1.log)("speculos-automation-error", String(e));
+ socket_1.destroy();
+ });
+ socket_1.on("data", function (data) {
+ (0, logs_1.log)("speculos-automation-data", data.toString("ascii"));
+ var split = data.toString("ascii").split("\n");
+ split
+ .filter(function (ascii) { return !!ascii; })
+ .forEach(function (ascii) {
+ var json = JSON.parse(ascii);
+ _this.automationEvents.next(json);
+ });
+ });
+ socket_1.connect(automationPort, opts.host || "127.0.0.1");
+ }
+ return _this;
+ }
+ SpeculosTransport.prototype.exchange = function (apdu) {
+ return __awaiter(this, void 0, void 0, function () {
+ var hex, encoded, res;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ hex = apdu.toString("hex");
+ (0, logs_1.log)("apdu", "=> " + hex);
+ encoded = encodeAPDU(apdu);
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
+ _this.rejectExchange = reject;
+ _this.resolveExchange = resolve;
+ _this.apduSocket.write(encoded);
+ })];
+ case 1:
+ res = _a.sent();
+ (0, logs_1.log)("apdu", "<= " + res.toString("hex"));
+ return [2 /*return*/, res];
+ }
+ });
+ });
+ };
+ SpeculosTransport.prototype.setScrambleKey = function () { };
+ SpeculosTransport.prototype.close = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ if (this.automationSocket)
+ this.automationSocket.destroy();
+ this.apduSocket.destroy();
+ return [2 /*return*/, Promise.resolve()];
+ });
+ });
+ };
+ SpeculosTransport.isSupported = function () { return Promise.resolve(true); };
+ // this transport is not discoverable
+ SpeculosTransport.list = function () { return Promise.resolve([]); };
+ SpeculosTransport.listen = function (_observer) { return ({
+ unsubscribe: function () { }
+ }); };
+ /**
+ *
+ */
+ SpeculosTransport.open = function (opts) {
+ return new Promise(function (resolve, reject) {
+ var socket = new net_1["default"].Socket();
+ socket.on("error", function (e) {
+ socket.destroy();
+ reject(e);
+ });
+ socket.on("end", function () {
+ reject(new errors_1.DisconnectedDevice("tcp closed"));
+ });
+ socket.connect(opts.apduPort, opts.host || "127.0.0.1", function () {
+ // we delay a bit the transport creation to make sure the tcp does not hang up
+ setTimeout(function () {
+ resolve(new SpeculosTransport(socket, opts));
+ }, 100);
+ });
+ });
+ };
+ return SpeculosTransport;
+}(hw_transport_1["default"]));
+exports["default"] = SpeculosTransport;
+function encodeAPDU(apdu) {
+ var size = Buffer.allocUnsafe(4);
+ size.writeUIntBE(apdu.length, 0, 4);
+ return Buffer.concat([size, apdu]);
+}
+function decodeAPDUPayload(data) {
+ var dataLength = data.readUIntBE(0, 4); // 4 bytes tells the data length
+ var size = dataLength + 2; // size does not include the status code so we add 2
+ var payload = data.slice(4);
+ if (payload.length !== size) {
+ throw new errors_1.TransportError("Expected payload of length ".concat(size, " but got ").concat(payload.length), "");
+ }
+ return payload;
+}
+
+}).call(this)}).call(this,require("buffer").Buffer)
+},{"@ledgerhq/errors":5,"@ledgerhq/hw-transport":10,"@ledgerhq/logs":11,"buffer":165,"net":163,"rxjs":15}],7:[function(require,module,exports){
+(function (Buffer){(function (){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+exports.__esModule = true;
+var hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport"));
+var hid_framing_1 = __importDefault(require("@ledgerhq/devices/lib/hid-framing"));
+var devices_1 = require("@ledgerhq/devices");
+var logs_1 = require("@ledgerhq/logs");
+var errors_1 = require("@ledgerhq/errors");
+var ledgerDevices = [
+ {
+ vendorId: devices_1.ledgerUSBVendorId
+ },
+];
+var isSupported = function () {
+ return Promise.resolve(!!(window.navigator && window.navigator.hid));
+};
+var getHID = function () {
+ // $FlowFixMe
+ var hid = navigator.hid;
+ if (!hid)
+ throw new errors_1.TransportError("navigator.hid is not supported", "HIDNotSupported");
+ return hid;
+};
+function requestLedgerDevices() {
+ return __awaiter(this, void 0, void 0, function () {
+ var device;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, getHID().requestDevice({
+ filters: ledgerDevices
+ })];
+ case 1:
+ device = _a.sent();
+ if (Array.isArray(device))
+ return [2 /*return*/, device];
+ return [2 /*return*/, [device]];
+ }
+ });
+ });
+}
+function getLedgerDevices() {
+ return __awaiter(this, void 0, void 0, function () {
+ var devices;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, getHID().getDevices()];
+ case 1:
+ devices = _a.sent();
+ return [2 /*return*/, devices.filter(function (d) { return d.vendorId === devices_1.ledgerUSBVendorId; })];
+ }
+ });
+ });
+}
+function getFirstLedgerDevice() {
+ return __awaiter(this, void 0, void 0, function () {
+ var existingDevices, devices;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, getLedgerDevices()];
+ case 1:
+ existingDevices = _a.sent();
+ if (existingDevices.length > 0)
+ return [2 /*return*/, existingDevices[0]];
+ return [4 /*yield*/, requestLedgerDevices()];
+ case 2:
+ devices = _a.sent();
+ return [2 /*return*/, devices[0]];
+ }
+ });
+ });
+}
+/**
+ * WebHID Transport implementation
+ * @example
+ * import TransportWebHID from "@ledgerhq/hw-transport-webhid";
+ * ...
+ * TransportWebHID.create().then(transport => ...)
+ */
+var TransportWebHID = /** @class */ (function (_super) {
+ __extends(TransportWebHID, _super);
+ function TransportWebHID(device) {
+ var _this = _super.call(this) || this;
+ _this.channel = Math.floor(Math.random() * 0xffff);
+ _this.packetSize = 64;
+ _this.inputs = [];
+ _this.read = function () {
+ if (_this.inputs.length) {
+ return Promise.resolve(_this.inputs.shift());
+ }
+ return new Promise(function (success) {
+ _this.inputCallback = success;
+ });
+ };
+ _this.onInputReport = function (e) {
+ var buffer = Buffer.from(e.data.buffer);
+ if (_this.inputCallback) {
+ _this.inputCallback(buffer);
+ _this.inputCallback = null;
+ }
+ else {
+ _this.inputs.push(buffer);
+ }
+ };
+ _this._disconnectEmitted = false;
+ _this._emitDisconnect = function (e) {
+ if (_this._disconnectEmitted)
+ return;
+ _this._disconnectEmitted = true;
+ _this.emit("disconnect", e);
+ };
+ /**
+ * Exchange with the device using APDU protocol.
+ * @param apdu
+ * @returns a promise of apdu response
+ */
+ _this.exchange = function (apdu) { return __awaiter(_this, void 0, void 0, function () {
+ var b;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, this.exchangeAtomicImpl(function () { return __awaiter(_this, void 0, void 0, function () {
+ var _a, channel, packetSize, framing, blocks, i, result, acc, buffer;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ _a = this, channel = _a.channel, packetSize = _a.packetSize;
+ (0, logs_1.log)("apdu", "=> " + apdu.toString("hex"));
+ framing = (0, hid_framing_1["default"])(channel, packetSize);
+ blocks = framing.makeBlocks(apdu);
+ i = 0;
+ _b.label = 1;
+ case 1:
+ if (!(i < blocks.length)) return [3 /*break*/, 4];
+ return [4 /*yield*/, this.device.sendReport(0, blocks[i])];
+ case 2:
+ _b.sent();
+ _b.label = 3;
+ case 3:
+ i++;
+ return [3 /*break*/, 1];
+ case 4:
+ if (!!(result = framing.getReducedResult(acc))) return [3 /*break*/, 6];
+ return [4 /*yield*/, this.read()];
+ case 5:
+ buffer = _b.sent();
+ acc = framing.reduceResponse(acc, buffer);
+ return [3 /*break*/, 4];
+ case 6:
+ (0, logs_1.log)("apdu", "<= " + result.toString("hex"));
+ return [2 /*return*/, result];
+ }
+ });
+ }); })["catch"](function (e) {
+ if (e && e.message && e.message.includes("write")) {
+ _this._emitDisconnect(e);
+ throw new errors_1.DisconnectedDeviceDuringOperation(e.message);
+ }
+ throw e;
+ })];
+ case 1:
+ b = _a.sent();
+ return [2 /*return*/, b];
+ }
+ });
+ }); };
+ _this.device = device;
+ _this.deviceModel =
+ typeof device.productId === "number"
+ ? (0, devices_1.identifyUSBProductId)(device.productId)
+ : undefined;
+ device.addEventListener("inputreport", _this.onInputReport);
+ return _this;
+ }
+ /**
+ * Similar to create() except it will always display the device permission (even if some devices are already accepted).
+ */
+ TransportWebHID.request = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, device;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0: return [4 /*yield*/, requestLedgerDevices()];
+ case 1:
+ _a = __read.apply(void 0, [_b.sent(), 1]), device = _a[0];
+ return [2 /*return*/, TransportWebHID.open(device)];
+ }
+ });
+ });
+ };
+ /**
+ * Similar to create() except it will never display the device permission (it returns a Promise, null if it fails to find a device).
+ */
+ TransportWebHID.openConnected = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ var devices;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, getLedgerDevices()];
+ case 1:
+ devices = _a.sent();
+ if (devices.length === 0)
+ return [2 /*return*/, null];
+ return [2 /*return*/, TransportWebHID.open(devices[0])];
+ }
+ });
+ });
+ };
+ /**
+ * Create a Ledger transport with a HIDDevice
+ */
+ TransportWebHID.open = function (device) {
+ return __awaiter(this, void 0, void 0, function () {
+ var transport, onDisconnect;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, device.open()];
+ case 1:
+ _a.sent();
+ transport = new TransportWebHID(device);
+ onDisconnect = function (e) {
+ if (device === e.device) {
+ getHID().removeEventListener("disconnect", onDisconnect);
+ transport._emitDisconnect(new errors_1.DisconnectedDevice());
+ }
+ };
+ getHID().addEventListener("disconnect", onDisconnect);
+ return [2 /*return*/, transport];
+ }
+ });
+ });
+ };
+ /**
+ * Release the transport device
+ */
+ TransportWebHID.prototype.close = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, this.exchangeBusyPromise];
+ case 1:
+ _a.sent();
+ this.device.removeEventListener("inputreport", this.onInputReport);
+ return [4 /*yield*/, this.device.close()];
+ case 2:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ });
+ };
+ TransportWebHID.prototype.setScrambleKey = function () { };
+ /**
+ * Check if WebUSB transport is supported.
+ */
+ TransportWebHID.isSupported = isSupported;
+ /**
+ * List the WebUSB devices that was previously authorized by the user.
+ */
+ TransportWebHID.list = getLedgerDevices;
+ /**
+ * Actively listen to WebUSB devices and emit ONE device
+ * that was either accepted before, if not it will trigger the native permission UI.
+ *
+ * Important: it must be called in the context of a UI click!
+ */
+ TransportWebHID.listen = function (observer) {
+ var unsubscribed = false;
+ getFirstLedgerDevice().then(function (device) {
+ if (!device) {
+ observer.error(new errors_1.TransportOpenUserCancelled("Access denied to use Ledger device"));
+ }
+ else if (!unsubscribed) {
+ var deviceModel = typeof device.productId === "number"
+ ? (0, devices_1.identifyUSBProductId)(device.productId)
+ : undefined;
+ observer.next({
+ type: "add",
+ descriptor: device,
+ deviceModel: deviceModel
+ });
+ observer.complete();
+ }
+ }, function (error) {
+ observer.error(new errors_1.TransportOpenUserCancelled(error.message));
+ });
+ function unsubscribe() {
+ unsubscribed = true;
+ }
+ return {
+ unsubscribe: unsubscribe
+ };
+ };
+ return TransportWebHID;
+}(hw_transport_1["default"]));
+exports["default"] = TransportWebHID;
+
+}).call(this)}).call(this,require("buffer").Buffer)
+},{"@ledgerhq/devices":3,"@ledgerhq/devices/lib/hid-framing":2,"@ledgerhq/errors":5,"@ledgerhq/hw-transport":10,"@ledgerhq/logs":11,"buffer":165}],8:[function(require,module,exports){
+(function (Buffer){(function (){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+exports.__esModule = true;
+var hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport"));
+var hid_framing_1 = __importDefault(require("@ledgerhq/devices/lib/hid-framing"));
+var devices_1 = require("@ledgerhq/devices");
+var logs_1 = require("@ledgerhq/logs");
+var errors_1 = require("@ledgerhq/errors");
+var webusb_1 = require("./webusb");
+var configurationValue = 1;
+var endpointNumber = 3;
+/**
+ * WebUSB Transport implementation
+ * @example
+ * import TransportWebUSB from "@ledgerhq/hw-transport-webusb";
+ * ...
+ * TransportWebUSB.create().then(transport => ...)
+ */
+var TransportWebUSB = /** @class */ (function (_super) {
+ __extends(TransportWebUSB, _super);
+ function TransportWebUSB(device, interfaceNumber) {
+ var _this = _super.call(this) || this;
+ _this.channel = Math.floor(Math.random() * 0xffff);
+ _this.packetSize = 64;
+ _this._disconnectEmitted = false;
+ _this._emitDisconnect = function (e) {
+ if (_this._disconnectEmitted)
+ return;
+ _this._disconnectEmitted = true;
+ _this.emit("disconnect", e);
+ };
+ _this.device = device;
+ _this.interfaceNumber = interfaceNumber;
+ _this.deviceModel = (0, devices_1.identifyUSBProductId)(device.productId);
+ return _this;
+ }
+ /**
+ * Similar to create() except it will always display the device permission (even if some devices are already accepted).
+ */
+ TransportWebUSB.request = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ var device;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, (0, webusb_1.requestLedgerDevice)()];
+ case 1:
+ device = _a.sent();
+ return [2 /*return*/, TransportWebUSB.open(device)];
+ }
+ });
+ });
+ };
+ /**
+ * Similar to create() except it will never display the device permission (it returns a Promise, null if it fails to find a device).
+ */
+ TransportWebUSB.openConnected = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ var devices;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, (0, webusb_1.getLedgerDevices)()];
+ case 1:
+ devices = _a.sent();
+ if (devices.length === 0)
+ return [2 /*return*/, null];
+ return [2 /*return*/, TransportWebUSB.open(devices[0])];
+ }
+ });
+ });
+ };
+ /**
+ * Create a Ledger transport with a USBDevice
+ */
+ TransportWebUSB.open = function (device) {
+ return __awaiter(this, void 0, void 0, function () {
+ var iface, interfaceNumber, e_1, transport, onDisconnect;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, device.open()];
+ case 1:
+ _a.sent();
+ if (!(device.configuration === null)) return [3 /*break*/, 3];
+ return [4 /*yield*/, device.selectConfiguration(configurationValue)];
+ case 2:
+ _a.sent();
+ _a.label = 3;
+ case 3: return [4 /*yield*/, gracefullyResetDevice(device)];
+ case 4:
+ _a.sent();
+ iface = device.configurations[0].interfaces.find(function (_a) {
+ var alternates = _a.alternates;
+ return alternates.some(function (a) { return a.interfaceClass === 255; });
+ });
+ if (!iface) {
+ throw new errors_1.TransportInterfaceNotAvailable("No WebUSB interface found for your Ledger device. Please upgrade firmware or contact techsupport.");
+ }
+ interfaceNumber = iface.interfaceNumber;
+ _a.label = 5;
+ case 5:
+ _a.trys.push([5, 7, , 9]);
+ return [4 /*yield*/, device.claimInterface(interfaceNumber)];
+ case 6:
+ _a.sent();
+ return [3 /*break*/, 9];
+ case 7:
+ e_1 = _a.sent();
+ return [4 /*yield*/, device.close()];
+ case 8:
+ _a.sent();
+ throw new errors_1.TransportInterfaceNotAvailable(e_1.message);
+ case 9:
+ transport = new TransportWebUSB(device, interfaceNumber);
+ onDisconnect = function (e) {
+ if (device === e.device) {
+ // $FlowFixMe
+ navigator.usb.removeEventListener("disconnect", onDisconnect);
+ transport._emitDisconnect(new errors_1.DisconnectedDevice());
+ }
+ };
+ // $FlowFixMe
+ navigator.usb.addEventListener("disconnect", onDisconnect);
+ return [2 /*return*/, transport];
+ }
+ });
+ });
+ };
+ /**
+ * Release the transport device
+ */
+ TransportWebUSB.prototype.close = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, this.exchangeBusyPromise];
+ case 1:
+ _a.sent();
+ return [4 /*yield*/, this.device.releaseInterface(this.interfaceNumber)];
+ case 2:
+ _a.sent();
+ return [4 /*yield*/, gracefullyResetDevice(this.device)];
+ case 3:
+ _a.sent();
+ return [4 /*yield*/, this.device.close()];
+ case 4:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ });
+ };
+ /**
+ * Exchange with the device using APDU protocol.
+ * @param apdu
+ * @returns a promise of apdu response
+ */
+ TransportWebUSB.prototype.exchange = function (apdu) {
+ return __awaiter(this, void 0, void 0, function () {
+ var b;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, this.exchangeAtomicImpl(function () { return __awaiter(_this, void 0, void 0, function () {
+ var _a, channel, packetSize, framing, blocks, i, result, acc, r, buffer;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ _a = this, channel = _a.channel, packetSize = _a.packetSize;
+ (0, logs_1.log)("apdu", "=> " + apdu.toString("hex"));
+ framing = (0, hid_framing_1["default"])(channel, packetSize);
+ blocks = framing.makeBlocks(apdu);
+ i = 0;
+ _b.label = 1;
+ case 1:
+ if (!(i < blocks.length)) return [3 /*break*/, 4];
+ return [4 /*yield*/, this.device.transferOut(endpointNumber, blocks[i])];
+ case 2:
+ _b.sent();
+ _b.label = 3;
+ case 3:
+ i++;
+ return [3 /*break*/, 1];
+ case 4:
+ if (!!(result = framing.getReducedResult(acc))) return [3 /*break*/, 6];
+ return [4 /*yield*/, this.device.transferIn(endpointNumber, packetSize)];
+ case 5:
+ r = _b.sent();
+ buffer = Buffer.from(r.data.buffer);
+ acc = framing.reduceResponse(acc, buffer);
+ return [3 /*break*/, 4];
+ case 6:
+ (0, logs_1.log)("apdu", "<= " + result.toString("hex"));
+ return [2 /*return*/, result];
+ }
+ });
+ }); })["catch"](function (e) {
+ if (e && e.message && e.message.includes("disconnected")) {
+ _this._emitDisconnect(e);
+ throw new errors_1.DisconnectedDeviceDuringOperation(e.message);
+ }
+ throw e;
+ })];
+ case 1:
+ b = _a.sent();
+ return [2 /*return*/, b];
+ }
+ });
+ });
+ };
+ TransportWebUSB.prototype.setScrambleKey = function () { };
+ /**
+ * Check if WebUSB transport is supported.
+ */
+ TransportWebUSB.isSupported = webusb_1.isSupported;
+ /**
+ * List the WebUSB devices that was previously authorized by the user.
+ */
+ TransportWebUSB.list = webusb_1.getLedgerDevices;
+ /**
+ * Actively listen to WebUSB devices and emit ONE device
+ * that was either accepted before, if not it will trigger the native permission UI.
+ *
+ * Important: it must be called in the context of a UI click!
+ */
+ TransportWebUSB.listen = function (observer) {
+ var unsubscribed = false;
+ (0, webusb_1.getFirstLedgerDevice)().then(function (device) {
+ if (!unsubscribed) {
+ var deviceModel = (0, devices_1.identifyUSBProductId)(device.productId);
+ observer.next({
+ type: "add",
+ descriptor: device,
+ deviceModel: deviceModel
+ });
+ observer.complete();
+ }
+ }, function (error) {
+ if (window.DOMException &&
+ error instanceof window.DOMException &&
+ error.code === 18) {
+ observer.error(new errors_1.TransportWebUSBGestureRequired(error.message));
+ }
+ else {
+ observer.error(new errors_1.TransportOpenUserCancelled(error.message));
+ }
+ });
+ function unsubscribe() {
+ unsubscribed = true;
+ }
+ return {
+ unsubscribe: unsubscribe
+ };
+ };
+ return TransportWebUSB;
+}(hw_transport_1["default"]));
+exports["default"] = TransportWebUSB;
+function gracefullyResetDevice(device) {
+ return __awaiter(this, void 0, void 0, function () {
+ var err_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, device.reset()];
+ case 1:
+ _a.sent();
+ return [3 /*break*/, 3];
+ case 2:
+ err_1 = _a.sent();
+ console.warn(err_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ });
+}
+
+}).call(this)}).call(this,require("buffer").Buffer)
+},{"./webusb":9,"@ledgerhq/devices":3,"@ledgerhq/devices/lib/hid-framing":2,"@ledgerhq/errors":5,"@ledgerhq/hw-transport":10,"@ledgerhq/logs":11,"buffer":165}],9:[function(require,module,exports){
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+exports.__esModule = true;
+exports.isSupported = exports.getFirstLedgerDevice = exports.getLedgerDevices = exports.requestLedgerDevice = void 0;
+var devices_1 = require("@ledgerhq/devices");
+var ledgerDevices = [
+ {
+ vendorId: devices_1.ledgerUSBVendorId
+ },
+];
+function requestLedgerDevice() {
+ return __awaiter(this, void 0, void 0, function () {
+ var device;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, navigator.usb.requestDevice({
+ filters: ledgerDevices
+ })];
+ case 1:
+ device = _a.sent();
+ return [2 /*return*/, device];
+ }
+ });
+ });
+}
+exports.requestLedgerDevice = requestLedgerDevice;
+function getLedgerDevices() {
+ return __awaiter(this, void 0, void 0, function () {
+ var devices;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, navigator.usb.getDevices()];
+ case 1:
+ devices = _a.sent();
+ return [2 /*return*/, devices.filter(function (d) { return d.vendorId === devices_1.ledgerUSBVendorId; })];
+ }
+ });
+ });
+}
+exports.getLedgerDevices = getLedgerDevices;
+function getFirstLedgerDevice() {
+ return __awaiter(this, void 0, void 0, function () {
+ var existingDevices;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, getLedgerDevices()];
+ case 1:
+ existingDevices = _a.sent();
+ if (existingDevices.length > 0)
+ return [2 /*return*/, existingDevices[0]];
+ return [2 /*return*/, requestLedgerDevice()];
+ }
+ });
+ });
+}
+exports.getFirstLedgerDevice = getFirstLedgerDevice;
+var isSupported = function () {
+ return Promise.resolve(!!navigator &&
+ !!navigator.usb &&
+ typeof navigator.usb.getDevices === "function");
+};
+exports.isSupported = isSupported;
+
+},{"@ledgerhq/devices":3}],10:[function(require,module,exports){
+(function (Buffer){(function (){
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+ if (ar || !(i in from)) {
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+ ar[i] = from[i];
+ }
+ }
+ return to.concat(ar || Array.prototype.slice.call(from));
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+exports.__esModule = true;
+exports.getAltStatusMessage = exports.StatusCodes = exports.TransportStatusError = exports.TransportError = void 0;
+var events_1 = __importDefault(require("events"));
+var errors_1 = require("@ledgerhq/errors");
+exports.TransportError = errors_1.TransportError;
+exports.StatusCodes = errors_1.StatusCodes;
+exports.getAltStatusMessage = errors_1.getAltStatusMessage;
+exports.TransportStatusError = errors_1.TransportStatusError;
+/**
+ * Transport defines the generic interface to share between node/u2f impl
+ * A **Descriptor** is a parametric type that is up to be determined for the implementation.
+ * it can be for instance an ID, an file path, a URL,...
+ */
+var Transport = /** @class */ (function () {
+ function Transport() {
+ var _this = this;
+ this.exchangeTimeout = 30000;
+ this.unresponsiveTimeout = 15000;
+ this.deviceModel = null;
+ this._events = new events_1["default"]();
+ /**
+ * wrapper on top of exchange to simplify work of the implementation.
+ * @param cla
+ * @param ins
+ * @param p1
+ * @param p2
+ * @param data
+ * @param statusList is a list of accepted status code (shorts). [0x9000] by default
+ * @return a Promise of response buffer
+ */
+ this.send = function (cla, ins, p1, p2, data, statusList) {
+ if (data === void 0) { data = Buffer.alloc(0); }
+ if (statusList === void 0) { statusList = [errors_1.StatusCodes.OK]; }
+ return __awaiter(_this, void 0, void 0, function () {
+ var response, sw;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (data.length >= 256) {
+ throw new errors_1.TransportError("data.length exceed 256 bytes limit. Got: " + data.length, "DataLengthTooBig");
+ }
+ return [4 /*yield*/, this.exchange(Buffer.concat([
+ Buffer.from([cla, ins, p1, p2]),
+ Buffer.from([data.length]),
+ data,
+ ]))];
+ case 1:
+ response = _a.sent();
+ sw = response.readUInt16BE(response.length - 2);
+ if (!statusList.some(function (s) { return s === sw; })) {
+ throw new errors_1.TransportStatusError(sw);
+ }
+ return [2 /*return*/, response];
+ }
+ });
+ });
+ };
+ this.exchangeAtomicImpl = function (f) { return __awaiter(_this, void 0, void 0, function () {
+ var resolveBusy, busyPromise, unresponsiveReached, timeout, res;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (this.exchangeBusyPromise) {
+ throw new errors_1.TransportRaceCondition("An action was already pending on the Ledger device. Please deny or reconnect.");
+ }
+ busyPromise = new Promise(function (r) {
+ resolveBusy = r;
+ });
+ this.exchangeBusyPromise = busyPromise;
+ unresponsiveReached = false;
+ timeout = setTimeout(function () {
+ unresponsiveReached = true;
+ _this.emit("unresponsive");
+ }, this.unresponsiveTimeout);
+ _a.label = 1;
+ case 1:
+ _a.trys.push([1, , 3, 4]);
+ return [4 /*yield*/, f()];
+ case 2:
+ res = _a.sent();
+ if (unresponsiveReached) {
+ this.emit("responsive");
+ }
+ return [2 /*return*/, res];
+ case 3:
+ clearTimeout(timeout);
+ if (resolveBusy)
+ resolveBusy();
+ this.exchangeBusyPromise = null;
+ return [7 /*endfinally*/];
+ case 4: return [2 /*return*/];
+ }
+ });
+ }); };
+ this._appAPIlock = null;
+ }
+ /**
+ * low level api to communicate with the device
+ * This method is for implementations to implement but should not be directly called.
+ * Instead, the recommanded way is to use send() method
+ * @param apdu the data to send
+ * @return a Promise of response data
+ */
+ Transport.prototype.exchange = function (_apdu) {
+ throw new Error("exchange not implemented");
+ };
+ /**
+ * set the "scramble key" for the next exchanges with the device.
+ * Each App can have a different scramble key and they internally will set it at instanciation.
+ * @param key the scramble key
+ */
+ Transport.prototype.setScrambleKey = function (_key) { };
+ /**
+ * close the exchange with the device.
+ * @return a Promise that ends when the transport is closed.
+ */
+ Transport.prototype.close = function () {
+ return Promise.resolve();
+ };
+ /**
+ * Listen to an event on an instance of transport.
+ * Transport implementation can have specific events. Here is the common events:
+ * * `"disconnect"` : triggered if Transport is disconnected
+ */
+ Transport.prototype.on = function (eventName, cb) {
+ this._events.on(eventName, cb);
+ };
+ /**
+ * Stop listening to an event on an instance of transport.
+ */
+ Transport.prototype.off = function (eventName, cb) {
+ this._events.removeListener(eventName, cb);
+ };
+ Transport.prototype.emit = function (event) {
+ var _a;
+ var args = [];
+ for (var _i = 1; _i < arguments.length; _i++) {
+ args[_i - 1] = arguments[_i];
+ }
+ (_a = this._events).emit.apply(_a, __spreadArray([event], __read(args), false));
+ };
+ /**
+ * Enable or not logs of the binary exchange
+ */
+ Transport.prototype.setDebugMode = function () {
+ console.warn("setDebugMode is deprecated. use @ledgerhq/logs instead. No logs are emitted in this anymore.");
+ };
+ /**
+ * Set a timeout (in milliseconds) for the exchange call. Only some transport might implement it. (e.g. U2F)
+ */
+ Transport.prototype.setExchangeTimeout = function (exchangeTimeout) {
+ this.exchangeTimeout = exchangeTimeout;
+ };
+ /**
+ * Define the delay before emitting "unresponsive" on an exchange that does not respond
+ */
+ Transport.prototype.setExchangeUnresponsiveTimeout = function (unresponsiveTimeout) {
+ this.unresponsiveTimeout = unresponsiveTimeout;
+ };
+ /**
+ * create() allows to open the first descriptor available or
+ * throw if there is none or if timeout is reached.
+ * This is a light helper, alternative to using listen() and open() (that you may need for any more advanced usecase)
+ * @example
+ TransportFoo.create().then(transport => ...)
+ */
+ Transport.create = function (openTimeout, listenTimeout) {
+ var _this = this;
+ if (openTimeout === void 0) { openTimeout = 3000; }
+ return new Promise(function (resolve, reject) {
+ var found = false;
+ var sub = _this.listen({
+ next: function (e) {
+ found = true;
+ if (sub)
+ sub.unsubscribe();
+ if (listenTimeoutId)
+ clearTimeout(listenTimeoutId);
+ _this.open(e.descriptor, openTimeout).then(resolve, reject);
+ },
+ error: function (e) {
+ if (listenTimeoutId)
+ clearTimeout(listenTimeoutId);
+ reject(e);
+ },
+ complete: function () {
+ if (listenTimeoutId)
+ clearTimeout(listenTimeoutId);
+ if (!found) {
+ reject(new errors_1.TransportError(_this.ErrorMessage_NoDeviceFound, "NoDeviceFound"));
+ }
+ }
+ });
+ var listenTimeoutId = listenTimeout
+ ? setTimeout(function () {
+ sub.unsubscribe();
+ reject(new errors_1.TransportError(_this.ErrorMessage_ListenTimeout, "ListenTimeout"));
+ }, listenTimeout)
+ : null;
+ });
+ };
+ Transport.prototype.decorateAppAPIMethods = function (self, methods, scrambleKey) {
+ var e_1, _a;
+ try {
+ for (var methods_1 = __values(methods), methods_1_1 = methods_1.next(); !methods_1_1.done; methods_1_1 = methods_1.next()) {
+ var methodName = methods_1_1.value;
+ self[methodName] = this.decorateAppAPIMethod(methodName, self[methodName], self, scrambleKey);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (methods_1_1 && !methods_1_1.done && (_a = methods_1["return"])) _a.call(methods_1);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ };
+ Transport.prototype.decorateAppAPIMethod = function (methodName, f, ctx, scrambleKey) {
+ var _this = this;
+ return function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return __awaiter(_this, void 0, void 0, function () {
+ var _appAPIlock;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _appAPIlock = this._appAPIlock;
+ if (_appAPIlock) {
+ return [2 /*return*/, Promise.reject(new errors_1.TransportError("Ledger Device is busy (lock " + _appAPIlock + ")", "TransportLocked"))];
+ }
+ _a.label = 1;
+ case 1:
+ _a.trys.push([1, , 3, 4]);
+ this._appAPIlock = methodName;
+ this.setScrambleKey(scrambleKey);
+ return [4 /*yield*/, f.apply(ctx, args)];
+ case 2: return [2 /*return*/, _a.sent()];
+ case 3:
+ this._appAPIlock = null;
+ return [7 /*endfinally*/];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+ };
+ };
+ Transport.ErrorMessage_ListenTimeout = "No Ledger device found (timeout)";
+ Transport.ErrorMessage_NoDeviceFound = "No Ledger device found";
+ return Transport;
+}());
+exports["default"] = Transport;
+
+}).call(this)}).call(this,require("buffer").Buffer)
+},{"@ledgerhq/errors":5,"buffer":165,"events":166}],11:[function(require,module,exports){
+"use strict";
+exports.__esModule = true;
+exports.listen = exports.log = void 0;
+var id = 0;
+var subscribers = [];
+/**
+ * log something
+ * @param type a namespaced identifier of the log (it is not a level like "debug", "error" but more like "apdu-in", "apdu-out", etc...)
+ * @param message a clear message of the log associated to the type
+ */
+var log = function (type, message, data) {
+ var obj = {
+ type: type,
+ id: String(++id),
+ date: new Date()
+ };
+ if (message)
+ obj.message = message;
+ if (data)
+ obj.data = data;
+ dispatch(obj);
+};
+exports.log = log;
+/**
+ * listen to logs.
+ * @param cb that is called for each future log() with the Log object
+ * @return a function that can be called to unsubscribe the listener
+ */
+var listen = function (cb) {
+ subscribers.push(cb);
+ return function () {
+ var i = subscribers.indexOf(cb);
+ if (i !== -1) {
+ // equivalent of subscribers.splice(i, 1) // https://twitter.com/Rich_Harris/status/1125850391155965952
+ subscribers[i] = subscribers[subscribers.length - 1];
+ subscribers.pop();
+ }
+ };
+};
+exports.listen = listen;
+function dispatch(log) {
+ for (var i = 0; i < subscribers.length; i++) {
+ try {
+ subscribers[i](log);
+ }
+ catch (e) {
+ console.error(e);
+ }
+ }
+}
+if (typeof window !== "undefined") {
+ window.__ledgerLogsListen = exports.listen;
+}
+
+},{}],12:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+exports.__esModule = true;
+var hw_app_obsidian_common_1 = require("hw-app-obsidian-common");
+/**
+ * Kadena API
+ *
+ * @example
+ * import Kadena from "hw-app-kda";
+ * const kda = new Kadena(transport)
+ */
+var Kadena = /** @class */ (function (_super) {
+ __extends(Kadena, _super);
+ function Kadena(transport) {
+ return _super.call(this, transport, "KDA") || this;
+ }
+ return Kadena;
+}(hw_app_obsidian_common_1.Common));
+exports["default"] = Kadena;
+
+},{"hw-app-obsidian-common":13}],13:[function(require,module,exports){
+(function (Buffer){(function (){
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ return ar;
+};
+exports.__esModule = true;
+exports.Common = void 0;
+/**
+ * Common API for ledger apps
+ *
+ * @example
+ * import Kadena from "hw-app-kda";
+ * const kda = new Kadena(transport)
+ */
+var Common = /** @class */ (function () {
+ function Common(transport, scrambleKey, appName) {
+ if (appName === void 0) { appName = null; }
+ this.transport = transport;
+ this.appName = appName;
+ transport.decorateAppAPIMethods(this, ["menu", "getPublicKey", "signHash", "getVersion"], "KDA");
+ }
+ /**
+ * Retrieves the public key associated with a particular BIP32 path from the ledger app.
+ *
+ * @param path - the path to retrieve.
+ */
+ Common.prototype.getPublicKey = function (path) {
+ return __awaiter(this, void 0, void 0, function () {
+ var cla, ins, p1, p2, payload, response, responseSize, publicKey, res;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ cla = 0x00;
+ ins = 0x02;
+ p1 = 0;
+ p2 = 0;
+ payload = buildBip32KeyPayload(path);
+ console.log("getPublicKey payload", payload.toString("hex")); // TODO remove
+ return [4 /*yield*/, this.sendChunks(cla, ins, p1, p2, payload)];
+ case 1:
+ response = _a.sent();
+ console.log("getPublicKey response", response.toString("hex")); // TODO remove
+ responseSize = response[0];
+ publicKey = response.slice(1, 1 + responseSize);
+ res = {
+ publicKey: publicKey.toString("hex")
+ };
+ return [2 /*return*/, res];
+ }
+ });
+ });
+ };
+ /**
+ * Sign a transaction with the key at a BIP32 path.
+ *
+ * @param txn - The transaction; this can be any of a node Buffer, Uint8Array, or a hexadecimal string, encoding the form of the transaction appropriate for hashing and signing.
+ * @param path - the path to use when signing the transaction.
+ */
+ Common.prototype.signTransaction = function (path, txn) {
+ return __awaiter(this, void 0, void 0, function () {
+ var paths, cla, ins, p1, p2, rawTxn, hashSize, bip32KeyPayload, payload, response, signature;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ paths = splitPath(path);
+ cla = 0x00;
+ ins = 0x03;
+ p1 = 0;
+ p2 = 0;
+ rawTxn = typeof txn == "string" ? Buffer.from(txn, "hex") : Buffer.from(txn);
+ hashSize = Buffer.alloc(4);
+ hashSize.writeUInt32LE(rawTxn.length, 0);
+ bip32KeyPayload = buildBip32KeyPayload(path);
+ payload = Buffer.concat([hashSize, rawTxn, bip32KeyPayload]);
+ console.error("signHash payload", payload.toString("hex")); // TODO remove
+ return [4 /*yield*/, this.sendChunks(cla, ins, p1, p2, payload)];
+ case 1:
+ response = _a.sent();
+ console.log("signHash response", response.toString("hex")); // TODO remove
+ signature = response.toString("hex");
+ return [2 /*return*/, {
+ signature: signature
+ }];
+ }
+ });
+ });
+ };
+ /**
+ * Retrieve the app version on the attached ledger device.
+ * @alpha TODO this doesn't exist yet
+ */
+ Common.prototype.getVersion = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, major, minor, patch, appName;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0: return [4 /*yield*/, this.transport.send(0x80, 0x00, 0x00, 0x00, Buffer.alloc(0))];
+ case 1:
+ _a = __read.apply(void 0, [_b.sent()]), major = _a[0], minor = _a[1], patch = _a[2], appName = _a.slice(3);
+ return [2 /*return*/, {
+ major: major,
+ minor: minor,
+ patch: patch
+ }];
+ }
+ });
+ });
+ };
+ /**
+ * Send a raw payload as chunks to a particular APDU instruction.
+ *
+ * @remarks
+ *
+ * This is intended to be used to implement a more useful API in this class and subclasses of it, not for end use.
+ */
+ Common.prototype.sendChunks = function (cla, ins, p1, p2, payload) {
+ return __awaiter(this, void 0, void 0, function () {
+ var rv, chunkSize, i;
+ return __generator(this, function (_a) {
+ chunkSize = 230;
+ for (i = 0; i < payload.length; i += chunkSize) {
+ rv = this.transport.send(cla, ins, p1, p2, payload.slice(i, i + chunkSize));
+ }
+ return [2 /*return*/, rv];
+ });
+ });
+ };
+ return Common;
+}());
+exports.Common = Common;
+function buildBip32KeyPayload(path) {
+ var paths = splitPath(path);
+ // Bip32Key payload is:
+ // 1 byte with number of elements in u32 array path
+ // Followed by the u32 array itself
+ var payload = Buffer.alloc(1 + paths.length * 4);
+ payload[0] = paths.length;
+ paths.forEach(function (element, index) {
+ payload.writeUInt32LE(element, 1 + 4 * index);
+ });
+ return payload;
+}
+// TODO use bip32-path library
+function splitPath(path) {
+ var result = [];
+ var components = path.split("/");
+ components.forEach(function (element) {
+ var number = parseInt(element, 10);
+ if (isNaN(number)) {
+ return; // FIXME shouldn't it throws instead?
+ }
+ if (element.length > 1 && element[element.length - 1] === "'") {
+ number += 0x80000000;
+ }
+ result.push(number);
+ });
+ return result;
+}
+
+}).call(this)}).call(this,require("buffer").Buffer)
+},{"buffer":165}],14:[function(require,module,exports){
+'use strict'
+
+// A linked list to keep track of recently-used-ness
+const Yallist = require('yallist')
+
+const MAX = Symbol('max')
+const LENGTH = Symbol('length')
+const LENGTH_CALCULATOR = Symbol('lengthCalculator')
+const ALLOW_STALE = Symbol('allowStale')
+const MAX_AGE = Symbol('maxAge')
+const DISPOSE = Symbol('dispose')
+const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')
+const LRU_LIST = Symbol('lruList')
+const CACHE = Symbol('cache')
+const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')
+
+const naiveLength = () => 1
+
+// lruList is a yallist where the head is the youngest
+// item, and the tail is the oldest. the list contains the Hit
+// objects as the entries.
+// Each Hit object has a reference to its Yallist.Node. This
+// never changes.
+//
+// cache is a Map (or PseudoMap) that matches the keys to
+// the Yallist.Node object.
+class LRUCache {
+ constructor (options) {
+ if (typeof options === 'number')
+ options = { max: options }
+
+ if (!options)
+ options = {}
+
+ if (options.max && (typeof options.max !== 'number' || options.max < 0))
+ throw new TypeError('max must be a non-negative number')
+ // Kind of weird to have a default max of Infinity, but oh well.
+ const max = this[MAX] = options.max || Infinity
+
+ const lc = options.length || naiveLength
+ this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc
+ this[ALLOW_STALE] = options.stale || false
+ if (options.maxAge && typeof options.maxAge !== 'number')
+ throw new TypeError('maxAge must be a number')
+ this[MAX_AGE] = options.maxAge || 0
+ this[DISPOSE] = options.dispose
+ this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false
+ this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false
+ this.reset()
+ }
+
+ // resize the cache when the max changes.
+ set max (mL) {
+ if (typeof mL !== 'number' || mL < 0)
+ throw new TypeError('max must be a non-negative number')
+
+ this[MAX] = mL || Infinity
+ trim(this)
+ }
+ get max () {
+ return this[MAX]
+ }
+
+ set allowStale (allowStale) {
+ this[ALLOW_STALE] = !!allowStale
+ }
+ get allowStale () {
+ return this[ALLOW_STALE]
+ }
+
+ set maxAge (mA) {
+ if (typeof mA !== 'number')
+ throw new TypeError('maxAge must be a non-negative number')
+
+ this[MAX_AGE] = mA
+ trim(this)
+ }
+ get maxAge () {
+ return this[MAX_AGE]
+ }
+
+ // resize the cache when the lengthCalculator changes.
+ set lengthCalculator (lC) {
+ if (typeof lC !== 'function')
+ lC = naiveLength
+
+ if (lC !== this[LENGTH_CALCULATOR]) {
+ this[LENGTH_CALCULATOR] = lC
+ this[LENGTH] = 0
+ this[LRU_LIST].forEach(hit => {
+ hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)
+ this[LENGTH] += hit.length
+ })
+ }
+ trim(this)
+ }
+ get lengthCalculator () { return this[LENGTH_CALCULATOR] }
+
+ get length () { return this[LENGTH] }
+ get itemCount () { return this[LRU_LIST].length }
+
+ rforEach (fn, thisp) {
+ thisp = thisp || this
+ for (let walker = this[LRU_LIST].tail; walker !== null;) {
+ const prev = walker.prev
+ forEachStep(this, fn, walker, thisp)
+ walker = prev
+ }
+ }
+
+ forEach (fn, thisp) {
+ thisp = thisp || this
+ for (let walker = this[LRU_LIST].head; walker !== null;) {
+ const next = walker.next
+ forEachStep(this, fn, walker, thisp)
+ walker = next
+ }
+ }
+
+ keys () {
+ return this[LRU_LIST].toArray().map(k => k.key)
+ }
+
+ values () {
+ return this[LRU_LIST].toArray().map(k => k.value)
+ }
+
+ reset () {
+ if (this[DISPOSE] &&
+ this[LRU_LIST] &&
+ this[LRU_LIST].length) {
+ this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))
+ }
+
+ this[CACHE] = new Map() // hash of items by key
+ this[LRU_LIST] = new Yallist() // list of items in order of use recency
+ this[LENGTH] = 0 // length of items in the list
+ }
+
+ dump () {
+ return this[LRU_LIST].map(hit =>
+ isStale(this, hit) ? false : {
+ k: hit.key,
+ v: hit.value,
+ e: hit.now + (hit.maxAge || 0)
+ }).toArray().filter(h => h)
+ }
+
+ dumpLru () {
+ return this[LRU_LIST]
+ }
+
+ set (key, value, maxAge) {
+ maxAge = maxAge || this[MAX_AGE]
+
+ if (maxAge && typeof maxAge !== 'number')
+ throw new TypeError('maxAge must be a number')
+
+ const now = maxAge ? Date.now() : 0
+ const len = this[LENGTH_CALCULATOR](value, key)
+
+ if (this[CACHE].has(key)) {
+ if (len > this[MAX]) {
+ del(this, this[CACHE].get(key))
+ return false
+ }
+
+ const node = this[CACHE].get(key)
+ const item = node.value
+
+ // dispose of the old one before overwriting
+ // split out into 2 ifs for better coverage tracking
+ if (this[DISPOSE]) {
+ if (!this[NO_DISPOSE_ON_SET])
+ this[DISPOSE](key, item.value)
+ }
+
+ item.now = now
+ item.maxAge = maxAge
+ item.value = value
+ this[LENGTH] += len - item.length
+ item.length = len
+ this.get(key)
+ trim(this)
+ return true
+ }
+
+ const hit = new Entry(key, value, len, now, maxAge)
+
+ // oversized objects fall out of cache automatically.
+ if (hit.length > this[MAX]) {
+ if (this[DISPOSE])
+ this[DISPOSE](key, value)
+
+ return false
+ }
+
+ this[LENGTH] += hit.length
+ this[LRU_LIST].unshift(hit)
+ this[CACHE].set(key, this[LRU_LIST].head)
+ trim(this)
+ return true
+ }
+
+ has (key) {
+ if (!this[CACHE].has(key)) return false
+ const hit = this[CACHE].get(key).value
+ return !isStale(this, hit)
+ }
+
+ get (key) {
+ return get(this, key, true)
+ }
+
+ peek (key) {
+ return get(this, key, false)
+ }
+
+ pop () {
+ const node = this[LRU_LIST].tail
+ if (!node)
+ return null
+
+ del(this, node)
+ return node.value
+ }
+
+ del (key) {
+ del(this, this[CACHE].get(key))
+ }
+
+ load (arr) {
+ // reset the cache
+ this.reset()
+
+ const now = Date.now()
+ // A previous serialized cache has the most recent items first
+ for (let l = arr.length - 1; l >= 0; l--) {
+ const hit = arr[l]
+ const expiresAt = hit.e || 0
+ if (expiresAt === 0)
+ // the item was created without expiration in a non aged cache
+ this.set(hit.k, hit.v)
+ else {
+ const maxAge = expiresAt - now
+ // dont add already expired items
+ if (maxAge > 0) {
+ this.set(hit.k, hit.v, maxAge)
+ }
+ }
+ }
+ }
+
+ prune () {
+ this[CACHE].forEach((value, key) => get(this, key, false))
+ }
+}
+
+const get = (self, key, doUse) => {
+ const node = self[CACHE].get(key)
+ if (node) {
+ const hit = node.value
+ if (isStale(self, hit)) {
+ del(self, node)
+ if (!self[ALLOW_STALE])
+ return undefined
+ } else {
+ if (doUse) {
+ if (self[UPDATE_AGE_ON_GET])
+ node.value.now = Date.now()
+ self[LRU_LIST].unshiftNode(node)
+ }
+ }
+ return hit.value
+ }
+}
+
+const isStale = (self, hit) => {
+ if (!hit || (!hit.maxAge && !self[MAX_AGE]))
+ return false
+
+ const diff = Date.now() - hit.now
+ return hit.maxAge ? diff > hit.maxAge
+ : self[MAX_AGE] && (diff > self[MAX_AGE])
+}
+
+const trim = self => {
+ if (self[LENGTH] > self[MAX]) {
+ for (let walker = self[LRU_LIST].tail;
+ self[LENGTH] > self[MAX] && walker !== null;) {
+ // We know that we're about to delete this one, and also
+ // what the next least recently used key will be, so just
+ // go ahead and set it now.
+ const prev = walker.prev
+ del(self, walker)
+ walker = prev
+ }
+ }
+}
+
+const del = (self, node) => {
+ if (node) {
+ const hit = node.value
+ if (self[DISPOSE])
+ self[DISPOSE](hit.key, hit.value)
+
+ self[LENGTH] -= hit.length
+ self[CACHE].delete(hit.key)
+ self[LRU_LIST].removeNode(node)
+ }
+}
+
+class Entry {
+ constructor (key, value, length, now, maxAge) {
+ this.key = key
+ this.value = value
+ this.length = length
+ this.now = now
+ this.maxAge = maxAge || 0
+ }
+}
+
+const forEachStep = (self, fn, node, thisp) => {
+ let hit = node.value
+ if (isStale(self, hit)) {
+ del(self, node)
+ if (!self[ALLOW_STALE])
+ hit = undefined
+ }
+ if (hit)
+ fn.call(thisp, hit.value, hit.key, self)
+}
+
+module.exports = LRUCache
+
+},{"yallist":162}],15:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("./internal/Observable");
+exports.Observable = Observable_1.Observable;
+var ConnectableObservable_1 = require("./internal/observable/ConnectableObservable");
+exports.ConnectableObservable = ConnectableObservable_1.ConnectableObservable;
+var groupBy_1 = require("./internal/operators/groupBy");
+exports.GroupedObservable = groupBy_1.GroupedObservable;
+var observable_1 = require("./internal/symbol/observable");
+exports.observable = observable_1.observable;
+var Subject_1 = require("./internal/Subject");
+exports.Subject = Subject_1.Subject;
+var BehaviorSubject_1 = require("./internal/BehaviorSubject");
+exports.BehaviorSubject = BehaviorSubject_1.BehaviorSubject;
+var ReplaySubject_1 = require("./internal/ReplaySubject");
+exports.ReplaySubject = ReplaySubject_1.ReplaySubject;
+var AsyncSubject_1 = require("./internal/AsyncSubject");
+exports.AsyncSubject = AsyncSubject_1.AsyncSubject;
+var asap_1 = require("./internal/scheduler/asap");
+exports.asap = asap_1.asap;
+exports.asapScheduler = asap_1.asapScheduler;
+var async_1 = require("./internal/scheduler/async");
+exports.async = async_1.async;
+exports.asyncScheduler = async_1.asyncScheduler;
+var queue_1 = require("./internal/scheduler/queue");
+exports.queue = queue_1.queue;
+exports.queueScheduler = queue_1.queueScheduler;
+var animationFrame_1 = require("./internal/scheduler/animationFrame");
+exports.animationFrame = animationFrame_1.animationFrame;
+exports.animationFrameScheduler = animationFrame_1.animationFrameScheduler;
+var VirtualTimeScheduler_1 = require("./internal/scheduler/VirtualTimeScheduler");
+exports.VirtualTimeScheduler = VirtualTimeScheduler_1.VirtualTimeScheduler;
+exports.VirtualAction = VirtualTimeScheduler_1.VirtualAction;
+var Scheduler_1 = require("./internal/Scheduler");
+exports.Scheduler = Scheduler_1.Scheduler;
+var Subscription_1 = require("./internal/Subscription");
+exports.Subscription = Subscription_1.Subscription;
+var Subscriber_1 = require("./internal/Subscriber");
+exports.Subscriber = Subscriber_1.Subscriber;
+var Notification_1 = require("./internal/Notification");
+exports.Notification = Notification_1.Notification;
+exports.NotificationKind = Notification_1.NotificationKind;
+var pipe_1 = require("./internal/util/pipe");
+exports.pipe = pipe_1.pipe;
+var noop_1 = require("./internal/util/noop");
+exports.noop = noop_1.noop;
+var identity_1 = require("./internal/util/identity");
+exports.identity = identity_1.identity;
+var isObservable_1 = require("./internal/util/isObservable");
+exports.isObservable = isObservable_1.isObservable;
+var ArgumentOutOfRangeError_1 = require("./internal/util/ArgumentOutOfRangeError");
+exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
+var EmptyError_1 = require("./internal/util/EmptyError");
+exports.EmptyError = EmptyError_1.EmptyError;
+var ObjectUnsubscribedError_1 = require("./internal/util/ObjectUnsubscribedError");
+exports.ObjectUnsubscribedError = ObjectUnsubscribedError_1.ObjectUnsubscribedError;
+var UnsubscriptionError_1 = require("./internal/util/UnsubscriptionError");
+exports.UnsubscriptionError = UnsubscriptionError_1.UnsubscriptionError;
+var TimeoutError_1 = require("./internal/util/TimeoutError");
+exports.TimeoutError = TimeoutError_1.TimeoutError;
+var bindCallback_1 = require("./internal/observable/bindCallback");
+exports.bindCallback = bindCallback_1.bindCallback;
+var bindNodeCallback_1 = require("./internal/observable/bindNodeCallback");
+exports.bindNodeCallback = bindNodeCallback_1.bindNodeCallback;
+var combineLatest_1 = require("./internal/observable/combineLatest");
+exports.combineLatest = combineLatest_1.combineLatest;
+var concat_1 = require("./internal/observable/concat");
+exports.concat = concat_1.concat;
+var defer_1 = require("./internal/observable/defer");
+exports.defer = defer_1.defer;
+var empty_1 = require("./internal/observable/empty");
+exports.empty = empty_1.empty;
+var forkJoin_1 = require("./internal/observable/forkJoin");
+exports.forkJoin = forkJoin_1.forkJoin;
+var from_1 = require("./internal/observable/from");
+exports.from = from_1.from;
+var fromEvent_1 = require("./internal/observable/fromEvent");
+exports.fromEvent = fromEvent_1.fromEvent;
+var fromEventPattern_1 = require("./internal/observable/fromEventPattern");
+exports.fromEventPattern = fromEventPattern_1.fromEventPattern;
+var generate_1 = require("./internal/observable/generate");
+exports.generate = generate_1.generate;
+var iif_1 = require("./internal/observable/iif");
+exports.iif = iif_1.iif;
+var interval_1 = require("./internal/observable/interval");
+exports.interval = interval_1.interval;
+var merge_1 = require("./internal/observable/merge");
+exports.merge = merge_1.merge;
+var never_1 = require("./internal/observable/never");
+exports.never = never_1.never;
+var of_1 = require("./internal/observable/of");
+exports.of = of_1.of;
+var onErrorResumeNext_1 = require("./internal/observable/onErrorResumeNext");
+exports.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNext;
+var pairs_1 = require("./internal/observable/pairs");
+exports.pairs = pairs_1.pairs;
+var partition_1 = require("./internal/observable/partition");
+exports.partition = partition_1.partition;
+var race_1 = require("./internal/observable/race");
+exports.race = race_1.race;
+var range_1 = require("./internal/observable/range");
+exports.range = range_1.range;
+var throwError_1 = require("./internal/observable/throwError");
+exports.throwError = throwError_1.throwError;
+var timer_1 = require("./internal/observable/timer");
+exports.timer = timer_1.timer;
+var using_1 = require("./internal/observable/using");
+exports.using = using_1.using;
+var zip_1 = require("./internal/observable/zip");
+exports.zip = zip_1.zip;
+var scheduled_1 = require("./internal/scheduled/scheduled");
+exports.scheduled = scheduled_1.scheduled;
+var empty_2 = require("./internal/observable/empty");
+exports.EMPTY = empty_2.EMPTY;
+var never_2 = require("./internal/observable/never");
+exports.NEVER = never_2.NEVER;
+var config_1 = require("./internal/config");
+exports.config = config_1.config;
+
+},{"./internal/AsyncSubject":16,"./internal/BehaviorSubject":17,"./internal/Notification":19,"./internal/Observable":20,"./internal/ReplaySubject":23,"./internal/Scheduler":24,"./internal/Subject":25,"./internal/Subscriber":27,"./internal/Subscription":28,"./internal/config":29,"./internal/observable/ConnectableObservable":31,"./internal/observable/bindCallback":32,"./internal/observable/bindNodeCallback":33,"./internal/observable/combineLatest":34,"./internal/observable/concat":35,"./internal/observable/defer":36,"./internal/observable/empty":37,"./internal/observable/forkJoin":38,"./internal/observable/from":39,"./internal/observable/fromEvent":41,"./internal/observable/fromEventPattern":42,"./internal/observable/generate":43,"./internal/observable/iif":44,"./internal/observable/interval":45,"./internal/observable/merge":46,"./internal/observable/never":47,"./internal/observable/of":48,"./internal/observable/onErrorResumeNext":49,"./internal/observable/pairs":50,"./internal/observable/partition":51,"./internal/observable/race":52,"./internal/observable/range":53,"./internal/observable/throwError":54,"./internal/observable/timer":55,"./internal/observable/using":56,"./internal/observable/zip":57,"./internal/operators/groupBy":60,"./internal/scheduled/scheduled":70,"./internal/scheduler/VirtualTimeScheduler":80,"./internal/scheduler/animationFrame":81,"./internal/scheduler/asap":82,"./internal/scheduler/async":83,"./internal/scheduler/queue":84,"./internal/symbol/observable":86,"./internal/util/ArgumentOutOfRangeError":88,"./internal/util/EmptyError":89,"./internal/util/ObjectUnsubscribedError":91,"./internal/util/TimeoutError":92,"./internal/util/UnsubscriptionError":93,"./internal/util/identity":96,"./internal/util/isObservable":104,"./internal/util/noop":107,"./internal/util/pipe":109}],16:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subject_1 = require("./Subject");
+var Subscription_1 = require("./Subscription");
+var AsyncSubject = (function (_super) {
+ __extends(AsyncSubject, _super);
+ function AsyncSubject() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.value = null;
+ _this.hasNext = false;
+ _this.hasCompleted = false;
+ return _this;
+ }
+ AsyncSubject.prototype._subscribe = function (subscriber) {
+ if (this.hasError) {
+ subscriber.error(this.thrownError);
+ return Subscription_1.Subscription.EMPTY;
+ }
+ else if (this.hasCompleted && this.hasNext) {
+ subscriber.next(this.value);
+ subscriber.complete();
+ return Subscription_1.Subscription.EMPTY;
+ }
+ return _super.prototype._subscribe.call(this, subscriber);
+ };
+ AsyncSubject.prototype.next = function (value) {
+ if (!this.hasCompleted) {
+ this.value = value;
+ this.hasNext = true;
+ }
+ };
+ AsyncSubject.prototype.error = function (error) {
+ if (!this.hasCompleted) {
+ _super.prototype.error.call(this, error);
+ }
+ };
+ AsyncSubject.prototype.complete = function () {
+ this.hasCompleted = true;
+ if (this.hasNext) {
+ _super.prototype.next.call(this, this.value);
+ }
+ _super.prototype.complete.call(this);
+ };
+ return AsyncSubject;
+}(Subject_1.Subject));
+exports.AsyncSubject = AsyncSubject;
+
+},{"./Subject":25,"./Subscription":28}],17:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subject_1 = require("./Subject");
+var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError");
+var BehaviorSubject = (function (_super) {
+ __extends(BehaviorSubject, _super);
+ function BehaviorSubject(_value) {
+ var _this = _super.call(this) || this;
+ _this._value = _value;
+ return _this;
+ }
+ Object.defineProperty(BehaviorSubject.prototype, "value", {
+ get: function () {
+ return this.getValue();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ BehaviorSubject.prototype._subscribe = function (subscriber) {
+ var subscription = _super.prototype._subscribe.call(this, subscriber);
+ if (subscription && !subscription.closed) {
+ subscriber.next(this._value);
+ }
+ return subscription;
+ };
+ BehaviorSubject.prototype.getValue = function () {
+ if (this.hasError) {
+ throw this.thrownError;
+ }
+ else if (this.closed) {
+ throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
+ }
+ else {
+ return this._value;
+ }
+ };
+ BehaviorSubject.prototype.next = function (value) {
+ _super.prototype.next.call(this, this._value = value);
+ };
+ return BehaviorSubject;
+}(Subject_1.Subject));
+exports.BehaviorSubject = BehaviorSubject;
+
+},{"./Subject":25,"./util/ObjectUnsubscribedError":91}],18:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("./Subscriber");
+var InnerSubscriber = (function (_super) {
+ __extends(InnerSubscriber, _super);
+ function InnerSubscriber(parent, outerValue, outerIndex) {
+ var _this = _super.call(this) || this;
+ _this.parent = parent;
+ _this.outerValue = outerValue;
+ _this.outerIndex = outerIndex;
+ _this.index = 0;
+ return _this;
+ }
+ InnerSubscriber.prototype._next = function (value) {
+ this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);
+ };
+ InnerSubscriber.prototype._error = function (error) {
+ this.parent.notifyError(error, this);
+ this.unsubscribe();
+ };
+ InnerSubscriber.prototype._complete = function () {
+ this.parent.notifyComplete(this);
+ this.unsubscribe();
+ };
+ return InnerSubscriber;
+}(Subscriber_1.Subscriber));
+exports.InnerSubscriber = InnerSubscriber;
+
+},{"./Subscriber":27}],19:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var empty_1 = require("./observable/empty");
+var of_1 = require("./observable/of");
+var throwError_1 = require("./observable/throwError");
+var NotificationKind;
+(function (NotificationKind) {
+ NotificationKind["NEXT"] = "N";
+ NotificationKind["ERROR"] = "E";
+ NotificationKind["COMPLETE"] = "C";
+})(NotificationKind = exports.NotificationKind || (exports.NotificationKind = {}));
+var Notification = (function () {
+ function Notification(kind, value, error) {
+ this.kind = kind;
+ this.value = value;
+ this.error = error;
+ this.hasValue = kind === 'N';
+ }
+ Notification.prototype.observe = function (observer) {
+ switch (this.kind) {
+ case 'N':
+ return observer.next && observer.next(this.value);
+ case 'E':
+ return observer.error && observer.error(this.error);
+ case 'C':
+ return observer.complete && observer.complete();
+ }
+ };
+ Notification.prototype.do = function (next, error, complete) {
+ var kind = this.kind;
+ switch (kind) {
+ case 'N':
+ return next && next(this.value);
+ case 'E':
+ return error && error(this.error);
+ case 'C':
+ return complete && complete();
+ }
+ };
+ Notification.prototype.accept = function (nextOrObserver, error, complete) {
+ if (nextOrObserver && typeof nextOrObserver.next === 'function') {
+ return this.observe(nextOrObserver);
+ }
+ else {
+ return this.do(nextOrObserver, error, complete);
+ }
+ };
+ Notification.prototype.toObservable = function () {
+ var kind = this.kind;
+ switch (kind) {
+ case 'N':
+ return of_1.of(this.value);
+ case 'E':
+ return throwError_1.throwError(this.error);
+ case 'C':
+ return empty_1.empty();
+ }
+ throw new Error('unexpected notification kind value');
+ };
+ Notification.createNext = function (value) {
+ if (typeof value !== 'undefined') {
+ return new Notification('N', value);
+ }
+ return Notification.undefinedValueNotification;
+ };
+ Notification.createError = function (err) {
+ return new Notification('E', undefined, err);
+ };
+ Notification.createComplete = function () {
+ return Notification.completeNotification;
+ };
+ Notification.completeNotification = new Notification('C');
+ Notification.undefinedValueNotification = new Notification('N', undefined);
+ return Notification;
+}());
+exports.Notification = Notification;
+
+},{"./observable/empty":37,"./observable/of":48,"./observable/throwError":54}],20:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var canReportError_1 = require("./util/canReportError");
+var toSubscriber_1 = require("./util/toSubscriber");
+var observable_1 = require("./symbol/observable");
+var pipe_1 = require("./util/pipe");
+var config_1 = require("./config");
+var Observable = (function () {
+ function Observable(subscribe) {
+ this._isScalar = false;
+ if (subscribe) {
+ this._subscribe = subscribe;
+ }
+ }
+ Observable.prototype.lift = function (operator) {
+ var observable = new Observable();
+ observable.source = this;
+ observable.operator = operator;
+ return observable;
+ };
+ Observable.prototype.subscribe = function (observerOrNext, error, complete) {
+ var operator = this.operator;
+ var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);
+ if (operator) {
+ sink.add(operator.call(sink, this.source));
+ }
+ else {
+ sink.add(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
+ this._subscribe(sink) :
+ this._trySubscribe(sink));
+ }
+ if (config_1.config.useDeprecatedSynchronousErrorHandling) {
+ if (sink.syncErrorThrowable) {
+ sink.syncErrorThrowable = false;
+ if (sink.syncErrorThrown) {
+ throw sink.syncErrorValue;
+ }
+ }
+ }
+ return sink;
+ };
+ Observable.prototype._trySubscribe = function (sink) {
+ try {
+ return this._subscribe(sink);
+ }
+ catch (err) {
+ if (config_1.config.useDeprecatedSynchronousErrorHandling) {
+ sink.syncErrorThrown = true;
+ sink.syncErrorValue = err;
+ }
+ if (canReportError_1.canReportError(sink)) {
+ sink.error(err);
+ }
+ else {
+ console.warn(err);
+ }
+ }
+ };
+ Observable.prototype.forEach = function (next, promiseCtor) {
+ var _this = this;
+ promiseCtor = getPromiseCtor(promiseCtor);
+ return new promiseCtor(function (resolve, reject) {
+ var subscription;
+ subscription = _this.subscribe(function (value) {
+ try {
+ next(value);
+ }
+ catch (err) {
+ reject(err);
+ if (subscription) {
+ subscription.unsubscribe();
+ }
+ }
+ }, reject, resolve);
+ });
+ };
+ Observable.prototype._subscribe = function (subscriber) {
+ var source = this.source;
+ return source && source.subscribe(subscriber);
+ };
+ Observable.prototype[observable_1.observable] = function () {
+ return this;
+ };
+ Observable.prototype.pipe = function () {
+ var operations = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ operations[_i] = arguments[_i];
+ }
+ if (operations.length === 0) {
+ return this;
+ }
+ return pipe_1.pipeFromArray(operations)(this);
+ };
+ Observable.prototype.toPromise = function (promiseCtor) {
+ var _this = this;
+ promiseCtor = getPromiseCtor(promiseCtor);
+ return new promiseCtor(function (resolve, reject) {
+ var value;
+ _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });
+ });
+ };
+ Observable.create = function (subscribe) {
+ return new Observable(subscribe);
+ };
+ return Observable;
+}());
+exports.Observable = Observable;
+function getPromiseCtor(promiseCtor) {
+ if (!promiseCtor) {
+ promiseCtor = config_1.config.Promise || Promise;
+ }
+ if (!promiseCtor) {
+ throw new Error('no Promise impl found');
+ }
+ return promiseCtor;
+}
+
+},{"./config":29,"./symbol/observable":86,"./util/canReportError":94,"./util/pipe":109,"./util/toSubscriber":116}],21:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var config_1 = require("./config");
+var hostReportError_1 = require("./util/hostReportError");
+exports.empty = {
+ closed: true,
+ next: function (value) { },
+ error: function (err) {
+ if (config_1.config.useDeprecatedSynchronousErrorHandling) {
+ throw err;
+ }
+ else {
+ hostReportError_1.hostReportError(err);
+ }
+ },
+ complete: function () { }
+};
+
+},{"./config":29,"./util/hostReportError":95}],22:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("./Subscriber");
+var OuterSubscriber = (function (_super) {
+ __extends(OuterSubscriber, _super);
+ function OuterSubscriber() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
+ this.destination.next(innerValue);
+ };
+ OuterSubscriber.prototype.notifyError = function (error, innerSub) {
+ this.destination.error(error);
+ };
+ OuterSubscriber.prototype.notifyComplete = function (innerSub) {
+ this.destination.complete();
+ };
+ return OuterSubscriber;
+}(Subscriber_1.Subscriber));
+exports.OuterSubscriber = OuterSubscriber;
+
+},{"./Subscriber":27}],23:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subject_1 = require("./Subject");
+var queue_1 = require("./scheduler/queue");
+var Subscription_1 = require("./Subscription");
+var observeOn_1 = require("./operators/observeOn");
+var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError");
+var SubjectSubscription_1 = require("./SubjectSubscription");
+var ReplaySubject = (function (_super) {
+ __extends(ReplaySubject, _super);
+ function ReplaySubject(bufferSize, windowTime, scheduler) {
+ if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }
+ if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }
+ var _this = _super.call(this) || this;
+ _this.scheduler = scheduler;
+ _this._events = [];
+ _this._infiniteTimeWindow = false;
+ _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;
+ _this._windowTime = windowTime < 1 ? 1 : windowTime;
+ if (windowTime === Number.POSITIVE_INFINITY) {
+ _this._infiniteTimeWindow = true;
+ _this.next = _this.nextInfiniteTimeWindow;
+ }
+ else {
+ _this.next = _this.nextTimeWindow;
+ }
+ return _this;
+ }
+ ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {
+ if (!this.isStopped) {
+ var _events = this._events;
+ _events.push(value);
+ if (_events.length > this._bufferSize) {
+ _events.shift();
+ }
+ }
+ _super.prototype.next.call(this, value);
+ };
+ ReplaySubject.prototype.nextTimeWindow = function (value) {
+ if (!this.isStopped) {
+ this._events.push(new ReplayEvent(this._getNow(), value));
+ this._trimBufferThenGetEvents();
+ }
+ _super.prototype.next.call(this, value);
+ };
+ ReplaySubject.prototype._subscribe = function (subscriber) {
+ var _infiniteTimeWindow = this._infiniteTimeWindow;
+ var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();
+ var scheduler = this.scheduler;
+ var len = _events.length;
+ var subscription;
+ if (this.closed) {
+ throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
+ }
+ else if (this.isStopped || this.hasError) {
+ subscription = Subscription_1.Subscription.EMPTY;
+ }
+ else {
+ this.observers.push(subscriber);
+ subscription = new SubjectSubscription_1.SubjectSubscription(this, subscriber);
+ }
+ if (scheduler) {
+ subscriber.add(subscriber = new observeOn_1.ObserveOnSubscriber(subscriber, scheduler));
+ }
+ if (_infiniteTimeWindow) {
+ for (var i = 0; i < len && !subscriber.closed; i++) {
+ subscriber.next(_events[i]);
+ }
+ }
+ else {
+ for (var i = 0; i < len && !subscriber.closed; i++) {
+ subscriber.next(_events[i].value);
+ }
+ }
+ if (this.hasError) {
+ subscriber.error(this.thrownError);
+ }
+ else if (this.isStopped) {
+ subscriber.complete();
+ }
+ return subscription;
+ };
+ ReplaySubject.prototype._getNow = function () {
+ return (this.scheduler || queue_1.queue).now();
+ };
+ ReplaySubject.prototype._trimBufferThenGetEvents = function () {
+ var now = this._getNow();
+ var _bufferSize = this._bufferSize;
+ var _windowTime = this._windowTime;
+ var _events = this._events;
+ var eventsCount = _events.length;
+ var spliceCount = 0;
+ while (spliceCount < eventsCount) {
+ if ((now - _events[spliceCount].time) < _windowTime) {
+ break;
+ }
+ spliceCount++;
+ }
+ if (eventsCount > _bufferSize) {
+ spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);
+ }
+ if (spliceCount > 0) {
+ _events.splice(0, spliceCount);
+ }
+ return _events;
+ };
+ return ReplaySubject;
+}(Subject_1.Subject));
+exports.ReplaySubject = ReplaySubject;
+var ReplayEvent = (function () {
+ function ReplayEvent(time, value) {
+ this.time = time;
+ this.value = value;
+ }
+ return ReplayEvent;
+}());
+
+},{"./Subject":25,"./SubjectSubscription":26,"./Subscription":28,"./operators/observeOn":64,"./scheduler/queue":84,"./util/ObjectUnsubscribedError":91}],24:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Scheduler = (function () {
+ function Scheduler(SchedulerAction, now) {
+ if (now === void 0) { now = Scheduler.now; }
+ this.SchedulerAction = SchedulerAction;
+ this.now = now;
+ }
+ Scheduler.prototype.schedule = function (work, delay, state) {
+ if (delay === void 0) { delay = 0; }
+ return new this.SchedulerAction(this, work).schedule(state, delay);
+ };
+ Scheduler.now = function () { return Date.now(); };
+ return Scheduler;
+}());
+exports.Scheduler = Scheduler;
+
+},{}],25:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("./Observable");
+var Subscriber_1 = require("./Subscriber");
+var Subscription_1 = require("./Subscription");
+var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError");
+var SubjectSubscription_1 = require("./SubjectSubscription");
+var rxSubscriber_1 = require("../internal/symbol/rxSubscriber");
+var SubjectSubscriber = (function (_super) {
+ __extends(SubjectSubscriber, _super);
+ function SubjectSubscriber(destination) {
+ var _this = _super.call(this, destination) || this;
+ _this.destination = destination;
+ return _this;
+ }
+ return SubjectSubscriber;
+}(Subscriber_1.Subscriber));
+exports.SubjectSubscriber = SubjectSubscriber;
+var Subject = (function (_super) {
+ __extends(Subject, _super);
+ function Subject() {
+ var _this = _super.call(this) || this;
+ _this.observers = [];
+ _this.closed = false;
+ _this.isStopped = false;
+ _this.hasError = false;
+ _this.thrownError = null;
+ return _this;
+ }
+ Subject.prototype[rxSubscriber_1.rxSubscriber] = function () {
+ return new SubjectSubscriber(this);
+ };
+ Subject.prototype.lift = function (operator) {
+ var subject = new AnonymousSubject(this, this);
+ subject.operator = operator;
+ return subject;
+ };
+ Subject.prototype.next = function (value) {
+ if (this.closed) {
+ throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
+ }
+ if (!this.isStopped) {
+ var observers = this.observers;
+ var len = observers.length;
+ var copy = observers.slice();
+ for (var i = 0; i < len; i++) {
+ copy[i].next(value);
+ }
+ }
+ };
+ Subject.prototype.error = function (err) {
+ if (this.closed) {
+ throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
+ }
+ this.hasError = true;
+ this.thrownError = err;
+ this.isStopped = true;
+ var observers = this.observers;
+ var len = observers.length;
+ var copy = observers.slice();
+ for (var i = 0; i < len; i++) {
+ copy[i].error(err);
+ }
+ this.observers.length = 0;
+ };
+ Subject.prototype.complete = function () {
+ if (this.closed) {
+ throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
+ }
+ this.isStopped = true;
+ var observers = this.observers;
+ var len = observers.length;
+ var copy = observers.slice();
+ for (var i = 0; i < len; i++) {
+ copy[i].complete();
+ }
+ this.observers.length = 0;
+ };
+ Subject.prototype.unsubscribe = function () {
+ this.isStopped = true;
+ this.closed = true;
+ this.observers = null;
+ };
+ Subject.prototype._trySubscribe = function (subscriber) {
+ if (this.closed) {
+ throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
+ }
+ else {
+ return _super.prototype._trySubscribe.call(this, subscriber);
+ }
+ };
+ Subject.prototype._subscribe = function (subscriber) {
+ if (this.closed) {
+ throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
+ }
+ else if (this.hasError) {
+ subscriber.error(this.thrownError);
+ return Subscription_1.Subscription.EMPTY;
+ }
+ else if (this.isStopped) {
+ subscriber.complete();
+ return Subscription_1.Subscription.EMPTY;
+ }
+ else {
+ this.observers.push(subscriber);
+ return new SubjectSubscription_1.SubjectSubscription(this, subscriber);
+ }
+ };
+ Subject.prototype.asObservable = function () {
+ var observable = new Observable_1.Observable();
+ observable.source = this;
+ return observable;
+ };
+ Subject.create = function (destination, source) {
+ return new AnonymousSubject(destination, source);
+ };
+ return Subject;
+}(Observable_1.Observable));
+exports.Subject = Subject;
+var AnonymousSubject = (function (_super) {
+ __extends(AnonymousSubject, _super);
+ function AnonymousSubject(destination, source) {
+ var _this = _super.call(this) || this;
+ _this.destination = destination;
+ _this.source = source;
+ return _this;
+ }
+ AnonymousSubject.prototype.next = function (value) {
+ var destination = this.destination;
+ if (destination && destination.next) {
+ destination.next(value);
+ }
+ };
+ AnonymousSubject.prototype.error = function (err) {
+ var destination = this.destination;
+ if (destination && destination.error) {
+ this.destination.error(err);
+ }
+ };
+ AnonymousSubject.prototype.complete = function () {
+ var destination = this.destination;
+ if (destination && destination.complete) {
+ this.destination.complete();
+ }
+ };
+ AnonymousSubject.prototype._subscribe = function (subscriber) {
+ var source = this.source;
+ if (source) {
+ return this.source.subscribe(subscriber);
+ }
+ else {
+ return Subscription_1.Subscription.EMPTY;
+ }
+ };
+ return AnonymousSubject;
+}(Subject));
+exports.AnonymousSubject = AnonymousSubject;
+
+},{"../internal/symbol/rxSubscriber":87,"./Observable":20,"./SubjectSubscription":26,"./Subscriber":27,"./Subscription":28,"./util/ObjectUnsubscribedError":91}],26:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscription_1 = require("./Subscription");
+var SubjectSubscription = (function (_super) {
+ __extends(SubjectSubscription, _super);
+ function SubjectSubscription(subject, subscriber) {
+ var _this = _super.call(this) || this;
+ _this.subject = subject;
+ _this.subscriber = subscriber;
+ _this.closed = false;
+ return _this;
+ }
+ SubjectSubscription.prototype.unsubscribe = function () {
+ if (this.closed) {
+ return;
+ }
+ this.closed = true;
+ var subject = this.subject;
+ var observers = subject.observers;
+ this.subject = null;
+ if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
+ return;
+ }
+ var subscriberIndex = observers.indexOf(this.subscriber);
+ if (subscriberIndex !== -1) {
+ observers.splice(subscriberIndex, 1);
+ }
+ };
+ return SubjectSubscription;
+}(Subscription_1.Subscription));
+exports.SubjectSubscription = SubjectSubscription;
+
+},{"./Subscription":28}],27:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var isFunction_1 = require("./util/isFunction");
+var Observer_1 = require("./Observer");
+var Subscription_1 = require("./Subscription");
+var rxSubscriber_1 = require("../internal/symbol/rxSubscriber");
+var config_1 = require("./config");
+var hostReportError_1 = require("./util/hostReportError");
+var Subscriber = (function (_super) {
+ __extends(Subscriber, _super);
+ function Subscriber(destinationOrNext, error, complete) {
+ var _this = _super.call(this) || this;
+ _this.syncErrorValue = null;
+ _this.syncErrorThrown = false;
+ _this.syncErrorThrowable = false;
+ _this.isStopped = false;
+ switch (arguments.length) {
+ case 0:
+ _this.destination = Observer_1.empty;
+ break;
+ case 1:
+ if (!destinationOrNext) {
+ _this.destination = Observer_1.empty;
+ break;
+ }
+ if (typeof destinationOrNext === 'object') {
+ if (destinationOrNext instanceof Subscriber) {
+ _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
+ _this.destination = destinationOrNext;
+ destinationOrNext.add(_this);
+ }
+ else {
+ _this.syncErrorThrowable = true;
+ _this.destination = new SafeSubscriber(_this, destinationOrNext);
+ }
+ break;
+ }
+ default:
+ _this.syncErrorThrowable = true;
+ _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);
+ break;
+ }
+ return _this;
+ }
+ Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };
+ Subscriber.create = function (next, error, complete) {
+ var subscriber = new Subscriber(next, error, complete);
+ subscriber.syncErrorThrowable = false;
+ return subscriber;
+ };
+ Subscriber.prototype.next = function (value) {
+ if (!this.isStopped) {
+ this._next(value);
+ }
+ };
+ Subscriber.prototype.error = function (err) {
+ if (!this.isStopped) {
+ this.isStopped = true;
+ this._error(err);
+ }
+ };
+ Subscriber.prototype.complete = function () {
+ if (!this.isStopped) {
+ this.isStopped = true;
+ this._complete();
+ }
+ };
+ Subscriber.prototype.unsubscribe = function () {
+ if (this.closed) {
+ return;
+ }
+ this.isStopped = true;
+ _super.prototype.unsubscribe.call(this);
+ };
+ Subscriber.prototype._next = function (value) {
+ this.destination.next(value);
+ };
+ Subscriber.prototype._error = function (err) {
+ this.destination.error(err);
+ this.unsubscribe();
+ };
+ Subscriber.prototype._complete = function () {
+ this.destination.complete();
+ this.unsubscribe();
+ };
+ Subscriber.prototype._unsubscribeAndRecycle = function () {
+ var _parentOrParents = this._parentOrParents;
+ this._parentOrParents = null;
+ this.unsubscribe();
+ this.closed = false;
+ this.isStopped = false;
+ this._parentOrParents = _parentOrParents;
+ return this;
+ };
+ return Subscriber;
+}(Subscription_1.Subscription));
+exports.Subscriber = Subscriber;
+var SafeSubscriber = (function (_super) {
+ __extends(SafeSubscriber, _super);
+ function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
+ var _this = _super.call(this) || this;
+ _this._parentSubscriber = _parentSubscriber;
+ var next;
+ var context = _this;
+ if (isFunction_1.isFunction(observerOrNext)) {
+ next = observerOrNext;
+ }
+ else if (observerOrNext) {
+ next = observerOrNext.next;
+ error = observerOrNext.error;
+ complete = observerOrNext.complete;
+ if (observerOrNext !== Observer_1.empty) {
+ context = Object.create(observerOrNext);
+ if (isFunction_1.isFunction(context.unsubscribe)) {
+ _this.add(context.unsubscribe.bind(context));
+ }
+ context.unsubscribe = _this.unsubscribe.bind(_this);
+ }
+ }
+ _this._context = context;
+ _this._next = next;
+ _this._error = error;
+ _this._complete = complete;
+ return _this;
+ }
+ SafeSubscriber.prototype.next = function (value) {
+ if (!this.isStopped && this._next) {
+ var _parentSubscriber = this._parentSubscriber;
+ if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
+ this.__tryOrUnsub(this._next, value);
+ }
+ else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
+ this.unsubscribe();
+ }
+ }
+ };
+ SafeSubscriber.prototype.error = function (err) {
+ if (!this.isStopped) {
+ var _parentSubscriber = this._parentSubscriber;
+ var useDeprecatedSynchronousErrorHandling = config_1.config.useDeprecatedSynchronousErrorHandling;
+ if (this._error) {
+ if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
+ this.__tryOrUnsub(this._error, err);
+ this.unsubscribe();
+ }
+ else {
+ this.__tryOrSetError(_parentSubscriber, this._error, err);
+ this.unsubscribe();
+ }
+ }
+ else if (!_parentSubscriber.syncErrorThrowable) {
+ this.unsubscribe();
+ if (useDeprecatedSynchronousErrorHandling) {
+ throw err;
+ }
+ hostReportError_1.hostReportError(err);
+ }
+ else {
+ if (useDeprecatedSynchronousErrorHandling) {
+ _parentSubscriber.syncErrorValue = err;
+ _parentSubscriber.syncErrorThrown = true;
+ }
+ else {
+ hostReportError_1.hostReportError(err);
+ }
+ this.unsubscribe();
+ }
+ }
+ };
+ SafeSubscriber.prototype.complete = function () {
+ var _this = this;
+ if (!this.isStopped) {
+ var _parentSubscriber = this._parentSubscriber;
+ if (this._complete) {
+ var wrappedComplete = function () { return _this._complete.call(_this._context); };
+ if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
+ this.__tryOrUnsub(wrappedComplete);
+ this.unsubscribe();
+ }
+ else {
+ this.__tryOrSetError(_parentSubscriber, wrappedComplete);
+ this.unsubscribe();
+ }
+ }
+ else {
+ this.unsubscribe();
+ }
+ }
+ };
+ SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
+ try {
+ fn.call(this._context, value);
+ }
+ catch (err) {
+ this.unsubscribe();
+ if (config_1.config.useDeprecatedSynchronousErrorHandling) {
+ throw err;
+ }
+ else {
+ hostReportError_1.hostReportError(err);
+ }
+ }
+ };
+ SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
+ if (!config_1.config.useDeprecatedSynchronousErrorHandling) {
+ throw new Error('bad call');
+ }
+ try {
+ fn.call(this._context, value);
+ }
+ catch (err) {
+ if (config_1.config.useDeprecatedSynchronousErrorHandling) {
+ parent.syncErrorValue = err;
+ parent.syncErrorThrown = true;
+ return true;
+ }
+ else {
+ hostReportError_1.hostReportError(err);
+ return true;
+ }
+ }
+ return false;
+ };
+ SafeSubscriber.prototype._unsubscribe = function () {
+ var _parentSubscriber = this._parentSubscriber;
+ this._context = null;
+ this._parentSubscriber = null;
+ _parentSubscriber.unsubscribe();
+ };
+ return SafeSubscriber;
+}(Subscriber));
+exports.SafeSubscriber = SafeSubscriber;
+
+},{"../internal/symbol/rxSubscriber":87,"./Observer":21,"./Subscription":28,"./config":29,"./util/hostReportError":95,"./util/isFunction":99}],28:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var isArray_1 = require("./util/isArray");
+var isObject_1 = require("./util/isObject");
+var isFunction_1 = require("./util/isFunction");
+var UnsubscriptionError_1 = require("./util/UnsubscriptionError");
+var Subscription = (function () {
+ function Subscription(unsubscribe) {
+ this.closed = false;
+ this._parentOrParents = null;
+ this._subscriptions = null;
+ if (unsubscribe) {
+ this._ctorUnsubscribe = true;
+ this._unsubscribe = unsubscribe;
+ }
+ }
+ Subscription.prototype.unsubscribe = function () {
+ var errors;
+ if (this.closed) {
+ return;
+ }
+ var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;
+ this.closed = true;
+ this._parentOrParents = null;
+ this._subscriptions = null;
+ if (_parentOrParents instanceof Subscription) {
+ _parentOrParents.remove(this);
+ }
+ else if (_parentOrParents !== null) {
+ for (var index = 0; index < _parentOrParents.length; ++index) {
+ var parent_1 = _parentOrParents[index];
+ parent_1.remove(this);
+ }
+ }
+ if (isFunction_1.isFunction(_unsubscribe)) {
+ if (_ctorUnsubscribe) {
+ this._unsubscribe = undefined;
+ }
+ try {
+ _unsubscribe.call(this);
+ }
+ catch (e) {
+ errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];
+ }
+ }
+ if (isArray_1.isArray(_subscriptions)) {
+ var index = -1;
+ var len = _subscriptions.length;
+ while (++index < len) {
+ var sub = _subscriptions[index];
+ if (isObject_1.isObject(sub)) {
+ try {
+ sub.unsubscribe();
+ }
+ catch (e) {
+ errors = errors || [];
+ if (e instanceof UnsubscriptionError_1.UnsubscriptionError) {
+ errors = errors.concat(flattenUnsubscriptionErrors(e.errors));
+ }
+ else {
+ errors.push(e);
+ }
+ }
+ }
+ }
+ }
+ if (errors) {
+ throw new UnsubscriptionError_1.UnsubscriptionError(errors);
+ }
+ };
+ Subscription.prototype.add = function (teardown) {
+ var subscription = teardown;
+ if (!teardown) {
+ return Subscription.EMPTY;
+ }
+ switch (typeof teardown) {
+ case 'function':
+ subscription = new Subscription(teardown);
+ case 'object':
+ if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {
+ return subscription;
+ }
+ else if (this.closed) {
+ subscription.unsubscribe();
+ return subscription;
+ }
+ else if (!(subscription instanceof Subscription)) {
+ var tmp = subscription;
+ subscription = new Subscription();
+ subscription._subscriptions = [tmp];
+ }
+ break;
+ default: {
+ throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');
+ }
+ }
+ var _parentOrParents = subscription._parentOrParents;
+ if (_parentOrParents === null) {
+ subscription._parentOrParents = this;
+ }
+ else if (_parentOrParents instanceof Subscription) {
+ if (_parentOrParents === this) {
+ return subscription;
+ }
+ subscription._parentOrParents = [_parentOrParents, this];
+ }
+ else if (_parentOrParents.indexOf(this) === -1) {
+ _parentOrParents.push(this);
+ }
+ else {
+ return subscription;
+ }
+ var subscriptions = this._subscriptions;
+ if (subscriptions === null) {
+ this._subscriptions = [subscription];
+ }
+ else {
+ subscriptions.push(subscription);
+ }
+ return subscription;
+ };
+ Subscription.prototype.remove = function (subscription) {
+ var subscriptions = this._subscriptions;
+ if (subscriptions) {
+ var subscriptionIndex = subscriptions.indexOf(subscription);
+ if (subscriptionIndex !== -1) {
+ subscriptions.splice(subscriptionIndex, 1);
+ }
+ }
+ };
+ Subscription.EMPTY = (function (empty) {
+ empty.closed = true;
+ return empty;
+ }(new Subscription()));
+ return Subscription;
+}());
+exports.Subscription = Subscription;
+function flattenUnsubscriptionErrors(errors) {
+ return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);
+}
+
+},{"./util/UnsubscriptionError":93,"./util/isArray":97,"./util/isFunction":99,"./util/isObject":103}],29:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var _enable_super_gross_mode_that_will_cause_bad_things = false;
+exports.config = {
+ Promise: undefined,
+ set useDeprecatedSynchronousErrorHandling(value) {
+ if (value) {
+ var error = new Error();
+ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack);
+ }
+ else if (_enable_super_gross_mode_that_will_cause_bad_things) {
+ console.log('RxJS: Back to a better error behavior. Thank you. <3');
+ }
+ _enable_super_gross_mode_that_will_cause_bad_things = value;
+ },
+ get useDeprecatedSynchronousErrorHandling() {
+ return _enable_super_gross_mode_that_will_cause_bad_things;
+ },
+};
+
+},{}],30:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("./Subscriber");
+var Observable_1 = require("./Observable");
+var subscribeTo_1 = require("./util/subscribeTo");
+var SimpleInnerSubscriber = (function (_super) {
+ __extends(SimpleInnerSubscriber, _super);
+ function SimpleInnerSubscriber(parent) {
+ var _this = _super.call(this) || this;
+ _this.parent = parent;
+ return _this;
+ }
+ SimpleInnerSubscriber.prototype._next = function (value) {
+ this.parent.notifyNext(value);
+ };
+ SimpleInnerSubscriber.prototype._error = function (error) {
+ this.parent.notifyError(error);
+ this.unsubscribe();
+ };
+ SimpleInnerSubscriber.prototype._complete = function () {
+ this.parent.notifyComplete();
+ this.unsubscribe();
+ };
+ return SimpleInnerSubscriber;
+}(Subscriber_1.Subscriber));
+exports.SimpleInnerSubscriber = SimpleInnerSubscriber;
+var ComplexInnerSubscriber = (function (_super) {
+ __extends(ComplexInnerSubscriber, _super);
+ function ComplexInnerSubscriber(parent, outerValue, outerIndex) {
+ var _this = _super.call(this) || this;
+ _this.parent = parent;
+ _this.outerValue = outerValue;
+ _this.outerIndex = outerIndex;
+ return _this;
+ }
+ ComplexInnerSubscriber.prototype._next = function (value) {
+ this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);
+ };
+ ComplexInnerSubscriber.prototype._error = function (error) {
+ this.parent.notifyError(error);
+ this.unsubscribe();
+ };
+ ComplexInnerSubscriber.prototype._complete = function () {
+ this.parent.notifyComplete(this);
+ this.unsubscribe();
+ };
+ return ComplexInnerSubscriber;
+}(Subscriber_1.Subscriber));
+exports.ComplexInnerSubscriber = ComplexInnerSubscriber;
+var SimpleOuterSubscriber = (function (_super) {
+ __extends(SimpleOuterSubscriber, _super);
+ function SimpleOuterSubscriber() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) {
+ this.destination.next(innerValue);
+ };
+ SimpleOuterSubscriber.prototype.notifyError = function (err) {
+ this.destination.error(err);
+ };
+ SimpleOuterSubscriber.prototype.notifyComplete = function () {
+ this.destination.complete();
+ };
+ return SimpleOuterSubscriber;
+}(Subscriber_1.Subscriber));
+exports.SimpleOuterSubscriber = SimpleOuterSubscriber;
+var ComplexOuterSubscriber = (function (_super) {
+ __extends(ComplexOuterSubscriber, _super);
+ function ComplexOuterSubscriber() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) {
+ this.destination.next(innerValue);
+ };
+ ComplexOuterSubscriber.prototype.notifyError = function (error) {
+ this.destination.error(error);
+ };
+ ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) {
+ this.destination.complete();
+ };
+ return ComplexOuterSubscriber;
+}(Subscriber_1.Subscriber));
+exports.ComplexOuterSubscriber = ComplexOuterSubscriber;
+function innerSubscribe(result, innerSubscriber) {
+ if (innerSubscriber.closed) {
+ return undefined;
+ }
+ if (result instanceof Observable_1.Observable) {
+ return result.subscribe(innerSubscriber);
+ }
+ var subscription;
+ try {
+ subscription = subscribeTo_1.subscribeTo(result)(innerSubscriber);
+ }
+ catch (error) {
+ innerSubscriber.error(error);
+ }
+ return subscription;
+}
+exports.innerSubscribe = innerSubscribe;
+
+},{"./Observable":20,"./Subscriber":27,"./util/subscribeTo":110}],31:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subject_1 = require("../Subject");
+var Observable_1 = require("../Observable");
+var Subscriber_1 = require("../Subscriber");
+var Subscription_1 = require("../Subscription");
+var refCount_1 = require("../operators/refCount");
+var ConnectableObservable = (function (_super) {
+ __extends(ConnectableObservable, _super);
+ function ConnectableObservable(source, subjectFactory) {
+ var _this = _super.call(this) || this;
+ _this.source = source;
+ _this.subjectFactory = subjectFactory;
+ _this._refCount = 0;
+ _this._isComplete = false;
+ return _this;
+ }
+ ConnectableObservable.prototype._subscribe = function (subscriber) {
+ return this.getSubject().subscribe(subscriber);
+ };
+ ConnectableObservable.prototype.getSubject = function () {
+ var subject = this._subject;
+ if (!subject || subject.isStopped) {
+ this._subject = this.subjectFactory();
+ }
+ return this._subject;
+ };
+ ConnectableObservable.prototype.connect = function () {
+ var connection = this._connection;
+ if (!connection) {
+ this._isComplete = false;
+ connection = this._connection = new Subscription_1.Subscription();
+ connection.add(this.source
+ .subscribe(new ConnectableSubscriber(this.getSubject(), this)));
+ if (connection.closed) {
+ this._connection = null;
+ connection = Subscription_1.Subscription.EMPTY;
+ }
+ }
+ return connection;
+ };
+ ConnectableObservable.prototype.refCount = function () {
+ return refCount_1.refCount()(this);
+ };
+ return ConnectableObservable;
+}(Observable_1.Observable));
+exports.ConnectableObservable = ConnectableObservable;
+exports.connectableObservableDescriptor = (function () {
+ var connectableProto = ConnectableObservable.prototype;
+ return {
+ operator: { value: null },
+ _refCount: { value: 0, writable: true },
+ _subject: { value: null, writable: true },
+ _connection: { value: null, writable: true },
+ _subscribe: { value: connectableProto._subscribe },
+ _isComplete: { value: connectableProto._isComplete, writable: true },
+ getSubject: { value: connectableProto.getSubject },
+ connect: { value: connectableProto.connect },
+ refCount: { value: connectableProto.refCount }
+ };
+})();
+var ConnectableSubscriber = (function (_super) {
+ __extends(ConnectableSubscriber, _super);
+ function ConnectableSubscriber(destination, connectable) {
+ var _this = _super.call(this, destination) || this;
+ _this.connectable = connectable;
+ return _this;
+ }
+ ConnectableSubscriber.prototype._error = function (err) {
+ this._unsubscribe();
+ _super.prototype._error.call(this, err);
+ };
+ ConnectableSubscriber.prototype._complete = function () {
+ this.connectable._isComplete = true;
+ this._unsubscribe();
+ _super.prototype._complete.call(this);
+ };
+ ConnectableSubscriber.prototype._unsubscribe = function () {
+ var connectable = this.connectable;
+ if (connectable) {
+ this.connectable = null;
+ var connection = connectable._connection;
+ connectable._refCount = 0;
+ connectable._subject = null;
+ connectable._connection = null;
+ if (connection) {
+ connection.unsubscribe();
+ }
+ }
+ };
+ return ConnectableSubscriber;
+}(Subject_1.SubjectSubscriber));
+var RefCountOperator = (function () {
+ function RefCountOperator(connectable) {
+ this.connectable = connectable;
+ }
+ RefCountOperator.prototype.call = function (subscriber, source) {
+ var connectable = this.connectable;
+ connectable._refCount++;
+ var refCounter = new RefCountSubscriber(subscriber, connectable);
+ var subscription = source.subscribe(refCounter);
+ if (!refCounter.closed) {
+ refCounter.connection = connectable.connect();
+ }
+ return subscription;
+ };
+ return RefCountOperator;
+}());
+var RefCountSubscriber = (function (_super) {
+ __extends(RefCountSubscriber, _super);
+ function RefCountSubscriber(destination, connectable) {
+ var _this = _super.call(this, destination) || this;
+ _this.connectable = connectable;
+ return _this;
+ }
+ RefCountSubscriber.prototype._unsubscribe = function () {
+ var connectable = this.connectable;
+ if (!connectable) {
+ this.connection = null;
+ return;
+ }
+ this.connectable = null;
+ var refCount = connectable._refCount;
+ if (refCount <= 0) {
+ this.connection = null;
+ return;
+ }
+ connectable._refCount = refCount - 1;
+ if (refCount > 1) {
+ this.connection = null;
+ return;
+ }
+ var connection = this.connection;
+ var sharedConnection = connectable._connection;
+ this.connection = null;
+ if (sharedConnection && (!connection || sharedConnection === connection)) {
+ sharedConnection.unsubscribe();
+ }
+ };
+ return RefCountSubscriber;
+}(Subscriber_1.Subscriber));
+
+},{"../Observable":20,"../Subject":25,"../Subscriber":27,"../Subscription":28,"../operators/refCount":65}],32:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var AsyncSubject_1 = require("../AsyncSubject");
+var map_1 = require("../operators/map");
+var canReportError_1 = require("../util/canReportError");
+var isArray_1 = require("../util/isArray");
+var isScheduler_1 = require("../util/isScheduler");
+function bindCallback(callbackFunc, resultSelector, scheduler) {
+ if (resultSelector) {
+ if (isScheduler_1.isScheduler(resultSelector)) {
+ scheduler = resultSelector;
+ }
+ else {
+ return function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
+ };
+ }
+ }
+ return function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ var context = this;
+ var subject;
+ var params = {
+ context: context,
+ subject: subject,
+ callbackFunc: callbackFunc,
+ scheduler: scheduler,
+ };
+ return new Observable_1.Observable(function (subscriber) {
+ if (!scheduler) {
+ if (!subject) {
+ subject = new AsyncSubject_1.AsyncSubject();
+ var handler = function () {
+ var innerArgs = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ innerArgs[_i] = arguments[_i];
+ }
+ subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
+ subject.complete();
+ };
+ try {
+ callbackFunc.apply(context, args.concat([handler]));
+ }
+ catch (err) {
+ if (canReportError_1.canReportError(subject)) {
+ subject.error(err);
+ }
+ else {
+ console.warn(err);
+ }
+ }
+ }
+ return subject.subscribe(subscriber);
+ }
+ else {
+ var state = {
+ args: args, subscriber: subscriber, params: params,
+ };
+ return scheduler.schedule(dispatch, 0, state);
+ }
+ });
+ };
+}
+exports.bindCallback = bindCallback;
+function dispatch(state) {
+ var _this = this;
+ var self = this;
+ var args = state.args, subscriber = state.subscriber, params = state.params;
+ var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;
+ var subject = params.subject;
+ if (!subject) {
+ subject = params.subject = new AsyncSubject_1.AsyncSubject();
+ var handler = function () {
+ var innerArgs = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ innerArgs[_i] = arguments[_i];
+ }
+ var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
+ _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
+ };
+ try {
+ callbackFunc.apply(context, args.concat([handler]));
+ }
+ catch (err) {
+ subject.error(err);
+ }
+ }
+ this.add(subject.subscribe(subscriber));
+}
+function dispatchNext(state) {
+ var value = state.value, subject = state.subject;
+ subject.next(value);
+ subject.complete();
+}
+function dispatchError(state) {
+ var err = state.err, subject = state.subject;
+ subject.error(err);
+}
+
+},{"../AsyncSubject":16,"../Observable":20,"../operators/map":61,"../util/canReportError":94,"../util/isArray":97,"../util/isScheduler":106}],33:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var AsyncSubject_1 = require("../AsyncSubject");
+var map_1 = require("../operators/map");
+var canReportError_1 = require("../util/canReportError");
+var isScheduler_1 = require("../util/isScheduler");
+var isArray_1 = require("../util/isArray");
+function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
+ if (resultSelector) {
+ if (isScheduler_1.isScheduler(resultSelector)) {
+ scheduler = resultSelector;
+ }
+ else {
+ return function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
+ };
+ }
+ }
+ return function () {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ var params = {
+ subject: undefined,
+ args: args,
+ callbackFunc: callbackFunc,
+ scheduler: scheduler,
+ context: this,
+ };
+ return new Observable_1.Observable(function (subscriber) {
+ var context = params.context;
+ var subject = params.subject;
+ if (!scheduler) {
+ if (!subject) {
+ subject = params.subject = new AsyncSubject_1.AsyncSubject();
+ var handler = function () {
+ var innerArgs = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ innerArgs[_i] = arguments[_i];
+ }
+ var err = innerArgs.shift();
+ if (err) {
+ subject.error(err);
+ return;
+ }
+ subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
+ subject.complete();
+ };
+ try {
+ callbackFunc.apply(context, args.concat([handler]));
+ }
+ catch (err) {
+ if (canReportError_1.canReportError(subject)) {
+ subject.error(err);
+ }
+ else {
+ console.warn(err);
+ }
+ }
+ }
+ return subject.subscribe(subscriber);
+ }
+ else {
+ return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });
+ }
+ });
+ };
+}
+exports.bindNodeCallback = bindNodeCallback;
+function dispatch(state) {
+ var _this = this;
+ var params = state.params, subscriber = state.subscriber, context = state.context;
+ var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;
+ var subject = params.subject;
+ if (!subject) {
+ subject = params.subject = new AsyncSubject_1.AsyncSubject();
+ var handler = function () {
+ var innerArgs = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ innerArgs[_i] = arguments[_i];
+ }
+ var err = innerArgs.shift();
+ if (err) {
+ _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
+ }
+ else {
+ var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
+ _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
+ }
+ };
+ try {
+ callbackFunc.apply(context, args.concat([handler]));
+ }
+ catch (err) {
+ this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
+ }
+ }
+ this.add(subject.subscribe(subscriber));
+}
+function dispatchNext(arg) {
+ var value = arg.value, subject = arg.subject;
+ subject.next(value);
+ subject.complete();
+}
+function dispatchError(arg) {
+ var err = arg.err, subject = arg.subject;
+ subject.error(err);
+}
+
+},{"../AsyncSubject":16,"../Observable":20,"../operators/map":61,"../util/canReportError":94,"../util/isArray":97,"../util/isScheduler":106}],34:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var isScheduler_1 = require("../util/isScheduler");
+var isArray_1 = require("../util/isArray");
+var OuterSubscriber_1 = require("../OuterSubscriber");
+var subscribeToResult_1 = require("../util/subscribeToResult");
+var fromArray_1 = require("./fromArray");
+var NONE = {};
+function combineLatest() {
+ var observables = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ observables[_i] = arguments[_i];
+ }
+ var resultSelector = undefined;
+ var scheduler = undefined;
+ if (isScheduler_1.isScheduler(observables[observables.length - 1])) {
+ scheduler = observables.pop();
+ }
+ if (typeof observables[observables.length - 1] === 'function') {
+ resultSelector = observables.pop();
+ }
+ if (observables.length === 1 && isArray_1.isArray(observables[0])) {
+ observables = observables[0];
+ }
+ return fromArray_1.fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));
+}
+exports.combineLatest = combineLatest;
+var CombineLatestOperator = (function () {
+ function CombineLatestOperator(resultSelector) {
+ this.resultSelector = resultSelector;
+ }
+ CombineLatestOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));
+ };
+ return CombineLatestOperator;
+}());
+exports.CombineLatestOperator = CombineLatestOperator;
+var CombineLatestSubscriber = (function (_super) {
+ __extends(CombineLatestSubscriber, _super);
+ function CombineLatestSubscriber(destination, resultSelector) {
+ var _this = _super.call(this, destination) || this;
+ _this.resultSelector = resultSelector;
+ _this.active = 0;
+ _this.values = [];
+ _this.observables = [];
+ return _this;
+ }
+ CombineLatestSubscriber.prototype._next = function (observable) {
+ this.values.push(NONE);
+ this.observables.push(observable);
+ };
+ CombineLatestSubscriber.prototype._complete = function () {
+ var observables = this.observables;
+ var len = observables.length;
+ if (len === 0) {
+ this.destination.complete();
+ }
+ else {
+ this.active = len;
+ this.toRespond = len;
+ for (var i = 0; i < len; i++) {
+ var observable = observables[i];
+ this.add(subscribeToResult_1.subscribeToResult(this, observable, undefined, i));
+ }
+ }
+ };
+ CombineLatestSubscriber.prototype.notifyComplete = function (unused) {
+ if ((this.active -= 1) === 0) {
+ this.destination.complete();
+ }
+ };
+ CombineLatestSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {
+ var values = this.values;
+ var oldVal = values[outerIndex];
+ var toRespond = !this.toRespond
+ ? 0
+ : oldVal === NONE ? --this.toRespond : this.toRespond;
+ values[outerIndex] = innerValue;
+ if (toRespond === 0) {
+ if (this.resultSelector) {
+ this._tryResultSelector(values);
+ }
+ else {
+ this.destination.next(values.slice());
+ }
+ }
+ };
+ CombineLatestSubscriber.prototype._tryResultSelector = function (values) {
+ var result;
+ try {
+ result = this.resultSelector.apply(this, values);
+ }
+ catch (err) {
+ this.destination.error(err);
+ return;
+ }
+ this.destination.next(result);
+ };
+ return CombineLatestSubscriber;
+}(OuterSubscriber_1.OuterSubscriber));
+exports.CombineLatestSubscriber = CombineLatestSubscriber;
+
+},{"../OuterSubscriber":22,"../util/isArray":97,"../util/isScheduler":106,"../util/subscribeToResult":115,"./fromArray":40}],35:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var of_1 = require("./of");
+var concatAll_1 = require("../operators/concatAll");
+function concat() {
+ var observables = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ observables[_i] = arguments[_i];
+ }
+ return concatAll_1.concatAll()(of_1.of.apply(void 0, observables));
+}
+exports.concat = concat;
+
+},{"../operators/concatAll":58,"./of":48}],36:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var from_1 = require("./from");
+var empty_1 = require("./empty");
+function defer(observableFactory) {
+ return new Observable_1.Observable(function (subscriber) {
+ var input;
+ try {
+ input = observableFactory();
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ var source = input ? from_1.from(input) : empty_1.empty();
+ return source.subscribe(subscriber);
+ });
+}
+exports.defer = defer;
+
+},{"../Observable":20,"./empty":37,"./from":39}],37:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+exports.EMPTY = new Observable_1.Observable(function (subscriber) { return subscriber.complete(); });
+function empty(scheduler) {
+ return scheduler ? emptyScheduled(scheduler) : exports.EMPTY;
+}
+exports.empty = empty;
+function emptyScheduled(scheduler) {
+ return new Observable_1.Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });
+}
+
+},{"../Observable":20}],38:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var isArray_1 = require("../util/isArray");
+var map_1 = require("../operators/map");
+var isObject_1 = require("../util/isObject");
+var from_1 = require("./from");
+function forkJoin() {
+ var sources = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ sources[_i] = arguments[_i];
+ }
+ if (sources.length === 1) {
+ var first_1 = sources[0];
+ if (isArray_1.isArray(first_1)) {
+ return forkJoinInternal(first_1, null);
+ }
+ if (isObject_1.isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {
+ var keys = Object.keys(first_1);
+ return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);
+ }
+ }
+ if (typeof sources[sources.length - 1] === 'function') {
+ var resultSelector_1 = sources.pop();
+ sources = (sources.length === 1 && isArray_1.isArray(sources[0])) ? sources[0] : sources;
+ return forkJoinInternal(sources, null).pipe(map_1.map(function (args) { return resultSelector_1.apply(void 0, args); }));
+ }
+ return forkJoinInternal(sources, null);
+}
+exports.forkJoin = forkJoin;
+function forkJoinInternal(sources, keys) {
+ return new Observable_1.Observable(function (subscriber) {
+ var len = sources.length;
+ if (len === 0) {
+ subscriber.complete();
+ return;
+ }
+ var values = new Array(len);
+ var completed = 0;
+ var emitted = 0;
+ var _loop_1 = function (i) {
+ var source = from_1.from(sources[i]);
+ var hasValue = false;
+ subscriber.add(source.subscribe({
+ next: function (value) {
+ if (!hasValue) {
+ hasValue = true;
+ emitted++;
+ }
+ values[i] = value;
+ },
+ error: function (err) { return subscriber.error(err); },
+ complete: function () {
+ completed++;
+ if (completed === len || !hasValue) {
+ if (emitted === len) {
+ subscriber.next(keys ?
+ keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :
+ values);
+ }
+ subscriber.complete();
+ }
+ }
+ }));
+ };
+ for (var i = 0; i < len; i++) {
+ _loop_1(i);
+ }
+ });
+}
+
+},{"../Observable":20,"../operators/map":61,"../util/isArray":97,"../util/isObject":103,"./from":39}],39:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var subscribeTo_1 = require("../util/subscribeTo");
+var scheduled_1 = require("../scheduled/scheduled");
+function from(input, scheduler) {
+ if (!scheduler) {
+ if (input instanceof Observable_1.Observable) {
+ return input;
+ }
+ return new Observable_1.Observable(subscribeTo_1.subscribeTo(input));
+ }
+ else {
+ return scheduled_1.scheduled(input, scheduler);
+ }
+}
+exports.from = from;
+
+},{"../Observable":20,"../scheduled/scheduled":70,"../util/subscribeTo":110}],40:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var subscribeToArray_1 = require("../util/subscribeToArray");
+var scheduleArray_1 = require("../scheduled/scheduleArray");
+function fromArray(input, scheduler) {
+ if (!scheduler) {
+ return new Observable_1.Observable(subscribeToArray_1.subscribeToArray(input));
+ }
+ else {
+ return scheduleArray_1.scheduleArray(input, scheduler);
+ }
+}
+exports.fromArray = fromArray;
+
+},{"../Observable":20,"../scheduled/scheduleArray":66,"../util/subscribeToArray":111}],41:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var isArray_1 = require("../util/isArray");
+var isFunction_1 = require("../util/isFunction");
+var map_1 = require("../operators/map");
+var toString = (function () { return Object.prototype.toString; })();
+function fromEvent(target, eventName, options, resultSelector) {
+ if (isFunction_1.isFunction(options)) {
+ resultSelector = options;
+ options = undefined;
+ }
+ if (resultSelector) {
+ return fromEvent(target, eventName, options).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
+ }
+ return new Observable_1.Observable(function (subscriber) {
+ function handler(e) {
+ if (arguments.length > 1) {
+ subscriber.next(Array.prototype.slice.call(arguments));
+ }
+ else {
+ subscriber.next(e);
+ }
+ }
+ setupSubscription(target, eventName, handler, subscriber, options);
+ });
+}
+exports.fromEvent = fromEvent;
+function setupSubscription(sourceObj, eventName, handler, subscriber, options) {
+ var unsubscribe;
+ if (isEventTarget(sourceObj)) {
+ var source_1 = sourceObj;
+ sourceObj.addEventListener(eventName, handler, options);
+ unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };
+ }
+ else if (isJQueryStyleEventEmitter(sourceObj)) {
+ var source_2 = sourceObj;
+ sourceObj.on(eventName, handler);
+ unsubscribe = function () { return source_2.off(eventName, handler); };
+ }
+ else if (isNodeStyleEventEmitter(sourceObj)) {
+ var source_3 = sourceObj;
+ sourceObj.addListener(eventName, handler);
+ unsubscribe = function () { return source_3.removeListener(eventName, handler); };
+ }
+ else if (sourceObj && sourceObj.length) {
+ for (var i = 0, len = sourceObj.length; i < len; i++) {
+ setupSubscription(sourceObj[i], eventName, handler, subscriber, options);
+ }
+ }
+ else {
+ throw new TypeError('Invalid event target');
+ }
+ subscriber.add(unsubscribe);
+}
+function isNodeStyleEventEmitter(sourceObj) {
+ return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';
+}
+function isJQueryStyleEventEmitter(sourceObj) {
+ return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';
+}
+function isEventTarget(sourceObj) {
+ return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';
+}
+
+},{"../Observable":20,"../operators/map":61,"../util/isArray":97,"../util/isFunction":99}],42:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var isArray_1 = require("../util/isArray");
+var isFunction_1 = require("../util/isFunction");
+var map_1 = require("../operators/map");
+function fromEventPattern(addHandler, removeHandler, resultSelector) {
+ if (resultSelector) {
+ return fromEventPattern(addHandler, removeHandler).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
+ }
+ return new Observable_1.Observable(function (subscriber) {
+ var handler = function () {
+ var e = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ e[_i] = arguments[_i];
+ }
+ return subscriber.next(e.length === 1 ? e[0] : e);
+ };
+ var retValue;
+ try {
+ retValue = addHandler(handler);
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ if (!isFunction_1.isFunction(removeHandler)) {
+ return undefined;
+ }
+ return function () { return removeHandler(handler, retValue); };
+ });
+}
+exports.fromEventPattern = fromEventPattern;
+
+},{"../Observable":20,"../operators/map":61,"../util/isArray":97,"../util/isFunction":99}],43:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var identity_1 = require("../util/identity");
+var isScheduler_1 = require("../util/isScheduler");
+function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {
+ var resultSelector;
+ var initialState;
+ if (arguments.length == 1) {
+ var options = initialStateOrOptions;
+ initialState = options.initialState;
+ condition = options.condition;
+ iterate = options.iterate;
+ resultSelector = options.resultSelector || identity_1.identity;
+ scheduler = options.scheduler;
+ }
+ else if (resultSelectorOrObservable === undefined || isScheduler_1.isScheduler(resultSelectorOrObservable)) {
+ initialState = initialStateOrOptions;
+ resultSelector = identity_1.identity;
+ scheduler = resultSelectorOrObservable;
+ }
+ else {
+ initialState = initialStateOrOptions;
+ resultSelector = resultSelectorOrObservable;
+ }
+ return new Observable_1.Observable(function (subscriber) {
+ var state = initialState;
+ if (scheduler) {
+ return scheduler.schedule(dispatch, 0, {
+ subscriber: subscriber,
+ iterate: iterate,
+ condition: condition,
+ resultSelector: resultSelector,
+ state: state
+ });
+ }
+ do {
+ if (condition) {
+ var conditionResult = void 0;
+ try {
+ conditionResult = condition(state);
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ if (!conditionResult) {
+ subscriber.complete();
+ break;
+ }
+ }
+ var value = void 0;
+ try {
+ value = resultSelector(state);
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ subscriber.next(value);
+ if (subscriber.closed) {
+ break;
+ }
+ try {
+ state = iterate(state);
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ } while (true);
+ return undefined;
+ });
+}
+exports.generate = generate;
+function dispatch(state) {
+ var subscriber = state.subscriber, condition = state.condition;
+ if (subscriber.closed) {
+ return undefined;
+ }
+ if (state.needIterate) {
+ try {
+ state.state = state.iterate(state.state);
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ }
+ else {
+ state.needIterate = true;
+ }
+ if (condition) {
+ var conditionResult = void 0;
+ try {
+ conditionResult = condition(state.state);
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ if (!conditionResult) {
+ subscriber.complete();
+ return undefined;
+ }
+ if (subscriber.closed) {
+ return undefined;
+ }
+ }
+ var value;
+ try {
+ value = state.resultSelector(state.state);
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ if (subscriber.closed) {
+ return undefined;
+ }
+ subscriber.next(value);
+ if (subscriber.closed) {
+ return undefined;
+ }
+ return this.schedule(state);
+}
+
+},{"../Observable":20,"../util/identity":96,"../util/isScheduler":106}],44:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var defer_1 = require("./defer");
+var empty_1 = require("./empty");
+function iif(condition, trueResult, falseResult) {
+ if (trueResult === void 0) { trueResult = empty_1.EMPTY; }
+ if (falseResult === void 0) { falseResult = empty_1.EMPTY; }
+ return defer_1.defer(function () { return condition() ? trueResult : falseResult; });
+}
+exports.iif = iif;
+
+},{"./defer":36,"./empty":37}],45:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var async_1 = require("../scheduler/async");
+var isNumeric_1 = require("../util/isNumeric");
+function interval(period, scheduler) {
+ if (period === void 0) { period = 0; }
+ if (scheduler === void 0) { scheduler = async_1.async; }
+ if (!isNumeric_1.isNumeric(period) || period < 0) {
+ period = 0;
+ }
+ if (!scheduler || typeof scheduler.schedule !== 'function') {
+ scheduler = async_1.async;
+ }
+ return new Observable_1.Observable(function (subscriber) {
+ subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));
+ return subscriber;
+ });
+}
+exports.interval = interval;
+function dispatch(state) {
+ var subscriber = state.subscriber, counter = state.counter, period = state.period;
+ subscriber.next(counter);
+ this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);
+}
+
+},{"../Observable":20,"../scheduler/async":83,"../util/isNumeric":102}],46:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var isScheduler_1 = require("../util/isScheduler");
+var mergeAll_1 = require("../operators/mergeAll");
+var fromArray_1 = require("./fromArray");
+function merge() {
+ var observables = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ observables[_i] = arguments[_i];
+ }
+ var concurrent = Number.POSITIVE_INFINITY;
+ var scheduler = null;
+ var last = observables[observables.length - 1];
+ if (isScheduler_1.isScheduler(last)) {
+ scheduler = observables.pop();
+ if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {
+ concurrent = observables.pop();
+ }
+ }
+ else if (typeof last === 'number') {
+ concurrent = observables.pop();
+ }
+ if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable_1.Observable) {
+ return observables[0];
+ }
+ return mergeAll_1.mergeAll(concurrent)(fromArray_1.fromArray(observables, scheduler));
+}
+exports.merge = merge;
+
+},{"../Observable":20,"../operators/mergeAll":62,"../util/isScheduler":106,"./fromArray":40}],47:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var noop_1 = require("../util/noop");
+exports.NEVER = new Observable_1.Observable(noop_1.noop);
+function never() {
+ return exports.NEVER;
+}
+exports.never = never;
+
+},{"../Observable":20,"../util/noop":107}],48:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var isScheduler_1 = require("../util/isScheduler");
+var fromArray_1 = require("./fromArray");
+var scheduleArray_1 = require("../scheduled/scheduleArray");
+function of() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ var scheduler = args[args.length - 1];
+ if (isScheduler_1.isScheduler(scheduler)) {
+ args.pop();
+ return scheduleArray_1.scheduleArray(args, scheduler);
+ }
+ else {
+ return fromArray_1.fromArray(args);
+ }
+}
+exports.of = of;
+
+},{"../scheduled/scheduleArray":66,"../util/isScheduler":106,"./fromArray":40}],49:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var from_1 = require("./from");
+var isArray_1 = require("../util/isArray");
+var empty_1 = require("./empty");
+function onErrorResumeNext() {
+ var sources = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ sources[_i] = arguments[_i];
+ }
+ if (sources.length === 0) {
+ return empty_1.EMPTY;
+ }
+ var first = sources[0], remainder = sources.slice(1);
+ if (sources.length === 1 && isArray_1.isArray(first)) {
+ return onErrorResumeNext.apply(void 0, first);
+ }
+ return new Observable_1.Observable(function (subscriber) {
+ var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };
+ return from_1.from(first).subscribe({
+ next: function (value) { subscriber.next(value); },
+ error: subNext,
+ complete: subNext,
+ });
+ });
+}
+exports.onErrorResumeNext = onErrorResumeNext;
+
+},{"../Observable":20,"../util/isArray":97,"./empty":37,"./from":39}],50:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var Subscription_1 = require("../Subscription");
+function pairs(obj, scheduler) {
+ if (!scheduler) {
+ return new Observable_1.Observable(function (subscriber) {
+ var keys = Object.keys(obj);
+ for (var i = 0; i < keys.length && !subscriber.closed; i++) {
+ var key = keys[i];
+ if (obj.hasOwnProperty(key)) {
+ subscriber.next([key, obj[key]]);
+ }
+ }
+ subscriber.complete();
+ });
+ }
+ else {
+ return new Observable_1.Observable(function (subscriber) {
+ var keys = Object.keys(obj);
+ var subscription = new Subscription_1.Subscription();
+ subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));
+ return subscription;
+ });
+ }
+}
+exports.pairs = pairs;
+function dispatch(state) {
+ var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;
+ if (!subscriber.closed) {
+ if (index < keys.length) {
+ var key = keys[index];
+ subscriber.next([key, obj[key]]);
+ subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));
+ }
+ else {
+ subscriber.complete();
+ }
+ }
+}
+exports.dispatch = dispatch;
+
+},{"../Observable":20,"../Subscription":28}],51:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var not_1 = require("../util/not");
+var subscribeTo_1 = require("../util/subscribeTo");
+var filter_1 = require("../operators/filter");
+var Observable_1 = require("../Observable");
+function partition(source, predicate, thisArg) {
+ return [
+ filter_1.filter(predicate, thisArg)(new Observable_1.Observable(subscribeTo_1.subscribeTo(source))),
+ filter_1.filter(not_1.not(predicate, thisArg))(new Observable_1.Observable(subscribeTo_1.subscribeTo(source)))
+ ];
+}
+exports.partition = partition;
+
+},{"../Observable":20,"../operators/filter":59,"../util/not":108,"../util/subscribeTo":110}],52:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var isArray_1 = require("../util/isArray");
+var fromArray_1 = require("./fromArray");
+var OuterSubscriber_1 = require("../OuterSubscriber");
+var subscribeToResult_1 = require("../util/subscribeToResult");
+function race() {
+ var observables = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ observables[_i] = arguments[_i];
+ }
+ if (observables.length === 1) {
+ if (isArray_1.isArray(observables[0])) {
+ observables = observables[0];
+ }
+ else {
+ return observables[0];
+ }
+ }
+ return fromArray_1.fromArray(observables, undefined).lift(new RaceOperator());
+}
+exports.race = race;
+var RaceOperator = (function () {
+ function RaceOperator() {
+ }
+ RaceOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new RaceSubscriber(subscriber));
+ };
+ return RaceOperator;
+}());
+exports.RaceOperator = RaceOperator;
+var RaceSubscriber = (function (_super) {
+ __extends(RaceSubscriber, _super);
+ function RaceSubscriber(destination) {
+ var _this = _super.call(this, destination) || this;
+ _this.hasFirst = false;
+ _this.observables = [];
+ _this.subscriptions = [];
+ return _this;
+ }
+ RaceSubscriber.prototype._next = function (observable) {
+ this.observables.push(observable);
+ };
+ RaceSubscriber.prototype._complete = function () {
+ var observables = this.observables;
+ var len = observables.length;
+ if (len === 0) {
+ this.destination.complete();
+ }
+ else {
+ for (var i = 0; i < len && !this.hasFirst; i++) {
+ var observable = observables[i];
+ var subscription = subscribeToResult_1.subscribeToResult(this, observable, undefined, i);
+ if (this.subscriptions) {
+ this.subscriptions.push(subscription);
+ }
+ this.add(subscription);
+ }
+ this.observables = null;
+ }
+ };
+ RaceSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {
+ if (!this.hasFirst) {
+ this.hasFirst = true;
+ for (var i = 0; i < this.subscriptions.length; i++) {
+ if (i !== outerIndex) {
+ var subscription = this.subscriptions[i];
+ subscription.unsubscribe();
+ this.remove(subscription);
+ }
+ }
+ this.subscriptions = null;
+ }
+ this.destination.next(innerValue);
+ };
+ return RaceSubscriber;
+}(OuterSubscriber_1.OuterSubscriber));
+exports.RaceSubscriber = RaceSubscriber;
+
+},{"../OuterSubscriber":22,"../util/isArray":97,"../util/subscribeToResult":115,"./fromArray":40}],53:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+function range(start, count, scheduler) {
+ if (start === void 0) { start = 0; }
+ return new Observable_1.Observable(function (subscriber) {
+ if (count === undefined) {
+ count = start;
+ start = 0;
+ }
+ var index = 0;
+ var current = start;
+ if (scheduler) {
+ return scheduler.schedule(dispatch, 0, {
+ index: index, count: count, start: start, subscriber: subscriber
+ });
+ }
+ else {
+ do {
+ if (index++ >= count) {
+ subscriber.complete();
+ break;
+ }
+ subscriber.next(current++);
+ if (subscriber.closed) {
+ break;
+ }
+ } while (true);
+ }
+ return undefined;
+ });
+}
+exports.range = range;
+function dispatch(state) {
+ var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;
+ if (index >= count) {
+ subscriber.complete();
+ return;
+ }
+ subscriber.next(start);
+ if (subscriber.closed) {
+ return;
+ }
+ state.index = index + 1;
+ state.start = start + 1;
+ this.schedule(state);
+}
+exports.dispatch = dispatch;
+
+},{"../Observable":20}],54:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+function throwError(error, scheduler) {
+ if (!scheduler) {
+ return new Observable_1.Observable(function (subscriber) { return subscriber.error(error); });
+ }
+ else {
+ return new Observable_1.Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });
+ }
+}
+exports.throwError = throwError;
+function dispatch(_a) {
+ var error = _a.error, subscriber = _a.subscriber;
+ subscriber.error(error);
+}
+
+},{"../Observable":20}],55:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var async_1 = require("../scheduler/async");
+var isNumeric_1 = require("../util/isNumeric");
+var isScheduler_1 = require("../util/isScheduler");
+function timer(dueTime, periodOrScheduler, scheduler) {
+ if (dueTime === void 0) { dueTime = 0; }
+ var period = -1;
+ if (isNumeric_1.isNumeric(periodOrScheduler)) {
+ period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);
+ }
+ else if (isScheduler_1.isScheduler(periodOrScheduler)) {
+ scheduler = periodOrScheduler;
+ }
+ if (!isScheduler_1.isScheduler(scheduler)) {
+ scheduler = async_1.async;
+ }
+ return new Observable_1.Observable(function (subscriber) {
+ var due = isNumeric_1.isNumeric(dueTime)
+ ? dueTime
+ : (+dueTime - scheduler.now());
+ return scheduler.schedule(dispatch, due, {
+ index: 0, period: period, subscriber: subscriber
+ });
+ });
+}
+exports.timer = timer;
+function dispatch(state) {
+ var index = state.index, period = state.period, subscriber = state.subscriber;
+ subscriber.next(index);
+ if (subscriber.closed) {
+ return;
+ }
+ else if (period === -1) {
+ return subscriber.complete();
+ }
+ state.index = index + 1;
+ this.schedule(state, period);
+}
+
+},{"../Observable":20,"../scheduler/async":83,"../util/isNumeric":102,"../util/isScheduler":106}],56:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var from_1 = require("./from");
+var empty_1 = require("./empty");
+function using(resourceFactory, observableFactory) {
+ return new Observable_1.Observable(function (subscriber) {
+ var resource;
+ try {
+ resource = resourceFactory();
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ var result;
+ try {
+ result = observableFactory(resource);
+ }
+ catch (err) {
+ subscriber.error(err);
+ return undefined;
+ }
+ var source = result ? from_1.from(result) : empty_1.EMPTY;
+ var subscription = source.subscribe(subscriber);
+ return function () {
+ subscription.unsubscribe();
+ if (resource) {
+ resource.unsubscribe();
+ }
+ };
+ });
+}
+exports.using = using;
+
+},{"../Observable":20,"./empty":37,"./from":39}],57:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var fromArray_1 = require("./fromArray");
+var isArray_1 = require("../util/isArray");
+var Subscriber_1 = require("../Subscriber");
+var iterator_1 = require("../../internal/symbol/iterator");
+var innerSubscribe_1 = require("../innerSubscribe");
+function zip() {
+ var observables = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ observables[_i] = arguments[_i];
+ }
+ var resultSelector = observables[observables.length - 1];
+ if (typeof resultSelector === 'function') {
+ observables.pop();
+ }
+ return fromArray_1.fromArray(observables, undefined).lift(new ZipOperator(resultSelector));
+}
+exports.zip = zip;
+var ZipOperator = (function () {
+ function ZipOperator(resultSelector) {
+ this.resultSelector = resultSelector;
+ }
+ ZipOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));
+ };
+ return ZipOperator;
+}());
+exports.ZipOperator = ZipOperator;
+var ZipSubscriber = (function (_super) {
+ __extends(ZipSubscriber, _super);
+ function ZipSubscriber(destination, resultSelector, values) {
+ if (values === void 0) { values = Object.create(null); }
+ var _this = _super.call(this, destination) || this;
+ _this.resultSelector = resultSelector;
+ _this.iterators = [];
+ _this.active = 0;
+ _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined;
+ return _this;
+ }
+ ZipSubscriber.prototype._next = function (value) {
+ var iterators = this.iterators;
+ if (isArray_1.isArray(value)) {
+ iterators.push(new StaticArrayIterator(value));
+ }
+ else if (typeof value[iterator_1.iterator] === 'function') {
+ iterators.push(new StaticIterator(value[iterator_1.iterator]()));
+ }
+ else {
+ iterators.push(new ZipBufferIterator(this.destination, this, value));
+ }
+ };
+ ZipSubscriber.prototype._complete = function () {
+ var iterators = this.iterators;
+ var len = iterators.length;
+ this.unsubscribe();
+ if (len === 0) {
+ this.destination.complete();
+ return;
+ }
+ this.active = len;
+ for (var i = 0; i < len; i++) {
+ var iterator = iterators[i];
+ if (iterator.stillUnsubscribed) {
+ var destination = this.destination;
+ destination.add(iterator.subscribe());
+ }
+ else {
+ this.active--;
+ }
+ }
+ };
+ ZipSubscriber.prototype.notifyInactive = function () {
+ this.active--;
+ if (this.active === 0) {
+ this.destination.complete();
+ }
+ };
+ ZipSubscriber.prototype.checkIterators = function () {
+ var iterators = this.iterators;
+ var len = iterators.length;
+ var destination = this.destination;
+ for (var i = 0; i < len; i++) {
+ var iterator = iterators[i];
+ if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {
+ return;
+ }
+ }
+ var shouldComplete = false;
+ var args = [];
+ for (var i = 0; i < len; i++) {
+ var iterator = iterators[i];
+ var result = iterator.next();
+ if (iterator.hasCompleted()) {
+ shouldComplete = true;
+ }
+ if (result.done) {
+ destination.complete();
+ return;
+ }
+ args.push(result.value);
+ }
+ if (this.resultSelector) {
+ this._tryresultSelector(args);
+ }
+ else {
+ destination.next(args);
+ }
+ if (shouldComplete) {
+ destination.complete();
+ }
+ };
+ ZipSubscriber.prototype._tryresultSelector = function (args) {
+ var result;
+ try {
+ result = this.resultSelector.apply(this, args);
+ }
+ catch (err) {
+ this.destination.error(err);
+ return;
+ }
+ this.destination.next(result);
+ };
+ return ZipSubscriber;
+}(Subscriber_1.Subscriber));
+exports.ZipSubscriber = ZipSubscriber;
+var StaticIterator = (function () {
+ function StaticIterator(iterator) {
+ this.iterator = iterator;
+ this.nextResult = iterator.next();
+ }
+ StaticIterator.prototype.hasValue = function () {
+ return true;
+ };
+ StaticIterator.prototype.next = function () {
+ var result = this.nextResult;
+ this.nextResult = this.iterator.next();
+ return result;
+ };
+ StaticIterator.prototype.hasCompleted = function () {
+ var nextResult = this.nextResult;
+ return Boolean(nextResult && nextResult.done);
+ };
+ return StaticIterator;
+}());
+var StaticArrayIterator = (function () {
+ function StaticArrayIterator(array) {
+ this.array = array;
+ this.index = 0;
+ this.length = 0;
+ this.length = array.length;
+ }
+ StaticArrayIterator.prototype[iterator_1.iterator] = function () {
+ return this;
+ };
+ StaticArrayIterator.prototype.next = function (value) {
+ var i = this.index++;
+ var array = this.array;
+ return i < this.length ? { value: array[i], done: false } : { value: null, done: true };
+ };
+ StaticArrayIterator.prototype.hasValue = function () {
+ return this.array.length > this.index;
+ };
+ StaticArrayIterator.prototype.hasCompleted = function () {
+ return this.array.length === this.index;
+ };
+ return StaticArrayIterator;
+}());
+var ZipBufferIterator = (function (_super) {
+ __extends(ZipBufferIterator, _super);
+ function ZipBufferIterator(destination, parent, observable) {
+ var _this = _super.call(this, destination) || this;
+ _this.parent = parent;
+ _this.observable = observable;
+ _this.stillUnsubscribed = true;
+ _this.buffer = [];
+ _this.isComplete = false;
+ return _this;
+ }
+ ZipBufferIterator.prototype[iterator_1.iterator] = function () {
+ return this;
+ };
+ ZipBufferIterator.prototype.next = function () {
+ var buffer = this.buffer;
+ if (buffer.length === 0 && this.isComplete) {
+ return { value: null, done: true };
+ }
+ else {
+ return { value: buffer.shift(), done: false };
+ }
+ };
+ ZipBufferIterator.prototype.hasValue = function () {
+ return this.buffer.length > 0;
+ };
+ ZipBufferIterator.prototype.hasCompleted = function () {
+ return this.buffer.length === 0 && this.isComplete;
+ };
+ ZipBufferIterator.prototype.notifyComplete = function () {
+ if (this.buffer.length > 0) {
+ this.isComplete = true;
+ this.parent.notifyInactive();
+ }
+ else {
+ this.destination.complete();
+ }
+ };
+ ZipBufferIterator.prototype.notifyNext = function (innerValue) {
+ this.buffer.push(innerValue);
+ this.parent.checkIterators();
+ };
+ ZipBufferIterator.prototype.subscribe = function () {
+ return innerSubscribe_1.innerSubscribe(this.observable, new innerSubscribe_1.SimpleInnerSubscriber(this));
+ };
+ return ZipBufferIterator;
+}(innerSubscribe_1.SimpleOuterSubscriber));
+
+},{"../../internal/symbol/iterator":85,"../Subscriber":27,"../innerSubscribe":30,"../util/isArray":97,"./fromArray":40}],58:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var mergeAll_1 = require("./mergeAll");
+function concatAll() {
+ return mergeAll_1.mergeAll(1);
+}
+exports.concatAll = concatAll;
+
+},{"./mergeAll":62}],59:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("../Subscriber");
+function filter(predicate, thisArg) {
+ return function filterOperatorFunction(source) {
+ return source.lift(new FilterOperator(predicate, thisArg));
+ };
+}
+exports.filter = filter;
+var FilterOperator = (function () {
+ function FilterOperator(predicate, thisArg) {
+ this.predicate = predicate;
+ this.thisArg = thisArg;
+ }
+ FilterOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));
+ };
+ return FilterOperator;
+}());
+var FilterSubscriber = (function (_super) {
+ __extends(FilterSubscriber, _super);
+ function FilterSubscriber(destination, predicate, thisArg) {
+ var _this = _super.call(this, destination) || this;
+ _this.predicate = predicate;
+ _this.thisArg = thisArg;
+ _this.count = 0;
+ return _this;
+ }
+ FilterSubscriber.prototype._next = function (value) {
+ var result;
+ try {
+ result = this.predicate.call(this.thisArg, value, this.count++);
+ }
+ catch (err) {
+ this.destination.error(err);
+ return;
+ }
+ if (result) {
+ this.destination.next(value);
+ }
+ };
+ return FilterSubscriber;
+}(Subscriber_1.Subscriber));
+
+},{"../Subscriber":27}],60:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("../Subscriber");
+var Subscription_1 = require("../Subscription");
+var Observable_1 = require("../Observable");
+var Subject_1 = require("../Subject");
+function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {
+ return function (source) {
+ return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));
+ };
+}
+exports.groupBy = groupBy;
+var GroupByOperator = (function () {
+ function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {
+ this.keySelector = keySelector;
+ this.elementSelector = elementSelector;
+ this.durationSelector = durationSelector;
+ this.subjectSelector = subjectSelector;
+ }
+ GroupByOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));
+ };
+ return GroupByOperator;
+}());
+var GroupBySubscriber = (function (_super) {
+ __extends(GroupBySubscriber, _super);
+ function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {
+ var _this = _super.call(this, destination) || this;
+ _this.keySelector = keySelector;
+ _this.elementSelector = elementSelector;
+ _this.durationSelector = durationSelector;
+ _this.subjectSelector = subjectSelector;
+ _this.groups = null;
+ _this.attemptedToUnsubscribe = false;
+ _this.count = 0;
+ return _this;
+ }
+ GroupBySubscriber.prototype._next = function (value) {
+ var key;
+ try {
+ key = this.keySelector(value);
+ }
+ catch (err) {
+ this.error(err);
+ return;
+ }
+ this._group(value, key);
+ };
+ GroupBySubscriber.prototype._group = function (value, key) {
+ var groups = this.groups;
+ if (!groups) {
+ groups = this.groups = new Map();
+ }
+ var group = groups.get(key);
+ var element;
+ if (this.elementSelector) {
+ try {
+ element = this.elementSelector(value);
+ }
+ catch (err) {
+ this.error(err);
+ }
+ }
+ else {
+ element = value;
+ }
+ if (!group) {
+ group = (this.subjectSelector ? this.subjectSelector() : new Subject_1.Subject());
+ groups.set(key, group);
+ var groupedObservable = new GroupedObservable(key, group, this);
+ this.destination.next(groupedObservable);
+ if (this.durationSelector) {
+ var duration = void 0;
+ try {
+ duration = this.durationSelector(new GroupedObservable(key, group));
+ }
+ catch (err) {
+ this.error(err);
+ return;
+ }
+ this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));
+ }
+ }
+ if (!group.closed) {
+ group.next(element);
+ }
+ };
+ GroupBySubscriber.prototype._error = function (err) {
+ var groups = this.groups;
+ if (groups) {
+ groups.forEach(function (group, key) {
+ group.error(err);
+ });
+ groups.clear();
+ }
+ this.destination.error(err);
+ };
+ GroupBySubscriber.prototype._complete = function () {
+ var groups = this.groups;
+ if (groups) {
+ groups.forEach(function (group, key) {
+ group.complete();
+ });
+ groups.clear();
+ }
+ this.destination.complete();
+ };
+ GroupBySubscriber.prototype.removeGroup = function (key) {
+ this.groups.delete(key);
+ };
+ GroupBySubscriber.prototype.unsubscribe = function () {
+ if (!this.closed) {
+ this.attemptedToUnsubscribe = true;
+ if (this.count === 0) {
+ _super.prototype.unsubscribe.call(this);
+ }
+ }
+ };
+ return GroupBySubscriber;
+}(Subscriber_1.Subscriber));
+var GroupDurationSubscriber = (function (_super) {
+ __extends(GroupDurationSubscriber, _super);
+ function GroupDurationSubscriber(key, group, parent) {
+ var _this = _super.call(this, group) || this;
+ _this.key = key;
+ _this.group = group;
+ _this.parent = parent;
+ return _this;
+ }
+ GroupDurationSubscriber.prototype._next = function (value) {
+ this.complete();
+ };
+ GroupDurationSubscriber.prototype._unsubscribe = function () {
+ var _a = this, parent = _a.parent, key = _a.key;
+ this.key = this.parent = null;
+ if (parent) {
+ parent.removeGroup(key);
+ }
+ };
+ return GroupDurationSubscriber;
+}(Subscriber_1.Subscriber));
+var GroupedObservable = (function (_super) {
+ __extends(GroupedObservable, _super);
+ function GroupedObservable(key, groupSubject, refCountSubscription) {
+ var _this = _super.call(this) || this;
+ _this.key = key;
+ _this.groupSubject = groupSubject;
+ _this.refCountSubscription = refCountSubscription;
+ return _this;
+ }
+ GroupedObservable.prototype._subscribe = function (subscriber) {
+ var subscription = new Subscription_1.Subscription();
+ var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;
+ if (refCountSubscription && !refCountSubscription.closed) {
+ subscription.add(new InnerRefCountSubscription(refCountSubscription));
+ }
+ subscription.add(groupSubject.subscribe(subscriber));
+ return subscription;
+ };
+ return GroupedObservable;
+}(Observable_1.Observable));
+exports.GroupedObservable = GroupedObservable;
+var InnerRefCountSubscription = (function (_super) {
+ __extends(InnerRefCountSubscription, _super);
+ function InnerRefCountSubscription(parent) {
+ var _this = _super.call(this) || this;
+ _this.parent = parent;
+ parent.count++;
+ return _this;
+ }
+ InnerRefCountSubscription.prototype.unsubscribe = function () {
+ var parent = this.parent;
+ if (!parent.closed && !this.closed) {
+ _super.prototype.unsubscribe.call(this);
+ parent.count -= 1;
+ if (parent.count === 0 && parent.attemptedToUnsubscribe) {
+ parent.unsubscribe();
+ }
+ }
+ };
+ return InnerRefCountSubscription;
+}(Subscription_1.Subscription));
+
+},{"../Observable":20,"../Subject":25,"../Subscriber":27,"../Subscription":28}],61:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("../Subscriber");
+function map(project, thisArg) {
+ return function mapOperation(source) {
+ if (typeof project !== 'function') {
+ throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');
+ }
+ return source.lift(new MapOperator(project, thisArg));
+ };
+}
+exports.map = map;
+var MapOperator = (function () {
+ function MapOperator(project, thisArg) {
+ this.project = project;
+ this.thisArg = thisArg;
+ }
+ MapOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));
+ };
+ return MapOperator;
+}());
+exports.MapOperator = MapOperator;
+var MapSubscriber = (function (_super) {
+ __extends(MapSubscriber, _super);
+ function MapSubscriber(destination, project, thisArg) {
+ var _this = _super.call(this, destination) || this;
+ _this.project = project;
+ _this.count = 0;
+ _this.thisArg = thisArg || _this;
+ return _this;
+ }
+ MapSubscriber.prototype._next = function (value) {
+ var result;
+ try {
+ result = this.project.call(this.thisArg, value, this.count++);
+ }
+ catch (err) {
+ this.destination.error(err);
+ return;
+ }
+ this.destination.next(result);
+ };
+ return MapSubscriber;
+}(Subscriber_1.Subscriber));
+
+},{"../Subscriber":27}],62:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var mergeMap_1 = require("./mergeMap");
+var identity_1 = require("../util/identity");
+function mergeAll(concurrent) {
+ if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
+ return mergeMap_1.mergeMap(identity_1.identity, concurrent);
+}
+exports.mergeAll = mergeAll;
+
+},{"../util/identity":96,"./mergeMap":63}],63:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var map_1 = require("./map");
+var from_1 = require("../observable/from");
+var innerSubscribe_1 = require("../innerSubscribe");
+function mergeMap(project, resultSelector, concurrent) {
+ if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
+ if (typeof resultSelector === 'function') {
+ return function (source) { return source.pipe(mergeMap(function (a, i) { return from_1.from(project(a, i)).pipe(map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };
+ }
+ else if (typeof resultSelector === 'number') {
+ concurrent = resultSelector;
+ }
+ return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };
+}
+exports.mergeMap = mergeMap;
+var MergeMapOperator = (function () {
+ function MergeMapOperator(project, concurrent) {
+ if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
+ this.project = project;
+ this.concurrent = concurrent;
+ }
+ MergeMapOperator.prototype.call = function (observer, source) {
+ return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));
+ };
+ return MergeMapOperator;
+}());
+exports.MergeMapOperator = MergeMapOperator;
+var MergeMapSubscriber = (function (_super) {
+ __extends(MergeMapSubscriber, _super);
+ function MergeMapSubscriber(destination, project, concurrent) {
+ if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
+ var _this = _super.call(this, destination) || this;
+ _this.project = project;
+ _this.concurrent = concurrent;
+ _this.hasCompleted = false;
+ _this.buffer = [];
+ _this.active = 0;
+ _this.index = 0;
+ return _this;
+ }
+ MergeMapSubscriber.prototype._next = function (value) {
+ if (this.active < this.concurrent) {
+ this._tryNext(value);
+ }
+ else {
+ this.buffer.push(value);
+ }
+ };
+ MergeMapSubscriber.prototype._tryNext = function (value) {
+ var result;
+ var index = this.index++;
+ try {
+ result = this.project(value, index);
+ }
+ catch (err) {
+ this.destination.error(err);
+ return;
+ }
+ this.active++;
+ this._innerSub(result);
+ };
+ MergeMapSubscriber.prototype._innerSub = function (ish) {
+ var innerSubscriber = new innerSubscribe_1.SimpleInnerSubscriber(this);
+ var destination = this.destination;
+ destination.add(innerSubscriber);
+ var innerSubscription = innerSubscribe_1.innerSubscribe(ish, innerSubscriber);
+ if (innerSubscription !== innerSubscriber) {
+ destination.add(innerSubscription);
+ }
+ };
+ MergeMapSubscriber.prototype._complete = function () {
+ this.hasCompleted = true;
+ if (this.active === 0 && this.buffer.length === 0) {
+ this.destination.complete();
+ }
+ this.unsubscribe();
+ };
+ MergeMapSubscriber.prototype.notifyNext = function (innerValue) {
+ this.destination.next(innerValue);
+ };
+ MergeMapSubscriber.prototype.notifyComplete = function () {
+ var buffer = this.buffer;
+ this.active--;
+ if (buffer.length > 0) {
+ this._next(buffer.shift());
+ }
+ else if (this.active === 0 && this.hasCompleted) {
+ this.destination.complete();
+ }
+ };
+ return MergeMapSubscriber;
+}(innerSubscribe_1.SimpleOuterSubscriber));
+exports.MergeMapSubscriber = MergeMapSubscriber;
+exports.flatMap = mergeMap;
+
+},{"../innerSubscribe":30,"../observable/from":39,"./map":61}],64:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("../Subscriber");
+var Notification_1 = require("../Notification");
+function observeOn(scheduler, delay) {
+ if (delay === void 0) { delay = 0; }
+ return function observeOnOperatorFunction(source) {
+ return source.lift(new ObserveOnOperator(scheduler, delay));
+ };
+}
+exports.observeOn = observeOn;
+var ObserveOnOperator = (function () {
+ function ObserveOnOperator(scheduler, delay) {
+ if (delay === void 0) { delay = 0; }
+ this.scheduler = scheduler;
+ this.delay = delay;
+ }
+ ObserveOnOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));
+ };
+ return ObserveOnOperator;
+}());
+exports.ObserveOnOperator = ObserveOnOperator;
+var ObserveOnSubscriber = (function (_super) {
+ __extends(ObserveOnSubscriber, _super);
+ function ObserveOnSubscriber(destination, scheduler, delay) {
+ if (delay === void 0) { delay = 0; }
+ var _this = _super.call(this, destination) || this;
+ _this.scheduler = scheduler;
+ _this.delay = delay;
+ return _this;
+ }
+ ObserveOnSubscriber.dispatch = function (arg) {
+ var notification = arg.notification, destination = arg.destination;
+ notification.observe(destination);
+ this.unsubscribe();
+ };
+ ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {
+ var destination = this.destination;
+ destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));
+ };
+ ObserveOnSubscriber.prototype._next = function (value) {
+ this.scheduleMessage(Notification_1.Notification.createNext(value));
+ };
+ ObserveOnSubscriber.prototype._error = function (err) {
+ this.scheduleMessage(Notification_1.Notification.createError(err));
+ this.unsubscribe();
+ };
+ ObserveOnSubscriber.prototype._complete = function () {
+ this.scheduleMessage(Notification_1.Notification.createComplete());
+ this.unsubscribe();
+ };
+ return ObserveOnSubscriber;
+}(Subscriber_1.Subscriber));
+exports.ObserveOnSubscriber = ObserveOnSubscriber;
+var ObserveOnMessage = (function () {
+ function ObserveOnMessage(notification, destination) {
+ this.notification = notification;
+ this.destination = destination;
+ }
+ return ObserveOnMessage;
+}());
+exports.ObserveOnMessage = ObserveOnMessage;
+
+},{"../Notification":19,"../Subscriber":27}],65:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("../Subscriber");
+function refCount() {
+ return function refCountOperatorFunction(source) {
+ return source.lift(new RefCountOperator(source));
+ };
+}
+exports.refCount = refCount;
+var RefCountOperator = (function () {
+ function RefCountOperator(connectable) {
+ this.connectable = connectable;
+ }
+ RefCountOperator.prototype.call = function (subscriber, source) {
+ var connectable = this.connectable;
+ connectable._refCount++;
+ var refCounter = new RefCountSubscriber(subscriber, connectable);
+ var subscription = source.subscribe(refCounter);
+ if (!refCounter.closed) {
+ refCounter.connection = connectable.connect();
+ }
+ return subscription;
+ };
+ return RefCountOperator;
+}());
+var RefCountSubscriber = (function (_super) {
+ __extends(RefCountSubscriber, _super);
+ function RefCountSubscriber(destination, connectable) {
+ var _this = _super.call(this, destination) || this;
+ _this.connectable = connectable;
+ return _this;
+ }
+ RefCountSubscriber.prototype._unsubscribe = function () {
+ var connectable = this.connectable;
+ if (!connectable) {
+ this.connection = null;
+ return;
+ }
+ this.connectable = null;
+ var refCount = connectable._refCount;
+ if (refCount <= 0) {
+ this.connection = null;
+ return;
+ }
+ connectable._refCount = refCount - 1;
+ if (refCount > 1) {
+ this.connection = null;
+ return;
+ }
+ var connection = this.connection;
+ var sharedConnection = connectable._connection;
+ this.connection = null;
+ if (sharedConnection && (!connection || sharedConnection === connection)) {
+ sharedConnection.unsubscribe();
+ }
+ };
+ return RefCountSubscriber;
+}(Subscriber_1.Subscriber));
+
+},{"../Subscriber":27}],66:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var Subscription_1 = require("../Subscription");
+function scheduleArray(input, scheduler) {
+ return new Observable_1.Observable(function (subscriber) {
+ var sub = new Subscription_1.Subscription();
+ var i = 0;
+ sub.add(scheduler.schedule(function () {
+ if (i === input.length) {
+ subscriber.complete();
+ return;
+ }
+ subscriber.next(input[i++]);
+ if (!subscriber.closed) {
+ sub.add(this.schedule());
+ }
+ }));
+ return sub;
+ });
+}
+exports.scheduleArray = scheduleArray;
+
+},{"../Observable":20,"../Subscription":28}],67:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var Subscription_1 = require("../Subscription");
+var iterator_1 = require("../symbol/iterator");
+function scheduleIterable(input, scheduler) {
+ if (!input) {
+ throw new Error('Iterable cannot be null');
+ }
+ return new Observable_1.Observable(function (subscriber) {
+ var sub = new Subscription_1.Subscription();
+ var iterator;
+ sub.add(function () {
+ if (iterator && typeof iterator.return === 'function') {
+ iterator.return();
+ }
+ });
+ sub.add(scheduler.schedule(function () {
+ iterator = input[iterator_1.iterator]();
+ sub.add(scheduler.schedule(function () {
+ if (subscriber.closed) {
+ return;
+ }
+ var value;
+ var done;
+ try {
+ var result = iterator.next();
+ value = result.value;
+ done = result.done;
+ }
+ catch (err) {
+ subscriber.error(err);
+ return;
+ }
+ if (done) {
+ subscriber.complete();
+ }
+ else {
+ subscriber.next(value);
+ this.schedule();
+ }
+ }));
+ }));
+ return sub;
+ });
+}
+exports.scheduleIterable = scheduleIterable;
+
+},{"../Observable":20,"../Subscription":28,"../symbol/iterator":85}],68:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var Subscription_1 = require("../Subscription");
+var observable_1 = require("../symbol/observable");
+function scheduleObservable(input, scheduler) {
+ return new Observable_1.Observable(function (subscriber) {
+ var sub = new Subscription_1.Subscription();
+ sub.add(scheduler.schedule(function () {
+ var observable = input[observable_1.observable]();
+ sub.add(observable.subscribe({
+ next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },
+ error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },
+ complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },
+ }));
+ }));
+ return sub;
+ });
+}
+exports.scheduleObservable = scheduleObservable;
+
+},{"../Observable":20,"../Subscription":28,"../symbol/observable":86}],69:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+var Subscription_1 = require("../Subscription");
+function schedulePromise(input, scheduler) {
+ return new Observable_1.Observable(function (subscriber) {
+ var sub = new Subscription_1.Subscription();
+ sub.add(scheduler.schedule(function () { return input.then(function (value) {
+ sub.add(scheduler.schedule(function () {
+ subscriber.next(value);
+ sub.add(scheduler.schedule(function () { return subscriber.complete(); }));
+ }));
+ }, function (err) {
+ sub.add(scheduler.schedule(function () { return subscriber.error(err); }));
+ }); }));
+ return sub;
+ });
+}
+exports.schedulePromise = schedulePromise;
+
+},{"../Observable":20,"../Subscription":28}],70:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var scheduleObservable_1 = require("./scheduleObservable");
+var schedulePromise_1 = require("./schedulePromise");
+var scheduleArray_1 = require("./scheduleArray");
+var scheduleIterable_1 = require("./scheduleIterable");
+var isInteropObservable_1 = require("../util/isInteropObservable");
+var isPromise_1 = require("../util/isPromise");
+var isArrayLike_1 = require("../util/isArrayLike");
+var isIterable_1 = require("../util/isIterable");
+function scheduled(input, scheduler) {
+ if (input != null) {
+ if (isInteropObservable_1.isInteropObservable(input)) {
+ return scheduleObservable_1.scheduleObservable(input, scheduler);
+ }
+ else if (isPromise_1.isPromise(input)) {
+ return schedulePromise_1.schedulePromise(input, scheduler);
+ }
+ else if (isArrayLike_1.isArrayLike(input)) {
+ return scheduleArray_1.scheduleArray(input, scheduler);
+ }
+ else if (isIterable_1.isIterable(input) || typeof input === 'string') {
+ return scheduleIterable_1.scheduleIterable(input, scheduler);
+ }
+ }
+ throw new TypeError((input !== null && typeof input || input) + ' is not observable');
+}
+exports.scheduled = scheduled;
+
+},{"../util/isArrayLike":98,"../util/isInteropObservable":100,"../util/isIterable":101,"../util/isPromise":105,"./scheduleArray":66,"./scheduleIterable":67,"./scheduleObservable":68,"./schedulePromise":69}],71:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscription_1 = require("../Subscription");
+var Action = (function (_super) {
+ __extends(Action, _super);
+ function Action(scheduler, work) {
+ return _super.call(this) || this;
+ }
+ Action.prototype.schedule = function (state, delay) {
+ if (delay === void 0) { delay = 0; }
+ return this;
+ };
+ return Action;
+}(Subscription_1.Subscription));
+exports.Action = Action;
+
+},{"../Subscription":28}],72:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var AsyncAction_1 = require("./AsyncAction");
+var AnimationFrameAction = (function (_super) {
+ __extends(AnimationFrameAction, _super);
+ function AnimationFrameAction(scheduler, work) {
+ var _this = _super.call(this, scheduler, work) || this;
+ _this.scheduler = scheduler;
+ _this.work = work;
+ return _this;
+ }
+ AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ if (delay !== null && delay > 0) {
+ return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
+ }
+ scheduler.actions.push(this);
+ return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));
+ };
+ AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
+ return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
+ }
+ if (scheduler.actions.length === 0) {
+ cancelAnimationFrame(id);
+ scheduler.scheduled = undefined;
+ }
+ return undefined;
+ };
+ return AnimationFrameAction;
+}(AsyncAction_1.AsyncAction));
+exports.AnimationFrameAction = AnimationFrameAction;
+
+},{"./AsyncAction":76}],73:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var AsyncScheduler_1 = require("./AsyncScheduler");
+var AnimationFrameScheduler = (function (_super) {
+ __extends(AnimationFrameScheduler, _super);
+ function AnimationFrameScheduler() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ AnimationFrameScheduler.prototype.flush = function (action) {
+ this.active = true;
+ this.scheduled = undefined;
+ var actions = this.actions;
+ var error;
+ var index = -1;
+ var count = actions.length;
+ action = action || actions.shift();
+ do {
+ if (error = action.execute(action.state, action.delay)) {
+ break;
+ }
+ } while (++index < count && (action = actions.shift()));
+ this.active = false;
+ if (error) {
+ while (++index < count && (action = actions.shift())) {
+ action.unsubscribe();
+ }
+ throw error;
+ }
+ };
+ return AnimationFrameScheduler;
+}(AsyncScheduler_1.AsyncScheduler));
+exports.AnimationFrameScheduler = AnimationFrameScheduler;
+
+},{"./AsyncScheduler":77}],74:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Immediate_1 = require("../util/Immediate");
+var AsyncAction_1 = require("./AsyncAction");
+var AsapAction = (function (_super) {
+ __extends(AsapAction, _super);
+ function AsapAction(scheduler, work) {
+ var _this = _super.call(this, scheduler, work) || this;
+ _this.scheduler = scheduler;
+ _this.work = work;
+ return _this;
+ }
+ AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ if (delay !== null && delay > 0) {
+ return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
+ }
+ scheduler.actions.push(this);
+ return scheduler.scheduled || (scheduler.scheduled = Immediate_1.Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));
+ };
+ AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
+ return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
+ }
+ if (scheduler.actions.length === 0) {
+ Immediate_1.Immediate.clearImmediate(id);
+ scheduler.scheduled = undefined;
+ }
+ return undefined;
+ };
+ return AsapAction;
+}(AsyncAction_1.AsyncAction));
+exports.AsapAction = AsapAction;
+
+},{"../util/Immediate":90,"./AsyncAction":76}],75:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var AsyncScheduler_1 = require("./AsyncScheduler");
+var AsapScheduler = (function (_super) {
+ __extends(AsapScheduler, _super);
+ function AsapScheduler() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ AsapScheduler.prototype.flush = function (action) {
+ this.active = true;
+ this.scheduled = undefined;
+ var actions = this.actions;
+ var error;
+ var index = -1;
+ var count = actions.length;
+ action = action || actions.shift();
+ do {
+ if (error = action.execute(action.state, action.delay)) {
+ break;
+ }
+ } while (++index < count && (action = actions.shift()));
+ this.active = false;
+ if (error) {
+ while (++index < count && (action = actions.shift())) {
+ action.unsubscribe();
+ }
+ throw error;
+ }
+ };
+ return AsapScheduler;
+}(AsyncScheduler_1.AsyncScheduler));
+exports.AsapScheduler = AsapScheduler;
+
+},{"./AsyncScheduler":77}],76:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Action_1 = require("./Action");
+var AsyncAction = (function (_super) {
+ __extends(AsyncAction, _super);
+ function AsyncAction(scheduler, work) {
+ var _this = _super.call(this, scheduler, work) || this;
+ _this.scheduler = scheduler;
+ _this.work = work;
+ _this.pending = false;
+ return _this;
+ }
+ AsyncAction.prototype.schedule = function (state, delay) {
+ if (delay === void 0) { delay = 0; }
+ if (this.closed) {
+ return this;
+ }
+ this.state = state;
+ var id = this.id;
+ var scheduler = this.scheduler;
+ if (id != null) {
+ this.id = this.recycleAsyncId(scheduler, id, delay);
+ }
+ this.pending = true;
+ this.delay = delay;
+ this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);
+ return this;
+ };
+ AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ return setInterval(scheduler.flush.bind(scheduler, this), delay);
+ };
+ AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ if (delay !== null && this.delay === delay && this.pending === false) {
+ return id;
+ }
+ clearInterval(id);
+ return undefined;
+ };
+ AsyncAction.prototype.execute = function (state, delay) {
+ if (this.closed) {
+ return new Error('executing a cancelled action');
+ }
+ this.pending = false;
+ var error = this._execute(state, delay);
+ if (error) {
+ return error;
+ }
+ else if (this.pending === false && this.id != null) {
+ this.id = this.recycleAsyncId(this.scheduler, this.id, null);
+ }
+ };
+ AsyncAction.prototype._execute = function (state, delay) {
+ var errored = false;
+ var errorValue = undefined;
+ try {
+ this.work(state);
+ }
+ catch (e) {
+ errored = true;
+ errorValue = !!e && e || new Error(e);
+ }
+ if (errored) {
+ this.unsubscribe();
+ return errorValue;
+ }
+ };
+ AsyncAction.prototype._unsubscribe = function () {
+ var id = this.id;
+ var scheduler = this.scheduler;
+ var actions = scheduler.actions;
+ var index = actions.indexOf(this);
+ this.work = null;
+ this.state = null;
+ this.pending = false;
+ this.scheduler = null;
+ if (index !== -1) {
+ actions.splice(index, 1);
+ }
+ if (id != null) {
+ this.id = this.recycleAsyncId(scheduler, id, null);
+ }
+ this.delay = null;
+ };
+ return AsyncAction;
+}(Action_1.Action));
+exports.AsyncAction = AsyncAction;
+
+},{"./Action":71}],77:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Scheduler_1 = require("../Scheduler");
+var AsyncScheduler = (function (_super) {
+ __extends(AsyncScheduler, _super);
+ function AsyncScheduler(SchedulerAction, now) {
+ if (now === void 0) { now = Scheduler_1.Scheduler.now; }
+ var _this = _super.call(this, SchedulerAction, function () {
+ if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {
+ return AsyncScheduler.delegate.now();
+ }
+ else {
+ return now();
+ }
+ }) || this;
+ _this.actions = [];
+ _this.active = false;
+ _this.scheduled = undefined;
+ return _this;
+ }
+ AsyncScheduler.prototype.schedule = function (work, delay, state) {
+ if (delay === void 0) { delay = 0; }
+ if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
+ return AsyncScheduler.delegate.schedule(work, delay, state);
+ }
+ else {
+ return _super.prototype.schedule.call(this, work, delay, state);
+ }
+ };
+ AsyncScheduler.prototype.flush = function (action) {
+ var actions = this.actions;
+ if (this.active) {
+ actions.push(action);
+ return;
+ }
+ var error;
+ this.active = true;
+ do {
+ if (error = action.execute(action.state, action.delay)) {
+ break;
+ }
+ } while (action = actions.shift());
+ this.active = false;
+ if (error) {
+ while (action = actions.shift()) {
+ action.unsubscribe();
+ }
+ throw error;
+ }
+ };
+ return AsyncScheduler;
+}(Scheduler_1.Scheduler));
+exports.AsyncScheduler = AsyncScheduler;
+
+},{"../Scheduler":24}],78:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var AsyncAction_1 = require("./AsyncAction");
+var QueueAction = (function (_super) {
+ __extends(QueueAction, _super);
+ function QueueAction(scheduler, work) {
+ var _this = _super.call(this, scheduler, work) || this;
+ _this.scheduler = scheduler;
+ _this.work = work;
+ return _this;
+ }
+ QueueAction.prototype.schedule = function (state, delay) {
+ if (delay === void 0) { delay = 0; }
+ if (delay > 0) {
+ return _super.prototype.schedule.call(this, state, delay);
+ }
+ this.delay = delay;
+ this.state = state;
+ this.scheduler.flush(this);
+ return this;
+ };
+ QueueAction.prototype.execute = function (state, delay) {
+ return (delay > 0 || this.closed) ?
+ _super.prototype.execute.call(this, state, delay) :
+ this._execute(state, delay);
+ };
+ QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
+ return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
+ }
+ return scheduler.flush(this);
+ };
+ return QueueAction;
+}(AsyncAction_1.AsyncAction));
+exports.QueueAction = QueueAction;
+
+},{"./AsyncAction":76}],79:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var AsyncScheduler_1 = require("./AsyncScheduler");
+var QueueScheduler = (function (_super) {
+ __extends(QueueScheduler, _super);
+ function QueueScheduler() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return QueueScheduler;
+}(AsyncScheduler_1.AsyncScheduler));
+exports.QueueScheduler = QueueScheduler;
+
+},{"./AsyncScheduler":77}],80:[function(require,module,exports){
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var AsyncAction_1 = require("./AsyncAction");
+var AsyncScheduler_1 = require("./AsyncScheduler");
+var VirtualTimeScheduler = (function (_super) {
+ __extends(VirtualTimeScheduler, _super);
+ function VirtualTimeScheduler(SchedulerAction, maxFrames) {
+ if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }
+ if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }
+ var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;
+ _this.maxFrames = maxFrames;
+ _this.frame = 0;
+ _this.index = -1;
+ return _this;
+ }
+ VirtualTimeScheduler.prototype.flush = function () {
+ var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
+ var error, action;
+ while ((action = actions[0]) && action.delay <= maxFrames) {
+ actions.shift();
+ this.frame = action.delay;
+ if (error = action.execute(action.state, action.delay)) {
+ break;
+ }
+ }
+ if (error) {
+ while (action = actions.shift()) {
+ action.unsubscribe();
+ }
+ throw error;
+ }
+ };
+ VirtualTimeScheduler.frameTimeFactor = 10;
+ return VirtualTimeScheduler;
+}(AsyncScheduler_1.AsyncScheduler));
+exports.VirtualTimeScheduler = VirtualTimeScheduler;
+var VirtualAction = (function (_super) {
+ __extends(VirtualAction, _super);
+ function VirtualAction(scheduler, work, index) {
+ if (index === void 0) { index = scheduler.index += 1; }
+ var _this = _super.call(this, scheduler, work) || this;
+ _this.scheduler = scheduler;
+ _this.work = work;
+ _this.index = index;
+ _this.active = true;
+ _this.index = scheduler.index = index;
+ return _this;
+ }
+ VirtualAction.prototype.schedule = function (state, delay) {
+ if (delay === void 0) { delay = 0; }
+ if (!this.id) {
+ return _super.prototype.schedule.call(this, state, delay);
+ }
+ this.active = false;
+ var action = new VirtualAction(this.scheduler, this.work);
+ this.add(action);
+ return action.schedule(state, delay);
+ };
+ VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ this.delay = scheduler.frame + delay;
+ var actions = scheduler.actions;
+ actions.push(this);
+ actions.sort(VirtualAction.sortActions);
+ return true;
+ };
+ VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ return undefined;
+ };
+ VirtualAction.prototype._execute = function (state, delay) {
+ if (this.active === true) {
+ return _super.prototype._execute.call(this, state, delay);
+ }
+ };
+ VirtualAction.sortActions = function (a, b) {
+ if (a.delay === b.delay) {
+ if (a.index === b.index) {
+ return 0;
+ }
+ else if (a.index > b.index) {
+ return 1;
+ }
+ else {
+ return -1;
+ }
+ }
+ else if (a.delay > b.delay) {
+ return 1;
+ }
+ else {
+ return -1;
+ }
+ };
+ return VirtualAction;
+}(AsyncAction_1.AsyncAction));
+exports.VirtualAction = VirtualAction;
+
+},{"./AsyncAction":76,"./AsyncScheduler":77}],81:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var AnimationFrameAction_1 = require("./AnimationFrameAction");
+var AnimationFrameScheduler_1 = require("./AnimationFrameScheduler");
+exports.animationFrameScheduler = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction);
+exports.animationFrame = exports.animationFrameScheduler;
+
+},{"./AnimationFrameAction":72,"./AnimationFrameScheduler":73}],82:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var AsapAction_1 = require("./AsapAction");
+var AsapScheduler_1 = require("./AsapScheduler");
+exports.asapScheduler = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction);
+exports.asap = exports.asapScheduler;
+
+},{"./AsapAction":74,"./AsapScheduler":75}],83:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var AsyncAction_1 = require("./AsyncAction");
+var AsyncScheduler_1 = require("./AsyncScheduler");
+exports.asyncScheduler = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction);
+exports.async = exports.asyncScheduler;
+
+},{"./AsyncAction":76,"./AsyncScheduler":77}],84:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var QueueAction_1 = require("./QueueAction");
+var QueueScheduler_1 = require("./QueueScheduler");
+exports.queueScheduler = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction);
+exports.queue = exports.queueScheduler;
+
+},{"./QueueAction":78,"./QueueScheduler":79}],85:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function getSymbolIterator() {
+ if (typeof Symbol !== 'function' || !Symbol.iterator) {
+ return '@@iterator';
+ }
+ return Symbol.iterator;
+}
+exports.getSymbolIterator = getSymbolIterator;
+exports.iterator = getSymbolIterator();
+exports.$$iterator = exports.iterator;
+
+},{}],86:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();
+
+},{}],87:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.rxSubscriber = (function () {
+ return typeof Symbol === 'function'
+ ? Symbol('rxSubscriber')
+ : '@@rxSubscriber_' + Math.random();
+})();
+exports.$$rxSubscriber = exports.rxSubscriber;
+
+},{}],88:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var ArgumentOutOfRangeErrorImpl = (function () {
+ function ArgumentOutOfRangeErrorImpl() {
+ Error.call(this);
+ this.message = 'argument out of range';
+ this.name = 'ArgumentOutOfRangeError';
+ return this;
+ }
+ ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);
+ return ArgumentOutOfRangeErrorImpl;
+})();
+exports.ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;
+
+},{}],89:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var EmptyErrorImpl = (function () {
+ function EmptyErrorImpl() {
+ Error.call(this);
+ this.message = 'no elements in sequence';
+ this.name = 'EmptyError';
+ return this;
+ }
+ EmptyErrorImpl.prototype = Object.create(Error.prototype);
+ return EmptyErrorImpl;
+})();
+exports.EmptyError = EmptyErrorImpl;
+
+},{}],90:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var nextHandle = 1;
+var RESOLVED = (function () { return Promise.resolve(); })();
+var activeHandles = {};
+function findAndClearHandle(handle) {
+ if (handle in activeHandles) {
+ delete activeHandles[handle];
+ return true;
+ }
+ return false;
+}
+exports.Immediate = {
+ setImmediate: function (cb) {
+ var handle = nextHandle++;
+ activeHandles[handle] = true;
+ RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });
+ return handle;
+ },
+ clearImmediate: function (handle) {
+ findAndClearHandle(handle);
+ },
+};
+exports.TestTools = {
+ pending: function () {
+ return Object.keys(activeHandles).length;
+ }
+};
+
+},{}],91:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var ObjectUnsubscribedErrorImpl = (function () {
+ function ObjectUnsubscribedErrorImpl() {
+ Error.call(this);
+ this.message = 'object unsubscribed';
+ this.name = 'ObjectUnsubscribedError';
+ return this;
+ }
+ ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);
+ return ObjectUnsubscribedErrorImpl;
+})();
+exports.ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;
+
+},{}],92:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var TimeoutErrorImpl = (function () {
+ function TimeoutErrorImpl() {
+ Error.call(this);
+ this.message = 'Timeout has occurred';
+ this.name = 'TimeoutError';
+ return this;
+ }
+ TimeoutErrorImpl.prototype = Object.create(Error.prototype);
+ return TimeoutErrorImpl;
+})();
+exports.TimeoutError = TimeoutErrorImpl;
+
+},{}],93:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var UnsubscriptionErrorImpl = (function () {
+ function UnsubscriptionErrorImpl(errors) {
+ Error.call(this);
+ this.message = errors ?
+ errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') : '';
+ this.name = 'UnsubscriptionError';
+ this.errors = errors;
+ return this;
+ }
+ UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);
+ return UnsubscriptionErrorImpl;
+})();
+exports.UnsubscriptionError = UnsubscriptionErrorImpl;
+
+},{}],94:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("../Subscriber");
+function canReportError(observer) {
+ while (observer) {
+ var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;
+ if (closed_1 || isStopped) {
+ return false;
+ }
+ else if (destination && destination instanceof Subscriber_1.Subscriber) {
+ observer = destination;
+ }
+ else {
+ observer = null;
+ }
+ }
+ return true;
+}
+exports.canReportError = canReportError;
+
+},{"../Subscriber":27}],95:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function hostReportError(err) {
+ setTimeout(function () { throw err; }, 0);
+}
+exports.hostReportError = hostReportError;
+
+},{}],96:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function identity(x) {
+ return x;
+}
+exports.identity = identity;
+
+},{}],97:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();
+
+},{}],98:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
+
+},{}],99:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function isFunction(x) {
+ return typeof x === 'function';
+}
+exports.isFunction = isFunction;
+
+},{}],100:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var observable_1 = require("../symbol/observable");
+function isInteropObservable(input) {
+ return input && typeof input[observable_1.observable] === 'function';
+}
+exports.isInteropObservable = isInteropObservable;
+
+},{"../symbol/observable":86}],101:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var iterator_1 = require("../symbol/iterator");
+function isIterable(input) {
+ return input && typeof input[iterator_1.iterator] === 'function';
+}
+exports.isIterable = isIterable;
+
+},{"../symbol/iterator":85}],102:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var isArray_1 = require("./isArray");
+function isNumeric(val) {
+ return !isArray_1.isArray(val) && (val - parseFloat(val) + 1) >= 0;
+}
+exports.isNumeric = isNumeric;
+
+},{"./isArray":97}],103:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function isObject(x) {
+ return x !== null && typeof x === 'object';
+}
+exports.isObject = isObject;
+
+},{}],104:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Observable_1 = require("../Observable");
+function isObservable(obj) {
+ return !!obj && (obj instanceof Observable_1.Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));
+}
+exports.isObservable = isObservable;
+
+},{"../Observable":20}],105:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function isPromise(value) {
+ return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';
+}
+exports.isPromise = isPromise;
+
+},{}],106:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function isScheduler(value) {
+ return value && typeof value.schedule === 'function';
+}
+exports.isScheduler = isScheduler;
+
+},{}],107:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function noop() { }
+exports.noop = noop;
+
+},{}],108:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function not(pred, thisArg) {
+ function notPred() {
+ return !(notPred.pred.apply(notPred.thisArg, arguments));
+ }
+ notPred.pred = pred;
+ notPred.thisArg = thisArg;
+ return notPred;
+}
+exports.not = not;
+
+},{}],109:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var identity_1 = require("./identity");
+function pipe() {
+ var fns = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ fns[_i] = arguments[_i];
+ }
+ return pipeFromArray(fns);
+}
+exports.pipe = pipe;
+function pipeFromArray(fns) {
+ if (fns.length === 0) {
+ return identity_1.identity;
+ }
+ if (fns.length === 1) {
+ return fns[0];
+ }
+ return function piped(input) {
+ return fns.reduce(function (prev, fn) { return fn(prev); }, input);
+ };
+}
+exports.pipeFromArray = pipeFromArray;
+
+},{"./identity":96}],110:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var subscribeToArray_1 = require("./subscribeToArray");
+var subscribeToPromise_1 = require("./subscribeToPromise");
+var subscribeToIterable_1 = require("./subscribeToIterable");
+var subscribeToObservable_1 = require("./subscribeToObservable");
+var isArrayLike_1 = require("./isArrayLike");
+var isPromise_1 = require("./isPromise");
+var isObject_1 = require("./isObject");
+var iterator_1 = require("../symbol/iterator");
+var observable_1 = require("../symbol/observable");
+exports.subscribeTo = function (result) {
+ if (!!result && typeof result[observable_1.observable] === 'function') {
+ return subscribeToObservable_1.subscribeToObservable(result);
+ }
+ else if (isArrayLike_1.isArrayLike(result)) {
+ return subscribeToArray_1.subscribeToArray(result);
+ }
+ else if (isPromise_1.isPromise(result)) {
+ return subscribeToPromise_1.subscribeToPromise(result);
+ }
+ else if (!!result && typeof result[iterator_1.iterator] === 'function') {
+ return subscribeToIterable_1.subscribeToIterable(result);
+ }
+ else {
+ var value = isObject_1.isObject(result) ? 'an invalid object' : "'" + result + "'";
+ var msg = "You provided " + value + " where a stream was expected."
+ + ' You can provide an Observable, Promise, Array, or Iterable.';
+ throw new TypeError(msg);
+ }
+};
+
+},{"../symbol/iterator":85,"../symbol/observable":86,"./isArrayLike":98,"./isObject":103,"./isPromise":105,"./subscribeToArray":111,"./subscribeToIterable":112,"./subscribeToObservable":113,"./subscribeToPromise":114}],111:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.subscribeToArray = function (array) { return function (subscriber) {
+ for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {
+ subscriber.next(array[i]);
+ }
+ subscriber.complete();
+}; };
+
+},{}],112:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var iterator_1 = require("../symbol/iterator");
+exports.subscribeToIterable = function (iterable) { return function (subscriber) {
+ var iterator = iterable[iterator_1.iterator]();
+ do {
+ var item = void 0;
+ try {
+ item = iterator.next();
+ }
+ catch (err) {
+ subscriber.error(err);
+ return subscriber;
+ }
+ if (item.done) {
+ subscriber.complete();
+ break;
+ }
+ subscriber.next(item.value);
+ if (subscriber.closed) {
+ break;
+ }
+ } while (true);
+ if (typeof iterator.return === 'function') {
+ subscriber.add(function () {
+ if (iterator.return) {
+ iterator.return();
+ }
+ });
+ }
+ return subscriber;
+}; };
+
+},{"../symbol/iterator":85}],113:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var observable_1 = require("../symbol/observable");
+exports.subscribeToObservable = function (obj) { return function (subscriber) {
+ var obs = obj[observable_1.observable]();
+ if (typeof obs.subscribe !== 'function') {
+ throw new TypeError('Provided object does not correctly implement Symbol.observable');
+ }
+ else {
+ return obs.subscribe(subscriber);
+ }
+}; };
+
+},{"../symbol/observable":86}],114:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var hostReportError_1 = require("./hostReportError");
+exports.subscribeToPromise = function (promise) { return function (subscriber) {
+ promise.then(function (value) {
+ if (!subscriber.closed) {
+ subscriber.next(value);
+ subscriber.complete();
+ }
+ }, function (err) { return subscriber.error(err); })
+ .then(null, hostReportError_1.hostReportError);
+ return subscriber;
+}; };
+
+},{"./hostReportError":95}],115:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var InnerSubscriber_1 = require("../InnerSubscriber");
+var subscribeTo_1 = require("./subscribeTo");
+var Observable_1 = require("../Observable");
+function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {
+ if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex); }
+ if (innerSubscriber.closed) {
+ return undefined;
+ }
+ if (result instanceof Observable_1.Observable) {
+ return result.subscribe(innerSubscriber);
+ }
+ return subscribeTo_1.subscribeTo(result)(innerSubscriber);
+}
+exports.subscribeToResult = subscribeToResult;
+
+},{"../InnerSubscriber":18,"../Observable":20,"./subscribeTo":110}],116:[function(require,module,exports){
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("../Subscriber");
+var rxSubscriber_1 = require("../symbol/rxSubscriber");
+var Observer_1 = require("../Observer");
+function toSubscriber(nextOrObserver, error, complete) {
+ if (nextOrObserver) {
+ if (nextOrObserver instanceof Subscriber_1.Subscriber) {
+ return nextOrObserver;
+ }
+ if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {
+ return nextOrObserver[rxSubscriber_1.rxSubscriber]();
+ }
+ }
+ if (!nextOrObserver && !error && !complete) {
+ return new Subscriber_1.Subscriber(Observer_1.empty);
+ }
+ return new Subscriber_1.Subscriber(nextOrObserver, error, complete);
+}
+exports.toSubscriber = toSubscriber;
+
+},{"../Observer":21,"../Subscriber":27,"../symbol/rxSubscriber":87}],117:[function(require,module,exports){
+const ANY = Symbol('SemVer ANY')
+// hoisted class for cyclic dependency
+class Comparator {
+ static get ANY () {
+ return ANY
+ }
+ constructor (comp, options) {
+ options = parseOptions(options)
+
+ if (comp instanceof Comparator) {
+ if (comp.loose === !!options.loose) {
+ return comp
+ } else {
+ comp = comp.value
+ }
+ }
+
+ debug('comparator', comp, options)
+ this.options = options
+ this.loose = !!options.loose
+ this.parse(comp)
+
+ if (this.semver === ANY) {
+ this.value = ''
+ } else {
+ this.value = this.operator + this.semver.version
+ }
+
+ debug('comp', this)
+ }
+
+ parse (comp) {
+ const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
+ const m = comp.match(r)
+
+ if (!m) {
+ throw new TypeError(`Invalid comparator: ${comp}`)
+ }
+
+ this.operator = m[1] !== undefined ? m[1] : ''
+ if (this.operator === '=') {
+ this.operator = ''
+ }
+
+ // if it literally is just '>' or '' then allow anything.
+ if (!m[2]) {
+ this.semver = ANY
+ } else {
+ this.semver = new SemVer(m[2], this.options.loose)
+ }
+ }
+
+ toString () {
+ return this.value
+ }
+
+ test (version) {
+ debug('Comparator.test', version, this.options.loose)
+
+ if (this.semver === ANY || version === ANY) {
+ return true
+ }
+
+ if (typeof version === 'string') {
+ try {
+ version = new SemVer(version, this.options)
+ } catch (er) {
+ return false
+ }
+ }
+
+ return cmp(version, this.operator, this.semver, this.options)
+ }
+
+ intersects (comp, options) {
+ if (!(comp instanceof Comparator)) {
+ throw new TypeError('a Comparator is required')
+ }
+
+ if (!options || typeof options !== 'object') {
+ options = {
+ loose: !!options,
+ includePrerelease: false
+ }
+ }
+
+ if (this.operator === '') {
+ if (this.value === '') {
+ return true
+ }
+ return new Range(comp.value, options).test(this.value)
+ } else if (comp.operator === '') {
+ if (comp.value === '') {
+ return true
+ }
+ return new Range(this.value, options).test(comp.semver)
+ }
+
+ const sameDirectionIncreasing =
+ (this.operator === '>=' || this.operator === '>') &&
+ (comp.operator === '>=' || comp.operator === '>')
+ const sameDirectionDecreasing =
+ (this.operator === '<=' || this.operator === '<') &&
+ (comp.operator === '<=' || comp.operator === '<')
+ const sameSemVer = this.semver.version === comp.semver.version
+ const differentDirectionsInclusive =
+ (this.operator === '>=' || this.operator === '<=') &&
+ (comp.operator === '>=' || comp.operator === '<=')
+ const oppositeDirectionsLessThan =
+ cmp(this.semver, '<', comp.semver, options) &&
+ (this.operator === '>=' || this.operator === '>') &&
+ (comp.operator === '<=' || comp.operator === '<')
+ const oppositeDirectionsGreaterThan =
+ cmp(this.semver, '>', comp.semver, options) &&
+ (this.operator === '<=' || this.operator === '<') &&
+ (comp.operator === '>=' || comp.operator === '>')
+
+ return (
+ sameDirectionIncreasing ||
+ sameDirectionDecreasing ||
+ (sameSemVer && differentDirectionsInclusive) ||
+ oppositeDirectionsLessThan ||
+ oppositeDirectionsGreaterThan
+ )
+ }
+}
+
+module.exports = Comparator
+
+const parseOptions = require('../internal/parse-options')
+const {re, t} = require('../internal/re')
+const cmp = require('../functions/cmp')
+const debug = require('../internal/debug')
+const SemVer = require('./semver')
+const Range = require('./range')
+
+},{"../functions/cmp":121,"../internal/debug":146,"../internal/parse-options":148,"../internal/re":149,"./range":118,"./semver":119}],118:[function(require,module,exports){
+// hoisted class for cyclic dependency
+class Range {
+ constructor (range, options) {
+ options = parseOptions(options)
+
+ if (range instanceof Range) {
+ if (
+ range.loose === !!options.loose &&
+ range.includePrerelease === !!options.includePrerelease
+ ) {
+ return range
+ } else {
+ return new Range(range.raw, options)
+ }
+ }
+
+ if (range instanceof Comparator) {
+ // just put it in the set and return
+ this.raw = range.value
+ this.set = [[range]]
+ this.format()
+ return this
+ }
+
+ this.options = options
+ this.loose = !!options.loose
+ this.includePrerelease = !!options.includePrerelease
+
+ // First, split based on boolean or ||
+ this.raw = range
+ this.set = range
+ .split(/\s*\|\|\s*/)
+ // map the range to a 2d array of comparators
+ .map(range => this.parseRange(range.trim()))
+ // throw out any comparator lists that are empty
+ // this generally means that it was not a valid range, which is allowed
+ // in loose mode, but will still throw if the WHOLE range is invalid.
+ .filter(c => c.length)
+
+ if (!this.set.length) {
+ throw new TypeError(`Invalid SemVer Range: ${range}`)
+ }
+
+ // if we have any that are not the null set, throw out null sets.
+ if (this.set.length > 1) {
+ // keep the first one, in case they're all null sets
+ const first = this.set[0]
+ this.set = this.set.filter(c => !isNullSet(c[0]))
+ if (this.set.length === 0)
+ this.set = [first]
+ else if (this.set.length > 1) {
+ // if we have any that are *, then the range is just *
+ for (const c of this.set) {
+ if (c.length === 1 && isAny(c[0])) {
+ this.set = [c]
+ break
+ }
+ }
+ }
+ }
+
+ this.format()
+ }
+
+ format () {
+ this.range = this.set
+ .map((comps) => {
+ return comps.join(' ').trim()
+ })
+ .join('||')
+ .trim()
+ return this.range
+ }
+
+ toString () {
+ return this.range
+ }
+
+ parseRange (range) {
+ range = range.trim()
+
+ // memoize range parsing for performance.
+ // this is a very hot path, and fully deterministic.
+ const memoOpts = Object.keys(this.options).join(',')
+ const memoKey = `parseRange:${memoOpts}:${range}`
+ const cached = cache.get(memoKey)
+ if (cached)
+ return cached
+
+ const loose = this.options.loose
+ // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
+ const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
+ range = range.replace(hr, hyphenReplace(this.options.includePrerelease))
+ debug('hyphen replace', range)
+ // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
+ range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
+ debug('comparator trim', range, re[t.COMPARATORTRIM])
+
+ // `~ 1.2.3` => `~1.2.3`
+ range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
+
+ // `^ 1.2.3` => `^1.2.3`
+ range = range.replace(re[t.CARETTRIM], caretTrimReplace)
+
+ // normalize spaces
+ range = range.split(/\s+/).join(' ')
+
+ // At this point, the range is completely trimmed and
+ // ready to be split into comparators.
+
+ const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
+ const rangeList = range
+ .split(' ')
+ .map(comp => parseComparator(comp, this.options))
+ .join(' ')
+ .split(/\s+/)
+ // >=0.0.0 is equivalent to *
+ .map(comp => replaceGTE0(comp, this.options))
+ // in loose mode, throw out any that are not valid comparators
+ .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)
+ .map(comp => new Comparator(comp, this.options))
+
+ // if any comparators are the null set, then replace with JUST null set
+ // if more than one comparator, remove any * comparators
+ // also, don't include the same comparator more than once
+ const l = rangeList.length
+ const rangeMap = new Map()
+ for (const comp of rangeList) {
+ if (isNullSet(comp))
+ return [comp]
+ rangeMap.set(comp.value, comp)
+ }
+ if (rangeMap.size > 1 && rangeMap.has(''))
+ rangeMap.delete('')
+
+ const result = [...rangeMap.values()]
+ cache.set(memoKey, result)
+ return result
+ }
+
+ intersects (range, options) {
+ if (!(range instanceof Range)) {
+ throw new TypeError('a Range is required')
+ }
+
+ return this.set.some((thisComparators) => {
+ return (
+ isSatisfiable(thisComparators, options) &&
+ range.set.some((rangeComparators) => {
+ return (
+ isSatisfiable(rangeComparators, options) &&
+ thisComparators.every((thisComparator) => {
+ return rangeComparators.every((rangeComparator) => {
+ return thisComparator.intersects(rangeComparator, options)
+ })
+ })
+ )
+ })
+ )
+ })
+ }
+
+ // if ANY of the sets match ALL of its comparators, then pass
+ test (version) {
+ if (!version) {
+ return false
+ }
+
+ if (typeof version === 'string') {
+ try {
+ version = new SemVer(version, this.options)
+ } catch (er) {
+ return false
+ }
+ }
+
+ for (let i = 0; i < this.set.length; i++) {
+ if (testSet(this.set[i], version, this.options)) {
+ return true
+ }
+ }
+ return false
+ }
+}
+module.exports = Range
+
+const LRU = require('lru-cache')
+const cache = new LRU({ max: 1000 })
+
+const parseOptions = require('../internal/parse-options')
+const Comparator = require('./comparator')
+const debug = require('../internal/debug')
+const SemVer = require('./semver')
+const {
+ re,
+ t,
+ comparatorTrimReplace,
+ tildeTrimReplace,
+ caretTrimReplace
+} = require('../internal/re')
+
+const isNullSet = c => c.value === '<0.0.0-0'
+const isAny = c => c.value === ''
+
+// take a set of comparators and determine whether there
+// exists a version which can satisfy it
+const isSatisfiable = (comparators, options) => {
+ let result = true
+ const remainingComparators = comparators.slice()
+ let testComparator = remainingComparators.pop()
+
+ while (result && remainingComparators.length) {
+ result = remainingComparators.every((otherComparator) => {
+ return testComparator.intersects(otherComparator, options)
+ })
+
+ testComparator = remainingComparators.pop()
+ }
+
+ return result
+}
+
+// comprised of xranges, tildes, stars, and gtlt's at this point.
+// already replaced the hyphen ranges
+// turn into a set of JUST comparators.
+const parseComparator = (comp, options) => {
+ debug('comp', comp, options)
+ comp = replaceCarets(comp, options)
+ debug('caret', comp)
+ comp = replaceTildes(comp, options)
+ debug('tildes', comp)
+ comp = replaceXRanges(comp, options)
+ debug('xrange', comp)
+ comp = replaceStars(comp, options)
+ debug('stars', comp)
+ return comp
+}
+
+const isX = id => !id || id.toLowerCase() === 'x' || id === '*'
+
+// ~, ~> --> * (any, kinda silly)
+// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
+// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0
+// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0
+// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0
+// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0
+const replaceTildes = (comp, options) =>
+ comp.trim().split(/\s+/).map((comp) => {
+ return replaceTilde(comp, options)
+ }).join(' ')
+
+const replaceTilde = (comp, options) => {
+ const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
+ return comp.replace(r, (_, M, m, p, pr) => {
+ debug('tilde', comp, _, M, m, p, pr)
+ let ret
+
+ if (isX(M)) {
+ ret = ''
+ } else if (isX(m)) {
+ ret = `>=${M}.0.0 <${+M + 1}.0.0-0`
+ } else if (isX(p)) {
+ // ~1.2 == >=1.2.0 <1.3.0-0
+ ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`
+ } else if (pr) {
+ debug('replaceTilde pr', pr)
+ ret = `>=${M}.${m}.${p}-${pr
+ } <${M}.${+m + 1}.0-0`
+ } else {
+ // ~1.2.3 == >=1.2.3 <1.3.0-0
+ ret = `>=${M}.${m}.${p
+ } <${M}.${+m + 1}.0-0`
+ }
+
+ debug('tilde return', ret)
+ return ret
+ })
+}
+
+// ^ --> * (any, kinda silly)
+// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0
+// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0
+// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0
+// ^1.2.3 --> >=1.2.3 <2.0.0-0
+// ^1.2.0 --> >=1.2.0 <2.0.0-0
+const replaceCarets = (comp, options) =>
+ comp.trim().split(/\s+/).map((comp) => {
+ return replaceCaret(comp, options)
+ }).join(' ')
+
+const replaceCaret = (comp, options) => {
+ debug('caret', comp, options)
+ const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
+ const z = options.includePrerelease ? '-0' : ''
+ return comp.replace(r, (_, M, m, p, pr) => {
+ debug('caret', comp, _, M, m, p, pr)
+ let ret
+
+ if (isX(M)) {
+ ret = ''
+ } else if (isX(m)) {
+ ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`
+ } else if (isX(p)) {
+ if (M === '0') {
+ ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`
+ } else {
+ ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`
+ }
+ } else if (pr) {
+ debug('replaceCaret pr', pr)
+ if (M === '0') {
+ if (m === '0') {
+ ret = `>=${M}.${m}.${p}-${pr
+ } <${M}.${m}.${+p + 1}-0`
+ } else {
+ ret = `>=${M}.${m}.${p}-${pr
+ } <${M}.${+m + 1}.0-0`
+ }
+ } else {
+ ret = `>=${M}.${m}.${p}-${pr
+ } <${+M + 1}.0.0-0`
+ }
+ } else {
+ debug('no pr')
+ if (M === '0') {
+ if (m === '0') {
+ ret = `>=${M}.${m}.${p
+ }${z} <${M}.${m}.${+p + 1}-0`
+ } else {
+ ret = `>=${M}.${m}.${p
+ }${z} <${M}.${+m + 1}.0-0`
+ }
+ } else {
+ ret = `>=${M}.${m}.${p
+ } <${+M + 1}.0.0-0`
+ }
+ }
+
+ debug('caret return', ret)
+ return ret
+ })
+}
+
+const replaceXRanges = (comp, options) => {
+ debug('replaceXRanges', comp, options)
+ return comp.split(/\s+/).map((comp) => {
+ return replaceXRange(comp, options)
+ }).join(' ')
+}
+
+const replaceXRange = (comp, options) => {
+ comp = comp.trim()
+ const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
+ return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
+ debug('xRange', comp, ret, gtlt, M, m, p, pr)
+ const xM = isX(M)
+ const xm = xM || isX(m)
+ const xp = xm || isX(p)
+ const anyX = xp
+
+ if (gtlt === '=' && anyX) {
+ gtlt = ''
+ }
+
+ // if we're including prereleases in the match, then we need
+ // to fix this to -0, the lowest possible prerelease value
+ pr = options.includePrerelease ? '-0' : ''
+
+ if (xM) {
+ if (gtlt === '>' || gtlt === '<') {
+ // nothing is allowed
+ ret = '<0.0.0-0'
+ } else {
+ // nothing is forbidden
+ ret = '*'
+ }
+ } else if (gtlt && anyX) {
+ // we know patch is an x, because we have any x at all.
+ // replace X with 0
+ if (xm) {
+ m = 0
+ }
+ p = 0
+
+ if (gtlt === '>') {
+ // >1 => >=2.0.0
+ // >1.2 => >=1.3.0
+ gtlt = '>='
+ if (xm) {
+ M = +M + 1
+ m = 0
+ p = 0
+ } else {
+ m = +m + 1
+ p = 0
+ }
+ } else if (gtlt === '<=') {
+ // <=0.7.x is actually <0.8.0, since any 0.7.x should
+ // pass. Similarly, <=7.x is actually <8.0.0, etc.
+ gtlt = '<'
+ if (xm) {
+ M = +M + 1
+ } else {
+ m = +m + 1
+ }
+ }
+
+ if (gtlt === '<')
+ pr = '-0'
+
+ ret = `${gtlt + M}.${m}.${p}${pr}`
+ } else if (xm) {
+ ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`
+ } else if (xp) {
+ ret = `>=${M}.${m}.0${pr
+ } <${M}.${+m + 1}.0-0`
+ }
+
+ debug('xRange return', ret)
+
+ return ret
+ })
+}
+
+// Because * is AND-ed with everything else in the comparator,
+// and '' means "any version", just remove the *s entirely.
+const replaceStars = (comp, options) => {
+ debug('replaceStars', comp, options)
+ // Looseness is ignored here. star is always as loose as it gets!
+ return comp.trim().replace(re[t.STAR], '')
+}
+
+const replaceGTE0 = (comp, options) => {
+ debug('replaceGTE0', comp, options)
+ return comp.trim()
+ .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')
+}
+
+// This function is passed to string.replace(re[t.HYPHENRANGE])
+// M, m, patch, prerelease, build
+// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
+// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
+// 1.2 - 3.4 => >=1.2.0 <3.5.0-0
+const hyphenReplace = incPr => ($0,
+ from, fM, fm, fp, fpr, fb,
+ to, tM, tm, tp, tpr, tb) => {
+ if (isX(fM)) {
+ from = ''
+ } else if (isX(fm)) {
+ from = `>=${fM}.0.0${incPr ? '-0' : ''}`
+ } else if (isX(fp)) {
+ from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`
+ } else if (fpr) {
+ from = `>=${from}`
+ } else {
+ from = `>=${from}${incPr ? '-0' : ''}`
+ }
+
+ if (isX(tM)) {
+ to = ''
+ } else if (isX(tm)) {
+ to = `<${+tM + 1}.0.0-0`
+ } else if (isX(tp)) {
+ to = `<${tM}.${+tm + 1}.0-0`
+ } else if (tpr) {
+ to = `<=${tM}.${tm}.${tp}-${tpr}`
+ } else if (incPr) {
+ to = `<${tM}.${tm}.${+tp + 1}-0`
+ } else {
+ to = `<=${to}`
+ }
+
+ return (`${from} ${to}`).trim()
+}
+
+const testSet = (set, version, options) => {
+ for (let i = 0; i < set.length; i++) {
+ if (!set[i].test(version)) {
+ return false
+ }
+ }
+
+ if (version.prerelease.length && !options.includePrerelease) {
+ // Find the set of versions that are allowed to have prereleases
+ // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
+ // That should allow `1.2.3-pr.2` to pass.
+ // However, `1.2.4-alpha.notready` should NOT be allowed,
+ // even though it's within the range set by the comparators.
+ for (let i = 0; i < set.length; i++) {
+ debug(set[i].semver)
+ if (set[i].semver === Comparator.ANY) {
+ continue
+ }
+
+ if (set[i].semver.prerelease.length > 0) {
+ const allowed = set[i].semver
+ if (allowed.major === version.major &&
+ allowed.minor === version.minor &&
+ allowed.patch === version.patch) {
+ return true
+ }
+ }
+ }
+
+ // Version has a -pre, but it's not one of the ones we like.
+ return false
+ }
+
+ return true
+}
+
+},{"../internal/debug":146,"../internal/parse-options":148,"../internal/re":149,"./comparator":117,"./semver":119,"lru-cache":14}],119:[function(require,module,exports){
+const debug = require('../internal/debug')
+const { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')
+const { re, t } = require('../internal/re')
+
+const parseOptions = require('../internal/parse-options')
+const { compareIdentifiers } = require('../internal/identifiers')
+class SemVer {
+ constructor (version, options) {
+ options = parseOptions(options)
+
+ if (version instanceof SemVer) {
+ if (version.loose === !!options.loose &&
+ version.includePrerelease === !!options.includePrerelease) {
+ return version
+ } else {
+ version = version.version
+ }
+ } else if (typeof version !== 'string') {
+ throw new TypeError(`Invalid Version: ${version}`)
+ }
+
+ if (version.length > MAX_LENGTH) {
+ throw new TypeError(
+ `version is longer than ${MAX_LENGTH} characters`
+ )
+ }
+
+ debug('SemVer', version, options)
+ this.options = options
+ this.loose = !!options.loose
+ // this isn't actually relevant for versions, but keep it so that we
+ // don't run into trouble passing this.options around.
+ this.includePrerelease = !!options.includePrerelease
+
+ const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
+
+ if (!m) {
+ throw new TypeError(`Invalid Version: ${version}`)
+ }
+
+ this.raw = version
+
+ // these are actually numbers
+ this.major = +m[1]
+ this.minor = +m[2]
+ this.patch = +m[3]
+
+ if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
+ throw new TypeError('Invalid major version')
+ }
+
+ if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
+ throw new TypeError('Invalid minor version')
+ }
+
+ if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
+ throw new TypeError('Invalid patch version')
+ }
+
+ // numberify any prerelease numeric ids
+ if (!m[4]) {
+ this.prerelease = []
+ } else {
+ this.prerelease = m[4].split('.').map((id) => {
+ if (/^[0-9]+$/.test(id)) {
+ const num = +id
+ if (num >= 0 && num < MAX_SAFE_INTEGER) {
+ return num
+ }
+ }
+ return id
+ })
+ }
+
+ this.build = m[5] ? m[5].split('.') : []
+ this.format()
+ }
+
+ format () {
+ this.version = `${this.major}.${this.minor}.${this.patch}`
+ if (this.prerelease.length) {
+ this.version += `-${this.prerelease.join('.')}`
+ }
+ return this.version
+ }
+
+ toString () {
+ return this.version
+ }
+
+ compare (other) {
+ debug('SemVer.compare', this.version, this.options, other)
+ if (!(other instanceof SemVer)) {
+ if (typeof other === 'string' && other === this.version) {
+ return 0
+ }
+ other = new SemVer(other, this.options)
+ }
+
+ if (other.version === this.version) {
+ return 0
+ }
+
+ return this.compareMain(other) || this.comparePre(other)
+ }
+
+ compareMain (other) {
+ if (!(other instanceof SemVer)) {
+ other = new SemVer(other, this.options)
+ }
+
+ return (
+ compareIdentifiers(this.major, other.major) ||
+ compareIdentifiers(this.minor, other.minor) ||
+ compareIdentifiers(this.patch, other.patch)
+ )
+ }
+
+ comparePre (other) {
+ if (!(other instanceof SemVer)) {
+ other = new SemVer(other, this.options)
+ }
+
+ // NOT having a prerelease is > having one
+ if (this.prerelease.length && !other.prerelease.length) {
+ return -1
+ } else if (!this.prerelease.length && other.prerelease.length) {
+ return 1
+ } else if (!this.prerelease.length && !other.prerelease.length) {
+ return 0
+ }
+
+ let i = 0
+ do {
+ const a = this.prerelease[i]
+ const b = other.prerelease[i]
+ debug('prerelease compare', i, a, b)
+ if (a === undefined && b === undefined) {
+ return 0
+ } else if (b === undefined) {
+ return 1
+ } else if (a === undefined) {
+ return -1
+ } else if (a === b) {
+ continue
+ } else {
+ return compareIdentifiers(a, b)
+ }
+ } while (++i)
+ }
+
+ compareBuild (other) {
+ if (!(other instanceof SemVer)) {
+ other = new SemVer(other, this.options)
+ }
+
+ let i = 0
+ do {
+ const a = this.build[i]
+ const b = other.build[i]
+ debug('prerelease compare', i, a, b)
+ if (a === undefined && b === undefined) {
+ return 0
+ } else if (b === undefined) {
+ return 1
+ } else if (a === undefined) {
+ return -1
+ } else if (a === b) {
+ continue
+ } else {
+ return compareIdentifiers(a, b)
+ }
+ } while (++i)
+ }
+
+ // preminor will bump the version up to the next minor release, and immediately
+ // down to pre-release. premajor and prepatch work the same way.
+ inc (release, identifier) {
+ switch (release) {
+ case 'premajor':
+ this.prerelease.length = 0
+ this.patch = 0
+ this.minor = 0
+ this.major++
+ this.inc('pre', identifier)
+ break
+ case 'preminor':
+ this.prerelease.length = 0
+ this.patch = 0
+ this.minor++
+ this.inc('pre', identifier)
+ break
+ case 'prepatch':
+ // If this is already a prerelease, it will bump to the next version
+ // drop any prereleases that might already exist, since they are not
+ // relevant at this point.
+ this.prerelease.length = 0
+ this.inc('patch', identifier)
+ this.inc('pre', identifier)
+ break
+ // If the input is a non-prerelease version, this acts the same as
+ // prepatch.
+ case 'prerelease':
+ if (this.prerelease.length === 0) {
+ this.inc('patch', identifier)
+ }
+ this.inc('pre', identifier)
+ break
+
+ case 'major':
+ // If this is a pre-major version, bump up to the same major version.
+ // Otherwise increment major.
+ // 1.0.0-5 bumps to 1.0.0
+ // 1.1.0 bumps to 2.0.0
+ if (
+ this.minor !== 0 ||
+ this.patch !== 0 ||
+ this.prerelease.length === 0
+ ) {
+ this.major++
+ }
+ this.minor = 0
+ this.patch = 0
+ this.prerelease = []
+ break
+ case 'minor':
+ // If this is a pre-minor version, bump up to the same minor version.
+ // Otherwise increment minor.
+ // 1.2.0-5 bumps to 1.2.0
+ // 1.2.1 bumps to 1.3.0
+ if (this.patch !== 0 || this.prerelease.length === 0) {
+ this.minor++
+ }
+ this.patch = 0
+ this.prerelease = []
+ break
+ case 'patch':
+ // If this is not a pre-release version, it will increment the patch.
+ // If it is a pre-release it will bump up to the same patch version.
+ // 1.2.0-5 patches to 1.2.0
+ // 1.2.0 patches to 1.2.1
+ if (this.prerelease.length === 0) {
+ this.patch++
+ }
+ this.prerelease = []
+ break
+ // This probably shouldn't be used publicly.
+ // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.
+ case 'pre':
+ if (this.prerelease.length === 0) {
+ this.prerelease = [0]
+ } else {
+ let i = this.prerelease.length
+ while (--i >= 0) {
+ if (typeof this.prerelease[i] === 'number') {
+ this.prerelease[i]++
+ i = -2
+ }
+ }
+ if (i === -1) {
+ // didn't increment anything
+ this.prerelease.push(0)
+ }
+ }
+ if (identifier) {
+ // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
+ // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
+ if (this.prerelease[0] === identifier) {
+ if (isNaN(this.prerelease[1])) {
+ this.prerelease = [identifier, 0]
+ }
+ } else {
+ this.prerelease = [identifier, 0]
+ }
+ }
+ break
+
+ default:
+ throw new Error(`invalid increment argument: ${release}`)
+ }
+ this.format()
+ this.raw = this.version
+ return this
+ }
+}
+
+module.exports = SemVer
+
+},{"../internal/constants":145,"../internal/debug":146,"../internal/identifiers":147,"../internal/parse-options":148,"../internal/re":149}],120:[function(require,module,exports){
+const parse = require('./parse')
+const clean = (version, options) => {
+ const s = parse(version.trim().replace(/^[=v]+/, ''), options)
+ return s ? s.version : null
+}
+module.exports = clean
+
+},{"./parse":136}],121:[function(require,module,exports){
+const eq = require('./eq')
+const neq = require('./neq')
+const gt = require('./gt')
+const gte = require('./gte')
+const lt = require('./lt')
+const lte = require('./lte')
+
+const cmp = (a, op, b, loose) => {
+ switch (op) {
+ case '===':
+ if (typeof a === 'object')
+ a = a.version
+ if (typeof b === 'object')
+ b = b.version
+ return a === b
+
+ case '!==':
+ if (typeof a === 'object')
+ a = a.version
+ if (typeof b === 'object')
+ b = b.version
+ return a !== b
+
+ case '':
+ case '=':
+ case '==':
+ return eq(a, b, loose)
+
+ case '!=':
+ return neq(a, b, loose)
+
+ case '>':
+ return gt(a, b, loose)
+
+ case '>=':
+ return gte(a, b, loose)
+
+ case '<':
+ return lt(a, b, loose)
+
+ case '<=':
+ return lte(a, b, loose)
+
+ default:
+ throw new TypeError(`Invalid operator: ${op}`)
+ }
+}
+module.exports = cmp
+
+},{"./eq":127,"./gt":128,"./gte":129,"./lt":131,"./lte":132,"./neq":135}],122:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const parse = require('./parse')
+const {re, t} = require('../internal/re')
+
+const coerce = (version, options) => {
+ if (version instanceof SemVer) {
+ return version
+ }
+
+ if (typeof version === 'number') {
+ version = String(version)
+ }
+
+ if (typeof version !== 'string') {
+ return null
+ }
+
+ options = options || {}
+
+ let match = null
+ if (!options.rtl) {
+ match = version.match(re[t.COERCE])
+ } else {
+ // Find the right-most coercible string that does not share
+ // a terminus with a more left-ward coercible string.
+ // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'
+ //
+ // Walk through the string checking with a /g regexp
+ // Manually set the index so as to pick up overlapping matches.
+ // Stop when we get a match that ends at the string end, since no
+ // coercible string can be more right-ward without the same terminus.
+ let next
+ while ((next = re[t.COERCERTL].exec(version)) &&
+ (!match || match.index + match[0].length !== version.length)
+ ) {
+ if (!match ||
+ next.index + next[0].length !== match.index + match[0].length) {
+ match = next
+ }
+ re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
+ }
+ // leave it in a clean state
+ re[t.COERCERTL].lastIndex = -1
+ }
+
+ if (match === null)
+ return null
+
+ return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)
+}
+module.exports = coerce
+
+},{"../classes/semver":119,"../internal/re":149,"./parse":136}],123:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const compareBuild = (a, b, loose) => {
+ const versionA = new SemVer(a, loose)
+ const versionB = new SemVer(b, loose)
+ return versionA.compare(versionB) || versionA.compareBuild(versionB)
+}
+module.exports = compareBuild
+
+},{"../classes/semver":119}],124:[function(require,module,exports){
+const compare = require('./compare')
+const compareLoose = (a, b) => compare(a, b, true)
+module.exports = compareLoose
+
+},{"./compare":125}],125:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const compare = (a, b, loose) =>
+ new SemVer(a, loose).compare(new SemVer(b, loose))
+
+module.exports = compare
+
+},{"../classes/semver":119}],126:[function(require,module,exports){
+const parse = require('./parse')
+const eq = require('./eq')
+
+const diff = (version1, version2) => {
+ if (eq(version1, version2)) {
+ return null
+ } else {
+ const v1 = parse(version1)
+ const v2 = parse(version2)
+ const hasPre = v1.prerelease.length || v2.prerelease.length
+ const prefix = hasPre ? 'pre' : ''
+ const defaultResult = hasPre ? 'prerelease' : ''
+ for (const key in v1) {
+ if (key === 'major' || key === 'minor' || key === 'patch') {
+ if (v1[key] !== v2[key]) {
+ return prefix + key
+ }
+ }
+ }
+ return defaultResult // may be undefined
+ }
+}
+module.exports = diff
+
+},{"./eq":127,"./parse":136}],127:[function(require,module,exports){
+const compare = require('./compare')
+const eq = (a, b, loose) => compare(a, b, loose) === 0
+module.exports = eq
+
+},{"./compare":125}],128:[function(require,module,exports){
+const compare = require('./compare')
+const gt = (a, b, loose) => compare(a, b, loose) > 0
+module.exports = gt
+
+},{"./compare":125}],129:[function(require,module,exports){
+const compare = require('./compare')
+const gte = (a, b, loose) => compare(a, b, loose) >= 0
+module.exports = gte
+
+},{"./compare":125}],130:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+
+const inc = (version, release, options, identifier) => {
+ if (typeof (options) === 'string') {
+ identifier = options
+ options = undefined
+ }
+
+ try {
+ return new SemVer(version, options).inc(release, identifier).version
+ } catch (er) {
+ return null
+ }
+}
+module.exports = inc
+
+},{"../classes/semver":119}],131:[function(require,module,exports){
+const compare = require('./compare')
+const lt = (a, b, loose) => compare(a, b, loose) < 0
+module.exports = lt
+
+},{"./compare":125}],132:[function(require,module,exports){
+const compare = require('./compare')
+const lte = (a, b, loose) => compare(a, b, loose) <= 0
+module.exports = lte
+
+},{"./compare":125}],133:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const major = (a, loose) => new SemVer(a, loose).major
+module.exports = major
+
+},{"../classes/semver":119}],134:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const minor = (a, loose) => new SemVer(a, loose).minor
+module.exports = minor
+
+},{"../classes/semver":119}],135:[function(require,module,exports){
+const compare = require('./compare')
+const neq = (a, b, loose) => compare(a, b, loose) !== 0
+module.exports = neq
+
+},{"./compare":125}],136:[function(require,module,exports){
+const {MAX_LENGTH} = require('../internal/constants')
+const { re, t } = require('../internal/re')
+const SemVer = require('../classes/semver')
+
+const parseOptions = require('../internal/parse-options')
+const parse = (version, options) => {
+ options = parseOptions(options)
+
+ if (version instanceof SemVer) {
+ return version
+ }
+
+ if (typeof version !== 'string') {
+ return null
+ }
+
+ if (version.length > MAX_LENGTH) {
+ return null
+ }
+
+ const r = options.loose ? re[t.LOOSE] : re[t.FULL]
+ if (!r.test(version)) {
+ return null
+ }
+
+ try {
+ return new SemVer(version, options)
+ } catch (er) {
+ return null
+ }
+}
+
+module.exports = parse
+
+},{"../classes/semver":119,"../internal/constants":145,"../internal/parse-options":148,"../internal/re":149}],137:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const patch = (a, loose) => new SemVer(a, loose).patch
+module.exports = patch
+
+},{"../classes/semver":119}],138:[function(require,module,exports){
+const parse = require('./parse')
+const prerelease = (version, options) => {
+ const parsed = parse(version, options)
+ return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
+}
+module.exports = prerelease
+
+},{"./parse":136}],139:[function(require,module,exports){
+const compare = require('./compare')
+const rcompare = (a, b, loose) => compare(b, a, loose)
+module.exports = rcompare
+
+},{"./compare":125}],140:[function(require,module,exports){
+const compareBuild = require('./compare-build')
+const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))
+module.exports = rsort
+
+},{"./compare-build":123}],141:[function(require,module,exports){
+const Range = require('../classes/range')
+const satisfies = (version, range, options) => {
+ try {
+ range = new Range(range, options)
+ } catch (er) {
+ return false
+ }
+ return range.test(version)
+}
+module.exports = satisfies
+
+},{"../classes/range":118}],142:[function(require,module,exports){
+const compareBuild = require('./compare-build')
+const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))
+module.exports = sort
+
+},{"./compare-build":123}],143:[function(require,module,exports){
+const parse = require('./parse')
+const valid = (version, options) => {
+ const v = parse(version, options)
+ return v ? v.version : null
+}
+module.exports = valid
+
+},{"./parse":136}],144:[function(require,module,exports){
+// just pre-load all the stuff that index.js lazily exports
+const internalRe = require('./internal/re')
+module.exports = {
+ re: internalRe.re,
+ src: internalRe.src,
+ tokens: internalRe.t,
+ SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,
+ SemVer: require('./classes/semver'),
+ compareIdentifiers: require('./internal/identifiers').compareIdentifiers,
+ rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,
+ parse: require('./functions/parse'),
+ valid: require('./functions/valid'),
+ clean: require('./functions/clean'),
+ inc: require('./functions/inc'),
+ diff: require('./functions/diff'),
+ major: require('./functions/major'),
+ minor: require('./functions/minor'),
+ patch: require('./functions/patch'),
+ prerelease: require('./functions/prerelease'),
+ compare: require('./functions/compare'),
+ rcompare: require('./functions/rcompare'),
+ compareLoose: require('./functions/compare-loose'),
+ compareBuild: require('./functions/compare-build'),
+ sort: require('./functions/sort'),
+ rsort: require('./functions/rsort'),
+ gt: require('./functions/gt'),
+ lt: require('./functions/lt'),
+ eq: require('./functions/eq'),
+ neq: require('./functions/neq'),
+ gte: require('./functions/gte'),
+ lte: require('./functions/lte'),
+ cmp: require('./functions/cmp'),
+ coerce: require('./functions/coerce'),
+ Comparator: require('./classes/comparator'),
+ Range: require('./classes/range'),
+ satisfies: require('./functions/satisfies'),
+ toComparators: require('./ranges/to-comparators'),
+ maxSatisfying: require('./ranges/max-satisfying'),
+ minSatisfying: require('./ranges/min-satisfying'),
+ minVersion: require('./ranges/min-version'),
+ validRange: require('./ranges/valid'),
+ outside: require('./ranges/outside'),
+ gtr: require('./ranges/gtr'),
+ ltr: require('./ranges/ltr'),
+ intersects: require('./ranges/intersects'),
+ simplifyRange: require('./ranges/simplify'),
+ subset: require('./ranges/subset'),
+}
+
+},{"./classes/comparator":117,"./classes/range":118,"./classes/semver":119,"./functions/clean":120,"./functions/cmp":121,"./functions/coerce":122,"./functions/compare":125,"./functions/compare-build":123,"./functions/compare-loose":124,"./functions/diff":126,"./functions/eq":127,"./functions/gt":128,"./functions/gte":129,"./functions/inc":130,"./functions/lt":131,"./functions/lte":132,"./functions/major":133,"./functions/minor":134,"./functions/neq":135,"./functions/parse":136,"./functions/patch":137,"./functions/prerelease":138,"./functions/rcompare":139,"./functions/rsort":140,"./functions/satisfies":141,"./functions/sort":142,"./functions/valid":143,"./internal/constants":145,"./internal/identifiers":147,"./internal/re":149,"./ranges/gtr":150,"./ranges/intersects":151,"./ranges/ltr":152,"./ranges/max-satisfying":153,"./ranges/min-satisfying":154,"./ranges/min-version":155,"./ranges/outside":156,"./ranges/simplify":157,"./ranges/subset":158,"./ranges/to-comparators":159,"./ranges/valid":160}],145:[function(require,module,exports){
+// Note: this is the semver.org version of the spec that it implements
+// Not necessarily the package version of this code.
+const SEMVER_SPEC_VERSION = '2.0.0'
+
+const MAX_LENGTH = 256
+const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
+ /* istanbul ignore next */ 9007199254740991
+
+// Max safe segment length for coercion.
+const MAX_SAFE_COMPONENT_LENGTH = 16
+
+module.exports = {
+ SEMVER_SPEC_VERSION,
+ MAX_LENGTH,
+ MAX_SAFE_INTEGER,
+ MAX_SAFE_COMPONENT_LENGTH
+}
+
+},{}],146:[function(require,module,exports){
+(function (process){(function (){
+const debug = (
+ typeof process === 'object' &&
+ process.env &&
+ process.env.NODE_DEBUG &&
+ /\bsemver\b/i.test(process.env.NODE_DEBUG)
+) ? (...args) => console.error('SEMVER', ...args)
+ : () => {}
+
+module.exports = debug
+
+}).call(this)}).call(this,require('_process'))
+},{"_process":168}],147:[function(require,module,exports){
+const numeric = /^[0-9]+$/
+const compareIdentifiers = (a, b) => {
+ const anum = numeric.test(a)
+ const bnum = numeric.test(b)
+
+ if (anum && bnum) {
+ a = +a
+ b = +b
+ }
+
+ return a === b ? 0
+ : (anum && !bnum) ? -1
+ : (bnum && !anum) ? 1
+ : a < b ? -1
+ : 1
+}
+
+const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)
+
+module.exports = {
+ compareIdentifiers,
+ rcompareIdentifiers
+}
+
+},{}],148:[function(require,module,exports){
+// parse out just the options we care about so we always get a consistent
+// obj with keys in a consistent order.
+const opts = ['includePrerelease', 'loose', 'rtl']
+const parseOptions = options =>
+ !options ? {}
+ : typeof options !== 'object' ? { loose: true }
+ : opts.filter(k => options[k]).reduce((options, k) => {
+ options[k] = true
+ return options
+ }, {})
+module.exports = parseOptions
+
+},{}],149:[function(require,module,exports){
+const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')
+const debug = require('./debug')
+exports = module.exports = {}
+
+// The actual regexps go on exports.re
+const re = exports.re = []
+const src = exports.src = []
+const t = exports.t = {}
+let R = 0
+
+const createToken = (name, value, isGlobal) => {
+ const index = R++
+ debug(index, value)
+ t[name] = index
+ src[index] = value
+ re[index] = new RegExp(value, isGlobal ? 'g' : undefined)
+}
+
+// The following Regular Expressions can be used for tokenizing,
+// validating, and parsing SemVer version strings.
+
+// ## Numeric Identifier
+// A single `0`, or a non-zero digit followed by zero or more digits.
+
+createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*')
+createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')
+
+// ## Non-numeric Identifier
+// Zero or more digits, followed by a letter or hyphen, and then zero or
+// more letters, digits, or hyphens.
+
+createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*')
+
+// ## Main Version
+// Three dot-separated numeric identifiers.
+
+createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
+ `(${src[t.NUMERICIDENTIFIER]})\\.` +
+ `(${src[t.NUMERICIDENTIFIER]})`)
+
+createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
+ `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
+ `(${src[t.NUMERICIDENTIFIERLOOSE]})`)
+
+// ## Pre-release Version Identifier
+// A numeric identifier, or a non-numeric identifier.
+
+createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]
+}|${src[t.NONNUMERICIDENTIFIER]})`)
+
+createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]
+}|${src[t.NONNUMERICIDENTIFIER]})`)
+
+// ## Pre-release Version
+// Hyphen, followed by one or more dot-separated pre-release version
+// identifiers.
+
+createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
+}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`)
+
+createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
+}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)
+
+// ## Build Metadata Identifier
+// Any combination of digits, letters, or hyphens.
+
+createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')
+
+// ## Build Metadata
+// Plus sign, followed by one or more period-separated build metadata
+// identifiers.
+
+createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
+}(?:\\.${src[t.BUILDIDENTIFIER]})*))`)
+
+// ## Full Version String
+// A main version, followed optionally by a pre-release version and
+// build metadata.
+
+// Note that the only major, minor, patch, and pre-release sections of
+// the version string are capturing groups. The build metadata is not a
+// capturing group, because it should not ever be used in version
+// comparison.
+
+createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
+}${src[t.PRERELEASE]}?${
+ src[t.BUILD]}?`)
+
+createToken('FULL', `^${src[t.FULLPLAIN]}$`)
+
+// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
+// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
+// common in the npm registry.
+createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
+}${src[t.PRERELEASELOOSE]}?${
+ src[t.BUILD]}?`)
+
+createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)
+
+createToken('GTLT', '((?:<|>)?=?)')
+
+// Something like "2.*" or "1.2.x".
+// Note that "x.x" is a valid xRange identifer, meaning "any version"
+// Only the first item is strictly required.
+createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
+createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`)
+
+createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
+ `(?:${src[t.PRERELEASE]})?${
+ src[t.BUILD]}?` +
+ `)?)?`)
+
+createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
+ `(?:${src[t.PRERELEASELOOSE]})?${
+ src[t.BUILD]}?` +
+ `)?)?`)
+
+createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`)
+createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`)
+
+// Coercion.
+// Extract anything that could conceivably be a part of a valid semver
+createToken('COERCE', `${'(^|[^\\d])' +
+ '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
+ `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
+ `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
+ `(?:$|[^\\d])`)
+createToken('COERCERTL', src[t.COERCE], true)
+
+// Tilde ranges.
+// Meaning is "reasonably at or greater than"
+createToken('LONETILDE', '(?:~>?)')
+
+createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true)
+exports.tildeTrimReplace = '$1~'
+
+createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)
+createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)
+
+// Caret ranges.
+// Meaning is "at least and backwards compatible with"
+createToken('LONECARET', '(?:\\^)')
+
+createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true)
+exports.caretTrimReplace = '$1^'
+
+createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)
+createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)
+
+// A simple gt/lt/eq thing, or just "" to indicate "any version"
+createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`)
+createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`)
+
+// An expression to strip any whitespace between the gtlt and the thing
+// it modifies, so that `> 1.2.3` ==> `>1.2.3`
+createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
+}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)
+exports.comparatorTrimReplace = '$1$2$3'
+
+// Something like `1.2.3 - 1.2.4`
+// Note that these all use the loose form, because they'll be
+// checked against either the strict or loose comparator form
+// later.
+createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
+ `\\s+-\\s+` +
+ `(${src[t.XRANGEPLAIN]})` +
+ `\\s*$`)
+
+createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
+ `\\s+-\\s+` +
+ `(${src[t.XRANGEPLAINLOOSE]})` +
+ `\\s*$`)
+
+// Star ranges basically just allow anything at all.
+createToken('STAR', '(<|>)?=?\\s*\\*')
+// >=0.0.0 is like a star
+createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$')
+createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$')
+
+},{"./constants":145,"./debug":146}],150:[function(require,module,exports){
+// Determine if version is greater than all the versions possible in the range.
+const outside = require('./outside')
+const gtr = (version, range, options) => outside(version, range, '>', options)
+module.exports = gtr
+
+},{"./outside":156}],151:[function(require,module,exports){
+const Range = require('../classes/range')
+const intersects = (r1, r2, options) => {
+ r1 = new Range(r1, options)
+ r2 = new Range(r2, options)
+ return r1.intersects(r2)
+}
+module.exports = intersects
+
+},{"../classes/range":118}],152:[function(require,module,exports){
+const outside = require('./outside')
+// Determine if version is less than all the versions possible in the range
+const ltr = (version, range, options) => outside(version, range, '<', options)
+module.exports = ltr
+
+},{"./outside":156}],153:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const Range = require('../classes/range')
+
+const maxSatisfying = (versions, range, options) => {
+ let max = null
+ let maxSV = null
+ let rangeObj = null
+ try {
+ rangeObj = new Range(range, options)
+ } catch (er) {
+ return null
+ }
+ versions.forEach((v) => {
+ if (rangeObj.test(v)) {
+ // satisfies(v, range, options)
+ if (!max || maxSV.compare(v) === -1) {
+ // compare(max, v, true)
+ max = v
+ maxSV = new SemVer(max, options)
+ }
+ }
+ })
+ return max
+}
+module.exports = maxSatisfying
+
+},{"../classes/range":118,"../classes/semver":119}],154:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const Range = require('../classes/range')
+const minSatisfying = (versions, range, options) => {
+ let min = null
+ let minSV = null
+ let rangeObj = null
+ try {
+ rangeObj = new Range(range, options)
+ } catch (er) {
+ return null
+ }
+ versions.forEach((v) => {
+ if (rangeObj.test(v)) {
+ // satisfies(v, range, options)
+ if (!min || minSV.compare(v) === 1) {
+ // compare(min, v, true)
+ min = v
+ minSV = new SemVer(min, options)
+ }
+ }
+ })
+ return min
+}
+module.exports = minSatisfying
+
+},{"../classes/range":118,"../classes/semver":119}],155:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const Range = require('../classes/range')
+const gt = require('../functions/gt')
+
+const minVersion = (range, loose) => {
+ range = new Range(range, loose)
+
+ let minver = new SemVer('0.0.0')
+ if (range.test(minver)) {
+ return minver
+ }
+
+ minver = new SemVer('0.0.0-0')
+ if (range.test(minver)) {
+ return minver
+ }
+
+ minver = null
+ for (let i = 0; i < range.set.length; ++i) {
+ const comparators = range.set[i]
+
+ let setMin = null
+ comparators.forEach((comparator) => {
+ // Clone to avoid manipulating the comparator's semver object.
+ const compver = new SemVer(comparator.semver.version)
+ switch (comparator.operator) {
+ case '>':
+ if (compver.prerelease.length === 0) {
+ compver.patch++
+ } else {
+ compver.prerelease.push(0)
+ }
+ compver.raw = compver.format()
+ /* fallthrough */
+ case '':
+ case '>=':
+ if (!setMin || gt(compver, setMin)) {
+ setMin = compver
+ }
+ break
+ case '<':
+ case '<=':
+ /* Ignore maximum versions */
+ break
+ /* istanbul ignore next */
+ default:
+ throw new Error(`Unexpected operation: ${comparator.operator}`)
+ }
+ })
+ if (setMin && (!minver || gt(minver, setMin)))
+ minver = setMin
+ }
+
+ if (minver && range.test(minver)) {
+ return minver
+ }
+
+ return null
+}
+module.exports = minVersion
+
+},{"../classes/range":118,"../classes/semver":119,"../functions/gt":128}],156:[function(require,module,exports){
+const SemVer = require('../classes/semver')
+const Comparator = require('../classes/comparator')
+const {ANY} = Comparator
+const Range = require('../classes/range')
+const satisfies = require('../functions/satisfies')
+const gt = require('../functions/gt')
+const lt = require('../functions/lt')
+const lte = require('../functions/lte')
+const gte = require('../functions/gte')
+
+const outside = (version, range, hilo, options) => {
+ version = new SemVer(version, options)
+ range = new Range(range, options)
+
+ let gtfn, ltefn, ltfn, comp, ecomp
+ switch (hilo) {
+ case '>':
+ gtfn = gt
+ ltefn = lte
+ ltfn = lt
+ comp = '>'
+ ecomp = '>='
+ break
+ case '<':
+ gtfn = lt
+ ltefn = gte
+ ltfn = gt
+ comp = '<'
+ ecomp = '<='
+ break
+ default:
+ throw new TypeError('Must provide a hilo val of "<" or ">"')
+ }
+
+ // If it satisfies the range it is not outside
+ if (satisfies(version, range, options)) {
+ return false
+ }
+
+ // From now on, variable terms are as if we're in "gtr" mode.
+ // but note that everything is flipped for the "ltr" function.
+
+ for (let i = 0; i < range.set.length; ++i) {
+ const comparators = range.set[i]
+
+ let high = null
+ let low = null
+
+ comparators.forEach((comparator) => {
+ if (comparator.semver === ANY) {
+ comparator = new Comparator('>=0.0.0')
+ }
+ high = high || comparator
+ low = low || comparator
+ if (gtfn(comparator.semver, high.semver, options)) {
+ high = comparator
+ } else if (ltfn(comparator.semver, low.semver, options)) {
+ low = comparator
+ }
+ })
+
+ // If the edge version comparator has a operator then our version
+ // isn't outside it
+ if (high.operator === comp || high.operator === ecomp) {
+ return false
+ }
+
+ // If the lowest version comparator has an operator and our version
+ // is less than it then it isn't higher than the range
+ if ((!low.operator || low.operator === comp) &&
+ ltefn(version, low.semver)) {
+ return false
+ } else if (low.operator === ecomp && ltfn(version, low.semver)) {
+ return false
+ }
+ }
+ return true
+}
+
+module.exports = outside
+
+},{"../classes/comparator":117,"../classes/range":118,"../classes/semver":119,"../functions/gt":128,"../functions/gte":129,"../functions/lt":131,"../functions/lte":132,"../functions/satisfies":141}],157:[function(require,module,exports){
+// given a set of versions and a range, create a "simplified" range
+// that includes the same versions that the original range does
+// If the original range is shorter than the simplified one, return that.
+const satisfies = require('../functions/satisfies.js')
+const compare = require('../functions/compare.js')
+module.exports = (versions, range, options) => {
+ const set = []
+ let min = null
+ let prev = null
+ const v = versions.sort((a, b) => compare(a, b, options))
+ for (const version of v) {
+ const included = satisfies(version, range, options)
+ if (included) {
+ prev = version
+ if (!min)
+ min = version
+ } else {
+ if (prev) {
+ set.push([min, prev])
+ }
+ prev = null
+ min = null
+ }
+ }
+ if (min)
+ set.push([min, null])
+
+ const ranges = []
+ for (const [min, max] of set) {
+ if (min === max)
+ ranges.push(min)
+ else if (!max && min === v[0])
+ ranges.push('*')
+ else if (!max)
+ ranges.push(`>=${min}`)
+ else if (min === v[0])
+ ranges.push(`<=${max}`)
+ else
+ ranges.push(`${min} - ${max}`)
+ }
+ const simplified = ranges.join(' || ')
+ const original = typeof range.raw === 'string' ? range.raw : String(range)
+ return simplified.length < original.length ? simplified : range
+}
+
+},{"../functions/compare.js":125,"../functions/satisfies.js":141}],158:[function(require,module,exports){
+const Range = require('../classes/range.js')
+const Comparator = require('../classes/comparator.js')
+const { ANY } = Comparator
+const satisfies = require('../functions/satisfies.js')
+const compare = require('../functions/compare.js')
+
+// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:
+// - Every simple range `r1, r2, ...` is a null set, OR
+// - Every simple range `r1, r2, ...` which is not a null set is a subset of
+// some `R1, R2, ...`
+//
+// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:
+// - If c is only the ANY comparator
+// - If C is only the ANY comparator, return true
+// - Else if in prerelease mode, return false
+// - else replace c with `[>=0.0.0]`
+// - If C is only the ANY comparator
+// - if in prerelease mode, return true
+// - else replace C with `[>=0.0.0]`
+// - Let EQ be the set of = comparators in c
+// - If EQ is more than one, return true (null set)
+// - Let GT be the highest > or >= comparator in c
+// - Let LT be the lowest < or <= comparator in c
+// - If GT and LT, and GT.semver > LT.semver, return true (null set)
+// - If any C is a = range, and GT or LT are set, return false
+// - If EQ
+// - If GT, and EQ does not satisfy GT, return true (null set)
+// - If LT, and EQ does not satisfy LT, return true (null set)
+// - If EQ satisfies every C, return true
+// - Else return false
+// - If GT
+// - If GT.semver is lower than any > or >= comp in C, return false
+// - If GT is >=, and GT.semver does not satisfy every C, return false
+// - If GT.semver has a prerelease, and not in prerelease mode
+// - If no C has a prerelease and the GT.semver tuple, return false
+// - If LT
+// - If LT.semver is greater than any < or <= comp in C, return false
+// - If LT is <=, and LT.semver does not satisfy every C, return false
+// - If GT.semver has a prerelease, and not in prerelease mode
+// - If no C has a prerelease and the LT.semver tuple, return false
+// - Else return true
+
+const subset = (sub, dom, options = {}) => {
+ if (sub === dom)
+ return true
+
+ sub = new Range(sub, options)
+ dom = new Range(dom, options)
+ let sawNonNull = false
+
+ OUTER: for (const simpleSub of sub.set) {
+ for (const simpleDom of dom.set) {
+ const isSub = simpleSubset(simpleSub, simpleDom, options)
+ sawNonNull = sawNonNull || isSub !== null
+ if (isSub)
+ continue OUTER
+ }
+ // the null set is a subset of everything, but null simple ranges in
+ // a complex range should be ignored. so if we saw a non-null range,
+ // then we know this isn't a subset, but if EVERY simple range was null,
+ // then it is a subset.
+ if (sawNonNull)
+ return false
+ }
+ return true
+}
+
+const simpleSubset = (sub, dom, options) => {
+ if (sub === dom)
+ return true
+
+ if (sub.length === 1 && sub[0].semver === ANY) {
+ if (dom.length === 1 && dom[0].semver === ANY)
+ return true
+ else if (options.includePrerelease)
+ sub = [ new Comparator('>=0.0.0-0') ]
+ else
+ sub = [ new Comparator('>=0.0.0') ]
+ }
+
+ if (dom.length === 1 && dom[0].semver === ANY) {
+ if (options.includePrerelease)
+ return true
+ else
+ dom = [ new Comparator('>=0.0.0') ]
+ }
+
+ const eqSet = new Set()
+ let gt, lt
+ for (const c of sub) {
+ if (c.operator === '>' || c.operator === '>=')
+ gt = higherGT(gt, c, options)
+ else if (c.operator === '<' || c.operator === '<=')
+ lt = lowerLT(lt, c, options)
+ else
+ eqSet.add(c.semver)
+ }
+
+ if (eqSet.size > 1)
+ return null
+
+ let gtltComp
+ if (gt && lt) {
+ gtltComp = compare(gt.semver, lt.semver, options)
+ if (gtltComp > 0)
+ return null
+ else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))
+ return null
+ }
+
+ // will iterate one or zero times
+ for (const eq of eqSet) {
+ if (gt && !satisfies(eq, String(gt), options))
+ return null
+
+ if (lt && !satisfies(eq, String(lt), options))
+ return null
+
+ for (const c of dom) {
+ if (!satisfies(eq, String(c), options))
+ return false
+ }
+
+ return true
+ }
+
+ let higher, lower
+ let hasDomLT, hasDomGT
+ // if the subset has a prerelease, we need a comparator in the superset
+ // with the same tuple and a prerelease, or it's not a subset
+ let needDomLTPre = lt &&
+ !options.includePrerelease &&
+ lt.semver.prerelease.length ? lt.semver : false
+ let needDomGTPre = gt &&
+ !options.includePrerelease &&
+ gt.semver.prerelease.length ? gt.semver : false
+ // exception: <1.2.3-0 is the same as <1.2.3
+ if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&
+ lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {
+ needDomLTPre = false
+ }
+
+ for (const c of dom) {
+ hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='
+ hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='
+ if (gt) {
+ if (needDomGTPre) {
+ if (c.semver.prerelease && c.semver.prerelease.length &&
+ c.semver.major === needDomGTPre.major &&
+ c.semver.minor === needDomGTPre.minor &&
+ c.semver.patch === needDomGTPre.patch) {
+ needDomGTPre = false
+ }
+ }
+ if (c.operator === '>' || c.operator === '>=') {
+ higher = higherGT(gt, c, options)
+ if (higher === c && higher !== gt)
+ return false
+ } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))
+ return false
+ }
+ if (lt) {
+ if (needDomLTPre) {
+ if (c.semver.prerelease && c.semver.prerelease.length &&
+ c.semver.major === needDomLTPre.major &&
+ c.semver.minor === needDomLTPre.minor &&
+ c.semver.patch === needDomLTPre.patch) {
+ needDomLTPre = false
+ }
+ }
+ if (c.operator === '<' || c.operator === '<=') {
+ lower = lowerLT(lt, c, options)
+ if (lower === c && lower !== lt)
+ return false
+ } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))
+ return false
+ }
+ if (!c.operator && (lt || gt) && gtltComp !== 0)
+ return false
+ }
+
+ // if there was a < or >, and nothing in the dom, then must be false
+ // UNLESS it was limited by another range in the other direction.
+ // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
+ if (gt && hasDomLT && !lt && gtltComp !== 0)
+ return false
+
+ if (lt && hasDomGT && !gt && gtltComp !== 0)
+ return false
+
+ // we needed a prerelease range in a specific tuple, but didn't get one
+ // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,
+ // because it includes prereleases in the 1.2.3 tuple
+ if (needDomGTPre || needDomLTPre)
+ return false
+
+ return true
+}
+
+// >=1.2.3 is lower than >1.2.3
+const higherGT = (a, b, options) => {
+ if (!a)
+ return b
+ const comp = compare(a.semver, b.semver, options)
+ return comp > 0 ? a
+ : comp < 0 ? b
+ : b.operator === '>' && a.operator === '>=' ? b
+ : a
+}
+
+// <=1.2.3 is higher than <1.2.3
+const lowerLT = (a, b, options) => {
+ if (!a)
+ return b
+ const comp = compare(a.semver, b.semver, options)
+ return comp < 0 ? a
+ : comp > 0 ? b
+ : b.operator === '<' && a.operator === '<=' ? b
+ : a
+}
+
+module.exports = subset
+
+},{"../classes/comparator.js":117,"../classes/range.js":118,"../functions/compare.js":125,"../functions/satisfies.js":141}],159:[function(require,module,exports){
+const Range = require('../classes/range')
+
+// Mostly just for testing and legacy API reasons
+const toComparators = (range, options) =>
+ new Range(range, options).set
+ .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))
+
+module.exports = toComparators
+
+},{"../classes/range":118}],160:[function(require,module,exports){
+const Range = require('../classes/range')
+const validRange = (range, options) => {
+ try {
+ // Return '*' instead of '' so that truthiness works.
+ // This will throw if it's invalid anyway
+ return new Range(range, options).range || '*'
+ } catch (er) {
+ return null
+ }
+}
+module.exports = validRange
+
+},{"../classes/range":118}],161:[function(require,module,exports){
+'use strict'
+module.exports = function (Yallist) {
+ Yallist.prototype[Symbol.iterator] = function* () {
+ for (let walker = this.head; walker; walker = walker.next) {
+ yield walker.value
+ }
+ }
+}
+
+},{}],162:[function(require,module,exports){
+'use strict'
+module.exports = Yallist
+
+Yallist.Node = Node
+Yallist.create = Yallist
+
+function Yallist (list) {
+ var self = this
+ if (!(self instanceof Yallist)) {
+ self = new Yallist()
+ }
+
+ self.tail = null
+ self.head = null
+ self.length = 0
+
+ if (list && typeof list.forEach === 'function') {
+ list.forEach(function (item) {
+ self.push(item)
+ })
+ } else if (arguments.length > 0) {
+ for (var i = 0, l = arguments.length; i < l; i++) {
+ self.push(arguments[i])
+ }
+ }
+
+ return self
+}
+
+Yallist.prototype.removeNode = function (node) {
+ if (node.list !== this) {
+ throw new Error('removing node which does not belong to this list')
+ }
+
+ var next = node.next
+ var prev = node.prev
+
+ if (next) {
+ next.prev = prev
+ }
+
+ if (prev) {
+ prev.next = next
+ }
+
+ if (node === this.head) {
+ this.head = next
+ }
+ if (node === this.tail) {
+ this.tail = prev
+ }
+
+ node.list.length--
+ node.next = null
+ node.prev = null
+ node.list = null
+
+ return next
+}
+
+Yallist.prototype.unshiftNode = function (node) {
+ if (node === this.head) {
+ return
+ }
+
+ if (node.list) {
+ node.list.removeNode(node)
+ }
+
+ var head = this.head
+ node.list = this
+ node.next = head
+ if (head) {
+ head.prev = node
+ }
+
+ this.head = node
+ if (!this.tail) {
+ this.tail = node
+ }
+ this.length++
+}
+
+Yallist.prototype.pushNode = function (node) {
+ if (node === this.tail) {
+ return
+ }
+
+ if (node.list) {
+ node.list.removeNode(node)
+ }
+
+ var tail = this.tail
+ node.list = this
+ node.prev = tail
+ if (tail) {
+ tail.next = node
+ }
+
+ this.tail = node
+ if (!this.head) {
+ this.head = node
+ }
+ this.length++
+}
+
+Yallist.prototype.push = function () {
+ for (var i = 0, l = arguments.length; i < l; i++) {
+ push(this, arguments[i])
+ }
+ return this.length
+}
+
+Yallist.prototype.unshift = function () {
+ for (var i = 0, l = arguments.length; i < l; i++) {
+ unshift(this, arguments[i])
+ }
+ return this.length
+}
+
+Yallist.prototype.pop = function () {
+ if (!this.tail) {
+ return undefined
+ }
+
+ var res = this.tail.value
+ this.tail = this.tail.prev
+ if (this.tail) {
+ this.tail.next = null
+ } else {
+ this.head = null
+ }
+ this.length--
+ return res
+}
+
+Yallist.prototype.shift = function () {
+ if (!this.head) {
+ return undefined
+ }
+
+ var res = this.head.value
+ this.head = this.head.next
+ if (this.head) {
+ this.head.prev = null
+ } else {
+ this.tail = null
+ }
+ this.length--
+ return res
+}
+
+Yallist.prototype.forEach = function (fn, thisp) {
+ thisp = thisp || this
+ for (var walker = this.head, i = 0; walker !== null; i++) {
+ fn.call(thisp, walker.value, i, this)
+ walker = walker.next
+ }
+}
+
+Yallist.prototype.forEachReverse = function (fn, thisp) {
+ thisp = thisp || this
+ for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {
+ fn.call(thisp, walker.value, i, this)
+ walker = walker.prev
+ }
+}
+
+Yallist.prototype.get = function (n) {
+ for (var i = 0, walker = this.head; walker !== null && i < n; i++) {
+ // abort out of the list early if we hit a cycle
+ walker = walker.next
+ }
+ if (i === n && walker !== null) {
+ return walker.value
+ }
+}
+
+Yallist.prototype.getReverse = function (n) {
+ for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {
+ // abort out of the list early if we hit a cycle
+ walker = walker.prev
+ }
+ if (i === n && walker !== null) {
+ return walker.value
+ }
+}
+
+Yallist.prototype.map = function (fn, thisp) {
+ thisp = thisp || this
+ var res = new Yallist()
+ for (var walker = this.head; walker !== null;) {
+ res.push(fn.call(thisp, walker.value, this))
+ walker = walker.next
+ }
+ return res
+}
+
+Yallist.prototype.mapReverse = function (fn, thisp) {
+ thisp = thisp || this
+ var res = new Yallist()
+ for (var walker = this.tail; walker !== null;) {
+ res.push(fn.call(thisp, walker.value, this))
+ walker = walker.prev
+ }
+ return res
+}
+
+Yallist.prototype.reduce = function (fn, initial) {
+ var acc
+ var walker = this.head
+ if (arguments.length > 1) {
+ acc = initial
+ } else if (this.head) {
+ walker = this.head.next
+ acc = this.head.value
+ } else {
+ throw new TypeError('Reduce of empty list with no initial value')
+ }
+
+ for (var i = 0; walker !== null; i++) {
+ acc = fn(acc, walker.value, i)
+ walker = walker.next
+ }
+
+ return acc
+}
+
+Yallist.prototype.reduceReverse = function (fn, initial) {
+ var acc
+ var walker = this.tail
+ if (arguments.length > 1) {
+ acc = initial
+ } else if (this.tail) {
+ walker = this.tail.prev
+ acc = this.tail.value
+ } else {
+ throw new TypeError('Reduce of empty list with no initial value')
+ }
+
+ for (var i = this.length - 1; walker !== null; i--) {
+ acc = fn(acc, walker.value, i)
+ walker = walker.prev
+ }
+
+ return acc
+}
+
+Yallist.prototype.toArray = function () {
+ var arr = new Array(this.length)
+ for (var i = 0, walker = this.head; walker !== null; i++) {
+ arr[i] = walker.value
+ walker = walker.next
+ }
+ return arr
+}
+
+Yallist.prototype.toArrayReverse = function () {
+ var arr = new Array(this.length)
+ for (var i = 0, walker = this.tail; walker !== null; i++) {
+ arr[i] = walker.value
+ walker = walker.prev
+ }
+ return arr
+}
+
+Yallist.prototype.slice = function (from, to) {
+ to = to || this.length
+ if (to < 0) {
+ to += this.length
+ }
+ from = from || 0
+ if (from < 0) {
+ from += this.length
+ }
+ var ret = new Yallist()
+ if (to < from || to < 0) {
+ return ret
+ }
+ if (from < 0) {
+ from = 0
+ }
+ if (to > this.length) {
+ to = this.length
+ }
+ for (var i = 0, walker = this.head; walker !== null && i < from; i++) {
+ walker = walker.next
+ }
+ for (; walker !== null && i < to; i++, walker = walker.next) {
+ ret.push(walker.value)
+ }
+ return ret
+}
+
+Yallist.prototype.sliceReverse = function (from, to) {
+ to = to || this.length
+ if (to < 0) {
+ to += this.length
+ }
+ from = from || 0
+ if (from < 0) {
+ from += this.length
+ }
+ var ret = new Yallist()
+ if (to < from || to < 0) {
+ return ret
+ }
+ if (from < 0) {
+ from = 0
+ }
+ if (to > this.length) {
+ to = this.length
+ }
+ for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {
+ walker = walker.prev
+ }
+ for (; walker !== null && i > from; i--, walker = walker.prev) {
+ ret.push(walker.value)
+ }
+ return ret
+}
+
+Yallist.prototype.splice = function (start, deleteCount, ...nodes) {
+ if (start > this.length) {
+ start = this.length - 1
+ }
+ if (start < 0) {
+ start = this.length + start;
+ }
+
+ for (var i = 0, walker = this.head; walker !== null && i < start; i++) {
+ walker = walker.next
+ }
+
+ var ret = []
+ for (var i = 0; walker && i < deleteCount; i++) {
+ ret.push(walker.value)
+ walker = this.removeNode(walker)
+ }
+ if (walker === null) {
+ walker = this.tail
+ }
+
+ if (walker !== this.head && walker !== this.tail) {
+ walker = walker.prev
+ }
+
+ for (var i = 0; i < nodes.length; i++) {
+ walker = insert(this, walker, nodes[i])
+ }
+ return ret;
+}
+
+Yallist.prototype.reverse = function () {
+ var head = this.head
+ var tail = this.tail
+ for (var walker = head; walker !== null; walker = walker.prev) {
+ var p = walker.prev
+ walker.prev = walker.next
+ walker.next = p
+ }
+ this.head = tail
+ this.tail = head
+ return this
+}
+
+function insert (self, node, value) {
+ var inserted = node === self.head ?
+ new Node(value, null, node, self) :
+ new Node(value, node, node.next, self)
+
+ if (inserted.next === null) {
+ self.tail = inserted
+ }
+ if (inserted.prev === null) {
+ self.head = inserted
+ }
+
+ self.length++
+
+ return inserted
+}
+
+function push (self, item) {
+ self.tail = new Node(item, self.tail, null, self)
+ if (!self.head) {
+ self.head = self.tail
+ }
+ self.length++
+}
+
+function unshift (self, item) {
+ self.head = new Node(item, null, self.head, self)
+ if (!self.tail) {
+ self.tail = self.head
+ }
+ self.length++
+}
+
+function Node (value, prev, next, list) {
+ if (!(this instanceof Node)) {
+ return new Node(value, prev, next, list)
+ }
+
+ this.list = list
+ this.value = value
+
+ if (prev) {
+ prev.next = this
+ this.prev = prev
+ } else {
+ this.prev = null
+ }
+
+ if (next) {
+ next.prev = this
+ this.next = next
+ } else {
+ this.next = null
+ }
+}
+
+try {
+ // add if support for Symbol.iterator is present
+ require('./iterator.js')(Yallist)
+} catch (er) {}
+
+},{"./iterator.js":161}],163:[function(require,module,exports){
+
+},{}],164:[function(require,module,exports){
+'use strict'
+
+exports.byteLength = byteLength
+exports.toByteArray = toByteArray
+exports.fromByteArray = fromByteArray
+
+var lookup = []
+var revLookup = []
+var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
+
+var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
+for (var i = 0, len = code.length; i < len; ++i) {
+ lookup[i] = code[i]
+ revLookup[code.charCodeAt(i)] = i
+}
+
+// Support decoding URL-safe base64 strings, as Node.js does.
+// See: https://en.wikipedia.org/wiki/Base64#URL_applications
+revLookup['-'.charCodeAt(0)] = 62
+revLookup['_'.charCodeAt(0)] = 63
+
+function getLens (b64) {
+ var len = b64.length
+
+ if (len % 4 > 0) {
+ throw new Error('Invalid string. Length must be a multiple of 4')
+ }
+
+ // Trim off extra bytes after placeholder bytes are found
+ // See: https://github.com/beatgammit/base64-js/issues/42
+ var validLen = b64.indexOf('=')
+ if (validLen === -1) validLen = len
+
+ var placeHoldersLen = validLen === len
+ ? 0
+ : 4 - (validLen % 4)
+
+ return [validLen, placeHoldersLen]
+}
+
+// base64 is 4/3 + up to two characters of the original data
+function byteLength (b64) {
+ var lens = getLens(b64)
+ var validLen = lens[0]
+ var placeHoldersLen = lens[1]
+ return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
+}
+
+function _byteLength (b64, validLen, placeHoldersLen) {
+ return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
+}
+
+function toByteArray (b64) {
+ var tmp
+ var lens = getLens(b64)
+ var validLen = lens[0]
+ var placeHoldersLen = lens[1]
+
+ var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
+
+ var curByte = 0
+
+ // if there are placeholders, only get up to the last complete 4 chars
+ var len = placeHoldersLen > 0
+ ? validLen - 4
+ : validLen
+
+ var i
+ for (i = 0; i < len; i += 4) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 18) |
+ (revLookup[b64.charCodeAt(i + 1)] << 12) |
+ (revLookup[b64.charCodeAt(i + 2)] << 6) |
+ revLookup[b64.charCodeAt(i + 3)]
+ arr[curByte++] = (tmp >> 16) & 0xFF
+ arr[curByte++] = (tmp >> 8) & 0xFF
+ arr[curByte++] = tmp & 0xFF
+ }
+
+ if (placeHoldersLen === 2) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 2) |
+ (revLookup[b64.charCodeAt(i + 1)] >> 4)
+ arr[curByte++] = tmp & 0xFF
+ }
+
+ if (placeHoldersLen === 1) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 10) |
+ (revLookup[b64.charCodeAt(i + 1)] << 4) |
+ (revLookup[b64.charCodeAt(i + 2)] >> 2)
+ arr[curByte++] = (tmp >> 8) & 0xFF
+ arr[curByte++] = tmp & 0xFF
+ }
+
+ return arr
+}
+
+function tripletToBase64 (num) {
+ return lookup[num >> 18 & 0x3F] +
+ lookup[num >> 12 & 0x3F] +
+ lookup[num >> 6 & 0x3F] +
+ lookup[num & 0x3F]
+}
+
+function encodeChunk (uint8, start, end) {
+ var tmp
+ var output = []
+ for (var i = start; i < end; i += 3) {
+ tmp =
+ ((uint8[i] << 16) & 0xFF0000) +
+ ((uint8[i + 1] << 8) & 0xFF00) +
+ (uint8[i + 2] & 0xFF)
+ output.push(tripletToBase64(tmp))
+ }
+ return output.join('')
+}
+
+function fromByteArray (uint8) {
+ var tmp
+ var len = uint8.length
+ var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
+ var parts = []
+ var maxChunkLength = 16383 // must be multiple of 3
+
+ // go through the array every three bytes, we'll deal with trailing stuff later
+ for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
+ parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
+ }
+
+ // pad the end with zeros, but make sure to not forget the extra bytes
+ if (extraBytes === 1) {
+ tmp = uint8[len - 1]
+ parts.push(
+ lookup[tmp >> 2] +
+ lookup[(tmp << 4) & 0x3F] +
+ '=='
+ )
+ } else if (extraBytes === 2) {
+ tmp = (uint8[len - 2] << 8) + uint8[len - 1]
+ parts.push(
+ lookup[tmp >> 10] +
+ lookup[(tmp >> 4) & 0x3F] +
+ lookup[(tmp << 2) & 0x3F] +
+ '='
+ )
+ }
+
+ return parts.join('')
+}
+
+},{}],165:[function(require,module,exports){
+(function (Buffer){(function (){
+/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh
+ * @license MIT
+ */
+/* eslint-disable no-proto */
+
+'use strict'
+
+var base64 = require('base64-js')
+var ieee754 = require('ieee754')
+
+exports.Buffer = Buffer
+exports.SlowBuffer = SlowBuffer
+exports.INSPECT_MAX_BYTES = 50
+
+var K_MAX_LENGTH = 0x7fffffff
+exports.kMaxLength = K_MAX_LENGTH
+
+/**
+ * If `Buffer.TYPED_ARRAY_SUPPORT`:
+ * === true Use Uint8Array implementation (fastest)
+ * === false Print warning and recommend using `buffer` v4.x which has an Object
+ * implementation (most compatible, even IE6)
+ *
+ * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
+ * Opera 11.6+, iOS 4.2+.
+ *
+ * We report that the browser does not support typed arrays if the are not subclassable
+ * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`
+ * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support
+ * for __proto__ and has a buggy typed array implementation.
+ */
+Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
+
+if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
+ typeof console.error === 'function') {
+ console.error(
+ 'This browser lacks typed array (Uint8Array) support which is required by ' +
+ '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
+ )
+}
+
+function typedArraySupport () {
+ // Can typed array instances can be augmented?
+ try {
+ var arr = new Uint8Array(1)
+ arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }
+ return arr.foo() === 42
+ } catch (e) {
+ return false
+ }
+}
+
+Object.defineProperty(Buffer.prototype, 'parent', {
+ enumerable: true,
+ get: function () {
+ if (!Buffer.isBuffer(this)) return undefined
+ return this.buffer
+ }
+})
+
+Object.defineProperty(Buffer.prototype, 'offset', {
+ enumerable: true,
+ get: function () {
+ if (!Buffer.isBuffer(this)) return undefined
+ return this.byteOffset
+ }
+})
+
+function createBuffer (length) {
+ if (length > K_MAX_LENGTH) {
+ throw new RangeError('The value "' + length + '" is invalid for option "size"')
+ }
+ // Return an augmented `Uint8Array` instance
+ var buf = new Uint8Array(length)
+ buf.__proto__ = Buffer.prototype
+ return buf
+}
+
+/**
+ * The Buffer constructor returns instances of `Uint8Array` that have their
+ * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
+ * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
+ * and the `Uint8Array` methods. Square bracket notation works as expected -- it
+ * returns a single octet.
+ *
+ * The `Uint8Array` prototype remains unmodified.
+ */
+
+function Buffer (arg, encodingOrOffset, length) {
+ // Common case.
+ if (typeof arg === 'number') {
+ if (typeof encodingOrOffset === 'string') {
+ throw new TypeError(
+ 'The "string" argument must be of type string. Received type number'
+ )
+ }
+ return allocUnsafe(arg)
+ }
+ return from(arg, encodingOrOffset, length)
+}
+
+// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
+if (typeof Symbol !== 'undefined' && Symbol.species != null &&
+ Buffer[Symbol.species] === Buffer) {
+ Object.defineProperty(Buffer, Symbol.species, {
+ value: null,
+ configurable: true,
+ enumerable: false,
+ writable: false
+ })
+}
+
+Buffer.poolSize = 8192 // not used by this implementation
+
+function from (value, encodingOrOffset, length) {
+ if (typeof value === 'string') {
+ return fromString(value, encodingOrOffset)
+ }
+
+ if (ArrayBuffer.isView(value)) {
+ return fromArrayLike(value)
+ }
+
+ if (value == null) {
+ throw TypeError(
+ 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +
+ 'or Array-like Object. Received type ' + (typeof value)
+ )
+ }
+
+ if (isInstance(value, ArrayBuffer) ||
+ (value && isInstance(value.buffer, ArrayBuffer))) {
+ return fromArrayBuffer(value, encodingOrOffset, length)
+ }
+
+ if (typeof value === 'number') {
+ throw new TypeError(
+ 'The "value" argument must not be of type number. Received type number'
+ )
+ }
+
+ var valueOf = value.valueOf && value.valueOf()
+ if (valueOf != null && valueOf !== value) {
+ return Buffer.from(valueOf, encodingOrOffset, length)
+ }
+
+ var b = fromObject(value)
+ if (b) return b
+
+ if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&
+ typeof value[Symbol.toPrimitive] === 'function') {
+ return Buffer.from(
+ value[Symbol.toPrimitive]('string'), encodingOrOffset, length
+ )
+ }
+
+ throw new TypeError(
+ 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +
+ 'or Array-like Object. Received type ' + (typeof value)
+ )
+}
+
+/**
+ * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
+ * if value is a number.
+ * Buffer.from(str[, encoding])
+ * Buffer.from(array)
+ * Buffer.from(buffer)
+ * Buffer.from(arrayBuffer[, byteOffset[, length]])
+ **/
+Buffer.from = function (value, encodingOrOffset, length) {
+ return from(value, encodingOrOffset, length)
+}
+
+// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
+// https://github.com/feross/buffer/pull/148
+Buffer.prototype.__proto__ = Uint8Array.prototype
+Buffer.__proto__ = Uint8Array
+
+function assertSize (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('"size" argument must be of type number')
+ } else if (size < 0) {
+ throw new RangeError('The value "' + size + '" is invalid for option "size"')
+ }
+}
+
+function alloc (size, fill, encoding) {
+ assertSize(size)
+ if (size <= 0) {
+ return createBuffer(size)
+ }
+ if (fill !== undefined) {
+ // Only pay attention to encoding if it's a string. This
+ // prevents accidentally sending in a number that would
+ // be interpretted as a start offset.
+ return typeof encoding === 'string'
+ ? createBuffer(size).fill(fill, encoding)
+ : createBuffer(size).fill(fill)
+ }
+ return createBuffer(size)
+}
+
+/**
+ * Creates a new filled Buffer instance.
+ * alloc(size[, fill[, encoding]])
+ **/
+Buffer.alloc = function (size, fill, encoding) {
+ return alloc(size, fill, encoding)
+}
+
+function allocUnsafe (size) {
+ assertSize(size)
+ return createBuffer(size < 0 ? 0 : checked(size) | 0)
+}
+
+/**
+ * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
+ * */
+Buffer.allocUnsafe = function (size) {
+ return allocUnsafe(size)
+}
+/**
+ * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
+ */
+Buffer.allocUnsafeSlow = function (size) {
+ return allocUnsafe(size)
+}
+
+function fromString (string, encoding) {
+ if (typeof encoding !== 'string' || encoding === '') {
+ encoding = 'utf8'
+ }
+
+ if (!Buffer.isEncoding(encoding)) {
+ throw new TypeError('Unknown encoding: ' + encoding)
+ }
+
+ var length = byteLength(string, encoding) | 0
+ var buf = createBuffer(length)
+
+ var actual = buf.write(string, encoding)
+
+ if (actual !== length) {
+ // Writing a hex string, for example, that contains invalid characters will
+ // cause everything after the first invalid character to be ignored. (e.g.
+ // 'abxxcd' will be treated as 'ab')
+ buf = buf.slice(0, actual)
+ }
+
+ return buf
+}
+
+function fromArrayLike (array) {
+ var length = array.length < 0 ? 0 : checked(array.length) | 0
+ var buf = createBuffer(length)
+ for (var i = 0; i < length; i += 1) {
+ buf[i] = array[i] & 255
+ }
+ return buf
+}
+
+function fromArrayBuffer (array, byteOffset, length) {
+ if (byteOffset < 0 || array.byteLength < byteOffset) {
+ throw new RangeError('"offset" is outside of buffer bounds')
+ }
+
+ if (array.byteLength < byteOffset + (length || 0)) {
+ throw new RangeError('"length" is outside of buffer bounds')
+ }
+
+ var buf
+ if (byteOffset === undefined && length === undefined) {
+ buf = new Uint8Array(array)
+ } else if (length === undefined) {
+ buf = new Uint8Array(array, byteOffset)
+ } else {
+ buf = new Uint8Array(array, byteOffset, length)
+ }
+
+ // Return an augmented `Uint8Array` instance
+ buf.__proto__ = Buffer.prototype
+ return buf
+}
+
+function fromObject (obj) {
+ if (Buffer.isBuffer(obj)) {
+ var len = checked(obj.length) | 0
+ var buf = createBuffer(len)
+
+ if (buf.length === 0) {
+ return buf
+ }
+
+ obj.copy(buf, 0, 0, len)
+ return buf
+ }
+
+ if (obj.length !== undefined) {
+ if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
+ return createBuffer(0)
+ }
+ return fromArrayLike(obj)
+ }
+
+ if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
+ return fromArrayLike(obj.data)
+ }
+}
+
+function checked (length) {
+ // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
+ // length is NaN (which is otherwise coerced to zero.)
+ if (length >= K_MAX_LENGTH) {
+ throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
+ 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')
+ }
+ return length | 0
+}
+
+function SlowBuffer (length) {
+ if (+length != length) { // eslint-disable-line eqeqeq
+ length = 0
+ }
+ return Buffer.alloc(+length)
+}
+
+Buffer.isBuffer = function isBuffer (b) {
+ return b != null && b._isBuffer === true &&
+ b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false
+}
+
+Buffer.compare = function compare (a, b) {
+ if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)
+ if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)
+ if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
+ throw new TypeError(
+ 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'
+ )
+ }
+
+ if (a === b) return 0
+
+ var x = a.length
+ var y = b.length
+
+ for (var i = 0, len = Math.min(x, y); i < len; ++i) {
+ if (a[i] !== b[i]) {
+ x = a[i]
+ y = b[i]
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+}
+
+Buffer.isEncoding = function isEncoding (encoding) {
+ switch (String(encoding).toLowerCase()) {
+ case 'hex':
+ case 'utf8':
+ case 'utf-8':
+ case 'ascii':
+ case 'latin1':
+ case 'binary':
+ case 'base64':
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return true
+ default:
+ return false
+ }
+}
+
+Buffer.concat = function concat (list, length) {
+ if (!Array.isArray(list)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+
+ if (list.length === 0) {
+ return Buffer.alloc(0)
+ }
+
+ var i
+ if (length === undefined) {
+ length = 0
+ for (i = 0; i < list.length; ++i) {
+ length += list[i].length
+ }
+ }
+
+ var buffer = Buffer.allocUnsafe(length)
+ var pos = 0
+ for (i = 0; i < list.length; ++i) {
+ var buf = list[i]
+ if (isInstance(buf, Uint8Array)) {
+ buf = Buffer.from(buf)
+ }
+ if (!Buffer.isBuffer(buf)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+ buf.copy(buffer, pos)
+ pos += buf.length
+ }
+ return buffer
+}
+
+function byteLength (string, encoding) {
+ if (Buffer.isBuffer(string)) {
+ return string.length
+ }
+ if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {
+ return string.byteLength
+ }
+ if (typeof string !== 'string') {
+ throw new TypeError(
+ 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' +
+ 'Received type ' + typeof string
+ )
+ }
+
+ var len = string.length
+ var mustMatch = (arguments.length > 2 && arguments[2] === true)
+ if (!mustMatch && len === 0) return 0
+
+ // Use a for loop to avoid recursion
+ var loweredCase = false
+ for (;;) {
+ switch (encoding) {
+ case 'ascii':
+ case 'latin1':
+ case 'binary':
+ return len
+ case 'utf8':
+ case 'utf-8':
+ return utf8ToBytes(string).length
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return len * 2
+ case 'hex':
+ return len >>> 1
+ case 'base64':
+ return base64ToBytes(string).length
+ default:
+ if (loweredCase) {
+ return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8
+ }
+ encoding = ('' + encoding).toLowerCase()
+ loweredCase = true
+ }
+ }
+}
+Buffer.byteLength = byteLength
+
+function slowToString (encoding, start, end) {
+ var loweredCase = false
+
+ // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
+ // property of a typed array.
+
+ // This behaves neither like String nor Uint8Array in that we set start/end
+ // to their upper/lower bounds if the value passed is out of range.
+ // undefined is handled specially as per ECMA-262 6th Edition,
+ // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
+ if (start === undefined || start < 0) {
+ start = 0
+ }
+ // Return early if start > this.length. Done here to prevent potential uint32
+ // coercion fail below.
+ if (start > this.length) {
+ return ''
+ }
+
+ if (end === undefined || end > this.length) {
+ end = this.length
+ }
+
+ if (end <= 0) {
+ return ''
+ }
+
+ // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
+ end >>>= 0
+ start >>>= 0
+
+ if (end <= start) {
+ return ''
+ }
+
+ if (!encoding) encoding = 'utf8'
+
+ while (true) {
+ switch (encoding) {
+ case 'hex':
+ return hexSlice(this, start, end)
+
+ case 'utf8':
+ case 'utf-8':
+ return utf8Slice(this, start, end)
+
+ case 'ascii':
+ return asciiSlice(this, start, end)
+
+ case 'latin1':
+ case 'binary':
+ return latin1Slice(this, start, end)
+
+ case 'base64':
+ return base64Slice(this, start, end)
+
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return utf16leSlice(this, start, end)
+
+ default:
+ if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
+ encoding = (encoding + '').toLowerCase()
+ loweredCase = true
+ }
+ }
+}
+
+// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
+// to detect a Buffer instance. It's not possible to use `instanceof Buffer`
+// reliably in a browserify context because there could be multiple different
+// copies of the 'buffer' package in use. This method works even for Buffer
+// instances that were created from another copy of the `buffer` package.
+// See: https://github.com/feross/buffer/issues/154
+Buffer.prototype._isBuffer = true
+
+function swap (b, n, m) {
+ var i = b[n]
+ b[n] = b[m]
+ b[m] = i
+}
+
+Buffer.prototype.swap16 = function swap16 () {
+ var len = this.length
+ if (len % 2 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 16-bits')
+ }
+ for (var i = 0; i < len; i += 2) {
+ swap(this, i, i + 1)
+ }
+ return this
+}
+
+Buffer.prototype.swap32 = function swap32 () {
+ var len = this.length
+ if (len % 4 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 32-bits')
+ }
+ for (var i = 0; i < len; i += 4) {
+ swap(this, i, i + 3)
+ swap(this, i + 1, i + 2)
+ }
+ return this
+}
+
+Buffer.prototype.swap64 = function swap64 () {
+ var len = this.length
+ if (len % 8 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 64-bits')
+ }
+ for (var i = 0; i < len; i += 8) {
+ swap(this, i, i + 7)
+ swap(this, i + 1, i + 6)
+ swap(this, i + 2, i + 5)
+ swap(this, i + 3, i + 4)
+ }
+ return this
+}
+
+Buffer.prototype.toString = function toString () {
+ var length = this.length
+ if (length === 0) return ''
+ if (arguments.length === 0) return utf8Slice(this, 0, length)
+ return slowToString.apply(this, arguments)
+}
+
+Buffer.prototype.toLocaleString = Buffer.prototype.toString
+
+Buffer.prototype.equals = function equals (b) {
+ if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
+ if (this === b) return true
+ return Buffer.compare(this, b) === 0
+}
+
+Buffer.prototype.inspect = function inspect () {
+ var str = ''
+ var max = exports.INSPECT_MAX_BYTES
+ str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()
+ if (this.length > max) str += ' ... '
+ return ''
+}
+
+Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
+ if (isInstance(target, Uint8Array)) {
+ target = Buffer.from(target, target.offset, target.byteLength)
+ }
+ if (!Buffer.isBuffer(target)) {
+ throw new TypeError(
+ 'The "target" argument must be one of type Buffer or Uint8Array. ' +
+ 'Received type ' + (typeof target)
+ )
+ }
+
+ if (start === undefined) {
+ start = 0
+ }
+ if (end === undefined) {
+ end = target ? target.length : 0
+ }
+ if (thisStart === undefined) {
+ thisStart = 0
+ }
+ if (thisEnd === undefined) {
+ thisEnd = this.length
+ }
+
+ if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
+ throw new RangeError('out of range index')
+ }
+
+ if (thisStart >= thisEnd && start >= end) {
+ return 0
+ }
+ if (thisStart >= thisEnd) {
+ return -1
+ }
+ if (start >= end) {
+ return 1
+ }
+
+ start >>>= 0
+ end >>>= 0
+ thisStart >>>= 0
+ thisEnd >>>= 0
+
+ if (this === target) return 0
+
+ var x = thisEnd - thisStart
+ var y = end - start
+ var len = Math.min(x, y)
+
+ var thisCopy = this.slice(thisStart, thisEnd)
+ var targetCopy = target.slice(start, end)
+
+ for (var i = 0; i < len; ++i) {
+ if (thisCopy[i] !== targetCopy[i]) {
+ x = thisCopy[i]
+ y = targetCopy[i]
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+}
+
+// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
+// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
+//
+// Arguments:
+// - buffer - a Buffer to search
+// - val - a string, Buffer, or number
+// - byteOffset - an index into `buffer`; will be clamped to an int32
+// - encoding - an optional encoding, relevant is val is a string
+// - dir - true for indexOf, false for lastIndexOf
+function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
+ // Empty buffer means no match
+ if (buffer.length === 0) return -1
+
+ // Normalize byteOffset
+ if (typeof byteOffset === 'string') {
+ encoding = byteOffset
+ byteOffset = 0
+ } else if (byteOffset > 0x7fffffff) {
+ byteOffset = 0x7fffffff
+ } else if (byteOffset < -0x80000000) {
+ byteOffset = -0x80000000
+ }
+ byteOffset = +byteOffset // Coerce to Number.
+ if (numberIsNaN(byteOffset)) {
+ // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
+ byteOffset = dir ? 0 : (buffer.length - 1)
+ }
+
+ // Normalize byteOffset: negative offsets start from the end of the buffer
+ if (byteOffset < 0) byteOffset = buffer.length + byteOffset
+ if (byteOffset >= buffer.length) {
+ if (dir) return -1
+ else byteOffset = buffer.length - 1
+ } else if (byteOffset < 0) {
+ if (dir) byteOffset = 0
+ else return -1
+ }
+
+ // Normalize val
+ if (typeof val === 'string') {
+ val = Buffer.from(val, encoding)
+ }
+
+ // Finally, search either indexOf (if dir is true) or lastIndexOf
+ if (Buffer.isBuffer(val)) {
+ // Special case: looking for empty string/buffer always fails
+ if (val.length === 0) {
+ return -1
+ }
+ return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
+ } else if (typeof val === 'number') {
+ val = val & 0xFF // Search for a byte value [0-255]
+ if (typeof Uint8Array.prototype.indexOf === 'function') {
+ if (dir) {
+ return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
+ } else {
+ return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
+ }
+ }
+ return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
+ }
+
+ throw new TypeError('val must be string, number or Buffer')
+}
+
+function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
+ var indexSize = 1
+ var arrLength = arr.length
+ var valLength = val.length
+
+ if (encoding !== undefined) {
+ encoding = String(encoding).toLowerCase()
+ if (encoding === 'ucs2' || encoding === 'ucs-2' ||
+ encoding === 'utf16le' || encoding === 'utf-16le') {
+ if (arr.length < 2 || val.length < 2) {
+ return -1
+ }
+ indexSize = 2
+ arrLength /= 2
+ valLength /= 2
+ byteOffset /= 2
+ }
+ }
+
+ function read (buf, i) {
+ if (indexSize === 1) {
+ return buf[i]
+ } else {
+ return buf.readUInt16BE(i * indexSize)
+ }
+ }
+
+ var i
+ if (dir) {
+ var foundIndex = -1
+ for (i = byteOffset; i < arrLength; i++) {
+ if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
+ if (foundIndex === -1) foundIndex = i
+ if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
+ } else {
+ if (foundIndex !== -1) i -= i - foundIndex
+ foundIndex = -1
+ }
+ }
+ } else {
+ if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
+ for (i = byteOffset; i >= 0; i--) {
+ var found = true
+ for (var j = 0; j < valLength; j++) {
+ if (read(arr, i + j) !== read(val, j)) {
+ found = false
+ break
+ }
+ }
+ if (found) return i
+ }
+ }
+
+ return -1
+}
+
+Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
+ return this.indexOf(val, byteOffset, encoding) !== -1
+}
+
+Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
+}
+
+Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
+}
+
+function hexWrite (buf, string, offset, length) {
+ offset = Number(offset) || 0
+ var remaining = buf.length - offset
+ if (!length) {
+ length = remaining
+ } else {
+ length = Number(length)
+ if (length > remaining) {
+ length = remaining
+ }
+ }
+
+ var strLen = string.length
+
+ if (length > strLen / 2) {
+ length = strLen / 2
+ }
+ for (var i = 0; i < length; ++i) {
+ var parsed = parseInt(string.substr(i * 2, 2), 16)
+ if (numberIsNaN(parsed)) return i
+ buf[offset + i] = parsed
+ }
+ return i
+}
+
+function utf8Write (buf, string, offset, length) {
+ return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
+}
+
+function asciiWrite (buf, string, offset, length) {
+ return blitBuffer(asciiToBytes(string), buf, offset, length)
+}
+
+function latin1Write (buf, string, offset, length) {
+ return asciiWrite(buf, string, offset, length)
+}
+
+function base64Write (buf, string, offset, length) {
+ return blitBuffer(base64ToBytes(string), buf, offset, length)
+}
+
+function ucs2Write (buf, string, offset, length) {
+ return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
+}
+
+Buffer.prototype.write = function write (string, offset, length, encoding) {
+ // Buffer#write(string)
+ if (offset === undefined) {
+ encoding = 'utf8'
+ length = this.length
+ offset = 0
+ // Buffer#write(string, encoding)
+ } else if (length === undefined && typeof offset === 'string') {
+ encoding = offset
+ length = this.length
+ offset = 0
+ // Buffer#write(string, offset[, length][, encoding])
+ } else if (isFinite(offset)) {
+ offset = offset >>> 0
+ if (isFinite(length)) {
+ length = length >>> 0
+ if (encoding === undefined) encoding = 'utf8'
+ } else {
+ encoding = length
+ length = undefined
+ }
+ } else {
+ throw new Error(
+ 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
+ )
+ }
+
+ var remaining = this.length - offset
+ if (length === undefined || length > remaining) length = remaining
+
+ if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
+ throw new RangeError('Attempt to write outside buffer bounds')
+ }
+
+ if (!encoding) encoding = 'utf8'
+
+ var loweredCase = false
+ for (;;) {
+ switch (encoding) {
+ case 'hex':
+ return hexWrite(this, string, offset, length)
+
+ case 'utf8':
+ case 'utf-8':
+ return utf8Write(this, string, offset, length)
+
+ case 'ascii':
+ return asciiWrite(this, string, offset, length)
+
+ case 'latin1':
+ case 'binary':
+ return latin1Write(this, string, offset, length)
+
+ case 'base64':
+ // Warning: maxLength not taken into account in base64Write
+ return base64Write(this, string, offset, length)
+
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return ucs2Write(this, string, offset, length)
+
+ default:
+ if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
+ encoding = ('' + encoding).toLowerCase()
+ loweredCase = true
+ }
+ }
+}
+
+Buffer.prototype.toJSON = function toJSON () {
+ return {
+ type: 'Buffer',
+ data: Array.prototype.slice.call(this._arr || this, 0)
+ }
+}
+
+function base64Slice (buf, start, end) {
+ if (start === 0 && end === buf.length) {
+ return base64.fromByteArray(buf)
+ } else {
+ return base64.fromByteArray(buf.slice(start, end))
+ }
+}
+
+function utf8Slice (buf, start, end) {
+ end = Math.min(buf.length, end)
+ var res = []
+
+ var i = start
+ while (i < end) {
+ var firstByte = buf[i]
+ var codePoint = null
+ var bytesPerSequence = (firstByte > 0xEF) ? 4
+ : (firstByte > 0xDF) ? 3
+ : (firstByte > 0xBF) ? 2
+ : 1
+
+ if (i + bytesPerSequence <= end) {
+ var secondByte, thirdByte, fourthByte, tempCodePoint
+
+ switch (bytesPerSequence) {
+ case 1:
+ if (firstByte < 0x80) {
+ codePoint = firstByte
+ }
+ break
+ case 2:
+ secondByte = buf[i + 1]
+ if ((secondByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
+ if (tempCodePoint > 0x7F) {
+ codePoint = tempCodePoint
+ }
+ }
+ break
+ case 3:
+ secondByte = buf[i + 1]
+ thirdByte = buf[i + 2]
+ if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
+ if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
+ codePoint = tempCodePoint
+ }
+ }
+ break
+ case 4:
+ secondByte = buf[i + 1]
+ thirdByte = buf[i + 2]
+ fourthByte = buf[i + 3]
+ if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
+ if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
+ codePoint = tempCodePoint
+ }
+ }
+ }
+ }
+
+ if (codePoint === null) {
+ // we did not generate a valid codePoint so insert a
+ // replacement char (U+FFFD) and advance only 1 byte
+ codePoint = 0xFFFD
+ bytesPerSequence = 1
+ } else if (codePoint > 0xFFFF) {
+ // encode to utf16 (surrogate pair dance)
+ codePoint -= 0x10000
+ res.push(codePoint >>> 10 & 0x3FF | 0xD800)
+ codePoint = 0xDC00 | codePoint & 0x3FF
+ }
+
+ res.push(codePoint)
+ i += bytesPerSequence
+ }
+
+ return decodeCodePointsArray(res)
+}
+
+// Based on http://stackoverflow.com/a/22747272/680742, the browser with
+// the lowest limit is Chrome, with 0x10000 args.
+// We go 1 magnitude less, for safety
+var MAX_ARGUMENTS_LENGTH = 0x1000
+
+function decodeCodePointsArray (codePoints) {
+ var len = codePoints.length
+ if (len <= MAX_ARGUMENTS_LENGTH) {
+ return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
+ }
+
+ // Decode in chunks to avoid "call stack size exceeded".
+ var res = ''
+ var i = 0
+ while (i < len) {
+ res += String.fromCharCode.apply(
+ String,
+ codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
+ )
+ }
+ return res
+}
+
+function asciiSlice (buf, start, end) {
+ var ret = ''
+ end = Math.min(buf.length, end)
+
+ for (var i = start; i < end; ++i) {
+ ret += String.fromCharCode(buf[i] & 0x7F)
+ }
+ return ret
+}
+
+function latin1Slice (buf, start, end) {
+ var ret = ''
+ end = Math.min(buf.length, end)
+
+ for (var i = start; i < end; ++i) {
+ ret += String.fromCharCode(buf[i])
+ }
+ return ret
+}
+
+function hexSlice (buf, start, end) {
+ var len = buf.length
+
+ if (!start || start < 0) start = 0
+ if (!end || end < 0 || end > len) end = len
+
+ var out = ''
+ for (var i = start; i < end; ++i) {
+ out += toHex(buf[i])
+ }
+ return out
+}
+
+function utf16leSlice (buf, start, end) {
+ var bytes = buf.slice(start, end)
+ var res = ''
+ for (var i = 0; i < bytes.length; i += 2) {
+ res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))
+ }
+ return res
+}
+
+Buffer.prototype.slice = function slice (start, end) {
+ var len = this.length
+ start = ~~start
+ end = end === undefined ? len : ~~end
+
+ if (start < 0) {
+ start += len
+ if (start < 0) start = 0
+ } else if (start > len) {
+ start = len
+ }
+
+ if (end < 0) {
+ end += len
+ if (end < 0) end = 0
+ } else if (end > len) {
+ end = len
+ }
+
+ if (end < start) end = start
+
+ var newBuf = this.subarray(start, end)
+ // Return an augmented `Uint8Array` instance
+ newBuf.__proto__ = Buffer.prototype
+ return newBuf
+}
+
+/*
+ * Need to make sure that buffer isn't trying to write out of bounds.
+ */
+function checkOffset (offset, ext, length) {
+ if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
+ if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
+}
+
+Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
+ offset = offset >>> 0
+ byteLength = byteLength >>> 0
+ if (!noAssert) checkOffset(offset, byteLength, this.length)
+
+ var val = this[offset]
+ var mul = 1
+ var i = 0
+ while (++i < byteLength && (mul *= 0x100)) {
+ val += this[offset + i] * mul
+ }
+
+ return val
+}
+
+Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
+ offset = offset >>> 0
+ byteLength = byteLength >>> 0
+ if (!noAssert) {
+ checkOffset(offset, byteLength, this.length)
+ }
+
+ var val = this[offset + --byteLength]
+ var mul = 1
+ while (byteLength > 0 && (mul *= 0x100)) {
+ val += this[offset + --byteLength] * mul
+ }
+
+ return val
+}
+
+Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 1, this.length)
+ return this[offset]
+}
+
+Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 2, this.length)
+ return this[offset] | (this[offset + 1] << 8)
+}
+
+Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 2, this.length)
+ return (this[offset] << 8) | this[offset + 1]
+}
+
+Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 4, this.length)
+
+ return ((this[offset]) |
+ (this[offset + 1] << 8) |
+ (this[offset + 2] << 16)) +
+ (this[offset + 3] * 0x1000000)
+}
+
+Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 4, this.length)
+
+ return (this[offset] * 0x1000000) +
+ ((this[offset + 1] << 16) |
+ (this[offset + 2] << 8) |
+ this[offset + 3])
+}
+
+Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
+ offset = offset >>> 0
+ byteLength = byteLength >>> 0
+ if (!noAssert) checkOffset(offset, byteLength, this.length)
+
+ var val = this[offset]
+ var mul = 1
+ var i = 0
+ while (++i < byteLength && (mul *= 0x100)) {
+ val += this[offset + i] * mul
+ }
+ mul *= 0x80
+
+ if (val >= mul) val -= Math.pow(2, 8 * byteLength)
+
+ return val
+}
+
+Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
+ offset = offset >>> 0
+ byteLength = byteLength >>> 0
+ if (!noAssert) checkOffset(offset, byteLength, this.length)
+
+ var i = byteLength
+ var mul = 1
+ var val = this[offset + --i]
+ while (i > 0 && (mul *= 0x100)) {
+ val += this[offset + --i] * mul
+ }
+ mul *= 0x80
+
+ if (val >= mul) val -= Math.pow(2, 8 * byteLength)
+
+ return val
+}
+
+Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 1, this.length)
+ if (!(this[offset] & 0x80)) return (this[offset])
+ return ((0xff - this[offset] + 1) * -1)
+}
+
+Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 2, this.length)
+ var val = this[offset] | (this[offset + 1] << 8)
+ return (val & 0x8000) ? val | 0xFFFF0000 : val
+}
+
+Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 2, this.length)
+ var val = this[offset + 1] | (this[offset] << 8)
+ return (val & 0x8000) ? val | 0xFFFF0000 : val
+}
+
+Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 4, this.length)
+
+ return (this[offset]) |
+ (this[offset + 1] << 8) |
+ (this[offset + 2] << 16) |
+ (this[offset + 3] << 24)
+}
+
+Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 4, this.length)
+
+ return (this[offset] << 24) |
+ (this[offset + 1] << 16) |
+ (this[offset + 2] << 8) |
+ (this[offset + 3])
+}
+
+Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 4, this.length)
+ return ieee754.read(this, offset, true, 23, 4)
+}
+
+Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 4, this.length)
+ return ieee754.read(this, offset, false, 23, 4)
+}
+
+Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 8, this.length)
+ return ieee754.read(this, offset, true, 52, 8)
+}
+
+Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
+ offset = offset >>> 0
+ if (!noAssert) checkOffset(offset, 8, this.length)
+ return ieee754.read(this, offset, false, 52, 8)
+}
+
+function checkInt (buf, value, offset, ext, max, min) {
+ if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
+ if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+}
+
+Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ byteLength = byteLength >>> 0
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1
+ checkInt(this, value, offset, byteLength, maxBytes, 0)
+ }
+
+ var mul = 1
+ var i = 0
+ this[offset] = value & 0xFF
+ while (++i < byteLength && (mul *= 0x100)) {
+ this[offset + i] = (value / mul) & 0xFF
+ }
+
+ return offset + byteLength
+}
+
+Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ byteLength = byteLength >>> 0
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1
+ checkInt(this, value, offset, byteLength, maxBytes, 0)
+ }
+
+ var i = byteLength - 1
+ var mul = 1
+ this[offset + i] = value & 0xFF
+ while (--i >= 0 && (mul *= 0x100)) {
+ this[offset + i] = (value / mul) & 0xFF
+ }
+
+ return offset + byteLength
+}
+
+Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
+ this[offset] = (value & 0xff)
+ return offset + 1
+}
+
+Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
+ this[offset] = (value & 0xff)
+ this[offset + 1] = (value >>> 8)
+ return offset + 2
+}
+
+Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
+ this[offset] = (value >>> 8)
+ this[offset + 1] = (value & 0xff)
+ return offset + 2
+}
+
+Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
+ this[offset + 3] = (value >>> 24)
+ this[offset + 2] = (value >>> 16)
+ this[offset + 1] = (value >>> 8)
+ this[offset] = (value & 0xff)
+ return offset + 4
+}
+
+Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
+ this[offset] = (value >>> 24)
+ this[offset + 1] = (value >>> 16)
+ this[offset + 2] = (value >>> 8)
+ this[offset + 3] = (value & 0xff)
+ return offset + 4
+}
+
+Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) {
+ var limit = Math.pow(2, (8 * byteLength) - 1)
+
+ checkInt(this, value, offset, byteLength, limit - 1, -limit)
+ }
+
+ var i = 0
+ var mul = 1
+ var sub = 0
+ this[offset] = value & 0xFF
+ while (++i < byteLength && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
+ sub = 1
+ }
+ this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
+ }
+
+ return offset + byteLength
+}
+
+Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) {
+ var limit = Math.pow(2, (8 * byteLength) - 1)
+
+ checkInt(this, value, offset, byteLength, limit - 1, -limit)
+ }
+
+ var i = byteLength - 1
+ var mul = 1
+ var sub = 0
+ this[offset + i] = value & 0xFF
+ while (--i >= 0 && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
+ sub = 1
+ }
+ this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
+ }
+
+ return offset + byteLength
+}
+
+Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
+ if (value < 0) value = 0xff + value + 1
+ this[offset] = (value & 0xff)
+ return offset + 1
+}
+
+Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
+ this[offset] = (value & 0xff)
+ this[offset + 1] = (value >>> 8)
+ return offset + 2
+}
+
+Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
+ this[offset] = (value >>> 8)
+ this[offset + 1] = (value & 0xff)
+ return offset + 2
+}
+
+Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
+ this[offset] = (value & 0xff)
+ this[offset + 1] = (value >>> 8)
+ this[offset + 2] = (value >>> 16)
+ this[offset + 3] = (value >>> 24)
+ return offset + 4
+}
+
+Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
+ if (value < 0) value = 0xffffffff + value + 1
+ this[offset] = (value >>> 24)
+ this[offset + 1] = (value >>> 16)
+ this[offset + 2] = (value >>> 8)
+ this[offset + 3] = (value & 0xff)
+ return offset + 4
+}
+
+function checkIEEE754 (buf, value, offset, ext, max, min) {
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+ if (offset < 0) throw new RangeError('Index out of range')
+}
+
+function writeFloat (buf, value, offset, littleEndian, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) {
+ checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
+ }
+ ieee754.write(buf, value, offset, littleEndian, 23, 4)
+ return offset + 4
+}
+
+Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
+ return writeFloat(this, value, offset, true, noAssert)
+}
+
+Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
+ return writeFloat(this, value, offset, false, noAssert)
+}
+
+function writeDouble (buf, value, offset, littleEndian, noAssert) {
+ value = +value
+ offset = offset >>> 0
+ if (!noAssert) {
+ checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
+ }
+ ieee754.write(buf, value, offset, littleEndian, 52, 8)
+ return offset + 8
+}
+
+Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
+ return writeDouble(this, value, offset, true, noAssert)
+}
+
+Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
+ return writeDouble(this, value, offset, false, noAssert)
+}
+
+// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
+Buffer.prototype.copy = function copy (target, targetStart, start, end) {
+ if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')
+ if (!start) start = 0
+ if (!end && end !== 0) end = this.length
+ if (targetStart >= target.length) targetStart = target.length
+ if (!targetStart) targetStart = 0
+ if (end > 0 && end < start) end = start
+
+ // Copy 0 bytes; we're done
+ if (end === start) return 0
+ if (target.length === 0 || this.length === 0) return 0
+
+ // Fatal error conditions
+ if (targetStart < 0) {
+ throw new RangeError('targetStart out of bounds')
+ }
+ if (start < 0 || start >= this.length) throw new RangeError('Index out of range')
+ if (end < 0) throw new RangeError('sourceEnd out of bounds')
+
+ // Are we oob?
+ if (end > this.length) end = this.length
+ if (target.length - targetStart < end - start) {
+ end = target.length - targetStart + start
+ }
+
+ var len = end - start
+
+ if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {
+ // Use built-in when available, missing from IE11
+ this.copyWithin(targetStart, start, end)
+ } else if (this === target && start < targetStart && targetStart < end) {
+ // descending copy from end
+ for (var i = len - 1; i >= 0; --i) {
+ target[i + targetStart] = this[i + start]
+ }
+ } else {
+ Uint8Array.prototype.set.call(
+ target,
+ this.subarray(start, end),
+ targetStart
+ )
+ }
+
+ return len
+}
+
+// Usage:
+// buffer.fill(number[, offset[, end]])
+// buffer.fill(buffer[, offset[, end]])
+// buffer.fill(string[, offset[, end]][, encoding])
+Buffer.prototype.fill = function fill (val, start, end, encoding) {
+ // Handle string cases:
+ if (typeof val === 'string') {
+ if (typeof start === 'string') {
+ encoding = start
+ start = 0
+ end = this.length
+ } else if (typeof end === 'string') {
+ encoding = end
+ end = this.length
+ }
+ if (encoding !== undefined && typeof encoding !== 'string') {
+ throw new TypeError('encoding must be a string')
+ }
+ if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
+ throw new TypeError('Unknown encoding: ' + encoding)
+ }
+ if (val.length === 1) {
+ var code = val.charCodeAt(0)
+ if ((encoding === 'utf8' && code < 128) ||
+ encoding === 'latin1') {
+ // Fast path: If `val` fits into a single byte, use that numeric value.
+ val = code
+ }
+ }
+ } else if (typeof val === 'number') {
+ val = val & 255
+ }
+
+ // Invalid ranges are not set to a default, so can range check early.
+ if (start < 0 || this.length < start || this.length < end) {
+ throw new RangeError('Out of range index')
+ }
+
+ if (end <= start) {
+ return this
+ }
+
+ start = start >>> 0
+ end = end === undefined ? this.length : end >>> 0
+
+ if (!val) val = 0
+
+ var i
+ if (typeof val === 'number') {
+ for (i = start; i < end; ++i) {
+ this[i] = val
+ }
+ } else {
+ var bytes = Buffer.isBuffer(val)
+ ? val
+ : Buffer.from(val, encoding)
+ var len = bytes.length
+ if (len === 0) {
+ throw new TypeError('The value "' + val +
+ '" is invalid for argument "value"')
+ }
+ for (i = 0; i < end - start; ++i) {
+ this[i + start] = bytes[i % len]
+ }
+ }
+
+ return this
+}
+
+// HELPER FUNCTIONS
+// ================
+
+var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g
+
+function base64clean (str) {
+ // Node takes equal signs as end of the Base64 encoding
+ str = str.split('=')[0]
+ // Node strips out invalid characters like \n and \t from the string, base64-js does not
+ str = str.trim().replace(INVALID_BASE64_RE, '')
+ // Node converts strings with length < 2 to ''
+ if (str.length < 2) return ''
+ // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
+ while (str.length % 4 !== 0) {
+ str = str + '='
+ }
+ return str
+}
+
+function toHex (n) {
+ if (n < 16) return '0' + n.toString(16)
+ return n.toString(16)
+}
+
+function utf8ToBytes (string, units) {
+ units = units || Infinity
+ var codePoint
+ var length = string.length
+ var leadSurrogate = null
+ var bytes = []
+
+ for (var i = 0; i < length; ++i) {
+ codePoint = string.charCodeAt(i)
+
+ // is surrogate component
+ if (codePoint > 0xD7FF && codePoint < 0xE000) {
+ // last char was a lead
+ if (!leadSurrogate) {
+ // no lead yet
+ if (codePoint > 0xDBFF) {
+ // unexpected trail
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
+ continue
+ } else if (i + 1 === length) {
+ // unpaired lead
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
+ continue
+ }
+
+ // valid lead
+ leadSurrogate = codePoint
+
+ continue
+ }
+
+ // 2 leads in a row
+ if (codePoint < 0xDC00) {
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
+ leadSurrogate = codePoint
+ continue
+ }
+
+ // valid surrogate pair
+ codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
+ } else if (leadSurrogate) {
+ // valid bmp char, but last char was a lead
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
+ }
+
+ leadSurrogate = null
+
+ // encode utf8
+ if (codePoint < 0x80) {
+ if ((units -= 1) < 0) break
+ bytes.push(codePoint)
+ } else if (codePoint < 0x800) {
+ if ((units -= 2) < 0) break
+ bytes.push(
+ codePoint >> 0x6 | 0xC0,
+ codePoint & 0x3F | 0x80
+ )
+ } else if (codePoint < 0x10000) {
+ if ((units -= 3) < 0) break
+ bytes.push(
+ codePoint >> 0xC | 0xE0,
+ codePoint >> 0x6 & 0x3F | 0x80,
+ codePoint & 0x3F | 0x80
+ )
+ } else if (codePoint < 0x110000) {
+ if ((units -= 4) < 0) break
+ bytes.push(
+ codePoint >> 0x12 | 0xF0,
+ codePoint >> 0xC & 0x3F | 0x80,
+ codePoint >> 0x6 & 0x3F | 0x80,
+ codePoint & 0x3F | 0x80
+ )
+ } else {
+ throw new Error('Invalid code point')
+ }
+ }
+
+ return bytes
+}
+
+function asciiToBytes (str) {
+ var byteArray = []
+ for (var i = 0; i < str.length; ++i) {
+ // Node's code seems to be doing this and not & 0x7F..
+ byteArray.push(str.charCodeAt(i) & 0xFF)
+ }
+ return byteArray
+}
+
+function utf16leToBytes (str, units) {
+ var c, hi, lo
+ var byteArray = []
+ for (var i = 0; i < str.length; ++i) {
+ if ((units -= 2) < 0) break
+
+ c = str.charCodeAt(i)
+ hi = c >> 8
+ lo = c % 256
+ byteArray.push(lo)
+ byteArray.push(hi)
+ }
+
+ return byteArray
+}
+
+function base64ToBytes (str) {
+ return base64.toByteArray(base64clean(str))
+}
+
+function blitBuffer (src, dst, offset, length) {
+ for (var i = 0; i < length; ++i) {
+ if ((i + offset >= dst.length) || (i >= src.length)) break
+ dst[i + offset] = src[i]
+ }
+ return i
+}
+
+// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass
+// the `instanceof` check but they should be treated as of that type.
+// See: https://github.com/feross/buffer/issues/166
+function isInstance (obj, type) {
+ return obj instanceof type ||
+ (obj != null && obj.constructor != null && obj.constructor.name != null &&
+ obj.constructor.name === type.name)
+}
+function numberIsNaN (obj) {
+ // For IE11 support
+ return obj !== obj // eslint-disable-line no-self-compare
+}
+
+}).call(this)}).call(this,require("buffer").Buffer)
+},{"base64-js":164,"buffer":165,"ieee754":167}],166:[function(require,module,exports){
+// 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.
+
+'use strict';
+
+var R = typeof Reflect === 'object' ? Reflect : null
+var ReflectApply = R && typeof R.apply === 'function'
+ ? R.apply
+ : function ReflectApply(target, receiver, args) {
+ return Function.prototype.apply.call(target, receiver, args);
+ }
+
+var ReflectOwnKeys
+if (R && typeof R.ownKeys === 'function') {
+ ReflectOwnKeys = R.ownKeys
+} else if (Object.getOwnPropertySymbols) {
+ ReflectOwnKeys = function ReflectOwnKeys(target) {
+ return Object.getOwnPropertyNames(target)
+ .concat(Object.getOwnPropertySymbols(target));
+ };
+} else {
+ ReflectOwnKeys = function ReflectOwnKeys(target) {
+ return Object.getOwnPropertyNames(target);
+ };
+}
+
+function ProcessEmitWarning(warning) {
+ if (console && console.warn) console.warn(warning);
+}
+
+var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
+ return value !== value;
+}
+
+function EventEmitter() {
+ EventEmitter.init.call(this);
+}
+module.exports = EventEmitter;
+module.exports.once = once;
+
+// Backwards-compat with node 0.10.x
+EventEmitter.EventEmitter = EventEmitter;
+
+EventEmitter.prototype._events = undefined;
+EventEmitter.prototype._eventsCount = 0;
+EventEmitter.prototype._maxListeners = undefined;
+
+// By default EventEmitters will print a warning if more than 10 listeners are
+// added to it. This is a useful default which helps finding memory leaks.
+var defaultMaxListeners = 10;
+
+function checkListener(listener) {
+ if (typeof listener !== 'function') {
+ throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
+ }
+}
+
+Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
+ enumerable: true,
+ get: function() {
+ return defaultMaxListeners;
+ },
+ set: function(arg) {
+ if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
+ throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
+ }
+ defaultMaxListeners = arg;
+ }
+});
+
+EventEmitter.init = function() {
+
+ if (this._events === undefined ||
+ this._events === Object.getPrototypeOf(this)._events) {
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ }
+
+ this._maxListeners = this._maxListeners || undefined;
+};
+
+// Obviously not all Emitters should be limited to 10. This function allows
+// that to be increased. Set to zero for unlimited.
+EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
+ if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
+ throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
+ }
+ this._maxListeners = n;
+ return this;
+};
+
+function _getMaxListeners(that) {
+ if (that._maxListeners === undefined)
+ return EventEmitter.defaultMaxListeners;
+ return that._maxListeners;
+}
+
+EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
+ return _getMaxListeners(this);
+};
+
+EventEmitter.prototype.emit = function emit(type) {
+ var args = [];
+ for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);
+ var doError = (type === 'error');
+
+ var events = this._events;
+ if (events !== undefined)
+ doError = (doError && events.error === undefined);
+ else if (!doError)
+ return false;
+
+ // If there is no 'error' event listener then throw.
+ if (doError) {
+ var er;
+ if (args.length > 0)
+ er = args[0];
+ if (er instanceof Error) {
+ // Note: The comments on the `throw` lines are intentional, they show
+ // up in Node's output if this results in an unhandled exception.
+ throw er; // Unhandled 'error' event
+ }
+ // At least give some kind of context to the user
+ var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
+ err.context = er;
+ throw err; // Unhandled 'error' event
+ }
+
+ var handler = events[type];
+
+ if (handler === undefined)
+ return false;
+
+ if (typeof handler === 'function') {
+ ReflectApply(handler, this, args);
+ } else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ ReflectApply(listeners[i], this, args);
+ }
+
+ return true;
+};
+
+function _addListener(target, type, listener, prepend) {
+ var m;
+ var events;
+ var existing;
+
+ checkListener(listener);
+
+ events = target._events;
+ if (events === undefined) {
+ events = target._events = Object.create(null);
+ target._eventsCount = 0;
+ } else {
+ // To avoid recursion in the case that type === "newListener"! Before
+ // adding it to the listeners, first emit "newListener".
+ if (events.newListener !== undefined) {
+ target.emit('newListener', type,
+ listener.listener ? listener.listener : listener);
+
+ // Re-assign `events` because a newListener handler could have caused the
+ // this._events to be assigned to a new object
+ events = target._events;
+ }
+ existing = events[type];
+ }
+
+ if (existing === undefined) {
+ // Optimize the case of one listener. Don't need the extra array object.
+ existing = events[type] = listener;
+ ++target._eventsCount;
+ } else {
+ if (typeof existing === 'function') {
+ // Adding the second element, need to change to array.
+ existing = events[type] =
+ prepend ? [listener, existing] : [existing, listener];
+ // If we've already got an array, just append.
+ } else if (prepend) {
+ existing.unshift(listener);
+ } else {
+ existing.push(listener);
+ }
+
+ // Check for listener leak
+ m = _getMaxListeners(target);
+ if (m > 0 && existing.length > m && !existing.warned) {
+ existing.warned = true;
+ // No error code for this since it is a Warning
+ // eslint-disable-next-line no-restricted-syntax
+ var w = new Error('Possible EventEmitter memory leak detected. ' +
+ existing.length + ' ' + String(type) + ' listeners ' +
+ 'added. Use emitter.setMaxListeners() to ' +
+ 'increase limit');
+ w.name = 'MaxListenersExceededWarning';
+ w.emitter = target;
+ w.type = type;
+ w.count = existing.length;
+ ProcessEmitWarning(w);
+ }
+ }
+
+ return target;
+}
+
+EventEmitter.prototype.addListener = function addListener(type, listener) {
+ return _addListener(this, type, listener, false);
+};
+
+EventEmitter.prototype.on = EventEmitter.prototype.addListener;
+
+EventEmitter.prototype.prependListener =
+ function prependListener(type, listener) {
+ return _addListener(this, type, listener, true);
+ };
+
+function onceWrapper() {
+ if (!this.fired) {
+ this.target.removeListener(this.type, this.wrapFn);
+ this.fired = true;
+ if (arguments.length === 0)
+ return this.listener.call(this.target);
+ return this.listener.apply(this.target, arguments);
+ }
+}
+
+function _onceWrap(target, type, listener) {
+ var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };
+ var wrapped = onceWrapper.bind(state);
+ wrapped.listener = listener;
+ state.wrapFn = wrapped;
+ return wrapped;
+}
+
+EventEmitter.prototype.once = function once(type, listener) {
+ checkListener(listener);
+ this.on(type, _onceWrap(this, type, listener));
+ return this;
+};
+
+EventEmitter.prototype.prependOnceListener =
+ function prependOnceListener(type, listener) {
+ checkListener(listener);
+ this.prependListener(type, _onceWrap(this, type, listener));
+ return this;
+ };
+
+// Emits a 'removeListener' event if and only if the listener was removed.
+EventEmitter.prototype.removeListener =
+ function removeListener(type, listener) {
+ var list, events, position, i, originalListener;
+
+ checkListener(listener);
+
+ events = this._events;
+ if (events === undefined)
+ return this;
+
+ list = events[type];
+ if (list === undefined)
+ return this;
+
+ if (list === listener || list.listener === listener) {
+ if (--this._eventsCount === 0)
+ this._events = Object.create(null);
+ else {
+ delete events[type];
+ if (events.removeListener)
+ this.emit('removeListener', type, list.listener || listener);
+ }
+ } else if (typeof list !== 'function') {
+ position = -1;
+
+ for (i = list.length - 1; i >= 0; i--) {
+ if (list[i] === listener || list[i].listener === listener) {
+ originalListener = list[i].listener;
+ position = i;
+ break;
+ }
+ }
+
+ if (position < 0)
+ return this;
+
+ if (position === 0)
+ list.shift();
+ else {
+ spliceOne(list, position);
+ }
+
+ if (list.length === 1)
+ events[type] = list[0];
+
+ if (events.removeListener !== undefined)
+ this.emit('removeListener', type, originalListener || listener);
+ }
+
+ return this;
+ };
+
+EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
+
+EventEmitter.prototype.removeAllListeners =
+ function removeAllListeners(type) {
+ var listeners, events, i;
+
+ events = this._events;
+ if (events === undefined)
+ return this;
+
+ // not listening for removeListener, no need to emit
+ if (events.removeListener === undefined) {
+ if (arguments.length === 0) {
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ } else if (events[type] !== undefined) {
+ if (--this._eventsCount === 0)
+ this._events = Object.create(null);
+ else
+ delete events[type];
+ }
+ return this;
+ }
+
+ // emit removeListener for all listeners on all events
+ if (arguments.length === 0) {
+ var keys = Object.keys(events);
+ var key;
+ for (i = 0; i < keys.length; ++i) {
+ key = keys[i];
+ if (key === 'removeListener') continue;
+ this.removeAllListeners(key);
+ }
+ this.removeAllListeners('removeListener');
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ return this;
+ }
+
+ listeners = events[type];
+
+ if (typeof listeners === 'function') {
+ this.removeListener(type, listeners);
+ } else if (listeners !== undefined) {
+ // LIFO order
+ for (i = listeners.length - 1; i >= 0; i--) {
+ this.removeListener(type, listeners[i]);
+ }
+ }
+
+ return this;
+ };
+
+function _listeners(target, type, unwrap) {
+ var events = target._events;
+
+ if (events === undefined)
+ return [];
+
+ var evlistener = events[type];
+ if (evlistener === undefined)
+ return [];
+
+ if (typeof evlistener === 'function')
+ return unwrap ? [evlistener.listener || evlistener] : [evlistener];
+
+ return unwrap ?
+ unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
+}
+
+EventEmitter.prototype.listeners = function listeners(type) {
+ return _listeners(this, type, true);
+};
+
+EventEmitter.prototype.rawListeners = function rawListeners(type) {
+ return _listeners(this, type, false);
+};
+
+EventEmitter.listenerCount = function(emitter, type) {
+ if (typeof emitter.listenerCount === 'function') {
+ return emitter.listenerCount(type);
+ } else {
+ return listenerCount.call(emitter, type);
+ }
+};
+
+EventEmitter.prototype.listenerCount = listenerCount;
+function listenerCount(type) {
+ var events = this._events;
+
+ if (events !== undefined) {
+ var evlistener = events[type];
+
+ if (typeof evlistener === 'function') {
+ return 1;
+ } else if (evlistener !== undefined) {
+ return evlistener.length;
+ }
+ }
+
+ return 0;
+}
+
+EventEmitter.prototype.eventNames = function eventNames() {
+ return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
+};
+
+function arrayClone(arr, n) {
+ var copy = new Array(n);
+ for (var i = 0; i < n; ++i)
+ copy[i] = arr[i];
+ return copy;
+}
+
+function spliceOne(list, index) {
+ for (; index + 1 < list.length; index++)
+ list[index] = list[index + 1];
+ list.pop();
+}
+
+function unwrapListeners(arr) {
+ var ret = new Array(arr.length);
+ for (var i = 0; i < ret.length; ++i) {
+ ret[i] = arr[i].listener || arr[i];
+ }
+ return ret;
+}
+
+function once(emitter, name) {
+ return new Promise(function (resolve, reject) {
+ function errorListener(err) {
+ emitter.removeListener(name, resolver);
+ reject(err);
+ }
+
+ function resolver() {
+ if (typeof emitter.removeListener === 'function') {
+ emitter.removeListener('error', errorListener);
+ }
+ resolve([].slice.call(arguments));
+ };
+
+ eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });
+ if (name !== 'error') {
+ addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });
+ }
+ });
+}
+
+function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
+ if (typeof emitter.on === 'function') {
+ eventTargetAgnosticAddListener(emitter, 'error', handler, flags);
+ }
+}
+
+function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
+ if (typeof emitter.on === 'function') {
+ if (flags.once) {
+ emitter.once(name, listener);
+ } else {
+ emitter.on(name, listener);
+ }
+ } else if (typeof emitter.addEventListener === 'function') {
+ // EventTarget does not have `error` event semantics like Node
+ // EventEmitters, we do not listen for `error` events here.
+ emitter.addEventListener(name, function wrapListener(arg) {
+ // IE does not have builtin `{ once: true }` support so we
+ // have to do it manually.
+ if (flags.once) {
+ emitter.removeEventListener(name, wrapListener);
+ }
+ listener(arg);
+ });
+ } else {
+ throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
+ }
+}
+
+},{}],167:[function(require,module,exports){
+/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */
+exports.read = function (buffer, offset, isLE, mLen, nBytes) {
+ var e, m
+ var eLen = (nBytes * 8) - mLen - 1
+ var eMax = (1 << eLen) - 1
+ var eBias = eMax >> 1
+ var nBits = -7
+ var i = isLE ? (nBytes - 1) : 0
+ var d = isLE ? -1 : 1
+ var s = buffer[offset + i]
+
+ i += d
+
+ e = s & ((1 << (-nBits)) - 1)
+ s >>= (-nBits)
+ nBits += eLen
+ for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
+
+ m = e & ((1 << (-nBits)) - 1)
+ e >>= (-nBits)
+ nBits += mLen
+ for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
+
+ if (e === 0) {
+ e = 1 - eBias
+ } else if (e === eMax) {
+ return m ? NaN : ((s ? -1 : 1) * Infinity)
+ } else {
+ m = m + Math.pow(2, mLen)
+ e = e - eBias
+ }
+ return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
+}
+
+exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
+ var e, m, c
+ var eLen = (nBytes * 8) - mLen - 1
+ var eMax = (1 << eLen) - 1
+ var eBias = eMax >> 1
+ var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
+ var i = isLE ? 0 : (nBytes - 1)
+ var d = isLE ? 1 : -1
+ var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
+
+ value = Math.abs(value)
+
+ if (isNaN(value) || value === Infinity) {
+ m = isNaN(value) ? 1 : 0
+ e = eMax
+ } else {
+ e = Math.floor(Math.log(value) / Math.LN2)
+ if (value * (c = Math.pow(2, -e)) < 1) {
+ e--
+ c *= 2
+ }
+ if (e + eBias >= 1) {
+ value += rt / c
+ } else {
+ value += rt * Math.pow(2, 1 - eBias)
+ }
+ if (value * c >= 2) {
+ e++
+ c /= 2
+ }
+
+ if (e + eBias >= eMax) {
+ m = 0
+ e = eMax
+ } else if (e + eBias >= 1) {
+ m = ((value * c) - 1) * Math.pow(2, mLen)
+ e = e + eBias
+ } else {
+ m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
+ e = 0
+ }
+ }
+
+ for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
+
+ e = (e << mLen) | m
+ eLen += mLen
+ for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
+
+ buffer[offset + i - d] |= s * 128
+}
+
+},{}],168:[function(require,module,exports){
+// shim for using process in browser
+var process = module.exports = {};
+
+// cached from whatever global is present so that test runners that stub it
+// don't break things. But we need to wrap it in a try catch in case it is
+// wrapped in strict mode code which doesn't define any globals. It's inside a
+// function because try/catches deoptimize in certain engines.
+
+var cachedSetTimeout;
+var cachedClearTimeout;
+
+function defaultSetTimout() {
+ throw new Error('setTimeout has not been defined');
+}
+function defaultClearTimeout () {
+ throw new Error('clearTimeout has not been defined');
+}
+(function () {
+ try {
+ if (typeof setTimeout === 'function') {
+ cachedSetTimeout = setTimeout;
+ } else {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ } catch (e) {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ try {
+ if (typeof clearTimeout === 'function') {
+ cachedClearTimeout = clearTimeout;
+ } else {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+ } catch (e) {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+} ())
+function runTimeout(fun) {
+ if (cachedSetTimeout === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
+ }
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+ cachedSetTimeout = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout.call(this, fun, 0);
+ }
+ }
+
+
+}
+function runClearTimeout(marker) {
+ if (cachedClearTimeout === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+ cachedClearTimeout = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout.call(this, marker);
+ }
+ }
+
+
+
+}
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
+
+function cleanUpNextTick() {
+ if (!draining || !currentQueue) {
+ return;
+ }
+ draining = false;
+ if (currentQueue.length) {
+ queue = currentQueue.concat(queue);
+ } else {
+ queueIndex = -1;
+ }
+ if (queue.length) {
+ drainQueue();
+ }
+}
+
+function drainQueue() {
+ if (draining) {
+ return;
+ }
+ var timeout = runTimeout(cleanUpNextTick);
+ draining = true;
+
+ var len = queue.length;
+ while(len) {
+ currentQueue = queue;
+ queue = [];
+ while (++queueIndex < len) {
+ if (currentQueue) {
+ currentQueue[queueIndex].run();
+ }
+ }
+ queueIndex = -1;
+ len = queue.length;
+ }
+ currentQueue = null;
+ draining = false;
+ runClearTimeout(timeout);
+}
+
+process.nextTick = function (fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ }
+ queue.push(new Item(fun, args));
+ if (queue.length === 1 && !draining) {
+ runTimeout(drainQueue);
+ }
+};
+
+// v8 likes predictible objects
+function Item(fun, array) {
+ this.fun = fun;
+ this.array = array;
+}
+Item.prototype.run = function () {
+ this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
+
+function noop() {}
+
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
+process.prependListener = noop;
+process.prependOnceListener = noop;
+
+process.listeners = function (name) { return [] }
+
+process.binding = function (name) {
+ throw new Error('process.binding is not supported');
+};
+
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+ throw new Error('process.chdir is not supported');
+};
+process.umask = function() { return 0; };
+
+},{}]},{},[1]);
diff --git a/ledger-bundle/package-lock.json b/ledger-bundle/package-lock.json
new file mode 100644
index 0000000..6085430
--- /dev/null
+++ b/ledger-bundle/package-lock.json
@@ -0,0 +1,400 @@
+{
+ "name": "ledger-bundle",
+ "version": "0.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@ledgerhq/devices": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-6.20.0.tgz",
+ "integrity": "sha512-WehM7HGdb+nSUzyUlz1t2qJ8Tg4I+rQkOJJsx0/Dpjkx6/+1hHcX6My/apPuwh39qahqwYhjszq0H1YzGDS0Yg==",
+ "requires": {
+ "@ledgerhq/errors": "^6.10.0",
+ "@ledgerhq/logs": "^6.10.0",
+ "rxjs": "6",
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@ledgerhq/errors": {
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.10.0.tgz",
+ "integrity": "sha512-fQFnl2VIXh9Yd41lGjReCeK+Q2hwxQJvLZfqHnKqWapTz68NHOv5QcI0OHuZVNEbv0xhgdLhi5b65kgYeQSUVg=="
+ },
+ "@ledgerhq/hw-transport": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.20.0.tgz",
+ "integrity": "sha512-5KS0Y6CbWRDOv3FgNIfk53ViQOIZqMxAw0RuOexreW5GMwuYfK7ddGi4142qcu7YrxkGo7cNe42wBbx1hdXl0Q==",
+ "requires": {
+ "@ledgerhq/devices": "^6.20.0",
+ "@ledgerhq/errors": "^6.10.0",
+ "events": "^3.3.0"
+ }
+ },
+ "@ledgerhq/hw-transport-node-speculos": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-speculos/-/hw-transport-node-speculos-6.20.0.tgz",
+ "integrity": "sha512-YtxdIG77wprdoSI/+ufSDG39t4mF20Wn5nXhqCx+bPLd/mVm70m1vfetLi8zAtYE4NTjo1lDhpbj2nAtLVRU7A==",
+ "requires": {
+ "@ledgerhq/errors": "^6.10.0",
+ "@ledgerhq/hw-transport": "^6.20.0",
+ "@ledgerhq/logs": "^6.10.0",
+ "rxjs": "6"
+ }
+ },
+ "@ledgerhq/hw-transport-webhid": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.20.0.tgz",
+ "integrity": "sha512-vpbeKmvlQQHQIT7MOAt8TJV7706YkvfEsW2it/vQKAKGjmAYWgrLDXLLgmA1rEDschq0w63crOSp0El4doy+JQ==",
+ "requires": {
+ "@ledgerhq/devices": "^6.20.0",
+ "@ledgerhq/errors": "^6.10.0",
+ "@ledgerhq/hw-transport": "^6.20.0",
+ "@ledgerhq/logs": "^6.10.0"
+ }
+ },
+ "@ledgerhq/hw-transport-webusb": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-6.20.0.tgz",
+ "integrity": "sha512-7rtgOEuEZ7/O5JofcglUVck7RXH5D8vS3zP5SjPURhvSFiJVGrtOVS+Qna7gXqGdkesDcNF0xBkwme+67n4Imw==",
+ "requires": {
+ "@ledgerhq/devices": "^6.20.0",
+ "@ledgerhq/errors": "^6.10.0",
+ "@ledgerhq/hw-transport": "^6.20.0",
+ "@ledgerhq/logs": "^6.10.0"
+ }
+ },
+ "@ledgerhq/logs": {
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.0.tgz",
+ "integrity": "sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw=="
+ },
+ "any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "convert-source-map": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "hw-app-kda": {
+ "version": "git+https://github.com/obsidiansystems/hw-app-kda.git#f0d50050debbd8119da195637d5c367e36312764",
+ "from": "git+https://github.com/obsidiansystems/hw-app-kda.git",
+ "requires": {
+ "@ledgerhq/hw-transport": "^6.3.0",
+ "hw-app-obsidian-common": "git+http://github.com/obsidiansystems/hw-app-obsidian-common#9fd33f6218f34c0e3a7da96b63656a2b3ae76e95"
+ }
+ },
+ "hw-app-obsidian-common": {
+ "version": "git+http://github.com/obsidiansystems/hw-app-obsidian-common#9fd33f6218f34c0e3a7da96b63656a2b3ae76e95",
+ "from": "git+http://github.com/obsidiansystems/hw-app-obsidian-common#9fd33f6218f34c0e3a7da96b63656a2b3ae76e95",
+ "requires": {
+ "@ledgerhq/hw-transport": "^6.3.0",
+ "typedoc": "^0.22.7"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "jsonc-parser": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz",
+ "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA=="
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "lunr": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
+ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="
+ },
+ "marked": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz",
+ "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ=="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "shiki": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.0.tgz",
+ "integrity": "sha512-iczxaIYeBFHTFrQPb9DVy2SKgYxC4Wo7Iucm7C17cCh2Ge/refnvHscUOxM85u57MfLoNOtjoEFUWt9gBexblA==",
+ "requires": {
+ "jsonc-parser": "^3.0.0",
+ "vscode-oniguruma": "^1.6.1",
+ "vscode-textmate": "5.2.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "tsconfig": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz",
+ "integrity": "sha1-X0J45wGACWeo/Dg/0ZZIh48qbjo=",
+ "requires": {
+ "any-promise": "^1.3.0",
+ "parse-json": "^2.2.0",
+ "strip-bom": "^2.0.0",
+ "strip-json-comments": "^2.0.0"
+ }
+ },
+ "tsify": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/tsify/-/tsify-5.0.4.tgz",
+ "integrity": "sha512-XAZtQ5OMPsJFclkZ9xMZWkSNyMhMxEPsz3D2zu79yoKorH9j/DT4xCloJeXk5+cDhosEibu4bseMVjyPOAyLJA==",
+ "requires": {
+ "convert-source-map": "^1.1.0",
+ "fs.realpath": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "semver": "^6.1.0",
+ "through2": "^2.0.0",
+ "tsconfig": "^5.0.3"
+ }
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
+ "typedoc": {
+ "version": "0.22.11",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.11.tgz",
+ "integrity": "sha512-pVr3hh6dkS3lPPaZz1fNpvcrqLdtEvXmXayN55czlamSgvEjh+57GUqfhAI1Xsuu/hNHUT1KNSx8LH2wBP/7SA==",
+ "requires": {
+ "glob": "^7.2.0",
+ "lunr": "^2.3.9",
+ "marked": "^4.0.10",
+ "minimatch": "^3.0.4",
+ "shiki": "^0.10.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "vscode-oniguruma": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz",
+ "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ=="
+ },
+ "vscode-textmate": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz",
+ "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ=="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+}
diff --git a/ledger-bundle/package.json b/ledger-bundle/package.json
new file mode 100644
index 0000000..7b20219
--- /dev/null
+++ b/ledger-bundle/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "ledger-bundle",
+ "version": "0.0.0",
+ "description": "A bundler for ledger related hardware (Kadena)",
+ "main": "main.js",
+ "scripts": {
+ "build": "browserify main.js -p [ tsify --noImplicitAny ] > ../util/ledger-os.js"
+ },
+ "author": "Alexandre Garcia de Oliveira (Romefeller)",
+ "license": "ISC",
+ "dependencies": {
+ "@ledgerhq/hw-transport-node-speculos": "^6.20.0",
+ "@ledgerhq/hw-transport-webhid": "^6.20.0",
+ "@ledgerhq/hw-transport-webusb": "^6.20.0",
+ "hw-app-kda": "git+https://github.com/obsidiansystems/hw-app-kda.git",
+ "tsify": "^5.0.4"
+ }
+}
diff --git a/node_modules/resolve/test/resolver/multirepo/lerna.json b/lerna.json
similarity index 56%
rename from node_modules/resolve/test/resolver/multirepo/lerna.json
rename to lerna.json
index d6707ca..8e0a097 100644
--- a/node_modules/resolve/test/resolver/multirepo/lerna.json
+++ b/lerna.json
@@ -2,5 +2,7 @@
"packages": [
"packages/*"
],
+ "npmClient": "yarn",
+ "useWorkspaces": true,
"version": "0.0.0"
}
diff --git a/node_modules/.bin/JSONStream b/node_modules/.bin/JSONStream
deleted file mode 120000
index 3983a36..0000000
--- a/node_modules/.bin/JSONStream
+++ /dev/null
@@ -1 +0,0 @@
-../JSONStream/bin.js
\ No newline at end of file
diff --git a/node_modules/.bin/acorn b/node_modules/.bin/acorn
deleted file mode 120000
index cf76760..0000000
--- a/node_modules/.bin/acorn
+++ /dev/null
@@ -1 +0,0 @@
-../acorn/bin/acorn
\ No newline at end of file
diff --git a/node_modules/.bin/blue-tape b/node_modules/.bin/blue-tape
deleted file mode 120000
index 2925bce..0000000
--- a/node_modules/.bin/blue-tape
+++ /dev/null
@@ -1 +0,0 @@
-../blue-tape/bin/blue-tape.js
\ No newline at end of file
diff --git a/node_modules/.bin/browser-pack b/node_modules/.bin/browser-pack
deleted file mode 120000
index 1d047b9..0000000
--- a/node_modules/.bin/browser-pack
+++ /dev/null
@@ -1 +0,0 @@
-../browser-pack/bin/cmd.js
\ No newline at end of file
diff --git a/node_modules/.bin/browserify b/node_modules/.bin/browserify
deleted file mode 120000
index ab156b3..0000000
--- a/node_modules/.bin/browserify
+++ /dev/null
@@ -1 +0,0 @@
-../browserify/bin/cmd.js
\ No newline at end of file
diff --git a/node_modules/.bin/deps-sort b/node_modules/.bin/deps-sort
deleted file mode 120000
index b2dda9e..0000000
--- a/node_modules/.bin/deps-sort
+++ /dev/null
@@ -1 +0,0 @@
-../deps-sort/bin/cmd.js
\ No newline at end of file
diff --git a/node_modules/.bin/detective b/node_modules/.bin/detective
deleted file mode 120000
index 8c3093a..0000000
--- a/node_modules/.bin/detective
+++ /dev/null
@@ -1 +0,0 @@
-../detective/bin/detective.js
\ No newline at end of file
diff --git a/node_modules/.bin/insert-module-globals b/node_modules/.bin/insert-module-globals
deleted file mode 120000
index 68af3a9..0000000
--- a/node_modules/.bin/insert-module-globals
+++ /dev/null
@@ -1 +0,0 @@
-../insert-module-globals/bin/cmd.js
\ No newline at end of file
diff --git a/node_modules/.bin/miller-rabin b/node_modules/.bin/miller-rabin
deleted file mode 120000
index c175fe9..0000000
--- a/node_modules/.bin/miller-rabin
+++ /dev/null
@@ -1 +0,0 @@
-../miller-rabin/bin/miller-rabin
\ No newline at end of file
diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp
deleted file mode 120000
index 017896c..0000000
--- a/node_modules/.bin/mkdirp
+++ /dev/null
@@ -1 +0,0 @@
-../mkdirp/bin/cmd.js
\ No newline at end of file
diff --git a/node_modules/.bin/module-deps b/node_modules/.bin/module-deps
deleted file mode 120000
index 66a1f24..0000000
--- a/node_modules/.bin/module-deps
+++ /dev/null
@@ -1 +0,0 @@
-../module-deps/bin/cmd.js
\ No newline at end of file
diff --git a/node_modules/.bin/sha.js b/node_modules/.bin/sha.js
deleted file mode 120000
index 3c76105..0000000
--- a/node_modules/.bin/sha.js
+++ /dev/null
@@ -1 +0,0 @@
-../sha.js/bin.js
\ No newline at end of file
diff --git a/node_modules/.bin/tape b/node_modules/.bin/tape
deleted file mode 120000
index dc4bc23..0000000
--- a/node_modules/.bin/tape
+++ /dev/null
@@ -1 +0,0 @@
-../tape/bin/tape
\ No newline at end of file
diff --git a/node_modules/.bin/umd b/node_modules/.bin/umd
deleted file mode 120000
index 69767ed..0000000
--- a/node_modules/.bin/umd
+++ /dev/null
@@ -1 +0,0 @@
-../umd/bin/cli.js
\ No newline at end of file
diff --git a/node_modules/.bin/undeclared-identifiers b/node_modules/.bin/undeclared-identifiers
deleted file mode 120000
index c95efdb..0000000
--- a/node_modules/.bin/undeclared-identifiers
+++ /dev/null
@@ -1 +0,0 @@
-../undeclared-identifiers/bin.js
\ No newline at end of file
diff --git a/node_modules/JSONStream/.travis.yml b/node_modules/JSONStream/.travis.yml
deleted file mode 100644
index 5f30bb5..0000000
--- a/node_modules/JSONStream/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-node_js:
- - 4
- - 5
- - 6
-sudo: false
-
-
diff --git a/node_modules/JSONStream/LICENSE.APACHE2 b/node_modules/JSONStream/LICENSE.APACHE2
deleted file mode 100644
index 6366c04..0000000
--- a/node_modules/JSONStream/LICENSE.APACHE2
+++ /dev/null
@@ -1,15 +0,0 @@
-Apache License, Version 2.0
-
-Copyright (c) 2011 Dominic Tarr
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/node_modules/JSONStream/LICENSE.MIT b/node_modules/JSONStream/LICENSE.MIT
deleted file mode 100644
index 6eafbd7..0000000
--- a/node_modules/JSONStream/LICENSE.MIT
+++ /dev/null
@@ -1,24 +0,0 @@
-The MIT License
-
-Copyright (c) 2011 Dominic Tarr
-
-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.
diff --git a/node_modules/JSONStream/bin.js b/node_modules/JSONStream/bin.js
deleted file mode 100755
index af2b6ac..0000000
--- a/node_modules/JSONStream/bin.js
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /usr/bin/env node
-
-var JSONStream = require('./')
-
-if(!module.parent && process.title !== 'browser') {
- process.stdin
- .pipe(JSONStream.parse(process.argv[2]))
- .pipe(JSONStream.stringify('[', ',\n', ']\n', 2))
- .pipe(process.stdout)
-}
-
-
diff --git a/node_modules/JSONStream/examples/all_docs.js b/node_modules/JSONStream/examples/all_docs.js
deleted file mode 100644
index fa87fe5..0000000
--- a/node_modules/JSONStream/examples/all_docs.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var request = require('request')
- , JSONStream = require('JSONStream')
- , es = require('event-stream')
-
-var parser = JSONStream.parse(['rows', true]) //emit parts that match this path (any element of the rows array)
- , req = request({url: 'http://isaacs.couchone.com/registry/_all_docs'})
- , logger = es.mapSync(function (data) { //create a stream that logs to stderr,
- console.error(data)
- return data
- })
-
-req.pipe(parser)
-parser.pipe(logger)
diff --git a/node_modules/JSONStream/index.js b/node_modules/JSONStream/index.js
deleted file mode 100755
index f4ed901..0000000
--- a/node_modules/JSONStream/index.js
+++ /dev/null
@@ -1,247 +0,0 @@
-'use strict'
-
-var Parser = require('jsonparse')
- , through = require('through')
-
-var bufferFrom = Buffer.from && Buffer.from !== Uint8Array.from
-
-/*
-
- the value of this.stack that creationix's jsonparse has is weird.
-
- it makes this code ugly, but his problem is way harder that mine,
- so i'll forgive him.
-
-*/
-
-exports.parse = function (path, map) {
- var header, footer
- var parser = new Parser()
- var stream = through(function (chunk) {
- if('string' === typeof chunk)
- chunk = bufferFrom ? Buffer.from(chunk) : new Buffer(chunk)
- parser.write(chunk)
- },
- function (data) {
- if(data)
- stream.write(data)
- if (header)
- stream.emit('header', header)
- if (footer)
- stream.emit('footer', footer)
- stream.queue(null)
- })
-
- if('string' === typeof path)
- path = path.split('.').map(function (e) {
- if (e === '$*')
- return {emitKey: true}
- else if (e === '*')
- return true
- else if (e === '') // '..'.split('.') returns an empty string
- return {recurse: true}
- else
- return e
- })
-
-
- var count = 0, _key
- if(!path || !path.length)
- path = null
-
- parser.onValue = function (value) {
- if (!this.root)
- stream.root = value
-
- if(! path) return
-
- var i = 0 // iterates on path
- var j = 0 // iterates on stack
- var emitKey = false;
- var emitPath = false;
- while (i < path.length) {
- var key = path[i]
- var c
- j++
-
- if (key && !key.recurse) {
- c = (j === this.stack.length) ? this : this.stack[j]
- if (!c) return
- if (! check(key, c.key)) {
- setHeaderFooter(c.key, value)
- return
- }
- emitKey = !!key.emitKey;
- emitPath = !!key.emitPath;
- i++
- } else {
- i++
- var nextKey = path[i]
- if (! nextKey) return
- while (true) {
- c = (j === this.stack.length) ? this : this.stack[j]
- if (!c) return
- if (check(nextKey, c.key)) {
- i++;
- if (!Object.isFrozen(this.stack[j]))
- this.stack[j].value = null
- break
- } else {
- setHeaderFooter(c.key, value)
- }
- j++
- }
- }
-
- }
-
- // emit header
- if (header) {
- stream.emit('header', header);
- header = false;
- }
- if (j !== this.stack.length) return
-
- count ++
- var actualPath = this.stack.slice(1).map(function(element) { return element.key }).concat([this.key])
- var data = value
- if(null != data)
- if(null != (data = map ? map(data, actualPath) : data)) {
- if (emitKey || emitPath) {
- data = { value: data };
- if (emitKey)
- data["key"] = this.key;
- if (emitPath)
- data["path"] = actualPath;
- }
-
- stream.queue(data)
- }
- if (this.value) delete this.value[this.key]
- for(var k in this.stack)
- if (!Object.isFrozen(this.stack[k]))
- this.stack[k].value = null
- }
- parser._onToken = parser.onToken;
-
- parser.onToken = function (token, value) {
- parser._onToken(token, value);
- if (this.stack.length === 0) {
- if (stream.root) {
- if(!path)
- stream.queue(stream.root)
- count = 0;
- stream.root = null;
- }
- }
- }
-
- parser.onError = function (err) {
- if(err.message.indexOf("at position") > -1)
- err.message = "Invalid JSON (" + err.message + ")";
- stream.emit('error', err)
- }
-
- return stream
-
- function setHeaderFooter(key, value) {
- // header has not been emitted yet
- if (header !== false) {
- header = header || {}
- header[key] = value
- }
-
- // footer has not been emitted yet but header has
- if (footer !== false && header === false) {
- footer = footer || {}
- footer[key] = value
- }
- }
-}
-
-function check (x, y) {
- if ('string' === typeof x)
- return y == x
- else if (x && 'function' === typeof x.exec)
- return x.exec(y)
- else if ('boolean' === typeof x || 'object' === typeof x)
- return x
- else if ('function' === typeof x)
- return x(y)
- return false
-}
-
-exports.stringify = function (op, sep, cl, indent) {
- indent = indent || 0
- if (op === false){
- op = ''
- sep = '\n'
- cl = ''
- } else if (op == null) {
-
- op = '[\n'
- sep = '\n,\n'
- cl = '\n]\n'
-
- }
-
- //else, what ever you like
-
- var stream
- , first = true
- , anyData = false
- stream = through(function (data) {
- anyData = true
- try {
- var json = JSON.stringify(data, null, indent)
- } catch (err) {
- return stream.emit('error', err)
- }
- if(first) { first = false ; stream.queue(op + json)}
- else stream.queue(sep + json)
- },
- function (data) {
- if(!anyData)
- stream.queue(op)
- stream.queue(cl)
- stream.queue(null)
- })
-
- return stream
-}
-
-exports.stringifyObject = function (op, sep, cl, indent) {
- indent = indent || 0
- if (op === false){
- op = ''
- sep = '\n'
- cl = ''
- } else if (op == null) {
-
- op = '{\n'
- sep = '\n,\n'
- cl = '\n}\n'
-
- }
-
- //else, what ever you like
-
- var first = true
- var anyData = false
- var stream = through(function (data) {
- anyData = true
- var json = JSON.stringify(data[0]) + ':' + JSON.stringify(data[1], null, indent)
- if(first) { first = false ; this.queue(op + json)}
- else this.queue(sep + json)
- },
- function (data) {
- if(!anyData) this.queue(op)
- this.queue(cl)
-
- this.queue(null)
- })
-
- return stream
-}
-
-
diff --git a/node_modules/JSONStream/package.json b/node_modules/JSONStream/package.json
deleted file mode 100644
index 545f309..0000000
--- a/node_modules/JSONStream/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "JSONStream@^1.0.3",
- "_id": "JSONStream@1.3.5",
- "_inBundle": false,
- "_integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "_location": "/JSONStream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "JSONStream@^1.0.3",
- "name": "JSONStream",
- "escapedName": "JSONStream",
- "rawSpec": "^1.0.3",
- "saveSpec": null,
- "fetchSpec": "^1.0.3"
- },
- "_requiredBy": [
- "/browser-pack",
- "/browserify",
- "/deps-sort",
- "/insert-module-globals",
- "/module-deps"
- ],
- "_resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
- "_shasum": "3208c1f08d3a4d99261ab64f92302bc15e111ca0",
- "_spec": "JSONStream@^1.0.3",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/browserify",
- "author": {
- "name": "Dominic Tarr",
- "email": "dominic.tarr@gmail.com",
- "url": "http://bit.ly/dominictarr"
- },
- "bin": {
- "JSONStream": "./bin.js"
- },
- "bugs": {
- "url": "https://github.com/dominictarr/JSONStream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- },
- "deprecated": false,
- "description": "rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects)",
- "devDependencies": {
- "assertions": "~2.2.2",
- "event-stream": "~0.7.0",
- "it-is": "~1",
- "render": "~0.1.1",
- "tape": "~2.12.3",
- "trees": "~0.0.3"
- },
- "engines": {
- "node": "*"
- },
- "homepage": "http://github.com/dominictarr/JSONStream",
- "keywords": [
- "json",
- "stream",
- "streaming",
- "parser",
- "async",
- "parsing"
- ],
- "license": "(MIT OR Apache-2.0)",
- "name": "JSONStream",
- "optionalDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/dominictarr/JSONStream.git"
- },
- "scripts": {
- "test": "node test/run.js"
- },
- "version": "1.3.5"
-}
diff --git a/node_modules/JSONStream/readme.markdown b/node_modules/JSONStream/readme.markdown
deleted file mode 100644
index 422c3df..0000000
--- a/node_modules/JSONStream/readme.markdown
+++ /dev/null
@@ -1,207 +0,0 @@
-# JSONStream
-
-streaming JSON.parse and stringify
-
-![](https://secure.travis-ci.org/dominictarr/JSONStream.png?branch=master)
-
-## install
-```npm install JSONStream```
-
-## example
-
-``` js
-
-var request = require('request')
- , JSONStream = require('JSONStream')
- , es = require('event-stream')
-
-request({url: 'http://isaacs.couchone.com/registry/_all_docs'})
- .pipe(JSONStream.parse('rows.*'))
- .pipe(es.mapSync(function (data) {
- console.error(data)
- return data
- }))
-```
-
-## JSONStream.parse(path)
-
-parse stream of values that match a path
-
-``` js
- JSONStream.parse('rows.*.doc')
-```
-
-The `..` operator is the recursive descent operator from [JSONPath](http://goessner.net/articles/JsonPath/), which will match a child at any depth (see examples below).
-
-If your keys have keys that include `.` or `*` etc, use an array instead.
-`['row', true, /^doc/]`.
-
-If you use an array, `RegExp`s, booleans, and/or functions. The `..` operator is also available in array representation, using `{recurse: true}`.
-any object that matches the path will be emitted as 'data' (and `pipe`d down stream)
-
-If `path` is empty or null, no 'data' events are emitted.
-
-If you want to have keys emitted, you can prefix your `*` operator with `$`: `obj.$*` - in this case the data passed to the stream is an object with a `key` holding the key and a `value` property holding the data.
-
-### Examples
-
-query a couchdb view:
-
-``` bash
-curl -sS localhost:5984/tests/_all_docs&include_docs=true
-```
-you will get something like this:
-
-``` js
-{"total_rows":129,"offset":0,"rows":[
- { "id":"change1_0.6995461115147918"
- , "key":"change1_0.6995461115147918"
- , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}
- , "doc":{
- "_id": "change1_0.6995461115147918"
- , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}
- },
- { "id":"change2_0.6995461115147918"
- , "key":"change2_0.6995461115147918"
- , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}
- , "doc":{
- "_id":"change2_0.6995461115147918"
- , "_rev":"1-13677d36b98c0c075145bb8975105153"
- , "hello":2
- }
- },
-]}
-
-```
-
-we are probably most interested in the `rows.*.doc`
-
-create a `Stream` that parses the documents from the feed like this:
-
-``` js
-var stream = JSONStream.parse(['rows', true, 'doc']) //rows, ANYTHING, doc
-
-stream.on('data', function(data) {
- console.log('received:', data);
-});
-//emits anything from _before_ the first match
-stream.on('header', function (data) {
- console.log('header:', data) // => {"total_rows":129,"offset":0}
-})
-
-```
-awesome!
-
-In case you wanted the contents the doc emitted:
-
-``` js
-var stream = JSONStream.parse(['rows', true, 'doc', {emitKey: true}]) //rows, ANYTHING, doc, items in docs with keys
-
-stream.on('data', function(data) {
- console.log('key:', data.key);
- console.log('value:', data.value);
-});
-
-```
-
-You can also emit the path:
-
-``` js
-var stream = JSONStream.parse(['rows', true, 'doc', {emitPath: true}]) //rows, ANYTHING, doc, items in docs with keys
-
-stream.on('data', function(data) {
- console.log('path:', data.path);
- console.log('value:', data.value);
-});
-
-```
-
-### recursive patterns (..)
-
-`JSONStream.parse('docs..value')`
-(or `JSONStream.parse(['docs', {recurse: true}, 'value'])` using an array)
-will emit every `value` object that is a child, grand-child, etc. of the
-`docs` object. In this example, it will match exactly 5 times at various depth
-levels, emitting 0, 1, 2, 3 and 4 as results.
-
-```js
-{
- "total": 5,
- "docs": [
- {
- "key": {
- "value": 0,
- "some": "property"
- }
- },
- {"value": 1},
- {"value": 2},
- {"blbl": [{}, {"a":0, "b":1, "value":3}, 10]},
- {"value": 4}
- ]
-}
-```
-
-## JSONStream.parse(pattern, map)
-
-provide a function that can be used to map or filter
-the json output. `map` is passed the value at that node of the pattern,
-if `map` return non-nullish (anything but `null` or `undefined`)
-that value will be emitted in the stream. If it returns a nullish value,
-nothing will be emitted.
-
-`JSONStream` also emits `'header'` and `'footer'` events,
-the `'header'` event contains anything in the output that was before
-the first match, and the `'footer'`, is anything after the last match.
-
-## JSONStream.stringify(open, sep, close)
-
-Create a writable stream.
-
-you may pass in custom `open`, `close`, and `seperator` strings.
-But, by default, `JSONStream.stringify()` will create an array,
-(with default options `open='[\n', sep='\n,\n', close='\n]\n'`)
-
-If you call `JSONStream.stringify(false)`
-the elements will only be seperated by a newline.
-
-If you only write one item this will be valid JSON.
-
-If you write many items,
-you can use a `RegExp` to split it into valid chunks.
-
-## JSONStream.stringifyObject(open, sep, close)
-
-Very much like `JSONStream.stringify`,
-but creates a writable stream for objects instead of arrays.
-
-Accordingly, `open='{\n', sep='\n,\n', close='\n}\n'`.
-
-When you `.write()` to the stream you must supply an array with `[ key, data ]`
-as the first argument.
-
-## unix tool
-
-query npm to see all the modules that browserify has ever depended on.
-
-``` bash
-curl https://registry.npmjs.org/browserify | JSONStream 'versions.*.dependencies'
-```
-
-## numbers
-
-numbers will be emitted as numbers.
-huge numbers that cannot be represented in memory as javascript numbers will be emitted as strings.
-cf https://github.com/creationix/jsonparse/commit/044b268f01c4b8f97fb936fc85d3bcfba179e5bb for details.
-
-## Acknowlegements
-
-this module depends on https://github.com/creationix/jsonparse
-by Tim Caswell
-and also thanks to Florent Jaby for teaching me about parsing with:
-https://github.com/Floby/node-json-streams
-
-## license
-
-Dual-licensed under the MIT License or the Apache License, version 2.0
-
diff --git a/node_modules/JSONStream/test/bool.js b/node_modules/JSONStream/test/bool.js
deleted file mode 100644
index 6c386d6..0000000
--- a/node_modules/JSONStream/test/bool.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','all_npm.json')
- , JSONStream = require('../')
- , it = require('it-is').style('colour')
-
- function randomObj () {
- return (
- Math.random () < 0.4
- ? {hello: 'eonuhckmqjk',
- whatever: 236515,
- lies: true,
- nothing: [null],
-// stuff: [Math.random(),Math.random(),Math.random()]
- }
- : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
- )
- }
-
-var expected = []
- , stringify = JSONStream.stringify()
- , es = require('event-stream')
- , stringified = ''
- , called = 0
- , count = 10
- , ended = false
-
-while (count --)
- expected.push(randomObj())
-
- es.connect(
- es.readArray(expected),
- stringify,
- JSONStream.parse([true]),
- es.writeArray(function (err, lines) {
-
- it(lines).has(expected)
- console.error('PASSED')
- })
- )
diff --git a/node_modules/JSONStream/test/browser.js b/node_modules/JSONStream/test/browser.js
deleted file mode 100644
index 3c28d49..0000000
--- a/node_modules/JSONStream/test/browser.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var test = require('tape')
-var JSONStream = require('../')
-var testData = '{"rows":[{"hello":"world"}, {"foo": "bar"}]}'
-
-test('basic parsing', function (t) {
- t.plan(2)
- var parsed = JSONStream.parse("rows.*")
- var parsedKeys = {}
- parsed.on('data', function(match) {
- parsedKeys[Object.keys(match)[0]] = true
- })
- parsed.on('end', function() {
- t.equal(!!parsedKeys['hello'], true)
- t.equal(!!parsedKeys['foo'], true)
- })
- parsed.write(testData)
- parsed.end()
-})
\ No newline at end of file
diff --git a/node_modules/JSONStream/test/destroy_missing.js b/node_modules/JSONStream/test/destroy_missing.js
deleted file mode 100644
index 315fdc8..0000000
--- a/node_modules/JSONStream/test/destroy_missing.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var fs = require ('fs');
-var net = require('net');
-var join = require('path').join;
-var file = join(__dirname, 'fixtures','all_npm.json');
-var JSONStream = require('../');
-
-
-var server = net.createServer(function(client) {
- var parser = JSONStream.parse([]);
- parser.on('end', function() {
- console.log('close')
- console.error('PASSED');
- server.close();
- });
- client.pipe(parser);
- var n = 4
- client.on('data', function () {
- if(--n) return
- client.end();
- })
-});
-server.listen(9999);
-
-
-var client = net.connect({ port : 9999 }, function() {
- fs.createReadStream(file).pipe(client).on('data', console.log) //.resume();
-});
diff --git a/node_modules/JSONStream/test/doubledot1.js b/node_modules/JSONStream/test/doubledot1.js
deleted file mode 100644
index 78149b9..0000000
--- a/node_modules/JSONStream/test/doubledot1.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','all_npm.json')
- , JSONStream = require('../')
- , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
- , parser = JSONStream.parse('rows..rev')
- , called = 0
- , ended = false
- , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-
-parser.on('data', function (data) {
- called ++
- parsed.push(data)
-})
-
-parser.on('end', function () {
- ended = true
-})
-
-process.on('exit', function () {
- it(called).equal(expected.rows.length)
- for (var i = 0 ; i < expected.rows.length ; i++)
- it(parsed[i]).deepEqual(expected.rows[i].value.rev)
- console.error('PASSED')
-})
diff --git a/node_modules/JSONStream/test/doubledot2.js b/node_modules/JSONStream/test/doubledot2.js
deleted file mode 100644
index b0bc5b1..0000000
--- a/node_modules/JSONStream/test/doubledot2.js
+++ /dev/null
@@ -1,30 +0,0 @@
- var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','depth.json')
- , JSONStream = require('../')
- , it = require('it-is')
-
- var expected = JSON.parse(fs.readFileSync(file))
- , parser = JSONStream.parse(['docs', {recurse: true}, 'value'])
- , called = 0
- , ended = false
- , parsed = []
-
- fs.createReadStream(file).pipe(parser)
-
- parser.on('data', function (data) {
- called ++
- parsed.push(data)
- })
-
- parser.on('end', function () {
- ended = true
- })
-
- process.on('exit', function () {
- var expectedValues = [0, [1], {"a": 2}, "3", 4]
- it(called).equal(expectedValues.length)
- for (var i = 0 ; i < 5 ; i++)
- it(parsed[i]).deepEqual(expectedValues[i])
- console.error('PASSED')
- })
diff --git a/node_modules/JSONStream/test/empty.js b/node_modules/JSONStream/test/empty.js
deleted file mode 100644
index 19e888c..0000000
--- a/node_modules/JSONStream/test/empty.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var JSONStream = require('../')
- , stream = require('stream')
- , it = require('it-is')
-
-var output = [ [], [] ]
-
-var parser1 = JSONStream.parse(['docs', /./])
-parser1.on('data', function(data) {
- output[0].push(data)
-})
-
-var parser2 = JSONStream.parse(['docs', /./])
-parser2.on('data', function(data) {
- output[1].push(data)
-})
-
-var pending = 2
-function onend () {
- if (--pending > 0) return
- it(output).deepEqual([
- [], [{hello: 'world'}]
- ])
- console.error('PASSED')
-}
-parser1.on('end', onend)
-parser2.on('end', onend)
-
-function makeReadableStream() {
- var readStream = new stream.Stream()
- readStream.readable = true
- readStream.write = function (data) { this.emit('data', data) }
- readStream.end = function (data) { this.emit('end') }
- return readStream
-}
-
-var emptyArray = makeReadableStream()
-emptyArray.pipe(parser1)
-emptyArray.write('{"docs":[]}')
-emptyArray.end()
-
-var objectArray = makeReadableStream()
-objectArray.pipe(parser2)
-objectArray.write('{"docs":[{"hello":"world"}]}')
-objectArray.end()
diff --git a/node_modules/JSONStream/test/error_contents.js b/node_modules/JSONStream/test/error_contents.js
deleted file mode 100644
index 13c27ae..0000000
--- a/node_modules/JSONStream/test/error_contents.js
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','error.json')
- , JSONStream = require('../')
- , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
- , parser = JSONStream.parse(['rows'])
- , called = 0
- , headerCalled = 0
- , footerCalled = 0
- , ended = false
- , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-
-parser.on('header', function (data) {
- headerCalled ++
- it(data).deepEqual({
- error: 'error_code',
- message: 'this is an error message'
- })
-})
-
-parser.on('footer', function (data) {
- footerCalled ++
-})
-
-parser.on('data', function (data) {
- called ++
- parsed.push(data)
-})
-
-parser.on('end', function () {
- ended = true
-})
-
-process.on('exit', function () {
- it(called).equal(0)
- it(headerCalled).equal(1)
- it(footerCalled).equal(0)
- console.error('PASSED')
-})
diff --git a/node_modules/JSONStream/test/fixtures/all_npm.json b/node_modules/JSONStream/test/fixtures/all_npm.json
deleted file mode 100644
index 6303ea2..0000000
--- a/node_modules/JSONStream/test/fixtures/all_npm.json
+++ /dev/null
@@ -1,4030 +0,0 @@
-{"total_rows":4028,"offset":0,"rows":[
-{"id":"","key":"","value":{"rev":"1-2f11e026763c10730d8b19ba5dce7565"}},
-{"id":"3scale","key":"3scale","value":{"rev":"3-db3d574bf0ecdfdf627afeaa21b4bdaa"}},
-{"id":"7digital-api","key":"7digital-api","value":{"rev":"20-21d11832780e2368aabc946598a41dd5"}},
-{"id":"AMD","key":"AMD","value":{"rev":"7-3b4305a9c786ab4c5ce611e7f0de0aca"}},
-{"id":"AriesNode","key":"AriesNode","value":{"rev":"3-9d88392bca6582c5c54784927dbfdee6"}},
-{"id":"Array.prototype.forEachAsync","key":"Array.prototype.forEachAsync","value":{"rev":"3-85696441ba6bef77cc1e7de7b073110e"}},
-{"id":"Babel","key":"Babel","value":{"rev":"5-9d8370c6ac6fd9cd3d530f26a9379814"}},
-{"id":"Blaggie-System","key":"Blaggie-System","value":{"rev":"3-47782b1e5cbfa425170192799510e148"}},
-{"id":"Blob","key":"Blob","value":{"rev":"3-cf5fb5d69da4dd00bc4f2be8870ca698"}},
-{"id":"BlobBuilder","key":"BlobBuilder","value":{"rev":"3-eb977ff1713a915384fac994f9d8fa7c"}},
-{"id":"Buffer","key":"Buffer","value":{"rev":"3-549594b58e83d6d07bb219e73de558e5"}},
-{"id":"CLI-UI","key":"CLI-UI","value":{"rev":"5-5912625f27b4bdfb4d3eed16726c48a8"}},
-{"id":"CLoader","key":"CLoader","value":{"rev":"1-ad3c317ddf3497e73ab41cb1ddbc6ba8"}},
-{"id":"CM1","key":"CM1","value":{"rev":"15-a325a2dc28bc6967a1a14beed86f3b80"}},
-{"id":"CONFIGURATOR","key":"CONFIGURATOR","value":{"rev":"3-c76bf9282a75cc4d3fb349e831ccb8a5"}},
-{"id":"Cashew","key":"Cashew","value":{"rev":"7-6a74dc51dbecc47d2c15bfb7d056a20f"}},
-{"id":"Class","key":"Class","value":{"rev":"5-958c6365f76a60a8b3dafbbd9730ac7e"}},
-{"id":"ClassLoader","key":"ClassLoader","value":{"rev":"3-27fe8faa8a1d60d639f87af52826ed47"}},
-{"id":"ClearSilver","key":"ClearSilver","value":{"rev":"3-f3e54eb9ce64fc6a090186e61f15ed0b"}},
-{"id":"Couch-cleaner","key":"Couch-cleaner","value":{"rev":"3-fc77270917d967a4e2e8637cfa9f0fe0"}},
-{"id":"CouchCover","key":"CouchCover","value":{"rev":"15-3b2d87d314f57272a5c27c42bbb3eaf9"}},
-{"id":"DOM-js","key":"DOM-js","value":{"rev":"8-748cdc96566a7b65bbd0b12be2eeb386"}},
-{"id":"DOMBuilder","key":"DOMBuilder","value":{"rev":"19-41a518f2ce16fabc0241535ccd967300"}},
-{"id":"DateZ","key":"DateZ","value":{"rev":"15-69d8115a9bd521e614eaad3cf2611264"}},
-{"id":"Dateselect","key":"Dateselect","value":{"rev":"3-6511567a876d8fe15724bbc7f247214c"}},
-{"id":"Deferred","key":"Deferred","value":{"rev":"3-c61dfc4a0d1bd3e9f35c7182f161f1f2"}},
-{"id":"DeskSet","key":"DeskSet","value":{"rev":"5-359bf760718898ff3591eb366e336cf9"}},
-{"id":"Estro","key":"Estro","value":{"rev":"11-97192e2d0327469bb30f814963db6dff"}},
-{"id":"EventProxy.js","key":"EventProxy.js","value":{"rev":"5-106696b56c6959cec4bfd37f406ee60a"}},
-{"id":"EventServer","key":"EventServer","value":{"rev":"3-59d174119435e99e2affe0c4ba7caae0"}},
-{"id":"Expressive","key":"Expressive","value":{"rev":"3-7eae0ea010eb9014b28108e814918eac"}},
-{"id":"F","key":"F","value":{"rev":"12-91a3db69527b46cf43e36b7ec64a4336"}},
-{"id":"Faker","key":"Faker","value":{"rev":"9-77951c352cb6f9a0b824be620a8fa40d"}},
-{"id":"FastLegS","key":"FastLegS","value":{"rev":"27-4399791981235021a36c94bb9e9b52b5"}},
-{"id":"Fayer","key":"Fayer","value":{"rev":"7-7e4974ff2716329375f9711bcabef701"}},
-{"id":"File","key":"File","value":{"rev":"3-45e353a984038bc48248dfc32b18f9a8"}},
-{"id":"FileError","key":"FileError","value":{"rev":"3-bb4b03a2548e3c229e2c7e92242946c3"}},
-{"id":"FileList","key":"FileList","value":{"rev":"3-ec4a3fc91794ef7fdd3fe88b19cec7b0"}},
-{"id":"FileReader","key":"FileReader","value":{"rev":"7-e81b58a2d8a765ae4781b41bbfadb4cb"}},
-{"id":"FileSaver","key":"FileSaver","value":{"rev":"3-476dcb3f63f4d10feee08d41a8128cb8"}},
-{"id":"FileWriter","key":"FileWriter","value":{"rev":"3-f2fcdbc4938de480cce2e8e8416a93dd"}},
-{"id":"FileWriterSync","key":"FileWriterSync","value":{"rev":"3-9494c3fe7a1230238f37a724ec10895b"}},
-{"id":"FormData","key":"FormData","value":{"rev":"3-8872d717575f7090107a96d81583f6fe"}},
-{"id":"Frenchpress","key":"Frenchpress","value":{"rev":"3-6d916fc15b9e77535771578f96c47c52"}},
-{"id":"FreshDocs","key":"FreshDocs","value":{"rev":"5-f1f3e76c85267faf21d06d911cc6c203"}},
-{"id":"Google_Plus_API","key":"Google_Plus_API","value":{"rev":"3-3302bc9846726d996a45daee3dc5922c"}},
-{"id":"Gord","key":"Gord","value":{"rev":"11-32fddef1453773ac7270ba0e7c83f727"}},
-{"id":"Graph","key":"Graph","value":{"rev":"7-c346edea4f90e3e18d50a62473868cf4"}},
-{"id":"GridFS","key":"GridFS","value":{"rev":"27-4fc649aaa007fddec4947bdb7111560f"}},
-{"id":"Haraka","key":"Haraka","value":{"rev":"39-ee8f890521c1579b3cc779c8ebe03480"}},
-{"id":"Index","key":"Index","value":{"rev":"29-d8f4881c1544bf51dea1927e87ebb3f3"}},
-{"id":"JS-Entities","key":"JS-Entities","value":{"rev":"7-905636d8b46f273210233b60063d079b"}},
-{"id":"JSLint-commonJS","key":"JSLint-commonJS","value":{"rev":"3-759a81f82af7055e85ee89c9707c9609"}},
-{"id":"JSON","key":"JSON","value":{"rev":"3-7966a79067c34fb5de2e62c796f67341"}},
-{"id":"JSONPath","key":"JSONPath","value":{"rev":"7-58789d57ae366a5b0ae4b36837f15d59"}},
-{"id":"JSONSelect","key":"JSONSelect","value":{"rev":"9-5b0730da91eeb52e8f54da516367dc0f"}},
-{"id":"JSONloops","key":"JSONloops","value":{"rev":"3-3d4a1f8bfcfd778ab7def54155324331"}},
-{"id":"JSPP","key":"JSPP","value":{"rev":"7-af09a2bb193b3ff44775e8fbb7d4f522"}},
-{"id":"JSV","key":"JSV","value":{"rev":"3-41a7af86909046111be8ee9b56b077c8"}},
-{"id":"Jody","key":"Jody","value":{"rev":"43-70c1cf40e93cd8ce53249e5295d6b159"}},
-{"id":"Journaling-Hash","key":"Journaling-Hash","value":{"rev":"3-ac676eecb40a4dff301c671fa4bb6be9"}},
-{"id":"Kahana","key":"Kahana","value":{"rev":"33-1cb7e291ae02cee4e8105509571223f5"}},
-{"id":"LazyBoy","key":"LazyBoy","value":{"rev":"13-20a8894e3a957f184f5ae2a3e709551c"}},
-{"id":"Lingo","key":"Lingo","value":{"rev":"9-1af9a6df616e601f09c8cec07ccad1ae"}},
-{"id":"Loggy","key":"Loggy","value":{"rev":"33-e115c25163ab468314eedbe497d1c51e"}},
-{"id":"MeCab","key":"MeCab","value":{"rev":"4-2687176c7b878930e812a534976a6988"}},
-{"id":"Mercury","key":"Mercury","value":{"rev":"3-09a6bff1332ed829bd2c37bfec244a41"}},
-{"id":"Mu","key":"Mu","value":{"rev":"7-28e6ab82c402c3a75fe0f79dea846b97"}},
-{"id":"N","key":"N","value":{"rev":"7-e265046b5bdd299b2cad1584083ce2d5"}},
-{"id":"NORRIS","key":"NORRIS","value":{"rev":"3-4b5b23b09118582c44414f8d480619e6"}},
-{"id":"NetOS","key":"NetOS","value":{"rev":"3-3f943f87a24c11e6dd8c265469914e80"}},
-{"id":"NewBase60","key":"NewBase60","value":{"rev":"3-fd84758db79870e82917d358c6673f32"}},
-{"id":"NoCR","key":"NoCR","value":{"rev":"3-8f6cddd528f2d6045e3dda6006fb6948"}},
-{"id":"NodObjC","key":"NodObjC","value":{"rev":"15-ea6ab2df532c90fcefe5a428950bfdbb"}},
-{"id":"Node-JavaScript-Preprocessor","key":"Node-JavaScript-Preprocessor","value":{"rev":"13-4662b5ad742caaa467ec5d6c8e77b1e5"}},
-{"id":"NodeInterval","key":"NodeInterval","value":{"rev":"3-dc3446db2e0cd5be29a3c07942dba66d"}},
-{"id":"NodeSSH","key":"NodeSSH","value":{"rev":"3-45530fae5a69c44a6dd92357910f4212"}},
-{"id":"Nonsense","key":"Nonsense","value":{"rev":"3-9d86191475bc76dc3dd496d4dfe5d94e"}},
-{"id":"NormAndVal","key":"NormAndVal","value":{"rev":"9-d3b3d6ffd046292f4733aa5f3eb7be61"}},
-{"id":"Olive","key":"Olive","value":{"rev":"5-67f3057f09cae5104f09472db1d215aa"}},
-{"id":"OnCollect","key":"OnCollect","value":{"rev":"16-6dbe3afd04f123dda87bb1e21cdfd776"}},
-{"id":"PJsonCouch","key":"PJsonCouch","value":{"rev":"3-be9588f49d85094c36288eb63f8236b3"}},
-{"id":"PMInject","key":"PMInject","value":{"rev":"5-da518047d8273dbf3b3c05ea25e77836"}},
-{"id":"PanPG","key":"PanPG","value":{"rev":"13-beb54225a6b1be4c157434c28adca016"}},
-{"id":"PerfDriver","key":"PerfDriver","value":{"rev":"2-b448fb2f407f341b8df7032f29e4920f"}},
-{"id":"PostgresClient","key":"PostgresClient","value":{"rev":"8-2baec6847f8ad7dcf24b7d61a4034163"}},
-{"id":"QuickWeb","key":"QuickWeb","value":{"rev":"13-d388df9c484021ecd75bc9650d659a67"}},
-{"id":"R.js","key":"R.js","value":{"rev":"3-3f154b95ec6fc744f95a29750f16667e"}},
-{"id":"R2","key":"R2","value":{"rev":"11-f5ccff6f108f6b928caafb62b80d1056"}},
-{"id":"Reston","key":"Reston","value":{"rev":"5-9d234010f32f593edafc04620f3cf2bd"}},
-{"id":"Sardines","key":"Sardines","value":{"rev":"5-d7d3d2269420e21c2c62b86ff5a0021e"}},
-{"id":"SessionWebSocket","key":"SessionWebSocket","value":{"rev":"8-d9fc9beaf90057aefeb701addd7fc845"}},
-{"id":"Sheet","key":"Sheet","value":{"rev":"8-c827c713564e4ae5a17988ffea520d0d"}},
-{"id":"Spec_My_Node","key":"Spec_My_Node","value":{"rev":"8-fa58408e9d9736d9c6fa8daf5d632106"}},
-{"id":"Spot","key":"Spot","value":{"rev":"3-6b6c2131451fed28fb57c924c4fa44cc"}},
-{"id":"Sslac","key":"Sslac","value":{"rev":"3-70a2215cc7505729254aa6fa1d9a25d9"}},
-{"id":"StaticServer","key":"StaticServer","value":{"rev":"3-6f5433177ef4d76a52f01c093117a532"}},
-{"id":"StringScanner","key":"StringScanner","value":{"rev":"3-e85d0646c25ec477c1c45538712d3a38"}},
-{"id":"Structr","key":"Structr","value":{"rev":"3-449720001801cff5831c2cc0e0f1fcf8"}},
-{"id":"Templ8","key":"Templ8","value":{"rev":"11-4e6edb250bc250df20b2d557ca7f6589"}},
-{"id":"Template","key":"Template","value":{"rev":"6-1f055c73524d2b7e82eb6c225bd4b8e0"}},
-{"id":"Thimble","key":"Thimble","value":{"rev":"3-8499b261206f2f2e9acf92d8a4e54afb"}},
-{"id":"Toji","key":"Toji","value":{"rev":"96-511e171ad9f32a9264c2cdf01accacfb"}},
-{"id":"TwigJS","key":"TwigJS","value":{"rev":"3-1aaefc6d6895d7d4824174d410a747b9"}},
-{"id":"UkGeoTool","key":"UkGeoTool","value":{"rev":"5-e84291128e12f66cebb972a60c1d710f"}},
-{"id":"Vector","key":"Vector","value":{"rev":"3-bf5dc97abe7cf1057260b70638175a96"}},
-{"id":"_design/app","key":"_design/app","value":{"rev":"421-b1661d854599a58d0904d68aa44d8b63"}},
-{"id":"_design/ui","key":"_design/ui","value":{"rev":"78-db00aeb91a59a326e38e2bef7f1126cf"}},
-{"id":"aaronblohowiak-plugify-js","key":"aaronblohowiak-plugify-js","value":{"rev":"3-0272c269eacd0c86bfc1711566922577"}},
-{"id":"aaronblohowiak-uglify-js","key":"aaronblohowiak-uglify-js","value":{"rev":"3-77844a6def6ec428d75caa0846c95502"}},
-{"id":"aasm-js","key":"aasm-js","value":{"rev":"3-01a48108d55909575440d9e0ef114f37"}},
-{"id":"abbrev","key":"abbrev","value":{"rev":"16-e17a2b6c7360955b950edf2cb2ef1602"}},
-{"id":"abhispeak","key":"abhispeak","value":{"rev":"5-9889431f68ec10212db3be91796608e2"}},
-{"id":"ace","key":"ace","value":{"rev":"3-e8d267de6c17ebaa82c2869aff983c74"}},
-{"id":"acl","key":"acl","value":{"rev":"13-87c131a1801dc50840a177be73ce1c37"}},
-{"id":"active-client","key":"active-client","value":{"rev":"5-0ca16ae2e48a3ba9de2f6830a8c2d3a0"}},
-{"id":"activenode-monitor","key":"activenode-monitor","value":{"rev":"9-2634fa446379c39475d0ce4183fb92f2"}},
-{"id":"activeobject","key":"activeobject","value":{"rev":"43-6d73e28412612aaee37771e3ab292c3d"}},
-{"id":"actor","key":"actor","value":{"rev":"3-f6b84acd7d2e689b860e3142a18cd460"}},
-{"id":"actors","key":"actors","value":{"rev":"3-6df913bbe5b99968a2e71ae4ef07b2d2"}},
-{"id":"addTimeout","key":"addTimeout","value":{"rev":"15-e5170f0597fe8cf5ed0b54b7e6f2cde1"}},
-{"id":"addressable","key":"addressable","value":{"rev":"27-0c74fde458d92e4b93a29317da15bb3c"}},
-{"id":"aejs","key":"aejs","value":{"rev":"7-4928e2ce6151067cd6c585c0ba3e0bc3"}},
-{"id":"aenoa-supervisor","key":"aenoa-supervisor","value":{"rev":"7-6d399675981e76cfdfb9144bc2f7fb6d"}},
-{"id":"after","key":"after","value":{"rev":"9-baee7683ff54182cf7544cc05b0a4ad7"}},
-{"id":"ahr","key":"ahr","value":{"rev":"27-4ed272c516f3f2f9310e4f0ef28254e9"}},
-{"id":"ahr.browser","key":"ahr.browser","value":{"rev":"3-f7226aab4a1a3ab5f77379f92aae87f9"}},
-{"id":"ahr.browser.jsonp","key":"ahr.browser.jsonp","value":{"rev":"3-abed17143cf5e3c451c3d7da457e6f5b"}},
-{"id":"ahr.browser.request","key":"ahr.browser.request","value":{"rev":"7-fafd7b079d0415f388b64a20509a270b"}},
-{"id":"ahr.node","key":"ahr.node","value":{"rev":"17-f487a4a9896bd3876a11f9dfa1c639a7"}},
-{"id":"ahr.options","key":"ahr.options","value":{"rev":"13-904a4cea763a4455f7b2ae0abba18b8d"}},
-{"id":"ahr.utils","key":"ahr.utils","value":{"rev":"3-5f7b4104ea280d1fd36370c8f3356ead"}},
-{"id":"ahr2","key":"ahr2","value":{"rev":"87-ddf57f3ee158dcd23b2df330e2883a1d"}},
-{"id":"ain","key":"ain","value":{"rev":"7-d840736668fb36e9be3c26a68c5cd411"}},
-{"id":"ain-tcp","key":"ain-tcp","value":{"rev":"11-d18a1780bced8981d1d9dbd262ac4045"}},
-{"id":"ain2","key":"ain2","value":{"rev":"5-0b67879174f5f0a06448c7c737d98b5e"}},
-{"id":"airbrake","key":"airbrake","value":{"rev":"33-4bb9f822162e0c930c31b7f961938dc9"}},
-{"id":"ajaxrunner","key":"ajaxrunner","value":{"rev":"2-17e6a5de4f0339f4e6ce0b7681d0ba0c"}},
-{"id":"ajs","key":"ajs","value":{"rev":"13-063a29dec829fdaf4ca63d622137d1c6"}},
-{"id":"ajs-xgettext","key":"ajs-xgettext","value":{"rev":"3-cd4bbcc1c9d87fa7119d3bbbca99b793"}},
-{"id":"akismet","key":"akismet","value":{"rev":"13-a144e15dd6c2b13177572e80a526edd1"}},
-{"id":"alfred","key":"alfred","value":{"rev":"45-9a69041b18d2587c016b1b1deccdb2ce"}},
-{"id":"alfred-bcrypt","key":"alfred-bcrypt","value":{"rev":"11-7ed10ef318e5515d1ef7c040818ddb22"}},
-{"id":"algorithm","key":"algorithm","value":{"rev":"3-9ec0b38298cc15b0f295152de8763358"}},
-{"id":"algorithm-js","key":"algorithm-js","value":{"rev":"9-dd7496b7ec2e3b23cc7bb182ae3aac6d"}},
-{"id":"alists","key":"alists","value":{"rev":"5-22cc13c86d84081a826ac79a0ae5cda3"}},
-{"id":"altshift","key":"altshift","value":{"rev":"53-1c51d8657f271f390503a6fe988d09db"}},
-{"id":"amazon-ses","key":"amazon-ses","value":{"rev":"5-c175d60de2232a5664666a80832269e5"}},
-{"id":"ambrosia","key":"ambrosia","value":{"rev":"3-8c648ec7393cf842838c20e2c5d9bce4"}},
-{"id":"amd","key":"amd","value":{"rev":"3-d78c4df97a577af598a7def2a38379fa"}},
-{"id":"amionline","key":"amionline","value":{"rev":"3-a62887a632523700402b0f4ebb896812"}},
-{"id":"amo-version-reduce","key":"amo-version-reduce","value":{"rev":"3-05f6956269e5e921ca3486d3d6ea74b0"}},
-{"id":"amqp","key":"amqp","value":{"rev":"17-ee62d2b8248f8eb13f3369422d66df26"}},
-{"id":"amqpsnoop","key":"amqpsnoop","value":{"rev":"3-36a1c45647bcfb2f56cf68dbc24b0426"}},
-{"id":"ams","key":"ams","value":{"rev":"40-1c0cc53ad942d2fd23c89618263befc8"}},
-{"id":"amulet","key":"amulet","value":{"rev":"7-d1ed71811e45652799982e4f2e9ffb36"}},
-{"id":"anachronism","key":"anachronism","value":{"rev":"11-468bdb40f9a5aa146bae3c1c6253d0e1"}},
-{"id":"analytics","key":"analytics","value":{"rev":"3-a143ccdd863b5f7dbee4d2f7732390b3"}},
-{"id":"ann","key":"ann","value":{"rev":"9-41f00594d6216c439f05f7116a697cac"}},
-{"id":"ansi-color","key":"ansi-color","value":{"rev":"6-d6f02b32525c1909d5134afa20f470de"}},
-{"id":"ansi-font","key":"ansi-font","value":{"rev":"3-b039661ad9b6aa7baf34741b449c4420"}},
-{"id":"ant","key":"ant","value":{"rev":"3-35a64e0b7f6eb63a90c32971694b0d93"}},
-{"id":"anvil.js","key":"anvil.js","value":{"rev":"19-290c82075f0a9ad764cdf6dc5c558e0f"}},
-{"id":"aop","key":"aop","value":{"rev":"7-5963506c9e7912aa56fda065c56fd472"}},
-{"id":"ap","key":"ap","value":{"rev":"3-f525b5b490a1ada4452f46307bf92d08"}},
-{"id":"apac","key":"apac","value":{"rev":"12-945d0313a84797b4c3df19da4bec14d4"}},
-{"id":"aparser","key":"aparser","value":{"rev":"5-cb35cfc9184ace6642413dad97e49dca"}},
-{"id":"api-easy","key":"api-easy","value":{"rev":"15-2ab5eefef1377ff217cb020e80343d65"}},
-{"id":"api.js","key":"api.js","value":{"rev":"5-a14b8112fbda17022c80356a010de59a"}},
-{"id":"api_request","key":"api_request","value":{"rev":"3-8531e71f5cf2f3f811684269132d72d4"}},
-{"id":"apimaker","key":"apimaker","value":{"rev":"3-bdbd4a2ebf5b67276d89ea73eaa20025"}},
-{"id":"apn","key":"apn","value":{"rev":"30-0513d27341f587b39db54300c380921f"}},
-{"id":"app","key":"app","value":{"rev":"3-d349ddb47167f60c03d259649569e002"}},
-{"id":"app.js","key":"app.js","value":{"rev":"3-bff3646634daccfd964b4bbe510acb25"}},
-{"id":"append","key":"append","value":{"rev":"7-53e2f4ab2a69dc0c5e92f10a154998b6"}},
-{"id":"applescript","key":"applescript","value":{"rev":"10-ef5ab30ccd660dc71fb89e173f30994a"}},
-{"id":"appzone","key":"appzone","value":{"rev":"21-fb27e24d460677fe9c7eda0d9fb1fead"}},
-{"id":"apricot","key":"apricot","value":{"rev":"14-b55361574a0715f78afc76ddf6125845"}},
-{"id":"arcane","key":"arcane","value":{"rev":"3-f846c96e890ed6150d4271c93cc05a24"}},
-{"id":"archetype","key":"archetype","value":{"rev":"3-441336def3b7aade89c8c1c19a84f56d"}},
-{"id":"ardrone","key":"ardrone","value":{"rev":"8-540e95b796da734366a89bb06dc430c5"}},
-{"id":"ardrone-web","key":"ardrone-web","value":{"rev":"3-8a53cc85a95be20cd44921347e82bbe4"}},
-{"id":"arduino","key":"arduino","value":{"rev":"3-22f6359c47412d086d50dc7f1a994139"}},
-{"id":"argon","key":"argon","value":{"rev":"3-ba12426ce67fac01273310cb3909b855"}},
-{"id":"argparse","key":"argparse","value":{"rev":"8-5e841e38cca6cfc3fe1d1f507a7f47ee"}},
-{"id":"argparser","key":"argparser","value":{"rev":"19-b8793bfc005dd84e1213ee53ae56206d"}},
-{"id":"argsparser","key":"argsparser","value":{"rev":"26-d31eca2f41546172763af629fc50631f"}},
-{"id":"argtype","key":"argtype","value":{"rev":"10-96a7d23e571d56cf598472115bcac571"}},
-{"id":"arguments","key":"arguments","value":{"rev":"7-767de2797f41702690bef5928ec7c6e9"}},
-{"id":"armory","key":"armory","value":{"rev":"41-ea0f7bd0868c11fc9986fa708e11e071"}},
-{"id":"armrest","key":"armrest","value":{"rev":"3-bbe40b6320b6328211be33425bed20c8"}},
-{"id":"arnold","key":"arnold","value":{"rev":"3-4896fc8d02b8623f47a024f0dbfa44bf"}},
-{"id":"arouter","key":"arouter","value":{"rev":"7-55cab1f7128df54f27be94039a8d8dc5"}},
-{"id":"array-promise","key":"array-promise","value":{"rev":"3-e2184561ee65de64c2dfeb57955c758f"}},
-{"id":"arrayemitter","key":"arrayemitter","value":{"rev":"3-d64c917ac1095bfcbf173dac88d3d148"}},
-{"id":"asEvented","key":"asEvented","value":{"rev":"3-2ad3693b49d4d9dc9a11c669033a356e"}},
-{"id":"asciimo","key":"asciimo","value":{"rev":"12-50130f5ac2ef4d95df190be2c8ede893"}},
-{"id":"asereje","key":"asereje","value":{"rev":"15-84853499f89a87109ddf47ba692323ba"}},
-{"id":"ash","key":"ash","value":{"rev":"6-3697a3aee708bece8a08c7e0d1010476"}},
-{"id":"ask","key":"ask","value":{"rev":"3-321bbc3837d749b5d97bff251693a825"}},
-{"id":"asn1","key":"asn1","value":{"rev":"13-e681a814a4a1439a22b19e141b45006f"}},
-{"id":"aspsms","key":"aspsms","value":{"rev":"9-7b82d722bdac29a4da8c88b642ad64f2"}},
-{"id":"assert","key":"assert","value":{"rev":"3-85480762f5cb0be2cb85f80918257189"}},
-{"id":"assertions","key":"assertions","value":{"rev":"9-d797d4c09aa994556c7d5fdb4e86fe1b"}},
-{"id":"assertn","key":"assertn","value":{"rev":"6-080a4fb5d2700a6850d56b58c6f6ee9e"}},
-{"id":"assertvanish","key":"assertvanish","value":{"rev":"13-3b0b555ff77c1bfc2fe2642d50879648"}},
-{"id":"asset","key":"asset","value":{"rev":"33-cb70b68e0e05e9c9a18b3d89f1bb43fc"}},
-{"id":"assetgraph","key":"assetgraph","value":{"rev":"82-7853d644e64741b46fdd29a997ec4852"}},
-{"id":"assetgraph-builder","key":"assetgraph-builder","value":{"rev":"61-1ed98d95f3589050037851edde760a01"}},
-{"id":"assetgraph-sprite","key":"assetgraph-sprite","value":{"rev":"15-351b5fd9e50a3dda8580d014383423e0"}},
-{"id":"assets-expander","key":"assets-expander","value":{"rev":"11-f9e1197b773d0031dd015f1d871b87c6"}},
-{"id":"assets-packager","key":"assets-packager","value":{"rev":"13-51f7d2d57ed35be6aff2cc2aa2fa74db"}},
-{"id":"assoc","key":"assoc","value":{"rev":"9-07098388f501da16bf6afe6c9babefd5"}},
-{"id":"ast-inlining","key":"ast-inlining","value":{"rev":"5-02e7e2c3a06ed81ddc61980f778ac413"}},
-{"id":"ast-transformer","key":"ast-transformer","value":{"rev":"5-b4020bb763b8839afa8d3ac0d54a6f26"}},
-{"id":"astar","key":"astar","value":{"rev":"3-3df8c56c64c3863ef0650c0c74e2801b"}},
-{"id":"aster","key":"aster","value":{"rev":"7-b187c1270d3924f5ee04044e579d2df9"}},
-{"id":"asterisk-manager","key":"asterisk-manager","value":{"rev":"3-7fbf4294dafee04cc17cca4692c09c33"}},
-{"id":"astrolin","key":"astrolin","value":{"rev":"3-30ac515a2388e7dc22b25c15346f6d7e"}},
-{"id":"asyn","key":"asyn","value":{"rev":"3-51996b0197c21e85858559045c1481b7"}},
-{"id":"async","key":"async","value":{"rev":"26-73aea795f46345a7e65d89ec75dff2f1"}},
-{"id":"async-array","key":"async-array","value":{"rev":"17-3ef5faff03333aa5b2a733ef36118066"}},
-{"id":"async-chain","key":"async-chain","value":{"rev":"9-10ec3e50b01567390d55973494e36d43"}},
-{"id":"async-ejs","key":"async-ejs","value":{"rev":"19-6f0e6e0eeb3cdb4c816ea427d8288d7d"}},
-{"id":"async-fs","key":"async-fs","value":{"rev":"3-b96906283d345604f784dfcdbeb21a63"}},
-{"id":"async-it","key":"async-it","value":{"rev":"7-6aed4439df25989cfa040fa4b5dd4ff2"}},
-{"id":"async-json","key":"async-json","value":{"rev":"5-589d5b6665d00c5bffb99bb142cac5d0"}},
-{"id":"async-memoizer","key":"async-memoizer","value":{"rev":"9-01d56f4dff95e61a39dab5ebee49d5dc"}},
-{"id":"async-object","key":"async-object","value":{"rev":"21-1bf28b0f8a7d875b54126437f3539f9b"}},
-{"id":"asyncEJS","key":"asyncEJS","value":{"rev":"3-28b1c94255381f23a4d4f52366255937"}},
-{"id":"async_testing","key":"async_testing","value":{"rev":"14-0275d8b608d8644dfe8d68a81fa07e98"}},
-{"id":"asyncevents","key":"asyncevents","value":{"rev":"3-de104847994365dcab5042db2b46fb84"}},
-{"id":"asyncify","key":"asyncify","value":{"rev":"3-3f6deb82ee1c6cb25e83a48fe6379b75"}},
-{"id":"asyncjs","key":"asyncjs","value":{"rev":"27-15903d7351f80ed37cb069aedbfc26cc"}},
-{"id":"asynct","key":"asynct","value":{"rev":"5-6be002b3e005d2d53b80fff32ccbd2ac"}},
-{"id":"at_scheduler","key":"at_scheduler","value":{"rev":"3-5587061c90218d2e99b6e22d5b488b0b"}},
-{"id":"atbar","key":"atbar","value":{"rev":"19-e9e906d4874afd4d8bf2d8349ed46dff"}},
-{"id":"atob","key":"atob","value":{"rev":"3-bc907d10dd2cfc940de586dc090451da"}},
-{"id":"audiolib","key":"audiolib","value":{"rev":"17-cb2f55ff50061081b440f0605cf0450c"}},
-{"id":"audit_couchdb","key":"audit_couchdb","value":{"rev":"24-6e620895b454b345b2aed13db847c237"}},
-{"id":"auditor","key":"auditor","value":{"rev":"11-c4df509d40650c015943dd90315a12c0"}},
-{"id":"authnet_cim","key":"authnet_cim","value":{"rev":"7-f02bbd206ac2b8c05255bcd8171ac1eb"}},
-{"id":"autocomplete","key":"autocomplete","value":{"rev":"3-f2773bca040d5abcd0536dbebe5847bf"}},
-{"id":"autodafe","key":"autodafe","value":{"rev":"7-a75262b53a9dd1a25693adecde7206d7"}},
-{"id":"autolint","key":"autolint","value":{"rev":"7-07f885902d72b52678fcc57aa4b9c592"}},
-{"id":"autoload","key":"autoload","value":{"rev":"5-9247704d9a992a175e3ae49f4af757d0"}},
-{"id":"autoloader","key":"autoloader","value":{"rev":"11-293c20c34d0c81fac5c06b699576b1fe"}},
-{"id":"auton","key":"auton","value":{"rev":"25-4fcb7a62b607b7929b62a9b792afef55"}},
-{"id":"autoreleasepool","key":"autoreleasepool","value":{"rev":"5-5d2798bf74bbec583cc6f19127e3c89e"}},
-{"id":"autorequire","key":"autorequire","value":{"rev":"9-564a46b355532fcec24db0afc99daed5"}},
-{"id":"autotest","key":"autotest","value":{"rev":"7-e319995dd0e1fbd935c14c46b1234f77"}},
-{"id":"awesome","key":"awesome","value":{"rev":"15-4458b746e4722214bd26ea15e453288e"}},
-{"id":"aws","key":"aws","value":{"rev":"14-9a8f0989be29034d3fa5c66c594b649b"}},
-{"id":"aws-js","key":"aws-js","value":{"rev":"6-c61d87b8ad948cd065d2ca222808c209"}},
-{"id":"aws-lib","key":"aws-lib","value":{"rev":"36-9733e215c03d185a860574600a8feb14"}},
-{"id":"aws2js","key":"aws2js","value":{"rev":"35-42498f44a5ae7d4f3c84096b435d0e0b"}},
-{"id":"azure","key":"azure","value":{"rev":"5-2c4e05bd842d3dcfa419f4d2b67121e2"}},
-{"id":"b64","key":"b64","value":{"rev":"3-e5e727a46df4c8aad38acd117d717140"}},
-{"id":"b64url","key":"b64url","value":{"rev":"9-ab3b017f00a53b0078261254704c30ba"}},
-{"id":"ba","key":"ba","value":{"rev":"11-3cec7ec9a566fe95fbeb34271538d60a"}},
-{"id":"babelweb","key":"babelweb","value":{"rev":"11-8e6a2fe00822cec15573cdda48b6d0a0"}},
-{"id":"backbone","key":"backbone","value":{"rev":"37-79b95355f8af59bf9131e14d52b68edc"}},
-{"id":"backbone-browserify","key":"backbone-browserify","value":{"rev":"3-f25dac0b05a7f7aa5dbc0f4a1ad97969"}},
-{"id":"backbone-celtra","key":"backbone-celtra","value":{"rev":"3-775a5ebb25c1cd84723add52774ece84"}},
-{"id":"backbone-couch","key":"backbone-couch","value":{"rev":"8-548327b3cd7ee7a4144c9070377be5f6"}},
-{"id":"backbone-cradle","key":"backbone-cradle","value":{"rev":"3-b9bc220ec48b05eed1d4d77a746b10db"}},
-{"id":"backbone-dirty","key":"backbone-dirty","value":{"rev":"21-fa0f688cc95a85c0fc440733f09243b5"}},
-{"id":"backbone-dnode","key":"backbone-dnode","value":{"rev":"65-3212d3aa3284efb3bc0732bac71b5a2e"}},
-{"id":"backbone-proxy","key":"backbone-proxy","value":{"rev":"3-3602cb984bdd266516a3145663f9a5c6"}},
-{"id":"backbone-redis","key":"backbone-redis","value":{"rev":"9-2e3f6a9e095b00ccec9aa19b3fbc65eb"}},
-{"id":"backbone-rel","key":"backbone-rel","value":{"rev":"5-f9773dc85f1c502e61c163a22d2f74aa"}},
-{"id":"backbone-simpledb","key":"backbone-simpledb","value":{"rev":"5-a815128e1e3593696f666f8b3da36d78"}},
-{"id":"backbone-stash","key":"backbone-stash","value":{"rev":"19-8d3cc5f9ed28f9a56856154e2b4e7f78"}},
-{"id":"backplane","key":"backplane","value":{"rev":"7-f69188dac21e007b09efe1b5b3575087"}},
-{"id":"backport-0.4","key":"backport-0.4","value":{"rev":"11-25e15f01f1ef9e626433a82284bc00d6"}},
-{"id":"backuptweets","key":"backuptweets","value":{"rev":"3-68712682aada41082d3ae36c03c8f899"}},
-{"id":"bake","key":"bake","value":{"rev":"113-ce13508ba2b4f15aa4df06d796aa4573"}},
-{"id":"bal-util","key":"bal-util","value":{"rev":"31-b818725a5af131c89ec66b9fdebf2122"}},
-{"id":"balancer","key":"balancer","value":{"rev":"7-63dcb4327081a8ec4d6c51a21253cb4b"}},
-{"id":"bancroft","key":"bancroft","value":{"rev":"11-8fa3370a4615a0ed4ba411b05c0285f4"}},
-{"id":"bandcamp","key":"bandcamp","value":{"rev":"41-f2fee472d63257fdba9e5fa8ad570ee8"}},
-{"id":"banner","key":"banner","value":{"rev":"19-89a447e2136b2fabddbad84abcd63a27"}},
-{"id":"banzai-docstore-couchdb","key":"banzai-docstore-couchdb","value":{"rev":"5-950c115737d634e2f48ee1c772788321"}},
-{"id":"banzai-redis","key":"banzai-redis","value":{"rev":"3-446f29e0819fd79c810fdfa8ce05bdcf"}},
-{"id":"banzai-statestore-couchdb","key":"banzai-statestore-couchdb","value":{"rev":"5-c965442821741ce6f20e266fe43aea4a"}},
-{"id":"banzai-statestore-mem","key":"banzai-statestore-mem","value":{"rev":"3-a0891a1a2344922d91781c332ed26528"}},
-{"id":"bar","key":"bar","value":{"rev":"7-fbb44a76cb023e6a8941f15576cf190b"}},
-{"id":"barc","key":"barc","value":{"rev":"7-dfe352b410782543d6b1aea292f123eb"}},
-{"id":"barista","key":"barista","value":{"rev":"9-d3f3c776453ba69a81947f34d7cc3cbf"}},
-{"id":"bark","key":"bark","value":{"rev":"20-fc1a94f80cfa199c16aa075e940e06dc"}},
-{"id":"barricane-db","key":"barricane-db","value":{"rev":"3-450947b9a05047fe195f76a69a3144e8"}},
-{"id":"base-converter","key":"base-converter","value":{"rev":"7-1b49b01df111176b89343ad56ac68d5c"}},
-{"id":"base32","key":"base32","value":{"rev":"11-d686c54c9de557681356e74b83d916e8"}},
-{"id":"base64","key":"base64","value":{"rev":"24-bd713c3d7e96fad180263ed7563c595e"}},
-{"id":"bash","key":"bash","value":{"rev":"3-86a1c61babfa47da0ebc14c2f4e59a6a"}},
-{"id":"basic-auth","key":"basic-auth","value":{"rev":"3-472a87af27264ae81bd4394d70792e55"}},
-{"id":"basicFFmpeg","key":"basicFFmpeg","value":{"rev":"15-3e87a41c543bde1e6f7c49d021fda62f"}},
-{"id":"basicauth","key":"basicauth","value":{"rev":"3-15d95a05b6f5e7b6d7261f87c4eb73de"}},
-{"id":"basil-cookie","key":"basil-cookie","value":{"rev":"11-fff96b263f31b9d017e3cf59bf6fb23f"}},
-{"id":"batik","key":"batik","value":{"rev":"7-a19ce28cbbf54649fa225ed5474eff02"}},
-{"id":"batman","key":"batman","value":{"rev":"15-6af5469bf143790cbb4af196824c9e95"}},
-{"id":"batteries","key":"batteries","value":{"rev":"13-656c68fe887f4af3ef1e720e64275f4e"}},
-{"id":"bbcode","key":"bbcode","value":{"rev":"5-e79a8b62125f8a3a1751bf7bd8875f33"}},
-{"id":"bcrypt","key":"bcrypt","value":{"rev":"31-db8496d1239362a97a26f1e5eeb8a733"}},
-{"id":"beaconpush","key":"beaconpush","value":{"rev":"3-956fcd87a6d3f9d5b9775d47e36aa3e5"}},
-{"id":"bean","key":"bean","value":{"rev":"56-151c1558e15016205e65bd515eab9ee0"}},
-{"id":"bean.database.mongo","key":"bean.database.mongo","value":{"rev":"3-ede73166710137cbf570385b7e8f17fe"}},
-{"id":"beandocs","key":"beandocs","value":{"rev":"3-9f7492984c95b69ca1ad30d40223f117"}},
-{"id":"beanpole","key":"beanpole","value":{"rev":"53-565a78a2304405cdc9f4a6b6101160fa"}},
-{"id":"beanprep","key":"beanprep","value":{"rev":"3-bd387f0072514b8e44131671f9aad1b0"}},
-{"id":"beans","key":"beans","value":{"rev":"54-7f6d40a2a5bf228fe3547cce43edaa63"}},
-{"id":"beanstalk_client","key":"beanstalk_client","value":{"rev":"6-13c8c80aa6469b5dcf20d65909289383"}},
-{"id":"beanstalk_worker","key":"beanstalk_worker","value":{"rev":"6-45500991db97ed5a18ea96f3621bf99f"}},
-{"id":"beantest","key":"beantest","value":{"rev":"7-52d8160a0c0420c7d659b2ee10f26644"}},
-{"id":"beatit","key":"beatit","value":{"rev":"7-c0ba5f95b0601dcb628e4820555cc252"}},
-{"id":"beatport","key":"beatport","value":{"rev":"5-3b186b633ceea7f047e1df91e7b683a5"}},
-{"id":"beautifyjs","key":"beautifyjs","value":{"rev":"3-89ce050152aca0727c099060229ddc73"}},
-{"id":"beaver","key":"beaver","value":{"rev":"17-3b56116e8e40205e8efcedefee0319e3"}},
-{"id":"beeline","key":"beeline","value":{"rev":"11-92a4bd9524cc7aec3106efcacff6faed"}},
-{"id":"beet","key":"beet","value":{"rev":"95-3c9d9de63c363319b2201ac83bc0ee7d"}},
-{"id":"begin","key":"begin","value":{"rev":"3-b32a5eb1b9475353b37f90813ed89dce"}},
-{"id":"begin.js","key":"begin.js","value":{"rev":"7-9156869392a448595bf3e5723fcb7b57"}},
-{"id":"bejesus-api","key":"bejesus-api","value":{"rev":"11-6b42f8ffc370c494d01481b64536e91e"}},
-{"id":"bejesus-cli","key":"bejesus-cli","value":{"rev":"31-5fbbfe5ec1f6a0a7a3fafdf69230434a"}},
-{"id":"bem","key":"bem","value":{"rev":"22-c0e0f8d9e92b355246fd15058199b73c"}},
-{"id":"ben","key":"ben","value":{"rev":"3-debe52552a86f1e71895dd5d32add585"}},
-{"id":"bench","key":"bench","value":{"rev":"14-20987e1becf3acd1bd1833b04712c87c"}},
-{"id":"bencher","key":"bencher","value":{"rev":"3-08866a8fdcf180582b43690bbbf21087"}},
-{"id":"benchmark","key":"benchmark","value":{"rev":"219-0669bc24f3f2918d93369bb0d801abf3"}},
-{"id":"bencode","key":"bencode","value":{"rev":"8-7b9eff4c1658fb3a054ebc6f50e6edcd"}},
-{"id":"beseda","key":"beseda","value":{"rev":"49-5cc8c4e9bb3e836de7db58c3adf9a5bb"}},
-{"id":"bf","key":"bf","value":{"rev":"14-d81312e1bf4f7202b801b4343199aa55"}},
-{"id":"biggie-router","key":"biggie-router","value":{"rev":"42-56a546a78d5abd4402183b3d300d563e"}},
-{"id":"bigint","key":"bigint","value":{"rev":"58-02f368567849596219d6a0e87d9bc6b9"}},
-{"id":"bignumber","key":"bignumber","value":{"rev":"3-6e372428992a767e0a991ec3f39b8343"}},
-{"id":"binary","key":"binary","value":{"rev":"47-947aa2f5238a68e34b164ef7e50ece28"}},
-{"id":"binarySearch","key":"binarySearch","value":{"rev":"15-93a3d2f9c2690457023b5ae5f3d00446"}},
-{"id":"bind","key":"bind","value":{"rev":"9-b74d0af83e90a2655e564ab64bf1d27d"}},
-{"id":"binpack","key":"binpack","value":{"rev":"7-3dc67a64e0ef01f3aa59441c5150e04f"}},
-{"id":"bintrees","key":"bintrees","value":{"rev":"12-507fcd92f447f81842cba08cacb425cf"}},
-{"id":"bisection","key":"bisection","value":{"rev":"5-f785ea3bbd8fcc7cd9381d20417b87bb"}},
-{"id":"bison","key":"bison","value":{"rev":"12-e663b2ef96650b3b5a0cc36524e1b94a"}},
-{"id":"bitcoder","key":"bitcoder","value":{"rev":"8-19c957d6b845f4d7ad531951c971e03d"}},
-{"id":"bitcoin","key":"bitcoin","value":{"rev":"13-af88a28c02ab146622743c4c1c32e87b"}},
-{"id":"bitcoin-impl","key":"bitcoin-impl","value":{"rev":"8-99068f1d259e3c75209a6bd08e3e06a2"}},
-{"id":"bitcoin-p2p","key":"bitcoin-p2p","value":{"rev":"25-6df0283eb6e419bc3a1571f17721b100"}},
-{"id":"bitcoinjs-mongoose","key":"bitcoinjs-mongoose","value":{"rev":"3-57e239b31e218693f8cf3cf1cf098437"}},
-{"id":"bitly","key":"bitly","value":{"rev":"8-d6bfac8338e223fe62538954d2e9246a"}},
-{"id":"bitly.node","key":"bitly.node","value":{"rev":"3-15329b7a77633e0dae2c720e592420fb"}},
-{"id":"biwascheme","key":"biwascheme","value":{"rev":"3-37a85eed1bd2d4ee85ef1e100e7ebe8f"}},
-{"id":"black","key":"black","value":{"rev":"3-e07ae2273357da5894f4b7cdf1b20560"}},
-{"id":"black_coffee","key":"black_coffee","value":{"rev":"3-c5c764cf550ad3c831a085509f64cdfb"}},
-{"id":"bleach","key":"bleach","value":{"rev":"5-ef3ab7e761a6903eb70da1550a07e53d"}},
-{"id":"blend","key":"blend","value":{"rev":"16-c5dd075b3ede45f91056b4b768b2bfe8"}},
-{"id":"bless","key":"bless","value":{"rev":"29-1b9bc6f17acd144f51a297e4bdccfe0e"}},
-{"id":"blitz","key":"blitz","value":{"rev":"5-8bf6786f6fd7dbc0570ba21f803f35e6"}},
-{"id":"blo","key":"blo","value":{"rev":"5-9e752ea37438ea026e88a7aa7e7a91ba"}},
-{"id":"blog","key":"blog","value":{"rev":"13-80fc7b11d73e23ca7e518d271d1836ee"}},
-{"id":"blogmate","key":"blogmate","value":{"rev":"11-e503081be9290647c841aa8c04eb6e70"}},
-{"id":"bloodmoney","key":"bloodmoney","value":{"rev":"3-859b0235de3a29bf241323a31f9aa730"}},
-{"id":"bloom","key":"bloom","value":{"rev":"15-c609882b29d61a771d7dbf17f43016ad"}},
-{"id":"blue","key":"blue","value":{"rev":"6-e84221f7286dffbfda6f8abc6306064c"}},
-{"id":"bluemold","key":"bluemold","value":{"rev":"11-f48528b642b5d38d7c02b03622117fa7"}},
-{"id":"bn-lang","key":"bn-lang","value":{"rev":"3-266f186334f69448a940081589e82b04"}},
-{"id":"bn-lang-util","key":"bn-lang-util","value":{"rev":"3-0bc44f1d7d3746120dd835bfb685e229"}},
-{"id":"bn-log","key":"bn-log","value":{"rev":"5-db81a8a978071efd24b45e350e8b8954"}},
-{"id":"bn-template","key":"bn-template","value":{"rev":"3-604e77465ab1dc7e17f3b325089651ec"}},
-{"id":"bn-time","key":"bn-time","value":{"rev":"3-9c33587e783a98e1ccea409cacd5bbfb"}},
-{"id":"bn-unit","key":"bn-unit","value":{"rev":"3-5f35e3fd446241f682231bedcf846c0a"}},
-{"id":"bncode","key":"bncode","value":{"rev":"7-915a1759135a9837954c0ead58bf8e5a"}},
-{"id":"bnf","key":"bnf","value":{"rev":"5-4fe80fcafcc7a263f28b8dc62093bd8d"}},
-{"id":"bob","key":"bob","value":{"rev":"9-9ceeb581263c04793a2231b3726ab22b"}},
-{"id":"bogart","key":"bogart","value":{"rev":"30-70aed6f0827d2bd09963afddcad7a34a"}},
-{"id":"boil","key":"boil","value":{"rev":"3-7ab0fc3b831c591fd15711c27a6f5de0"}},
-{"id":"bolt","key":"bolt","value":{"rev":"3-138dfbdea2ab53ca714ca51494d32610"}},
-{"id":"bones","key":"bones","value":{"rev":"70-c74f0845c167cd755250fc7b4b9b40c2"}},
-{"id":"bones-admin","key":"bones-admin","value":{"rev":"11-2cdfe738d66aacff8569712a279c041d"}},
-{"id":"bones-auth","key":"bones-auth","value":{"rev":"35-2224f95bf3521809ce805ff215d2856c"}},
-{"id":"bones-document","key":"bones-document","value":{"rev":"13-95971fed1f47005c282e0fa60498e31c"}},
-{"id":"bonsai","key":"bonsai","value":{"rev":"3-67eb8935492d4ae9182a7ec74c1f36a6"}},
-{"id":"bonzo","key":"bonzo","value":{"rev":"142-7c5680b0f841c2263f06e96eb5237825"}},
-{"id":"bookbu","key":"bookbu","value":{"rev":"3-d9a104bccc67eae8a5dc6f0f4c3ba5fc"}},
-{"id":"bootstrap","key":"bootstrap","value":{"rev":"17-7a62dbe5e3323beb47165f13265f1a96"}},
-{"id":"borschik","key":"borschik","value":{"rev":"7-2570b5d6555a031394a55ff054797cb9"}},
-{"id":"bots","key":"bots","value":{"rev":"9-df43539c13d2996d9e32dff848615e8a"}},
-{"id":"bounce","key":"bounce","value":{"rev":"8-a3e424b2be1379743e9628c726facaa8"}},
-{"id":"bowser","key":"bowser","value":{"rev":"11-23ecc98edf5fde63fda626bb03da597f"}},
-{"id":"box2d","key":"box2d","value":{"rev":"6-5c920e9829764cbf904b9a59474c1672"}},
-{"id":"box2dnode","key":"box2dnode","value":{"rev":"3-12ffe24dcc1478ea0008c60c4ef7118f"}},
-{"id":"boxcar","key":"boxcar","value":{"rev":"5-a9ba953c547585285559d0e05c16e29e"}},
-{"id":"boxer","key":"boxer","value":{"rev":"8-60c49ff8574d5a47616796ad991463ad"}},
-{"id":"bracket-matcher","key":"bracket-matcher","value":{"rev":"27-a01c946c69665629e212a0f702be1b38"}},
-{"id":"brain","key":"brain","value":{"rev":"24-3aba33914e0f823505c69ef01361681b"}},
-{"id":"brainfuck","key":"brainfuck","value":{"rev":"7-adf33477ffe8640c9fdd6a0f8b349953"}},
-{"id":"brains","key":"brains","value":{"rev":"3-d7e7a95ea742f9b42fefb594c67c726a"}},
-{"id":"braintree","key":"braintree","value":{"rev":"14-eabe1c3e4e7cfd1f521f4bfd337611f7"}},
-{"id":"brazilnut","key":"brazilnut","value":{"rev":"3-4163b5a5598a8905c1283db9d260e5cc"}},
-{"id":"brazln","key":"brazln","value":{"rev":"29-15895bb5b193552826c196efe084caf2"}},
-{"id":"bread","key":"bread","value":{"rev":"9-093c9dd71fffb9a5b1c9eb8ac3e2a9b0"}},
-{"id":"breakfast","key":"breakfast","value":{"rev":"3-231e3046ede5e35e272dfab4a379015d"}},
-{"id":"brequire","key":"brequire","value":{"rev":"18-58b386e08541b222238aa12a13119fd9"}},
-{"id":"bricks","key":"bricks","value":{"rev":"15-f72e6c858c5bceb00cc34a16d52a7b59"}},
-{"id":"bricks-analytics","key":"bricks-analytics","value":{"rev":"3-dc2b6d2157c5039a4c36ceda46761b37"}},
-{"id":"bricks-compress","key":"bricks-compress","value":{"rev":"5-580eeecaa30c210502f42c5e184344a3"}},
-{"id":"bricks-rewrite","key":"bricks-rewrite","value":{"rev":"5-7a141aacaa3fd706b97847c6e8f9830a"}},
-{"id":"brokenbin","key":"brokenbin","value":{"rev":"5-bbc7a1c9628ed9f49b6d23e80c242852"}},
-{"id":"broker","key":"broker","value":{"rev":"9-756a097b948756e4bd7609b6f83a0847"}},
-{"id":"browscap","key":"browscap","value":{"rev":"12-c6fed16796d1ad84913f2617c66f0c7b"}},
-{"id":"browser-require","key":"browser-require","value":{"rev":"27-99f61fb3036ebc643282625649cc674f"}},
-{"id":"browserify","key":"browserify","value":{"rev":"163-c307ee153caf2160e5c32abd58898139"}},
-{"id":"browserjet","key":"browserjet","value":{"rev":"3-a386ab8911c410362eb8fceab5a998fe"}},
-{"id":"brt","key":"brt","value":{"rev":"3-b8452659a92039571ff1f877c8f874c7"}},
-{"id":"brunch","key":"brunch","value":{"rev":"113-64ae44857425c5d860d36f38ab3cf797"}},
-{"id":"brushes.js","key":"brushes.js","value":{"rev":"3-e28bd6597b949d84965a788928738f53"}},
-{"id":"bson","key":"bson","value":{"rev":"50-9d9db515dd9d2a4d873d186f324767a5"}},
-{"id":"btc-ex-api","key":"btc-ex-api","value":{"rev":"3-cabbf284cb01af79ee183d8023106762"}},
-{"id":"btoa","key":"btoa","value":{"rev":"3-b4a124b3650a746b8da9c9f93f386bac"}},
-{"id":"btoa-atob","key":"btoa-atob","value":{"rev":"3-baac60a3f04487333cc0364301220a53"}},
-{"id":"bucket","key":"bucket","value":{"rev":"3-5c2da8f67e29de1c29adbf51ad7d7299"}},
-{"id":"buffalo","key":"buffalo","value":{"rev":"9-6c763d939d775a255c65ba8dcf0d5372"}},
-{"id":"bufferjs","key":"bufferjs","value":{"rev":"13-b6e09e35ec822714d3ec485ac2010272"}},
-{"id":"bufferlib","key":"bufferlib","value":{"rev":"16-d48d96815fc7709d6b7d0a8bfc67f053"}},
-{"id":"bufferlist","key":"bufferlist","value":{"rev":"18-6fcedc10ffbca1afdc866e208d2f906a"}},
-{"id":"buffers","key":"buffers","value":{"rev":"11-3a70ec2da112befdc65b8c02772b8c44"}},
-{"id":"bufferstream","key":"bufferstream","value":{"rev":"82-6f82c5affb3906ebbaa0b116baf73c54"}},
-{"id":"buffertools","key":"buffertools","value":{"rev":"20-68f90e224f81fab81295f9079dc3c0fc"}},
-{"id":"buffoon","key":"buffoon","value":{"rev":"9-1cdc1cbced94691e836d4266eed7c143"}},
-{"id":"builder","key":"builder","value":{"rev":"25-b9679e2aaffec1ac6d59fdd259d9590c"}},
-{"id":"buildr","key":"buildr","value":{"rev":"69-cb3a756903a6322c6f9f4dd1c384a607"}},
-{"id":"bumper","key":"bumper","value":{"rev":"3-1e8d17aa3b29815e4069294cc9ce572c"}},
-{"id":"bundle","key":"bundle","value":{"rev":"39-46fde9cd841bce1fbdd92f6a1235c308"}},
-{"id":"bunker","key":"bunker","value":{"rev":"7-ed993a296fa0b8d3c3a7cd759d6f371e"}},
-{"id":"burari","key":"burari","value":{"rev":"11-08b61073d6ad0ef0c7449a574dc8f54b"}},
-{"id":"burrito","key":"burrito","value":{"rev":"38-3f3b109972720647f5412f3a2478859b"}},
-{"id":"busbuddy","key":"busbuddy","value":{"rev":"5-298ec29f6307351cf7a19bceebe957c7"}},
-{"id":"buster","key":"buster","value":{"rev":"9-870a6e9638806adde2f40105900cd4b3"}},
-{"id":"buster-args","key":"buster-args","value":{"rev":"7-9b189c602e437a505625dbf7fef5dead"}},
-{"id":"buster-assertions","key":"buster-assertions","value":{"rev":"5-fa34a8a5e7cf4dd08c2d02c39de3b563"}},
-{"id":"buster-cli","key":"buster-cli","value":{"rev":"5-b1a85006e41dbf74313253c571e63874"}},
-{"id":"buster-client","key":"buster-client","value":{"rev":"5-340637ec63b54bb01c1313a78db01945"}},
-{"id":"buster-configuration","key":"buster-configuration","value":{"rev":"3-a12e7ff172562b513534fc26be00aaed"}},
-{"id":"buster-core","key":"buster-core","value":{"rev":"5-871df160645e6684111a8fd02ff0eee9"}},
-{"id":"buster-evented-logger","key":"buster-evented-logger","value":{"rev":"5-c46681e6275a76723e3bc834555dbe32"}},
-{"id":"buster-format","key":"buster-format","value":{"rev":"5-e193e90436c7f941739b82adad86bdd8"}},
-{"id":"buster-module-loader","key":"buster-module-loader","value":{"rev":"5-4148b61f8b718e6181aa6054664a7c44"}},
-{"id":"buster-multicast","key":"buster-multicast","value":{"rev":"3-79480b5be761d243b274cb1e77375afc"}},
-{"id":"buster-promise","key":"buster-promise","value":{"rev":"5-b50030957fbd70e65576faa9c541b739"}},
-{"id":"buster-script-loader","key":"buster-script-loader","value":{"rev":"3-85af28b5bc4e647f27514fede19a144e"}},
-{"id":"buster-server","key":"buster-server","value":{"rev":"7-57b8b43047504818322018d2bbfee1f1"}},
-{"id":"buster-static","key":"buster-static","value":{"rev":"3-018c89d1524f7823934087f18dab9047"}},
-{"id":"buster-terminal","key":"buster-terminal","value":{"rev":"5-2c54c30ffa4a2d4b061e4c38e6b9b0e7"}},
-{"id":"buster-test","key":"buster-test","value":{"rev":"5-f7ee9c9f3b379e0ad5aa03d07581ad6f"}},
-{"id":"buster-test-cli","key":"buster-test-cli","value":{"rev":"9-c207974d20e95029cad5fa4c9435d152"}},
-{"id":"buster-user-agent-parser","key":"buster-user-agent-parser","value":{"rev":"5-7883085a203b3047b28ad08361219d1d"}},
-{"id":"buster-util","key":"buster-util","value":{"rev":"3-81977275a9c467ad79bb7e3f2b1caaa8"}},
-{"id":"butler","key":"butler","value":{"rev":"7-c964c4d213da6b0de2492ee57514d0f8"}},
-{"id":"byline","key":"byline","value":{"rev":"9-0b236ed5986c20136c0d581a244d52ac"}},
-{"id":"bz","key":"bz","value":{"rev":"7-d2a463b259c4e09dc9a79ddee9575ca0"}},
-{"id":"c2dm","key":"c2dm","value":{"rev":"11-a1e6a6643506bed3e1443155706aa5fe"}},
-{"id":"cabin","key":"cabin","value":{"rev":"7-df81ef56f0bb085d381c36600496dc57"}},
-{"id":"caboose","key":"caboose","value":{"rev":"49-7226441f91b63fb5c3ac240bd99d142a"}},
-{"id":"caboose-authentication","key":"caboose-authentication","value":{"rev":"3-9c71a9d7315fdea7d5f52fe52ecef118"}},
-{"id":"caboose-model","key":"caboose-model","value":{"rev":"3-967426d5acb8bb70e133f0052075dc1b"}},
-{"id":"cache2file","key":"cache2file","value":{"rev":"17-ac9caec611a38e1752d91f8cc80cfb04"}},
-{"id":"caching","key":"caching","value":{"rev":"11-06041aaaa46b63ed36843685cac63245"}},
-{"id":"calais","key":"calais","value":{"rev":"11-f8ac2064ca45dd5b7db7ea099cd61dfb"}},
-{"id":"calc","key":"calc","value":{"rev":"3-bead9c5b0bee34e44e7c04aa2bf9cd68"}},
-{"id":"calipso","key":"calipso","value":{"rev":"87-b562676045a66a3ec702591c67a9635e"}},
-{"id":"caman","key":"caman","value":{"rev":"15-4b97c73f0ac101c68335de2937483893"}},
-{"id":"camanjs","key":"camanjs","value":{"rev":"3-2856bbdf7a1d454929b4a80b119e3da0"}},
-{"id":"camelot","key":"camelot","value":{"rev":"7-8e257c5213861ecbd229ee737a3a8bb4"}},
-{"id":"campusbooks","key":"campusbooks","value":{"rev":"18-489be33c6ac2d6cbcf93355f2b129389"}},
-{"id":"canvas","key":"canvas","value":{"rev":"78-27dbf5b6e0a25ba5886d485fd897d701"}},
-{"id":"canvasutil","key":"canvasutil","value":{"rev":"7-0b87a370d673886efb7763aaf500b744"}},
-{"id":"capoo","key":"capoo","value":{"rev":"9-136a3ddf489228d5f4b504b1da619447"}},
-{"id":"capsule","key":"capsule","value":{"rev":"19-ad3c9ba0af71a84228e6dd360017f379"}},
-{"id":"capt","key":"capt","value":{"rev":"13-0805d789000fb2e361103a5e62379196"}},
-{"id":"carena","key":"carena","value":{"rev":"10-d38e8c336a0dbb8091514f638b22b96b"}},
-{"id":"carrier","key":"carrier","value":{"rev":"20-b2b4a0560d40eeac617000e9e22a9e9d"}},
-{"id":"cart","key":"cart","value":{"rev":"12-493e79c6fa0b099626e90da79a69f1e5"}},
-{"id":"carto","key":"carto","value":{"rev":"45-8eab07e2fac57396dd62af5805062387"}},
-{"id":"caruso","key":"caruso","value":{"rev":"5-d58e22212b0bcebbab4b42adc68799aa"}},
-{"id":"cas","key":"cas","value":{"rev":"3-82a93160eb9add99bde1599e55d18fd8"}},
-{"id":"cas-auth","key":"cas-auth","value":{"rev":"3-b02f77c198050b99f1df18f637e77c10"}},
-{"id":"cas-client","key":"cas-client","value":{"rev":"3-ca69e32a3053bc680d1dddc57271483b"}},
-{"id":"cashew","key":"cashew","value":{"rev":"7-9e81cde34263adad6949875c4b33ee99"}},
-{"id":"cassandra","key":"cassandra","value":{"rev":"3-8617ef73fdc73d02ecec74d31f98e463"}},
-{"id":"cassandra-client","key":"cassandra-client","value":{"rev":"19-aa1aef5d203be5b0eac678284f1a979f"}},
-{"id":"casset","key":"casset","value":{"rev":"3-2052c7feb5b89c77aaa279c8b50126ce"}},
-{"id":"castaneum","key":"castaneum","value":{"rev":"26-4dc55ba2482cca4230b4bc77ecb5b70d"}},
-{"id":"cat","key":"cat","value":{"rev":"3-75f20119b363b85c1a8433e26b86c943"}},
-{"id":"catchjs","key":"catchjs","value":{"rev":"3-ffda7eff7613de37f629dc7a831ffda1"}},
-{"id":"caterpillar","key":"caterpillar","value":{"rev":"5-bc003e3af33240e67b4c3042f308b7da"}},
-{"id":"causeeffect","key":"causeeffect","value":{"rev":"9-7e4e25bff656170c97cb0cce1b2ab6ca"}},
-{"id":"cayenne","key":"cayenne","value":{"rev":"5-2797f561467b41cc45804e5498917800"}},
-{"id":"ccn4bnode","key":"ccn4bnode","value":{"rev":"17-96f55189e5c98f0fa8200e403a04eb39"}},
-{"id":"ccnq3_config","key":"ccnq3_config","value":{"rev":"21-40345771769a9cadff4af9113b8124c2"}},
-{"id":"ccnq3_logger","key":"ccnq3_logger","value":{"rev":"5-4aa168dc24425938a29cf9ac456158d7"}},
-{"id":"ccnq3_portal","key":"ccnq3_portal","value":{"rev":"17-84e629ec1eaba1722327ccb9dddb05cf"}},
-{"id":"ccnq3_roles","key":"ccnq3_roles","value":{"rev":"43-97de74b08b1af103da8905533a84b749"}},
-{"id":"ccss","key":"ccss","value":{"rev":"11-b9beb506410ea81581ba4c7dfe9b2a7d"}},
-{"id":"cdb","key":"cdb","value":{"rev":"13-d7b6f609f069dc738912b405aac558ab"}},
-{"id":"cdb_changes","key":"cdb_changes","value":{"rev":"13-1dc99b096cb91c276332b651396789e8"}},
-{"id":"celeri","key":"celeri","value":{"rev":"17-b19294619ef6c2056f3bf6641e8945c2"}},
-{"id":"celery","key":"celery","value":{"rev":"5-bdfccd483cf30c4c10c5ec0963de1248"}},
-{"id":"cempl8","key":"cempl8","value":{"rev":"21-bb9547b78a1548fe11dc1d5b816b6da1"}},
-{"id":"cfg","key":"cfg","value":{"rev":"3-85c7651bb8f16b057e60a46946eb95af"}},
-{"id":"cgi","key":"cgi","value":{"rev":"17-7ceac458c7f141d4fbbf05d267a72aa8"}},
-{"id":"chain","key":"chain","value":{"rev":"9-b0f175c5ad0173bcb7e11e58b02a7394"}},
-{"id":"chain-gang","key":"chain-gang","value":{"rev":"22-b0e6841a344b65530ea2a83a038e5aa6"}},
-{"id":"chainer","key":"chainer","value":{"rev":"15-8c6a565035225a1dcca0177e92ccf42d"}},
-{"id":"chainify","key":"chainify","value":{"rev":"3-0926790f18a0016a9943cfb4830e0187"}},
-{"id":"chains","key":"chains","value":{"rev":"5-d9e1ac38056e2638e38d9a7c415929c6"}},
-{"id":"chainsaw","key":"chainsaw","value":{"rev":"24-82e078efbbc59f798d29a0259481012e"}},
-{"id":"changelog","key":"changelog","value":{"rev":"27-317e473de0bf596b273a9dadecea126d"}},
-{"id":"channel-server","key":"channel-server","value":{"rev":"3-3c882f7e61686e8a124b5198c638a18e"}},
-{"id":"channels","key":"channels","value":{"rev":"5-0b532f054886d9094cb98493ee0a7a16"}},
-{"id":"chaos","key":"chaos","value":{"rev":"40-7caa4459d398f5ec30fea91d087f0d71"}},
-{"id":"chard","key":"chard","value":{"rev":"3-f2de35f7a390ea86ac0eb78bf720d0de"}},
-{"id":"charenc","key":"charenc","value":{"rev":"3-092036302311a8f5779b800c98170b5b"}},
-{"id":"chargify","key":"chargify","value":{"rev":"5-e3f29f2816b04c26ca047d345928e2c1"}},
-{"id":"charm","key":"charm","value":{"rev":"13-3e7e7b5babc1efc472e3ce62eec2c0c7"}},
-{"id":"chat-server","key":"chat-server","value":{"rev":"7-c73b785372474e083fb8f3e9690761da"}},
-{"id":"chatroom","key":"chatroom","value":{"rev":"3-f4fa8330b7eb277d11407f968bffb6a2"}},
-{"id":"chatspire","key":"chatspire","value":{"rev":"3-081e167e3f7c1982ab1b7fc3679cb87c"}},
-{"id":"checkip","key":"checkip","value":{"rev":"3-b31d58a160a4a3fe2f14cfbf2217949e"}},
-{"id":"cheddar-getter","key":"cheddar-getter","value":{"rev":"3-d675ec138ea704df127fabab6a52a8dc"}},
-{"id":"chess","key":"chess","value":{"rev":"3-8b15268c8b0fb500dcbc83b259e7fb88"}},
-{"id":"chessathome-worker","key":"chessathome-worker","value":{"rev":"7-cdfd411554c35ba7a52e54f7744bed35"}},
-{"id":"chirkut.js","key":"chirkut.js","value":{"rev":"3-c0e515eee0f719c5261a43e692a3585c"}},
-{"id":"chiron","key":"chiron","value":{"rev":"6-ccb575e432c1c1981fc34b4e27329c85"}},
-{"id":"chopper","key":"chopper","value":{"rev":"5-168681c58c2a50796676dea73dc5398b"}},
-{"id":"choreographer","key":"choreographer","value":{"rev":"14-b0159823becdf0b4552967293968b2a8"}},
-{"id":"chromic","key":"chromic","value":{"rev":"3-c4ca0bb1f951db96c727241092afa9cd"}},
-{"id":"chrono","key":"chrono","value":{"rev":"9-6399d715df1a2f4696f89f2ab5d4d83a"}},
-{"id":"chuck","key":"chuck","value":{"rev":"3-71f2ee071d4b6fb2af3b8b828c51d8ab"}},
-{"id":"chunkedstream","key":"chunkedstream","value":{"rev":"3-b145ed7d1abd94ac44343413e4f823e7"}},
-{"id":"cider","key":"cider","value":{"rev":"10-dc20cd3eac9470e96911dcf75ac6492b"}},
-{"id":"cinch","key":"cinch","value":{"rev":"5-086af7f72caefb57284e4101cbe3c905"}},
-{"id":"cipherpipe","key":"cipherpipe","value":{"rev":"5-0b5590f808415a7297de6d45947d911f"}},
-{"id":"cjson","key":"cjson","value":{"rev":"25-02e3d327b48e77dc0f9e070ce9454ac2"}},
-{"id":"ck","key":"ck","value":{"rev":"3-f482385f5392a49353d8ba5eb9c7afef"}},
-{"id":"ckup","key":"ckup","value":{"rev":"26-90a76ec0cdf951dc2ea6058098407ee2"}},
-{"id":"class","key":"class","value":{"rev":"6-e2805f7d87586a66fb5fd170cf74b3b0"}},
-{"id":"class-42","key":"class-42","value":{"rev":"3-14c988567a2c78a857f15c9661bd6430"}},
-{"id":"class-js","key":"class-js","value":{"rev":"5-792fd04288a651dad87bc47eb91c2042"}},
-{"id":"classify","key":"classify","value":{"rev":"23-35eb336c350446f5ed49069df151dbb7"}},
-{"id":"clean-css","key":"clean-css","value":{"rev":"13-e30ea1007f6c5bb49e07276228b8a960"}},
-{"id":"clearInterval","key":"clearInterval","value":{"rev":"3-a49fa235d3dc14d28a3d15f8db291986"}},
-{"id":"clearTimeout","key":"clearTimeout","value":{"rev":"3-e838bd25adc825112922913c1a35b934"}},
-{"id":"cli","key":"cli","value":{"rev":"65-9e79c37c12d21b9b9114093de0773c54"}},
-{"id":"cli-color","key":"cli-color","value":{"rev":"9-0a8e775e713b1351f6a6648748dd16ec"}},
-{"id":"cli-table","key":"cli-table","value":{"rev":"3-9e447a8bb392fb7d9c534445a650e328"}},
-{"id":"clickatell","key":"clickatell","value":{"rev":"3-31f1a66d08a789976919df0c9280de88"}},
-{"id":"clicktime","key":"clicktime","value":{"rev":"9-697a99f5f704bfebbb454df47c9c472a"}},
-{"id":"clientexpress","key":"clientexpress","value":{"rev":"3-9b07041cd7b0c3967c4625ac74c9b50c"}},
-{"id":"cliff","key":"cliff","value":{"rev":"15-ef9ef25dbad08c0e346388522d94c5c3"}},
-{"id":"clip","key":"clip","value":{"rev":"21-c3936e566feebfe0beddb0bbb686c00d"}},
-{"id":"clock","key":"clock","value":{"rev":"5-19bc51841d41408b4446c0862487dc5e"}},
-{"id":"clog","key":"clog","value":{"rev":"5-1610fe2c0f435d2694a1707ee15cd11e"}},
-{"id":"clone","key":"clone","value":{"rev":"11-099d07f38381b54902c4cf5b93671ed4"}},
-{"id":"closure","key":"closure","value":{"rev":"7-9c2ac6b6ec9f14d12d10bfbfad58ec14"}},
-{"id":"closure-compiler","key":"closure-compiler","value":{"rev":"8-b3d2f9e3287dd33094a35d797d6beaf2"}},
-{"id":"cloud","key":"cloud","value":{"rev":"27-407c7aa77d3d4a6cc903d18b383de8b8"}},
-{"id":"cloud9","key":"cloud9","value":{"rev":"71-4af631e3fa2eb28058cb0d18ef3a6a3e"}},
-{"id":"cloudcontrol","key":"cloudcontrol","value":{"rev":"15-2df57385aa9bd92f7ed81e6892e23696"}},
-{"id":"cloudfiles","key":"cloudfiles","value":{"rev":"30-01f84ebda1d8f151b3e467590329960c"}},
-{"id":"cloudfoundry","key":"cloudfoundry","value":{"rev":"3-66fafd3d6b1353b1699d35e634686ab6"}},
-{"id":"cloudmailin","key":"cloudmailin","value":{"rev":"3-a4e3e4d457f5a18261bb8df145cfb418"}},
-{"id":"cloudnode-cli","key":"cloudnode-cli","value":{"rev":"17-3a80f7855ce618f7aee68bd693ed485b"}},
-{"id":"cloudservers","key":"cloudservers","value":{"rev":"42-6bc34f7e34f84a24078b43a609e96c59"}},
-{"id":"clucene","key":"clucene","value":{"rev":"37-3d613f12a857b8fe22fbf420bcca0dc3"}},
-{"id":"cluster","key":"cluster","value":{"rev":"83-63fb7a468d95502f94ea45208ba0a890"}},
-{"id":"cluster-isolatable","key":"cluster-isolatable","value":{"rev":"5-6af883cea9ab1c90bb126d8b3be2d156"}},
-{"id":"cluster-live","key":"cluster-live","value":{"rev":"7-549d19e9727f460c7de48f93b92e9bb3"}},
-{"id":"cluster-log","key":"cluster-log","value":{"rev":"7-9c47854df8ec911e679743185668a5f7"}},
-{"id":"cluster-loggly","key":"cluster-loggly","value":{"rev":"3-e1f7e331282d7b8317ce55e0fce7f934"}},
-{"id":"cluster-mail","key":"cluster-mail","value":{"rev":"9-dc18c5c1b2b265f3d531b92467b6cc35"}},
-{"id":"cluster-responsetimes","key":"cluster-responsetimes","value":{"rev":"3-c9e16daee15eb84910493264e973275c"}},
-{"id":"cluster-socket.io","key":"cluster-socket.io","value":{"rev":"7-29032f0b42575e9fe183a0af92191132"}},
-{"id":"cluster.exception","key":"cluster.exception","value":{"rev":"3-10856526e2f61e3000d62b12abd750e3"}},
-{"id":"clutch","key":"clutch","value":{"rev":"8-50283f7263c430cdd1d293c033571012"}},
-{"id":"cm1-route","key":"cm1-route","value":{"rev":"13-40e72b5a4277b500c98c966bcd2a8a86"}},
-{"id":"cmd","key":"cmd","value":{"rev":"9-9168fcd96fb1ba9449050162023f3570"}},
-{"id":"cmdopt","key":"cmdopt","value":{"rev":"3-85677533e299bf195e78942929cf9839"}},
-{"id":"cmp","key":"cmp","value":{"rev":"5-b10f873b78eb64e406fe55bd001ae0fa"}},
-{"id":"cmudict","key":"cmudict","value":{"rev":"3-cd028380bba917d5ed2be7a8d3b3b0b7"}},
-{"id":"cnlogger","key":"cnlogger","value":{"rev":"9-dbe7e0e50d25ca5ae939fe999c3c562b"}},
-{"id":"coa","key":"coa","value":{"rev":"11-ff4e634fbebd3f80b9461ebe58b3f64e"}},
-{"id":"cobra","key":"cobra","value":{"rev":"5-a3e0963830d350f4a7e91b438caf9117"}},
-{"id":"cockpit","key":"cockpit","value":{"rev":"3-1757b37245ee990999e4456b9a6b963e"}},
-{"id":"coco","key":"coco","value":{"rev":"104-eabc4d7096295c2156144a7581d89b35"}},
-{"id":"cocos2d","key":"cocos2d","value":{"rev":"19-88a5c75ceb6e7667665c056d174f5f1a"}},
-{"id":"codem-transcode","key":"codem-transcode","value":{"rev":"9-1faa2657d53271ccc44cce27de723e99"}},
-{"id":"codepad","key":"codepad","value":{"rev":"5-094ddce74dc057dc0a4d423d6d2fbc3a"}},
-{"id":"codetube","key":"codetube","value":{"rev":"3-819794145f199330e724864db70da53b"}},
-{"id":"coerce","key":"coerce","value":{"rev":"3-e7d392d497c0b8491b89fcbbd1a5a89f"}},
-{"id":"coffee-conf","key":"coffee-conf","value":{"rev":"3-883bc4767d70810ece2fdf1ccae883de"}},
-{"id":"coffee-css","key":"coffee-css","value":{"rev":"11-66ca197173751389b24945f020f198f9"}},
-{"id":"coffee-echonest","key":"coffee-echonest","value":{"rev":"3-3cd0e2b77103e334eccf6cf4168f39b2"}},
-{"id":"coffee-machine","key":"coffee-machine","value":{"rev":"9-02deb4d27fd5d56002ead122e9bb213e"}},
-{"id":"coffee-new","key":"coffee-new","value":{"rev":"67-0664b0f289030c38d113070fd26f4f71"}},
-{"id":"coffee-resque","key":"coffee-resque","value":{"rev":"22-5b022809317d3a873be900f1a697c5eb"}},
-{"id":"coffee-resque-retry","key":"coffee-resque-retry","value":{"rev":"29-1fb64819a4a21ebb4d774d9d4108e419"}},
-{"id":"coffee-revup","key":"coffee-revup","value":{"rev":"3-23aafa258bcdcf2bb68d143d61383551"}},
-{"id":"coffee-script","key":"coffee-script","value":{"rev":"60-a6c3739655f43953bd86283776586b95"}},
-{"id":"coffee-son","key":"coffee-son","value":{"rev":"3-84a81e7e24c8cb23293940fc1b87adfe"}},
-{"id":"coffee-toaster","key":"coffee-toaster","value":{"rev":"17-d43d7276c08b526c229c78b7d5acd6cc"}},
-{"id":"coffee-watcher","key":"coffee-watcher","value":{"rev":"3-3d861a748f0928c789cbdb8ff62b6091"}},
-{"id":"coffee-world","key":"coffee-world","value":{"rev":"15-46dc320f94fa64c39e183224ec59f47a"}},
-{"id":"coffee4clients","key":"coffee4clients","value":{"rev":"15-58fba7dd10bced0411cfe546b9336145"}},
-{"id":"coffeeapp","key":"coffeeapp","value":{"rev":"48-bece0a26b78afc18cd37d577f90369d9"}},
-{"id":"coffeebot","key":"coffeebot","value":{"rev":"3-a9007053f25a4c13b324f0ac7066803e"}},
-{"id":"coffeedoc","key":"coffeedoc","value":{"rev":"21-a955faafafd10375baf3101ad2c142d0"}},
-{"id":"coffeegrinder","key":"coffeegrinder","value":{"rev":"9-6e725aad7fd39cd38f41c743ef8a7563"}},
-{"id":"coffeekup","key":"coffeekup","value":{"rev":"35-9b1eecdb7b13d3e75cdc7b1045cf910a"}},
-{"id":"coffeemaker","key":"coffeemaker","value":{"rev":"9-4c5e665aa2a5b4efa2b7d077d0a4f9c1"}},
-{"id":"coffeemate","key":"coffeemate","value":{"rev":"71-03d0221fb495f2dc6732009884027b47"}},
-{"id":"coffeepack","key":"coffeepack","value":{"rev":"3-bbf0e27cb4865392164e7ab33f131d58"}},
-{"id":"coffeeq","key":"coffeeq","value":{"rev":"9-4e38e9742a0b9d7b308565729fbfd123"}},
-{"id":"coffeescript-growl","key":"coffeescript-growl","value":{"rev":"7-2bc1f93c4aad5fa8fb4bcfd1b3ecc279"}},
-{"id":"coffeescript-notify","key":"coffeescript-notify","value":{"rev":"3-8aeb31f8e892d3fefa421ff28a1b3de9"}},
-{"id":"collectd","key":"collectd","value":{"rev":"5-3d4c84b0363aa9c078157d82695557a1"}},
-{"id":"collection","key":"collection","value":{"rev":"3-a47e1fe91b9eebb3e75954e350ec2ca3"}},
-{"id":"collection_functions","key":"collection_functions","value":{"rev":"3-7366c721008062373ec924a409415189"}},
-{"id":"collections","key":"collections","value":{"rev":"3-0237a40d08a0da36c2dd01ce73a89bb2"}},
-{"id":"color","key":"color","value":{"rev":"15-4898b2cd9744feb3249ba10828c186f8"}},
-{"id":"color-convert","key":"color-convert","value":{"rev":"7-2ccb47c7f07a47286d9a2f39383d28f0"}},
-{"id":"color-string","key":"color-string","value":{"rev":"5-9a6336f420e001e301a15b88b0103696"}},
-{"id":"colorize","key":"colorize","value":{"rev":"3-ff380385edacc0c46e4c7b5c05302576"}},
-{"id":"colors","key":"colors","value":{"rev":"8-7c7fb9c5af038c978f0868c7706fe145"}},
-{"id":"colour-extractor","key":"colour-extractor","value":{"rev":"3-62e96a84c6adf23f438b5aac76c7b257"}},
-{"id":"coloured","key":"coloured","value":{"rev":"8-c5295f2d5a8fc08e93d180a4e64f8d38"}},
-{"id":"coloured-log","key":"coloured-log","value":{"rev":"14-8627a3625959443acad71e2c23dfc582"}},
-{"id":"comb","key":"comb","value":{"rev":"5-7f201b621ae9a890c7f5a31867eba3e9"}},
-{"id":"combine","key":"combine","value":{"rev":"14-bed33cd4389a2e4bb826a0516c6ae307"}},
-{"id":"combined-stream","key":"combined-stream","value":{"rev":"13-678f560200ac2835b9026e9e2b955cb0"}},
-{"id":"combiner","key":"combiner","value":{"rev":"3-5e7f133c8c14958eaf9e92bd79ae8ee1"}},
-{"id":"combohandler","key":"combohandler","value":{"rev":"7-d7e1a402f0066caa6756a8866de81dd9"}},
-{"id":"combyne","key":"combyne","value":{"rev":"23-05ebee9666a769e32600bc5548d10ce9"}},
-{"id":"comfy","key":"comfy","value":{"rev":"5-8bfe55bc16611dfe51a184b8f3eb31c1"}},
-{"id":"command-parser","key":"command-parser","value":{"rev":"5-8a5c3ed6dfa0fa55cc71b32cf52332fc"}},
-{"id":"commander","key":"commander","value":{"rev":"11-9dd16c00844d464bf66c101a57075401"}},
-{"id":"commando","key":"commando","value":{"rev":"3-e159f1890f3771dfd6e04f4d984f26f3"}},
-{"id":"common","key":"common","value":{"rev":"16-94eafcf104c0c7d1090e668ddcc12a5f"}},
-{"id":"common-exception","key":"common-exception","value":{"rev":"7-bd46358014299da814691c835548ef21"}},
-{"id":"common-node","key":"common-node","value":{"rev":"5-b2c4bef0e7022d5d453661a9c43497a8"}},
-{"id":"common-pool","key":"common-pool","value":{"rev":"5-c495fa945361ba4fdfb2ee8733d791b4"}},
-{"id":"common-utils","key":"common-utils","value":{"rev":"3-e5a047f118fc304281d2bc5e9ab18e62"}},
-{"id":"commondir","key":"commondir","value":{"rev":"3-ea49874d12eeb9adf28ca28989dfb5a9"}},
-{"id":"commonjs","key":"commonjs","value":{"rev":"6-39fcd0de1ec265890cf063effd0672e3"}},
-{"id":"commonjs-utils","key":"commonjs-utils","value":{"rev":"6-c0266a91dbd0a43effb7d30da5d9f35c"}},
-{"id":"commonkv","key":"commonkv","value":{"rev":"3-90b2fe4c79e263b044303706c4d5485a"}},
-{"id":"commons","key":"commons","value":{"rev":"6-0ecb654aa2bd17cf9519f86d354f8a50"}},
-{"id":"complete","key":"complete","value":{"rev":"7-acde8cba7677747d09c3d53ff165754e"}},
-{"id":"complex-search","key":"complex-search","value":{"rev":"5-c80b2c7f049f333bde89435f3de497ca"}},
-{"id":"compose","key":"compose","value":{"rev":"1-cf8a97d6ead3bef056d85daec5d36c70"}},
-{"id":"composer","key":"composer","value":{"rev":"6-1deb43725051f845efd4a7c8e68aa6d6"}},
-{"id":"compress","key":"compress","value":{"rev":"17-f0aacce1356f807b51e083490fb353bd"}},
-{"id":"compress-buffer","key":"compress-buffer","value":{"rev":"12-2886014c7f2541f4ddff9f0f55f4c171"}},
-{"id":"compress-ds","key":"compress-ds","value":{"rev":"5-9e4c6931edf104443353594ef50aa127"}},
-{"id":"compressor","key":"compressor","value":{"rev":"3-ee8ad155a98e1483d899ebcf82d5fb63"}},
-{"id":"concrete","key":"concrete","value":{"rev":"5-bc70bbffb7c6fe9e8c399db578fb3bae"}},
-{"id":"condo","key":"condo","value":{"rev":"9-5f03d58ee7dc29465defa3758f3b138a"}},
-{"id":"conductor","key":"conductor","value":{"rev":"8-1878afadcda7398063de6286c2d2c5c1"}},
-{"id":"conf","key":"conf","value":{"rev":"11-dcf0f6a93827d1b143cb1d0858f2be4a"}},
-{"id":"config","key":"config","value":{"rev":"37-2b741a1e6951a74b7f1de0d0547418a0"}},
-{"id":"config-loader","key":"config-loader","value":{"rev":"3-708cc96d1206de46fb450eb57ca07b0d"}},
-{"id":"configurator","key":"configurator","value":{"rev":"5-b31ad9731741d19f28241f6af5b41fee"}},
-{"id":"confu","key":"confu","value":{"rev":"7-c46f82c4aa9a17db6530b00669461eaf"}},
-{"id":"confy","key":"confy","value":{"rev":"3-893b33743830a0318dc99b1788aa92ee"}},
-{"id":"connect","key":"connect","value":{"rev":"151-8b5617fc6ece6c125b5f628936159bd6"}},
-{"id":"connect-access-control","key":"connect-access-control","value":{"rev":"3-ccf5fb09533d41eb0b564eb1caecf910"}},
-{"id":"connect-airbrake","key":"connect-airbrake","value":{"rev":"5-19db5e5828977540814d09f9eb7f028f"}},
-{"id":"connect-analytics","key":"connect-analytics","value":{"rev":"3-6f71c8b08ed9f5762c1a4425c196fb2a"}},
-{"id":"connect-app-cache","key":"connect-app-cache","value":{"rev":"27-3e69452dfe51cc907f8b188aede1bda8"}},
-{"id":"connect-assetmanager","key":"connect-assetmanager","value":{"rev":"46-f2a8834d2749e0c069cee06244e7501c"}},
-{"id":"connect-assetmanager-handlers","key":"connect-assetmanager-handlers","value":{"rev":"38-8b93821fcf46f20bbad4319fb39302c1"}},
-{"id":"connect-assets","key":"connect-assets","value":{"rev":"33-7ec2940217e29a9514d20cfd49af10f5"}},
-{"id":"connect-auth","key":"connect-auth","value":{"rev":"36-5640e82f3e2773e44ce47b0687436305"}},
-{"id":"connect-cache","key":"connect-cache","value":{"rev":"11-efe1f0ab00c181b1a4dece446ef13a90"}},
-{"id":"connect-coffee","key":"connect-coffee","value":{"rev":"3-3d4ebcfe083c9e5a5d587090f1bb4d65"}},
-{"id":"connect-conneg","key":"connect-conneg","value":{"rev":"3-bc3e04e65cf1f5233a38cc846e9a4a75"}},
-{"id":"connect-cookie-session","key":"connect-cookie-session","value":{"rev":"3-f48ca73aa1ce1111a2c962d219b59c1a"}},
-{"id":"connect-cors","key":"connect-cors","value":{"rev":"10-5bc9e3759671a0157fdc307872d38844"}},
-{"id":"connect-couchdb","key":"connect-couchdb","value":{"rev":"9-9adb6d24c7fb6de58bafe6d06fb4a230"}},
-{"id":"connect-cradle","key":"connect-cradle","value":{"rev":"5-0e5e32e00a9b98eff1ab010173d26ffb"}},
-{"id":"connect-docco","key":"connect-docco","value":{"rev":"9-c8e379f9a89db53f8921895ac4e87ed6"}},
-{"id":"connect-dojo","key":"connect-dojo","value":{"rev":"17-f323c634536b9b948ad9607f4ca0847f"}},
-{"id":"connect-esi","key":"connect-esi","value":{"rev":"45-01de7506d405856586ea77cb14022192"}},
-{"id":"connect-facebook","key":"connect-facebook","value":{"rev":"3-bf77eb01c0476e607b25bc9d93416b7e"}},
-{"id":"connect-force-domain","key":"connect-force-domain","value":{"rev":"5-a65755f93aaea8a21c7ce7dd4734dca0"}},
-{"id":"connect-form","key":"connect-form","value":{"rev":"16-fa786af79f062a05ecdf3e7cf48317e2"}},
-{"id":"connect-geoip","key":"connect-geoip","value":{"rev":"3-d87f93bcac58aa7904886a8fb6c45899"}},
-{"id":"connect-googleapps","key":"connect-googleapps","value":{"rev":"13-49c5c6c6724b21eea9a8eaae2165978d"}},
-{"id":"connect-gzip","key":"connect-gzip","value":{"rev":"7-2e1d4bb887c1ddda278fc8465ee5645b"}},
-{"id":"connect-heroku-redis","key":"connect-heroku-redis","value":{"rev":"13-92da2be67451e5f55f6fbe3672c86dc4"}},
-{"id":"connect-i18n","key":"connect-i18n","value":{"rev":"8-09d47d7c220770fc80d1b6fd87ffcd07"}},
-{"id":"connect-identity","key":"connect-identity","value":{"rev":"8-8eb9e21bbf80045e0243720955d6070f"}},
-{"id":"connect-image-resizer","key":"connect-image-resizer","value":{"rev":"7-5f82563f87145f3cc06086afe3a14a62"}},
-{"id":"connect-index","key":"connect-index","value":{"rev":"3-8b8373334079eb26c8735b39483889a0"}},
-{"id":"connect-jsonp","key":"connect-jsonp","value":{"rev":"16-9e80af455e490710f06039d3c0025840"}},
-{"id":"connect-jsonrpc","key":"connect-jsonrpc","value":{"rev":"6-6556800f0bef6ae5eb10496d751048e7"}},
-{"id":"connect-kyoto","key":"connect-kyoto","value":{"rev":"5-8f6a9e9b24d1a71c786645402f509645"}},
-{"id":"connect-less","key":"connect-less","value":{"rev":"3-461ed9a80b462b978a81d5bcee6f3665"}},
-{"id":"connect-load-balance","key":"connect-load-balance","value":{"rev":"3-e74bff5fb47d1490c05a9cc4339af347"}},
-{"id":"connect-memcached","key":"connect-memcached","value":{"rev":"3-5fc92b7f9fb5bcfb364a27e6f052bcc7"}},
-{"id":"connect-mongo","key":"connect-mongo","value":{"rev":"13-c3869bc7337b2f1ee6b9b3364993f321"}},
-{"id":"connect-mongodb","key":"connect-mongodb","value":{"rev":"30-30cb932839ce16e4e496f5a33fdd720a"}},
-{"id":"connect-mongoose","key":"connect-mongoose","value":{"rev":"3-48a5b329e4cfa885442d43bbd1d0db46"}},
-{"id":"connect-mongoose-session","key":"connect-mongoose-session","value":{"rev":"3-6692b8e1225d5cd6a2daabd61cecb1cd"}},
-{"id":"connect-mysql-session","key":"connect-mysql-session","value":{"rev":"9-930abd0279ef7f447e75c95b3e71be12"}},
-{"id":"connect-no-www","key":"connect-no-www","value":{"rev":"3-33bed7417bc8a5e8efc74ce132c33158"}},
-{"id":"connect-notifo","key":"connect-notifo","value":{"rev":"3-4681f8c5a7dfd35aee9634e809c41804"}},
-{"id":"connect-parameter-router","key":"connect-parameter-router","value":{"rev":"3-f435f06d556c208d43ef05c64bcddceb"}},
-{"id":"connect-pg","key":"connect-pg","value":{"rev":"11-d84c53d8f1c24adfc266e7a031dddf0d"}},
-{"id":"connect-proxy","key":"connect-proxy","value":{"rev":"7-a691ff57a9affeab47c54d17dbe613cb"}},
-{"id":"connect-queryparser","key":"connect-queryparser","value":{"rev":"3-bb35a7f3f75297a63bf942a63b842698"}},
-{"id":"connect-redis","key":"connect-redis","value":{"rev":"40-4faa12962b14da49380de2bb183176f9"}},
-{"id":"connect-restreamer","key":"connect-restreamer","value":{"rev":"3-08e637ca685cc63b2b4f9722c763c105"}},
-{"id":"connect-riak","key":"connect-riak","value":{"rev":"5-3268c29a54e430a3f8adb33570afafdb"}},
-{"id":"connect-rpx","key":"connect-rpx","value":{"rev":"28-acc7bb4200c1d30f359151f0a715162c"}},
-{"id":"connect-security","key":"connect-security","value":{"rev":"16-fecd20f486a8ea4d557119af5b5a2960"}},
-{"id":"connect-select","key":"connect-select","value":{"rev":"5-5ca28ec800419e4cb3e97395a6b96153"}},
-{"id":"connect-session-mongo","key":"connect-session-mongo","value":{"rev":"9-9e6a26dfbb9c13a9d6f4060a1895730a"}},
-{"id":"connect-session-redis-store","key":"connect-session-redis-store","value":{"rev":"8-fecfed6e17476eaada5cfe7740d43893"}},
-{"id":"connect-sessionvoc","key":"connect-sessionvoc","value":{"rev":"13-57b6e6ea2158e3b7136054839662ea3d"}},
-{"id":"connect-spdy","key":"connect-spdy","value":{"rev":"11-f9eefd7303295d77d317cba78d299130"}},
-{"id":"connect-sts","key":"connect-sts","value":{"rev":"9-8e3fd563c04ce14b824fc4da42efb70e"}},
-{"id":"connect-timeout","key":"connect-timeout","value":{"rev":"4-6f5f8d97480c16c7acb05fe82400bbc7"}},
-{"id":"connect-unstable","key":"connect-unstable","value":{"rev":"3-1d3a4edc52f005d8cb4d557485095314"}},
-{"id":"connect-wormhole","key":"connect-wormhole","value":{"rev":"3-f33b15acc686bd9ad0c6df716529009f"}},
-{"id":"connect-xcors","key":"connect-xcors","value":{"rev":"7-f8e1cd6805a8779bbd6bb2c1000649fb"}},
-{"id":"connect_facebook","key":"connect_facebook","value":{"rev":"3-b3001d71f619836a009c53c816ce36ed"}},
-{"id":"connect_json","key":"connect_json","value":{"rev":"3-dd0df74291f80f45b4314d56192c19c5"}},
-{"id":"connectables","key":"connectables","value":{"rev":"3-f6e9f8f13883a523b4ea6035281f541b"}},
-{"id":"conseq","key":"conseq","value":{"rev":"3-890d340704322630e7a724333f394c70"}},
-{"id":"consistent-hashing","key":"consistent-hashing","value":{"rev":"3-fcef5d4479d926560cf1bc900f746f2a"}},
-{"id":"console","key":"console","value":{"rev":"3-1e0449b07c840eeac6b536e2552844f4"}},
-{"id":"console.log","key":"console.log","value":{"rev":"9-d608afe50e732ca453365befcb87bad5"}},
-{"id":"consolemark","key":"consolemark","value":{"rev":"13-320f003fc2c3cec909ab3e9c3bce9743"}},
-{"id":"construct","key":"construct","value":{"rev":"3-75bdc809ee0572172e6acff537af7d9b"}},
-{"id":"context","key":"context","value":{"rev":"3-86b1a6a0f77ef86d4d9ccfff47ceaf6a"}},
-{"id":"contextify","key":"contextify","value":{"rev":"9-547b8019ef66e0d1c84fe00be832e750"}},
-{"id":"contract","key":"contract","value":{"rev":"3-d09e775c2c1e297b6cbbfcd5efbae3c7"}},
-{"id":"contracts","key":"contracts","value":{"rev":"13-3fd75c77e688937734f51cf97f10dd7d"}},
-{"id":"control","key":"control","value":{"rev":"31-7abf0cb81d19761f3ff59917e56ecedf"}},
-{"id":"controljs","key":"controljs","value":{"rev":"3-a8e80f93e389ca07509fa7addd6cb805"}},
-{"id":"convert","key":"convert","value":{"rev":"3-6c962b92274bcbe82b82a30806559d47"}},
-{"id":"conway","key":"conway","value":{"rev":"5-93ce24976e7dd5ba02fe4addb2b44267"}},
-{"id":"cookie","key":"cookie","value":{"rev":"14-946d98bf46e940d13ca485148b1bd609"}},
-{"id":"cookie-sessions","key":"cookie-sessions","value":{"rev":"8-4b399ac8cc4baea15f6c5e7ac94399f0"}},
-{"id":"cookiejar","key":"cookiejar","value":{"rev":"20-220b41a4c2a8f2b7b14aafece7dcc1b5"}},
-{"id":"cookies","key":"cookies","value":{"rev":"15-b3b35c32a99ed79accc724685d131d18"}},
-{"id":"cool","key":"cool","value":{"rev":"3-007d1123eb2dc52cf845d625f7ccf198"}},
-{"id":"coolmonitor","key":"coolmonitor","value":{"rev":"3-69c3779c596527f63e49c5e507dff1e1"}},
-{"id":"coop","key":"coop","value":{"rev":"9-39dee3260858cf8c079f31bdf02cea1d"}},
-{"id":"coordinator","key":"coordinator","value":{"rev":"32-9d92f2033a041d5c40f8e1018d512755"}},
-{"id":"core-utils","key":"core-utils","value":{"rev":"9-98f2412938a67d83e53e76a26b5601e0"}},
-{"id":"cornify","key":"cornify","value":{"rev":"6-6913172d09c52f9e8dc0ea19ec49972c"}},
-{"id":"corpus","key":"corpus","value":{"rev":"3-a357e7779f8d4ec020b755c71dd1e57b"}},
-{"id":"corrector","key":"corrector","value":{"rev":"3-ef3cf99fc59a581aee3590bdb8615269"}},
-{"id":"cosmos","key":"cosmos","value":{"rev":"3-3eb292c59758fb5215f22739fa9531ce"}},
-{"id":"couch-ar","key":"couch-ar","value":{"rev":"25-f106d2965ab74b25b18328ca44ca4a02"}},
-{"id":"couch-cleaner","key":"couch-cleaner","value":{"rev":"15-74e61ef98a770d76be4c7e7571d18381"}},
-{"id":"couch-client","key":"couch-client","value":{"rev":"10-94945ebd3e17f509fcc71fb6c6ef5d35"}},
-{"id":"couch-session","key":"couch-session","value":{"rev":"4-c73dea41ceed26a2a0bde9a9c8ffffc4"}},
-{"id":"couch-sqlite","key":"couch-sqlite","value":{"rev":"3-3e420fe6623542475595aa7e55a4e4bd"}},
-{"id":"couch-stream","key":"couch-stream","value":{"rev":"5-911704fc984bc49acce1e10adefff7ff"}},
-{"id":"couchapp","key":"couchapp","value":{"rev":"16-ded0f4742bb3f5fd42ec8f9c6b21ae8e"}},
-{"id":"couchcmd","key":"couchcmd","value":{"rev":"3-651ea2b435e031481b5d3d968bd3d1eb"}},
-{"id":"couchdb","key":"couchdb","value":{"rev":"12-8abcfd649751226c10edf7cf0508a09f"}},
-{"id":"couchdb-api","key":"couchdb-api","value":{"rev":"23-f2c82f08f52f266df7ac2aa709615244"}},
-{"id":"couchdb-tmp","key":"couchdb-tmp","value":{"rev":"3-9a695fb4ba352f3be2d57c5995718520"}},
-{"id":"couchdev","key":"couchdev","value":{"rev":"3-50a0ca3ed0395dd72de62a1b96619e66"}},
-{"id":"couchlegs","key":"couchlegs","value":{"rev":"5-be78e7922ad4ff86dbe5c17a87fdf4f1"}},
-{"id":"couchtato","key":"couchtato","value":{"rev":"11-15a1ce8de9a8cf1e81d96de6afbb4f45"}},
-{"id":"couchy","key":"couchy","value":{"rev":"13-0a52b2712fb8447f213866612e3ccbf7"}},
-{"id":"courier","key":"courier","value":{"rev":"17-eb94fe01aeaad43805f4bce21d23bcba"}},
-{"id":"coverage","key":"coverage","value":{"rev":"10-a333448996d0b0d420168d1b5748db32"}},
-{"id":"coverage_testing","key":"coverage_testing","value":{"rev":"3-62834678206fae7911401aa86ec1a85e"}},
-{"id":"cqs","key":"cqs","value":{"rev":"6-0dad8b969c70abccc27a146a99399533"}},
-{"id":"crab","key":"crab","value":{"rev":"9-599fc7757f0c9efbe3889f30981ebe93"}},
-{"id":"cradle","key":"cradle","value":{"rev":"60-8fb414b66cb07b4bae59c0316d5c45b4"}},
-{"id":"cradle-fixed","key":"cradle-fixed","value":{"rev":"4-589afffa26fca22244ad2038abb77dc5"}},
-{"id":"cradle-init","key":"cradle-init","value":{"rev":"13-499d63592141f1e200616952bbdea015"}},
-{"id":"crawler","key":"crawler","value":{"rev":"5-ec4a8d77f90d86d17d6d14d631360188"}},
-{"id":"crc","key":"crc","value":{"rev":"3-25ab83f8b1333e6d4e4e5fb286682422"}},
-{"id":"creatary","key":"creatary","value":{"rev":"3-770ad84ecb2e2a3994637d419384740d"}},
-{"id":"createsend","key":"createsend","value":{"rev":"7-19885346e4d7a01ac2e9ad70ea0e822a"}},
-{"id":"creationix","key":"creationix","value":{"rev":"61-7ede1759afbd41e8b4dedc348b72202e"}},
-{"id":"creek","key":"creek","value":{"rev":"33-4f511aa4dd379e04bba7ac333744325e"}},
-{"id":"cron","key":"cron","value":{"rev":"12-8d794edb5f9b7cb6322acaef1c848043"}},
-{"id":"cron2","key":"cron2","value":{"rev":"13-bae2f1b02ffcbb0e77bde6c33b566f80"}},
-{"id":"crontab","key":"crontab","value":{"rev":"36-14d26bf316289fb4841940eee2932f37"}},
-{"id":"crossroads","key":"crossroads","value":{"rev":"7-d73d51cde30f24caad91e6a3c5b420f2"}},
-{"id":"crowdflower","key":"crowdflower","value":{"rev":"3-16c2dfc9fd505f75068f75bd19e3d227"}},
-{"id":"cruvee","key":"cruvee","value":{"rev":"3-979ccf0286b1701e9e7483a10451d975"}},
-{"id":"crypt","key":"crypt","value":{"rev":"3-031b338129bebc3749b42fb3d442fc4b"}},
-{"id":"crypto","key":"crypto","value":{"rev":"3-66a444b64481c85987dd3f22c32e0630"}},
-{"id":"csj","key":"csj","value":{"rev":"3-bc3133c7a0a8827e89aa03897b81d177"}},
-{"id":"cson","key":"cson","value":{"rev":"7-3ac3e1e10572e74e58874cfe3200eb87"}},
-{"id":"csrf-express","key":"csrf-express","value":{"rev":"3-4cc36d88e8ad10b9c2cc8a7318f0abd3"}},
-{"id":"css-crawler","key":"css-crawler","value":{"rev":"13-4739c7bf1decc72d7682b53303f93ec6"}},
-{"id":"css-smasher","key":"css-smasher","value":{"rev":"3-631128f966135c97d648efa3eadf7bfb"}},
-{"id":"css-sourcery","key":"css-sourcery","value":{"rev":"3-571343da3a09af7de473d29ed7dd788b"}},
-{"id":"css2json","key":"css2json","value":{"rev":"5-fb6d84c1da4a9391fa05d782860fe7c4"}},
-{"id":"csskeeper","key":"csskeeper","value":{"rev":"5-ea667a572832ea515b044d4b87ea7d98"}},
-{"id":"csslike","key":"csslike","value":{"rev":"3-6e957cce81f6e790f8562526d907ad94"}},
-{"id":"csslint","key":"csslint","value":{"rev":"19-b1e973274a0a6b8eb81b4d715a249612"}},
-{"id":"cssmin","key":"cssmin","value":{"rev":"10-4bb4280ec56f110c43abe01189f95818"}},
-{"id":"csso","key":"csso","value":{"rev":"17-ccfe2a72d377919b07973bbb1d19b8f2"}},
-{"id":"cssom","key":"cssom","value":{"rev":"3-f96b884b63b4c04bac18b8d9c0a4c4cb"}},
-{"id":"cssp","key":"cssp","value":{"rev":"5-abf69f9ff99b7d0bf2731a5b5da0897c"}},
-{"id":"cssunminifier","key":"cssunminifier","value":{"rev":"3-7bb0c27006af682af92d1969fcb4fa73"}},
-{"id":"cssutils","key":"cssutils","value":{"rev":"3-4759f9db3b8eac0964e36f5229260526"}},
-{"id":"csv","key":"csv","value":{"rev":"21-0420554e9c08e001063cfb0a69a48255"}},
-{"id":"csv2mongo","key":"csv2mongo","value":{"rev":"9-373f11c05e5d1744c3187d9aaeaae0ab"}},
-{"id":"csvutils","key":"csvutils","value":{"rev":"15-84aa82e56b49cd425a059c8f0735a23c"}},
-{"id":"ctrlflow","key":"ctrlflow","value":{"rev":"33-0b817baf6c744dc17b83d5d8ab1ba74e"}},
-{"id":"ctrlflow_tests","key":"ctrlflow_tests","value":{"rev":"3-d9ed35503d27b0736c59669eecb4c4fe"}},
-{"id":"ctype","key":"ctype","value":{"rev":"9-c5cc231475f23a01682d0b1a3b6e49c2"}},
-{"id":"cube","key":"cube","value":{"rev":"5-40320a20d260e082f5c4ca508659b4d1"}},
-{"id":"cucumber","key":"cucumber","value":{"rev":"11-8489af0361b6981cf9001a0403815936"}},
-{"id":"cucumis","key":"cucumis","value":{"rev":"33-6dc38f1161fae3efa2a89c8288b6e040"}},
-{"id":"cucumis-rm","key":"cucumis-rm","value":{"rev":"3-6179249ad15166f8d77eb136b3fa87ca"}},
-{"id":"cupcake","key":"cupcake","value":{"rev":"15-1dd13a85415a366942e7f0a3de06aa2a"}},
-{"id":"curator","key":"curator","value":{"rev":"19-d798ab7fbca11ba0e9c6c40c0a2f9440"}},
-{"id":"curl","key":"curl","value":{"rev":"11-ac7143ac07c64ea169ba7d4e58be232a"}},
-{"id":"curly","key":"curly","value":{"rev":"30-0248a5563b6e96457315ad0cc2fe22c1"}},
-{"id":"curry","key":"curry","value":{"rev":"11-ce13fa80e84eb25d9cf76cf4162a634e"}},
-{"id":"cursory","key":"cursory","value":{"rev":"3-ea2f4b1b47caf38460402d1a565c18b8"}},
-{"id":"d-utils","key":"d-utils","value":{"rev":"37-699ad471caa28183d75c06f0f2aab41c"}},
-{"id":"d3","key":"d3","value":{"rev":"5-4d867844bd7dce21b34cd7283bb9cad4"}},
-{"id":"d3bench","key":"d3bench","value":{"rev":"3-617cc625bfd91c175d037bfcace9c4e9"}},
-{"id":"daemon","key":"daemon","value":{"rev":"11-8654f90bc609ca2c3ec260c7d6b7793e"}},
-{"id":"daemon-tools","key":"daemon-tools","value":{"rev":"18-8197fce2054de67925e6f2c3fa3cd90a"}},
-{"id":"daimyo","key":"daimyo","value":{"rev":"25-531b0b0afdc5ae3d41b4131da40af6cf"}},
-{"id":"daleth","key":"daleth","value":{"rev":"7-4824619205289ba237ef2a4dc1fba1ec"}},
-{"id":"dali","key":"dali","value":{"rev":"9-037c4c76f739ecb537a064c07d3c63e3"}},
-{"id":"damncomma","key":"damncomma","value":{"rev":"3-b1472eada01efb8a12d521e5a248834b"}},
-{"id":"dana","key":"dana","value":{"rev":"3-2a3c0ff58a6d13fedd17e1d192080e59"}},
-{"id":"dandy","key":"dandy","value":{"rev":"9-f4ae43659dd812a010b0333bf8e5a282"}},
-{"id":"dash","key":"dash","value":{"rev":"5-698513f86165f429a5f55320d5a700f0"}},
-{"id":"dash-fu","key":"dash-fu","value":{"rev":"3-848e99a544f9f78f311c7ebfc5a172c4"}},
-{"id":"dashboard","key":"dashboard","value":{"rev":"3-71844d1fc1140b7533f9e57740d2b666"}},
-{"id":"data","key":"data","value":{"rev":"23-b594e2bd1ffef1cda8b7e94dbf15ad5b"}},
-{"id":"data-layer","key":"data-layer","value":{"rev":"9-9205d35cc6eaf1067ee0cec1b421d749"}},
-{"id":"data-page","key":"data-page","value":{"rev":"3-d7a3346a788a0c07132e50585db11c99"}},
-{"id":"data-section","key":"data-section","value":{"rev":"9-d3fff313977667c53cbadb134d993412"}},
-{"id":"data-uuid","key":"data-uuid","value":{"rev":"8-24001fe9f37c4cc7ac01079ee4767363"}},
-{"id":"data-visitor","key":"data-visitor","value":{"rev":"6-7fe5da9d118fab27157dba97050c6487"}},
-{"id":"database-cleaner","key":"database-cleaner","value":{"rev":"19-4bdfc8b324e95e6da9f72e7b7b708b98"}},
-{"id":"datapool","key":"datapool","value":{"rev":"3-f99c93ca812d2f4725bbaea99122832c"}},
-{"id":"datasift","key":"datasift","value":{"rev":"3-6de3ae25c9a99f651101e191595bcf64"}},
-{"id":"date","key":"date","value":{"rev":"9-b334fc6450d093de40a664a4a835cfc4"}},
-{"id":"date-utils","key":"date-utils","value":{"rev":"31-7be8fcf1919564a8fb7223a86a5954ac"}},
-{"id":"dateformat","key":"dateformat","value":{"rev":"11-5b924e1d29056a0ef9b89b9d7984d5c4"}},
-{"id":"dateformatjs","key":"dateformatjs","value":{"rev":"3-4c50a38ecc493535ee2570a838673937"}},
-{"id":"datejs","key":"datejs","value":{"rev":"5-f47e3e6532817f822aa910b59a45717c"}},
-{"id":"dateselect","key":"dateselect","value":{"rev":"3-ce58def02fd8c8feda8c6f2004726f97"}},
-{"id":"datetime","key":"datetime","value":{"rev":"7-14227b0677eb93b8eb519db47f46bf36"}},
-{"id":"db","key":"db","value":{"rev":"3-636e9ea922a85c92bc11aa9691a2e67f"}},
-{"id":"db-drizzle","key":"db-drizzle","value":{"rev":"157-955f74f49ac4236df317e227c08afaa3"}},
-{"id":"db-mysql","key":"db-mysql","value":{"rev":"224-e596a18d9af33ff1fbcf085a9f4f56fd"}},
-{"id":"db-oracle","key":"db-oracle","value":{"rev":"13-a1e2924d87b4badfddeccf6581525b08"}},
-{"id":"dcrypt","key":"dcrypt","value":{"rev":"29-a144a609bef5004781df901440d67b2d"}},
-{"id":"decafscript","key":"decafscript","value":{"rev":"3-f3a239dc7d503c900fc9854603d716e6"}},
-{"id":"decimal","key":"decimal","value":{"rev":"3-614ed56d4d6c5eb7883d8fd215705a12"}},
-{"id":"decimaljson","key":"decimaljson","value":{"rev":"9-7cb23f4b2b1168b1a213f1eefc85fa51"}},
-{"id":"deck","key":"deck","value":{"rev":"7-da422df97f13c7d84e8f3690c1e1ca32"}},
-{"id":"deckard","key":"deckard","value":{"rev":"3-85e0cd76cdd88ff60a617239060d6f46"}},
-{"id":"deckem","key":"deckem","value":{"rev":"9-03ca75ea35960ccd5779b4cfa8cfb9f9"}},
-{"id":"defensio","key":"defensio","value":{"rev":"5-0ad0ae70b4e184626d914cc4005ee34c"}},
-{"id":"defer","key":"defer","value":{"rev":"3-8d003c96f4263a26b7955e251cddbd95"}},
-{"id":"deferrable","key":"deferrable","value":{"rev":"8-3ae57ce4391105962d09ad619d4c4670"}},
-{"id":"deferred","key":"deferred","value":{"rev":"17-9cee7948dbdf7b6dcc00bbdc60041dd0"}},
-{"id":"define","key":"define","value":{"rev":"45-9d422f2ac5ab693f881df85898d68e3a"}},
-{"id":"deflate","key":"deflate","value":{"rev":"10-3ebe2b87e09f4ae51857cae02e1af788"}},
-{"id":"degrees","key":"degrees","value":{"rev":"5-707c57cfa3e589e8059fe9860cc0c10b"}},
-{"id":"deimos","key":"deimos","value":{"rev":"11-6481696be774d14254fe7c427107dc2a"}},
-{"id":"deja","key":"deja","value":{"rev":"47-bde4457402db895aad46198433842668"}},
-{"id":"delayed-stream","key":"delayed-stream","value":{"rev":"13-f6ca393b08582350f78c5c66f183489b"}},
-{"id":"delegator","key":"delegator","value":{"rev":"3-650651749c1df44ef544c919fae74f82"}},
-{"id":"dep-graph","key":"dep-graph","value":{"rev":"3-e404af87822756da52754e2cc5c576b1"}},
-{"id":"dependency-promise","key":"dependency-promise","value":{"rev":"11-1cc2be8465d736ec8f3cc8940ab22823"}},
-{"id":"depends","key":"depends","value":{"rev":"30-adc9604bbd8117592f82eee923d8703e"}},
-{"id":"deploy","key":"deploy","value":{"rev":"3-82020957528bd0bdd675bed9ac4e4cc5"}},
-{"id":"deployjs","key":"deployjs","value":{"rev":"5-a3e99a5ed81d4b1ad44b6477e6a5a985"}},
-{"id":"deputy-client","key":"deputy-client","value":{"rev":"3-31fd224b301ec0f073df7afa790050ec"}},
-{"id":"deputy-server","key":"deputy-server","value":{"rev":"3-0d790cce82aadfd2b8f39a6b056f2792"}},
-{"id":"derby","key":"derby","value":{"rev":"40-b642048a1a639d77ab139160a4da0fd2"}},
-{"id":"des","key":"des","value":{"rev":"24-fcbdc086e657aef356b75433b3e65ab6"}},
-{"id":"descent","key":"descent","value":{"rev":"7-9cc259b25fc688597fc7efaa516d03c6"}},
-{"id":"describe","key":"describe","value":{"rev":"6-788c7f2feaf2e88f4b1179976b273744"}},
-{"id":"deserver","key":"deserver","value":{"rev":"5-da8083694e89b8434123fe7482a3cc7e"}},
-{"id":"detect","key":"detect","value":{"rev":"3-c27f258d39d7905c2b92383809bb5988"}},
-{"id":"detective","key":"detective","value":{"rev":"9-d6cfa0c6389783cdc9c9ffa9e4082c64"}},
-{"id":"dev","key":"dev","value":{"rev":"23-5c2ce4a4f6a4f24d3cff3b7db997d8bc"}},
-{"id":"dev-warnings","key":"dev-warnings","value":{"rev":"5-5a7d7f36d09893df96441be8b09e41d6"}},
-{"id":"dhcpjs","key":"dhcpjs","value":{"rev":"3-1bc01bd612f3ab1fce178c979aa34e43"}},
-{"id":"dht","key":"dht","value":{"rev":"3-40c0b909b6c0e2305e19d10cea1881b0"}},
-{"id":"dht-bencode","key":"dht-bencode","value":{"rev":"5-88a1da8de312a54097507d72a049f0f3"}},
-{"id":"dialect","key":"dialect","value":{"rev":"18-db7928ce4756eea35db1732d4f2ebc88"}},
-{"id":"dialect-http","key":"dialect-http","value":{"rev":"19-23a927d28cb43733dbd05294134a5b8c"}},
-{"id":"dicks","key":"dicks","value":{"rev":"11-ba64897899e336d366ffd4b68cac99f5"}},
-{"id":"diff","key":"diff","value":{"rev":"13-1a88acb0369ab8ae096a2323d65a2811"}},
-{"id":"diff_match_patch","key":"diff_match_patch","value":{"rev":"8-2f6f467e483b23b217a2047e4aded850"}},
-{"id":"diffbot","key":"diffbot","value":{"rev":"3-8cb8e34af89cb477a5da52e3fd9a13f7"}},
-{"id":"digest","key":"digest","value":{"rev":"7-bc6fb9e68c83197381b0d9ac7db16c1c"}},
-{"id":"dir","key":"dir","value":{"rev":"7-574462bb241a39eeffe6c5184d40c57a"}},
-{"id":"dir-watcher","key":"dir-watcher","value":{"rev":"31-1a3ca4d6aa8aa32c619efad5fbfce494"}},
-{"id":"dir2html","key":"dir2html","value":{"rev":"5-b4bfb2916c2d94c85aa75ffa29ad1af4"}},
-{"id":"directive","key":"directive","value":{"rev":"3-3373f02b8762cb1505c8f8cbcc50d3d4"}},
-{"id":"dirsum","key":"dirsum","value":{"rev":"5-8545445faaa41d2225ec7ff226a10750"}},
-{"id":"dirty","key":"dirty","value":{"rev":"13-d636ea0d1ed35560c0bc7272965c1a6f"}},
-{"id":"dirty-uuid","key":"dirty-uuid","value":{"rev":"5-65acdfda886afca65ae52f0ac21ce1b2"}},
-{"id":"discogs","key":"discogs","value":{"rev":"21-839410e6bf3bee1435ff837daaeaf9f8"}},
-{"id":"discount","key":"discount","value":{"rev":"13-a8fb2a8f668ac0a55fffada1ea94a4b7"}},
-{"id":"discovery","key":"discovery","value":{"rev":"3-46f4496224d132e56cbc702df403219d"}},
-{"id":"diskcache","key":"diskcache","value":{"rev":"23-7b14ad41fc199184fb939828e9122099"}},
-{"id":"dispatch","key":"dispatch","value":{"rev":"6-e72cc7b2bcc97faf897ae4e4fa3ec681"}},
-{"id":"distribute.it","key":"distribute.it","value":{"rev":"12-0978757eb25d22117af675806cf6eef2"}},
-{"id":"dive","key":"dive","value":{"rev":"21-9cbd1281c5a3c2dae0cc0407863f3336"}},
-{"id":"diveSync","key":"diveSync","value":{"rev":"3-015ec4803903106bf24cb4f17cedee68"}},
-{"id":"dk-assets","key":"dk-assets","value":{"rev":"3-25d9b6ac727caf1e227e6436af835d03"}},
-{"id":"dk-core","key":"dk-core","value":{"rev":"3-0b6a2f4dfc0484a3908159a897920bae"}},
-{"id":"dk-couchdb","key":"dk-couchdb","value":{"rev":"3-cc9ef511f9ed46be9d7099f10b1ee776"}},
-{"id":"dk-model","key":"dk-model","value":{"rev":"3-3a61006be57d304724c049e4dcf2fc9b"}},
-{"id":"dk-model-couchdb","key":"dk-model-couchdb","value":{"rev":"3-5163def21660db8428e623909bbfcb4d"}},
-{"id":"dk-routes","key":"dk-routes","value":{"rev":"3-4563357f850248d7d0fb37f9bdcb893b"}},
-{"id":"dk-server","key":"dk-server","value":{"rev":"3-9aef13fc5814785c9805b26828e8d114"}},
-{"id":"dk-template","key":"dk-template","value":{"rev":"3-809c94776252441129705fbe1d93e752"}},
-{"id":"dk-transport","key":"dk-transport","value":{"rev":"3-9271da6f86079027535179b743d0d4c3"}},
-{"id":"dk-websockets","key":"dk-websockets","value":{"rev":"3-426b44c04180d6caf7cf765f03fc52c2"}},
-{"id":"dnet-index-proxy","key":"dnet-index-proxy","value":{"rev":"51-1f3cf4f534c154369d5e774a8f599106"}},
-{"id":"dnode","key":"dnode","value":{"rev":"129-68db10c25c23d635dc828aa698d1279e"}},
-{"id":"dnode-ez","key":"dnode-ez","value":{"rev":"17-75877eab5cf3976b8876c49afd2f7e38"}},
-{"id":"dnode-protocol","key":"dnode-protocol","value":{"rev":"23-fb28f8e1180e6aa44fa564e0d55b3d1e"}},
-{"id":"dnode-smoothiecharts","key":"dnode-smoothiecharts","value":{"rev":"3-d1483028e5768527c2786b9ed5d76463"}},
-{"id":"dnode-stack","key":"dnode-stack","value":{"rev":"9-c1ad8ce01282ce4fa72b5993c580e58e"}},
-{"id":"dnode-worker","key":"dnode-worker","value":{"rev":"3-4c73c0d7ed225197fd8fb0555eaf1152"}},
-{"id":"dns-server","key":"dns-server","value":{"rev":"3-4858a1773da514fea68eac6d9d39f69e"}},
-{"id":"dns-srv","key":"dns-srv","value":{"rev":"12-867c769437fa0ad8a83306aa9e2a158e"}},
-{"id":"doc","key":"doc","value":{"rev":"5-2c077b3fd3b6efa4e927b66f1390e4ea"}},
-{"id":"doc.md","key":"doc.md","value":{"rev":"7-8e8e51be4956550388699222b2e039e7"}},
-{"id":"docco","key":"docco","value":{"rev":"18-891bde1584809c3b1f40fef9961b4f28"}},
-{"id":"docdown","key":"docdown","value":{"rev":"5-fcf5be2ab6ceaed76c1980b462359057"}},
-{"id":"docket","key":"docket","value":{"rev":"13-a4969e0fb17af8dba7df178e364161c2"}},
-{"id":"docpad","key":"docpad","value":{"rev":"77-a478ac8c7ac86e304f9213380ea4b550"}},
-{"id":"docs","key":"docs","value":{"rev":"3-6b1fae9738a3327a3a3be826c0981c3a"}},
-{"id":"dojo-node","key":"dojo-node","value":{"rev":"13-e0dc12e9ce8ab3f40b228c2af8c41064"}},
-{"id":"dom","key":"dom","value":{"rev":"3-cecd9285d0d5b1cab0f18350aac1b2b0"}},
-{"id":"dom-js","key":"dom-js","value":{"rev":"8-dd20e8b23028f4541668501650b52a71"}},
-{"id":"dom-js-ns","key":"dom-js-ns","value":{"rev":"3-787567fc1d6f4ca7e853215a4307b593"}},
-{"id":"domjs","key":"domjs","value":{"rev":"3-d2d05a20dccb57fb6db7da08916c6c0f"}},
-{"id":"doml","key":"doml","value":{"rev":"11-c3b49c50906d9875b546413e4acd1b38"}},
-{"id":"domo","key":"domo","value":{"rev":"3-a4321e6c0c688f773068365b44b08b6b"}},
-{"id":"domready","key":"domready","value":{"rev":"46-21c6b137bbed79ddbff31fdf0ef7d61f"}},
-{"id":"donkey","key":"donkey","value":{"rev":"3-1454aa878654886e8495ebb060aa10f7"}},
-{"id":"dot","key":"dot","value":{"rev":"19-b6d2d53cb9ae1a608a0956aeb8092578"}},
-{"id":"dotaccess","key":"dotaccess","value":{"rev":"13-63ddef6740e84f4517f7dd1bb0d68c56"}},
-{"id":"douche","key":"douche","value":{"rev":"3-6a200f908ccfc9ae549e80209e117cbf"}},
-{"id":"dox","key":"dox","value":{"rev":"10-856cc6bf3dc7c44e028173fea8323c24"}},
-{"id":"drag","key":"drag","value":{"rev":"9-00f27e241269c3df1d71e45b698e9b3b"}},
-{"id":"drain","key":"drain","value":{"rev":"3-8827a0ee7ed74b948bf56d5a33455fc8"}},
-{"id":"drawback","key":"drawback","value":{"rev":"74-dd356b3e55175525317e53c24979a431"}},
-{"id":"drev","key":"drev","value":{"rev":"9-43529419a69529dd7af9a83985aab1f2"}},
-{"id":"drews-mixins","key":"drews-mixins","value":{"rev":"17-63373bae6525859bddfc8d6ad19bdb06"}},
-{"id":"drnu","key":"drnu","value":{"rev":"3-b9b14b2241ded1e52a92fc4225b4ddc5"}},
-{"id":"dropbox","key":"dropbox","value":{"rev":"19-2cb7a40d253621fdfa96f23b96e42ecb"}},
-{"id":"drtoms-nodehelpers","key":"drtoms-nodehelpers","value":{"rev":"3-be0a75cdd7c2d49b1ec4ad1d2c3bc911"}},
-{"id":"drty","key":"drty","value":{"rev":"3-56eabd39b9badfa0af601c5cc64cee2c"}},
-{"id":"drty-facebook","key":"drty-facebook","value":{"rev":"3-fd07af7fb87d7f1d35e13f458a02c127"}},
-{"id":"drumkit","key":"drumkit","value":{"rev":"3-f3cdacef51453d3ac630759aff2a8b58"}},
-{"id":"drupal","key":"drupal","value":{"rev":"13-13835b1e1c8a0e8f0b0e8479640a8d7e"}},
-{"id":"dryice","key":"dryice","value":{"rev":"15-9990fdbde5475a8dbdcc055cb08d654d"}},
-{"id":"dryml","key":"dryml","value":{"rev":"33-483ff8cc3ab1431790cc2587c0bce989"}},
-{"id":"ds","key":"ds","value":{"rev":"9-743274a1d0143927851af07ff0f86d8d"}},
-{"id":"dt","key":"dt","value":{"rev":"3-ab59016f28e182c763b78ba49a59191c"}},
-{"id":"dtl","key":"dtl","value":{"rev":"11-415b4aeec93f096523569615e80f1be1"}},
-{"id":"dtrace-provider","key":"dtrace-provider","value":{"rev":"12-7f01510bd2b1d543f11e3dc02d98ab69"}},
-{"id":"dtrejo","key":"dtrejo","value":{"rev":"3-85f5bb2b9faec499e6aa77fe22e6e3ec"}},
-{"id":"dude","key":"dude","value":{"rev":"3-006528c1efd98312991273ba6ee45f7b"}},
-{"id":"dunce","key":"dunce","value":{"rev":"3-fa4fa5cafdfd1d86c650746f60b7bc0e"}},
-{"id":"duostack","key":"duostack","value":{"rev":"15-47824bdf6e32f49f64014e75421dc42e"}},
-{"id":"duplex-stream","key":"duplex-stream","value":{"rev":"3-2d0e12876e7ad4e5d3ea5520dcbad861"}},
-{"id":"durilka","key":"durilka","value":{"rev":"15-54400496515c8625e8bedf19f8a41cad"}},
-{"id":"dust","key":"dust","value":{"rev":"18-9bc9cae2e48c54f4389e9fce5dfc021e"}},
-{"id":"dustfs","key":"dustfs","value":{"rev":"5-944770c24f06989f3fc62427f2ddebc4"}},
-{"id":"dx","key":"dx","value":{"rev":"3-6000afd60be07d9ff91e7231a388f22f"}},
-{"id":"dynamic","key":"dynamic","value":{"rev":"3-33b83464ed56eb33c052a13dfb709c9c"}},
-{"id":"dynobj","key":"dynobj","value":{"rev":"5-3eb168dae1f9c20369fa1d5ae45f9021"}},
-{"id":"each","key":"each","value":{"rev":"3-5063799b0afcbb61378b1d605660a864"}},
-{"id":"ears","key":"ears","value":{"rev":"11-e77cd2b865409be7ba2e072e98b1c8a1"}},
-{"id":"easey","key":"easey","value":{"rev":"3-a380d8d945e03f55732ae8769cd6dbbf"}},
-{"id":"easy","key":"easy","value":{"rev":"3-73b836a34beafa31cdd8129fe158bf6e"}},
-{"id":"easy-oauth","key":"easy-oauth","value":{"rev":"5-2c1db698e61d77f99633042113099528"}},
-{"id":"easyfs","key":"easyfs","value":{"rev":"3-b807671a77c2a8cc27a9f1aa20ff74c0"}},
-{"id":"easyhash","key":"easyhash","value":{"rev":"3-2eeb24098bc4d201766dcc92dc7325f7"}},
-{"id":"easyrss","key":"easyrss","value":{"rev":"9-1687a54348670ef9ca387ea7ec87f0be"}},
-{"id":"ebnf-diagram","key":"ebnf-diagram","value":{"rev":"3-704e4605bf933b281a6821259a531055"}},
-{"id":"ec2","key":"ec2","value":{"rev":"22-25e562ae8898807c7b4c696c809cf387"}},
-{"id":"echo","key":"echo","value":{"rev":"19-75c2421f623ecc9fe2771f3658589ce8"}},
-{"id":"eco","key":"eco","value":{"rev":"14-b4db836928c91cbf22628cc65ca94f56"}},
-{"id":"ed","key":"ed","value":{"rev":"3-bed9b8225e83a02241d48254077a7df4"}},
-{"id":"edate","key":"edate","value":{"rev":"3-5ec1441ffe3b56d5d01561003b9844f2"}},
-{"id":"eden","key":"eden","value":{"rev":"35-9aa2ff880c2d4f45e3da881b15e58d0a"}},
-{"id":"eio","key":"eio","value":{"rev":"5-e6dd895635596d826ccdf4439761d5fa"}},
-{"id":"ejs","key":"ejs","value":{"rev":"30-c7b020b6cb8ee2626f47db21fc5fedb4"}},
-{"id":"ejs-ext","key":"ejs-ext","value":{"rev":"15-820393685191bbed37938acb7af5885e"}},
-{"id":"elastical","key":"elastical","value":{"rev":"3-c652af043bc4256a29a87e3de9b78093"}},
-{"id":"elasticsearchclient","key":"elasticsearchclient","value":{"rev":"33-bcb59deb7d9d56737a6946c56830ae6b"}},
-{"id":"elastiseahclient","key":"elastiseahclient","value":{"rev":"3-c4e525605859e249f04fb07d31739002"}},
-{"id":"elementtree","key":"elementtree","value":{"rev":"3-ef2017fe67ae425253de911c2f219d31"}},
-{"id":"elf-logger","key":"elf-logger","value":{"rev":"6-98d61588cfc171611568cf86004aa2e1"}},
-{"id":"elk","key":"elk","value":{"rev":"25-8b92241d0218c6593a7dc8a8cc69b7ce"}},
-{"id":"elucidata-build-tools","key":"elucidata-build-tools","value":{"rev":"7-0ad3de708aaac2eebfcfce273bfe6edf"}},
-{"id":"email","key":"email","value":{"rev":"16-110ae6a99ab3e37f4edd9357c03d78c2"}},
-{"id":"email-verificationtoken","key":"email-verificationtoken","value":{"rev":"7-ef37672bc6e9ee806ecc22fd5257ae03"}},
-{"id":"emailjs","key":"emailjs","value":{"rev":"31-0dd24f9aba8d96e9493e55e8345f3d21"}},
-{"id":"embedly","key":"embedly","value":{"rev":"21-47838d8015e9b927c56a7bd52c52e4fc"}},
-{"id":"emile","key":"emile","value":{"rev":"11-05d4715964b5bf2e1fd98096cb7ccc83"}},
-{"id":"emit.io","key":"emit.io","value":{"rev":"3-faacb1c30bb92c06a55a44bb027a9475"}},
-{"id":"emre","key":"emre","value":{"rev":"3-5686f4782f1f5171fff83b662ce68802"}},
-{"id":"encrypt","key":"encrypt","value":{"rev":"3-77e2e2007b452f7fcdfa9e8696a188f5"}},
-{"id":"ender","key":"ender","value":{"rev":"95-89b8c6ccfcaf3eb56f5dbe48bf3c2e24"}},
-{"id":"ender-dragdealer","key":"ender-dragdealer","value":{"rev":"9-e12bb3492614f20fe5781f20e3bb17dc"}},
-{"id":"ender-fermata","key":"ender-fermata","value":{"rev":"3-e52d772042852408ae070b361c247068"}},
-{"id":"ender-fittext","key":"ender-fittext","value":{"rev":"5-e46f5a384d790ea6f65a5f8b9e43bac6"}},
-{"id":"ender-flowplayer","key":"ender-flowplayer","value":{"rev":"3-87267072fb566112315254fdf6547500"}},
-{"id":"ender-js","key":"ender-js","value":{"rev":"80-aa18576f782e3aa14c2ba7ba05658a30"}},
-{"id":"ender-json","key":"ender-json","value":{"rev":"3-5606608389aef832e4d4ecaa6c088a94"}},
-{"id":"ender-lettering","key":"ender-lettering","value":{"rev":"3-6fc6ad3869fad6374a1de69ba4e9301d"}},
-{"id":"ender-modules","key":"ender-modules","value":{"rev":"5-2bbb354d6219b5e13e6c897c562b8c83"}},
-{"id":"ender-poke","key":"ender-poke","value":{"rev":"5-3afa2fd690ebc4f2d75125b2c57e2a43"}},
-{"id":"ender-test","key":"ender-test","value":{"rev":"5-f8e90a951e5ad58199e53645067fad0c"}},
-{"id":"ender-tipsy","key":"ender-tipsy","value":{"rev":"5-cefd04c5d89707dfe31023702328d417"}},
-{"id":"ender-tween","key":"ender-tween","value":{"rev":"13-035312bb47bb3d29e7157932d4d29dcb"}},
-{"id":"ender-vows","key":"ender-vows","value":{"rev":"5-d48e088816d71779a80a74c43cd61b80"}},
-{"id":"ender-wallet","key":"ender-wallet","value":{"rev":"21-93723cd24fbf14d0f58f2ee41df9910d"}},
-{"id":"endtable","key":"endtable","value":{"rev":"36-8febf1be0120d867f9ff90e5c5058ef9"}},
-{"id":"enhance-css","key":"enhance-css","value":{"rev":"7-ae1cf6dee7d3116103781edaa7d47ba4"}},
-{"id":"ensure","key":"ensure","value":{"rev":"27-47e0874d1823188965a02a41abb61739"}},
-{"id":"ent","key":"ent","value":{"rev":"9-51924cd76fabcc4a244db66d65d48eff"}},
-{"id":"entropy","key":"entropy","value":{"rev":"17-84bfbbc0689b3b55e4fa3881888f0c12"}},
-{"id":"enumerable","key":"enumerable","value":{"rev":"3-d31bfcaca3b53eacc9ce09983efffe35"}},
-{"id":"envious","key":"envious","value":{"rev":"3-08d1e6d9c25c4e2350a0dd6759a27426"}},
-{"id":"environ","key":"environ","value":{"rev":"5-6f78def4743dfbeb77c1cb62d41eb671"}},
-{"id":"epub","key":"epub","value":{"rev":"3-5c3604eab851bce0a6ac66db6a6ce77a"}},
-{"id":"erlang","key":"erlang","value":{"rev":"3-3bd8e8e8ed416a32567475d984028b65"}},
-{"id":"err","key":"err","value":{"rev":"11-61d11f26b47d29ef819136214830f24c"}},
-{"id":"errbacker","key":"errbacker","value":{"rev":"5-0ad6d62207abb9822118ae69d0b9181d"}},
-{"id":"es5","key":"es5","value":{"rev":"3-5497cb0c821f3e17234c09ab0e67e1de"}},
-{"id":"es5-basic","key":"es5-basic","value":{"rev":"9-2ff708ae54ae223923cb810f799bfb2d"}},
-{"id":"es5-ext","key":"es5-ext","value":{"rev":"21-04537d704412a631596beeba4d534b33"}},
-{"id":"es5-shim","key":"es5-shim","value":{"rev":"34-3c4c40a6dab9ff137d1a7d4349d72c5b"}},
-{"id":"es5-shimify","key":"es5-shimify","value":{"rev":"3-f85700407e9c129d22b45c15700c82f1"}},
-{"id":"esc","key":"esc","value":{"rev":"5-42911775f391330f361105b8a0cefe47"}},
-{"id":"escaperoute","key":"escaperoute","value":{"rev":"18-e1372f35e6dcdb353b8c11e3c7e2f3b4"}},
-{"id":"escort","key":"escort","value":{"rev":"27-bf43341e15d565c9f67dd3300dc57734"}},
-{"id":"escrito","key":"escrito","value":{"rev":"5-c39d5b373486327b2e13670f921a2c7b"}},
-{"id":"esl","key":"esl","value":{"rev":"9-562ff6239a3b9910989bdf04746fa9d1"}},
-{"id":"espresso","key":"espresso","value":{"rev":"75-4c3692f1e92ea841e2d04338f4f2432e"}},
-{"id":"esproxy","key":"esproxy","value":{"rev":"7-be629dc6e1428f0fdb22fdbe7ab2ee99"}},
-{"id":"etch-a-sketch","key":"etch-a-sketch","value":{"rev":"3-a4e23b8e9f298d4844d6bff0a9688e53"}},
-{"id":"etherpad-lite-client","key":"etherpad-lite-client","value":{"rev":"55-58ca439a697db64ee66652da2d327fcb"}},
-{"id":"etsy","key":"etsy","value":{"rev":"5-1b795b360c28261f11c07d849637047c"}},
-{"id":"eve","key":"eve","value":{"rev":"3-16e72b336a1f354f4dfc8fa783fa2e72"}},
-{"id":"event-emitter","key":"event-emitter","value":{"rev":"5-15fe3e2e19b206929b815909737b15ac"}},
-{"id":"event-queue","key":"event-queue","value":{"rev":"12-200cd3bcd8e0b35bc4b15c1d8b6161e2"}},
-{"id":"event-stream","key":"event-stream","value":{"rev":"15-811a6329b5820d998731a604accf83db"}},
-{"id":"eventable","key":"eventable","value":{"rev":"3-08e9cd94a9aae280f406d043039e545e"}},
-{"id":"eventbrite","key":"eventbrite","value":{"rev":"13-cac3c9bda2da1c7b115de04264bb440f"}},
-{"id":"evented","key":"evented","value":{"rev":"6-ade6271c40a19aab6c4e3bb18b0987b6"}},
-{"id":"evented-twitter","key":"evented-twitter","value":{"rev":"6-3ebb7327022d6d6a8c49d684febb236b"}},
-{"id":"eventedsocket","key":"eventedsocket","value":{"rev":"59-cd2158c47b676a58ca3064a42c5274f7"}},
-{"id":"eventemitter","key":"eventemitter","value":{"rev":"5-7766fd7ebc44d52efbd0e7088e2321ec"}},
-{"id":"eventemitter2","key":"eventemitter2","value":{"rev":"41-927ce7996d4056a21f543e1f928f9699"}},
-{"id":"eventful","key":"eventful","value":{"rev":"7-9505f3c621f50addf02a457cfcc8ae78"}},
-{"id":"eventhub","key":"eventhub","value":{"rev":"15-5390d210a4d3ba079dd6e26bda652caa"}},
-{"id":"eventpipe","key":"eventpipe","value":{"rev":"7-41f0f93a9dcea477f08782af28e5b0f1"}},
-{"id":"events","key":"events","value":{"rev":"12-e3ead8eac62799cb299c139687135289"}},
-{"id":"events.io","key":"events.io","value":{"rev":"3-56c6955024cbb1765a1f9f37d8a739a4"}},
-{"id":"events.node","key":"events.node","value":{"rev":"3-e072f9c457fd8a3882ccd41ce52c5d00"}},
-{"id":"eventstream","key":"eventstream","value":{"rev":"5-a578a3a2a62d50631b3fb4d44a058bd1"}},
-{"id":"eventvat","key":"eventvat","value":{"rev":"3-e26d7fe8a226c7bc7f9e55abf1630e9c"}},
-{"id":"everyauth","key":"everyauth","value":{"rev":"107-a621f3028a230f9f3ade6a4e729a9a38"}},
-{"id":"ewdDOM","key":"ewdDOM","value":{"rev":"7-28188ec27fe011bf7fcb330a5fc90b55"}},
-{"id":"ewdGateway","key":"ewdGateway","value":{"rev":"7-81fe5ec1a3e920894b560fbf96160258"}},
-{"id":"exceptional","key":"exceptional","value":{"rev":"5-5842d306b2cf084c4e7c2ecb1d715280"}},
-{"id":"exceptional-node","key":"exceptional-node","value":{"rev":"5-3385b42af0a6ea8a943cb686d5789b0c"}},
-{"id":"executor","key":"executor","value":{"rev":"3-aee4f949a4d140a439965e137200c4fb"}},
-{"id":"exif","key":"exif","value":{"rev":"3-da6fd2bd837633f673b325231c164a0f"}},
-{"id":"expanda","key":"expanda","value":{"rev":"3-dcbc59c5db0017d25748ec8094aeeb0a"}},
-{"id":"express","key":"express","value":{"rev":"157-24ef0cdd4ba6c6697c66f3e78bc777bb"}},
-{"id":"express-aid","key":"express-aid","value":{"rev":"21-6d3831e93b823f800e6a22eb08aa41d6"}},
-{"id":"express-app-bootstrap","key":"express-app-bootstrap","value":{"rev":"3-4b5a256bef5ca3bd41b0958f594907b9"}},
-{"id":"express-asset","key":"express-asset","value":{"rev":"3-7d5e23bc753851c576e429e7901301d9"}},
-{"id":"express-blocks","key":"express-blocks","value":{"rev":"7-305b6e046355c8e7a4bb0f1f225092ef"}},
-{"id":"express-cache","key":"express-cache","value":{"rev":"5-eebbea6c0e5db5fd4c12847933c853e1"}},
-{"id":"express-chromeframe","key":"express-chromeframe","value":{"rev":"5-1bb72d30b7a1f00d3eaf248285942d5e"}},
-{"id":"express-coffee","key":"express-coffee","value":{"rev":"39-14eff195c9352c6c3898befb3d613807"}},
-{"id":"express-config","key":"express-config","value":{"rev":"3-27ea0d27e20afa9ece375878aab846ed"}},
-{"id":"express-configure","key":"express-configure","value":{"rev":"7-46bd636c0b56dfcfa4f1ee46b43d6ca0"}},
-{"id":"express-contrib","key":"express-contrib","value":{"rev":"20-472c93fefe0a9a6440a76b2c843b2e0e"}},
-{"id":"express-controllers","key":"express-controllers","value":{"rev":"3-296d54f3b5bf26bfa057cd8c5f0a11ea"}},
-{"id":"express-controllers-new","key":"express-controllers-new","value":{"rev":"15-11f73e4a8ab935987a3b8f132d80afa5"}},
-{"id":"express-cross-site","key":"express-cross-site","value":{"rev":"11-b76814fdd58a616b3cafe6e97f3c7c98"}},
-{"id":"express-csrf","key":"express-csrf","value":{"rev":"20-2a79f0fdc65ed91120e7417a5cf8ce6c"}},
-{"id":"express-custom-errors","key":"express-custom-errors","value":{"rev":"6-bd131169ccac73fa3766195147e34404"}},
-{"id":"express-dialect","key":"express-dialect","value":{"rev":"34-1fbc5baf7ea464abbadcfaf3c1971660"}},
-{"id":"express-dust","key":"express-dust","value":{"rev":"5-33a1d8dd9c113d6fb8f1818c8a749c1b"}},
-{"id":"express-expose","key":"express-expose","value":{"rev":"7-f8757d8bf8d3fac8395ee8ce5117a895"}},
-{"id":"express-extras","key":"express-extras","value":{"rev":"6-53c7bfc68a41043eb5e11321673a2c48"}},
-{"id":"express-form","key":"express-form","value":{"rev":"27-533598a1bd5a0e9b8d694f5b38228c6c"}},
-{"id":"express-helpers","key":"express-helpers","value":{"rev":"3-7b9123b0ea6b840bb5a6e4da9c28308c"}},
-{"id":"express-livejade","key":"express-livejade","value":{"rev":"9-1320996d4ed3db352a2c853226880a17"}},
-{"id":"express-logger","key":"express-logger","value":{"rev":"5-c485b1020742310a313cac87abdde67b"}},
-{"id":"express-messages","key":"express-messages","value":{"rev":"5-f6225b906d0ac33ba1bfc5409b227edb"}},
-{"id":"express-messages-bootstrap","key":"express-messages-bootstrap","value":{"rev":"5-fb8fc70c1cbd6df0e07b2e0148bdf8bf"}},
-{"id":"express-mongoose","key":"express-mongoose","value":{"rev":"29-2d6907a23c8c3bbfdf9b6f9b6b3c00e3"}},
-{"id":"express-mvc-bootstrap","key":"express-mvc-bootstrap","value":{"rev":"15-c53ecb696af1d34ff94efe5ab5d89287"}},
-{"id":"express-namespace","key":"express-namespace","value":{"rev":"7-d209feb707821b06426aed233295df75"}},
-{"id":"express-on-railway","key":"express-on-railway","value":{"rev":"7-784b533cbf29930d04039bafb2c03cc0"}},
-{"id":"express-params","key":"express-params","value":{"rev":"3-13f0ed9c17d10fd01d1ff869e625c91f"}},
-{"id":"express-resource","key":"express-resource","value":{"rev":"13-cca556327152588a87112c6bf2613bc9"}},
-{"id":"express-rewrite","key":"express-rewrite","value":{"rev":"7-c76ca2616eb6e70209ace6499f5b961a"}},
-{"id":"express-route-util","key":"express-route-util","value":{"rev":"9-4b7bad7e8ab3bf71daf85362b47ec8be"}},
-{"id":"express-rpx","key":"express-rpx","value":{"rev":"9-54d48f5e24174500c73f07d97a7d3f9f"}},
-{"id":"express-session-mongo","key":"express-session-mongo","value":{"rev":"3-850cf5b42f65a6f27af6edf1ad1aa966"}},
-{"id":"express-session-mongo-russp","key":"express-session-mongo-russp","value":{"rev":"7-441e8afcd466a4cbb5e65a1949190f97"}},
-{"id":"express-session-redis","key":"express-session-redis","value":{"rev":"6-5f4f16092a0706d2daef89470d6971e6"}},
-{"id":"express-share","key":"express-share","value":{"rev":"5-f5327a97738e9c8e6e05a51cb7153f82"}},
-{"id":"express-spdy","key":"express-spdy","value":{"rev":"11-2634f388338c45b2d6f020d2a6739ba1"}},
-{"id":"express-template-override","key":"express-template-override","value":{"rev":"5-758cf2eb0c9cbc32f205c4ba2ece24f9"}},
-{"id":"express-trace","key":"express-trace","value":{"rev":"5-ba59571f8881e02e2b297ed9ffb4e48c"}},
-{"id":"express-unstable","key":"express-unstable","value":{"rev":"3-06467336e1610ba9915401df26c936c1"}},
-{"id":"express-validate","key":"express-validate","value":{"rev":"15-b63bd9b18fadfc2345d0a10a7a2fb2e7"}},
-{"id":"express-view-helpers","key":"express-view-helpers","value":{"rev":"7-4d07ba11f81788783c6f9fd48fdf8834"}},
-{"id":"express-with-ease","key":"express-with-ease","value":{"rev":"3-604d9176a4a03f9f7c74679604c7bbf9"}},
-{"id":"express-wormhole","key":"express-wormhole","value":{"rev":"3-7e06cf63b070e0f54b2aa71b48db9a40"}},
-{"id":"expresso","key":"expresso","value":{"rev":"79-a27b6ef2f9e7bb9f85da34f728d124a8"}},
-{"id":"expressobdd","key":"expressobdd","value":{"rev":"5-e8cae7a17a9e8c1779c08abedc674e03"}},
-{"id":"ext","key":"ext","value":{"rev":"6-8790c06324c5f057b1713ba420e8bf27"}},
-{"id":"extend","key":"extend","value":{"rev":"3-934d0de77bbaefb1b52ec18a17f46d7d"}},
-{"id":"extendables","key":"extendables","value":{"rev":"11-e4db9b62a4047e95fb4d7f88e351a14e"}},
-{"id":"extjs-node","key":"extjs-node","value":{"rev":"3-2b2033dbbf0b99d41e876498886b0995"}},
-{"id":"extractcontent","key":"extractcontent","value":{"rev":"6-ad70764c834ecd3414cbc15dbda317c3"}},
-{"id":"extractor","key":"extractor","value":{"rev":"9-f95bde04bb8db37350c9cc95c5578c03"}},
-{"id":"extx-layout","key":"extx-layout","value":{"rev":"3-f6bbc3a923ebce17f62cbf382b096ac7"}},
-{"id":"extx-reference-slot","key":"extx-reference-slot","value":{"rev":"14-b1b92573492f7239144693ee9e1d1aac"}},
-{"id":"extx-shotenjin","key":"extx-shotenjin","value":{"rev":"5-c641121ba57fb960d8db766511ecf6cd"}},
-{"id":"eyes","key":"eyes","value":{"rev":"16-fab6b201646fb12986e396c33a7cd428"}},
-{"id":"f","key":"f","value":{"rev":"3-23b73ffafbe5b56b6a0736db6a7256a6"}},
-{"id":"f-core","key":"f-core","value":{"rev":"3-9a6898e007acf48d956f0a70ff07a273"}},
-{"id":"f7u12rl","key":"f7u12rl","value":{"rev":"3-7b5e15d106db8b7f8784b27f7d2c9bdc"}},
-{"id":"fab","key":"fab","value":{"rev":"10-149dec0b653ce481af013c63fec125e8"}},
-{"id":"fab.accept","key":"fab.accept","value":{"rev":"6-d6b08e7054d823906c6c64c92b008d3a"}},
-{"id":"fab.static","key":"fab.static","value":{"rev":"6-5bdb6db53223bb5203ba91a5b2b87566"}},
-{"id":"fabric","key":"fabric","value":{"rev":"15-30e99e486c58962c049bea54e00b7cb9"}},
-{"id":"face-detect","key":"face-detect","value":{"rev":"3-d4d3f1a894c807f79ba541d2f2ed630d"}},
-{"id":"facebook","key":"facebook","value":{"rev":"17-e241999000e34aed62ee0f9f358bfd06"}},
-{"id":"facebook-api","key":"facebook-api","value":{"rev":"5-cb9d07b2eba18d8fb960768d69f80326"}},
-{"id":"facebook-client","key":"facebook-client","value":{"rev":"17-84c106420b183ca791b0c80fd8c3fe00"}},
-{"id":"facebook-connect","key":"facebook-connect","value":{"rev":"6-471f28bb12928e32610d02c0b03aa972"}},
-{"id":"facebook-express","key":"facebook-express","value":{"rev":"11-6e6d98b8252907b05c41aac7e0418f4e"}},
-{"id":"facebook-graph","key":"facebook-graph","value":{"rev":"9-c92149825fef42ad76bcffdd232cc9a5"}},
-{"id":"facebook-graph-client","key":"facebook-graph-client","value":{"rev":"10-c3136a2b2e5c5d80b78404a4102af7b5"}},
-{"id":"facebook-js","key":"facebook-js","value":{"rev":"22-dd9d916550ebccb71e451acbd7a4b315"}},
-{"id":"facebook-realtime-graph","key":"facebook-realtime-graph","value":{"rev":"6-c4fe01ac036585394cd59f01c6fc7df1"}},
-{"id":"facebook-sdk","key":"facebook-sdk","value":{"rev":"21-77daf7eba51bb913e54381995718e13d"}},
-{"id":"facebook-session-cookie","key":"facebook-session-cookie","value":{"rev":"9-70e14cac759dacadacb0af17387ab230"}},
-{"id":"facebook-signed-request","key":"facebook-signed-request","value":{"rev":"5-11cb36123a94e37fff6a7efd6f7d88b9"}},
-{"id":"facebook.node","key":"facebook.node","value":{"rev":"3-f6760795e71c1d5734ae34f9288d02be"}},
-{"id":"factory-worker","key":"factory-worker","value":{"rev":"7-1c365b3dd92b12573d00c08b090e01ae"}},
-{"id":"fake","key":"fake","value":{"rev":"25-2d1ae2299168d95edb8d115fb7961c8e"}},
-{"id":"fake-queue","key":"fake-queue","value":{"rev":"7-d6970de6141c1345c6ad3cd1586cfe7b"}},
-{"id":"fakedb","key":"fakedb","value":{"rev":"34-889fb5c9fa328b536f9deb138ff125b1"}},
-{"id":"fakeweb","key":"fakeweb","value":{"rev":"3-7fb1394b4bac70f9ab26e60b1864b41f"}},
-{"id":"fanfeedr","key":"fanfeedr","value":{"rev":"22-de3d485ad60c8642eda260afe5620973"}},
-{"id":"fantomex","key":"fantomex","value":{"rev":"3-79b26bcf9aa365485ed8131c474bf6f8"}},
-{"id":"far","key":"far","value":{"rev":"19-c8d9f1e8bc12a31cb27bef3ed44759ce"}},
-{"id":"farm","key":"farm","value":{"rev":"31-ab77f7f48b24bf6f0388b926d2ac370b"}},
-{"id":"fast-detective","key":"fast-detective","value":{"rev":"5-b0b6c8901458f3f07044d4266db0aa52"}},
-{"id":"fast-msgpack-rpc","key":"fast-msgpack-rpc","value":{"rev":"7-b2dfd3d331459382fe1e8166288ffef6"}},
-{"id":"fast-or-slow","key":"fast-or-slow","value":{"rev":"13-4118190cd6a0185af8ea9b381ee2bc98"}},
-{"id":"fast-stats","key":"fast-stats","value":{"rev":"3-15cdd56d9efa38f08ff20ca731867d4d"}},
-{"id":"fastcgi-stream","key":"fastcgi-stream","value":{"rev":"5-99c0c4dfc7a874e1af71e5ef3ac95ba4"}},
-{"id":"faye","key":"faye","value":{"rev":"30-49b7d05534c35527972a4d5e07ac8895"}},
-{"id":"faye-service","key":"faye-service","value":{"rev":"3-bad8bf6722461627eac7d0141e09b3f7"}},
-{"id":"fe-fu","key":"fe-fu","value":{"rev":"21-f3cb04870621ce40da8ffa009686bdeb"}},
-{"id":"feed-tables","key":"feed-tables","value":{"rev":"9-4410bad138f4df570e7be37bb17209b3"}},
-{"id":"feedBum","key":"feedBum","value":{"rev":"3-b4ff9edffb0c5c33c4ed40f60a12611a"}},
-{"id":"feedparser","key":"feedparser","value":{"rev":"5-eb2c32e00832ed7036eb1b87d2eea33e"}},
-{"id":"feral","key":"feral","value":{"rev":"19-0b512b6301a26ca5502710254bd5a9ba"}},
-{"id":"fermata","key":"fermata","value":{"rev":"25-eeafa3e5b769a38b8a1065c0a66e0653"}},
-{"id":"ferret","key":"ferret","value":{"rev":"9-7ab6b29cb0cad9855d927855c2a27bff"}},
-{"id":"ffmpeg-node","key":"ffmpeg-node","value":{"rev":"3-e55011ecb147f599475a12b10724a583"}},
-{"id":"ffmpeg2theora","key":"ffmpeg2theora","value":{"rev":"13-05d2f83dbbb90e832176ebb7fdc2ae2e"}},
-{"id":"fiberize","key":"fiberize","value":{"rev":"5-dfb978d6b88db702f68a13e363fb21af"}},
-{"id":"fibers","key":"fibers","value":{"rev":"71-4b22dbb449839723ed9b0d533339c764"}},
-{"id":"fibers-promise","key":"fibers-promise","value":{"rev":"9-3a9977528f8df079969d4ae48db7a0a7"}},
-{"id":"fidel","key":"fidel","value":{"rev":"37-370838ed9984cfe6807114b5fef789e6"}},
-{"id":"fig","key":"fig","value":{"rev":"7-24acf90e7d06dc8b83adb02b5776de3c"}},
-{"id":"file","key":"file","value":{"rev":"6-1131008db6855f20969413be7cc2e968"}},
-{"id":"file-api","key":"file-api","value":{"rev":"9-a9cc8f3de14eef5bba86a80f6705651c"}},
-{"id":"fileify","key":"fileify","value":{"rev":"17-50603c037d5e3a0a405ff4af3e71211f"}},
-{"id":"filepad","key":"filepad","value":{"rev":"23-8c4b2c04151723033523369c42144cc9"}},
-{"id":"filerepl","key":"filerepl","value":{"rev":"5-94999cc91621e08f96ded7423ed6d6f0"}},
-{"id":"fileset","key":"fileset","value":{"rev":"3-ea6a9f45aaa5e65279463041ee629dbe"}},
-{"id":"filestore","key":"filestore","value":{"rev":"9-6cce7c9cd2b2b11d12905885933ad25a"}},
-{"id":"filesystem-composer","key":"filesystem-composer","value":{"rev":"34-f1d04d711909f3683c1d00cd4ab7ca47"}},
-{"id":"fileutils","key":"fileutils","value":{"rev":"3-88876b61c9d0a915f95ce0f258e5ce51"}},
-{"id":"filter","key":"filter","value":{"rev":"3-4032087a5cf2de3dd164c95454a2ab05"}},
-{"id":"filter-chain","key":"filter-chain","value":{"rev":"5-c522429dc83ccc7dde4eaf5409070332"}},
-{"id":"fin","key":"fin","value":{"rev":"23-77cf12e84eb62958b40aa08fdcbb259d"}},
-{"id":"fin-id","key":"fin-id","value":{"rev":"3-9f85ee1e426d4bdad5904002a6d9342c"}},
-{"id":"finance","key":"finance","value":{"rev":"3-cf97ddb6af3f6601bfb1e49a600f56af"}},
-{"id":"finder","key":"finder","value":{"rev":"13-65767fe51799a397ddd9b348ead12ed2"}},
-{"id":"findit","key":"findit","value":{"rev":"15-435e4168208548a2853f6efcd4529de3"}},
-{"id":"fingerprint","key":"fingerprint","value":{"rev":"3-c40e2169260010cac472e688c392ea3d"}},
-{"id":"finjector","key":"finjector","value":{"rev":"5-646da199b0b336d20e421ef6ad613e90"}},
-{"id":"firebird","key":"firebird","value":{"rev":"5-7e7ec03bc00e562f5f7afc7cad76da77"}},
-{"id":"firmata","key":"firmata","value":{"rev":"20-f3cbde43ce2677a208bcf3599af5b670"}},
-{"id":"first","key":"first","value":{"rev":"3-c647f6fc1353a1c7b49f5e6cd1905b1e"}},
-{"id":"fishback","key":"fishback","value":{"rev":"19-27a0fdc8c3abe4d61fff9c7a098f3fd9"}},
-{"id":"fitbit-js","key":"fitbit-js","value":{"rev":"3-62fe0869ddefd2949d8c1e568f994c93"}},
-{"id":"fix","key":"fix","value":{"rev":"17-4a79db9924922da010df71e5194bcac6"}},
-{"id":"flagpoll","key":"flagpoll","value":{"rev":"3-0eb7b98e2a0061233aa5228eb7348dff"}},
-{"id":"flags","key":"flags","value":{"rev":"3-594f0ec2e903ac74556d1c1f7c6cca3b"}},
-{"id":"flexcache","key":"flexcache","value":{"rev":"11-e1e4eeaa0793d95056a857bec04282ae"}},
-{"id":"flickr-conduit","key":"flickr-conduit","value":{"rev":"7-d3b2b610171589db68809c3ec3bf2bcb"}},
-{"id":"flickr-js","key":"flickr-js","value":{"rev":"5-66c8e8a00ad0a906f632ff99cf490163"}},
-{"id":"flickr-reflection","key":"flickr-reflection","value":{"rev":"6-3c34c3ac904b6d6f26182807fbb95c5e"}},
-{"id":"flo","key":"flo","value":{"rev":"3-ce440035f0ec9a10575b1c8fab0c77da"}},
-{"id":"flow","key":"flow","value":{"rev":"6-95841a07c96f664d49d1af35373b3dbc"}},
-{"id":"flowcontrol","key":"flowcontrol","value":{"rev":"3-093bbbc7496072d9ecb136a826680366"}},
-{"id":"flowjs","key":"flowjs","value":{"rev":"3-403fc9e107ec70fe06236c27e70451c7"}},
-{"id":"fluent-ffmpeg","key":"fluent-ffmpeg","value":{"rev":"33-5982779d5f55a5915f0f8b0353f1fe2a"}},
-{"id":"flume-rpc","key":"flume-rpc","value":{"rev":"7-4214a2db407a3e64f036facbdd34df91"}},
-{"id":"flux","key":"flux","value":{"rev":"3-1ad83106af7ee83547c797246bd2c8b1"}},
-{"id":"fly","key":"fly","value":{"rev":"9-0a45b1b97f56ba0faf4af4777b473fad"}},
-{"id":"fn","key":"fn","value":{"rev":"5-110bab5d623b3628e413d972e040ed26"}},
-{"id":"fnProxy","key":"fnProxy","value":{"rev":"3-db1c90e5a06992ed290c679ac6dbff6a"}},
-{"id":"follow","key":"follow","value":{"rev":"3-44256c802b4576fcbae1264e9b824e6a"}},
-{"id":"fomatto","key":"fomatto","value":{"rev":"7-31ce5c9eba7f084ccab2dc5994796f2d"}},
-{"id":"foounit","key":"foounit","value":{"rev":"20-caf9cd90d6c94d19be0b3a9c9cb33ee0"}},
-{"id":"forEachAsync","key":"forEachAsync","value":{"rev":"3-d9cd8021ea9d5014583327752a9d01c4"}},
-{"id":"forever","key":"forever","value":{"rev":"99-90060d5d1754b1bf749e5278a2a4516b"}},
-{"id":"forge","key":"forge","value":{"rev":"9-0d9d59fd2d47a804e600aaef538ebbbf"}},
-{"id":"fork","key":"fork","value":{"rev":"13-f355105e07608de5ae2f3e7c0817af52"}},
-{"id":"forker","key":"forker","value":{"rev":"11-9717e2e3fa60b46df08261d936d9e5d7"}},
-{"id":"form-data","key":"form-data","value":{"rev":"3-5750e73f7a0902ec2fafee1db6d2e6f6"}},
-{"id":"form-validator","key":"form-validator","value":{"rev":"25-7d016b35895dc58ffd0bbe54fd9be241"}},
-{"id":"form2json","key":"form2json","value":{"rev":"8-7501dd9b43b9fbb7194b94e647816e5e"}},
-{"id":"formaline","key":"formaline","value":{"rev":"3-2d45fbb3e83b7e77bde0456607e6f1e3"}},
-{"id":"format","key":"format","value":{"rev":"7-5dddc67c10de521ef06a7a07bb3f7e2e"}},
-{"id":"formatdate","key":"formatdate","value":{"rev":"3-6d522e3196fe3b438fcc4aed0f7cf690"}},
-{"id":"formidable","key":"formidable","value":{"rev":"87-d27408b00793fee36f6632a895372590"}},
-{"id":"forms","key":"forms","value":{"rev":"6-253e032f07979b79c2e7dfa01be085dc"}},
-{"id":"forrst","key":"forrst","value":{"rev":"3-ef553ff1b6383bab0f81f062cdebac53"}},
-{"id":"fortumo","key":"fortumo","value":{"rev":"6-def3d146b29b6104019c513ce20bb61f"}},
-{"id":"foss-credits","key":"foss-credits","value":{"rev":"3-c824326e289e093406b2de4efef70cb7"}},
-{"id":"foss-credits-collection","key":"foss-credits-collection","value":{"rev":"17-de4ffca51768a36c8fb1b9c2bc66c80f"}},
-{"id":"foursquareonnode","key":"foursquareonnode","value":{"rev":"5-a4f0a1ed5d3be3056f10f0e9517efa83"}},
-{"id":"fraggle","key":"fraggle","value":{"rev":"7-b9383baf96bcdbd4022b4b887e4a3729"}},
-{"id":"framework","key":"framework","value":{"rev":"3-afb19a9598a0d50320b4f1faab1ae2c6"}},
-{"id":"frameworkjs","key":"frameworkjs","value":{"rev":"7-cd418da3272c1e8349126e442ed15dbd"}},
-{"id":"frank","key":"frank","value":{"rev":"12-98031fb56f1c89dfc7888f5d8ca7f0a9"}},
-{"id":"freakset","key":"freakset","value":{"rev":"21-ba60d0840bfa3da2c8713c3c2e6856a0"}},
-{"id":"freckle","key":"freckle","value":{"rev":"3-8e2e9a07b2650fbbd0a598b948ef993b"}},
-{"id":"freebase","key":"freebase","value":{"rev":"7-a1daf1cc2259b886f574f5c902eebcf4"}},
-{"id":"freecontrol","key":"freecontrol","value":{"rev":"6-7a51776b8764f406573d5192bab36adf"}},
-{"id":"freestyle","key":"freestyle","value":{"rev":"9-100f9e9d3504d6e1c6a2d47651c70f51"}},
-{"id":"frenchpress","key":"frenchpress","value":{"rev":"9-306d6ac21837879b8040d7f9aa69fc20"}},
-{"id":"fs-boot","key":"fs-boot","value":{"rev":"20-72b44b403767aa486bf1dc987c750733"}},
-{"id":"fs-ext","key":"fs-ext","value":{"rev":"10-3360831c3852590a762f8f82525c025e"}},
-{"id":"fsevents","key":"fsevents","value":{"rev":"6-bb994f41842e144cf43249fdf6bf51e1"}},
-{"id":"fsext","key":"fsext","value":{"rev":"9-a1507d84e91ddf26ffaa76016253b4fe"}},
-{"id":"fsh","key":"fsh","value":{"rev":"5-1e3784b2df1c1a28b81f27907945f48b"}},
-{"id":"fsm","key":"fsm","value":{"rev":"5-b113be7b30b2a2c9089edcb6fa4c15d3"}},
-{"id":"fswatch","key":"fswatch","value":{"rev":"11-287eea565c9562161eb8969d765bb191"}},
-{"id":"ftp","key":"ftp","value":{"rev":"5-751e312520c29e76f7d79c648248c56c"}},
-{"id":"ftp-get","key":"ftp-get","value":{"rev":"27-1e908bd075a0743dbb1d30eff06485e2"}},
-{"id":"fugue","key":"fugue","value":{"rev":"81-0c08e67e8deb4b5b677fe19f8362dbd8"}},
-{"id":"fullauto","key":"fullauto","value":{"rev":"9-ef915156026dabded5a4a76c5a751916"}},
-{"id":"fun","key":"fun","value":{"rev":"12-8396e3583e206dbf90bbea4316976f66"}},
-{"id":"functional","key":"functional","value":{"rev":"5-955979028270f5d3749bdf86b4d2c925"}},
-{"id":"functools","key":"functools","value":{"rev":"5-42ba84ce365bf8c0aaf3e5e6c369920b"}},
-{"id":"funk","key":"funk","value":{"rev":"14-67440a9b2118d8f44358bf3b17590243"}},
-{"id":"fusion","key":"fusion","value":{"rev":"19-64983fc6e5496c836be26e5fbc8527d1"}},
-{"id":"fusker","key":"fusker","value":{"rev":"48-58f05561c65ad288a78fa7210f146ba1"}},
-{"id":"future","key":"future","value":{"rev":"3-0ca60d8ae330e40ef6cf8c17a421d668"}},
-{"id":"futures","key":"futures","value":{"rev":"44-8a2aaf0f40cf84c9475824d9cec006ad"}},
-{"id":"fuzzy_file_finder","key":"fuzzy_file_finder","value":{"rev":"8-ee555aae1d433e60166d2af1d72ac6b9"}},
-{"id":"fuzzylogic","key":"fuzzylogic","value":{"rev":"8-596a8f4744d1dabcb8eb6466d9980fca"}},
-{"id":"fxs","key":"fxs","value":{"rev":"3-d3cb81151b0ddd9a4a5934fb63ffff75"}},
-{"id":"g","key":"g","value":{"rev":"3-55742a045425a9b4c9fe0e8925fad048"}},
-{"id":"g.raphael","key":"g.raphael","value":{"rev":"4-190d0235dc08f783dda77b3ecb60b11a"}},
-{"id":"ga","key":"ga","value":{"rev":"3-c47d516ac5e6de8ef7ef9d16fabcf6c7"}},
-{"id":"galletita","key":"galletita","value":{"rev":"3-aa7a01c3362a01794f36e7aa9664b850"}},
-{"id":"game","key":"game","value":{"rev":"3-0f1539e4717a2780205d98ef6ec0886d"}},
-{"id":"gamina","key":"gamina","value":{"rev":"15-871f4970f1e87b7c8ad361456001c76f"}},
-{"id":"gang-bang","key":"gang-bang","value":{"rev":"6-f565cb7027a8ca109481df49a6d41114"}},
-{"id":"gapserver","key":"gapserver","value":{"rev":"9-b25eb0eefc21e407cba596a0946cb3a0"}},
-{"id":"garbage","key":"garbage","value":{"rev":"3-80f4097d5f1f2c75f509430a11c8a15e"}},
-{"id":"gaseous","key":"gaseous","value":{"rev":"3-8021582ab9dde42d235193e6067be72d"}},
-{"id":"gaudium","key":"gaudium","value":{"rev":"11-7d612f1c5d921180ccf1c162fe2c7446"}},
-{"id":"gauss","key":"gauss","value":{"rev":"3-8fd18b2d7a223372f190797e4270a535"}},
-{"id":"gcli","key":"gcli","value":{"rev":"3-210404347cc643e924cec678d0195099"}},
-{"id":"gcw2html","key":"gcw2html","value":{"rev":"3-2aff7bff7981f2f9800c5f65812aa0a6"}},
-{"id":"gd","key":"gd","value":{"rev":"4-ac5a662e709a2993ed1fd1cbf7c4d7b4"}},
-{"id":"gdata","key":"gdata","value":{"rev":"3-c6b3a95064a1e1e0bb74f248ab4e73c4"}},
-{"id":"gdata-js","key":"gdata-js","value":{"rev":"17-0959500a4000d7058d8116af1e01b0d9"}},
-{"id":"gearman","key":"gearman","value":{"rev":"8-ac9fb7af75421ca2988d6098dbfd4c7c"}},
-{"id":"gearnode","key":"gearnode","value":{"rev":"7-8e40ec257984e887e2ff5948a6dde04e"}},
-{"id":"geck","key":"geck","value":{"rev":"161-c8117106ef58a6d7d21920df80159eab"}},
-{"id":"geddy","key":"geddy","value":{"rev":"13-da16f903aca1ec1f47086fa250b58abb"}},
-{"id":"gen","key":"gen","value":{"rev":"3-849005c8b8294c2a811ff4eccdedf436"}},
-{"id":"generic-function","key":"generic-function","value":{"rev":"5-dc046f58f96119225efb17ea5334a60f"}},
-{"id":"generic-pool","key":"generic-pool","value":{"rev":"18-65ff988620293fe7ffbd0891745c3ded"}},
-{"id":"genji","key":"genji","value":{"rev":"49-4c72bcaa57572ad0d43a1b7e9e5a963a"}},
-{"id":"genstatic","key":"genstatic","value":{"rev":"19-4278d0766226af4db924bb0f6b127699"}},
-{"id":"gently","key":"gently","value":{"rev":"24-c9a3ba6b6fd183ee1b5dda569122e978"}},
-{"id":"genx","key":"genx","value":{"rev":"7-f0c0ff65e08e045e8dd1bfcb25ca48d4"}},
-{"id":"geo","key":"geo","value":{"rev":"7-fa2a79f7260b849c277735503a8622e9"}},
-{"id":"geo-distance","key":"geo-distance","value":{"rev":"7-819a30e9b4776e4416fe9510ca79cd93"}},
-{"id":"geocoder","key":"geocoder","value":{"rev":"15-736e627571ad8dba3a9d0da1ae019c35"}},
-{"id":"geohash","key":"geohash","value":{"rev":"6-b9e62c804abe565425a8e6a01354407a"}},
-{"id":"geoip","key":"geoip","value":{"rev":"231-e5aa7acd5fb44833a67f96476b4fac49"}},
-{"id":"geoip-lite","key":"geoip-lite","value":{"rev":"9-efd916135c056406ede1ad0fe15534fa"}},
-{"id":"geojs","key":"geojs","value":{"rev":"35-b0f97b7c72397d6eb714602dc1121183"}},
-{"id":"geolib","key":"geolib","value":{"rev":"3-923a8622d1bd97c22f71ed6537ba5062"}},
-{"id":"geonode","key":"geonode","value":{"rev":"35-c2060653af72123f2f9994fca1c86d70"}},
-{"id":"geoutils","key":"geoutils","value":{"rev":"6-2df101fcbb01849533b2fbc80dc0eb7a"}},
-{"id":"gerbil","key":"gerbil","value":{"rev":"3-b5961044bda490a34085ca826aeb3022"}},
-{"id":"gerenuk","key":"gerenuk","value":{"rev":"13-4e45a640bcbadc3112e105ec5b60b907"}},
-{"id":"get","key":"get","value":{"rev":"18-dd215d673f19bbd8b321a7dd63e004e8"}},
-{"id":"getopt","key":"getopt","value":{"rev":"3-454354e4557d5e7205410acc95c9baae"}},
-{"id":"getrusage","key":"getrusage","value":{"rev":"8-d6ef24793b8e4c46f3cdd14937cbabe1"}},
-{"id":"gettext","key":"gettext","value":{"rev":"3-4c12268a4cab64ec4ef3ac8c9ec7912b"}},
-{"id":"getz","key":"getz","value":{"rev":"9-f3f43934139c9af6ddfb8b91e9a121ba"}},
-{"id":"gevorg.me","key":"gevorg.me","value":{"rev":"33-700502b8ca7041bf8d29368069cac365"}},
-{"id":"gex","key":"gex","value":{"rev":"3-105824d7a3f9c2ac7313f284c3f81d22"}},
-{"id":"gexode","key":"gexode","value":{"rev":"3-4a3552eae4ff3ba4443f9371a1ab4b2e"}},
-{"id":"gfx","key":"gfx","value":{"rev":"8-1f6c90bc3819c3b237e8d1f28ad1b136"}},
-{"id":"gherkin","key":"gherkin","value":{"rev":"77-6e835c8107bb4c7c8ad1fa072ac12c20"}},
-{"id":"ghm","key":"ghm","value":{"rev":"3-c440ae39832a575087ff1920b33c275b"}},
-{"id":"gif","key":"gif","value":{"rev":"14-e65638621d05b99ffe71b18097f29134"}},
-{"id":"gimme","key":"gimme","value":{"rev":"7-caab8354fe257fc307f8597e34ede547"}},
-{"id":"gist","key":"gist","value":{"rev":"11-eea7ea1adf3cde3a0804d2e1b0d6f7d6"}},
-{"id":"gista","key":"gista","value":{"rev":"23-48b8c374cfb8fc4e8310f3469cead6d5"}},
-{"id":"gisty","key":"gisty","value":{"rev":"5-1a898d0816f4129ab9a0d3f03ff9feb4"}},
-{"id":"git","key":"git","value":{"rev":"39-1f77df3ebeec9aae47ae8df56de6757f"}},
-{"id":"git-fs","key":"git-fs","value":{"rev":"14-7d365cddff5029a9d11fa8778a7296d2"}},
-{"id":"gitProvider","key":"gitProvider","value":{"rev":"9-c704ae702ef27bb57c0efd279a464e28"}},
-{"id":"github","key":"github","value":{"rev":"16-9345138ca7507c12be4a817b1abfeef6"}},
-{"id":"github-flavored-markdown","key":"github-flavored-markdown","value":{"rev":"3-f12043eb2969aff51db742b13d329446"}},
-{"id":"gitteh","key":"gitteh","value":{"rev":"39-88b00491fd4ce3294b8cdf61b9708383"}},
-{"id":"gitter","key":"gitter","value":{"rev":"16-88d7ef1ab6a7e751ca2cf6b50894deb4"}},
-{"id":"gittyup","key":"gittyup","value":{"rev":"37-ed6030c1acdd8b989ac34cd10d6dfd1e"}},
-{"id":"gitweb","key":"gitweb","value":{"rev":"9-5331e94c6df9ee7724cde3738a0c6230"}},
-{"id":"gitwiki","key":"gitwiki","value":{"rev":"9-0f167a3a87bce7f3e941136a06e91810"}},
-{"id":"gizmo","key":"gizmo","value":{"rev":"5-1da4da8d66690457c0bf743473b755f6"}},
-{"id":"gleak","key":"gleak","value":{"rev":"17-d44a968b32e4fdc7d27bacb146391422"}},
-{"id":"glob","key":"glob","value":{"rev":"203-4a79e232cf6684a48ccb9134a6ce938c"}},
-{"id":"glob-trie.js","key":"glob-trie.js","value":{"rev":"7-bff534e3aba8f6333fa5ea871b070de2"}},
-{"id":"global","key":"global","value":{"rev":"3-f15b0c9ae0ea9508890bff25c8e0f795"}},
-{"id":"globalize","key":"globalize","value":{"rev":"5-33d10c33fb24af273104f66098e246c4"}},
-{"id":"glossary","key":"glossary","value":{"rev":"3-5e143d09d22a01eb2ee742ceb3e18f6e"}},
-{"id":"glossy","key":"glossy","value":{"rev":"9-f31e00844e8be49e5812fe64a6f1e1cc"}},
-{"id":"gm","key":"gm","value":{"rev":"28-669722d34a3dc29c8c0b27abd73493a1"}},
-{"id":"gnarly","key":"gnarly","value":{"rev":"3-796f5df3483f304cb404cc7ac7702512"}},
-{"id":"gnomenotify","key":"gnomenotify","value":{"rev":"9-bc066c0556ad4a20e7a7ae58cdc4cf91"}},
-{"id":"gofer","key":"gofer","value":{"rev":"15-3fc77ce34e95ffecd12d3854a1bb2da9"}},
-{"id":"goo.gl","key":"goo.gl","value":{"rev":"37-eac7c44d33cc42c618372f0bdd4365c2"}},
-{"id":"goodreads","key":"goodreads","value":{"rev":"5-acd9fe24139aa8b81b26431dce9954aa"}},
-{"id":"goog","key":"goog","value":{"rev":"13-c964ecfcef4d20c8c7d7526323257c04"}},
-{"id":"googl","key":"googl","value":{"rev":"8-2d4d80ef0c5f93400ec2ec8ef80de433"}},
-{"id":"google-openid","key":"google-openid","value":{"rev":"19-380884ba97e3d6fc48c8c7db3dc0e91b"}},
-{"id":"google-spreadsheets","key":"google-spreadsheets","value":{"rev":"3-f640ef136c4b5e90210c2d5d43102b38"}},
-{"id":"google-voice","key":"google-voice","value":{"rev":"37-2e1c3cba3455852f26b0ccaf1fed7125"}},
-{"id":"googleanalytics","key":"googleanalytics","value":{"rev":"8-1d3e470ce4aacadb0418dd125887813d"}},
-{"id":"googleclientlogin","key":"googleclientlogin","value":{"rev":"23-5de8ee62c0ddbc63a001a36a6afe730e"}},
-{"id":"googlediff","key":"googlediff","value":{"rev":"3-438a2f0758e9770a157ae4cce9b6f49e"}},
-{"id":"googlemaps","key":"googlemaps","value":{"rev":"18-bc939560c587711f3d96f3caadd65a7f"}},
-{"id":"googleplus-scraper","key":"googleplus-scraper","value":{"rev":"7-598ea99bd64f4ad69cccb74095abae59"}},
-{"id":"googlereaderauth","key":"googlereaderauth","value":{"rev":"5-cd0eb8ca36ea78620af0fce270339a7b"}},
-{"id":"googlesets","key":"googlesets","value":{"rev":"5-1b2e597e903c080182b3306d63278fd9"}},
-{"id":"googleweather","key":"googleweather","value":{"rev":"3-6bfdaaeedb8a712ee3e89a8ed27508eb"}},
-{"id":"gopostal.node","key":"gopostal.node","value":{"rev":"3-14ff3a655dc3680c9e8e2751ebe294bc"}},
-{"id":"gowallan","key":"gowallan","value":{"rev":"3-23adc9c01a6b309eada47602fdc8ed90"}},
-{"id":"gowiththeflow","key":"gowiththeflow","value":{"rev":"3-52bb6cf6294f67ba5a892db4666d3790"}},
-{"id":"gpg","key":"gpg","value":{"rev":"5-0ca2b5af23e108a4f44f367992a75fed"}},
-{"id":"graceful-fs","key":"graceful-fs","value":{"rev":"3-01e9f7d1c0f6e6a611a60ee84de1f5cc"}},
-{"id":"gracie","key":"gracie","value":{"rev":"3-aa0f7c01a33c7c1e9a49b86886ef5255"}},
-{"id":"graff","key":"graff","value":{"rev":"7-5ab558cb24e30abd67f2a1dbf47cd639"}},
-{"id":"graft","key":"graft","value":{"rev":"3-7419de38b249b891bf7998bcdd2bf557"}},
-{"id":"grain","key":"grain","value":{"rev":"3-e57cbf02121970da230964ddbfd31432"}},
-{"id":"grainstore","key":"grainstore","value":{"rev":"19-5f9c5bb13b2c9ac4e6a05aec33aeb7c5"}},
-{"id":"graph","key":"graph","value":{"rev":"7-909d2fefcc84b5dd1512b60d631ea4e5"}},
-{"id":"graphquire","key":"graphquire","value":{"rev":"27-246e798f80b3310419644302405d68ad"}},
-{"id":"graphviz","key":"graphviz","value":{"rev":"8-3b79341eaf3f67f91bce7c88c08b9f0d"}},
-{"id":"grasshopper","key":"grasshopper","value":{"rev":"45-4002406990476b74dac5108bd19c4274"}},
-{"id":"gravatar","key":"gravatar","value":{"rev":"11-0164b7ac97e8a477b4e8791eae2e7fea"}},
-{"id":"grave","key":"grave","value":{"rev":"3-136f6378b956bc5dd9773250f8813038"}},
-{"id":"gravity","key":"gravity","value":{"rev":"5-dd40fcee1a769ce786337e9536d24244"}},
-{"id":"graylog","key":"graylog","value":{"rev":"5-abcff9cd91ff20e36f8a70a3f2de658b"}},
-{"id":"greg","key":"greg","value":{"rev":"5-ececb0a3bb552b6da4f66b8bf6f75cf0"}},
-{"id":"gridcentric","key":"gridcentric","value":{"rev":"4-4378e1c280e18b5aaabd23038b80d76c"}},
-{"id":"gridly","key":"gridly","value":{"rev":"3-86e878756b493da8f66cbd633a15f821"}},
-{"id":"grinder","key":"grinder","value":{"rev":"9-0aaeecf0c81b1c9c93a924c5eb0bff45"}},
-{"id":"grir.am","key":"grir.am","value":{"rev":"3-3ec153c764af1c26b50fefa437318c5a"}},
-{"id":"groundcrew","key":"groundcrew","value":{"rev":"3-9e9ed9b1c70c00c432f36bb853fa21a0"}},
-{"id":"groupie","key":"groupie","value":{"rev":"6-b5e3f0891a7e8811d6112b24bd5a46b4"}},
-{"id":"groupon","key":"groupon","value":{"rev":"21-8b74723c153695f4ed4917575abcca8f"}},
-{"id":"growing-file","key":"growing-file","value":{"rev":"7-995b233a1add5b9ea80aec7ac3f60dc5"}},
-{"id":"growl","key":"growl","value":{"rev":"10-4be41ae10ec96e1334dccdcdced12fe3"}},
-{"id":"gsl","key":"gsl","value":{"rev":"49-3367acfb521b30d3ddb9b80305009553"}},
-{"id":"gss","key":"gss","value":{"rev":"3-e4cffbbbc4536d952d13d46376d899b7"}},
-{"id":"guards","key":"guards","value":{"rev":"8-d7318d3d9dc842ab41e6ef5b88f9d37f"}},
-{"id":"guardtime","key":"guardtime","value":{"rev":"3-5a2942efabab100ffb3dc0fa3b581b7a"}},
-{"id":"guava","key":"guava","value":{"rev":"11-d9390d298b503f0ffb8e3ba92eeb9759"}},
-{"id":"guid","key":"guid","value":{"rev":"16-d99e725bbbf97a326833858767b7ed08"}},
-{"id":"gumbo","key":"gumbo","value":{"rev":"31-727cf5a3b7d8590fff871f27da114d9d"}},
-{"id":"gunther","key":"gunther","value":{"rev":"9-f95c89128412208d16acd3e615844115"}},
-{"id":"gzbz2","key":"gzbz2","value":{"rev":"3-e1844b1b3a7881a0c8dc0dd4edcc11ca"}},
-{"id":"gzip","key":"gzip","value":{"rev":"17-37afa05944f055d6f43ddc87c1b163c2"}},
-{"id":"gzip-stack","key":"gzip-stack","value":{"rev":"8-cf455d60277832c60ee622d198c0c51a"}},
-{"id":"gzippo","key":"gzippo","value":{"rev":"15-6416c13ecbbe1c5cd3e30adf4112ead7"}},
-{"id":"h5eb","key":"h5eb","value":{"rev":"3-11ed2566fa4b8a01ff63a720c94574cd"}},
-{"id":"hack","key":"hack","value":{"rev":"3-70f536dd46719e8201a6ac5cc96231f6"}},
-{"id":"hack.io","key":"hack.io","value":{"rev":"18-128305614e7fd6b461248bf3bfdd7ab7"}},
-{"id":"hacktor","key":"hacktor","value":{"rev":"3-51b438df35ba8a955d434ab25a4dad67"}},
-{"id":"haibu","key":"haibu","value":{"rev":"99-b29b8c37be42f90985c6d433d53c8679"}},
-{"id":"haibu-carapace","key":"haibu-carapace","value":{"rev":"22-9a89b2f495e533d0f93e4ee34121e48c"}},
-{"id":"haibu-nginx","key":"haibu-nginx","value":{"rev":"7-e176128dc6dbb0d7f5f33369edf1f7ee"}},
-{"id":"halfstreamxml","key":"halfstreamxml","value":{"rev":"7-5c0f3defa6ba921f8edb564584553df4"}},
-{"id":"ham","key":"ham","value":{"rev":"3-1500dc495cade7334f6a051f2758f748"}},
-{"id":"haml","key":"haml","value":{"rev":"15-a93e7762c7d43469a06519472497fd93"}},
-{"id":"haml-edge","key":"haml-edge","value":{"rev":"5-c4e44a73263ac9b7e632375de7e43d7c"}},
-{"id":"hamljs","key":"hamljs","value":{"rev":"10-a01c7214b69992352bde44938418ebf4"}},
-{"id":"hamljs-coffee","key":"hamljs-coffee","value":{"rev":"3-c2733c8ff38f5676075b84cd7f3d8684"}},
-{"id":"handlebars","key":"handlebars","value":{"rev":"4-0e21906b78605f7a1d5ec7cb4c7d35d7"}},
-{"id":"hanging-gardens","key":"hanging-gardens","value":{"rev":"27-3244e37f08bea0e31759e9f38983f59a"}},
-{"id":"hanging_gardens_registry","key":"hanging_gardens_registry","value":{"rev":"17-d87aa3a26f91dc314f02c686672a5ec6"}},
-{"id":"hapi","key":"hapi","value":{"rev":"3-ed721fe9aae4a459fe0945dabd7d680a"}},
-{"id":"harmony","key":"harmony","value":{"rev":"3-d6c9d6acc29d29c97c75c77f7c8e1390"}},
-{"id":"hascan","key":"hascan","value":{"rev":"13-a7ab15c72f464b013cbc55dc426543ca"}},
-{"id":"hash_ring","key":"hash_ring","value":{"rev":"12-0f072b1dd1fd93ae2f2b79f5ea72074d"}},
-{"id":"hashbangify","key":"hashbangify","value":{"rev":"5-738e0cf99649d41c19d3449c0e9a1cbf"}},
-{"id":"hashish","key":"hashish","value":{"rev":"9-62c5e74355458e1ead819d87151b7d38"}},
-{"id":"hashkeys","key":"hashkeys","value":{"rev":"3-490809bdb61f930f0d9f370eaadf36ea"}},
-{"id":"hashlib","key":"hashlib","value":{"rev":"7-1f19c9d6062ff22ed2e963204a1bd405"}},
-{"id":"hashring","key":"hashring","value":{"rev":"11-4c9f2b1ba7931c8bab310f4ecaf91419"}},
-{"id":"hashtable","key":"hashtable","value":{"rev":"7-2aaf2667cbdb74eb8da61e2e138059ca"}},
-{"id":"hat","key":"hat","value":{"rev":"9-6f37874d9703eab62dc875e2373837a8"}},
-{"id":"hbase","key":"hbase","value":{"rev":"20-7ca92712de26ffb18d275a21696aa263"}},
-{"id":"hbase-thrift","key":"hbase-thrift","value":{"rev":"7-39afb33a4e61cc2b3dc94f0c7fd32c65"}},
-{"id":"hbs","key":"hbs","value":{"rev":"29-aa2676e6790c5716f84f128dcd03e797"}},
-{"id":"header-stack","key":"header-stack","value":{"rev":"13-7ad1ccf3c454d77029c000ceb18ce5ab"}},
-{"id":"headers","key":"headers","value":{"rev":"13-04f8f5f25e2dd9890f6b2f120adf297a"}},
-{"id":"healthety","key":"healthety","value":{"rev":"60-07c67c22ee2a13d0ad675739d1814a6d"}},
-{"id":"heatmap","key":"heatmap","value":{"rev":"9-c53f4656d9517f184df7aea9226c1765"}},
-{"id":"heavy-flow","key":"heavy-flow","value":{"rev":"5-0b9188334339e7372b364a7fc730c639"}},
-{"id":"heckle","key":"heckle","value":{"rev":"13-b462abef7b9d1471ed8fb8f23af463e0"}},
-{"id":"helium","key":"helium","value":{"rev":"3-4d6ce9618c1be522268944240873f53e"}},
-{"id":"hello-world","key":"hello-world","value":{"rev":"3-e87f287308a209491c011064a87100b7"}},
-{"id":"hello.io","key":"hello.io","value":{"rev":"3-39b78278fa638495522edc7a84f6a52e"}},
-{"id":"helloworld","key":"helloworld","value":{"rev":"3-8f163aebdcf7d8761709bdbb634c3689"}},
-{"id":"helpers","key":"helpers","value":{"rev":"3-67d75b1c8e5ad2a268dd4ea191d4754b"}},
-{"id":"helpful","key":"helpful","value":{"rev":"41-e11bed25d5a0ca7e7ad116d5a339ec2a"}},
-{"id":"hem","key":"hem","value":{"rev":"27-042fc9d4b96f20112cd943e019e54d20"}},
-{"id":"hempwick","key":"hempwick","value":{"rev":"11-de1f6f0f23937d9f33286e12ee877540"}},
-{"id":"heritable","key":"heritable","value":{"rev":"13-1468ff92063251a037bbe80ee987a9c3"}},
-{"id":"hermes-raw-client","key":"hermes-raw-client","value":{"rev":"11-5d143c371cb8353612badc72be1917ff"}},
-{"id":"heru","key":"heru","value":{"rev":"3-d124a20939e30e2a3c08f7104b2a1a5c"}},
-{"id":"hexdump","key":"hexdump","value":{"rev":"3-c455710ca80662969ccbca3acc081cb8"}},
-{"id":"hexy","key":"hexy","value":{"rev":"16-5142b0461622436daa2e476d252770f2"}},
-{"id":"highlight","key":"highlight","value":{"rev":"9-4b172b7aef6f40d768f022b2ba4e6748"}},
-{"id":"highlight.js","key":"highlight.js","value":{"rev":"5-16c1ebd28d5f2e781e666c6ee013c30c"}},
-{"id":"hiker","key":"hiker","value":{"rev":"9-89d1ce978b349f1f0df262655299d83c"}},
-{"id":"hipchat","key":"hipchat","value":{"rev":"3-73118782367d474af0f6410290df5f7f"}},
-{"id":"hipchat-js","key":"hipchat-js","value":{"rev":"3-253b83875d3e18e9c89333bc377183c3"}},
-{"id":"hiredis","key":"hiredis","value":{"rev":"46-29ceb03860efbd4b3b995247f27f78b9"}},
-{"id":"hive","key":"hive","value":{"rev":"15-40a4c6fcfa3b80007a18ef4ede80075b"}},
-{"id":"hive-cache","key":"hive-cache","value":{"rev":"3-36b10607b68586fccbfeb856412bd6bf"}},
-{"id":"hoard","key":"hoard","value":{"rev":"13-75d4c484095e2e38ac63a65bd9fd7f4b"}},
-{"id":"hook","key":"hook","value":{"rev":"7-2f1e375058e2b1fa61d3651f6d57a6f8"}},
-{"id":"hook.io","key":"hook.io","value":{"rev":"63-9fac4fb8337d1953963d47144f806f72"}},
-{"id":"hook.io-browser","key":"hook.io-browser","value":{"rev":"3-7e04347d80adc03eb5637b7e4b8ca58b"}},
-{"id":"hook.io-couch","key":"hook.io-couch","value":{"rev":"3-ce0eb281d1ba21aa1caca3a52553a07b"}},
-{"id":"hook.io-cron","key":"hook.io-cron","value":{"rev":"15-50deedc2051ce65bca8a42048154139c"}},
-{"id":"hook.io-helloworld","key":"hook.io-helloworld","value":{"rev":"23-ef5cf0cec9045d28d846a7b0872874e4"}},
-{"id":"hook.io-irc","key":"hook.io-irc","value":{"rev":"5-39c7ac5e192aef34b87af791fa77ee04"}},
-{"id":"hook.io-logger","key":"hook.io-logger","value":{"rev":"13-9e3208ea8eacfe5378cd791f2377d06d"}},
-{"id":"hook.io-mailer","key":"hook.io-mailer","value":{"rev":"9-d9415d53dc086102024cf7400fdfb7a2"}},
-{"id":"hook.io-pinger","key":"hook.io-pinger","value":{"rev":"17-860ab3a892284b91999f86c3882e2ff5"}},
-{"id":"hook.io-repl","key":"hook.io-repl","value":{"rev":"13-c0d430ccdfd197e4746c46d2814b6d92"}},
-{"id":"hook.io-request","key":"hook.io-request","value":{"rev":"13-f0e8d167d59917d90266f921e3ef7c64"}},
-{"id":"hook.io-sitemonitor","key":"hook.io-sitemonitor","value":{"rev":"8-725ea7deb9cb1031eabdc4fd798308ff"}},
-{"id":"hook.io-twilio","key":"hook.io-twilio","value":{"rev":"11-6b2e231307f6174861aa5dcddad264b3"}},
-{"id":"hook.io-twitter","key":"hook.io-twitter","value":{"rev":"3-59296395b22e661e7e5c141c4c7be46d"}},
-{"id":"hook.io-webhook","key":"hook.io-webhook","value":{"rev":"15-b27e51b63c8ec70616c66061d949f388"}},
-{"id":"hook.io-webserver","key":"hook.io-webserver","value":{"rev":"29-eb6bff70736648427329eba08b5f55c3"}},
-{"id":"hook.io-ws","key":"hook.io-ws","value":{"rev":"4-a85578068b54560ef663a7ecfea2731f"}},
-{"id":"hooks","key":"hooks","value":{"rev":"33-6640fb0c27903af6b6ae7b7c41d79e01"}},
-{"id":"hoptoad-notifier","key":"hoptoad-notifier","value":{"rev":"16-8249cb753a3626f2bf2664024ae7a5ee"}},
-{"id":"horaa","key":"horaa","value":{"rev":"5-099e5d6486d10944e10b584eb3f6e924"}},
-{"id":"hornet","key":"hornet","value":{"rev":"22-8c40d7ba4ca832b951e6d5db165f3305"}},
-{"id":"horseman","key":"horseman","value":{"rev":"11-7228e0f84c2036669a218710c22f72c0"}},
-{"id":"hostify","key":"hostify","value":{"rev":"11-8c1a2e73f8b9474a6c26121688c28dc7"}},
-{"id":"hostinfo","key":"hostinfo","value":{"rev":"5-c8d638f40ccf94f4083430966d25e787"}},
-{"id":"hostip","key":"hostip","value":{"rev":"3-d4fd628b94e1f913d97ec1746d96f2a0"}},
-{"id":"hostname","key":"hostname","value":{"rev":"7-55fefb3c37990bbcad3d98684d17f38f"}},
-{"id":"hotnode","key":"hotnode","value":{"rev":"16-d7dad5de3ffc2ca6a04f74686aeb0e4b"}},
-{"id":"howmuchtime","key":"howmuchtime","value":{"rev":"3-351ce870ae6e2c21a798169d074e2a3f"}},
-{"id":"hstore","key":"hstore","value":{"rev":"3-55ab4d359c2fc8725829038e3adb7571"}},
-{"id":"hsume2-socket.io","key":"hsume2-socket.io","value":{"rev":"5-4b537247ae9999c285c802cc36457598"}},
-{"id":"htdoc","key":"htdoc","value":{"rev":"3-80ef9e3202b0d96b79435a2bc90bc899"}},
-{"id":"html","key":"html","value":{"rev":"3-92c4af7de329c92ff2e0be5c13020e78"}},
-{"id":"html-minifier","key":"html-minifier","value":{"rev":"7-2441ed004e2a6e7f1c42003ec03277ec"}},
-{"id":"html-sourcery","key":"html-sourcery","value":{"rev":"11-7ce1d4aa2e1d319fa108b02fb294d4ce"}},
-{"id":"html2coffeekup","key":"html2coffeekup","value":{"rev":"13-bae4a70411f6f549c281c69835fe3276"}},
-{"id":"html2coffeekup-bal","key":"html2coffeekup-bal","value":{"rev":"5-0663ac1339d72932004130b668c949f0"}},
-{"id":"html2jade","key":"html2jade","value":{"rev":"11-e50f504c5c847d7ffcde7328c2ade4fb"}},
-{"id":"html5","key":"html5","value":{"rev":"46-ca85ea99accaf1dc9ded4e2e3aa429c6"}},
-{"id":"html5edit","key":"html5edit","value":{"rev":"10-0383296c33ada4d356740f29121eeb9f"}},
-{"id":"htmlKompressor","key":"htmlKompressor","value":{"rev":"13-95a3afe7f7cfe02e089e41588b937fb1"}},
-{"id":"htmlkup","key":"htmlkup","value":{"rev":"27-5b0115636f38886ae0a40e5f52e2bfdd"}},
-{"id":"htmlparser","key":"htmlparser","value":{"rev":"14-52b2196c1456d821d47bb1d2779b2433"}},
-{"id":"htmlparser2","key":"htmlparser2","value":{"rev":"3-9bc0b807acd913999dfc949b3160a3db"}},
-{"id":"htracr","key":"htracr","value":{"rev":"27-384d0522328e625978b97d8eae8d942d"}},
-{"id":"http","key":"http","value":{"rev":"3-f197d1b599cb9da720d3dd58d9813ace"}},
-{"id":"http-agent","key":"http-agent","value":{"rev":"10-1715dd3a7adccf55bd6637d78bd345d1"}},
-{"id":"http-auth","key":"http-auth","value":{"rev":"3-21636d4430be18a5c6c42e5cb622c2e0"}},
-{"id":"http-basic-auth","key":"http-basic-auth","value":{"rev":"6-0a77e99ce8e31558d5917bd684fa2c9a"}},
-{"id":"http-browserify","key":"http-browserify","value":{"rev":"3-4f720b4af628ed8b5fb22839c1f91f4d"}},
-{"id":"http-console","key":"http-console","value":{"rev":"43-a20cbefed77bcae7de461922286a1f04"}},
-{"id":"http-digest","key":"http-digest","value":{"rev":"6-e0164885dcad21ab6150d537af0edd92"}},
-{"id":"http-digest-auth","key":"http-digest-auth","value":{"rev":"7-613ac841b808fd04e272e050fd5a45ac"}},
-{"id":"http-get","key":"http-get","value":{"rev":"39-b7cfeb2b572d4ecf695493e0886869f4"}},
-{"id":"http-load","key":"http-load","value":{"rev":"3-8c64f4972ff59e89fee041adde99b8ba"}},
-{"id":"http-proxy","key":"http-proxy","value":{"rev":"97-5b8af88886c8c047a9862bf62f6b9294"}},
-{"id":"http-proxy-backward","key":"http-proxy-backward","value":{"rev":"2-4433b04a41e8adade3f6b6b2b939df4b"}},
-{"id":"http-proxy-glimpse","key":"http-proxy-glimpse","value":{"rev":"3-a3e9791d4d9bfef5929ca55d874df18b"}},
-{"id":"http-proxy-no-line-184-error","key":"http-proxy-no-line-184-error","value":{"rev":"3-7e20a990820976d8c6d27c312cc5a67c"}},
-{"id":"http-proxy-selective","key":"http-proxy-selective","value":{"rev":"12-6e273fcd008afeceb6737345c46e1024"}},
-{"id":"http-recorder","key":"http-recorder","value":{"rev":"3-26dd0bc4f5c0bf922db1875e995d025f"}},
-{"id":"http-request-provider","key":"http-request-provider","value":{"rev":"6-436b69971dd1735ac3e41571375f2d15"}},
-{"id":"http-server","key":"http-server","value":{"rev":"21-1b80b6558692afd08c36629b0ecdc18c"}},
-{"id":"http-signature","key":"http-signature","value":{"rev":"9-49ca63427b535f2d18182d92427bc5b6"}},
-{"id":"http-stack","key":"http-stack","value":{"rev":"9-51614060741d6c85a7fd4c714ed1a9b2"}},
-{"id":"http-status","key":"http-status","value":{"rev":"5-1ec72fecc62a41d6f180d15c95e81270"}},
-{"id":"http_compat","key":"http_compat","value":{"rev":"3-88244d4b0fd08a3140fa1b2e8b1b152c"}},
-{"id":"http_router","key":"http_router","value":{"rev":"23-ad52b58b6bfc96d6d4e8215e0c31b294"}},
-{"id":"http_trace","key":"http_trace","value":{"rev":"7-d8024b5e41540e4240120ffefae523e4"}},
-{"id":"httpd","key":"httpd","value":{"rev":"3-9e2a19f007a6a487cdb752f4b8249657"}},
-{"id":"httpmock","key":"httpmock","value":{"rev":"3-b6966ba8ee2c31b0e7729fc59bb00ccf"}},
-{"id":"https-proxied","key":"https-proxied","value":{"rev":"5-f63a4c663d372502b0dcd4997e759e66"}},
-{"id":"httpu","key":"httpu","value":{"rev":"5-88a5b2bac8391d91673fc83d4cfd32df"}},
-{"id":"hungarian-magic","key":"hungarian-magic","value":{"rev":"4-9eae750ac6f30b6687d9a031353f5217"}},
-{"id":"huntergatherer","key":"huntergatherer","value":{"rev":"9-5c9d833a134cfaa901d89dce93f5b013"}},
-{"id":"hxp","key":"hxp","value":{"rev":"8-1f52ba766491826bdc6517c6cc508b2c"}},
-{"id":"hyde","key":"hyde","value":{"rev":"3-5763db65cab423404752b1a6354a7a6c"}},
-{"id":"hydra","key":"hydra","value":{"rev":"8-8bb4ed249fe0f9cdb8b11e492b646b88"}},
-{"id":"hyperpublic","key":"hyperpublic","value":{"rev":"11-5738162f3dbf95803dcb3fb28efd8740"}},
-{"id":"i18n","key":"i18n","value":{"rev":"7-f0d6b3c72ecd34dde02d805041eca996"}},
-{"id":"ical","key":"ical","value":{"rev":"13-baf448be48ab83ec9b3fb8bf83fbb9a1"}},
-{"id":"icalendar","key":"icalendar","value":{"rev":"5-78dd8fd8ed2c219ec56ad26a0727cf76"}},
-{"id":"icecap","key":"icecap","value":{"rev":"9-88d6865078a5e6e1ff998e2e73e593f3"}},
-{"id":"icecapdjs","key":"icecapdjs","value":{"rev":"11-d8e3c718a230d49caa3b5f76cfff7ce9"}},
-{"id":"icecast-stack","key":"icecast-stack","value":{"rev":"9-13b8da6ae373152ab0c8560e2f442af0"}},
-{"id":"ichabod","key":"ichabod","value":{"rev":"19-d0f02ffba80661398ceb80a7e0cbbfe6"}},
-{"id":"icing","key":"icing","value":{"rev":"11-84815e78828190fbaa52d6b93c75cb4f"}},
-{"id":"ico","key":"ico","value":{"rev":"3-5727a35c1df453bfdfa6a03e49725adf"}},
-{"id":"iconv","key":"iconv","value":{"rev":"18-5f5b3193268f1fa099e0112b3e033ffc"}},
-{"id":"iconv-jp","key":"iconv-jp","value":{"rev":"3-660b8f2def930263d2931cae2dcc401d"}},
-{"id":"id3","key":"id3","value":{"rev":"8-afe68aede872cae7b404aaa01c0108a5"}},
-{"id":"idea","key":"idea","value":{"rev":"9-a126c0e52206c51dcf972cf53af0bc32"}},
-{"id":"idiomatic-console","key":"idiomatic-console","value":{"rev":"25-67696c16bf79d1cc8caf4df62677c3ec"}},
-{"id":"idiomatic-stdio","key":"idiomatic-stdio","value":{"rev":"15-9d74c9a8872b1f7c41d6c671d7a14b7d"}},
-{"id":"iglob","key":"iglob","value":{"rev":"6-b8a3518cb67cad20c89f37892a2346a5"}},
-{"id":"ignite","key":"ignite","value":{"rev":"19-06daa730a70f69dc3a0d6d4984905c61"}},
-{"id":"iles-forked-irc-js","key":"iles-forked-irc-js","value":{"rev":"7-eb446f4e0db856e00351a5da2fa20616"}},
-{"id":"image","key":"image","value":{"rev":"8-5f7811db33c210eb38e1880f7cc433f2"}},
-{"id":"imageable","key":"imageable","value":{"rev":"61-9f7e03d3d990d34802f1e9c8019dbbfa"}},
-{"id":"imageinfo","key":"imageinfo","value":{"rev":"11-9bde1a1f0801d94539a4b70b61614849"}},
-{"id":"imagemagick","key":"imagemagick","value":{"rev":"10-b1a1ea405940fecf487da94b733e8c29"}},
-{"id":"imagick","key":"imagick","value":{"rev":"3-21d51d8a265a705881dadbc0c9f7c016"}},
-{"id":"imap","key":"imap","value":{"rev":"13-6a59045496c80b474652d2584edd4acb"}},
-{"id":"imbot","key":"imbot","value":{"rev":"11-0d8075eff5e5ec354683f396378fd101"}},
-{"id":"imdb","key":"imdb","value":{"rev":"7-2bba884d0e8804f4a7e0883abd47b0a7"}},
-{"id":"imgur","key":"imgur","value":{"rev":"3-30c0e5fddc1be3398ba5f7eee1a251d7"}},
-{"id":"impact","key":"impact","value":{"rev":"7-d3390690f11c6f9dcca9f240a7bedfef"}},
-{"id":"imsi","key":"imsi","value":{"rev":"3-0aa9a01c9c79b17afae3684b7b920ced"}},
-{"id":"index","key":"index","value":{"rev":"13-ad5d8d7dfad64512a12db4d820229c07"}},
-{"id":"indexer","key":"indexer","value":{"rev":"9-b0173ce9ad9fa1b80037fa8e33a8ce12"}},
-{"id":"inflect","key":"inflect","value":{"rev":"17-9e5ea2826fe08bd950cf7e22d73371bd"}},
-{"id":"inflectjs","key":"inflectjs","value":{"rev":"3-c59db027b72be720899b4a280ac2518f"}},
-{"id":"inflector","key":"inflector","value":{"rev":"3-191ff29d3b5ed8ef6877032a1d01d864"}},
-{"id":"inheritance","key":"inheritance","value":{"rev":"3-450a1e68bd2d8f16abe7001491abb6a8"}},
-{"id":"inherits","key":"inherits","value":{"rev":"3-284f97a7ae4f777bfabe721b66de07fa"}},
-{"id":"ini","key":"ini","value":{"rev":"5-142c8f9125fbace57689e2837deb1883"}},
-{"id":"iniparser","key":"iniparser","value":{"rev":"14-1053c59ef3d50a46356be45576885c49"}},
-{"id":"inireader","key":"inireader","value":{"rev":"15-9cdc485b18bff6397f5fec45befda402"}},
-{"id":"init","key":"init","value":{"rev":"5-b81610ad72864417dab49f7a3f29cc9f"}},
-{"id":"inject","key":"inject","value":{"rev":"5-82bddb6b4f21ddaa0137fedc8913d60e"}},
-{"id":"inliner","key":"inliner","value":{"rev":"45-8a1c3e8f78438f06865b3237d6c5339a"}},
-{"id":"inode","key":"inode","value":{"rev":"7-118ffafc62dcef5bbeb14e4328c68ab3"}},
-{"id":"inotify","key":"inotify","value":{"rev":"18-03d7b1a318bd283e0185b414b48dd602"}},
-{"id":"inotify-plusplus","key":"inotify-plusplus","value":{"rev":"10-0e0ce9065a62e5e21ee5bb53fac61a6d"}},
-{"id":"inspect","key":"inspect","value":{"rev":"5-b5f18717e29caec3399abe5e4ce7a269"}},
-{"id":"instagram","key":"instagram","value":{"rev":"5-decddf3737a1764518b6a7ce600d720d"}},
-{"id":"instagram-node-lib","key":"instagram-node-lib","value":{"rev":"13-8be77f1180b6afd9066834b3f5ee8de5"}},
-{"id":"instant-styleguide","key":"instant-styleguide","value":{"rev":"9-66c02118993621376ad0b7396db435b3"}},
-{"id":"intercept","key":"intercept","value":{"rev":"9-f5622744c576405516a427b4636ee864"}},
-{"id":"interface","key":"interface","value":{"rev":"10-13806252722402bd18d88533056a863b"}},
-{"id":"interleave","key":"interleave","value":{"rev":"25-69bc136937604863748a029fb88e3605"}},
-{"id":"interstate","key":"interstate","value":{"rev":"3-3bb4a6c35ca765f88a10b9fab6307c59"}},
-{"id":"intervals","key":"intervals","value":{"rev":"21-89b71bd55b8d5f6b670d69fc5b9f847f"}},
-{"id":"intestine","key":"intestine","value":{"rev":"3-66a5531e06865ed9c966d95437ba1371"}},
-{"id":"ios7crypt","key":"ios7crypt","value":{"rev":"7-a2d309a2c074e5c1c456e2b56cbcfd17"}},
-{"id":"iostat","key":"iostat","value":{"rev":"11-f0849c0072e76701b435aa769a614e82"}},
-{"id":"ip2cc","key":"ip2cc","value":{"rev":"9-2c282606fd08d469184a272a2108639c"}},
-{"id":"ipaddr.js","key":"ipaddr.js","value":{"rev":"5-1017fd5342840745614701476ed7e6c4"}},
-{"id":"iptables","key":"iptables","value":{"rev":"7-23e56ef5d7bf0ee8f5bd0e38bde8aae3"}},
-{"id":"iptrie","key":"iptrie","value":{"rev":"4-10317b0e073befe9601e9dc308dc361a"}},
-{"id":"ipv6","key":"ipv6","value":{"rev":"6-85e937f3d79e44dbb76264c7aaaa140f"}},
-{"id":"iqengines","key":"iqengines","value":{"rev":"3-8bdbd32e9dc35b77d80a31edae235178"}},
-{"id":"irc","key":"irc","value":{"rev":"8-ed30964f57b99b1b2f2104cc5e269618"}},
-{"id":"irc-colors","key":"irc-colors","value":{"rev":"9-7ddb19db9a553567aae86bd97f1dcdfc"}},
-{"id":"irc-js","key":"irc-js","value":{"rev":"58-1c898cea420aee60283edb4fadceb90e"}},
-{"id":"ircat.js","key":"ircat.js","value":{"rev":"6-f25f20953ce96697c033315d250615d0"}},
-{"id":"ircbot","key":"ircbot","value":{"rev":"9-85a4a6f88836fc031855736676b10dec"}},
-{"id":"irccd","key":"irccd","value":{"rev":"3-bf598ae8b6af63be41852ae8199416f4"}},
-{"id":"ircd","key":"ircd","value":{"rev":"7-3ba7fc2183d32ee1e58e63092d7e82bb"}},
-{"id":"ircdjs","key":"ircdjs","value":{"rev":"15-8fcdff2bf29cf24c3bbc4b461e6cbe9f"}},
-{"id":"irclog","key":"irclog","value":{"rev":"3-79a99bd8048dd98a93c747a1426aabde"}},
-{"id":"ircrpc","key":"ircrpc","value":{"rev":"5-278bec6fc5519fdbd152ea4fa35dc58c"}},
-{"id":"irrklang","key":"irrklang","value":{"rev":"3-65936dfabf7777027069343c2e72b32e"}},
-{"id":"isaacs","key":"isaacs","value":{"rev":"7-c55a41054056f502bc580bc6819d9d1f"}},
-{"id":"isbn","key":"isbn","value":{"rev":"3-51e784ded2e3ec9ef9b382fecd1c26a1"}},
-{"id":"iscroll","key":"iscroll","value":{"rev":"4-4f6635793806507665503605e7c180f0"}},
-{"id":"isodate","key":"isodate","value":{"rev":"7-ea4b1f77e9557b153264f68fd18a9f23"}},
-{"id":"it-is","key":"it-is","value":{"rev":"14-7617f5831c308d1c4ef914bc5dc30fa7"}},
-{"id":"iterator","key":"iterator","value":{"rev":"3-e6f70367a55cabbb89589f2a88be9ab0"}},
-{"id":"itunes","key":"itunes","value":{"rev":"7-47d151c372d70d0bc311141749c84d5a"}},
-{"id":"iws","key":"iws","value":{"rev":"3-dc7b4d18565b79d3e14aa691e5e632f4"}},
-{"id":"jQuery","key":"jQuery","value":{"rev":"29-f913933259b4ec5f4c5ea63466a4bb08"}},
-{"id":"jWorkflow","key":"jWorkflow","value":{"rev":"7-582cd7aa62085ec807117138b6439550"}},
-{"id":"jaCodeMap","key":"jaCodeMap","value":{"rev":"7-28efcbf4146977bdf1e594e0982ec097"}},
-{"id":"jaaulde-cookies","key":"jaaulde-cookies","value":{"rev":"3-d5b5a75f9cabbebb2804f0b4ae93d0c5"}},
-{"id":"jacker","key":"jacker","value":{"rev":"3-888174c7e3e2a5d241f2844257cf1b10"}},
-{"id":"jade","key":"jade","value":{"rev":"144-318a9d9f63906dc3da1ef7c1ee6420b5"}},
-{"id":"jade-browser","key":"jade-browser","value":{"rev":"9-0ae6b9e321cf04e3ca8fbfe0e38f4d9e"}},
-{"id":"jade-client-connect","key":"jade-client-connect","value":{"rev":"5-96dbafafa31187dd7f829af54432de8e"}},
-{"id":"jade-ext","key":"jade-ext","value":{"rev":"9-aac9a58a4e07d82bc496bcc4241d1be0"}},
-{"id":"jade-i18n","key":"jade-i18n","value":{"rev":"23-76a21a41b5376e10c083672dccf7fc62"}},
-{"id":"jade-serial","key":"jade-serial","value":{"rev":"3-5ec712e1d8cd8d5af20ae3e62ee92854"}},
-{"id":"jadedown","key":"jadedown","value":{"rev":"11-0d16ce847d6afac2939eebcb24a7216c"}},
-{"id":"jadeify","key":"jadeify","value":{"rev":"17-4322b68bb5a7e81e839edabbc8c405a4"}},
-{"id":"jadevu","key":"jadevu","value":{"rev":"15-1fd8557a6db3c23f267de76835f9ee65"}},
-{"id":"jah","key":"jah","value":{"rev":"3-f29704037a1cffe2b08abb4283bee4a4"}},
-{"id":"jake","key":"jake","value":{"rev":"36-5cb64b1c5a89ac53eb4d09d66a5b10e1"}},
-{"id":"jammit-express","key":"jammit-express","value":{"rev":"6-e3dfa928114a2721fe9b8882d284f759"}},
-{"id":"janrain","key":"janrain","value":{"rev":"5-9554501be76fb3a472076858d1abbcd5"}},
-{"id":"janrain-api","key":"janrain-api","value":{"rev":"3-f45a65c695f4c72fdd1bf3593d8aa796"}},
-{"id":"jaque","key":"jaque","value":{"rev":"32-7f269a70c67beefc53ba1684bff5a57b"}},
-{"id":"jar","key":"jar","value":{"rev":"3-7fe0ab4aa3a2ccc5d50853f118e7aeb5"}},
-{"id":"jarvis","key":"jarvis","value":{"rev":"3-fb203b29b397a0b12c1ae56240624e3d"}},
-{"id":"jarvis-test","key":"jarvis-test","value":{"rev":"5-9537ddae8291e6dad03bc0e6acc9ac80"}},
-{"id":"jasbin","key":"jasbin","value":{"rev":"25-ae22f276406ac8bb4293d78595ce02ad"}},
-{"id":"jasmine-dom","key":"jasmine-dom","value":{"rev":"17-686de4c573f507c30ff72c6671dc3d93"}},
-{"id":"jasmine-jquery","key":"jasmine-jquery","value":{"rev":"7-86c077497a367bcd9ea96d5ab8137394"}},
-{"id":"jasmine-node","key":"jasmine-node","value":{"rev":"27-4c544c41c69d2b3cb60b9953d1c46d54"}},
-{"id":"jasmine-reporters","key":"jasmine-reporters","value":{"rev":"3-21ba522ae38402848d5a66d3d4d9a2b3"}},
-{"id":"jasmine-runner","key":"jasmine-runner","value":{"rev":"23-7458777b7a6785efc878cfd40ccb99d8"}},
-{"id":"jasminy","key":"jasminy","value":{"rev":"3-ce76023bac40c5f690cba59d430fd083"}},
-{"id":"jason","key":"jason","value":{"rev":"15-394a59963c579ed5db37fada4d082b5c"}},
-{"id":"javiary","key":"javiary","value":{"rev":"5-661be61fd0f47c9609b7d148e298e2fc"}},
-{"id":"jazz","key":"jazz","value":{"rev":"12-d11d602c1240b134b0593425911242fc"}},
-{"id":"jdoc","key":"jdoc","value":{"rev":"3-0c61fdd6b367a9acac710e553927b290"}},
-{"id":"jeesh","key":"jeesh","value":{"rev":"13-23b4e1ecf9ca76685bf7f1bfc6c076f1"}},
-{"id":"jellyfish","key":"jellyfish","value":{"rev":"25-7fef81f9b5ef5d4abbcecb030a433a72"}},
-{"id":"jen","key":"jen","value":{"rev":"3-ab1b07453318b7e0254e1dadbee7868f"}},
-{"id":"jerk","key":"jerk","value":{"rev":"34-e31f26d5e3b700d0a3e5f5a5acf0d381"}},
-{"id":"jessie","key":"jessie","value":{"rev":"19-829b932e57204f3b7833b34f75d6bf2a"}},
-{"id":"jezebel","key":"jezebel","value":{"rev":"15-b67c259e160390064da69a512382e06f"}},
-{"id":"jimi","key":"jimi","value":{"rev":"10-cc4a8325d6b847362a422304a0057231"}},
-{"id":"jinjs","key":"jinjs","value":{"rev":"37-38fcf1989f1b251a35e4ff725118f55e"}},
-{"id":"jinkies","key":"jinkies","value":{"rev":"30-73fec0e854aa31bcbf3ae1ca04462b22"}},
-{"id":"jison","key":"jison","value":{"rev":"52-d03c6f5e2bdd7624d39d93ec5e88c383"}},
-{"id":"jitsu","key":"jitsu","value":{"rev":"164-95083f8275f0bf2834f62027569b4da2"}},
-{"id":"jitter","key":"jitter","value":{"rev":"16-3f7b183aa7922615f4b5b2fb46653477"}},
-{"id":"jj","key":"jj","value":{"rev":"21-1b3f97e9725e1241c96a884c85dc4e30"}},
-{"id":"jjw","key":"jjw","value":{"rev":"13-835c632dfc5df7dd37860bd0b2c1cb38"}},
-{"id":"jkwery","key":"jkwery","value":{"rev":"11-212429c9c9e1872d4e278da055b5ae0a"}},
-{"id":"jmen","key":"jmen","value":{"rev":"3-a0b67d5b84a077061d3fed2ddbf2c6a8"}},
-{"id":"jobmanager","key":"jobmanager","value":{"rev":"15-1a589ede5f10d1ea2f33f1bb91f9b3aa"}},
-{"id":"jobs","key":"jobs","value":{"rev":"12-3072b6164c5dca8fa9d24021719048ff"}},
-{"id":"jobvite","key":"jobvite","value":{"rev":"56-3d69b0e6d91722ef4908b4fe26bb5432"}},
-{"id":"jodoc","key":"jodoc","value":{"rev":"3-7b05c6d7b4c9a9fa85d3348948d2d52d"}},
-{"id":"johnny-mnemonic","key":"johnny-mnemonic","value":{"rev":"3-e8749d4be597f002aae720011b7c9273"}},
-{"id":"join","key":"join","value":{"rev":"5-ab92491dc83b5e8ed5f0cc49e306d5d5"}},
-{"id":"jolokia-client","key":"jolokia-client","value":{"rev":"26-1f93cb53f4a870b94540cdbf7627b1c4"}},
-{"id":"joo","key":"joo","value":{"rev":"11-e0d4a97eceacdd13769bc5f56e059aa7"}},
-{"id":"jools","key":"jools","value":{"rev":"3-9da332d524a117c4d72a58bb45fa34fd"}},
-{"id":"joose","key":"joose","value":{"rev":"22-ef8a1895680ad2f9c1cd73cd1afbb58e"}},
-{"id":"joosex-attribute","key":"joosex-attribute","value":{"rev":"18-119df97dba1ba2631c94d49e3142bbd7"}},
-{"id":"joosex-bridge-ext","key":"joosex-bridge-ext","value":{"rev":"20-5ad2168291aad2cf021df0a3eb103538"}},
-{"id":"joosex-class-simpleconstructor","key":"joosex-class-simpleconstructor","value":{"rev":"6-f71e02e44f611550374ad9f5d0c37fdf"}},
-{"id":"joosex-class-singleton","key":"joosex-class-singleton","value":{"rev":"6-3ba6b8644722b29febe384a368c18aab"}},
-{"id":"joosex-cps","key":"joosex-cps","value":{"rev":"20-493c65faf1ec59416bae475529c51cd4"}},
-{"id":"joosex-meta-lazy","key":"joosex-meta-lazy","value":{"rev":"13-ef8bc4e57006cfcecd72a344d8dc9da6"}},
-{"id":"joosex-namespace-depended","key":"joosex-namespace-depended","value":{"rev":"22-8a38a21f8564470b96082177e81f3db6"}},
-{"id":"joosex-observable","key":"joosex-observable","value":{"rev":"7-52e7018931e5465920bb6feab88aa468"}},
-{"id":"joosex-role-parameterized","key":"joosex-role-parameterized","value":{"rev":"6-65aa4fa4967c4fbe06357ccda5e6f810"}},
-{"id":"joosex-simplerequest","key":"joosex-simplerequest","value":{"rev":"10-12d105b60b8b3ca3a3626ca0ec53892d"}},
-{"id":"josp","key":"josp","value":{"rev":"3-c4fa8445a0d96037e00fe96d007bcf0c"}},
-{"id":"jot","key":"jot","value":{"rev":"3-8fab571ce3ad993f3594f3c2e0fc6915"}},
-{"id":"journey","key":"journey","value":{"rev":"40-efe1fa6c8d735592077c9a24b3b56a03"}},
-{"id":"jpeg","key":"jpeg","value":{"rev":"8-ab437fbaf88f32a7fb625a0b27521292"}},
-{"id":"jq","key":"jq","value":{"rev":"3-9d83287aa9e6aab25590fac9adbab968"}},
-{"id":"jqNode","key":"jqNode","value":{"rev":"3-fcaf2c47aba5637a4a23c64b6fc778cf"}},
-{"id":"jqbuild","key":"jqbuild","value":{"rev":"3-960edcea36784aa9ca135cd922e0cb9b"}},
-{"id":"jqserve","key":"jqserve","value":{"rev":"3-39272c5479aabaafe66ffa26a6eb3bb5"}},
-{"id":"jqtpl","key":"jqtpl","value":{"rev":"54-ce2b62ced4644d5fe24c3a8ebcb4d528"}},
-{"id":"jquajax","key":"jquajax","value":{"rev":"3-a079cb8f3a686faaafe420760e77a330"}},
-{"id":"jquery","key":"jquery","value":{"rev":"27-60fd58bba99d044ffe6e140bafd72595"}},
-{"id":"jquery-browserify","key":"jquery-browserify","value":{"rev":"9-a4e9afd657f3c632229afa356382f6a4"}},
-{"id":"jquery-deferred","key":"jquery-deferred","value":{"rev":"5-0fd0cec51f7424a50f0dba3cbe74fd58"}},
-{"id":"jquery-drive","key":"jquery-drive","value":{"rev":"3-8474f192fed5c5094e56bc91f5e8a0f8"}},
-{"id":"jquery-mousewheel","key":"jquery-mousewheel","value":{"rev":"3-cff81086cf651e52377a8d5052b09d64"}},
-{"id":"jquery-placeholdize","key":"jquery-placeholdize","value":{"rev":"3-7acc3fbda1b8daabce18876d2b4675e3"}},
-{"id":"jquery-tmpl-jst","key":"jquery-tmpl-jst","value":{"rev":"13-575031eb2f2b1e4c5562e195fce0bc93"}},
-{"id":"jquery.effects.blind","key":"jquery.effects.blind","value":{"rev":"3-5f3bec5913edf1bfcee267891f6204e2"}},
-{"id":"jquery.effects.bounce","key":"jquery.effects.bounce","value":{"rev":"3-245b2e7d9a1295dd0f7d568b8087190d"}},
-{"id":"jquery.effects.clip","key":"jquery.effects.clip","value":{"rev":"3-7aa63a590b6d90d5ea20e21c8dda675d"}},
-{"id":"jquery.effects.core","key":"jquery.effects.core","value":{"rev":"3-dd2fa270d8aea21104c2c92d6b06500d"}},
-{"id":"jquery.effects.drop","key":"jquery.effects.drop","value":{"rev":"3-8d0e30016e99460063a9a9000ce7b032"}},
-{"id":"jquery.effects.explode","key":"jquery.effects.explode","value":{"rev":"3-3d5e3bb2fb451f7eeaeb72b6743b6e6c"}},
-{"id":"jquery.effects.fade","key":"jquery.effects.fade","value":{"rev":"3-f362c762053eb278b5db5f92e248c3a5"}},
-{"id":"jquery.effects.fold","key":"jquery.effects.fold","value":{"rev":"3-c7d823c2b25c4f1e6a1801f4b1bc7a2c"}},
-{"id":"jquery.effects.highlight","key":"jquery.effects.highlight","value":{"rev":"3-44ef3c62a6b829382bffa6393cd31ed9"}},
-{"id":"jquery.effects.pulsate","key":"jquery.effects.pulsate","value":{"rev":"3-3cad87635cecc2602d40682cf669d2fe"}},
-{"id":"jquery.effects.scale","key":"jquery.effects.scale","value":{"rev":"3-2c8df02eeed343088e2253d84064a219"}},
-{"id":"jquery.effects.shake","key":"jquery.effects.shake","value":{"rev":"3-d63ab567d484311744d848b520a720c7"}},
-{"id":"jquery.effects.slide","key":"jquery.effects.slide","value":{"rev":"3-9eb5d1075d67045a8fa305e596981934"}},
-{"id":"jquery.effects.transfer","key":"jquery.effects.transfer","value":{"rev":"3-371bc87350ede6da53a40468b63200a9"}},
-{"id":"jquery.tmpl","key":"jquery.tmpl","value":{"rev":"5-75efd6c8c0ce030f2da12b984f9dfe6c"}},
-{"id":"jquery.ui.accordion","key":"jquery.ui.accordion","value":{"rev":"3-964ee7d6c50f31e7db6631da28e2261a"}},
-{"id":"jquery.ui.autocomplete","key":"jquery.ui.autocomplete","value":{"rev":"3-950d240629d142eab5e07c2776e39bcc"}},
-{"id":"jquery.ui.button","key":"jquery.ui.button","value":{"rev":"3-a1c7f3eeb9298ac0c116d75a176a6d17"}},
-{"id":"jquery.ui.core","key":"jquery.ui.core","value":{"rev":"3-b7ba340b7304a304f85c4d13438d1195"}},
-{"id":"jquery.ui.datepicker","key":"jquery.ui.datepicker","value":{"rev":"3-5b76579057f1b870959a06ab833f1972"}},
-{"id":"jquery.ui.dialog","key":"jquery.ui.dialog","value":{"rev":"3-0c314cee86bf67298759efcfd47246f6"}},
-{"id":"jquery.ui.draggable","key":"jquery.ui.draggable","value":{"rev":"3-b7a15d2bdbcdc6f0f3cd6e4522f9f1f3"}},
-{"id":"jquery.ui.droppable","key":"jquery.ui.droppable","value":{"rev":"3-86d8a1558f5e9383b271b4d968ba081d"}},
-{"id":"jquery.ui.mouse","key":"jquery.ui.mouse","value":{"rev":"3-ccb88d773c452c778c694f9f551cb816"}},
-{"id":"jquery.ui.position","key":"jquery.ui.position","value":{"rev":"3-c49c13b38592a363585600b7af54d977"}},
-{"id":"jquery.ui.progressbar","key":"jquery.ui.progressbar","value":{"rev":"3-b28dfadab64f9548b828c42bf870fcc9"}},
-{"id":"jquery.ui.resizable","key":"jquery.ui.resizable","value":{"rev":"3-aa356230544cbe8ab8dc5fab08cc0fa7"}},
-{"id":"jquery.ui.selectable","key":"jquery.ui.selectable","value":{"rev":"3-6b11846c104d580556e40eb5194c45f2"}},
-{"id":"jquery.ui.slider","key":"jquery.ui.slider","value":{"rev":"3-e8550b76bf58a9cbeca9ea91eb763257"}},
-{"id":"jquery.ui.sortable","key":"jquery.ui.sortable","value":{"rev":"3-1ddd981bd720f055fbd5bb1d06df55ad"}},
-{"id":"jquery.ui.tabs","key":"jquery.ui.tabs","value":{"rev":"3-e0514383f4d920b9dc23ef7a7ea4d8af"}},
-{"id":"jquery.ui.widget","key":"jquery.ui.widget","value":{"rev":"3-3a0800fa067c12d013168f74acf21e6d"}},
-{"id":"jqueryify","key":"jqueryify","value":{"rev":"3-2655cf6a45795a8bd138a464e6c18f04"}},
-{"id":"jrep","key":"jrep","value":{"rev":"3-edbcf6931b8a2b3f550727d8b839acc3"}},
-{"id":"js-beautify-node","key":"js-beautify-node","value":{"rev":"3-401cd1c130aaec2c090b578fe8db6290"}},
-{"id":"js-class","key":"js-class","value":{"rev":"5-a63fbb0136dcd602feee72e70674d5db"}},
-{"id":"js-jango","key":"js-jango","value":{"rev":"3-af4e4a7844791617e66a40a1c403bb98"}},
-{"id":"js-loader","key":"js-loader","value":{"rev":"13-8d9729495c1692e47d2cd923e839b4c8"}},
-{"id":"js-manager","key":"js-manager","value":{"rev":"5-6d384a2ce4737f13d417f85689c3c372"}},
-{"id":"js-nts","key":"js-nts","value":{"rev":"3-7d921611b567d2d890bc983c343558ef"}},
-{"id":"js-openstack","key":"js-openstack","value":{"rev":"11-d56996be276fbe6162573575932b1cba"}},
-{"id":"js-select","key":"js-select","value":{"rev":"9-9d20f6d86d9e6f8a84191346288b76ed"}},
-{"id":"js.io","key":"js.io","value":{"rev":"3-c5e16e13372ba592ccf2ac86ee007a1f"}},
-{"id":"js2","key":"js2","value":{"rev":"35-2dc694e48b67252d8787f5e889a07430"}},
-{"id":"js2coffee","key":"js2coffee","value":{"rev":"19-8eeafa894dcc0dc306b02e728543511e"}},
-{"id":"jsDAV","key":"jsDAV","value":{"rev":"11-4ab1935d98372503439b054daef2e78e"}},
-{"id":"jsDump","key":"jsDump","value":{"rev":"5-32d6e4032bd114245356970f0b76a58a"}},
-{"id":"jsSourceCodeParser","key":"jsSourceCodeParser","value":{"rev":"3-78c5e8624ab25fca99a7bb6cd9be402b"}},
-{"id":"jsapp","key":"jsapp","value":{"rev":"3-6758eb2743cc22f723a6612b34c8d943"}},
-{"id":"jscc-node","key":"jscc-node","value":{"rev":"3-5f52dc20dc2a188bc32e7219c9d2f225"}},
-{"id":"jscheckstyle","key":"jscheckstyle","value":{"rev":"5-82021f06a1bd824ac195e0ab8a3b598c"}},
-{"id":"jsclass","key":"jsclass","value":{"rev":"9-2a0656b9497c5a8208a0fefa5aae3350"}},
-{"id":"jsconfig","key":"jsconfig","value":{"rev":"3-b1afef99468f81eff319453623135a56"}},
-{"id":"jscssp","key":"jscssp","value":{"rev":"6-413ad0701e6dbb412e8a01aadb6672c4"}},
-{"id":"jsdata","key":"jsdata","value":{"rev":"5-53f8b26f28291dccfdff8f14e7f4c44c"}},
-{"id":"jsdeferred","key":"jsdeferred","value":{"rev":"8-bc238b921a1fa465503722756a98e9b7"}},
-{"id":"jsdoc","key":"jsdoc","value":{"rev":"3-386eb47a2761a1ad025996232751fba9"}},
-{"id":"jsdog","key":"jsdog","value":{"rev":"11-d4a523898a7c474b5c7b8cb8b24bafe8"}},
-{"id":"jsdom","key":"jsdom","value":{"rev":"63-86bc6b9d8bfdb99b793ac959e126f7ff"}},
-{"id":"jsftp","key":"jsftp","value":{"rev":"35-89cd772521d7ac3cead71c602ddeb819"}},
-{"id":"jsgi","key":"jsgi","value":{"rev":"20-dbef9d8dfb5c9bf1a3b6014159bb305a"}},
-{"id":"jsgi-node","key":"jsgi-node","value":{"rev":"1-8ec0892e521754aaf88684714d306af9"}},
-{"id":"jsgrep","key":"jsgrep","value":{"rev":"7-be19445481acdbbb684fdc2425d88d08"}},
-{"id":"jshelpers","key":"jshelpers","value":{"rev":"11-9509dcdd48bc494de76cae66217ebedb"}},
-{"id":"jshint","key":"jshint","value":{"rev":"34-ed2e7ea0e849126bd9821b86f23b7314"}},
-{"id":"jshint-autofix","key":"jshint-autofix","value":{"rev":"9-abbb3622aa8a47a8890dbbaab0009b6d"}},
-{"id":"jshint-mode","key":"jshint-mode","value":{"rev":"5-06ec066819b93c7ae6782c755a0e2125"}},
-{"id":"jshint-runner","key":"jshint-runner","value":{"rev":"7-6fc8a15e387a4e81e300a54a86a3a240"}},
-{"id":"jshtml","key":"jshtml","value":{"rev":"5-d3e96c31cf1cd2fcf7743defc1631c3a"}},
-{"id":"jsinc","key":"jsinc","value":{"rev":"9-0e4dc3ba04b440085a79d6001232abfc"}},
-{"id":"jslint","key":"jslint","value":{"rev":"10-ab451352333b5f3d29c6cdbab49187dd"}},
-{"id":"jslint-core","key":"jslint-core","value":{"rev":"3-1f874d8cca07b6f007bc80c23ba15e2e"}},
-{"id":"jslint-strict","key":"jslint-strict","value":{"rev":"8-3d694a0f3079691da1866de16f290ea2"}},
-{"id":"jslinux","key":"jslinux","value":{"rev":"13-033cb60c7867aae599863323a97f45c0"}},
-{"id":"jslitmus","key":"jslitmus","value":{"rev":"6-d3f3f82ea1a376acc2b24c69da003409"}},
-{"id":"jsmeter","key":"jsmeter","value":{"rev":"5-7838bb9b970cbaa29a48802c508fd091"}},
-{"id":"jsmin","key":"jsmin","value":{"rev":"6-002ad1b385915e60f895b5e52492fb94"}},
-{"id":"json","key":"json","value":{"rev":"39-1d24fb8c3bdf0ac533bfc52e74420adc"}},
-{"id":"json-browser","key":"json-browser","value":{"rev":"6-883f051c1297cf631adba1c855ff2e13"}},
-{"id":"json-builder","key":"json-builder","value":{"rev":"5-e7a996ff1ef89114ce2ab6de9b653af8"}},
-{"id":"json-command","key":"json-command","value":{"rev":"16-8239cb65563720c42da5562d3a031b09"}},
-{"id":"json-fu","key":"json-fu","value":{"rev":"5-7933c35711cb9d7673d7514fe495c56d"}},
-{"id":"json-line-protocol","key":"json-line-protocol","value":{"rev":"7-98de63467d154b40a029391af8a26042"}},
-{"id":"json-object","key":"json-object","value":{"rev":"7-534cd9680c386c5b9800848755698f2b"}},
-{"id":"json-ref","key":"json-ref","value":{"rev":"3-cd09776d166c3f77013e429737c7e1e9"}},
-{"id":"json-san","key":"json-san","value":{"rev":"7-8683abde23232c1d84266e7a2d5c4527"}},
-{"id":"json-schema","key":"json-schema","value":{"rev":"1-2f323062e7ec80d2ff765da43c7aaa7d"}},
-{"id":"json-sockets","key":"json-sockets","value":{"rev":"26-bfef71c0d9fb4d56010b05f47f142748"}},
-{"id":"json-storage","key":"json-storage","value":{"rev":"3-46139e3a54c0a27e67820df2c7e87dbf"}},
-{"id":"json-storage-model","key":"json-storage-model","value":{"rev":"3-8b77044e192791613cf92b2f3317357f"}},
-{"id":"json-streamify","key":"json-streamify","value":{"rev":"5-d98cd72265fba652481eef6baa980f46"}},
-{"id":"json-streams","key":"json-streams","value":{"rev":"3-e07fc5ca24b33145c8aacf9995d46723"}},
-{"id":"json-tables","key":"json-tables","value":{"rev":"3-37a652b54880487e66ffeee6822b945b"}},
-{"id":"json-template","key":"json-template","value":{"rev":"3-9ee3a101c60ea682fb88759b2df837e4"}},
-{"id":"json2","key":"json2","value":{"rev":"12-bc3d411db772e0947ca58a54c2084073"}},
-{"id":"json2ify","key":"json2ify","value":{"rev":"3-c2d6677cc35e4668c97cf6800a4728d8"}},
-{"id":"json2xml","key":"json2xml","value":{"rev":"3-e955b994479362685e2197b39909dea2"}},
-{"id":"json_req","key":"json_req","value":{"rev":"15-14520bc890cbb0ab4c142b59bf21c9f1"}},
-{"id":"jsonapi","key":"jsonapi","value":{"rev":"11-2b27aaca5643d6a5b3ab38721cf6342f"}},
-{"id":"jsonconfig","key":"jsonconfig","value":{"rev":"5-0072bb54cb0ae5b13eee4f1657ba6a29"}},
-{"id":"jsond","key":"jsond","value":{"rev":"13-7c3622aeb147dae4698608ee32d81b45"}},
-{"id":"jsondate","key":"jsondate","value":{"rev":"3-1da5d30ee1cf7c6d9605a446efd91478"}},
-{"id":"jsonds","key":"jsonds","value":{"rev":"9-af2867869a46787e58c337e700dbf0dd"}},
-{"id":"jsonds2","key":"jsonds2","value":{"rev":"3-e7ed9647cc1ba72e59b625840358c7ca"}},
-{"id":"jsonfiles","key":"jsonfiles","value":{"rev":"3-5e643ba75c401f653f505e7938540d83"}},
-{"id":"jsonify","key":"jsonify","value":{"rev":"3-91207fd1bc11668be7906f74992de6bb"}},
-{"id":"jsonize","key":"jsonize","value":{"rev":"3-4881031480a5326d9f5966189170db25"}},
-{"id":"jsonlint","key":"jsonlint","value":{"rev":"11-88d3c1c395846e7687f410e0dc405469"}},
-{"id":"jsonml","key":"jsonml","value":{"rev":"3-9990d9515fa554b5c7ff8bf8c7bb3308"}},
-{"id":"jsonparse","key":"jsonparse","value":{"rev":"3-569962847a5fd9d65fdf91af9e3e87a5"}},
-{"id":"jsonpointer","key":"jsonpointer","value":{"rev":"5-0310a11e82e9e22a4e5239dee2bc2213"}},
-{"id":"jsonprettify","key":"jsonprettify","value":{"rev":"3-173ae677f2110dfff8cb17dd2b4c68de"}},
-{"id":"jsonreq","key":"jsonreq","value":{"rev":"5-84b47d8c528ea7efa9aae113e5ff53cf"}},
-{"id":"jsonrpc","key":"jsonrpc","value":{"rev":"10-e40ff49715537320cbbbde67378f099e"}},
-{"id":"jsonrpc-ws","key":"jsonrpc-ws","value":{"rev":"7-73c385f3d35dadbdc87927f6a751e3ca"}},
-{"id":"jsonrpc2","key":"jsonrpc2","value":{"rev":"13-71efdea4f551d3a2550fcf5355ea8c8c"}},
-{"id":"jsontool","key":"jsontool","value":{"rev":"14-44bc979d3a8dc9295c825def01e533b4"}},
-{"id":"jsontoxml","key":"jsontoxml","value":{"rev":"8-2640fd26237ab4a45450748d392dd2d2"}},
-{"id":"jsontry","key":"jsontry","value":{"rev":"3-adb3f32f86419ac4b589ce41ab253952"}},
-{"id":"jsorm-i18n","key":"jsorm-i18n","value":{"rev":"3-54347174039512616ed76cc9a37605ea"}},
-{"id":"jsorm-utilities","key":"jsorm-utilities","value":{"rev":"3-187fc9f86ed8d32ebcb6c451fa7cc3c4"}},
-{"id":"jspack","key":"jspack","value":{"rev":"3-84955792d8b57fc301968daf674bace7"}},
-{"id":"jspkg","key":"jspkg","value":{"rev":"5-f5471c37554dad3492021490a70a1190"}},
-{"id":"jspp","key":"jspp","value":{"rev":"8-7607018fa48586f685dda17d77d0999b"}},
-{"id":"jss","key":"jss","value":{"rev":"20-4517b1daeda4f878debddc9f23347f00"}},
-{"id":"jst","key":"jst","value":{"rev":"27-8372bf5c052b6bd6e28f5d2c89b47e49"}},
-{"id":"jstestdriver","key":"jstestdriver","value":{"rev":"3-d26b172af33d6c45fc3dc96b96865714"}},
-{"id":"jstoxml","key":"jstoxml","value":{"rev":"15-c26b77ed5228500238c7b21a3dbdbbb7"}},
-{"id":"jsup","key":"jsup","value":{"rev":"3-54eb8598ae1a49bd1540e482a44a6abc"}},
-{"id":"jthon","key":"jthon","value":{"rev":"5-d578940ac32497839ff48d3f6205e9e2"}},
-{"id":"juggernaut","key":"juggernaut","value":{"rev":"20-15d33218943b9ec64b642e2a4a05e4b8"}},
-{"id":"juggernaut-yoomee","key":"juggernaut-yoomee","value":{"rev":"7-a58d429e46aac76260e236c64d20ff02"}},
-{"id":"jump","key":"jump","value":{"rev":"19-d47e23c31dc623b54e60004b08f6f624"}},
-{"id":"jumprope","key":"jumprope","value":{"rev":"5-98d4e2452f14d3b0996f04882b07d674"}},
-{"id":"junction","key":"junction","value":{"rev":"3-2b73ea17d862b1e95039141e98e53268"}},
-{"id":"jus-config","key":"jus-config","value":{"rev":"5-d2da00317dceb712d82dbfc776122dbe"}},
-{"id":"jus-i18n","key":"jus-i18n","value":{"rev":"3-d146cfc5f3c9aee769390ed921836b6e"}},
-{"id":"jus-task","key":"jus-task","value":{"rev":"13-d127de2a102eef2eb0d1b67810ecd558"}},
-{"id":"justtest","key":"justtest","value":{"rev":"17-467ee4ca606f0447a0c458550552fd0a"}},
-{"id":"jute","key":"jute","value":{"rev":"99-158d262e9126de5026bbfeb3168d9277"}},
-{"id":"jwt","key":"jwt","value":{"rev":"3-4cb8a706d1bc3c300bdadeba781c7bc4"}},
-{"id":"kaffeine","key":"kaffeine","value":{"rev":"47-261825b8d8cdf168387c6a275682dd0b"}},
-{"id":"kafka","key":"kafka","value":{"rev":"9-7465d4092e6322d0b744f017be8ffcea"}},
-{"id":"kahan","key":"kahan","value":{"rev":"5-107bb2dcdb51faaa00aef1e37eff91eb"}},
-{"id":"kahve-ansi","key":"kahve-ansi","value":{"rev":"5-a86d9a3ea56362fa81c8ee9f1ef8f2ef"}},
-{"id":"kahve-cake","key":"kahve-cake","value":{"rev":"3-873b4e553c4ba417c888aadce3b800f6"}},
-{"id":"kahve-classmethod","key":"kahve-classmethod","value":{"rev":"3-08e0a5786edc15539cc6746fe6c65bec"}},
-{"id":"kahve-exception","key":"kahve-exception","value":{"rev":"3-fb9d839cfdc069271cbc10fa27a87f3c"}},
-{"id":"kahve-progress","key":"kahve-progress","value":{"rev":"3-d2fcdd99793a0c3c3a314afb067a3701"}},
-{"id":"kanso","key":"kanso","value":{"rev":"41-2b18ab56cc86313daa840b7b3f63b318"}},
-{"id":"kaph","key":"kaph","value":{"rev":"7-c24622e38cf23bac67459bfe5a0edd63"}},
-{"id":"karait","key":"karait","value":{"rev":"9-a4abc4bc11c747448c4884cb714737c9"}},
-{"id":"kasabi","key":"kasabi","value":{"rev":"3-36cb65aef11d181c532f4549d58944e6"}},
-{"id":"kassit","key":"kassit","value":{"rev":"27-6fafe5122a4dda542a34ba18dddfc9ea"}},
-{"id":"kdtree","key":"kdtree","value":{"rev":"9-177bf5018be1f177d302af1d746b0462"}},
-{"id":"keeper","key":"keeper","value":{"rev":"13-43ce24b6e1fb8ac23c58a78e3e92d137"}},
-{"id":"kestrel","key":"kestrel","value":{"rev":"3-1303ae0617ed1076eed022176c78b0c4"}},
-{"id":"kettle","key":"kettle","value":{"rev":"3-385c10c43df484666148e796840e72c7"}},
-{"id":"keyed_list","key":"keyed_list","value":{"rev":"5-c98d8bc8619300da1a09098bb298bf16"}},
-{"id":"keyframely","key":"keyframely","value":{"rev":"5-586380d2258a099d8fa4748f2688b571"}},
-{"id":"keygrip","key":"keygrip","value":{"rev":"18-4178954fb4f0e26407851104876f1a03"}},
-{"id":"keyjson","key":"keyjson","value":{"rev":"5-96ab1d8b6fa77864883b657360070af4"}},
-{"id":"keymaster","key":"keymaster","value":{"rev":"8-e7eb722489b02991943e9934b8155162"}},
-{"id":"keys","key":"keys","value":{"rev":"12-8b34b8f593667f0c23f1841edb5b6fa3"}},
-{"id":"keysym","key":"keysym","value":{"rev":"13-ec57906511f8f2f896a9e81dc206ea77"}},
-{"id":"keyx","key":"keyx","value":{"rev":"3-80dc49b56e3ba1d280298c36afa2a82c"}},
-{"id":"khronos","key":"khronos","value":{"rev":"3-1a3772db2725c4c3098d5cf4ca2189a4"}},
-{"id":"kindred","key":"kindred","value":{"rev":"5-99c7f4f06e4a47e476f9d75737f719d7"}},
-{"id":"kiokujs","key":"kiokujs","value":{"rev":"8-4b96a9bc1866f58bb263b310e64df403"}},
-{"id":"kiokujs-backend-batch","key":"kiokujs-backend-batch","value":{"rev":"3-4739de0f2e0c01581ce0b02638d3df02"}},
-{"id":"kiokujs-backend-couchdb","key":"kiokujs-backend-couchdb","value":{"rev":"8-53e830e0a7e8ea810883c00ce79bfeef"}},
-{"id":"kiss.js","key":"kiss.js","value":{"rev":"11-7c9b1d7e2faee25ade6f1cad1bb261d9"}},
-{"id":"kissy","key":"kissy","value":{"rev":"8-3f8f7c169a3e84df6a7f68315f13b3ba"}},
-{"id":"kitkat","key":"kitkat","value":{"rev":"41-5f2600e4e1c503f63702c74195ff3361"}},
-{"id":"kitkat-express","key":"kitkat-express","value":{"rev":"3-91ef779ed9acdad1ca6f776e10a70246"}},
-{"id":"kizzy","key":"kizzy","value":{"rev":"5-f281b9e4037eda414f918ec9021e28c9"}},
-{"id":"kjs","key":"kjs","value":{"rev":"3-2ee03262f843e497161f1aef500dd229"}},
-{"id":"kju","key":"kju","value":{"rev":"5-0a7de1cd26864c85a22c7727c660d441"}},
-{"id":"klass","key":"klass","value":{"rev":"39-61491ef3824772d5ef33f7ea04219461"}},
-{"id":"klout-js","key":"klout-js","value":{"rev":"8-8d99f6dad9c21cb5da0d64fefef8c6d6"}},
-{"id":"knid","key":"knid","value":{"rev":"7-2cbfae088155da1044b568584cd296df"}},
-{"id":"knox","key":"knox","value":{"rev":"19-3c42553bd201b23a6bc15fdd073dad17"}},
-{"id":"knox-stream","key":"knox-stream","value":{"rev":"17-e40275f926b6ed645e4ef04caf8e5df4"}},
-{"id":"kns","key":"kns","value":{"rev":"9-5da1a89ad8c08f4b10cd715036200da3"}},
-{"id":"ko","key":"ko","value":{"rev":"9-9df2853d0e9ed9f7740f53291d0035dd"}},
-{"id":"koala","key":"koala","value":{"rev":"8-9e3fea91917f6d8cfb5aae22115e132f"}},
-{"id":"kohai","key":"kohai","value":{"rev":"3-1721a193589459fa077fea809fd7c9a9"}},
-{"id":"koku","key":"koku","value":{"rev":"5-414736980e0e70d90cd7f29b175fb18c"}},
-{"id":"komainu","key":"komainu","value":{"rev":"5-0f1a8f132fe58385e989dd4f93aefa26"}},
-{"id":"komodo-scheme","key":"komodo-scheme","value":{"rev":"3-97d1bd27f069684c491012e079fd82c4"}},
-{"id":"konphyg","key":"konphyg","value":{"rev":"7-e5fc03d6ddf39f2e0723291800bf0d43"}},
-{"id":"kranium","key":"kranium","value":{"rev":"3-4a78d2eb28e949a55b0dbd2ab00cecaf"}},
-{"id":"kue","key":"kue","value":{"rev":"21-053b32204d89a3067c5a90ca62ede08c"}},
-{"id":"kyatchi","key":"kyatchi","value":{"rev":"21-8dfbbe498f3740a2869c82e4ab4522d1"}},
-{"id":"kyoto","key":"kyoto","value":{"rev":"15-b9acdad89d56c71b6f427a443c16f85f"}},
-{"id":"kyoto-client","key":"kyoto-client","value":{"rev":"11-7fb392ee23ce64a48ae5638d713f4fbd"}},
-{"id":"kyoto-tycoon","key":"kyoto-tycoon","value":{"rev":"18-81ece8df26dbd9986efe1d97d935bec2"}},
-{"id":"kyuri","key":"kyuri","value":{"rev":"9-bedd4c087bd7bf612bde5e862d8b91bb"}},
-{"id":"labBuilder","key":"labBuilder","value":{"rev":"11-37f85b5325f1ccf25193c8b737823185"}},
-{"id":"laconic","key":"laconic","value":{"rev":"3-f5b7b9ac113fe7d32cbf4cb0d01c3052"}},
-{"id":"languagedetect","key":"languagedetect","value":{"rev":"3-ac487c034a3470ebd47b54614ea848f9"}},
-{"id":"lastfm","key":"lastfm","value":{"rev":"52-5af213489ca6ecdf2afc851c4642b082"}},
-{"id":"layers","key":"layers","value":{"rev":"7-62cd47d9645faa588c635dab2fbd2ef0"}},
-{"id":"lazy","key":"lazy","value":{"rev":"18-9b5ccdc9c3a970ec4c2b63b6f882da6a"}},
-{"id":"lazy-image","key":"lazy-image","value":{"rev":"5-34a6bc95017c50b3cb69981c7343e5da"}},
-{"id":"lazyBum","key":"lazyBum","value":{"rev":"15-03da6d744ba8cce7efca88ccb7e18c4d"}},
-{"id":"lazyprop","key":"lazyprop","value":{"rev":"14-82b4bcf318094a7950390f03e2fec252"}},
-{"id":"ldapjs","key":"ldapjs","value":{"rev":"11-e2b28e11a0aebe37b758d8f1ed61dd57"}},
-{"id":"ldapjs-riak","key":"ldapjs-riak","value":{"rev":"7-005413a1d4e371663626a3cca200c7e0"}},
-{"id":"ldifgrep","key":"ldifgrep","value":{"rev":"3-e4f06821a3444abbcd3c0c26300dcdda"}},
-{"id":"leaf","key":"leaf","value":{"rev":"8-0ccf5cdd1b59717b53375fe4bf044ec3"}},
-{"id":"lean","key":"lean","value":{"rev":"3-32dbbc771a3f1f6697c21c5d6c516967"}},
-{"id":"leche","key":"leche","value":{"rev":"7-0f5e19052ae1e3cb25ff2aa73271ae4f"}},
-{"id":"leche.spice.io","key":"leche.spice.io","value":{"rev":"3-07db415fdb746873f211e8155ecdf232"}},
-{"id":"less","key":"less","value":{"rev":"37-160fe5ea5dba44f02defdb8ec8c647d5"}},
-{"id":"less-bal","key":"less-bal","value":{"rev":"3-d50532c7c46013a62d06a0e54f8846ce"}},
-{"id":"less4clients","key":"less4clients","value":{"rev":"5-343d2973a166801681c856558d975ddf"}},
-{"id":"lessup","key":"lessup","value":{"rev":"9-a2e7627ef1b493fe82308d019ae481ac"}},
-{"id":"lessweb","key":"lessweb","value":{"rev":"9-e21794e578884c228dbed7c5d6128a41"}},
-{"id":"leveldb","key":"leveldb","value":{"rev":"11-3809e846a7a5ff883d17263288664195"}},
-{"id":"levenshtein","key":"levenshtein","value":{"rev":"6-44d27b6a6bc407772cafc29af485854f"}},
-{"id":"lib","key":"lib","value":{"rev":"5-a95272f11e927888c8b711503fce670b"}},
-{"id":"libdtrace","key":"libdtrace","value":{"rev":"8-4d4f72b2349154da514700f576e34564"}},
-{"id":"liberator","key":"liberator","value":{"rev":"15-b702710ccb3b45e41e9e2f3ebb6375ae"}},
-{"id":"libirc","key":"libirc","value":{"rev":"3-05b125de0c179dd311129aac2e1c8047"}},
-{"id":"liblzg","key":"liblzg","value":{"rev":"5-445ed45dc3cd166a299f85f6149aa098"}},
-{"id":"libnotify","key":"libnotify","value":{"rev":"10-c6723206898865e4828e963f5acc005e"}},
-{"id":"libxml-to-js","key":"libxml-to-js","value":{"rev":"33-64d3152875d33d6feffd618152bc41df"}},
-{"id":"libxmlext","key":"libxmlext","value":{"rev":"3-6a896dacba6f25fbca9b79d4143aaa9a"}},
-{"id":"libxmljs","key":"libxmljs","value":{"rev":"17-4b2949b53d9ecde79a99361774c1144b"}},
-{"id":"libxpm","key":"libxpm","value":{"rev":"3-c03efe75832c4416ceee5d72be12a8ef"}},
-{"id":"libyaml","key":"libyaml","value":{"rev":"5-f279bde715345a4e81d43c1d798ee608"}},
-{"id":"lift","key":"lift","value":{"rev":"21-61dcb771e5e0dc03fa327120d440ccda"}},
-{"id":"light-traits","key":"light-traits","value":{"rev":"26-b35c49550f9380fd462d57c64d51540f"}},
-{"id":"lightnode","key":"lightnode","value":{"rev":"3-ce37ccbf6a6546d4fa500e0eff84e882"}},
-{"id":"limestone","key":"limestone","value":{"rev":"3-d6f76ae98e4189db4ddfa8e15b4cdea9"}},
-{"id":"limited-file","key":"limited-file","value":{"rev":"3-c1d78250965b541836a70d3e867c694f"}},
-{"id":"lin","key":"lin","value":{"rev":"17-0a26ea2a603df0d14a9c40aad96bfb5e"}},
-{"id":"line-parser","key":"line-parser","value":{"rev":"7-84047425699f5a8a8836f4f2e63777bc"}},
-{"id":"line-reader","key":"line-reader","value":{"rev":"9-d2a7cb3a9793149e643490dc16a1eb50"}},
-{"id":"linebuffer","key":"linebuffer","value":{"rev":"12-8e79075aa213ceb49b28e0af7b3f3861"}},
-{"id":"lines","key":"lines","value":{"rev":"9-01a0565f47c3816919ca75bf77539df5"}},
-{"id":"lines-adapter","key":"lines-adapter","value":{"rev":"23-f287561e42a841c00bbf94bc8741bebc"}},
-{"id":"linestream","key":"linestream","value":{"rev":"5-18c2be87653ecf20407ed70eeb601ae7"}},
-{"id":"lingo","key":"lingo","value":{"rev":"10-b3d62b203c4af108feeaf0e32b2a4186"}},
-{"id":"link","key":"link","value":{"rev":"15-7570cea23333dbe3df11fd71171e6226"}},
-{"id":"linkedin-js","key":"linkedin-js","value":{"rev":"22-1bb1f392a9838684076b422840cf98eb"}},
-{"id":"linkscape","key":"linkscape","value":{"rev":"5-7272f50a54b1db015ce6d1e79eeedad7"}},
-{"id":"linkshare","key":"linkshare","value":{"rev":"3-634c4a18a217f77ccd6b89a9a2473d2a"}},
-{"id":"linode-api","key":"linode-api","value":{"rev":"13-2b43281ec86206312a2c387c9fc2c49f"}},
-{"id":"lint","key":"lint","value":{"rev":"49-fb76fddeb3ca609e5cac75fb0b0ec216"}},
-{"id":"linter","key":"linter","value":{"rev":"18-0fc884c96350f860cf2695f615572dba"}},
-{"id":"lintnode","key":"lintnode","value":{"rev":"8-b70bca986d7bde759521d0693dbc28b8"}},
-{"id":"linux-util","key":"linux-util","value":{"rev":"9-d049e8375e9c50b7f2b6268172d79734"}},
-{"id":"liquid","key":"liquid","value":{"rev":"3-353fa3c93ddf1951e3a75d60e6e8757b"}},
-{"id":"liquor","key":"liquor","value":{"rev":"3-4ee78e69a4a400a4de3491b0954947e7"}},
-{"id":"listener","key":"listener","value":{"rev":"5-02b5858d36aa99dcc5fc03c9274c94ee"}},
-{"id":"litmus","key":"litmus","value":{"rev":"9-7e403d052483301d025e9d09b4e7a9dd"}},
-{"id":"littering","key":"littering","value":{"rev":"5-9026438311ffc18d369bfa886c120bcd"}},
-{"id":"live-twitter-map","key":"live-twitter-map","value":{"rev":"3-45a40054bbab23374a4f1743c8bd711d"}},
-{"id":"livereload","key":"livereload","value":{"rev":"5-11ff486b4014ec1998705dbd396e96f2"}},
-{"id":"load","key":"load","value":{"rev":"7-2fff87aeb91d74bc57c134ee2cf0d65b"}},
-{"id":"loadbuilder","key":"loadbuilder","value":{"rev":"9-fa9c5cb13b3af03f9d9fbf5064fa0e0f"}},
-{"id":"loadit","key":"loadit","value":{"rev":"3-51bee062ed0d985757c6ae24929fa74e"}},
-{"id":"local-cdn","key":"local-cdn","value":{"rev":"9-9c2931766a559cf036318583455456e6"}},
-{"id":"localStorage","key":"localStorage","value":{"rev":"3-455fbe195db27131789b5d59db4504b0"}},
-{"id":"locales","key":"locales","value":{"rev":"5-bee452772e2070ec07af0dd86d6dbc41"}},
-{"id":"localhose","key":"localhose","value":{"rev":"9-3a2f63ecbed2e31400ca7515fd020a77"}},
-{"id":"localhost","key":"localhost","value":{"rev":"3-c6c4f6b5688cbe62865010099c9f461f"}},
-{"id":"localhostapp","key":"localhostapp","value":{"rev":"3-17884c4847c549e07e0c881fdf60d01f"}},
-{"id":"localize","key":"localize","value":{"rev":"7-1f83adb6d1eefcf7222a05f489b5db10"}},
-{"id":"location","key":"location","value":{"rev":"3-cc6fbf77b4ade80312bd95fde4e00015"}},
-{"id":"lockfile","key":"lockfile","value":{"rev":"3-4b4b79c2b0f09cc516db1a9d581c5038"}},
-{"id":"lode","key":"lode","value":{"rev":"15-5062a9a0863770d172097c5074a2bdae"}},
-{"id":"log","key":"log","value":{"rev":"12-0aa7922459ff8397764956c56a106930"}},
-{"id":"log-buddy","key":"log-buddy","value":{"rev":"3-64c6d4927d1d235d927f09c16c874e06"}},
-{"id":"log-watcher","key":"log-watcher","value":{"rev":"3-70f8727054c8e4104f835930578f4ee1"}},
-{"id":"log4js","key":"log4js","value":{"rev":"38-137b28e6e96515da7a6399cae86795dc"}},
-{"id":"log4js-amqp","key":"log4js-amqp","value":{"rev":"3-90530c28ef63d4598c12dfcf450929c0"}},
-{"id":"log5","key":"log5","value":{"rev":"17-920e3765dcfdc31bddf13de6895122b3"}},
-{"id":"logbot","key":"logbot","value":{"rev":"3-234eedc70b5474c713832e642f4dc3b4"}},
-{"id":"logger","key":"logger","value":{"rev":"3-5eef338fb5e845a81452fbb22e582aa7"}},
-{"id":"logging","key":"logging","value":{"rev":"22-99d320792c5445bd04699c4cf19edd89"}},
-{"id":"logging-system","key":"logging-system","value":{"rev":"5-5eda9d0b1d04256f5f44abe51cd14626"}},
-{"id":"loggly","key":"loggly","value":{"rev":"49-944a404e188327431a404e5713691a8c"}},
-{"id":"login","key":"login","value":{"rev":"44-7c450fe861230a5121ff294bcd6f97c9"}},
-{"id":"logly","key":"logly","value":{"rev":"7-832fe9af1cd8bfed84a065822cec398a"}},
-{"id":"logmagic","key":"logmagic","value":{"rev":"11-5d2c7dd32ba55e5ab85127be09723ef8"}},
-{"id":"logmonger","key":"logmonger","value":{"rev":"3-07a101d795f43f7af668210660274a7b"}},
-{"id":"lokki","key":"lokki","value":{"rev":"3-f6efcce38029ea0b4889707764088540"}},
-{"id":"long-stack-traces","key":"long-stack-traces","value":{"rev":"7-4b2fe23359b29e188cb2b8936b63891a"}},
-{"id":"loom","key":"loom","value":{"rev":"3-6348ab890611154da4881a0b351b0cb5"}},
-{"id":"loop","key":"loop","value":{"rev":"3-a56e9a6144f573092bb441106b370e0c"}},
-{"id":"looseleaf","key":"looseleaf","value":{"rev":"57-46ef6f055a40c34c714e3e9b9fe5d4cd"}},
-{"id":"lovely","key":"lovely","value":{"rev":"21-f577923512458f02f48ef59eebe55176"}},
-{"id":"lpd","key":"lpd","value":{"rev":"3-433711ae25002f67aa339380668fd491"}},
-{"id":"lpd-printers","key":"lpd-printers","value":{"rev":"3-47060e6c05fb4aad227d36f6e7941227"}},
-{"id":"lru-cache","key":"lru-cache","value":{"rev":"10-23c5e7423fe315745ef924f58c36e119"}},
-{"id":"ls-r","key":"ls-r","value":{"rev":"7-a769b11a06fae8ff439fe7eeb0806b5e"}},
-{"id":"lsof","key":"lsof","value":{"rev":"5-82aa3bcf23b8026a95e469b6188938f9"}},
-{"id":"ltx","key":"ltx","value":{"rev":"21-89ca85a9ce0c9fc13b20c0f1131168b0"}},
-{"id":"lucky-server","key":"lucky-server","value":{"rev":"3-a50d87239166f0ffc374368463f96b07"}},
-{"id":"lunapark","key":"lunapark","value":{"rev":"3-841d197f404da2e63d69b0c2132d87db"}},
-{"id":"lunchbot","key":"lunchbot","value":{"rev":"3-5d8984bef249e3d9e271560b5753f4cf"}},
-{"id":"lw-nun","key":"lw-nun","value":{"rev":"3-b686f89361b7b405e4581db6c60145ed"}},
-{"id":"lw-sass","key":"lw-sass","value":{"rev":"3-e46f90e0c8eab0c8c5d5eb8cf2a9a6da"}},
-{"id":"lwes","key":"lwes","value":{"rev":"3-939bb87efcbede1c1a70de881686fbce"}},
-{"id":"lwink","key":"lwink","value":{"rev":"3-1c432fafe4809e8d4a7e6214123ae452"}},
-{"id":"lzma","key":"lzma","value":{"rev":"3-31dc39414531e329b42b3a4ea0292c43"}},
-{"id":"m1node","key":"m1node","value":{"rev":"11-b34d55bdbc6f65b1814e77fab4a7e823"}},
-{"id":"m1test","key":"m1test","value":{"rev":"3-815ce56949e41e120082632629439eac"}},
-{"id":"m2node","key":"m2node","value":{"rev":"7-f50ec5578d995dd6a0a38e1049604bfc"}},
-{"id":"m2pdb","key":"m2pdb","value":{"rev":"3-ee798ac17c8c554484aceae2f77a826b"}},
-{"id":"m3u","key":"m3u","value":{"rev":"5-7ca6d768e0aed5b88dd45c943ca9ffa0"}},
-{"id":"mac","key":"mac","value":{"rev":"21-db5883c390108ff9ba46660c78b18b6c"}},
-{"id":"macchiato","key":"macchiato","value":{"rev":"5-0df1c87029e6005577fd8fd5cdb25947"}},
-{"id":"macgyver","key":"macgyver","value":{"rev":"3-f517699102b7bd696d8197d7ce57afb9"}},
-{"id":"macros","key":"macros","value":{"rev":"3-8356bcc0d1b1bd3879eeb880b2f3330b"}},
-{"id":"macrotest","key":"macrotest","value":{"rev":"10-2c6ceffb38f8ce5b0f382dbb02720d70"}},
-{"id":"maddy","key":"maddy","value":{"rev":"9-93d59c65c3f44aa6ed43dc986dd73ca5"}},
-{"id":"madmimi-node","key":"madmimi-node","value":{"rev":"11-257e1b1bd5ee5194a7052542952b8b7a"}},
-{"id":"maga","key":"maga","value":{"rev":"24-c69734f9fc138788db741b862f889583"}},
-{"id":"magic","key":"magic","value":{"rev":"34-aed787cc30ab86c95f547b9555d6a381"}},
-{"id":"magic-templates","key":"magic-templates","value":{"rev":"3-89546e9a038150cf419b4b15a84fd2aa"}},
-{"id":"magickal","key":"magickal","value":{"rev":"3-e9ed74bb90df0a52564d47aed0451ce7"}},
-{"id":"mai","key":"mai","value":{"rev":"5-f3561fe6de2bd25201250ddb6dcf9f01"}},
-{"id":"mail","key":"mail","value":{"rev":"14-9ae558552e6a7c11017f118a71c072e9"}},
-{"id":"mail-stack","key":"mail-stack","value":{"rev":"5-c82567203540076cf4878ea1ab197b52"}},
-{"id":"mailbox","key":"mailbox","value":{"rev":"12-0b582e127dd7cf669de16ec36f8056a4"}},
-{"id":"mailchimp","key":"mailchimp","value":{"rev":"23-3d9328ee938b7940322351254ea54877"}},
-{"id":"mailer","key":"mailer","value":{"rev":"40-7b251b758f9dba4667a3127195ea0380"}},
-{"id":"mailer-bal","key":"mailer-bal","value":{"rev":"3-fc8265b1905ea37638309d7c10852050"}},
-{"id":"mailer-fixed","key":"mailer-fixed","value":{"rev":"13-3004df43c62eb64ed5fb0306b019fe66"}},
-{"id":"mailgun","key":"mailgun","value":{"rev":"25-29de1adb355636822dc21fef51f37aed"}},
-{"id":"mailparser","key":"mailparser","value":{"rev":"14-7142e4168046418afc4a76d1b330f302"}},
-{"id":"mailto-parser","key":"mailto-parser","value":{"rev":"3-f8dea7b60c0e993211f81a86dcf5b18d"}},
-{"id":"makeerror","key":"makeerror","value":{"rev":"17-ceb9789357d80467c9ae75caa64ca8ac"}},
-{"id":"malt","key":"malt","value":{"rev":"7-e5e76a842eb0764a5ebe57290b629097"}},
-{"id":"mango","key":"mango","value":{"rev":"7-6224e74a3132e54f294f62998ed9127f"}},
-{"id":"map-reduce","key":"map-reduce","value":{"rev":"11-a81d8bdc6dae7e7b76d5df74fff40ae1"}},
-{"id":"mapnik","key":"mapnik","value":{"rev":"64-693f5b957b7faf361c2cc2a22747ebf7"}},
-{"id":"maptail","key":"maptail","value":{"rev":"14-8334618ddc20006a5f77ff35b172c152"}},
-{"id":"marak","key":"marak","value":{"rev":"3-27be187af00fc97501035dfb97a11ecf"}},
-{"id":"markdoc","key":"markdoc","value":{"rev":"13-23becdeda44b26ee54c9aaa31457e4ba"}},
-{"id":"markdom","key":"markdom","value":{"rev":"10-3c0df12e4f4a2e675d0f0fde48aa425f"}},
-{"id":"markdown","key":"markdown","value":{"rev":"19-88e02c28ce0179be900bf9e6aadc070f"}},
-{"id":"markdown-js","key":"markdown-js","value":{"rev":"6-964647c2509850358f70f4e23670fbeb"}},
-{"id":"markdown-wiki","key":"markdown-wiki","value":{"rev":"6-ce35fb0612a463db5852c5d3dcc7fdd3"}},
-{"id":"markdown2html","key":"markdown2html","value":{"rev":"3-549babe5d9497785fa8b9305c81d7214"}},
-{"id":"marked","key":"marked","value":{"rev":"21-9371df65f63131c9f24e8805db99a7d9"}},
-{"id":"markov","key":"markov","value":{"rev":"13-9ab795448c54ef87851f1392d6f3671a"}},
-{"id":"maryjane","key":"maryjane","value":{"rev":"3-e2e6cce443850b5df1554bf851d16760"}},
-{"id":"massagist","key":"massagist","value":{"rev":"11-cac3a103aecb4ff3f0f607aca2b1d3fb"}},
-{"id":"masson","key":"masson","value":{"rev":"10-87a5e6fd05bd4b8697fa3fa636238c20"}},
-{"id":"masstransit","key":"masstransit","value":{"rev":"11-74898c746e541ff1a00438017ee66d4a"}},
-{"id":"matchmaker","key":"matchmaker","value":{"rev":"3-192db6fb162bdf84fa3e858092fd3e20"}},
-{"id":"math","key":"math","value":{"rev":"5-16a74d8639e44a5ccb265ab1a3b7703b"}},
-{"id":"math-lexer","key":"math-lexer","value":{"rev":"19-54b42374b0090eeee50f39cb35f2eb40"}},
-{"id":"matrices","key":"matrices","value":{"rev":"43-06d64271a5148f89d649645712f8971f"}},
-{"id":"matrix","key":"matrix","value":{"rev":"3-77cff57242445cf3d76313b72bbc38f4"}},
-{"id":"matrixlib","key":"matrixlib","value":{"rev":"11-b3c105a5e5be1835183e7965d04825d9"}},
-{"id":"matterhorn","key":"matterhorn","value":{"rev":"9-a310dba2ea054bdce65e6df2f6ae85e5"}},
-{"id":"matterhorn-dust","key":"matterhorn-dust","value":{"rev":"3-2fb311986d62cf9f180aa76038ebf7b3"}},
-{"id":"matterhorn-gui","key":"matterhorn-gui","value":{"rev":"3-7921b46c9bff3ee82e4b32bc0a0a977d"}},
-{"id":"matterhorn-prng","key":"matterhorn-prng","value":{"rev":"3-c33fd59c1f1d24fb423553ec242e444b"}},
-{"id":"matterhorn-standard","key":"matterhorn-standard","value":{"rev":"13-0aaab6ecf55cdad6f773736da968afba"}},
-{"id":"matterhorn-state","key":"matterhorn-state","value":{"rev":"3-0ba8fd8a4c644b18aff34f1aef95db33"}},
-{"id":"matterhorn-user","key":"matterhorn-user","value":{"rev":"17-e42dc37a5cb24710803b3bd8dee7484d"}},
-{"id":"matterhorn-view","key":"matterhorn-view","value":{"rev":"3-b39042d665f5912d02e724d33d129a97"}},
-{"id":"mbtiles","key":"mbtiles","value":{"rev":"41-b92035d0ec8f47850734c4bb995baf7d"}},
-{"id":"mcast","key":"mcast","value":{"rev":"8-559b2b09cfa34cb88c16ae72ec90d28a"}},
-{"id":"md5","key":"md5","value":{"rev":"3-43d600c70f6442d3878c447585bf43bf"}},
-{"id":"mdgram","key":"mdgram","value":{"rev":"15-4d65cf0d5edef976de9a612c0cde0907"}},
-{"id":"mdns","key":"mdns","value":{"rev":"11-8b6789c3779fce7f019f9f10c625147a"}},
-{"id":"mecab-binding","key":"mecab-binding","value":{"rev":"3-3395763d23a3f8e3e00ba75cb988f9b4"}},
-{"id":"mechanize","key":"mechanize","value":{"rev":"5-94b72f43e270aa24c00e283fa52ba398"}},
-{"id":"mediatags","key":"mediatags","value":{"rev":"3-d5ea41e140fbbc821590cfefdbd016a5"}},
-{"id":"mediator","key":"mediator","value":{"rev":"3-42aac2225b47f72f97001107a3d242f5"}},
-{"id":"memcache","key":"memcache","value":{"rev":"5-aebcc4babe11b654afd3cede51e945ec"}},
-{"id":"memcached","key":"memcached","value":{"rev":"9-7c46464425c78681a8e6767ef9993c4c"}},
-{"id":"memcouchd","key":"memcouchd","value":{"rev":"3-b57b9fb4f6c60604f616c2f70456b4d6"}},
-{"id":"meme","key":"meme","value":{"rev":"11-53fcb51e1d8f8908b95f0fa12788e9aa"}},
-{"id":"memo","key":"memo","value":{"rev":"9-3a9ca97227ed19cacdacf10ed193ee8b"}},
-{"id":"memoize","key":"memoize","value":{"rev":"15-44bdd127c49035c8bd781a9299c103c2"}},
-{"id":"memoizer","key":"memoizer","value":{"rev":"9-d9a147e8c8a58fd7e8f139dc902592a6"}},
-{"id":"memorystream","key":"memorystream","value":{"rev":"9-6d0656067790e158f3c4628968ed70d3"}},
-{"id":"memstore","key":"memstore","value":{"rev":"5-03dcac59882c8a434e4c2fe2ac354941"}},
-{"id":"mercury","key":"mercury","value":{"rev":"3-147af865af6f7924f44f14f4b5c14dac"}},
-{"id":"mersenne","key":"mersenne","value":{"rev":"7-d8ae550eb8d0deaa1fd60f86351cb548"}},
-{"id":"meryl","key":"meryl","value":{"rev":"23-2c0e3fad99005109c584530e303bc5bf"}},
-{"id":"mesh","key":"mesh","value":{"rev":"5-f3ea4aef5b3f169eab8b518e5044c950"}},
-{"id":"meta-promise","key":"meta-promise","value":{"rev":"5-0badf85ab432341e6256252463468b89"}},
-{"id":"meta-test","key":"meta-test","value":{"rev":"49-92df2922499960ac750ce96d861ddd7e"}},
-{"id":"meta_code","key":"meta_code","value":{"rev":"7-9b4313c0c52a09c788464f1fea05baf7"}},
-{"id":"metamanager","key":"metamanager","value":{"rev":"5-dbb0312dad15416d540eb3d860fbf205"}},
-{"id":"metaweblog","key":"metaweblog","value":{"rev":"3-d3ab090ec27242e220412d6413e388ee"}},
-{"id":"metric","key":"metric","value":{"rev":"3-8a706db5b518421ad640a75e65cb4be9"}},
-{"id":"metrics","key":"metrics","value":{"rev":"13-62e5627c1ca5e6d3b3bde8d17e675298"}},
-{"id":"metrics-broker","key":"metrics-broker","value":{"rev":"15-0fdf57ea4ec84aa1f905f53b4975e72d"}},
-{"id":"mhash","key":"mhash","value":{"rev":"3-f00d65dc939474a5c508d37a327e5074"}},
-{"id":"micro","key":"micro","value":{"rev":"17-882c0ecf34ddaef5c673c547ae80b80b"}},
-{"id":"microcache","key":"microcache","value":{"rev":"3-ef75e04bc6e86d14f93ad9c429503bd9"}},
-{"id":"microevent","key":"microevent","value":{"rev":"3-9c0369289b62873ef6e8624eef724d15"}},
-{"id":"microtest","key":"microtest","value":{"rev":"11-11afdadfb15c1db030768ce52f34de1a"}},
-{"id":"microtime","key":"microtime","value":{"rev":"20-5f75e87316cbb5f7a4be09142cd755e5"}},
-{"id":"middlefiddle","key":"middlefiddle","value":{"rev":"13-bb94c05d75c24bdeb23a4637c7ecf55e"}},
-{"id":"middleware","key":"middleware","value":{"rev":"5-80937a4c620fcc2a5532bf064ec0837b"}},
-{"id":"midi","key":"midi","value":{"rev":"9-96da6599a84a761430adfd41deb3969a"}},
-{"id":"midi-js","key":"midi-js","value":{"rev":"11-1d174af1352e3d37f6ec0df32d56ce1a"}},
-{"id":"migrate","key":"migrate","value":{"rev":"13-7493879fb60a31b9e2a9ad19e94bfef6"}},
-{"id":"mikronode","key":"mikronode","value":{"rev":"31-1edae4ffbdb74c43ea584a7757dacc9b"}},
-{"id":"milk","key":"milk","value":{"rev":"21-81fb117817ed2e4c19e16dc310c09735"}},
-{"id":"millstone","key":"millstone","value":{"rev":"29-73d54de4b4de313b0fec4edfaec741a4"}},
-{"id":"mime","key":"mime","value":{"rev":"33-de72b641474458cb21006dea6a524ceb"}},
-{"id":"mime-magic","key":"mime-magic","value":{"rev":"13-2df6b966d7f29d5ee2dd2e1028d825b1"}},
-{"id":"mimelib","key":"mimelib","value":{"rev":"9-7994cf0fe3007329b9397f4e08481487"}},
-{"id":"mimelib-noiconv","key":"mimelib-noiconv","value":{"rev":"5-c84995d4b2bbe786080c9b54227b5bb4"}},
-{"id":"mimeograph","key":"mimeograph","value":{"rev":"37-bead083230f48f354f3ccac35e11afc0"}},
-{"id":"mimeparse","key":"mimeparse","value":{"rev":"8-5ca7e6702fe7f1f37ed31b05e82f4a87"}},
-{"id":"mingy","key":"mingy","value":{"rev":"19-09b19690c55abc1e940374e25e9a0d26"}},
-{"id":"mini-lzo-wrapper","key":"mini-lzo-wrapper","value":{"rev":"4-d751d61f481363a2786ac0312893dfca"}},
-{"id":"miniee","key":"miniee","value":{"rev":"5-be0833a9f15382695f861a990f3d6108"}},
-{"id":"minifyjs","key":"minifyjs","value":{"rev":"13-f255df8c7567440bc4c0f8eaf04a18c6"}},
-{"id":"minimal","key":"minimal","value":{"rev":"5-6be6b3454d30c59a30f9ee8af0ee606c"}},
-{"id":"minimal-test","key":"minimal-test","value":{"rev":"15-65dca2c1ee27090264577cc8b93983cb"}},
-{"id":"minimatch","key":"minimatch","value":{"rev":"11-449e570c76f4e6015c3dc90f080f8c47"}},
-{"id":"minirpc","key":"minirpc","value":{"rev":"10-e85b92273a97fa86e20faef7a3b50518"}},
-{"id":"ministore","key":"ministore","value":{"rev":"11-f131868141ccd0851bb91800c86dfff1"}},
-{"id":"minitest","key":"minitest","value":{"rev":"13-c92e32499a25ff2d7e484fbbcabe1081"}},
-{"id":"miniweb","key":"miniweb","value":{"rev":"3-e8c413a77e24891138eaa9e73cb08715"}},
-{"id":"minj","key":"minj","value":{"rev":"9-ccf50caf8e38b0fc2508f01a63f80510"}},
-{"id":"minotaur","key":"minotaur","value":{"rev":"29-6d048956b26e8a213f6ccc96027bacde"}},
-{"id":"mirror","key":"mirror","value":{"rev":"21-01bdd78ff03ca3f8f99fce104baab9f9"}},
-{"id":"misao-chan","key":"misao-chan","value":{"rev":"13-f032690f0897fc4a1dc12f1e03926627"}},
-{"id":"mite.node","key":"mite.node","value":{"rev":"13-0bfb15c4a6f172991756660b29869dd4"}},
-{"id":"mixable","key":"mixable","value":{"rev":"3-bc518ab862a6ceacc48952b9bec7d61a"}},
-{"id":"mixin","key":"mixin","value":{"rev":"3-3a7ae89345d21ceaf545d93b20caf2f2"}},
-{"id":"mixinjs","key":"mixinjs","value":{"rev":"3-064173d86b243316ef1b6c5743a60bf9"}},
-{"id":"mixpanel","key":"mixpanel","value":{"rev":"7-f742248bfbfc480658c4c46f7ab7a74a"}},
-{"id":"mixpanel-api","key":"mixpanel-api","value":{"rev":"5-61a3fa28921887344d1af339917e147a"}},
-{"id":"mixpanel_api","key":"mixpanel_api","value":{"rev":"3-11939b6fd20b80bf9537380875bf3996"}},
-{"id":"mjoe","key":"mjoe","value":{"rev":"3-8b3549cd6edcc03112217370b071b076"}},
-{"id":"mjsunit.runner","key":"mjsunit.runner","value":{"rev":"12-94c779b555069ca5fb0bc9688515673e"}},
-{"id":"mkdir","key":"mkdir","value":{"rev":"3-e8fd61b35638f1f3a65d36f09344ff28"}},
-{"id":"mkdirp","key":"mkdirp","value":{"rev":"15-c8eacf17b336ea98d1d9960f02362cbf"}},
-{"id":"mmap","key":"mmap","value":{"rev":"16-df335eb3257dfbd2fb0de341970d2656"}},
-{"id":"mmikulicic-thrift","key":"mmikulicic-thrift","value":{"rev":"3-f4a9f7a97bf50e966d1184fba423a07f"}},
-{"id":"mmmodel","key":"mmmodel","value":{"rev":"7-00d61723742a325aaaa6955ba52cef60"}},
-{"id":"mmodel","key":"mmodel","value":{"rev":"3-717309af27d6c5d98ed188c9c9438a37"}},
-{"id":"mmseg","key":"mmseg","value":{"rev":"17-794d553e67d6023ca3d58dd99fe1da15"}},
-{"id":"mobilize","key":"mobilize","value":{"rev":"25-8a657ec0accf8db2e8d7b935931ab77b"}},
-{"id":"mock","key":"mock","value":{"rev":"3-d8805bff4796462750071cddd3f75ea7"}},
-{"id":"mock-request","key":"mock-request","value":{"rev":"7-4ac4814c23f0899b1100d5f0617e40f4"}},
-{"id":"mock-request-response","key":"mock-request-response","value":{"rev":"5-fe1566c9881039a92a80e0e82a95f096"}},
-{"id":"mocket","key":"mocket","value":{"rev":"13-9001879cd3cb6f52f3b2d85fb14b8f9b"}},
-{"id":"modbus-stack","key":"modbus-stack","value":{"rev":"7-50c56e74d9cb02c5d936b0b44c54f621"}},
-{"id":"model","key":"model","value":{"rev":"3-174181c2f314f35fc289b7a921ba4d39"}},
-{"id":"models","key":"models","value":{"rev":"8-6cc2748edfd96679f9bb3596864874a9"}},
-{"id":"modestmaps","key":"modestmaps","value":{"rev":"8-79265968137a2327f98bfc6943a84da9"}},
-{"id":"modjewel","key":"modjewel","value":{"rev":"3-73efc7b9dc24d82cab1de249896193fd"}},
-{"id":"modlr","key":"modlr","value":{"rev":"17-ccf16db98ab6ccb95e005b3bb76dba64"}},
-{"id":"module-grapher","key":"module-grapher","value":{"rev":"19-b6ba30b41e29fc01d4b679a643f030e5"}},
-{"id":"modulr","key":"modulr","value":{"rev":"15-8e8ffd75c6c6149206de4ce0c2aefad7"}},
-{"id":"mogile","key":"mogile","value":{"rev":"5-79a8af20dbe6bff166ac2197a3998b0c"}},
-{"id":"mojo","key":"mojo","value":{"rev":"25-1d9c26d6afd6ea77253f220d86d60307"}},
-{"id":"monad","key":"monad","value":{"rev":"10-cf20354900b7e67d94c342feb06a1eb9"}},
-{"id":"mongeese","key":"mongeese","value":{"rev":"3-f4b319d98f9f73fb17cd3ebc7fc86412"}},
-{"id":"mongo-pool","key":"mongo-pool","value":{"rev":"3-215481828e69fd874b5938a79a7e0934"}},
-{"id":"mongodb","key":"mongodb","value":{"rev":"147-3dc09965e762787f34131a8739297383"}},
-{"id":"mongodb-async","key":"mongodb-async","value":{"rev":"7-ba9097bdc86b72885fa5a9ebb49a64d0"}},
-{"id":"mongodb-provider","key":"mongodb-provider","value":{"rev":"5-5523643b403e969e0b80c57db08cb9d3"}},
-{"id":"mongodb-rest","key":"mongodb-rest","value":{"rev":"36-60b4abc4a22f31de09407cc7cdd0834f"}},
-{"id":"mongodb-wrapper","key":"mongodb-wrapper","value":{"rev":"13-7a6c5eaff36ede45211aa80f3a506cfe"}},
-{"id":"mongodb_heroku","key":"mongodb_heroku","value":{"rev":"3-05947c1e06e1f8860c7809b063a8d1a0"}},
-{"id":"mongode","key":"mongode","value":{"rev":"11-faa14f050da4a165e2568d413a6b8bc0"}},
-{"id":"mongojs","key":"mongojs","value":{"rev":"26-a628eb51534ffcdd97c1a940d460a52c"}},
-{"id":"mongolia","key":"mongolia","value":{"rev":"76-711c39de0e152e224d4118c9b0de834f"}},
-{"id":"mongolian","key":"mongolian","value":{"rev":"44-3773671b31c406a18cb9f5a1764ebee4"}},
-{"id":"mongoose","key":"mongoose","value":{"rev":"181-03a8aa7f691cbd987995bf6e3354e0f5"}},
-{"id":"mongoose-admin","key":"mongoose-admin","value":{"rev":"7-59078ad5a345e9e66574346d3e70f9ad"}},
-{"id":"mongoose-auth","key":"mongoose-auth","value":{"rev":"49-87c79f3a6164c438a53b7629be87ae5d"}},
-{"id":"mongoose-autoincr","key":"mongoose-autoincr","value":{"rev":"3-9c4dd7c3fdcd8621166665a68fccb602"}},
-{"id":"mongoose-closures","key":"mongoose-closures","value":{"rev":"3-2ff9cff790f387f2236a2c7382ebb55b"}},
-{"id":"mongoose-crypt","key":"mongoose-crypt","value":{"rev":"3-d77ffbf250e39fcc290ad37824fe2236"}},
-{"id":"mongoose-dbref","key":"mongoose-dbref","value":{"rev":"29-02090b9904fd6f5ce72afcfa729f7c96"}},
-{"id":"mongoose-flatmatcher","key":"mongoose-flatmatcher","value":{"rev":"5-4f0565901e8b588cc562ae457ad975a6"}},
-{"id":"mongoose-helpers","key":"mongoose-helpers","value":{"rev":"3-3a57e9819e24c9b0f5b5eabe41037092"}},
-{"id":"mongoose-joins","key":"mongoose-joins","value":{"rev":"3-9bae444730a329473421f50cba1c86a7"}},
-{"id":"mongoose-misc","key":"mongoose-misc","value":{"rev":"3-bcd7f3f450cf6ed233d042ac574409ce"}},
-{"id":"mongoose-relationships","key":"mongoose-relationships","value":{"rev":"9-6155a276b162ec6593b8542f0f769024"}},
-{"id":"mongoose-rest","key":"mongoose-rest","value":{"rev":"29-054330c035adf842ab34423215995113"}},
-{"id":"mongoose-spatial","key":"mongoose-spatial","value":{"rev":"3-88660dabd485edcaa29a2ea01afb90bd"}},
-{"id":"mongoose-temporal","key":"mongoose-temporal","value":{"rev":"3-1dd736395fe9be95498e588df502b7bb"}},
-{"id":"mongoose-types","key":"mongoose-types","value":{"rev":"13-8126458b91ef1bf46e582042f5dbd015"}},
-{"id":"mongoose-units","key":"mongoose-units","value":{"rev":"3-5fcdb7aedb1d5cff6e18ee1352c3d0f7"}},
-{"id":"mongoq","key":"mongoq","value":{"rev":"11-2060d674d5f8a964e800ed4470b92587"}},
-{"id":"mongoskin","key":"mongoskin","value":{"rev":"13-5a7bfacd9e9b95ec469f389751e7e435"}},
-{"id":"mongous","key":"mongous","value":{"rev":"3-4d98b4a4bfdd6d9f46342002a69d8d3a"}},
-{"id":"mongrel2","key":"mongrel2","value":{"rev":"3-93156356e478f30fc32455054e384b80"}},
-{"id":"monguava","key":"monguava","value":{"rev":"9-69ec50128220aba3e16128a4be2799c0"}},
-{"id":"mongueue","key":"mongueue","value":{"rev":"9-fc8d9df5bf15f5a25f68cf58866f11fe"}},
-{"id":"moniker","key":"moniker","value":{"rev":"5-a139616b725ddfdd1db6a376fb6584f7"}},
-{"id":"monitor","key":"monitor","value":{"rev":"56-44d2b8b7dec04b3f320f7dc4a1704c53"}},
-{"id":"monome","key":"monome","value":{"rev":"3-2776736715cbfc045bf7b42e70ccda9c"}},
-{"id":"monomi","key":"monomi","value":{"rev":"6-b6b745441f157cc40c846d23cd14297a"}},
-{"id":"moof","key":"moof","value":{"rev":"13-822b4ebf873b720bd4c7e16fcbbbbb3d"}},
-{"id":"moonshado","key":"moonshado","value":{"rev":"3-b54de1aef733c8fa118fa7cf6af2fb9b"}},
-{"id":"moose","key":"moose","value":{"rev":"5-e11c8b7c09826e3431ed3408ee874779"}},
-{"id":"mootools","key":"mootools","value":{"rev":"9-39f5535072748ccd3cf0212ef4c3d4fa"}},
-{"id":"mootools-array","key":"mootools-array","value":{"rev":"3-d1354704a9fe922d969c2bf718e0dc53"}},
-{"id":"mootools-browser","key":"mootools-browser","value":{"rev":"3-ce0946b357b6ddecc128febef2c5d720"}},
-{"id":"mootools-class","key":"mootools-class","value":{"rev":"3-0ea815d28b61f3880087e3f4b8668354"}},
-{"id":"mootools-class-extras","key":"mootools-class-extras","value":{"rev":"3-575796745bd169c35f4fc0019bb36b76"}},
-{"id":"mootools-client","key":"mootools-client","value":{"rev":"3-b658c331f629f80bfe17c3e6ed44c525"}},
-{"id":"mootools-cookie","key":"mootools-cookie","value":{"rev":"3-af93588531e5a52c76a8e7a4eac3612a"}},
-{"id":"mootools-core","key":"mootools-core","value":{"rev":"3-01b1678fc56d94d29566b7853ad56059"}},
-{"id":"mootools-domready","key":"mootools-domready","value":{"rev":"3-0fc6620e2c8f7d107816cace9c099633"}},
-{"id":"mootools-element","key":"mootools-element","value":{"rev":"3-bac857c1701c91207d1ec6d1eb002d07"}},
-{"id":"mootools-element-dimensions","key":"mootools-element-dimensions","value":{"rev":"3-d82df62b3e97122ad0a7668efb7ba776"}},
-{"id":"mootools-element-event","key":"mootools-element-event","value":{"rev":"3-a30380151989ca31851cf751fcd55e9a"}},
-{"id":"mootools-element-style","key":"mootools-element-style","value":{"rev":"3-6103fa8551a21dc592e410dc7df647f8"}},
-{"id":"mootools-event","key":"mootools-event","value":{"rev":"3-7327279ec157de8c47f3ee24615ead95"}},
-{"id":"mootools-function","key":"mootools-function","value":{"rev":"3-eb3ee17acf40d6cc05463cb88edc6f5e"}},
-{"id":"mootools-fx","key":"mootools-fx","value":{"rev":"3-757ab6c8423e8c434d1ee783ea28cdb5"}},
-{"id":"mootools-fx-css","key":"mootools-fx-css","value":{"rev":"3-8eb0cf468c826b9c485835fab94837e7"}},
-{"id":"mootools-fx-morph","key":"mootools-fx-morph","value":{"rev":"3-b91310f8a81221592970fe7632bd9f7a"}},
-{"id":"mootools-fx-transitions","key":"mootools-fx-transitions","value":{"rev":"3-a1ecde35dfbb80f3a6062005758bb934"}},
-{"id":"mootools-fx-tween","key":"mootools-fx-tween","value":{"rev":"3-39497defbffdf463932cc9f00cde8d5d"}},
-{"id":"mootools-json","key":"mootools-json","value":{"rev":"3-69deb6679a5d1d49f22e19834ae07c32"}},
-{"id":"mootools-more","key":"mootools-more","value":{"rev":"3-d8f46ce319ca0e3deb5fc04ad5f73cb9"}},
-{"id":"mootools-number","key":"mootools-number","value":{"rev":"3-9f4494883ac39f93734fea9af6ef2fc5"}},
-{"id":"mootools-object","key":"mootools-object","value":{"rev":"3-c9632dfa793ab4d9ad4b68a2e27f09fc"}},
-{"id":"mootools-request","key":"mootools-request","value":{"rev":"3-663e5472f351eea3b7488ee441bc6a61"}},
-{"id":"mootools-request-html","key":"mootools-request-html","value":{"rev":"3-0ab9576c11a564d44b3c3ca3ef3dc240"}},
-{"id":"mootools-request-json","key":"mootools-request-json","value":{"rev":"3-c0359201c94ba1684ea6336e35cd70c2"}},
-{"id":"mootools-server","key":"mootools-server","value":{"rev":"3-98e89499f6eab137bbab053a3932a526"}},
-{"id":"mootools-slick-finder","key":"mootools-slick-finder","value":{"rev":"3-9a5820e90d6ea2d797268f3c60a9f177"}},
-{"id":"mootools-slick-parser","key":"mootools-slick-parser","value":{"rev":"3-d4e6b1673e6e2a6bcc66bf4988b2994d"}},
-{"id":"mootools-string","key":"mootools-string","value":{"rev":"3-2fda1c7915295df62e547018a7f05916"}},
-{"id":"mootools-swiff","key":"mootools-swiff","value":{"rev":"3-f0edeead85f3d48cf2af2ca35a4e67a5"}},
-{"id":"mootools.js","key":"mootools.js","value":{"rev":"3-085e50e3529d19e1d6ad630027ba51dc"}},
-{"id":"morestreams","key":"morestreams","value":{"rev":"7-3d0145c2cfb9429dfdcfa872998c9fe8"}},
-{"id":"morpheus","key":"morpheus","value":{"rev":"45-04335640f709335d1828523425a87909"}},
-{"id":"morton","key":"morton","value":{"rev":"11-abd787350e21bef65c1c6776e40a0753"}},
-{"id":"mothermayi","key":"mothermayi","value":{"rev":"5-2c46f9873efd19f543def5eeda0a05f1"}},
-{"id":"mountable-proxy","key":"mountable-proxy","value":{"rev":"7-3b91bd0707447885676727ad183bb051"}},
-{"id":"move","key":"move","value":{"rev":"69-ce11c235c78de6d6184a86aaa93769eb"}},
-{"id":"moviesearch","key":"moviesearch","value":{"rev":"3-72e77965a44264dfdd5af23e4a36d2ce"}},
-{"id":"mp","key":"mp","value":{"rev":"3-47899fb2bdaf21dda16abd037b325c3b"}},
-{"id":"mpdsocket","key":"mpdsocket","value":{"rev":"3-2dd4c9bb019f3f491c55364be7a56229"}},
-{"id":"mrcolor","key":"mrcolor","value":{"rev":"3-4695b11798a65c61714b8f236a40936c"}},
-{"id":"msgbus","key":"msgbus","value":{"rev":"27-a5d861b55c933842226d4e536820ec99"}},
-{"id":"msgme","key":"msgme","value":{"rev":"3-d1968af1234a2059eb3d84eb76cdaa4e"}},
-{"id":"msgpack","key":"msgpack","value":{"rev":"9-ecf7469392d87460ddebef2dd369b0e5"}},
-{"id":"msgpack-0.4","key":"msgpack-0.4","value":{"rev":"3-5d509ddba6c53ed6b8dfe4afb1d1661d"}},
-{"id":"msgpack2","key":"msgpack2","value":{"rev":"4-63b8f3ccf35498eb5c8bd9b8d683179b"}},
-{"id":"mu","key":"mu","value":{"rev":"7-7a8ce1cba5d6d98e696c4e633aa081fa"}},
-{"id":"mu2","key":"mu2","value":{"rev":"3-4ade1c5b1496c720312beae1822da9de"}},
-{"id":"mud","key":"mud","value":{"rev":"66-56e1b1a1e5af14c3df0520c58358e7cd"}},
-{"id":"muffin","key":"muffin","value":{"rev":"22-210c45a888fe1f095becdcf11876a2bc"}},
-{"id":"multi-node","key":"multi-node","value":{"rev":"1-224161d875f0e1cbf4b1e249603c670a"}},
-{"id":"multicast-eventemitter","key":"multicast-eventemitter","value":{"rev":"13-ede3e677d6e21bbfe42aad1b549a137c"}},
-{"id":"multimeter","key":"multimeter","value":{"rev":"7-847f45a6f592a8410a77d3e5efb5cbf3"}},
-{"id":"multipart-stack","key":"multipart-stack","value":{"rev":"9-85aaa2ed2180d3124d1dcd346955b672"}},
-{"id":"muse","key":"muse","value":{"rev":"3-d6bbc06df2e359d6ef285f9da2bd0efd"}},
-{"id":"musicmetadata","key":"musicmetadata","value":{"rev":"21-957bf986aa9d0db02175ea1d79293909"}},
-{"id":"mustache","key":"mustache","value":{"rev":"6-7f8458f2b52de5b37004b105c0f39e62"}},
-{"id":"mustachio","key":"mustachio","value":{"rev":"9-6ed3f41613f886128acd18b73b55439f"}},
-{"id":"mutex","key":"mutex","value":{"rev":"3-de95bdff3dd00271361067b5d70ea03b"}},
-{"id":"muzak","key":"muzak","value":{"rev":"9-5ff968ffadebe957b72a8b77b538b71c"}},
-{"id":"mvc","key":"mvc","value":{"rev":"52-7c954b6c3b90b1b734d8e8c3d2d34f5e"}},
-{"id":"mvc.coffee","key":"mvc.coffee","value":{"rev":"3-f203564ed70c0284455e7f96ea61fdb7"}},
-{"id":"mypackage","key":"mypackage","value":{"rev":"3-49cc95fb2e5ac8ee3dbbab1de451c0d1"}},
-{"id":"mypakege","key":"mypakege","value":{"rev":"3-e74d7dc2c2518304ff1700cf295eb823"}},
-{"id":"myrtle-parser","key":"myrtle-parser","value":{"rev":"3-9089c1a2f3c3a24f0bce3941bc1d534d"}},
-{"id":"mysql","key":"mysql","value":{"rev":"30-a8dc68eb056cb6f69fae2423c1337474"}},
-{"id":"mysql-activerecord","key":"mysql-activerecord","value":{"rev":"17-9d21d0b10a5c84f6cacfd8d2236f9887"}},
-{"id":"mysql-client","key":"mysql-client","value":{"rev":"5-cc877218864c319d17f179e49bf58c99"}},
-{"id":"mysql-helper","key":"mysql-helper","value":{"rev":"3-c6f3b9f00cd9fee675aa2a9942cc336a"}},
-{"id":"mysql-libmysqlclient","key":"mysql-libmysqlclient","value":{"rev":"38-51c08e24257b99bf5591232016ada8ab"}},
-{"id":"mysql-native","key":"mysql-native","value":{"rev":"12-0592fbf66c55e6e9db6a75c97be088c3"}},
-{"id":"mysql-native-prerelease","key":"mysql-native-prerelease","value":{"rev":"7-b1a6f3fc41f6c152f3b178e13f91b5c4"}},
-{"id":"mysql-oil","key":"mysql-oil","value":{"rev":"9-70c07b9c552ff592be8ca89ea6efa408"}},
-{"id":"mysql-pool","key":"mysql-pool","value":{"rev":"15-41f510c45174b6c887856120ce3d5a3b"}},
-{"id":"mysql-simple","key":"mysql-simple","value":{"rev":"13-7ee13f035e8ebcbc27f6fe910058aee9"}},
-{"id":"n","key":"n","value":{"rev":"31-bfaed5022beae2177a090c4c8fce82a4"}},
-{"id":"n-ext","key":"n-ext","value":{"rev":"3-5ad67a300f8e88ef1dd58983c9061bc1"}},
-{"id":"n-pubsub","key":"n-pubsub","value":{"rev":"3-af990bcbf9f94554365788b81715d3b4"}},
-{"id":"n-rest","key":"n-rest","value":{"rev":"7-42f1d92f9229f126a1b063ca27bfc85b"}},
-{"id":"n-util","key":"n-util","value":{"rev":"6-d0c59c7412408bc94e20de4d22396d79"}},
-{"id":"nMemcached","key":"nMemcached","value":{"rev":"3-be350fd46624a1cac0052231101e0594"}},
-{"id":"nStoreSession","key":"nStoreSession","value":{"rev":"3-a3452cddd2b9ff8edb6d46999fa5b0eb"}},
-{"id":"nTPL","key":"nTPL","value":{"rev":"41-16a54848286364d894906333b0c1bb2c"}},
-{"id":"nTunes","key":"nTunes","value":{"rev":"18-76bc566a504100507056316fe8d3cc35"}},
-{"id":"nabe","key":"nabe","value":{"rev":"13-dc93f35018e84a23ace4d5114fa1bb28"}},
-{"id":"nack","key":"nack","value":{"rev":"118-f629c8c208c76fa0c2ce66d21f927ee4"}},
-{"id":"nagari","key":"nagari","value":{"rev":"11-cb200690c6d606d8597178e492b54cde"}},
-{"id":"nailplate","key":"nailplate","value":{"rev":"11-e1532c42d9d83fc32942dec0b87df587"}},
-{"id":"nails","key":"nails","value":{"rev":"12-f472bf005c4a4c2b49fb0118b109bef1"}},
-{"id":"nake","key":"nake","value":{"rev":"11-250933df55fbe7bb19e34a84ed23ca3e"}},
-{"id":"named-routes","key":"named-routes","value":{"rev":"6-ffbdd4caa74a30e87aa6dbb36f2b967c"}},
-{"id":"namespace","key":"namespace","value":{"rev":"7-89e2850e14206af13f26441e75289878"}},
-{"id":"namespaces","key":"namespaces","value":{"rev":"11-7a9b3d2537438211021a472035109f3c"}},
-{"id":"nami","key":"nami","value":{"rev":"29-3d44b1338222a4d994d4030868a94ea8"}},
-{"id":"nano","key":"nano","value":{"rev":"105-50efc49a8f6424706af554872002c014"}},
-{"id":"nanostate","key":"nanostate","value":{"rev":"9-1664d985e8cdbf16e150ba6ba4d79ae5"}},
-{"id":"narcissus","key":"narcissus","value":{"rev":"3-46581eeceff566bd191a14dec7b337f6"}},
-{"id":"nariya","key":"nariya","value":{"rev":"13-d83b8b6162397b154a4b59553be225e9"}},
-{"id":"narrativ","key":"narrativ","value":{"rev":"9-ef215eff6bf222425f73d23e507f7ff3"}},
-{"id":"narrow","key":"narrow","value":{"rev":"5-c6963048ba02adaf819dc51815fa0015"}},
-{"id":"narwhal","key":"narwhal","value":{"rev":"6-13bf3f87e6cfb1e57662cc3e3be450fc"}},
-{"id":"narwhal-lib","key":"narwhal-lib","value":{"rev":"6-4722d9b35fed59a2e8f7345a1eb6769d"}},
-{"id":"nat","key":"nat","value":{"rev":"3-da0906c08792043546f98ace8ce59a78"}},
-{"id":"native2ascii","key":"native2ascii","value":{"rev":"3-9afd51209d67303a8ee807ff862e31fc"}},
-{"id":"nativeUtil","key":"nativeUtil","value":{"rev":"7-6e3e9757b436ebcee35a20e633c08d60"}},
-{"id":"natives","key":"natives","value":{"rev":"24-6c4269c9c7cfb52571bd2c94fa26efc6"}},
-{"id":"natural","key":"natural","value":{"rev":"110-fc92701ad8525f45fbdb5863959ca03c"}},
-{"id":"naturalsort","key":"naturalsort","value":{"rev":"3-4321f5e432aee224af0fee9e4fb901ff"}},
-{"id":"nave","key":"nave","value":{"rev":"29-79baa66065fa9075764cc3e5da2edaef"}},
-{"id":"navigator","key":"navigator","value":{"rev":"3-f2f4f5376afb10753006f40bd49689c3"}},
-{"id":"nbs-api","key":"nbs-api","value":{"rev":"3-94949b1f0797369abc0752482268ef08"}},
-{"id":"nbt","key":"nbt","value":{"rev":"3-b711b9db76f64449df7f43c659ad8e7f"}},
-{"id":"nclosure","key":"nclosure","value":{"rev":"9-042b39740a39f0556d0dc2c0990b7fa8"}},
-{"id":"nclosureultimate","key":"nclosureultimate","value":{"rev":"3-61ff4bc480239304c459374c9a5f5754"}},
-{"id":"nconf","key":"nconf","value":{"rev":"65-8d8c0d2c6d5d9d526b8a3f325f68eca1"}},
-{"id":"nconf-redis","key":"nconf-redis","value":{"rev":"5-21ae138633b20cb29ed49b9fcd425e10"}},
-{"id":"ncp","key":"ncp","value":{"rev":"23-6441091c6c27ecb5b99f5781299a2192"}},
-{"id":"ncss","key":"ncss","value":{"rev":"9-1d2330e0fdbc40f0810747c2b156ecf2"}},
-{"id":"ncurses","key":"ncurses","value":{"rev":"12-bb059ea6fee12ca77f1fbb7bb6dd9447"}},
-{"id":"ndb","key":"ndb","value":{"rev":"15-b3e826f68a57095413666e9fe74589da"}},
-{"id":"ndistro","key":"ndistro","value":{"rev":"3-fcda3c018d11000b2903ad7104b60b35"}},
-{"id":"ndns","key":"ndns","value":{"rev":"5-1aeaaca119be44af7a83207d76f263fc"}},
-{"id":"nebulog","key":"nebulog","value":{"rev":"3-1863b0ce17cc0f07a50532a830194254"}},
-{"id":"neco","key":"neco","value":{"rev":"43-e830913302b52012ab63177ecf292822"}},
-{"id":"ned","key":"ned","value":{"rev":"15-4230c69fb52dfddfd65526dcfe5c4ec6"}},
-{"id":"nedis","key":"nedis","value":{"rev":"7-d49e329dca586d1a3569266f0595c9ad"}},
-{"id":"neko","key":"neko","value":{"rev":"60-13aa87d2278c3a734733cff2a34a7970"}},
-{"id":"neo4j","key":"neo4j","value":{"rev":"7-dde7066eac32a405df95ccf9c50c8ae7"}},
-{"id":"nerve","key":"nerve","value":{"rev":"3-2c47b79586d7930aabf9325ca88ad7e8"}},
-{"id":"nest","key":"nest","value":{"rev":"23-560d67971e9acddacf087608306def24"}},
-{"id":"nestableflow","key":"nestableflow","value":{"rev":"5-ee8af667a84d333fcc8092c89f4189c3"}},
-{"id":"nestor","key":"nestor","value":{"rev":"3-f1affbc37be3bf4e337365bd172578dc"}},
-{"id":"net","key":"net","value":{"rev":"3-895103ee532ef31396d9c06764df1ed8"}},
-{"id":"netiface","key":"netiface","value":{"rev":"3-885c94284fd3a9601afe291ab68aca84"}},
-{"id":"netpool","key":"netpool","value":{"rev":"3-dadfd09b9eb7ef73e2bff34a381de207"}},
-{"id":"netstring","key":"netstring","value":{"rev":"9-d26e7bf4a3ce5eb91bb1889d362f71e6"}},
-{"id":"neuron","key":"neuron","value":{"rev":"11-edaed50492368ff39eaf7d2004d7f4d8"}},
-{"id":"new","key":"new","value":{"rev":"3-7789b37104d8161b7ccf898a9cda1fc6"}},
-{"id":"newforms","key":"newforms","value":{"rev":"9-2a87cb74477d210fcb1d0c3e3e236f03"}},
-{"id":"nexpect","key":"nexpect","value":{"rev":"15-e7127f41b9f3ec45185ede7bab7b4acd"}},
-{"id":"next","key":"next","value":{"rev":"13-de5e62125b72e48ea142a55a3817589c"}},
-{"id":"nextrip","key":"nextrip","value":{"rev":"5-1ac8103552967af98d3de452ef81a94f"}},
-{"id":"nexttick","key":"nexttick","value":{"rev":"9-c7ec279e713ea8483d33c31871aea0db"}},
-{"id":"ngen","key":"ngen","value":{"rev":"9-972980a439c34851d67e4f61a96c2632"}},
-{"id":"ngen-basicexample","key":"ngen-basicexample","value":{"rev":"3-897763c230081d320586bcadfa84499f"}},
-{"id":"ngeohash","key":"ngeohash","value":{"rev":"5-9ca0c06066bc798e934db35cad99453e"}},
-{"id":"ngist","key":"ngist","value":{"rev":"7-592c24e72708219ed1eb078ddff95ab6"}},
-{"id":"ngram","key":"ngram","value":{"rev":"5-00e6b24dc178bdeb49b1ac8cb09f6e77"}},
-{"id":"ngrep","key":"ngrep","value":{"rev":"3-49c1a3839b12083280475177c1a16e38"}},
-{"id":"nhp-body-restreamer","key":"nhp-body-restreamer","value":{"rev":"1-8a4e5e23ae681a3f8be9afb613648230"}},
-{"id":"nhttpd","key":"nhttpd","value":{"rev":"3-cdc73384e1a1a4666e813ff52f2f5e4f"}},
-{"id":"nib","key":"nib","value":{"rev":"25-d67d5a294ba5b8953472cf936b97e13d"}},
-{"id":"nicetime","key":"nicetime","value":{"rev":"3-39fdba269d712064dc1e02a7ab846821"}},
-{"id":"nicknack","key":"nicknack","value":{"rev":"5-7b5477b63f782d0a510b0c15d2824f20"}},
-{"id":"nide","key":"nide","value":{"rev":"9-74f642fced47c934f9bae29f04d17a46"}},
-{"id":"nih-op","key":"nih-op","value":{"rev":"3-6e649b45964f84cb04340ab7f0a36a1c"}},
-{"id":"nimble","key":"nimble","value":{"rev":"5-867b808dd80eab33e5f22f55bb5a7376"}},
-{"id":"ninjs","key":"ninjs","value":{"rev":"3-f59997cc4bacb2d9d9852f955d15199e"}},
-{"id":"ninotify","key":"ninotify","value":{"rev":"3-a0f3c7cbbe7ccf5d547551aa062cc8b5"}},
-{"id":"nirc","key":"nirc","value":{"rev":"3-28197984656939a5a93a77c0a1605406"}},
-{"id":"nithub","key":"nithub","value":{"rev":"3-eaa85e6ac6668a304e4e4a565c54f57d"}},
-{"id":"nix","key":"nix","value":{"rev":"12-7b338b03c0e110aeb348551b14796ff1"}},
-{"id":"nko","key":"nko","value":{"rev":"39-2bf94b2bc279b8cf847bfc7668029d37"}},
-{"id":"nlog","key":"nlog","value":{"rev":"3-ae469820484ca33f346001dcb7b63a2d"}},
-{"id":"nlog4js","key":"nlog4js","value":{"rev":"3-bc17a61a9023d64e192d249144e69f02"}},
-{"id":"nlogger","key":"nlogger","value":{"rev":"11-1e48fc9a5a4214d9e56db6c6b63f1eeb"}},
-{"id":"nmd","key":"nmd","value":{"rev":"27-2dcb60d0258a9cea838f7cc4e0922f90"}},
-{"id":"nntp","key":"nntp","value":{"rev":"5-c86b189e366b9a6a428f9a2ee88dccf1"}},
-{"id":"no.de","key":"no.de","value":{"rev":"10-0dc855fd6b0b36a710b473b2720b22c0"}},
-{"id":"nobj","key":"nobj","value":{"rev":"3-0b4a46b91b70117306a9888202117223"}},
-{"id":"noblemachine","key":"noblemachine","value":{"rev":"3-06fec410fe0c7328e06eec50b4fa5d9a"}},
-{"id":"noblerecord","key":"noblerecord","value":{"rev":"5-22f24c4285bd405785588480bb2bc324"}},
-{"id":"nock","key":"nock","value":{"rev":"5-f94423d37dbdf41001ec097f20635271"}},
-{"id":"nocr-mongo","key":"nocr-mongo","value":{"rev":"5-ce6335ed276187cc38c30cb5872d3d83"}},
-{"id":"nodast","key":"nodast","value":{"rev":"3-1c563107f2d77b79a8f0d0b8ba7041f5"}},
-{"id":"node-api","key":"node-api","value":{"rev":"3-b69cefec93d9f73256acf9fb9edeebd6"}},
-{"id":"node-apidoc","key":"node-apidoc","value":{"rev":"6-cd26945e959403fcbee8ba542e14e667"}},
-{"id":"node-app-reloader","key":"node-app-reloader","value":{"rev":"5-e08cac7656afd6c124f8e2a9b9d6fdd3"}},
-{"id":"node-arse","key":"node-arse","value":{"rev":"9-b643c828541739a5fa972c801f81b212"}},
-{"id":"node-assert-extras","key":"node-assert-extras","value":{"rev":"3-3498e17b996ffc42a29d46c9699a3b52"}},
-{"id":"node-assert-lint-free","key":"node-assert-lint-free","value":{"rev":"5-852130ba6bafc703657b833343bc5646"}},
-{"id":"node-asset","key":"node-asset","value":{"rev":"18-f7cf59be8e0d015a43d05807a1ed9c0c"}},
-{"id":"node-awesm","key":"node-awesm","value":{"rev":"3-539c10145541ac5efc4dd295767b2abc"}},
-{"id":"node-backbone-couch","key":"node-backbone-couch","value":{"rev":"19-c4d8e93436b60e098c81cc0fe50f960c"}},
-{"id":"node-base64","key":"node-base64","value":{"rev":"11-da10a7157fd9e139b48bc8d9e44a98fa"}},
-{"id":"node-bj","key":"node-bj","value":{"rev":"3-5cd21fa259199870d1917574cd167396"}},
-{"id":"node-bosh-stress-tool","key":"node-bosh-stress-tool","value":{"rev":"3-36afc4b47e570964b7f8d705e1d47732"}},
-{"id":"node-brainfuck","key":"node-brainfuck","value":{"rev":"5-c7a6f703a97a409670005cab52664629"}},
-{"id":"node-build","key":"node-build","value":{"rev":"10-4f2f137fb4ef032f9dca3e3c64c15270"}},
-{"id":"node-casa","key":"node-casa","value":{"rev":"3-3f80a478aa47620bfc0c64cc6f140d98"}},
-{"id":"node-ccl","key":"node-ccl","value":{"rev":"13-00498b820cc4cadce8cc5b7b76e30b0f"}},
-{"id":"node-chain","key":"node-chain","value":{"rev":"6-b543f421ac63eeedc667b3395e7b8971"}},
-{"id":"node-child-process-manager","key":"node-child-process-manager","value":{"rev":"36-befb1a0eeac02ad400e2aaa8a076a053"}},
-{"id":"node-chirpstream","key":"node-chirpstream","value":{"rev":"10-f20e404f9ae5d43dfb6bcee15bd9affe"}},
-{"id":"node-clone","key":"node-clone","value":{"rev":"5-5ace5d51179d0e642bf9085b3bbf999b"}},
-{"id":"node-cloudwatch","key":"node-cloudwatch","value":{"rev":"3-7f9d1e075fcc3bd3e7849acd893371d5"}},
-{"id":"node-combine","key":"node-combine","value":{"rev":"3-51891c3c7769ff11a243c89c7e537907"}},
-{"id":"node-compat","key":"node-compat","value":{"rev":"9-24fce8e15eed3e193832b1c93a482d15"}},
-{"id":"node-config","key":"node-config","value":{"rev":"6-8821f6b46347e57258e62e1be841c186"}},
-{"id":"node-crocodoc","key":"node-crocodoc","value":{"rev":"5-ad4436f633f37fe3248dce93777fc26e"}},
-{"id":"node-csv","key":"node-csv","value":{"rev":"10-cd15d347b595f1d9d1fd30b483c52724"}},
-{"id":"node-date","key":"node-date","value":{"rev":"3-a5b41cab3247e12f2beaf1e0b1ffadfa"}},
-{"id":"node-dbi","key":"node-dbi","value":{"rev":"27-96e1df6fdefbae77bfa02eda64c3e3b9"}},
-{"id":"node-debug-proxy","key":"node-debug-proxy","value":{"rev":"9-c00a14832cdd5ee4d489eb41a3d0d621"}},
-{"id":"node-dep","key":"node-dep","value":{"rev":"15-378dedd3f0b3e54329c00c675b19401c"}},
-{"id":"node-dev","key":"node-dev","value":{"rev":"48-6a98f38078fe5678d6c2fb48aec3c1c3"}},
-{"id":"node-downloader","key":"node-downloader","value":{"rev":"3-a541126c56c48681571e5e998c481343"}},
-{"id":"node-evented","key":"node-evented","value":{"rev":"6-a6ce8ab39e01cc0262c80d4bf08fc333"}},
-{"id":"node-exception-notifier","key":"node-exception-notifier","value":{"rev":"3-cebc02c45dace4852f8032adaa4e3c9c"}},
-{"id":"node-expat","key":"node-expat","value":{"rev":"33-261d85273a0a551e7815f835a933d5eb"}},
-{"id":"node-expect","key":"node-expect","value":{"rev":"7-5ba4539adfd3ba95dab21bb5bc0a5193"}},
-{"id":"node-express-boilerplate","key":"node-express-boilerplate","value":{"rev":"3-972f51d1ff9493e48d7cf508461f1114"}},
-{"id":"node-extjs","key":"node-extjs","value":{"rev":"7-33143616b4590523b4e1549dd8ffa991"}},
-{"id":"node-extjs4","key":"node-extjs4","value":{"rev":"3-8e5033aed477629a6fb9812466a90cfd"}},
-{"id":"node-fakeweb","key":"node-fakeweb","value":{"rev":"5-f01377fa6d03461cbe77f41b73577cf4"}},
-{"id":"node-fb","key":"node-fb","value":{"rev":"3-bc5f301a60e475de7c614837d3f9f35a"}},
-{"id":"node-fb-signed-request","key":"node-fb-signed-request","value":{"rev":"3-33c8f043bb947b63a84089d633d68f8e"}},
-{"id":"node-fects","key":"node-fects","value":{"rev":"3-151b7b895b74b24a87792fac34735814"}},
-{"id":"node-ffi","key":"node-ffi","value":{"rev":"22-25cf229f0ad4102333b2b13e03054ac5"}},
-{"id":"node-filter","key":"node-filter","value":{"rev":"3-0e6a86b4abb65df3594e5c93ab04bd31"}},
-{"id":"node-foursquare","key":"node-foursquare","value":{"rev":"25-549bbb0c2b4f96b2c5e6a5f642e8481d"}},
-{"id":"node-fs","key":"node-fs","value":{"rev":"5-14050cbc3887141f6b0e1e7d62736a63"}},
-{"id":"node-fs-synchronize","key":"node-fs-synchronize","value":{"rev":"11-6341e79f3391a9e1daa651a5932c8795"}},
-{"id":"node-gd","key":"node-gd","value":{"rev":"11-2ede7f4af38f062b86cc32bb0125e1bf"}},
-{"id":"node-geocode","key":"node-geocode","value":{"rev":"6-505af45c7ce679ac6738b495cc6b03c2"}},
-{"id":"node-get","key":"node-get","value":{"rev":"9-906945005a594ea1f05d4ad23170a83f"}},
-{"id":"node-gettext","key":"node-gettext","value":{"rev":"5-532ea4b528108b4c8387ddfc8fa690b2"}},
-{"id":"node-gist","key":"node-gist","value":{"rev":"11-3495a499c9496d01235676f429660424"}},
-{"id":"node-glbse","key":"node-glbse","value":{"rev":"5-69a537189610c69cc549f415431b181a"}},
-{"id":"node-google-sql","key":"node-google-sql","value":{"rev":"7-bfe20d25a4423651ecdff3f5054a6946"}},
-{"id":"node-gravatar","key":"node-gravatar","value":{"rev":"6-8265fc1ad003fd8a7383244c92abb346"}},
-{"id":"node-handlersocket","key":"node-handlersocket","value":{"rev":"16-f1dc0246559748a842dd0e1919c569ae"}},
-{"id":"node-hdfs","key":"node-hdfs","value":{"rev":"3-d460fba8ff515660de34cb216223c569"}},
-{"id":"node-hipchat","key":"node-hipchat","value":{"rev":"3-9d16738bf70f9e37565727e671ffe551"}},
-{"id":"node-hive","key":"node-hive","value":{"rev":"31-5eef1fa77a39e4bdacd8fa85ec2ce698"}},
-{"id":"node-html-encoder","key":"node-html-encoder","value":{"rev":"3-75f92e741a3b15eb56e3c4513feaca6d"}},
-{"id":"node-i3","key":"node-i3","value":{"rev":"3-5c489f43aeb06054b02ad3706183599c"}},
-{"id":"node-indextank","key":"node-indextank","value":{"rev":"5-235a17fce46c73c8b5abc4cf5f964385"}},
-{"id":"node-inherit","key":"node-inherit","value":{"rev":"3-099c0acf9c889eea94faaf64067bfc52"}},
-{"id":"node-inspector","key":"node-inspector","value":{"rev":"34-ca9fa856cf32a737d1ecccb759aaf5e1"}},
-{"id":"node-int64","key":"node-int64","value":{"rev":"11-50b92b5b65adf17e673b4d15df643ed4"}},
-{"id":"node-ip-lib","key":"node-ip-lib","value":{"rev":"3-2fe72f7b78cbc1739c71c7cfaec9fbcd"}},
-{"id":"node-iplookup","key":"node-iplookup","value":{"rev":"10-ba8474624dd852a46303d32ff0556883"}},
-{"id":"node-jdownloader","key":"node-jdownloader","value":{"rev":"3-b015035cfb8540568da5deb55b35248c"}},
-{"id":"node-jslint-all","key":"node-jslint-all","value":{"rev":"5-582f4a31160d3700731fa39771702896"}},
-{"id":"node-jsonengine","key":"node-jsonengine","value":{"rev":"3-6e429c32e42b205f3ed1ea1f48d67cbc"}},
-{"id":"node-khtml","key":"node-khtml","value":{"rev":"39-db8e8eea569657fc7de6300172a6a8a7"}},
-{"id":"node-linkshare","key":"node-linkshare","value":{"rev":"35-acc18a5d584b828bb2bd4f32bbcde98c"}},
-{"id":"node-log","key":"node-log","value":{"rev":"17-79cecc66227b4fb3a2ae04b7dac17cc2"}},
-{"id":"node-logentries","key":"node-logentries","value":{"rev":"3-0f640d5ff489a6904f4a8c18fb5f7e9c"}},
-{"id":"node-logger","key":"node-logger","value":{"rev":"3-75084f98359586bdd254e57ea5915d37"}},
-{"id":"node-logging","key":"node-logging","value":{"rev":"15-af01bc2b6128150787c85c8df1dae642"}},
-{"id":"node-mailer","key":"node-mailer","value":{"rev":"5-5b88675f05efe2836126336c880bd841"}},
-{"id":"node-mailgun","key":"node-mailgun","value":{"rev":"5-4bcfb7bf5163748b87c1b9ed429ed178"}},
-{"id":"node-markdown","key":"node-markdown","value":{"rev":"6-67137da4014f22f656aaefd9dfa2801b"}},
-{"id":"node-mdbm","key":"node-mdbm","value":{"rev":"22-3006800b042cf7d4b0b391c278405143"}},
-{"id":"node-minify","key":"node-minify","value":{"rev":"13-e853813d4b6519b168965979b8ccccdd"}},
-{"id":"node-mug","key":"node-mug","value":{"rev":"3-f7567ffac536bfa7eb5a7e3da7a0efa0"}},
-{"id":"node-mvc","key":"node-mvc","value":{"rev":"3-74f7c07b2991fcddb27afd2889b6db4e"}},
-{"id":"node-mwire","key":"node-mwire","value":{"rev":"26-79d7982748f42b9e07ab293447b167ec"}},
-{"id":"node-mynix-feed","key":"node-mynix-feed","value":{"rev":"3-59d4a624b3831bbab6ee99be2f84e568"}},
-{"id":"node-nether","key":"node-nether","value":{"rev":"3-0fbefe710fe0d74262bfa25f6b4e1baf"}},
-{"id":"node-nude","key":"node-nude","value":{"rev":"3-600abb219646299ac602fa51fa260f37"}},
-{"id":"node-nxt","key":"node-nxt","value":{"rev":"3-8ce48601c2b0164e2b125259a0c97d45"}},
-{"id":"node-oauth","key":"node-oauth","value":{"rev":"3-aa6cd61f44d74118bafa5408900c4984"}},
-{"id":"node-opencalais","key":"node-opencalais","value":{"rev":"13-a3c0b882aca7207ce36f107e40a0ce50"}},
-{"id":"node-props","key":"node-props","value":{"rev":"7-e400cee08cc9abdc1f1ce4f262a04b05"}},
-{"id":"node-proxy","key":"node-proxy","value":{"rev":"20-ce722bf45c84a7d925b8b7433e786ed6"}},
-{"id":"node-pusher","key":"node-pusher","value":{"rev":"3-7cc7cd5bffaf3b11c44438611beeba98"}},
-{"id":"node-putio","key":"node-putio","value":{"rev":"3-8a1fc6362fdcf16217cdb6846e419b4c"}},
-{"id":"node-raphael","key":"node-raphael","value":{"rev":"25-e419d98a12ace18a40d94a9e8e32cdd4"}},
-{"id":"node-rapleaf","key":"node-rapleaf","value":{"rev":"11-c849c8c8635e4eb2f81bd7810b7693fd"}},
-{"id":"node-rats","key":"node-rats","value":{"rev":"3-dca544587f3121148fe02410032cf726"}},
-{"id":"node-rdf2json","key":"node-rdf2json","value":{"rev":"3-bde382dc2fcb40986c5ac41643d44543"}},
-{"id":"node-recurly","key":"node-recurly","value":{"rev":"11-79cab9ccee7c1ddb83791e8de41c72f5"}},
-{"id":"node-redis","key":"node-redis","value":{"rev":"13-12adf3a3e986675637fa47b176f527e3"}},
-{"id":"node-redis-mapper","key":"node-redis-mapper","value":{"rev":"5-53ba8f67cc82dbf1d127fc7359353f32"}},
-{"id":"node-redis-monitor","key":"node-redis-monitor","value":{"rev":"3-79bcba76241d7c7dbc4b18d90a9d59e3"}},
-{"id":"node-restclient","key":"node-restclient","value":{"rev":"6-5844eba19bc465a8f75b6e94c061350f"}},
-{"id":"node-restclient2","key":"node-restclient2","value":{"rev":"5-950de911f7bde7900dfe5b324f49818c"}},
-{"id":"node-runner","key":"node-runner","value":{"rev":"3-e9a9e6bd10d2ab1aed8b401b04fadc7b"}},
-{"id":"node-sc-setup","key":"node-sc-setup","value":{"rev":"3-e89c496e03c48d8574ccaf61c9ed4fca"}},
-{"id":"node-schedule","key":"node-schedule","value":{"rev":"9-ae12fa59226f1c9b7257b8a2d71373b4"}},
-{"id":"node-sdlmixer","key":"node-sdlmixer","value":{"rev":"8-489d85278d6564b6a4e94990edcb0527"}},
-{"id":"node-secure","key":"node-secure","value":{"rev":"3-73673522a4bb5f853d55e535f0934803"}},
-{"id":"node-sendgrid","key":"node-sendgrid","value":{"rev":"9-4662c31304ca4ee4e702bd3a54ea7824"}},
-{"id":"node-sizzle","key":"node-sizzle","value":{"rev":"6-c08c24d9d769d3716e5c4e3441740eb2"}},
-{"id":"node-soap-client","key":"node-soap-client","value":{"rev":"9-35ff34a4a5af569de6a2e89d1b35b69a"}},
-{"id":"node-spec","key":"node-spec","value":{"rev":"9-92e99ca74b9a09a8ae2eb7382ef511ef"}},
-{"id":"node-static","key":"node-static","value":{"rev":"10-11b0480fcd416db3d3d4041f43a55290"}},
-{"id":"node-static-maccman","key":"node-static-maccman","value":{"rev":"3-49e256728b14c85776b74f2bd912eb42"}},
-{"id":"node-statsd","key":"node-statsd","value":{"rev":"5-08d3e6b4b2ed1d0b7916e9952f55573c"}},
-{"id":"node-statsd-instrument","key":"node-statsd-instrument","value":{"rev":"3-c3cd3315e1edcc91096830392f439305"}},
-{"id":"node-std","key":"node-std","value":{"rev":"3-f99be0f03be4175d546823799bb590d3"}},
-{"id":"node-store","key":"node-store","value":{"rev":"3-7cb6bf13de9550b869c768f464fd0f65"}},
-{"id":"node-stringprep","key":"node-stringprep","value":{"rev":"13-9b08baa97042f71c5c8e9e2fdcc2c300"}},
-{"id":"node-synapse","key":"node-synapse","value":{"rev":"3-c46c47099eb2792f4a57fdfd789520ca"}},
-{"id":"node-syslog","key":"node-syslog","value":{"rev":"23-34f7df06ba88d9f897b7e00404db7187"}},
-{"id":"node-t","key":"node-t","value":{"rev":"3-042225eff3208ba9add61a9f79d90871"}},
-{"id":"node-taobao","key":"node-taobao","value":{"rev":"7-c988ace74806b2e2f55e162f54ba1a2c"}},
-{"id":"node-term-ui","key":"node-term-ui","value":{"rev":"5-210310014b19ce26c5e3e840a8a0549e"}},
-{"id":"node-tiny","key":"node-tiny","value":{"rev":"7-df05ab471f25ca4532d80c83106944d7"}},
-{"id":"node-tmpl","key":"node-tmpl","value":{"rev":"3-6fcfa960da8eb72a5e3087559d3fe206"}},
-{"id":"node-twilio","key":"node-twilio","value":{"rev":"11-af69e600109d38c77eadbcec4bee4782"}},
-{"id":"node-twitter-mailer","key":"node-twitter-mailer","value":{"rev":"7-f915b76d834cb162c91816abc30cee5f"}},
-{"id":"node-usb","key":"node-usb","value":{"rev":"3-0c3837307f86a80427800f1b45aa5862"}},
-{"id":"node-uuid","key":"node-uuid","value":{"rev":"6-642efa619ad8a6476a44a5c6158e7a36"}},
-{"id":"node-vapor.js","key":"node-vapor.js","value":{"rev":"3-d293284cc415b2906533e91db13ee748"}},
-{"id":"node-version","key":"node-version","value":{"rev":"3-433b1529a6aa3d619314e461e978d2b6"}},
-{"id":"node-webapp","key":"node-webapp","value":{"rev":"11-65411bfd8eaf19d3539238360d904d43"}},
-{"id":"node-wiki","key":"node-wiki","value":{"rev":"5-22b0177c9a5e4dc1f72d36bb83c746d0"}},
-{"id":"node-wkhtml","key":"node-wkhtml","value":{"rev":"5-a8fa203720442b443d558670c9750548"}},
-{"id":"node-xerces","key":"node-xerces","value":{"rev":"3-de6d82ec712af997b7aae451277667f0"}},
-{"id":"node-xml","key":"node-xml","value":{"rev":"3-e14a52dcd04302aea7dd6943cf6dd886"}},
-{"id":"node-xmpp","key":"node-xmpp","value":{"rev":"36-031eb5e830ed2e2027ee4ee7f861cf81"}},
-{"id":"node-xmpp-bosh","key":"node-xmpp-bosh","value":{"rev":"85-f7f8b699b6fda74fc27c621466915bd1"}},
-{"id":"node-xmpp-via-bosh","key":"node-xmpp-via-bosh","value":{"rev":"3-5f5fee9e42ae8ce8f42d55c31808c969"}},
-{"id":"node.io","key":"node.io","value":{"rev":"224-e99561d454a7676d10875e1b06ba44c7"}},
-{"id":"node.io-min","key":"node.io-min","value":{"rev":"3-e8389bdcfa55c68ae9698794d9089ce4"}},
-{"id":"node.isbn","key":"node.isbn","value":{"rev":"3-76aa84f3c49a54b6c901f440af35192d"}},
-{"id":"node.uptime","key":"node.uptime","value":{"rev":"5-cfc2c1c1460d000eab4e1a28506e6d29"}},
-{"id":"node3p","key":"node3p","value":{"rev":"14-b1931b8aa96227854d78965cc4301168"}},
-{"id":"node3p-web","key":"node3p-web","value":{"rev":"12-bc783ee1e493e80b7e7a3c2fce39f55e"}},
-{"id":"nodeBase","key":"nodeBase","value":{"rev":"39-4d9ae0f18e0bca7192901422d85e85c7"}},
-{"id":"nodeCgi","key":"nodeCgi","value":{"rev":"9-bb65e71ee63551e519f49434f2ae1cd7"}},
-{"id":"nodeDocs","key":"nodeDocs","value":{"rev":"3-0c6e714d3e6d5c2cc9482444680fb3ca"}},
-{"id":"nodePhpSessions","key":"nodePhpSessions","value":{"rev":"3-5063b38582deaca9cacdc029db97c2b1"}},
-{"id":"node_bsdiff","key":"node_bsdiff","value":{"rev":"5-e244ef36755a2b6534ce50fa1ee5ee6e"}},
-{"id":"node_hash","key":"node_hash","value":{"rev":"3-cdce2fcc2c18fcd25e16be8e52add891"}},
-{"id":"node_util","key":"node_util","value":{"rev":"3-cde723ee2311cf48f7cf0a3bc3484f9a"}},
-{"id":"node_xslt","key":"node_xslt","value":{"rev":"3-f12035155aee31d1749204fdca2aee10"}},
-{"id":"nodec","key":"nodec","value":{"rev":"3-dba2af2d5b98a71964abb4328512b9e1"}},
-{"id":"nodefm","key":"nodefm","value":{"rev":"3-c652a95d30318a371736515feab649f9"}},
-{"id":"nodegit","key":"nodegit","value":{"rev":"31-92a2cea0d1c92086c920bc007f5a3f16"}},
-{"id":"nodeib","key":"nodeib","value":{"rev":"3-e67d779007817597ca36e8b821f38e6a"}},
-{"id":"nodeinfo","key":"nodeinfo","value":{"rev":"53-61bf0f48662dc2e04cde38a2b897c211"}},
-{"id":"nodejitsu-client","key":"nodejitsu-client","value":{"rev":"3-4fa613f888ebe249aff7b03aa9b8d7ef"}},
-{"id":"nodejs-intro","key":"nodejs-intro","value":{"rev":"4-c75f03e80b597f734f4466e62ecebfeb"}},
-{"id":"nodejs-tvrage","key":"nodejs-tvrage","value":{"rev":"9-88bb3b5d23652ebdb7186a30bc3be43f"}},
-{"id":"nodejs.be-cli","key":"nodejs.be-cli","value":{"rev":"3-d8f23777f9b18101f2d2dc5aa618a703"}},
-{"id":"nodeler","key":"nodeler","value":{"rev":"9-00760d261ea75164a5709109011afb25"}},
-{"id":"nodelint","key":"nodelint","value":{"rev":"8-31502553d4bb099ba519fb331cccdd63"}},
-{"id":"nodeload","key":"nodeload","value":{"rev":"12-f02626475b59ebe67a864a114c99ff9b"}},
-{"id":"nodemachine","key":"nodemachine","value":{"rev":"8-5342324502e677e35aefef17dc08c8db"}},
-{"id":"nodemailer","key":"nodemailer","value":{"rev":"63-d39a5143b06fa79edcb81252d6329861"}},
-{"id":"nodemock","key":"nodemock","value":{"rev":"33-7095334209b39c8e1482374bee1b712a"}},
-{"id":"nodemon","key":"nodemon","value":{"rev":"42-4f40ba2299ef4ae613a384a48e4045fa"}},
-{"id":"nodepad","key":"nodepad","value":{"rev":"5-93718cc67e97c89f45b753c1caef07e4"}},
-{"id":"nodepal","key":"nodepal","value":{"rev":"5-e53372a5081b3753993ee98299ecd550"}},
-{"id":"nodepie","key":"nodepie","value":{"rev":"21-a44a6d3575758ed591e13831a5420758"}},
-{"id":"nodepress","key":"nodepress","value":{"rev":"3-f17616b9ae61e15d1d219cb87ac5a63a"}},
-{"id":"noderelict","key":"noderelict","value":{"rev":"23-0ca0997e3ef112e9393ae8ccef63f1ee"}},
-{"id":"noderpc","key":"noderpc","value":{"rev":"27-7efb6365916b403c3aa4e1c766de75a2"}},
-{"id":"nodespec","key":"nodespec","value":{"rev":"3-69f357577e52e9fd096ac88a1e7e3445"}},
-{"id":"nodespy","key":"nodespy","value":{"rev":"3-ad33e14db2bcaf61bf99d3e8915da5ee"}},
-{"id":"nodestalker","key":"nodestalker","value":{"rev":"5-080eba88a3625ecf7935ec5e9d2db6e9"}},
-{"id":"nodester-api","key":"nodester-api","value":{"rev":"39-52046dbcdf4447bbb85aecc92086ae1d"}},
-{"id":"nodester-cli","key":"nodester-cli","value":{"rev":"89-6de3d724a974c1dd3b632417f8b01267"}},
-{"id":"nodetk","key":"nodetk","value":{"rev":"11-265d267335e7603249e1af9441700f2f"}},
-{"id":"nodeunit","key":"nodeunit","value":{"rev":"40-d1cc6c06f878fb0b86779186314bc193"}},
-{"id":"nodeunit-coverage","key":"nodeunit-coverage","value":{"rev":"3-29853918351e75e3f6f93acd97e2942f"}},
-{"id":"nodeunit-dsl","key":"nodeunit-dsl","value":{"rev":"6-91be44077bc80c942f86f0ac28a69c5e"}},
-{"id":"nodevlc","key":"nodevlc","value":{"rev":"3-e151577d3e1ba2f58db465d94ebcb1c1"}},
-{"id":"nodevore","key":"nodevore","value":{"rev":"3-ac73b3bc33e2f934776dda359869ddcf"}},
-{"id":"nodewatch","key":"nodewatch","value":{"rev":"9-267bfe1324c51993865dc41b09aee6dc"}},
-{"id":"nodewii","key":"nodewii","value":{"rev":"9-716b3faa8957c1aea337540402ae7f43"}},
-{"id":"nodie","key":"nodie","value":{"rev":"3-cc29702a2e7e295cfe583a05fb77b530"}},
-{"id":"nodify","key":"nodify","value":{"rev":"10-87fadf6bf262882bd71ab7e759b29949"}},
-{"id":"nodrrr","key":"nodrrr","value":{"rev":"3-75937f4ffb722a67d6c5a67663366854"}},
-{"id":"nodules","key":"nodules","value":{"rev":"8-2c6ec430f26ff7ef171e80b7b5e990c2"}},
-{"id":"nodysentary","key":"nodysentary","value":{"rev":"3-7574fc8e12b1271c2eb1c66026f702cb"}},
-{"id":"nohm","key":"nohm","value":{"rev":"45-09dcf4df92734b3c51c8df3c3b374b0b"}},
-{"id":"noid","key":"noid","value":{"rev":"5-ac31e001806789e80a7ffc64f2914eb4"}},
-{"id":"nolife","key":"nolife","value":{"rev":"7-cfd4fe84b1062303cefb83167ea48bba"}},
-{"id":"nolog","key":"nolog","value":{"rev":"9-6e82819b801f5d7ec6773596d5d2efb2"}},
-{"id":"nomnom","key":"nomnom","value":{"rev":"34-bf66753d1d155820cfacfc7fa7a830c9"}},
-{"id":"nomplate","key":"nomplate","value":{"rev":"9-6ea21ee9568421a60cb80637c4c6cb48"}},
-{"id":"nonogo","key":"nonogo","value":{"rev":"5-8307413f9a3da913f9818c4f2d951519"}},
-{"id":"noode","key":"noode","value":{"rev":"7-454df50a7cbd03c46a9951cb1ddbe1c6"}},
-{"id":"noodle","key":"noodle","value":{"rev":"7-163745527770de0de8e7e9d59fc3888c"}},
-{"id":"noop","key":"noop","value":{"rev":"5-ed9fd66573ed1186e66b4c2bc16192cb"}},
-{"id":"nope","key":"nope","value":{"rev":"3-7088ffb62b8e06261527cbfa69cb94c5"}},
-{"id":"nopro","key":"nopro","value":{"rev":"11-6c4aeafe6329821b2259ef11414481dd"}},
-{"id":"nopt","key":"nopt","value":{"rev":"23-cce441940b6f129cab94a359ddb8b3e4"}},
-{"id":"norm","key":"norm","value":{"rev":"9-2bf26c3803fdc3bb6319e490cae3b625"}},
-{"id":"norq","key":"norq","value":{"rev":"3-b1a80ad1aa4ccc493ac25da22b0f0697"}},
-{"id":"norris","key":"norris","value":{"rev":"3-a341286d9e83fa392c1ce6b764d0aace"}},
-{"id":"norris-ioc","key":"norris-ioc","value":{"rev":"15-d022f159229d89ce60fc2a15d71eac59"}},
-{"id":"norris-tester","key":"norris-tester","value":{"rev":"3-fc2f34c9373bbdf5a1cd9cfbaff21f83"}},
-{"id":"northwatcher","key":"northwatcher","value":{"rev":"13-edab28a123f0100e12f96c9828428a8a"}},
-{"id":"nosey","key":"nosey","value":{"rev":"4-10a22f27dd9f2a40acf035a7d250c661"}},
-{"id":"nosql-thin","key":"nosql-thin","value":{"rev":"6-604169cacf303b5278064f68b884090b"}},
-{"id":"notch","key":"notch","value":{"rev":"3-5b720089f0f9cfdbbbea8677216eeee5"}},
-{"id":"notes","key":"notes","value":{"rev":"3-5dfbd6ec33c69c0f1b619dd65d9e7a56"}},
-{"id":"nothing","key":"nothing","value":{"rev":"3-8b44e10efd7d6504755c0c4bd1043814"}},
-{"id":"notifications","key":"notifications","value":{"rev":"3-a68448bca7ea2d3d3ce43e4d03cd76c6"}},
-{"id":"notifo","key":"notifo","value":{"rev":"8-0bc13ea6135adfa80c5fac497a2ddeda"}},
-{"id":"notify","key":"notify","value":{"rev":"3-da00942576bcb5fab594186f80d4575a"}},
-{"id":"notify-send","key":"notify-send","value":{"rev":"7-89f5c6bc656d51577e3997b9f90d0454"}},
-{"id":"nova","key":"nova","value":{"rev":"3-4e136f35b7d5b85816c17496c6c0e382"}},
-{"id":"now","key":"now","value":{"rev":"84-dbfde18b3f6fe79dd3637b6da34b78cf"}},
-{"id":"now-bal","key":"now-bal","value":{"rev":"3-c769bcdd45a93095f68c2de54f35543f"}},
-{"id":"nowpad","key":"nowpad","value":{"rev":"51-8d90c49031f79a9d31eb4ed6f39609b6"}},
-{"id":"nowww","key":"nowww","value":{"rev":"3-541994af2e579b376d2037f4e34f31d8"}},
-{"id":"noxmox","key":"noxmox","value":{"rev":"9-4ac8b1529dced329cac0976b9ca9eed0"}},
-{"id":"nozzle","key":"nozzle","value":{"rev":"23-e60444326d11a5b57c208de548c325e8"}},
-{"id":"npm","key":"npm","value":{"rev":"665-71d13d024c846b2ee85ed054fcfcb242"}},
-{"id":"npm-deploy","key":"npm-deploy","value":{"rev":"23-751e9d3c2edac0fd9916b0e886414ef2"}},
-{"id":"npm-dev-install","key":"npm-dev-install","value":{"rev":"3-7a08e11a59758329ba8dc4e781ea9993"}},
-{"id":"npm-docsite","key":"npm-docsite","value":{"rev":"3-5ed4f1ffea02487ab9ea24cfa0196f76"}},
-{"id":"npm-github-service","key":"npm-github-service","value":{"rev":"8-6891bc055b499e088fc79a7f94b6a4ec"}},
-{"id":"npm-intro-slides","key":"npm-intro-slides","value":{"rev":"8-e95f28475662cb8f70f4cb48baaa9d27"}},
-{"id":"npm-monitor","key":"npm-monitor","value":{"rev":"7-4e3209ea893fe37c0e516fe21de2d8ad"}},
-{"id":"npm-remapper","key":"npm-remapper","value":{"rev":"3-69163475ee93f32faac3f934e772b6c7"}},
-{"id":"npm-tweets","key":"npm-tweets","value":{"rev":"9-86064412a8aa02d813b20d2e49d78d84"}},
-{"id":"npm-wrapper","key":"npm-wrapper","value":{"rev":"3-59c4d372b84f6e91dbe48a220511dfd5"}},
-{"id":"npm2debian","key":"npm2debian","value":{"rev":"3-3cf2f471f3bfbc613176c7c780a6aad6"}},
-{"id":"npmcount","key":"npmcount","value":{"rev":"5-59c55b09d9c2cc7da217cab3b0ea642c"}},
-{"id":"npmdep","key":"npmdep","value":{"rev":"9-78184ad3b841e5c91bbfa29ff722778a"}},
-{"id":"npmtop","key":"npmtop","value":{"rev":"19-2754af894829f22d6edb3a17a64cdf1e"}},
-{"id":"nquery","key":"nquery","value":{"rev":"9-461fb0c9bcc3c15e0696dc2e99807c98"}},
-{"id":"nrecipe","key":"nrecipe","value":{"rev":"15-a96b6b0134a7625eb4eb236b4bf3fbf3"}},
-{"id":"nserver","key":"nserver","value":{"rev":"5-ea895373c340dd8d9119f3f549990048"}},
-{"id":"nserver-util","key":"nserver-util","value":{"rev":"5-5e14eb0bc9f7ab0eac04c5699c6bb328"}},
-{"id":"nssocket","key":"nssocket","value":{"rev":"51-6aac1d5dd0aa7629b3619b3085d63c04"}},
-{"id":"nstore","key":"nstore","value":{"rev":"28-6e2639829539b7315040487dfa5c79af"}},
-{"id":"nstore-cache","key":"nstore-cache","value":{"rev":"3-453ed78dcbe68b31ff675f4d94b47c4a"}},
-{"id":"nstore-query","key":"nstore-query","value":{"rev":"3-39f46992dd278824db641a37ec5546f5"}},
-{"id":"ntodo","key":"ntodo","value":{"rev":"7-e214da8bbed2d3e40bdaec77d7a49831"}},
-{"id":"ntp","key":"ntp","value":{"rev":"5-5ee2b25e8f3bca06d1cc4ce3b25cac42"}},
-{"id":"nts","key":"nts","value":{"rev":"7-ecaf47f8af1f77de791d1d1fa9bab88e"}},
-{"id":"nttpd","key":"nttpd","value":{"rev":"21-cda7aa0f1db126428f6ca01d44b4d209"}},
-{"id":"ntwitter","key":"ntwitter","value":{"rev":"11-732c6f34137c942bc98967170b2f83fc"}},
-{"id":"nub","key":"nub","value":{"rev":"3-932ecf56889fa43584687dbb2cf4aa91"}},
-{"id":"nubnub","key":"nubnub","value":{"rev":"6-93a5267209e1aa869521a5952cbb1828"}},
-{"id":"null","key":"null","value":{"rev":"3-ae8247cfa9553d23a229993cfc8436c5"}},
-{"id":"numb","key":"numb","value":{"rev":"5-594cd9e8e8e4262ddb3ddd80e8084b62"}},
-{"id":"nun","key":"nun","value":{"rev":"8-3bd8b37ed85c1a5da211bd0d5766848e"}},
-{"id":"nunz","key":"nunz","value":{"rev":"3-040f033943158be495f6b0da1a0c0344"}},
-{"id":"nurl","key":"nurl","value":{"rev":"11-6c4ee6fc5c5119c56f2fd8ad8a0cb928"}},
-{"id":"nutil","key":"nutil","value":{"rev":"3-7785a1d4651dcfe78c874848f41d1348"}},
-{"id":"nutils","key":"nutils","value":{"rev":"13-889624db0c155fc2f0b501bba47e55ec"}},
-{"id":"nuvem","key":"nuvem","value":{"rev":"23-054b9b1240f4741f561ef0bb3197bdf8"}},
-{"id":"nvm","key":"nvm","value":{"rev":"28-251b7eb3429a00099b37810d05accd47"}},
-{"id":"nwm","key":"nwm","value":{"rev":"3-fe9274106aac9e67eea734159477acaf"}},
-{"id":"nx","key":"nx","value":{"rev":"55-7ad32fcb34ec25f841ddd0e5857375c7"}},
-{"id":"nx-core","key":"nx-core","value":{"rev":"33-a7bc62348591bae89fff82057bede1ab"}},
-{"id":"nx-daemon","key":"nx-daemon","value":{"rev":"3-7b86a87654c9e32746a4d36d7c527182"}},
-{"id":"nyaatorrents","key":"nyaatorrents","value":{"rev":"5-8600707a1e84f617bd5468b5c9179202"}},
-{"id":"nyala","key":"nyala","value":{"rev":"17-23c908297a37c47f9f09977f4cf101ff"}},
-{"id":"nyam","key":"nyam","value":{"rev":"17-697b5f17fe67630bc9494184146c12f1"}},
-{"id":"nyancat","key":"nyancat","value":{"rev":"13-84c18d007db41b40e9145bdc049b0a00"}},
-{"id":"nymph","key":"nymph","value":{"rev":"5-3a5d7a75d32f7a71bf4ec131f71484d8"}},
-{"id":"o3-xml","key":"o3-xml","value":{"rev":"3-cc4df881333805600467563f80b5216c"}},
-{"id":"oahu","key":"oahu","value":{"rev":"3-e789fc2098292518cb33606c73bfeca4"}},
-{"id":"oauth","key":"oauth","value":{"rev":"38-36b99063db7dc302b70d932e9bbafc24"}},
-{"id":"oauth-client","key":"oauth-client","value":{"rev":"12-ae097c9580ddcd5ca938b169486a63c6"}},
-{"id":"oauth-server","key":"oauth-server","value":{"rev":"7-ea931e31eaffaa843be61ffc89f29da7"}},
-{"id":"oauth2","key":"oauth2","value":{"rev":"3-4fce73fdc95580f397afeaf1bbd596bb"}},
-{"id":"oauth2-client","key":"oauth2-client","value":{"rev":"7-b5bd019159112384abc2087b2f8cb4f7"}},
-{"id":"oauth2-provider","key":"oauth2-provider","value":{"rev":"3-acd8f23b8c1c47b19838424b64618c70"}},
-{"id":"oauth2-server","key":"oauth2-server","value":{"rev":"11-316baa7e754053d0153086d0748b07c5"}},
-{"id":"obj_diff","key":"obj_diff","value":{"rev":"3-9289e14caaec4bb6aa64aa1be547db3b"}},
-{"id":"object-additions","key":"object-additions","value":{"rev":"3-11f03ae5afe00ad2be034fb313ce71a9"}},
-{"id":"object-proxy","key":"object-proxy","value":{"rev":"3-4d531308fc97bac6f6f9acd1e8f5b53a"}},
-{"id":"object-sync","key":"object-sync","value":{"rev":"5-6628fff49d65c96edc9d7a2e13db8d6d"}},
-{"id":"observer","key":"observer","value":{"rev":"3-a48052671a59b1c7874b4462e375664d"}},
-{"id":"octo.io","key":"octo.io","value":{"rev":"7-5692104396299695416ecb8548e53541"}},
-{"id":"octopus","key":"octopus","value":{"rev":"3-0a286abf59ba7232210e24a371902e7b"}},
-{"id":"odbc","key":"odbc","value":{"rev":"3-8550f0b183b229e41f3cb947bad9b059"}},
-{"id":"odot","key":"odot","value":{"rev":"13-3954b69c1a560a71fe58ab0c5c1072ba"}},
-{"id":"offliner","key":"offliner","value":{"rev":"3-9b58041cbd7b0365e04fec61c192c9b2"}},
-{"id":"ofxer","key":"ofxer","value":{"rev":"11-f8a79e1f27c92368ca1198ad37fbe83e"}},
-{"id":"ogre","key":"ogre","value":{"rev":"35-ea9c78c1d5b1761f059bb97ea568b23d"}},
-{"id":"oi.tekcos","key":"oi.tekcos","value":{"rev":"5-fdca9adb54acea3f91567082b107dde9"}},
-{"id":"oktest","key":"oktest","value":{"rev":"3-3b40312743a3eb1d8541ceee3ecfeace"}},
-{"id":"omcc","key":"omcc","value":{"rev":"3-19718e77bf82945c3ca7a3cdfb91188c"}},
-{"id":"omegle","key":"omegle","value":{"rev":"3-507ba8a51afbe2ff078e3e96712b7286"}},
-{"id":"ometa","key":"ometa","value":{"rev":"10-457fa17de89e1012ce812af3a53f4035"}},
-{"id":"ometa-highlighter","key":"ometa-highlighter","value":{"rev":"21-d18470d6d9a93bc7383c7d8ace22ad1d"}},
-{"id":"ometajs","key":"ometajs","value":{"rev":"20-c7e8c32926f2523e40e4a7ba2297192c"}},
-{"id":"onion","key":"onion","value":{"rev":"3-b46c000c8ff0b06f5f0028d268bc5c94"}},
-{"id":"onvalid","key":"onvalid","value":{"rev":"3-090bc1cf1418545b84db0fceb0846293"}},
-{"id":"oo","key":"oo","value":{"rev":"7-2297a18cdbcf29ad4867a2159912c04e"}},
-{"id":"oop","key":"oop","value":{"rev":"7-45fab8bae343e805d0c1863149dc20df"}},
-{"id":"op","key":"op","value":{"rev":"13-4efb059757caaecc18d5110b44266b35"}},
-{"id":"open-uri","key":"open-uri","value":{"rev":"21-023a00f26ecd89e278136fbb417ae9c3"}},
-{"id":"open.core","key":"open.core","value":{"rev":"35-f578db4e41dd4ae9128e3be574cf7b14"}},
-{"id":"open311","key":"open311","value":{"rev":"13-bb023a45d3c3988022d2fef809de8d98"}},
-{"id":"openid","key":"openid","value":{"rev":"29-b3c8a0e76d99ddb80c98d2aad5586771"}},
-{"id":"openlayers","key":"openlayers","value":{"rev":"3-602c34468c9be326e95be327b58d599b"}},
-{"id":"opentok","key":"opentok","value":{"rev":"5-5f4749f1763d45141d0272c1dbe6249a"}},
-{"id":"opentsdb-dashboard","key":"opentsdb-dashboard","value":{"rev":"3-2e0c5ccf3c9cfce17c20370c93283707"}},
-{"id":"opower-jobs","key":"opower-jobs","value":{"rev":"16-1602139f92e58d88178f21f1b3e0939f"}},
-{"id":"optimist","key":"optimist","value":{"rev":"64-ca3e5085acf135169d79949c25d84690"}},
-{"id":"optparse","key":"optparse","value":{"rev":"6-0200c34395f982ae3b80f4d18cb14483"}},
-{"id":"opts","key":"opts","value":{"rev":"8-ce2a0e31de55a1e02d5bbff66c4e8794"}},
-{"id":"orchestra","key":"orchestra","value":{"rev":"9-52ca98cddb51a2a43ec02338192c44fc"}},
-{"id":"orchid","key":"orchid","value":{"rev":"49-af9635443671ed769e4efa691b8ca84a"}},
-{"id":"orderly","key":"orderly","value":{"rev":"3-9ccc42d45b64278c9ffb1e64fc4f0d62"}},
-{"id":"orgsync.live","key":"orgsync.live","value":{"rev":"3-4dffc8ac43931364f59b9cb534acbaef"}},
-{"id":"orm","key":"orm","value":{"rev":"21-f3e7d89239364559d306110580bbb08f"}},
-{"id":"ormnomnom","key":"ormnomnom","value":{"rev":"15-0aacfbb5b7b580d76e9ecf5214a1d5ed"}},
-{"id":"orona","key":"orona","value":{"rev":"8-62d4ba1bf49098a140a2b85f80ebb103"}},
-{"id":"osc4node","key":"osc4node","value":{"rev":"3-0910613e78065f78b61142b35986e8b3"}},
-{"id":"oscar","key":"oscar","value":{"rev":"3-f5d2d39a67c67441bc2135cdaf2b47f8"}},
-{"id":"osrandom","key":"osrandom","value":{"rev":"3-026016691a5ad068543503e5e7ce6a84"}},
-{"id":"ossp-uuid","key":"ossp-uuid","value":{"rev":"10-8b7e1fba847d7cc9aa4f4c8813ebe6aa"}},
-{"id":"ostatus","key":"ostatus","value":{"rev":"3-76e0ec8c61c6df15c964197b722e24e7"}},
-{"id":"ostrich","key":"ostrich","value":{"rev":"3-637e0821e5ccfd0f6b1261b22c168c8d"}},
-{"id":"otk","key":"otk","value":{"rev":"5-2dc24e159cc618f43e573561286c4dcd"}},
-{"id":"ourl","key":"ourl","value":{"rev":"5-a3945e59e33faac96c75b508ef7fa1fb"}},
-{"id":"oursql","key":"oursql","value":{"rev":"21-bc53ab462155fa0aedbe605255fb9988"}},
-{"id":"out","key":"out","value":{"rev":"5-eb261f940b6382e2689210a58bc1b440"}},
-{"id":"overload","key":"overload","value":{"rev":"10-b88919e5654bef4922029afad4f1d519"}},
-{"id":"ox","key":"ox","value":{"rev":"3-0ca445370b4f76a93f2181ad113956d9"}},
-{"id":"pachube","key":"pachube","value":{"rev":"10-386ac6be925bab307b5d545516fb18ef"}},
-{"id":"pachube-stream","key":"pachube-stream","value":{"rev":"13-176dadcc5c516420fb3feb1f964739e0"}},
-{"id":"pack","key":"pack","value":{"rev":"29-8f8c511d95d1fb322c1a6d7965ef8f29"}},
-{"id":"packagebohrer","key":"packagebohrer","value":{"rev":"3-507358253a945a74c49cc169ad0bf5a2"}},
-{"id":"packer","key":"packer","value":{"rev":"9-23410d893d47418731e236cfcfcfbf03"}},
-{"id":"packet","key":"packet","value":{"rev":"8-1b366f97d599c455dcbbe4339da7cf9e"}},
-{"id":"pacote-sam-egenial","key":"pacote-sam-egenial","value":{"rev":"3-b967db1b9fceb9a937f3520efd89f479"}},
-{"id":"pacoteegenial","key":"pacoteegenial","value":{"rev":"3-9cfe8518b885bfd9a44ed38814f7d623"}},
-{"id":"pact","key":"pact","value":{"rev":"7-82996c1a0c8e9a5e9df959d4ad37085e"}},
-{"id":"pad","key":"pad","value":{"rev":"3-eef6147f09b662cff95c946f2b065da5"}},
-{"id":"paddle","key":"paddle","value":{"rev":"3-fedd0156b9a0dadb5e9b0f1cfab508fd"}},
-{"id":"padlock","key":"padlock","value":{"rev":"9-3a9e378fbe8e3817da7999f675af227e"}},
-{"id":"pagen","key":"pagen","value":{"rev":"9-9aac56724039c38dcdf7f6d5cbb4911c"}},
-{"id":"paginate-js","key":"paginate-js","value":{"rev":"5-995269155152db396662c59b67e9e93d"}},
-{"id":"pairtree","key":"pairtree","value":{"rev":"3-0361529e6c91271e2a61f3d7fd44366e"}},
-{"id":"palsu-app","key":"palsu-app","value":{"rev":"3-73f1fd9ae35e3769efc9c1aa25ec6da7"}},
-{"id":"pam","key":"pam","value":{"rev":"3-77b5bd15962e1c8be1980b33fd3b9737"}},
-{"id":"panache","key":"panache","value":{"rev":"25-749d2034f7f9179c2266cf896bb4abb0"}},
-{"id":"panic","key":"panic","value":{"rev":"7-068b22be54ca8ae7b03eb153c2ea849a"}},
-{"id":"pantry","key":"pantry","value":{"rev":"33-3896f0fc165092f6cabb2949be3952c4"}},
-{"id":"paper-keys","key":"paper-keys","value":{"rev":"3-729378943040ae01d59f07bb536309b7"}},
-{"id":"paperboy","key":"paperboy","value":{"rev":"8-db2d51c2793b4ffc82a1ae928c813aae"}},
-{"id":"paperserve","key":"paperserve","value":{"rev":"6-8509fb68217199a3eb74f223b1e2bee5"}},
-{"id":"parall","key":"parall","value":{"rev":"5-279d7105a425e136f6101250e8f81a14"}},
-{"id":"parallel","key":"parallel","value":{"rev":"14-f1294b3b840cfb26095107110b6720ec"}},
-{"id":"paramon","key":"paramon","value":{"rev":"3-37e599e924beb509c894c992cf72791b"}},
-{"id":"parannus","key":"parannus","value":{"rev":"7-7541f1ed13553261330b9e1c4706f112"}},
-{"id":"parasite","key":"parasite","value":{"rev":"13-83c26181bb92cddb8ff76bc154a50210"}},
-{"id":"parrot","key":"parrot","value":{"rev":"3-527d1cb4b5be0e252dc92a087d380f17"}},
-{"id":"parseUri","key":"parseUri","value":{"rev":"3-3b60b1fd6d8109279b5d0cfbdb89b343"}},
-{"id":"parseopt","key":"parseopt","value":{"rev":"10-065f1acaf02c94f0684f75fefc2fd1ec"}},
-{"id":"parser","key":"parser","value":{"rev":"5-f661f0b7ede9b6d3e0de259ed20759b1"}},
-{"id":"parser_email","key":"parser_email","value":{"rev":"12-63333860c62f2a9c9d6b0b7549bf1cdc"}},
-{"id":"parstream","key":"parstream","value":{"rev":"3-ef7e8ffc8ce1e7d951e37f85bfd445ab"}},
-{"id":"parted","key":"parted","value":{"rev":"9-250e4524994036bc92915b6760d62d8a"}},
-{"id":"partial","key":"partial","value":{"rev":"7-208411e6191275a4193755ee86834716"}},
-{"id":"party","key":"party","value":{"rev":"5-9337d8dc5e163f0300394f533ab1ecdf"}},
-{"id":"pashua","key":"pashua","value":{"rev":"3-b752778010f4e20f662a3d8f0f57b18b"}},
-{"id":"pass","key":"pass","value":{"rev":"3-66a2d55d93eae8535451f12965578db8"}},
-{"id":"passthru","key":"passthru","value":{"rev":"9-3c8f0b20f1a16976f3645a6f7411b56a"}},
-{"id":"passwd","key":"passwd","value":{"rev":"19-44ac384382a042faaa1f3b111786c831"}},
-{"id":"password","key":"password","value":{"rev":"9-0793f6a8d09076f25cde7c9e528eddec"}},
-{"id":"password-hash","key":"password-hash","value":{"rev":"9-590c62e275ad577c6f8ddbf5ba4579cc"}},
-{"id":"path","key":"path","value":{"rev":"3-3ec064cf3f3a85cb59528654c5bd938f"}},
-{"id":"pathjs","key":"pathjs","value":{"rev":"5-d5e1b1a63e711cae3ac79a3b1033b609"}},
-{"id":"pathname","key":"pathname","value":{"rev":"9-16f2c1473454900ce18a217b2ea52c57"}},
-{"id":"paths","key":"paths","value":{"rev":"3-fa47b7c1d533a7d9f4bbaffc5fb89905"}},
-{"id":"patr","key":"patr","value":{"rev":"7-7bcd37586389178b9f23d33c1d7a0292"}},
-{"id":"pattern","key":"pattern","value":{"rev":"36-3ded826185c384af535dcd428af3f626"}},
-{"id":"payment-paypal-payflowpro","key":"payment-paypal-payflowpro","value":{"rev":"14-d8814a1d8bba57a6ecf8027064adc7ad"}},
-{"id":"paynode","key":"paynode","value":{"rev":"16-16084e61db66ac18fdbf95a51d31c09a"}},
-{"id":"payos","key":"payos","value":{"rev":"3-373695bd80c454b32b83a5eba6044261"}},
-{"id":"paypal-ipn","key":"paypal-ipn","value":{"rev":"5-ef32291f9f8371b20509db3acee722f6"}},
-{"id":"pcap","key":"pcap","value":{"rev":"46-8ae9e919221102581d6bb848dc67b84b"}},
-{"id":"pd","key":"pd","value":{"rev":"7-82146739c4c0eb4e49e40aa80a29cc0a"}},
-{"id":"pdf","key":"pdf","value":{"rev":"6-5c6b6a133e1b3ce894ebb1a49090216c"}},
-{"id":"pdfcrowd","key":"pdfcrowd","value":{"rev":"5-026b4611b50374487bfd64fd3e0d562c"}},
-{"id":"pdfkit","key":"pdfkit","value":{"rev":"13-2fd34c03225a87dfd8057c85a83f3c50"}},
-{"id":"pdflatex","key":"pdflatex","value":{"rev":"3-bbbf61f09ebe4c49ca0aff8019611660"}},
-{"id":"pdl","key":"pdl","value":{"rev":"3-4c41bf12e901ee15bdca468db8c89102"}},
-{"id":"peanut","key":"peanut","value":{"rev":"55-b797121dbbcba1219934284ef56abb8a"}},
-{"id":"pebble","key":"pebble","value":{"rev":"21-3cd08362123260a2e96d96d80e723805"}},
-{"id":"pecode","key":"pecode","value":{"rev":"3-611f5e8c61bbf4467b84da954ebdd521"}},
-{"id":"pegjs","key":"pegjs","value":{"rev":"11-091040d16433014d1da895e32ac0f6a9"}},
-{"id":"per-second","key":"per-second","value":{"rev":"5-e1593b3f7008ab5e1c3cae86f39ba3f3"}},
-{"id":"permafrost","key":"permafrost","value":{"rev":"9-494cbc9a2f43a60b57f23c5f5b12270d"}},
-{"id":"perry","key":"perry","value":{"rev":"41-15aed7a778fc729ad62fdfb231c50774"}},
-{"id":"persistencejs","key":"persistencejs","value":{"rev":"20-2585af3f15f0a4a7395e937237124596"}},
-{"id":"pg","key":"pg","value":{"rev":"142-48de452fb8a84022ed7cae8ec2ebdaf6"}},
-{"id":"phonetap","key":"phonetap","value":{"rev":"7-2cc7d3c2a09518ad9b0fe816c6a99125"}},
-{"id":"php-autotest","key":"php-autotest","value":{"rev":"3-04470b38b259187729af574dd3dc1f97"}},
-{"id":"phpass","key":"phpass","value":{"rev":"3-66f4bec659bf45b312022bb047b18696"}},
-{"id":"piano","key":"piano","value":{"rev":"3-0bab6b5409e4305c87a775e96a2b7ad3"}},
-{"id":"picard","key":"picard","value":{"rev":"5-7676e6ad6d5154fdc016b001465891f3"}},
-{"id":"picardForTynt","key":"picardForTynt","value":{"rev":"3-09d205b790bd5022b69ec4ad54bad770"}},
-{"id":"pid","key":"pid","value":{"rev":"3-0ba7439d599b9d613461794c3892d479"}},
-{"id":"pieshop","key":"pieshop","value":{"rev":"12-7851afe1bbc20de5d054fe93b071f849"}},
-{"id":"pig","key":"pig","value":{"rev":"3-8e6968a7b64635fed1bad12c39d7a46a"}},
-{"id":"pigeons","key":"pigeons","value":{"rev":"53-8df70420d3c845cf0159b3f25d0aab90"}},
-{"id":"piles","key":"piles","value":{"rev":"3-140cb1e83b5a939ecd429b09886132ef"}},
-{"id":"pillar","key":"pillar","value":{"rev":"6-83c81550187f6d00e11dd9955c1c94b7"}},
-{"id":"pilot","key":"pilot","value":{"rev":"3-073ed1a083cbd4c2aa2561f19e5935ea"}},
-{"id":"pinboard","key":"pinboard","value":{"rev":"3-1020cab02a1183acdf82e1f7620dc1e0"}},
-{"id":"pinf-loader-js","key":"pinf-loader-js","value":{"rev":"5-709ba9c86fb4de906bd7bbca53771f0f"}},
-{"id":"pinf-loader-js-demos-npmpackage","key":"pinf-loader-js-demos-npmpackage","value":{"rev":"3-860569d98c83e59185cff356e56b10a6"}},
-{"id":"pingback","key":"pingback","value":{"rev":"5-5d0a05d65a14f6837b0deae16c550bec"}},
-{"id":"pingdom","key":"pingdom","value":{"rev":"11-f299d6e99122a9fa1497bfd166dadd02"}},
-{"id":"pintpay","key":"pintpay","value":{"rev":"3-eba9c4059283adec6b1ab017284c1f17"}},
-{"id":"pipe","key":"pipe","value":{"rev":"5-d202bf317c10a52ac817b5c1a4ce4c88"}},
-{"id":"pipe_utils","key":"pipe_utils","value":{"rev":"13-521857c99eb76bba849a22240308e584"}},
-{"id":"pipegram","key":"pipegram","value":{"rev":"3-1449333c81dd658d5de9eebf36c07709"}},
-{"id":"pipeline-surveyor","key":"pipeline-surveyor","value":{"rev":"11-464db89b17e7b44800088ec4a263d92e"}},
-{"id":"pipes","key":"pipes","value":{"rev":"99-8320636ff840a61d82d9c257a2e0ed48"}},
-{"id":"pipes-cellar","key":"pipes-cellar","value":{"rev":"27-e035e58a3d82e50842d766bb97ea3ed9"}},
-{"id":"pipes-cohort","key":"pipes-cohort","value":{"rev":"9-88fc0971e01516873396e44974874903"}},
-{"id":"piton-entity","key":"piton-entity","value":{"rev":"31-86254212066019f09d67dfd58524bd75"}},
-{"id":"piton-http-utils","key":"piton-http-utils","value":{"rev":"3-6cf6aa0c655ff6118d53e62e3b970745"}},
-{"id":"piton-mixin","key":"piton-mixin","value":{"rev":"3-7b7737004e53e04f7f95ba5850eb5e70"}},
-{"id":"piton-pipe","key":"piton-pipe","value":{"rev":"3-8d7df4e53f620ef2f24e9fc8b24f0238"}},
-{"id":"piton-simplate","key":"piton-simplate","value":{"rev":"3-9ac00835d3de59d535cdd2347011cdc9"}},
-{"id":"piton-string-utils","key":"piton-string-utils","value":{"rev":"3-ecab73993d764dfb378161ea730dbbd5"}},
-{"id":"piton-validity","key":"piton-validity","value":{"rev":"13-1766651d69e3e075bf2c66b174b66026"}},
-{"id":"pixel-ping","key":"pixel-ping","value":{"rev":"11-38d717c927e13306e8ff9032785b50f2"}},
-{"id":"pixelcloud","key":"pixelcloud","value":{"rev":"7-0897d734157b52dece8f86cde7be19d4"}},
-{"id":"pixiedust","key":"pixiedust","value":{"rev":"3-6b932dee4b6feeed2f797de5d0066f8a"}},
-{"id":"pkginfo","key":"pkginfo","value":{"rev":"13-3ee42503d6672812960a965d4f3a1bc2"}},
-{"id":"pksqlite","key":"pksqlite","value":{"rev":"13-095e7d7d0258b71491c39d0e8c4f19be"}},
-{"id":"plants.js","key":"plants.js","value":{"rev":"3-e3ef3a16f637787e84c100a9b9ec3b08"}},
-{"id":"plate","key":"plate","value":{"rev":"20-92ba0729b2edc931f28870fe7f2ca95a"}},
-{"id":"platform","key":"platform","value":{"rev":"4-be465a1d21be066c96e30a42b8602177"}},
-{"id":"platformjs","key":"platformjs","value":{"rev":"35-5c510fa0c90492fd1d0f0fc078460018"}},
-{"id":"platoon","key":"platoon","value":{"rev":"28-e0e0c5f852eadacac5a652860167aa11"}},
-{"id":"play","key":"play","value":{"rev":"5-17f7cf7cf5d1c21c7392f3c43473098d"}},
-{"id":"plist","key":"plist","value":{"rev":"10-2a23864923aeed93fb8e25c4b5b2e97e"}},
-{"id":"png","key":"png","value":{"rev":"14-9cc7aeaf0c036c9a880bcee5cd46229a"}},
-{"id":"png-guts","key":"png-guts","value":{"rev":"5-a29c7c686f9d08990ce29632bf59ef90"}},
-{"id":"policyfile","key":"policyfile","value":{"rev":"21-4a9229cca4bcac10f730f296f7118548"}},
-{"id":"polla","key":"polla","value":{"rev":"27-9af5a575961a4dddb6bef482c168c756"}},
-{"id":"poly","key":"poly","value":{"rev":"3-7f7fe29d9f0ec4fcbf8481c797b20455"}},
-{"id":"polyglot","key":"polyglot","value":{"rev":"3-9306e246d1f8b954b41bef76e3e81291"}},
-{"id":"pool","key":"pool","value":{"rev":"10-f364b59aa8a9076a17cd94251dd013ab"}},
-{"id":"poolr","key":"poolr","value":{"rev":"5-cacfbeaa7aaca40c1a41218e8ac8b732"}},
-{"id":"pop","key":"pop","value":{"rev":"41-8edd9ef2f34a90bf0ec5e8eb0e51e644"}},
-{"id":"pop-disqus","key":"pop-disqus","value":{"rev":"3-4a8272e6a8453ed2d754397dc8b349bb"}},
-{"id":"pop-ga","key":"pop-ga","value":{"rev":"3-5beaf7b355d46b3872043b97696ee693"}},
-{"id":"pop-gallery","key":"pop-gallery","value":{"rev":"3-1a88920ff930b8ce51cd50fcfe62675e"}},
-{"id":"pop3-client","key":"pop3-client","value":{"rev":"3-be8c314b0479d9d98384e2ff36d7f207"}},
-{"id":"poplib","key":"poplib","value":{"rev":"7-ab64c5c35269aee897b0904b4548096b"}},
-{"id":"porter-stemmer","key":"porter-stemmer","value":{"rev":"5-724a7b1d635b95a14c9ecd9d2f32487d"}},
-{"id":"portfinder","key":"portfinder","value":{"rev":"5-cdf36d1c666bbdae500817fa39b9c2bd"}},
-{"id":"portscanner","key":"portscanner","value":{"rev":"3-773c1923b6f3b914bd801476efcfdf64"}},
-{"id":"pos","key":"pos","value":{"rev":"3-1c1a27020560341ecd1b54d0e3cfaf2a"}},
-{"id":"posix-getopt","key":"posix-getopt","value":{"rev":"3-819b69724575b65fe25cf1c768e1b1c6"}},
-{"id":"postageapp","key":"postageapp","value":{"rev":"9-f5735237f7e6f0b467770e28e84c56db"}},
-{"id":"postal","key":"postal","value":{"rev":"19-dd70aeab4ae98ccf3d9f203dff9ccf37"}},
-{"id":"posterous","key":"posterous","value":{"rev":"3-6f8a9e7cae8a26f021653f2c27b0c67f"}},
-{"id":"postgres","key":"postgres","value":{"rev":"6-e8844a47c83ff3ef0a1ee7038b2046b2"}},
-{"id":"postgres-js","key":"postgres-js","value":{"rev":"3-bbe27a49ee9f8ae8789660e178d6459d"}},
-{"id":"postman","key":"postman","value":{"rev":"5-548538583f2e7ad448adae27f9a801e5"}},
-{"id":"postmark","key":"postmark","value":{"rev":"24-a6c61b346329e499d4a4a37dbfa446a2"}},
-{"id":"postmark-api","key":"postmark-api","value":{"rev":"3-79973af301aa820fc18c2c9d418adcd7"}},
-{"id":"postmessage","key":"postmessage","value":{"rev":"5-854bdb27c2a1af5b629b01f7d69691fe"}},
-{"id":"postpie","key":"postpie","value":{"rev":"10-88527e2731cd07a3b8ddec2608682700"}},
-{"id":"postprocess","key":"postprocess","value":{"rev":"5-513ecd54bf8df0ae73d2a50c717fd939"}},
-{"id":"potato","key":"potato","value":{"rev":"3-0f4cab343859692bf619e79cd9cc5be1"}},
-{"id":"pour","key":"pour","value":{"rev":"7-272bee63c5f19d12102198a23a4af902"}},
-{"id":"pow","key":"pow","value":{"rev":"22-58b557cd71ec0e95eef51dfd900e4736"}},
-{"id":"precious","key":"precious","value":{"rev":"19-b370292b258bcbca02c5d8861ebee0bb"}},
-{"id":"predicate","key":"predicate","value":{"rev":"3-1c6d1871fe71bc61457483793eecf7f9"}},
-{"id":"prefer","key":"prefer","value":{"rev":"11-236b9d16cd019e1d9af41e745bfed754"}},
-{"id":"prenup","key":"prenup","value":{"rev":"3-4c56ddf1ee22cd90c85963209736bc75"}},
-{"id":"pretty-json","key":"pretty-json","value":{"rev":"5-2dbb22fc9573c19e64725ac331a8d59c"}},
-{"id":"prettyfy","key":"prettyfy","value":{"rev":"3-fc7e39aad63a42533d4ac6d6bfa32325"}},
-{"id":"prick","key":"prick","value":{"rev":"10-71a02e1be02df2af0e6a958099be565a"}},
-{"id":"printf","key":"printf","value":{"rev":"5-2896b8bf90df19d4a432153211ca3a7e"}},
-{"id":"pro","key":"pro","value":{"rev":"5-e98adaf2f741e00953bbb942bbeb14d2"}},
-{"id":"probe_couchdb","key":"probe_couchdb","value":{"rev":"28-86f8918a3e64608f8009280fb28a983d"}},
-{"id":"process","key":"process","value":{"rev":"3-6865fc075d8083afd8e2aa266512447c"}},
-{"id":"procfile","key":"procfile","value":{"rev":"3-22dbb2289f5fb3060a8f7833b50116a4"}},
-{"id":"profile","key":"profile","value":{"rev":"29-5afee07fe4c334d9836fda1df51e1f2d"}},
-{"id":"profilejs","key":"profilejs","value":{"rev":"9-128c2b0e09624ee69a915cff20cdf359"}},
-{"id":"profiler","key":"profiler","value":{"rev":"13-4f1582fad93cac11daad5d5a67565e4f"}},
-{"id":"progress","key":"progress","value":{"rev":"7-bba60bc39153fa0fbf5e909b6df213b0"}},
-{"id":"progress-bar","key":"progress-bar","value":{"rev":"5-616721d3856b8e5a374f247404d6ab29"}},
-{"id":"progressify","key":"progressify","value":{"rev":"5-0379cbed5adc2c3f3ac6adf0307ec11d"}},
-{"id":"proj4js","key":"proj4js","value":{"rev":"5-7d209ce230f6a2d5931800acef436a06"}},
-{"id":"projectwatch","key":"projectwatch","value":{"rev":"15-d0eca46ffc3d9e18a51db2d772fa2778"}},
-{"id":"promise","key":"promise","value":{"rev":"3-1409350eb10aa9055ed13a5b59f0abc3"}},
-{"id":"promised-fs","key":"promised-fs","value":{"rev":"28-1d3e0dd1884e1c39a5d5e2d35bb1f911"}},
-{"id":"promised-http","key":"promised-http","value":{"rev":"8-3f8d560c800ddd44a617bf7d7c688392"}},
-{"id":"promised-io","key":"promised-io","value":{"rev":"11-e9a280e85c021cd8b77e524aac50fafb"}},
-{"id":"promised-traits","key":"promised-traits","value":{"rev":"14-62d0ac59d4ac1c6db99c0273020565ea"}},
-{"id":"promised-utils","key":"promised-utils","value":{"rev":"20-0c2488685eb8999c40ee5e7cfa4fd75d"}},
-{"id":"prompt","key":"prompt","value":{"rev":"32-d52a524c147e34c1258facab69660cc2"}},
-{"id":"props","key":"props","value":{"rev":"17-8c4c0bf1b69087510612c8d5ccbfbfeb"}},
-{"id":"proserver","key":"proserver","value":{"rev":"3-4b0a001404171eb0f6f3e5d73a35fcb1"}},
-{"id":"protege","key":"protege","value":{"rev":"150-9790c23d7b7eb5fb94cd5b8048bdbf10"}},
-{"id":"proto","key":"proto","value":{"rev":"6-29fe2869f34e2737b0cc2a0dbba8e397"}},
-{"id":"proto-list","key":"proto-list","value":{"rev":"3-0f64ff29a4a410d5e03a57125374b87b"}},
-{"id":"protobuf-stream","key":"protobuf-stream","value":{"rev":"3-950e621ce7eef306eff5f932a9c4cbae"}},
-{"id":"protodiv","key":"protodiv","value":{"rev":"9-ed8d84033943934eadf5d95dfd4d8eca"}},
-{"id":"proton","key":"proton","value":{"rev":"19-8ad32d57a3e71df786ff41ef8c7281f2"}},
-{"id":"protoparse","key":"protoparse","value":{"rev":"3-9fbcc3b26220f974d4b9c9c883a0260b"}},
-{"id":"prototype","key":"prototype","value":{"rev":"5-2a672703595e65f5d731a967b43655a7"}},
-{"id":"prowl","key":"prowl","value":{"rev":"5-ec480caa5a7db4f1ec2ce22d5eb1dad8"}},
-{"id":"prowler","key":"prowler","value":{"rev":"3-09747704f78c7c123fb1c719c4996924"}},
-{"id":"prox","key":"prox","value":{"rev":"5-0ac5f893b270a819d91f0c6581aca2a8"}},
-{"id":"proxify","key":"proxify","value":{"rev":"3-d24a979b708645328476bd42bd5aaba8"}},
-{"id":"proxino","key":"proxino","value":{"rev":"7-894cc6d453af00e5e39ebc8f0b0abe3a"}},
-{"id":"proxio","key":"proxio","value":{"rev":"55-a1b2744054b3dc3adc2f7f67d2c026a4"}},
-{"id":"proxy","key":"proxy","value":{"rev":"3-c6dd1a8b58e0ed7ac983c89c05ee987d"}},
-{"id":"proxy-by-url","key":"proxy-by-url","value":{"rev":"5-acfcf47f3575cea6594513ff459c5f2c"}},
-{"id":"pseudo","key":"pseudo","value":{"rev":"11-4d894a335036d96cdb9bb19f7b857293"}},
-{"id":"psk","key":"psk","value":{"rev":"17-375055bf6315476a37b5fadcdcb6b149"}},
-{"id":"pty","key":"pty","value":{"rev":"8-0b3ea0287fd23f882da27dabce4e3230"}},
-{"id":"pub-mix","key":"pub-mix","value":{"rev":"3-2c455b249167cbf6b1a6ea761bf119f4"}},
-{"id":"pubjs","key":"pubjs","value":{"rev":"3-a0ceab8bc6ec019dfcf9a8e16756bea0"}},
-{"id":"publicsuffix","key":"publicsuffix","value":{"rev":"8-1592f0714595c0ca0433272c60afc733"}},
-{"id":"publisher","key":"publisher","value":{"rev":"13-f2c8722f14732245d3ca8842fe5b7661"}},
-{"id":"pubnub-client","key":"pubnub-client","value":{"rev":"8-6e511a6dd2b7feb6cefe410facd61f53"}},
-{"id":"pubsub","key":"pubsub","value":{"rev":"11-6c6270bf95af417fb766c05f66b2cc9e"}},
-{"id":"pubsub.io","key":"pubsub.io","value":{"rev":"24-9686fe9ae3356966dffee99f53eaad2c"}},
-{"id":"pubsubd","key":"pubsubd","value":{"rev":"3-b1ff2fa958bd450933735162e9615449"}},
-{"id":"pulley","key":"pulley","value":{"rev":"13-f81ed698175ffd0b5b19357a623b8f15"}},
-{"id":"pulse","key":"pulse","value":{"rev":"9-da4bdabb6d7c189d05c8d6c64713e4ac"}},
-{"id":"pulverizr","key":"pulverizr","value":{"rev":"16-ffd4db4d2b1bfbd0b6ac794dca9e728e"}},
-{"id":"pulverizr-bal","key":"pulverizr-bal","value":{"rev":"5-dba279d07f3ed72990d10f11c5d10792"}},
-{"id":"punycode","key":"punycode","value":{"rev":"3-c0df35bb32d1490a4816161974610682"}},
-{"id":"puppy","key":"puppy","value":{"rev":"3-355fb490dba55efdf8840e2769cb7f41"}},
-{"id":"pure","key":"pure","value":{"rev":"7-b2da0d64ea12cea63bed940222bb36df"}},
-{"id":"purpose","key":"purpose","value":{"rev":"3-ef30ac479535bd603954c27ecb5d564a"}},
-{"id":"push-it","key":"push-it","value":{"rev":"35-2640be8ca8938768836520ce5fc7fff2"}},
-{"id":"pusher","key":"pusher","value":{"rev":"5-eb363d1e0ea2c59fd92a07ea642c5d03"}},
-{"id":"pusher-pipe","key":"pusher-pipe","value":{"rev":"11-11ab87d1288a8c7d11545fdab56616f6"}},
-{"id":"pushinator","key":"pushinator","value":{"rev":"15-6b2c37931bc9438e029a6af0cf97091c"}},
-{"id":"put","key":"put","value":{"rev":"12-4b05a7cdfdb24a980597b38781457cf5"}},
-{"id":"put-selector","key":"put-selector","value":{"rev":"1-1a9b3b8b5a44485b93966503370978aa"}},
-{"id":"putio","key":"putio","value":{"rev":"3-973b65e855e1cd0d3cc685542263cc55"}},
-{"id":"pwilang","key":"pwilang","value":{"rev":"43-49ad04f5abbdd9c5b16ec0271ab17520"}},
-{"id":"py","key":"py","value":{"rev":"3-aade832559d0fab88116aa794e3a9f35"}},
-{"id":"pygments","key":"pygments","value":{"rev":"3-2b2c96f39bdcb9ff38eb7d4bac7c90ba"}},
-{"id":"python","key":"python","value":{"rev":"15-706af811b5544a4aacc6ad1e9863e369"}},
-{"id":"q","key":"q","value":{"rev":"80-fd2397ad465750240d0f22a0abc53de5"}},
-{"id":"q-comm","key":"q-comm","value":{"rev":"17-972994947f097fdcffcfcb2277c966ce"}},
-{"id":"q-fs","key":"q-fs","value":{"rev":"68-958b01dd5bdc4da5ba3c1cd02c85fc0e"}},
-{"id":"q-http","key":"q-http","value":{"rev":"26-42a7db91b650386d920f52afe3e9161f"}},
-{"id":"q-io","key":"q-io","value":{"rev":"20-79f7b3d43bcbd53cc57b6531426738e2"}},
-{"id":"q-io-buffer","key":"q-io-buffer","value":{"rev":"5-05528d9a527da73357991bec449a1b76"}},
-{"id":"q-require","key":"q-require","value":{"rev":"12-e3fc0388e4d3e6d8a15274c3cc239712"}},
-{"id":"q-util","key":"q-util","value":{"rev":"10-94e0c392e70fec942aee0f024e5c090f"}},
-{"id":"qbox","key":"qbox","value":{"rev":"17-88f9148881ede94ae9dcbf4e1980aa69"}},
-{"id":"qfi","key":"qfi","value":{"rev":"3-a6052f02aec10f17085b09e4f9da1ce0"}},
-{"id":"qjscl","key":"qjscl","value":{"rev":"11-def1631b117a53cab5fd38ffec28d727"}},
-{"id":"qooxdoo","key":"qooxdoo","value":{"rev":"5-720d33ec2de3623d6535b3bdc8041d81"}},
-{"id":"qoper8","key":"qoper8","value":{"rev":"11-48fa2ec116bec46d64161e35b0f0cd86"}},
-{"id":"qq","key":"qq","value":{"rev":"23-6f7a5f158364bbf2e90a0c6eb1fbf8a9"}},
-{"id":"qqwry","key":"qqwry","value":{"rev":"10-bf0d6cc2420bdad92a1104c184e7e045"}},
-{"id":"qr","key":"qr","value":{"rev":"11-0a0120b7ec22bbcf76ff1d78fd4a7689"}},
-{"id":"qrcode","key":"qrcode","value":{"rev":"11-b578b6a76bffe996a0390e3d886b79bb"}},
-{"id":"qs","key":"qs","value":{"rev":"23-3da45c8c8a5eb33d45360d92b6072d37"}},
-{"id":"quack-array","key":"quack-array","value":{"rev":"5-6b676aa6273e4515ab5e7bfee1c331e0"}},
-{"id":"quadprog","key":"quadprog","value":{"rev":"7-c0ceeeb12735f334e8c7940ac1f0a896"}},
-{"id":"quadraticon","key":"quadraticon","value":{"rev":"66-1da88ea871e6f90967b9f65c0204309d"}},
-{"id":"quasi","key":"quasi","value":{"rev":"3-6fe0faa91d849938d8c92f91b0828395"}},
-{"id":"query","key":"query","value":{"rev":"13-635ff8d88c6a3f9d92f9ef465b14fb82"}},
-{"id":"query-engine","key":"query-engine","value":{"rev":"21-66feaee07df9fa1f625ac797e8f6b90b"}},
-{"id":"querystring","key":"querystring","value":{"rev":"5-2b509239fafba56319137bfbe1e9eeb7"}},
-{"id":"queue","key":"queue","value":{"rev":"3-5c4af574e5056f7e6ceb9bfefc1c632d"}},
-{"id":"queuelib","key":"queuelib","value":{"rev":"61-87c2abc94a5ad40af8193fac9a1d9f7e"}},
-{"id":"quickcheck","key":"quickcheck","value":{"rev":"7-64e6c1e9efc08a89abe3d01c414d1411"}},
-{"id":"quickserve","key":"quickserve","value":{"rev":"3-9c19f8ad7daf06182f42b8c7063b531f"}},
-{"id":"quip","key":"quip","value":{"rev":"8-0624055f5056f72bc719340c95e5111a"}},
-{"id":"qunit","key":"qunit","value":{"rev":"37-6e7fefdaffab8fc5fb92a391da227c38"}},
-{"id":"qunit-tap","key":"qunit-tap","value":{"rev":"22-0266cd1b5bb7cbab89fa52642f0e8277"}},
-{"id":"qwery","key":"qwery","value":{"rev":"66-29f9b44da544a3a9b4537a85ceace7c8"}},
-{"id":"qwery-mobile","key":"qwery-mobile","value":{"rev":"5-182264ca68c30519bf0d29cf1e15854b"}},
-{"id":"raZerdummy","key":"raZerdummy","value":{"rev":"7-1fa549e0cff60795b49cbd3732f32175"}},
-{"id":"rabbit.js","key":"rabbit.js","value":{"rev":"3-dbcd5cd590576673c65b34c44ff06bec"}},
-{"id":"rabblescay","key":"rabblescay","value":{"rev":"5-3fea196ffd581a842a24ab7bb2118fe2"}},
-{"id":"racer","key":"racer","value":{"rev":"51-41c65689a335d70fa6b55b9706b9c0fe"}},
-{"id":"radcouchdb","key":"radcouchdb","value":{"rev":"3-64ccb4d0acb2b11cbb1d3fcef5f9a68e"}},
-{"id":"radio-stream","key":"radio-stream","value":{"rev":"6-c5f80a0bef7bbaacdd22d92da3d09244"}},
-{"id":"railway","key":"railway","value":{"rev":"74-5ce92a45c7d11540b0e2b5a8455361ce"}},
-{"id":"railway-mailer","key":"railway-mailer","value":{"rev":"3-8df2fbe4af4d3b1f12557d8397bf0548"}},
-{"id":"railway-twitter","key":"railway-twitter","value":{"rev":"3-df984f182bb323052e36876e8e3a066c"}},
-{"id":"rand","key":"rand","value":{"rev":"11-abb69107c390e2a6dcec64cb72f36096"}},
-{"id":"random","key":"random","value":{"rev":"7-32550b221f3549b67f379c1c2dbc5c57"}},
-{"id":"random-data","key":"random-data","value":{"rev":"5-ae651ea36724105b8677ae489082ab4d"}},
-{"id":"range","key":"range","value":{"rev":"3-1d3925f30ffa6b5f3494d507fcef3aa1"}},
-{"id":"ranger","key":"ranger","value":{"rev":"17-6135a9a9d83cbd3945f1ce991f276cb8"}},
-{"id":"rap-battle","key":"rap-battle","value":{"rev":"3-6960516c0d27906bb9343805a5eb0e45"}},
-{"id":"raphael","key":"raphael","value":{"rev":"7-012f159593a82e4587ea024a5d4fbe41"}},
-{"id":"raphael-zoom","key":"raphael-zoom","value":{"rev":"3-aaab74bebbeb4241cade4f4d3c9b130e"}},
-{"id":"rapid","key":"rapid","value":{"rev":"8-ae0b05388c7904fc88c743e3dcde1d9d"}},
-{"id":"rasputin","key":"rasputin","value":{"rev":"3-87cdd9bd591606f4b8439e7a76681c7b"}},
-{"id":"rate-limiter","key":"rate-limiter","value":{"rev":"3-24cd20fef83ce02f17dd383b72f5f125"}},
-{"id":"rats","key":"rats","value":{"rev":"3-1ff1efb311451a17789da910eaf59fb6"}},
-{"id":"raydash","key":"raydash","value":{"rev":"7-96c345beb3564d2789d209d1fe695857"}},
-{"id":"rbytes","key":"rbytes","value":{"rev":"13-cf09d91347a646f590070e516f0c9bc9"}},
-{"id":"rdf","key":"rdf","value":{"rev":"3-9a5012d1fc10da762dbe285d0b317499"}},
-{"id":"rdf-raptor-parser","key":"rdf-raptor-parser","value":{"rev":"11-25c61e4d57cf67ee8a5afb6dfcf193e3"}},
-{"id":"rdfstore","key":"rdfstore","value":{"rev":"41-4499a73efc48ad07234e56fd4e27e4e0"}},
-{"id":"rdio","key":"rdio","value":{"rev":"5-fa20a8ab818a6150e38e9bb7744968f9"}},
-{"id":"rdx","key":"rdx","value":{"rev":"3-e1db5ee3aad06edd9eadcdaa8aaba149"}},
-{"id":"rea","key":"rea","value":{"rev":"3-f17ceeb35337bc9ccf9cb440d5c4dfaf"}},
-{"id":"read-files","key":"read-files","value":{"rev":"3-e08fac4abcdbc7312beb0362ff4427b4"}},
-{"id":"readability","key":"readability","value":{"rev":"3-475601a3d99d696763872c52bce6a155"}},
-{"id":"readabilitySAX","key":"readabilitySAX","value":{"rev":"19-83277777f3f721be26aca28c66227b01"}},
-{"id":"ready.js","key":"ready.js","value":{"rev":"39-8e309b8b274722c051c67f90885571e8"}},
-{"id":"readyjslint","key":"readyjslint","value":{"rev":"3-0a3742129bfbe07d47fcfb9ff67d39b2"}},
-{"id":"recaptcha","key":"recaptcha","value":{"rev":"8-8895926476be014fbe08b301294bf37b"}},
-{"id":"recaptcha-async","key":"recaptcha-async","value":{"rev":"9-3033260389f8afdb5351974119b78ca2"}},
-{"id":"recline","key":"recline","value":{"rev":"189-b56ab8c7791201dccf4aea2532189f1d"}},
-{"id":"recon","key":"recon","value":{"rev":"13-79cbddefb00fec6895342d18609cadb1"}},
-{"id":"reconf","key":"reconf","value":{"rev":"5-0596988db2cf9bf5921502a2aab24ade"}},
-{"id":"redback","key":"redback","value":{"rev":"37-03b390f69cacf42a46e393b7cf297d09"}},
-{"id":"rede","key":"rede","value":{"rev":"3-ee74c2fd990c7780dc823e22a9c3bef2"}},
-{"id":"redecard","key":"redecard","value":{"rev":"13-7dec5a50c34132a2f20f0f143d6b5215"}},
-{"id":"redim","key":"redim","value":{"rev":"15-91c9fd560d1ce87d210b461c52a6d258"}},
-{"id":"redis","key":"redis","value":{"rev":"98-ec237259e8ef5c42a76ff260be50f8fd"}},
-{"id":"redis-channels","key":"redis-channels","value":{"rev":"3-8efc40a25fd18c1c9c41bbaeedb0b22f"}},
-{"id":"redis-client","key":"redis-client","value":{"rev":"3-3376054236e651e7dfcf91be8632fd0e"}},
-{"id":"redis-completer","key":"redis-completer","value":{"rev":"11-9e5bf1f8d37df681e7896252809188d3"}},
-{"id":"redis-keyspace","key":"redis-keyspace","value":{"rev":"25-245f2375741eb3e574dfce9f2da2b687"}},
-{"id":"redis-lua","key":"redis-lua","value":{"rev":"7-81f3dd3a4601271818f15278f495717a"}},
-{"id":"redis-namespace","key":"redis-namespace","value":{"rev":"3-ddf52a172db190fe788aad4116b1cb29"}},
-{"id":"redis-node","key":"redis-node","value":{"rev":"24-7a1e9098d8b5a42a99ca71a01b0d7672"}},
-{"id":"redis-queue","key":"redis-queue","value":{"rev":"3-9896587800c4b98ff291b74210c16b6e"}},
-{"id":"redis-session-store","key":"redis-session-store","value":{"rev":"3-2229501ecf817f9ca60ff2c7721ddd73"}},
-{"id":"redis-tag","key":"redis-tag","value":{"rev":"9-6713e8e91a38613cfef09d7b40f4df71"}},
-{"id":"redis-url","key":"redis-url","value":{"rev":"5-f53545a0039b512a2f7afd4ba2e08773"}},
-{"id":"redis-user","key":"redis-user","value":{"rev":"11-a8c0f6d40cbfbb6183a46e121f31ec06"}},
-{"id":"redis2json","key":"redis2json","value":{"rev":"5-dd96f78f8db0bf695346c95c2ead1307"}},
-{"id":"redis_objects","key":"redis_objects","value":{"rev":"3-499fe6dd07e7a3839111b1892b97f54c"}},
-{"id":"redisev","key":"redisev","value":{"rev":"3-8e857dbe2341292c6e170a7bfe3fa81b"}},
-{"id":"redisfs","key":"redisfs","value":{"rev":"69-d9c90256d32348fdca7a4e646ab4d551"}},
-{"id":"redisify","key":"redisify","value":{"rev":"3-03fce3095b4129e71280d278f11121ba"}},
-{"id":"rediskit","key":"rediskit","value":{"rev":"5-6a0324708f45d884a492cbc408137059"}},
-{"id":"redisql","key":"redisql","value":{"rev":"6-b31802eb37910cb74bd3c9f7b477c025"}},
-{"id":"redmark","key":"redmark","value":{"rev":"5-8724ab00513b6bd7ddfdcd3cc2e0a4e8"}},
-{"id":"redmess","key":"redmess","value":{"rev":"13-14f58666444993ce899cd2260cdc9140"}},
-{"id":"redobj","key":"redobj","value":{"rev":"7-7ebbeffc306f4f7ff9b53ee57e1a250e"}},
-{"id":"redpack","key":"redpack","value":{"rev":"73-58b3fb3bcadf7d80fbe97d9e82d4928b"}},
-{"id":"reds","key":"reds","value":{"rev":"9-baebb36b92887d93fd79785a8c1e6355"}},
-{"id":"reed","key":"reed","value":{"rev":"45-5580f319dc3b5bfb66612ed5c7e17337"}},
-{"id":"reflect","key":"reflect","value":{"rev":"18-b590003cd55332160a5e5327e806e851"}},
-{"id":"reflect-builder","key":"reflect-builder","value":{"rev":"3-453d618b263f9452c0b6bbab0a701f49"}},
-{"id":"reflect-next","key":"reflect-next","value":{"rev":"9-4f2b27a38985d81e906e824321af7713"}},
-{"id":"reflect-tree-builder","key":"reflect-tree-builder","value":{"rev":"5-5f801f53e126dc8a72e13b1417904ce6"}},
-{"id":"reflect-unbuilder","key":"reflect-unbuilder","value":{"rev":"5-f36fd4182fd465a743198b5188697db9"}},
-{"id":"reflectjs","key":"reflectjs","value":{"rev":"3-e03bdb411ffcdd901b896a1cf43eea69"}},
-{"id":"reflex","key":"reflex","value":{"rev":"3-e8bb6b6de906265114b22036832ef650"}},
-{"id":"refmate","key":"refmate","value":{"rev":"3-7d44c45a2eb39236ad2071c84dc0fbba"}},
-{"id":"regext","key":"regext","value":{"rev":"4-97ca5c25fd2f3dc4bd1f3aa821d06f0f"}},
-{"id":"reid-yui3","key":"reid-yui3","value":{"rev":"5-cab8f6e22dfa9b9c508a5dd312bf56b0"}},
-{"id":"rel","key":"rel","value":{"rev":"7-f447870ac7a078f742e4295896646241"}},
-{"id":"relative-date","key":"relative-date","value":{"rev":"5-d0fa11f8100da888cbcce6e96d76b2e4"}},
-{"id":"reloadOnUpdate","key":"reloadOnUpdate","value":{"rev":"9-e7d4c215578b779b2f888381d398bd79"}},
-{"id":"reloaded","key":"reloaded","value":{"rev":"3-dba828b9ab73fc7ce8e47f98068bce8c"}},
-{"id":"remap","key":"remap","value":{"rev":"5-825ac1783df84aba3255c1d39f32ac00"}},
-{"id":"remedial","key":"remedial","value":{"rev":"17-9bb17db015e96db3c833f84d9dbd972a"}},
-{"id":"remote-console","key":"remote-console","value":{"rev":"6-104bae3ba9e4b0a8f772d0b8dc37007e"}},
-{"id":"remote_js","key":"remote_js","value":{"rev":"3-6c0e3058c33113346c037c59206ac0ec"}},
-{"id":"render","key":"render","value":{"rev":"27-fc8be4e9c50e49fb42df83e9446a1f58"}},
-{"id":"renode","key":"renode","value":{"rev":"11-107a3e15a987393157b47125487af296"}},
-{"id":"reparse","key":"reparse","value":{"rev":"10-210ec92e82f5a8515f45d20c7fa2f164"}},
-{"id":"repl","key":"repl","value":{"rev":"3-295279fe20b9ac54b2a235a6bc7013aa"}},
-{"id":"repl-edit","key":"repl-edit","value":{"rev":"18-eb2e604ab8bb65685376459beb417a31"}},
-{"id":"repl-utils","key":"repl-utils","value":{"rev":"7-fc31547ecb53e7e36610cdb68bcec582"}},
-{"id":"replace","key":"replace","value":{"rev":"17-a8976fcdbeb08e27ee2f0fc69ccd7c9d"}},
-{"id":"replica","key":"replica","value":{"rev":"3-f9dae960f91e8dc594f43b004f516d5f"}},
-{"id":"replicate","key":"replicate","value":{"rev":"3-3d6e52af6ff36c02139f619c7e5599c6"}},
-{"id":"replique","key":"replique","value":{"rev":"5-72d990b7d9ce9ff107d96be17490226a"}},
-{"id":"req2","key":"req2","value":{"rev":"3-712151f335b25b5bdef428982d77d0e0"}},
-{"id":"reqhooks","key":"reqhooks","value":{"rev":"17-2f0f0b73545bb1936f449a1ec4a28011"}},
-{"id":"request","key":"request","value":{"rev":"55-0d0b00eecde877ca5cd4ad9e0badc4d1"}},
-{"id":"require","key":"require","value":{"rev":"15-59e9fa05a9de52ee2a818c045736452b"}},
-{"id":"require-analyzer","key":"require-analyzer","value":{"rev":"72-f759f0cdc352df317df29791bfe451f1"}},
-{"id":"require-kiss","key":"require-kiss","value":{"rev":"5-f7ef9d7beda584e9c95635a281a01587"}},
-{"id":"require-like","key":"require-like","value":{"rev":"7-29d5de79e7ff14bb02da954bd9a2ee33"}},
-{"id":"requireincontext","key":"requireincontext","value":{"rev":"5-988ff7c27a21e527ceeb50cbedc8d1b0"}},
-{"id":"requirejs","key":"requirejs","value":{"rev":"3-e609bc91d12d698a17aa51bb50a50509"}},
-{"id":"requirejson","key":"requirejson","value":{"rev":"3-2b8173e58d08034a53a3226c464b1dc8"}},
-{"id":"reqwest","key":"reqwest","value":{"rev":"57-5aa2c1ed17b1e3630859bcad85559e6a"}},
-{"id":"resig-class","key":"resig-class","value":{"rev":"3-16b1a2cdb3224f2043708436dbac4395"}},
-{"id":"resistance","key":"resistance","value":{"rev":"9-9cacbf5fa8318419b4751034a511b8c1"}},
-{"id":"resmin","key":"resmin","value":{"rev":"17-a9c8ded5073118748d765784ca4ea069"}},
-{"id":"resolve","key":"resolve","value":{"rev":"11-bba3470bc93a617ccf9fb6c12097c793"}},
-{"id":"resource-router","key":"resource-router","value":{"rev":"13-7b2991958da4d7701c51537192ca756c"}},
-{"id":"resourcer","key":"resourcer","value":{"rev":"3-4e8b5493d6fcdf147f53d3aaa731a509"}},
-{"id":"response","key":"response","value":{"rev":"3-c5cadf4e5dd90dc1022b92a67853b0f8"}},
-{"id":"resque","key":"resque","value":{"rev":"12-e2f5e1bc3e53ac0a992d1a7da7da0d14"}},
-{"id":"rest-in-node","key":"rest-in-node","value":{"rev":"3-41d1ba925857302211bd0bf9d19975f9"}},
-{"id":"rest-mongo","key":"rest-mongo","value":{"rev":"3-583d2a4b672d6d7e7ad26d0b6df20b45"}},
-{"id":"rest.node","key":"rest.node","value":{"rev":"3-2ed59ba9dcc97123632dfdfaea2559ed"}},
-{"id":"restalytics","key":"restalytics","value":{"rev":"11-5fb3cd8e95b37f1725922fa6fbb146e0"}},
-{"id":"restarter","key":"restarter","value":{"rev":"52-ab0a4fe59128b8848ffd88f9756d0049"}},
-{"id":"restartr","key":"restartr","value":{"rev":"12-d3b86e43e7df7697293db65bb1a1ae65"}},
-{"id":"restify","key":"restify","value":{"rev":"132-054bdc85bebc6221a07dda186238b4c3"}},
-{"id":"restler","key":"restler","value":{"rev":"13-f5392d9dd22e34ce3bcc307c51c889b3"}},
-{"id":"restler-aaronblohowiak","key":"restler-aaronblohowiak","value":{"rev":"8-28b231eceb667153e10effcb1ebeb989"}},
-{"id":"restmvc.js","key":"restmvc.js","value":{"rev":"25-d57b550754437580c447adf612c87d9a"}},
-{"id":"resware","key":"resware","value":{"rev":"9-a5ecbc53fefb280c5d1e3efd822704ff"}},
-{"id":"retrie","key":"retrie","value":{"rev":"7-28ea803ad6b119928ac792cbc8f475c9"}},
-{"id":"retro","key":"retro","value":{"rev":"3-94c3aec940e28869554cbb8449d9369e"}},
-{"id":"retry","key":"retry","value":{"rev":"19-89f3ef664c6fa48ff33a0b9f7e798f15"}},
-{"id":"reut","key":"reut","value":{"rev":"23-d745dd7f8606275848a299ad7c38ceb7"}},
-{"id":"rewrite","key":"rewrite","value":{"rev":"3-5cb91fd831d0913e89354f53b875137d"}},
-{"id":"rex","key":"rex","value":{"rev":"39-59025e6947e5f197f124d24a5393865f"}},
-{"id":"rfb","key":"rfb","value":{"rev":"34-db6e684ac9366a0e3658a508a2187ae1"}},
-{"id":"rhyme","key":"rhyme","value":{"rev":"7-27347762f3f5bfa07307da4e476c2d52"}},
-{"id":"riak-js","key":"riak-js","value":{"rev":"55-11d4ee4beb566946f3968abdf1c4b0ef"}},
-{"id":"riakqp","key":"riakqp","value":{"rev":"7-83f562e6907431fcee56a9408ac6d2c1"}},
-{"id":"rightjs","key":"rightjs","value":{"rev":"9-d53ae4c4f5af3bbbe18d7c879e5bdd1b"}},
-{"id":"rimraf","key":"rimraf","value":{"rev":"17-3ddc3f3f36618712e5f4f27511836e7a"}},
-{"id":"rio","key":"rio","value":{"rev":"11-7c6249c241392b51b9142ca1b228dd4e"}},
-{"id":"ristretto","key":"ristretto","value":{"rev":"3-beb22d7a575e066781f1fd702c4572d7"}},
-{"id":"roast","key":"roast","value":{"rev":"32-17cb066823afab1656196a2fe81246cb"}},
-{"id":"robb","key":"robb","value":{"rev":"5-472ed7ba7928131d86a05fcae89b9f93"}},
-{"id":"robots","key":"robots","value":{"rev":"9-afac82b944045c82acb710cc98c7311d"}},
-{"id":"robotskirt","key":"robotskirt","value":{"rev":"63-29a66420951812d421bf6728f67e710c"}},
-{"id":"robotstxt","key":"robotstxt","value":{"rev":"25-1e01cac90f4570d35ab20232feaeebfa"}},
-{"id":"rocket","key":"rocket","value":{"rev":"27-b0f1ff02e70b237bcf6a5b46aa9b74df"}},
-{"id":"roil","key":"roil","value":{"rev":"48-6b00c09b576fe195546bd031763c0d79"}},
-{"id":"roll","key":"roll","value":{"rev":"5-d3fed9271132eb6c954b3ac6c7ffccf0"}},
-{"id":"rollin","key":"rollin","value":{"rev":"3-bd461bc810c12cfcea94109ba9a2ab39"}},
-{"id":"ron","key":"ron","value":{"rev":"5-913645180d29f377506bcd5292d3cb49"}},
-{"id":"rondo","key":"rondo","value":{"rev":"3-9bed539bbaa0cb978f5c1b711d70cd50"}},
-{"id":"ronn","key":"ronn","value":{"rev":"12-b1b1a1d47376fd11053e2b81fe772c4c"}},
-{"id":"rot13","key":"rot13","value":{"rev":"10-a41e8b581812f02ca1a593f6da0c52dc"}},
-{"id":"router","key":"router","value":{"rev":"26-a7883048759715134710d68f179da18b"}},
-{"id":"routes","key":"routes","value":{"rev":"3-d841826cfd365d8f383a9c4f4288933c"}},
-{"id":"rpc","key":"rpc","value":{"rev":"5-5896f380115a7a606cd7cbbc6d113f05"}},
-{"id":"rpc-socket","key":"rpc-socket","value":{"rev":"17-8743dc1a1f5ba391fc5c7d432cc6eeba"}},
-{"id":"rq","key":"rq","value":{"rev":"7-ba263671c3a3b52851dc7d5e6bd4ef8c"}},
-{"id":"rql","key":"rql","value":{"rev":"1-ac5ec10ed5e41a10a289f26aff4def5a"}},
-{"id":"rqueue","key":"rqueue","value":{"rev":"12-042898704386874c70d0ffaeea6ebc78"}},
-{"id":"rrd","key":"rrd","value":{"rev":"9-488adf135cf29cd4725865a8f25a57ba"}},
-{"id":"rsa","key":"rsa","value":{"rev":"8-7d6f981d72322028c3bebb7141252e98"}},
-{"id":"rss","key":"rss","value":{"rev":"3-0a97b20a0a9051876d779af7663880bd"}},
-{"id":"rssee","key":"rssee","value":{"rev":"9-da2599eae68e50c1695fd7f8fcba2b30"}},
-{"id":"rumba","key":"rumba","value":{"rev":"3-7a3827fa6eca2d02d3189cbad38dd6ca"}},
-{"id":"run","key":"run","value":{"rev":"9-0145abb61e6107a3507624928db461da"}},
-{"id":"runforcover","key":"runforcover","value":{"rev":"3-a36b00ea747c98c7cd7afebf1e1b203c"}},
-{"id":"runlol","key":"runlol","value":{"rev":"3-3c97684baaa3d5b31ca404e8a616fe41"}},
-{"id":"runner","key":"runner","value":{"rev":"11-b7ceeedf7b0dde19c809642f1537723a"}},
-{"id":"runways","key":"runways","value":{"rev":"5-f216f5fa6af7ccc7566cdd06cf424980"}},
-{"id":"rw-translate","key":"rw-translate","value":{"rev":"3-16d2beb17a27713e10459ce368c5d087"}},
-{"id":"rx","key":"rx","value":{"rev":"5-ea2a04ecf38963f8a99b7a408b45af31"}},
-{"id":"rzr","key":"rzr","value":{"rev":"4-6a137fa752709531f2715de5a213b326"}},
-{"id":"s-tpl","key":"s-tpl","value":{"rev":"3-1533cf9657cfe669a25da96b6a655f5c"}},
-{"id":"s3-post","key":"s3-post","value":{"rev":"9-ad3b268bc6754852086b50c2f465c02c"}},
-{"id":"safis","key":"safis","value":{"rev":"3-f1494d0dae2b7dfd60beba5a72412ad2"}},
-{"id":"saiga","key":"saiga","value":{"rev":"22-0c67e8cf8f4b6e8ea30552ffc57d222a"}},
-{"id":"sailthru-client","key":"sailthru-client","value":{"rev":"7-1c9c236050868fb8dec4a34ded2436d3"}},
-{"id":"saimonmoore-cradle","key":"saimonmoore-cradle","value":{"rev":"3-5059616ab0f0f10e1c2d164f686e127e"}},
-{"id":"salesforce","key":"salesforce","value":{"rev":"7-f88cbf517b1fb900358c97b2c049960f"}},
-{"id":"sam","key":"sam","value":{"rev":"7-d7e24d2e94411a17cbedfbd8083fd878"}},
-{"id":"sandbox","key":"sandbox","value":{"rev":"10-0b51bed24e0842f99744dcf5d79346a6"}},
-{"id":"sandboxed-module","key":"sandboxed-module","value":{"rev":"15-bf8fa69d15ae8416d534e3025a16d87d"}},
-{"id":"sanitizer","key":"sanitizer","value":{"rev":"32-6ea8f4c77cd17253c27d0d87e0790678"}},
-{"id":"sapnwrfc","key":"sapnwrfc","value":{"rev":"3-0bc717109ffcd5265ae24f00416a0281"}},
-{"id":"sardines","key":"sardines","value":{"rev":"7-82712731b5af112ca43b9e3fe9975bb0"}},
-{"id":"sargam","key":"sargam","value":{"rev":"3-6b4c70f4b2bcd2add43704bf40c44507"}},
-{"id":"sasl","key":"sasl","value":{"rev":"4-44a6e12b561b112a574ec9e0c4a8843f"}},
-{"id":"sass","key":"sass","value":{"rev":"14-46bcee5423a1efe22f039e116bb7a77c"}},
-{"id":"satisfic","key":"satisfic","value":{"rev":"3-c6e9a2e65a0e55868cea708bcf7b11cf"}},
-{"id":"sax","key":"sax","value":{"rev":"30-58c5dd2c3367522974406bbf29204a40"}},
-{"id":"say","key":"say","value":{"rev":"10-95f31672af6166ea9099d92706c49ed1"}},
-{"id":"sayndo","key":"sayndo","value":{"rev":"51-fd93715c5ff0fcaa68e4e13c2b51ba61"}},
-{"id":"sc-handlebars","key":"sc-handlebars","value":{"rev":"3-b424c3a66fd0e538b068c6046f404084"}},
-{"id":"scgi-server","key":"scgi-server","value":{"rev":"9-3364b5c39985ea8f3468b6abb53d5ea6"}},
-{"id":"scheduler","key":"scheduler","value":{"rev":"25-72bc526bb49b0dd42ad5917d38ea3b18"}},
-{"id":"schema","key":"schema","value":{"rev":"21-166410ae972449965dfa1ce615971168"}},
-{"id":"schema-builder","key":"schema-builder","value":{"rev":"3-bce4612e1e5e6a8a85f16326d3810145"}},
-{"id":"schema-org","key":"schema-org","value":{"rev":"15-59b3b654de0380669d0dcd7573c3b7a1"}},
-{"id":"scone","key":"scone","value":{"rev":"15-85ed2dd4894e896ca1c942322753b76b"}},
-{"id":"scooj","key":"scooj","value":{"rev":"3-1be2074aeba4df60594c03f3e59c7734"}},
-{"id":"scope","key":"scope","value":{"rev":"65-9d7eb8c5fc6c54d8e2c49f4b4b4f5166"}},
-{"id":"scope-provider","key":"scope-provider","value":{"rev":"22-2c25a0b260fd18236d5245c8250d990e"}},
-{"id":"scoped-http-client","key":"scoped-http-client","value":{"rev":"3-afa954fe6d1c8b64a1240b77292d99b5"}},
-{"id":"scottbot","key":"scottbot","value":{"rev":"3-d812ddb4af49976c391f14aeecf93180"}},
-{"id":"scraper","key":"scraper","value":{"rev":"19-e2166b3de2b33d7e6baa04c704887fa6"}},
-{"id":"scrapinode","key":"scrapinode","value":{"rev":"15-ae5bf5085d8c4d5390f7c313b0ad13d2"}},
-{"id":"scrappy-do","key":"scrappy-do","value":{"rev":"3-868f5d299da401112e3ed9976194f1ee"}},
-{"id":"scrapr","key":"scrapr","value":{"rev":"3-d700714a56e8f8b8e9b3bc94274f4a24"}},
-{"id":"scrawl","key":"scrawl","value":{"rev":"3-a70a2905b9a1d2f28eb379c14363955f"}},
-{"id":"scribe","key":"scribe","value":{"rev":"5-4cefaaf869ba8e6ae0257e5705532fbe"}},
-{"id":"scriptTools","key":"scriptTools","value":{"rev":"7-1b66b7f02f2f659ae224057afac60bcf"}},
-{"id":"scriptbroadcast","key":"scriptbroadcast","value":{"rev":"10-3cdc4dae471445b7e08e6fc37c2481e6"}},
-{"id":"scriptjs","key":"scriptjs","value":{"rev":"38-9a522df4f0707d47c904f6781fd97ff6"}},
-{"id":"scrowser","key":"scrowser","value":{"rev":"3-a76938b1f84db0793941dba1f84f4c2f"}},
-{"id":"scss","key":"scss","value":{"rev":"10-49a4ad40eca3c797add57986c74e100b"}},
-{"id":"scylla","key":"scylla","value":{"rev":"10-2c5a1efed63c0ac3a3e75861ee323af4"}},
-{"id":"sdl","key":"sdl","value":{"rev":"40-3df0824da620098c0253b5330c6b0c5c"}},
-{"id":"sdlmixer","key":"sdlmixer","value":{"rev":"4-91455739802a98a5549f6c2b8118758d"}},
-{"id":"search","key":"search","value":{"rev":"9-8f696da412a6ccd07c3b8f22cec315cb"}},
-{"id":"searchjs","key":"searchjs","value":{"rev":"3-59418ce307d41de5649dfc158be51adf"}},
-{"id":"searchparser","key":"searchparser","value":{"rev":"3-a84719692ee33c88f3419f033b839f7a"}},
-{"id":"sechash","key":"sechash","value":{"rev":"11-20db8651628dcf6e8cbbc9bf9b2c4f12"}},
-{"id":"secret","key":"secret","value":{"rev":"7-ac44b38fa32b3f5ebc8fd03b02ec69ec"}},
-{"id":"seedrandom","key":"seedrandom","value":{"rev":"3-becb92de803208672887fc22a1a33694"}},
-{"id":"seek","key":"seek","value":{"rev":"3-d778b8d56582e15d409e2346b86caa53"}},
-{"id":"sel","key":"sel","value":{"rev":"19-94c8bc0872d2da7eab2b35daff7a3b5d"}},
-{"id":"select","key":"select","value":{"rev":"5-43593bfec39caaf1a0bc1fedc96d0dce"}},
-{"id":"selenium","key":"selenium","value":{"rev":"3-8ae8ac7a491b813fd011671e0d494f20"}},
-{"id":"selfish","key":"selfish","value":{"rev":"17-827856c3f3b9a3fdd1758477a24bf706"}},
-{"id":"selleck","key":"selleck","value":{"rev":"13-b8325fcdb383397041e4a408b40d708c"}},
-{"id":"semver","key":"semver","value":{"rev":"25-b2aea0cc920a9981cd429442a3fd62f6"}},
-{"id":"sendgrid","key":"sendgrid","value":{"rev":"3-047e2ad730390bac7cf72b7fc3856c1c"}},
-{"id":"sendgrid-api","key":"sendgrid-api","value":{"rev":"5-6e951b0d60a1b7c778fbf548d4e3aed8"}},
-{"id":"sendgrid-web","key":"sendgrid-web","value":{"rev":"3-dc77d2dbcedfcbe4e497958a2a070cfd"}},
-{"id":"sentry","key":"sentry","value":{"rev":"7-57af332354cbd37ce1c743b424b27dd0"}},
-{"id":"seq","key":"seq","value":{"rev":"77-33a8f54017402835c8542945a5c0a443"}},
-{"id":"sequelize","key":"sequelize","value":{"rev":"63-4c28ad13b73549aad7edc57378b21854"}},
-{"id":"sequence","key":"sequence","value":{"rev":"3-914f8010dc12aec0749ddb719f5ac82d"}},
-{"id":"sequencer","key":"sequencer","value":{"rev":"7-d83e687509678c0f5bcf15e5297677c0"}},
-{"id":"sequent","key":"sequent","value":{"rev":"3-cc6f26ab708c7681fa7d9e3bc15d19c0"}},
-{"id":"serializer","key":"serializer","value":{"rev":"7-a0d13120e2d5cfaa6e453b085280fa08"}},
-{"id":"serialport","key":"serialport","value":{"rev":"32-dc365d057a4f46e9f140dc36d6cc825a"}},
-{"id":"serialportify","key":"serialportify","value":{"rev":"3-1bf4ad9c5ebb5d96ca91fc03a10b5443"}},
-{"id":"serialq","key":"serialq","value":{"rev":"3-5897fcd0fca7d8312e61dbcb93790a71"}},
-{"id":"series","key":"series","value":{"rev":"11-0374191f646c277c51602ebe73033b6a"}},
-{"id":"serve","key":"serve","value":{"rev":"11-560c0c1bdeb3348c7a7d18265d27988e"}},
-{"id":"servedir","key":"servedir","value":{"rev":"18-17cffd8d8326b26e7d9319c79d601dda"}},
-{"id":"server-backbone-redis","key":"server-backbone-redis","value":{"rev":"13-c56419457002aa4fa23b142634882594"}},
-{"id":"server-tracker","key":"server-tracker","value":{"rev":"21-f620e295079a8b0acd29fa1a1469100c"}},
-{"id":"service","key":"service","value":{"rev":"11-07533f9e5e854248c0a1d99e911fa419"}},
-{"id":"sesame","key":"sesame","value":{"rev":"19-1e7ad5d030566f4c67027cc5925a2bdb"}},
-{"id":"sesh","key":"sesh","value":{"rev":"4-1682b3ced38e95f2a11a2f545a820bd5"}},
-{"id":"session","key":"session","value":{"rev":"6-a798bf4cd7d127d0111da7cdc3e058a4"}},
-{"id":"session-mongoose","key":"session-mongoose","value":{"rev":"3-b089c8d365d7de3e659cfa7080697dba"}},
-{"id":"sessionvoc-client","key":"sessionvoc-client","value":{"rev":"23-0f9ed8cd4af55f2aae17cb841247b818"}},
-{"id":"set","key":"set","value":{"rev":"3-a285b30a9c1545b427ebd882bc53d8b2"}},
-{"id":"setInterval","key":"setInterval","value":{"rev":"3-0557f666d05223391466547f52cfff42"}},
-{"id":"setTimeout","key":"setTimeout","value":{"rev":"3-e3c059c93763967ddff5974471f227f8"}},
-{"id":"setochka","key":"setochka","value":{"rev":"3-d559e24618b4fc2d5fc4ef44bccb68be"}},
-{"id":"settings","key":"settings","value":{"rev":"5-4af85bb564a330886c79682d2f1d927c"}},
-{"id":"sexy","key":"sexy","value":{"rev":"7-e57fa6bca5d89be86467786fb9f9b997"}},
-{"id":"sexy-args","key":"sexy-args","value":{"rev":"3-715d7d57234220bd79c78772d2566355"}},
-{"id":"sfaClient","key":"sfaClient","value":{"rev":"3-5d9ddd6ea05d7ef366dbf4f66dd4f642"}},
-{"id":"sfml","key":"sfml","value":{"rev":"10-766c876cd1cc220f776e2fa3c1d9efbb"}},
-{"id":"sh","key":"sh","value":{"rev":"5-3ce779be28550e831cf3c0140477376c"}},
-{"id":"sha1","key":"sha1","value":{"rev":"3-66d4b67ace9c65ae8f03d6dd0647ff6b"}},
-{"id":"sha1_file","key":"sha1_file","value":{"rev":"7-eb25e9c5f470a1b80c1697a952a1c5ed"}},
-{"id":"shadows","key":"shadows","value":{"rev":"5-d6a1a21871c733f34495592307ab7961"}},
-{"id":"share","key":"share","value":{"rev":"15-ef81a004f0e115040dcc1510f6302fa9"}},
-{"id":"shared-views","key":"shared-views","value":{"rev":"11-2c83145e6deb3493e44805c92b58929e"}},
-{"id":"sharedjs","key":"sharedjs","value":{"rev":"9-d43a861b02aa88ae22810f9771d774ec"}},
-{"id":"shell","key":"shell","value":{"rev":"39-7e2042bd6f485b827d53f5f727164d6f"}},
-{"id":"shelld","key":"shelld","value":{"rev":"3-118a62ff31d85e61b78bbd97333a7330"}},
-{"id":"shimify","key":"shimify","value":{"rev":"3-dde4d45bcbd2f6f7faaeb7f8c31d5e8b"}},
-{"id":"ship","key":"ship","value":{"rev":"3-5f294fc3841c901d6cea7f3862625d95"}},
-{"id":"shmakowiki","key":"shmakowiki","value":{"rev":"15-079ae4595d1ddf019d22d3d0ac49a188"}},
-{"id":"shorten","key":"shorten","value":{"rev":"3-ed1395b35faf4639e25dacbb038cf237"}},
-{"id":"shorttag","key":"shorttag","value":{"rev":"5-21d15e4cb8b62aeefe23edc99ff768ec"}},
-{"id":"shorturl","key":"shorturl","value":{"rev":"5-58f78b2a5318ec7da8a5f88739f2796b"}},
-{"id":"shorty","key":"shorty","value":{"rev":"9-17f804ff6e94295549cca6fd534b89de"}},
-{"id":"shotenjin","key":"shotenjin","value":{"rev":"3-91a7864d216a931095e9999133d3c41f"}},
-{"id":"should","key":"should","value":{"rev":"19-ed561071d434f319080fa5d0f647dd93"}},
-{"id":"shovel","key":"shovel","value":{"rev":"5-0168a02a8fa8d7856a5f4a5c18706724"}},
-{"id":"showdown","key":"showdown","value":{"rev":"3-7be5479804451db3faed968fa428af56"}},
-{"id":"shredder","key":"shredder","value":{"rev":"3-93e12ab8822ba5fe86d662f124a8ad1a"}},
-{"id":"shrtn","key":"shrtn","value":{"rev":"19-5883692283903e3166b478b98bcad999"}},
-{"id":"shuffle","key":"shuffle","value":{"rev":"3-71c96da1843abb468649ab0806e6b9d3"}},
-{"id":"sibilant","key":"sibilant","value":{"rev":"18-4dcb400eb9ed9cb1c7826d155807f6d0"}},
-{"id":"sideline","key":"sideline","value":{"rev":"15-84f284a9277718bf90f68dc9351500ae"}},
-{"id":"siesta","key":"siesta","value":{"rev":"5-ff99a009e6e5897c6322237c51d0a142"}},
-{"id":"sign","key":"sign","value":{"rev":"3-2cf70313707c6a046a6ceca61431ea5e"}},
-{"id":"signals","key":"signals","value":{"rev":"7-c756190260cd3ea43e6d44e4722164cb"}},
-{"id":"signature","key":"signature","value":{"rev":"3-fb7552c27ace0f9321ec7438057a37bf"}},
-{"id":"signed-request","key":"signed-request","value":{"rev":"13-9f1563535dcc1a83338a7375d8240f35"}},
-{"id":"signer","key":"signer","value":{"rev":"5-32c9909da2c4dfb284b858164c03cfe0"}},
-{"id":"simple-class","key":"simple-class","value":{"rev":"3-92c6eea4b3a6169db9d62b12f66268cb"}},
-{"id":"simple-ffmpeg","key":"simple-ffmpeg","value":{"rev":"9-b6dd4fe162803e6db434d71035637993"}},
-{"id":"simple-logger","key":"simple-logger","value":{"rev":"5-52b4c957b3671375547d623c6a9444be"}},
-{"id":"simple-mime","key":"simple-mime","value":{"rev":"9-34e4b1dcc26047b64459d924abab65cc"}},
-{"id":"simple-proxy","key":"simple-proxy","value":{"rev":"9-ad6cd76215717527dc6b226e1219e98e"}},
-{"id":"simple-rest-client","key":"simple-rest-client","value":{"rev":"3-8331b3ae49b52720adf2b72d5da0353d"}},
-{"id":"simple-schedule","key":"simple-schedule","value":{"rev":"7-432d3803e1cf9ab5830923a30fd312e0"}},
-{"id":"simple-server","key":"simple-server","value":{"rev":"25-d4d8ba53d3829f4ca51545a3c23a1244"}},
-{"id":"simple-settings","key":"simple-settings","value":{"rev":"3-497d7c5422f764f3738b3ef303ff9737"}},
-{"id":"simple-static","key":"simple-static","value":{"rev":"3-64c9cf84e5140d4285e451357ac83df5"}},
-{"id":"simple-xml-writer","key":"simple-xml-writer","value":{"rev":"3-d1ca18252c341b4430ab6e1240b5f571"}},
-{"id":"simple-xmpp","key":"simple-xmpp","value":{"rev":"11-b4c10de5e4e12a81c4486206d7fb6b40"}},
-{"id":"simple_pubsub","key":"simple_pubsub","value":{"rev":"9-22ae79856ca25b152f104e5d8bc93f12"}},
-{"id":"simpledb","key":"simpledb","value":{"rev":"13-6bf111aa18bffd86e65fd996525a6113"}},
-{"id":"simplegeo","key":"simplegeo","value":{"rev":"8-eb684eea019ae7e5fa0c087a9747367e"}},
-{"id":"simplegeo-client","key":"simplegeo-client","value":{"rev":"7-b2c976bbf8c145c6b0e1744630548084"}},
-{"id":"simplegeo-thrift","key":"simplegeo-thrift","value":{"rev":"3-bf6ddf40c020889fe28630217f38a442"}},
-{"id":"simplelogger","key":"simplelogger","value":{"rev":"3-36634d2543faecdeccc962422d149ffc"}},
-{"id":"simplesets","key":"simplesets","value":{"rev":"26-48fc18f94744c9b288945844b7cc9196"}},
-{"id":"simplesmtp","key":"simplesmtp","value":{"rev":"6-0952f0c5f43a8e94b11355774bbbe9e8"}},
-{"id":"simplydb","key":"simplydb","value":{"rev":"5-34659bf97bbb40f0ec4a3af14107dc31"}},
-{"id":"sin","key":"sin","value":{"rev":"6-0e8bd66b3e2c8c91efef14a3ddc79c53"}},
-{"id":"sink","key":"sink","value":{"rev":"8-4c49709009dfb5719935dba568a3398e"}},
-{"id":"sink-test","key":"sink-test","value":{"rev":"18-411afcb398102f245e92f2ce91897d3e"}},
-{"id":"sinon","key":"sinon","value":{"rev":"19-fa38010bb1bbed437273e1296660d598"}},
-{"id":"sinon-buster","key":"sinon-buster","value":{"rev":"5-a456f0e21b3edb647ad11179cd02354b"}},
-{"id":"sinon-nodeunit","key":"sinon-nodeunit","value":{"rev":"7-d60aa76cc41a6c9d9db4e8ae268b7b3c"}},
-{"id":"sip","key":"sip","value":{"rev":"17-02be6fb014d41fe66ab22ff2ae60a5b8"}},
-{"id":"sitemap","key":"sitemap","value":{"rev":"13-a6d1c830fdc8942c317c1ebe00efbb6d"}},
-{"id":"sizlate","key":"sizlate","value":{"rev":"3-a86c680c681299045f9aabecb99dc161"}},
-{"id":"sizzle","key":"sizzle","value":{"rev":"5-f00e18a80fb8a4f6bdbf11735e265720"}},
-{"id":"sk","key":"sk","value":{"rev":"33-b0b894d02b0211dae08baadfd84b46c2"}},
-{"id":"skeleton","key":"skeleton","value":{"rev":"5-3559721c222b99cd3f56acaaf706992f"}},
-{"id":"skillet","key":"skillet","value":{"rev":"3-0d6bbe21952f85967a5e12425691ee50"}},
-{"id":"skull.io","key":"skull.io","value":{"rev":"3-082e9d58f24ac59144fc130f6b54927e"}},
-{"id":"slang","key":"slang","value":{"rev":"7-3cd6390e3421f677e4e1b00fdf2d3ee1"}},
-{"id":"sleepless","key":"sleepless","value":{"rev":"5-1482568719534caf17f12daf0130ae0d"}},
-{"id":"sleepylib","key":"sleepylib","value":{"rev":"3-60e851f120e34b0726eb50a38b1e27e2"}},
-{"id":"sleight","key":"sleight","value":{"rev":"3-a0f16b17befee698b172074f84daf44c"}},
-{"id":"slick","key":"slick","value":{"rev":"3-596b7b7cf7b8881c55327e8bcf373700"}},
-{"id":"slickback","key":"slickback","value":{"rev":"9-c036e7393d0f9a463a263f287f3bcefd"}},
-{"id":"slide","key":"slide","value":{"rev":"14-83ade7490da699cf0ed99cec818ce3cd"}},
-{"id":"slippers","key":"slippers","value":{"rev":"5-0d657ed5fca4c0ed8b51c6d7f6eac08a"}},
-{"id":"slug","key":"slug","value":{"rev":"3-046a5bd74cc1edce30faa3b6ab239652"}},
-{"id":"slugr","key":"slugr","value":{"rev":"39-ac346964f547433fe34e637de682f81a"}},
-{"id":"smartdc","key":"smartdc","value":{"rev":"31-8c9db85e4548007a0ef87b7286229952"}},
-{"id":"smoosh","key":"smoosh","value":{"rev":"34-ba1c140a173ff8d1f9cdbe5e5addcc43"}},
-{"id":"smores","key":"smores","value":{"rev":"17-1aef1fa2e1675093c5aaf33436d83f5a"}},
-{"id":"smpp","key":"smpp","value":{"rev":"5-9be31b75aee4db09cfe5a2ceef4bea13"}},
-{"id":"smsified","key":"smsified","value":{"rev":"13-bb97eae0bbb6f4d5c4f2f391cd20e891"}},
-{"id":"smtp","key":"smtp","value":{"rev":"20-c3de67c5d0b3c4493293d9f55adb21ad"}},
-{"id":"smtpc","key":"smtpc","value":{"rev":"11-7c4e1207be6eb06350221af0134e8bd7"}},
-{"id":"smtpclient","key":"smtpclient","value":{"rev":"3-ba61ad5f0fd3fdd382e505abcde8c24e"}},
-{"id":"snake","key":"snake","value":{"rev":"15-384892bf8a5ebf222f6fe0ae321aaaa4"}},
-{"id":"snappy","key":"snappy","value":{"rev":"11-94f2d59347c10cc41b6f4a2dd2b0f15e"}},
-{"id":"sng","key":"sng","value":{"rev":"41-a1d3c6253dec5da8b3134ba3505924f5"}},
-{"id":"snip","key":"snip","value":{"rev":"3-cc51d232fff6a7d7b24588bd98e5613b"}},
-{"id":"snipes","key":"snipes","value":{"rev":"3-12af12ca83e15d056969ec76a3cc2ef0"}},
-{"id":"snippets","key":"snippets","value":{"rev":"13-d19c8a99287ec721d56ef9efdf3ce729"}},
-{"id":"snorkel","key":"snorkel","value":{"rev":"11-bc7ba5d1465c7d1ba71479087292615e"}},
-{"id":"snowball","key":"snowball","value":{"rev":"3-76cfbdb9f379ac635874b76d7ee2fd3b"}},
-{"id":"snpp","key":"snpp","value":{"rev":"8-4f10a9f2bff48e348303d8a143afaa6c"}},
-{"id":"snsclient","key":"snsclient","value":{"rev":"3-302ce1c7132a36ef909ce534a509e27f"}},
-{"id":"soap","key":"soap","value":{"rev":"7-10f361a406dfee3074adac0cea127d87"}},
-{"id":"socket-push","key":"socket-push","value":{"rev":"22-196553953d58d92c288678b1dcd49ba7"}},
-{"id":"socket-twitchat","key":"socket-twitchat","value":{"rev":"11-9b159a4610ea444eaae39baa3bf05280"}},
-{"id":"socket.io","key":"socket.io","value":{"rev":"95-c29c929613dd95aa5aea8a5e14f2573f"}},
-{"id":"socket.io-client","key":"socket.io-client","value":{"rev":"33-a3c79d917bb038f0ca72f9cb27180a66"}},
-{"id":"socket.io-cluster","key":"socket.io-cluster","value":{"rev":"5-83bdaf79d2243eaf3a59b45fc604dc1a"}},
-{"id":"socket.io-connect","key":"socket.io-connect","value":{"rev":"17-62f00efc3bff3a1b549cc5e346da996f"}},
-{"id":"socket.io-context","key":"socket.io-context","value":{"rev":"42-a029996765557776d72690db1f14c1fa"}},
-{"id":"socket.io-ender","key":"socket.io-ender","value":{"rev":"9-c4523af5f5cc815ee69c325c1e29ede4"}},
-{"id":"socket.io-juggernaut","key":"socket.io-juggernaut","value":{"rev":"6-b8b97b2df2c186f24487e027278ec975"}},
-{"id":"socket.io-sessions","key":"socket.io-sessions","value":{"rev":"11-2151ee14eb29543811a9e567bcf6811a"}},
-{"id":"socketstream","key":"socketstream","value":{"rev":"29-b198d27ad6a3c4f9b63bc467e85a54a3"}},
-{"id":"sockjs","key":"sockjs","value":{"rev":"21-a8d6534c55e8b3e33cf06516b59aa408"}},
-{"id":"socksified","key":"socksified","value":{"rev":"3-92350ec9889b8db9c3d34bdbc41b1f7b"}},
-{"id":"soda","key":"soda","value":{"rev":"24-04987191e2c4241fbfaf78263c83d121"}},
-{"id":"soda-runner","key":"soda-runner","value":{"rev":"5-da4e8078a7666404d2a5ab3267a5ef75"}},
-{"id":"sodn","key":"sodn","value":{"rev":"3-3ee6350723c54aad792c769947c6b05e"}},
-{"id":"sofa","key":"sofa","value":{"rev":"7-2f8ffd47ce19e6fb7e1ea2e02076955d"}},
-{"id":"solder","key":"solder","value":{"rev":"10-8f7ad0a60c2716ce65658047c4ae5361"}},
-{"id":"solr","key":"solr","value":{"rev":"11-56a295dff56d9f2a4a7293257ca793a4"}},
-{"id":"solr-client","key":"solr-client","value":{"rev":"7-a296273d32224eb241343cb98ded7b82"}},
-{"id":"sones","key":"sones","value":{"rev":"3-9ddbbdc44f3501917e701d3304eb91a5"}},
-{"id":"song","key":"song","value":{"rev":"7-967aa3a58702b3470996cd8e63b1b18d"}},
-{"id":"sorted","key":"sorted","value":{"rev":"3-47b6ec0f744aa04929d48a7d3d10f581"}},
-{"id":"sosumi","key":"sosumi","value":{"rev":"10-8c3980beb3d7c48d4cccf44a8d1d5ff7"}},
-{"id":"soundcloud","key":"soundcloud","value":{"rev":"7-9ee76aecd3d1946731a1173185796864"}},
-{"id":"soupselect","key":"soupselect","value":{"rev":"12-5fea60f4e52117a8212aa7add6c34278"}},
-{"id":"source","key":"source","value":{"rev":"7-57d6cae0530c7cba4a3932f0df129f20"}},
-{"id":"source-map","key":"source-map","value":{"rev":"6-7da8d2ccc104fa30a93ee165975f28e8"}},
-{"id":"spacesocket","key":"spacesocket","value":{"rev":"6-d1679084b0917f86d6c4e3ac89a89809"}},
-{"id":"spark","key":"spark","value":{"rev":"12-64d44ebde2a4b48aed3bc7814c63e773"}},
-{"id":"spark2","key":"spark2","value":{"rev":"28-918548a309f0d18eebd5c64966376959"}},
-{"id":"sparql","key":"sparql","value":{"rev":"3-8eec87fe9fcb4d07aef214858eada777"}},
-{"id":"sparql-orm","key":"sparql-orm","value":{"rev":"3-b2a7efa5622b0b478fdca3f9050800cc"}},
-{"id":"spatial","key":"spatial","value":{"rev":"3-d09d40af02a9c9e5150500cc66d75f8d"}},
-{"id":"spawn","key":"spawn","value":{"rev":"3-f882c01cf1bb538f5f4be78769e1b097"}},
-{"id":"spdy","key":"spdy","value":{"rev":"13-1fbf077bbb8bc87d5058648c0c66288b"}},
-{"id":"spec","key":"spec","value":{"rev":"15-1074d3a8b8332fcc1059fbb5c4f69a7a"}},
-{"id":"speck","key":"speck","value":{"rev":"21-652b0670953ba79e548f4e5d9ce3d923"}},
-{"id":"spectrum","key":"spectrum","value":{"rev":"28-21fb9eeffe2e63a5383371a44a58a1ad"}},
-{"id":"speller","key":"speller","value":{"rev":"6-91e03f89b09338cf8f38d2e64c1778ce"}},
-{"id":"sphericalmercator","key":"sphericalmercator","value":{"rev":"9-3affc61ae0d64854d77829da5414bbc5"}},
-{"id":"spider","key":"spider","value":{"rev":"3-cd04679891875dfb2bf67613514238eb"}},
-{"id":"spider-tdd","key":"spider-tdd","value":{"rev":"3-d95b6d680d053a063e6fab3fdae16261"}},
-{"id":"spine","key":"spine","value":{"rev":"9-2a5cd4733be1d78376814e78966d885a"}},
-{"id":"spine.app","key":"spine.app","value":{"rev":"43-1044b31d4c53ff5c741a16d49291b321"}},
-{"id":"spine.mobile","key":"spine.mobile","value":{"rev":"19-220f64c212a5f22b27d597e299263490"}},
-{"id":"split_er","key":"split_er","value":{"rev":"3-3419662807bf16f7b5b53998a4759246"}},
-{"id":"spludo","key":"spludo","value":{"rev":"14-d41915fcd1b50553f5b9e706b41d2894"}},
-{"id":"spm","key":"spm","value":{"rev":"9-28d6699288d580807091aafdf78dd479"}},
-{"id":"spore","key":"spore","value":{"rev":"44-1c50fb0e6f7c3447f34b1927c976201f"}},
-{"id":"spork","key":"spork","value":{"rev":"3-e90976749b649b88ab83b59785dba101"}},
-{"id":"spotify","key":"spotify","value":{"rev":"3-90c74506a69e08a41feeb23541ac0b4f"}},
-{"id":"spotify-metadata","key":"spotify-metadata","value":{"rev":"3-a546d3e59e40ec0be5d8524f3a1e7a60"}},
-{"id":"spotlight","key":"spotlight","value":{"rev":"3-bead50ac8f53311d539a420c74ea23e2"}},
-{"id":"spread","key":"spread","value":{"rev":"3-ad7bf6d948043fc6dd47a6fcec7da294"}},
-{"id":"spreadsheet","key":"spreadsheet","value":{"rev":"11-94030e23cc9c8e515c1f340656aea031"}},
-{"id":"spreadsheets","key":"spreadsheets","value":{"rev":"3-6563c479735b1b6599bf9602fa65ff38"}},
-{"id":"sprintf","key":"sprintf","value":{"rev":"10-56c5bc7a19ecf8dd92e24d4dca081059"}},
-{"id":"spruce","key":"spruce","value":{"rev":"7-1ea45ef3c5412dd2a6c1fe7b2a083d68"}},
-{"id":"spy","key":"spy","value":{"rev":"3-f5546fdbbec80ba97756d0d1fefa7923"}},
-{"id":"sql","key":"sql","value":{"rev":"5-6c41452f684418ba521666e977f46e54"}},
-{"id":"sqlite","key":"sqlite","value":{"rev":"9-18761259920b497360f581ff8051dcbb"}},
-{"id":"sqlite3","key":"sqlite3","value":{"rev":"51-f9c99537afd9826819c5f40105e50987"}},
-{"id":"sqlmw","key":"sqlmw","value":{"rev":"17-b05b0b089c0f3b1185f96dc19bf61cf5"}},
-{"id":"squeeze","key":"squeeze","value":{"rev":"6-5e517be339d9aa409cedfcc11d1883b1"}},
-{"id":"squish","key":"squish","value":{"rev":"15-2334d8412df59ddd2fce60c1f77954c7"}},
-{"id":"sqwish","key":"sqwish","value":{"rev":"28-cc159dd5fd420432a7724c46456f4958"}},
-{"id":"srand","key":"srand","value":{"rev":"16-22f98b1b1a208c22dfbe95aa889cd08e"}},
-{"id":"srcds","key":"srcds","value":{"rev":"3-bd79da47d36662609c0c75c713874fd1"}},
-{"id":"srs","key":"srs","value":{"rev":"32-c8c961ea10fc60fc428bddff133a8aba"}},
-{"id":"sserve","key":"sserve","value":{"rev":"3-957457395e2c61c20bcb727fc19fc4d4"}},
-{"id":"ssh","key":"ssh","value":{"rev":"3-c7dda694daa7ca1e264b494400edfa18"}},
-{"id":"ssh-agent","key":"ssh-agent","value":{"rev":"3-dbc87102ed1f17b7253a1901976dfa9d"}},
-{"id":"sshmq","key":"sshmq","value":{"rev":"3-052f36ca47cddf069a1700fc79a08930"}},
-{"id":"stache","key":"stache","value":{"rev":"11-9bb0239153147939a25fd20184f20fc6"}},
-{"id":"stack","key":"stack","value":{"rev":"7-e18abdce80008ac9e2feb66f3407fe67"}},
-{"id":"stack-trace","key":"stack-trace","value":{"rev":"13-9fe20c5a3e34a5e4472c6f4fdea86efc"}},
-{"id":"stack.static","key":"stack.static","value":{"rev":"7-ad064faf6255a632cefa71a6ff3c47f3"}},
-{"id":"stack2","key":"stack2","value":{"rev":"3-e5f8ea94c0dd2b4c7f5d3941d689622b"}},
-{"id":"stackedy","key":"stackedy","value":{"rev":"25-f988787b9b5720dece8ae3cb83a2bc12"}},
-{"id":"stage","key":"stage","value":{"rev":"7-d2931fcb473f63320067c3e75638924e"}},
-{"id":"stalker","key":"stalker","value":{"rev":"19-ece35be8695846fc766a71c0022d4ff7"}},
-{"id":"startupify","key":"startupify","value":{"rev":"11-3c87ef5e9ee33122cf3515a63b22c52a"}},
-{"id":"stash","key":"stash","value":{"rev":"10-41239a1df74b69fe7bb3e360f9a35ad1"}},
-{"id":"statechart","key":"statechart","value":{"rev":"6-97e6947b5bbaf14bdb55efa6dfa5e19c"}},
-{"id":"stately","key":"stately","value":{"rev":"6-f8a257cd9fdd84947ff2cf7357afc88b"}},
-{"id":"stathat","key":"stathat","value":{"rev":"3-b79b7bd50bb1e4dcc1301424104a5b36"}},
-{"id":"station","key":"station","value":{"rev":"5-92e6387138b1ee10976bd92dd48ea818"}},
-{"id":"statistics","key":"statistics","value":{"rev":"3-a1c3a03d833c6f02fde403950790e9b4"}},
-{"id":"stats","key":"stats","value":{"rev":"13-fe513ea6b3b5b6b31935fd3464ec5d3b"}},
-{"id":"std","key":"std","value":{"rev":"55-58a4f182c3f51996a0d60a6f575cfefd"}},
-{"id":"steam","key":"steam","value":{"rev":"5-bffdf677d2d1ae3e8236892e68a3dd66"}},
-{"id":"stem","key":"stem","value":{"rev":"36-4f1c38eff671ede0241038017a810132"}},
-{"id":"step","key":"step","value":{"rev":"8-048d7707a45af3a7824a478d296cc467"}},
-{"id":"stepc","key":"stepc","value":{"rev":"3-be85de2c02f4889fdf77fda791feefea"}},
-{"id":"stepper","key":"stepper","value":{"rev":"9-cc54000dc973835c38e139b30cbb10cc"}},
-{"id":"steps","key":"steps","value":{"rev":"5-3561591b425e1fff52dc397f9688feae"}},
-{"id":"stextile","key":"stextile","value":{"rev":"29-9a8b6de917df01d322847f112dcadadf"}},
-{"id":"stitch","key":"stitch","value":{"rev":"13-8a50e4a4f015d1afe346aa6b6c8646bd"}},
-{"id":"stitchup","key":"stitchup","value":{"rev":"7-fe14604e3a8b82f62c38d0cb3ccce61e"}},
-{"id":"stomp","key":"stomp","value":{"rev":"15-e0430c0be74cd20c5204b571999922f7"}},
-{"id":"stopwords","key":"stopwords","value":{"rev":"3-2dd9fade030cfcce85848c5b3b4116fc"}},
-{"id":"store","key":"store","value":{"rev":"9-5537cc0f4827044504e8dae9617c9347"}},
-{"id":"store.js","key":"store.js","value":{"rev":"22-116c9a6194703ea98512d89ec5865e3d"}},
-{"id":"stories","key":"stories","value":{"rev":"11-244ca52d0a41f70bc4dfa0aca0f82a40"}},
-{"id":"storify","key":"storify","value":{"rev":"5-605b197219e916df561dd7722af97e2e"}},
-{"id":"storify-templates","key":"storify-templates","value":{"rev":"3-0960756aa963cee21b679a59cef114a1"}},
-{"id":"storm","key":"storm","value":{"rev":"3-9052e6af8528d1bc0d96021dfa21dd3e"}},
-{"id":"stove","key":"stove","value":{"rev":"17-01c9f0e87398e6bfa03a764e89295e00"}},
-{"id":"str.js","key":"str.js","value":{"rev":"9-301f54edeebde3c5084c3a8071e2aa09"}},
-{"id":"strack","key":"strack","value":{"rev":"10-5acf78ae6a417a82b49c221d606b8fed"}},
-{"id":"strappy","key":"strappy","value":{"rev":"3-fb63a899ff82c0f1142518cc263dd632"}},
-{"id":"strata","key":"strata","value":{"rev":"31-de615eccbda796e2bea405c2806ec792"}},
-{"id":"stream-buffers","key":"stream-buffers","value":{"rev":"7-d8fae628da43d377dd4e982f5bf7b09b"}},
-{"id":"stream-handler","key":"stream-handler","value":{"rev":"7-333eb7dcf2aeb550f948ee2162b21be2"}},
-{"id":"stream-stack","key":"stream-stack","value":{"rev":"22-a70979df042e2ff760b2d900259c84a1"}},
-{"id":"streamer","key":"streamer","value":{"rev":"17-dd16e62ada55311a793fbf7963a920f3"}},
-{"id":"streamlib","key":"streamlib","value":{"rev":"3-5125b1e6a92290f8d7f5fdad71e13fc2"}},
-{"id":"streamline","key":"streamline","value":{"rev":"152-0931f5697340c62e05dcd1a741afd38f"}},
-{"id":"streamline-streams","key":"streamline-streams","value":{"rev":"3-3224030ecfbf5a8ac5d218ab56dee545"}},
-{"id":"streamline-util","key":"streamline-util","value":{"rev":"3-a8047ecf37b985ec836c552fd2bcbf78"}},
-{"id":"streamlogger","key":"streamlogger","value":{"rev":"3-43f93a109774591f1409b0b86c363623"}},
-{"id":"streamlogger-fixed","key":"streamlogger-fixed","value":{"rev":"3-6e48de9e269b4f5bf979c560190b0680"}},
-{"id":"strftime","key":"strftime","value":{"rev":"25-74130d5c9cbf91025ce91f0463a9b1b5"}},
-{"id":"string-color","key":"string-color","value":{"rev":"3-9f336bf06bd80b2d2338c216099421c7"}},
-{"id":"strscan","key":"strscan","value":{"rev":"8-3e0d182a8d0c786754c555c0ac12e9d9"}},
-{"id":"strtok","key":"strtok","value":{"rev":"8-a1a1da7946d62fabb6cca56fc218654b"}},
-{"id":"struct","key":"struct","value":{"rev":"3-ff0f9cb336df73a5a19a38e17633583c"}},
-{"id":"structr","key":"structr","value":{"rev":"21-69b3672dab234d0effec5a72a2b1791c"}},
-{"id":"sty","key":"sty","value":{"rev":"9-ce5691388abc3ccaff23030bff190914"}},
-{"id":"style","key":"style","value":{"rev":"7-342569887fb53caddc60d745706cd66e"}},
-{"id":"style-compile","key":"style-compile","value":{"rev":"5-6f8b86c94c5344ec280a28f025691996"}},
-{"id":"styleless","key":"styleless","value":{"rev":"5-c236b81c38193ad71d7ed7c5b571995d"}},
-{"id":"stylewriter","key":"stylewriter","value":{"rev":"3-25a3f83252b220d8db0aa70c8fc1da4f"}},
-{"id":"stylus","key":"stylus","value":{"rev":"135-8b69084f50a95c297d1044e48b39a6c9"}},
-{"id":"stylus-blueprint","key":"stylus-blueprint","value":{"rev":"5-50ec59a9fa161ca68dac765f2281c13e"}},
-{"id":"stylus-sprite","key":"stylus-sprite","value":{"rev":"27-db597a75467baaad94de287494e9c21e"}},
-{"id":"styout","key":"styout","value":{"rev":"9-9d9460bb9bfa253ed0b5fbeb27f7710a"}},
-{"id":"sugar","key":"sugar","value":{"rev":"5-2722426edc51a7703f5c37306b03a8c4"}},
-{"id":"sugardoll","key":"sugardoll","value":{"rev":"16-cfadf4e7108357297be180a3868130db"}},
-{"id":"suger-pod","key":"suger-pod","value":{"rev":"5-c812b763cf6cdd218c6a18e1a4e2a4ac"}},
-{"id":"sunny","key":"sunny","value":{"rev":"3-c26b62eef1eeeeef58a7ea9373df3b39"}},
-{"id":"superagent","key":"superagent","value":{"rev":"3-1b32cc8372b7713f973bb1e044e6a86f"}},
-{"id":"supermarket","key":"supermarket","value":{"rev":"20-afa8a26ecec3069717c8ca7e5811cc31"}},
-{"id":"supershabam-websocket","key":"supershabam-websocket","value":{"rev":"7-513117fb37b3ab7cdaeeae31589e212e"}},
-{"id":"supervisor","key":"supervisor","value":{"rev":"16-2c6c141d018ef8927acee79f31d466ff"}},
-{"id":"supervisord","key":"supervisord","value":{"rev":"7-359ba115e5e10b5c95ef1a7562ad7a45"}},
-{"id":"svg2jadepartial","key":"svg2jadepartial","value":{"rev":"9-4a6260dd5d7c14801e8012e3ba7510f5"}},
-{"id":"swake","key":"swake","value":{"rev":"5-6f780362f0317427752d87cc5c640021"}},
-{"id":"swarm","key":"swarm","value":{"rev":"43-f1a963a0aeb043bf69529a82798b3afc"}},
-{"id":"sweet","key":"sweet","value":{"rev":"5-333f4d3529f65ce53b037cc282e3671d"}},
-{"id":"swig","key":"swig","value":{"rev":"29-53294b9d4f350192cf65817692092bfa"}},
-{"id":"switchback","key":"switchback","value":{"rev":"3-e117371d415f4a3d4ad30e78f5ec28bf"}},
-{"id":"switchboard","key":"switchboard","value":{"rev":"3-504d6c1e45165c54fbb1d3025d5120d7"}},
-{"id":"swiz","key":"swiz","value":{"rev":"82-cfb7840376b57896fba469e5c6ff3786"}},
-{"id":"swizec-bitly","key":"swizec-bitly","value":{"rev":"3-a705807238b8ef3ff2d008910bc350c3"}},
-{"id":"sws","key":"sws","value":{"rev":"5-bc5e8558bde6c2ae971abdd448a006d2"}},
-{"id":"symbie","key":"symbie","value":{"rev":"5-3184f869ed386341a4cdc35d85efb62a"}},
-{"id":"symbox","key":"symbox","value":{"rev":"5-eed33350cbb763726335ef1df74a6591"}},
-{"id":"synapse","key":"synapse","value":{"rev":"3-a9672d5159c0268babbfb94d7554d4bb"}},
-{"id":"sync","key":"sync","value":{"rev":"65-89fa6b8ab2df135d57e0bba4e921ad3b"}},
-{"id":"synchro","key":"synchro","value":{"rev":"21-6a881704308298f1894509a5b59287ae"}},
-{"id":"synchronous","key":"synchronous","value":{"rev":"7-bf89d61f001d994429e0fd12c26c2676"}},
-{"id":"syncler","key":"syncler","value":{"rev":"2-12870522e069945fc12f7d0f612700ee"}},
-{"id":"syncrepl","key":"syncrepl","value":{"rev":"5-e9234a1d8a529bc0d1b01c3b77c69c30"}},
-{"id":"synct","key":"synct","value":{"rev":"3-3664581b69e6f40dabc90525217f46cd"}},
-{"id":"syndicate","key":"syndicate","value":{"rev":"7-1db2b05d6b3e55fa622c3c26df7f9cad"}},
-{"id":"syslog","key":"syslog","value":{"rev":"5-d52fbc739505a2a194faf9a32da39d23"}},
-{"id":"syslog-node","key":"syslog-node","value":{"rev":"15-039177b9c516fd8d0b31faf92aa73f6f"}},
-{"id":"system","key":"system","value":{"rev":"18-33152371e0696a853ddb8b2234a6dfea"}},
-{"id":"taazr-uglify","key":"taazr-uglify","value":{"rev":"7-5c63dc75aa7c973df102c298291be8a5"}},
-{"id":"table","key":"table","value":{"rev":"9-a8a46ddf3a7cab63a0228303305cc32e"}},
-{"id":"tache.io","key":"tache.io","value":{"rev":"7-5639c70dc56b0a6333b568af377bb216"}},
-{"id":"taco","key":"taco","value":{"rev":"3-97cfbd54b4053c9e01e18af7c3902d1a"}},
-{"id":"tad","key":"tad","value":{"rev":"3-529ebda7291e24ae020d5c2931ba22cd"}},
-{"id":"tafa-misc-util","key":"tafa-misc-util","value":{"rev":"19-52984b66029c7d5cc78d3e2ae88c98d6"}},
-{"id":"tag","key":"tag","value":{"rev":"3-80b0d526b10a26f41fe73978843a07b9"}},
-{"id":"taglib","key":"taglib","value":{"rev":"3-efd2e6bc818bf3b385df40dfae506fa5"}},
-{"id":"tail","key":"tail","value":{"rev":"21-09bce80ad6aa4b01c6a70825fd141fd4"}},
-{"id":"tails","key":"tails","value":{"rev":"14-3ba6976831b1388e14235622ab001681"}},
-{"id":"tamejs","key":"tamejs","value":{"rev":"39-9a3657941df3bd24c43b5473e9f3b4c8"}},
-{"id":"taobao-js-api","key":"taobao-js-api","value":{"rev":"7-d46c8b48364b823dabf808f2b30e1eb8"}},
-{"id":"tap","key":"tap","value":{"rev":"35-1b8e553cf848f5ab27711efa0e74a033"}},
-{"id":"tap-assert","key":"tap-assert","value":{"rev":"19-f2960c64bcfa6ce4ed73e870d8d9e3fa"}},
-{"id":"tap-consumer","key":"tap-consumer","value":{"rev":"3-3e38aafb6d2d840bdb20818efbc75df4"}},
-{"id":"tap-global-harness","key":"tap-global-harness","value":{"rev":"3-f32589814daf8c1816c1f5a24de4ad12"}},
-{"id":"tap-harness","key":"tap-harness","value":{"rev":"7-a5af01384152c452abc11d4e641e6157"}},
-{"id":"tap-producer","key":"tap-producer","value":{"rev":"3-2db67a9541c37c912d4de2576bb3caa0"}},
-{"id":"tap-results","key":"tap-results","value":{"rev":"5-b8800525438965e38dc586e6b5cb142d"}},
-{"id":"tap-runner","key":"tap-runner","value":{"rev":"11-3975c0f5044530b61158a029899f4c03"}},
-{"id":"tap-test","key":"tap-test","value":{"rev":"5-0a3bba26b6b94dae8b7f59712335ee98"}},
-{"id":"tar","key":"tar","value":{"rev":"6-94226dd7add6ae6a1e68088360a466e4"}},
-{"id":"tar-async","key":"tar-async","value":{"rev":"37-d6579d43c1ee2f41205f28b0cde5da23"}},
-{"id":"tar-js","key":"tar-js","value":{"rev":"5-6826f2aad965fb532c7403964ce80d85"}},
-{"id":"task","key":"task","value":{"rev":"3-81f72759a5b64dff88a01a4838cc4a23"}},
-{"id":"task-extjs","key":"task-extjs","value":{"rev":"14-c9ba76374805425c332e0c66725e885c"}},
-{"id":"task-joose-nodejs","key":"task-joose-nodejs","value":{"rev":"20-6b8e4d24323d3240d5ee790d00c0d96a"}},
-{"id":"task-joose-stable","key":"task-joose-stable","value":{"rev":"32-026eada52cd5dd17a680359daec4917a"}},
-{"id":"tasks","key":"tasks","value":{"rev":"5-84e8f83d0c6ec27b4f05057c48063d62"}},
-{"id":"tav","key":"tav","value":{"rev":"3-da9899817edd20f0c73ad09bdf540cc6"}},
-{"id":"taxman","key":"taxman","value":{"rev":"5-9b9c68db8a1c8efedad800026cb23ae4"}},
-{"id":"tbone","key":"tbone","value":{"rev":"3-5789b010d0b1f1c663750c894fb5c570"}},
-{"id":"tcp-proxy","key":"tcp-proxy","value":{"rev":"3-118c6dc26d11537cf157fe2f28b05af5"}},
-{"id":"teamgrowl","key":"teamgrowl","value":{"rev":"8-3d13200b3bfeeace0787f9f9f027216d"}},
-{"id":"teamgrowl-server","key":"teamgrowl-server","value":{"rev":"8-a14dc4a26c2c06a4d9509eaff6e24735"}},
-{"id":"telehash","key":"telehash","value":{"rev":"6-4fae3629c1e7e111ba3e486b39a29913"}},
-{"id":"telemail","key":"telemail","value":{"rev":"3-60928460428265fc8002ca61c7f23abe"}},
-{"id":"telemetry","key":"telemetry","value":{"rev":"5-1be1d37ef62dc786b0a0f0d2d7984eb1"}},
-{"id":"teleport","key":"teleport","value":{"rev":"36-5b55a43ba83f4fe1a547c04e29139c3d"}},
-{"id":"teleport-dashboard","key":"teleport-dashboard","value":{"rev":"7-4cbc728d7a3052848a721fcdd92dda30"}},
-{"id":"teleport-site","key":"teleport-site","value":{"rev":"3-aeb8c0a93b7b0bcd7a30fe33bf23808c"}},
-{"id":"telnet","key":"telnet","value":{"rev":"11-7a587104b94ce135315c7540eb3493f6"}},
-{"id":"telnet-protocol","key":"telnet-protocol","value":{"rev":"3-8fcee2ed02c2e603c48e51e90ae78a00"}},
-{"id":"temp","key":"temp","value":{"rev":"6-91ef505da0a0860a13c0eb1a5d2531e6"}},
-{"id":"tempPath","key":"tempPath","value":{"rev":"3-34f2c1937d97207245986c344136547c"}},
-{"id":"tempis","key":"tempis","value":{"rev":"3-b2c0989068cc8125a519d19b9c79ffb6"}},
-{"id":"template","key":"template","value":{"rev":"6-d0088c6a5a7610570920db0f5c950bf9"}},
-{"id":"template-engine","key":"template-engine","value":{"rev":"3-3746216e1e2e456dbb0fd2f9070c1619"}},
-{"id":"tengwar","key":"tengwar","value":{"rev":"3-645a00f03e1e9546631ac22c37e1f3b4"}},
-{"id":"tenjin","key":"tenjin","value":{"rev":"5-0925c7535455266125b7730296c66356"}},
-{"id":"teriaki","key":"teriaki","value":{"rev":"3-d3c17f70d8697c03f43a7eae75f8c089"}},
-{"id":"terminal","key":"terminal","value":{"rev":"11-0e024d173ee3c28432877c0c5f633f19"}},
-{"id":"termspeak","key":"termspeak","value":{"rev":"7-fdfc93dd7d0d65fe502cabca191d8496"}},
-{"id":"termutil","key":"termutil","value":{"rev":"5-bccf8377ff28bc1f07f8b4b44d1e2335"}},
-{"id":"test","key":"test","value":{"rev":"38-129620013bbd3ec13617c403b02b52f1"}},
-{"id":"test-cmd","key":"test-cmd","value":{"rev":"35-7dd417a80390c2c124c66273ae33bd07"}},
-{"id":"test-helper","key":"test-helper","value":{"rev":"3-7b29af65825fc46d0603a39cdc6c95b4"}},
-{"id":"test-report","key":"test-report","value":{"rev":"5-e51cd1069b6cc442707f0861b35851be"}},
-{"id":"test-report-view","key":"test-report-view","value":{"rev":"3-9ba670940a8235eaef9b957dde6379af"}},
-{"id":"test-run","key":"test-run","value":{"rev":"20-6de89383602e6843d9376a78778bec19"}},
-{"id":"test_it","key":"test_it","value":{"rev":"5-be5cd436b9145398fa88c15c1269b102"}},
-{"id":"testbed","key":"testbed","value":{"rev":"2-db233788f7e516f227fac439d9450ef4"}},
-{"id":"testharness","key":"testharness","value":{"rev":"46-787468cb68ec31b442327639dcc0a4e5"}},
-{"id":"testingey","key":"testingey","value":{"rev":"17-a7ad6a9ff5721ae449876f6448d6f22f"}},
-{"id":"testnode","key":"testnode","value":{"rev":"9-cb63c450b241806e2271cd56fe502395"}},
-{"id":"testosterone","key":"testosterone","value":{"rev":"35-278e8af2b59bb6caf56728c67f720c37"}},
-{"id":"testqueue","key":"testqueue","value":{"rev":"3-59c574aeb345ef2d6e207a342be3f497"}},
-{"id":"testrunner","key":"testrunner","value":{"rev":"7-152e7d4a97f6cf6f00e22140e1969664"}},
-{"id":"testy","key":"testy","value":{"rev":"5-e8f4c9f4a799b6f8ab4effc21c3073a0"}},
-{"id":"text","key":"text","value":{"rev":"6-58a79b0db4968d6ad233898744a75351"}},
-{"id":"textareaserver","key":"textareaserver","value":{"rev":"3-f032b1397eb5e6369e1ac0ad1e78f466"}},
-{"id":"textile","key":"textile","value":{"rev":"6-2a8db66876f0119883449012c9c54c47"}},
-{"id":"textual","key":"textual","value":{"rev":"3-0ad9d5d3403b239185bad403625fed19"}},
-{"id":"tf2logparser","key":"tf2logparser","value":{"rev":"5-ffbc427b95ffeeb013dc13fa2b9621e3"}},
-{"id":"tfe-express","key":"tfe-express","value":{"rev":"3-b68ac01185885bcd22fa430ddb97e757"}},
-{"id":"tfidf","key":"tfidf","value":{"rev":"13-988808af905397dc103a0edf8c7c8a9f"}},
-{"id":"theBasics","key":"theBasics","value":{"rev":"7-9ebef2e59e1bd2fb3544ed16e1dc627b"}},
-{"id":"thefunlanguage.com","key":"thefunlanguage.com","value":{"rev":"3-25d56a3a4f639af23bb058db541bffe0"}},
-{"id":"thelinuxlich-docco","key":"thelinuxlich-docco","value":{"rev":"7-2ac0969da67ead2fa8bc0b21880b1d6b"}},
-{"id":"thelinuxlich-vogue","key":"thelinuxlich-vogue","value":{"rev":"5-ebc0a28cf0ae447b7ebdafc51c460bc0"}},
-{"id":"thepusher","key":"thepusher","value":{"rev":"5-b80cce6f81b1cae7373cd802df34c05c"}},
-{"id":"thetvdb","key":"thetvdb","value":{"rev":"3-a3a017a90b752d8158bf6dfcbcfdf250"}},
-{"id":"thirty-two","key":"thirty-two","value":{"rev":"3-1d4761ba7c4fa475e0c69e9c96d6ac04"}},
-{"id":"thoonk","key":"thoonk","value":{"rev":"15-c62c90d7e9072d96302d3a534ce943bb"}},
-{"id":"thrift","key":"thrift","value":{"rev":"14-447a41c9b655ec06e8e4854d5a55523a"}},
-{"id":"throttle","key":"throttle","value":{"rev":"3-8a3b3c657c49ede67c883806fbfb4df6"}},
-{"id":"thyme","key":"thyme","value":{"rev":"5-f06104f10d43a2b4cbcc7621ed45eacf"}},
-{"id":"tiamat","key":"tiamat","value":{"rev":"44-810633d6cd5edaa0510fe0f38c02ad58"}},
-{"id":"tictoc","key":"tictoc","value":{"rev":"3-0be6cf95d4466595376dadd0fc08bd95"}},
-{"id":"tidy","key":"tidy","value":{"rev":"3-25116d4dcf6765ef2a09711ecc1e03c9"}},
-{"id":"tiers","key":"tiers","value":{"rev":"3-ffaa8ffe472fe703de8f0bbeb8af5621"}},
-{"id":"tilejson","key":"tilejson","value":{"rev":"5-76b990dd945fb412ed00a96edc86b59d"}},
-{"id":"tilelive","key":"tilelive","value":{"rev":"57-9283e846e77263ed6e7299680d6b4b06"}},
-{"id":"tilelive-mapnik","key":"tilelive-mapnik","value":{"rev":"31-30f871ede46789fc6a36f427a1a99fff"}},
-{"id":"tilemill","key":"tilemill","value":{"rev":"19-7b884c9d707dd34f21cb71e88b45fc73"}},
-{"id":"tilestream","key":"tilestream","value":{"rev":"76-3a29ba96ecdb6c860c211ae8f2d909a9"}},
-{"id":"timbits","key":"timbits","value":{"rev":"59-b48dde4a210ec9fb4c33c07a52bce61e"}},
-{"id":"time","key":"time","value":{"rev":"51-907f587206e6a27803a3570e42650adc"}},
-{"id":"timeTraveller","key":"timeTraveller","value":{"rev":"7-389de8c8e86daea495d14aeb2b77df38"}},
-{"id":"timeout","key":"timeout","value":{"rev":"11-8e53dedecfaf6c4f1086eb0f43c71325"}},
-{"id":"timer","key":"timer","value":{"rev":"5-a8bcbb898a807e6662b54ac988fb967b"}},
-{"id":"timerjs","key":"timerjs","value":{"rev":"3-7d24eb268746fdb6b5e9be93bec93f1b"}},
-{"id":"timespan","key":"timespan","value":{"rev":"12-315b2793cbf28a18cea36e97a3c8a55f"}},
-{"id":"timezone","key":"timezone","value":{"rev":"35-2741d5d3b68a953d4cb3a596bc2bc15e"}},
-{"id":"tiny","key":"tiny","value":{"rev":"9-a61d26d02ce39381f7e865ad82494692"}},
-{"id":"tld","key":"tld","value":{"rev":"3-5ce4b4e48a11413ad8a1f3bfd0d0b778"}},
-{"id":"tldextract","key":"tldextract","value":{"rev":"7-620962e27145bd9fc17dc406c38b0c32"}},
-{"id":"tmp","key":"tmp","value":{"rev":"23-20f5c14244d58f35bd3e970f5f65cc32"}},
-{"id":"tmpl","key":"tmpl","value":{"rev":"5-5894c206e15fa58ab9415706b9d53f1f"}},
-{"id":"tmpl-precompile","key":"tmpl-precompile","value":{"rev":"15-3db34b681596b258cae1dae8cc24119d"}},
-{"id":"tmppckg","key":"tmppckg","value":{"rev":"11-b3a13e1280eb9cbef182c1f3f24bd570"}},
-{"id":"tnetstrings","key":"tnetstrings","value":{"rev":"3-d6b8ed2390a3e38138cb01b82d820079"}},
-{"id":"toDataURL","key":"toDataURL","value":{"rev":"3-1ea3cb62666b37343089bb9ef48fbace"}},
-{"id":"toYaml","key":"toYaml","value":{"rev":"11-3c629e3859c70d57b1ae51b2ac459011"}},
-{"id":"tob","key":"tob","value":{"rev":"7-376c174d06a675855406cfcdcacf61f5"}},
-{"id":"tobi","key":"tobi","value":{"rev":"50-d8749ac3739b042afe82657802bc3ba8"}},
-{"id":"toddick","key":"toddick","value":{"rev":"13-db528ef519f57b8c1d752ad7270b4d05"}},
-{"id":"tokenizer","key":"tokenizer","value":{"rev":"5-f6524fafb16059b66074cd04bf248a03"}},
-{"id":"tokyotosho","key":"tokyotosho","value":{"rev":"5-7432e0207165d9c165fd73d2a23410d6"}},
-{"id":"tolang","key":"tolang","value":{"rev":"7-65dbdf56b039f680e61a1e1d7feb9fb1"}},
-{"id":"toolkit","key":"toolkit","value":{"rev":"13-58075a57a6069dc39f98e72d473a0c30"}},
-{"id":"tools","key":"tools","value":{"rev":"3-ba301d25cfc6ad71dd68c811ea97fa01"}},
-{"id":"topcube","key":"topcube","value":{"rev":"29-736b3816d410f626dbc4da663acb05aa"}},
-{"id":"torrent-search","key":"torrent-search","value":{"rev":"7-7dd48fac0c1f99f34fad7da365085b6c"}},
-{"id":"tosource","key":"tosource","value":{"rev":"5-13483e2c11b07611c26b37f2e76a0bf3"}},
-{"id":"tplcpl","key":"tplcpl","value":{"rev":"15-8ba1e6d14ad6b8eb71b703e22054ac0a"}},
-{"id":"tracejs","key":"tracejs","value":{"rev":"23-1ffec83afc19855bcbed8049a009a910"}},
-{"id":"traceur","key":"traceur","value":{"rev":"9-a48f7e4cb1fb452125d81c62c8ab628b"}},
-{"id":"traceurl","key":"traceurl","value":{"rev":"21-e016db44a86b124ea00411f155d884d4"}},
-{"id":"tracey","key":"tracey","value":{"rev":"5-76699aab64e89271cbb7df80a00d3583"}},
-{"id":"tracy","key":"tracy","value":{"rev":"5-412f78082ba6f4c3c7d5328cf66d2e10"}},
-{"id":"traits","key":"traits","value":{"rev":"10-3a37dbec4b78518c00c577f5e286a9b9"}},
-{"id":"tramp","key":"tramp","value":{"rev":"5-3b6d27b8b432b925b7c9fc088e84d8e4"}},
-{"id":"transcode","key":"transcode","value":{"rev":"6-a6494707bd94b5e6d1aa9df3dbcf8d7c"}},
-{"id":"transformer","key":"transformer","value":{"rev":"15-7738ac7c02f03d64f73610fbf7ed92a6"}},
-{"id":"transformjs","key":"transformjs","value":{"rev":"5-f1ab667c430838e1d3238e1f878998e2"}},
-{"id":"transitive","key":"transitive","value":{"rev":"43-841de40a5e3434bd51a1c8f19891f982"}},
-{"id":"translate","key":"translate","value":{"rev":"12-f3ddbbada2f109843c5422d83dd7a203"}},
-{"id":"transliteration.ua","key":"transliteration.ua","value":{"rev":"3-f847c62d8749904fc7de6abe075e619a"}},
-{"id":"transmission","key":"transmission","value":{"rev":"9-587eaa395430036f17b175bc439eabb6"}},
-{"id":"transmogrify","key":"transmogrify","value":{"rev":"5-3e415cd9420c66551cccc0aa91b11d98"}},
-{"id":"transporter","key":"transporter","value":{"rev":"6-698b696890bf01d751e9962bd86cfe7e"}},
-{"id":"traverse","key":"traverse","value":{"rev":"60-9432066ab44fbb0e913227dc62c953d9"}},
-{"id":"traverser","key":"traverser","value":{"rev":"11-1d50662f13134868a1df5019d99bf038"}},
-{"id":"treeeater","key":"treeeater","value":{"rev":"56-2c8a9fd3e842b221ab8da59c6d847327"}},
-{"id":"treelib","key":"treelib","value":{"rev":"13-212ccc836a943c8b2a5342b65ab9edf3"}},
-{"id":"trees","key":"trees","value":{"rev":"3-3ee9e9cf3fd8aa985e32b3d9586a7c0e"}},
-{"id":"trentm-datetime","key":"trentm-datetime","value":{"rev":"3-740a291379ddf97bda2aaf2ff0e1654d"}},
-{"id":"trentm-git","key":"trentm-git","value":{"rev":"3-b81ce3764a45e5d0862488fab9fac486"}},
-{"id":"trentm-hashlib","key":"trentm-hashlib","value":{"rev":"3-4b4175b6a8702bdb9c1fe5ac4786761b"}},
-{"id":"trial","key":"trial","value":{"rev":"3-cf77f189409517495dd8259f86e0620e"}},
-{"id":"trie","key":"trie","value":{"rev":"3-6cc3c209cf4aae5a4f92e1ca38c4c54c"}},
-{"id":"trollop","key":"trollop","value":{"rev":"6-75076593614c9cd51d61a76f73d2c5b5"}},
-{"id":"trollscript","key":"trollscript","value":{"rev":"5-fcf646075c5be575b9174f84d08fbb37"}},
-{"id":"trollscriptjs","key":"trollscriptjs","value":{"rev":"3-1dfd1acd3d15c0bd18ea407e3933b621"}},
-{"id":"tropo-webapi","key":"tropo-webapi","value":{"rev":"11-5106730dbd79167df38812ffaa912ded"}},
-{"id":"tropo-webapi-node","key":"tropo-webapi-node","value":{"rev":"15-483c64bcbf1dcadaea30e78d7bc3ebbc"}},
-{"id":"trundle","key":"trundle","value":{"rev":"3-2af32ed348fdedebd1077891bb22a756"}},
-{"id":"trust-reverse-proxy","key":"trust-reverse-proxy","value":{"rev":"6-ba5bed0849617e0390f0e24750bf5747"}},
-{"id":"trying","key":"trying","value":{"rev":"3-43b417160b178c710e0d85af6b3d56e7"}},
-{"id":"ttapi","key":"ttapi","value":{"rev":"51-727e47d8b383b387a498711c07ce4de6"}},
-{"id":"tubbs","key":"tubbs","value":{"rev":"7-b386e59f2205b22615a376f5ddee3eb0"}},
-{"id":"tuild","key":"tuild","value":{"rev":"13-4a2b92f95a0ee342c060974ce7a0021d"}},
-{"id":"tumbler","key":"tumbler","value":{"rev":"5-ff16653ab92d0af5e70d9caa88f3b7ed"}},
-{"id":"tumbler-sprite","key":"tumbler-sprite","value":{"rev":"3-604d25b7bb9e32b92cadd75aeb23997c"}},
-{"id":"tumblr","key":"tumblr","value":{"rev":"9-14d160f1f2854330fba300b3ea233893"}},
-{"id":"tumblr2","key":"tumblr2","value":{"rev":"7-29bb5d86501cdbcef889289fe7f4b51e"}},
-{"id":"tumblrrr","key":"tumblrrr","value":{"rev":"10-0c50379fbab7b39766e1a61379c39964"}},
-{"id":"tunguska","key":"tunguska","value":{"rev":"1-a6b24d2c2a5a9f091a9b6f13bac66927"}},
-{"id":"tupalocomapi","key":"tupalocomapi","value":{"rev":"3-a1cdf85a08784f62c2ec440a1ed90ad4"}},
-{"id":"turing","key":"turing","value":{"rev":"5-4ba083c8343718acb9450d96551b65c0"}},
-{"id":"tutti","key":"tutti","value":{"rev":"21-929cc205b3d8bc68f86aa63578e0af95"}},
-{"id":"tuttiserver","key":"tuttiserver","value":{"rev":"39-b3fe7cbaf2d43458dae061f37aa5ae18"}},
-{"id":"tuttiterm","key":"tuttiterm","value":{"rev":"7-6c0e9e7f6f137de0ee7c886351fdf373"}},
-{"id":"tvister","key":"tvister","value":{"rev":"7-963eab682ab09922a44fbca50c0ec019"}},
-{"id":"twbot","key":"twbot","value":{"rev":"15-923625f516566c977975b3da3d4bc46b"}},
-{"id":"tweasy","key":"tweasy","value":{"rev":"10-7215063e5729b1c114ef73f07a1368d3"}},
-{"id":"tweeter.js","key":"tweeter.js","value":{"rev":"3-bc8437157c11cf32eec168d7c71037bb"}},
-{"id":"tweetstream","key":"tweetstream","value":{"rev":"6-81a6bf2a3e29208e1c4c65a3958ee5d8"}},
-{"id":"twerk","key":"twerk","value":{"rev":"5-01cbfddf9ad25a67ff1e45ec39acb780"}},
-{"id":"twerp","key":"twerp","value":{"rev":"23-1b4726d1fef030a3dde6fae2cdfbb687"}},
-{"id":"twigjs","key":"twigjs","value":{"rev":"7-07b90e2c35c5c81d394b29086507de04"}},
-{"id":"twilio","key":"twilio","value":{"rev":"20-68d5439ecb1774226025e6f9125bbb86"}},
-{"id":"twilio-node","key":"twilio-node","value":{"rev":"13-84d31c2dc202df3924ed399289cbc1fc"}},
-{"id":"twiliode","key":"twiliode","value":{"rev":"3-6cbe432dd6c6d94d8a4faa6e0ea47dd3"}},
-{"id":"twill","key":"twill","value":{"rev":"5-3a0caf9c0e83ab732ae8ae61f4f17830"}},
-{"id":"twisted-deferred","key":"twisted-deferred","value":{"rev":"9-f35acecb8736d96582e1f9b62dd4ae47"}},
-{"id":"twitpic","key":"twitpic","value":{"rev":"11-55b11432a09edeec1189024f26a48153"}},
-{"id":"twitter","key":"twitter","value":{"rev":"60-9ad6368932c8a74ea5bd10dda993d74d"}},
-{"id":"twitter-client","key":"twitter-client","value":{"rev":"11-dc3da9e1724cf00aa86c1e7823cfd919"}},
-{"id":"twitter-connect","key":"twitter-connect","value":{"rev":"12-969292347a4251d121566169236a3091"}},
-{"id":"twitter-js","key":"twitter-js","value":{"rev":"24-251d0c54749e86bd544a15290e311370"}},
-{"id":"twitter-node","key":"twitter-node","value":{"rev":"12-a7ed6c69f05204de2e258f46230a05b6"}},
-{"id":"twitter-text","key":"twitter-text","value":{"rev":"16-978bda8ec4eaf68213d0ee54242feefa"}},
-{"id":"type","key":"type","value":{"rev":"3-c5b8b87cde9e27277302cb5cb6d00f85"}},
-{"id":"typecheck","key":"typecheck","value":{"rev":"5-79723661620bb0fb254bc7f888d6e937"}},
-{"id":"typed-array","key":"typed-array","value":{"rev":"3-89ac91e2a51a9e5872515d5a83691e83"}},
-{"id":"typhoon","key":"typhoon","value":{"rev":"23-2027c96b8fd971332848594f3b0526cb"}},
-{"id":"typogr","key":"typogr","value":{"rev":"13-2dfe00f08ee13e6b00a99df0a8f96718"}},
-{"id":"ua-parser","key":"ua-parser","value":{"rev":"14-d1a018354a583dba4506bdc0c04a416b"}},
-{"id":"uberblic","key":"uberblic","value":{"rev":"5-500704ed73f255eb5b86ad0a5e158bc9"}},
-{"id":"ucengine","key":"ucengine","value":{"rev":"5-1e8a91c813e39b6f1b9f988431bb65c8"}},
-{"id":"udon","key":"udon","value":{"rev":"3-9a819e835f88fc91272b6366c70d83c0"}},
-{"id":"ueberDB","key":"ueberDB","value":{"rev":"85-fa700e5a64efaf2e71de843d7175606c"}},
-{"id":"uglify-js","key":"uglify-js","value":{"rev":"30-9ac97132a90f94b0a3aadcd96ed51890"}},
-{"id":"uglify-js-middleware","key":"uglify-js-middleware","value":{"rev":"5-47bd98d7f1118f5cab617310d4022eb4"}},
-{"id":"uglifycss","key":"uglifycss","value":{"rev":"3-4eefc4632e6e61ec999e93a1e26e0c83"}},
-{"id":"ui","key":"ui","value":{"rev":"27-b6439c8fcb5feb1d8f722ac5a91727c0"}},
-{"id":"ukijs","key":"ukijs","value":{"rev":"13-a0d7b143104e6cc0760cbe7e61c4f293"}},
-{"id":"umecob","key":"umecob","value":{"rev":"19-960fef8b8b8468ee69096173baa63232"}},
-{"id":"underscore","key":"underscore","value":{"rev":"29-419857a1b0dc08311717d1f6066218b8"}},
-{"id":"underscore-data","key":"underscore-data","value":{"rev":"17-e763dd42ea6e4ab71bc442e9966e50e4"}},
-{"id":"underscore.date","key":"underscore.date","value":{"rev":"11-a1b5870b855d49a3bd37823a736e9f93"}},
-{"id":"underscore.inspector","key":"underscore.inspector","value":{"rev":"7-04d67b5bfe387391d461b11c6ddda231"}},
-{"id":"underscore.string","key":"underscore.string","value":{"rev":"31-4100a9e1f1d7e8dde007cc6736073e88"}},
-{"id":"underscorem","key":"underscorem","value":{"rev":"5-181dd113e62482020122e6a68f80cdc1"}},
-{"id":"underscorex","key":"underscorex","value":{"rev":"8-76b82cffecd4304822fbc346e6cebc1b"}},
-{"id":"underscorify","key":"underscorify","value":{"rev":"3-7bb03dccba21d30c50328e7d4878704e"}},
-{"id":"unicode","key":"unicode","value":{"rev":"45-2fc73b36aad2661e5bb2e703e62a6f71"}},
-{"id":"unicoder","key":"unicoder","value":{"rev":"3-6f6571d361217af7fea7c224ca8a1149"}},
-{"id":"unit","key":"unit","value":{"rev":"5-68847eeb11474765cf73f1e21ca4b839"}},
-{"id":"unite","key":"unite","value":{"rev":"3-a8812f4e77d1d1a9dc67c327d8e75b47"}},
-{"id":"unittest-jslint","key":"unittest-jslint","value":{"rev":"3-c371c63c7b68a32357becb7b6a02d048"}},
-{"id":"unixlib","key":"unixlib","value":{"rev":"3-41f4c2859ca92951cf40556faa4eacdb"}},
-{"id":"unlimit","key":"unlimit","value":{"rev":"3-f42d98066e6ebbc23ef67499845ac020"}},
-{"id":"unrequire","key":"unrequire","value":{"rev":"17-bc75241891ae005eb52844222daf8f97"}},
-{"id":"unshortener","key":"unshortener","value":{"rev":"15-0851cb8bc3c378c37a3df9760067a109"}},
-{"id":"unused","key":"unused","value":{"rev":"3-362e713349c4a5541564fa2de33d01ba"}},
-{"id":"upload","key":"upload","value":{"rev":"3-63aedcfb335754c3bca1675c4add51c4"}},
-{"id":"ups_node","key":"ups_node","value":{"rev":"15-fa6d0be3831ee09420fb703c4d508534"}},
-{"id":"upy","key":"upy","value":{"rev":"5-dab63054d02be71f9c2709659974a5e1"}},
-{"id":"uri","key":"uri","value":{"rev":"3-5baaa12433cff7539b1d39c0c7f62853"}},
-{"id":"uri-parser","key":"uri-parser","value":{"rev":"3-d7e81b08e8b3f6f5ac8c6b4220228529"}},
-{"id":"url","key":"url","value":{"rev":"3-0dfd5ec2904cb1f645fa7449dbb0ce52"}},
-{"id":"url-expander","key":"url-expander","value":{"rev":"21-73bf9fa3c98b15d5ef0ed9815d862953"}},
-{"id":"urllib","key":"urllib","value":{"rev":"5-b015944526c15589a1504d398dcb598a"}},
-{"id":"urn-parser","key":"urn-parser","value":{"rev":"3-08a35a166790ecf88729befd4ebc7bf1"}},
-{"id":"useless","key":"useless","value":{"rev":"3-9d7b7ab9d4811847ed6e99ce2226d687"}},
-{"id":"user-agent","key":"user-agent","value":{"rev":"16-ac00f085795346421242e3d4d75523ad"}},
-{"id":"useragent","key":"useragent","value":{"rev":"7-3184d8aba5540e6596da9e3635ee3c24"}},
-{"id":"useragent_parser","key":"useragent_parser","value":{"rev":"3-730427aba3f0825fd28850e96b1613d4"}},
-{"id":"utf7","key":"utf7","value":{"rev":"3-ad56e4c9ac5a509ff568a3cdf0ed074f"}},
-{"id":"utf8","key":"utf8","value":{"rev":"3-c530cad759dd6e4e471338a71a307434"}},
-{"id":"util","key":"util","value":{"rev":"3-0e55e3466bc3ea6aeda6384639e842c3"}},
-{"id":"utility-belt","key":"utility-belt","value":{"rev":"3-8de401b41ef742b3c0a144b99099771f"}},
-{"id":"utml","key":"utml","value":{"rev":"5-5f0f3de6f787056bd124ca98716fbc19"}},
-{"id":"uubench","key":"uubench","value":{"rev":"6-b6cb0756e35ce998b61bb9a6ea0f5732"}},
-{"id":"uuid","key":"uuid","value":{"rev":"13-3f014b236668ec5eb49d0a17ad54d397"}},
-{"id":"uuid-lib","key":"uuid-lib","value":{"rev":"3-3de40495439e240b5a41875c19c65b1a"}},
-{"id":"uuid-pure","key":"uuid-pure","value":{"rev":"19-b94e9f434901fe0a0bbfdfa06f785874"}},
-{"id":"uuid.js","key":"uuid.js","value":{"rev":"8-3232a97c9f4a2b601d207488350df01b"}},
-{"id":"v8-profiler","key":"v8-profiler","value":{"rev":"12-790c90391bcbec136e316e57b30a845c"}},
-{"id":"valentine","key":"valentine","value":{"rev":"35-dd4b0642aacaf833e1119fc42bb6e9df"}},
-{"id":"validate-json","key":"validate-json","value":{"rev":"5-6a71fb36b102b3a4c5f6cc35012518b3"}},
-{"id":"validations","key":"validations","value":{"rev":"5-7272c97d35e3269813d91f1ea06e7217"}},
-{"id":"validator","key":"validator","value":{"rev":"45-9983ff692c291143ba670b613e07ddab"}},
-{"id":"vanilla","key":"vanilla","value":{"rev":"3-2e1d05af0873386b7cd6d432f1e76217"}},
-{"id":"vapor","key":"vapor","value":{"rev":"1-e1f86f03c94a4b90bca347408dbc56ff"}},
-{"id":"vargs","key":"vargs","value":{"rev":"6-9e389cfd648034dd469348112eedb23b"}},
-{"id":"vash","key":"vash","value":{"rev":"9-85ade8b7249a0e8230e8f0aaf1c34e2a"}},
-{"id":"vbench","key":"vbench","value":{"rev":"3-059528251a566c6ac363e236212448ce"}},
-{"id":"vendor.js","key":"vendor.js","value":{"rev":"5-264b0f8a771cad113be6919b6004ff95"}},
-{"id":"ventstatus","key":"ventstatus","value":{"rev":"3-16aa39e22b149b23b64317991415f92c"}},
-{"id":"version-compare","key":"version-compare","value":{"rev":"3-a8d6eea31572fe973ddd98c0a8097bc6"}},
-{"id":"vertica","key":"vertica","value":{"rev":"37-035d50183c3ad3056db0d7a13c20005d"}},
-{"id":"vhost","key":"vhost","value":{"rev":"9-53bbdba14dae631a49e782d169e4fc5a"}},
-{"id":"vice","key":"vice","value":{"rev":"5-0f74600349f4540b1b104d4ebfec1309"}},
-{"id":"video","key":"video","value":{"rev":"10-65c0b603047188fe2b07cbd2e1c93fe7"}},
-{"id":"vie","key":"vie","value":{"rev":"5-94e23770c5a0510480a0bae07d846ebc"}},
-{"id":"view","key":"view","value":{"rev":"21-a2abdfc54ab732a906347090c68564a5"}},
-{"id":"vigilante","key":"vigilante","value":{"rev":"30-951541a8b2fc2364bb1ccd7cfae56482"}},
-{"id":"villain","key":"villain","value":{"rev":"10-8dbfc5db42230d8813e6cc61af14d575"}},
-{"id":"vine","key":"vine","value":{"rev":"17-e7ac5d190cacf0f2d17d27e37b2b9f5f"}},
-{"id":"vipe","key":"vipe","value":{"rev":"3-78996531221e08292b9ca3de6e19d578"}},
-{"id":"viralheat","key":"viralheat","value":{"rev":"3-b928ce797fd5955c766b6b7e9e9c8f54"}},
-{"id":"viralheat-sentiment","key":"viralheat-sentiment","value":{"rev":"3-5d083e0d141ecf36e06c7c2885b01b5c"}},
-{"id":"virustotal.js","key":"virustotal.js","value":{"rev":"3-074be49f7e877b154a2144ef844f78e9"}},
-{"id":"vk","key":"vk","value":{"rev":"9-48f53ea9ebe68c9d3af45eb601c71006"}},
-{"id":"vmcjs","key":"vmcjs","value":{"rev":"5-44d8dd906fa3530d2bfc2dfee7f498d4"}},
-{"id":"vogue","key":"vogue","value":{"rev":"38-891354d18638a26d5b5ba95933faae0e"}},
-{"id":"vogue-dtrejo","key":"vogue-dtrejo","value":{"rev":"3-3ef8d57d3b5c0aca297fe38c9040954f"}},
-{"id":"votizen-logger","key":"votizen-logger","value":{"rev":"4-ba0837a28693aba346fab885a3a8f315"}},
-{"id":"vows","key":"vows","value":{"rev":"80-43d6a81c184c06d73e692358e913821e"}},
-{"id":"vows-bdd","key":"vows-bdd","value":{"rev":"3-dc2a7013dd94b0b65a3ed3a8b69b680e"}},
-{"id":"vows-ext","key":"vows-ext","value":{"rev":"49-079067a01a681ca7df4dfaae74adb3fb"}},
-{"id":"vows-fluent","key":"vows-fluent","value":{"rev":"23-67625a035cedf90c8fed73722465ecea"}},
-{"id":"vows-is","key":"vows-is","value":{"rev":"68-45a13df422d08ab00cc8f785b6411741"}},
-{"id":"voyeur","key":"voyeur","value":{"rev":"5-56fe23f95df6ff648b67f1a9baf10d41"}},
-{"id":"vws.pubsub","key":"vws.pubsub","value":{"rev":"5-609497d66ab6a76c5201904e41b95715"}},
-{"id":"wabtools","key":"wabtools","value":{"rev":"7-b24cd7262720a29f59da103b7110325d"}},
-{"id":"wadey-ranger","key":"wadey-ranger","value":{"rev":"17-a0541bad0880ffc199e8b2ef4c80ddb8"}},
-{"id":"wagner","key":"wagner","value":{"rev":"3-4b76219928f409b7124e02c0518d6cb6"}},
-{"id":"wait","key":"wait","value":{"rev":"3-7f8a5f9c8e86da4f219353ae778868a9"}},
-{"id":"waiter","key":"waiter","value":{"rev":"5-680176b06719c9a8499725b0a617cdc9"}},
-{"id":"waitlist","key":"waitlist","value":{"rev":"17-f3b2a4cf58b940c3839debda23c12b8e"}},
-{"id":"wake_on_lan","key":"wake_on_lan","value":{"rev":"6-1295bb5c618495b74626aaaa1c644d32"}},
-{"id":"walk","key":"walk","value":{"rev":"22-c05e1e1252a59b1048a0b6464631d08b"}},
-{"id":"walker","key":"walker","value":{"rev":"18-e8a20efc286234fb20789dc68cd04cd1"}},
-{"id":"warp","key":"warp","value":{"rev":"19-c7f17d40291984cd27f1d57fe764a5d2"}},
-{"id":"watch","key":"watch","value":{"rev":"18-3bc43d36ea1dbf69b93d4ea3d9534d44"}},
-{"id":"watch-less","key":"watch-less","value":{"rev":"5-f69a778ee58c681ad3b24a766576c016"}},
-{"id":"watch-tree","key":"watch-tree","value":{"rev":"5-316b60e474c3ae6e97f7cdb06b65af78"}},
-{"id":"watch.js","key":"watch.js","value":{"rev":"11-8c02c7429f90ca5e756a131d85bd5a32"}},
-{"id":"watch_dir","key":"watch_dir","value":{"rev":"5-df0a592508e1e13f5d24c2863733a8b9"}},
-{"id":"watchable","key":"watchable","value":{"rev":"3-f8694ff0c3add9a1310f0980e24ea23b"}},
-{"id":"watchersto","key":"watchersto","value":{"rev":"5-06665e682f58f61831d41d08b4ea12e7"}},
-{"id":"watchman","key":"watchman","value":{"rev":"11-956ad2175d0c5b52e82988a697474244"}},
-{"id":"watchn","key":"watchn","value":{"rev":"15-9685afa8b501f8cd7e068beed1264cfe"}},
-{"id":"wave","key":"wave","value":{"rev":"7-d13054ac592b3b4f81147b6bc7a91ea1"}},
-{"id":"wax","key":"wax","value":{"rev":"71-2e8877b0b6df27c1375dcd7f6bbdb4b7"}},
-{"id":"waz-storage-js","key":"waz-storage-js","value":{"rev":"15-1aaa07353c3d25f5794fa004a23c4dfa"}},
-{"id":"wd","key":"wd","value":{"rev":"19-20c4ee8b83057ece691f9669e288059e"}},
-{"id":"weak","key":"weak","value":{"rev":"3-b774b8be74f33c843df631aa07854104"}},
-{"id":"web","key":"web","value":{"rev":"3-c571dee306020f6f92c7a3150e8023b1"}},
-{"id":"webapp","key":"webapp","value":{"rev":"5-60525be5734cf1d02a77508e5f46bafa"}},
-{"id":"webfonts","key":"webfonts","value":{"rev":"5-d7be242801702fd1eb728385b8982107"}},
-{"id":"webgenjs","key":"webgenjs","value":{"rev":"3-ac6be47eedcbb2561babdb9495d60f29"}},
-{"id":"webgl","key":"webgl","value":{"rev":"18-21cd40f6c7e4943a2d858ed813d3c45d"}},
-{"id":"webhookit-comment","key":"webhookit-comment","value":{"rev":"5-1fbed3d75bf485433bdcac4fac625eab"}},
-{"id":"webhookit-ejs","key":"webhookit-ejs","value":{"rev":"5-9b76f543e9c0941d0245cb3bfd2cc64e"}},
-{"id":"webhookit-email","key":"webhookit-email","value":{"rev":"5-d472fde4f101d55d029a29777bbdb952"}},
-{"id":"webhookit-http","key":"webhookit-http","value":{"rev":"13-9f6f05cdb03f45a2227b9cd820565e63"}},
-{"id":"webhookit-jsonparse","key":"webhookit-jsonparse","value":{"rev":"3-6d49bf8a9849130d9bbc5b0d6fb0bf67"}},
-{"id":"webhookit-jsonpath","key":"webhookit-jsonpath","value":{"rev":"5-7acaf50267274584dca1cc5c1e77ce2e"}},
-{"id":"webhookit-objectbuilder","key":"webhookit-objectbuilder","value":{"rev":"5-e63fb26621929f3ab8d8519556116b30"}},
-{"id":"webhookit-soupselect","key":"webhookit-soupselect","value":{"rev":"9-726f2f4794437632032058bc81e6ee5d"}},
-{"id":"webhookit-xml2js","key":"webhookit-xml2js","value":{"rev":"3-ec959e474ecb3a163f2991767594a60e"}},
-{"id":"webhookit-yql","key":"webhookit-yql","value":{"rev":"9-c6ae87a8cc55d33901485ee7c3895ef8"}},
-{"id":"webify","key":"webify","value":{"rev":"3-86810874abf2274d1387ee748987b627"}},
-{"id":"webjs","key":"webjs","value":{"rev":"103-593a1e4e69d8db6284ecf4fce01b4668"}},
-{"id":"webmake","key":"webmake","value":{"rev":"13-f6588093a487212a151d1c00c26de7b4"}},
-{"id":"webmetrics","key":"webmetrics","value":{"rev":"3-44a428fd2ecb1b1bf50c33157750dd16"}},
-{"id":"webrepl","key":"webrepl","value":{"rev":"21-d6dcdbb59186092d9a0f1977c69394a5"}},
-{"id":"webservice","key":"webservice","value":{"rev":"18-05038f1cf997cff1ed81e783485680aa"}},
-{"id":"webshell","key":"webshell","value":{"rev":"3-05c431cf961a9dbaee1dfd95237e189a"}},
-{"id":"websocket","key":"websocket","value":{"rev":"33-7c20d55a88f187d7b398525824159f67"}},
-{"id":"websocket-client","key":"websocket-client","value":{"rev":"12-26a3530b9e6d465f472c791db01c9fc3"}},
-{"id":"websocket-protocol","key":"websocket-protocol","value":{"rev":"3-e52a8496f70686c289087149aee8b359"}},
-{"id":"websocket-server","key":"websocket-server","value":{"rev":"46-9f69e2f9408eb196b3a1aa990e5b5ac2"}},
-{"id":"websockets","key":"websockets","value":{"rev":"3-5535fcb4ae144909f021ee067eec7b2a"}},
-{"id":"webworker","key":"webworker","value":{"rev":"16-f7a4c758b176c6e464c93b6a9f79283b"}},
-{"id":"weibo","key":"weibo","value":{"rev":"21-8a50310389b2f43d8a7cb14e138eb122"}},
-{"id":"weld","key":"weld","value":{"rev":"7-16601ac41d79b3a01e4d2615035376ed"}},
-{"id":"whatlang","key":"whatlang","value":{"rev":"5-f7b10a0f8c3b6579c81d1d1222aeccd7"}},
-{"id":"wheat","key":"wheat","value":{"rev":"16-f6a97282f521edb7f2b0e5edc9577ce0"}},
-{"id":"which","key":"which","value":{"rev":"7-e5fdcb208715f2201d3911caf8a67042"}},
-{"id":"whiskers","key":"whiskers","value":{"rev":"9-2cfd73cebeaf8ce3cb1591e825380621"}},
-{"id":"whiskey","key":"whiskey","value":{"rev":"49-55367718b9067ff2bcb7fbb89327587b"}},
-{"id":"whisperjs","key":"whisperjs","value":{"rev":"19-e2182c72ea24b8c40e12b0c1027eb60d"}},
-{"id":"wikimapia","key":"wikimapia","value":{"rev":"11-8d1a314e8c827236e21e0aabc6e5efd9"}},
-{"id":"wikiminute","key":"wikiminute","value":{"rev":"11-d031a2c7d41bcecb52ac9c7bb5e75e8e"}},
-{"id":"wikiwym","key":"wikiwym","value":{"rev":"3-c0fd4c9b6b93b3a8b14021c2ebae5b0c"}},
-{"id":"wiky","key":"wiky","value":{"rev":"6-be49acce152652e9219a32da1dfd01ea"}},
-{"id":"wildfile","key":"wildfile","value":{"rev":"9-16a05032f890f07c72a5f48c3a6ffbc0"}},
-{"id":"willful.js","key":"willful.js","value":{"rev":"3-3bb957b0a5fc1b4b6c15bace7e8f5902"}},
-{"id":"wilson","key":"wilson","value":{"rev":"14-d4bf88484f1b1cf86b07f4b74f26991d"}},
-{"id":"window","key":"window","value":{"rev":"3-ea84e74fd5556ff662ff47f40522cfa2"}},
-{"id":"windshaft","key":"windshaft","value":{"rev":"21-1d31e4eb7482d15b97c919a4b051ea9c"}},
-{"id":"windtunnel","key":"windtunnel","value":{"rev":"5-0d2ef7faed1b221a3eaa581480adad64"}},
-{"id":"wingrr","key":"wingrr","value":{"rev":"9-a599fad3e0c74895aa266c61805b76cb"}},
-{"id":"wings","key":"wings","value":{"rev":"3-cfcfd262d905cd3be1d1bae82fafd9f0"}},
-{"id":"winston","key":"winston","value":{"rev":"111-13acba5a9ba6d4f19469acb4122d72ea"}},
-{"id":"winston-amqp","key":"winston-amqp","value":{"rev":"5-61408e1dde45f974a995dd27905b8831"}},
-{"id":"winston-mongodb","key":"winston-mongodb","value":{"rev":"9-ae755237a8faa8f5a0b92029c236691a"}},
-{"id":"winston-redis","key":"winston-redis","value":{"rev":"3-1fb861edc109ed5cbd735320124ba103"}},
-{"id":"winston-riak","key":"winston-riak","value":{"rev":"15-3f2923a73386524d851244ace1bece98"}},
-{"id":"winston-syslog","key":"winston-syslog","value":{"rev":"9-7f256bd63aebec19edea47f80de21dfd"}},
-{"id":"winstoon","key":"winstoon","value":{"rev":"9-d719ca7abfeeaa468d1b431c24836089"}},
-{"id":"wirez","key":"wirez","value":{"rev":"5-5c5d0768485ed11c2b80a8a6a3699c39"}},
-{"id":"wobot","key":"wobot","value":{"rev":"9-176ed86fd9d94a7e94efb782c7512533"}},
-{"id":"word-generator","key":"word-generator","value":{"rev":"5-a2c67f11474a8925eb67f04369ac068a"}},
-{"id":"wordnik","key":"wordnik","value":{"rev":"3-4e371fbf7063ced50bbe726079fda1ec"}},
-{"id":"wordpress-auth","key":"wordpress-auth","value":{"rev":"5-05eef01542e00a88418d2885efb4c9ad"}},
-{"id":"wordwrap","key":"wordwrap","value":{"rev":"5-a728ce2cdeab69b71d40fe7c1c41d7c1"}},
-{"id":"wordy","key":"wordy","value":{"rev":"3-bc220ca3dbd008aee932c551cfbdcc6b"}},
-{"id":"worker","key":"worker","value":{"rev":"6-3b03aa764c9fac66ec5c1773e9abc43b"}},
-{"id":"worker-pool","key":"worker-pool","value":{"rev":"3-e3550e704b48f5799a4cc02af7d27355"}},
-{"id":"workflow","key":"workflow","value":{"rev":"3-817c6c77cbb2f332ea9bdddf3b565c00"}},
-{"id":"workhorse","key":"workhorse","value":{"rev":"30-c39ae2ddd867a137073a289c1709f229"}},
-{"id":"world-db","key":"world-db","value":{"rev":"6-eaef1beb6abbebd3e903a28a7f46aa81"}},
-{"id":"worm","key":"worm","value":{"rev":"7-00db15dc9cfd48777cce32fb93e1df6b"}},
-{"id":"wormhole","key":"wormhole","value":{"rev":"37-21e2db062666040c477a7042fc2ffc9d"}},
-{"id":"wrap","key":"wrap","value":{"rev":"3-aded14c091b730813bd24d92cae45cd6"}},
-{"id":"wrench","key":"wrench","value":{"rev":"12-57d3da63e34e59e1f5d1b3bde471e31f"}},
-{"id":"wsclient","key":"wsclient","value":{"rev":"17-f962faf4f6c9d4eda9111e90b2d0735d"}},
-{"id":"wscomm","key":"wscomm","value":{"rev":"47-80affda45da523e57c87b8d43ef73ec9"}},
-{"id":"wsscraper","key":"wsscraper","value":{"rev":"3-94a84fe9b3df46b8d6ad4851e389dae1"}},
-{"id":"wu","key":"wu","value":{"rev":"4-f307d3a00e7a1212b7949bcb96161088"}},
-{"id":"wunderapi","key":"wunderapi","value":{"rev":"17-31e3b991e97931022992b97f9441b9af"}},
-{"id":"wurfl-client","key":"wurfl-client","value":{"rev":"3-a8c3e454d6d9c9b23b7290eb64866e80"}},
-{"id":"wwwdude","key":"wwwdude","value":{"rev":"19-eb8192461b8864af59740f9b44e168ca"}},
-{"id":"x","key":"x","value":{"rev":"9-10403358980aba239b7a9af78175589d"}},
-{"id":"x-core","key":"x-core","value":{"rev":"13-f04b063855da231539d1945a35802d9e"}},
-{"id":"x11","key":"x11","value":{"rev":"5-e5b1435c0aa29207c90fdeaa87570bb7"}},
-{"id":"xappy-async_testing","key":"xappy-async_testing","value":{"rev":"3-747c934540267492b0e6d3bb6d65964c"}},
-{"id":"xappy-pg","key":"xappy-pg","value":{"rev":"4-119e8f93af1e4976900441ec5e3bb0b9"}},
-{"id":"xcbjs","key":"xcbjs","value":{"rev":"3-095a693f9ac7b4e2c319f79d95eb3e95"}},
-{"id":"xemplar","key":"xemplar","value":{"rev":"9-2ccde68ffac8e66aa8013b98d82ff20c"}},
-{"id":"xfer","key":"xfer","value":{"rev":"3-c1875506ed132c6a2b5e7d7eaff9df14"}},
-{"id":"xjs","key":"xjs","value":{"rev":"11-05d5cd002298894ed582a9f5bff5a762"}},
-{"id":"xjst","key":"xjst","value":{"rev":"11-68774970fc7f413ff620fb0d50d8a1d9"}},
-{"id":"xkcdbot","key":"xkcdbot","value":{"rev":"3-7cc9affb442c9ae4c7a109a0b72c2600"}},
-{"id":"xml","key":"xml","value":{"rev":"12-0d1a69f11767de47bfc4a0fce566e36e"}},
-{"id":"xml-markup","key":"xml-markup","value":{"rev":"6-100a92d1f7fe9444e285365dce8203de"}},
-{"id":"xml-simple","key":"xml-simple","value":{"rev":"3-d60e388df5b65128a5e000381643dd31"}},
-{"id":"xml-stream","key":"xml-stream","value":{"rev":"13-44d6ee47e00c91735e908e69c5dffc6b"}},
-{"id":"xml2js","key":"xml2js","value":{"rev":"27-434297bcd9db7628c57fcc9bbbe2671e"}},
-{"id":"xml2js-expat","key":"xml2js-expat","value":{"rev":"15-a8c5c0ba64584d07ed94c0a14dc55fe8"}},
-{"id":"xml2json","key":"xml2json","value":{"rev":"17-fa740417285834be1aa4d95e1ed6d9b9"}},
-{"id":"xmlbuilder","key":"xmlbuilder","value":{"rev":"32-63e3be32dda07c6e998866cddd8a879e"}},
-{"id":"xmlhttprequest","key":"xmlhttprequest","value":{"rev":"9-570fba8bfd5b0958c258cee7309c4b54"}},
-{"id":"xmlrpc","key":"xmlrpc","value":{"rev":"15-ae062e34a965e7543d4fd7b6c3f29cb7"}},
-{"id":"xmpp-client","key":"xmpp-client","value":{"rev":"6-2d123b4666b5deda71f071295cfca793"}},
-{"id":"xmpp-muc","key":"xmpp-muc","value":{"rev":"6-d95b8bca67f406a281a27aa4d89f6f46"}},
-{"id":"xmpp-server","key":"xmpp-server","value":{"rev":"9-44374bc3398cc74f2a36ff973fa0d35f"}},
-{"id":"xp","key":"xp","value":{"rev":"7-781a5e1da74332f25c441f627cd0b4ea"}},
-{"id":"xregexp","key":"xregexp","value":{"rev":"3-c34025fdeb13c18389e737a4b3d4ddf7"}},
-{"id":"xsd","key":"xsd","value":{"rev":"5-566590ccb8923453175a3f1f3b6cbf24"}},
-{"id":"ya-csv","key":"ya-csv","value":{"rev":"28-d485b812914b3c3f5d7e9c4bcee0c3ea"}},
-{"id":"yabble","key":"yabble","value":{"rev":"5-5370a53003a122fe40a16ed2b0e5cead"}},
-{"id":"yaconfig","key":"yaconfig","value":{"rev":"3-f82a452260b010cc5128818741c46017"}},
-{"id":"yah","key":"yah","value":{"rev":"3-cfc0c10f85a9e3076247ca350077e90f"}},
-{"id":"yajet","key":"yajet","value":{"rev":"5-6f7f24335436c84081adf0bbb020b151"}},
-{"id":"yajl","key":"yajl","value":{"rev":"3-8ac011e5a00368aad8d58d95a64c7254"}},
-{"id":"yaml","key":"yaml","value":{"rev":"16-732e5cb6dc10eefeb7dae959e677fb5b"}},
-{"id":"yaml-config","key":"yaml-config","value":{"rev":"3-fb817000005d48526a106ecda5ac5435"}},
-{"id":"yamlish","key":"yamlish","value":{"rev":"3-604fb4f1de9d5aa5ed48432c7db4a8a1"}},
-{"id":"yamlparser","key":"yamlparser","value":{"rev":"13-130a82262c7f742c2a1e26fc58983503"}},
-{"id":"yammer-js","key":"yammer-js","value":{"rev":"3-16ec240ab0b26fa9f0513ada8c769c1f"}},
-{"id":"yanc","key":"yanc","value":{"rev":"15-33d713f0dee42efe8306e6b2a43fe336"}},
-{"id":"yanlibs","key":"yanlibs","value":{"rev":"3-e481217d43b9f79b80e22538eabadabc"}},
-{"id":"yanop","key":"yanop","value":{"rev":"5-6c407ce6f1c18b6bac37ad5945ff8fed"}},
-{"id":"yanx","key":"yanx","value":{"rev":"6-f4c4d255526eaa922baa498f37d38fe0"}},
-{"id":"yasession","key":"yasession","value":{"rev":"7-6e2598123d41b33535b88e99eb87828f"}},
-{"id":"yelp","key":"yelp","value":{"rev":"3-5c769f488a65addba313ff3b6256c365"}},
-{"id":"yeti","key":"yeti","value":{"rev":"50-65338f573ed8f799ec9b1c9bd2643e34"}},
-{"id":"youtube","key":"youtube","value":{"rev":"7-5020698499af8946e9578864a21f6ac5"}},
-{"id":"youtube-dl","key":"youtube-dl","value":{"rev":"76-a42f09b7bf87e7e6157d5d9835cca8a7"}},
-{"id":"youtube-js","key":"youtube-js","value":{"rev":"5-e2d798a185490ad98cb57c2641c4658e"}},
-{"id":"yproject","key":"yproject","value":{"rev":"7-70cb1624de9e8321c67f1f348dc80ff4"}},
-{"id":"yql","key":"yql","value":{"rev":"18-d19123b254abfb097648c4a242513fd3"}},
-{"id":"yubico","key":"yubico","value":{"rev":"9-0e2bd84479a68e1f12c89800a4049053"}},
-{"id":"yui-cli","key":"yui-cli","value":{"rev":"7-0186f7278da8734861109799b9123197"}},
-{"id":"yui-compressor","key":"yui-compressor","value":{"rev":"12-5804d78bb24bb2d3555ca2e28ecc6b70"}},
-{"id":"yui-repl","key":"yui-repl","value":{"rev":"25-9b202e835a46a07be931e6529a4ccb61"}},
-{"id":"yui3","key":"yui3","value":{"rev":"93-4decc441f19acf0ab5abd1a81e3cbb40"}},
-{"id":"yui3-2in3","key":"yui3-2in3","value":{"rev":"10-dc0429fe818aceeca80d075613c9547a"}},
-{"id":"yui3-bare","key":"yui3-bare","value":{"rev":"33-60779e2088efe782b437ecc053c01e2f"}},
-{"id":"yui3-base","key":"yui3-base","value":{"rev":"33-89017bb5dfde621fc7d179f2939e3d1b"}},
-{"id":"yui3-core","key":"yui3-core","value":{"rev":"17-3759fa0072e24f4bb29e22144cb3dda3"}},
-{"id":"yui3-gallery","key":"yui3-gallery","value":{"rev":"38-9ce6f7a60b2f815337767249d1827951"}},
-{"id":"yui3-mocha","key":"yui3-mocha","value":{"rev":"3-83ff9c42a37f63de0c132ce6cb1ad282"}},
-{"id":"yuitest","key":"yuitest","value":{"rev":"17-b5dd4ad4e82b6b310d7a6e9103570779"}},
-{"id":"zap","key":"zap","value":{"rev":"15-9b9b7c6badb0a9fd9d469934e9be12c0"}},
-{"id":"zappa","key":"zappa","value":{"rev":"26-d193767b488e778db41455924001b1fb"}},
-{"id":"zen","key":"zen","value":{"rev":"7-23a260d4379816a5c931c2e823bda1ae"}},
-{"id":"zeppelin","key":"zeppelin","value":{"rev":"7-9db2e313fe323749e259be91edcdee8e"}},
-{"id":"zeromq","key":"zeromq","value":{"rev":"24-7cb4cec19fb3a03871900ac3558fcbef"}},
-{"id":"zest","key":"zest","value":{"rev":"5-080a2a69a93d66fcaae0da7ddaa9ceab"}},
-{"id":"zest-js","key":"zest-js","value":{"rev":"5-541454063618fa3a9d6f44e0147ea622"}},
-{"id":"zip","key":"zip","value":{"rev":"11-443da314322b6a1a93b40a38124610f2"}},
-{"id":"zipfile","key":"zipfile","value":{"rev":"32-e846d29fc615e8fbc610f44653a1e085"}},
-{"id":"zipper","key":"zipper","value":{"rev":"5-cde0a4a7f03c139dcd779f3ede55bd0e"}},
-{"id":"zippy","key":"zippy","value":{"rev":"7-3906ca62dd8020e9673a7c229944bd3f"}},
-{"id":"zipwith","key":"zipwith","value":{"rev":"3-58c50c6220d6493047f8333c5db22cc9"}},
-{"id":"zlib","key":"zlib","value":{"rev":"27-e0443f2d9a0c9db31f86a6c5b9ba78ba"}},
-{"id":"zlib-sync","key":"zlib-sync","value":{"rev":"3-b17a39dd23b3455d35ffd862004ed677"}},
-{"id":"zlibcontext","key":"zlibcontext","value":{"rev":"11-1c0c6b34e87adab1b6d5ee60be6a608c"}},
-{"id":"zlibstream","key":"zlibstream","value":{"rev":"5-44e30d87de9aaaa975c64d8dcdcd1a94"}},
-{"id":"zmq","key":"zmq","value":{"rev":"7-eae5d939fcdb7be5edfb328aefeaba4e"}},
-{"id":"zo","key":"zo","value":{"rev":"5-956f084373731805e5871f4716049529"}},
-{"id":"zombie","key":"zombie","value":{"rev":"109-9eec325353a47bfcc32a94719bf147da"}},
-{"id":"zombie-https","key":"zombie-https","value":{"rev":"3-6aff25d319be319343882575acef4890"}},
-{"id":"zoneinfo","key":"zoneinfo","value":{"rev":"15-d95d2041324d961fe26a0217cf485511"}},
-{"id":"zookeeper","key":"zookeeper","value":{"rev":"11-5a5ed278a01e4b508ffa6e9a02059898"}},
-{"id":"zoom","key":"zoom","value":{"rev":"3-9d0277ad580d64c9a4d48a40d22976f0"}},
-{"id":"zsock","key":"zsock","value":{"rev":"16-4f975b91f0f9c2d2a2501e362401c368"}},
-{"id":"zutil","key":"zutil","value":{"rev":"9-3e7bc6520008b4fcd5ee6eb9e8e5adf5"}}
-]}
diff --git a/node_modules/JSONStream/test/fixtures/couch_sample.json b/node_modules/JSONStream/test/fixtures/couch_sample.json
deleted file mode 100644
index b154c86..0000000
--- a/node_modules/JSONStream/test/fixtures/couch_sample.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{"total_rows":129,"offset":0,"rows":[
- { "id":"change1_0.6995461115147918"
- , "key":"change1_0.6995461115147918"
- , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}
- , "doc":{
- "_id": "change1_0.6995461115147918"
- , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}
- },
- { "id":"change2_0.6995461115147918"
- , "key":"change2_0.6995461115147918"
- , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}
- , "doc":{
- "_id":"change2_0.6995461115147918"
- , "_rev":"1-13677d36b98c0c075145bb8975105153"
- , "hello":2
- }
- },
-]}
diff --git a/node_modules/JSONStream/test/fixtures/depth.json b/node_modules/JSONStream/test/fixtures/depth.json
deleted file mode 100644
index 9b4bfb9..0000000
--- a/node_modules/JSONStream/test/fixtures/depth.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "total": 5,
- "docs": [
- {
- "key": {
- "value": 0,
- "some": "property"
- }
- },
- {"value": [1]},
- {"value": {"a":2}},
- {"blbl": [{}, {"a":0, "b":1, "value":"3"}, 10]},
- {"value": 4}
- ]
-}
diff --git a/node_modules/JSONStream/test/fixtures/error.json b/node_modules/JSONStream/test/fixtures/error.json
deleted file mode 100644
index 9736f3e..0000000
--- a/node_modules/JSONStream/test/fixtures/error.json
+++ /dev/null
@@ -1 +0,0 @@
-{"error": "error_code", "message": "this is an error message"}
diff --git a/node_modules/JSONStream/test/fixtures/header_footer.json b/node_modules/JSONStream/test/fixtures/header_footer.json
deleted file mode 100644
index 6e4694d..0000000
--- a/node_modules/JSONStream/test/fixtures/header_footer.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{"total_rows":129,"offset":0,"rows":[
- { "id":"change1_0.6995461115147918"
- , "key":"change1_0.6995461115147918"
- , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}
- , "doc":{
- "_id": "change1_0.6995461115147918"
- , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}
- },
- { "id":"change2_0.6995461115147918"
- , "key":"change2_0.6995461115147918"
- , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}
- , "doc":{
- "_id":"change2_0.6995461115147918"
- , "_rev":"1-13677d36b98c0c075145bb8975105153"
- , "hello":2
- }
- }
-],
-"foo": {"bar": "baz"}}
diff --git a/node_modules/JSONStream/test/fn.js b/node_modules/JSONStream/test/fn.js
deleted file mode 100644
index 4acc672..0000000
--- a/node_modules/JSONStream/test/fn.js
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','all_npm.json')
- , JSONStream = require('../')
- , it = require('it-is')
-
-function fn (s) {
- return !isNaN(parseInt(s, 10))
-}
-
-var expected = JSON.parse(fs.readFileSync(file))
- , parser = JSONStream.parse(['rows', fn])
- , called = 0
- , ended = false
- , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-
-parser.on('data', function (data) {
- called ++
- it.has({
- id: it.typeof('string'),
- value: {rev: it.typeof('string')},
- key:it.typeof('string')
- })
- parsed.push(data)
-})
-
-parser.on('end', function () {
- ended = true
-})
-
-process.on('exit', function () {
- it(called).equal(expected.rows.length)
- it(parsed).deepEqual(expected.rows)
- console.error('PASSED')
-})
diff --git a/node_modules/JSONStream/test/gen.js b/node_modules/JSONStream/test/gen.js
deleted file mode 100644
index c233722..0000000
--- a/node_modules/JSONStream/test/gen.js
+++ /dev/null
@@ -1,135 +0,0 @@
-return // dont run this test for now since tape is weird and broken on 0.10
-
-var fs = require('fs')
-var JSONStream = require('../')
-var file = process.argv[2] || '/tmp/JSONStream-test-large.json'
-var size = Number(process.argv[3] || 100000)
-var tape = require('tape')
-// if (process.title !== 'browser') {
- tape('out of mem', function (t) {
- t.plan(1)
- //////////////////////////////////////////////////////
- // Produces a random number between arg1 and arg2
- //////////////////////////////////////////////////////
- var randomNumber = function (min, max) {
- var number = Math.floor(Math.random() * (max - min + 1) + min);
- return number;
- };
-
- //////////////////////////////////////////////////////
- // Produces a random string of a length between arg1 and arg2
- //////////////////////////////////////////////////////
- var randomString = function (min, max) {
-
- // add several spaces to increase chanses of creating 'words'
- var chars = ' 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- var result = '';
-
- var randomLength = randomNumber(min, max);
-
- for (var i = randomLength; i > 0; --i) {
- result += chars[Math.round(Math.random() * (chars.length - 1))];
- }
- return result;
- };
-
- //////////////////////////////////////////////////////
- // Produces a random JSON document, as a string
- //////////////////////////////////////////////////////
- var randomJsonDoc = function () {
-
- var doc = {
- "CrashOccurenceID": randomNumber(10000, 50000),
- "CrashID": randomNumber(1000, 10000),
- "SiteName": randomString(10, 25),
- "MachineName": randomString(10, 25),
- "Date": randomString(26, 26),
- "ProcessDuration": randomString(18, 18),
- "ThreadIdentityName": null,
- "WindowsIdentityName": randomString(15, 40),
- "OperatingSystemName": randomString(35, 65),
- "DetailedExceptionInformation": randomString(100, 800)
- };
-
- doc = JSON.stringify(doc);
- doc = doc.replace(/\,/g, ',\n'); // add new lines after each attribute
- return doc;
- };
-
- //////////////////////////////////////////////////////
- // generates test data
- //////////////////////////////////////////////////////
- var generateTestData = function (cb) {
-
- console.log('generating large data file...');
-
- var stream = fs.createWriteStream(file, {
- encoding: 'utf8'
- });
-
- var i = 0;
- var max = size;
- var writing = false
- var split = ',\n';
- var doc = randomJsonDoc();
- stream.write('[');
-
- function write () {
- if(writing) return
- writing = true
- while(++i < max) {
- if(Math.random() < 0.001)
- console.log('generate..', i + ' / ' + size)
- if(!stream.write(doc + split)) {
- writing = false
- return stream.once('drain', write)
- }
- }
- stream.write(doc + ']')
- stream.end();
- console.log('END')
- }
- write()
- stream.on('close', cb)
- };
-
- //////////////////////////////////////////////////////
- // Shows that parsing 100000 instances using JSONStream fails
- //
- // After several seconds, you will get this crash
- // FATAL ERROR: JS Allocation failed - process out of memory
- //////////////////////////////////////////////////////
- var testJSONStreamParse_causesOutOfMem = function (done) {
- var items = 0
- console.log('parsing data files using JSONStream...');
-
- var parser = JSONStream.parse([true]);
- var stream = fs.createReadStream(file);
- stream.pipe(parser);
-
- parser.on('data', function (data) {
- items++
- if(Math.random() < 0.01) console.log(items, '...')
- });
-
- parser.on('end', function () {
- t.equal(items, size)
- });
-
- };
-
- //////////////////////////////////////////////////////
- // main
- //////////////////////////////////////////////////////
-
- fs.stat(file, function (err, stat) {
- console.log(stat)
- if(err)
- generateTestData(testJSONStreamParse_causesOutOfMem);
- else
- testJSONStreamParse_causesOutOfMem()
- })
-
- })
-
-// }
diff --git a/node_modules/JSONStream/test/header_footer.js b/node_modules/JSONStream/test/header_footer.js
deleted file mode 100644
index f18fc59..0000000
--- a/node_modules/JSONStream/test/header_footer.js
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','header_footer.json')
- , JSONStream = require('../')
- , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
- , parser = JSONStream.parse(['rows', /\d+/ /*, 'value'*/])
- , called = 0
- , headerCalled = 0
- , footerCalled = 0
- , ended = false
- , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-
-parser.on('header', function (data) {
- headerCalled ++
- it(data).deepEqual({
- total_rows: 129,
- offset: 0
- })
-})
-
-parser.on('footer', function (data) {
- footerCalled ++
- it(data).deepEqual({
- foo: { bar: 'baz' }
- })
-})
-
-parser.on('data', function (data) {
- called ++
- it.has({
- id: it.typeof('string'),
- value: {rev: it.typeof('string')},
- key:it.typeof('string')
- })
- it(headerCalled).equal(1)
- parsed.push(data)
-})
-
-parser.on('end', function () {
- ended = true
-})
-
-process.on('exit', function () {
- it(called).equal(expected.rows.length)
- it(headerCalled).equal(1)
- it(footerCalled).equal(1)
- it(parsed).deepEqual(expected.rows)
- console.error('PASSED')
-})
diff --git a/node_modules/JSONStream/test/issues.js b/node_modules/JSONStream/test/issues.js
deleted file mode 100644
index ea4c743..0000000
--- a/node_modules/JSONStream/test/issues.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var JSONStream = require('../');
-var test = require('tape')
-
-test('#66', function (t) {
- var error = 0;
- var stream = JSONStream
- .parse()
- .on('error', function (err) {
- t.ok(err);
- error++;
- })
- .on('end', function () {
- t.ok(error === 1);
- t.end();
- });
-
- stream.write('["foo":bar[');
- stream.end();
-
-});
-
-test('#81 - failure to parse nested objects', function (t) {
- var stream = JSONStream
- .parse('.bar.foo')
- .on('error', function (err) {
- t.error(err);
- })
- .on('end', function () {
- t.end();
- });
-
- stream.write('{"bar":{"foo":"baz"}}');
- stream.end();
-});
diff --git a/node_modules/JSONStream/test/keys.js b/node_modules/JSONStream/test/keys.js
deleted file mode 100644
index 747723d..0000000
--- a/node_modules/JSONStream/test/keys.js
+++ /dev/null
@@ -1,105 +0,0 @@
-var test = require('tape');
-var fs = require ('fs');
-var join = require('path').join;
-var couch_sample_file = join(__dirname, 'fixtures','couch_sample.json');
-var JSONStream = require('../');
-
-var fixture = {
- obj: {
- one: 1,
- two: 2,
- three: 3
- }
-};
-
-function assertFixtureKeys(stream, t) {
- var keys = [];
- var values = [];
- stream.on('data', function(data) {
- keys.push(data.key);
- values.push(data.value);
- });
-
- stream.on('end', function() {
- t.deepEqual(keys, ['one', 'two', 'three']);
- t.deepEqual(values, [1,2,3]);
- t.end();
- });
- stream.write(JSON.stringify(fixture));
- stream.end();
-}
-
-test('keys via string', function(t) {
- var stream = JSONStream.parse('obj.$*');
- assertFixtureKeys(stream, t);
-});
-
-test('keys via array', function(t) {
- var stream = JSONStream.parse(['obj',{emitKey: true}]);
- assertFixtureKeys(stream, t);
-});
-
-test('path via array', function(t) {
- var stream = JSONStream.parse(['obj',{emitPath: true}]);
-
- var paths = [];
- var values = [];
- stream.on('data', function(data) {
- console.log(JSON.stringify(data));
- paths.push(data.path);
- values.push(data.value);
- });
-
- stream.on('end', function() {
- t.deepEqual(paths, [['obj', 'one'], ['obj', 'two'], ['obj', 'three']]);
- t.deepEqual(values, [1,2,3]);
- t.end();
- });
- stream.write(JSON.stringify(fixture));
- stream.end();
-});
-
-test('advanced keys', function(t) {
- var advanced = fs.readFileSync(couch_sample_file);
- var stream = JSONStream.parse(['rows', true, 'doc', {emitKey: true}]);
-
- var keys = [];
- var values = [];
- stream.on('data', function(data) {
- keys.push(data.key);
- values.push(data.value);
- });
-
- stream.on('end', function() {
- t.deepEqual(keys, [
- '_id', '_rev', 'hello',
- '_id', '_rev', 'hello'
- ]);
- t.deepEqual(values, [
- "change1_0.6995461115147918", "1-e240bae28c7bb3667f02760f6398d508", 1,
- "change2_0.6995461115147918", "1-13677d36b98c0c075145bb8975105153", 2
- ]);
- t.end();
- });
- stream.write(advanced);
- stream.end();
-});
-
-test('parent keys', function(t) {
- var stream = JSONStream.parse('$*');
- var d = null;
- stream.on('data', function(data) {
- if(d) t.fail('should only be called once');
- d = data;
- });
-
- stream.on('end', function() {
- t.deepEqual(d,{
- key: 'obj',
- value: fixture.obj
- });
- t.end();
- });
- stream.write(JSON.stringify(fixture));
- stream.end();
-})
diff --git a/node_modules/JSONStream/test/map.js b/node_modules/JSONStream/test/map.js
deleted file mode 100644
index 29b9d89..0000000
--- a/node_modules/JSONStream/test/map.js
+++ /dev/null
@@ -1,40 +0,0 @@
-
-var test = require('tape')
-
-var JSONStream = require('../')
-
-test('map function', function (t) {
-
- var actual = []
-
- stream = JSONStream.parse([true], function (e) { return e*10 })
- stream.on('data', function (v) { actual.push(v)})
- stream.on('end', function () {
- t.deepEqual(actual, [10,20,30,40,50,60])
- t.end()
-
- })
-
- stream.write(JSON.stringify([1,2,3,4,5,6], null, 2))
- stream.end()
-
-})
-
-test('filter function', function (t) {
-
- var actual = []
-
- stream = JSONStream
- .parse([true], function (e) { return e%2 ? e : null})
- .on('data', function (v) { actual.push(v)})
- .on('end', function () {
- t.deepEqual(actual, [1,3,5])
- t.end()
-
- })
-
- stream.write(JSON.stringify([1,2,3,4,5,6], null, 2))
- stream.end()
-
-})
-
diff --git a/node_modules/JSONStream/test/multiple_objects.js b/node_modules/JSONStream/test/multiple_objects.js
deleted file mode 100644
index 22f6324..0000000
--- a/node_modules/JSONStream/test/multiple_objects.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var fs = require ('fs');
-var net = require('net');
-var join = require('path').join;
-var file = join(__dirname, 'fixtures','all_npm.json');
-var it = require('it-is');
-var JSONStream = require('../');
-
-var str = fs.readFileSync(file);
-
-var datas = {}
-
-var server = net.createServer(function(client) {
- var data_calls = 0;
- var parser = JSONStream.parse(['rows', true, 'key']);
- parser.on('data', function(data) {
- ++ data_calls;
- datas[data] = (datas[data] || 0) + 1
- it(data).typeof('string')
- });
-
- parser.on('end', function() {
- console.log('END')
- var min = Infinity
- for (var d in datas)
- min = min > datas[d] ? datas[d] : min
- it(min).equal(3);
- server.close();
- });
- client.pipe(parser);
-});
-server.listen(9999);
-
-var client = net.connect({ port : 9999 }, function() {
- var msgs = str + ' ' + str + '\n\n' + str
- client.end(msgs);
-});
diff --git a/node_modules/JSONStream/test/multiple_objects_error.js b/node_modules/JSONStream/test/multiple_objects_error.js
deleted file mode 100644
index 83d113b..0000000
--- a/node_modules/JSONStream/test/multiple_objects_error.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var fs = require ('fs');
-var net = require('net');
-var join = require('path').join;
-var file = join(__dirname, 'fixtures','all_npm.json');
-var it = require('it-is');
-var JSONStream = require('../');
-
-var str = fs.readFileSync(file);
-
-var server = net.createServer(function(client) {
- var data_calls = 0;
- var parser = JSONStream.parse();
- parser.on('error', function(err) {
- console.log(err);
- server.close();
- });
-
- parser.on('end', function() {
- console.log('END');
- server.close();
- });
- client.pipe(parser);
-});
-server.listen(9999);
-
-var client = net.connect({ port : 9999 }, function() {
- var msgs = str + '}';
- client.end(msgs);
-});
diff --git a/node_modules/JSONStream/test/null.js b/node_modules/JSONStream/test/null.js
deleted file mode 100644
index 95dd60c..0000000
--- a/node_modules/JSONStream/test/null.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var JSONStream = require('../')
-
-var data = [
- {ID: 1, optional: null},
- {ID: 2, optional: null},
- {ID: 3, optional: 20},
- {ID: 4, optional: null},
- {ID: 5, optional: 'hello'},
- {ID: 6, optional: null}
-]
-
-
-var test = require('tape')
-
-test ('null properties', function (t) {
- var actual = []
- var stream =
-
- JSONStream.parse('*.optional')
- .on('data', function (v) { actual.push(v) })
- .on('end', function () {
- t.deepEqual(actual, [20, 'hello'])
- t.end()
- })
-
- stream.write(JSON.stringify(data, null, 2))
- stream.end()
-})
diff --git a/node_modules/JSONStream/test/parsejson.js b/node_modules/JSONStream/test/parsejson.js
deleted file mode 100644
index e70dabc..0000000
--- a/node_modules/JSONStream/test/parsejson.js
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-/*
- sometimes jsonparse changes numbers slightly.
-*/
-
-var r = Math.random()
- , Parser = require('jsonparse')
- , p = new Parser()
- , assert = require('assert')
- , times = 20
- , bufferFrom = Buffer.from && Buffer.from !== Uint8Array.from
- , str
-
-while (times --) {
-
- assert.equal(JSON.parse(JSON.stringify(r)), r, 'core JSON')
-
- p.onValue = function (v) {
- console.error('parsed', v)
- assert.equal(v,r)
- }
- console.error('correct', r)
- str = JSON.stringify([r])
- p.write (bufferFrom ? Buffer.from(str) : new Buffer(str))
-
-
-
-}
diff --git a/node_modules/JSONStream/test/run.js b/node_modules/JSONStream/test/run.js
deleted file mode 100644
index 7d62e73..0000000
--- a/node_modules/JSONStream/test/run.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var readdirSync = require('fs').readdirSync
-var spawnSync = require('child_process').spawnSync
-var extname = require('path').extname
-
-var files = readdirSync(__dirname)
-files.forEach(function(file){
- if (extname(file) !== '.js' || file === 'run.js')
- return
- console.log(`*** ${file} ***`)
- var result = spawnSync(process.argv0, [file], { stdio: 'inherit', cwd: __dirname} )
- if (result.status !== 0)
- process.exit(result.status)
-})
diff --git a/node_modules/JSONStream/test/stringify.js b/node_modules/JSONStream/test/stringify.js
deleted file mode 100644
index b6de85e..0000000
--- a/node_modules/JSONStream/test/stringify.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','all_npm.json')
- , JSONStream = require('../')
- , it = require('it-is').style('colour')
-
- function randomObj () {
- return (
- Math.random () < 0.4
- ? {hello: 'eonuhckmqjk',
- whatever: 236515,
- lies: true,
- nothing: [null],
- stuff: [Math.random(),Math.random(),Math.random()]
- }
- : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
- )
- }
-
-var expected = []
- , stringify = JSONStream.stringify()
- , es = require('event-stream')
- , stringified = ''
- , called = 0
- , count = 10
- , ended = false
-
-while (count --)
- expected.push(randomObj())
-
- es.connect(
- es.readArray(expected),
- stringify,
- //JSONStream.parse([/./]),
- es.writeArray(function (err, lines) {
-
- it(JSON.parse(lines.join(''))).deepEqual(expected)
- console.error('PASSED')
- })
- )
diff --git a/node_modules/JSONStream/test/stringify_object.js b/node_modules/JSONStream/test/stringify_object.js
deleted file mode 100644
index 9490115..0000000
--- a/node_modules/JSONStream/test/stringify_object.js
+++ /dev/null
@@ -1,47 +0,0 @@
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','all_npm.json')
- , JSONStream = require('../')
- , it = require('it-is').style('colour')
- , es = require('event-stream')
- , pending = 10
- , passed = true
-
- function randomObj () {
- return (
- Math.random () < 0.4
- ? {hello: 'eonuhckmqjk',
- whatever: 236515,
- lies: true,
- nothing: [null],
- stuff: [Math.random(),Math.random(),Math.random()]
- }
- : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
- )
- }
-
-for (var ix = 0; ix < pending; ix++) (function (count) {
- var expected = {}
- , stringify = JSONStream.stringifyObject()
-
- es.connect(
- stringify,
- es.writeArray(function (err, lines) {
- it(JSON.parse(lines.join(''))).deepEqual(expected)
- if (--pending === 0) {
- console.error('PASSED')
- }
- })
- )
-
- while (count --) {
- var key = Math.random().toString(16).slice(2)
- expected[key] = randomObj()
- stringify.write([ key, expected[key] ])
- }
-
- process.nextTick(function () {
- stringify.end()
- })
-})(ix)
diff --git a/node_modules/JSONStream/test/test.js b/node_modules/JSONStream/test/test.js
deleted file mode 100644
index 8ea7c2e..0000000
--- a/node_modules/JSONStream/test/test.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','all_npm.json')
- , JSONStream = require('../')
- , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
- , parser = JSONStream.parse(['rows', /\d+/ /*, 'value'*/])
- , called = 0
- , ended = false
- , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-
-parser.on('data', function (data) {
- called ++
- it.has({
- id: it.typeof('string'),
- value: {rev: it.typeof('string')},
- key:it.typeof('string')
- })
- parsed.push(data)
-})
-
-parser.on('end', function () {
- ended = true
-})
-
-process.on('exit', function () {
- it(called).equal(expected.rows.length)
- it(parsed).deepEqual(expected.rows)
- console.error('PASSED')
-})
diff --git a/node_modules/JSONStream/test/test2.js b/node_modules/JSONStream/test/test2.js
deleted file mode 100644
index d09df7b..0000000
--- a/node_modules/JSONStream/test/test2.js
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, '..','package.json')
- , JSONStream = require('../')
- , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
- , parser = JSONStream.parse([])
- , called = 0
- , ended = false
- , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-
-parser.on('data', function (data) {
- called ++
- it(data).deepEqual(expected)
-})
-
-parser.on('end', function () {
- ended = true
-})
-
-process.on('exit', function () {
- it(called).equal(1)
- console.error('PASSED')
-})
\ No newline at end of file
diff --git a/node_modules/JSONStream/test/two-ways.js b/node_modules/JSONStream/test/two-ways.js
deleted file mode 100644
index 8f3b89c..0000000
--- a/node_modules/JSONStream/test/two-ways.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-var fs = require ('fs')
- , join = require('path').join
- , file = join(__dirname, 'fixtures','all_npm.json')
- , JSONStream = require('../')
- , it = require('it-is').style('colour')
-
- function randomObj () {
- return (
- Math.random () < 0.4
- ? {hello: 'eonuhckmqjk',
- whatever: 236515,
- lies: true,
- nothing: [null],
-// stuff: [Math.random(),Math.random(),Math.random()]
- }
- : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
- )
- }
-
-var expected = []
- , stringify = JSONStream.stringify()
- , es = require('event-stream')
- , stringified = ''
- , called = 0
- , count = 10
- , ended = false
-
-while (count --)
- expected.push(randomObj())
-
- es.connect(
- es.readArray(expected),
- stringify,
- JSONStream.parse([/./]),
- es.writeArray(function (err, lines) {
-
- it(lines).has(expected)
- console.error('PASSED')
- })
- )
diff --git a/node_modules/acorn-node/.travis.yml b/node_modules/acorn-node/.travis.yml
deleted file mode 100644
index 24123d4..0000000
--- a/node_modules/acorn-node/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-language: node_js
-node_js:
- - '12'
- - '11'
- - '10'
- - '9'
- - '8'
- - '6'
- - '4'
- - '0.12'
- - '0.10'
- - '0.8'
- - '0.6'
-before_install:
- - 'nvm install-latest-npm'
-install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-sudo: false
-matrix:
- fast_finish: true
- allow_failures:
- - node_js: "0.6"
diff --git a/node_modules/acorn-node/CHANGELOG.md b/node_modules/acorn-node/CHANGELOG.md
deleted file mode 100644
index ce2c779..0000000
--- a/node_modules/acorn-node/CHANGELOG.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# acorn-node change log
-
-All notable changes to this project will be documented in this file.
-
-This project adheres to [Semantic Versioning](http://semver.org/).
-
-## 1.8.2
- * Revert a breaking change in import.meta parsing.
-
-## 1.8.1
- * Fix crash in compiled private-class-elements code.
-
-## 1.8.0
- * Upgrade acorn to v7.
-
- For backwards compatibility, `acorn-node` still uses the `Import` node type for dynamic imports, _NOT_ `ImportExpression` like acorn v7 and estree.
- * Add numeric separator support:
- ```js
- var a = 10_000_000_000_000_000_000_000_000n;
- ```
-
-## 1.7.0
- * Add class instance fields support:
- ```js
- class X {
- pub = 1;
- #priv = 2;
- }
- ```
- * Add class static fields support:
- ```js
- class X {
- static pub = 1;
- static #priv = 2;
- }
- ```
- * Add `export * as ns` support when `sourceType` is 'module':
- ```js
- export * as ns from './ns.mjs';
- ```
-
-## 1.6.2
-
- * Allow dynamic `import()` in scripts.
- * Update minimum dependency versions, fixing a peerDependency warning.
- * Add Node 10 and 11 to CI.
-
-## 1.6.1
-
- * Update acorn-dynamic-import to v4.
-
-## 1.6.0
-
- * Upgrade acorn to v6.
- * Add bigint support.
-
-## 1.5.2
-
- * Upgrade acorn to support optional catch binding in the AST walker.
-
-## 1.5.1
-
- * Fix tests on Node <= 0.12.
-
-## 1.5.0
-
- * Add tests for async iteration, optional catch binding, import.meta,
- dynamic import, bigint (currently unsupported).
- * Add import.meta support. (`sourceType: 'module'` only)
- * Add dynamic import support. (`sourceType: 'module'` only)
- * Fix optional catch binding support in the walker.
-
-## 1.4.0
-
- * Upgrade acorn to 5.6, which supports optional catch bindings and other
- new syntax features.
- * Set ecmaVersion to 2019 to opt in to optional catch bindings etc.
-
-## 1.3.0
-
- * Upgrade acorn to 5.4, which supports object spread and async iteration.
- * Remove acorn5-object-spread plugin.
-
-## 1.2.0
-
- * Expose `acorn/dist/walk` as `acorn-node/walk`.
-
-## 1.1.0
-
- * Enable `allowHashBang` and `allowReturnOutsideFunction` by default.
-
-## 1.0.0
-
- * Initial release.
diff --git a/node_modules/acorn-node/LICENSE.md b/node_modules/acorn-node/LICENSE.md
deleted file mode 100644
index 3698cf1..0000000
--- a/node_modules/acorn-node/LICENSE.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# [Apache License 2.0](https://spdx.org/licenses/Apache-2.0)
-
-Copyright 2018 Renée Kooi
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-> http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-## acorn-bigint
-
-The code in the `lib/bigint` folder is compiled from code licensed as MIT:
-
-> Copyright (C) 2017-2018 by Adrian Heine
->
-> 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.
-
-Find the source code at https://github.com/acornjs/acorn-bigint.
-
-## acorn-import-meta
-
-The code in the `lib/import-meta` folder is compiled from code licensed as MIT:
-
-> Copyright (C) 2017-2018 by Adrian Heine
->
-> 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.
-
-Find the source code at https://github.com/acornjs/acorn-import-meta.
-
-## acorn-dynamic-import
-
-The code in the `lib/dynamic-import` folder is licensed as MIT:
-
-> MIT License
->
-> Copyright (c) 2016 Jordan Gensler
->
-> 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.
-
-Find the source code at https://github.com/kesne/acorn-dynamic-import.
diff --git a/node_modules/acorn-node/README.md b/node_modules/acorn-node/README.md
deleted file mode 100644
index 37e871f..0000000
--- a/node_modules/acorn-node/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# acorn-node
-
-[Acorn](https://github.com/acornjs/acorn) preloaded with plugins for syntax parity with recent Node versions.
-
-It also includes versions of the plugins compiled with [Bublé](https://github.com/rich-harris/buble), so they can be run on old Node versions (0.6 and up).
-
-[![npm][npm-image]][npm-url]
-[![travis][travis-image]][travis-url]
-[![standard][standard-image]][standard-url]
-
-[npm-image]: https://img.shields.io/npm/v/acorn-node.svg?style=flat-square
-[npm-url]: https://www.npmjs.com/package/acorn-node
-[travis-image]: https://img.shields.io/travis/browserify/acorn-node/master.svg?style=flat-square
-[travis-url]: https://travis-ci.org/browserify/acorn-node
-[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
-[standard-url]: http://npm.im/standard
-
-## Install
-
-```
-npm install acorn-node
-```
-
-## Usage
-
-```js
-var acorn = require('acorn-node')
-```
-
-The API is the same as [acorn](https://github.com/acornjs/acorn), but the following syntax features are enabled by default:
-
- - Bigint syntax `10n`
- - Numeric separators syntax `10_000`
- - Public and private class instance fields
- - Public and private class static fields
- - Dynamic `import()`
- - The `import.meta` property
- - `export * as ns from` syntax
-
-And the following options have different defaults from acorn, to match Node modules:
-
- - `ecmaVersion: 2019`
- - `allowHashBang: true`
- - `allowReturnOutsideFunction: true`
-
-```js
-var walk = require('acorn-node/walk')
-```
-
-The Acorn syntax tree walker. Comes preconfigured for the syntax plugins if necessary.
-See the [acorn documentation](https://github.com/acornjs/acorn#distwalkjs) for details.
-
-## License
-
-The files in the repo root and the ./test folder are licensed as [Apache-2.0](LICENSE.md).
-
-The files in lib/ are generated from other packages:
-
-- lib/bigint: [acorn-bigint](https://github.com/acornjs/acorn-bigint]), MIT
-- lib/class-private-elements: [acorn-class-private-elements](https://github.com/acornjs/acorn-class-private-elements), MIT
-- lib/dynamic-import: [acorn-dynamic-import](https://github.com/acornjs/acorn-dynamic-import), MIT
-- lib/export-ns-from: [acorn-export-ns-from](https://github.com/acornjs/acorn-export-ns-from), MIT
-- lib/import-meta: [acorn-import-meta](https://github.com/acornjs/acorn-import-meta), MIT
-- lib/numeric-separator: [acorn-numeric-separator](https://github.com/acornjs/acorn-numeric-separator]), MIT
-- lib/static-class-features: [acorn-static-class-features](https://github.com/acornjs/acorn-static-class-features), MIT
diff --git a/node_modules/acorn-node/build.js b/node_modules/acorn-node/build.js
deleted file mode 100644
index ca08f35..0000000
--- a/node_modules/acorn-node/build.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var fs = require('fs')
-var path = require('path')
-var mkdirp = require('mkdirp')
-var buble = require('buble')
-
-var HEADER = '/* Generated by `npm run build`, do not edit! */\n\n'
-
-function compile (name, output, fix) {
- console.log(name, '→', output)
- mkdirp.sync(path.dirname(path.join(__dirname, output)))
- var source = fs.readFileSync(require.resolve(name), 'utf8')
- if (fix) source = fix(source)
- var result = buble.transform(source, {
- transforms: {
- dangerousForOf: true
- }
- })
- fs.writeFileSync(path.join(__dirname, output), HEADER + result.code, 'utf8')
-}
-
-function privateClassElements (str) {
- return str.replace('acorn-private-class-elements', '../private-class-elements')
-}
-
-compile('acorn-bigint', './lib/bigint/index.js')
-compile('acorn-numeric-separator', './lib/numeric-separator/index.js')
-compile('acorn-dynamic-import', './lib/dynamic-import/index.js')
-compile('acorn-import-meta', './lib/import-meta/index.js')
-compile('acorn-export-ns-from', './lib/export-ns-from/index.js')
-compile('acorn-class-fields', './lib/class-fields/index.js', privateClassElements)
-compile('acorn-static-class-features', './lib/static-class-features/index.js', privateClassElements)
-compile('acorn-private-class-elements', './lib/private-class-elements/index.js', function (str) {
- return str.replace('class extends Parser', 'class Parser_ extends Parser')
- // it also works with v7
- .replace('if (acorn.version.indexOf("6.") != 0 || acorn.version.indexOf("6.0.") == 0) {', 'if (false) {')
-})
diff --git a/node_modules/acorn-node/index.js b/node_modules/acorn-node/index.js
deleted file mode 100644
index c0ec3bf..0000000
--- a/node_modules/acorn-node/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var acorn = require('acorn')
-var xtend = require('xtend')
-
-var CJSParser = acorn.Parser
- .extend(require('./lib/bigint'))
- .extend(require('./lib/class-fields'))
- .extend(require('./lib/static-class-features'))
- .extend(require('./lib/numeric-separator'))
- .extend(require('./lib/dynamic-import').default)
-var ESModulesParser = CJSParser
- .extend(require('./lib/export-ns-from'))
- .extend(require('./lib/import-meta'))
-
-function mapOptions (opts) {
- if (!opts) opts = {}
- return xtend({
- ecmaVersion: 2020,
- allowHashBang: true,
- allowReturnOutsideFunction: true
- }, opts)
-}
-
-function getParser (opts) {
- if (!opts) opts = {}
- return opts.sourceType === 'module' ? ESModulesParser : CJSParser
-}
-
-module.exports = exports = xtend(acorn, {
- parse: function parse (src, opts) {
- return getParser(opts).parse(src, mapOptions(opts))
- },
- parseExpressionAt: function parseExpressionAt (src, offset, opts) {
- return getParser(opts).parseExpressionAt(src, offset, mapOptions(opts))
- },
- tokenizer: function tokenizer (src, opts) {
- return getParser(opts).tokenizer(src, mapOptions(opts))
- }
-})
diff --git a/node_modules/acorn-node/lib/bigint/index.js b/node_modules/acorn-node/lib/bigint/index.js
deleted file mode 100644
index 40f6a9f..0000000
--- a/node_modules/acorn-node/lib/bigint/index.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Generated by `npm run build`, do not edit! */
-
-"use strict"
-
-var acorn = require("acorn")
-var tt = acorn.tokTypes
-var isIdentifierStart = acorn.isIdentifierStart
-
-module.exports = function(Parser) {
- return /*@__PURE__*/(function (Parser) {
- function anonymous () {
- Parser.apply(this, arguments);
- }
-
- if ( Parser ) anonymous.__proto__ = Parser;
- anonymous.prototype = Object.create( Parser && Parser.prototype );
- anonymous.prototype.constructor = anonymous;
-
- anonymous.prototype.parseLiteral = function parseLiteral (value) {
- var node = Parser.prototype.parseLiteral.call(this, value)
- if (node.raw.charCodeAt(node.raw.length - 1) == 110) { node.bigint = this.getNumberInput(node.start, node.end) }
- return node
- };
-
- anonymous.prototype.readRadixNumber = function readRadixNumber (radix) {
- var start = this.pos
- this.pos += 2 // 0x
- var val = this.readInt(radix)
- if (val === null) { this.raise(this.start + 2, ("Expected number in radix " + radix)) }
- if (this.input.charCodeAt(this.pos) == 110) {
- var str = this.getNumberInput(start, this.pos)
- val = typeof BigInt !== "undefined" ? BigInt(str) : null
- ++this.pos
- } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number") }
- return this.finishToken(tt.num, val)
- };
-
- anonymous.prototype.readNumber = function readNumber (startsWithDot) {
- var start = this.pos
-
- // Not an int
- if (startsWithDot) { return Parser.prototype.readNumber.call(this, startsWithDot) }
-
- // Legacy octal
- if (this.input.charCodeAt(start) === 48 && this.input.charCodeAt(start + 1) !== 110) {
- return Parser.prototype.readNumber.call(this, startsWithDot)
- }
-
- if (this.readInt(10) === null) { this.raise(start, "Invalid number") }
-
- // Not a BigInt, reset and parse again
- if (this.input.charCodeAt(this.pos) != 110) {
- this.pos = start
- return Parser.prototype.readNumber.call(this, startsWithDot)
- }
-
- var str = this.getNumberInput(start, this.pos)
- var val = typeof BigInt !== "undefined" ? BigInt(str) : null
- ++this.pos
- return this.finishToken(tt.num, val)
- };
-
- // This is basically a hook for acorn-numeric-separator
- anonymous.prototype.getNumberInput = function getNumberInput (start, end) {
- if (Parser.prototype.getNumberInput) { return Parser.prototype.getNumberInput.call(this, start, end) }
- return this.input.slice(start, end)
- };
-
- return anonymous;
- }(Parser))
-}
diff --git a/node_modules/acorn-node/lib/class-fields/index.js b/node_modules/acorn-node/lib/class-fields/index.js
deleted file mode 100644
index e7f15ae..0000000
--- a/node_modules/acorn-node/lib/class-fields/index.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Generated by `npm run build`, do not edit! */
-
-"use strict"
-
-var acorn = require("acorn")
-var tt = acorn.tokTypes
-var privateClassElements = require("../private-class-elements")
-
-function maybeParseFieldValue(field) {
- if (this.eat(tt.eq)) {
- var oldInFieldValue = this._inFieldValue
- this._inFieldValue = true
- field.value = this.parseExpression()
- this._inFieldValue = oldInFieldValue
- } else { field.value = null }
-}
-
-module.exports = function(Parser) {
- Parser = privateClassElements(Parser)
- return /*@__PURE__*/(function (Parser) {
- function anonymous () {
- Parser.apply(this, arguments);
- }
-
- if ( Parser ) anonymous.__proto__ = Parser;
- anonymous.prototype = Object.create( Parser && Parser.prototype );
- anonymous.prototype.constructor = anonymous;
-
- anonymous.prototype.parseClassElement = function parseClassElement (_constructorAllowsSuper) {
- if (this.options.ecmaVersion >= 8 && (this.type == tt.name || this.type == this.privateNameToken || this.type == tt.bracketL || this.type == tt.string)) {
- var branch = this._branch()
- if (branch.type == tt.bracketL) {
- var count = 0
- do {
- if (branch.eat(tt.bracketL)) { ++count }
- else if (branch.eat(tt.bracketR)) { --count }
- else { branch.next() }
- } while (count > 0)
- } else { branch.next() }
- if (branch.type == tt.eq || branch.canInsertSemicolon() || branch.type == tt.semi) {
- var node = this.startNode()
- if (this.type == this.privateNameToken) {
- this.parsePrivateClassElementName(node)
- } else {
- this.parsePropertyName(node)
- }
- if ((node.key.type === "Identifier" && node.key.name === "constructor") ||
- (node.key.type === "Literal" && node.key.value === "constructor")) {
- this.raise(node.key.start, "Classes may not have a field called constructor")
- }
- maybeParseFieldValue.call(this, node)
- this.finishNode(node, "FieldDefinition")
- this.semicolon()
- return node
- }
- }
-
- return Parser.prototype.parseClassElement.apply(this, arguments)
- };
-
- // Prohibit arguments in class field initializers
- anonymous.prototype.parseIdent = function parseIdent (liberal, isBinding) {
- var ident = Parser.prototype.parseIdent.call(this, liberal, isBinding)
- if (this._inFieldValue && ident.name == "arguments") { this.raise(ident.start, "A class field initializer may not contain arguments") }
- return ident
- };
-
- return anonymous;
- }(Parser))
-}
diff --git a/node_modules/acorn-node/lib/dynamic-import/index.js b/node_modules/acorn-node/lib/dynamic-import/index.js
deleted file mode 100644
index bb37198..0000000
--- a/node_modules/acorn-node/lib/dynamic-import/index.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Generated by `npm run build`, do not edit! */
-
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.DynamicImportKey = undefined;
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) { descriptor.writable = true; } Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) { defineProperties(Constructor.prototype, protoProps); } if (staticProps) { defineProperties(Constructor, staticProps); } return Constructor; }; }();
-
-var _get = function () {
- function get(object, property, receiver) { if (object === null) { object = Function.prototype; } var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }
-
- return get;
-}();
-
-exports['default'] = dynamicImport;
-
-var _acorn = require('acorn');
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) { Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } } /* eslint-disable no-underscore-dangle */
-
-
-var DynamicImportKey = exports.DynamicImportKey = 'Import';
-
-// NOTE: This allows `yield import()` to parse correctly.
-_acorn.tokTypes._import.startsExpr = true;
-
-function parseDynamicImport() {
- var node = this.startNode();
- this.next();
- if (this.type !== _acorn.tokTypes.parenL) {
- this.unexpected();
- }
- return this.finishNode(node, DynamicImportKey);
-}
-
-function parenAfter() {
- return (/^(\s|\/\/.*|\/\*[^]*?\*\/)*\(/.test(this.input.slice(this.pos))
- );
-}
-
-function dynamicImport(Parser) {
- return function (_Parser) {
- _inherits(_class, _Parser);
-
- function _class() {
- _classCallCheck(this, _class);
-
- return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
- }
-
- _createClass(_class, [{
- key: 'parseStatement',
- value: function () {
- function parseStatement(context, topLevel, exports) {
- if (this.type === _acorn.tokTypes._import && parenAfter.call(this)) {
- return this.parseExpressionStatement(this.startNode(), this.parseExpression());
- }
- return _get(_class.prototype.__proto__ || Object.getPrototypeOf(_class.prototype), 'parseStatement', this).call(this, context, topLevel, exports);
- }
-
- return parseStatement;
- }()
- }, {
- key: 'parseExprAtom',
- value: function () {
- function parseExprAtom(refDestructuringErrors) {
- if (this.type === _acorn.tokTypes._import) {
- return parseDynamicImport.call(this);
- }
- return _get(_class.prototype.__proto__ || Object.getPrototypeOf(_class.prototype), 'parseExprAtom', this).call(this, refDestructuringErrors);
- }
-
- return parseExprAtom;
- }()
- }]);
-
- return _class;
- }(Parser);
-}
\ No newline at end of file
diff --git a/node_modules/acorn-node/lib/export-ns-from/index.js b/node_modules/acorn-node/lib/export-ns-from/index.js
deleted file mode 100644
index 7196dc8..0000000
--- a/node_modules/acorn-node/lib/export-ns-from/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Generated by `npm run build`, do not edit! */
-
-"use strict"
-
-var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g
-
-var tt = require("acorn").tokTypes
-
-module.exports = function(Parser) {
- return /*@__PURE__*/(function (Parser) {
- function anonymous () {
- Parser.apply(this, arguments);
- }
-
- if ( Parser ) anonymous.__proto__ = Parser;
- anonymous.prototype = Object.create( Parser && Parser.prototype );
- anonymous.prototype.constructor = anonymous;
-
- anonymous.prototype.parseExport = function parseExport (node, exports) {
- skipWhiteSpace.lastIndex = this.pos
- var skip = skipWhiteSpace.exec(this.input)
- var next = this.input.charAt(this.pos + skip[0].length)
- if (next !== "*") { return Parser.prototype.parseExport.call(this, node, exports) }
-
- this.next()
- var specifier = this.startNode()
- this.expect(tt.star)
- if (this.eatContextual("as")) {
- node.declaration = null
- specifier.exported = this.parseIdent(true)
- this.checkExport(exports, specifier.exported.name, this.lastTokStart)
- node.specifiers = [this.finishNode(specifier, "ExportNamespaceSpecifier")]
- }
- this.expectContextual("from")
- if (this.type !== tt.string) { this.unexpected() }
- node.source = this.parseExprAtom()
- this.semicolon()
- return this.finishNode(node, node.specifiers ? "ExportNamedDeclaration" : "ExportAllDeclaration")
- };
-
- return anonymous;
- }(Parser))
-}
diff --git a/node_modules/acorn-node/lib/import-meta/index.js b/node_modules/acorn-node/lib/import-meta/index.js
deleted file mode 100644
index bd4adf9..0000000
--- a/node_modules/acorn-node/lib/import-meta/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Generated by `npm run build`, do not edit! */
-
-"use strict"
-
-var tt = require("acorn").tokTypes
-
-var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g
-
-var nextTokenIsDot = function (parser) {
- skipWhiteSpace.lastIndex = parser.pos
- var skip = skipWhiteSpace.exec(parser.input)
- var next = parser.pos + skip[0].length
- return parser.input.slice(next, next + 1) === "."
-}
-
-module.exports = function(Parser) {
- return /*@__PURE__*/(function (Parser) {
- function anonymous () {
- Parser.apply(this, arguments);
- }
-
- if ( Parser ) anonymous.__proto__ = Parser;
- anonymous.prototype = Object.create( Parser && Parser.prototype );
- anonymous.prototype.constructor = anonymous;
-
- anonymous.prototype.parseExprAtom = function parseExprAtom (refDestructuringErrors) {
- if (this.type !== tt._import || !nextTokenIsDot(this)) { return Parser.prototype.parseExprAtom.call(this, refDestructuringErrors) }
-
- if (!this.options.allowImportExportEverywhere && !this.inModule) {
- this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'")
- }
-
- var node = this.startNode()
- node.meta = this.parseIdent(true)
- this.expect(tt.dot)
- node.property = this.parseIdent(true)
- if (node.property.name !== "meta") {
- this.raiseRecoverable(node.property.start, "The only valid meta property for import is import.meta")
- }
- return this.finishNode(node, "MetaProperty")
- };
-
- anonymous.prototype.parseStatement = function parseStatement (context, topLevel, exports) {
- if (this.type !== tt._import || !nextTokenIsDot(this)) {
- return Parser.prototype.parseStatement.call(this, context, topLevel, exports)
- }
-
- var node = this.startNode()
- var expr = this.parseExpression()
- return this.parseExpressionStatement(node, expr)
- };
-
- return anonymous;
- }(Parser))
-}
diff --git a/node_modules/acorn-node/lib/numeric-separator/index.js b/node_modules/acorn-node/lib/numeric-separator/index.js
deleted file mode 100644
index ec3cfc4..0000000
--- a/node_modules/acorn-node/lib/numeric-separator/index.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Generated by `npm run build`, do not edit! */
-
-"use strict"
-
-module.exports = function(Parser) {
- return /*@__PURE__*/(function (Parser) {
- function anonymous () {
- Parser.apply(this, arguments);
- }
-
- if ( Parser ) anonymous.__proto__ = Parser;
- anonymous.prototype = Object.create( Parser && Parser.prototype );
- anonymous.prototype.constructor = anonymous;
-
- anonymous.prototype.readInt = function readInt (radix, len) {
- // Hack: len is only != null for unicode escape sequences,
- // where numeric separators are not allowed
- if (len != null) { return Parser.prototype.readInt.call(this, radix, len) }
-
- var start = this.pos, total = 0, acceptUnderscore = false
- for (;;) {
- var code = this.input.charCodeAt(this.pos), val = (void 0)
- if (code >= 97) { val = code - 97 + 10 } // a
- else if (code == 95) {
- if (!acceptUnderscore) { this.raise(this.pos, "Invalid numeric separator") }
- ++this.pos
- acceptUnderscore = false
- continue
- } else if (code >= 65) { val = code - 65 + 10 } // A
- else if (code >= 48 && code <= 57) { val = code - 48 } // 0-9
- else { val = Infinity }
- if (val >= radix) { break }
- ++this.pos
- total = total * radix + val
- acceptUnderscore = true
- }
- if (this.pos === start) { return null }
- if (!acceptUnderscore) { this.raise(this.pos - 1, "Invalid numeric separator") }
-
- return total
- };
-
- anonymous.prototype.readNumber = function readNumber (startsWithDot) {
- var token = Parser.prototype.readNumber.call(this, startsWithDot)
- var octal = this.end - this.start >= 2 && this.input.charCodeAt(this.start) === 48
- var stripped = this.getNumberInput(this.start, this.end)
- if (stripped.length < this.end - this.start) {
- if (octal) { this.raise(this.start, "Invalid number") }
- this.value = parseFloat(stripped)
- }
- return token
- };
-
- // This is used by acorn-bigint
- anonymous.prototype.getNumberInput = function getNumberInput (start, end) {
- return this.input.slice(start, end).replace(/_/g, "")
- };
-
- return anonymous;
- }(Parser))
-}
diff --git a/node_modules/acorn-node/lib/private-class-elements/index.js b/node_modules/acorn-node/lib/private-class-elements/index.js
deleted file mode 100644
index 364e1fc..0000000
--- a/node_modules/acorn-node/lib/private-class-elements/index.js
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Generated by `npm run build`, do not edit! */
-
-"use strict"
-
-var acorn = require("acorn")
-if (false) {
- throw new Error(("acorn-private-class-elements requires acorn@^6.1.0, not " + (acorn.version)))
-}
-var tt = acorn.tokTypes
-var TokenType = acorn.TokenType
-
-module.exports = function(Parser) {
- // Only load this plugin once.
- if (Parser.prototype.parsePrivateName) {
- return Parser
- }
-
- // Make sure `Parser` comes from the same acorn as our `tt`,
- // otherwise the comparisons fail.
- var cur = Parser
- while (cur && cur !== acorn.Parser) {
- cur = cur.__proto__
- }
- if (cur !== acorn.Parser) {
- throw new Error("acorn-private-class-elements does not support mixing different acorn copies")
- }
-
- Parser = /*@__PURE__*/(function (Parser) {
- function Parser_ () {
- Parser.apply(this, arguments);
- }
-
- if ( Parser ) Parser_.__proto__ = Parser;
- Parser_.prototype = Object.create( Parser && Parser.prototype );
- Parser_.prototype.constructor = Parser_;
-
- Parser_.prototype._branch = function _branch () {
- this.__branch = this.__branch || new Parser({ecmaVersion: this.options.ecmaVersion}, this.input)
- this.__branch.end = this.end
- this.__branch.pos = this.pos
- this.__branch.type = this.type
- this.__branch.value = this.value
- this.__branch.containsEsc = this.containsEsc
- return this.__branch
- };
-
- Parser_.prototype.parsePrivateClassElementName = function parsePrivateClassElementName (element) {
- element.computed = false
- element.key = this.parsePrivateName()
- if (element.key.name == "constructor") { this.raise(element.key.start, "Classes may not have a private element named constructor") }
- var accept = {get: "set", set: "get"}[element.kind]
- var privateBoundNames = this._privateBoundNamesStack[this._privateBoundNamesStack.length - 1]
- if (Object.prototype.hasOwnProperty.call(privateBoundNames, element.key.name) && privateBoundNames[element.key.name] !== accept) {
- this.raise(element.start, "Duplicate private element")
- }
- privateBoundNames[element.key.name] = element.kind || true
- delete this._unresolvedPrivateNamesStack[this._unresolvedPrivateNamesStack.length - 1][element.key.name]
- return element.key
- };
-
- Parser_.prototype.parsePrivateName = function parsePrivateName () {
- var node = this.startNode()
- node.name = this.value
- this.next()
- this.finishNode(node, "PrivateName")
- if (this.options.allowReserved == "never") { this.checkUnreserved(node) }
- return node
- };
-
- // Parse # token
- Parser_.prototype.getTokenFromCode = function getTokenFromCode (code) {
- if (code === 35) {
- ++this.pos
- var word = this.readWord1()
- return this.finishToken(this.privateNameToken, word)
- }
- return Parser.prototype.getTokenFromCode.call(this, code)
- };
-
- // Manage stacks and check for undeclared private names
- Parser_.prototype.parseClass = function parseClass (node, isStatement) {
- this._privateBoundNamesStack = this._privateBoundNamesStack || []
- var privateBoundNames = Object.create(this._privateBoundNamesStack[this._privateBoundNamesStack.length - 1] || null)
- this._privateBoundNamesStack.push(privateBoundNames)
- this._unresolvedPrivateNamesStack = this._unresolvedPrivateNamesStack || []
- var unresolvedPrivateNames = Object.create(null)
- this._unresolvedPrivateNamesStack.push(unresolvedPrivateNames)
- var _return = Parser.prototype.parseClass.call(this, node, isStatement)
- this._privateBoundNamesStack.pop()
- this._unresolvedPrivateNamesStack.pop()
- if (!this._unresolvedPrivateNamesStack.length) {
- var names = Object.keys(unresolvedPrivateNames)
- if (names.length) {
- names.sort(function (n1, n2) { return unresolvedPrivateNames[n1] - unresolvedPrivateNames[n2]; })
- this.raise(unresolvedPrivateNames[names[0]], "Usage of undeclared private name")
- }
- } else { Object.assign(this._unresolvedPrivateNamesStack[this._unresolvedPrivateNamesStack.length - 1], unresolvedPrivateNames) }
- return _return
- };
-
- // Parse private element access
- Parser_.prototype.parseSubscript = function parseSubscript (base, startPos, startLoc, noCalls, maybeAsyncArrow) {
- if (!this.eat(tt.dot)) {
- return Parser.prototype.parseSubscript.call(this, base, startPos, startLoc, noCalls, maybeAsyncArrow)
- }
- var node = this.startNodeAt(startPos, startLoc)
- node.object = base
- node.computed = false
- if (this.type == this.privateNameToken) {
- node.property = this.parsePrivateName()
- if (!this._privateBoundNamesStack.length || !this._privateBoundNamesStack[this._privateBoundNamesStack.length - 1][node.property.name]) {
- this._unresolvedPrivateNamesStack[this._unresolvedPrivateNamesStack.length - 1][node.property.name] = node.property.start
- }
- } else {
- node.property = this.parseIdent(true)
- }
- return this.finishNode(node, "MemberExpression")
- };
-
- // Prohibit delete of private class elements
- Parser_.prototype.parseMaybeUnary = function parseMaybeUnary (refDestructuringErrors, sawUnary) {
- var _return = Parser.prototype.parseMaybeUnary.call(this, refDestructuringErrors, sawUnary)
- if (_return.operator == "delete") {
- if (_return.argument.type == "MemberExpression" && _return.argument.property.type == "PrivateName") {
- this.raise(_return.start, "Private elements may not be deleted")
- }
- }
- return _return
- };
-
- return Parser_;
- }(Parser))
- Parser.prototype.privateNameToken = new TokenType("privateName")
- return Parser
-}
diff --git a/node_modules/acorn-node/lib/static-class-features/index.js b/node_modules/acorn-node/lib/static-class-features/index.js
deleted file mode 100644
index 3894491..0000000
--- a/node_modules/acorn-node/lib/static-class-features/index.js
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Generated by `npm run build`, do not edit! */
-
-"use strict"
-
-var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g
-
-var acorn = require("acorn")
-var tt = acorn.tokTypes
-
-function maybeParseFieldValue(field) {
- if (this.eat(tt.eq)) {
- var oldInFieldValue = this._inStaticFieldValue
- this._inStaticFieldValue = true
- field.value = this.parseExpression()
- this._inStaticFieldValue = oldInFieldValue
- } else { field.value = null }
-}
-
-var privateClassElements = require("../private-class-elements")
-
-module.exports = function(Parser) {
- var ExtendedParser = privateClassElements(Parser)
-
- return /*@__PURE__*/(function (ExtendedParser) {
- function anonymous () {
- ExtendedParser.apply(this, arguments);
- }
-
- if ( ExtendedParser ) anonymous.__proto__ = ExtendedParser;
- anonymous.prototype = Object.create( ExtendedParser && ExtendedParser.prototype );
- anonymous.prototype.constructor = anonymous;
-
- anonymous.prototype.parseClassElement = function parseClassElement (_constructorAllowsSuper) {
- var this$1 = this;
-
- if (this.eat(tt.semi)) { return null }
-
- var node = this.startNode()
-
- var tryContextual = function (k, noLineBreak) {
- if (typeof noLineBreak == "undefined") { noLineBreak = false }
- var start = this$1.start, startLoc = this$1.startLoc
- if (!this$1.eatContextual(k)) { return false }
- if (this$1.type !== tt.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true }
- if (node.key) { this$1.unexpected() }
- node.computed = false
- node.key = this$1.startNodeAt(start, startLoc)
- node.key.name = k
- this$1.finishNode(node.key, "Identifier")
- return false
- }
-
- node.static = tryContextual("static")
- if (!node.static) { return ExtendedParser.prototype.parseClassElement.apply(this, arguments) }
-
- var isGenerator = this.eat(tt.star)
- var isAsync = false
- if (!isGenerator) {
- // Special-case for `async`, since `parseClassMember` currently looks
- // for `(` to determine whether `async` is a method name
- if (this.options.ecmaVersion >= 8 && this.isContextual("async")) {
- skipWhiteSpace.lastIndex = this.pos
- var skip = skipWhiteSpace.exec(this.input)
- var next = this.input.charAt(this.pos + skip[0].length)
- if (next === ";" || next === "=") {
- node.key = this.parseIdent(true)
- node.computed = false
- maybeParseFieldValue.call(this, node)
- this.finishNode(node, "FieldDefinition")
- this.semicolon()
- return node
- } else if (this.options.ecmaVersion >= 8 && tryContextual("async", true)) {
- isAsync = true
- isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)
- }
- } else if (tryContextual("get")) {
- node.kind = "get"
- } else if (tryContextual("set")) {
- node.kind = "set"
- }
- }
- if (this.type === this.privateNameToken) {
- this.parsePrivateClassElementName(node)
- if (this.type !== tt.parenL) {
- if (node.key.name === "prototype") {
- this.raise(node.key.start, "Classes may not have a private static property named prototype")
- }
- maybeParseFieldValue.call(this, node)
- this.finishNode(node, "FieldDefinition")
- this.semicolon()
- return node
- }
- } else if (!node.key) {
- this.parsePropertyName(node)
- if ((node.key.name || node.key.value) === "prototype" && !node.computed) {
- this.raise(node.key.start, "Classes may not have a static property named prototype")
- }
- }
- if (!node.kind) { node.kind = "method" }
- this.parseClassMethod(node, isGenerator, isAsync)
- if (!node.kind && (node.key.name || node.key.value) === "constructor" && !node.computed) {
- this.raise(node.key.start, "Classes may not have a static field named constructor")
- }
- if (node.kind === "get" && node.value.params.length !== 0) {
- this.raiseRecoverable(node.value.start, "getter should have no params")
- }
- if (node.kind === "set" && node.value.params.length !== 1) {
- this.raiseRecoverable(node.value.start, "setter should have exactly one param")
- }
- if (node.kind === "set" && node.value.params[0].type === "RestElement") {
- this.raiseRecoverable(node.value.params[0].start, "Setter cannot use rest params")
- }
-
- return node
-
- };
-
- // Parse public static fields
- anonymous.prototype.parseClassMethod = function parseClassMethod (method, isGenerator, isAsync, _allowsDirectSuper) {
- if (isGenerator || isAsync || method.kind != "method" || !method.static || this.options.ecmaVersion < 8 || this.type == tt.parenL) {
- return ExtendedParser.prototype.parseClassMethod.apply(this, arguments)
- }
- maybeParseFieldValue.call(this, method)
- delete method.kind
- method = this.finishNode(method, "FieldDefinition")
- this.semicolon()
- return method
- };
-
- // Prohibit arguments in class field initializers
- anonymous.prototype.parseIdent = function parseIdent (liberal, isBinding) {
- var ident = ExtendedParser.prototype.parseIdent.call(this, liberal, isBinding)
- if (this._inStaticFieldValue && ident.name == "arguments") { this.raise(ident.start, "A static class field initializer may not contain arguments") }
- return ident
- };
-
- return anonymous;
- }(ExtendedParser))
-}
diff --git a/node_modules/acorn-node/package.json b/node_modules/acorn-node/package.json
deleted file mode 100644
index ed88258..0000000
--- a/node_modules/acorn-node/package.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "_from": "acorn-node@^1.5.2",
- "_id": "acorn-node@1.8.2",
- "_inBundle": false,
- "_integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
- "_location": "/acorn-node",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "acorn-node@^1.5.2",
- "name": "acorn-node",
- "escapedName": "acorn-node",
- "rawSpec": "^1.5.2",
- "saveSpec": null,
- "fetchSpec": "^1.5.2"
- },
- "_requiredBy": [
- "/detective",
- "/insert-module-globals",
- "/syntax-error",
- "/undeclared-identifiers"
- ],
- "_resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
- "_shasum": "114c95d64539e53dede23de8b9d96df7c7ae2af8",
- "_spec": "acorn-node@^1.5.2",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/insert-module-globals",
- "author": {
- "name": "Renée Kooi",
- "email": "renee@kooi.me"
- },
- "bugs": {
- "url": "https://github.com/browserify/acorn-node/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "acorn": "^7.0.0",
- "acorn-walk": "^7.0.0",
- "xtend": "^4.0.2"
- },
- "deprecated": false,
- "description": "the acorn javascript parser, preloaded with plugins for syntax parity with recent node versions",
- "devDependencies": {
- "acorn-bigint": "^0.4.0",
- "acorn-class-fields": "^0.3.1",
- "acorn-dynamic-import": "^4.0.0",
- "acorn-export-ns-from": "^0.1.0",
- "acorn-import-meta": "^0.3.0",
- "acorn-numeric-separator": "^0.3.0",
- "acorn-private-class-elements": "^0.1.1",
- "acorn-static-class-features": "^0.2.0",
- "buble": "^0.19.8",
- "mkdirp": "^0.5.1",
- "standard": "^13.1.0",
- "tape": "^4.11.0"
- },
- "homepage": "https://github.com/browserify/acorn-node",
- "keywords": [
- "acorn",
- "browserify",
- "javascript",
- "parser"
- ],
- "license": "Apache-2.0",
- "main": "index.js",
- "name": "acorn-node",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/browserify/acorn-node.git"
- },
- "scripts": {
- "build": "node build.js",
- "prepublishOnly": "npm run build",
- "test": "standard && node test/index.js"
- },
- "standard": {
- "ignore": [
- "lib/*/*.js"
- ]
- },
- "version": "1.8.2"
-}
diff --git a/node_modules/acorn-node/test/index.js b/node_modules/acorn-node/test/index.js
deleted file mode 100644
index 59832db..0000000
--- a/node_modules/acorn-node/test/index.js
+++ /dev/null
@@ -1,154 +0,0 @@
-var test = require('tape')
-var acorn = require('../')
-var walk = require('../walk')
-var baseAcorn = require('acorn')
-
-test('parses object spread syntax', function (t) {
- var ast = acorn.parse('var a = { ...b }')
- t.equal(ast.body[0].declarations[0].init.type, 'ObjectExpression')
- t.equal(ast.body[0].declarations[0].init.properties[0].type, 'SpreadElement')
-
- ast = acorn.parse('function a ({ ...b }) {}')
- t.equal(ast.body[0].params[0].type, 'ObjectPattern')
- t.equal(ast.body[0].params[0].properties[0].type, 'RestElement')
-
- t.end()
-})
-
-test('does not change main acorn module', function (t) {
- t.throws(function () {
- baseAcorn.parse('var a = 10n')
- })
- t.end()
-})
-
-test('tokenizes object spread syntax', function (t) {
- var tokenizer = acorn.tokenizer('var a = { ...b }')
-
- t.doesNotThrow(function (t) {
- while (tokenizer.getToken().type !== acorn.tokTypes.eof) {}
- })
- t.end()
-})
-
-test('allows hashbangs by default', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('#!/usr/bin/env node\nconsole.log("ok")')
- })
- t.end()
-})
-
-test('allows top level return by default', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('console.log("ok"); return; console.log("not ok")')
- })
- t.end()
-})
-
-test('supports async generators', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('async function* a () { await x; yield 1 }')
- })
- t.end()
-})
-
-test('supports async iteration', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('async function l (y) { for await (const x of y) {} }')
- })
- t.end()
-})
-
-test('supports optional catch', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('try { throw null } catch {}')
- })
- t.end()
-})
-
-test('supports bigint', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('50n ** 50n')
- })
- t.end()
-})
-
-test('supports numeric separators', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('50_000_000n ** 1n')
- })
- t.end()
-})
-
-test('supports import.meta with sourceType: module', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('console.log(import.meta.url)', { sourceType: 'module' })
- })
- t.end()
-})
-
-test('supports dynamic import() with sourceType: module', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('import("./whatever.mjs")', { sourceType: 'module' })
- })
- t.end()
-})
-
-test('supports dynamic import() with sourceType: script', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('import("./whatever.mjs")', { sourceType: 'script' })
- })
- t.end()
-})
-
-test('supports class instance properties', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('class X { x = y }', { sourceType: 'script' })
- })
- t.end()
-})
-
-test('supports private class instance properties', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('class X { #x = y }', { sourceType: 'script' })
- })
- t.end()
-})
-
-test('supports class static properties', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('class X { static x = y }', { sourceType: 'script' })
- })
- t.end()
-})
-
-test('supports private class static properties', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('class X { static #x = y }', { sourceType: 'script' })
- })
- t.end()
-})
-
-test('supports namespace export syntax with sourceType: module', function (t) {
- t.doesNotThrow(function () {
- acorn.parse('export * as x from "./x.mjs";', { sourceType: 'module' })
- })
- t.end()
-})
-
-test('walk supports plugin syntax', function (t) {
- var ast = acorn.parse(
- 'async function* a() { try { await import(xyz); } catch { for await (x of null) {} } yield import.meta.url }',
- { sourceType: 'module' }
- )
- t.plan(2)
- walk.simple(ast, {
- Import: function () {
- t.pass('import()')
- },
- MetaProperty: function () {
- t.pass('import.meta')
- }
- })
- t.end()
-})
diff --git a/node_modules/acorn-node/walk.js b/node_modules/acorn-node/walk.js
deleted file mode 100644
index 273a30c..0000000
--- a/node_modules/acorn-node/walk.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var xtend = require('xtend')
-var walk = require('acorn-walk')
-
-var base = xtend(walk.base)
-base.Import = function () {}
-
-function simple (node, visitors, baseVisitor, state, override) {
- return walk.simple(node, visitors, baseVisitor || base, state, override)
-}
-
-function ancestor (node, visitors, baseVisitor, state) {
- return walk.ancestor(node, visitors, baseVisitor || base, state)
-}
-
-function recursive (node, state, funcs, baseVisitor, override) {
- return walk.recursive(node, state, funcs, baseVisitor || base, override)
-}
-
-function full (node, callback, baseVisitor, state, override) {
- return walk.full(node, callback, baseVisitor || base, state, override)
-}
-
-function fullAncestor (node, callback, baseVisitor, state) {
- return walk.fullAncestor(node, callback, baseVisitor || base, state)
-}
-
-function findNodeAt (node, start, end, test, baseVisitor, state) {
- return walk.findNodeAt(node, start, end, test, baseVisitor || base, state)
-}
-
-function findNodeAround (node, pos, test, baseVisitor, state) {
- return walk.findNodeAround(node, pos, test, baseVisitor || base, state)
-}
-
-function findNodeAfter (node, pos, test, baseVisitor, state) {
- return walk.findNodeAfter(node, pos, test, baseVisitor || base, state)
-}
-
-function findNodeBefore (node, pos, test, baseVisitor, state) {
- return walk.findNodeBefore(node, pos, test, baseVisitor || base, state)
-}
-
-function make (funcs, baseVisitor) {
- return walk.make(funcs, baseVisitor || base)
-}
-
-exports.simple = simple
-exports.ancestor = ancestor
-exports.recursive = recursive
-exports.full = full
-exports.fullAncestor = fullAncestor
-exports.findNodeAt = findNodeAt
-exports.findNodeAround = findNodeAround
-exports.findNodeAfter = findNodeAfter
-exports.findNodeBefore = findNodeBefore
-exports.make = make
-exports.base = base
diff --git a/node_modules/acorn-walk/CHANGELOG.md b/node_modules/acorn-walk/CHANGELOG.md
deleted file mode 100644
index 82d4399..0000000
--- a/node_modules/acorn-walk/CHANGELOG.md
+++ /dev/null
@@ -1,109 +0,0 @@
-## 7.0.0 (2017-08-12)
-
-### New features
-
-Support walking `ImportExpression` nodes.
-
-## 6.2.0 (2017-07-04)
-
-### New features
-
-Add support for `Import` nodes.
-
-## 6.1.0 (2018-09-28)
-
-### New features
-
-The walker now walks `TemplateElement` nodes.
-
-## 6.0.1 (2018-09-14)
-
-### Bug fixes
-
-Fix bad "main" field in package.json.
-
-## 6.0.0 (2018-09-14)
-
-### Breaking changes
-
-This is now a separate package, `acorn-walk`, rather than part of the main `acorn` package.
-
-The `ScopeBody` and `ScopeExpression` meta-node-types are no longer supported.
-
-## 5.7.1 (2018-06-15)
-
-### Bug fixes
-
-Make sure the walker and bin files are rebuilt on release (the previous release didn't get the up-to-date versions).
-
-## 5.7.0 (2018-06-15)
-
-### Bug fixes
-
-Fix crash in walker when walking a binding-less catch node.
-
-## 5.6.2 (2018-06-05)
-
-### Bug fixes
-
-In the walker, go back to allowing the `baseVisitor` argument to be null to default to the default base everywhere.
-
-## 5.6.1 (2018-06-01)
-
-### Bug fixes
-
-Fix regression when passing `null` as fourth argument to `walk.recursive`.
-
-## 5.6.0 (2018-05-31)
-
-### Bug fixes
-
-Fix a bug in the walker that caused a crash when walking an object pattern spread.
-
-## 5.5.1 (2018-03-06)
-
-### Bug fixes
-
-Fix regression in walker causing property values in object patterns to be walked as expressions.
-
-## 5.5.0 (2018-02-27)
-
-### Bug fixes
-
-Support object spread in the AST walker.
-
-## 5.4.1 (2018-02-02)
-
-### Bug fixes
-
-5.4.0 somehow accidentally included an old version of walk.js.
-
-## 5.2.0 (2017-10-30)
-
-### Bug fixes
-
-The `full` and `fullAncestor` walkers no longer visit nodes multiple times.
-
-## 5.1.0 (2017-07-05)
-
-### New features
-
-New walker functions `full` and `fullAncestor`.
-
-## 3.2.0 (2016-06-07)
-
-### New features
-
-Make it possible to use `visit.ancestor` with a walk state.
-
-## 3.1.0 (2016-04-18)
-
-### New features
-
-The walker now allows defining handlers for `CatchClause` nodes.
-
-## 2.5.2 (2015-10-27)
-
-### Fixes
-
-Fix bug where the walker walked an exported `let` statement as an expression.
diff --git a/node_modules/acorn-walk/LICENSE b/node_modules/acorn-walk/LICENSE
deleted file mode 100644
index 2c0632b..0000000
--- a/node_modules/acorn-walk/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2012-2018 by various contributors (see AUTHORS)
-
-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.
diff --git a/node_modules/acorn-walk/README.md b/node_modules/acorn-walk/README.md
deleted file mode 100644
index e192bac..0000000
--- a/node_modules/acorn-walk/README.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# Acorn AST walker
-
-An abstract syntax tree walker for the
-[ESTree](https://github.com/estree/estree) format.
-
-## Community
-
-Acorn is open source software released under an
-[MIT license](https://github.com/acornjs/acorn/blob/master/acorn-walk/LICENSE).
-
-You are welcome to
-[report bugs](https://github.com/acornjs/acorn/issues) or create pull
-requests on [github](https://github.com/acornjs/acorn). For questions
-and discussion, please use the
-[Tern discussion forum](https://discuss.ternjs.net).
-
-## Installation
-
-The easiest way to install acorn is from [`npm`](https://www.npmjs.com/):
-
-```sh
-npm install acorn-walk
-```
-
-Alternately, you can download the source and build acorn yourself:
-
-```sh
-git clone https://github.com/acornjs/acorn.git
-cd acorn
-npm install
-```
-
-## Interface
-
-An algorithm for recursing through a syntax tree is stored as an
-object, with a property for each tree node type holding a function
-that will recurse through such a node. There are several ways to run
-such a walker.
-
-**simple**`(node, visitors, base, state)` does a 'simple' walk over a
-tree. `node` should be the AST node to walk, and `visitors` an object
-with properties whose names correspond to node types in the [ESTree
-spec](https://github.com/estree/estree). The properties should contain
-functions that will be called with the node object and, if applicable
-the state at that point. The last two arguments are optional. `base`
-is a walker algorithm, and `state` is a start state. The default
-walker will simply visit all statements and expressions and not
-produce a meaningful state. (An example of a use of state is to track
-scope at each point in the tree.)
-
-```js
-const acorn = require("acorn")
-const walk = require("acorn-walk")
-
-walk.simple(acorn.parse("let x = 10"), {
- Literal(node) {
- console.log(`Found a literal: ${node.value}`)
- }
-})
-```
-
-**ancestor**`(node, visitors, base, state)` does a 'simple' walk over
-a tree, building up an array of ancestor nodes (including the current node)
-and passing the array to the callbacks as a third parameter.
-
-```js
-const acorn = require("acorn")
-const walk = require("acorn-walk")
-
-walk.ancestor(acorn.parse("foo('hi')"), {
- Literal(_, ancestors) {
- console.log("This literal's ancestors are:", ancestors.map(n => n.type))
- }
-})
-```
-
-**recursive**`(node, state, functions, base)` does a 'recursive'
-walk, where the walker functions are responsible for continuing the
-walk on the child nodes of their target node. `state` is the start
-state, and `functions` should contain an object that maps node types
-to walker functions. Such functions are called with `(node, state, c)`
-arguments, and can cause the walk to continue on a sub-node by calling
-the `c` argument on it with `(node, state)` arguments. The optional
-`base` argument provides the fallback walker functions for node types
-that aren't handled in the `functions` object. If not given, the
-default walkers will be used.
-
-**make**`(functions, base)` builds a new walker object by using the
-walker functions in `functions` and filling in the missing ones by
-taking defaults from `base`.
-
-**full**`(node, callback, base, state)` does a 'full' walk over a
-tree, calling the callback with the arguments (node, state, type) for
-each node
-
-**fullAncestor**`(node, callback, base, state)` does a 'full' walk
-over a tree, building up an array of ancestor nodes (including the
-current node) and passing the array to the callbacks as a third
-parameter.
-
-```js
-const acorn = require("acorn")
-const walk = require("acorn-walk")
-
-walk.full(acorn.parse("1 + 1"), node => {
- console.log(`There's a ${node.type} node at ${node.ch}`)
-})
-```
-
-**findNodeAt**`(node, start, end, test, base, state)` tries to locate
-a node in a tree at the given start and/or end offsets, which
-satisfies the predicate `test`. `start` and `end` can be either `null`
-(as wildcard) or a number. `test` may be a string (indicating a node
-type) or a function that takes `(nodeType, node)` arguments and
-returns a boolean indicating whether this node is interesting. `base`
-and `state` are optional, and can be used to specify a custom walker.
-Nodes are tested from inner to outer, so if two nodes match the
-boundaries, the inner one will be preferred.
-
-**findNodeAround**`(node, pos, test, base, state)` is a lot like
-`findNodeAt`, but will match any node that exists 'around' (spanning)
-the given position.
-
-**findNodeAfter**`(node, pos, test, base, state)` is similar to
-`findNodeAround`, but will match all nodes *after* the given position
-(testing outer nodes before inner nodes).
diff --git a/node_modules/acorn-walk/dist/walk.js b/node_modules/acorn-walk/dist/walk.js
deleted file mode 100644
index 387b337..0000000
--- a/node_modules/acorn-walk/dist/walk.js
+++ /dev/null
@@ -1,461 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = global || self, factory((global.acorn = global.acorn || {}, global.acorn.walk = {})));
-}(this, function (exports) { 'use strict';
-
- // AST walker module for Mozilla Parser API compatible trees
-
- // A simple walk is one where you simply specify callbacks to be
- // called on specific nodes. The last two arguments are optional. A
- // simple use would be
- //
- // walk.simple(myTree, {
- // Expression: function(node) { ... }
- // });
- //
- // to do something with all expressions. All Parser API node types
- // can be used to identify node types, as well as Expression and
- // Statement, which denote categories of nodes.
- //
- // The base argument can be used to pass a custom (recursive)
- // walker, and state can be used to give this walked an initial
- // state.
-
- function simple(node, visitors, baseVisitor, state, override) {
- if (!baseVisitor) { baseVisitor = base
- ; }(function c(node, st, override) {
- var type = override || node.type, found = visitors[type];
- baseVisitor[type](node, st, c);
- if (found) { found(node, st); }
- })(node, state, override);
- }
-
- // An ancestor walk keeps an array of ancestor nodes (including the
- // current node) and passes them to the callback as third parameter
- // (and also as state parameter when no other state is present).
- function ancestor(node, visitors, baseVisitor, state) {
- var ancestors = [];
- if (!baseVisitor) { baseVisitor = base
- ; }(function c(node, st, override) {
- var type = override || node.type, found = visitors[type];
- var isNew = node !== ancestors[ancestors.length - 1];
- if (isNew) { ancestors.push(node); }
- baseVisitor[type](node, st, c);
- if (found) { found(node, st || ancestors, ancestors); }
- if (isNew) { ancestors.pop(); }
- })(node, state);
- }
-
- // A recursive walk is one where your functions override the default
- // walkers. They can modify and replace the state parameter that's
- // threaded through the walk, and can opt how and whether to walk
- // their child nodes (by calling their third argument on these
- // nodes).
- function recursive(node, state, funcs, baseVisitor, override) {
- var visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor
- ;(function c(node, st, override) {
- visitor[override || node.type](node, st, c);
- })(node, state, override);
- }
-
- function makeTest(test) {
- if (typeof test === "string")
- { return function (type) { return type === test; } }
- else if (!test)
- { return function () { return true; } }
- else
- { return test }
- }
-
- var Found = function Found(node, state) { this.node = node; this.state = state; };
-
- // A full walk triggers the callback on each node
- function full(node, callback, baseVisitor, state, override) {
- if (!baseVisitor) { baseVisitor = base
- ; }(function c(node, st, override) {
- var type = override || node.type;
- baseVisitor[type](node, st, c);
- if (!override) { callback(node, st, type); }
- })(node, state, override);
- }
-
- // An fullAncestor walk is like an ancestor walk, but triggers
- // the callback on each node
- function fullAncestor(node, callback, baseVisitor, state) {
- if (!baseVisitor) { baseVisitor = base; }
- var ancestors = []
- ;(function c(node, st, override) {
- var type = override || node.type;
- var isNew = node !== ancestors[ancestors.length - 1];
- if (isNew) { ancestors.push(node); }
- baseVisitor[type](node, st, c);
- if (!override) { callback(node, st || ancestors, ancestors, type); }
- if (isNew) { ancestors.pop(); }
- })(node, state);
- }
-
- // Find a node with a given start, end, and type (all are optional,
- // null can be used as wildcard). Returns a {node, state} object, or
- // undefined when it doesn't find a matching node.
- function findNodeAt(node, start, end, test, baseVisitor, state) {
- if (!baseVisitor) { baseVisitor = base; }
- test = makeTest(test);
- try {
- (function c(node, st, override) {
- var type = override || node.type;
- if ((start == null || node.start <= start) &&
- (end == null || node.end >= end))
- { baseVisitor[type](node, st, c); }
- if ((start == null || node.start === start) &&
- (end == null || node.end === end) &&
- test(type, node))
- { throw new Found(node, st) }
- })(node, state);
- } catch (e) {
- if (e instanceof Found) { return e }
- throw e
- }
- }
-
- // Find the innermost node of a given type that contains the given
- // position. Interface similar to findNodeAt.
- function findNodeAround(node, pos, test, baseVisitor, state) {
- test = makeTest(test);
- if (!baseVisitor) { baseVisitor = base; }
- try {
- (function c(node, st, override) {
- var type = override || node.type;
- if (node.start > pos || node.end < pos) { return }
- baseVisitor[type](node, st, c);
- if (test(type, node)) { throw new Found(node, st) }
- })(node, state);
- } catch (e) {
- if (e instanceof Found) { return e }
- throw e
- }
- }
-
- // Find the outermost matching node after a given position.
- function findNodeAfter(node, pos, test, baseVisitor, state) {
- test = makeTest(test);
- if (!baseVisitor) { baseVisitor = base; }
- try {
- (function c(node, st, override) {
- if (node.end < pos) { return }
- var type = override || node.type;
- if (node.start >= pos && test(type, node)) { throw new Found(node, st) }
- baseVisitor[type](node, st, c);
- })(node, state);
- } catch (e) {
- if (e instanceof Found) { return e }
- throw e
- }
- }
-
- // Find the outermost matching node before a given position.
- function findNodeBefore(node, pos, test, baseVisitor, state) {
- test = makeTest(test);
- if (!baseVisitor) { baseVisitor = base; }
- var max
- ;(function c(node, st, override) {
- if (node.start > pos) { return }
- var type = override || node.type;
- if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))
- { max = new Found(node, st); }
- baseVisitor[type](node, st, c);
- })(node, state);
- return max
- }
-
- // Fallback to an Object.create polyfill for older environments.
- var create = Object.create || function(proto) {
- function Ctor() {}
- Ctor.prototype = proto;
- return new Ctor
- };
-
- // Used to create a custom walker. Will fill in all missing node
- // type properties with the defaults.
- function make(funcs, baseVisitor) {
- var visitor = create(baseVisitor || base);
- for (var type in funcs) { visitor[type] = funcs[type]; }
- return visitor
- }
-
- function skipThrough(node, st, c) { c(node, st); }
- function ignore(_node, _st, _c) {}
-
- // Node walkers.
-
- var base = {};
-
- base.Program = base.BlockStatement = function (node, st, c) {
- for (var i = 0, list = node.body; i < list.length; i += 1)
- {
- var stmt = list[i];
-
- c(stmt, st, "Statement");
- }
- };
- base.Statement = skipThrough;
- base.EmptyStatement = ignore;
- base.ExpressionStatement = base.ParenthesizedExpression =
- function (node, st, c) { return c(node.expression, st, "Expression"); };
- base.IfStatement = function (node, st, c) {
- c(node.test, st, "Expression");
- c(node.consequent, st, "Statement");
- if (node.alternate) { c(node.alternate, st, "Statement"); }
- };
- base.LabeledStatement = function (node, st, c) { return c(node.body, st, "Statement"); };
- base.BreakStatement = base.ContinueStatement = ignore;
- base.WithStatement = function (node, st, c) {
- c(node.object, st, "Expression");
- c(node.body, st, "Statement");
- };
- base.SwitchStatement = function (node, st, c) {
- c(node.discriminant, st, "Expression");
- for (var i$1 = 0, list$1 = node.cases; i$1 < list$1.length; i$1 += 1) {
- var cs = list$1[i$1];
-
- if (cs.test) { c(cs.test, st, "Expression"); }
- for (var i = 0, list = cs.consequent; i < list.length; i += 1)
- {
- var cons = list[i];
-
- c(cons, st, "Statement");
- }
- }
- };
- base.SwitchCase = function (node, st, c) {
- if (node.test) { c(node.test, st, "Expression"); }
- for (var i = 0, list = node.consequent; i < list.length; i += 1)
- {
- var cons = list[i];
-
- c(cons, st, "Statement");
- }
- };
- base.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {
- if (node.argument) { c(node.argument, st, "Expression"); }
- };
- base.ThrowStatement = base.SpreadElement =
- function (node, st, c) { return c(node.argument, st, "Expression"); };
- base.TryStatement = function (node, st, c) {
- c(node.block, st, "Statement");
- if (node.handler) { c(node.handler, st); }
- if (node.finalizer) { c(node.finalizer, st, "Statement"); }
- };
- base.CatchClause = function (node, st, c) {
- if (node.param) { c(node.param, st, "Pattern"); }
- c(node.body, st, "Statement");
- };
- base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
- c(node.test, st, "Expression");
- c(node.body, st, "Statement");
- };
- base.ForStatement = function (node, st, c) {
- if (node.init) { c(node.init, st, "ForInit"); }
- if (node.test) { c(node.test, st, "Expression"); }
- if (node.update) { c(node.update, st, "Expression"); }
- c(node.body, st, "Statement");
- };
- base.ForInStatement = base.ForOfStatement = function (node, st, c) {
- c(node.left, st, "ForInit");
- c(node.right, st, "Expression");
- c(node.body, st, "Statement");
- };
- base.ForInit = function (node, st, c) {
- if (node.type === "VariableDeclaration") { c(node, st); }
- else { c(node, st, "Expression"); }
- };
- base.DebuggerStatement = ignore;
-
- base.FunctionDeclaration = function (node, st, c) { return c(node, st, "Function"); };
- base.VariableDeclaration = function (node, st, c) {
- for (var i = 0, list = node.declarations; i < list.length; i += 1)
- {
- var decl = list[i];
-
- c(decl, st);
- }
- };
- base.VariableDeclarator = function (node, st, c) {
- c(node.id, st, "Pattern");
- if (node.init) { c(node.init, st, "Expression"); }
- };
-
- base.Function = function (node, st, c) {
- if (node.id) { c(node.id, st, "Pattern"); }
- for (var i = 0, list = node.params; i < list.length; i += 1)
- {
- var param = list[i];
-
- c(param, st, "Pattern");
- }
- c(node.body, st, node.expression ? "Expression" : "Statement");
- };
-
- base.Pattern = function (node, st, c) {
- if (node.type === "Identifier")
- { c(node, st, "VariablePattern"); }
- else if (node.type === "MemberExpression")
- { c(node, st, "MemberPattern"); }
- else
- { c(node, st); }
- };
- base.VariablePattern = ignore;
- base.MemberPattern = skipThrough;
- base.RestElement = function (node, st, c) { return c(node.argument, st, "Pattern"); };
- base.ArrayPattern = function (node, st, c) {
- for (var i = 0, list = node.elements; i < list.length; i += 1) {
- var elt = list[i];
-
- if (elt) { c(elt, st, "Pattern"); }
- }
- };
- base.ObjectPattern = function (node, st, c) {
- for (var i = 0, list = node.properties; i < list.length; i += 1) {
- var prop = list[i];
-
- if (prop.type === "Property") {
- if (prop.computed) { c(prop.key, st, "Expression"); }
- c(prop.value, st, "Pattern");
- } else if (prop.type === "RestElement") {
- c(prop.argument, st, "Pattern");
- }
- }
- };
-
- base.Expression = skipThrough;
- base.ThisExpression = base.Super = base.MetaProperty = ignore;
- base.ArrayExpression = function (node, st, c) {
- for (var i = 0, list = node.elements; i < list.length; i += 1) {
- var elt = list[i];
-
- if (elt) { c(elt, st, "Expression"); }
- }
- };
- base.ObjectExpression = function (node, st, c) {
- for (var i = 0, list = node.properties; i < list.length; i += 1)
- {
- var prop = list[i];
-
- c(prop, st);
- }
- };
- base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;
- base.SequenceExpression = function (node, st, c) {
- for (var i = 0, list = node.expressions; i < list.length; i += 1)
- {
- var expr = list[i];
-
- c(expr, st, "Expression");
- }
- };
- base.TemplateLiteral = function (node, st, c) {
- for (var i = 0, list = node.quasis; i < list.length; i += 1)
- {
- var quasi = list[i];
-
- c(quasi, st);
- }
-
- for (var i$1 = 0, list$1 = node.expressions; i$1 < list$1.length; i$1 += 1)
- {
- var expr = list$1[i$1];
-
- c(expr, st, "Expression");
- }
- };
- base.TemplateElement = ignore;
- base.UnaryExpression = base.UpdateExpression = function (node, st, c) {
- c(node.argument, st, "Expression");
- };
- base.BinaryExpression = base.LogicalExpression = function (node, st, c) {
- c(node.left, st, "Expression");
- c(node.right, st, "Expression");
- };
- base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {
- c(node.left, st, "Pattern");
- c(node.right, st, "Expression");
- };
- base.ConditionalExpression = function (node, st, c) {
- c(node.test, st, "Expression");
- c(node.consequent, st, "Expression");
- c(node.alternate, st, "Expression");
- };
- base.NewExpression = base.CallExpression = function (node, st, c) {
- c(node.callee, st, "Expression");
- if (node.arguments)
- { for (var i = 0, list = node.arguments; i < list.length; i += 1)
- {
- var arg = list[i];
-
- c(arg, st, "Expression");
- } }
- };
- base.MemberExpression = function (node, st, c) {
- c(node.object, st, "Expression");
- if (node.computed) { c(node.property, st, "Expression"); }
- };
- base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
- if (node.declaration)
- { c(node.declaration, st, node.type === "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }
- if (node.source) { c(node.source, st, "Expression"); }
- };
- base.ExportAllDeclaration = function (node, st, c) {
- c(node.source, st, "Expression");
- };
- base.ImportDeclaration = function (node, st, c) {
- for (var i = 0, list = node.specifiers; i < list.length; i += 1)
- {
- var spec = list[i];
-
- c(spec, st);
- }
- c(node.source, st, "Expression");
- };
- base.ImportExpression = function (node, st, c) {
- c(node.source, st, "Expression");
- };
- base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore;
-
- base.TaggedTemplateExpression = function (node, st, c) {
- c(node.tag, st, "Expression");
- c(node.quasi, st, "Expression");
- };
- base.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, "Class"); };
- base.Class = function (node, st, c) {
- if (node.id) { c(node.id, st, "Pattern"); }
- if (node.superClass) { c(node.superClass, st, "Expression"); }
- c(node.body, st);
- };
- base.ClassBody = function (node, st, c) {
- for (var i = 0, list = node.body; i < list.length; i += 1)
- {
- var elt = list[i];
-
- c(elt, st);
- }
- };
- base.MethodDefinition = base.Property = function (node, st, c) {
- if (node.computed) { c(node.key, st, "Expression"); }
- c(node.value, st, "Expression");
- };
-
- exports.ancestor = ancestor;
- exports.base = base;
- exports.findNodeAfter = findNodeAfter;
- exports.findNodeAround = findNodeAround;
- exports.findNodeAt = findNodeAt;
- exports.findNodeBefore = findNodeBefore;
- exports.full = full;
- exports.fullAncestor = fullAncestor;
- exports.make = make;
- exports.recursive = recursive;
- exports.simple = simple;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
diff --git a/node_modules/acorn-walk/dist/walk.js.map b/node_modules/acorn-walk/dist/walk.js.map
deleted file mode 100644
index 5590a29..0000000
--- a/node_modules/acorn-walk/dist/walk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"walk.js","sources":["../src/index.js"],"sourcesContent":["// AST walker module for Mozilla Parser API compatible trees\n\n// A simple walk is one where you simply specify callbacks to be\n// called on specific nodes. The last two arguments are optional. A\n// simple use would be\n//\n// walk.simple(myTree, {\n// Expression: function(node) { ... }\n// });\n//\n// to do something with all expressions. All Parser API node types\n// can be used to identify node types, as well as Expression and\n// Statement, which denote categories of nodes.\n//\n// The base argument can be used to pass a custom (recursive)\n// walker, and state can be used to give this walked an initial\n// state.\n\nexport function simple(node, visitors, baseVisitor, state, override) {\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type, found = visitors[type]\n baseVisitor[type](node, st, c)\n if (found) found(node, st)\n })(node, state, override)\n}\n\n// An ancestor walk keeps an array of ancestor nodes (including the\n// current node) and passes them to the callback as third parameter\n// (and also as state parameter when no other state is present).\nexport function ancestor(node, visitors, baseVisitor, state) {\n let ancestors = []\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type, found = visitors[type]\n let isNew = node !== ancestors[ancestors.length - 1]\n if (isNew) ancestors.push(node)\n baseVisitor[type](node, st, c)\n if (found) found(node, st || ancestors, ancestors)\n if (isNew) ancestors.pop()\n })(node, state)\n}\n\n// A recursive walk is one where your functions override the default\n// walkers. They can modify and replace the state parameter that's\n// threaded through the walk, and can opt how and whether to walk\n// their child nodes (by calling their third argument on these\n// nodes).\nexport function recursive(node, state, funcs, baseVisitor, override) {\n let visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor\n ;(function c(node, st, override) {\n visitor[override || node.type](node, st, c)\n })(node, state, override)\n}\n\nfunction makeTest(test) {\n if (typeof test === \"string\")\n return type => type === test\n else if (!test)\n return () => true\n else\n return test\n}\n\nclass Found {\n constructor(node, state) { this.node = node; this.state = state }\n}\n\n// A full walk triggers the callback on each node\nexport function full(node, callback, baseVisitor, state, override) {\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type\n baseVisitor[type](node, st, c)\n if (!override) callback(node, st, type)\n })(node, state, override)\n}\n\n// An fullAncestor walk is like an ancestor walk, but triggers\n// the callback on each node\nexport function fullAncestor(node, callback, baseVisitor, state) {\n if (!baseVisitor) baseVisitor = base\n let ancestors = []\n ;(function c(node, st, override) {\n let type = override || node.type\n let isNew = node !== ancestors[ancestors.length - 1]\n if (isNew) ancestors.push(node)\n baseVisitor[type](node, st, c)\n if (!override) callback(node, st || ancestors, ancestors, type)\n if (isNew) ancestors.pop()\n })(node, state)\n}\n\n// Find a node with a given start, end, and type (all are optional,\n// null can be used as wildcard). Returns a {node, state} object, or\n// undefined when it doesn't find a matching node.\nexport function findNodeAt(node, start, end, test, baseVisitor, state) {\n if (!baseVisitor) baseVisitor = base\n test = makeTest(test)\n try {\n (function c(node, st, override) {\n let type = override || node.type\n if ((start == null || node.start <= start) &&\n (end == null || node.end >= end))\n baseVisitor[type](node, st, c)\n if ((start == null || node.start === start) &&\n (end == null || node.end === end) &&\n test(type, node))\n throw new Found(node, st)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the innermost node of a given type that contains the given\n// position. Interface similar to findNodeAt.\nexport function findNodeAround(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n try {\n (function c(node, st, override) {\n let type = override || node.type\n if (node.start > pos || node.end < pos) return\n baseVisitor[type](node, st, c)\n if (test(type, node)) throw new Found(node, st)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the outermost matching node after a given position.\nexport function findNodeAfter(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n try {\n (function c(node, st, override) {\n if (node.end < pos) return\n let type = override || node.type\n if (node.start >= pos && test(type, node)) throw new Found(node, st)\n baseVisitor[type](node, st, c)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the outermost matching node before a given position.\nexport function findNodeBefore(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n let max\n ;(function c(node, st, override) {\n if (node.start > pos) return\n let type = override || node.type\n if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))\n max = new Found(node, st)\n baseVisitor[type](node, st, c)\n })(node, state)\n return max\n}\n\n// Fallback to an Object.create polyfill for older environments.\nconst create = Object.create || function(proto) {\n function Ctor() {}\n Ctor.prototype = proto\n return new Ctor\n}\n\n// Used to create a custom walker. Will fill in all missing node\n// type properties with the defaults.\nexport function make(funcs, baseVisitor) {\n let visitor = create(baseVisitor || base)\n for (let type in funcs) visitor[type] = funcs[type]\n return visitor\n}\n\nfunction skipThrough(node, st, c) { c(node, st) }\nfunction ignore(_node, _st, _c) {}\n\n// Node walkers.\n\nexport const base = {}\n\nbase.Program = base.BlockStatement = (node, st, c) => {\n for (let stmt of node.body)\n c(stmt, st, \"Statement\")\n}\nbase.Statement = skipThrough\nbase.EmptyStatement = ignore\nbase.ExpressionStatement = base.ParenthesizedExpression =\n (node, st, c) => c(node.expression, st, \"Expression\")\nbase.IfStatement = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.consequent, st, \"Statement\")\n if (node.alternate) c(node.alternate, st, \"Statement\")\n}\nbase.LabeledStatement = (node, st, c) => c(node.body, st, \"Statement\")\nbase.BreakStatement = base.ContinueStatement = ignore\nbase.WithStatement = (node, st, c) => {\n c(node.object, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.SwitchStatement = (node, st, c) => {\n c(node.discriminant, st, \"Expression\")\n for (let cs of node.cases) {\n if (cs.test) c(cs.test, st, \"Expression\")\n for (let cons of cs.consequent)\n c(cons, st, \"Statement\")\n }\n}\nbase.SwitchCase = (node, st, c) => {\n if (node.test) c(node.test, st, \"Expression\")\n for (let cons of node.consequent)\n c(cons, st, \"Statement\")\n}\nbase.ReturnStatement = base.YieldExpression = base.AwaitExpression = (node, st, c) => {\n if (node.argument) c(node.argument, st, \"Expression\")\n}\nbase.ThrowStatement = base.SpreadElement =\n (node, st, c) => c(node.argument, st, \"Expression\")\nbase.TryStatement = (node, st, c) => {\n c(node.block, st, \"Statement\")\n if (node.handler) c(node.handler, st)\n if (node.finalizer) c(node.finalizer, st, \"Statement\")\n}\nbase.CatchClause = (node, st, c) => {\n if (node.param) c(node.param, st, \"Pattern\")\n c(node.body, st, \"Statement\")\n}\nbase.WhileStatement = base.DoWhileStatement = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForStatement = (node, st, c) => {\n if (node.init) c(node.init, st, \"ForInit\")\n if (node.test) c(node.test, st, \"Expression\")\n if (node.update) c(node.update, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForInStatement = base.ForOfStatement = (node, st, c) => {\n c(node.left, st, \"ForInit\")\n c(node.right, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForInit = (node, st, c) => {\n if (node.type === \"VariableDeclaration\") c(node, st)\n else c(node, st, \"Expression\")\n}\nbase.DebuggerStatement = ignore\n\nbase.FunctionDeclaration = (node, st, c) => c(node, st, \"Function\")\nbase.VariableDeclaration = (node, st, c) => {\n for (let decl of node.declarations)\n c(decl, st)\n}\nbase.VariableDeclarator = (node, st, c) => {\n c(node.id, st, \"Pattern\")\n if (node.init) c(node.init, st, \"Expression\")\n}\n\nbase.Function = (node, st, c) => {\n if (node.id) c(node.id, st, \"Pattern\")\n for (let param of node.params)\n c(param, st, \"Pattern\")\n c(node.body, st, node.expression ? \"Expression\" : \"Statement\")\n}\n\nbase.Pattern = (node, st, c) => {\n if (node.type === \"Identifier\")\n c(node, st, \"VariablePattern\")\n else if (node.type === \"MemberExpression\")\n c(node, st, \"MemberPattern\")\n else\n c(node, st)\n}\nbase.VariablePattern = ignore\nbase.MemberPattern = skipThrough\nbase.RestElement = (node, st, c) => c(node.argument, st, \"Pattern\")\nbase.ArrayPattern = (node, st, c) => {\n for (let elt of node.elements) {\n if (elt) c(elt, st, \"Pattern\")\n }\n}\nbase.ObjectPattern = (node, st, c) => {\n for (let prop of node.properties) {\n if (prop.type === \"Property\") {\n if (prop.computed) c(prop.key, st, \"Expression\")\n c(prop.value, st, \"Pattern\")\n } else if (prop.type === \"RestElement\") {\n c(prop.argument, st, \"Pattern\")\n }\n }\n}\n\nbase.Expression = skipThrough\nbase.ThisExpression = base.Super = base.MetaProperty = ignore\nbase.ArrayExpression = (node, st, c) => {\n for (let elt of node.elements) {\n if (elt) c(elt, st, \"Expression\")\n }\n}\nbase.ObjectExpression = (node, st, c) => {\n for (let prop of node.properties)\n c(prop, st)\n}\nbase.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration\nbase.SequenceExpression = (node, st, c) => {\n for (let expr of node.expressions)\n c(expr, st, \"Expression\")\n}\nbase.TemplateLiteral = (node, st, c) => {\n for (let quasi of node.quasis)\n c(quasi, st)\n\n for (let expr of node.expressions)\n c(expr, st, \"Expression\")\n}\nbase.TemplateElement = ignore\nbase.UnaryExpression = base.UpdateExpression = (node, st, c) => {\n c(node.argument, st, \"Expression\")\n}\nbase.BinaryExpression = base.LogicalExpression = (node, st, c) => {\n c(node.left, st, \"Expression\")\n c(node.right, st, \"Expression\")\n}\nbase.AssignmentExpression = base.AssignmentPattern = (node, st, c) => {\n c(node.left, st, \"Pattern\")\n c(node.right, st, \"Expression\")\n}\nbase.ConditionalExpression = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.consequent, st, \"Expression\")\n c(node.alternate, st, \"Expression\")\n}\nbase.NewExpression = base.CallExpression = (node, st, c) => {\n c(node.callee, st, \"Expression\")\n if (node.arguments)\n for (let arg of node.arguments)\n c(arg, st, \"Expression\")\n}\nbase.MemberExpression = (node, st, c) => {\n c(node.object, st, \"Expression\")\n if (node.computed) c(node.property, st, \"Expression\")\n}\nbase.ExportNamedDeclaration = base.ExportDefaultDeclaration = (node, st, c) => {\n if (node.declaration)\n c(node.declaration, st, node.type === \"ExportNamedDeclaration\" || node.declaration.id ? \"Statement\" : \"Expression\")\n if (node.source) c(node.source, st, \"Expression\")\n}\nbase.ExportAllDeclaration = (node, st, c) => {\n c(node.source, st, \"Expression\")\n}\nbase.ImportDeclaration = (node, st, c) => {\n for (let spec of node.specifiers)\n c(spec, st)\n c(node.source, st, \"Expression\")\n}\nbase.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore\n\nbase.TaggedTemplateExpression = (node, st, c) => {\n c(node.tag, st, \"Expression\")\n c(node.quasi, st, \"Expression\")\n}\nbase.ClassDeclaration = base.ClassExpression = (node, st, c) => c(node, st, \"Class\")\nbase.Class = (node, st, c) => {\n if (node.id) c(node.id, st, \"Pattern\")\n if (node.superClass) c(node.superClass, st, \"Expression\")\n c(node.body, st)\n}\nbase.ClassBody = (node, st, c) => {\n for (let elt of node.body)\n c(elt, st)\n}\nbase.MethodDefinition = base.Property = (node, st, c) => {\n if (node.computed) c(node.key, st, \"Expression\")\n c(node.value, st, \"Expression\")\n}\n"],"names":["let","const"],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;AAkBA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;EACnE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;IACxD,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,KAAK,EAAE,EAAA,KAAK,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;;;;AAKD,AAAO,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;EAC3DA,IAAI,SAAS,GAAG,GAAE;EAClB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;IACxDA,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;IACpD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA;IAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,KAAK,EAAE,EAAA,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,EAAE,SAAS,EAAC,EAAA;IAClD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,GAAG,GAAE,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAC;CAChB;;;;;;;AAOD,AAAO,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;EACnEA,IAAI,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,SAAS,CAAC,GAAG,WAAW,CACxE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/B,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;GAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;AAED,SAAS,QAAQ,CAAC,IAAI,EAAE;EACtB,IAAI,OAAO,IAAI,KAAK,QAAQ;IAC1B,EAAA,OAAO,UAAA,IAAI,EAAC,SAAG,IAAI,KAAK,IAAI,GAAA,EAAA;OACzB,IAAI,CAAC,IAAI;IACZ,EAAA,OAAO,YAAG,SAAG,IAAI,GAAA,EAAA;;IAEjB,EAAA,OAAO,IAAI,EAAA;CACd;;AAED,IAAM,KAAK,GAAC,cACC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,MAAK,EAAE,CAAA;;;AAInE,AAAO,SAAS,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;EACjE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,EAAA;GACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;;;AAID,AAAO,SAAS,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;EAC/D,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpCA,IAAI,SAAS,GAAG,EAAE,CACjB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChCA,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;IACpD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA;IAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,EAAA;IAC/D,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,GAAG,GAAE,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAC;CAChB;;;;;AAKD,AAAO,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EACrE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK;WACpC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;QAClC,EAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC,EAAA;MAChC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;WACrC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC;UACjC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;QAClB,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;KAC5B,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;;AAID,AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EAClE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;MAC9C,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;MAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;KAChD,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;AAGD,AAAO,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EACjE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;MAC1BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;MACpE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;KAC/B,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;AAGD,AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EAClE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpCA,IAAI,GAAG,CACN,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;IAC5BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChC,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;MAC1E,EAAA,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;IAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;GAC/B,EAAE,IAAI,EAAE,KAAK,EAAC;EACf,OAAO,GAAG;CACX;;;AAGDC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,KAAK,EAAE;EAC9C,SAAS,IAAI,GAAG,EAAE;EAClB,IAAI,CAAC,SAAS,GAAG,MAAK;EACtB,OAAO,IAAI,IAAI;EAChB;;;;AAID,AAAO,SAAS,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;EACvCD,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,EAAC;EACzC,KAAKA,IAAI,IAAI,IAAI,KAAK,EAAE,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAC,EAAA;EACnD,OAAO,OAAO;CACf;;AAED,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAE;AACjD,SAAS,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;;;;AAIlC,AAAOC,IAAM,IAAI,GAAG,GAAE;;AAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjD,KAAa,kBAAI,IAAI,CAAC,IAAI,yBAAA;IAArB;IAAAD,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;GAAA;EAC3B;AACD,IAAI,CAAC,SAAS,GAAG,YAAW;AAC5B,IAAI,CAAC,cAAc,GAAG,OAAM;AAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB;EACrD,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,CAAC,IAAA;AACvD,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,EAAC;EACnC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,EAAC,EAAA;EACvD;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,IAAA;AACtE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,GAAG,OAAM;AACrD,IAAI,CAAC,aAAa,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,EAAC;EACtC,KAAW,kBAAI,IAAI,CAAC,KAAK,yBAAA,EAAE;IAAtBA,IAAI,EAAE;;IACT,IAAI,EAAE,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;IACzC,KAAa,sBAAI,EAAE,CAAC,UAAU,+BAAA;MAAzB;MAAAA,IAAI,IAAI;;MACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;KAAA;GAC3B;EACF;AACD,IAAI,CAAC,UAAU,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC7C,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;GAAA;EAC3B;AACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjF,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACtD;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa;EACtC,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,IAAA;AACrD,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAC,EAAA;EACrC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,EAAC,EAAA;EACvD;AACD,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC1D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACjD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACxD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC;EAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,OAAO,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;OAC/C,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC/B;AACD,IAAI,CAAC,iBAAiB,GAAG,OAAM;;AAE/B,IAAI,CAAC,mBAAmB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,IAAA;AACnE,IAAI,CAAC,mBAAmB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACvC,KAAa,kBAAI,IAAI,CAAC,YAAY,yBAAA;IAA7B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACd;AACD,IAAI,CAAC,kBAAkB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACtC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC;EACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC9C;;AAED,IAAI,CAAC,QAAQ,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC5B,IAAI,IAAI,CAAC,EAAE,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EACtC,KAAc,kBAAI,IAAI,CAAC,MAAM,yBAAA;IAAxB;IAAAA,IAAI,KAAK;;IACZ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC;GAAA;EACzB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,WAAW,EAAC;EAC/D;;AAED,IAAI,CAAC,OAAO,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;IAC5B,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAC,EAAA;OAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;IACvC,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,eAAe,EAAC,EAAA;;IAE5B,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;EACd;AACD,IAAI,CAAC,eAAe,GAAG,OAAM;AAC7B,IAAI,CAAC,aAAa,GAAG,YAAW;AAChC,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,IAAA;AACnE,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,KAAY,kBAAI,IAAI,CAAC,QAAQ,yBAAA,EAAE;IAA1BA,IAAI,GAAG;;IACV,IAAI,GAAG,EAAE,EAAA,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;GAC/B;EACF;AACD,IAAI,CAAC,aAAa,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA,EAAE;IAA7BA,IAAI,IAAI;;IACX,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;MAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;MAChD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC;KAC7B,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;MACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAC;KAChC;GACF;EACF;;AAED,IAAI,CAAC,UAAU,GAAG,YAAW;AAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,OAAM;AAC7D,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,KAAY,kBAAI,IAAI,CAAC,QAAQ,yBAAA,EAAE;IAA1BA,IAAI,GAAG;;IACV,IAAI,GAAG,EAAE,EAAA,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;GAClC;EACF;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACd;AACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,oBAAmB;AACjF,IAAI,CAAC,kBAAkB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACtC,KAAa,kBAAI,IAAI,CAAC,WAAW,yBAAA;IAA5B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;GAAA;EAC5B;AACD,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,KAAc,kBAAI,IAAI,CAAC,MAAM,yBAAA;IAAxB;IAAAA,IAAI,KAAK;;IACZ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAC;GAAA;;EAEd,KAAa,sBAAI,IAAI,CAAC,WAAW,+BAAA;IAA5B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;GAAA;EAC5B;AACD,IAAI,CAAC,eAAe,GAAG,OAAM;AAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3D,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC;EACnC;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC7D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC;EAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,qBAAqB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACzC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAC;EACpC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,YAAY,EAAC;EACpC;AACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACvD,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,IAAI,IAAI,CAAC,SAAS;IAChB,EAAA,KAAY,kBAAI,IAAI,CAAC,SAAS,yBAAA;MAAzB;QAAAA,IAAI,GAAG;;QACV,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC;OAAA,EAAA;EAC7B;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACtD;AACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC1E,IAAI,IAAI,CAAC,WAAW;IAClB,EAAA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,YAAY,EAAC,EAAA;EACrH,IAAI,IAAI,CAAC,MAAM,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAClD;AACD,IAAI,CAAC,oBAAoB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACxC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EACjC;AACD,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACrC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACb,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EACjC;AACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,OAAM;;AAE5H,IAAI,CAAC,wBAAwB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC;EAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,IAAA;AACpF,IAAI,CAAC,KAAK,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACzB,IAAI,IAAI,CAAC,EAAE,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EACtC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACzD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAC;EACjB;AACD,IAAI,CAAC,SAAS,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC7B,KAAY,kBAAI,IAAI,CAAC,IAAI,yBAAA;IAApB;IAAAA,IAAI,GAAG;;IACV,CAAC,CAAC,GAAG,EAAE,EAAE,EAAC;GAAA;EACb;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAChD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;CAChC;;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file
diff --git a/node_modules/acorn-walk/dist/walk.mjs b/node_modules/acorn-walk/dist/walk.mjs
deleted file mode 100644
index 65b23ed..0000000
--- a/node_modules/acorn-walk/dist/walk.mjs
+++ /dev/null
@@ -1,441 +0,0 @@
-// AST walker module for Mozilla Parser API compatible trees
-
-// A simple walk is one where you simply specify callbacks to be
-// called on specific nodes. The last two arguments are optional. A
-// simple use would be
-//
-// walk.simple(myTree, {
-// Expression: function(node) { ... }
-// });
-//
-// to do something with all expressions. All Parser API node types
-// can be used to identify node types, as well as Expression and
-// Statement, which denote categories of nodes.
-//
-// The base argument can be used to pass a custom (recursive)
-// walker, and state can be used to give this walked an initial
-// state.
-
-function simple(node, visitors, baseVisitor, state, override) {
- if (!baseVisitor) { baseVisitor = base
- ; }(function c(node, st, override) {
- var type = override || node.type, found = visitors[type];
- baseVisitor[type](node, st, c);
- if (found) { found(node, st); }
- })(node, state, override);
-}
-
-// An ancestor walk keeps an array of ancestor nodes (including the
-// current node) and passes them to the callback as third parameter
-// (and also as state parameter when no other state is present).
-function ancestor(node, visitors, baseVisitor, state) {
- var ancestors = [];
- if (!baseVisitor) { baseVisitor = base
- ; }(function c(node, st, override) {
- var type = override || node.type, found = visitors[type];
- var isNew = node !== ancestors[ancestors.length - 1];
- if (isNew) { ancestors.push(node); }
- baseVisitor[type](node, st, c);
- if (found) { found(node, st || ancestors, ancestors); }
- if (isNew) { ancestors.pop(); }
- })(node, state);
-}
-
-// A recursive walk is one where your functions override the default
-// walkers. They can modify and replace the state parameter that's
-// threaded through the walk, and can opt how and whether to walk
-// their child nodes (by calling their third argument on these
-// nodes).
-function recursive(node, state, funcs, baseVisitor, override) {
- var visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor
- ;(function c(node, st, override) {
- visitor[override || node.type](node, st, c);
- })(node, state, override);
-}
-
-function makeTest(test) {
- if (typeof test === "string")
- { return function (type) { return type === test; } }
- else if (!test)
- { return function () { return true; } }
- else
- { return test }
-}
-
-var Found = function Found(node, state) { this.node = node; this.state = state; };
-
-// A full walk triggers the callback on each node
-function full(node, callback, baseVisitor, state, override) {
- if (!baseVisitor) { baseVisitor = base
- ; }(function c(node, st, override) {
- var type = override || node.type;
- baseVisitor[type](node, st, c);
- if (!override) { callback(node, st, type); }
- })(node, state, override);
-}
-
-// An fullAncestor walk is like an ancestor walk, but triggers
-// the callback on each node
-function fullAncestor(node, callback, baseVisitor, state) {
- if (!baseVisitor) { baseVisitor = base; }
- var ancestors = []
- ;(function c(node, st, override) {
- var type = override || node.type;
- var isNew = node !== ancestors[ancestors.length - 1];
- if (isNew) { ancestors.push(node); }
- baseVisitor[type](node, st, c);
- if (!override) { callback(node, st || ancestors, ancestors, type); }
- if (isNew) { ancestors.pop(); }
- })(node, state);
-}
-
-// Find a node with a given start, end, and type (all are optional,
-// null can be used as wildcard). Returns a {node, state} object, or
-// undefined when it doesn't find a matching node.
-function findNodeAt(node, start, end, test, baseVisitor, state) {
- if (!baseVisitor) { baseVisitor = base; }
- test = makeTest(test);
- try {
- (function c(node, st, override) {
- var type = override || node.type;
- if ((start == null || node.start <= start) &&
- (end == null || node.end >= end))
- { baseVisitor[type](node, st, c); }
- if ((start == null || node.start === start) &&
- (end == null || node.end === end) &&
- test(type, node))
- { throw new Found(node, st) }
- })(node, state);
- } catch (e) {
- if (e instanceof Found) { return e }
- throw e
- }
-}
-
-// Find the innermost node of a given type that contains the given
-// position. Interface similar to findNodeAt.
-function findNodeAround(node, pos, test, baseVisitor, state) {
- test = makeTest(test);
- if (!baseVisitor) { baseVisitor = base; }
- try {
- (function c(node, st, override) {
- var type = override || node.type;
- if (node.start > pos || node.end < pos) { return }
- baseVisitor[type](node, st, c);
- if (test(type, node)) { throw new Found(node, st) }
- })(node, state);
- } catch (e) {
- if (e instanceof Found) { return e }
- throw e
- }
-}
-
-// Find the outermost matching node after a given position.
-function findNodeAfter(node, pos, test, baseVisitor, state) {
- test = makeTest(test);
- if (!baseVisitor) { baseVisitor = base; }
- try {
- (function c(node, st, override) {
- if (node.end < pos) { return }
- var type = override || node.type;
- if (node.start >= pos && test(type, node)) { throw new Found(node, st) }
- baseVisitor[type](node, st, c);
- })(node, state);
- } catch (e) {
- if (e instanceof Found) { return e }
- throw e
- }
-}
-
-// Find the outermost matching node before a given position.
-function findNodeBefore(node, pos, test, baseVisitor, state) {
- test = makeTest(test);
- if (!baseVisitor) { baseVisitor = base; }
- var max
- ;(function c(node, st, override) {
- if (node.start > pos) { return }
- var type = override || node.type;
- if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))
- { max = new Found(node, st); }
- baseVisitor[type](node, st, c);
- })(node, state);
- return max
-}
-
-// Fallback to an Object.create polyfill for older environments.
-var create = Object.create || function(proto) {
- function Ctor() {}
- Ctor.prototype = proto;
- return new Ctor
-};
-
-// Used to create a custom walker. Will fill in all missing node
-// type properties with the defaults.
-function make(funcs, baseVisitor) {
- var visitor = create(baseVisitor || base);
- for (var type in funcs) { visitor[type] = funcs[type]; }
- return visitor
-}
-
-function skipThrough(node, st, c) { c(node, st); }
-function ignore(_node, _st, _c) {}
-
-// Node walkers.
-
-var base = {};
-
-base.Program = base.BlockStatement = function (node, st, c) {
- for (var i = 0, list = node.body; i < list.length; i += 1)
- {
- var stmt = list[i];
-
- c(stmt, st, "Statement");
- }
-};
-base.Statement = skipThrough;
-base.EmptyStatement = ignore;
-base.ExpressionStatement = base.ParenthesizedExpression =
- function (node, st, c) { return c(node.expression, st, "Expression"); };
-base.IfStatement = function (node, st, c) {
- c(node.test, st, "Expression");
- c(node.consequent, st, "Statement");
- if (node.alternate) { c(node.alternate, st, "Statement"); }
-};
-base.LabeledStatement = function (node, st, c) { return c(node.body, st, "Statement"); };
-base.BreakStatement = base.ContinueStatement = ignore;
-base.WithStatement = function (node, st, c) {
- c(node.object, st, "Expression");
- c(node.body, st, "Statement");
-};
-base.SwitchStatement = function (node, st, c) {
- c(node.discriminant, st, "Expression");
- for (var i$1 = 0, list$1 = node.cases; i$1 < list$1.length; i$1 += 1) {
- var cs = list$1[i$1];
-
- if (cs.test) { c(cs.test, st, "Expression"); }
- for (var i = 0, list = cs.consequent; i < list.length; i += 1)
- {
- var cons = list[i];
-
- c(cons, st, "Statement");
- }
- }
-};
-base.SwitchCase = function (node, st, c) {
- if (node.test) { c(node.test, st, "Expression"); }
- for (var i = 0, list = node.consequent; i < list.length; i += 1)
- {
- var cons = list[i];
-
- c(cons, st, "Statement");
- }
-};
-base.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {
- if (node.argument) { c(node.argument, st, "Expression"); }
-};
-base.ThrowStatement = base.SpreadElement =
- function (node, st, c) { return c(node.argument, st, "Expression"); };
-base.TryStatement = function (node, st, c) {
- c(node.block, st, "Statement");
- if (node.handler) { c(node.handler, st); }
- if (node.finalizer) { c(node.finalizer, st, "Statement"); }
-};
-base.CatchClause = function (node, st, c) {
- if (node.param) { c(node.param, st, "Pattern"); }
- c(node.body, st, "Statement");
-};
-base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
- c(node.test, st, "Expression");
- c(node.body, st, "Statement");
-};
-base.ForStatement = function (node, st, c) {
- if (node.init) { c(node.init, st, "ForInit"); }
- if (node.test) { c(node.test, st, "Expression"); }
- if (node.update) { c(node.update, st, "Expression"); }
- c(node.body, st, "Statement");
-};
-base.ForInStatement = base.ForOfStatement = function (node, st, c) {
- c(node.left, st, "ForInit");
- c(node.right, st, "Expression");
- c(node.body, st, "Statement");
-};
-base.ForInit = function (node, st, c) {
- if (node.type === "VariableDeclaration") { c(node, st); }
- else { c(node, st, "Expression"); }
-};
-base.DebuggerStatement = ignore;
-
-base.FunctionDeclaration = function (node, st, c) { return c(node, st, "Function"); };
-base.VariableDeclaration = function (node, st, c) {
- for (var i = 0, list = node.declarations; i < list.length; i += 1)
- {
- var decl = list[i];
-
- c(decl, st);
- }
-};
-base.VariableDeclarator = function (node, st, c) {
- c(node.id, st, "Pattern");
- if (node.init) { c(node.init, st, "Expression"); }
-};
-
-base.Function = function (node, st, c) {
- if (node.id) { c(node.id, st, "Pattern"); }
- for (var i = 0, list = node.params; i < list.length; i += 1)
- {
- var param = list[i];
-
- c(param, st, "Pattern");
- }
- c(node.body, st, node.expression ? "Expression" : "Statement");
-};
-
-base.Pattern = function (node, st, c) {
- if (node.type === "Identifier")
- { c(node, st, "VariablePattern"); }
- else if (node.type === "MemberExpression")
- { c(node, st, "MemberPattern"); }
- else
- { c(node, st); }
-};
-base.VariablePattern = ignore;
-base.MemberPattern = skipThrough;
-base.RestElement = function (node, st, c) { return c(node.argument, st, "Pattern"); };
-base.ArrayPattern = function (node, st, c) {
- for (var i = 0, list = node.elements; i < list.length; i += 1) {
- var elt = list[i];
-
- if (elt) { c(elt, st, "Pattern"); }
- }
-};
-base.ObjectPattern = function (node, st, c) {
- for (var i = 0, list = node.properties; i < list.length; i += 1) {
- var prop = list[i];
-
- if (prop.type === "Property") {
- if (prop.computed) { c(prop.key, st, "Expression"); }
- c(prop.value, st, "Pattern");
- } else if (prop.type === "RestElement") {
- c(prop.argument, st, "Pattern");
- }
- }
-};
-
-base.Expression = skipThrough;
-base.ThisExpression = base.Super = base.MetaProperty = ignore;
-base.ArrayExpression = function (node, st, c) {
- for (var i = 0, list = node.elements; i < list.length; i += 1) {
- var elt = list[i];
-
- if (elt) { c(elt, st, "Expression"); }
- }
-};
-base.ObjectExpression = function (node, st, c) {
- for (var i = 0, list = node.properties; i < list.length; i += 1)
- {
- var prop = list[i];
-
- c(prop, st);
- }
-};
-base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;
-base.SequenceExpression = function (node, st, c) {
- for (var i = 0, list = node.expressions; i < list.length; i += 1)
- {
- var expr = list[i];
-
- c(expr, st, "Expression");
- }
-};
-base.TemplateLiteral = function (node, st, c) {
- for (var i = 0, list = node.quasis; i < list.length; i += 1)
- {
- var quasi = list[i];
-
- c(quasi, st);
- }
-
- for (var i$1 = 0, list$1 = node.expressions; i$1 < list$1.length; i$1 += 1)
- {
- var expr = list$1[i$1];
-
- c(expr, st, "Expression");
- }
-};
-base.TemplateElement = ignore;
-base.UnaryExpression = base.UpdateExpression = function (node, st, c) {
- c(node.argument, st, "Expression");
-};
-base.BinaryExpression = base.LogicalExpression = function (node, st, c) {
- c(node.left, st, "Expression");
- c(node.right, st, "Expression");
-};
-base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {
- c(node.left, st, "Pattern");
- c(node.right, st, "Expression");
-};
-base.ConditionalExpression = function (node, st, c) {
- c(node.test, st, "Expression");
- c(node.consequent, st, "Expression");
- c(node.alternate, st, "Expression");
-};
-base.NewExpression = base.CallExpression = function (node, st, c) {
- c(node.callee, st, "Expression");
- if (node.arguments)
- { for (var i = 0, list = node.arguments; i < list.length; i += 1)
- {
- var arg = list[i];
-
- c(arg, st, "Expression");
- } }
-};
-base.MemberExpression = function (node, st, c) {
- c(node.object, st, "Expression");
- if (node.computed) { c(node.property, st, "Expression"); }
-};
-base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
- if (node.declaration)
- { c(node.declaration, st, node.type === "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }
- if (node.source) { c(node.source, st, "Expression"); }
-};
-base.ExportAllDeclaration = function (node, st, c) {
- c(node.source, st, "Expression");
-};
-base.ImportDeclaration = function (node, st, c) {
- for (var i = 0, list = node.specifiers; i < list.length; i += 1)
- {
- var spec = list[i];
-
- c(spec, st);
- }
- c(node.source, st, "Expression");
-};
-base.ImportExpression = function (node, st, c) {
- c(node.source, st, "Expression");
-};
-base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore;
-
-base.TaggedTemplateExpression = function (node, st, c) {
- c(node.tag, st, "Expression");
- c(node.quasi, st, "Expression");
-};
-base.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, "Class"); };
-base.Class = function (node, st, c) {
- if (node.id) { c(node.id, st, "Pattern"); }
- if (node.superClass) { c(node.superClass, st, "Expression"); }
- c(node.body, st);
-};
-base.ClassBody = function (node, st, c) {
- for (var i = 0, list = node.body; i < list.length; i += 1)
- {
- var elt = list[i];
-
- c(elt, st);
- }
-};
-base.MethodDefinition = base.Property = function (node, st, c) {
- if (node.computed) { c(node.key, st, "Expression"); }
- c(node.value, st, "Expression");
-};
-
-export { ancestor, base, findNodeAfter, findNodeAround, findNodeAt, findNodeBefore, full, fullAncestor, make, recursive, simple };
diff --git a/node_modules/acorn-walk/dist/walk.mjs.map b/node_modules/acorn-walk/dist/walk.mjs.map
deleted file mode 100644
index 2a94219..0000000
--- a/node_modules/acorn-walk/dist/walk.mjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"walk.mjs","sources":["../src/index.js"],"sourcesContent":["// AST walker module for Mozilla Parser API compatible trees\n\n// A simple walk is one where you simply specify callbacks to be\n// called on specific nodes. The last two arguments are optional. A\n// simple use would be\n//\n// walk.simple(myTree, {\n// Expression: function(node) { ... }\n// });\n//\n// to do something with all expressions. All Parser API node types\n// can be used to identify node types, as well as Expression and\n// Statement, which denote categories of nodes.\n//\n// The base argument can be used to pass a custom (recursive)\n// walker, and state can be used to give this walked an initial\n// state.\n\nexport function simple(node, visitors, baseVisitor, state, override) {\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type, found = visitors[type]\n baseVisitor[type](node, st, c)\n if (found) found(node, st)\n })(node, state, override)\n}\n\n// An ancestor walk keeps an array of ancestor nodes (including the\n// current node) and passes them to the callback as third parameter\n// (and also as state parameter when no other state is present).\nexport function ancestor(node, visitors, baseVisitor, state) {\n let ancestors = []\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type, found = visitors[type]\n let isNew = node !== ancestors[ancestors.length - 1]\n if (isNew) ancestors.push(node)\n baseVisitor[type](node, st, c)\n if (found) found(node, st || ancestors, ancestors)\n if (isNew) ancestors.pop()\n })(node, state)\n}\n\n// A recursive walk is one where your functions override the default\n// walkers. They can modify and replace the state parameter that's\n// threaded through the walk, and can opt how and whether to walk\n// their child nodes (by calling their third argument on these\n// nodes).\nexport function recursive(node, state, funcs, baseVisitor, override) {\n let visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor\n ;(function c(node, st, override) {\n visitor[override || node.type](node, st, c)\n })(node, state, override)\n}\n\nfunction makeTest(test) {\n if (typeof test === \"string\")\n return type => type === test\n else if (!test)\n return () => true\n else\n return test\n}\n\nclass Found {\n constructor(node, state) { this.node = node; this.state = state }\n}\n\n// A full walk triggers the callback on each node\nexport function full(node, callback, baseVisitor, state, override) {\n if (!baseVisitor) baseVisitor = base\n ;(function c(node, st, override) {\n let type = override || node.type\n baseVisitor[type](node, st, c)\n if (!override) callback(node, st, type)\n })(node, state, override)\n}\n\n// An fullAncestor walk is like an ancestor walk, but triggers\n// the callback on each node\nexport function fullAncestor(node, callback, baseVisitor, state) {\n if (!baseVisitor) baseVisitor = base\n let ancestors = []\n ;(function c(node, st, override) {\n let type = override || node.type\n let isNew = node !== ancestors[ancestors.length - 1]\n if (isNew) ancestors.push(node)\n baseVisitor[type](node, st, c)\n if (!override) callback(node, st || ancestors, ancestors, type)\n if (isNew) ancestors.pop()\n })(node, state)\n}\n\n// Find a node with a given start, end, and type (all are optional,\n// null can be used as wildcard). Returns a {node, state} object, or\n// undefined when it doesn't find a matching node.\nexport function findNodeAt(node, start, end, test, baseVisitor, state) {\n if (!baseVisitor) baseVisitor = base\n test = makeTest(test)\n try {\n (function c(node, st, override) {\n let type = override || node.type\n if ((start == null || node.start <= start) &&\n (end == null || node.end >= end))\n baseVisitor[type](node, st, c)\n if ((start == null || node.start === start) &&\n (end == null || node.end === end) &&\n test(type, node))\n throw new Found(node, st)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the innermost node of a given type that contains the given\n// position. Interface similar to findNodeAt.\nexport function findNodeAround(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n try {\n (function c(node, st, override) {\n let type = override || node.type\n if (node.start > pos || node.end < pos) return\n baseVisitor[type](node, st, c)\n if (test(type, node)) throw new Found(node, st)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the outermost matching node after a given position.\nexport function findNodeAfter(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n try {\n (function c(node, st, override) {\n if (node.end < pos) return\n let type = override || node.type\n if (node.start >= pos && test(type, node)) throw new Found(node, st)\n baseVisitor[type](node, st, c)\n })(node, state)\n } catch (e) {\n if (e instanceof Found) return e\n throw e\n }\n}\n\n// Find the outermost matching node before a given position.\nexport function findNodeBefore(node, pos, test, baseVisitor, state) {\n test = makeTest(test)\n if (!baseVisitor) baseVisitor = base\n let max\n ;(function c(node, st, override) {\n if (node.start > pos) return\n let type = override || node.type\n if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))\n max = new Found(node, st)\n baseVisitor[type](node, st, c)\n })(node, state)\n return max\n}\n\n// Fallback to an Object.create polyfill for older environments.\nconst create = Object.create || function(proto) {\n function Ctor() {}\n Ctor.prototype = proto\n return new Ctor\n}\n\n// Used to create a custom walker. Will fill in all missing node\n// type properties with the defaults.\nexport function make(funcs, baseVisitor) {\n let visitor = create(baseVisitor || base)\n for (let type in funcs) visitor[type] = funcs[type]\n return visitor\n}\n\nfunction skipThrough(node, st, c) { c(node, st) }\nfunction ignore(_node, _st, _c) {}\n\n// Node walkers.\n\nexport const base = {}\n\nbase.Program = base.BlockStatement = (node, st, c) => {\n for (let stmt of node.body)\n c(stmt, st, \"Statement\")\n}\nbase.Statement = skipThrough\nbase.EmptyStatement = ignore\nbase.ExpressionStatement = base.ParenthesizedExpression =\n (node, st, c) => c(node.expression, st, \"Expression\")\nbase.IfStatement = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.consequent, st, \"Statement\")\n if (node.alternate) c(node.alternate, st, \"Statement\")\n}\nbase.LabeledStatement = (node, st, c) => c(node.body, st, \"Statement\")\nbase.BreakStatement = base.ContinueStatement = ignore\nbase.WithStatement = (node, st, c) => {\n c(node.object, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.SwitchStatement = (node, st, c) => {\n c(node.discriminant, st, \"Expression\")\n for (let cs of node.cases) {\n if (cs.test) c(cs.test, st, \"Expression\")\n for (let cons of cs.consequent)\n c(cons, st, \"Statement\")\n }\n}\nbase.SwitchCase = (node, st, c) => {\n if (node.test) c(node.test, st, \"Expression\")\n for (let cons of node.consequent)\n c(cons, st, \"Statement\")\n}\nbase.ReturnStatement = base.YieldExpression = base.AwaitExpression = (node, st, c) => {\n if (node.argument) c(node.argument, st, \"Expression\")\n}\nbase.ThrowStatement = base.SpreadElement =\n (node, st, c) => c(node.argument, st, \"Expression\")\nbase.TryStatement = (node, st, c) => {\n c(node.block, st, \"Statement\")\n if (node.handler) c(node.handler, st)\n if (node.finalizer) c(node.finalizer, st, \"Statement\")\n}\nbase.CatchClause = (node, st, c) => {\n if (node.param) c(node.param, st, \"Pattern\")\n c(node.body, st, \"Statement\")\n}\nbase.WhileStatement = base.DoWhileStatement = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForStatement = (node, st, c) => {\n if (node.init) c(node.init, st, \"ForInit\")\n if (node.test) c(node.test, st, \"Expression\")\n if (node.update) c(node.update, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForInStatement = base.ForOfStatement = (node, st, c) => {\n c(node.left, st, \"ForInit\")\n c(node.right, st, \"Expression\")\n c(node.body, st, \"Statement\")\n}\nbase.ForInit = (node, st, c) => {\n if (node.type === \"VariableDeclaration\") c(node, st)\n else c(node, st, \"Expression\")\n}\nbase.DebuggerStatement = ignore\n\nbase.FunctionDeclaration = (node, st, c) => c(node, st, \"Function\")\nbase.VariableDeclaration = (node, st, c) => {\n for (let decl of node.declarations)\n c(decl, st)\n}\nbase.VariableDeclarator = (node, st, c) => {\n c(node.id, st, \"Pattern\")\n if (node.init) c(node.init, st, \"Expression\")\n}\n\nbase.Function = (node, st, c) => {\n if (node.id) c(node.id, st, \"Pattern\")\n for (let param of node.params)\n c(param, st, \"Pattern\")\n c(node.body, st, node.expression ? \"Expression\" : \"Statement\")\n}\n\nbase.Pattern = (node, st, c) => {\n if (node.type === \"Identifier\")\n c(node, st, \"VariablePattern\")\n else if (node.type === \"MemberExpression\")\n c(node, st, \"MemberPattern\")\n else\n c(node, st)\n}\nbase.VariablePattern = ignore\nbase.MemberPattern = skipThrough\nbase.RestElement = (node, st, c) => c(node.argument, st, \"Pattern\")\nbase.ArrayPattern = (node, st, c) => {\n for (let elt of node.elements) {\n if (elt) c(elt, st, \"Pattern\")\n }\n}\nbase.ObjectPattern = (node, st, c) => {\n for (let prop of node.properties) {\n if (prop.type === \"Property\") {\n if (prop.computed) c(prop.key, st, \"Expression\")\n c(prop.value, st, \"Pattern\")\n } else if (prop.type === \"RestElement\") {\n c(prop.argument, st, \"Pattern\")\n }\n }\n}\n\nbase.Expression = skipThrough\nbase.ThisExpression = base.Super = base.MetaProperty = ignore\nbase.ArrayExpression = (node, st, c) => {\n for (let elt of node.elements) {\n if (elt) c(elt, st, \"Expression\")\n }\n}\nbase.ObjectExpression = (node, st, c) => {\n for (let prop of node.properties)\n c(prop, st)\n}\nbase.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration\nbase.SequenceExpression = (node, st, c) => {\n for (let expr of node.expressions)\n c(expr, st, \"Expression\")\n}\nbase.TemplateLiteral = (node, st, c) => {\n for (let quasi of node.quasis)\n c(quasi, st)\n\n for (let expr of node.expressions)\n c(expr, st, \"Expression\")\n}\nbase.TemplateElement = ignore\nbase.UnaryExpression = base.UpdateExpression = (node, st, c) => {\n c(node.argument, st, \"Expression\")\n}\nbase.BinaryExpression = base.LogicalExpression = (node, st, c) => {\n c(node.left, st, \"Expression\")\n c(node.right, st, \"Expression\")\n}\nbase.AssignmentExpression = base.AssignmentPattern = (node, st, c) => {\n c(node.left, st, \"Pattern\")\n c(node.right, st, \"Expression\")\n}\nbase.ConditionalExpression = (node, st, c) => {\n c(node.test, st, \"Expression\")\n c(node.consequent, st, \"Expression\")\n c(node.alternate, st, \"Expression\")\n}\nbase.NewExpression = base.CallExpression = (node, st, c) => {\n c(node.callee, st, \"Expression\")\n if (node.arguments)\n for (let arg of node.arguments)\n c(arg, st, \"Expression\")\n}\nbase.MemberExpression = (node, st, c) => {\n c(node.object, st, \"Expression\")\n if (node.computed) c(node.property, st, \"Expression\")\n}\nbase.ExportNamedDeclaration = base.ExportDefaultDeclaration = (node, st, c) => {\n if (node.declaration)\n c(node.declaration, st, node.type === \"ExportNamedDeclaration\" || node.declaration.id ? \"Statement\" : \"Expression\")\n if (node.source) c(node.source, st, \"Expression\")\n}\nbase.ExportAllDeclaration = (node, st, c) => {\n c(node.source, st, \"Expression\")\n}\nbase.ImportDeclaration = (node, st, c) => {\n for (let spec of node.specifiers)\n c(spec, st)\n c(node.source, st, \"Expression\")\n}\nbase.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore\n\nbase.TaggedTemplateExpression = (node, st, c) => {\n c(node.tag, st, \"Expression\")\n c(node.quasi, st, \"Expression\")\n}\nbase.ClassDeclaration = base.ClassExpression = (node, st, c) => c(node, st, \"Class\")\nbase.Class = (node, st, c) => {\n if (node.id) c(node.id, st, \"Pattern\")\n if (node.superClass) c(node.superClass, st, \"Expression\")\n c(node.body, st)\n}\nbase.ClassBody = (node, st, c) => {\n for (let elt of node.body)\n c(elt, st)\n}\nbase.MethodDefinition = base.Property = (node, st, c) => {\n if (node.computed) c(node.key, st, \"Expression\")\n c(node.value, st, \"Expression\")\n}\n"],"names":["let","const"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;AAkBA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;EACnE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;IACxD,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,KAAK,EAAE,EAAA,KAAK,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;;;;AAKD,AAAO,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;EAC3DA,IAAI,SAAS,GAAG,GAAE;EAClB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;IACxDA,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;IACpD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA;IAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,KAAK,EAAE,EAAA,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,EAAE,SAAS,EAAC,EAAA;IAClD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,GAAG,GAAE,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAC;CAChB;;;;;;;AAOD,AAAO,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;EACnEA,IAAI,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,SAAS,CAAC,GAAG,WAAW,CACxE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/B,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;GAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;AAED,SAAS,QAAQ,CAAC,IAAI,EAAE;EACtB,IAAI,OAAO,IAAI,KAAK,QAAQ;IAC1B,EAAA,OAAO,UAAA,IAAI,EAAC,SAAG,IAAI,KAAK,IAAI,GAAA,EAAA;OACzB,IAAI,CAAC,IAAI;IACZ,EAAA,OAAO,YAAG,SAAG,IAAI,GAAA,EAAA;;IAEjB,EAAA,OAAO,IAAI,EAAA;CACd;;AAED,IAAM,KAAK,GAAC,cACC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,MAAK,EAAE,CAAA;;;AAInE,AAAO,SAAS,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;EACjE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,IAAI;GACnC,EAAA,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,EAAA;GACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B;;;;AAID,AAAO,SAAS,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;EAC/D,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpCA,IAAI,SAAS,GAAG,EAAE,CACjB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChCA,IAAI,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;IACpD,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA;IAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,EAAA;IAC/D,IAAI,KAAK,EAAE,EAAA,SAAS,CAAC,GAAG,GAAE,EAAA;GAC3B,EAAE,IAAI,EAAE,KAAK,EAAC;CAChB;;;;;AAKD,AAAO,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EACrE,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK;WACpC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;QAClC,EAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC,EAAA;MAChC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;WACrC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC;UACjC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;QAClB,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;KAC5B,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;;AAID,AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EAClE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;MAC9C,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;MAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;KAChD,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;AAGD,AAAO,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EACjE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpC,IAAI;IACF,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;MAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;MAC1BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;MAChC,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAA;MACpE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;KAC/B,EAAE,IAAI,EAAE,KAAK,EAAC;GAChB,CAAC,OAAO,CAAC,EAAE;IACV,IAAI,CAAC,YAAY,KAAK,EAAE,EAAA,OAAO,CAAC,EAAA;IAChC,MAAM,CAAC;GACR;CACF;;;AAGD,AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;EAClE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAC;EACrB,IAAI,CAAC,WAAW,EAAE,EAAA,WAAW,GAAG,KAAI,EAAA;EACpCA,IAAI,GAAG,CACN,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,EAAA,MAAM,EAAA;IAC5BA,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAI;IAChC,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;MAC1E,EAAA,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;IAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC;GAC/B,EAAE,IAAI,EAAE,KAAK,EAAC;EACf,OAAO,GAAG;CACX;;;AAGDC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,KAAK,EAAE;EAC9C,SAAS,IAAI,GAAG,EAAE;EAClB,IAAI,CAAC,SAAS,GAAG,MAAK;EACtB,OAAO,IAAI,IAAI;EAChB;;;;AAID,AAAO,SAAS,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;EACvCD,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,EAAC;EACzC,KAAKA,IAAI,IAAI,IAAI,KAAK,EAAE,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAC,EAAA;EACnD,OAAO,OAAO;CACf;;AAED,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAE;AACjD,SAAS,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;;;;AAIlC,AAAOC,IAAM,IAAI,GAAG,GAAE;;AAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjD,KAAa,kBAAI,IAAI,CAAC,IAAI,yBAAA;IAArB;IAAAD,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;GAAA;EAC3B;AACD,IAAI,CAAC,SAAS,GAAG,YAAW;AAC5B,IAAI,CAAC,cAAc,GAAG,OAAM;AAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB;EACrD,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,CAAC,IAAA;AACvD,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,EAAC;EACnC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,EAAC,EAAA;EACvD;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,IAAA;AACtE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,GAAG,OAAM;AACrD,IAAI,CAAC,aAAa,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,EAAC;EACtC,KAAW,kBAAI,IAAI,CAAC,KAAK,yBAAA,EAAE;IAAtBA,IAAI,EAAE;;IACT,IAAI,EAAE,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;IACzC,KAAa,sBAAI,EAAE,CAAC,UAAU,+BAAA;MAAzB;MAAAA,IAAI,IAAI;;MACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;KAAA;GAC3B;EACF;AACD,IAAI,CAAC,UAAU,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC7C,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;GAAA;EAC3B;AACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjF,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACtD;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa;EACtC,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,IAAA;AACrD,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAC,EAAA;EACrC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,WAAW,EAAC,EAAA;EACvD;AACD,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC1D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACjD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACxD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC;EAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAC;EAC9B;AACD,IAAI,CAAC,OAAO,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;OAC/C,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC/B;AACD,IAAI,CAAC,iBAAiB,GAAG,OAAM;;AAE/B,IAAI,CAAC,mBAAmB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,IAAA;AACnE,IAAI,CAAC,mBAAmB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACvC,KAAa,kBAAI,IAAI,CAAC,YAAY,yBAAA;IAA7B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACd;AACD,IAAI,CAAC,kBAAkB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACtC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC;EACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAC9C;;AAED,IAAI,CAAC,QAAQ,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC5B,IAAI,IAAI,CAAC,EAAE,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EACtC,KAAc,kBAAI,IAAI,CAAC,MAAM,yBAAA;IAAxB;IAAAA,IAAI,KAAK;;IACZ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC;GAAA;EACzB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,WAAW,EAAC;EAC/D;;AAED,IAAI,CAAC,OAAO,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;IAC5B,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAC,EAAA;OAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;IACvC,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,eAAe,EAAC,EAAA;;IAE5B,EAAA,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC,EAAA;EACd;AACD,IAAI,CAAC,eAAe,GAAG,OAAM;AAC7B,IAAI,CAAC,aAAa,GAAG,YAAW;AAChC,IAAI,CAAC,WAAW,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,IAAA;AACnE,IAAI,CAAC,YAAY,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAChC,KAAY,kBAAI,IAAI,CAAC,QAAQ,yBAAA,EAAE;IAA1BA,IAAI,GAAG;;IACV,IAAI,GAAG,EAAE,EAAA,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;GAC/B;EACF;AACD,IAAI,CAAC,aAAa,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA,EAAE;IAA7BA,IAAI,IAAI;;IACX,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;MAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;MAChD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAC;KAC7B,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;MACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAC;KAChC;GACF;EACF;;AAED,IAAI,CAAC,UAAU,GAAG,YAAW;AAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,OAAM;AAC7D,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,KAAY,kBAAI,IAAI,CAAC,QAAQ,yBAAA,EAAE;IAA1BA,IAAI,GAAG;;IACV,IAAI,GAAG,EAAE,EAAA,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;GAClC;EACF;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACd;AACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,oBAAmB;AACjF,IAAI,CAAC,kBAAkB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACtC,KAAa,kBAAI,IAAI,CAAC,WAAW,yBAAA;IAA5B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;GAAA;EAC5B;AACD,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACnC,KAAc,kBAAI,IAAI,CAAC,MAAM,yBAAA;IAAxB;IAAAA,IAAI,KAAK;;IACZ,CAAC,CAAC,KAAK,EAAE,EAAE,EAAC;GAAA;;EAEd,KAAa,sBAAI,IAAI,CAAC,WAAW,+BAAA;IAA5B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;GAAA;EAC5B;AACD,IAAI,CAAC,eAAe,GAAG,OAAM;AAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC3D,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC;EACnC;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC7D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACjE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC;EAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,qBAAqB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACzC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAC;EAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAC;EACpC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,YAAY,EAAC;EACpC;AACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACvD,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,IAAI,IAAI,CAAC,SAAS;IAChB,EAAA,KAAY,kBAAI,IAAI,CAAC,SAAS,yBAAA;MAAzB;QAAAA,IAAI,GAAG;;QACV,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC;OAAA,EAAA;EAC7B;AACD,IAAI,CAAC,gBAAgB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACtD;AACD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC1E,IAAI,IAAI,CAAC,WAAW;IAClB,EAAA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,YAAY,EAAC,EAAA;EACrH,IAAI,IAAI,CAAC,MAAM,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAClD;AACD,IAAI,CAAC,oBAAoB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACxC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EACjC;AACD,IAAI,CAAC,iBAAiB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACrC,KAAa,kBAAI,IAAI,CAAC,UAAU,yBAAA;IAA3B;IAAAA,IAAI,IAAI;;IACX,CAAC,CAAC,IAAI,EAAE,EAAE,EAAC;GAAA;EACb,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAC;EACjC;AACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,OAAM;;AAE5H,IAAI,CAAC,wBAAwB,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC;EAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;EAChC;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,IAAA;AACpF,IAAI,CAAC,KAAK,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACzB,IAAI,IAAI,CAAC,EAAE,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,EAAA;EACtC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EACzD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAC;EACjB;AACD,IAAI,CAAC,SAAS,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EAC7B,KAAY,kBAAI,IAAI,CAAC,IAAI,yBAAA;IAApB;IAAAA,IAAI,GAAG;;IACV,CAAC,CAAC,GAAG,EAAE,EAAE,EAAC;GAAA;EACb;AACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;EACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAC,EAAA;EAChD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAC;CAChC;;;;"}
\ No newline at end of file
diff --git a/node_modules/acorn-walk/package.json b/node_modules/acorn-walk/package.json
deleted file mode 100644
index b898a28..0000000
--- a/node_modules/acorn-walk/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "_from": "acorn-walk@^7.0.0",
- "_id": "acorn-walk@7.0.0",
- "_inBundle": false,
- "_integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==",
- "_location": "/acorn-walk",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "acorn-walk@^7.0.0",
- "name": "acorn-walk",
- "escapedName": "acorn-walk",
- "rawSpec": "^7.0.0",
- "saveSpec": null,
- "fetchSpec": "^7.0.0"
- },
- "_requiredBy": [
- "/acorn-node"
- ],
- "_resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz",
- "_shasum": "c8ba6f0f1aac4b0a9e32d1f0af12be769528f36b",
- "_spec": "acorn-walk@^7.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/acorn-node",
- "bugs": {
- "url": "https://github.com/acornjs/acorn/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "ECMAScript (ESTree) AST walker",
- "engines": {
- "node": ">=0.4.0"
- },
- "homepage": "https://github.com/acornjs/acorn",
- "license": "MIT",
- "main": "dist/walk.js",
- "maintainers": [
- {
- "name": "Marijn Haverbeke",
- "email": "marijnh@gmail.com",
- "url": "https://marijnhaverbeke.nl"
- },
- {
- "name": "Ingvar Stepanyan",
- "email": "me@rreverser.com",
- "url": "https://rreverser.com/"
- },
- {
- "name": "Adrian Heine",
- "url": "http://adrianheine.de"
- }
- ],
- "module": "dist/walk.mjs",
- "name": "acorn-walk",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/acornjs/acorn.git"
- },
- "scripts": {
- "prepare": "cd ..; npm run build:walk"
- },
- "version": "7.0.0"
-}
diff --git a/node_modules/acorn/CHANGELOG.md b/node_modules/acorn/CHANGELOG.md
deleted file mode 100644
index e893c22..0000000
--- a/node_modules/acorn/CHANGELOG.md
+++ /dev/null
@@ -1,562 +0,0 @@
-## 7.1.0 (2019-09-24)
-
-### Bug fixes
-
-Disallow trailing object literal commas when ecmaVersion is less than 5.
-
-### New features
-
-Add a static `acorn` property to the `Parser` class that contains the entire module interface, to allow plugins to access the instance of the library that they are acting on.
-
-## 7.0.0 (2019-08-13)
-
-### Breaking changes
-
-Changes the node format for dynamic imports to use the `ImportExpression` node type, as defined in [ESTree](https://github.com/estree/estree/blob/master/es2020.md#importexpression).
-
-Makes 10 (ES2019) the default value for the `ecmaVersion` option.
-
-## 6.3.0 (2019-08-12)
-
-### New features
-
-`sourceType: "module"` can now be used even when `ecmaVersion` is less than 6, to parse module-style code that otherwise conforms to an older standard.
-
-## 6.2.1 (2019-07-21)
-
-### Bug fixes
-
-Fix bug causing Acorn to treat some characters as identifier characters that shouldn't be treated as such.
-
-Fix issue where setting the `allowReserved` option to `"never"` allowed reserved words in some circumstances.
-
-## 6.2.0 (2019-07-04)
-
-### Bug fixes
-
-Improve valid assignment checking in `for`/`in` and `for`/`of` loops.
-
-Disallow binding `let` in patterns.
-
-### New features
-
-Support bigint syntax with `ecmaVersion` >= 11.
-
-Support dynamic `import` syntax with `ecmaVersion` >= 11.
-
-Upgrade to Unicode version 12.
-
-## 6.1.1 (2019-02-27)
-
-### Bug fixes
-
-Fix bug that caused parsing default exports of with names to fail.
-
-## 6.1.0 (2019-02-08)
-
-### Bug fixes
-
-Fix scope checking when redefining a `var` as a lexical binding.
-
-### New features
-
-Split up `parseSubscripts` to use an internal `parseSubscript` method to make it easier to extend with plugins.
-
-## 6.0.7 (2019-02-04)
-
-### Bug fixes
-
-Check that exported bindings are defined.
-
-Don't treat `\u180e` as a whitespace character.
-
-Check for duplicate parameter names in methods.
-
-Don't allow shorthand properties when they are generators or async methods.
-
-Forbid binding `await` in async arrow function's parameter list.
-
-## 6.0.6 (2019-01-30)
-
-### Bug fixes
-
-The content of class declarations and expressions is now always parsed in strict mode.
-
-Don't allow `let` or `const` to bind the variable name `let`.
-
-Treat class declarations as lexical.
-
-Don't allow a generator function declaration as the sole body of an `if` or `else`.
-
-Ignore `"use strict"` when after an empty statement.
-
-Allow string line continuations with special line terminator characters.
-
-Treat `for` bodies as part of the `for` scope when checking for conflicting bindings.
-
-Fix bug with parsing `yield` in a `for` loop initializer.
-
-Implement special cases around scope checking for functions.
-
-## 6.0.5 (2019-01-02)
-
-### Bug fixes
-
-Fix TypeScript type for `Parser.extend` and add `allowAwaitOutsideFunction` to options type.
-
-Don't treat `let` as a keyword when the next token is `{` on the next line.
-
-Fix bug that broke checking for parentheses around an object pattern in a destructuring assignment when `preserveParens` was on.
-
-## 6.0.4 (2018-11-05)
-
-### Bug fixes
-
-Further improvements to tokenizing regular expressions in corner cases.
-
-## 6.0.3 (2018-11-04)
-
-### Bug fixes
-
-Fix bug in tokenizing an expression-less return followed by a function followed by a regular expression.
-
-Remove stray symlink in the package tarball.
-
-## 6.0.2 (2018-09-26)
-
-### Bug fixes
-
-Fix bug where default expressions could fail to parse inside an object destructuring assignment expression.
-
-## 6.0.1 (2018-09-14)
-
-### Bug fixes
-
-Fix wrong value in `version` export.
-
-## 6.0.0 (2018-09-14)
-
-### Bug fixes
-
-Better handle variable-redefinition checks for catch bindings and functions directly under if statements.
-
-Forbid `new.target` in top-level arrow functions.
-
-Fix issue with parsing a regexp after `yield` in some contexts.
-
-### New features
-
-The package now comes with TypeScript definitions.
-
-### Breaking changes
-
-The default value of the `ecmaVersion` option is now 9 (2018).
-
-Plugins work differently, and will have to be rewritten to work with this version.
-
-The loose parser and walker have been moved into separate packages (`acorn-loose` and `acorn-walk`).
-
-## 5.7.3 (2018-09-10)
-
-### Bug fixes
-
-Fix failure to tokenize regexps after expressions like `x.of`.
-
-Better error message for unterminated template literals.
-
-## 5.7.2 (2018-08-24)
-
-### Bug fixes
-
-Properly handle `allowAwaitOutsideFunction` in for statements.
-
-Treat function declarations at the top level of modules like let bindings.
-
-Don't allow async function declarations as the only statement under a label.
-
-## 5.7.0 (2018-06-15)
-
-### New features
-
-Upgraded to Unicode 11.
-
-## 5.6.0 (2018-05-31)
-
-### New features
-
-Allow U+2028 and U+2029 in string when ECMAVersion >= 10.
-
-Allow binding-less catch statements when ECMAVersion >= 10.
-
-Add `allowAwaitOutsideFunction` option for parsing top-level `await`.
-
-## 5.5.3 (2018-03-08)
-
-### Bug fixes
-
-A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps.
-
-## 5.5.2 (2018-03-08)
-
-### Bug fixes
-
-A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0.
-
-## 5.5.1 (2018-03-06)
-
-### Bug fixes
-
-Fix misleading error message for octal escapes in template strings.
-
-## 5.5.0 (2018-02-27)
-
-### New features
-
-The identifier character categorization is now based on Unicode version 10.
-
-Acorn will now validate the content of regular expressions, including new ES9 features.
-
-## 5.4.0 (2018-02-01)
-
-### Bug fixes
-
-Disallow duplicate or escaped flags on regular expressions.
-
-Disallow octal escapes in strings in strict mode.
-
-### New features
-
-Add support for async iteration.
-
-Add support for object spread and rest.
-
-## 5.3.0 (2017-12-28)
-
-### Bug fixes
-
-Fix parsing of floating point literals with leading zeroes in loose mode.
-
-Allow duplicate property names in object patterns.
-
-Don't allow static class methods named `prototype`.
-
-Disallow async functions directly under `if` or `else`.
-
-Parse right-hand-side of `for`/`of` as an assignment expression.
-
-Stricter parsing of `for`/`in`.
-
-Don't allow unicode escapes in contextual keywords.
-
-### New features
-
-Parsing class members was factored into smaller methods to allow plugins to hook into it.
-
-## 5.2.1 (2017-10-30)
-
-### Bug fixes
-
-Fix a token context corruption bug.
-
-## 5.2.0 (2017-10-30)
-
-### Bug fixes
-
-Fix token context tracking for `class` and `function` in property-name position.
-
-Make sure `%*` isn't parsed as a valid operator.
-
-Allow shorthand properties `get` and `set` to be followed by default values.
-
-Disallow `super` when not in callee or object position.
-
-### New features
-
-Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements.
-
-## 5.1.2 (2017-09-04)
-
-### Bug fixes
-
-Disable parsing of legacy HTML-style comments in modules.
-
-Fix parsing of async methods whose names are keywords.
-
-## 5.1.1 (2017-07-06)
-
-### Bug fixes
-
-Fix problem with disambiguating regexp and division after a class.
-
-## 5.1.0 (2017-07-05)
-
-### Bug fixes
-
-Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`.
-
-Parse zero-prefixed numbers with non-octal digits as decimal.
-
-Allow object/array patterns in rest parameters.
-
-Don't error when `yield` is used as a property name.
-
-Allow `async` as a shorthand object property.
-
-### New features
-
-Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9.
-
-## 5.0.3 (2017-04-01)
-
-### Bug fixes
-
-Fix spurious duplicate variable definition errors for named functions.
-
-## 5.0.2 (2017-03-30)
-
-### Bug fixes
-
-A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error.
-
-## 5.0.0 (2017-03-28)
-
-### Bug fixes
-
-Raise an error for duplicated lexical bindings.
-
-Fix spurious error when an assignement expression occurred after a spread expression.
-
-Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions.
-
-Allow labels in front or `var` declarations, even in strict mode.
-
-### Breaking changes
-
-Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`.
-
-## 4.0.11 (2017-02-07)
-
-### Bug fixes
-
-Allow all forms of member expressions to be parenthesized as lvalue.
-
-## 4.0.10 (2017-02-07)
-
-### Bug fixes
-
-Don't expect semicolons after default-exported functions or classes, even when they are expressions.
-
-Check for use of `'use strict'` directives in non-simple parameter functions, even when already in strict mode.
-
-## 4.0.9 (2017-02-06)
-
-### Bug fixes
-
-Fix incorrect error raised for parenthesized simple assignment targets, so that `(x) = 1` parses again.
-
-## 4.0.8 (2017-02-03)
-
-### Bug fixes
-
-Solve spurious parenthesized pattern errors by temporarily erring on the side of accepting programs that our delayed errors don't handle correctly yet.
-
-## 4.0.7 (2017-02-02)
-
-### Bug fixes
-
-Accept invalidly rejected code like `(x).y = 2` again.
-
-Don't raise an error when a function _inside_ strict code has a non-simple parameter list.
-
-## 4.0.6 (2017-02-02)
-
-### Bug fixes
-
-Fix exponential behavior (manifesting itself as a complete hang for even relatively small source files) introduced by the new 'use strict' check.
-
-## 4.0.5 (2017-02-02)
-
-### Bug fixes
-
-Disallow parenthesized pattern expressions.
-
-Allow keywords as export names.
-
-Don't allow the `async` keyword to be parenthesized.
-
-Properly raise an error when a keyword contains a character escape.
-
-Allow `"use strict"` to appear after other string literal expressions.
-
-Disallow labeled declarations.
-
-## 4.0.4 (2016-12-19)
-
-### Bug fixes
-
-Fix crash when `export` was followed by a keyword that can't be
-exported.
-
-## 4.0.3 (2016-08-16)
-
-### Bug fixes
-
-Allow regular function declarations inside single-statement `if` branches in loose mode. Forbid them entirely in strict mode.
-
-Properly parse properties named `async` in ES2017 mode.
-
-Fix bug where reserved words were broken in ES2017 mode.
-
-## 4.0.2 (2016-08-11)
-
-### Bug fixes
-
-Don't ignore period or 'e' characters after octal numbers.
-
-Fix broken parsing for call expressions in default parameter values of arrow functions.
-
-## 4.0.1 (2016-08-08)
-
-### Bug fixes
-
-Fix false positives in duplicated export name errors.
-
-## 4.0.0 (2016-08-07)
-
-### Breaking changes
-
-The default `ecmaVersion` option value is now 7.
-
-A number of internal method signatures changed, so plugins might need to be updated.
-
-### Bug fixes
-
-The parser now raises errors on duplicated export names.
-
-`arguments` and `eval` can now be used in shorthand properties.
-
-Duplicate parameter names in non-simple argument lists now always produce an error.
-
-### New features
-
-The `ecmaVersion` option now also accepts year-style version numbers
-(2015, etc).
-
-Support for `async`/`await` syntax when `ecmaVersion` is >= 8.
-
-Support for trailing commas in call expressions when `ecmaVersion` is >= 8.
-
-## 3.3.0 (2016-07-25)
-
-### Bug fixes
-
-Fix bug in tokenizing of regexp operator after a function declaration.
-
-Fix parser crash when parsing an array pattern with a hole.
-
-### New features
-
-Implement check against complex argument lists in functions that enable strict mode in ES7.
-
-## 3.2.0 (2016-06-07)
-
-### Bug fixes
-
-Improve handling of lack of unicode regexp support in host
-environment.
-
-Properly reject shorthand properties whose name is a keyword.
-
-### New features
-
-Visitors created with `visit.make` now have their base as _prototype_, rather than copying properties into a fresh object.
-
-## 3.1.0 (2016-04-18)
-
-### Bug fixes
-
-Properly tokenize the division operator directly after a function expression.
-
-Allow trailing comma in destructuring arrays.
-
-## 3.0.4 (2016-02-25)
-
-### Fixes
-
-Allow update expressions as left-hand-side of the ES7 exponential operator.
-
-## 3.0.2 (2016-02-10)
-
-### Fixes
-
-Fix bug that accidentally made `undefined` a reserved word when parsing ES7.
-
-## 3.0.0 (2016-02-10)
-
-### Breaking changes
-
-The default value of the `ecmaVersion` option is now 6 (used to be 5).
-
-Support for comprehension syntax (which was dropped from the draft spec) has been removed.
-
-### Fixes
-
-`let` and `yield` are now “contextual keywords”, meaning you can mostly use them as identifiers in ES5 non-strict code.
-
-A parenthesized class or function expression after `export default` is now parsed correctly.
-
-### New features
-
-When `ecmaVersion` is set to 7, Acorn will parse the exponentiation operator (`**`).
-
-The identifier character ranges are now based on Unicode 8.0.0.
-
-Plugins can now override the `raiseRecoverable` method to override the way non-critical errors are handled.
-
-## 2.7.0 (2016-01-04)
-
-### Fixes
-
-Stop allowing rest parameters in setters.
-
-Disallow `y` rexexp flag in ES5.
-
-Disallow `\00` and `\000` escapes in strict mode.
-
-Raise an error when an import name is a reserved word.
-
-## 2.6.2 (2015-11-10)
-
-### Fixes
-
-Don't crash when no options object is passed.
-
-## 2.6.0 (2015-11-09)
-
-### Fixes
-
-Add `await` as a reserved word in module sources.
-
-Disallow `yield` in a parameter default value for a generator.
-
-Forbid using a comma after a rest pattern in an array destructuring.
-
-### New features
-
-Support parsing stdin in command-line tool.
-
-## 2.5.0 (2015-10-27)
-
-### Fixes
-
-Fix tokenizer support in the command-line tool.
-
-Stop allowing `new.target` outside of functions.
-
-Remove legacy `guard` and `guardedHandler` properties from try nodes.
-
-Stop allowing multiple `__proto__` properties on an object literal in strict mode.
-
-Don't allow rest parameters to be non-identifier patterns.
-
-Check for duplicate paramter names in arrow functions.
diff --git a/node_modules/acorn/LICENSE b/node_modules/acorn/LICENSE
deleted file mode 100644
index 2c0632b..0000000
--- a/node_modules/acorn/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2012-2018 by various contributors (see AUTHORS)
-
-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.
diff --git a/node_modules/acorn/README.md b/node_modules/acorn/README.md
deleted file mode 100644
index 585f273..0000000
--- a/node_modules/acorn/README.md
+++ /dev/null
@@ -1,270 +0,0 @@
-# Acorn
-
-A tiny, fast JavaScript parser written in JavaScript.
-
-## Community
-
-Acorn is open source software released under an
-[MIT license](https://github.com/acornjs/acorn/blob/master/acorn/LICENSE).
-
-You are welcome to
-[report bugs](https://github.com/acornjs/acorn/issues) or create pull
-requests on [github](https://github.com/acornjs/acorn). For questions
-and discussion, please use the
-[Tern discussion forum](https://discuss.ternjs.net).
-
-## Installation
-
-The easiest way to install acorn is from [`npm`](https://www.npmjs.com/):
-
-```sh
-npm install acorn
-```
-
-Alternately, you can download the source and build acorn yourself:
-
-```sh
-git clone https://github.com/acornjs/acorn.git
-cd acorn
-npm install
-```
-
-## Interface
-
-**parse**`(input, options)` is the main interface to the library. The
-`input` parameter is a string, `options` can be undefined or an object
-setting some of the options listed below. The return value will be an
-abstract syntax tree object as specified by the [ESTree
-spec](https://github.com/estree/estree).
-
-```javascript
-let acorn = require("acorn");
-console.log(acorn.parse("1 + 1"));
-```
-
-When encountering a syntax error, the parser will raise a
-`SyntaxError` object with a meaningful message. The error object will
-have a `pos` property that indicates the string offset at which the
-error occurred, and a `loc` object that contains a `{line, column}`
-object referring to that same position.
-
-Options can be provided by passing a second argument, which should be
-an object containing any of these fields:
-
-- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be
- either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), 10 (2019) or 11
- (2020, partial support). This influences support for strict mode,
- the set of reserved words, and support for new syntax features.
- Default is 10.
-
- **NOTE**: Only 'stage 4' (finalized) ECMAScript features are being
- implemented by Acorn. Other proposed new features can be implemented
- through plugins.
-
-- **sourceType**: Indicate the mode the code should be parsed in. Can be
- either `"script"` or `"module"`. This influences global strict mode
- and parsing of `import` and `export` declarations.
-
- **NOTE**: If set to `"module"`, then static `import` / `export` syntax
- will be valid, even if `ecmaVersion` is less than 6.
-
-- **onInsertedSemicolon**: If given a callback, that callback will be
- called whenever a missing semicolon is inserted by the parser. The
- callback will be given the character offset of the point where the
- semicolon is inserted as argument, and if `locations` is on, also a
- `{line, column}` object representing this position.
-
-- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing
- commas.
-
-- **allowReserved**: If `false`, using a reserved word will generate
- an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher
- versions. When given the value `"never"`, reserved words and
- keywords can also not be used as property names (as in Internet
- Explorer's old parser).
-
-- **allowReturnOutsideFunction**: By default, a return statement at
- the top level raises an error. Set this to `true` to accept such
- code.
-
-- **allowImportExportEverywhere**: By default, `import` and `export`
- declarations can only appear at a program's top level. Setting this
- option to `true` allows them anywhere where a statement is allowed.
-
-- **allowAwaitOutsideFunction**: By default, `await` expressions can
- only appear inside `async` functions. Setting this option to
- `true` allows to have top-level `await` expressions. They are
- still not allowed in non-`async` functions, though.
-
-- **allowHashBang**: When this is enabled (off by default), if the
- code starts with the characters `#!` (as in a shellscript), the
- first line will be treated as a comment.
-
-- **locations**: When `true`, each node has a `loc` object attached
- with `start` and `end` subobjects, each of which contains the
- one-based line and zero-based column numbers in `{line, column}`
- form. Default is `false`.
-
-- **onToken**: If a function is passed for this option, each found
- token will be passed in same format as tokens returned from
- `tokenizer().getToken()`.
-
- If array is passed, each found token is pushed to it.
-
- Note that you are not allowed to call the parser from the
- callback—that will corrupt its internal state.
-
-- **onComment**: If a function is passed for this option, whenever a
- comment is encountered the function will be called with the
- following parameters:
-
- - `block`: `true` if the comment is a block comment, false if it
- is a line comment.
- - `text`: The content of the comment.
- - `start`: Character offset of the start of the comment.
- - `end`: Character offset of the end of the comment.
-
- When the `locations` options is on, the `{line, column}` locations
- of the comment’s start and end are passed as two additional
- parameters.
-
- If array is passed for this option, each found comment is pushed
- to it as object in Esprima format:
-
- ```javascript
- {
- "type": "Line" | "Block",
- "value": "comment text",
- "start": Number,
- "end": Number,
- // If `locations` option is on:
- "loc": {
- "start": {line: Number, column: Number}
- "end": {line: Number, column: Number}
- },
- // If `ranges` option is on:
- "range": [Number, Number]
- }
- ```
-
- Note that you are not allowed to call the parser from the
- callback—that will corrupt its internal state.
-
-- **ranges**: Nodes have their start and end characters offsets
- recorded in `start` and `end` properties (directly on the node,
- rather than the `loc` object, which holds line/column data. To also
- add a
- [semi-standardized](https://bugzilla.mozilla.org/show_bug.cgi?id=745678)
- `range` property holding a `[start, end]` array with the same
- numbers, set the `ranges` option to `true`.
-
-- **program**: It is possible to parse multiple files into a single
- AST by passing the tree produced by parsing the first file as the
- `program` option in subsequent parses. This will add the toplevel
- forms of the parsed file to the "Program" (top) node of an existing
- parse tree.
-
-- **sourceFile**: When the `locations` option is `true`, you can pass
- this option to add a `source` attribute in every node’s `loc`
- object. Note that the contents of this option are not examined or
- processed in any way; you are free to use whatever format you
- choose.
-
-- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property
- will be added (regardless of the `location` option) directly to the
- nodes, rather than the `loc` object.
-
-- **preserveParens**: If this option is `true`, parenthesized expressions
- are represented by (non-standard) `ParenthesizedExpression` nodes
- that have a single `expression` property containing the expression
- inside parentheses.
-
-**parseExpressionAt**`(input, offset, options)` will parse a single
-expression in a string, and return its AST. It will not complain if
-there is more of the string left after the expression.
-
-**tokenizer**`(input, options)` returns an object with a `getToken`
-method that can be called repeatedly to get the next token, a `{start,
-end, type, value}` object (with added `loc` property when the
-`locations` option is enabled and `range` property when the `ranges`
-option is enabled). When the token's type is `tokTypes.eof`, you
-should stop calling the method, since it will keep returning that same
-token forever.
-
-In ES6 environment, returned result can be used as any other
-protocol-compliant iterable:
-
-```javascript
-for (let token of acorn.tokenizer(str)) {
- // iterate over the tokens
-}
-
-// transform code to array of tokens:
-var tokens = [...acorn.tokenizer(str)];
-```
-
-**tokTypes** holds an object mapping names to the token type objects
-that end up in the `type` properties of tokens.
-
-**getLineInfo**`(input, offset)` can be used to get a `{line,
-column}` object for a given program string and offset.
-
-### The `Parser` class
-
-Instances of the **`Parser`** class contain all the state and logic
-that drives a parse. It has static methods `parse`,
-`parseExpressionAt`, and `tokenizer` that match the top-level
-functions by the same name.
-
-When extending the parser with plugins, you need to call these methods
-on the extended version of the class. To extend a parser with plugins,
-you can use its static `extend` method.
-
-```javascript
-var acorn = require("acorn");
-var jsx = require("acorn-jsx");
-var JSXParser = acorn.Parser.extend(jsx());
-JSXParser.parse("foo()");
-```
-
-The `extend` method takes any number of plugin values, and returns a
-new `Parser` class that includes the extra parser logic provided by
-the plugins.
-
-## Command line interface
-
-The `bin/acorn` utility can be used to parse a file from the command
-line. It accepts as arguments its input file and the following
-options:
-
-- `--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10`: Sets the ECMAScript version
- to parse. Default is version 9.
-
-- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise.
-
-- `--locations`: Attaches a "loc" object to each node with "start" and
- "end" subobjects, each of which contains the one-based line and
- zero-based column numbers in `{line, column}` form.
-
-- `--allow-hash-bang`: If the code starts with the characters #! (as
- in a shellscript), the first line will be treated as a comment.
-
-- `--compact`: No whitespace is used in the AST output.
-
-- `--silent`: Do not output the AST, just return the exit status.
-
-- `--help`: Print the usage information and quit.
-
-The utility spits out the syntax tree as JSON data.
-
-## Existing plugins
-
- - [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx)
-
-Plugins for ECMAScript proposals:
-
- - [`acorn-stage3`](https://github.com/acornjs/acorn-stage3): Parse most stage 3 proposals, bundling:
- - [`acorn-class-fields`](https://github.com/acornjs/acorn-class-fields): Parse [class fields proposal](https://github.com/tc39/proposal-class-fields)
- - [`acorn-import-meta`](https://github.com/acornjs/acorn-import-meta): Parse [import.meta proposal](https://github.com/tc39/proposal-import-meta)
- - [`acorn-numeric-separator`](https://github.com/acornjs/acorn-numeric-separator): Parse [numeric separator proposal](https://github.com/tc39/proposal-numeric-separator)
- - [`acorn-private-methods`](https://github.com/acornjs/acorn-private-methods): parse [private methods, getters and setters proposal](https://github.com/tc39/proposal-private-methods)n
diff --git a/node_modules/acorn/bin/acorn b/node_modules/acorn/bin/acorn
deleted file mode 100755
index cf7df46..0000000
--- a/node_modules/acorn/bin/acorn
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-
-require('../dist/bin.js');
diff --git a/node_modules/acorn/dist/acorn.d.ts b/node_modules/acorn/dist/acorn.d.ts
deleted file mode 100644
index bda5f80..0000000
--- a/node_modules/acorn/dist/acorn.d.ts
+++ /dev/null
@@ -1,209 +0,0 @@
-export as namespace acorn
-export = acorn
-
-declare namespace acorn {
- function parse(input: string, options?: Options): Node
-
- function parseExpressionAt(input: string, pos?: number, options?: Options): Node
-
- function tokenizer(input: string, options?: Options): {
- getToken(): Token
- [Symbol.iterator](): Iterator
- }
-
- interface Options {
- ecmaVersion?: 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020
- sourceType?: 'script' | 'module'
- onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
- onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
- allowReserved?: boolean | 'never'
- allowReturnOutsideFunction?: boolean
- allowImportExportEverywhere?: boolean
- allowAwaitOutsideFunction?: boolean
- allowHashBang?: boolean
- locations?: boolean
- onToken?: ((token: Token) => any) | Token[]
- onComment?: ((
- isBlock: boolean, text: string, start: number, end: number, startLoc?: Position,
- endLoc?: Position
- ) => void) | Comment[]
- ranges?: boolean
- program?: Node
- sourceFile?: string
- directSourceFile?: string
- preserveParens?: boolean
- }
-
- class Parser {
- constructor(options: Options, input: string, startPos?: number)
- parse(this: Parser): Node
- static parse(this: typeof Parser, input: string, options?: Options): Node
- static parseExpressionAt(this: typeof Parser, input: string, pos: number, options?: Options): Node
- static tokenizer(this: typeof Parser, input: string, options?: Options): {
- getToken(): Token
- [Symbol.iterator](): Iterator
- }
- static extend(this: typeof Parser, ...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser
- }
-
- interface Position { line: number; column: number; offset: number }
-
- const defaultOptions: Options
-
- function getLineInfo(input: string, offset: number): Position
-
- class SourceLocation {
- start: Position
- end: Position
- source?: string | null
- constructor(p: Parser, start: Position, end: Position)
- }
-
- class Node {
- type: string
- start: number
- end: number
- loc?: SourceLocation
- sourceFile?: string
- range?: [number, number]
- constructor(parser: Parser, pos: number, loc?: SourceLocation)
- }
-
- class TokenType {
- label: string
- keyword: string
- beforeExpr: boolean
- startsExpr: boolean
- isLoop: boolean
- isAssign: boolean
- prefix: boolean
- postfix: boolean
- binop: number
- updateContext?: (prevType: TokenType) => void
- constructor(label: string, conf?: any)
- }
-
- const tokTypes: {
- num: TokenType
- regexp: TokenType
- string: TokenType
- name: TokenType
- eof: TokenType
- bracketL: TokenType
- bracketR: TokenType
- braceL: TokenType
- braceR: TokenType
- parenL: TokenType
- parenR: TokenType
- comma: TokenType
- semi: TokenType
- colon: TokenType
- dot: TokenType
- question: TokenType
- arrow: TokenType
- template: TokenType
- ellipsis: TokenType
- backQuote: TokenType
- dollarBraceL: TokenType
- eq: TokenType
- assign: TokenType
- incDec: TokenType
- prefix: TokenType
- logicalOR: TokenType
- logicalAND: TokenType
- bitwiseOR: TokenType
- bitwiseXOR: TokenType
- bitwiseAND: TokenType
- equality: TokenType
- relational: TokenType
- bitShift: TokenType
- plusMin: TokenType
- modulo: TokenType
- star: TokenType
- slash: TokenType
- starstar: TokenType
- _break: TokenType
- _case: TokenType
- _catch: TokenType
- _continue: TokenType
- _debugger: TokenType
- _default: TokenType
- _do: TokenType
- _else: TokenType
- _finally: TokenType
- _for: TokenType
- _function: TokenType
- _if: TokenType
- _return: TokenType
- _switch: TokenType
- _throw: TokenType
- _try: TokenType
- _var: TokenType
- _const: TokenType
- _while: TokenType
- _with: TokenType
- _new: TokenType
- _this: TokenType
- _super: TokenType
- _class: TokenType
- _extends: TokenType
- _export: TokenType
- _import: TokenType
- _null: TokenType
- _true: TokenType
- _false: TokenType
- _in: TokenType
- _instanceof: TokenType
- _typeof: TokenType
- _void: TokenType
- _delete: TokenType
- }
-
- class TokContext {
- constructor(token: string, isExpr: boolean, preserveSpace: boolean, override?: (p: Parser) => void)
- }
-
- const tokContexts: {
- b_stat: TokContext
- b_expr: TokContext
- b_tmpl: TokContext
- p_stat: TokContext
- p_expr: TokContext
- q_tmpl: TokContext
- f_expr: TokContext
- }
-
- function isIdentifierStart(code: number, astral?: boolean): boolean
-
- function isIdentifierChar(code: number, astral?: boolean): boolean
-
- interface AbstractToken {
- }
-
- interface Comment extends AbstractToken {
- type: string
- value: string
- start: number
- end: number
- loc?: SourceLocation
- range?: [number, number]
- }
-
- class Token {
- type: TokenType
- value: any
- start: number
- end: number
- loc?: SourceLocation
- range?: [number, number]
- constructor(p: Parser)
- }
-
- function isNewLine(code: number): boolean
-
- const lineBreak: RegExp
-
- const lineBreakG: RegExp
-
- const version: string
-}
diff --git a/node_modules/acorn/dist/acorn.js b/node_modules/acorn/dist/acorn.js
deleted file mode 100644
index c9209c0..0000000
--- a/node_modules/acorn/dist/acorn.js
+++ /dev/null
@@ -1,5001 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = global || self, factory(global.acorn = {}));
-}(this, function (exports) { 'use strict';
-
- // Reserved word lists for various dialects of the language
-
- var reservedWords = {
- 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
- 5: "class enum extends super const export import",
- 6: "enum",
- strict: "implements interface let package private protected public static yield",
- strictBind: "eval arguments"
- };
-
- // And the keywords
-
- var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this";
-
- var keywords = {
- 5: ecma5AndLessKeywords,
- "5module": ecma5AndLessKeywords + " export import",
- 6: ecma5AndLessKeywords + " const class extends export import super"
- };
-
- var keywordRelationalOperator = /^in(stanceof)?$/;
-
- // ## Character categories
-
- // Big ugly regular expressions that match characters in the
- // whitespace, identifier, and identifier-start categories. These
- // are only applied when a character is found to actually have a
- // code point above 128.
- // Generated by `bin/generate-identifier-regex.js`.
- var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
- var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
-
- var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
- var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
-
- nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
-
- // These are a run-length and offset encoded representation of the
- // >0xffff code points that are a valid part of identifiers. The
- // offset starts at 0x10000, and each pair of numbers represents an
- // offset to the next range, and then a size of the range. They were
- // generated by bin/generate-identifier-regex.js
-
- // eslint-disable-next-line comma-spacing
- var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,155,22,13,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,0,33,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,0,161,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,754,9486,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541];
-
- // eslint-disable-next-line comma-spacing
- var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,232,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,792487,239];
-
- // This has a complexity linear to the value of the code. The
- // assumption is that looking up astral identifier characters is
- // rare.
- function isInAstralSet(code, set) {
- var pos = 0x10000;
- for (var i = 0; i < set.length; i += 2) {
- pos += set[i];
- if (pos > code) { return false }
- pos += set[i + 1];
- if (pos >= code) { return true }
- }
- }
-
- // Test whether a given character code starts an identifier.
-
- function isIdentifierStart(code, astral) {
- if (code < 65) { return code === 36 }
- if (code < 91) { return true }
- if (code < 97) { return code === 95 }
- if (code < 123) { return true }
- if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }
- if (astral === false) { return false }
- return isInAstralSet(code, astralIdentifierStartCodes)
- }
-
- // Test whether a given character is part of an identifier.
-
- function isIdentifierChar(code, astral) {
- if (code < 48) { return code === 36 }
- if (code < 58) { return true }
- if (code < 65) { return false }
- if (code < 91) { return true }
- if (code < 97) { return code === 95 }
- if (code < 123) { return true }
- if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }
- if (astral === false) { return false }
- return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)
- }
-
- // ## Token types
-
- // The assignment of fine-grained, information-carrying type objects
- // allows the tokenizer to store the information it has about a
- // token in a way that is very cheap for the parser to look up.
-
- // All token type variables start with an underscore, to make them
- // easy to recognize.
-
- // The `beforeExpr` property is used to disambiguate between regular
- // expressions and divisions. It is set on all token types that can
- // be followed by an expression (thus, a slash after them would be a
- // regular expression).
- //
- // The `startsExpr` property is used to check if the token ends a
- // `yield` expression. It is set on all token types that either can
- // directly start an expression (like a quotation mark) or can
- // continue an expression (like the body of a string).
- //
- // `isLoop` marks a keyword as starting a loop, which is important
- // to know when parsing a label, in order to allow or disallow
- // continue jumps to that label.
-
- var TokenType = function TokenType(label, conf) {
- if ( conf === void 0 ) conf = {};
-
- this.label = label;
- this.keyword = conf.keyword;
- this.beforeExpr = !!conf.beforeExpr;
- this.startsExpr = !!conf.startsExpr;
- this.isLoop = !!conf.isLoop;
- this.isAssign = !!conf.isAssign;
- this.prefix = !!conf.prefix;
- this.postfix = !!conf.postfix;
- this.binop = conf.binop || null;
- this.updateContext = null;
- };
-
- function binop(name, prec) {
- return new TokenType(name, {beforeExpr: true, binop: prec})
- }
- var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};
-
- // Map keyword names to token types.
-
- var keywords$1 = {};
-
- // Succinct definitions of keyword token types
- function kw(name, options) {
- if ( options === void 0 ) options = {};
-
- options.keyword = name;
- return keywords$1[name] = new TokenType(name, options)
- }
-
- var types = {
- num: new TokenType("num", startsExpr),
- regexp: new TokenType("regexp", startsExpr),
- string: new TokenType("string", startsExpr),
- name: new TokenType("name", startsExpr),
- eof: new TokenType("eof"),
-
- // Punctuation token types.
- bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}),
- bracketR: new TokenType("]"),
- braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}),
- braceR: new TokenType("}"),
- parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}),
- parenR: new TokenType(")"),
- comma: new TokenType(",", beforeExpr),
- semi: new TokenType(";", beforeExpr),
- colon: new TokenType(":", beforeExpr),
- dot: new TokenType("."),
- question: new TokenType("?", beforeExpr),
- arrow: new TokenType("=>", beforeExpr),
- template: new TokenType("template"),
- invalidTemplate: new TokenType("invalidTemplate"),
- ellipsis: new TokenType("...", beforeExpr),
- backQuote: new TokenType("`", startsExpr),
- dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}),
-
- // Operators. These carry several kinds of properties to help the
- // parser use them properly (the presence of these properties is
- // what categorizes them as operators).
- //
- // `binop`, when present, specifies that this operator is a binary
- // operator, and will refer to its precedence.
- //
- // `prefix` and `postfix` mark the operator as a prefix or postfix
- // unary operator.
- //
- // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
- // binary operators with a very low precedence, that should result
- // in AssignmentExpression nodes.
-
- eq: new TokenType("=", {beforeExpr: true, isAssign: true}),
- assign: new TokenType("_=", {beforeExpr: true, isAssign: true}),
- incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}),
- prefix: new TokenType("!/~", {beforeExpr: true, prefix: true, startsExpr: true}),
- logicalOR: binop("||", 1),
- logicalAND: binop("&&", 2),
- bitwiseOR: binop("|", 3),
- bitwiseXOR: binop("^", 4),
- bitwiseAND: binop("&", 5),
- equality: binop("==/!=/===/!==", 6),
- relational: binop(">/<=/>=", 7),
- bitShift: binop("<>>/>>>", 8),
- plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),
- modulo: binop("%", 10),
- star: binop("*", 10),
- slash: binop("/", 10),
- starstar: new TokenType("**", {beforeExpr: true}),
-
- // Keyword token types.
- _break: kw("break"),
- _case: kw("case", beforeExpr),
- _catch: kw("catch"),
- _continue: kw("continue"),
- _debugger: kw("debugger"),
- _default: kw("default", beforeExpr),
- _do: kw("do", {isLoop: true, beforeExpr: true}),
- _else: kw("else", beforeExpr),
- _finally: kw("finally"),
- _for: kw("for", {isLoop: true}),
- _function: kw("function", startsExpr),
- _if: kw("if"),
- _return: kw("return", beforeExpr),
- _switch: kw("switch"),
- _throw: kw("throw", beforeExpr),
- _try: kw("try"),
- _var: kw("var"),
- _const: kw("const"),
- _while: kw("while", {isLoop: true}),
- _with: kw("with"),
- _new: kw("new", {beforeExpr: true, startsExpr: true}),
- _this: kw("this", startsExpr),
- _super: kw("super", startsExpr),
- _class: kw("class", startsExpr),
- _extends: kw("extends", beforeExpr),
- _export: kw("export"),
- _import: kw("import", startsExpr),
- _null: kw("null", startsExpr),
- _true: kw("true", startsExpr),
- _false: kw("false", startsExpr),
- _in: kw("in", {beforeExpr: true, binop: 7}),
- _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}),
- _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}),
- _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}),
- _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true})
- };
-
- // Matches a whole line break (where CRLF is considered a single
- // line break). Used to count lines.
-
- var lineBreak = /\r\n?|\n|\u2028|\u2029/;
- var lineBreakG = new RegExp(lineBreak.source, "g");
-
- function isNewLine(code, ecma2019String) {
- return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))
- }
-
- var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/;
-
- var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
-
- var ref = Object.prototype;
- var hasOwnProperty = ref.hasOwnProperty;
- var toString = ref.toString;
-
- // Checks if an object has a property.
-
- function has(obj, propName) {
- return hasOwnProperty.call(obj, propName)
- }
-
- var isArray = Array.isArray || (function (obj) { return (
- toString.call(obj) === "[object Array]"
- ); });
-
- function wordsRegexp(words) {
- return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$")
- }
-
- // These are used when `options.locations` is on, for the
- // `startLoc` and `endLoc` properties.
-
- var Position = function Position(line, col) {
- this.line = line;
- this.column = col;
- };
-
- Position.prototype.offset = function offset (n) {
- return new Position(this.line, this.column + n)
- };
-
- var SourceLocation = function SourceLocation(p, start, end) {
- this.start = start;
- this.end = end;
- if (p.sourceFile !== null) { this.source = p.sourceFile; }
- };
-
- // The `getLineInfo` function is mostly useful when the
- // `locations` option is off (for performance reasons) and you
- // want to find the line/column position for a given character
- // offset. `input` should be the code string that the offset refers
- // into.
-
- function getLineInfo(input, offset) {
- for (var line = 1, cur = 0;;) {
- lineBreakG.lastIndex = cur;
- var match = lineBreakG.exec(input);
- if (match && match.index < offset) {
- ++line;
- cur = match.index + match[0].length;
- } else {
- return new Position(line, offset - cur)
- }
- }
- }
-
- // A second optional argument can be given to further configure
- // the parser process. These options are recognized:
-
- var defaultOptions = {
- // `ecmaVersion` indicates the ECMAScript version to parse. Must be
- // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10
- // (2019). This influences support for strict mode, the set of
- // reserved words, and support for new syntax features. The default
- // is 10.
- ecmaVersion: 10,
- // `sourceType` indicates the mode the code should be parsed in.
- // Can be either `"script"` or `"module"`. This influences global
- // strict mode and parsing of `import` and `export` declarations.
- sourceType: "script",
- // `onInsertedSemicolon` can be a callback that will be called
- // when a semicolon is automatically inserted. It will be passed
- // the position of the comma as an offset, and if `locations` is
- // enabled, it is given the location as a `{line, column}` object
- // as second argument.
- onInsertedSemicolon: null,
- // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
- // trailing commas.
- onTrailingComma: null,
- // By default, reserved words are only enforced if ecmaVersion >= 5.
- // Set `allowReserved` to a boolean value to explicitly turn this on
- // an off. When this option has the value "never", reserved words
- // and keywords can also not be used as property names.
- allowReserved: null,
- // When enabled, a return at the top level is not considered an
- // error.
- allowReturnOutsideFunction: false,
- // When enabled, import/export statements are not constrained to
- // appearing at the top of the program.
- allowImportExportEverywhere: false,
- // When enabled, await identifiers are allowed to appear at the top-level scope,
- // but they are still not allowed in non-async functions.
- allowAwaitOutsideFunction: false,
- // When enabled, hashbang directive in the beginning of file
- // is allowed and treated as a line comment.
- allowHashBang: false,
- // When `locations` is on, `loc` properties holding objects with
- // `start` and `end` properties in `{line, column}` form (with
- // line being 1-based and column 0-based) will be attached to the
- // nodes.
- locations: false,
- // A function can be passed as `onToken` option, which will
- // cause Acorn to call that function with object in the same
- // format as tokens returned from `tokenizer().getToken()`. Note
- // that you are not allowed to call the parser from the
- // callback—that will corrupt its internal state.
- onToken: null,
- // A function can be passed as `onComment` option, which will
- // cause Acorn to call that function with `(block, text, start,
- // end)` parameters whenever a comment is skipped. `block` is a
- // boolean indicating whether this is a block (`/* */`) comment,
- // `text` is the content of the comment, and `start` and `end` are
- // character offsets that denote the start and end of the comment.
- // When the `locations` option is on, two more parameters are
- // passed, the full `{line, column}` locations of the start and
- // end of the comments. Note that you are not allowed to call the
- // parser from the callback—that will corrupt its internal state.
- onComment: null,
- // Nodes have their start and end characters offsets recorded in
- // `start` and `end` properties (directly on the node, rather than
- // the `loc` object, which holds line/column data. To also add a
- // [semi-standardized][range] `range` property holding a `[start,
- // end]` array with the same numbers, set the `ranges` option to
- // `true`.
- //
- // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
- ranges: false,
- // It is possible to parse multiple files into a single AST by
- // passing the tree produced by parsing the first file as
- // `program` option in subsequent parses. This will add the
- // toplevel forms of the parsed file to the `Program` (top) node
- // of an existing parse tree.
- program: null,
- // When `locations` is on, you can pass this to record the source
- // file in every node's `loc` object.
- sourceFile: null,
- // This value, if given, is stored in every node, whether
- // `locations` is on or off.
- directSourceFile: null,
- // When enabled, parenthesized expressions are represented by
- // (non-standard) ParenthesizedExpression nodes
- preserveParens: false
- };
-
- // Interpret and default an options object
-
- function getOptions(opts) {
- var options = {};
-
- for (var opt in defaultOptions)
- { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; }
-
- if (options.ecmaVersion >= 2015)
- { options.ecmaVersion -= 2009; }
-
- if (options.allowReserved == null)
- { options.allowReserved = options.ecmaVersion < 5; }
-
- if (isArray(options.onToken)) {
- var tokens = options.onToken;
- options.onToken = function (token) { return tokens.push(token); };
- }
- if (isArray(options.onComment))
- { options.onComment = pushComment(options, options.onComment); }
-
- return options
- }
-
- function pushComment(options, array) {
- return function(block, text, start, end, startLoc, endLoc) {
- var comment = {
- type: block ? "Block" : "Line",
- value: text,
- start: start,
- end: end
- };
- if (options.locations)
- { comment.loc = new SourceLocation(this, startLoc, endLoc); }
- if (options.ranges)
- { comment.range = [start, end]; }
- array.push(comment);
- }
- }
-
- // Each scope gets a bitset that may contain these flags
- var
- SCOPE_TOP = 1,
- SCOPE_FUNCTION = 2,
- SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,
- SCOPE_ASYNC = 4,
- SCOPE_GENERATOR = 8,
- SCOPE_ARROW = 16,
- SCOPE_SIMPLE_CATCH = 32,
- SCOPE_SUPER = 64,
- SCOPE_DIRECT_SUPER = 128;
-
- function functionFlags(async, generator) {
- return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)
- }
-
- // Used in checkLVal and declareName to determine the type of a binding
- var
- BIND_NONE = 0, // Not a binding
- BIND_VAR = 1, // Var-style binding
- BIND_LEXICAL = 2, // Let- or const-style binding
- BIND_FUNCTION = 3, // Function declaration
- BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding
- BIND_OUTSIDE = 5; // Special case for function names as bound inside the function
-
- var Parser = function Parser(options, input, startPos) {
- this.options = options = getOptions(options);
- this.sourceFile = options.sourceFile;
- this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]);
- var reserved = "";
- if (options.allowReserved !== true) {
- for (var v = options.ecmaVersion;; v--)
- { if (reserved = reservedWords[v]) { break } }
- if (options.sourceType === "module") { reserved += " await"; }
- }
- this.reservedWords = wordsRegexp(reserved);
- var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict;
- this.reservedWordsStrict = wordsRegexp(reservedStrict);
- this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind);
- this.input = String(input);
-
- // Used to signal to callers of `readWord1` whether the word
- // contained any escape sequences. This is needed because words with
- // escape sequences must not be interpreted as keywords.
- this.containsEsc = false;
-
- // Set up token state
-
- // The current position of the tokenizer in the input.
- if (startPos) {
- this.pos = startPos;
- this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1;
- this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;
- } else {
- this.pos = this.lineStart = 0;
- this.curLine = 1;
- }
-
- // Properties of the current token:
- // Its type
- this.type = types.eof;
- // For tokens that include more information than their type, the value
- this.value = null;
- // Its start and end offset
- this.start = this.end = this.pos;
- // And, if locations are used, the {line, column} object
- // corresponding to those offsets
- this.startLoc = this.endLoc = this.curPosition();
-
- // Position information for the previous token
- this.lastTokEndLoc = this.lastTokStartLoc = null;
- this.lastTokStart = this.lastTokEnd = this.pos;
-
- // The context stack is used to superficially track syntactic
- // context to predict whether a regular expression is allowed in a
- // given position.
- this.context = this.initialContext();
- this.exprAllowed = true;
-
- // Figure out if it's a module code.
- this.inModule = options.sourceType === "module";
- this.strict = this.inModule || this.strictDirective(this.pos);
-
- // Used to signify the start of a potential arrow function
- this.potentialArrowAt = -1;
-
- // Positions to delayed-check that yield/await does not exist in default parameters.
- this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;
- // Labels in scope.
- this.labels = [];
- // Thus-far undefined exports.
- this.undefinedExports = {};
-
- // If enabled, skip leading hashbang line.
- if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!")
- { this.skipLineComment(2); }
-
- // Scope tracking for duplicate variable names (see scope.js)
- this.scopeStack = [];
- this.enterScope(SCOPE_TOP);
-
- // For RegExp validation
- this.regexpState = null;
- };
-
- var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true } };
-
- Parser.prototype.parse = function parse () {
- var node = this.options.program || this.startNode();
- this.nextToken();
- return this.parseTopLevel(node)
- };
-
- prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };
- prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };
- prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };
- prototypeAccessors.allowSuper.get = function () { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 };
- prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };
- prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };
-
- // Switch to a getter for 7.0.0.
- Parser.prototype.inNonArrowFunction = function inNonArrowFunction () { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 };
-
- Parser.extend = function extend () {
- var plugins = [], len = arguments.length;
- while ( len-- ) plugins[ len ] = arguments[ len ];
-
- var cls = this;
- for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }
- return cls
- };
-
- Parser.parse = function parse (input, options) {
- return new this(options, input).parse()
- };
-
- Parser.parseExpressionAt = function parseExpressionAt (input, pos, options) {
- var parser = new this(options, input, pos);
- parser.nextToken();
- return parser.parseExpression()
- };
-
- Parser.tokenizer = function tokenizer (input, options) {
- return new this(options, input)
- };
-
- Object.defineProperties( Parser.prototype, prototypeAccessors );
-
- var pp = Parser.prototype;
-
- // ## Parser utilities
-
- var literal = /^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)")/;
- pp.strictDirective = function(start) {
- for (;;) {
- // Try to find string literal.
- skipWhiteSpace.lastIndex = start;
- start += skipWhiteSpace.exec(this.input)[0].length;
- var match = literal.exec(this.input.slice(start));
- if (!match) { return false }
- if ((match[1] || match[2]) === "use strict") { return true }
- start += match[0].length;
-
- // Skip semicolon, if any.
- skipWhiteSpace.lastIndex = start;
- start += skipWhiteSpace.exec(this.input)[0].length;
- if (this.input[start] === ";")
- { start++; }
- }
- };
-
- // Predicate that tests whether the next token is of the given
- // type, and if yes, consumes it as a side effect.
-
- pp.eat = function(type) {
- if (this.type === type) {
- this.next();
- return true
- } else {
- return false
- }
- };
-
- // Tests whether parsed token is a contextual keyword.
-
- pp.isContextual = function(name) {
- return this.type === types.name && this.value === name && !this.containsEsc
- };
-
- // Consumes contextual keyword if possible.
-
- pp.eatContextual = function(name) {
- if (!this.isContextual(name)) { return false }
- this.next();
- return true
- };
-
- // Asserts that following token is given contextual keyword.
-
- pp.expectContextual = function(name) {
- if (!this.eatContextual(name)) { this.unexpected(); }
- };
-
- // Test whether a semicolon can be inserted at the current position.
-
- pp.canInsertSemicolon = function() {
- return this.type === types.eof ||
- this.type === types.braceR ||
- lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
- };
-
- pp.insertSemicolon = function() {
- if (this.canInsertSemicolon()) {
- if (this.options.onInsertedSemicolon)
- { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }
- return true
- }
- };
-
- // Consume a semicolon, or, failing that, see if we are allowed to
- // pretend that there is a semicolon at this position.
-
- pp.semicolon = function() {
- if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); }
- };
-
- pp.afterTrailingComma = function(tokType, notNext) {
- if (this.type === tokType) {
- if (this.options.onTrailingComma)
- { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }
- if (!notNext)
- { this.next(); }
- return true
- }
- };
-
- // Expect a token of a given type. If found, consume it, otherwise,
- // raise an unexpected token error.
-
- pp.expect = function(type) {
- this.eat(type) || this.unexpected();
- };
-
- // Raise an unexpected token error.
-
- pp.unexpected = function(pos) {
- this.raise(pos != null ? pos : this.start, "Unexpected token");
- };
-
- function DestructuringErrors() {
- this.shorthandAssign =
- this.trailingComma =
- this.parenthesizedAssign =
- this.parenthesizedBind =
- this.doubleProto =
- -1;
- }
-
- pp.checkPatternErrors = function(refDestructuringErrors, isAssign) {
- if (!refDestructuringErrors) { return }
- if (refDestructuringErrors.trailingComma > -1)
- { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); }
- var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;
- if (parens > -1) { this.raiseRecoverable(parens, "Parenthesized pattern"); }
- };
-
- pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
- if (!refDestructuringErrors) { return false }
- var shorthandAssign = refDestructuringErrors.shorthandAssign;
- var doubleProto = refDestructuringErrors.doubleProto;
- if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }
- if (shorthandAssign >= 0)
- { this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); }
- if (doubleProto >= 0)
- { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); }
- };
-
- pp.checkYieldAwaitInDefaultParams = function() {
- if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))
- { this.raise(this.yieldPos, "Yield expression cannot be a default value"); }
- if (this.awaitPos)
- { this.raise(this.awaitPos, "Await expression cannot be a default value"); }
- };
-
- pp.isSimpleAssignTarget = function(expr) {
- if (expr.type === "ParenthesizedExpression")
- { return this.isSimpleAssignTarget(expr.expression) }
- return expr.type === "Identifier" || expr.type === "MemberExpression"
- };
-
- var pp$1 = Parser.prototype;
-
- // ### Statement parsing
-
- // Parse a program. Initializes the parser, reads any number of
- // statements, and wraps them in a Program node. Optionally takes a
- // `program` argument. If present, the statements will be appended
- // to its body instead of creating a new node.
-
- pp$1.parseTopLevel = function(node) {
- var exports = {};
- if (!node.body) { node.body = []; }
- while (this.type !== types.eof) {
- var stmt = this.parseStatement(null, true, exports);
- node.body.push(stmt);
- }
- if (this.inModule)
- { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)
- {
- var name = list[i];
-
- this.raiseRecoverable(this.undefinedExports[name].start, ("Export '" + name + "' is not defined"));
- } }
- this.adaptDirectivePrologue(node.body);
- this.next();
- node.sourceType = this.options.sourceType;
- return this.finishNode(node, "Program")
- };
-
- var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"};
-
- pp$1.isLet = function(context) {
- if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false }
- skipWhiteSpace.lastIndex = this.pos;
- var skip = skipWhiteSpace.exec(this.input);
- var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);
- // For ambiguous cases, determine if a LexicalDeclaration (or only a
- // Statement) is allowed here. If context is not empty then only a Statement
- // is allowed. However, `let [` is an explicit negative lookahead for
- // ExpressionStatement, so special-case it first.
- if (nextCh === 91) { return true } // '['
- if (context) { return false }
-
- if (nextCh === 123) { return true } // '{'
- if (isIdentifierStart(nextCh, true)) {
- var pos = next + 1;
- while (isIdentifierChar(this.input.charCodeAt(pos), true)) { ++pos; }
- var ident = this.input.slice(next, pos);
- if (!keywordRelationalOperator.test(ident)) { return true }
- }
- return false
- };
-
- // check 'async [no LineTerminator here] function'
- // - 'async /*foo*/ function' is OK.
- // - 'async /*\n*/ function' is invalid.
- pp$1.isAsyncFunction = function() {
- if (this.options.ecmaVersion < 8 || !this.isContextual("async"))
- { return false }
-
- skipWhiteSpace.lastIndex = this.pos;
- var skip = skipWhiteSpace.exec(this.input);
- var next = this.pos + skip[0].length;
- return !lineBreak.test(this.input.slice(this.pos, next)) &&
- this.input.slice(next, next + 8) === "function" &&
- (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))
- };
-
- // Parse a single statement.
- //
- // If expecting a statement and finding a slash operator, parse a
- // regular expression literal. This is to handle cases like
- // `if (foo) /blah/.exec(foo)`, where looking at the previous token
- // does not help.
-
- pp$1.parseStatement = function(context, topLevel, exports) {
- var starttype = this.type, node = this.startNode(), kind;
-
- if (this.isLet(context)) {
- starttype = types._var;
- kind = "let";
- }
-
- // Most types of statements are recognized by the keyword they
- // start with. Many are trivial to parse, some require a bit of
- // complexity.
-
- switch (starttype) {
- case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
- case types._debugger: return this.parseDebuggerStatement(node)
- case types._do: return this.parseDoStatement(node)
- case types._for: return this.parseForStatement(node)
- case types._function:
- // Function as sole body of either an if statement or a labeled statement
- // works, but not when it is part of a labeled statement that is the sole
- // body of an if statement.
- if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); }
- return this.parseFunctionStatement(node, false, !context)
- case types._class:
- if (context) { this.unexpected(); }
- return this.parseClass(node, true)
- case types._if: return this.parseIfStatement(node)
- case types._return: return this.parseReturnStatement(node)
- case types._switch: return this.parseSwitchStatement(node)
- case types._throw: return this.parseThrowStatement(node)
- case types._try: return this.parseTryStatement(node)
- case types._const: case types._var:
- kind = kind || this.value;
- if (context && kind !== "var") { this.unexpected(); }
- return this.parseVarStatement(node, kind)
- case types._while: return this.parseWhileStatement(node)
- case types._with: return this.parseWithStatement(node)
- case types.braceL: return this.parseBlock(true, node)
- case types.semi: return this.parseEmptyStatement(node)
- case types._export:
- case types._import:
- if (this.options.ecmaVersion > 10 && starttype === types._import) {
- skipWhiteSpace.lastIndex = this.pos;
- var skip = skipWhiteSpace.exec(this.input);
- var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);
- if (nextCh === 40) // '('
- { return this.parseExpressionStatement(node, this.parseExpression()) }
- }
-
- if (!this.options.allowImportExportEverywhere) {
- if (!topLevel)
- { this.raise(this.start, "'import' and 'export' may only appear at the top level"); }
- if (!this.inModule)
- { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); }
- }
- return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports)
-
- // If the statement does not start with a statement keyword or a
- // brace, it's an ExpressionStatement or LabeledStatement. We
- // simply start parsing an expression, and afterwards, if the
- // next token is a colon and the expression was a simple
- // Identifier node, we switch to interpreting it as a label.
- default:
- if (this.isAsyncFunction()) {
- if (context) { this.unexpected(); }
- this.next();
- return this.parseFunctionStatement(node, true, !context)
- }
-
- var maybeName = this.value, expr = this.parseExpression();
- if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon))
- { return this.parseLabeledStatement(node, maybeName, expr, context) }
- else { return this.parseExpressionStatement(node, expr) }
- }
- };
-
- pp$1.parseBreakContinueStatement = function(node, keyword) {
- var isBreak = keyword === "break";
- this.next();
- if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }
- else if (this.type !== types.name) { this.unexpected(); }
- else {
- node.label = this.parseIdent();
- this.semicolon();
- }
-
- // Verify that there is an actual destination to break or
- // continue to.
- var i = 0;
- for (; i < this.labels.length; ++i) {
- var lab = this.labels[i];
- if (node.label == null || lab.name === node.label.name) {
- if (lab.kind != null && (isBreak || lab.kind === "loop")) { break }
- if (node.label && isBreak) { break }
- }
- }
- if (i === this.labels.length) { this.raise(node.start, "Unsyntactic " + keyword); }
- return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
- };
-
- pp$1.parseDebuggerStatement = function(node) {
- this.next();
- this.semicolon();
- return this.finishNode(node, "DebuggerStatement")
- };
-
- pp$1.parseDoStatement = function(node) {
- this.next();
- this.labels.push(loopLabel);
- node.body = this.parseStatement("do");
- this.labels.pop();
- this.expect(types._while);
- node.test = this.parseParenExpression();
- if (this.options.ecmaVersion >= 6)
- { this.eat(types.semi); }
- else
- { this.semicolon(); }
- return this.finishNode(node, "DoWhileStatement")
- };
-
- // Disambiguating between a `for` and a `for`/`in` or `for`/`of`
- // loop is non-trivial. Basically, we have to parse the init `var`
- // statement or expression, disallowing the `in` operator (see
- // the second parameter to `parseExpression`), and then check
- // whether the next token is `in` or `of`. When there is no init
- // part (semicolon immediately after the opening parenthesis), it
- // is a regular `for` loop.
-
- pp$1.parseForStatement = function(node) {
- this.next();
- var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual("await")) ? this.lastTokStart : -1;
- this.labels.push(loopLabel);
- this.enterScope(0);
- this.expect(types.parenL);
- if (this.type === types.semi) {
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- return this.parseFor(node, null)
- }
- var isLet = this.isLet();
- if (this.type === types._var || this.type === types._const || isLet) {
- var init$1 = this.startNode(), kind = isLet ? "let" : this.value;
- this.next();
- this.parseVar(init$1, true, kind);
- this.finishNode(init$1, "VariableDeclaration");
- if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) {
- if (this.options.ecmaVersion >= 9) {
- if (this.type === types._in) {
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- } else { node.await = awaitAt > -1; }
- }
- return this.parseForIn(node, init$1)
- }
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- return this.parseFor(node, init$1)
- }
- var refDestructuringErrors = new DestructuringErrors;
- var init = this.parseExpression(true, refDestructuringErrors);
- if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
- if (this.options.ecmaVersion >= 9) {
- if (this.type === types._in) {
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- } else { node.await = awaitAt > -1; }
- }
- this.toAssignable(init, false, refDestructuringErrors);
- this.checkLVal(init);
- return this.parseForIn(node, init)
- } else {
- this.checkExpressionErrors(refDestructuringErrors, true);
- }
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- return this.parseFor(node, init)
- };
-
- pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) {
- this.next();
- return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)
- };
-
- pp$1.parseIfStatement = function(node) {
- this.next();
- node.test = this.parseParenExpression();
- // allow function declarations in branches, but only in non-strict mode
- node.consequent = this.parseStatement("if");
- node.alternate = this.eat(types._else) ? this.parseStatement("if") : null;
- return this.finishNode(node, "IfStatement")
- };
-
- pp$1.parseReturnStatement = function(node) {
- if (!this.inFunction && !this.options.allowReturnOutsideFunction)
- { this.raise(this.start, "'return' outside of function"); }
- this.next();
-
- // In `return` (and `break`/`continue`), the keywords with
- // optional arguments, we eagerly look for a semicolon or the
- // possibility to insert one.
-
- if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; }
- else { node.argument = this.parseExpression(); this.semicolon(); }
- return this.finishNode(node, "ReturnStatement")
- };
-
- pp$1.parseSwitchStatement = function(node) {
- this.next();
- node.discriminant = this.parseParenExpression();
- node.cases = [];
- this.expect(types.braceL);
- this.labels.push(switchLabel);
- this.enterScope(0);
-
- // Statements under must be grouped (by label) in SwitchCase
- // nodes. `cur` is used to keep the node that we are currently
- // adding statements to.
-
- var cur;
- for (var sawDefault = false; this.type !== types.braceR;) {
- if (this.type === types._case || this.type === types._default) {
- var isCase = this.type === types._case;
- if (cur) { this.finishNode(cur, "SwitchCase"); }
- node.cases.push(cur = this.startNode());
- cur.consequent = [];
- this.next();
- if (isCase) {
- cur.test = this.parseExpression();
- } else {
- if (sawDefault) { this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"); }
- sawDefault = true;
- cur.test = null;
- }
- this.expect(types.colon);
- } else {
- if (!cur) { this.unexpected(); }
- cur.consequent.push(this.parseStatement(null));
- }
- }
- this.exitScope();
- if (cur) { this.finishNode(cur, "SwitchCase"); }
- this.next(); // Closing brace
- this.labels.pop();
- return this.finishNode(node, "SwitchStatement")
- };
-
- pp$1.parseThrowStatement = function(node) {
- this.next();
- if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))
- { this.raise(this.lastTokEnd, "Illegal newline after throw"); }
- node.argument = this.parseExpression();
- this.semicolon();
- return this.finishNode(node, "ThrowStatement")
- };
-
- // Reused empty array added for node fields that are always empty.
-
- var empty = [];
-
- pp$1.parseTryStatement = function(node) {
- this.next();
- node.block = this.parseBlock();
- node.handler = null;
- if (this.type === types._catch) {
- var clause = this.startNode();
- this.next();
- if (this.eat(types.parenL)) {
- clause.param = this.parseBindingAtom();
- var simple = clause.param.type === "Identifier";
- this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);
- this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);
- this.expect(types.parenR);
- } else {
- if (this.options.ecmaVersion < 10) { this.unexpected(); }
- clause.param = null;
- this.enterScope(0);
- }
- clause.body = this.parseBlock(false);
- this.exitScope();
- node.handler = this.finishNode(clause, "CatchClause");
- }
- node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;
- if (!node.handler && !node.finalizer)
- { this.raise(node.start, "Missing catch or finally clause"); }
- return this.finishNode(node, "TryStatement")
- };
-
- pp$1.parseVarStatement = function(node, kind) {
- this.next();
- this.parseVar(node, false, kind);
- this.semicolon();
- return this.finishNode(node, "VariableDeclaration")
- };
-
- pp$1.parseWhileStatement = function(node) {
- this.next();
- node.test = this.parseParenExpression();
- this.labels.push(loopLabel);
- node.body = this.parseStatement("while");
- this.labels.pop();
- return this.finishNode(node, "WhileStatement")
- };
-
- pp$1.parseWithStatement = function(node) {
- if (this.strict) { this.raise(this.start, "'with' in strict mode"); }
- this.next();
- node.object = this.parseParenExpression();
- node.body = this.parseStatement("with");
- return this.finishNode(node, "WithStatement")
- };
-
- pp$1.parseEmptyStatement = function(node) {
- this.next();
- return this.finishNode(node, "EmptyStatement")
- };
-
- pp$1.parseLabeledStatement = function(node, maybeName, expr, context) {
- for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)
- {
- var label = list[i$1];
-
- if (label.name === maybeName)
- { this.raise(expr.start, "Label '" + maybeName + "' is already declared");
- } }
- var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null;
- for (var i = this.labels.length - 1; i >= 0; i--) {
- var label$1 = this.labels[i];
- if (label$1.statementStart === node.start) {
- // Update information about previous labels on this node
- label$1.statementStart = this.start;
- label$1.kind = kind;
- } else { break }
- }
- this.labels.push({name: maybeName, kind: kind, statementStart: this.start});
- node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label");
- this.labels.pop();
- node.label = expr;
- return this.finishNode(node, "LabeledStatement")
- };
-
- pp$1.parseExpressionStatement = function(node, expr) {
- node.expression = expr;
- this.semicolon();
- return this.finishNode(node, "ExpressionStatement")
- };
-
- // Parse a semicolon-enclosed block of statements, handling `"use
- // strict"` declarations when `allowStrict` is true (used for
- // function bodies).
-
- pp$1.parseBlock = function(createNewLexicalScope, node) {
- if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;
- if ( node === void 0 ) node = this.startNode();
-
- node.body = [];
- this.expect(types.braceL);
- if (createNewLexicalScope) { this.enterScope(0); }
- while (!this.eat(types.braceR)) {
- var stmt = this.parseStatement(null);
- node.body.push(stmt);
- }
- if (createNewLexicalScope) { this.exitScope(); }
- return this.finishNode(node, "BlockStatement")
- };
-
- // Parse a regular `for` loop. The disambiguation code in
- // `parseStatement` will already have parsed the init statement or
- // expression.
-
- pp$1.parseFor = function(node, init) {
- node.init = init;
- this.expect(types.semi);
- node.test = this.type === types.semi ? null : this.parseExpression();
- this.expect(types.semi);
- node.update = this.type === types.parenR ? null : this.parseExpression();
- this.expect(types.parenR);
- node.body = this.parseStatement("for");
- this.exitScope();
- this.labels.pop();
- return this.finishNode(node, "ForStatement")
- };
-
- // Parse a `for`/`in` and `for`/`of` loop, which are almost
- // same from parser's perspective.
-
- pp$1.parseForIn = function(node, init) {
- var isForIn = this.type === types._in;
- this.next();
-
- if (
- init.type === "VariableDeclaration" &&
- init.declarations[0].init != null &&
- (
- !isForIn ||
- this.options.ecmaVersion < 8 ||
- this.strict ||
- init.kind !== "var" ||
- init.declarations[0].id.type !== "Identifier"
- )
- ) {
- this.raise(
- init.start,
- ((isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer")
- );
- } else if (init.type === "AssignmentPattern") {
- this.raise(init.start, "Invalid left-hand side in for-loop");
- }
- node.left = init;
- node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();
- this.expect(types.parenR);
- node.body = this.parseStatement("for");
- this.exitScope();
- this.labels.pop();
- return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement")
- };
-
- // Parse a list of variable declarations.
-
- pp$1.parseVar = function(node, isFor, kind) {
- node.declarations = [];
- node.kind = kind;
- for (;;) {
- var decl = this.startNode();
- this.parseVarId(decl, kind);
- if (this.eat(types.eq)) {
- decl.init = this.parseMaybeAssign(isFor);
- } else if (kind === "const" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) {
- this.unexpected();
- } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types._in || this.isContextual("of")))) {
- this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value");
- } else {
- decl.init = null;
- }
- node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
- if (!this.eat(types.comma)) { break }
- }
- return node
- };
-
- pp$1.parseVarId = function(decl, kind) {
- decl.id = this.parseBindingAtom();
- this.checkLVal(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false);
- };
-
- var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;
-
- // Parse a function declaration or literal (depending on the
- // `statement & FUNC_STATEMENT`).
-
- // Remove `allowExpressionBody` for 7.0.0, as it is only called with false
- pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync) {
- this.initFunction(node);
- if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {
- if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT))
- { this.unexpected(); }
- node.generator = this.eat(types.star);
- }
- if (this.options.ecmaVersion >= 8)
- { node.async = !!isAsync; }
-
- if (statement & FUNC_STATEMENT) {
- node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent();
- if (node.id && !(statement & FUNC_HANGING_STATEMENT))
- // If it is a regular function declaration in sloppy mode, then it is
- // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding
- // mode depends on properties of the current scope (see
- // treatFunctionsAsVar).
- { this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }
- }
-
- var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
- this.yieldPos = 0;
- this.awaitPos = 0;
- this.awaitIdentPos = 0;
- this.enterScope(functionFlags(node.async, node.generator));
-
- if (!(statement & FUNC_STATEMENT))
- { node.id = this.type === types.name ? this.parseIdent() : null; }
-
- this.parseFunctionParams(node);
- this.parseFunctionBody(node, allowExpressionBody, false);
-
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- this.awaitIdentPos = oldAwaitIdentPos;
- return this.finishNode(node, (statement & FUNC_STATEMENT) ? "FunctionDeclaration" : "FunctionExpression")
- };
-
- pp$1.parseFunctionParams = function(node) {
- this.expect(types.parenL);
- node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);
- this.checkYieldAwaitInDefaultParams();
- };
-
- // Parse a class declaration or literal (depending on the
- // `isStatement` parameter).
-
- pp$1.parseClass = function(node, isStatement) {
- this.next();
-
- // ecma-262 14.6 Class Definitions
- // A class definition is always strict mode code.
- var oldStrict = this.strict;
- this.strict = true;
-
- this.parseClassId(node, isStatement);
- this.parseClassSuper(node);
- var classBody = this.startNode();
- var hadConstructor = false;
- classBody.body = [];
- this.expect(types.braceL);
- while (!this.eat(types.braceR)) {
- var element = this.parseClassElement(node.superClass !== null);
- if (element) {
- classBody.body.push(element);
- if (element.type === "MethodDefinition" && element.kind === "constructor") {
- if (hadConstructor) { this.raise(element.start, "Duplicate constructor in the same class"); }
- hadConstructor = true;
- }
- }
- }
- node.body = this.finishNode(classBody, "ClassBody");
- this.strict = oldStrict;
- return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
- };
-
- pp$1.parseClassElement = function(constructorAllowsSuper) {
- var this$1 = this;
-
- if (this.eat(types.semi)) { return null }
-
- var method = this.startNode();
- var tryContextual = function (k, noLineBreak) {
- if ( noLineBreak === void 0 ) noLineBreak = false;
-
- var start = this$1.start, startLoc = this$1.startLoc;
- if (!this$1.eatContextual(k)) { return false }
- if (this$1.type !== types.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true }
- if (method.key) { this$1.unexpected(); }
- method.computed = false;
- method.key = this$1.startNodeAt(start, startLoc);
- method.key.name = k;
- this$1.finishNode(method.key, "Identifier");
- return false
- };
-
- method.kind = "method";
- method.static = tryContextual("static");
- var isGenerator = this.eat(types.star);
- var isAsync = false;
- if (!isGenerator) {
- if (this.options.ecmaVersion >= 8 && tryContextual("async", true)) {
- isAsync = true;
- isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);
- } else if (tryContextual("get")) {
- method.kind = "get";
- } else if (tryContextual("set")) {
- method.kind = "set";
- }
- }
- if (!method.key) { this.parsePropertyName(method); }
- var key = method.key;
- var allowsDirectSuper = false;
- if (!method.computed && !method.static && (key.type === "Identifier" && key.name === "constructor" ||
- key.type === "Literal" && key.value === "constructor")) {
- if (method.kind !== "method") { this.raise(key.start, "Constructor can't have get/set modifier"); }
- if (isGenerator) { this.raise(key.start, "Constructor can't be a generator"); }
- if (isAsync) { this.raise(key.start, "Constructor can't be an async method"); }
- method.kind = "constructor";
- allowsDirectSuper = constructorAllowsSuper;
- } else if (method.static && key.type === "Identifier" && key.name === "prototype") {
- this.raise(key.start, "Classes may not have a static property named prototype");
- }
- this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper);
- if (method.kind === "get" && method.value.params.length !== 0)
- { this.raiseRecoverable(method.value.start, "getter should have no params"); }
- if (method.kind === "set" && method.value.params.length !== 1)
- { this.raiseRecoverable(method.value.start, "setter should have exactly one param"); }
- if (method.kind === "set" && method.value.params[0].type === "RestElement")
- { this.raiseRecoverable(method.value.params[0].start, "Setter cannot use rest params"); }
- return method
- };
-
- pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {
- method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);
- return this.finishNode(method, "MethodDefinition")
- };
-
- pp$1.parseClassId = function(node, isStatement) {
- if (this.type === types.name) {
- node.id = this.parseIdent();
- if (isStatement)
- { this.checkLVal(node.id, BIND_LEXICAL, false); }
- } else {
- if (isStatement === true)
- { this.unexpected(); }
- node.id = null;
- }
- };
-
- pp$1.parseClassSuper = function(node) {
- node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null;
- };
-
- // Parses module export declaration.
-
- pp$1.parseExport = function(node, exports) {
- this.next();
- // export * from '...'
- if (this.eat(types.star)) {
- this.expectContextual("from");
- if (this.type !== types.string) { this.unexpected(); }
- node.source = this.parseExprAtom();
- this.semicolon();
- return this.finishNode(node, "ExportAllDeclaration")
- }
- if (this.eat(types._default)) { // export default ...
- this.checkExport(exports, "default", this.lastTokStart);
- var isAsync;
- if (this.type === types._function || (isAsync = this.isAsyncFunction())) {
- var fNode = this.startNode();
- this.next();
- if (isAsync) { this.next(); }
- node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);
- } else if (this.type === types._class) {
- var cNode = this.startNode();
- node.declaration = this.parseClass(cNode, "nullableID");
- } else {
- node.declaration = this.parseMaybeAssign();
- this.semicolon();
- }
- return this.finishNode(node, "ExportDefaultDeclaration")
- }
- // export var|const|let|function|class ...
- if (this.shouldParseExportStatement()) {
- node.declaration = this.parseStatement(null);
- if (node.declaration.type === "VariableDeclaration")
- { this.checkVariableExport(exports, node.declaration.declarations); }
- else
- { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); }
- node.specifiers = [];
- node.source = null;
- } else { // export { x, y as z } [from '...']
- node.declaration = null;
- node.specifiers = this.parseExportSpecifiers(exports);
- if (this.eatContextual("from")) {
- if (this.type !== types.string) { this.unexpected(); }
- node.source = this.parseExprAtom();
- } else {
- for (var i = 0, list = node.specifiers; i < list.length; i += 1) {
- // check for keywords used as local names
- var spec = list[i];
-
- this.checkUnreserved(spec.local);
- // check if export is defined
- this.checkLocalExport(spec.local);
- }
-
- node.source = null;
- }
- this.semicolon();
- }
- return this.finishNode(node, "ExportNamedDeclaration")
- };
-
- pp$1.checkExport = function(exports, name, pos) {
- if (!exports) { return }
- if (has(exports, name))
- { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); }
- exports[name] = true;
- };
-
- pp$1.checkPatternExport = function(exports, pat) {
- var type = pat.type;
- if (type === "Identifier")
- { this.checkExport(exports, pat.name, pat.start); }
- else if (type === "ObjectPattern")
- { for (var i = 0, list = pat.properties; i < list.length; i += 1)
- {
- var prop = list[i];
-
- this.checkPatternExport(exports, prop);
- } }
- else if (type === "ArrayPattern")
- { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {
- var elt = list$1[i$1];
-
- if (elt) { this.checkPatternExport(exports, elt); }
- } }
- else if (type === "Property")
- { this.checkPatternExport(exports, pat.value); }
- else if (type === "AssignmentPattern")
- { this.checkPatternExport(exports, pat.left); }
- else if (type === "RestElement")
- { this.checkPatternExport(exports, pat.argument); }
- else if (type === "ParenthesizedExpression")
- { this.checkPatternExport(exports, pat.expression); }
- };
-
- pp$1.checkVariableExport = function(exports, decls) {
- if (!exports) { return }
- for (var i = 0, list = decls; i < list.length; i += 1)
- {
- var decl = list[i];
-
- this.checkPatternExport(exports, decl.id);
- }
- };
-
- pp$1.shouldParseExportStatement = function() {
- return this.type.keyword === "var" ||
- this.type.keyword === "const" ||
- this.type.keyword === "class" ||
- this.type.keyword === "function" ||
- this.isLet() ||
- this.isAsyncFunction()
- };
-
- // Parses a comma-separated list of module exports.
-
- pp$1.parseExportSpecifiers = function(exports) {
- var nodes = [], first = true;
- // export { x, y as z } [from '...']
- this.expect(types.braceL);
- while (!this.eat(types.braceR)) {
- if (!first) {
- this.expect(types.comma);
- if (this.afterTrailingComma(types.braceR)) { break }
- } else { first = false; }
-
- var node = this.startNode();
- node.local = this.parseIdent(true);
- node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local;
- this.checkExport(exports, node.exported.name, node.exported.start);
- nodes.push(this.finishNode(node, "ExportSpecifier"));
- }
- return nodes
- };
-
- // Parses import declaration.
-
- pp$1.parseImport = function(node) {
- this.next();
- // import '...'
- if (this.type === types.string) {
- node.specifiers = empty;
- node.source = this.parseExprAtom();
- } else {
- node.specifiers = this.parseImportSpecifiers();
- this.expectContextual("from");
- node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected();
- }
- this.semicolon();
- return this.finishNode(node, "ImportDeclaration")
- };
-
- // Parses a comma-separated list of module imports.
-
- pp$1.parseImportSpecifiers = function() {
- var nodes = [], first = true;
- if (this.type === types.name) {
- // import defaultObj, { x, y as z } from '...'
- var node = this.startNode();
- node.local = this.parseIdent();
- this.checkLVal(node.local, BIND_LEXICAL);
- nodes.push(this.finishNode(node, "ImportDefaultSpecifier"));
- if (!this.eat(types.comma)) { return nodes }
- }
- if (this.type === types.star) {
- var node$1 = this.startNode();
- this.next();
- this.expectContextual("as");
- node$1.local = this.parseIdent();
- this.checkLVal(node$1.local, BIND_LEXICAL);
- nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier"));
- return nodes
- }
- this.expect(types.braceL);
- while (!this.eat(types.braceR)) {
- if (!first) {
- this.expect(types.comma);
- if (this.afterTrailingComma(types.braceR)) { break }
- } else { first = false; }
-
- var node$2 = this.startNode();
- node$2.imported = this.parseIdent(true);
- if (this.eatContextual("as")) {
- node$2.local = this.parseIdent();
- } else {
- this.checkUnreserved(node$2.imported);
- node$2.local = node$2.imported;
- }
- this.checkLVal(node$2.local, BIND_LEXICAL);
- nodes.push(this.finishNode(node$2, "ImportSpecifier"));
- }
- return nodes
- };
-
- // Set `ExpressionStatement#directive` property for directive prologues.
- pp$1.adaptDirectivePrologue = function(statements) {
- for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {
- statements[i].directive = statements[i].expression.raw.slice(1, -1);
- }
- };
- pp$1.isDirectiveCandidate = function(statement) {
- return (
- statement.type === "ExpressionStatement" &&
- statement.expression.type === "Literal" &&
- typeof statement.expression.value === "string" &&
- // Reject parenthesized strings.
- (this.input[statement.start] === "\"" || this.input[statement.start] === "'")
- )
- };
-
- var pp$2 = Parser.prototype;
-
- // Convert existing expression atom to assignable pattern
- // if possible.
-
- pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {
- if (this.options.ecmaVersion >= 6 && node) {
- switch (node.type) {
- case "Identifier":
- if (this.inAsync && node.name === "await")
- { this.raise(node.start, "Cannot use 'await' as identifier inside an async function"); }
- break
-
- case "ObjectPattern":
- case "ArrayPattern":
- case "RestElement":
- break
-
- case "ObjectExpression":
- node.type = "ObjectPattern";
- if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }
- for (var i = 0, list = node.properties; i < list.length; i += 1) {
- var prop = list[i];
-
- this.toAssignable(prop, isBinding);
- // Early error:
- // AssignmentRestProperty[Yield, Await] :
- // `...` DestructuringAssignmentTarget[Yield, Await]
- //
- // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.
- if (
- prop.type === "RestElement" &&
- (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern")
- ) {
- this.raise(prop.argument.start, "Unexpected token");
- }
- }
- break
-
- case "Property":
- // AssignmentProperty has type === "Property"
- if (node.kind !== "init") { this.raise(node.key.start, "Object pattern can't contain getter or setter"); }
- this.toAssignable(node.value, isBinding);
- break
-
- case "ArrayExpression":
- node.type = "ArrayPattern";
- if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }
- this.toAssignableList(node.elements, isBinding);
- break
-
- case "SpreadElement":
- node.type = "RestElement";
- this.toAssignable(node.argument, isBinding);
- if (node.argument.type === "AssignmentPattern")
- { this.raise(node.argument.start, "Rest elements cannot have a default value"); }
- break
-
- case "AssignmentExpression":
- if (node.operator !== "=") { this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); }
- node.type = "AssignmentPattern";
- delete node.operator;
- this.toAssignable(node.left, isBinding);
- // falls through to AssignmentPattern
-
- case "AssignmentPattern":
- break
-
- case "ParenthesizedExpression":
- this.toAssignable(node.expression, isBinding, refDestructuringErrors);
- break
-
- case "MemberExpression":
- if (!isBinding) { break }
-
- default:
- this.raise(node.start, "Assigning to rvalue");
- }
- } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }
- return node
- };
-
- // Convert list of expression atoms to binding list.
-
- pp$2.toAssignableList = function(exprList, isBinding) {
- var end = exprList.length;
- for (var i = 0; i < end; i++) {
- var elt = exprList[i];
- if (elt) { this.toAssignable(elt, isBinding); }
- }
- if (end) {
- var last = exprList[end - 1];
- if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier")
- { this.unexpected(last.argument.start); }
- }
- return exprList
- };
-
- // Parses spread element.
-
- pp$2.parseSpread = function(refDestructuringErrors) {
- var node = this.startNode();
- this.next();
- node.argument = this.parseMaybeAssign(false, refDestructuringErrors);
- return this.finishNode(node, "SpreadElement")
- };
-
- pp$2.parseRestBinding = function() {
- var node = this.startNode();
- this.next();
-
- // RestElement inside of a function parameter must be an identifier
- if (this.options.ecmaVersion === 6 && this.type !== types.name)
- { this.unexpected(); }
-
- node.argument = this.parseBindingAtom();
-
- return this.finishNode(node, "RestElement")
- };
-
- // Parses lvalue (assignable) atom.
-
- pp$2.parseBindingAtom = function() {
- if (this.options.ecmaVersion >= 6) {
- switch (this.type) {
- case types.bracketL:
- var node = this.startNode();
- this.next();
- node.elements = this.parseBindingList(types.bracketR, true, true);
- return this.finishNode(node, "ArrayPattern")
-
- case types.braceL:
- return this.parseObj(true)
- }
- }
- return this.parseIdent()
- };
-
- pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) {
- var elts = [], first = true;
- while (!this.eat(close)) {
- if (first) { first = false; }
- else { this.expect(types.comma); }
- if (allowEmpty && this.type === types.comma) {
- elts.push(null);
- } else if (allowTrailingComma && this.afterTrailingComma(close)) {
- break
- } else if (this.type === types.ellipsis) {
- var rest = this.parseRestBinding();
- this.parseBindingListItem(rest);
- elts.push(rest);
- if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
- this.expect(close);
- break
- } else {
- var elem = this.parseMaybeDefault(this.start, this.startLoc);
- this.parseBindingListItem(elem);
- elts.push(elem);
- }
- }
- return elts
- };
-
- pp$2.parseBindingListItem = function(param) {
- return param
- };
-
- // Parses assignment pattern around given atom if possible.
-
- pp$2.parseMaybeDefault = function(startPos, startLoc, left) {
- left = left || this.parseBindingAtom();
- if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left }
- var node = this.startNodeAt(startPos, startLoc);
- node.left = left;
- node.right = this.parseMaybeAssign();
- return this.finishNode(node, "AssignmentPattern")
- };
-
- // Verify that a node is an lval — something that can be assigned
- // to.
- // bindingType can be either:
- // 'var' indicating that the lval creates a 'var' binding
- // 'let' indicating that the lval creates a lexical ('let' or 'const') binding
- // 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references
-
- pp$2.checkLVal = function(expr, bindingType, checkClashes) {
- if ( bindingType === void 0 ) bindingType = BIND_NONE;
-
- switch (expr.type) {
- case "Identifier":
- if (bindingType === BIND_LEXICAL && expr.name === "let")
- { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); }
- if (this.strict && this.reservedWordsStrictBind.test(expr.name))
- { this.raiseRecoverable(expr.start, (bindingType ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); }
- if (checkClashes) {
- if (has(checkClashes, expr.name))
- { this.raiseRecoverable(expr.start, "Argument name clash"); }
- checkClashes[expr.name] = true;
- }
- if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }
- break
-
- case "MemberExpression":
- if (bindingType) { this.raiseRecoverable(expr.start, "Binding member expression"); }
- break
-
- case "ObjectPattern":
- for (var i = 0, list = expr.properties; i < list.length; i += 1)
- {
- var prop = list[i];
-
- this.checkLVal(prop, bindingType, checkClashes);
- }
- break
-
- case "Property":
- // AssignmentProperty has type === "Property"
- this.checkLVal(expr.value, bindingType, checkClashes);
- break
-
- case "ArrayPattern":
- for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {
- var elem = list$1[i$1];
-
- if (elem) { this.checkLVal(elem, bindingType, checkClashes); }
- }
- break
-
- case "AssignmentPattern":
- this.checkLVal(expr.left, bindingType, checkClashes);
- break
-
- case "RestElement":
- this.checkLVal(expr.argument, bindingType, checkClashes);
- break
-
- case "ParenthesizedExpression":
- this.checkLVal(expr.expression, bindingType, checkClashes);
- break
-
- default:
- this.raise(expr.start, (bindingType ? "Binding" : "Assigning to") + " rvalue");
- }
- };
-
- // A recursive descent parser operates by defining functions for all
-
- var pp$3 = Parser.prototype;
-
- // Check if property name clashes with already added.
- // Object/class getters and setters are not allowed to clash —
- // either with each other or with an init property — and in
- // strict mode, init properties are also not allowed to be repeated.
-
- pp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) {
- if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement")
- { return }
- if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))
- { return }
- var key = prop.key;
- var name;
- switch (key.type) {
- case "Identifier": name = key.name; break
- case "Literal": name = String(key.value); break
- default: return
- }
- var kind = prop.kind;
- if (this.options.ecmaVersion >= 6) {
- if (name === "__proto__" && kind === "init") {
- if (propHash.proto) {
- if (refDestructuringErrors && refDestructuringErrors.doubleProto < 0) { refDestructuringErrors.doubleProto = key.start; }
- // Backwards-compat kludge. Can be removed in version 6.0
- else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); }
- }
- propHash.proto = true;
- }
- return
- }
- name = "$" + name;
- var other = propHash[name];
- if (other) {
- var redefinition;
- if (kind === "init") {
- redefinition = this.strict && other.init || other.get || other.set;
- } else {
- redefinition = other.init || other[kind];
- }
- if (redefinition)
- { this.raiseRecoverable(key.start, "Redefinition of property"); }
- } else {
- other = propHash[name] = {
- init: false,
- get: false,
- set: false
- };
- }
- other[kind] = true;
- };
-
- // ### Expression parsing
-
- // These nest, from the most general expression type at the top to
- // 'atomic', nondivisible expression types at the bottom. Most of
- // the functions will simply let the function(s) below them parse,
- // and, *if* the syntactic construct they handle is present, wrap
- // the AST node that the inner parser gave them in another node.
-
- // Parse a full expression. The optional arguments are used to
- // forbid the `in` operator (in for loops initalization expressions)
- // and provide reference for storing '=' operator inside shorthand
- // property assignment in contexts where both object expression
- // and object pattern might appear (so it's possible to raise
- // delayed syntax error at correct position).
-
- pp$3.parseExpression = function(noIn, refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc;
- var expr = this.parseMaybeAssign(noIn, refDestructuringErrors);
- if (this.type === types.comma) {
- var node = this.startNodeAt(startPos, startLoc);
- node.expressions = [expr];
- while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors)); }
- return this.finishNode(node, "SequenceExpression")
- }
- return expr
- };
-
- // Parse an assignment expression. This includes applications of
- // operators like `+=`.
-
- pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {
- if (this.isContextual("yield")) {
- if (this.inGenerator) { return this.parseYield(noIn) }
- // The tokenizer will assume an expression is allowed after
- // `yield`, but this isn't that kind of yield
- else { this.exprAllowed = false; }
- }
-
- var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldShorthandAssign = -1;
- if (refDestructuringErrors) {
- oldParenAssign = refDestructuringErrors.parenthesizedAssign;
- oldTrailingComma = refDestructuringErrors.trailingComma;
- oldShorthandAssign = refDestructuringErrors.shorthandAssign;
- refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.shorthandAssign = -1;
- } else {
- refDestructuringErrors = new DestructuringErrors;
- ownDestructuringErrors = true;
- }
-
- var startPos = this.start, startLoc = this.startLoc;
- if (this.type === types.parenL || this.type === types.name)
- { this.potentialArrowAt = this.start; }
- var left = this.parseMaybeConditional(noIn, refDestructuringErrors);
- if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }
- if (this.type.isAssign) {
- var node = this.startNodeAt(startPos, startLoc);
- node.operator = this.value;
- node.left = this.type === types.eq ? this.toAssignable(left, false, refDestructuringErrors) : left;
- if (!ownDestructuringErrors) { DestructuringErrors.call(refDestructuringErrors); }
- refDestructuringErrors.shorthandAssign = -1; // reset because shorthand default was used correctly
- this.checkLVal(left);
- this.next();
- node.right = this.parseMaybeAssign(noIn);
- return this.finishNode(node, "AssignmentExpression")
- } else {
- if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }
- }
- if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }
- if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }
- if (oldShorthandAssign > -1) { refDestructuringErrors.shorthandAssign = oldShorthandAssign; }
- return left
- };
-
- // Parse a ternary conditional (`?:`) operator.
-
- pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc;
- var expr = this.parseExprOps(noIn, refDestructuringErrors);
- if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
- if (this.eat(types.question)) {
- var node = this.startNodeAt(startPos, startLoc);
- node.test = expr;
- node.consequent = this.parseMaybeAssign();
- this.expect(types.colon);
- node.alternate = this.parseMaybeAssign(noIn);
- return this.finishNode(node, "ConditionalExpression")
- }
- return expr
- };
-
- // Start the precedence parser.
-
- pp$3.parseExprOps = function(noIn, refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc;
- var expr = this.parseMaybeUnary(refDestructuringErrors, false);
- if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
- return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)
- };
-
- // Parse binary operators with the operator precedence parsing
- // algorithm. `left` is the left-hand side of the operator.
- // `minPrec` provides context that allows the function to stop and
- // defer further parser to one of its callers when it encounters an
- // operator that has a lower precedence than the set it is parsing.
-
- pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {
- var prec = this.type.binop;
- if (prec != null && (!noIn || this.type !== types._in)) {
- if (prec > minPrec) {
- var logical = this.type === types.logicalOR || this.type === types.logicalAND;
- var op = this.value;
- this.next();
- var startPos = this.start, startLoc = this.startLoc;
- var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn);
- var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical);
- return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)
- }
- }
- return left
- };
-
- pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) {
- var node = this.startNodeAt(startPos, startLoc);
- node.left = left;
- node.operator = op;
- node.right = right;
- return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression")
- };
-
- // Parse unary operators, both prefix and postfix.
-
- pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {
- var startPos = this.start, startLoc = this.startLoc, expr;
- if (this.isContextual("await") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {
- expr = this.parseAwait();
- sawUnary = true;
- } else if (this.type.prefix) {
- var node = this.startNode(), update = this.type === types.incDec;
- node.operator = this.value;
- node.prefix = true;
- this.next();
- node.argument = this.parseMaybeUnary(null, true);
- this.checkExpressionErrors(refDestructuringErrors, true);
- if (update) { this.checkLVal(node.argument); }
- else if (this.strict && node.operator === "delete" &&
- node.argument.type === "Identifier")
- { this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); }
- else { sawUnary = true; }
- expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
- } else {
- expr = this.parseExprSubscripts(refDestructuringErrors);
- if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
- while (this.type.postfix && !this.canInsertSemicolon()) {
- var node$1 = this.startNodeAt(startPos, startLoc);
- node$1.operator = this.value;
- node$1.prefix = false;
- node$1.argument = expr;
- this.checkLVal(expr);
- this.next();
- expr = this.finishNode(node$1, "UpdateExpression");
- }
- }
-
- if (!sawUnary && this.eat(types.starstar))
- { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false) }
- else
- { return expr }
- };
-
- // Parse call, dot, and `[]`-subscript expressions.
-
- pp$3.parseExprSubscripts = function(refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc;
- var expr = this.parseExprAtom(refDestructuringErrors);
- var skipArrowSubscripts = expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")";
- if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) { return expr }
- var result = this.parseSubscripts(expr, startPos, startLoc);
- if (refDestructuringErrors && result.type === "MemberExpression") {
- if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }
- if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }
- }
- return result
- };
-
- pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {
- var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" &&
- this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === "async";
- while (true) {
- var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow);
- if (element === base || element.type === "ArrowFunctionExpression") { return element }
- base = element;
- }
- };
-
- pp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow) {
- var computed = this.eat(types.bracketL);
- if (computed || this.eat(types.dot)) {
- var node = this.startNodeAt(startPos, startLoc);
- node.object = base;
- node.property = computed ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== "never");
- node.computed = !!computed;
- if (computed) { this.expect(types.bracketR); }
- base = this.finishNode(node, "MemberExpression");
- } else if (!noCalls && this.eat(types.parenL)) {
- var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
- this.yieldPos = 0;
- this.awaitPos = 0;
- this.awaitIdentPos = 0;
- var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);
- if (maybeAsyncArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {
- this.checkPatternErrors(refDestructuringErrors, false);
- this.checkYieldAwaitInDefaultParams();
- if (this.awaitIdentPos > 0)
- { this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"); }
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- this.awaitIdentPos = oldAwaitIdentPos;
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)
- }
- this.checkExpressionErrors(refDestructuringErrors, true);
- this.yieldPos = oldYieldPos || this.yieldPos;
- this.awaitPos = oldAwaitPos || this.awaitPos;
- this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;
- var node$1 = this.startNodeAt(startPos, startLoc);
- node$1.callee = base;
- node$1.arguments = exprList;
- base = this.finishNode(node$1, "CallExpression");
- } else if (this.type === types.backQuote) {
- var node$2 = this.startNodeAt(startPos, startLoc);
- node$2.tag = base;
- node$2.quasi = this.parseTemplate({isTagged: true});
- base = this.finishNode(node$2, "TaggedTemplateExpression");
- }
- return base
- };
-
- // Parse an atomic expression — either a single token that is an
- // expression, an expression started by a keyword like `function` or
- // `new`, or an expression wrapped in punctuation like `()`, `[]`,
- // or `{}`.
-
- pp$3.parseExprAtom = function(refDestructuringErrors) {
- // If a division operator appears in an expression position, the
- // tokenizer got confused, and we force it to read a regexp instead.
- if (this.type === types.slash) { this.readRegexp(); }
-
- var node, canBeArrow = this.potentialArrowAt === this.start;
- switch (this.type) {
- case types._super:
- if (!this.allowSuper)
- { this.raise(this.start, "'super' keyword outside a method"); }
- node = this.startNode();
- this.next();
- if (this.type === types.parenL && !this.allowDirectSuper)
- { this.raise(node.start, "super() call outside constructor of a subclass"); }
- // The `super` keyword can appear at below:
- // SuperProperty:
- // super [ Expression ]
- // super . IdentifierName
- // SuperCall:
- // super ( Arguments )
- if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL)
- { this.unexpected(); }
- return this.finishNode(node, "Super")
-
- case types._this:
- node = this.startNode();
- this.next();
- return this.finishNode(node, "ThisExpression")
-
- case types.name:
- var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;
- var id = this.parseIdent(false);
- if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types._function))
- { return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true) }
- if (canBeArrow && !this.canInsertSemicolon()) {
- if (this.eat(types.arrow))
- { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) }
- if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc) {
- id = this.parseIdent(false);
- if (this.canInsertSemicolon() || !this.eat(types.arrow))
- { this.unexpected(); }
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)
- }
- }
- return id
-
- case types.regexp:
- var value = this.value;
- node = this.parseLiteral(value.value);
- node.regex = {pattern: value.pattern, flags: value.flags};
- return node
-
- case types.num: case types.string:
- return this.parseLiteral(this.value)
-
- case types._null: case types._true: case types._false:
- node = this.startNode();
- node.value = this.type === types._null ? null : this.type === types._true;
- node.raw = this.type.keyword;
- this.next();
- return this.finishNode(node, "Literal")
-
- case types.parenL:
- var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow);
- if (refDestructuringErrors) {
- if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))
- { refDestructuringErrors.parenthesizedAssign = start; }
- if (refDestructuringErrors.parenthesizedBind < 0)
- { refDestructuringErrors.parenthesizedBind = start; }
- }
- return expr
-
- case types.bracketL:
- node = this.startNode();
- this.next();
- node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors);
- return this.finishNode(node, "ArrayExpression")
-
- case types.braceL:
- return this.parseObj(false, refDestructuringErrors)
-
- case types._function:
- node = this.startNode();
- this.next();
- return this.parseFunction(node, 0)
-
- case types._class:
- return this.parseClass(this.startNode(), false)
-
- case types._new:
- return this.parseNew()
-
- case types.backQuote:
- return this.parseTemplate()
-
- case types._import:
- if (this.options.ecmaVersion >= 11) {
- return this.parseExprImport()
- } else {
- return this.unexpected()
- }
-
- default:
- this.unexpected();
- }
- };
-
- pp$3.parseExprImport = function() {
- var node = this.startNode();
- this.next(); // skip `import`
- switch (this.type) {
- case types.parenL:
- return this.parseDynamicImport(node)
- default:
- this.unexpected();
- }
- };
-
- pp$3.parseDynamicImport = function(node) {
- this.next(); // skip `(`
-
- // Parse node.source.
- node.source = this.parseMaybeAssign();
-
- // Verify ending.
- if (!this.eat(types.parenR)) {
- var errorPos = this.start;
- if (this.eat(types.comma) && this.eat(types.parenR)) {
- this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()");
- } else {
- this.unexpected(errorPos);
- }
- }
-
- return this.finishNode(node, "ImportExpression")
- };
-
- pp$3.parseLiteral = function(value) {
- var node = this.startNode();
- node.value = value;
- node.raw = this.input.slice(this.start, this.end);
- if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1); }
- this.next();
- return this.finishNode(node, "Literal")
- };
-
- pp$3.parseParenExpression = function() {
- this.expect(types.parenL);
- var val = this.parseExpression();
- this.expect(types.parenR);
- return val
- };
-
- pp$3.parseParenAndDistinguishExpression = function(canBeArrow) {
- var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;
- if (this.options.ecmaVersion >= 6) {
- this.next();
-
- var innerStartPos = this.start, innerStartLoc = this.startLoc;
- var exprList = [], first = true, lastIsComma = false;
- var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;
- this.yieldPos = 0;
- this.awaitPos = 0;
- // Do not save awaitIdentPos to allow checking awaits nested in parameters
- while (this.type !== types.parenR) {
- first ? first = false : this.expect(types.comma);
- if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) {
- lastIsComma = true;
- break
- } else if (this.type === types.ellipsis) {
- spreadStart = this.start;
- exprList.push(this.parseParenItem(this.parseRestBinding()));
- if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
- break
- } else {
- exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));
- }
- }
- var innerEndPos = this.start, innerEndLoc = this.startLoc;
- this.expect(types.parenR);
-
- if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {
- this.checkPatternErrors(refDestructuringErrors, false);
- this.checkYieldAwaitInDefaultParams();
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- return this.parseParenArrowList(startPos, startLoc, exprList)
- }
-
- if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }
- if (spreadStart) { this.unexpected(spreadStart); }
- this.checkExpressionErrors(refDestructuringErrors, true);
- this.yieldPos = oldYieldPos || this.yieldPos;
- this.awaitPos = oldAwaitPos || this.awaitPos;
-
- if (exprList.length > 1) {
- val = this.startNodeAt(innerStartPos, innerStartLoc);
- val.expressions = exprList;
- this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc);
- } else {
- val = exprList[0];
- }
- } else {
- val = this.parseParenExpression();
- }
-
- if (this.options.preserveParens) {
- var par = this.startNodeAt(startPos, startLoc);
- par.expression = val;
- return this.finishNode(par, "ParenthesizedExpression")
- } else {
- return val
- }
- };
-
- pp$3.parseParenItem = function(item) {
- return item
- };
-
- pp$3.parseParenArrowList = function(startPos, startLoc, exprList) {
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)
- };
-
- // New's precedence is slightly tricky. It must allow its argument to
- // be a `[]` or dot subscript expression, but not a call — at least,
- // not without wrapping it in parentheses. Thus, it uses the noCalls
- // argument to parseSubscripts to prevent it from consuming the
- // argument list.
-
- var empty$1 = [];
-
- pp$3.parseNew = function() {
- var node = this.startNode();
- var meta = this.parseIdent(true);
- if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) {
- node.meta = meta;
- var containsEsc = this.containsEsc;
- node.property = this.parseIdent(true);
- if (node.property.name !== "target" || containsEsc)
- { this.raiseRecoverable(node.property.start, "The only valid meta property for new is new.target"); }
- if (!this.inNonArrowFunction())
- { this.raiseRecoverable(node.start, "new.target can only be used in functions"); }
- return this.finishNode(node, "MetaProperty")
- }
- var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import;
- node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);
- if (isImport && node.callee.type === "ImportExpression") {
- this.raise(startPos, "Cannot use new with import()");
- }
- if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); }
- else { node.arguments = empty$1; }
- return this.finishNode(node, "NewExpression")
- };
-
- // Parse template expression.
-
- pp$3.parseTemplateElement = function(ref) {
- var isTagged = ref.isTagged;
-
- var elem = this.startNode();
- if (this.type === types.invalidTemplate) {
- if (!isTagged) {
- this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal");
- }
- elem.value = {
- raw: this.value,
- cooked: null
- };
- } else {
- elem.value = {
- raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"),
- cooked: this.value
- };
- }
- this.next();
- elem.tail = this.type === types.backQuote;
- return this.finishNode(elem, "TemplateElement")
- };
-
- pp$3.parseTemplate = function(ref) {
- if ( ref === void 0 ) ref = {};
- var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;
-
- var node = this.startNode();
- this.next();
- node.expressions = [];
- var curElt = this.parseTemplateElement({isTagged: isTagged});
- node.quasis = [curElt];
- while (!curElt.tail) {
- if (this.type === types.eof) { this.raise(this.pos, "Unterminated template literal"); }
- this.expect(types.dollarBraceL);
- node.expressions.push(this.parseExpression());
- this.expect(types.braceR);
- node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));
- }
- this.next();
- return this.finishNode(node, "TemplateLiteral")
- };
-
- pp$3.isAsyncProp = function(prop) {
- return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" &&
- (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) &&
- !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
- };
-
- // Parse an object literal or binding pattern.
-
- pp$3.parseObj = function(isPattern, refDestructuringErrors) {
- var node = this.startNode(), first = true, propHash = {};
- node.properties = [];
- this.next();
- while (!this.eat(types.braceR)) {
- if (!first) {
- this.expect(types.comma);
- if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break }
- } else { first = false; }
-
- var prop = this.parseProperty(isPattern, refDestructuringErrors);
- if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }
- node.properties.push(prop);
- }
- return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression")
- };
-
- pp$3.parseProperty = function(isPattern, refDestructuringErrors) {
- var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;
- if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) {
- if (isPattern) {
- prop.argument = this.parseIdent(false);
- if (this.type === types.comma) {
- this.raise(this.start, "Comma is not permitted after the rest element");
- }
- return this.finishNode(prop, "RestElement")
- }
- // To disallow parenthesized identifier via `this.toAssignable()`.
- if (this.type === types.parenL && refDestructuringErrors) {
- if (refDestructuringErrors.parenthesizedAssign < 0) {
- refDestructuringErrors.parenthesizedAssign = this.start;
- }
- if (refDestructuringErrors.parenthesizedBind < 0) {
- refDestructuringErrors.parenthesizedBind = this.start;
- }
- }
- // Parse argument.
- prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);
- // To disallow trailing comma via `this.toAssignable()`.
- if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {
- refDestructuringErrors.trailingComma = this.start;
- }
- // Finish
- return this.finishNode(prop, "SpreadElement")
- }
- if (this.options.ecmaVersion >= 6) {
- prop.method = false;
- prop.shorthand = false;
- if (isPattern || refDestructuringErrors) {
- startPos = this.start;
- startLoc = this.startLoc;
- }
- if (!isPattern)
- { isGenerator = this.eat(types.star); }
- }
- var containsEsc = this.containsEsc;
- this.parsePropertyName(prop);
- if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {
- isAsync = true;
- isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);
- this.parsePropertyName(prop, refDestructuringErrors);
- } else {
- isAsync = false;
- }
- this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);
- return this.finishNode(prop, "Property")
- };
-
- pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {
- if ((isGenerator || isAsync) && this.type === types.colon)
- { this.unexpected(); }
-
- if (this.eat(types.colon)) {
- prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);
- prop.kind = "init";
- } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) {
- if (isPattern) { this.unexpected(); }
- prop.kind = "init";
- prop.method = true;
- prop.value = this.parseMethod(isGenerator, isAsync);
- } else if (!isPattern && !containsEsc &&
- this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
- (prop.key.name === "get" || prop.key.name === "set") &&
- (this.type !== types.comma && this.type !== types.braceR)) {
- if (isGenerator || isAsync) { this.unexpected(); }
- prop.kind = prop.key.name;
- this.parsePropertyName(prop);
- prop.value = this.parseMethod(false);
- var paramCount = prop.kind === "get" ? 0 : 1;
- if (prop.value.params.length !== paramCount) {
- var start = prop.value.start;
- if (prop.kind === "get")
- { this.raiseRecoverable(start, "getter should have no params"); }
- else
- { this.raiseRecoverable(start, "setter should have exactly one param"); }
- } else {
- if (prop.kind === "set" && prop.value.params[0].type === "RestElement")
- { this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); }
- }
- } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") {
- if (isGenerator || isAsync) { this.unexpected(); }
- this.checkUnreserved(prop.key);
- if (prop.key.name === "await" && !this.awaitIdentPos)
- { this.awaitIdentPos = startPos; }
- prop.kind = "init";
- if (isPattern) {
- prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key);
- } else if (this.type === types.eq && refDestructuringErrors) {
- if (refDestructuringErrors.shorthandAssign < 0)
- { refDestructuringErrors.shorthandAssign = this.start; }
- prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key);
- } else {
- prop.value = prop.key;
- }
- prop.shorthand = true;
- } else { this.unexpected(); }
- };
-
- pp$3.parsePropertyName = function(prop) {
- if (this.options.ecmaVersion >= 6) {
- if (this.eat(types.bracketL)) {
- prop.computed = true;
- prop.key = this.parseMaybeAssign();
- this.expect(types.bracketR);
- return prop.key
- } else {
- prop.computed = false;
- }
- }
- return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never")
- };
-
- // Initialize empty function node.
-
- pp$3.initFunction = function(node) {
- node.id = null;
- if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }
- if (this.options.ecmaVersion >= 8) { node.async = false; }
- };
-
- // Parse object or class method.
-
- pp$3.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {
- var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
-
- this.initFunction(node);
- if (this.options.ecmaVersion >= 6)
- { node.generator = isGenerator; }
- if (this.options.ecmaVersion >= 8)
- { node.async = !!isAsync; }
-
- this.yieldPos = 0;
- this.awaitPos = 0;
- this.awaitIdentPos = 0;
- this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));
-
- this.expect(types.parenL);
- node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);
- this.checkYieldAwaitInDefaultParams();
- this.parseFunctionBody(node, false, true);
-
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- this.awaitIdentPos = oldAwaitIdentPos;
- return this.finishNode(node, "FunctionExpression")
- };
-
- // Parse arrow function expression with given parameters.
-
- pp$3.parseArrowExpression = function(node, params, isAsync) {
- var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
-
- this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);
- this.initFunction(node);
- if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }
-
- this.yieldPos = 0;
- this.awaitPos = 0;
- this.awaitIdentPos = 0;
-
- node.params = this.toAssignableList(params, true);
- this.parseFunctionBody(node, true, false);
-
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- this.awaitIdentPos = oldAwaitIdentPos;
- return this.finishNode(node, "ArrowFunctionExpression")
- };
-
- // Parse function body and check parameters.
-
- pp$3.parseFunctionBody = function(node, isArrowFunction, isMethod) {
- var isExpression = isArrowFunction && this.type !== types.braceL;
- var oldStrict = this.strict, useStrict = false;
-
- if (isExpression) {
- node.body = this.parseMaybeAssign();
- node.expression = true;
- this.checkParams(node, false);
- } else {
- var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);
- if (!oldStrict || nonSimple) {
- useStrict = this.strictDirective(this.end);
- // If this is a strict mode function, verify that argument names
- // are not repeated, and it does not try to bind the words `eval`
- // or `arguments`.
- if (useStrict && nonSimple)
- { this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); }
- }
- // Start a new scope with regard to labels and the `inFunction`
- // flag (restore them to their old value afterwards).
- var oldLabels = this.labels;
- this.labels = [];
- if (useStrict) { this.strict = true; }
-
- // Add the params to varDeclaredNames to ensure that an error is thrown
- // if a let/const declaration in the function clashes with one of the params.
- this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));
- node.body = this.parseBlock(false);
- node.expression = false;
- this.adaptDirectivePrologue(node.body.body);
- this.labels = oldLabels;
- }
- this.exitScope();
-
- // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'
- if (this.strict && node.id) { this.checkLVal(node.id, BIND_OUTSIDE); }
- this.strict = oldStrict;
- };
-
- pp$3.isSimpleParamList = function(params) {
- for (var i = 0, list = params; i < list.length; i += 1)
- {
- var param = list[i];
-
- if (param.type !== "Identifier") { return false
- } }
- return true
- };
-
- // Checks function params for various disallowed patterns such as using "eval"
- // or "arguments" and duplicate parameters.
-
- pp$3.checkParams = function(node, allowDuplicates) {
- var nameHash = {};
- for (var i = 0, list = node.params; i < list.length; i += 1)
- {
- var param = list[i];
-
- this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash);
- }
- };
-
- // Parses a comma-separated list of expressions, and returns them as
- // an array. `close` is the token type that ends the list, and
- // `allowEmpty` can be turned on to allow subsequent commas with
- // nothing in between them to be parsed as `null` (which is needed
- // for array literals).
-
- pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
- var elts = [], first = true;
- while (!this.eat(close)) {
- if (!first) {
- this.expect(types.comma);
- if (allowTrailingComma && this.afterTrailingComma(close)) { break }
- } else { first = false; }
-
- var elt = (void 0);
- if (allowEmpty && this.type === types.comma)
- { elt = null; }
- else if (this.type === types.ellipsis) {
- elt = this.parseSpread(refDestructuringErrors);
- if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0)
- { refDestructuringErrors.trailingComma = this.start; }
- } else {
- elt = this.parseMaybeAssign(false, refDestructuringErrors);
- }
- elts.push(elt);
- }
- return elts
- };
-
- pp$3.checkUnreserved = function(ref) {
- var start = ref.start;
- var end = ref.end;
- var name = ref.name;
-
- if (this.inGenerator && name === "yield")
- { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); }
- if (this.inAsync && name === "await")
- { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); }
- if (this.keywords.test(name))
- { this.raise(start, ("Unexpected keyword '" + name + "'")); }
- if (this.options.ecmaVersion < 6 &&
- this.input.slice(start, end).indexOf("\\") !== -1) { return }
- var re = this.strict ? this.reservedWordsStrict : this.reservedWords;
- if (re.test(name)) {
- if (!this.inAsync && name === "await")
- { this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function"); }
- this.raiseRecoverable(start, ("The keyword '" + name + "' is reserved"));
- }
- };
-
- // Parse the next token as an identifier. If `liberal` is true (used
- // when parsing properties), it will also convert keywords into
- // identifiers.
-
- pp$3.parseIdent = function(liberal, isBinding) {
- var node = this.startNode();
- if (this.type === types.name) {
- node.name = this.value;
- } else if (this.type.keyword) {
- node.name = this.type.keyword;
-
- // To fix https://github.com/acornjs/acorn/issues/575
- // `class` and `function` keywords push new context into this.context.
- // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.
- // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword
- if ((node.name === "class" || node.name === "function") &&
- (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {
- this.context.pop();
- }
- } else {
- this.unexpected();
- }
- this.next();
- this.finishNode(node, "Identifier");
- if (!liberal) {
- this.checkUnreserved(node);
- if (node.name === "await" && !this.awaitIdentPos)
- { this.awaitIdentPos = node.start; }
- }
- return node
- };
-
- // Parses yield expression inside generator.
-
- pp$3.parseYield = function(noIn) {
- if (!this.yieldPos) { this.yieldPos = this.start; }
-
- var node = this.startNode();
- this.next();
- if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {
- node.delegate = false;
- node.argument = null;
- } else {
- node.delegate = this.eat(types.star);
- node.argument = this.parseMaybeAssign(noIn);
- }
- return this.finishNode(node, "YieldExpression")
- };
-
- pp$3.parseAwait = function() {
- if (!this.awaitPos) { this.awaitPos = this.start; }
-
- var node = this.startNode();
- this.next();
- node.argument = this.parseMaybeUnary(null, true);
- return this.finishNode(node, "AwaitExpression")
- };
-
- var pp$4 = Parser.prototype;
-
- // This function is used to raise exceptions on parse errors. It
- // takes an offset integer (into the current `input`) to indicate
- // the location of the error, attaches the position to the end
- // of the error message, and then raises a `SyntaxError` with that
- // message.
-
- pp$4.raise = function(pos, message) {
- var loc = getLineInfo(this.input, pos);
- message += " (" + loc.line + ":" + loc.column + ")";
- var err = new SyntaxError(message);
- err.pos = pos; err.loc = loc; err.raisedAt = this.pos;
- throw err
- };
-
- pp$4.raiseRecoverable = pp$4.raise;
-
- pp$4.curPosition = function() {
- if (this.options.locations) {
- return new Position(this.curLine, this.pos - this.lineStart)
- }
- };
-
- var pp$5 = Parser.prototype;
-
- var Scope = function Scope(flags) {
- this.flags = flags;
- // A list of var-declared names in the current lexical scope
- this.var = [];
- // A list of lexically-declared names in the current lexical scope
- this.lexical = [];
- // A list of lexically-declared FunctionDeclaration names in the current lexical scope
- this.functions = [];
- };
-
- // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.
-
- pp$5.enterScope = function(flags) {
- this.scopeStack.push(new Scope(flags));
- };
-
- pp$5.exitScope = function() {
- this.scopeStack.pop();
- };
-
- // The spec says:
- // > At the top level of a function, or script, function declarations are
- // > treated like var declarations rather than like lexical declarations.
- pp$5.treatFunctionsAsVarInScope = function(scope) {
- return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)
- };
-
- pp$5.declareName = function(name, bindingType, pos) {
- var redeclared = false;
- if (bindingType === BIND_LEXICAL) {
- var scope = this.currentScope();
- redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;
- scope.lexical.push(name);
- if (this.inModule && (scope.flags & SCOPE_TOP))
- { delete this.undefinedExports[name]; }
- } else if (bindingType === BIND_SIMPLE_CATCH) {
- var scope$1 = this.currentScope();
- scope$1.lexical.push(name);
- } else if (bindingType === BIND_FUNCTION) {
- var scope$2 = this.currentScope();
- if (this.treatFunctionsAsVar)
- { redeclared = scope$2.lexical.indexOf(name) > -1; }
- else
- { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }
- scope$2.functions.push(name);
- } else {
- for (var i = this.scopeStack.length - 1; i >= 0; --i) {
- var scope$3 = this.scopeStack[i];
- if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||
- !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {
- redeclared = true;
- break
- }
- scope$3.var.push(name);
- if (this.inModule && (scope$3.flags & SCOPE_TOP))
- { delete this.undefinedExports[name]; }
- if (scope$3.flags & SCOPE_VAR) { break }
- }
- }
- if (redeclared) { this.raiseRecoverable(pos, ("Identifier '" + name + "' has already been declared")); }
- };
-
- pp$5.checkLocalExport = function(id) {
- // scope.functions must be empty as Module code is always strict.
- if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&
- this.scopeStack[0].var.indexOf(id.name) === -1) {
- this.undefinedExports[id.name] = id;
- }
- };
-
- pp$5.currentScope = function() {
- return this.scopeStack[this.scopeStack.length - 1]
- };
-
- pp$5.currentVarScope = function() {
- for (var i = this.scopeStack.length - 1;; i--) {
- var scope = this.scopeStack[i];
- if (scope.flags & SCOPE_VAR) { return scope }
- }
- };
-
- // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.
- pp$5.currentThisScope = function() {
- for (var i = this.scopeStack.length - 1;; i--) {
- var scope = this.scopeStack[i];
- if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }
- }
- };
-
- var Node = function Node(parser, pos, loc) {
- this.type = "";
- this.start = pos;
- this.end = 0;
- if (parser.options.locations)
- { this.loc = new SourceLocation(parser, loc); }
- if (parser.options.directSourceFile)
- { this.sourceFile = parser.options.directSourceFile; }
- if (parser.options.ranges)
- { this.range = [pos, 0]; }
- };
-
- // Start an AST node, attaching a start offset.
-
- var pp$6 = Parser.prototype;
-
- pp$6.startNode = function() {
- return new Node(this, this.start, this.startLoc)
- };
-
- pp$6.startNodeAt = function(pos, loc) {
- return new Node(this, pos, loc)
- };
-
- // Finish an AST node, adding `type` and `end` properties.
-
- function finishNodeAt(node, type, pos, loc) {
- node.type = type;
- node.end = pos;
- if (this.options.locations)
- { node.loc.end = loc; }
- if (this.options.ranges)
- { node.range[1] = pos; }
- return node
- }
-
- pp$6.finishNode = function(node, type) {
- return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)
- };
-
- // Finish node at given position
-
- pp$6.finishNodeAt = function(node, type, pos, loc) {
- return finishNodeAt.call(this, node, type, pos, loc)
- };
-
- // The algorithm used to determine whether a regexp can appear at a
-
- var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {
- this.token = token;
- this.isExpr = !!isExpr;
- this.preserveSpace = !!preserveSpace;
- this.override = override;
- this.generator = !!generator;
- };
-
- var types$1 = {
- b_stat: new TokContext("{", false),
- b_expr: new TokContext("{", true),
- b_tmpl: new TokContext("${", false),
- p_stat: new TokContext("(", false),
- p_expr: new TokContext("(", true),
- q_tmpl: new TokContext("`", true, true, function (p) { return p.tryReadTemplateToken(); }),
- f_stat: new TokContext("function", false),
- f_expr: new TokContext("function", true),
- f_expr_gen: new TokContext("function", true, false, null, true),
- f_gen: new TokContext("function", false, false, null, true)
- };
-
- var pp$7 = Parser.prototype;
-
- pp$7.initialContext = function() {
- return [types$1.b_stat]
- };
-
- pp$7.braceIsBlock = function(prevType) {
- var parent = this.curContext();
- if (parent === types$1.f_expr || parent === types$1.f_stat)
- { return true }
- if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr))
- { return !parent.isExpr }
-
- // The check for `tt.name && exprAllowed` detects whether we are
- // after a `yield` or `of` construct. See the `updateContext` for
- // `tt.name`.
- if (prevType === types._return || prevType === types.name && this.exprAllowed)
- { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }
- if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)
- { return true }
- if (prevType === types.braceL)
- { return parent === types$1.b_stat }
- if (prevType === types._var || prevType === types._const || prevType === types.name)
- { return false }
- return !this.exprAllowed
- };
-
- pp$7.inGeneratorContext = function() {
- for (var i = this.context.length - 1; i >= 1; i--) {
- var context = this.context[i];
- if (context.token === "function")
- { return context.generator }
- }
- return false
- };
-
- pp$7.updateContext = function(prevType) {
- var update, type = this.type;
- if (type.keyword && prevType === types.dot)
- { this.exprAllowed = false; }
- else if (update = type.updateContext)
- { update.call(this, prevType); }
- else
- { this.exprAllowed = type.beforeExpr; }
- };
-
- // Token-specific context update code
-
- types.parenR.updateContext = types.braceR.updateContext = function() {
- if (this.context.length === 1) {
- this.exprAllowed = true;
- return
- }
- var out = this.context.pop();
- if (out === types$1.b_stat && this.curContext().token === "function") {
- out = this.context.pop();
- }
- this.exprAllowed = !out.isExpr;
- };
-
- types.braceL.updateContext = function(prevType) {
- this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr);
- this.exprAllowed = true;
- };
-
- types.dollarBraceL.updateContext = function() {
- this.context.push(types$1.b_tmpl);
- this.exprAllowed = true;
- };
-
- types.parenL.updateContext = function(prevType) {
- var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;
- this.context.push(statementParens ? types$1.p_stat : types$1.p_expr);
- this.exprAllowed = true;
- };
-
- types.incDec.updateContext = function() {
- // tokExprAllowed stays unchanged
- };
-
- types._function.updateContext = types._class.updateContext = function(prevType) {
- if (prevType.beforeExpr && prevType !== types.semi && prevType !== types._else &&
- !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&
- !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat))
- { this.context.push(types$1.f_expr); }
- else
- { this.context.push(types$1.f_stat); }
- this.exprAllowed = false;
- };
-
- types.backQuote.updateContext = function() {
- if (this.curContext() === types$1.q_tmpl)
- { this.context.pop(); }
- else
- { this.context.push(types$1.q_tmpl); }
- this.exprAllowed = false;
- };
-
- types.star.updateContext = function(prevType) {
- if (prevType === types._function) {
- var index = this.context.length - 1;
- if (this.context[index] === types$1.f_expr)
- { this.context[index] = types$1.f_expr_gen; }
- else
- { this.context[index] = types$1.f_gen; }
- }
- this.exprAllowed = true;
- };
-
- types.name.updateContext = function(prevType) {
- var allowed = false;
- if (this.options.ecmaVersion >= 6 && prevType !== types.dot) {
- if (this.value === "of" && !this.exprAllowed ||
- this.value === "yield" && this.inGeneratorContext())
- { allowed = true; }
- }
- this.exprAllowed = allowed;
- };
-
- // This file contains Unicode properties extracted from the ECMAScript
- // specification. The lists are extracted like so:
- // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)
-
- // #table-binary-unicode-properties
- var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS";
- var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic";
- var ecma11BinaryProperties = ecma10BinaryProperties;
- var unicodeBinaryProperties = {
- 9: ecma9BinaryProperties,
- 10: ecma10BinaryProperties,
- 11: ecma11BinaryProperties
- };
-
- // #table-unicode-general-category-values
- var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu";
-
- // #table-unicode-script-values
- var ecma9ScriptValues = "Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb";
- var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd";
- var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho";
- var unicodeScriptValues = {
- 9: ecma9ScriptValues,
- 10: ecma10ScriptValues,
- 11: ecma11ScriptValues
- };
-
- var data = {};
- function buildUnicodeData(ecmaVersion) {
- var d = data[ecmaVersion] = {
- binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + " " + unicodeGeneralCategoryValues),
- nonBinary: {
- General_Category: wordsRegexp(unicodeGeneralCategoryValues),
- Script: wordsRegexp(unicodeScriptValues[ecmaVersion])
- }
- };
- d.nonBinary.Script_Extensions = d.nonBinary.Script;
-
- d.nonBinary.gc = d.nonBinary.General_Category;
- d.nonBinary.sc = d.nonBinary.Script;
- d.nonBinary.scx = d.nonBinary.Script_Extensions;
- }
- buildUnicodeData(9);
- buildUnicodeData(10);
- buildUnicodeData(11);
-
- var pp$8 = Parser.prototype;
-
- var RegExpValidationState = function RegExpValidationState(parser) {
- this.parser = parser;
- this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "");
- this.unicodeProperties = data[parser.options.ecmaVersion >= 11 ? 11 : parser.options.ecmaVersion];
- this.source = "";
- this.flags = "";
- this.start = 0;
- this.switchU = false;
- this.switchN = false;
- this.pos = 0;
- this.lastIntValue = 0;
- this.lastStringValue = "";
- this.lastAssertionIsQuantifiable = false;
- this.numCapturingParens = 0;
- this.maxBackReference = 0;
- this.groupNames = [];
- this.backReferenceNames = [];
- };
-
- RegExpValidationState.prototype.reset = function reset (start, pattern, flags) {
- var unicode = flags.indexOf("u") !== -1;
- this.start = start | 0;
- this.source = pattern + "";
- this.flags = flags;
- this.switchU = unicode && this.parser.options.ecmaVersion >= 6;
- this.switchN = unicode && this.parser.options.ecmaVersion >= 9;
- };
-
- RegExpValidationState.prototype.raise = function raise (message) {
- this.parser.raiseRecoverable(this.start, ("Invalid regular expression: /" + (this.source) + "/: " + message));
- };
-
- // If u flag is given, this returns the code point at the index (it combines a surrogate pair).
- // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).
- RegExpValidationState.prototype.at = function at (i) {
- var s = this.source;
- var l = s.length;
- if (i >= l) {
- return -1
- }
- var c = s.charCodeAt(i);
- if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {
- return c
- }
- return (c << 10) + s.charCodeAt(i + 1) - 0x35FDC00
- };
-
- RegExpValidationState.prototype.nextIndex = function nextIndex (i) {
- var s = this.source;
- var l = s.length;
- if (i >= l) {
- return l
- }
- var c = s.charCodeAt(i);
- if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {
- return i + 1
- }
- return i + 2
- };
-
- RegExpValidationState.prototype.current = function current () {
- return this.at(this.pos)
- };
-
- RegExpValidationState.prototype.lookahead = function lookahead () {
- return this.at(this.nextIndex(this.pos))
- };
-
- RegExpValidationState.prototype.advance = function advance () {
- this.pos = this.nextIndex(this.pos);
- };
-
- RegExpValidationState.prototype.eat = function eat (ch) {
- if (this.current() === ch) {
- this.advance();
- return true
- }
- return false
- };
-
- function codePointToString(ch) {
- if (ch <= 0xFFFF) { return String.fromCharCode(ch) }
- ch -= 0x10000;
- return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)
- }
-
- /**
- * Validate the flags part of a given RegExpLiteral.
- *
- * @param {RegExpValidationState} state The state to validate RegExp.
- * @returns {void}
- */
- pp$8.validateRegExpFlags = function(state) {
- var validFlags = state.validFlags;
- var flags = state.flags;
-
- for (var i = 0; i < flags.length; i++) {
- var flag = flags.charAt(i);
- if (validFlags.indexOf(flag) === -1) {
- this.raise(state.start, "Invalid regular expression flag");
- }
- if (flags.indexOf(flag, i + 1) > -1) {
- this.raise(state.start, "Duplicate regular expression flag");
- }
- }
- };
-
- /**
- * Validate the pattern part of a given RegExpLiteral.
- *
- * @param {RegExpValidationState} state The state to validate RegExp.
- * @returns {void}
- */
- pp$8.validateRegExpPattern = function(state) {
- this.regexp_pattern(state);
-
- // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of
- // parsing contains a |GroupName|, reparse with the goal symbol
- // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*
- // exception if _P_ did not conform to the grammar, if any elements of _P_
- // were not matched by the parse, or if any Early Error conditions exist.
- if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {
- state.switchN = true;
- this.regexp_pattern(state);
- }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern
- pp$8.regexp_pattern = function(state) {
- state.pos = 0;
- state.lastIntValue = 0;
- state.lastStringValue = "";
- state.lastAssertionIsQuantifiable = false;
- state.numCapturingParens = 0;
- state.maxBackReference = 0;
- state.groupNames.length = 0;
- state.backReferenceNames.length = 0;
-
- this.regexp_disjunction(state);
-
- if (state.pos !== state.source.length) {
- // Make the same messages as V8.
- if (state.eat(0x29 /* ) */)) {
- state.raise("Unmatched ')'");
- }
- if (state.eat(0x5D /* [ */) || state.eat(0x7D /* } */)) {
- state.raise("Lone quantifier brackets");
- }
- }
- if (state.maxBackReference > state.numCapturingParens) {
- state.raise("Invalid escape");
- }
- for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {
- var name = list[i];
-
- if (state.groupNames.indexOf(name) === -1) {
- state.raise("Invalid named capture referenced");
- }
- }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction
- pp$8.regexp_disjunction = function(state) {
- this.regexp_alternative(state);
- while (state.eat(0x7C /* | */)) {
- this.regexp_alternative(state);
- }
-
- // Make the same message as V8.
- if (this.regexp_eatQuantifier(state, true)) {
- state.raise("Nothing to repeat");
- }
- if (state.eat(0x7B /* { */)) {
- state.raise("Lone quantifier brackets");
- }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative
- pp$8.regexp_alternative = function(state) {
- while (state.pos < state.source.length && this.regexp_eatTerm(state))
- { }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term
- pp$8.regexp_eatTerm = function(state) {
- if (this.regexp_eatAssertion(state)) {
- // Handle `QuantifiableAssertion Quantifier` alternative.
- // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion
- // is a QuantifiableAssertion.
- if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {
- // Make the same message as V8.
- if (state.switchU) {
- state.raise("Invalid quantifier");
- }
- }
- return true
- }
-
- if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {
- this.regexp_eatQuantifier(state);
- return true
- }
-
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion
- pp$8.regexp_eatAssertion = function(state) {
- var start = state.pos;
- state.lastAssertionIsQuantifiable = false;
-
- // ^, $
- if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {
- return true
- }
-
- // \b \B
- if (state.eat(0x5C /* \ */)) {
- if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {
- return true
- }
- state.pos = start;
- }
-
- // Lookahead / Lookbehind
- if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {
- var lookbehind = false;
- if (this.options.ecmaVersion >= 9) {
- lookbehind = state.eat(0x3C /* < */);
- }
- if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {
- this.regexp_disjunction(state);
- if (!state.eat(0x29 /* ) */)) {
- state.raise("Unterminated group");
- }
- state.lastAssertionIsQuantifiable = !lookbehind;
- return true
- }
- }
-
- state.pos = start;
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier
- pp$8.regexp_eatQuantifier = function(state, noError) {
- if ( noError === void 0 ) noError = false;
-
- if (this.regexp_eatQuantifierPrefix(state, noError)) {
- state.eat(0x3F /* ? */);
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix
- pp$8.regexp_eatQuantifierPrefix = function(state, noError) {
- return (
- state.eat(0x2A /* * */) ||
- state.eat(0x2B /* + */) ||
- state.eat(0x3F /* ? */) ||
- this.regexp_eatBracedQuantifier(state, noError)
- )
- };
- pp$8.regexp_eatBracedQuantifier = function(state, noError) {
- var start = state.pos;
- if (state.eat(0x7B /* { */)) {
- var min = 0, max = -1;
- if (this.regexp_eatDecimalDigits(state)) {
- min = state.lastIntValue;
- if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {
- max = state.lastIntValue;
- }
- if (state.eat(0x7D /* } */)) {
- // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term
- if (max !== -1 && max < min && !noError) {
- state.raise("numbers out of order in {} quantifier");
- }
- return true
- }
- }
- if (state.switchU && !noError) {
- state.raise("Incomplete quantifier");
- }
- state.pos = start;
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom
- pp$8.regexp_eatAtom = function(state) {
- return (
- this.regexp_eatPatternCharacters(state) ||
- state.eat(0x2E /* . */) ||
- this.regexp_eatReverseSolidusAtomEscape(state) ||
- this.regexp_eatCharacterClass(state) ||
- this.regexp_eatUncapturingGroup(state) ||
- this.regexp_eatCapturingGroup(state)
- )
- };
- pp$8.regexp_eatReverseSolidusAtomEscape = function(state) {
- var start = state.pos;
- if (state.eat(0x5C /* \ */)) {
- if (this.regexp_eatAtomEscape(state)) {
- return true
- }
- state.pos = start;
- }
- return false
- };
- pp$8.regexp_eatUncapturingGroup = function(state) {
- var start = state.pos;
- if (state.eat(0x28 /* ( */)) {
- if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {
- this.regexp_disjunction(state);
- if (state.eat(0x29 /* ) */)) {
- return true
- }
- state.raise("Unterminated group");
- }
- state.pos = start;
- }
- return false
- };
- pp$8.regexp_eatCapturingGroup = function(state) {
- if (state.eat(0x28 /* ( */)) {
- if (this.options.ecmaVersion >= 9) {
- this.regexp_groupSpecifier(state);
- } else if (state.current() === 0x3F /* ? */) {
- state.raise("Invalid group");
- }
- this.regexp_disjunction(state);
- if (state.eat(0x29 /* ) */)) {
- state.numCapturingParens += 1;
- return true
- }
- state.raise("Unterminated group");
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom
- pp$8.regexp_eatExtendedAtom = function(state) {
- return (
- state.eat(0x2E /* . */) ||
- this.regexp_eatReverseSolidusAtomEscape(state) ||
- this.regexp_eatCharacterClass(state) ||
- this.regexp_eatUncapturingGroup(state) ||
- this.regexp_eatCapturingGroup(state) ||
- this.regexp_eatInvalidBracedQuantifier(state) ||
- this.regexp_eatExtendedPatternCharacter(state)
- )
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier
- pp$8.regexp_eatInvalidBracedQuantifier = function(state) {
- if (this.regexp_eatBracedQuantifier(state, true)) {
- state.raise("Nothing to repeat");
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter
- pp$8.regexp_eatSyntaxCharacter = function(state) {
- var ch = state.current();
- if (isSyntaxCharacter(ch)) {
- state.lastIntValue = ch;
- state.advance();
- return true
- }
- return false
- };
- function isSyntaxCharacter(ch) {
- return (
- ch === 0x24 /* $ */ ||
- ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||
- ch === 0x2E /* . */ ||
- ch === 0x3F /* ? */ ||
- ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||
- ch >= 0x7B /* { */ && ch <= 0x7D /* } */
- )
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter
- // But eat eager.
- pp$8.regexp_eatPatternCharacters = function(state) {
- var start = state.pos;
- var ch = 0;
- while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {
- state.advance();
- }
- return state.pos !== start
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter
- pp$8.regexp_eatExtendedPatternCharacter = function(state) {
- var ch = state.current();
- if (
- ch !== -1 &&
- ch !== 0x24 /* $ */ &&
- !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&
- ch !== 0x2E /* . */ &&
- ch !== 0x3F /* ? */ &&
- ch !== 0x5B /* [ */ &&
- ch !== 0x5E /* ^ */ &&
- ch !== 0x7C /* | */
- ) {
- state.advance();
- return true
- }
- return false
- };
-
- // GroupSpecifier[U] ::
- // [empty]
- // `?` GroupName[?U]
- pp$8.regexp_groupSpecifier = function(state) {
- if (state.eat(0x3F /* ? */)) {
- if (this.regexp_eatGroupName(state)) {
- if (state.groupNames.indexOf(state.lastStringValue) !== -1) {
- state.raise("Duplicate capture group name");
- }
- state.groupNames.push(state.lastStringValue);
- return
- }
- state.raise("Invalid group");
- }
- };
-
- // GroupName[U] ::
- // `<` RegExpIdentifierName[?U] `>`
- // Note: this updates `state.lastStringValue` property with the eaten name.
- pp$8.regexp_eatGroupName = function(state) {
- state.lastStringValue = "";
- if (state.eat(0x3C /* < */)) {
- if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {
- return true
- }
- state.raise("Invalid capture group name");
- }
- return false
- };
-
- // RegExpIdentifierName[U] ::
- // RegExpIdentifierStart[?U]
- // RegExpIdentifierName[?U] RegExpIdentifierPart[?U]
- // Note: this updates `state.lastStringValue` property with the eaten name.
- pp$8.regexp_eatRegExpIdentifierName = function(state) {
- state.lastStringValue = "";
- if (this.regexp_eatRegExpIdentifierStart(state)) {
- state.lastStringValue += codePointToString(state.lastIntValue);
- while (this.regexp_eatRegExpIdentifierPart(state)) {
- state.lastStringValue += codePointToString(state.lastIntValue);
- }
- return true
- }
- return false
- };
-
- // RegExpIdentifierStart[U] ::
- // UnicodeIDStart
- // `$`
- // `_`
- // `\` RegExpUnicodeEscapeSequence[?U]
- pp$8.regexp_eatRegExpIdentifierStart = function(state) {
- var start = state.pos;
- var ch = state.current();
- state.advance();
-
- if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {
- ch = state.lastIntValue;
- }
- if (isRegExpIdentifierStart(ch)) {
- state.lastIntValue = ch;
- return true
- }
-
- state.pos = start;
- return false
- };
- function isRegExpIdentifierStart(ch) {
- return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */
- }
-
- // RegExpIdentifierPart[U] ::
- // UnicodeIDContinue
- // `$`
- // `_`
- // `\` RegExpUnicodeEscapeSequence[?U]
- //
- //
- pp$8.regexp_eatRegExpIdentifierPart = function(state) {
- var start = state.pos;
- var ch = state.current();
- state.advance();
-
- if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {
- ch = state.lastIntValue;
- }
- if (isRegExpIdentifierPart(ch)) {
- state.lastIntValue = ch;
- return true
- }
-
- state.pos = start;
- return false
- };
- function isRegExpIdentifierPart(ch) {
- return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D /* */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape
- pp$8.regexp_eatAtomEscape = function(state) {
- if (
- this.regexp_eatBackReference(state) ||
- this.regexp_eatCharacterClassEscape(state) ||
- this.regexp_eatCharacterEscape(state) ||
- (state.switchN && this.regexp_eatKGroupName(state))
- ) {
- return true
- }
- if (state.switchU) {
- // Make the same message as V8.
- if (state.current() === 0x63 /* c */) {
- state.raise("Invalid unicode escape");
- }
- state.raise("Invalid escape");
- }
- return false
- };
- pp$8.regexp_eatBackReference = function(state) {
- var start = state.pos;
- if (this.regexp_eatDecimalEscape(state)) {
- var n = state.lastIntValue;
- if (state.switchU) {
- // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape
- if (n > state.maxBackReference) {
- state.maxBackReference = n;
- }
- return true
- }
- if (n <= state.numCapturingParens) {
- return true
- }
- state.pos = start;
- }
- return false
- };
- pp$8.regexp_eatKGroupName = function(state) {
- if (state.eat(0x6B /* k */)) {
- if (this.regexp_eatGroupName(state)) {
- state.backReferenceNames.push(state.lastStringValue);
- return true
- }
- state.raise("Invalid named reference");
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape
- pp$8.regexp_eatCharacterEscape = function(state) {
- return (
- this.regexp_eatControlEscape(state) ||
- this.regexp_eatCControlLetter(state) ||
- this.regexp_eatZero(state) ||
- this.regexp_eatHexEscapeSequence(state) ||
- this.regexp_eatRegExpUnicodeEscapeSequence(state) ||
- (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||
- this.regexp_eatIdentityEscape(state)
- )
- };
- pp$8.regexp_eatCControlLetter = function(state) {
- var start = state.pos;
- if (state.eat(0x63 /* c */)) {
- if (this.regexp_eatControlLetter(state)) {
- return true
- }
- state.pos = start;
- }
- return false
- };
- pp$8.regexp_eatZero = function(state) {
- if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {
- state.lastIntValue = 0;
- state.advance();
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape
- pp$8.regexp_eatControlEscape = function(state) {
- var ch = state.current();
- if (ch === 0x74 /* t */) {
- state.lastIntValue = 0x09; /* \t */
- state.advance();
- return true
- }
- if (ch === 0x6E /* n */) {
- state.lastIntValue = 0x0A; /* \n */
- state.advance();
- return true
- }
- if (ch === 0x76 /* v */) {
- state.lastIntValue = 0x0B; /* \v */
- state.advance();
- return true
- }
- if (ch === 0x66 /* f */) {
- state.lastIntValue = 0x0C; /* \f */
- state.advance();
- return true
- }
- if (ch === 0x72 /* r */) {
- state.lastIntValue = 0x0D; /* \r */
- state.advance();
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter
- pp$8.regexp_eatControlLetter = function(state) {
- var ch = state.current();
- if (isControlLetter(ch)) {
- state.lastIntValue = ch % 0x20;
- state.advance();
- return true
- }
- return false
- };
- function isControlLetter(ch) {
- return (
- (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||
- (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)
- )
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence
- pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state) {
- var start = state.pos;
-
- if (state.eat(0x75 /* u */)) {
- if (this.regexp_eatFixedHexDigits(state, 4)) {
- var lead = state.lastIntValue;
- if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) {
- var leadSurrogateEnd = state.pos;
- if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {
- var trail = state.lastIntValue;
- if (trail >= 0xDC00 && trail <= 0xDFFF) {
- state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;
- return true
- }
- }
- state.pos = leadSurrogateEnd;
- state.lastIntValue = lead;
- }
- return true
- }
- if (
- state.switchU &&
- state.eat(0x7B /* { */) &&
- this.regexp_eatHexDigits(state) &&
- state.eat(0x7D /* } */) &&
- isValidUnicode(state.lastIntValue)
- ) {
- return true
- }
- if (state.switchU) {
- state.raise("Invalid unicode escape");
- }
- state.pos = start;
- }
-
- return false
- };
- function isValidUnicode(ch) {
- return ch >= 0 && ch <= 0x10FFFF
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape
- pp$8.regexp_eatIdentityEscape = function(state) {
- if (state.switchU) {
- if (this.regexp_eatSyntaxCharacter(state)) {
- return true
- }
- if (state.eat(0x2F /* / */)) {
- state.lastIntValue = 0x2F; /* / */
- return true
- }
- return false
- }
-
- var ch = state.current();
- if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {
- state.lastIntValue = ch;
- state.advance();
- return true
- }
-
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape
- pp$8.regexp_eatDecimalEscape = function(state) {
- state.lastIntValue = 0;
- var ch = state.current();
- if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {
- do {
- state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);
- state.advance();
- } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape
- pp$8.regexp_eatCharacterClassEscape = function(state) {
- var ch = state.current();
-
- if (isCharacterClassEscape(ch)) {
- state.lastIntValue = -1;
- state.advance();
- return true
- }
-
- if (
- state.switchU &&
- this.options.ecmaVersion >= 9 &&
- (ch === 0x50 /* P */ || ch === 0x70 /* p */)
- ) {
- state.lastIntValue = -1;
- state.advance();
- if (
- state.eat(0x7B /* { */) &&
- this.regexp_eatUnicodePropertyValueExpression(state) &&
- state.eat(0x7D /* } */)
- ) {
- return true
- }
- state.raise("Invalid property name");
- }
-
- return false
- };
- function isCharacterClassEscape(ch) {
- return (
- ch === 0x64 /* d */ ||
- ch === 0x44 /* D */ ||
- ch === 0x73 /* s */ ||
- ch === 0x53 /* S */ ||
- ch === 0x77 /* w */ ||
- ch === 0x57 /* W */
- )
- }
-
- // UnicodePropertyValueExpression ::
- // UnicodePropertyName `=` UnicodePropertyValue
- // LoneUnicodePropertyNameOrValue
- pp$8.regexp_eatUnicodePropertyValueExpression = function(state) {
- var start = state.pos;
-
- // UnicodePropertyName `=` UnicodePropertyValue
- if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {
- var name = state.lastStringValue;
- if (this.regexp_eatUnicodePropertyValue(state)) {
- var value = state.lastStringValue;
- this.regexp_validateUnicodePropertyNameAndValue(state, name, value);
- return true
- }
- }
- state.pos = start;
-
- // LoneUnicodePropertyNameOrValue
- if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {
- var nameOrValue = state.lastStringValue;
- this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);
- return true
- }
- return false
- };
- pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {
- if (!has(state.unicodeProperties.nonBinary, name))
- { state.raise("Invalid property name"); }
- if (!state.unicodeProperties.nonBinary[name].test(value))
- { state.raise("Invalid property value"); }
- };
- pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {
- if (!state.unicodeProperties.binary.test(nameOrValue))
- { state.raise("Invalid property name"); }
- };
-
- // UnicodePropertyName ::
- // UnicodePropertyNameCharacters
- pp$8.regexp_eatUnicodePropertyName = function(state) {
- var ch = 0;
- state.lastStringValue = "";
- while (isUnicodePropertyNameCharacter(ch = state.current())) {
- state.lastStringValue += codePointToString(ch);
- state.advance();
- }
- return state.lastStringValue !== ""
- };
- function isUnicodePropertyNameCharacter(ch) {
- return isControlLetter(ch) || ch === 0x5F /* _ */
- }
-
- // UnicodePropertyValue ::
- // UnicodePropertyValueCharacters
- pp$8.regexp_eatUnicodePropertyValue = function(state) {
- var ch = 0;
- state.lastStringValue = "";
- while (isUnicodePropertyValueCharacter(ch = state.current())) {
- state.lastStringValue += codePointToString(ch);
- state.advance();
- }
- return state.lastStringValue !== ""
- };
- function isUnicodePropertyValueCharacter(ch) {
- return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)
- }
-
- // LoneUnicodePropertyNameOrValue ::
- // UnicodePropertyValueCharacters
- pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {
- return this.regexp_eatUnicodePropertyValue(state)
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass
- pp$8.regexp_eatCharacterClass = function(state) {
- if (state.eat(0x5B /* [ */)) {
- state.eat(0x5E /* ^ */);
- this.regexp_classRanges(state);
- if (state.eat(0x5D /* [ */)) {
- return true
- }
- // Unreachable since it threw "unterminated regular expression" error before.
- state.raise("Unterminated character class");
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges
- // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges
- // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash
- pp$8.regexp_classRanges = function(state) {
- while (this.regexp_eatClassAtom(state)) {
- var left = state.lastIntValue;
- if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {
- var right = state.lastIntValue;
- if (state.switchU && (left === -1 || right === -1)) {
- state.raise("Invalid character class");
- }
- if (left !== -1 && right !== -1 && left > right) {
- state.raise("Range out of order in character class");
- }
- }
- }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash
- pp$8.regexp_eatClassAtom = function(state) {
- var start = state.pos;
-
- if (state.eat(0x5C /* \ */)) {
- if (this.regexp_eatClassEscape(state)) {
- return true
- }
- if (state.switchU) {
- // Make the same message as V8.
- var ch$1 = state.current();
- if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {
- state.raise("Invalid class escape");
- }
- state.raise("Invalid escape");
- }
- state.pos = start;
- }
-
- var ch = state.current();
- if (ch !== 0x5D /* [ */) {
- state.lastIntValue = ch;
- state.advance();
- return true
- }
-
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape
- pp$8.regexp_eatClassEscape = function(state) {
- var start = state.pos;
-
- if (state.eat(0x62 /* b */)) {
- state.lastIntValue = 0x08; /* */
- return true
- }
-
- if (state.switchU && state.eat(0x2D /* - */)) {
- state.lastIntValue = 0x2D; /* - */
- return true
- }
-
- if (!state.switchU && state.eat(0x63 /* c */)) {
- if (this.regexp_eatClassControlLetter(state)) {
- return true
- }
- state.pos = start;
- }
-
- return (
- this.regexp_eatCharacterClassEscape(state) ||
- this.regexp_eatCharacterEscape(state)
- )
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter
- pp$8.regexp_eatClassControlLetter = function(state) {
- var ch = state.current();
- if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {
- state.lastIntValue = ch % 0x20;
- state.advance();
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
- pp$8.regexp_eatHexEscapeSequence = function(state) {
- var start = state.pos;
- if (state.eat(0x78 /* x */)) {
- if (this.regexp_eatFixedHexDigits(state, 2)) {
- return true
- }
- if (state.switchU) {
- state.raise("Invalid escape");
- }
- state.pos = start;
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits
- pp$8.regexp_eatDecimalDigits = function(state) {
- var start = state.pos;
- var ch = 0;
- state.lastIntValue = 0;
- while (isDecimalDigit(ch = state.current())) {
- state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);
- state.advance();
- }
- return state.pos !== start
- };
- function isDecimalDigit(ch) {
- return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits
- pp$8.regexp_eatHexDigits = function(state) {
- var start = state.pos;
- var ch = 0;
- state.lastIntValue = 0;
- while (isHexDigit(ch = state.current())) {
- state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);
- state.advance();
- }
- return state.pos !== start
- };
- function isHexDigit(ch) {
- return (
- (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||
- (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||
- (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)
- )
- }
- function hexToInt(ch) {
- if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {
- return 10 + (ch - 0x41 /* A */)
- }
- if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {
- return 10 + (ch - 0x61 /* a */)
- }
- return ch - 0x30 /* 0 */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence
- // Allows only 0-377(octal) i.e. 0-255(decimal).
- pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) {
- if (this.regexp_eatOctalDigit(state)) {
- var n1 = state.lastIntValue;
- if (this.regexp_eatOctalDigit(state)) {
- var n2 = state.lastIntValue;
- if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {
- state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;
- } else {
- state.lastIntValue = n1 * 8 + n2;
- }
- } else {
- state.lastIntValue = n1;
- }
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit
- pp$8.regexp_eatOctalDigit = function(state) {
- var ch = state.current();
- if (isOctalDigit(ch)) {
- state.lastIntValue = ch - 0x30; /* 0 */
- state.advance();
- return true
- }
- state.lastIntValue = 0;
- return false
- };
- function isOctalDigit(ch) {
- return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits
- // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit
- // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
- pp$8.regexp_eatFixedHexDigits = function(state, length) {
- var start = state.pos;
- state.lastIntValue = 0;
- for (var i = 0; i < length; ++i) {
- var ch = state.current();
- if (!isHexDigit(ch)) {
- state.pos = start;
- return false
- }
- state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);
- state.advance();
- }
- return true
- };
-
- // Object type used to represent tokens. Note that normally, tokens
- // simply exist as properties on the parser object. This is only
- // used for the onToken callback and the external tokenizer.
-
- var Token = function Token(p) {
- this.type = p.type;
- this.value = p.value;
- this.start = p.start;
- this.end = p.end;
- if (p.options.locations)
- { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }
- if (p.options.ranges)
- { this.range = [p.start, p.end]; }
- };
-
- // ## Tokenizer
-
- var pp$9 = Parser.prototype;
-
- // Move to the next token
-
- pp$9.next = function() {
- if (this.options.onToken)
- { this.options.onToken(new Token(this)); }
-
- this.lastTokEnd = this.end;
- this.lastTokStart = this.start;
- this.lastTokEndLoc = this.endLoc;
- this.lastTokStartLoc = this.startLoc;
- this.nextToken();
- };
-
- pp$9.getToken = function() {
- this.next();
- return new Token(this)
- };
-
- // If we're in an ES6 environment, make parsers iterable
- if (typeof Symbol !== "undefined")
- { pp$9[Symbol.iterator] = function() {
- var this$1 = this;
-
- return {
- next: function () {
- var token = this$1.getToken();
- return {
- done: token.type === types.eof,
- value: token
- }
- }
- }
- }; }
-
- // Toggle strict mode. Re-reads the next number or string to please
- // pedantic tests (`"use strict"; 010;` should fail).
-
- pp$9.curContext = function() {
- return this.context[this.context.length - 1]
- };
-
- // Read a single token, updating the parser object's token-related
- // properties.
-
- pp$9.nextToken = function() {
- var curContext = this.curContext();
- if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }
-
- this.start = this.pos;
- if (this.options.locations) { this.startLoc = this.curPosition(); }
- if (this.pos >= this.input.length) { return this.finishToken(types.eof) }
-
- if (curContext.override) { return curContext.override(this) }
- else { this.readToken(this.fullCharCodeAtPos()); }
- };
-
- pp$9.readToken = function(code) {
- // Identifier or keyword. '\uXXXX' sequences are allowed in
- // identifiers, so '\' also dispatches to that.
- if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */)
- { return this.readWord() }
-
- return this.getTokenFromCode(code)
- };
-
- pp$9.fullCharCodeAtPos = function() {
- var code = this.input.charCodeAt(this.pos);
- if (code <= 0xd7ff || code >= 0xe000) { return code }
- var next = this.input.charCodeAt(this.pos + 1);
- return (code << 10) + next - 0x35fdc00
- };
-
- pp$9.skipBlockComment = function() {
- var startLoc = this.options.onComment && this.curPosition();
- var start = this.pos, end = this.input.indexOf("*/", this.pos += 2);
- if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); }
- this.pos = end + 2;
- if (this.options.locations) {
- lineBreakG.lastIndex = start;
- var match;
- while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {
- ++this.curLine;
- this.lineStart = match.index + match[0].length;
- }
- }
- if (this.options.onComment)
- { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,
- startLoc, this.curPosition()); }
- };
-
- pp$9.skipLineComment = function(startSkip) {
- var start = this.pos;
- var startLoc = this.options.onComment && this.curPosition();
- var ch = this.input.charCodeAt(this.pos += startSkip);
- while (this.pos < this.input.length && !isNewLine(ch)) {
- ch = this.input.charCodeAt(++this.pos);
- }
- if (this.options.onComment)
- { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,
- startLoc, this.curPosition()); }
- };
-
- // Called at the start of the parse and after every token. Skips
- // whitespace and comments, and.
-
- pp$9.skipSpace = function() {
- loop: while (this.pos < this.input.length) {
- var ch = this.input.charCodeAt(this.pos);
- switch (ch) {
- case 32: case 160: // ' '
- ++this.pos;
- break
- case 13:
- if (this.input.charCodeAt(this.pos + 1) === 10) {
- ++this.pos;
- }
- case 10: case 8232: case 8233:
- ++this.pos;
- if (this.options.locations) {
- ++this.curLine;
- this.lineStart = this.pos;
- }
- break
- case 47: // '/'
- switch (this.input.charCodeAt(this.pos + 1)) {
- case 42: // '*'
- this.skipBlockComment();
- break
- case 47:
- this.skipLineComment(2);
- break
- default:
- break loop
- }
- break
- default:
- if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {
- ++this.pos;
- } else {
- break loop
- }
- }
- }
- };
-
- // Called at the end of every token. Sets `end`, `val`, and
- // maintains `context` and `exprAllowed`, and skips the space after
- // the token, so that the next one's `start` will point at the
- // right position.
-
- pp$9.finishToken = function(type, val) {
- this.end = this.pos;
- if (this.options.locations) { this.endLoc = this.curPosition(); }
- var prevType = this.type;
- this.type = type;
- this.value = val;
-
- this.updateContext(prevType);
- };
-
- // ### Token reading
-
- // This is the function that is called to fetch the next token. It
- // is somewhat obscure, because it works in character codes rather
- // than characters, and because operator parsing has been inlined
- // into it.
- //
- // All in the name of speed.
- //
- pp$9.readToken_dot = function() {
- var next = this.input.charCodeAt(this.pos + 1);
- if (next >= 48 && next <= 57) { return this.readNumber(true) }
- var next2 = this.input.charCodeAt(this.pos + 2);
- if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'
- this.pos += 3;
- return this.finishToken(types.ellipsis)
- } else {
- ++this.pos;
- return this.finishToken(types.dot)
- }
- };
-
- pp$9.readToken_slash = function() { // '/'
- var next = this.input.charCodeAt(this.pos + 1);
- if (this.exprAllowed) { ++this.pos; return this.readRegexp() }
- if (next === 61) { return this.finishOp(types.assign, 2) }
- return this.finishOp(types.slash, 1)
- };
-
- pp$9.readToken_mult_modulo_exp = function(code) { // '%*'
- var next = this.input.charCodeAt(this.pos + 1);
- var size = 1;
- var tokentype = code === 42 ? types.star : types.modulo;
-
- // exponentiation operator ** and **=
- if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {
- ++size;
- tokentype = types.starstar;
- next = this.input.charCodeAt(this.pos + 2);
- }
-
- if (next === 61) { return this.finishOp(types.assign, size + 1) }
- return this.finishOp(tokentype, size)
- };
-
- pp$9.readToken_pipe_amp = function(code) { // '|&'
- var next = this.input.charCodeAt(this.pos + 1);
- if (next === code) { return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) }
- if (next === 61) { return this.finishOp(types.assign, 2) }
- return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1)
- };
-
- pp$9.readToken_caret = function() { // '^'
- var next = this.input.charCodeAt(this.pos + 1);
- if (next === 61) { return this.finishOp(types.assign, 2) }
- return this.finishOp(types.bitwiseXOR, 1)
- };
-
- pp$9.readToken_plus_min = function(code) { // '+-'
- var next = this.input.charCodeAt(this.pos + 1);
- if (next === code) {
- if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&
- (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {
- // A `-->` line comment
- this.skipLineComment(3);
- this.skipSpace();
- return this.nextToken()
- }
- return this.finishOp(types.incDec, 2)
- }
- if (next === 61) { return this.finishOp(types.assign, 2) }
- return this.finishOp(types.plusMin, 1)
- };
-
- pp$9.readToken_lt_gt = function(code) { // '<>'
- var next = this.input.charCodeAt(this.pos + 1);
- var size = 1;
- if (next === code) {
- size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;
- if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }
- return this.finishOp(types.bitShift, size)
- }
- if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&
- this.input.charCodeAt(this.pos + 3) === 45) {
- // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `` line comment
- this.skipLineComment(3);
- this.skipSpace();
- return this.nextToken()
- }
- return this.finishOp(types.incDec, 2)
- }
- if (next === 61) { return this.finishOp(types.assign, 2) }
- return this.finishOp(types.plusMin, 1)
-};
-
-pp$9.readToken_lt_gt = function(code) { // '<>'
- var next = this.input.charCodeAt(this.pos + 1);
- var size = 1;
- if (next === code) {
- size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;
- if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }
- return this.finishOp(types.bitShift, size)
- }
- if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&
- this.input.charCodeAt(this.pos + 3) === 45) {
- // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `
-
-License
-
-Unless stated otherwise all works are:
-
-
-
-and licensed under:
-
-
-
-MIT License
-
-
-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.
-
-
-
diff --git a/node_modules/domain-browser/README.md b/node_modules/domain-browser/README.md
deleted file mode 100644
index 68c936b..0000000
--- a/node_modules/domain-browser/README.md
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-domain-browser
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Node's domain module for the web browser. This is merely an evented try...catch with the same API as node, nothing more.
-
-
-
-
-
-
-Install
-
-NPM
-- Install:
npm install --save domain-browser
-- Module:
require('domain-browser')
-
-Browserify
-- Install:
npm install --save domain-browser
-- Module:
require('domain-browser')
-- CDN URL:
//wzrd.in/bundle/domain-browser@1.2.0
-
-Ender
-- Install:
ender add domain-browser
-- Module:
require('domain-browser')
-
-
-
-This package is published with the following editions:
-
-domain-browser
aliases domain-browser/source/index.js
-domain-browser/source/index.js
is Source + ES5 + Require
-
-
-
-
-
-
-History
-
-Discover the release history by heading on over to the HISTORY.md
file.
-
-
-
-
-
-
-Backers
-
-Maintainers
-
-These amazing people are maintaining this project:
-
-
-
-Sponsors
-
-No sponsors yet! Will you be the first?
-
-
-
-
-
-
-
-
-
-Contributors
-
-These amazing people have contributed code to this project:
-
-
-
-Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
-
-
-
-
-
-
-License
-
-Unless stated otherwise all works are:
-
-
-
-and licensed under:
-
-
-
-
diff --git a/node_modules/domain-browser/package.json b/node_modules/domain-browser/package.json
deleted file mode 100644
index 8e665ae..0000000
--- a/node_modules/domain-browser/package.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "_from": "domain-browser@^1.2.0",
- "_id": "domain-browser@1.2.0",
- "_inBundle": false,
- "_integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
- "_location": "/domain-browser",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "domain-browser@^1.2.0",
- "name": "domain-browser",
- "escapedName": "domain-browser",
- "rawSpec": "^1.2.0",
- "saveSpec": null,
- "fetchSpec": "^1.2.0"
- },
- "_requiredBy": [
- "/browserify"
- ],
- "_resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
- "_shasum": "3d31f50191a6749dd1375a7f522e823d42e54eda",
- "_spec": "domain-browser@^1.2.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/browserify",
- "author": {
- "name": "2013+ Bevry Pty Ltd",
- "email": "us@bevry.me",
- "url": "http://bevry.me"
- },
- "badges": {
- "list": [
- "travisci",
- "npmversion",
- "npmdownloads",
- "daviddm",
- "daviddmdev",
- "---",
- "patreon",
- "opencollective",
- "gratipay",
- "flattr",
- "paypal",
- "bitcoin",
- "wishlist",
- "---",
- "slackin"
- ],
- "config": {
- "patreonUsername": "bevry",
- "opencollectiveUsername": "bevry",
- "gratipayUsername": "bevry",
- "flattrUsername": "balupton",
- "paypalURL": "https://bevry.me/paypal",
- "bitcoinURL": "https://bevry.me/bitcoin",
- "wishlistURL": "https://bevry.me/wishlist",
- "slackinURL": "https://slack.bevry.me"
- }
- },
- "browser": "source/index.js",
- "bugs": {
- "url": "https://github.com/bevry/domain-browser/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Benjamin Lupton",
- "email": "b@lupton.cc",
- "url": "http://balupton.com"
- },
- {
- "name": "Evan Solomon",
- "url": "http://evansolomon.me"
- },
- {
- "name": "James Halliday",
- "email": "substack@gmail.com",
- "url": "http://substack.neocities.org/"
- },
- {
- "name": "Guy Bedford",
- "email": "guybedford@gmail.com",
- "url": "twitter.com/guybedford"
- },
- {
- "name": "Bogdan Chadkin",
- "email": "trysound@yandex.ru",
- "url": "https://github.com/TrySound"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Node's domain module for the web browser. This is merely an evented try...catch with the same API as node, nothing more.",
- "devDependencies": {
- "assert-helpers": "^4.5.0",
- "eslint": "^4.16.0",
- "joe": "^2.0.2",
- "joe-reporter-console": "^2.0.1",
- "projectz": "^1.4.0"
- },
- "editions": [
- {
- "description": "Source + ES5 + Require",
- "directory": "source",
- "entry": "index.js",
- "syntaxes": [
- "javascript",
- "es5",
- "require"
- ]
- }
- ],
- "engines": {
- "node": ">=0.4",
- "npm": ">=1.2"
- },
- "homepage": "https://github.com/bevry/domain-browser",
- "jspm": {
- "map": {
- "source/index.js": {
- "node": "@node/domain"
- }
- }
- },
- "keywords": [
- "domain",
- "trycatch",
- "try",
- "catch",
- "node-compat",
- "ender.js",
- "component",
- "component.io",
- "umd",
- "amd",
- "require.js",
- "browser"
- ],
- "license": "MIT",
- "main": "source/index.js",
- "maintainers": [
- {
- "name": "Benjamin Lupton",
- "email": "b@lupton.cc",
- "url": "http://balupton.com"
- }
- ],
- "name": "domain-browser",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/bevry/domain-browser.git"
- },
- "scripts": {
- "our:clean": "rm -Rf ./docs ./es2015 ./es5 ./out",
- "our:compile": "echo no need for this project",
- "our:meta": "npm run our:meta:projectz",
- "our:meta:projectz": "projectz compile",
- "our:release": "npm run our:release:prepare && npm run our:release:check && npm run our:release:tag && npm run our:release:push",
- "our:release:check": "npm run our:release:check:changelog && npm run our:release:check:dirty",
- "our:release:check:changelog": "cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)",
- "our:release:check:dirty": "git diff --exit-code",
- "our:release:prepare": "npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta",
- "our:release:push": "git push origin master && git push origin --tags",
- "our:release:tag": "export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"",
- "our:setup": "npm run our:setup:npm",
- "our:setup:npm": "npm install",
- "our:test": "npm run our:verify && npm test",
- "our:verify": "npm run our:verify:eslint",
- "our:verify:eslint": "eslint --fix ./source",
- "test": "node --harmony source/test.js --joe-reporter=console"
- },
- "version": "1.2.0"
-}
diff --git a/node_modules/domain-browser/source/index.js b/node_modules/domain-browser/source/index.js
deleted file mode 100644
index e06b3a1..0000000
--- a/node_modules/domain-browser/source/index.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// This file should be ES5 compatible
-/* eslint prefer-spread:0, no-var:0, prefer-reflect:0, no-magic-numbers:0 */
-'use strict'
-
-module.exports = (function () {
- // Import Events
- var events = require('events')
-
- // Export Domain
- var domain = {}
- domain.createDomain = domain.create = function () {
- var d = new events.EventEmitter()
-
- function emitError (e) {
- d.emit('error', e)
- }
-
- d.add = function (emitter) {
- emitter.on('error', emitError)
- }
- d.remove = function (emitter) {
- emitter.removeListener('error', emitError)
- }
- d.bind = function (fn) {
- return function () {
- var args = Array.prototype.slice.call(arguments)
- try {
- fn.apply(null, args)
- }
- catch (err) {
- emitError(err)
- }
- }
- }
- d.intercept = function (fn) {
- return function (err) {
- if ( err ) {
- emitError(err)
- }
- else {
- var args = Array.prototype.slice.call(arguments, 1)
- try {
- fn.apply(null, args)
- }
- catch (err) {
- emitError(err)
- }
- }
- }
- }
- d.run = function (fn) {
- try {
- fn()
- }
- catch (err) {
- emitError(err)
- }
- return this
- }
- d.dispose = function () {
- this.removeAllListeners()
- return this
- }
- d.enter = d.exit = function () {
- return this
- }
- return d
- }
- return domain
-}).call(this)
diff --git a/node_modules/duplexer2/LICENSE.md b/node_modules/duplexer2/LICENSE.md
deleted file mode 100644
index 547189a..0000000
--- a/node_modules/duplexer2/LICENSE.md
+++ /dev/null
@@ -1,26 +0,0 @@
-Copyright (c) 2013, Deoxxa Development
-======================================
-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.
-3. Neither the name of Deoxxa Development nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY DEOXXA DEVELOPMENT ''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 DEOXXA DEVELOPMENT 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.
diff --git a/node_modules/duplexer2/README.md b/node_modules/duplexer2/README.md
deleted file mode 100644
index f4a6957..0000000
--- a/node_modules/duplexer2/README.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# duplexer2 [![Build Status](https://travis-ci.org/deoxxa/duplexer2.svg?branch=master)](https://travis-ci.org/deoxxa/duplexer2) [![Coverage Status](https://coveralls.io/repos/deoxxa/duplexer2/badge.svg?branch=master&service=github)](https://coveralls.io/github/deoxxa/duplexer2?branch=master)
-
-Like [duplexer](https://github.com/Raynos/duplexer) but using Streams3
-
-```javascript
-var stream = require("stream");
-
-var duplexer2 = require("duplexer2");
-
-var writable = new stream.Writable({objectMode: true}),
- readable = new stream.Readable({objectMode: true});
-
-writable._write = function _write(input, encoding, done) {
- if (readable.push(input)) {
- return done();
- } else {
- readable.once("drain", done);
- }
-};
-
-readable._read = function _read(n) {
- // no-op
-};
-
-// simulate the readable thing closing after a bit
-writable.once("finish", function() {
- setTimeout(function() {
- readable.push(null);
- }, 500);
-});
-
-var duplex = duplexer2(writable, readable);
-
-duplex.on("data", function(e) {
- console.log("got data", JSON.stringify(e));
-});
-
-duplex.on("finish", function() {
- console.log("got finish event");
-});
-
-duplex.on("end", function() {
- console.log("got end event");
-});
-
-duplex.write("oh, hi there", function() {
- console.log("finished writing");
-});
-
-duplex.end(function() {
- console.log("finished ending");
-});
-```
-
-```
-got data "oh, hi there"
-finished writing
-got finish event
-finished ending
-got end event
-```
-
-## Overview
-
-This is a reimplementation of [duplexer](https://www.npmjs.com/package/duplexer) using the
-Streams3 API which is standard in Node as of v4. Everything largely
-works the same.
-
-
-
-## Installation
-
-[Available via `npm`](https://docs.npmjs.com/cli/install):
-
-```
-$ npm i duplexer2
-```
-
-## API
-
-### duplexer2
-
-Creates a new `DuplexWrapper` object, which is the actual class that implements
-most of the fun stuff. All that fun stuff is hidden. DON'T LOOK.
-
-```javascript
-duplexer2([options], writable, readable)
-```
-
-```javascript
-const duplex = duplexer2(new stream.Writable(), new stream.Readable());
-```
-
-Arguments
-
-* __options__ - an object specifying the regular `stream.Duplex` options, as
- well as the properties described below.
-* __writable__ - a writable stream
-* __readable__ - a readable stream
-
-Options
-
-* __bubbleErrors__ - a boolean value that specifies whether to bubble errors
- from the underlying readable/writable streams. Default is `true`.
-
-
-## License
-
-3-clause BSD. [A copy](./LICENSE) is included with the source.
-
-## Contact
-
-* GitHub ([deoxxa](http://github.com/deoxxa))
-* Twitter ([@deoxxa](http://twitter.com/deoxxa))
-* Email ([deoxxa@fknsrs.biz](mailto:deoxxa@fknsrs.biz))
diff --git a/node_modules/duplexer2/index.js b/node_modules/duplexer2/index.js
deleted file mode 100644
index a40ece9..0000000
--- a/node_modules/duplexer2/index.js
+++ /dev/null
@@ -1,76 +0,0 @@
-"use strict";
-
-var stream = require("readable-stream");
-
-function DuplexWrapper(options, writable, readable) {
- if (typeof readable === "undefined") {
- readable = writable;
- writable = options;
- options = null;
- }
-
- stream.Duplex.call(this, options);
-
- if (typeof readable.read !== "function") {
- readable = (new stream.Readable(options)).wrap(readable);
- }
-
- this._writable = writable;
- this._readable = readable;
- this._waiting = false;
-
- var self = this;
-
- writable.once("finish", function() {
- self.end();
- });
-
- this.once("finish", function() {
- writable.end();
- });
-
- readable.on("readable", function() {
- if (self._waiting) {
- self._waiting = false;
- self._read();
- }
- });
-
- readable.once("end", function() {
- self.push(null);
- });
-
- if (!options || typeof options.bubbleErrors === "undefined" || options.bubbleErrors) {
- writable.on("error", function(err) {
- self.emit("error", err);
- });
-
- readable.on("error", function(err) {
- self.emit("error", err);
- });
- }
-}
-
-DuplexWrapper.prototype = Object.create(stream.Duplex.prototype, {constructor: {value: DuplexWrapper}});
-
-DuplexWrapper.prototype._write = function _write(input, encoding, done) {
- this._writable.write(input, encoding, done);
-};
-
-DuplexWrapper.prototype._read = function _read() {
- var buf;
- var reads = 0;
- while ((buf = this._readable.read()) !== null) {
- this.push(buf);
- reads++;
- }
- if (reads === 0) {
- this._waiting = true;
- }
-};
-
-module.exports = function duplex2(options, writable, readable) {
- return new DuplexWrapper(options, writable, readable);
-};
-
-module.exports.DuplexWrapper = DuplexWrapper;
diff --git a/node_modules/duplexer2/package.json b/node_modules/duplexer2/package.json
deleted file mode 100644
index 3008632..0000000
--- a/node_modules/duplexer2/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "duplexer2@~0.1.2",
- "_id": "duplexer2@0.1.4",
- "_inBundle": false,
- "_integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
- "_location": "/duplexer2",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "duplexer2@~0.1.2",
- "name": "duplexer2",
- "escapedName": "duplexer2",
- "rawSpec": "~0.1.2",
- "saveSpec": null,
- "fetchSpec": "~0.1.2"
- },
- "_requiredBy": [
- "/browserify",
- "/module-deps",
- "/stream-combiner2"
- ],
- "_resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "_shasum": "8b12dab878c0d69e3e7891051662a32fc6bddcc1",
- "_spec": "duplexer2@~0.1.2",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/browserify",
- "author": {
- "name": "Conrad Pankoff",
- "email": "deoxxa@fknsrs.biz",
- "url": "http://www.fknsrs.biz/"
- },
- "bugs": {
- "url": "https://github.com/deoxxa/duplexer2/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "readable-stream": "^2.0.2"
- },
- "deprecated": false,
- "description": "Like duplexer but using streams3",
- "devDependencies": {
- "mocha": "^2.2.5"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/deoxxa/duplexer2#readme",
- "keywords": [
- "duplex",
- "duplexer",
- "stream",
- "stream3",
- "join",
- "combine"
- ],
- "license": "BSD-3-Clause",
- "name": "duplexer2",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/deoxxa/duplexer2.git"
- },
- "scripts": {
- "test": "mocha -R tap"
- },
- "version": "0.1.4"
-}
diff --git a/node_modules/elliptic/README.md b/node_modules/elliptic/README.md
deleted file mode 100644
index 96219e5..0000000
--- a/node_modules/elliptic/README.md
+++ /dev/null
@@ -1,238 +0,0 @@
-# Elliptic [![Build Status](https://secure.travis-ci.org/indutny/elliptic.png)](http://travis-ci.org/indutny/elliptic) [![Coverage Status](https://coveralls.io/repos/indutny/elliptic/badge.svg?branch=master&service=github)](https://coveralls.io/github/indutny/elliptic?branch=master) [![Code Climate](https://codeclimate.com/github/indutny/elliptic/badges/gpa.svg)](https://codeclimate.com/github/indutny/elliptic)
-
-[![Saucelabs Test Status](https://saucelabs.com/browser-matrix/gh-indutny-elliptic.svg)](https://saucelabs.com/u/gh-indutny-elliptic)
-
-Fast elliptic-curve cryptography in a plain javascript implementation.
-
-NOTE: Please take a look at http://safecurves.cr.yp.to/ before choosing a curve
-for your cryptography operations.
-
-## Incentive
-
-ECC is much slower than regular RSA cryptography, the JS implementations are
-even more slower.
-
-## Benchmarks
-
-```bash
-$ node benchmarks/index.js
-Benchmarking: sign
-elliptic#sign x 262 ops/sec ±0.51% (177 runs sampled)
-eccjs#sign x 55.91 ops/sec ±0.90% (144 runs sampled)
-------------------------
-Fastest is elliptic#sign
-========================
-Benchmarking: verify
-elliptic#verify x 113 ops/sec ±0.50% (166 runs sampled)
-eccjs#verify x 48.56 ops/sec ±0.36% (125 runs sampled)
-------------------------
-Fastest is elliptic#verify
-========================
-Benchmarking: gen
-elliptic#gen x 294 ops/sec ±0.43% (176 runs sampled)
-eccjs#gen x 62.25 ops/sec ±0.63% (129 runs sampled)
-------------------------
-Fastest is elliptic#gen
-========================
-Benchmarking: ecdh
-elliptic#ecdh x 136 ops/sec ±0.85% (156 runs sampled)
-------------------------
-Fastest is elliptic#ecdh
-========================
-```
-
-## API
-
-### ECDSA
-
-```javascript
-var EC = require('elliptic').ec;
-
-// Create and initialize EC context
-// (better do it once and reuse it)
-var ec = new EC('secp256k1');
-
-// Generate keys
-var key = ec.genKeyPair();
-
-// Sign the message's hash (input must be an array, or a hex-string)
-var msgHash = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
-var signature = key.sign(msgHash);
-
-// Export DER encoded signature in Array
-var derSign = signature.toDER();
-
-// Verify signature
-console.log(key.verify(msgHash, derSign));
-
-// CHECK WITH NO PRIVATE KEY
-
-var pubPoint = key.getPublic();
-var x = pubPoint.getX();
-var y = pubPoint.getY();
-
-// Public Key MUST be either:
-// 1) '04' + hex string of x + hex string of y; or
-// 2) object with two hex string properties (x and y); or
-// 3) object with two buffer properties (x and y)
-var pub = pubPoint.encode('hex'); // case 1
-var pub = { x: x.toString('hex'), y: y.toString('hex') }; // case 2
-var pub = { x: x.toBuffer(), y: y.toBuffer() }; // case 3
-var pub = { x: x.toArrayLike(Buffer), y: y.toArrayLike(Buffer) }; // case 3
-
-// Import public key
-var key = ec.keyFromPublic(pub, 'hex');
-
-// Signature MUST be either:
-// 1) DER-encoded signature as hex-string; or
-// 2) DER-encoded signature as buffer; or
-// 3) object with two hex-string properties (r and s); or
-// 4) object with two buffer properties (r and s)
-
-var signature = '3046022100...'; // case 1
-var signature = new Buffer('...'); // case 2
-var signature = { r: 'b1fc...', s: '9c42...' }; // case 3
-
-// Verify signature
-console.log(key.verify(msgHash, signature));
-```
-
-### EdDSA
-
-```javascript
-var EdDSA = require('elliptic').eddsa;
-
-// Create and initialize EdDSA context
-// (better do it once and reuse it)
-var ec = new EdDSA('ed25519');
-
-// Create key pair from secret
-var key = ec.keyFromSecret('693e3c...'); // hex string, array or Buffer
-
-// Sign the message's hash (input must be an array, or a hex-string)
-var msgHash = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
-var signature = key.sign(msgHash).toHex();
-
-// Verify signature
-console.log(key.verify(msgHash, signature));
-
-// CHECK WITH NO PRIVATE KEY
-
-// Import public key
-var pub = '0a1af638...';
-var key = ec.keyFromPublic(pub, 'hex');
-
-// Verify signature
-var signature = '70bed1...';
-console.log(key.verify(msgHash, signature));
-```
-
-### ECDH
-
-```javascript
-var EC = require('elliptic').ec;
-var ec = new EC('curve25519');
-
-// Generate keys
-var key1 = ec.genKeyPair();
-var key2 = ec.genKeyPair();
-
-var shared1 = key1.derive(key2.getPublic());
-var shared2 = key2.derive(key1.getPublic());
-
-console.log('Both shared secrets are BN instances');
-console.log(shared1.toString(16));
-console.log(shared2.toString(16));
-```
-
-three and more members:
-```javascript
-var EC = require('elliptic').ec;
-var ec = new EC('curve25519');
-
-var A = ec.genKeyPair();
-var B = ec.genKeyPair();
-var C = ec.genKeyPair();
-
-var AB = A.getPublic().mul(B.getPrivate())
-var BC = B.getPublic().mul(C.getPrivate())
-var CA = C.getPublic().mul(A.getPrivate())
-
-var ABC = AB.mul(C.getPrivate())
-var BCA = BC.mul(A.getPrivate())
-var CAB = CA.mul(B.getPrivate())
-
-console.log(ABC.getX().toString(16))
-console.log(BCA.getX().toString(16))
-console.log(CAB.getX().toString(16))
-```
-
-NOTE: `.derive()` returns a [BN][1] instance.
-
-## Supported curves
-
-Elliptic.js support following curve types:
-
-* Short Weierstrass
-* Montgomery
-* Edwards
-* Twisted Edwards
-
-Following curve 'presets' are embedded into the library:
-
-* `secp256k1`
-* `p192`
-* `p224`
-* `p256`
-* `p384`
-* `p521`
-* `curve25519`
-* `ed25519`
-
-NOTE: That `curve25519` could not be used for ECDSA, use `ed25519` instead.
-
-### Implementation details
-
-ECDSA is using deterministic `k` value generation as per [RFC6979][0]. Most of
-the curve operations are performed on non-affine coordinates (either projective
-or extended), various windowing techniques are used for different cases.
-
-All operations are performed in reduction context using [bn.js][1], hashing is
-provided by [hash.js][2]
-
-### Related projects
-
-* [eccrypto][3]: isomorphic implementation of ECDSA, ECDH and ECIES for both
- browserify and node (uses `elliptic` for browser and [secp256k1-node][4] for
- node)
-
-#### LICENSE
-
-This software is licensed under the MIT License.
-
-Copyright Fedor Indutny, 2014.
-
-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.
-
-[0]: http://tools.ietf.org/html/rfc6979
-[1]: https://github.com/indutny/bn.js
-[2]: https://github.com/indutny/hash.js
-[3]: https://github.com/bitchan/eccrypto
-[4]: https://github.com/wanderer/secp256k1-node
diff --git a/node_modules/elliptic/lib/elliptic.js b/node_modules/elliptic/lib/elliptic.js
deleted file mode 100644
index dfe2fe7..0000000
--- a/node_modules/elliptic/lib/elliptic.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var elliptic = exports;
-
-elliptic.version = require('../package.json').version;
-elliptic.utils = require('./elliptic/utils');
-elliptic.rand = require('brorand');
-elliptic.curve = require('./elliptic/curve');
-elliptic.curves = require('./elliptic/curves');
-
-// Protocols
-elliptic.ec = require('./elliptic/ec');
-elliptic.eddsa = require('./elliptic/eddsa');
diff --git a/node_modules/elliptic/lib/elliptic/curve/base.js b/node_modules/elliptic/lib/elliptic/curve/base.js
deleted file mode 100644
index 83ffe9f..0000000
--- a/node_modules/elliptic/lib/elliptic/curve/base.js
+++ /dev/null
@@ -1,376 +0,0 @@
-'use strict';
-
-var BN = require('bn.js');
-var utils = require('../utils');
-var getNAF = utils.getNAF;
-var getJSF = utils.getJSF;
-var assert = utils.assert;
-
-function BaseCurve(type, conf) {
- this.type = type;
- this.p = new BN(conf.p, 16);
-
- // Use Montgomery, when there is no fast reduction for the prime
- this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
-
- // Useful for many curves
- this.zero = new BN(0).toRed(this.red);
- this.one = new BN(1).toRed(this.red);
- this.two = new BN(2).toRed(this.red);
-
- // Curve configuration, optional
- this.n = conf.n && new BN(conf.n, 16);
- this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
-
- // Temporary arrays
- 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;
-
- // Generalized Greg Maxwell's trick
- var adjustCount = this.n && this.p.div(this.n);
- if (!adjustCount || adjustCount.cmpn(100) > 0) {
- this.redN = null;
- } else {
- this._maxwellTrick = true;
- this.redN = this.n.toRed(this.red);
- }
-}
-module.exports = BaseCurve;
-
-BaseCurve.prototype.point = function point() {
- throw new Error('Not implemented');
-};
-
-BaseCurve.prototype.validate = function validate() {
- throw new Error('Not implemented');
-};
-
-BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
- assert(p.precomputed);
- var doubles = p._getDoubles();
-
- var naf = getNAF(k, 1, this._bitLength);
- var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);
- I /= 3;
-
- // Translate into more windowed form
- var repr = [];
- for (var j = 0; j < naf.length; j += doubles.step) {
- var nafW = 0;
- for (var k = j + doubles.step - 1; k >= j; k--)
- nafW = (nafW << 1) + naf[k];
- repr.push(nafW);
- }
-
- var a = this.jpoint(null, null, null);
- var b = this.jpoint(null, null, null);
- for (var i = I; i > 0; i--) {
- for (var j = 0; j < repr.length; j++) {
- var nafW = repr[j];
- if (nafW === i)
- b = b.mixedAdd(doubles.points[j]);
- else if (nafW === -i)
- b = b.mixedAdd(doubles.points[j].neg());
- }
- a = a.add(b);
- }
- return a.toP();
-};
-
-BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
- var w = 4;
-
- // Precompute window
- var nafPoints = p._getNAFPoints(w);
- w = nafPoints.wnd;
- var wnd = nafPoints.points;
-
- // Get NAF form
- var naf = getNAF(k, w, this._bitLength);
-
- // Add `this`*(N+1) for every w-NAF index
- var acc = this.jpoint(null, null, null);
- for (var i = naf.length - 1; i >= 0; i--) {
- // Count zeroes
- for (var k = 0; i >= 0 && naf[i] === 0; i--)
- k++;
- if (i >= 0)
- k++;
- acc = acc.dblp(k);
-
- if (i < 0)
- break;
- var z = naf[i];
- assert(z !== 0);
- if (p.type === 'affine') {
- // J +- P
- if (z > 0)
- acc = acc.mixedAdd(wnd[(z - 1) >> 1]);
- else
- acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());
- } else {
- // J +- J
- if (z > 0)
- acc = acc.add(wnd[(z - 1) >> 1]);
- else
- acc = acc.add(wnd[(-z - 1) >> 1].neg());
- }
- }
- return p.type === 'affine' ? acc.toP() : acc;
-};
-
-BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
- points,
- coeffs,
- len,
- jacobianResult) {
- var wndWidth = this._wnafT1;
- var wnd = this._wnafT2;
- var naf = this._wnafT3;
-
- // Fill all arrays
- var max = 0;
- for (var i = 0; i < len; i++) {
- var p = points[i];
- var nafPoints = p._getNAFPoints(defW);
- wndWidth[i] = nafPoints.wnd;
- wnd[i] = nafPoints.points;
- }
-
- // Comb small window NAFs
- for (var i = len - 1; i >= 1; i -= 2) {
- var a = i - 1;
- var 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], /* 1 */
- null, /* 3 */
- null, /* 5 */
- points[b] /* 7 */
- ];
-
- // Try to avoid Projective points, if possible
- if (points[a].y.cmp(points[b].y) === 0) {
- comb[1] = points[a].add(points[b]);
- comb[2] = points[a].toJ().mixedAdd(points[b].neg());
- } else if (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());
- } else {
- comb[1] = points[a].toJ().mixedAdd(points[b]);
- comb[2] = points[a].toJ().mixedAdd(points[b].neg());
- }
-
- var index = [
- -3, /* -1 -1 */
- -1, /* -1 0 */
- -5, /* -1 1 */
- -7, /* 0 -1 */
- 0, /* 0 0 */
- 7, /* 0 1 */
- 5, /* 1 -1 */
- 1, /* 1 0 */
- 3 /* 1 1 */
- ];
-
- var jsf = getJSF(coeffs[a], coeffs[b]);
- max = Math.max(jsf[0].length, max);
- naf[a] = new Array(max);
- naf[b] = new Array(max);
- for (var j = 0; j < max; j++) {
- var ja = jsf[0][j] | 0;
- var 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);
- var tmp = this._wnafT4;
- for (var i = max; i >= 0; i--) {
- var k = 0;
-
- while (i >= 0) {
- var zero = true;
- for (var j = 0; j < len; j++) {
- tmp[j] = naf[j][i] | 0;
- if (tmp[j] !== 0)
- zero = false;
- }
- if (!zero)
- break;
- k++;
- i--;
- }
- if (i >= 0)
- k++;
- acc = acc.dblp(k);
- if (i < 0)
- break;
-
- for (var j = 0; j < len; j++) {
- var z = tmp[j];
- var p;
- if (z === 0)
- continue;
- else if (z > 0)
- p = wnd[j][(z - 1) >> 1];
- else if (z < 0)
- p = wnd[j][(-z - 1) >> 1].neg();
-
- if (p.type === 'affine')
- acc = acc.mixedAdd(p);
- else
- acc = acc.add(p);
- }
- }
- // Zeroify references
- for (var i = 0; i < len; i++)
- wnd[i] = null;
-
- if (jacobianResult)
- return acc;
- else
- return acc.toP();
-};
-
-function BasePoint(curve, type) {
- this.curve = curve;
- this.type = type;
- this.precomputed = null;
-}
-BaseCurve.BasePoint = BasePoint;
-
-BasePoint.prototype.eq = function eq(/*other*/) {
- throw new Error('Not implemented');
-};
-
-BasePoint.prototype.validate = function validate() {
- return this.curve.validate(this);
-};
-
-BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
- bytes = utils.toArray(bytes, enc);
-
- var len = this.p.byteLength();
-
- // uncompressed, hybrid-odd, hybrid-even
- if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&
- bytes.length - 1 === 2 * len) {
- if (bytes[0] === 0x06)
- assert(bytes[bytes.length - 1] % 2 === 0);
- else if (bytes[0] === 0x07)
- 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] === 0x02 || bytes[0] === 0x03) &&
- bytes.length - 1 === len) {
- return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);
- }
- throw new Error('Unknown point format');
-};
-
-BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
- return this.encode(enc, true);
-};
-
-BasePoint.prototype._encode = function _encode(compact) {
- var len = this.curve.p.byteLength();
- var x = this.getX().toArray('be', len);
-
- if (compact)
- return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);
-
- return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;
-};
-
-BasePoint.prototype.encode = function encode(enc, compact) {
- return utils.encode(this._encode(compact), enc);
-};
-
-BasePoint.prototype.precompute = function precompute(power) {
- if (this.precomputed)
- return this;
-
- var precomputed = {
- doubles: null,
- naf: null,
- beta: null
- };
- precomputed.naf = this._getNAFPoints(8);
- precomputed.doubles = this._getDoubles(4, power);
- precomputed.beta = this._getBeta();
- this.precomputed = precomputed;
-
- return this;
-};
-
-BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
- if (!this.precomputed)
- return false;
-
- var doubles = this.precomputed.doubles;
- if (!doubles)
- return false;
-
- return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);
-};
-
-BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
- if (this.precomputed && this.precomputed.doubles)
- return this.precomputed.doubles;
-
- var doubles = [ this ];
- var acc = this;
- for (var i = 0; i < power; i += step) {
- for (var j = 0; j < step; j++)
- acc = acc.dbl();
- doubles.push(acc);
- }
- return {
- step: step,
- points: doubles
- };
-};
-
-BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
- if (this.precomputed && this.precomputed.naf)
- return this.precomputed.naf;
-
- var res = [ this ];
- var max = (1 << wnd) - 1;
- var dbl = max === 1 ? null : this.dbl();
- for (var i = 1; i < max; i++)
- res[i] = res[i - 1].add(dbl);
- return {
- wnd: wnd,
- points: res
- };
-};
-
-BasePoint.prototype._getBeta = function _getBeta() {
- return null;
-};
-
-BasePoint.prototype.dblp = function dblp(k) {
- var r = this;
- for (var i = 0; i < k; i++)
- r = r.dbl();
- return r;
-};
diff --git a/node_modules/elliptic/lib/elliptic/curve/edwards.js b/node_modules/elliptic/lib/elliptic/curve/edwards.js
deleted file mode 100644
index 1c53fe9..0000000
--- a/node_modules/elliptic/lib/elliptic/curve/edwards.js
+++ /dev/null
@@ -1,432 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-var BN = require('bn.js');
-var inherits = require('inherits');
-var Base = require('./base');
-
-var assert = utils.assert;
-
-function EdwardsCurve(conf) {
- // NOTE: Important as we are creating point in Base.call()
- 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 _mulA(num) {
- if (this.mOneA)
- return num.redNeg();
- else
- return this.a.redMul(num);
-};
-
-EdwardsCurve.prototype._mulC = function _mulC(num) {
- if (this.oneC)
- return num;
- else
- return this.c.redMul(num);
-};
-
-// Just for compatibility with Short curve
-EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
- return this.point(x, y, z, t);
-};
-
-EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
- x = new BN(x, 16);
- if (!x.red)
- x = x.toRed(this.red);
-
- var x2 = x.redSqr();
- var rhs = this.c2.redSub(this.a.redMul(x2));
- var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
-
- var y2 = rhs.redMul(lhs.redInvm());
- var y = y2.redSqrt();
- if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)
- throw new Error('invalid point');
-
- var isOdd = y.fromRed().isOdd();
- if (odd && !isOdd || !odd && isOdd)
- y = y.redNeg();
-
- return this.point(x, y);
-};
-
-EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
- y = new BN(y, 16);
- if (!y.red)
- y = y.toRed(this.red);
-
- // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)
- var y2 = y.redSqr();
- var lhs = y2.redSub(this.c2);
- var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);
- var x2 = lhs.redMul(rhs.redInvm());
-
- if (x2.cmp(this.zero) === 0) {
- if (odd)
- throw new Error('invalid point');
- else
- return this.point(this.zero, y);
- }
-
- var x = x2.redSqrt();
- if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)
- throw new Error('invalid point');
-
- if (x.fromRed().isOdd() !== odd)
- x = x.redNeg();
-
- return this.point(x, y);
-};
-
-EdwardsCurve.prototype.validate = function validate(point) {
- if (point.isInfinity())
- return true;
-
- // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)
- point.normalize();
-
- var x2 = point.x.redSqr();
- var y2 = point.y.redSqr();
- var lhs = x2.redMul(this.a).redAdd(y2);
- var 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');
- if (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 = true;
- } else {
- 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);
- if (!this.x.red)
- this.x = this.x.toRed(this.curve.red);
- if (!this.y.red)
- this.y = this.y.toRed(this.curve.red);
- if (!this.z.red)
- this.z = this.z.toRed(this.curve.red);
- if (this.t && !this.t.red)
- this.t = this.t.toRed(this.curve.red);
- this.zOne = this.z === this.curve.one;
-
- // Use extended coordinates
- if (this.curve.extended && !this.t) {
- this.t = this.x.redMul(this.y);
- if (!this.zOne)
- this.t = this.t.redMul(this.z.redInvm());
- }
- }
-}
-inherits(Point, Base.BasePoint);
-
-EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
- return Point.fromJSON(this, obj);
-};
-
-EdwardsCurve.prototype.point = function point(x, y, z, t) {
- return new Point(this, x, y, z, t);
-};
-
-Point.fromJSON = function fromJSON(curve, obj) {
- return new Point(curve, obj[0], obj[1], obj[2]);
-};
-
-Point.prototype.inspect = function inspect() {
- if (this.isInfinity())
- return '';
- return '';
-};
-
-Point.prototype.isInfinity = function isInfinity() {
- // XXX This code assumes that zero is always zero in red
- 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 _extDbl() {
- // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
- // #doubling-dbl-2008-hwcd
- // 4M + 4S
-
- // A = X1^2
- var a = this.x.redSqr();
- // B = Y1^2
- var b = this.y.redSqr();
- // C = 2 * Z1^2
- var c = this.z.redSqr();
- c = c.redIAdd(c);
- // D = a * A
- var d = this.curve._mulA(a);
- // E = (X1 + Y1)^2 - A - B
- var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
- // G = D + B
- var g = d.redAdd(b);
- // F = G - C
- var f = g.redSub(c);
- // H = D - B
- var h = d.redSub(b);
- // X3 = E * F
- var nx = e.redMul(f);
- // Y3 = G * H
- var ny = g.redMul(h);
- // T3 = E * H
- var nt = e.redMul(h);
- // Z3 = F * G
- var nz = f.redMul(g);
- return this.curve.point(nx, ny, nz, nt);
-};
-
-Point.prototype._projDbl = function _projDbl() {
- // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
- // #doubling-dbl-2008-bbjlp
- // #doubling-dbl-2007-bl
- // and others
- // Generally 3M + 4S or 2M + 4S
-
- // B = (X1 + Y1)^2
- var b = this.x.redAdd(this.y).redSqr();
- // C = X1^2
- var c = this.x.redSqr();
- // D = Y1^2
- var d = this.y.redSqr();
-
- var nx;
- var ny;
- var nz;
- if (this.curve.twisted) {
- // E = a * C
- var e = this.curve._mulA(c);
- // F = E + D
- var f = e.redAdd(d);
- if (this.zOne) {
- // X3 = (B - C - D) * (F - 2)
- nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
- // Y3 = F * (E - D)
- ny = f.redMul(e.redSub(d));
- // Z3 = F^2 - 2 * F
- nz = f.redSqr().redSub(f).redSub(f);
- } else {
- // H = Z1^2
- var h = this.z.redSqr();
- // J = F - 2 * H
- var j = f.redSub(h).redISub(h);
- // X3 = (B-C-D)*J
- nx = b.redSub(c).redISub(d).redMul(j);
- // Y3 = F * (E - D)
- ny = f.redMul(e.redSub(d));
- // Z3 = F * J
- nz = f.redMul(j);
- }
- } else {
- // E = C + D
- var e = c.redAdd(d);
- // H = (c * Z1)^2
- var h = this.curve._mulC(this.z).redSqr();
- // J = E - 2 * H
- var j = e.redSub(h).redSub(h);
- // X3 = c * (B - E) * J
- nx = this.curve._mulC(b.redISub(e)).redMul(j);
- // Y3 = c * E * (C - D)
- ny = this.curve._mulC(e).redMul(c.redISub(d));
- // Z3 = E * J
- nz = e.redMul(j);
- }
- return this.curve.point(nx, ny, nz);
-};
-
-Point.prototype.dbl = function dbl() {
- if (this.isInfinity())
- return this;
-
- // Double in extended coordinates
- if (this.curve.extended)
- return this._extDbl();
- else
- return this._projDbl();
-};
-
-Point.prototype._extAdd = function _extAdd(p) {
- // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
- // #addition-add-2008-hwcd-3
- // 8M
-
- // A = (Y1 - X1) * (Y2 - X2)
- var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
- // B = (Y1 + X1) * (Y2 + X2)
- var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
- // C = T1 * k * T2
- var c = this.t.redMul(this.curve.dd).redMul(p.t);
- // D = Z1 * 2 * Z2
- var d = this.z.redMul(p.z.redAdd(p.z));
- // E = B - A
- var e = b.redSub(a);
- // F = D - C
- var f = d.redSub(c);
- // G = D + C
- var g = d.redAdd(c);
- // H = B + A
- var h = b.redAdd(a);
- // X3 = E * F
- var nx = e.redMul(f);
- // Y3 = G * H
- var ny = g.redMul(h);
- // T3 = E * H
- var nt = e.redMul(h);
- // Z3 = F * G
- var nz = f.redMul(g);
- return this.curve.point(nx, ny, nz, nt);
-};
-
-Point.prototype._projAdd = function _projAdd(p) {
- // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
- // #addition-add-2008-bbjlp
- // #addition-add-2007-bl
- // 10M + 1S
-
- // A = Z1 * Z2
- var a = this.z.redMul(p.z);
- // B = A^2
- var b = a.redSqr();
- // C = X1 * X2
- var c = this.x.redMul(p.x);
- // D = Y1 * Y2
- var d = this.y.redMul(p.y);
- // E = d * C * D
- var e = this.curve.d.redMul(c).redMul(d);
- // F = B - E
- var f = b.redSub(e);
- // G = B + E
- var g = b.redAdd(e);
- // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
- var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
- var nx = a.redMul(f).redMul(tmp);
- var ny;
- var nz;
- if (this.curve.twisted) {
- // Y3 = A * G * (D - a * C)
- ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
- // Z3 = F * G
- nz = f.redMul(g);
- } else {
- // Y3 = A * G * (D - C)
- ny = a.redMul(g).redMul(d.redSub(c));
- // Z3 = c * F * G
- nz = this.curve._mulC(f).redMul(g);
- }
- return this.curve.point(nx, ny, nz);
-};
-
-Point.prototype.add = function add(p) {
- if (this.isInfinity())
- return p;
- if (p.isInfinity())
- return this;
-
- if (this.curve.extended)
- return this._extAdd(p);
- else
- return this._projAdd(p);
-};
-
-Point.prototype.mul = function mul(k) {
- if (this._hasDoubles(k))
- return this.curve._fixedNafMul(this, k);
- else
- return this.curve._wnafMul(this, k);
-};
-
-Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
- return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);
-};
-
-Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
- return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);
-};
-
-Point.prototype.normalize = function normalize() {
- if (this.zOne)
- return this;
-
- // Normalize coordinates
- var zi = this.z.redInvm();
- this.x = this.x.redMul(zi);
- this.y = this.y.redMul(zi);
- if (this.t)
- this.t = this.t.redMul(zi);
- this.z = this.curve.one;
- this.zOne = true;
- return this;
-};
-
-Point.prototype.neg = function neg() {
- return this.curve.point(this.x.redNeg(),
- this.y,
- this.z,
- this.t && this.t.redNeg());
-};
-
-Point.prototype.getX = function getX() {
- this.normalize();
- return this.x.fromRed();
-};
-
-Point.prototype.getY = function getY() {
- this.normalize();
- return this.y.fromRed();
-};
-
-Point.prototype.eq = function eq(other) {
- return this === other ||
- this.getX().cmp(other.getX()) === 0 &&
- this.getY().cmp(other.getY()) === 0;
-};
-
-Point.prototype.eqXToP = function eqXToP(x) {
- var rx = x.toRed(this.curve.red).redMul(this.z);
- if (this.x.cmp(rx) === 0)
- return true;
-
- var xc = x.clone();
- var t = this.curve.redN.redMul(this.z);
- for (;;) {
- xc.iadd(this.curve.n);
- if (xc.cmp(this.curve.p) >= 0)
- return false;
-
- rx.redIAdd(t);
- if (this.x.cmp(rx) === 0)
- return true;
- }
-};
-
-// Compatibility with BaseCurve
-Point.prototype.toP = Point.prototype.normalize;
-Point.prototype.mixedAdd = Point.prototype.add;
diff --git a/node_modules/elliptic/lib/elliptic/curve/index.js b/node_modules/elliptic/lib/elliptic/curve/index.js
deleted file mode 100644
index c589281..0000000
--- a/node_modules/elliptic/lib/elliptic/curve/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-
-var curve = exports;
-
-curve.base = require('./base');
-curve.short = require('./short');
-curve.mont = require('./mont');
-curve.edwards = require('./edwards');
diff --git a/node_modules/elliptic/lib/elliptic/curve/mont.js b/node_modules/elliptic/lib/elliptic/curve/mont.js
deleted file mode 100644
index 4b9f80f..0000000
--- a/node_modules/elliptic/lib/elliptic/curve/mont.js
+++ /dev/null
@@ -1,178 +0,0 @@
-'use strict';
-
-var BN = require('bn.js');
-var inherits = require('inherits');
-var Base = require('./base');
-
-var utils = require('../utils');
-
-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 validate(point) {
- var x = point.normalize().x;
- var x2 = x.redSqr();
- var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
- var y = rhs.redSqrt();
-
- return y.redSqr().cmp(rhs) === 0;
-};
-
-function Point(curve, x, z) {
- Base.BasePoint.call(this, curve, 'projective');
- if (x === null && z === null) {
- this.x = this.curve.one;
- this.z = this.curve.zero;
- } else {
- this.x = new BN(x, 16);
- this.z = new BN(z, 16);
- if (!this.x.red)
- this.x = this.x.toRed(this.curve.red);
- if (!this.z.red)
- this.z = this.z.toRed(this.curve.red);
- }
-}
-inherits(Point, Base.BasePoint);
-
-MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
- return this.point(utils.toArray(bytes, enc), 1);
-};
-
-MontCurve.prototype.point = function point(x, z) {
- return new Point(this, x, z);
-};
-
-MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
- return Point.fromJSON(this, obj);
-};
-
-Point.prototype.precompute = function precompute() {
- // No-op
-};
-
-Point.prototype._encode = function _encode() {
- return this.getX().toArray('be', this.curve.p.byteLength());
-};
-
-Point.fromJSON = function fromJSON(curve, obj) {
- return new Point(curve, obj[0], obj[1] || curve.one);
-};
-
-Point.prototype.inspect = function inspect() {
- if (this.isInfinity())
- return '';
- return '';
-};
-
-Point.prototype.isInfinity = function isInfinity() {
- // XXX This code assumes that zero is always zero in red
- return this.z.cmpn(0) === 0;
-};
-
-Point.prototype.dbl = function dbl() {
- // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3
- // 2M + 2S + 4A
-
- // A = X1 + Z1
- var a = this.x.redAdd(this.z);
- // AA = A^2
- var aa = a.redSqr();
- // B = X1 - Z1
- var b = this.x.redSub(this.z);
- // BB = B^2
- var bb = b.redSqr();
- // C = AA - BB
- var c = aa.redSub(bb);
- // X3 = AA * BB
- var nx = aa.redMul(bb);
- // Z3 = C * (BB + A24 * C)
- var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
- return this.curve.point(nx, nz);
-};
-
-Point.prototype.add = function add() {
- throw new Error('Not supported on Montgomery curve');
-};
-
-Point.prototype.diffAdd = function diffAdd(p, diff) {
- // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3
- // 4M + 2S + 6A
-
- // A = X2 + Z2
- var a = this.x.redAdd(this.z);
- // B = X2 - Z2
- var b = this.x.redSub(this.z);
- // C = X3 + Z3
- var c = p.x.redAdd(p.z);
- // D = X3 - Z3
- var d = p.x.redSub(p.z);
- // DA = D * A
- var da = d.redMul(a);
- // CB = C * B
- var cb = c.redMul(b);
- // X5 = Z1 * (DA + CB)^2
- var nx = diff.z.redMul(da.redAdd(cb).redSqr());
- // Z5 = X1 * (DA - CB)^2
- var nz = diff.x.redMul(da.redISub(cb).redSqr());
- return this.curve.point(nx, nz);
-};
-
-Point.prototype.mul = function mul(k) {
- var t = k.clone();
- var a = this; // (N / 2) * Q + Q
- var b = this.curve.point(null, null); // (N / 2) * Q
- var c = this; // Q
-
- for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))
- bits.push(t.andln(1));
-
- for (var i = bits.length - 1; i >= 0; i--) {
- if (bits[i] === 0) {
- // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q
- a = a.diffAdd(b, c);
- // N * Q = 2 * ((N / 2) * Q + Q))
- b = b.dbl();
- } else {
- // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)
- b = a.diffAdd(b, c);
- // N * Q + Q = 2 * ((N / 2) * Q + Q)
- a = a.dbl();
- }
- }
- return b;
-};
-
-Point.prototype.mulAdd = function mulAdd() {
- throw new Error('Not supported on Montgomery curve');
-};
-
-Point.prototype.jumlAdd = function jumlAdd() {
- throw new Error('Not supported on Montgomery curve');
-};
-
-Point.prototype.eq = function eq(other) {
- return this.getX().cmp(other.getX()) === 0;
-};
-
-Point.prototype.normalize = function normalize() {
- this.x = this.x.redMul(this.z.redInvm());
- this.z = this.curve.one;
- return this;
-};
-
-Point.prototype.getX = function getX() {
- // Normalize coordinates
- this.normalize();
-
- return this.x.fromRed();
-};
diff --git a/node_modules/elliptic/lib/elliptic/curve/short.js b/node_modules/elliptic/lib/elliptic/curve/short.js
deleted file mode 100644
index b263ecf..0000000
--- a/node_modules/elliptic/lib/elliptic/curve/short.js
+++ /dev/null
@@ -1,937 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-var BN = require('bn.js');
-var inherits = require('inherits');
-var Base = require('./base');
-
-var 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;
-
- // If the curve is endomorphic, precalculate beta and lambda
- 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 _getEndomorphism(conf) {
- // No efficient endomorphism
- if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)
- return;
-
- // Compute beta and lambda, that lambda * P = (beta * Px; Py)
- var beta;
- var lambda;
- if (conf.beta) {
- beta = new BN(conf.beta, 16).toRed(this.red);
- } else {
- var betas = this._getEndoRoots(this.p);
- // Choose the smallest beta
- 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 {
- // Choose the lambda that is matching selected beta
- var lambdas = this._getEndoRoots(this.n);
- if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {
- lambda = lambdas[0];
- } else {
- lambda = lambdas[1];
- assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);
- }
- }
-
- // Get basis vectors, used for balanced length-two representation
- var basis;
- if (conf.basis) {
- basis = conf.basis.map(function(vec) {
- return {
- a: new BN(vec.a, 16),
- b: new BN(vec.b, 16)
- };
- });
- } else {
- basis = this._getEndoBasis(lambda);
- }
-
- return {
- beta: beta,
- lambda: lambda,
- basis: basis
- };
-};
-
-ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
- // Find roots of for x^2 + x + 1 in F
- // Root = (-1 +- Sqrt(-3)) / 2
- //
- var red = num === this.p ? this.red : BN.mont(num);
- var tinv = new BN(2).toRed(red).redInvm();
- var ntinv = tinv.redNeg();
-
- var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);
-
- var l1 = ntinv.redAdd(s).fromRed();
- var l2 = ntinv.redSub(s).fromRed();
- return [ l1, l2 ];
-};
-
-ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
- // aprxSqrt >= sqrt(this.n)
- var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));
-
- // 3.74
- // Run EGCD, until r(L + 1) < aprxSqrt
- var u = lambda;
- var v = this.n.clone();
- var x1 = new BN(1);
- var y1 = new BN(0);
- var x2 = new BN(0);
- var y2 = new BN(1);
-
- // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)
- var a0;
- var b0;
- // First vector
- var a1;
- var b1;
- // Second vector
- var a2;
- var b2;
-
- var prevR;
- var i = 0;
- var r;
- var x;
- while (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());
- var len2 = a2.sqr().add(b2.sqr());
- if (len2.cmp(len1) >= 0) {
- a2 = a0;
- b2 = b0;
- }
-
- // Normalize signs
- if (a1.negative) {
- a1 = a1.neg();
- b1 = b1.neg();
- }
- if (a2.negative) {
- a2 = a2.neg();
- b2 = b2.neg();
- }
-
- return [
- { a: a1, b: b1 },
- { a: a2, b: b2 }
- ];
-};
-
-ShortCurve.prototype._endoSplit = function _endoSplit(k) {
- var basis = this.endo.basis;
- var v1 = basis[0];
- var v2 = basis[1];
-
- var c1 = v2.b.mul(k).divRound(this.n);
- var c2 = v1.b.neg().mul(k).divRound(this.n);
-
- var p1 = c1.mul(v1.a);
- var p2 = c2.mul(v2.a);
- var q1 = c1.mul(v1.b);
- var q2 = c2.mul(v2.b);
-
- // Calculate answer
- var k1 = k.sub(p1).sub(p2);
- var k2 = q1.add(q2).neg();
- return { k1: k1, k2: k2 };
-};
-
-ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
- x = new BN(x, 16);
- if (!x.red)
- x = x.toRed(this.red);
-
- var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
- var y = y2.redSqrt();
- if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)
- throw new Error('invalid point');
-
- // XXX Is there any way to tell if the number is odd without converting it
- // to non-red form?
- var isOdd = y.fromRed().isOdd();
- if (odd && !isOdd || !odd && isOdd)
- y = y.redNeg();
-
- return this.point(x, y);
-};
-
-ShortCurve.prototype.validate = function validate(point) {
- if (point.inf)
- return true;
-
- var x = point.x;
- var y = point.y;
-
- var ax = this.a.redMul(x);
- var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
- return y.redSqr().redISub(rhs).cmpn(0) === 0;
-};
-
-ShortCurve.prototype._endoWnafMulAdd =
- function _endoWnafMulAdd(points, coeffs, jacobianResult) {
- var npoints = this._endoWnafT1;
- var ncoeffs = this._endoWnafT2;
- for (var i = 0; i < points.length; i++) {
- var split = this._endoSplit(coeffs[i]);
- var p = points[i];
- var beta = p._getBeta();
-
- if (split.k1.negative) {
- split.k1.ineg();
- p = p.neg(true);
- }
- if (split.k2.negative) {
- split.k2.ineg();
- beta = beta.neg(true);
- }
-
- npoints[i * 2] = p;
- npoints[i * 2 + 1] = beta;
- ncoeffs[i * 2] = split.k1;
- ncoeffs[i * 2 + 1] = split.k2;
- }
- var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);
-
- // Clean-up references to points and coefficients
- for (var 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');
- if (x === null && y === null) {
- this.x = null;
- this.y = null;
- this.inf = true;
- } else {
- this.x = new BN(x, 16);
- this.y = new BN(y, 16);
- // Force redgomery representation when loading from JSON
- if (isRed) {
- this.x.forceRed(this.curve.red);
- this.y.forceRed(this.curve.red);
- }
- if (!this.x.red)
- this.x = this.x.toRed(this.curve.red);
- if (!this.y.red)
- this.y = this.y.toRed(this.curve.red);
- this.inf = false;
- }
-}
-inherits(Point, Base.BasePoint);
-
-ShortCurve.prototype.point = function point(x, y, isRed) {
- return new Point(this, x, y, isRed);
-};
-
-ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
- return Point.fromJSON(this, obj, red);
-};
-
-Point.prototype._getBeta = function _getBeta() {
- if (!this.curve.endo)
- return;
-
- 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;
- var 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 toJSON() {
- if (!this.precomputed)
- return [ this.x, this.y ];
-
- return [ 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)
- }
- } ];
-};
-
-Point.fromJSON = function fromJSON(curve, obj, red) {
- if (typeof obj === 'string')
- obj = JSON.parse(obj);
- var res = curve.point(obj[0], obj[1], red);
- if (!obj[2])
- return res;
-
- function obj2point(obj) {
- return curve.point(obj[0], obj[1], red);
- }
-
- var pre = obj[2];
- 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))
- }
- };
- return res;
-};
-
-Point.prototype.inspect = function inspect() {
- if (this.isInfinity())
- return '';
- return '';
-};
-
-Point.prototype.isInfinity = function isInfinity() {
- return this.inf;
-};
-
-Point.prototype.add = function add(p) {
- // O + P = P
- if (this.inf)
- return p;
-
- // P + O = P
- if (p.inf)
- return this;
-
- // P + P = 2P
- if (this.eq(p))
- return this.dbl();
-
- // P + (-P) = O
- if (this.neg().eq(p))
- return this.curve.point(null, null);
-
- // P + Q = O
- if (this.x.cmp(p.x) === 0)
- return this.curve.point(null, null);
-
- var c = this.y.redSub(p.y);
- if (c.cmpn(0) !== 0)
- c = c.redMul(this.x.redSub(p.x).redInvm());
- var nx = c.redSqr().redISub(this.x).redISub(p.x);
- var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
- return this.curve.point(nx, ny);
-};
-
-Point.prototype.dbl = function dbl() {
- if (this.inf)
- return this;
-
- // 2P = O
- var ys1 = this.y.redAdd(this.y);
- if (ys1.cmpn(0) === 0)
- return this.curve.point(null, null);
-
- var a = this.curve.a;
-
- var x2 = this.x.redSqr();
- var dyinv = ys1.redInvm();
- var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
-
- var nx = c.redSqr().redISub(this.x.redAdd(this.x));
- var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
- return this.curve.point(nx, ny);
-};
-
-Point.prototype.getX = function getX() {
- return this.x.fromRed();
-};
-
-Point.prototype.getY = function getY() {
- return this.y.fromRed();
-};
-
-Point.prototype.mul = function mul(k) {
- k = new BN(k, 16);
- if (this.isInfinity())
- return this;
- else if (this._hasDoubles(k))
- return this.curve._fixedNafMul(this, k);
- else if (this.curve.endo)
- return this.curve._endoWnafMulAdd([ this ], [ k ]);
- else
- return this.curve._wnafMul(this, k);
-};
-
-Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
- var points = [ this, p2 ];
- var coeffs = [ k1, k2 ];
- if (this.curve.endo)
- return this.curve._endoWnafMulAdd(points, coeffs);
- else
- return this.curve._wnafMulAdd(1, points, coeffs, 2);
-};
-
-Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
- var points = [ this, p2 ];
- var coeffs = [ k1, k2 ];
- if (this.curve.endo)
- return this.curve._endoWnafMulAdd(points, coeffs, true);
- else
- return this.curve._wnafMulAdd(1, points, coeffs, 2, true);
-};
-
-Point.prototype.eq = function eq(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 neg(_precompute) {
- if (this.inf)
- return this;
-
- var res = this.curve.point(this.x, this.y.redNeg());
- if (_precompute && this.precomputed) {
- var pre = this.precomputed;
- var 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 toJ() {
- 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');
- if (x === null && y === null && z === null) {
- this.x = this.curve.one;
- this.y = this.curve.one;
- this.z = new BN(0);
- } else {
- this.x = new BN(x, 16);
- this.y = new BN(y, 16);
- this.z = new BN(z, 16);
- }
- if (!this.x.red)
- this.x = this.x.toRed(this.curve.red);
- if (!this.y.red)
- this.y = this.y.toRed(this.curve.red);
- if (!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 jpoint(x, y, z) {
- return new JPoint(this, x, y, z);
-};
-
-JPoint.prototype.toP = function toP() {
- if (this.isInfinity())
- return this.curve.point(null, null);
-
- var zinv = this.z.redInvm();
- var zinv2 = zinv.redSqr();
- var ax = this.x.redMul(zinv2);
- var ay = this.y.redMul(zinv2).redMul(zinv);
-
- return this.curve.point(ax, ay);
-};
-
-JPoint.prototype.neg = function neg() {
- return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
-};
-
-JPoint.prototype.add = function add(p) {
- // O + P = P
- if (this.isInfinity())
- return p;
-
- // P + O = P
- if (p.isInfinity())
- return this;
-
- // 12M + 4S + 7A
- var pz2 = p.z.redSqr();
- var z2 = this.z.redSqr();
- var u1 = this.x.redMul(pz2);
- var u2 = p.x.redMul(z2);
- var s1 = this.y.redMul(pz2.redMul(p.z));
- var s2 = p.y.redMul(z2.redMul(this.z));
-
- var h = u1.redSub(u2);
- var r = s1.redSub(s2);
- if (h.cmpn(0) === 0) {
- if (r.cmpn(0) !== 0)
- return this.curve.jpoint(null, null, null);
- else
- return this.dbl();
- }
-
- var h2 = h.redSqr();
- var h3 = h2.redMul(h);
- var v = u1.redMul(h2);
-
- var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
- var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
- var nz = this.z.redMul(p.z).redMul(h);
-
- return this.curve.jpoint(nx, ny, nz);
-};
-
-JPoint.prototype.mixedAdd = function mixedAdd(p) {
- // O + P = P
- if (this.isInfinity())
- return p.toJ();
-
- // P + O = P
- if (p.isInfinity())
- return this;
-
- // 8M + 3S + 7A
- var z2 = this.z.redSqr();
- var u1 = this.x;
- var u2 = p.x.redMul(z2);
- var s1 = this.y;
- var s2 = p.y.redMul(z2).redMul(this.z);
-
- var h = u1.redSub(u2);
- var r = s1.redSub(s2);
- if (h.cmpn(0) === 0) {
- if (r.cmpn(0) !== 0)
- return this.curve.jpoint(null, null, null);
- else
- return this.dbl();
- }
-
- var h2 = h.redSqr();
- var h3 = h2.redMul(h);
- var v = u1.redMul(h2);
-
- var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
- var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
- var nz = this.z.redMul(h);
-
- return this.curve.jpoint(nx, ny, nz);
-};
-
-JPoint.prototype.dblp = function dblp(pow) {
- if (pow === 0)
- return this;
- if (this.isInfinity())
- return this;
- if (!pow)
- return this.dbl();
-
- if (this.curve.zeroA || this.curve.threeA) {
- var r = this;
- for (var i = 0; i < pow; i++)
- r = r.dbl();
- return r;
- }
-
- // 1M + 2S + 1A + N * (4S + 5M + 8A)
- // N = 1 => 6M + 6S + 9A
- var a = this.curve.a;
- var tinv = this.curve.tinv;
-
- var jx = this.x;
- var jy = this.y;
- var jz = this.z;
- var jz4 = jz.redSqr().redSqr();
-
- // Reuse results
- var jyd = jy.redAdd(jy);
- for (var i = 0; i < pow; i++) {
- var jx2 = jx.redSqr();
- var jyd2 = jyd.redSqr();
- var jyd4 = jyd2.redSqr();
- var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
-
- var t1 = jx.redMul(jyd2);
- var nx = c.redSqr().redISub(t1.redAdd(t1));
- var t2 = t1.redISub(nx);
- var dny = c.redMul(t2);
- dny = dny.redIAdd(dny).redISub(jyd4);
- var nz = jyd.redMul(jz);
- if (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 dbl() {
- if (this.isInfinity())
- return this;
-
- if (this.curve.zeroA)
- return this._zeroDbl();
- else if (this.curve.threeA)
- return this._threeDbl();
- else
- return this._dbl();
-};
-
-JPoint.prototype._zeroDbl = function _zeroDbl() {
- var nx;
- var ny;
- var nz;
- // Z = 1
- if (this.zOne) {
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html
- // #doubling-mdbl-2007-bl
- // 1M + 5S + 14A
-
- // XX = X1^2
- var xx = this.x.redSqr();
- // YY = Y1^2
- var yy = this.y.redSqr();
- // YYYY = YY^2
- var yyyy = yy.redSqr();
- // S = 2 * ((X1 + YY)^2 - XX - YYYY)
- var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- s = s.redIAdd(s);
- // M = 3 * XX + a; a = 0
- var m = xx.redAdd(xx).redIAdd(xx);
- // T = M ^ 2 - 2*S
- var t = m.redSqr().redISub(s).redISub(s);
-
- // 8 * YYYY
- var yyyy8 = yyyy.redIAdd(yyyy);
- yyyy8 = yyyy8.redIAdd(yyyy8);
- yyyy8 = yyyy8.redIAdd(yyyy8);
-
- // X3 = T
- nx = t;
- // Y3 = M * (S - T) - 8 * YYYY
- ny = m.redMul(s.redISub(t)).redISub(yyyy8);
- // Z3 = 2*Y1
- nz = this.y.redAdd(this.y);
- } else {
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html
- // #doubling-dbl-2009-l
- // 2M + 5S + 13A
-
- // A = X1^2
- var a = this.x.redSqr();
- // B = Y1^2
- var b = this.y.redSqr();
- // C = B^2
- var c = b.redSqr();
- // D = 2 * ((X1 + B)^2 - A - C)
- var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
- d = d.redIAdd(d);
- // E = 3 * A
- var e = a.redAdd(a).redIAdd(a);
- // F = E^2
- var f = e.redSqr();
-
- // 8 * C
- var c8 = c.redIAdd(c);
- c8 = c8.redIAdd(c8);
- c8 = c8.redIAdd(c8);
-
- // X3 = F - 2 * D
- nx = f.redISub(d).redISub(d);
- // Y3 = E * (D - X3) - 8 * C
- ny = e.redMul(d.redISub(nx)).redISub(c8);
- // Z3 = 2 * Y1 * Z1
- nz = this.y.redMul(this.z);
- nz = nz.redIAdd(nz);
- }
-
- return this.curve.jpoint(nx, ny, nz);
-};
-
-JPoint.prototype._threeDbl = function _threeDbl() {
- var nx;
- var ny;
- var nz;
- // Z = 1
- if (this.zOne) {
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html
- // #doubling-mdbl-2007-bl
- // 1M + 5S + 15A
-
- // XX = X1^2
- var xx = this.x.redSqr();
- // YY = Y1^2
- var yy = this.y.redSqr();
- // YYYY = YY^2
- var yyyy = yy.redSqr();
- // S = 2 * ((X1 + YY)^2 - XX - YYYY)
- var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- s = s.redIAdd(s);
- // M = 3 * XX + a
- var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
- // T = M^2 - 2 * S
- var t = m.redSqr().redISub(s).redISub(s);
- // X3 = T
- nx = t;
- // Y3 = M * (S - T) - 8 * YYYY
- var yyyy8 = yyyy.redIAdd(yyyy);
- yyyy8 = yyyy8.redIAdd(yyyy8);
- yyyy8 = yyyy8.redIAdd(yyyy8);
- ny = m.redMul(s.redISub(t)).redISub(yyyy8);
- // Z3 = 2 * Y1
- nz = this.y.redAdd(this.y);
- } else {
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b
- // 3M + 5S
-
- // delta = Z1^2
- var delta = this.z.redSqr();
- // gamma = Y1^2
- var gamma = this.y.redSqr();
- // beta = X1 * gamma
- var beta = this.x.redMul(gamma);
- // alpha = 3 * (X1 - delta) * (X1 + delta)
- var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
- alpha = alpha.redAdd(alpha).redIAdd(alpha);
- // X3 = alpha^2 - 8 * beta
- var beta4 = beta.redIAdd(beta);
- beta4 = beta4.redIAdd(beta4);
- var beta8 = beta4.redAdd(beta4);
- nx = alpha.redSqr().redISub(beta8);
- // Z3 = (Y1 + Z1)^2 - gamma - delta
- nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
- // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2
- 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 _dbl() {
- var a = this.curve.a;
-
- // 4M + 6S + 10A
- var jx = this.x;
- var jy = this.y;
- var jz = this.z;
- var jz4 = jz.redSqr().redSqr();
-
- var jx2 = jx.redSqr();
- var jy2 = jy.redSqr();
-
- var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
-
- var jxd4 = jx.redAdd(jx);
- jxd4 = jxd4.redIAdd(jxd4);
- var t1 = jxd4.redMul(jy2);
- var nx = c.redSqr().redISub(t1.redAdd(t1));
- var t2 = t1.redISub(nx);
-
- var jyd8 = jy2.redSqr();
- jyd8 = jyd8.redIAdd(jyd8);
- jyd8 = jyd8.redIAdd(jyd8);
- jyd8 = jyd8.redIAdd(jyd8);
- var ny = c.redMul(t2).redISub(jyd8);
- var nz = jy.redAdd(jy).redMul(jz);
-
- return this.curve.jpoint(nx, ny, nz);
-};
-
-JPoint.prototype.trpl = function trpl() {
- if (!this.curve.zeroA)
- return this.dbl().add(this);
-
- // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl
- // 5M + 10S + ...
-
- // XX = X1^2
- var xx = this.x.redSqr();
- // YY = Y1^2
- var yy = this.y.redSqr();
- // ZZ = Z1^2
- var zz = this.z.redSqr();
- // YYYY = YY^2
- var yyyy = yy.redSqr();
- // M = 3 * XX + a * ZZ2; a = 0
- var m = xx.redAdd(xx).redIAdd(xx);
- // MM = M^2
- var mm = m.redSqr();
- // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM
- var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
- e = e.redIAdd(e);
- e = e.redAdd(e).redIAdd(e);
- e = e.redISub(mm);
- // EE = E^2
- var ee = e.redSqr();
- // T = 16*YYYY
- var t = yyyy.redIAdd(yyyy);
- t = t.redIAdd(t);
- t = t.redIAdd(t);
- t = t.redIAdd(t);
- // U = (M + E)^2 - MM - EE - T
- var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
- // X3 = 4 * (X1 * EE - 4 * YY * U)
- var 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);
- // Y3 = 8 * Y1 * (U * (T - U) - E * EE)
- 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);
- // Z3 = (Z1 + E)^2 - ZZ - EE
- var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
-
- return this.curve.jpoint(nx, ny, nz);
-};
-
-JPoint.prototype.mul = function mul(k, kbase) {
- k = new BN(k, kbase);
-
- return this.curve._wnafMul(this, k);
-};
-
-JPoint.prototype.eq = function eq(p) {
- if (p.type === 'affine')
- return this.eq(p.toJ());
-
- if (this === p)
- return true;
-
- // x1 * z2^2 == x2 * z1^2
- var z2 = this.z.redSqr();
- var pz2 = p.z.redSqr();
- if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)
- return false;
-
- // y1 * z2^3 == y2 * z1^3
- var z3 = z2.redMul(this.z);
- var pz3 = pz2.redMul(p.z);
- return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;
-};
-
-JPoint.prototype.eqXToP = function eqXToP(x) {
- var zs = this.z.redSqr();
- var rx = x.toRed(this.curve.red).redMul(zs);
- if (this.x.cmp(rx) === 0)
- return true;
-
- var xc = x.clone();
- var t = this.curve.redN.redMul(zs);
- for (;;) {
- xc.iadd(this.curve.n);
- if (xc.cmp(this.curve.p) >= 0)
- return false;
-
- rx.redIAdd(t);
- if (this.x.cmp(rx) === 0)
- return true;
- }
-};
-
-JPoint.prototype.inspect = function inspect() {
- if (this.isInfinity())
- return '';
- return '';
-};
-
-JPoint.prototype.isInfinity = function isInfinity() {
- // XXX This code assumes that zero is always zero in red
- return this.z.cmpn(0) === 0;
-};
diff --git a/node_modules/elliptic/lib/elliptic/curves.js b/node_modules/elliptic/lib/elliptic/curves.js
deleted file mode 100644
index 63d8655..0000000
--- a/node_modules/elliptic/lib/elliptic/curves.js
+++ /dev/null
@@ -1,206 +0,0 @@
-'use strict';
-
-var curves = exports;
-
-var hash = require('hash.js');
-var curve = require('./curve');
-var utils = require('./utils');
-
-var assert = utils.assert;
-
-function PresetCurve(options) {
- if (options.type === 'short')
- this.curve = new curve.short(options);
- else if (options.type === 'edwards')
- this.curve = new curve.edwards(options);
- else
- 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: true,
- enumerable: true,
- get: function() {
- var curve = new PresetCurve(options);
- Object.defineProperty(curves, name, {
- configurable: true,
- enumerable: true,
- value: curve
- });
- return curve;
- }
- });
-}
-
-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: false,
- 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: false,
- 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: false,
- 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: false,
- 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: false,
- 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: false,
- g: [
- '9'
- ]
-});
-
-defineCurve('ed25519', {
- type: 'edwards',
- prime: 'p25519',
- p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
- a: '-1',
- c: '1',
- // -121665 * (121666^(-1)) (mod P)
- d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',
- n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',
- hash: hash.sha256,
- gRed: false,
- g: [
- '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
-
- // 4/5
- '6666666666666666666666666666666666666666666666666666666666666658'
- ]
-});
-
-var pre;
-try {
- pre = require('./precomputed/secp256k1');
-} catch (e) {
- pre = undefined;
-}
-
-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,
-
- // Precomputed endomorphism
- beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
- lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
- basis: [
- {
- a: '3086d221a7d46bcde86c90e49284eb15',
- b: '-e4437ed6010e88286f547fa90abfe4c3'
- },
- {
- a: '114ca50f7a8e2f3f657c1108d9d44cfd8',
- b: '3086d221a7d46bcde86c90e49284eb15'
- }
- ],
-
- gRed: false,
- g: [
- '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
- '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
- pre
- ]
-});
diff --git a/node_modules/elliptic/lib/elliptic/ec/index.js b/node_modules/elliptic/lib/elliptic/ec/index.js
deleted file mode 100644
index 0f1d8ce..0000000
--- a/node_modules/elliptic/lib/elliptic/ec/index.js
+++ /dev/null
@@ -1,241 +0,0 @@
-'use strict';
-
-var BN = require('bn.js');
-var HmacDRBG = require('hmac-drbg');
-var utils = require('../utils');
-var curves = require('../curves');
-var rand = require('brorand');
-var assert = utils.assert;
-
-var KeyPair = require('./key');
-var Signature = require('./signature');
-
-function EC(options) {
- if (!(this instanceof EC))
- return new EC(options);
-
- // Shortcut `elliptic.ec(curve-name)`
- if (typeof options === 'string') {
- assert(curves.hasOwnProperty(options), 'Unknown curve ' + options);
-
- options = curves[options];
- }
-
- // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
- if (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;
-
- // Point on curve
- this.g = options.curve.g;
- this.g.precompute(options.curve.n.bitLength() + 1);
-
- // Hash for function for DRBG
- this.hash = options.hash || options.curve.hash;
-}
-module.exports = EC;
-
-EC.prototype.keyPair = function keyPair(options) {
- return new KeyPair(this, options);
-};
-
-EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
- return KeyPair.fromPrivate(this, priv, enc);
-};
-
-EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
- return KeyPair.fromPublic(this, pub, enc);
-};
-
-EC.prototype.genKeyPair = function genKeyPair(options) {
- if (!options)
- options = {};
-
- // Instantiate Hmac_DRBG
- 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()
- });
-
- var bytes = this.n.byteLength();
- var ns2 = this.n.sub(new BN(2));
- do {
- var priv = new BN(drbg.generate(bytes));
- if (priv.cmp(ns2) > 0)
- continue;
-
- priv.iaddn(1);
- return this.keyFromPrivate(priv);
- } while (true);
-};
-
-EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
- var delta = msg.byteLength() * 8 - this.n.bitLength();
- if (delta > 0)
- msg = msg.ushrn(delta);
- if (!truncOnly && msg.cmp(this.n) >= 0)
- return msg.sub(this.n);
- else
- return msg;
-};
-
-EC.prototype.sign = function sign(msg, key, enc, options) {
- if (typeof enc === 'object') {
- options = enc;
- enc = null;
- }
- if (!options)
- options = {};
-
- key = this.keyFromPrivate(key, enc);
- msg = this._truncateToN(new BN(msg, 16));
-
- // Zero-extend key to provide enough entropy
- var bytes = this.n.byteLength();
- var bkey = key.getPrivate().toArray('be', bytes);
-
- // Zero-extend nonce to have the same byte size as N
- var nonce = msg.toArray('be', bytes);
-
- // Instantiate Hmac_DRBG
- var drbg = new HmacDRBG({
- hash: this.hash,
- entropy: bkey,
- nonce: nonce,
- pers: options.pers,
- persEnc: options.persEnc || 'utf8'
- });
-
- // Number of bytes to generate
- var ns1 = this.n.sub(new BN(1));
-
- for (var iter = 0; true; iter++) {
- var k = options.k ?
- options.k(iter) :
- new BN(drbg.generate(this.n.byteLength()));
- k = this._truncateToN(k, true);
- if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)
- continue;
-
- var kp = this.g.mul(k);
- if (kp.isInfinity())
- continue;
-
- var kpX = kp.getX();
- var r = kpX.umod(this.n);
- if (r.cmpn(0) === 0)
- continue;
-
- var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
- s = s.umod(this.n);
- if (s.cmpn(0) === 0)
- continue;
-
- var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |
- (kpX.cmp(r) !== 0 ? 2 : 0);
-
- // Use complement of `s`, if it is > `n / 2`
- if (options.canonical && s.cmp(this.nh) > 0) {
- s = this.n.sub(s);
- recoveryParam ^= 1;
- }
-
- return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
- }
-};
-
-EC.prototype.verify = function verify(msg, signature, key, enc) {
- msg = this._truncateToN(new BN(msg, 16));
- key = this.keyFromPublic(key, enc);
- signature = new Signature(signature, 'hex');
-
- // Perform primitive values validation
- var r = signature.r;
- var s = signature.s;
- if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)
- return false;
- if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)
- return false;
-
- // Validate signature
- var sinv = s.invm(this.n);
- var u1 = sinv.mul(msg).umod(this.n);
- var u2 = sinv.mul(r).umod(this.n);
-
- if (!this.curve._maxwellTrick) {
- var p = this.g.mulAdd(u1, key.getPublic(), u2);
- if (p.isInfinity())
- return false;
-
- return p.getX().umod(this.n).cmp(r) === 0;
- }
-
- // NOTE: Greg Maxwell's trick, inspired by:
- // https://git.io/vad3K
-
- var p = this.g.jmulAdd(u1, key.getPublic(), u2);
- if (p.isInfinity())
- return false;
-
- // Compare `p.x` of Jacobian point with `r`,
- // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the
- // inverse of `p.z^2`
- return p.eqXToP(r);
-};
-
-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;
- var e = new BN(msg);
- var r = signature.r;
- var s = signature.s;
-
- // A set LSB signifies that the y-coordinate is odd
- var isYOdd = j & 1;
- var isSecondKey = j >> 1;
- if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)
- throw new Error('Unable to find sencond key candinate');
-
- // 1.1. Let x = r + jn.
- if (isSecondKey)
- r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
- else
- r = this.curve.pointFromX(r, isYOdd);
-
- var rInv = signature.r.invm(n);
- var s1 = n.sub(e).mul(rInv).umod(n);
- var s2 = s.mul(rInv).umod(n);
-
- // 1.6.1 Compute Q = r^-1 (sR - eG)
- // Q = r^-1 (sR + -eG)
- return this.g.mulAdd(s1, r, s2);
-};
-
-EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
- signature = new Signature(signature, enc);
- if (signature.recoveryParam !== null)
- return signature.recoveryParam;
-
- for (var i = 0; i < 4; i++) {
- var Qprime;
- try {
- Qprime = this.recoverPubKey(e, signature, i);
- } catch (e) {
- continue;
- }
-
- if (Qprime.eq(Q))
- return i;
- }
- throw new Error('Unable to find valid recovery factor');
-};
diff --git a/node_modules/elliptic/lib/elliptic/ec/key.js b/node_modules/elliptic/lib/elliptic/ec/key.js
deleted file mode 100644
index 4a56d69..0000000
--- a/node_modules/elliptic/lib/elliptic/ec/key.js
+++ /dev/null
@@ -1,118 +0,0 @@
-'use strict';
-
-var BN = require('bn.js');
-var utils = require('../utils');
-var assert = utils.assert;
-
-function KeyPair(ec, options) {
- this.ec = ec;
- this.priv = null;
- this.pub = null;
-
- // KeyPair(ec, { priv: ..., pub: ... })
- if (options.priv)
- this._importPrivate(options.priv, options.privEnc);
- if (options.pub)
- this._importPublic(options.pub, options.pubEnc);
-}
-module.exports = KeyPair;
-
-KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
- if (pub instanceof KeyPair)
- return pub;
-
- return new KeyPair(ec, {
- pub: pub,
- pubEnc: enc
- });
-};
-
-KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
- if (priv instanceof KeyPair)
- return priv;
-
- return new KeyPair(ec, {
- priv: priv,
- privEnc: enc
- });
-};
-
-KeyPair.prototype.validate = function validate() {
- var pub = this.getPublic();
-
- if (pub.isInfinity())
- return { result: false, reason: 'Invalid public key' };
- if (!pub.validate())
- return { result: false, reason: 'Public key is not a point' };
- if (!pub.mul(this.ec.curve.n).isInfinity())
- return { result: false, reason: 'Public key * N != O' };
-
- return { result: true, reason: null };
-};
-
-KeyPair.prototype.getPublic = function getPublic(compact, enc) {
- // compact is optional argument
- if (typeof compact === 'string') {
- enc = compact;
- compact = null;
- }
-
- if (!this.pub)
- this.pub = this.ec.g.mul(this.priv);
-
- if (!enc)
- return this.pub;
-
- return this.pub.encode(enc, compact);
-};
-
-KeyPair.prototype.getPrivate = function getPrivate(enc) {
- if (enc === 'hex')
- return this.priv.toString(16, 2);
- else
- return this.priv;
-};
-
-KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
- this.priv = new BN(key, enc || 16);
-
- // Ensure that the priv won't be bigger than n, otherwise we may fail
- // in fixed multiplication method
- this.priv = this.priv.umod(this.ec.curve.n);
-};
-
-KeyPair.prototype._importPublic = function _importPublic(key, enc) {
- if (key.x || key.y) {
- // Montgomery points only have an `x` coordinate.
- // Weierstrass/Edwards points on the other hand have both `x` and
- // `y` coordinates.
- if (this.ec.curve.type === 'mont') {
- assert(key.x, 'Need x coordinate');
- } else if (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);
-};
-
-// ECDH
-KeyPair.prototype.derive = function derive(pub) {
- return pub.mul(this.priv).getX();
-};
-
-// ECDSA
-KeyPair.prototype.sign = function sign(msg, enc, options) {
- return this.ec.sign(msg, this, enc, options);
-};
-
-KeyPair.prototype.verify = function verify(msg, signature) {
- return this.ec.verify(msg, signature, this);
-};
-
-KeyPair.prototype.inspect = function inspect() {
- return '';
-};
diff --git a/node_modules/elliptic/lib/elliptic/ec/signature.js b/node_modules/elliptic/lib/elliptic/ec/signature.js
deleted file mode 100644
index 2cb6b49..0000000
--- a/node_modules/elliptic/lib/elliptic/ec/signature.js
+++ /dev/null
@@ -1,134 +0,0 @@
-'use strict';
-
-var BN = require('bn.js');
-
-var utils = require('../utils');
-var assert = utils.assert;
-
-function Signature(options, enc) {
- if (options instanceof Signature)
- return options;
-
- if (this._importDER(options, enc))
- return;
-
- assert(options.r && options.s, 'Signature without r or s');
- this.r = new BN(options.r, 16);
- this.s = new BN(options.s, 16);
- if (options.recoveryParam === undefined)
- this.recoveryParam = null;
- else
- this.recoveryParam = options.recoveryParam;
-}
-module.exports = Signature;
-
-function Position() {
- this.place = 0;
-}
-
-function getLength(buf, p) {
- var initial = buf[p.place++];
- if (!(initial & 0x80)) {
- return initial;
- }
- var octetLen = initial & 0xf;
- var val = 0;
- for (var i = 0, off = p.place; i < octetLen; i++, off++) {
- val <<= 8;
- val |= buf[off];
- }
- p.place = off;
- return val;
-}
-
-function rmPadding(buf) {
- var i = 0;
- var len = buf.length - 1;
- while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {
- i++;
- }
- if (i === 0) {
- return buf;
- }
- return buf.slice(i);
-}
-
-Signature.prototype._importDER = function _importDER(data, enc) {
- data = utils.toArray(data, enc);
- var p = new Position();
- if (data[p.place++] !== 0x30) {
- return false;
- }
- var len = getLength(data, p);
- if ((len + p.place) !== data.length) {
- return false;
- }
- if (data[p.place++] !== 0x02) {
- return false;
- }
- var rlen = getLength(data, p);
- var r = data.slice(p.place, rlen + p.place);
- p.place += rlen;
- if (data[p.place++] !== 0x02) {
- return false;
- }
- var slen = getLength(data, p);
- if (data.length !== slen + p.place) {
- return false;
- }
- var s = data.slice(p.place, slen + p.place);
- if (r[0] === 0 && (r[1] & 0x80)) {
- r = r.slice(1);
- }
- if (s[0] === 0 && (s[1] & 0x80)) {
- s = s.slice(1);
- }
-
- this.r = new BN(r);
- this.s = new BN(s);
- this.recoveryParam = null;
-
- return true;
-};
-
-function constructLength(arr, len) {
- if (len < 0x80) {
- arr.push(len);
- return;
- }
- var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);
- arr.push(octets | 0x80);
- while (--octets) {
- arr.push((len >>> (octets << 3)) & 0xff);
- }
- arr.push(len);
-}
-
-Signature.prototype.toDER = function toDER(enc) {
- var r = this.r.toArray();
- var s = this.s.toArray();
-
- // Pad values
- if (r[0] & 0x80)
- r = [ 0 ].concat(r);
- // Pad values
- if (s[0] & 0x80)
- s = [ 0 ].concat(s);
-
- r = rmPadding(r);
- s = rmPadding(s);
-
- while (!s[0] && !(s[1] & 0x80)) {
- s = s.slice(1);
- }
- var arr = [ 0x02 ];
- constructLength(arr, r.length);
- arr = arr.concat(r);
- arr.push(0x02);
- constructLength(arr, s.length);
- var backHalf = arr.concat(s);
- var res = [ 0x30 ];
- constructLength(res, backHalf.length);
- res = res.concat(backHalf);
- return utils.encode(res, enc);
-};
diff --git a/node_modules/elliptic/lib/elliptic/eddsa/index.js b/node_modules/elliptic/lib/elliptic/eddsa/index.js
deleted file mode 100644
index f82fa35..0000000
--- a/node_modules/elliptic/lib/elliptic/eddsa/index.js
+++ /dev/null
@@ -1,118 +0,0 @@
-'use strict';
-
-var hash = require('hash.js');
-var curves = require('../curves');
-var utils = require('../utils');
-var assert = utils.assert;
-var parseBytes = utils.parseBytes;
-var KeyPair = require('./key');
-var Signature = require('./signature');
-
-function EDDSA(curve) {
- assert(curve === 'ed25519', 'only tested with ed25519 so far');
-
- if (!(this instanceof EDDSA))
- return new EDDSA(curve);
-
- var 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;
-
-/**
-* @param {Array|String} message - message bytes
-* @param {Array|String|KeyPair} secret - secret bytes or a keypair
-* @returns {Signature} - signature
-*/
-EDDSA.prototype.sign = function sign(message, secret) {
- message = parseBytes(message);
- var key = this.keyFromSecret(secret);
- var r = this.hashInt(key.messagePrefix(), message);
- var R = this.g.mul(r);
- var Rencoded = this.encodePoint(R);
- var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
- .mul(key.priv());
- var S = r.add(s_).umod(this.curve.n);
- return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
-};
-
-/**
-* @param {Array} message - message bytes
-* @param {Array|String|Signature} sig - sig bytes
-* @param {Array|String|Point|KeyPair} pub - public key
-* @returns {Boolean} - true if public key matches sig of message
-*/
-EDDSA.prototype.verify = function verify(message, sig, pub) {
- message = parseBytes(message);
- sig = this.makeSignature(sig);
- var key = this.keyFromPublic(pub);
- var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
- var SG = this.g.mul(sig.S());
- var RplusAh = sig.R().add(key.pub().mul(h));
- return RplusAh.eq(SG);
-};
-
-EDDSA.prototype.hashInt = function hashInt() {
- var hash = this.hash();
- for (var i = 0; i < arguments.length; i++)
- hash.update(arguments[i]);
- return utils.intFromLE(hash.digest()).umod(this.curve.n);
-};
-
-EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
- return KeyPair.fromPublic(this, pub);
-};
-
-EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
- return KeyPair.fromSecret(this, secret);
-};
-
-EDDSA.prototype.makeSignature = function makeSignature(sig) {
- if (sig instanceof Signature)
- return sig;
- return new Signature(this, sig);
-};
-
-/**
-* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2
-*
-* EDDSA defines methods for encoding and decoding points and integers. These are
-* helper convenience methods, that pass along to utility functions implied
-* parameters.
-*
-*/
-EDDSA.prototype.encodePoint = function encodePoint(point) {
- var enc = point.getY().toArray('le', this.encodingLength);
- enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;
- return enc;
-};
-
-EDDSA.prototype.decodePoint = function decodePoint(bytes) {
- bytes = utils.parseBytes(bytes);
-
- var lastIx = bytes.length - 1;
- var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);
- var xIsOdd = (bytes[lastIx] & 0x80) !== 0;
-
- var y = utils.intFromLE(normed);
- return this.curve.pointFromY(y, xIsOdd);
-};
-
-EDDSA.prototype.encodeInt = function encodeInt(num) {
- return num.toArray('le', this.encodingLength);
-};
-
-EDDSA.prototype.decodeInt = function decodeInt(bytes) {
- return utils.intFromLE(bytes);
-};
-
-EDDSA.prototype.isPoint = function isPoint(val) {
- return val instanceof this.pointClass;
-};
diff --git a/node_modules/elliptic/lib/elliptic/eddsa/key.js b/node_modules/elliptic/lib/elliptic/eddsa/key.js
deleted file mode 100644
index a00028f..0000000
--- a/node_modules/elliptic/lib/elliptic/eddsa/key.js
+++ /dev/null
@@ -1,95 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-var assert = utils.assert;
-var parseBytes = utils.parseBytes;
-var cachedProperty = utils.cachedProperty;
-
-/**
-* @param {EDDSA} eddsa - instance
-* @param {Object} params - public/private key parameters
-*
-* @param {Array} [params.secret] - secret seed bytes
-* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
-* @param {Array} [params.pub] - public key point encoded as bytes
-*
-*/
-function KeyPair(eddsa, params) {
- this.eddsa = eddsa;
- this._secret = parseBytes(params.secret);
- if (eddsa.isPoint(params.pub))
- this._pub = params.pub;
- else
- this._pubBytes = parseBytes(params.pub);
-}
-
-KeyPair.fromPublic = function fromPublic(eddsa, pub) {
- if (pub instanceof KeyPair)
- return pub;
- return new KeyPair(eddsa, { pub: pub });
-};
-
-KeyPair.fromSecret = function fromSecret(eddsa, secret) {
- if (secret instanceof KeyPair)
- return secret;
- return new KeyPair(eddsa, { secret: secret });
-};
-
-KeyPair.prototype.secret = function secret() {
- return this._secret;
-};
-
-cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
- return this.eddsa.encodePoint(this.pub());
-});
-
-cachedProperty(KeyPair, 'pub', function pub() {
- if (this._pubBytes)
- return this.eddsa.decodePoint(this._pubBytes);
- return this.eddsa.g.mul(this.priv());
-});
-
-cachedProperty(KeyPair, 'privBytes', function privBytes() {
- var eddsa = this.eddsa;
- var hash = this.hash();
- var lastIx = eddsa.encodingLength - 1;
-
- var a = hash.slice(0, eddsa.encodingLength);
- a[0] &= 248;
- a[lastIx] &= 127;
- a[lastIx] |= 64;
-
- return a;
-});
-
-cachedProperty(KeyPair, 'priv', function priv() {
- return this.eddsa.decodeInt(this.privBytes());
-});
-
-cachedProperty(KeyPair, 'hash', function hash() {
- return this.eddsa.hash().update(this.secret()).digest();
-});
-
-cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
- return this.hash().slice(this.eddsa.encodingLength);
-});
-
-KeyPair.prototype.sign = function sign(message) {
- assert(this._secret, 'KeyPair can only verify');
- return this.eddsa.sign(message, this);
-};
-
-KeyPair.prototype.verify = function verify(message, sig) {
- return this.eddsa.verify(message, sig, this);
-};
-
-KeyPair.prototype.getSecret = function getSecret(enc) {
- assert(this._secret, 'KeyPair is public only');
- return utils.encode(this.secret(), enc);
-};
-
-KeyPair.prototype.getPublic = function getPublic(enc) {
- return utils.encode(this.pubBytes(), enc);
-};
-
-module.exports = KeyPair;
diff --git a/node_modules/elliptic/lib/elliptic/eddsa/signature.js b/node_modules/elliptic/lib/elliptic/eddsa/signature.js
deleted file mode 100644
index 17b96d7..0000000
--- a/node_modules/elliptic/lib/elliptic/eddsa/signature.js
+++ /dev/null
@@ -1,65 +0,0 @@
-'use strict';
-
-var BN = require('bn.js');
-var utils = require('../utils');
-var assert = utils.assert;
-var cachedProperty = utils.cachedProperty;
-var parseBytes = utils.parseBytes;
-
-/**
-* @param {EDDSA} eddsa - eddsa instance
-* @param {Array|Object} sig -
-* @param {Array|Point} [sig.R] - R point as Point or bytes
-* @param {Array|bn} [sig.S] - S scalar as bn or bytes
-* @param {Array} [sig.Rencoded] - R point encoded
-* @param {Array} [sig.Sencoded] - S scalar encoded
-*/
-function Signature(eddsa, sig) {
- this.eddsa = eddsa;
-
- if (typeof sig !== 'object')
- sig = parseBytes(sig);
-
- if (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');
-
- if (eddsa.isPoint(sig.R))
- this._R = sig.R;
- if (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 S() {
- return this.eddsa.decodeInt(this.Sencoded());
-});
-
-cachedProperty(Signature, 'R', function R() {
- return this.eddsa.decodePoint(this.Rencoded());
-});
-
-cachedProperty(Signature, 'Rencoded', function Rencoded() {
- return this.eddsa.encodePoint(this.R());
-});
-
-cachedProperty(Signature, 'Sencoded', function Sencoded() {
- return this.eddsa.encodeInt(this.S());
-});
-
-Signature.prototype.toBytes = function toBytes() {
- return this.Rencoded().concat(this.Sencoded());
-};
-
-Signature.prototype.toHex = function toHex() {
- return utils.encode(this.toBytes(), 'hex').toUpperCase();
-};
-
-module.exports = Signature;
diff --git a/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js b/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js
deleted file mode 100644
index e4c91e5..0000000
--- a/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js
+++ /dev/null
@@ -1,780 +0,0 @@
-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'
- ]
- ]
- }
-};
diff --git a/node_modules/elliptic/lib/elliptic/utils.js b/node_modules/elliptic/lib/elliptic/utils.js
deleted file mode 100644
index f6d5616..0000000
--- a/node_modules/elliptic/lib/elliptic/utils.js
+++ /dev/null
@@ -1,119 +0,0 @@
-'use strict';
-
-var utils = exports;
-var BN = require('bn.js');
-var minAssert = require('minimalistic-assert');
-var minUtils = require('minimalistic-crypto-utils');
-
-utils.assert = minAssert;
-utils.toArray = minUtils.toArray;
-utils.zero2 = minUtils.zero2;
-utils.toHex = minUtils.toHex;
-utils.encode = minUtils.encode;
-
-// Represent num in a w-NAF form
-function getNAF(num, w, bits) {
- var naf = new Array(Math.max(num.bitLength(), bits) + 1);
- naf.fill(0);
-
- var ws = 1 << (w + 1);
- var k = num.clone();
-
- for (var i = 0; i < naf.length; i++) {
- var z;
- var mod = k.andln(ws - 1);
- if (k.isOdd()) {
- if (mod > (ws >> 1) - 1)
- z = (ws >> 1) - mod;
- else
- z = mod;
- k.isubn(z);
- } else {
- z = 0;
- }
-
- naf[i] = z;
- k.iushrn(1);
- }
-
- return naf;
-}
-utils.getNAF = getNAF;
-
-// Represent k1, k2 in a Joint Sparse Form
-function getJSF(k1, k2) {
- var jsf = [
- [],
- []
- ];
-
- k1 = k1.clone();
- k2 = k2.clone();
- var d1 = 0;
- var d2 = 0;
- while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {
-
- // First phase
- var m14 = (k1.andln(3) + d1) & 3;
- var m24 = (k2.andln(3) + d2) & 3;
- if (m14 === 3)
- m14 = -1;
- if (m24 === 3)
- m24 = -1;
- var u1;
- if ((m14 & 1) === 0) {
- u1 = 0;
- } else {
- var m8 = (k1.andln(7) + d1) & 7;
- if ((m8 === 3 || m8 === 5) && m24 === 2)
- u1 = -m14;
- else
- u1 = m14;
- }
- jsf[0].push(u1);
-
- var u2;
- if ((m24 & 1) === 0) {
- u2 = 0;
- } else {
- var m8 = (k2.andln(7) + d2) & 7;
- if ((m8 === 3 || m8 === 5) && m14 === 2)
- u2 = -m24;
- else
- u2 = m24;
- }
- jsf[1].push(u2);
-
- // Second phase
- if (2 * d1 === u1 + 1)
- d1 = 1 - d1;
- if (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 cachedProperty() {
- return this[key] !== undefined ? 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;
-
diff --git a/node_modules/elliptic/package.json b/node_modules/elliptic/package.json
deleted file mode 100644
index d8dee9e..0000000
--- a/node_modules/elliptic/package.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "_from": "elliptic@^6.0.0",
- "_id": "elliptic@6.5.2",
- "_inBundle": false,
- "_integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
- "_location": "/elliptic",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "elliptic@^6.0.0",
- "name": "elliptic",
- "escapedName": "elliptic",
- "rawSpec": "^6.0.0",
- "saveSpec": null,
- "fetchSpec": "^6.0.0"
- },
- "_requiredBy": [
- "/browserify-sign",
- "/create-ecdh"
- ],
- "_resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
- "_shasum": "05c5678d7173c049d8ca433552224a495d0e3762",
- "_spec": "elliptic@^6.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/browserify-sign",
- "author": {
- "name": "Fedor Indutny",
- "email": "fedor@indutny.com"
- },
- "bugs": {
- "url": "https://github.com/indutny/elliptic/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
- },
- "deprecated": false,
- "description": "EC cryptography",
- "devDependencies": {
- "brfs": "^1.4.3",
- "coveralls": "^3.0.8",
- "grunt": "^1.0.4",
- "grunt-browserify": "^5.0.0",
- "grunt-cli": "^1.2.0",
- "grunt-contrib-connect": "^1.0.0",
- "grunt-contrib-copy": "^1.0.0",
- "grunt-contrib-uglify": "^1.0.1",
- "grunt-mocha-istanbul": "^3.0.1",
- "grunt-saucelabs": "^9.0.1",
- "istanbul": "^0.4.2",
- "jscs": "^3.0.7",
- "jshint": "^2.10.3",
- "mocha": "^6.2.2"
- },
- "files": [
- "lib"
- ],
- "homepage": "https://github.com/indutny/elliptic",
- "keywords": [
- "EC",
- "Elliptic",
- "curve",
- "Cryptography"
- ],
- "license": "MIT",
- "main": "lib/elliptic.js",
- "name": "elliptic",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/elliptic.git"
- },
- "scripts": {
- "jscs": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
- "jshint": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
- "lint": "npm run jscs && npm run jshint",
- "test": "npm run lint && npm run unit",
- "unit": "istanbul test _mocha --reporter=spec test/index.js",
- "version": "grunt dist && git add dist/"
- },
- "version": "6.5.2"
-}
diff --git a/node_modules/es-abstract/.editorconfig b/node_modules/es-abstract/.editorconfig
deleted file mode 100644
index eaa2141..0000000
--- a/node_modules/es-abstract/.editorconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-root = true
-
-[*]
-indent_style = tab;
-insert_final_newline = true;
-quote_type = auto;
-space_after_anonymous_functions = true;
-space_after_control_statements = true;
-spaces_around_operators = true;
-trim_trailing_whitespace = true;
-spaces_in_brackets = false;
-end_of_line = lf;
-
diff --git a/node_modules/es-abstract/.eslintrc b/node_modules/es-abstract/.eslintrc
deleted file mode 100644
index 2ec92dd..0000000
--- a/node_modules/es-abstract/.eslintrc
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "env": {
- "es6": true,
- },
-
- "rules": {
- "arrow-parens": [2, "always"],
- "array-bracket-newline": 0,
- "array-element-newline": 0,
- "complexity": 0,
- "eqeqeq": [2, "allow-null"],
- "func-name-matching": 0,
- "id-length": [2, { "min": 1, "max": 30 }],
- "max-params": [2, 4],
- "max-statements": [2, 24],
- "max-statements-per-line": [2, { "max": 2 }],
- "multiline-comment-style": 0,
- "no-magic-numbers": 0,
- "new-cap": 0,
- "no-extra-parens": 1,
- "operator-linebreak": [2, "before"],
- "sort-keys": 0,
- },
-
- "overrides": [
- {
- "files": "./es5.js",
- "rules": {
- "max-lines": [2, 600],
- "max-statements": [2, 30],
- },
- },
- {
- "files": "./es2015.js",
- "rules": {
- "max-lines": [2, 1500],
- },
- },
- {
- "files": "operations/*",
- "rules": {
- "max-lines": 0,
- },
- },
- {
- "files": "operations/*.js",
- "parserOptions": {
- "ecmaVersion": "2018",
- },
- "rules": {
- "no-console": 0,
- "no-multi-str": 0,
- },
- },
- {
- "files": "operations/getOps.js",
- "rules": {
- "no-console": 0,
- "no-process-exit": 0,
- },
- },
- {
- "files": "test/**",
- "rules": {
- "id-length": 0,
- "max-lines": 0,
- "max-lines-per-function": 0,
- "max-statements-per-line": [2, { "max": 3 }],
- "max-nested-callbacks": [2, 4],
- "max-statements": 0,
- "no-implicit-coercion": 0,
- "no-invalid-this": 1,
- "object-curly-newline": 0,
- "prefer-regex-literals": 0,
- },
- },
- ],
-}
diff --git a/node_modules/es-abstract/.github/FUNDING.yml b/node_modules/es-abstract/.github/FUNDING.yml
deleted file mode 100644
index beeb7a2..0000000
--- a/node_modules/es-abstract/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/es-abstract
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with a single custom sponsorship URL
diff --git a/node_modules/es-abstract/.github/workflows/rebase.yml b/node_modules/es-abstract/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/es-abstract/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
- _:
- name: "Automatic Rebase"
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v1
- - uses: ljharb/rebase@master
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/es-abstract/.nycrc b/node_modules/es-abstract/.nycrc
deleted file mode 100644
index d316b4d..0000000
--- a/node_modules/es-abstract/.nycrc
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "lines": 86,
- "statements": 85.93,
- "functions": 82.43,
- "branches": 76.06,
- "exclude": [
- "coverage",
- "operations",
- "test"
- ]
-}
diff --git a/node_modules/es-abstract/.travis.yml b/node_modules/es-abstract/.travis.yml
deleted file mode 100644
index 5c34024..0000000
--- a/node_modules/es-abstract/.travis.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-version: ~> 1.0
-language: node_js
-os:
- - linux
-cache:
- directories:
- - "$HOME/.npm"
- - "$(nvm cache dir)"
- - "$(nvm_version_path $(nvm_version_remote 0.4))"
- - "$(nvm_version_path $(nvm_version_remote 0.6))"
- - "$(nvm_version_path $(nvm_version_remote 0.10))"
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
-script:
- - 'if [ -n "${COVERAGE-}" ]; then npm run coverage && bash <(curl -s https://codecov.io/bash) -f coverage/*.json; fi'
-matrix:
- include:
- - node_js: "8"
- env: COVERAGE=true
- - node_js: "4"
- env: COVERAGE=true
- - node_js: "0.12"
- env: COVERAGE=true
- - node_js: "0.8"
- env: COVERAGE=true
- exclude:
- - node_js: "0.12"
- env: TEST=true
- - node_js: "0.8"
- env: TEST=true
diff --git a/node_modules/es-abstract/CHANGELOG.md b/node_modules/es-abstract/CHANGELOG.md
deleted file mode 100644
index a3a62b0..0000000
--- a/node_modules/es-abstract/CHANGELOG.md
+++ /dev/null
@@ -1,285 +0,0 @@
-1.16.3 / 2019-12-04
-=================
- * [Fix] `GetIntrinsic`: when given a path to a getter, return the actual getter
- * [Dev Deps] update `eslint`
-
-1.16.2 / 2019-11-24
-=================
- * [Fix] IE 6-7 lack JSON
- * [Fix] IE 6-8 strings can’t use array slice, they need string slice
- * [Dev Deps] update `eslint`
-
-1.16.1 / 2019-11-24
-=================
- * [Fix] `GetIntrinsics`: turns out IE 8 throws when `Object.getOwnPropertyDescriptor(arguments);`, and does not throw on `callee` anyways
- * [Deps] update `es-to-primitive`, `has-symbols`, `object-inspect`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`
- * [meta] re-include year files inside `operations`
- * [meta] add `funding` field
- * [actions] add Automatic Rebase github action
- * [Tests] use shared travis-ci config
- * [Tests] disable `check-coverage`, and let codecov do it
-
-1.16.0 / 2019-10-18
-=================
- * [New] `ES2015+`: add `SetFunctionName`
- * [New] `ES2015+`: add `GetPrototypeFromConstructor`, with caveats
- * [New] `ES2015+`: add `CreateListFromArrayLike`
- * [New] `ES2016+`: add `OrdinarySetPrototypeOf`
- * [New] `ES2016+`: add `OrdinaryGetPrototypeOf`
- * [New] add `getSymbolDescription` and `getInferredName` helpers
- * [Fix] `GetIterator`: add fallback for pre-Symbol environments, tests
- * [Dev Deps] update `object.fromentries`
- * [Tests] add `node` `v12.2`
-
-1.15.0 / 2019-10-02
-=================
- * [New] `ES2018`+: add `DateString`, `TimeString`
- * [New] `ES2015`+: add `ToDateString`
- * [New] `ES5`+: add `msFromTime`, `SecFromTime`, `MinFromTime`, `HourFromTime`, `TimeWithinDay`, `Day`, `DayFromYear`, `TimeFromYear`, `YearFromTime`, `WeekDay`, `DaysInYear`, `InLeapYear`, `DayWithinYear`, `MonthFromTime`, `DateFromTime`, `MakeDay`, `MakeDate`, `MakeTime`, `TimeClip`, `modulo`
- * [New] add `regexTester` helper
- * [New] add `callBound` helper
- * [New] add ES2020’s intrinsic dot notation
- * [New] add `isPrefixOf` helper
- * [New] add `maxSafeInteger` helper
- * [Deps] update `string.prototype.trimleft`, `string.prototype.trimright`
- * [Dev Deps] update `eslint`
- * [Tests] on `node` `v12.11`
- * [meta] npmignore operations scripts; add "deltas"
-
-1.14.2 / 2019-09-08
-=================
- * [Fix] `ES2016`: `IterableToArrayLike`: add proper fallback for strings, pre-Symbols
- * [Tests] on `node` `v12.10`
-
-1.14.1 / 2019-09-03
-=================
- * [meta] republish with some extra files removed
-
-1.14.0 / 2019-09-02
-=================
- * [New] add ES2019
- * [New] `ES2017+`: add `IterableToList`
- * [New] `ES2016`: add `IterableToArrayLike`
- * [New] `ES2015+`: add `ArrayCreate`, `ArraySetLength`, `OrdinaryDefineOwnProperty`, `OrdinaryGetOwnProperty`, `OrdinaryHasProperty`, `CreateHTML`, `GetOwnPropertyKeys`, `InstanceofOperator`, `SymbolDescriptiveString`, `GetSubstitution`, `ValidateAndApplyPropertyDescriptor`, `IsPromise`, `OrdinaryHasInstance`, `TestIntegrityLevel`, `SetIntegrityLevel`
- * [New] add `callBind` helper, and use it
- * [New] add helpers: `isPropertyDescriptor`, `every`
- * [New] ES5+: add `Abstract Relational Comparison`
- * [New] ES5+: add `Abstract Equality Comparison`, `Strict Equality Comparison`
- * [Fix] `ES2015+`: `GetIterator`: only require native Symbols when `method` is omitted
- * [Fix] `ES2015`: `Call`: error message now properly displays Symbols using `object-inspect`
- * [Fix] `ES2015+`: `ValidateAndApplyPropertyDescriptor`: use ES2017 logic to bypass spec bugs
- * [Fix] `ES2015+`: `CreateDataProperty`, `DefinePropertyOrThrow`, `ValidateAndApplyPropertyDescriptor`: add fallbacks for ES3
- * [Fix] `ES2015+`: `FromPropertyDescriptor`: no longer requires a fully complete Property Descriptor
- * [Fix] `ES5`: `IsPropertyDescriptor`: call into `IsDataDescriptor` and `IsAccessorDescriptor`
- * [Refactor] use `has-symbols` for Symbol detection
- * [Fix] `helpers/assertRecord`: remove `console.log`
- * [Deps] update `object-keys`
- * [readme] add security note
- * [meta] change http URLs to https
- * [meta] linter cleanup
- * [meta] fix getOps script
- * [meta] add FUNDING.yml
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `replace`, `cheerio`, `tape`
- * [Tests] up to `node` `v12.9`, `v11.15`, `v10.16`, `v8.16`, `v6.17`
- * [Tests] temporarily allow node 0.6 to fail; segfaulting in travis
- * [Tests] use the values helper more in es5 tests
- * [Tests] fix linting to apply to all files
- * [Tests] run `npx aud` only on prod deps
- * [Tests] add v.descriptors helpers
- * [Tests] use `npx aud` instead of `npm audit` with hoops
- * [Tests] use `eclint` instead of `editorconfig-tools`
- * [Tests] some intrinsic cleanup
- * [Tests] migrate es5 tests to use values helper
- * [Tests] add some missing ES2015 ops
-
-1.13.0 / 2019-01-02
-=================
- * [New] add ES2018
- * [New] add ES2015/ES2016: EnumerableOwnNames; ES2017: EnumerableOwnProperties
- * [New] `ES2015+`: add `thisBooleanValue`, `thisNumberValue`, `thisStringValue`, `thisTimeValue`
- * [New] `ES2015+`: add `DefinePropertyOrThrow`, `DeletePropertyOrThrow`, `CreateMethodProperty`
- * [New] add `assertRecord` helper
- * [Deps] update `is-callable`, `has`, `object-keys`, `es-to-primitive`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `semver`, `safe-publish-latest`, `replace`
- * [Tests] use `npm audit` instead of `nsp`
- * [Tests] remove `jscs`
- * [Tests] up to `node` `v11.6`, `v10.15`, `v8.15`, `v6.16`
- * [Tests] move descriptor factories to `values` helper
- * [Tests] add `getOps` to programmatically fetch abstract operation names
-
-1.12.0 / 2018-05-31
-=================
- * [New] add `GetIntrinsic` entry point
- * [New] `ES2015`+: add `ObjectCreate`
- * [Robustness]: `ES2015+`: ensure `Math.{abs,floor}` and `Function.call` are cached
-
-1.11.0 / 2018-03-21
-=================
- * [New] `ES2015+`: add iterator abstract ops
- * [Dev Deps] update `eslint`, `nsp`, `object.assign`, `semver`, `tape`
- * [Tests] up to `node` `v9.8`, `v8.10`, `v6.13`
-
-1.10.0 / 2017-11-24
-=================
- * [New] ES2015+: `AdvanceStringIndex`
- * [Dev Deps] update `eslint`, `nsp`
- * [Tests] require node 0.6 to pass again
- * [Tests] up to `node` `v9.2`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS
-
-1.9.0 / 2017-09-30
-=================
- * [New] `es2015+`: add `ArraySpeciesCreate`
- * [New] ES2015+: add `CreateDataProperty` and `CreateDataPropertyOrThrow`
- * [Tests] consolidate duplicated tests
- * [Tests] increase coverage
- * [Dev Deps] update `nsp`, `eslint`
-
-1.8.2 / 2017-09-03
-=================
- * [Fix] `es2015`+: `ToNumber`: provide the proper hint for Date objects (#27)
- * [Dev Deps] update `eslint`
-
-1.8.1 / 2017-08-30
-=================
- * [Fix] ES2015+: `ToPropertyKey`: should return a symbol for Symbols (#26)
- * [Deps] update `function-bind`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`
- * [Docs] github broke markdown parsing
-
-1.8.0 / 2017-08-04
-=================
- * [New] add ES2017
- * [New] move es6+ to es2015+; leave es6/es7 as aliases
- * [New] ES5+: add `IsPropertyDescriptor`, `IsAccessorDescriptor`, `IsDataDescriptor`, `IsGenericDescriptor`, `FromPropertyDescriptor`, `ToPropertyDescriptor`
- * [New] ES2015+: add `CompletePropertyDescriptor`, `Set`, `HasOwnProperty`, `HasProperty`, `IsConcatSpreadable`, `Invoke`, `CreateIterResultObject`, `RegExpExec`
- * [Fix] es7/es2016: do not mutate ES6
- * [Fix] assign helper only supports one source
- * [Deps] update `is-regex`
- * [Dev Deps] update `nsp`, `eslint`, `@ljharb/eslint-config`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `semver`, `tape`
- * [Tests] add tests for missing and excess operations
- * [Tests] add codecov for coverage
- * [Tests] up to `node` `v8.2`, `v7.10`, `v6.11`, `v4.8`; newer npm breaks on older node
- * [Tests] use same lists of value types across tests; ensure tests are the same when ops are the same
- * [Tests] ES2015: add ToNumber symbol tests
- * [Tests] switch to `nyc` for code coverage
- * [Tests] make IsRegExp tests consistent across editions
-
-1.7.0 / 2017-01-22
-=================
- * [New] ES6: Add `GetMethod` (#16)
- * [New] ES6: Add `GetV` (#16)
- * [New] ES6: Add `Get` (#17)
- * [Tests] up to `node` `v7.4`, `v6.9`, `v4.6`; improve test matrix
- * [Dev Deps] update `tape`, `nsp`, `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`
-
-1.6.1 / 2016-08-21
-=================
- * [Fix] ES6: IsConstructor should return true for `class` constructors.
-
-1.6.0 / 2016-08-20
-=================
- * [New] ES5 / ES6: add `Type`
- * [New] ES6: `SpeciesConstructor`
- * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`; add `safe-publish-latest`
- * [Tests] up to `node` `v6.4`, `v5.12`, `v4.5`
-
-1.5.1 / 2016-05-30
-=================
- * [Fix] `ES.IsRegExp`: actually look up `Symbol.match` on the argument
- * [Refactor] create `isNaN` helper
- * [Deps] update `is-callable`, `function-bind`
- * [Deps] update `es-to-primitive`, fix ES5 tests
- * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `tape`, `nsp`
- * [Tests] up to `node` `v6.2`, `v5.11`, `v4.4`
- * [Tests] use pretest/posttest for linting/security
-
-1.5.0 / 2015-12-27
-=================
- * [New] adds `Symbol.toPrimitive` support via `es-to-primitive`
- * [Deps] update `is-callable`, `es-to-primitive`
- * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`, `tape`
- * [Tests] up to `node` `v5.3`
-
-1.4.3 / 2015-11-04
-=================
- * [Fix] `ES6.ToNumber`: should give `NaN` for explicitly signed hex strings (#4)
- * [Refactor] `ES6.ToNumber`: No need to double-trim
- * [Refactor] group tests better
- * [Tests] should still pass on `node` `v0.8`
-
-1.4.2 / 2015-11-02
-=================
- * [Fix] ensure `ES.ToNumber` trims whitespace, and does not trim non-whitespace (#3)
-
-1.4.1 / 2015-10-31
-=================
- * [Fix] ensure only 0-1 are valid binary and 0-7 are valid octal digits (#2)
- * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`
- * [Tests] on `node` `v5.0`
- * [Tests] fix npm upgrades for older node versions
- * package.json: use object form of "authors", add "contributors"
-
-1.4.0 / 2015-09-26
-=================
- * [Deps] update `is-callable`
- * [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config`
- * [Tests] on `node` `v4.2`
- * [New] Add `SameValueNonNumber` to ES7
-
-1.3.2 / 2015-09-26
-=================
- * [Fix] Fix `ES6.IsRegExp` to properly handle `Symbol.match`, per spec.
- * [Tests] up to `io.js` `v3.3`, `node` `v4.1`
- * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`
-
-1.3.1 / 2015-08-15
-=================
- * [Fix] Ensure that objects that `toString` to a binary or octal literal also convert properly
-
-1.3.0 / 2015-08-15
-=================
- * [New] ES6’s ToNumber now supports binary and octal literals.
- * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `tape`
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
- * [Tests] up to `io.js` `v3.0`
-
-1.2.2 / 2015-07-28
-=================
- * [Fix] Both `ES5.CheckObjectCoercible` and `ES6.RequireObjectCoercible` return the value if they don't throw.
- * [Tests] Test on latest `io.js` versions.
- * [Dev Deps] Update `eslint`, `jscs`, `tape`, `semver`, `covert`, `nsp`
-
-1.2.1 / 2015-03-20
-=================
- * Fix `isFinite` helper.
-
-1.2.0 / 2015-03-19
-=================
- * Use `es-to-primitive` for ToPrimitive methods.
- * Test on latest `io.js` versions; allow failures on all but 2 latest `node`/`io.js` versions.
-
-1.1.2 / 2015-03-20
-=================
- * Fix isFinite helper.
-
-1.1.1 / 2015-03-19
-=================
- * Fix isPrimitive check for functions
- * Update `eslint`, `editorconfig-tools`, `semver`, `nsp`
-
-1.1.0 / 2015-02-17
-=================
- * Add ES7 export (non-default).
- * All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`.
- * Test on `iojs-v1.2`.
-
-1.0.1 / 2015-01-30
-=================
- * Use `is-callable` instead of an internal function.
- * Update `tape`, `jscs`, `nsp`, `eslint`
-
-1.0.0 / 2015-01-10
-=================
- * v1.0.0
diff --git a/node_modules/es-abstract/GetIntrinsic.js b/node_modules/es-abstract/GetIntrinsic.js
deleted file mode 100644
index a868b9f..0000000
--- a/node_modules/es-abstract/GetIntrinsic.js
+++ /dev/null
@@ -1,210 +0,0 @@
-'use strict';
-
-/* globals
- Atomics,
- SharedArrayBuffer,
-*/
-
-var undefined;
-
-var $TypeError = TypeError;
-
-var $gOPD = Object.getOwnPropertyDescriptor;
-
-var throwTypeError = function () { throw new $TypeError(); };
-var ThrowTypeError = $gOPD
- ? (function () {
- try {
- // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
- arguments.callee; // IE 8 does not throw here
- return throwTypeError;
- } catch (calleeThrows) {
- try {
- // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
- return $gOPD(arguments, 'callee').get;
- } catch (gOPDthrows) {
- return throwTypeError;
- }
- }
- }())
- : throwTypeError;
-
-var hasSymbols = require('has-symbols')();
-
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
-
-var generator; // = function * () {};
-var generatorFunction = generator ? getProto(generator) : undefined;
-var asyncFn; // async function() {};
-var asyncFunction = asyncFn ? asyncFn.constructor : undefined;
-var asyncGen; // async function * () {};
-var asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;
-var asyncGenIterator = asyncGen ? asyncGen() : undefined;
-
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
-
-var INTRINSICS = {
- '$ %Array%': Array,
- '$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
- '$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,
- '$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
- '$ %ArrayPrototype%': Array.prototype,
- '$ %ArrayProto_entries%': Array.prototype.entries,
- '$ %ArrayProto_forEach%': Array.prototype.forEach,
- '$ %ArrayProto_keys%': Array.prototype.keys,
- '$ %ArrayProto_values%': Array.prototype.values,
- '$ %AsyncFromSyncIteratorPrototype%': undefined,
- '$ %AsyncFunction%': asyncFunction,
- '$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,
- '$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,
- '$ %AsyncGeneratorFunction%': asyncGenFunction,
- '$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,
- '$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,
- '$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
- '$ %Boolean%': Boolean,
- '$ %BooleanPrototype%': Boolean.prototype,
- '$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,
- '$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,
- '$ %Date%': Date,
- '$ %DatePrototype%': Date.prototype,
- '$ %decodeURI%': decodeURI,
- '$ %decodeURIComponent%': decodeURIComponent,
- '$ %encodeURI%': encodeURI,
- '$ %encodeURIComponent%': encodeURIComponent,
- '$ %Error%': Error,
- '$ %ErrorPrototype%': Error.prototype,
- '$ %eval%': eval, // eslint-disable-line no-eval
- '$ %EvalError%': EvalError,
- '$ %EvalErrorPrototype%': EvalError.prototype,
- '$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
- '$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,
- '$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
- '$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,
- '$ %Function%': Function,
- '$ %FunctionPrototype%': Function.prototype,
- '$ %Generator%': generator ? getProto(generator()) : undefined,
- '$ %GeneratorFunction%': generatorFunction,
- '$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,
- '$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
- '$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,
- '$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
- '$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,
- '$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
- '$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,
- '$ %isFinite%': isFinite,
- '$ %isNaN%': isNaN,
- '$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
- '$ %JSON%': typeof JSON === 'object' ? JSON : undefined,
- '$ %JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,
- '$ %Map%': typeof Map === 'undefined' ? undefined : Map,
- '$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
- '$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,
- '$ %Math%': Math,
- '$ %Number%': Number,
- '$ %NumberPrototype%': Number.prototype,
- '$ %Object%': Object,
- '$ %ObjectPrototype%': Object.prototype,
- '$ %ObjProto_toString%': Object.prototype.toString,
- '$ %ObjProto_valueOf%': Object.prototype.valueOf,
- '$ %parseFloat%': parseFloat,
- '$ %parseInt%': parseInt,
- '$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,
- '$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,
- '$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,
- '$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,
- '$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,
- '$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,
- '$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
- '$ %RangeError%': RangeError,
- '$ %RangeErrorPrototype%': RangeError.prototype,
- '$ %ReferenceError%': ReferenceError,
- '$ %ReferenceErrorPrototype%': ReferenceError.prototype,
- '$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
- '$ %RegExp%': RegExp,
- '$ %RegExpPrototype%': RegExp.prototype,
- '$ %Set%': typeof Set === 'undefined' ? undefined : Set,
- '$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
- '$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,
- '$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
- '$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,
- '$ %String%': String,
- '$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
- '$ %StringPrototype%': String.prototype,
- '$ %Symbol%': hasSymbols ? Symbol : undefined,
- '$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,
- '$ %SyntaxError%': SyntaxError,
- '$ %SyntaxErrorPrototype%': SyntaxError.prototype,
- '$ %ThrowTypeError%': ThrowTypeError,
- '$ %TypedArray%': TypedArray,
- '$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,
- '$ %TypeError%': $TypeError,
- '$ %TypeErrorPrototype%': $TypeError.prototype,
- '$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
- '$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,
- '$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
- '$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,
- '$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
- '$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,
- '$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
- '$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,
- '$ %URIError%': URIError,
- '$ %URIErrorPrototype%': URIError.prototype,
- '$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
- '$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,
- '$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,
- '$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype
-};
-
-var bind = require('function-bind');
-var $replace = bind.call(Function.call, String.prototype.replace);
-
-/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
-var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
-var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
-var stringToPath = function stringToPath(string) {
- var result = [];
- $replace(string, rePropName, function (match, number, quote, subString) {
- result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match);
- });
- return result;
-};
-/* end adaptation */
-
-var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
- var key = '$ ' + name;
- if (!(key in INTRINSICS)) {
- throw new SyntaxError('intrinsic ' + name + ' does not exist!');
- }
-
- // istanbul ignore if // hopefully this is impossible to test :-)
- if (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {
- throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
- }
-
- return INTRINSICS[key];
-};
-
-module.exports = function GetIntrinsic(name, allowMissing) {
- if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
- throw new TypeError('"allowMissing" argument must be a boolean');
- }
-
- var parts = stringToPath(name);
-
- if (parts.length === 0) {
- return getBaseIntrinsic(name, allowMissing);
- }
-
- var value = getBaseIntrinsic('%' + parts[0] + '%', allowMissing);
- for (var i = 1; i < parts.length; i += 1) {
- if (value != null) {
- if ($gOPD && (i + 1) >= parts.length) {
- var desc = $gOPD(value, parts[i]);
- value = desc ? (desc.get || desc.value) : value[parts[i]];
- } else {
- value = value[parts[i]];
- }
- }
- }
- return value;
-};
diff --git a/node_modules/es-abstract/LICENSE b/node_modules/es-abstract/LICENSE
deleted file mode 100644
index 8c271c1..0000000
--- a/node_modules/es-abstract/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (C) 2015 Jordan Harband
-
-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.
\ No newline at end of file
diff --git a/node_modules/es-abstract/Makefile b/node_modules/es-abstract/Makefile
deleted file mode 100644
index 959bbd4..0000000
--- a/node_modules/es-abstract/Makefile
+++ /dev/null
@@ -1,61 +0,0 @@
-# Since we rely on paths relative to the makefile location, abort if make isn't being run from there.
-$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in))
-
- # The files that need updating when incrementing the version number.
-VERSIONED_FILES := *.js */*.js *.json README*
-
-
-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
-# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
-export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH")
-UTILS := semver
-# Make sure that all required utilities can be located.
-UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS)))
-
-# Default target (by virtue of being the first non '.'-prefixed in the file).
-.PHONY: _no-target-specified
-_no-target-specified:
- $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests)
-
-# Lists all targets defined in this makefile.
-.PHONY: list
-list:
- @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort
-
-# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS).
-.PHONY: test
-test:
- @npm test
-
-.PHONY: _ensure-tag
-_ensure-tag:
-ifndef TAG
- $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number)
-endif
-
-CHANGELOG_ERROR = $(error No CHANGELOG specified)
-.PHONY: _ensure-changelog
-_ensure-changelog:
- @ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2)
-
-# Ensures that the git workspace is clean.
-.PHONY: _ensure-clean
-_ensure-clean:
- @[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; }
-
-# Makes a release; invoke with `make TAG= release`.
-.PHONY: release
-release: _ensure-tag _ensure-changelog _ensure-clean
- @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
- new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
- if printf "$$new_ver" | command grep -q '^[0-9]'; then \
- semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \
- semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \
- else \
- new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
- fi; \
- printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \
- replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \
- git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \
- git tag -a -m "v$$new_ver" "v$$new_ver"
diff --git a/node_modules/es-abstract/README.md b/node_modules/es-abstract/README.md
deleted file mode 100644
index 20342d1..0000000
--- a/node_modules/es-abstract/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# es-abstract [![Version Badge][npm-version-svg]][package-url]
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-[![browser support][testling-svg]][testling-url]
-
-ECMAScript spec abstract operations.
-When different versions of the spec conflict, the default export will be the latest version of the abstract operation.
-All abstract operations will also be available under an `es5`/`es2015`/`es2016`/`es2017`/`es2018`/`es2019` entry point, and exported property, if you require a specific version.
-
-## Example
-
-```js
-var ES = require('es-abstract');
-var assert = require('assert');
-
-assert(ES.isCallable(function () {}));
-assert(!ES.isCallable(/a/g));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-## Security
-
-Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
-
-[package-url]: https://npmjs.org/package/es-abstract
-[npm-version-svg]: http://versionbadg.es/ljharb/es-abstract.svg
-[travis-svg]: https://travis-ci.org/ljharb/es-abstract.svg
-[travis-url]: https://travis-ci.org/ljharb/es-abstract
-[deps-svg]: https://david-dm.org/ljharb/es-abstract.svg
-[deps-url]: https://david-dm.org/ljharb/es-abstract
-[dev-deps-svg]: https://david-dm.org/ljharb/es-abstract/dev-status.svg
-[dev-deps-url]: https://david-dm.org/ljharb/es-abstract#info=devDependencies
-[testling-svg]: https://ci.testling.com/ljharb/es-abstract.png
-[testling-url]: https://ci.testling.com/ljharb/es-abstract
-[npm-badge-png]: https://nodei.co/npm/es-abstract.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/es-abstract.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/es-abstract.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=es-abstract
diff --git a/node_modules/es-abstract/es2015.js b/node_modules/es-abstract/es2015.js
deleted file mode 100644
index 89d3e0b..0000000
--- a/node_modules/es-abstract/es2015.js
+++ /dev/null
@@ -1,1463 +0,0 @@
-'use strict';
-
-var has = require('has');
-var toPrimitive = require('es-to-primitive/es6');
-var keys = require('object-keys');
-var inspect = require('object-inspect');
-
-var GetIntrinsic = require('./GetIntrinsic');
-
-var $TypeError = GetIntrinsic('%TypeError%');
-var $RangeError = GetIntrinsic('%RangeError%');
-var $SyntaxError = GetIntrinsic('%SyntaxError%');
-var $Array = GetIntrinsic('%Array%');
-var $ArrayPrototype = $Array.prototype;
-var $String = GetIntrinsic('%String%');
-var $Object = GetIntrinsic('%Object%');
-var $Number = GetIntrinsic('%Number%');
-var $Symbol = GetIntrinsic('%Symbol%', true);
-var $RegExp = GetIntrinsic('%RegExp%');
-var $Date = GetIntrinsic('%Date%');
-var $Function = GetIntrinsic('%Function%');
-var $preventExtensions = $Object.preventExtensions;
-
-var hasSymbols = require('has-symbols')();
-
-var assertRecord = require('./helpers/assertRecord');
-var $isNaN = require('./helpers/isNaN');
-var $isFinite = require('./helpers/isFinite');
-var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;
-var MAX_SAFE_INTEGER = require('./helpers/maxSafeInteger');
-
-var assign = require('./helpers/assign');
-var sign = require('./helpers/sign');
-var mod = require('./helpers/mod');
-var isPrimitive = require('./helpers/isPrimitive');
-var forEach = require('./helpers/forEach');
-var every = require('./helpers/every');
-var isSamePropertyDescriptor = require('./helpers/isSamePropertyDescriptor');
-var isPropertyDescriptor = require('./helpers/isPropertyDescriptor');
-var parseInteger = parseInt;
-var callBound = require('./helpers/callBound');
-var regexTester = require('./helpers/regexTester');
-var getIteratorMethod = require('./helpers/getIteratorMethod');
-var getSymbolDescription = require('./helpers/getSymbolDescription');
-
-var $PromiseThen = callBound('Promise.prototype.then', true);
-var arraySlice = callBound('Array.prototype.slice');
-var strSlice = callBound('String.prototype.slice');
-var $indexOf = callBound('Array.prototype.indexOf');
-var $push = callBound('Array.prototype.push');
-
-var isBinary = regexTester(/^0b[01]+$/i);
-var isOctal = regexTester(/^0o[0-7]+$/i);
-var isDigit = regexTester(/^[0-9]$/);
-var regexExec = callBound('RegExp.prototype.exec');
-var nonWS = ['\u0085', '\u200b', '\ufffe'].join('');
-var nonWSregex = new $RegExp('[' + nonWS + ']', 'g');
-var hasNonWS = regexTester(nonWSregex);
-var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);
-var $charCodeAt = callBound('String.prototype.charCodeAt');
-var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-
-var toStr = callBound('Object.prototype.toString');
-
-var $NumberValueOf = callBound('Number.prototype.valueOf');
-var $BooleanValueOf = callBound('Boolean.prototype.valueOf');
-var $StringValueOf = callBound('String.prototype.valueOf');
-var $DateValueOf = callBound('Date.prototype.valueOf');
-var $SymbolToString = callBound('Symbol.prototype.toString', true);
-
-var $floor = Math.floor;
-var $abs = Math.abs;
-
-var $ObjectCreate = $Object.create;
-var $gOPD = $Object.getOwnPropertyDescriptor;
-var $gOPN = $Object.getOwnPropertyNames;
-var $gOPS = $Object.getOwnPropertySymbols;
-var $isExtensible = $Object.isExtensible;
-var $defineProperty = $Object.defineProperty;
-var $setProto = require('./helpers/setProto');
-
-var DefineOwnProperty = function DefineOwnProperty(ES, O, P, desc) {
- if (!$defineProperty) {
- if (!ES.IsDataDescriptor(desc)) {
- // ES3 does not support getters/setters
- return false;
- }
- if (!desc['[[Configurable]]'] || !desc['[[Writable]]']) {
- return false;
- }
-
- // fallback for ES3
- if (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) {
- // a non-enumerable existing property
- return false;
- }
-
- // property does not exist at all, or exists but is enumerable
- var V = desc['[[Value]]'];
- O[P] = V; // will use [[Define]]
- return ES.SameValue(O[P], V);
- }
- $defineProperty(O, P, ES.FromPropertyDescriptor(desc));
- return true;
-};
-
-// whitespace from: https://es5.github.io/#x15.5.4.20
-// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324
-var ws = [
- '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003',
- '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028',
- '\u2029\uFEFF'
-].join('');
-var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');
-var $replace = callBound('String.prototype.replace');
-var trim = function (value) {
- return $replace(value, trimRegex, '');
-};
-
-var ES5 = require('./es5');
-
-var hasRegExpMatcher = require('is-regex');
-
-// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations
-var ES6 = assign(assign({}, ES5), {
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args
- Call: function Call(F, V) {
- var args = arguments.length > 2 ? arguments[2] : [];
- if (!this.IsCallable(F)) {
- throw new $TypeError(inspect(F) + ' is not a function');
- }
- return F.apply(V, args);
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive
- ToPrimitive: toPrimitive,
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean
- // ToBoolean: ES5.ToBoolean,
-
- // https://ecma-international.org/ecma-262/6.0/#sec-tonumber
- ToNumber: function ToNumber(argument) {
- var value = isPrimitive(argument) ? argument : toPrimitive(argument, $Number);
- if (typeof value === 'symbol') {
- throw new $TypeError('Cannot convert a Symbol value to a number');
- }
- if (typeof value === 'string') {
- if (isBinary(value)) {
- return this.ToNumber(parseInteger(strSlice(value, 2), 2));
- } else if (isOctal(value)) {
- return this.ToNumber(parseInteger(strSlice(value, 2), 8));
- } else if (hasNonWS(value) || isInvalidHexLiteral(value)) {
- return NaN;
- } else {
- var trimmed = trim(value);
- if (trimmed !== value) {
- return this.ToNumber(trimmed);
- }
- }
- }
- return $Number(value);
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger
- // ToInteger: ES5.ToNumber,
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32
- // ToInt32: ES5.ToInt32,
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32
- // ToUint32: ES5.ToUint32,
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16
- ToInt16: function ToInt16(argument) {
- var int16bit = this.ToUint16(argument);
- return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16
- // ToUint16: ES5.ToUint16,
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8
- ToInt8: function ToInt8(argument) {
- var int8bit = this.ToUint8(argument);
- return int8bit >= 0x80 ? int8bit - 0x100 : int8bit;
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8
- ToUint8: function ToUint8(argument) {
- var number = this.ToNumber(argument);
- if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }
- var posInt = sign(number) * $floor($abs(number));
- return mod(posInt, 0x100);
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp
- ToUint8Clamp: function ToUint8Clamp(argument) {
- var number = this.ToNumber(argument);
- if ($isNaN(number) || number <= 0) { return 0; }
- if (number >= 0xFF) { return 0xFF; }
- var f = $floor(argument);
- if (f + 0.5 < number) { return f + 1; }
- if (number < f + 0.5) { return f; }
- if (f % 2 !== 0) { return f + 1; }
- return f;
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring
- ToString: function ToString(argument) {
- if (typeof argument === 'symbol') {
- throw new $TypeError('Cannot convert a Symbol value to a string');
- }
- return $String(argument);
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject
- ToObject: function ToObject(value) {
- this.RequireObjectCoercible(value);
- return $Object(value);
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey
- ToPropertyKey: function ToPropertyKey(argument) {
- var key = this.ToPrimitive(argument, $String);
- return typeof key === 'symbol' ? key : this.ToString(key);
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength
- ToLength: function ToLength(argument) {
- var len = this.ToInteger(argument);
- if (len <= 0) { return 0; } // includes converting -0 to +0
- if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }
- return len;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring
- CanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {
- if (toStr(argument) !== '[object String]') {
- throw new $TypeError('must be a string');
- }
- if (argument === '-0') { return -0; }
- var n = this.ToNumber(argument);
- if (this.SameValue(this.ToString(n), argument)) { return n; }
- return void 0;
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible
- RequireObjectCoercible: ES5.CheckObjectCoercible,
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray
- IsArray: $Array.isArray || function IsArray(argument) {
- return toStr(argument) === '[object Array]';
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable
- // IsCallable: ES5.IsCallable,
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor
- IsConstructor: function IsConstructor(argument) {
- return typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument` or Proxy
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o
- IsExtensible: $preventExtensions
- ? function IsExtensible(obj) {
- if (isPrimitive(obj)) {
- return false;
- }
- return $isExtensible(obj);
- }
- : function isExtensible(obj) { return true; }, // eslint-disable-line no-unused-vars
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger
- IsInteger: function IsInteger(argument) {
- if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {
- return false;
- }
- var abs = $abs(argument);
- return $floor(abs) === abs;
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey
- IsPropertyKey: function IsPropertyKey(argument) {
- return typeof argument === 'string' || typeof argument === 'symbol';
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-isregexp
- IsRegExp: function IsRegExp(argument) {
- if (!argument || typeof argument !== 'object') {
- return false;
- }
- if (hasSymbols) {
- var isRegExp = argument[$Symbol.match];
- if (typeof isRegExp !== 'undefined') {
- return ES5.ToBoolean(isRegExp);
- }
- }
- return hasRegExpMatcher(argument);
- },
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue
- // SameValue: ES5.SameValue,
-
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero
- SameValueZero: function SameValueZero(x, y) {
- return (x === y) || ($isNaN(x) && $isNaN(y));
- },
-
- /**
- * 7.3.2 GetV (V, P)
- * 1. Assert: IsPropertyKey(P) is true.
- * 2. Let O be ToObject(V).
- * 3. ReturnIfAbrupt(O).
- * 4. Return O.[[Get]](P, V).
- */
- GetV: function GetV(V, P) {
- // 7.3.2.1
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
- }
-
- // 7.3.2.2-3
- var O = this.ToObject(V);
-
- // 7.3.2.4
- return O[P];
- },
-
- /**
- * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod
- * 1. Assert: IsPropertyKey(P) is true.
- * 2. Let func be GetV(O, P).
- * 3. ReturnIfAbrupt(func).
- * 4. If func is either undefined or null, return undefined.
- * 5. If IsCallable(func) is false, throw a TypeError exception.
- * 6. Return func.
- */
- GetMethod: function GetMethod(O, P) {
- // 7.3.9.1
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
- }
-
- // 7.3.9.2
- var func = this.GetV(O, P);
-
- // 7.3.9.4
- if (func == null) {
- return void 0;
- }
-
- // 7.3.9.5
- if (!this.IsCallable(func)) {
- throw new $TypeError(P + 'is not a function');
- }
-
- // 7.3.9.6
- return func;
- },
-
- /**
- * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p
- * 1. Assert: Type(O) is Object.
- * 2. Assert: IsPropertyKey(P) is true.
- * 3. Return O.[[Get]](P, O).
- */
- Get: function Get(O, P) {
- // 7.3.1.1
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- // 7.3.1.2
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
- }
- // 7.3.1.3
- return O[P];
- },
-
- Type: function Type(x) {
- if (typeof x === 'symbol') {
- return 'Symbol';
- }
- return ES5.Type(x);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor
- SpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- var C = O.constructor;
- if (typeof C === 'undefined') {
- return defaultConstructor;
- }
- if (this.Type(C) !== 'Object') {
- throw new $TypeError('O.constructor is not an Object');
- }
- var S = hasSymbols && $Symbol.species ? C[$Symbol.species] : void 0;
- if (S == null) {
- return defaultConstructor;
- }
- if (this.IsConstructor(S)) {
- return S;
- }
- throw new $TypeError('no constructor found');
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor
- FromPropertyDescriptor: function FromPropertyDescriptor(Desc) {
- if (typeof Desc === 'undefined') {
- return Desc;
- }
-
- assertRecord(this, 'Property Descriptor', 'Desc', Desc);
-
- var obj = {};
- if ('[[Value]]' in Desc) {
- obj.value = Desc['[[Value]]'];
- }
- if ('[[Writable]]' in Desc) {
- obj.writable = Desc['[[Writable]]'];
- }
- if ('[[Get]]' in Desc) {
- obj.get = Desc['[[Get]]'];
- }
- if ('[[Set]]' in Desc) {
- obj.set = Desc['[[Set]]'];
- }
- if ('[[Enumerable]]' in Desc) {
- obj.enumerable = Desc['[[Enumerable]]'];
- }
- if ('[[Configurable]]' in Desc) {
- obj.configurable = Desc['[[Configurable]]'];
- }
- return obj;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor
- CompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {
- /* eslint no-param-reassign: 0 */
- assertRecord(this, 'Property Descriptor', 'Desc', Desc);
-
- if (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {
- if (!has(Desc, '[[Value]]')) {
- Desc['[[Value]]'] = void 0;
- }
- if (!has(Desc, '[[Writable]]')) {
- Desc['[[Writable]]'] = false;
- }
- } else {
- if (!has(Desc, '[[Get]]')) {
- Desc['[[Get]]'] = void 0;
- }
- if (!has(Desc, '[[Set]]')) {
- Desc['[[Set]]'] = void 0;
- }
- }
- if (!has(Desc, '[[Enumerable]]')) {
- Desc['[[Enumerable]]'] = false;
- }
- if (!has(Desc, '[[Configurable]]')) {
- Desc['[[Configurable]]'] = false;
- }
- return Desc;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw
- Set: function Set(O, P, V, Throw) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('O must be an Object');
- }
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('P must be a Property Key');
- }
- if (this.Type(Throw) !== 'Boolean') {
- throw new $TypeError('Throw must be a Boolean');
- }
- if (Throw) {
- O[P] = V;
- return true;
- } else {
- try {
- O[P] = V;
- } catch (e) {
- return false;
- }
- }
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty
- HasOwnProperty: function HasOwnProperty(O, P) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('O must be an Object');
- }
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('P must be a Property Key');
- }
- return has(O, P);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-hasproperty
- HasProperty: function HasProperty(O, P) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('O must be an Object');
- }
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('P must be a Property Key');
- }
- return P in O;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable
- IsConcatSpreadable: function IsConcatSpreadable(O) {
- if (this.Type(O) !== 'Object') {
- return false;
- }
- if (hasSymbols && typeof $Symbol.isConcatSpreadable === 'symbol') {
- var spreadable = this.Get(O, Symbol.isConcatSpreadable);
- if (typeof spreadable !== 'undefined') {
- return this.ToBoolean(spreadable);
- }
- }
- return this.IsArray(O);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-invoke
- Invoke: function Invoke(O, P) {
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('P must be a Property Key');
- }
- var argumentsList = arraySlice(arguments, 2);
- var func = this.GetV(O, P);
- return this.Call(func, O, argumentsList);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-getiterator
- GetIterator: function GetIterator(obj, method) {
- var actualMethod = method;
- if (arguments.length < 2) {
- actualMethod = getIteratorMethod(this, obj);
- }
- var iterator = this.Call(actualMethod, obj);
- if (this.Type(iterator) !== 'Object') {
- throw new $TypeError('iterator must return an object');
- }
-
- return iterator;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-iteratornext
- IteratorNext: function IteratorNext(iterator, value) {
- var result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);
- if (this.Type(result) !== 'Object') {
- throw new $TypeError('iterator next must return an object');
- }
- return result;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete
- IteratorComplete: function IteratorComplete(iterResult) {
- if (this.Type(iterResult) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
- }
- return this.ToBoolean(this.Get(iterResult, 'done'));
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue
- IteratorValue: function IteratorValue(iterResult) {
- if (this.Type(iterResult) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
- }
- return this.Get(iterResult, 'value');
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep
- IteratorStep: function IteratorStep(iterator) {
- var result = this.IteratorNext(iterator);
- var done = this.IteratorComplete(result);
- return done === true ? false : result;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose
- IteratorClose: function IteratorClose(iterator, completion) {
- if (this.Type(iterator) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(iterator) is not Object');
- }
- if (!this.IsCallable(completion)) {
- throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record');
- }
- var completionThunk = completion;
-
- var iteratorReturn = this.GetMethod(iterator, 'return');
-
- if (typeof iteratorReturn === 'undefined') {
- return completionThunk();
- }
-
- var completionRecord;
- try {
- var innerResult = this.Call(iteratorReturn, iterator, []);
- } catch (e) {
- // if we hit here, then "e" is the innerResult completion that needs re-throwing
-
- // if the completion is of type "throw", this will throw.
- completionRecord = completionThunk();
- completionThunk = null; // ensure it's not called twice.
-
- // if not, then return the innerResult completion
- throw e;
- }
- completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does
- completionThunk = null; // ensure it's not called twice.
-
- if (this.Type(innerResult) !== 'Object') {
- throw new $TypeError('iterator .return must return an object');
- }
-
- return completionRecord;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject
- CreateIterResultObject: function CreateIterResultObject(value, done) {
- if (this.Type(done) !== 'Boolean') {
- throw new $TypeError('Assertion failed: Type(done) is not Boolean');
- }
- return {
- value: value,
- done: done
- };
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-regexpexec
- RegExpExec: function RegExpExec(R, S) {
- if (this.Type(R) !== 'Object') {
- throw new $TypeError('R must be an Object');
- }
- if (this.Type(S) !== 'String') {
- throw new $TypeError('S must be a String');
- }
- var exec = this.Get(R, 'exec');
- if (this.IsCallable(exec)) {
- var result = this.Call(exec, R, [S]);
- if (result === null || this.Type(result) === 'Object') {
- return result;
- }
- throw new $TypeError('"exec" method must return `null` or an Object');
- }
- return regexExec(R, S);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate
- ArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {
- if (!this.IsInteger(length) || length < 0) {
- throw new $TypeError('Assertion failed: length must be an integer >= 0');
- }
- var len = length === 0 ? 0 : length;
- var C;
- var isArray = this.IsArray(originalArray);
- if (isArray) {
- C = this.Get(originalArray, 'constructor');
- // TODO: figure out how to make a cross-realm normal Array, a same-realm Array
- // if (this.IsConstructor(C)) {
- // if C is another realm's Array, C = undefined
- // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
- // }
- if (this.Type(C) === 'Object' && hasSymbols && $Symbol.species) {
- C = this.Get(C, $Symbol.species);
- if (C === null) {
- C = void 0;
- }
- }
- }
- if (typeof C === 'undefined') {
- return $Array(len);
- }
- if (!this.IsConstructor(C)) {
- throw new $TypeError('C must be a constructor');
- }
- return new C(len); // this.Construct(C, len);
- },
-
- CreateDataProperty: function CreateDataProperty(O, P, V) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
- }
- var oldDesc = $gOPD(O, P);
- var extensible = oldDesc || this.IsExtensible(O);
- var immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);
- if (immutable || !extensible) {
- return false;
- }
- return DefineOwnProperty(this, O, P, {
- '[[Configurable]]': true,
- '[[Enumerable]]': true,
- '[[Value]]': V,
- '[[Writable]]': true
- });
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow
- CreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
- }
- var success = this.CreateDataProperty(O, P, V);
- if (!success) {
- throw new $TypeError('unable to create data property');
- }
- return success;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate
- ObjectCreate: function ObjectCreate(proto, internalSlotsList) {
- if (proto !== null && this.Type(proto) !== 'Object') {
- throw new $TypeError('Assertion failed: proto must be null or an object');
- }
- var slots = arguments.length < 2 ? [] : internalSlotsList;
- if (slots.length > 0) {
- throw new $SyntaxError('es-abstract does not yet support internal slots');
- }
-
- if (proto === null && !$ObjectCreate) {
- throw new $SyntaxError('native Object.create support is required to create null objects');
- }
-
- return $ObjectCreate(proto);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex
- AdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {
- if (this.Type(S) !== 'String') {
- throw new $TypeError('S must be a String');
- }
- if (!this.IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {
- throw new $TypeError('Assertion failed: length must be an integer >= 0 and <= 2**53');
- }
- if (this.Type(unicode) !== 'Boolean') {
- throw new $TypeError('Assertion failed: unicode must be a Boolean');
- }
- if (!unicode) {
- return index + 1;
- }
- var length = S.length;
- if ((index + 1) >= length) {
- return index + 1;
- }
-
- var first = $charCodeAt(S, index);
- if (first < 0xD800 || first > 0xDBFF) {
- return index + 1;
- }
-
- var second = $charCodeAt(S, index + 1);
- if (second < 0xDC00 || second > 0xDFFF) {
- return index + 1;
- }
-
- return index + 2;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty
- CreateMethodProperty: function CreateMethodProperty(O, P, V) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
-
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
- }
-
- var newDesc = {
- '[[Configurable]]': true,
- '[[Enumerable]]': false,
- '[[Value]]': V,
- '[[Writable]]': true
- };
- return DefineOwnProperty(this, O, P, newDesc);
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow
- DefinePropertyOrThrow: function DefinePropertyOrThrow(O, P, desc) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
-
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
- }
-
- var Desc = isPropertyDescriptor(this, desc) ? desc : this.ToPropertyDescriptor(desc);
- if (!isPropertyDescriptor(this, Desc)) {
- throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');
- }
-
- return DefineOwnProperty(this, O, P, Desc);
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow
- DeletePropertyOrThrow: function DeletePropertyOrThrow(O, P) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
-
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
- }
-
- var success = delete O[P];
- if (!success) {
- throw new TypeError('Attempt to delete property failed.');
- }
- return success;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-enumerableownnames
- EnumerableOwnNames: function EnumerableOwnNames(O) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
-
- return keys(O);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object
- thisNumberValue: function thisNumberValue(value) {
- if (this.Type(value) === 'Number') {
- return value;
- }
-
- return $NumberValueOf(value);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object
- thisBooleanValue: function thisBooleanValue(value) {
- if (this.Type(value) === 'Boolean') {
- return value;
- }
-
- return $BooleanValueOf(value);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object
- thisStringValue: function thisStringValue(value) {
- if (this.Type(value) === 'String') {
- return value;
- }
-
- return $StringValueOf(value);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object
- thisTimeValue: function thisTimeValue(value) {
- return $DateValueOf(value);
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-setintegritylevel
- SetIntegrityLevel: function SetIntegrityLevel(O, level) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- if (level !== 'sealed' && level !== 'frozen') {
- throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`');
- }
- if (!$preventExtensions) {
- throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support');
- }
- var status = $preventExtensions(O);
- if (!status) {
- return false;
- }
- if (!$gOPN) {
- throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support');
- }
- var theKeys = $gOPN(O);
- var ES = this;
- if (level === 'sealed') {
- forEach(theKeys, function (k) {
- ES.DefinePropertyOrThrow(O, k, { configurable: false });
- });
- } else if (level === 'frozen') {
- forEach(theKeys, function (k) {
- var currentDesc = $gOPD(O, k);
- if (typeof currentDesc !== 'undefined') {
- var desc;
- if (ES.IsAccessorDescriptor(ES.ToPropertyDescriptor(currentDesc))) {
- desc = { configurable: false };
- } else {
- desc = { configurable: false, writable: false };
- }
- ES.DefinePropertyOrThrow(O, k, desc);
- }
- });
- }
- return true;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-testintegritylevel
- TestIntegrityLevel: function TestIntegrityLevel(O, level) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- if (level !== 'sealed' && level !== 'frozen') {
- throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`');
- }
- var status = this.IsExtensible(O);
- if (status) {
- return false;
- }
- var theKeys = $gOPN(O);
- var ES = this;
- return theKeys.length === 0 || every(theKeys, function (k) {
- var currentDesc = $gOPD(O, k);
- if (typeof currentDesc !== 'undefined') {
- if (currentDesc.configurable) {
- return false;
- }
- if (level === 'frozen' && ES.IsDataDescriptor(ES.ToPropertyDescriptor(currentDesc)) && currentDesc.writable) {
- return false;
- }
- }
- return true;
- });
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance
- OrdinaryHasInstance: function OrdinaryHasInstance(C, O) {
- if (this.IsCallable(C) === false) {
- return false;
- }
- if (this.Type(O) !== 'Object') {
- return false;
- }
- var P = this.Get(C, 'prototype');
- if (this.Type(P) !== 'Object') {
- throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');
- }
- return O instanceof C;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty
- OrdinaryHasProperty: function OrdinaryHasProperty(O, P) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: P must be a Property Key');
- }
- return P in O;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-instanceofoperator
- InstanceofOperator: function InstanceofOperator(O, C) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- var instOfHandler = hasSymbols && $Symbol.hasInstance ? this.GetMethod(C, $Symbol.hasInstance) : void 0;
- if (typeof instOfHandler !== 'undefined') {
- return this.ToBoolean(this.Call(instOfHandler, C, [O]));
- }
- if (!this.IsCallable(C)) {
- throw new $TypeError('`C` is not Callable');
- }
- return this.OrdinaryHasInstance(C, O);
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-ispromise
- IsPromise: function IsPromise(x) {
- if (this.Type(x) !== 'Object') {
- return false;
- }
- if (!$PromiseThen) { // Promises are not supported
- return false;
- }
- try {
- $PromiseThen(x); // throws if not a promise
- } catch (e) {
- return false;
- }
- return true;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison
- 'Abstract Equality Comparison': function AbstractEqualityComparison(x, y) {
- var xType = this.Type(x);
- var yType = this.Type(y);
- if (xType === yType) {
- return x === y; // ES6+ specified this shortcut anyways.
- }
- if (x == null && y == null) {
- return true;
- }
- if (xType === 'Number' && yType === 'String') {
- return this['Abstract Equality Comparison'](x, this.ToNumber(y));
- }
- if (xType === 'String' && yType === 'Number') {
- return this['Abstract Equality Comparison'](this.ToNumber(x), y);
- }
- if (xType === 'Boolean') {
- return this['Abstract Equality Comparison'](this.ToNumber(x), y);
- }
- if (yType === 'Boolean') {
- return this['Abstract Equality Comparison'](x, this.ToNumber(y));
- }
- if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') {
- return this['Abstract Equality Comparison'](x, this.ToPrimitive(y));
- }
- if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) {
- return this['Abstract Equality Comparison'](this.ToPrimitive(x), y);
- }
- return false;
- },
-
- // eslint-disable-next-line max-lines-per-function, max-statements, id-length, max-params
- ValidateAndApplyPropertyDescriptor: function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) {
- // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic.
- var oType = this.Type(O);
- if (oType !== 'Undefined' && oType !== 'Object') {
- throw new $TypeError('Assertion failed: O must be undefined or an Object');
- }
- if (this.Type(extensible) !== 'Boolean') {
- throw new $TypeError('Assertion failed: extensible must be a Boolean');
- }
- if (!isPropertyDescriptor(this, Desc)) {
- throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
- }
- if (this.Type(current) !== 'Undefined' && !isPropertyDescriptor(this, current)) {
- throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined');
- }
- if (oType !== 'Undefined' && !this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key');
- }
- if (this.Type(current) === 'Undefined') {
- if (!extensible) {
- return false;
- }
- if (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {
- if (oType !== 'Undefined') {
- DefineOwnProperty(this, O, P, {
- '[[Configurable]]': Desc['[[Configurable]]'],
- '[[Enumerable]]': Desc['[[Enumerable]]'],
- '[[Value]]': Desc['[[Value]]'],
- '[[Writable]]': Desc['[[Writable]]']
- });
- }
- } else {
- if (!this.IsAccessorDescriptor(Desc)) {
- throw new $TypeError('Assertion failed: Desc is not an accessor descriptor');
- }
- if (oType !== 'Undefined') {
- return DefineOwnProperty(this, O, P, Desc);
- }
- }
- return true;
- }
- if (this.IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) {
- return true;
- }
- if (isSamePropertyDescriptor(this, Desc, current)) {
- return true; // removed by ES2017, but should still be correct
- }
- // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor
- if (!current['[[Configurable]]']) {
- if (Desc['[[Configurable]]']) {
- return false;
- }
- if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) {
- return false;
- }
- }
- if (this.IsGenericDescriptor(Desc)) {
- // no further validation is required.
- } else if (this.IsDataDescriptor(current) !== this.IsDataDescriptor(Desc)) {
- if (!current['[[Configurable]]']) {
- return false;
- }
- if (this.IsDataDescriptor(current)) {
- if (oType !== 'Undefined') {
- DefineOwnProperty(this, O, P, {
- '[[Configurable]]': current['[[Configurable]]'],
- '[[Enumerable]]': current['[[Enumerable]]'],
- '[[Get]]': undefined
- });
- }
- } else if (oType !== 'Undefined') {
- DefineOwnProperty(this, O, P, {
- '[[Configurable]]': current['[[Configurable]]'],
- '[[Enumerable]]': current['[[Enumerable]]'],
- '[[Value]]': undefined
- });
- }
- } else if (this.IsDataDescriptor(current) && this.IsDataDescriptor(Desc)) {
- if (!current['[[Configurable]]'] && !current['[[Writable]]']) {
- if ('[[Writable]]' in Desc && Desc['[[Writable]]']) {
- return false;
- }
- if ('[[Value]]' in Desc && !this.SameValue(Desc['[[Value]]'], current['[[Value]]'])) {
- return false;
- }
- return true;
- }
- } else if (this.IsAccessorDescriptor(current) && this.IsAccessorDescriptor(Desc)) {
- if (!current['[[Configurable]]']) {
- if ('[[Set]]' in Desc && !this.SameValue(Desc['[[Set]]'], current['[[Set]]'])) {
- return false;
- }
- if ('[[Get]]' in Desc && !this.SameValue(Desc['[[Get]]'], current['[[Get]]'])) {
- return false;
- }
- return true;
- }
- } else {
- throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.');
- }
- if (oType !== 'Undefined') {
- return DefineOwnProperty(this, O, P, Desc);
- }
- return true;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty
- OrdinaryDefineOwnProperty: function OrdinaryDefineOwnProperty(O, P, Desc) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: O must be an Object');
- }
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: P must be a Property Key');
- }
- if (!isPropertyDescriptor(this, Desc)) {
- throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
- }
- var desc = $gOPD(O, P);
- var current = desc && this.ToPropertyDescriptor(desc);
- var extensible = this.IsExtensible(O);
- return this.ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current);
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty
- OrdinaryGetOwnProperty: function OrdinaryGetOwnProperty(O, P) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: O must be an Object');
- }
- if (!this.IsPropertyKey(P)) {
- throw new $TypeError('Assertion failed: P must be a Property Key');
- }
- if (!has(O, P)) {
- return void 0;
- }
- if (!$gOPD) {
- // ES3 fallback
- var arrayLength = this.IsArray(O) && P === 'length';
- var regexLastIndex = this.IsRegExp(O) && P === 'lastIndex';
- return {
- '[[Configurable]]': !(arrayLength || regexLastIndex),
- '[[Enumerable]]': $isEnumerable(O, P),
- '[[Value]]': O[P],
- '[[Writable]]': true
- };
- }
- return this.ToPropertyDescriptor($gOPD(O, P));
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-arraycreate
- ArrayCreate: function ArrayCreate(length) {
- if (!this.IsInteger(length) || length < 0) {
- throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0');
- }
- if (length > MAX_ARRAY_LENGTH) {
- throw new $RangeError('length is greater than (2**32 - 1)');
- }
- var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype;
- var A = []; // steps 5 - 7, and 9
- if (proto !== $ArrayPrototype) { // step 8
- if (!$setProto) {
- throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]');
- }
- $setProto(A, proto);
- }
- if (length !== 0) { // bypasses the need for step 2
- A.length = length;
- }
- /* step 10, the above as a shortcut for the below
- this.OrdinaryDefineOwnProperty(A, 'length', {
- '[[Configurable]]': false,
- '[[Enumerable]]': false,
- '[[Value]]': length,
- '[[Writable]]': true
- });
- */
- return A;
- },
-
- // eslint-disable-next-line max-statements, max-lines-per-function
- ArraySetLength: function ArraySetLength(A, Desc) {
- if (!this.IsArray(A)) {
- throw new $TypeError('Assertion failed: A must be an Array');
- }
- if (!isPropertyDescriptor(this, Desc)) {
- throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
- }
- if (!('[[Value]]' in Desc)) {
- return this.OrdinaryDefineOwnProperty(A, 'length', Desc);
- }
- var newLenDesc = assign({}, Desc);
- var newLen = this.ToUint32(Desc['[[Value]]']);
- var numberLen = this.ToNumber(Desc['[[Value]]']);
- if (newLen !== numberLen) {
- throw new $RangeError('Invalid array length');
- }
- newLenDesc['[[Value]]'] = newLen;
- var oldLenDesc = this.OrdinaryGetOwnProperty(A, 'length');
- if (!this.IsDataDescriptor(oldLenDesc)) {
- throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`');
- }
- var oldLen = oldLenDesc['[[Value]]'];
- if (newLen >= oldLen) {
- return this.OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
- }
- if (!oldLenDesc['[[Writable]]']) {
- return false;
- }
- var newWritable;
- if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) {
- newWritable = true;
- } else {
- newWritable = false;
- newLenDesc['[[Writable]]'] = true;
- }
- var succeeded = this.OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
- if (!succeeded) {
- return false;
- }
- while (newLen < oldLen) {
- oldLen -= 1;
- var deleteSucceeded = delete A[this.ToString(oldLen)];
- if (!deleteSucceeded) {
- newLenDesc['[[Value]]'] = oldLen + 1;
- if (!newWritable) {
- newLenDesc['[[Writable]]'] = false;
- this.OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
- return false;
- }
- }
- }
- if (!newWritable) {
- return this.OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false });
- }
- return true;
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-createhtml
- CreateHTML: function CreateHTML(string, tag, attribute, value) {
- if (this.Type(tag) !== 'String' || this.Type(attribute) !== 'String') {
- throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings');
- }
- var str = this.RequireObjectCoercible(string);
- var S = this.ToString(str);
- var p1 = '<' + tag;
- if (attribute !== '') {
- var V = this.ToString(value);
- var escapedV = $replace(V, /\x22/g, '"');
- p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22';
- }
- return p1 + '>' + S + '' + tag + '>';
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys
- GetOwnPropertyKeys: function GetOwnPropertyKeys(O, Type) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: Type(O) is not Object');
- }
- if (Type === 'Symbol') {
- return hasSymbols && $gOPS ? $gOPS(O) : [];
- }
- if (Type === 'String') {
- if (!$gOPN) {
- return keys(O);
- }
- return $gOPN(O);
- }
- throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`');
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring
- SymbolDescriptiveString: function SymbolDescriptiveString(sym) {
- if (this.Type(sym) !== 'Symbol') {
- throw new $TypeError('Assertion failed: `sym` must be a Symbol');
- }
- return $SymbolToString(sym);
- },
-
- // https://www.ecma-international.org/ecma-262/6.0/#sec-getsubstitution
- // eslint-disable-next-line max-statements, max-params, max-lines-per-function
- GetSubstitution: function GetSubstitution(matched, str, position, captures, replacement) {
- if (this.Type(matched) !== 'String') {
- throw new $TypeError('Assertion failed: `matched` must be a String');
- }
- var matchLength = matched.length;
-
- if (this.Type(str) !== 'String') {
- throw new $TypeError('Assertion failed: `str` must be a String');
- }
- var stringLength = str.length;
-
- if (!this.IsInteger(position) || position < 0 || position > stringLength) {
- throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position));
- }
-
- var ES = this;
- var isStringOrHole = function (capture, index, arr) { return ES.Type(capture) === 'String' || !(index in arr); };
- if (!this.IsArray(captures) || !every(captures, isStringOrHole)) {
- throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures));
- }
-
- if (this.Type(replacement) !== 'String') {
- throw new $TypeError('Assertion failed: `replacement` must be a String');
- }
-
- var tailPos = position + matchLength;
- var m = captures.length;
-
- var result = '';
- for (var i = 0; i < replacement.length; i += 1) {
- // if this is a $, and it's not the end of the replacement
- var current = replacement[i];
- var isLast = (i + 1) >= replacement.length;
- var nextIsLast = (i + 2) >= replacement.length;
- if (current === '$' && !isLast) {
- var next = replacement[i + 1];
- if (next === '$') {
- result += '$';
- i += 1;
- } else if (next === '&') {
- result += matched;
- i += 1;
- } else if (next === '`') {
- result += position === 0 ? '' : strSlice(str, 0, position - 1);
- i += 1;
- } else if (next === "'") {
- result += tailPos >= stringLength ? '' : strSlice(str, tailPos);
- i += 1;
- } else {
- var nextNext = nextIsLast ? null : replacement[i + 2];
- if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) {
- // $1 through $9, and not followed by a digit
- var n = parseInteger(next, 10);
- // if (n > m, impl-defined)
- result += (n <= m && this.Type(captures[n - 1]) === 'Undefined') ? '' : captures[n - 1];
- i += 1;
- } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) {
- // $00 through $99
- var nn = next + nextNext;
- var nnI = parseInteger(nn, 10) - 1;
- // if nn === '00' or nn > m, impl-defined
- result += (nn <= m && this.Type(captures[nnI]) === 'Undefined') ? '' : captures[nnI];
- i += 2;
- } else {
- result += '$';
- }
- }
- } else {
- // the final $, or else not a $
- result += replacement[i];
- }
- }
- return result;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-todatestring
- ToDateString: function ToDateString(tv) {
- if (this.Type(tv) !== 'Number') {
- throw new $TypeError('Assertion failed: `tv` must be a Number');
- }
- if ($isNaN(tv)) {
- return 'Invalid Date';
- }
- return $Date(tv);
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike
- CreateListFromArrayLike: function CreateListFromArrayLike(obj) {
- var elementTypes = arguments.length > 1
- ? arguments[1]
- : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object'];
-
- if (this.Type(obj) !== 'Object') {
- throw new $TypeError('Assertion failed: `obj` must be an Object');
- }
- if (!this.IsArray(elementTypes)) {
- throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array');
- }
- var len = this.ToLength(this.Get(obj, 'length'));
- var list = [];
- var index = 0;
- while (index < len) {
- var indexName = this.ToString(index);
- var next = this.Get(obj, indexName);
- var nextType = this.Type(next);
- if ($indexOf(elementTypes, nextType) < 0) {
- throw new $TypeError('item type ' + nextType + ' is not a valid elementType');
- }
- $push(list, next);
- index += 1;
- }
- return list;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor
- GetPrototypeFromConstructor: function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) {
- var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic
- if (!this.IsConstructor(constructor)) {
- throw new $TypeError('Assertion failed: `constructor` must be a constructor');
- }
- var proto = this.Get(constructor, 'prototype');
- if (this.Type(proto) !== 'Object') {
- if (!(constructor instanceof $Function)) {
- // ignore other realms, for now
- throw new $TypeError('cross-realm constructors not currently supported');
- }
- proto = intrinsic;
- }
- return proto;
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname
- SetFunctionName: function SetFunctionName(F, name) {
- if (typeof F !== 'function') {
- throw new $TypeError('Assertion failed: `F` must be a function');
- }
- if (!this.IsExtensible(F) || has(F, 'name')) {
- throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property');
- }
- var nameType = this.Type(name);
- if (nameType !== 'Symbol' && nameType !== 'String') {
- throw new $TypeError('Assertion failed: `name` must be a Symbol or a String');
- }
- if (nameType === 'Symbol') {
- var description = getSymbolDescription(name);
- name = typeof description === 'undefined' ? '' : '[' + description + ']';
- }
- if (arguments.length > 2) {
- var prefix = arguments[2];
- name = prefix + ' ' + name;
- }
- return this.DefinePropertyOrThrow(F, 'name', {
- '[[Value]]': name,
- '[[Writable]]': false,
- '[[Enumerable]]': false,
- '[[Configurable]]': true
- });
- }
-});
-
-delete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible
-
-module.exports = ES6;
diff --git a/node_modules/es-abstract/es2016.js b/node_modules/es-abstract/es2016.js
deleted file mode 100644
index 9b5f9d4..0000000
--- a/node_modules/es-abstract/es2016.js
+++ /dev/null
@@ -1,98 +0,0 @@
-'use strict';
-
-var ES2015 = require('./es2015');
-var GetIntrinsic = require('./GetIntrinsic');
-var assign = require('./helpers/assign');
-var $setProto = require('./helpers/setProto');
-
-var callBound = require('./helpers/callBound');
-var getIteratorMethod = require('./helpers/getIteratorMethod');
-
-var $TypeError = GetIntrinsic('%TypeError%');
-var $arrayPush = callBound('Array.prototype.push');
-var $getProto = require('./helpers/getProto');
-
-var ES2016 = assign(assign({}, ES2015), {
- // https://www.ecma-international.org/ecma-262/7.0/#sec-samevaluenonnumber
- SameValueNonNumber: function SameValueNonNumber(x, y) {
- if (typeof x === 'number' || typeof x !== typeof y) {
- throw new TypeError('SameValueNonNumber requires two non-number values of the same type.');
- }
- return this.SameValue(x, y);
- },
-
- // https://www.ecma-international.org/ecma-262/7.0/#sec-iterabletoarraylike
- IterableToArrayLike: function IterableToArrayLike(items) {
- var usingIterator = getIteratorMethod(this, items);
- if (typeof usingIterator !== 'undefined') {
- var iterator = this.GetIterator(items, usingIterator);
- var values = [];
- var next = true;
- while (next) {
- next = this.IteratorStep(iterator);
- if (next) {
- var nextValue = this.IteratorValue(next);
- $arrayPush(values, nextValue);
- }
- }
- return values;
- }
-
- return this.ToObject(items);
- },
-
- // https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetprototypeof
- OrdinaryGetPrototypeOf: function (O) {
- if (this.Type(O) !== 'Object') {
- throw new $TypeError('Assertion failed: O must be an Object');
- }
- if (!$getProto) {
- throw new $TypeError('This environment does not support fetching prototypes.');
- }
- return $getProto(O);
- },
-
- // https://ecma-international.org/ecma-262/7.0/#sec-ordinarysetprototypeof
- OrdinarySetPrototypeOf: function (O, V) {
- if (this.Type(V) !== 'Object' && this.Type(V) !== 'Null') {
- throw new $TypeError('Assertion failed: V must be Object or Null');
- }
- /*
- var extensible = this.IsExtensible(O);
- var current = this.OrdinaryGetPrototypeOf(O);
- if (this.SameValue(V, current)) {
- return true;
- }
- if (!extensible) {
- return false;
- }
- */
- try {
- $setProto(O, V);
- } catch (e) {
- return false;
- }
- return this.OrdinaryGetPrototypeOf(O) === V;
- /*
- var p = V;
- var done = false;
- while (!done) {
- if (p === null) {
- done = true;
- } else if (this.SameValue(p, O)) {
- return false;
- } else {
- if (wat) {
- done = true;
- } else {
- p = p.[[Prototype]];
- }
- }
- }
- O.[[Prototype]] = V;
- return true;
- */
- }
-});
-
-module.exports = ES2016;
diff --git a/node_modules/es-abstract/es2017.js b/node_modules/es-abstract/es2017.js
deleted file mode 100644
index 9803990..0000000
--- a/node_modules/es-abstract/es2017.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('./GetIntrinsic');
-
-var ES2016 = require('./es2016');
-var assign = require('./helpers/assign');
-var forEach = require('./helpers/forEach');
-var callBind = require('./helpers/callBind');
-
-var $TypeError = GetIntrinsic('%TypeError%');
-var callBound = require('./helpers/callBound');
-var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%'));
-var $arrayPush = callBound('Array.prototype.push');
-
-var ES2017 = assign(assign({}, ES2016), {
- ToIndex: function ToIndex(value) {
- if (typeof value === 'undefined') {
- return 0;
- }
- var integerIndex = this.ToInteger(value);
- if (integerIndex < 0) {
- throw new RangeError('index must be >= 0');
- }
- var index = this.ToLength(integerIndex);
- if (!this.SameValueZero(integerIndex, index)) {
- throw new RangeError('index must be >= 0 and < 2 ** 53 - 1');
- }
- return index;
- },
-
- // https://www.ecma-international.org/ecma-262/8.0/#sec-enumerableownproperties
- EnumerableOwnProperties: function EnumerableOwnProperties(O, kind) {
- var keys = ES2016.EnumerableOwnNames(O);
- if (kind === 'key') {
- return keys;
- }
- if (kind === 'value' || kind === 'key+value') {
- var results = [];
- forEach(keys, function (key) {
- if ($isEnumerable(O, key)) {
- $pushApply(results, [
- kind === 'value' ? O[key] : [key, O[key]]
- ]);
- }
- });
- return results;
- }
- throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind);
- },
-
- // https://www.ecma-international.org/ecma-262/8.0/#sec-iterabletolist
- IterableToList: function IterableToList(items, method) {
- var iterator = this.GetIterator(items, method);
- var values = [];
- var next = true;
- while (next) {
- next = this.IteratorStep(iterator);
- if (next) {
- var nextValue = this.IteratorValue(next);
- $arrayPush(values, nextValue);
- }
- }
- return values;
- }
-});
-
-delete ES2017.EnumerableOwnNames; // replaced with EnumerableOwnProperties
-delete ES2017.IterableToArrayLike; // replaced with IterableToList
-
-module.exports = ES2017;
diff --git a/node_modules/es-abstract/es2018.js b/node_modules/es-abstract/es2018.js
deleted file mode 100644
index 2de7fa7..0000000
--- a/node_modules/es-abstract/es2018.js
+++ /dev/null
@@ -1,289 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('./GetIntrinsic');
-
-var keys = require('object-keys');
-var inspect = require('object-inspect');
-
-var ES2017 = require('./es2017');
-var assign = require('./helpers/assign');
-var forEach = require('./helpers/forEach');
-var callBind = require('./helpers/callBind');
-var every = require('./helpers/every');
-var isPrefixOf = require('./helpers/isPrefixOf');
-
-var $String = GetIntrinsic('%String%');
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var callBound = require('./helpers/callBound');
-var regexTester = require('./helpers/regexTester');
-var $isNaN = require('./helpers/isNaN');
-
-var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true);
-// var $charAt = callBound('String.prototype.charAt');
-var $strSlice = callBound('String.prototype.slice');
-var $indexOf = callBound('String.prototype.indexOf');
-var $parseInt = parseInt;
-
-var isDigit = regexTester(/^[0-9]$/);
-
-var $PromiseResolve = callBound('Promise.resolve', true);
-
-var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%'));
-var $gOPS = $SymbolValueOf ? GetIntrinsic('%Object.getOwnPropertySymbols%') : null;
-
-var padTimeComponent = function padTimeComponent(c, count) {
- return $strSlice('00' + c, -(count || 2));
-};
-
-var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
-
-var OwnPropertyKeys = function OwnPropertyKeys(ES, source) {
- var ownKeys = keys(source);
- if ($gOPS) {
- $pushApply(ownKeys, $gOPS(source));
- }
- return ownKeys;
-};
-
-var ES2018 = assign(assign({}, ES2017), {
- EnumerableOwnPropertyNames: ES2017.EnumerableOwnProperties,
-
- // https://ecma-international.org/ecma-262/9.0/#sec-thissymbolvalue
- thisSymbolValue: function thisSymbolValue(value) {
- if (!$SymbolValueOf) {
- throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object');
- }
- if (this.Type(value) === 'Symbol') {
- return value;
- }
- return $SymbolValueOf(value);
- },
-
- // https://www.ecma-international.org/ecma-262/9.0/#sec-isstringprefix
- IsStringPrefix: function IsStringPrefix(p, q) {
- if (this.Type(p) !== 'String') {
- throw new TypeError('Assertion failed: "p" must be a String');
- }
-
- if (this.Type(q) !== 'String') {
- throw new TypeError('Assertion failed: "q" must be a String');
- }
-
- return isPrefixOf(p, q);
- /*
- if (p === q || p === '') {
- return true;
- }
-
- var pLength = p.length;
- var qLength = q.length;
- if (pLength >= qLength) {
- return false;
- }
-
- // assert: pLength < qLength
-
- for (var i = 0; i < pLength; i += 1) {
- if ($charAt(p, i) !== $charAt(q, i)) {
- return false;
- }
- }
- return true;
- */
- },
-
- // https://www.ecma-international.org/ecma-262/9.0/#sec-tostring-applied-to-the-number-type
- NumberToString: function NumberToString(m) {
- if (this.Type(m) !== 'Number') {
- throw new TypeError('Assertion failed: "m" must be a String');
- }
-
- return $String(m);
- },
-
- // https://www.ecma-international.org/ecma-262/9.0/#sec-copydataproperties
- CopyDataProperties: function CopyDataProperties(target, source, excludedItems) {
- if (this.Type(target) !== 'Object') {
- throw new TypeError('Assertion failed: "target" must be an Object');
- }
-
- if (!this.IsArray(excludedItems)) {
- throw new TypeError('Assertion failed: "excludedItems" must be a List of Property Keys');
- }
- for (var i = 0; i < excludedItems.length; i += 1) {
- if (!this.IsPropertyKey(excludedItems[i])) {
- throw new TypeError('Assertion failed: "excludedItems" must be a List of Property Keys');
- }
- }
-
- if (typeof source === 'undefined' || source === null) {
- return target;
- }
-
- var ES = this;
-
- var fromObj = ES.ToObject(source);
-
- var sourceKeys = OwnPropertyKeys(ES, fromObj);
- forEach(sourceKeys, function (nextKey) {
- var excluded = false;
-
- forEach(excludedItems, function (e) {
- if (ES.SameValue(e, nextKey) === true) {
- excluded = true;
- }
- });
-
- var enumerable = $isEnumerable(fromObj, nextKey) || (
- // this is to handle string keys being non-enumerable in older engines
- typeof source === 'string'
- && nextKey >= 0
- && ES.IsInteger(ES.ToNumber(nextKey))
- );
- if (excluded === false && enumerable) {
- var propValue = ES.Get(fromObj, nextKey);
- ES.CreateDataProperty(target, nextKey, propValue);
- }
- });
-
- return target;
- },
-
- // https://ecma-international.org/ecma-262/9.0/#sec-promise-resolve
- PromiseResolve: function PromiseResolve(C, x) {
- if (!$PromiseResolve) {
- throw new SyntaxError('This environment does not support Promises.');
- }
- return $PromiseResolve(C, x);
- },
-
- // http://www.ecma-international.org/ecma-262/9.0/#sec-getsubstitution
- // eslint-disable-next-line max-statements, max-params, max-lines-per-function
- GetSubstitution: function GetSubstitution(matched, str, position, captures, namedCaptures, replacement) {
- if (this.Type(matched) !== 'String') {
- throw new $TypeError('Assertion failed: `matched` must be a String');
- }
- var matchLength = matched.length;
-
- if (this.Type(str) !== 'String') {
- throw new $TypeError('Assertion failed: `str` must be a String');
- }
- var stringLength = str.length;
-
- if (!this.IsInteger(position) || position < 0 || position > stringLength) {
- throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position));
- }
-
- var ES = this;
- var isStringOrHole = function (capture, index, arr) { return ES.Type(capture) === 'String' || !(index in arr); };
- if (!this.IsArray(captures) || !every(captures, isStringOrHole)) {
- throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures));
- }
-
- if (this.Type(replacement) !== 'String') {
- throw new $TypeError('Assertion failed: `replacement` must be a String');
- }
-
- var tailPos = position + matchLength;
- var m = captures.length;
- if (this.Type(namedCaptures) !== 'Undefined') {
- namedCaptures = this.ToObject(namedCaptures); // eslint-disable-line no-param-reassign
- }
-
- var result = '';
- for (var i = 0; i < replacement.length; i += 1) {
- // if this is a $, and it's not the end of the replacement
- var current = replacement[i];
- var isLast = (i + 1) >= replacement.length;
- var nextIsLast = (i + 2) >= replacement.length;
- if (current === '$' && !isLast) {
- var next = replacement[i + 1];
- if (next === '$') {
- result += '$';
- i += 1;
- } else if (next === '&') {
- result += matched;
- i += 1;
- } else if (next === '`') {
- result += position === 0 ? '' : $strSlice(str, 0, position - 1);
- i += 1;
- } else if (next === "'") {
- result += tailPos >= stringLength ? '' : $strSlice(str, tailPos);
- i += 1;
- } else {
- var nextNext = nextIsLast ? null : replacement[i + 2];
- if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) {
- // $1 through $9, and not followed by a digit
- var n = $parseInt(next, 10);
- // if (n > m, impl-defined)
- result += (n <= m && this.Type(captures[n - 1]) === 'Undefined') ? '' : captures[n - 1];
- i += 1;
- } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) {
- // $00 through $99
- var nn = next + nextNext;
- var nnI = $parseInt(nn, 10) - 1;
- // if nn === '00' or nn > m, impl-defined
- result += (nn <= m && this.Type(captures[nnI]) === 'Undefined') ? '' : captures[nnI];
- i += 2;
- } else if (next === '<') {
- // eslint-disable-next-line max-depth
- if (this.Type(namedCaptures) === 'Undefined') {
- result += '$<';
- i += 2;
- } else {
- var endIndex = $indexOf(replacement, '>', i);
- // eslint-disable-next-line max-depth
- if (endIndex > -1) {
- var groupName = $strSlice(replacement, i, endIndex);
- var capture = this.Get(namedCaptures, groupName);
- // eslint-disable-next-line max-depth
- if (this.Type(capture) !== 'Undefined') {
- result += this.ToString(capture);
- }
- i += '$<' + groupName + '>'.length;
- }
- }
- } else {
- result += '$';
- }
- }
- } else {
- // the final $, or else not a $
- result += replacement[i];
- }
- }
- return result;
- },
-
- // https://www.ecma-international.org/ecma-262/9.0/#sec-datestring
- DateString: function DateString(tv) {
- if (this.Type(tv) !== 'Number' || $isNaN(tv)) {
- throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number');
- }
- var weekday = weekdays[this.WeekDay(tv)];
- var month = months[this.MonthFromTime(tv)];
- var day = padTimeComponent(this.DateFromTime(tv));
- var year = padTimeComponent(this.YearFromTime(tv), 4);
- return weekday + '\x20' + month + '\x20' + day + '\x20' + year;
- },
-
- // https://www.ecma-international.org/ecma-262/9.0/#sec-timestring
- TimeString: function TimeString(tv) {
- if (this.Type(tv) !== 'Number' || $isNaN(tv)) {
- throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number');
- }
- var hour = this.HourFromTime(tv);
- var minute = this.MinFromTime(tv);
- var second = this.SecFromTime(tv);
- return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT';
- }
-});
-
-delete ES2018.EnumerableOwnProperties; // replaced with EnumerableOwnPropertyNames
-
-delete ES2018.IsPropertyDescriptor; // not an actual abstract operation
-
-module.exports = ES2018;
diff --git a/node_modules/es-abstract/es2019.js b/node_modules/es-abstract/es2019.js
deleted file mode 100644
index 7feaf95..0000000
--- a/node_modules/es-abstract/es2019.js
+++ /dev/null
@@ -1,111 +0,0 @@
-'use strict';
-
-var trimStart = require('string.prototype.trimleft');
-var trimEnd = require('string.prototype.trimright');
-var inspect = require('object-inspect');
-
-var ES2018 = require('./es2018');
-var assign = require('./helpers/assign');
-var MAX_SAFE_INTEGER = require('./helpers/maxSafeInteger');
-
-var GetIntrinsic = require('./GetIntrinsic');
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var ES2019 = assign(assign({}, ES2018), {
- // https://tc39.es/ecma262/#sec-add-entries-from-iterable
- AddEntriesFromIterable: function AddEntriesFromIterable(target, iterable, adder) {
- if (!this.IsCallable(adder)) {
- throw new $TypeError('Assertion failed: `adder` is not callable');
- }
- if (iterable == null) {
- throw new $TypeError('Assertion failed: `iterable` is present, and not nullish');
- }
- var iteratorRecord = this.GetIterator(iterable);
- while (true) { // eslint-disable-line no-constant-condition
- var next = this.IteratorStep(iteratorRecord);
- if (!next) {
- return target;
- }
- var nextItem = this.IteratorValue(next);
- if (this.Type(nextItem) !== 'Object') {
- var error = new $TypeError('iterator next must return an Object, got ' + inspect(nextItem));
- return this.IteratorClose(
- iteratorRecord,
- function () { throw error; } // eslint-disable-line no-loop-func
- );
- }
- try {
- var k = this.Get(nextItem, '0');
- var v = this.Get(nextItem, '1');
- this.Call(adder, target, [k, v]);
- } catch (e) {
- return this.IteratorClose(
- iteratorRecord,
- function () { throw e; }
- );
- }
- }
- },
-
- // https://ecma-international.org/ecma-262/10.0/#sec-flattenintoarray
- // eslint-disable-next-line max-params, max-statements
- FlattenIntoArray: function FlattenIntoArray(target, source, sourceLen, start, depth) {
- var mapperFunction;
- if (arguments.length > 5) {
- mapperFunction = arguments[5];
- }
-
- var targetIndex = start;
- var sourceIndex = 0;
- while (sourceIndex < sourceLen) {
- var P = this.ToString(sourceIndex);
- var exists = this.HasProperty(source, P);
- if (exists === true) {
- var element = this.Get(source, P);
- if (typeof mapperFunction !== 'undefined') {
- if (arguments.length <= 6) {
- throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided');
- }
- element = this.Call(mapperFunction, arguments[6], [element, sourceIndex, source]);
- }
- var shouldFlatten = false;
- if (depth > 0) {
- shouldFlatten = this.IsArray(element);
- }
- if (shouldFlatten) {
- var elementLen = this.ToLength(this.Get(element, 'length'));
- targetIndex = this.FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1);
- } else {
- if (targetIndex >= MAX_SAFE_INTEGER) {
- throw new $TypeError('index too large');
- }
- this.CreateDataPropertyOrThrow(target, this.ToString(targetIndex), element);
- targetIndex += 1;
- }
- }
- sourceIndex += 1;
- }
-
- return targetIndex;
- },
-
- // https://ecma-international.org/ecma-262/10.0/#sec-trimstring
- TrimString: function TrimString(string, where) {
- var str = this.RequireObjectCoercible(string);
- var S = this.ToString(str);
- var T;
- if (where === 'start') {
- T = trimStart(S);
- } else if (where === 'end') {
- T = trimEnd(S);
- } else if (where === 'start+end') {
- T = trimStart(trimEnd(S));
- } else {
- throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"');
- }
- return T;
- }
-});
-
-module.exports = ES2019;
diff --git a/node_modules/es-abstract/es5.js b/node_modules/es-abstract/es5.js
deleted file mode 100644
index 9a97ba3..0000000
--- a/node_modules/es-abstract/es5.js
+++ /dev/null
@@ -1,544 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('./GetIntrinsic');
-
-var $Object = GetIntrinsic('%Object%');
-var $EvalError = GetIntrinsic('%EvalError%');
-var $TypeError = GetIntrinsic('%TypeError%');
-var $String = GetIntrinsic('%String%');
-var $Date = GetIntrinsic('%Date%');
-var $Number = GetIntrinsic('%Number%');
-var $floor = GetIntrinsic('%Math.floor%');
-var $DateUTC = GetIntrinsic('%Date.UTC%');
-var $abs = GetIntrinsic('%Math.abs%');
-
-var assertRecord = require('./helpers/assertRecord');
-var isPropertyDescriptor = require('./helpers/isPropertyDescriptor');
-var $isNaN = require('./helpers/isNaN');
-var $isFinite = require('./helpers/isFinite');
-var sign = require('./helpers/sign');
-var mod = require('./helpers/mod');
-var isPrefixOf = require('./helpers/isPrefixOf');
-var callBound = require('./helpers/callBound');
-
-var IsCallable = require('is-callable');
-var toPrimitive = require('es-to-primitive/es5');
-
-var has = require('has');
-
-var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear');
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-var msPerSecond = 1e3;
-var msPerMinute = msPerSecond * SecondsPerMinute;
-var msPerHour = msPerMinute * MinutesPerHour;
-var msPerDay = 86400000;
-
-// https://es5.github.io/#x9
-var ES5 = {
- ToPrimitive: toPrimitive,
-
- ToBoolean: function ToBoolean(value) {
- return !!value;
- },
- ToNumber: function ToNumber(value) {
- return +value; // eslint-disable-line no-implicit-coercion
- },
- ToInteger: function ToInteger(value) {
- var number = this.ToNumber(value);
- if ($isNaN(number)) { return 0; }
- if (number === 0 || !$isFinite(number)) { return number; }
- return sign(number) * Math.floor(Math.abs(number));
- },
- ToInt32: function ToInt32(x) {
- return this.ToNumber(x) >> 0;
- },
- ToUint32: function ToUint32(x) {
- return this.ToNumber(x) >>> 0;
- },
- ToUint16: function ToUint16(value) {
- var number = this.ToNumber(value);
- if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }
- var posInt = sign(number) * Math.floor(Math.abs(number));
- return mod(posInt, 0x10000);
- },
- ToString: function ToString(value) {
- return $String(value);
- },
- ToObject: function ToObject(value) {
- this.CheckObjectCoercible(value);
- return $Object(value);
- },
- CheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {
- /* jshint eqnull:true */
- if (value == null) {
- throw new $TypeError(optMessage || 'Cannot call method on ' + value);
- }
- return value;
- },
- IsCallable: IsCallable,
- SameValue: function SameValue(x, y) {
- if (x === y) { // 0 === -0, but they are not identical.
- if (x === 0) { return 1 / x === 1 / y; }
- return true;
- }
- return $isNaN(x) && $isNaN(y);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-8
- Type: function Type(x) {
- if (x === null) {
- return 'Null';
- }
- if (typeof x === 'undefined') {
- return 'Undefined';
- }
- if (typeof x === 'function' || typeof x === 'object') {
- return 'Object';
- }
- if (typeof x === 'number') {
- return 'Number';
- }
- if (typeof x === 'boolean') {
- return 'Boolean';
- }
- if (typeof x === 'string') {
- return 'String';
- }
- },
-
- // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type
- IsPropertyDescriptor: function IsPropertyDescriptor(Desc) {
- return isPropertyDescriptor(this, Desc);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-8.10.1
- IsAccessorDescriptor: function IsAccessorDescriptor(Desc) {
- if (typeof Desc === 'undefined') {
- return false;
- }
-
- assertRecord(this, 'Property Descriptor', 'Desc', Desc);
-
- if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {
- return false;
- }
-
- return true;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-8.10.2
- IsDataDescriptor: function IsDataDescriptor(Desc) {
- if (typeof Desc === 'undefined') {
- return false;
- }
-
- assertRecord(this, 'Property Descriptor', 'Desc', Desc);
-
- if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {
- return false;
- }
-
- return true;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-8.10.3
- IsGenericDescriptor: function IsGenericDescriptor(Desc) {
- if (typeof Desc === 'undefined') {
- return false;
- }
-
- assertRecord(this, 'Property Descriptor', 'Desc', Desc);
-
- if (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {
- return true;
- }
-
- return false;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-8.10.4
- FromPropertyDescriptor: function FromPropertyDescriptor(Desc) {
- if (typeof Desc === 'undefined') {
- return Desc;
- }
-
- assertRecord(this, 'Property Descriptor', 'Desc', Desc);
-
- if (this.IsDataDescriptor(Desc)) {
- return {
- value: Desc['[[Value]]'],
- writable: !!Desc['[[Writable]]'],
- enumerable: !!Desc['[[Enumerable]]'],
- configurable: !!Desc['[[Configurable]]']
- };
- } else if (this.IsAccessorDescriptor(Desc)) {
- return {
- get: Desc['[[Get]]'],
- set: Desc['[[Set]]'],
- enumerable: !!Desc['[[Enumerable]]'],
- configurable: !!Desc['[[Configurable]]']
- };
- } else {
- throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');
- }
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-8.10.5
- ToPropertyDescriptor: function ToPropertyDescriptor(Obj) {
- if (this.Type(Obj) !== 'Object') {
- throw new $TypeError('ToPropertyDescriptor requires an object');
- }
-
- var desc = {};
- if (has(Obj, 'enumerable')) {
- desc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);
- }
- if (has(Obj, 'configurable')) {
- desc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);
- }
- if (has(Obj, 'value')) {
- desc['[[Value]]'] = Obj.value;
- }
- if (has(Obj, 'writable')) {
- desc['[[Writable]]'] = this.ToBoolean(Obj.writable);
- }
- if (has(Obj, 'get')) {
- var getter = Obj.get;
- if (typeof getter !== 'undefined' && !this.IsCallable(getter)) {
- throw new TypeError('getter must be a function');
- }
- desc['[[Get]]'] = getter;
- }
- if (has(Obj, 'set')) {
- var setter = Obj.set;
- if (typeof setter !== 'undefined' && !this.IsCallable(setter)) {
- throw new $TypeError('setter must be a function');
- }
- desc['[[Set]]'] = setter;
- }
-
- if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {
- throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');
- }
- return desc;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-11.9.3
- 'Abstract Equality Comparison': function AbstractEqualityComparison(x, y) {
- var xType = this.Type(x);
- var yType = this.Type(y);
- if (xType === yType) {
- return x === y; // ES6+ specified this shortcut anyways.
- }
- if (x == null && y == null) {
- return true;
- }
- if (xType === 'Number' && yType === 'String') {
- return this['Abstract Equality Comparison'](x, this.ToNumber(y));
- }
- if (xType === 'String' && yType === 'Number') {
- return this['Abstract Equality Comparison'](this.ToNumber(x), y);
- }
- if (xType === 'Boolean') {
- return this['Abstract Equality Comparison'](this.ToNumber(x), y);
- }
- if (yType === 'Boolean') {
- return this['Abstract Equality Comparison'](x, this.ToNumber(y));
- }
- if ((xType === 'String' || xType === 'Number') && yType === 'Object') {
- return this['Abstract Equality Comparison'](x, this.ToPrimitive(y));
- }
- if (xType === 'Object' && (yType === 'String' || yType === 'Number')) {
- return this['Abstract Equality Comparison'](this.ToPrimitive(x), y);
- }
- return false;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-11.9.6
- 'Strict Equality Comparison': function StrictEqualityComparison(x, y) {
- var xType = this.Type(x);
- var yType = this.Type(y);
- if (xType !== yType) {
- return false;
- }
- if (xType === 'Undefined' || xType === 'Null') {
- return true;
- }
- return x === y; // shortcut for steps 4-7
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-11.8.5
- // eslint-disable-next-line max-statements
- 'Abstract Relational Comparison': function AbstractRelationalComparison(x, y, LeftFirst) {
- if (this.Type(LeftFirst) !== 'Boolean') {
- throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean');
- }
- var px;
- var py;
- if (LeftFirst) {
- px = this.ToPrimitive(x, $Number);
- py = this.ToPrimitive(y, $Number);
- } else {
- py = this.ToPrimitive(y, $Number);
- px = this.ToPrimitive(x, $Number);
- }
- var bothStrings = this.Type(px) === 'String' && this.Type(py) === 'String';
- if (!bothStrings) {
- var nx = this.ToNumber(px);
- var ny = this.ToNumber(py);
- if ($isNaN(nx) || $isNaN(ny)) {
- return undefined;
- }
- if ($isFinite(nx) && $isFinite(ny) && nx === ny) {
- return false;
- }
- if (nx === 0 && ny === 0) {
- return false;
- }
- if (nx === Infinity) {
- return false;
- }
- if (ny === Infinity) {
- return true;
- }
- if (ny === -Infinity) {
- return false;
- }
- if (nx === -Infinity) {
- return true;
- }
- return nx < ny; // by now, these are both nonzero, finite, and not equal
- }
- if (isPrefixOf(py, px)) {
- return false;
- }
- if (isPrefixOf(px, py)) {
- return true;
- }
- return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10
- msFromTime: function msFromTime(t) {
- return mod(t, msPerSecond);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10
- SecFromTime: function SecFromTime(t) {
- return mod($floor(t / msPerSecond), SecondsPerMinute);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10
- MinFromTime: function MinFromTime(t) {
- return mod($floor(t / msPerMinute), MinutesPerHour);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10
- HourFromTime: function HourFromTime(t) {
- return mod($floor(t / msPerHour), HoursPerDay);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2
- Day: function Day(t) {
- return $floor(t / msPerDay);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2
- TimeWithinDay: function TimeWithinDay(t) {
- return mod(t, msPerDay);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
- DayFromYear: function DayFromYear(y) {
- return (365 * (y - 1970)) + $floor((y - 1969) / 4) - $floor((y - 1901) / 100) + $floor((y - 1601) / 400);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
- TimeFromYear: function TimeFromYear(y) {
- return msPerDay * this.DayFromYear(y);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
- YearFromTime: function YearFromTime(t) {
- // largest y such that this.TimeFromYear(y) <= t
- return $getUTCFullYear(new $Date(t));
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.6
- WeekDay: function WeekDay(t) {
- return mod(this.Day(t) + 4, 7);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
- DaysInYear: function DaysInYear(y) {
- if (mod(y, 4) !== 0) {
- return 365;
- }
- if (mod(y, 100) !== 0) {
- return 366;
- }
- if (mod(y, 400) !== 0) {
- return 365;
- }
- return 366;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3
- InLeapYear: function InLeapYear(t) {
- var days = this.DaysInYear(this.YearFromTime(t));
- if (days === 365) {
- return 0;
- }
- if (days === 366) {
- return 1;
- }
- throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4
- DayWithinYear: function DayWithinYear(t) {
- return this.Day(t) - this.DayFromYear(this.YearFromTime(t));
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4
- MonthFromTime: function MonthFromTime(t) {
- var day = this.DayWithinYear(t);
- if (0 <= day && day < 31) {
- return 0;
- }
- var leap = this.InLeapYear(t);
- if (31 <= day && day < (59 + leap)) {
- return 1;
- }
- if ((59 + leap) <= day && day < (90 + leap)) {
- return 2;
- }
- if ((90 + leap) <= day && day < (120 + leap)) {
- return 3;
- }
- if ((120 + leap) <= day && day < (151 + leap)) {
- return 4;
- }
- if ((151 + leap) <= day && day < (181 + leap)) {
- return 5;
- }
- if ((181 + leap) <= day && day < (212 + leap)) {
- return 6;
- }
- if ((212 + leap) <= day && day < (243 + leap)) {
- return 7;
- }
- if ((243 + leap) <= day && day < (273 + leap)) {
- return 8;
- }
- if ((273 + leap) <= day && day < (304 + leap)) {
- return 9;
- }
- if ((304 + leap) <= day && day < (334 + leap)) {
- return 10;
- }
- if ((334 + leap) <= day && day < (365 + leap)) {
- return 11;
- }
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5
- DateFromTime: function DateFromTime(t) {
- var m = this.MonthFromTime(t);
- var d = this.DayWithinYear(t);
- if (m === 0) {
- return d + 1;
- }
- if (m === 1) {
- return d - 30;
- }
- var leap = this.InLeapYear(t);
- if (m === 2) {
- return d - 58 - leap;
- }
- if (m === 3) {
- return d - 89 - leap;
- }
- if (m === 4) {
- return d - 119 - leap;
- }
- if (m === 5) {
- return d - 150 - leap;
- }
- if (m === 6) {
- return d - 180 - leap;
- }
- if (m === 7) {
- return d - 211 - leap;
- }
- if (m === 8) {
- return d - 242 - leap;
- }
- if (m === 9) {
- return d - 272 - leap;
- }
- if (m === 10) {
- return d - 303 - leap;
- }
- if (m === 11) {
- return d - 333 - leap;
- }
- throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m);
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12
- MakeDay: function MakeDay(year, month, date) {
- if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) {
- return NaN;
- }
- var y = this.ToInteger(year);
- var m = this.ToInteger(month);
- var dt = this.ToInteger(date);
- var ym = y + $floor(m / 12);
- var mn = mod(m, 12);
- var t = $DateUTC(ym, mn, 1);
- if (this.YearFromTime(t) !== ym || this.MonthFromTime(t) !== mn || this.DateFromTime(t) !== 1) {
- return NaN;
- }
- return this.Day(t) + dt - 1;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13
- MakeDate: function MakeDate(day, time) {
- if (!$isFinite(day) || !$isFinite(time)) {
- return NaN;
- }
- return (day * msPerDay) + time;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11
- MakeTime: function MakeTime(hour, min, sec, ms) {
- if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) {
- return NaN;
- }
- var h = this.ToInteger(hour);
- var m = this.ToInteger(min);
- var s = this.ToInteger(sec);
- var milli = this.ToInteger(ms);
- var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli;
- return t;
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14
- TimeClip: function TimeClip(time) {
- if (!$isFinite(time) || $abs(time) > 8.64e15) {
- return NaN;
- }
- return $Number(new $Date(this.ToNumber(time)));
- },
-
- // https://ecma-international.org/ecma-262/5.1/#sec-5.2
- modulo: function modulo(x, y) {
- return mod(x, y);
- }
-};
-
-module.exports = ES5;
diff --git a/node_modules/es-abstract/es6.js b/node_modules/es-abstract/es6.js
deleted file mode 100644
index 2d1f4dc..0000000
--- a/node_modules/es-abstract/es6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-module.exports = require('./es2015');
diff --git a/node_modules/es-abstract/es7.js b/node_modules/es-abstract/es7.js
deleted file mode 100644
index f2f15c0..0000000
--- a/node_modules/es-abstract/es7.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-module.exports = require('./es2016');
diff --git a/node_modules/es-abstract/helpers/assertRecord.js b/node_modules/es-abstract/helpers/assertRecord.js
deleted file mode 100644
index 72df771..0000000
--- a/node_modules/es-abstract/helpers/assertRecord.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var $TypeError = GetIntrinsic('%TypeError%');
-var $SyntaxError = GetIntrinsic('%SyntaxError%');
-
-var has = require('has');
-
-var predicates = {
- // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type
- 'Property Descriptor': function isPropertyDescriptor(ES, Desc) {
- if (ES.Type(Desc) !== 'Object') {
- return false;
- }
- var allowed = {
- '[[Configurable]]': true,
- '[[Enumerable]]': true,
- '[[Get]]': true,
- '[[Set]]': true,
- '[[Value]]': true,
- '[[Writable]]': true
- };
-
- for (var key in Desc) { // eslint-disable-line
- if (has(Desc, key) && !allowed[key]) {
- return false;
- }
- }
-
- var isData = has(Desc, '[[Value]]');
- var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');
- if (isData && IsAccessor) {
- throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');
- }
- return true;
- }
-};
-
-module.exports = function assertRecord(ES, recordType, argumentName, value) {
- var predicate = predicates[recordType];
- if (typeof predicate !== 'function') {
- throw new $SyntaxError('unknown record type: ' + recordType);
- }
- if (!predicate(ES, value)) {
- throw new $TypeError(argumentName + ' must be a ' + recordType);
- }
-};
diff --git a/node_modules/es-abstract/helpers/assign.js b/node_modules/es-abstract/helpers/assign.js
deleted file mode 100644
index 7e6666e..0000000
--- a/node_modules/es-abstract/helpers/assign.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var has = require('has');
-
-var $assign = GetIntrinsic('%Object%').assign;
-
-module.exports = function assign(target, source) {
- if ($assign) {
- return $assign(target, source);
- }
-
- // eslint-disable-next-line no-restricted-syntax
- for (var key in source) {
- if (has(source, key)) {
- // eslint-disable-next-line no-param-reassign
- target[key] = source[key];
- }
- }
- return target;
-};
diff --git a/node_modules/es-abstract/helpers/callBind.js b/node_modules/es-abstract/helpers/callBind.js
deleted file mode 100644
index dd206ab..0000000
--- a/node_modules/es-abstract/helpers/callBind.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var bind = require('function-bind');
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var $Function = GetIntrinsic('%Function%');
-var $apply = $Function.apply;
-var $call = $Function.call;
-
-module.exports = function callBind() {
- return bind.apply($call, arguments);
-};
-
-module.exports.apply = function applyBind() {
- return bind.apply($apply, arguments);
-};
diff --git a/node_modules/es-abstract/helpers/callBound.js b/node_modules/es-abstract/helpers/callBound.js
deleted file mode 100644
index 9dc8fc5..0000000
--- a/node_modules/es-abstract/helpers/callBound.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var callBind = require('./callBind');
-
-var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
-
-module.exports = function callBoundIntrinsic(name, allowMissing) {
- var intrinsic = GetIntrinsic(name, !!allowMissing);
- if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.')) {
- return callBind(intrinsic);
- }
- return intrinsic;
-};
diff --git a/node_modules/es-abstract/helpers/every.js b/node_modules/es-abstract/helpers/every.js
deleted file mode 100644
index 42a4582..0000000
--- a/node_modules/es-abstract/helpers/every.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-module.exports = function every(array, predicate) {
- for (var i = 0; i < array.length; i += 1) {
- if (!predicate(array[i], i, array)) {
- return false;
- }
- }
- return true;
-};
diff --git a/node_modules/es-abstract/helpers/forEach.js b/node_modules/es-abstract/helpers/forEach.js
deleted file mode 100644
index 35915a6..0000000
--- a/node_modules/es-abstract/helpers/forEach.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-module.exports = function forEach(array, callback) {
- for (var i = 0; i < array.length; i += 1) {
- callback(array[i], i, array); // eslint-disable-line callback-return
- }
-};
diff --git a/node_modules/es-abstract/helpers/getInferredName.js b/node_modules/es-abstract/helpers/getInferredName.js
deleted file mode 100644
index 2dab6e7..0000000
--- a/node_modules/es-abstract/helpers/getInferredName.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-var getInferredName;
-try {
- // eslint-disable-next-line no-new-func
- getInferredName = Function('s', 'return { [s]() {} }[s].name;');
-} catch (e) {}
-
-var inferred = function () {};
-module.exports = getInferredName && inferred.name === 'inferred' ? getInferredName : null;
diff --git a/node_modules/es-abstract/helpers/getIteratorMethod.js b/node_modules/es-abstract/helpers/getIteratorMethod.js
deleted file mode 100644
index 02f932c..0000000
--- a/node_modules/es-abstract/helpers/getIteratorMethod.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-var hasSymbols = require('has-symbols')();
-var GetIntrinsic = require('../GetIntrinsic');
-var callBound = require('./callBound');
-
-var $iterator = GetIntrinsic('%Symbol.iterator%', true);
-var $stringSlice = callBound('String.prototype.slice');
-
-module.exports = function getIteratorMethod(ES, iterable) {
- var usingIterator;
- if (hasSymbols) {
- usingIterator = ES.GetMethod(iterable, $iterator);
- } else if (ES.IsArray(iterable)) {
- usingIterator = function () {
- var i = -1;
- var arr = this; // eslint-disable-line no-invalid-this
- return {
- next: function () {
- i += 1;
- return {
- done: i >= arr.length,
- value: arr[i]
- };
- }
- };
- };
- } else if (ES.Type(iterable) === 'String') {
- usingIterator = function () {
- var i = 0;
- return {
- next: function () {
- var nextIndex = ES.AdvanceStringIndex(iterable, i, true);
- var value = $stringSlice(iterable, i, nextIndex);
- i = nextIndex;
- return {
- done: nextIndex > iterable.length,
- value: value
- };
- }
- };
- };
- }
- return usingIterator;
-};
diff --git a/node_modules/es-abstract/helpers/getProto.js b/node_modules/es-abstract/helpers/getProto.js
deleted file mode 100644
index af10fd8..0000000
--- a/node_modules/es-abstract/helpers/getProto.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var originalGetProto = GetIntrinsic('%Object.getPrototypeOf%', true);
-var $ArrayProto = GetIntrinsic('%Array.prototype%');
-
-module.exports = originalGetProto || (
- // eslint-disable-next-line no-proto
- [].__proto__ === $ArrayProto
- ? function (O) {
- return O.__proto__; // eslint-disable-line no-proto
- }
- : null
-);
diff --git a/node_modules/es-abstract/helpers/getSymbolDescription.js b/node_modules/es-abstract/helpers/getSymbolDescription.js
deleted file mode 100644
index dff8fcc..0000000
--- a/node_modules/es-abstract/helpers/getSymbolDescription.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var callBound = require('./callBound');
-
-var $SyntaxError = GetIntrinsic('%SyntaxError%');
-var symToStr = callBound('Symbol.prototype.toString', true);
-
-var getInferredName = require('./getInferredName');
-
-module.exports = function getSymbolDescription(symbol) {
- if (!symToStr) {
- throw new $SyntaxError('Symbols are not supported in this environment');
- }
- var str = symToStr(symbol); // will throw if not a symbol
-
- if (getInferredName) {
- var name = getInferredName(symbol);
- if (name === '') { return; }
- // eslint-disable-next-line consistent-return
- return name.slice(1, -1); // name.slice('['.length, -']'.length);
- }
-
- var desc = str.slice(7, -1); // str.slice('Symbol('.length, -')'.length);
- if (desc) {
- // eslint-disable-next-line consistent-return
- return desc;
- }
-};
diff --git a/node_modules/es-abstract/helpers/isFinite.js b/node_modules/es-abstract/helpers/isFinite.js
deleted file mode 100644
index 9e7cd4f..0000000
--- a/node_modules/es-abstract/helpers/isFinite.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-var $isNaN = Number.isNaN || function (a) { return a !== a; };
-
-module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };
diff --git a/node_modules/es-abstract/helpers/isNaN.js b/node_modules/es-abstract/helpers/isNaN.js
deleted file mode 100644
index cb8631d..0000000
--- a/node_modules/es-abstract/helpers/isNaN.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = Number.isNaN || function isNaN(a) {
- return a !== a;
-};
diff --git a/node_modules/es-abstract/helpers/isPrefixOf.js b/node_modules/es-abstract/helpers/isPrefixOf.js
deleted file mode 100644
index b67d640..0000000
--- a/node_modules/es-abstract/helpers/isPrefixOf.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var $strSlice = require('../helpers/callBound')('String.prototype.slice');
-
-module.exports = function isPrefixOf(prefix, string) {
- if (prefix === string) {
- return true;
- }
- if (prefix.length > string.length) {
- return false;
- }
- return $strSlice(string, 0, prefix.length) === prefix;
-};
diff --git a/node_modules/es-abstract/helpers/isPrimitive.js b/node_modules/es-abstract/helpers/isPrimitive.js
deleted file mode 100644
index 06f0bf0..0000000
--- a/node_modules/es-abstract/helpers/isPrimitive.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = function isPrimitive(value) {
- return value === null || (typeof value !== 'function' && typeof value !== 'object');
-};
diff --git a/node_modules/es-abstract/helpers/isPropertyDescriptor.js b/node_modules/es-abstract/helpers/isPropertyDescriptor.js
deleted file mode 100644
index 23e8995..0000000
--- a/node_modules/es-abstract/helpers/isPropertyDescriptor.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var has = require('has');
-var $TypeError = GetIntrinsic('%TypeError%');
-
-module.exports = function IsPropertyDescriptor(ES, Desc) {
- if (ES.Type(Desc) !== 'Object') {
- return false;
- }
- var allowed = {
- '[[Configurable]]': true,
- '[[Enumerable]]': true,
- '[[Get]]': true,
- '[[Set]]': true,
- '[[Value]]': true,
- '[[Writable]]': true
- };
-
- for (var key in Desc) { // eslint-disable-line
- if (has(Desc, key) && !allowed[key]) {
- return false;
- }
- }
-
- if (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) {
- throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');
- }
- return true;
-};
diff --git a/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js b/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js
deleted file mode 100644
index a6162a1..0000000
--- a/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var every = require('./every');
-
-module.exports = function isSamePropertyDescriptor(ES, D1, D2) {
- var fields = [
- '[[Configurable]]',
- '[[Enumerable]]',
- '[[Get]]',
- '[[Set]]',
- '[[Value]]',
- '[[Writable]]'
- ];
- return every(fields, function (field) {
- if ((field in D1) !== (field in D2)) {
- return false;
- }
- return ES.SameValue(D1[field], D2[field]);
- });
-};
diff --git a/node_modules/es-abstract/helpers/maxSafeInteger.js b/node_modules/es-abstract/helpers/maxSafeInteger.js
deleted file mode 100644
index 2fe8f38..0000000
--- a/node_modules/es-abstract/helpers/maxSafeInteger.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var $Math = GetIntrinsic('%Math%');
-var $Number = GetIntrinsic('%Number%');
-
-module.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1;
diff --git a/node_modules/es-abstract/helpers/mod.js b/node_modules/es-abstract/helpers/mod.js
deleted file mode 100644
index 70f0eea..0000000
--- a/node_modules/es-abstract/helpers/mod.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-
-module.exports = function mod(number, modulo) {
- var remain = number % modulo;
- return Math.floor(remain >= 0 ? remain : remain + modulo);
-};
diff --git a/node_modules/es-abstract/helpers/regexTester.js b/node_modules/es-abstract/helpers/regexTester.js
deleted file mode 100644
index 982cc9f..0000000
--- a/node_modules/es-abstract/helpers/regexTester.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var $test = GetIntrinsic('RegExp.prototype.test');
-
-var callBind = require('./callBind');
-
-module.exports = function regexTester(regex) {
- return callBind($test, regex);
-};
diff --git a/node_modules/es-abstract/helpers/setProto.js b/node_modules/es-abstract/helpers/setProto.js
deleted file mode 100644
index 29ec991..0000000
--- a/node_modules/es-abstract/helpers/setProto.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var originalSetProto = GetIntrinsic('%Object.setPrototypeOf%', true);
-var $ArrayProto = GetIntrinsic('%Array.prototype%');
-
-module.exports = originalSetProto || (
- // eslint-disable-next-line no-proto, no-negated-condition
- [].__proto__ !== $ArrayProto
- ? null
- : function (O, proto) {
- O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign
- return O;
- }
-);
diff --git a/node_modules/es-abstract/helpers/sign.js b/node_modules/es-abstract/helpers/sign.js
deleted file mode 100644
index 598ea7d..0000000
--- a/node_modules/es-abstract/helpers/sign.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = function sign(number) {
- return number >= 0 ? 1 : -1;
-};
diff --git a/node_modules/es-abstract/index.js b/node_modules/es-abstract/index.js
deleted file mode 100644
index 7cef039..0000000
--- a/node_modules/es-abstract/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-var assign = require('./helpers/assign');
-
-var ES5 = require('./es5');
-var ES2015 = require('./es2015');
-var ES2016 = require('./es2016');
-var ES2017 = require('./es2017');
-var ES2018 = require('./es2018');
-var ES2019 = require('./es2019');
-
-var ES = {
- ES5: ES5,
- ES6: ES2015,
- ES2015: ES2015,
- ES7: ES2016,
- ES2016: ES2016,
- ES2017: ES2017,
- ES2018: ES2018,
- ES2019: ES2019
-};
-assign(ES, ES5);
-delete ES.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible
-assign(ES, ES2015);
-
-module.exports = ES;
diff --git a/node_modules/es-abstract/node_modules/object-inspect/.eslintignore b/node_modules/es-abstract/node_modules/object-inspect/.eslintignore
deleted file mode 100644
index 404abb2..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-coverage/
diff --git a/node_modules/es-abstract/node_modules/object-inspect/.eslintrc b/node_modules/es-abstract/node_modules/object-inspect/.eslintrc
deleted file mode 100644
index c137b67..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/.eslintrc
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "root": true,
- "extends": "@ljharb",
- "rules": {
- "complexity": 0,
- "func-style": [2, 'declaration'],
- "indent": [2, 4],
- "max-lines-per-function": [2, 130],
- "max-params": [2, 4],
- "max-statements": [2, 90],
- "max-statements-per-line": [2, { "max": 2 }],
- "no-magic-numbers": 0,
- "no-param-reassign": 1,
- "strict": 0, // TODO
- },
- "globals": {
- "BigInt": false,
- "WeakSet": false,
- "WeakMap": false,
- },
- "overrides": [
- {
- "files": ["test/**", "test-*", "example/**"],
- "rules": {
- "array-bracket-newline": 0,
- "max-params": 0,
- "max-statements": 0,
- "max-statements-per-line": 0,
- "object-curly-newline": 0,
- "sort-keys": 0,
- },
- },
- {
- "files": ["example/**"],
- "rules": {
- "no-console": 0,
- },
- },
- {
- "files": ["test/browser/**"],
- "env": {
- "browser": true,
- },
- },
- {
- "files": ["test/bigint*"],
- "rules": {
- "new-cap": [2, { "capIsNewExceptions": ["BigInt"] }],
- },
- },
- {
- "files": "index.js",
- "globals": {
- "HTMLElement": false,
- },
- "rules": {
- "no-use-before-define": 1,
- },
- },
- ],
-}
diff --git a/node_modules/es-abstract/node_modules/object-inspect/.nycrc b/node_modules/es-abstract/node_modules/object-inspect/.nycrc
deleted file mode 100644
index 7b95a1e..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/.nycrc
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "all": true,
- "check-coverage": true,
- "instrumentation": false,
- "sourceMap": false,
- "reporter": ["html", "text-summary"],
- "lines": 93,
- "statements": 93,
- "functions": 96,
- "branches": 89,
- "exclude": [
- "coverage",
- "example",
- "test",
- "test-core-js.js"
- ]
-}
diff --git a/node_modules/es-abstract/node_modules/object-inspect/.travis.yml b/node_modules/es-abstract/node_modules/object-inspect/.travis.yml
deleted file mode 100644
index 3a0cfc3..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/.travis.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: ~> 1.0
-language: node_js
-os:
- - linux
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
- - ljharb/travis-ci:node/coverage.yml
diff --git a/node_modules/es-abstract/node_modules/object-inspect/LICENSE b/node_modules/es-abstract/node_modules/object-inspect/LICENSE
deleted file mode 100644
index ca64cc1..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2013 James Halliday
-
-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.
diff --git a/node_modules/es-abstract/node_modules/object-inspect/example/all.js b/node_modules/es-abstract/node_modules/object-inspect/example/all.js
deleted file mode 100644
index 2f3355c..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/example/all.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-
-var inspect = require('../');
-var Buffer = require('safer-buffer').Buffer;
-
-var holes = ['a', 'b'];
-holes[4] = 'e';
-holes[6] = 'g';
-
-var obj = {
- a: 1,
- b: [3, 4, undefined, null],
- c: undefined,
- d: null,
- e: {
- regex: /^x/i,
- buf: Buffer.from('abc'),
- holes: holes
- },
- now: new Date()
-};
-obj.self = obj;
-console.log(inspect(obj));
diff --git a/node_modules/es-abstract/node_modules/object-inspect/example/circular.js b/node_modules/es-abstract/node_modules/object-inspect/example/circular.js
deleted file mode 100644
index 487a7c1..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/example/circular.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-
-var inspect = require('../');
-var obj = { a: 1, b: [3, 4] };
-obj.c = obj;
-console.log(inspect(obj));
diff --git a/node_modules/es-abstract/node_modules/object-inspect/example/fn.js b/node_modules/es-abstract/node_modules/object-inspect/example/fn.js
deleted file mode 100644
index 9b5db8d..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/example/fn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-var inspect = require('../');
-var obj = [1, 2, function f(n) { return n + 5; }, 4];
-console.log(inspect(obj));
diff --git a/node_modules/es-abstract/node_modules/object-inspect/example/inspect.js b/node_modules/es-abstract/node_modules/object-inspect/example/inspect.js
deleted file mode 100644
index e2df7c9..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/example/inspect.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-/* eslint-env browser */
-var inspect = require('../');
-
-var d = document.createElement('div');
-d.setAttribute('id', 'beep');
-d.innerHTML = 'woooiiiii';
-
-console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }]));
diff --git a/node_modules/es-abstract/node_modules/object-inspect/index.js b/node_modules/es-abstract/node_modules/object-inspect/index.js
deleted file mode 100644
index 1394e53..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/index.js
+++ /dev/null
@@ -1,307 +0,0 @@
-var hasMap = typeof Map === 'function' && Map.prototype;
-var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;
-var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;
-var mapForEach = hasMap && Map.prototype.forEach;
-var hasSet = typeof Set === 'function' && Set.prototype;
-var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;
-var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;
-var setForEach = hasSet && Set.prototype.forEach;
-var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;
-var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
-var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;
-var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
-var booleanValueOf = Boolean.prototype.valueOf;
-var objectToString = Object.prototype.toString;
-var match = String.prototype.match;
-var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;
-
-var inspectCustom = require('./util.inspect').custom;
-var inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;
-
-module.exports = function inspect_(obj, options, depth, seen) {
- var opts = options || {};
-
- if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {
- throw new TypeError('option "quoteStyle" must be "single" or "double"');
- }
-
- if (typeof obj === 'undefined') {
- return 'undefined';
- }
- if (obj === null) {
- return 'null';
- }
- if (typeof obj === 'boolean') {
- return obj ? 'true' : 'false';
- }
-
- if (typeof obj === 'string') {
- return inspectString(obj, opts);
- }
- if (typeof obj === 'number') {
- if (obj === 0) {
- return Infinity / obj > 0 ? '0' : '-0';
- }
- return String(obj);
- }
- if (typeof obj === 'bigint') { // eslint-disable-line valid-typeof
- return String(obj) + 'n';
- }
-
- var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;
- if (typeof depth === 'undefined') { depth = 0; }
- if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {
- return '[Object]';
- }
-
- if (typeof seen === 'undefined') {
- seen = [];
- } else if (indexOf(seen, obj) >= 0) {
- return '[Circular]';
- }
-
- function inspect(value, from) {
- if (from) {
- seen = seen.slice();
- seen.push(from);
- }
- return inspect_(value, opts, depth + 1, seen);
- }
-
- if (typeof obj === 'function') {
- var name = nameOf(obj);
- return '[Function' + (name ? ': ' + name : '') + ']';
- }
- if (isSymbol(obj)) {
- var symString = Symbol.prototype.toString.call(obj);
- return typeof obj === 'object' ? markBoxed(symString) : symString;
- }
- if (isElement(obj)) {
- var s = '<' + String(obj.nodeName).toLowerCase();
- var attrs = obj.attributes || [];
- for (var i = 0; i < attrs.length; i++) {
- s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);
- }
- s += '>';
- if (obj.childNodes && obj.childNodes.length) { s += '...'; }
- s += '' + String(obj.nodeName).toLowerCase() + '>';
- return s;
- }
- if (isArray(obj)) {
- if (obj.length === 0) { return '[]'; }
- return '[ ' + arrObjKeys(obj, inspect).join(', ') + ' ]';
- }
- if (isError(obj)) {
- var parts = arrObjKeys(obj, inspect);
- if (parts.length === 0) { return '[' + String(obj) + ']'; }
- return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';
- }
- if (typeof obj === 'object') {
- if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {
- return obj[inspectSymbol]();
- } else if (typeof obj.inspect === 'function') {
- return obj.inspect();
- }
- }
- if (isMap(obj)) {
- var mapParts = [];
- mapForEach.call(obj, function (value, key) {
- mapParts.push(inspect(key, obj) + ' => ' + inspect(value, obj));
- });
- return collectionOf('Map', mapSize.call(obj), mapParts);
- }
- if (isSet(obj)) {
- var setParts = [];
- setForEach.call(obj, function (value) {
- setParts.push(inspect(value, obj));
- });
- return collectionOf('Set', setSize.call(obj), setParts);
- }
- if (isWeakMap(obj)) {
- return weakCollectionOf('WeakMap');
- }
- if (isWeakSet(obj)) {
- return weakCollectionOf('WeakSet');
- }
- if (isNumber(obj)) {
- return markBoxed(inspect(Number(obj)));
- }
- if (isBigInt(obj)) {
- return markBoxed(inspect(bigIntValueOf.call(obj)));
- }
- if (isBoolean(obj)) {
- return markBoxed(booleanValueOf.call(obj));
- }
- if (isString(obj)) {
- return markBoxed(inspect(String(obj)));
- }
- if (!isDate(obj) && !isRegExp(obj)) {
- var xs = arrObjKeys(obj, inspect);
- if (xs.length === 0) { return '{}'; }
- return '{ ' + xs.join(', ') + ' }';
- }
- return String(obj);
-};
-
-function wrapQuotes(s, defaultStyle, opts) {
- var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'";
- return quoteChar + s + quoteChar;
-}
-
-function quote(s) {
- return String(s).replace(/"/g, '"');
-}
-
-function isArray(obj) { return toStr(obj) === '[object Array]'; }
-function isDate(obj) { return toStr(obj) === '[object Date]'; }
-function isRegExp(obj) { return toStr(obj) === '[object RegExp]'; }
-function isError(obj) { return toStr(obj) === '[object Error]'; }
-function isSymbol(obj) { return toStr(obj) === '[object Symbol]'; }
-function isString(obj) { return toStr(obj) === '[object String]'; }
-function isNumber(obj) { return toStr(obj) === '[object Number]'; }
-function isBigInt(obj) { return toStr(obj) === '[object BigInt]'; }
-function isBoolean(obj) { return toStr(obj) === '[object Boolean]'; }
-
-var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };
-function has(obj, key) {
- return hasOwn.call(obj, key);
-}
-
-function toStr(obj) {
- return objectToString.call(obj);
-}
-
-function nameOf(f) {
- if (f.name) { return f.name; }
- var m = match.call(f, /^function\s*([\w$]+)/);
- if (m) { return m[1]; }
- return null;
-}
-
-function indexOf(xs, x) {
- if (xs.indexOf) { return xs.indexOf(x); }
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) { return i; }
- }
- return -1;
-}
-
-function isMap(x) {
- if (!mapSize || !x || typeof x !== 'object') {
- return false;
- }
- try {
- mapSize.call(x);
- try {
- setSize.call(x);
- } catch (s) {
- return true;
- }
- return x instanceof Map; // core-js workaround, pre-v2.5.0
- } catch (e) {}
- return false;
-}
-
-function isWeakMap(x) {
- if (!weakMapHas || !x || typeof x !== 'object') {
- return false;
- }
- try {
- weakMapHas.call(x, weakMapHas);
- try {
- weakSetHas.call(x, weakSetHas);
- } catch (s) {
- return true;
- }
- return x instanceof WeakMap; // core-js workaround, pre-v2.5.0
- } catch (e) {}
- return false;
-}
-
-function isSet(x) {
- if (!setSize || !x || typeof x !== 'object') {
- return false;
- }
- try {
- setSize.call(x);
- try {
- mapSize.call(x);
- } catch (m) {
- return true;
- }
- return x instanceof Set; // core-js workaround, pre-v2.5.0
- } catch (e) {}
- return false;
-}
-
-function isWeakSet(x) {
- if (!weakSetHas || !x || typeof x !== 'object') {
- return false;
- }
- try {
- weakSetHas.call(x, weakSetHas);
- try {
- weakMapHas.call(x, weakMapHas);
- } catch (s) {
- return true;
- }
- return x instanceof WeakSet; // core-js workaround, pre-v2.5.0
- } catch (e) {}
- return false;
-}
-
-function isElement(x) {
- if (!x || typeof x !== 'object') { return false; }
- if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {
- return true;
- }
- return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';
-}
-
-function inspectString(str, opts) {
- // eslint-disable-next-line no-control-regex
- var s = str.replace(/(['\\])/g, '\\$1').replace(/[\x00-\x1f]/g, lowbyte);
- return wrapQuotes(s, 'single', opts);
-}
-
-function lowbyte(c) {
- var n = c.charCodeAt(0);
- var x = {
- 8: 'b', 9: 't', 10: 'n', 12: 'f', 13: 'r'
- }[n];
- if (x) { return '\\' + x; }
- return '\\x' + (n < 0x10 ? '0' : '') + n.toString(16);
-}
-
-function markBoxed(str) {
- return 'Object(' + str + ')';
-}
-
-function weakCollectionOf(type) {
- return type + ' { ? }';
-}
-
-function collectionOf(type, size, entries) {
- return type + ' (' + size + ') {' + entries.join(', ') + '}';
-}
-
-function arrObjKeys(obj, inspect) {
- var isArr = isArray(obj);
- var xs = [];
- if (isArr) {
- xs.length = obj.length;
- for (var i = 0; i < obj.length; i++) {
- xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';
- }
- }
- for (var key in obj) { // eslint-disable-line no-restricted-syntax
- if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
- if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
- if ((/[^\w$]/).test(key)) {
- xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
- } else {
- xs.push(key + ': ' + inspect(obj[key], obj));
- }
- }
- return xs;
-}
diff --git a/node_modules/es-abstract/node_modules/object-inspect/package.json b/node_modules/es-abstract/node_modules/object-inspect/package.json
deleted file mode 100644
index 2783d07..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/package.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "object-inspect@^1.7.0",
- "_id": "object-inspect@1.7.0",
- "_inBundle": false,
- "_integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
- "_location": "/es-abstract/object-inspect",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "object-inspect@^1.7.0",
- "name": "object-inspect",
- "escapedName": "object-inspect",
- "rawSpec": "^1.7.0",
- "saveSpec": null,
- "fetchSpec": "^1.7.0"
- },
- "_requiredBy": [
- "/es-abstract"
- ],
- "_resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "_shasum": "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67",
- "_spec": "object-inspect@^1.7.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/es-abstract",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "browser": {
- "./util.inspect.js": false
- },
- "bugs": {
- "url": "https://github.com/substack/object-inspect/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "string representations of objects in node and the browser",
- "devDependencies": {
- "@ljharb/eslint-config": "^15.0.1",
- "core-js": "^2.6.10",
- "eslint": "^6.6.0",
- "nyc": "^10.3.2",
- "tape": "^4.11.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "greenkeeper": {
- "ignore": [
- "nyc",
- "core-js"
- ]
- },
- "homepage": "https://github.com/substack/object-inspect",
- "keywords": [
- "inspect",
- "util.inspect",
- "object",
- "stringify",
- "pretty"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "object-inspect",
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/object-inspect.git"
- },
- "scripts": {
- "coverage": "nyc npm run tests-only",
- "lint": "eslint .",
- "posttest": "npx aud --production",
- "pretest": "npm run lint",
- "pretests-only": "node test-core-js",
- "test": "npm run tests-only",
- "tests-only": "tape test/*.js"
- },
- "testling": {
- "files": [
- "test/*.js",
- "test/browser/*.js"
- ],
- "browsers": [
- "ie/6..latest",
- "chrome/latest",
- "firefox/latest",
- "safari/latest",
- "opera/latest",
- "iphone/latest",
- "ipad/latest",
- "android/latest"
- ]
- },
- "version": "1.7.0"
-}
diff --git a/node_modules/es-abstract/node_modules/object-inspect/readme.markdown b/node_modules/es-abstract/node_modules/object-inspect/readme.markdown
deleted file mode 100644
index 744eeb5..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/readme.markdown
+++ /dev/null
@@ -1,61 +0,0 @@
-# object-inspect
-
-string representations of objects in node and the browser
-
-[![testling badge](https://ci.testling.com/substack/object-inspect.png)](https://ci.testling.com/substack/object-inspect)
-
-[![build status](https://secure.travis-ci.org/substack/object-inspect.png)](http://travis-ci.org/substack/object-inspect)
-
-# example
-
-## circular
-
-``` js
-var inspect = require('object-inspect');
-var obj = { a: 1, b: [3,4] };
-obj.c = obj;
-console.log(inspect(obj));
-```
-
-## dom element
-
-``` js
-var inspect = require('object-inspect');
-
-var d = document.createElement('div');
-d.setAttribute('id', 'beep');
-d.innerHTML = 'woooiiiii';
-
-console.log(inspect([ d, { a: 3, b : 4, c: [5,6,[7,[8,[9]]]] } ]));
-```
-
-output:
-
-```
-[ ...
, { a: 3, b: 4, c: [ 5, 6, [ 7, [ 8, [ ... ] ] ] ] } ]
-```
-
-# methods
-
-``` js
-var inspect = require('object-inspect')
-```
-
-## var s = inspect(obj, opts={})
-
-Return a string `s` with the string representation of `obj` up to a depth of `opts.depth`.
-
-Additional options:
- - `quoteStyle`: must be "single" or "double", if present
-
-# install
-
-With [npm](https://npmjs.org) do:
-
-```
-npm install object-inspect
-```
-
-# license
-
-MIT
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test-core-js.js b/node_modules/es-abstract/node_modules/object-inspect/test-core-js.js
deleted file mode 100644
index 12c4e2a..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test-core-js.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-require('core-js');
-
-var inspect = require('./');
-var test = require('tape');
-
-test('Maps', function (t) {
- t.equal(inspect(new Map([[1, 2]])), 'Map (1) {1 => 2}');
- t.end();
-});
-
-test('Sets', function (t) {
- t.equal(inspect(new Set([[1, 2]])), 'Set (1) {[ 1, 2 ]}');
- t.end();
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/bigint.js b/node_modules/es-abstract/node_modules/object-inspect/test/bigint.js
deleted file mode 100644
index 3259143..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/bigint.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-test('bigint', { skip: typeof BigInt === 'undefined' }, function (t) {
- t.test('primitives', function (st) {
- st.plan(3);
-
- st.equal(inspect(BigInt(-256)), '-256n');
- st.equal(inspect(BigInt(0)), '0n');
- st.equal(inspect(BigInt(256)), '256n');
- });
-
- t.test('objects', function (st) {
- st.plan(3);
-
- st.equal(inspect(Object(BigInt(-256))), 'Object(-256n)');
- st.equal(inspect(Object(BigInt(0))), 'Object(0n)');
- st.equal(inspect(Object(BigInt(256))), 'Object(256n)');
- });
-
- t.test('syntactic primitives', function (st) {
- st.plan(3);
-
- /* eslint-disable no-new-func */
- st.equal(inspect(Function('return -256n')()), '-256n');
- st.equal(inspect(Function('return 0n')()), '0n');
- st.equal(inspect(Function('return 256n')()), '256n');
- });
-
- t.end();
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/browser/dom.js b/node_modules/es-abstract/node_modules/object-inspect/test/browser/dom.js
deleted file mode 100644
index 210c0b2..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/browser/dom.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var inspect = require('../../');
-var test = require('tape');
-
-test('dom element', function (t) {
- t.plan(1);
-
- var d = document.createElement('div');
- d.setAttribute('id', 'beep');
- d.innerHTML = 'woooiiiii';
-
- t.equal(
- inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }]),
- '[ ...
, { a: 3, b: 4, c: [ 5, 6, [ 7, [ 8, [Object] ] ] ] } ]'
- );
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/circular.js b/node_modules/es-abstract/node_modules/object-inspect/test/circular.js
deleted file mode 100644
index e864cfe..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/circular.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-test('circular', function (t) {
- t.plan(1);
- var obj = { a: 1, b: [3, 4] };
- obj.c = obj;
- t.equal(inspect(obj), '{ a: 1, b: [ 3, 4 ], c: [Circular] }');
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/deep.js b/node_modules/es-abstract/node_modules/object-inspect/test/deep.js
deleted file mode 100644
index 5c443f2..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/deep.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-test('deep', function (t) {
- t.plan(2);
- var obj = [[[[[[500]]]]]];
- t.equal(inspect(obj), '[ [ [ [ [ [Object] ] ] ] ] ]');
- t.equal(inspect(obj, { depth: 2 }), '[ [ [Object] ] ]');
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/element.js b/node_modules/es-abstract/node_modules/object-inspect/test/element.js
deleted file mode 100644
index 47fa9e2..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/element.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-test('element', function (t) {
- t.plan(3);
- var elem = {
- nodeName: 'div',
- attributes: [{ name: 'class', value: 'row' }],
- getAttribute: function (key) { return key; },
- childNodes: []
- };
- var obj = [1, elem, 3];
- t.deepEqual(inspect(obj), '[ 1, , 3 ]');
- t.deepEqual(inspect(obj, { quoteStyle: 'single' }), "[ 1, , 3 ]");
- t.deepEqual(inspect(obj, { quoteStyle: 'double' }), '[ 1, , 3 ]');
-});
-
-test('element no attr', function (t) {
- t.plan(1);
- var elem = {
- nodeName: 'div',
- getAttribute: function (key) { return key; },
- childNodes: []
- };
- var obj = [1, elem, 3];
- t.deepEqual(inspect(obj), '[ 1, , 3 ]');
-});
-
-test('element with contents', function (t) {
- t.plan(1);
- var elem = {
- nodeName: 'div',
- getAttribute: function (key) { return key; },
- childNodes: [{ nodeName: 'b' }]
- };
- var obj = [1, elem, 3];
- t.deepEqual(inspect(obj), '[ 1, ...
, 3 ]');
-});
-
-test('element instance', function (t) {
- t.plan(1);
- var h = global.HTMLElement;
- global.HTMLElement = function (name, attr) {
- this.nodeName = name;
- this.attributes = attr;
- };
- global.HTMLElement.prototype.getAttribute = function () {};
-
- var elem = new global.HTMLElement('div', []);
- var obj = [1, elem, 3];
- t.deepEqual(inspect(obj), '[ 1, , 3 ]');
- global.HTMLElement = h;
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/err.js b/node_modules/es-abstract/node_modules/object-inspect/test/err.js
deleted file mode 100644
index db96338..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/err.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-test('type error', function (t) {
- t.plan(1);
- var aerr = new TypeError();
- aerr.foo = 555;
- aerr.bar = [1, 2, 3];
-
- var berr = new TypeError('tuv');
- berr.baz = 555;
-
- var cerr = new SyntaxError();
- cerr.message = 'whoa';
- cerr['a-b'] = 5;
-
- var obj = [
- new TypeError(),
- new TypeError('xxx'),
- aerr,
- berr,
- cerr
- ];
- t.equal(inspect(obj), '[ ' + [
- '[TypeError]',
- '[TypeError: xxx]',
- '{ [TypeError] foo: 555, bar: [ 1, 2, 3 ] }',
- '{ [TypeError: tuv] baz: 555 }',
- '{ [SyntaxError: whoa] message: \'whoa\', \'a-b\': 5 }'
- ].join(', ') + ' ]');
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/fn.js b/node_modules/es-abstract/node_modules/object-inspect/test/fn.js
deleted file mode 100644
index fd644be..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/fn.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-test('function', function (t) {
- t.plan(1);
- var obj = [1, 2, function f(n) { return n; }, 4];
- t.equal(inspect(obj), '[ 1, 2, [Function: f], 4 ]');
-});
-
-test('function name', function (t) {
- t.plan(1);
- var f = (function () {
- return function () {};
- }());
- f.toString = function () { return 'function xxx () {}'; };
- var obj = [1, 2, f, 4];
- t.equal(inspect(obj), '[ 1, 2, [Function: xxx], 4 ]');
-});
-
-test('anon function', function (t) {
- var f = (function () {
- return function () {};
- }());
- var obj = [1, 2, f, 4];
- t.equal(inspect(obj), '[ 1, 2, [Function], 4 ]');
-
- t.end();
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/has.js b/node_modules/es-abstract/node_modules/object-inspect/test/has.js
deleted file mode 100644
index 026d6d5..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/has.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-function withoutProperty(object, property, fn) {
- var original;
- if (Object.getOwnPropertyDescriptor) {
- original = Object.getOwnPropertyDescriptor(object, property);
- } else {
- original = object[property];
- }
- delete object[property];
- try {
- fn();
- } finally {
- if (Object.getOwnPropertyDescriptor) {
- Object.defineProperty(object, property, original);
- } else {
- object[property] = original;
- }
- }
-}
-
-test('when Object#hasOwnProperty is deleted', function (t) {
- t.plan(1);
- var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays
-
- // eslint-disable-next-line no-extend-native
- Array.prototype[1] = 2; // this is needed to account for "in" vs "hasOwnProperty"
-
- withoutProperty(Object.prototype, 'hasOwnProperty', function () {
- t.equal(inspect(arr), '[ 1, , 3 ]');
- });
- delete Array.prototype[1];
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/holes.js b/node_modules/es-abstract/node_modules/object-inspect/test/holes.js
deleted file mode 100644
index 87fc8c8..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/holes.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var test = require('tape');
-var inspect = require('../');
-
-var xs = ['a', 'b'];
-xs[5] = 'f';
-xs[7] = 'j';
-xs[8] = 'k';
-
-test('holes', function (t) {
- t.plan(1);
- t.equal(
- inspect(xs),
- "[ 'a', 'b', , , , 'f', , 'j', 'k' ]"
- );
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/inspect.js b/node_modules/es-abstract/node_modules/object-inspect/test/inspect.js
deleted file mode 100644
index 4f202c2..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/inspect.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var test = require('tape');
-var hasSymbols = require('has-symbols')();
-var utilInspect = require('../util.inspect');
-
-var inspect = require('..');
-
-test('inspect', function (t) {
- t.plan(1);
- var obj = [{ inspect: function () { return '!XYZ¡'; } }, []];
- t.equal(inspect(obj), '[ !XYZ¡, [] ]');
-});
-
-test('inspect custom symbol', { skip: !hasSymbols || !utilInspect }, function (t) {
- t.plan(1);
-
- var obj = { inspect: function () { return 'string'; } };
- obj[utilInspect.custom] = function () { return 'symbol'; };
-
- t.equal(inspect([obj, []]), '[ ' + (utilInspect.custom ? 'symbol' : 'string') + ', [] ]');
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/lowbyte.js b/node_modules/es-abstract/node_modules/object-inspect/test/lowbyte.js
deleted file mode 100644
index d234242..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/lowbyte.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var test = require('tape');
-var inspect = require('../');
-
-var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' };
-
-test('interpolate low bytes', function (t) {
- t.plan(1);
- t.equal(
- inspect(obj),
- "{ x: 'a\\r\\nb', y: '\\x05! \\x1f \\x12' }"
- );
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/number.js b/node_modules/es-abstract/node_modules/object-inspect/test/number.js
deleted file mode 100644
index 448304e..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/number.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-test('negative zero', function (t) {
- t.equal(inspect(0), '0', 'inspect(0) === "0"');
- t.equal(inspect(Object(0)), 'Object(0)', 'inspect(Object(0)) === "Object(0)"');
-
- t.equal(inspect(-0), '-0', 'inspect(-0) === "-0"');
- t.equal(inspect(Object(-0)), 'Object(-0)', 'inspect(Object(-0)) === "Object(-0)"');
-
- t.end();
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/quoteStyle.js b/node_modules/es-abstract/node_modules/object-inspect/test/quoteStyle.js
deleted file mode 100644
index ae4d734..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/quoteStyle.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var inspect = require('../');
-var test = require('tape');
-
-test('quoteStyle option', function (t) {
- t['throws'](function () { inspect(null, { quoteStyle: false }); }, 'false is not a valid value');
- t['throws'](function () { inspect(null, { quoteStyle: true }); }, 'true is not a valid value');
- t['throws'](function () { inspect(null, { quoteStyle: '' }); }, '"" is not a valid value');
- t['throws'](function () { inspect(null, { quoteStyle: {} }); }, '{} is not a valid value');
- t['throws'](function () { inspect(null, { quoteStyle: [] }); }, '[] is not a valid value');
- t['throws'](function () { inspect(null, { quoteStyle: 42 }); }, '42 is not a valid value');
- t['throws'](function () { inspect(null, { quoteStyle: NaN }); }, 'NaN is not a valid value');
- t['throws'](function () { inspect(null, { quoteStyle: function () {} }); }, 'a function is not a valid value');
-
- t.end();
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/undef.js b/node_modules/es-abstract/node_modules/object-inspect/test/undef.js
deleted file mode 100644
index e3f4961..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/undef.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var test = require('tape');
-var inspect = require('../');
-
-var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null };
-
-test('undef and null', function (t) {
- t.plan(1);
- t.equal(
- inspect(obj),
- '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }'
- );
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/test/values.js b/node_modules/es-abstract/node_modules/object-inspect/test/values.js
deleted file mode 100644
index 20709d5..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/test/values.js
+++ /dev/null
@@ -1,156 +0,0 @@
-var inspect = require('../');
-var test = require('tape');
-
-test('values', function (t) {
- t.plan(1);
- var obj = [{}, [], { 'a-b': 5 }];
- t.equal(inspect(obj), '[ {}, [], { \'a-b\': 5 } ]');
-});
-
-test('arrays with properties', function (t) {
- t.plan(1);
- var arr = [3];
- arr.foo = 'bar';
- var obj = [1, 2, arr];
- obj.baz = 'quux';
- obj.index = -1;
- t.equal(inspect(obj), '[ 1, 2, [ 3, foo: \'bar\' ], baz: \'quux\', index: -1 ]');
-});
-
-test('has', function (t) {
- t.plan(1);
- var has = Object.prototype.hasOwnProperty;
- delete Object.prototype.hasOwnProperty;
- t.equal(inspect({ a: 1, b: 2 }), '{ a: 1, b: 2 }');
- Object.prototype.hasOwnProperty = has; // eslint-disable-line no-extend-native
-});
-
-test('indexOf seen', function (t) {
- t.plan(1);
- var xs = [1, 2, 3, {}];
- xs.push(xs);
-
- var seen = [];
- seen.indexOf = undefined;
-
- t.equal(
- inspect(xs, {}, 0, seen),
- '[ 1, 2, 3, {}, [Circular] ]'
- );
-});
-
-test('seen seen', function (t) {
- t.plan(1);
- var xs = [1, 2, 3];
-
- var seen = [xs];
- seen.indexOf = undefined;
-
- t.equal(
- inspect(xs, {}, 0, seen),
- '[Circular]'
- );
-});
-
-test('seen seen seen', function (t) {
- t.plan(1);
- var xs = [1, 2, 3];
-
- var seen = [5, xs];
- seen.indexOf = undefined;
-
- t.equal(
- inspect(xs, {}, 0, seen),
- '[Circular]'
- );
-});
-
-test('symbols', { skip: typeof Symbol !== 'function' }, function (t) {
- var sym = Symbol('foo');
- t.equal(inspect(sym), 'Symbol(foo)', 'Symbol("foo") should be "Symbol(foo)"');
- t.equal(inspect(Object(sym)), 'Object(Symbol(foo))', 'Object(Symbol("foo")) should be "Object(Symbol(foo))"');
- t.end();
-});
-
-test('Map', { skip: typeof Map !== 'function' }, function (t) {
- var map = new Map();
- map.set({ a: 1 }, ['b']);
- map.set(3, NaN);
- var expectedString = 'Map (2) {' + inspect({ a: 1 }) + ' => ' + inspect(['b']) + ', 3 => NaN}';
- t.equal(inspect(map), expectedString, 'new Map([[{ a: 1 }, ["b"]], [3, NaN]]) should show size and contents');
- t.equal(inspect(new Map()), 'Map (0) {}', 'empty Map should show as empty');
-
- var nestedMap = new Map();
- nestedMap.set(nestedMap, map);
- t.equal(inspect(nestedMap), 'Map (1) {[Circular] => ' + expectedString + '}', 'Map containing a Map should work');
-
- t.end();
-});
-
-test('WeakMap', { skip: typeof WeakMap !== 'function' }, function (t) {
- var map = new WeakMap();
- map.set({ a: 1 }, ['b']);
- var expectedString = 'WeakMap { ? }';
- t.equal(inspect(map), expectedString, 'new WeakMap([[{ a: 1 }, ["b"]]]) should not show size or contents');
- t.equal(inspect(new WeakMap()), 'WeakMap { ? }', 'empty WeakMap should not show as empty');
-
- t.end();
-});
-
-test('Set', { skip: typeof Set !== 'function' }, function (t) {
- var set = new Set();
- set.add({ a: 1 });
- set.add(['b']);
- var expectedString = 'Set (2) {' + inspect({ a: 1 }) + ', ' + inspect(['b']) + '}';
- t.equal(inspect(set), expectedString, 'new Set([{ a: 1 }, ["b"]]) should show size and contents');
- t.equal(inspect(new Set()), 'Set (0) {}', 'empty Set should show as empty');
-
- var nestedSet = new Set();
- nestedSet.add(set);
- nestedSet.add(nestedSet);
- t.equal(inspect(nestedSet), 'Set (2) {' + expectedString + ', [Circular]}', 'Set containing a Set should work');
-
- t.end();
-});
-
-test('WeakSet', { skip: typeof WeakSet !== 'function' }, function (t) {
- var map = new WeakSet();
- map.add({ a: 1 });
- var expectedString = 'WeakSet { ? }';
- t.equal(inspect(map), expectedString, 'new WeakSet([{ a: 1 }]) should not show size or contents');
- t.equal(inspect(new WeakSet()), 'WeakSet { ? }', 'empty WeakSet should not show as empty');
-
- t.end();
-});
-
-test('Strings', function (t) {
- var str = 'abc';
-
- t.equal(inspect(str), "'" + str + "'", 'primitive string shows as such');
- t.equal(inspect(str, { quoteStyle: 'single' }), "'" + str + "'", 'primitive string shows as such, single quoted');
- t.equal(inspect(str, { quoteStyle: 'double' }), '"' + str + '"', 'primitive string shows as such, double quoted');
- t.equal(inspect(Object(str)), 'Object(' + inspect(str) + ')', 'String object shows as such');
- t.equal(inspect(Object(str), { quoteStyle: 'single' }), 'Object(' + inspect(str, { quoteStyle: 'single' }) + ')', 'String object shows as such, single quoted');
- t.equal(inspect(Object(str), { quoteStyle: 'double' }), 'Object(' + inspect(str, { quoteStyle: 'double' }) + ')', 'String object shows as such, double quoted');
-
- t.end();
-});
-
-test('Numbers', function (t) {
- var num = 42;
-
- t.equal(inspect(num), String(num), 'primitive number shows as such');
- t.equal(inspect(Object(num)), 'Object(' + inspect(num) + ')', 'Number object shows as such');
-
- t.end();
-});
-
-test('Booleans', function (t) {
- t.equal(inspect(true), String(true), 'primitive true shows as such');
- t.equal(inspect(Object(true)), 'Object(' + inspect(true) + ')', 'Boolean object true shows as such');
-
- t.equal(inspect(false), String(false), 'primitive false shows as such');
- t.equal(inspect(Object(false)), 'Object(' + inspect(false) + ')', 'Boolean false object shows as such');
-
- t.end();
-});
diff --git a/node_modules/es-abstract/node_modules/object-inspect/util.inspect.js b/node_modules/es-abstract/node_modules/object-inspect/util.inspect.js
deleted file mode 100644
index 7784fab..0000000
--- a/node_modules/es-abstract/node_modules/object-inspect/util.inspect.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('util').inspect;
diff --git a/node_modules/es-abstract/operations/.eslintrc b/node_modules/es-abstract/operations/.eslintrc
deleted file mode 100644
index bcd76f7..0000000
--- a/node_modules/es-abstract/operations/.eslintrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rules": {
- "id-length": 0,
- },
-}
diff --git a/node_modules/es-abstract/operations/2015.js b/node_modules/es-abstract/operations/2015.js
deleted file mode 100644
index 3f6c358..0000000
--- a/node_modules/es-abstract/operations/2015.js
+++ /dev/null
@@ -1,117 +0,0 @@
-'use strict';
-
-module.exports = {
- IsPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op
-
- 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison',
- 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/6.0/#sec-abstract-relational-comparison',
- 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/6.0/#sec-strict-equality-comparison',
- AdvanceStringIndex: 'https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex',
- ArrayCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-arraycreate',
- ArraySetLength: 'https://ecma-international.org/ecma-262/6.0/#sec-arraysetlength',
- ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate',
- Call: 'https://ecma-international.org/ecma-262/6.0/#sec-call',
- CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring',
- CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor',
- Construct: 'https://ecma-international.org/ecma-262/6.0/#sec-construct',
- CreateArrayFromList: 'https://ecma-international.org/ecma-262/6.0/#sec-createarrayfromlist',
- CreateDataProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty',
- CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow',
- CreateHTML: 'https://ecma-international.org/ecma-262/6.0/#sec-createhtml',
- CreateIterResultObject: 'https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject',
- CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike',
- CreateListIterator: 'https://ecma-international.org/ecma-262/6.0/#sec-createlistiterator',
- CreateMethodProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty',
- DateFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-date-number',
- Day: 'https://ecma-international.org/ecma-262/6.0/#sec-day-number-and-time-within-day',
- DayFromYear: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number',
- DaysInYear: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number',
- DayWithinYear: 'https://ecma-international.org/ecma-262/6.0/#sec-month-number',
- DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow',
- DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow',
- EnumerableOwnNames: 'https://ecma-international.org/ecma-262/6.0/#sec-enumerableownnames',
- FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor',
- Get: 'https://ecma-international.org/ecma-262/6.0/#sec-get-o-p',
- GetIterator: 'https://ecma-international.org/ecma-262/6.0/#sec-getiterator',
- GetMethod: 'https://ecma-international.org/ecma-262/6.0/#sec-getmethod',
- GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys',
- GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor',
- GetSubstitution: 'https://ecma-international.org/ecma-262/6.0/#sec-getsubstitution',
- GetV: 'https://ecma-international.org/ecma-262/6.0/#sec-getv',
- HasOwnProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty',
- HasProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-hasproperty',
- HourFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-hours-minutes-second-and-milliseconds',
- InLeapYear: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number',
- InstanceofOperator: 'https://ecma-international.org/ecma-262/6.0/#sec-instanceofoperator',
- Invoke: 'https://ecma-international.org/ecma-262/6.0/#sec-invoke',
- IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor',
- IsArray: 'https://ecma-international.org/ecma-262/6.0/#sec-isarray',
- IsCallable: 'https://ecma-international.org/ecma-262/6.0/#sec-iscallable',
- IsConcatSpreadable: 'https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable',
- IsConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-isconstructor',
- IsDataDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor',
- IsExtensible: 'https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o',
- IsGenericDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor',
- IsInteger: 'https://ecma-international.org/ecma-262/6.0/#sec-isinteger',
- IsPromise: 'https://ecma-international.org/ecma-262/6.0/#sec-ispromise',
- IsPropertyKey: 'https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey',
- IsRegExp: 'https://ecma-international.org/ecma-262/6.0/#sec-isregexp',
- IteratorClose: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose',
- IteratorComplete: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete',
- IteratorNext: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratornext',
- IteratorStep: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep',
- IteratorValue: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue',
- MakeDate: 'https://ecma-international.org/ecma-262/6.0/#sec-makedate',
- MakeDay: 'https://ecma-international.org/ecma-262/6.0/#sec-makeday',
- MakeTime: 'https://ecma-international.org/ecma-262/6.0/#sec-maketime',
- MinFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-hours-minutes-second-and-milliseconds',
- modulo: 'https://ecma-international.org/ecma-262/6.0/#sec-algorithm-conventions',
- MonthFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-month-number',
- msFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-hours-minutes-second-and-milliseconds',
- NormalCompletion: 'https://ecma-international.org/ecma-262/6.0/#sec-normalcompletion',
- ObjectCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-objectcreate',
- OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty',
- OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty',
- OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance',
- OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty',
- RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/6.0/#sec-regexpbuiltinexec',
- RegExpExec: 'https://ecma-international.org/ecma-262/6.0/#sec-regexpexec',
- RequireObjectCoercible: 'https://ecma-international.org/ecma-262/6.0/#sec-requireobjectcoercible',
- SameValue: 'https://ecma-international.org/ecma-262/6.0/#sec-samevalue',
- SameValueZero: 'https://ecma-international.org/ecma-262/6.0/#sec-samevaluezero',
- SecFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-hours-minutes-second-and-milliseconds',
- Set: 'https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw',
- SetFunctionName: 'https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname',
- SetIntegrityLevel: 'https://ecma-international.org/ecma-262/6.0/#sec-setintegritylevel',
- SpeciesConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor',
- SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring',
- TestIntegrityLevel: 'https://ecma-international.org/ecma-262/6.0/#sec-testintegritylevel',
- thisBooleanValue: 'https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object',
- thisNumberValue: 'https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object',
- thisStringValue: 'https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object',
- thisTimeValue: 'https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object',
- TimeClip: 'https://ecma-international.org/ecma-262/6.0/#sec-timeclip',
- TimeFromYear: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number',
- TimeWithinDay: 'https://ecma-international.org/ecma-262/6.0/#sec-day-number-and-time-within-day',
- ToBoolean: 'https://ecma-international.org/ecma-262/6.0/#sec-toboolean',
- ToDateString: 'https://ecma-international.org/ecma-262/6.0/#sec-todatestring',
- ToInt16: 'https://ecma-international.org/ecma-262/6.0/#sec-toint16',
- ToInt32: 'https://ecma-international.org/ecma-262/6.0/#sec-toint32',
- ToInt8: 'https://ecma-international.org/ecma-262/6.0/#sec-toint8',
- ToInteger: 'https://ecma-international.org/ecma-262/6.0/#sec-tointeger',
- ToLength: 'https://ecma-international.org/ecma-262/6.0/#sec-tolength',
- ToNumber: 'https://ecma-international.org/ecma-262/6.0/#sec-tonumber',
- ToObject: 'https://ecma-international.org/ecma-262/6.0/#sec-toobject',
- ToPrimitive: 'https://ecma-international.org/ecma-262/6.0/#sec-toprimitive',
- ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-topropertydescriptor',
- ToPropertyKey: 'https://ecma-international.org/ecma-262/6.0/#sec-topropertykey',
- ToString: 'https://ecma-international.org/ecma-262/6.0/#sec-tostring',
- ToUint16: 'https://ecma-international.org/ecma-262/6.0/#sec-touint16',
- ToUint32: 'https://ecma-international.org/ecma-262/6.0/#sec-touint32',
- ToUint8: 'https://ecma-international.org/ecma-262/6.0/#sec-touint8',
- ToUint8Clamp: 'https://ecma-international.org/ecma-262/6.0/#sec-touint8clamp',
- Type: 'https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types',
- ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor',
- WeekDay: 'https://ecma-international.org/ecma-262/6.0/#sec-week-day',
- YearFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number'
-};
diff --git a/node_modules/es-abstract/operations/2016.js b/node_modules/es-abstract/operations/2016.js
deleted file mode 100644
index 6a58b9c..0000000
--- a/node_modules/es-abstract/operations/2016.js
+++ /dev/null
@@ -1,276 +0,0 @@
-'use strict';
-
-module.exports = {
- IsPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op
-
- abs: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions',
- 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/7.0/#sec-abstract-equality-comparison',
- 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/7.0/#sec-abstract-relational-comparison',
- AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/7.0/#sec-addrestrictedfunctionproperties',
- AdvanceStringIndex: 'https://ecma-international.org/ecma-262/7.0/#sec-advancestringindex',
- AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-allocatearraybuffer',
- AllocateTypedArray: 'https://ecma-international.org/ecma-262/7.0/#sec-allocatetypedarray',
- AllocateTypedArrayBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-allocatetypedarraybuffer',
- ArrayCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-arraycreate',
- ArraySetLength: 'https://ecma-international.org/ecma-262/7.0/#sec-arraysetlength',
- ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-arrayspeciescreate',
- BlockDeclarationInstantiation: 'https://ecma-international.org/ecma-262/7.0/#sec-blockdeclarationinstantiation',
- BoundFunctionCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-boundfunctioncreate',
- Call: 'https://ecma-international.org/ecma-262/7.0/#sec-call',
- Canonicalize: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-canonicalize-ch',
- CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/7.0/#sec-canonicalnumericindexstring',
- CharacterRange: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-characterrange-abstract-operation',
- CharacterRangeOrUnion: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation',
- CharacterSetMatcher: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation',
- CloneArrayBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-clonearraybuffer',
- CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-completepropertydescriptor',
- Completion: 'https://ecma-international.org/ecma-262/7.0/#sec-completion-record-specification-type',
- Construct: 'https://ecma-international.org/ecma-262/7.0/#sec-construct',
- CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/7.0/#sec-copydatablockbytes',
- CreateArrayFromList: 'https://ecma-international.org/ecma-262/7.0/#sec-createarrayfromlist',
- CreateArrayIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createarrayiterator',
- CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/7.0/#sec-createbuiltinfunction',
- CreateByteDataBlock: 'https://ecma-international.org/ecma-262/7.0/#sec-createbytedatablock',
- CreateDataProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-createdataproperty',
- CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/7.0/#sec-createdatapropertyorthrow',
- CreateDynamicFunction: 'https://ecma-international.org/ecma-262/7.0/#sec-createdynamicfunction',
- CreateHTML: 'https://ecma-international.org/ecma-262/7.0/#sec-createhtml',
- CreateIntrinsics: 'https://ecma-international.org/ecma-262/7.0/#sec-createintrinsics',
- CreateIterResultObject: 'https://ecma-international.org/ecma-262/7.0/#sec-createiterresultobject',
- CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/7.0/#sec-createlistfromarraylike',
- CreateListIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createlistiterator',
- CreateMapIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createmapiterator',
- CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/7.0/#sec-createmappedargumentsobject',
- CreateMethodProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-createmethodproperty',
- CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-createperiterationenvironment',
- CreateRealm: 'https://ecma-international.org/ecma-262/7.0/#sec-createrealm',
- CreateResolvingFunctions: 'https://ecma-international.org/ecma-262/7.0/#sec-createresolvingfunctions',
- CreateSetIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createsetiterator',
- CreateStringIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createstringiterator',
- CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/7.0/#sec-createunmappedargumentsobject',
- DateFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-date-number',
- Day: 'https://ecma-international.org/ecma-262/7.0/#sec-day-number-and-time-within-day',
- DayFromYear: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number',
- DaysInYear: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number',
- DayWithinYear: 'https://ecma-international.org/ecma-262/7.0/#sec-month-number',
- Decode: 'https://ecma-international.org/ecma-262/7.0/#sec-decode',
- DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/7.0/#sec-definepropertyorthrow',
- DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/7.0/#sec-deletepropertyorthrow',
- DetachArrayBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-detacharraybuffer',
- Encode: 'https://ecma-international.org/ecma-262/7.0/#sec-encode',
- EnqueueJob: 'https://ecma-international.org/ecma-262/7.0/#sec-enqueuejob',
- EnumerableOwnNames: 'https://ecma-international.org/ecma-262/7.0/#sec-enumerableownnames',
- EnumerateObjectProperties: 'https://ecma-international.org/ecma-262/7.0/#sec-enumerate-object-properties',
- EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/7.0/#sec-escaperegexppattern',
- EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/7.0/#sec-evaldeclarationinstantiation',
- EvaluateCall: 'https://ecma-international.org/ecma-262/7.0/#sec-evaluatecall',
- EvaluateDirectCall: 'https://ecma-international.org/ecma-262/7.0/#sec-evaluatedirectcall',
- EvaluateNew: 'https://ecma-international.org/ecma-262/7.0/#sec-evaluatenew',
- floor: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions',
- ForBodyEvaluation: 'https://ecma-international.org/ecma-262/7.0/#sec-forbodyevaluation',
- 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset',
- 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind',
- FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-frompropertydescriptor',
- FulfillPromise: 'https://ecma-international.org/ecma-262/7.0/#sec-fulfillpromise',
- FunctionAllocate: 'https://ecma-international.org/ecma-262/7.0/#sec-functionallocate',
- FunctionCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-functioncreate',
- FunctionDeclarationInstantiation: 'https://ecma-international.org/ecma-262/7.0/#sec-functiondeclarationinstantiation',
- FunctionInitialize: 'https://ecma-international.org/ecma-262/7.0/#sec-functioninitialize',
- GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorfunctioncreate',
- GeneratorResume: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorresume',
- GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorresumeabrupt',
- GeneratorStart: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorstart',
- GeneratorValidate: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorvalidate',
- GeneratorYield: 'https://ecma-international.org/ecma-262/7.0/#sec-generatoryield',
- Get: 'https://ecma-international.org/ecma-262/7.0/#sec-get-o-p',
- GetActiveScriptOrModule: 'https://ecma-international.org/ecma-262/7.0/#sec-getactivescriptormodule',
- GetFunctionRealm: 'https://ecma-international.org/ecma-262/7.0/#sec-getfunctionrealm',
- GetGlobalObject: 'https://ecma-international.org/ecma-262/7.0/#sec-getglobalobject',
- GetIdentifierReference: 'https://ecma-international.org/ecma-262/7.0/#sec-getidentifierreference',
- GetIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-getiterator',
- GetMethod: 'https://ecma-international.org/ecma-262/7.0/#sec-getmethod',
- GetModuleNamespace: 'https://ecma-international.org/ecma-262/7.0/#sec-getmodulenamespace',
- GetNewTarget: 'https://ecma-international.org/ecma-262/7.0/#sec-getnewtarget',
- GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/7.0/#sec-getownpropertykeys',
- GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-getprototypefromconstructor',
- GetSubstitution: 'https://ecma-international.org/ecma-262/7.0/#sec-getsubstitution',
- GetSuperConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-getsuperconstructor',
- GetTemplateObject: 'https://ecma-international.org/ecma-262/7.0/#sec-gettemplateobject',
- GetThisEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-getthisenvironment',
- GetThisValue: 'https://ecma-international.org/ecma-262/7.0/#sec-getthisvalue',
- GetV: 'https://ecma-international.org/ecma-262/7.0/#sec-getv',
- GetValue: 'https://ecma-international.org/ecma-262/7.0/#sec-getvalue',
- GetValueFromBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-getvaluefrombuffer',
- GetViewValue: 'https://ecma-international.org/ecma-262/7.0/#sec-getviewvalue',
- GlobalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/7.0/#sec-globaldeclarationinstantiation',
- HasOwnProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-hasownproperty',
- HasProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-hasproperty',
- HostPromiseRejectionTracker: 'https://ecma-international.org/ecma-262/7.0/#sec-host-promise-rejection-tracker',
- HostReportErrors: 'https://ecma-international.org/ecma-262/7.0/#sec-host-report-errors',
- HostResolveImportedModule: 'https://ecma-international.org/ecma-262/7.0/#sec-hostresolveimportedmodule',
- HourFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-hours-minutes-second-and-milliseconds',
- IfAbruptRejectPromise: 'https://ecma-international.org/ecma-262/7.0/#sec-ifabruptrejectpromise',
- ImportedLocalNames: 'https://ecma-international.org/ecma-262/7.0/#sec-importedlocalnames',
- InitializeBoundName: 'https://ecma-international.org/ecma-262/7.0/#sec-initializeboundname',
- InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/7.0/#sec-initializehostdefinedrealm',
- InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/7.0/#sec-initializereferencedbinding',
- InLeapYear: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number',
- InstanceofOperator: 'https://ecma-international.org/ecma-262/7.0/#sec-instanceofoperator',
- IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/7.0/#sec-integerindexedelementget',
- IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/7.0/#sec-integerindexedelementset',
- IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-integerindexedobjectcreate',
- InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-internalizejsonproperty',
- Invoke: 'https://ecma-international.org/ecma-262/7.0/#sec-invoke',
- IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-isaccessordescriptor',
- IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/7.0/#sec-isanonymousfunctiondefinition',
- IsArray: 'https://ecma-international.org/ecma-262/7.0/#sec-isarray',
- IsCallable: 'https://ecma-international.org/ecma-262/7.0/#sec-iscallable',
- IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-iscompatiblepropertydescriptor',
- IsConcatSpreadable: 'https://ecma-international.org/ecma-262/7.0/#sec-isconcatspreadable',
- IsConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-isconstructor',
- IsDataDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-isdatadescriptor',
- IsDetachedBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-isdetachedbuffer',
- IsExtensible: 'https://ecma-international.org/ecma-262/7.0/#sec-isextensible-o',
- IsGenericDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-isgenericdescriptor',
- IsInTailPosition: 'https://ecma-international.org/ecma-262/7.0/#sec-isintailposition',
- IsInteger: 'https://ecma-international.org/ecma-262/7.0/#sec-isinteger',
- IsLabelledFunction: 'https://ecma-international.org/ecma-262/7.0/#sec-islabelledfunction',
- IsPromise: 'https://ecma-international.org/ecma-262/7.0/#sec-ispromise',
- IsPropertyKey: 'https://ecma-international.org/ecma-262/7.0/#sec-ispropertykey',
- IsRegExp: 'https://ecma-international.org/ecma-262/7.0/#sec-isregexp',
- IsWordChar: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-iswordchar-abstract-operation',
- IterableToArrayLike: 'https://ecma-international.org/ecma-262/7.0/#sec-iterabletoarraylike',
- IteratorClose: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratorclose',
- IteratorComplete: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratorcomplete',
- IteratorNext: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratornext',
- IteratorStep: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratorstep',
- IteratorValue: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratorvalue',
- LocalTime: 'https://ecma-international.org/ecma-262/7.0/#sec-localtime',
- LoopContinues: 'https://ecma-international.org/ecma-262/7.0/#sec-loopcontinues',
- MakeArgGetter: 'https://ecma-international.org/ecma-262/7.0/#sec-makearggetter',
- MakeArgSetter: 'https://ecma-international.org/ecma-262/7.0/#sec-makeargsetter',
- MakeClassConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-makeclassconstructor',
- MakeConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-makeconstructor',
- MakeDate: 'https://ecma-international.org/ecma-262/7.0/#sec-makedate',
- MakeDay: 'https://ecma-international.org/ecma-262/7.0/#sec-makeday',
- MakeMethod: 'https://ecma-international.org/ecma-262/7.0/#sec-makemethod',
- MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/7.0/#sec-makesuperpropertyreference',
- MakeTime: 'https://ecma-international.org/ecma-262/7.0/#sec-maketime',
- max: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions',
- min: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions',
- MinFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-hours-minutes-second-and-milliseconds',
- ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-modulenamespacecreate',
- modulo: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions',
- MonthFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-month-number',
- msFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-hours-minutes-second-and-milliseconds',
- NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newdeclarativeenvironment',
- NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newfunctionenvironment',
- NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newglobalenvironment',
- NewModuleEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newmoduleenvironment',
- NewObjectEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newobjectenvironment',
- NewPromiseCapability: 'https://ecma-international.org/ecma-262/7.0/#sec-newpromisecapability',
- NextJob: 'https://ecma-international.org/ecma-262/7.0/#sec-nextjob-result',
- NormalCompletion: 'https://ecma-international.org/ecma-262/7.0/#sec-normalcompletion',
- ObjectCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-objectcreate',
- ObjectDefineProperties: 'https://ecma-international.org/ecma-262/7.0/#sec-objectdefineproperties',
- OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarycallbindthis',
- OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarycallevaluatebody',
- OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarycreatefromconstructor',
- OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarydefineownproperty',
- OrdinaryDelete: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarydelete',
- OrdinaryGet: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryget',
- OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetownproperty',
- OrdinaryGetPrototypeOf: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetprototypeof',
- OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryhasinstance',
- OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryhasproperty',
- OrdinaryIsExtensible: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryisextensible',
- OrdinaryOwnPropertyKeys: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryownpropertykeys',
- OrdinaryPreventExtensions: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarypreventextensions',
- OrdinarySet: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryset',
- OrdinarySetPrototypeOf: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarysetprototypeof',
- ParseModule: 'https://ecma-international.org/ecma-262/7.0/#sec-parsemodule',
- ParseScript: 'https://ecma-international.org/ecma-262/7.0/#sec-parse-script',
- PerformEval: 'https://ecma-international.org/ecma-262/7.0/#sec-performeval',
- PerformPromiseAll: 'https://ecma-international.org/ecma-262/7.0/#sec-performpromiseall',
- PerformPromiseRace: 'https://ecma-international.org/ecma-262/7.0/#sec-performpromiserace',
- PerformPromiseThen: 'https://ecma-international.org/ecma-262/7.0/#sec-performpromisethen',
- PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/7.0/#sec-prepareforordinarycall',
- PrepareForTailCall: 'https://ecma-international.org/ecma-262/7.0/#sec-preparefortailcall',
- PromiseReactionJob: 'https://ecma-international.org/ecma-262/7.0/#sec-promisereactionjob',
- PromiseResolveThenableJob: 'https://ecma-international.org/ecma-262/7.0/#sec-promiseresolvethenablejob',
- ProxyCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-proxycreate',
- PutValue: 'https://ecma-international.org/ecma-262/7.0/#sec-putvalue',
- QuoteJSONString: 'https://ecma-international.org/ecma-262/7.0/#sec-quotejsonstring',
- RegExpAlloc: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpalloc',
- RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpbuiltinexec',
- RegExpCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpcreate',
- RegExpExec: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpexec',
- RegExpInitialize: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpinitialize',
- RejectPromise: 'https://ecma-international.org/ecma-262/7.0/#sec-rejectpromise',
- RepeatMatcher: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-repeatmatcher-abstract-operation',
- RequireObjectCoercible: 'https://ecma-international.org/ecma-262/7.0/#sec-requireobjectcoercible',
- ResolveBinding: 'https://ecma-international.org/ecma-262/7.0/#sec-resolvebinding',
- ResolveThisBinding: 'https://ecma-international.org/ecma-262/7.0/#sec-resolvethisbinding',
- ReturnIfAbrupt: 'https://ecma-international.org/ecma-262/7.0/#sec-returnifabrupt',
- SameValue: 'https://ecma-international.org/ecma-262/7.0/#sec-samevalue',
- SameValueNonNumber: 'https://ecma-international.org/ecma-262/7.0/#sec-samevaluenonnumber',
- SameValueZero: 'https://ecma-international.org/ecma-262/7.0/#sec-samevaluezero',
- ScriptEvaluation: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-scriptevaluation',
- ScriptEvaluationJob: 'https://ecma-international.org/ecma-262/7.0/#sec-scriptevaluationjob',
- SecFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-hours-minutes-second-and-milliseconds',
- SerializeJSONArray: 'https://ecma-international.org/ecma-262/7.0/#sec-serializejsonarray',
- SerializeJSONObject: 'https://ecma-international.org/ecma-262/7.0/#sec-serializejsonobject',
- SerializeJSONProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-serializejsonproperty',
- Set: 'https://ecma-international.org/ecma-262/7.0/#sec-set-o-p-v-throw',
- SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/7.0/#sec-setdefaultglobalbindings',
- SetFunctionName: 'https://ecma-international.org/ecma-262/7.0/#sec-setfunctionname',
- SetIntegrityLevel: 'https://ecma-international.org/ecma-262/7.0/#sec-setintegritylevel',
- SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/7.0/#sec-setrealmglobalobject',
- SetValueInBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-setvalueinbuffer',
- SetViewValue: 'https://ecma-international.org/ecma-262/7.0/#sec-setviewvalue',
- SortCompare: 'https://ecma-international.org/ecma-262/7.0/#sec-sortcompare',
- SpeciesConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-speciesconstructor',
- SplitMatch: 'https://ecma-international.org/ecma-262/7.0/#sec-splitmatch',
- 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/7.0/#sec-strict-equality-comparison',
- StringCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-stringcreate',
- SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/7.0/#sec-symboldescriptivestring',
- TestIntegrityLevel: 'https://ecma-international.org/ecma-262/7.0/#sec-testintegritylevel',
- thisBooleanValue: 'https://ecma-international.org/ecma-262/7.0/#sec-thisbooleanvalue',
- thisNumberValue: 'https://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-number-prototype-object',
- thisStringValue: 'https://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-string-prototype-object',
- thisTimeValue: 'https://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-date-prototype-object',
- TimeClip: 'https://ecma-international.org/ecma-262/7.0/#sec-timeclip',
- TimeFromYear: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number',
- TimeWithinDay: 'https://ecma-international.org/ecma-262/7.0/#sec-day-number-and-time-within-day',
- ToBoolean: 'https://ecma-international.org/ecma-262/7.0/#sec-toboolean',
- ToDateString: 'https://ecma-international.org/ecma-262/7.0/#sec-todatestring',
- ToInt16: 'https://ecma-international.org/ecma-262/7.0/#sec-toint16',
- ToInt32: 'https://ecma-international.org/ecma-262/7.0/#sec-toint32',
- ToInt8: 'https://ecma-international.org/ecma-262/7.0/#sec-toint8',
- ToInteger: 'https://ecma-international.org/ecma-262/7.0/#sec-tointeger',
- ToLength: 'https://ecma-international.org/ecma-262/7.0/#sec-tolength',
- ToNumber: 'https://ecma-international.org/ecma-262/7.0/#sec-tonumber',
- ToObject: 'https://ecma-international.org/ecma-262/7.0/#sec-toobject',
- TopLevelModuleEvaluationJob: 'https://ecma-international.org/ecma-262/7.0/#sec-toplevelmoduleevaluationjob',
- ToPrimitive: 'https://ecma-international.org/ecma-262/7.0/#sec-toprimitive',
- ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-topropertydescriptor',
- ToPropertyKey: 'https://ecma-international.org/ecma-262/7.0/#sec-topropertykey',
- ToString: 'https://ecma-international.org/ecma-262/7.0/#sec-tostring',
- 'ToString Applied to the Number Type': 'https://ecma-international.org/ecma-262/7.0/#sec-tostring-applied-to-the-number-type',
- ToUint16: 'https://ecma-international.org/ecma-262/7.0/#sec-touint16',
- ToUint32: 'https://ecma-international.org/ecma-262/7.0/#sec-touint32',
- ToUint8: 'https://ecma-international.org/ecma-262/7.0/#sec-touint8',
- ToUint8Clamp: 'https://ecma-international.org/ecma-262/7.0/#sec-touint8clamp',
- TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/7.0/#sec-triggerpromisereactions',
- Type: 'https://ecma-international.org/ecma-262/7.0/#sec-ecmascript-data-types-and-values',
- TypedArrayCreate: 'https://ecma-international.org/ecma-262/7.0/#typedarray-create',
- TypedArraySpeciesCreate: 'https://ecma-international.org/ecma-262/7.0/#typedarray-species-create',
- UpdateEmpty: 'https://ecma-international.org/ecma-262/7.0/#sec-updateempty',
- UTC: 'https://ecma-international.org/ecma-262/7.0/#sec-utc-t',
- UTF16Decode: 'https://ecma-international.org/ecma-262/7.0/#sec-utf16decode',
- UTF16Encoding: 'https://ecma-international.org/ecma-262/7.0/#sec-utf16encoding',
- ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-validateandapplypropertydescriptor',
- ValidateTypedArray: 'https://ecma-international.org/ecma-262/7.0/#sec-validatetypedarray',
- WeekDay: 'https://ecma-international.org/ecma-262/7.0/#sec-week-day',
- YearFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number'
-};
diff --git a/node_modules/es-abstract/operations/2017.js b/node_modules/es-abstract/operations/2017.js
deleted file mode 100644
index 896fcee..0000000
--- a/node_modules/es-abstract/operations/2017.js
+++ /dev/null
@@ -1,324 +0,0 @@
-'use strict';
-
-module.exports = {
- IsPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op
-
- abs: 'https://ecma-international.org/ecma-262/8.0/#eqn-abs',
- 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/8.0/#sec-abstract-equality-comparison',
- 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/8.0/#sec-abstract-relational-comparison',
- AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/8.0/#sec-addrestrictedfunctionproperties',
- AddWaiter: 'https://ecma-international.org/ecma-262/8.0/#sec-addwaiter',
- AdvanceStringIndex: 'https://ecma-international.org/ecma-262/8.0/#sec-advancestringindex',
- 'agent-order': 'https://ecma-international.org/ecma-262/8.0/#sec-agent-order',
- AgentCanSuspend: 'https://ecma-international.org/ecma-262/8.0/#sec-agentcansuspend',
- AgentSignifier: 'https://ecma-international.org/ecma-262/8.0/#sec-agentsignifier',
- AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-allocatearraybuffer',
- AllocateSharedArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-allocatesharedarraybuffer',
- AllocateTypedArray: 'https://ecma-international.org/ecma-262/8.0/#sec-allocatetypedarray',
- AllocateTypedArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-allocatetypedarraybuffer',
- ArrayCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-arraycreate',
- ArraySetLength: 'https://ecma-international.org/ecma-262/8.0/#sec-arraysetlength',
- ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-arrayspeciescreate',
- AsyncFunctionAwait: 'https://ecma-international.org/ecma-262/8.0/#sec-async-functions-abstract-operations-async-function-await',
- AsyncFunctionCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-async-functions-abstract-operations-async-function-create',
- AsyncFunctionStart: 'https://ecma-international.org/ecma-262/8.0/#sec-async-functions-abstract-operations-async-function-start',
- AtomicLoad: 'https://ecma-international.org/ecma-262/8.0/#sec-atomicload',
- AtomicReadModifyWrite: 'https://ecma-international.org/ecma-262/8.0/#sec-atomicreadmodifywrite',
- BlockDeclarationInstantiation: 'https://ecma-international.org/ecma-262/8.0/#sec-blockdeclarationinstantiation',
- BoundFunctionCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-boundfunctioncreate',
- Call: 'https://ecma-international.org/ecma-262/8.0/#sec-call',
- Canonicalize: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-canonicalize-ch',
- CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/8.0/#sec-canonicalnumericindexstring',
- CharacterRange: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-characterrange-abstract-operation',
- CharacterRangeOrUnion: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation',
- CharacterSetMatcher: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation',
- CloneArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-clonearraybuffer',
- CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-completepropertydescriptor',
- Completion: 'https://ecma-international.org/ecma-262/8.0/#sec-completion-record-specification-type',
- ComposeWriteEventBytes: 'https://ecma-international.org/ecma-262/8.0/#sec-composewriteeventbytes',
- Construct: 'https://ecma-international.org/ecma-262/8.0/#sec-construct',
- CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/8.0/#sec-copydatablockbytes',
- CreateArrayFromList: 'https://ecma-international.org/ecma-262/8.0/#sec-createarrayfromlist',
- CreateArrayIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createarrayiterator',
- CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/8.0/#sec-createbuiltinfunction',
- CreateByteDataBlock: 'https://ecma-international.org/ecma-262/8.0/#sec-createbytedatablock',
- CreateDataProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-createdataproperty',
- CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/8.0/#sec-createdatapropertyorthrow',
- CreateDynamicFunction: 'https://ecma-international.org/ecma-262/8.0/#sec-createdynamicfunction',
- CreateHTML: 'https://ecma-international.org/ecma-262/8.0/#sec-createhtml',
- CreateIntrinsics: 'https://ecma-international.org/ecma-262/8.0/#sec-createintrinsics',
- CreateIterResultObject: 'https://ecma-international.org/ecma-262/8.0/#sec-createiterresultobject',
- CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/8.0/#sec-createlistfromarraylike',
- CreateListIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createlistiterator',
- CreateMapIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createmapiterator',
- CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/8.0/#sec-createmappedargumentsobject',
- CreateMethodProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-createmethodproperty',
- CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-createperiterationenvironment',
- CreateRealm: 'https://ecma-international.org/ecma-262/8.0/#sec-createrealm',
- CreateResolvingFunctions: 'https://ecma-international.org/ecma-262/8.0/#sec-createresolvingfunctions',
- CreateSetIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createsetiterator',
- CreateSharedByteDataBlock: 'https://ecma-international.org/ecma-262/8.0/#sec-createsharedbytedatablock',
- CreateStringIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createstringiterator',
- CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/8.0/#sec-createunmappedargumentsobject',
- DateFromTime: 'https://ecma-international.org/ecma-262/8.0/#sec-date-number',
- Day: 'https://ecma-international.org/ecma-262/8.0/#eqn-Day',
- DayFromYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-DaysFromYear',
- DaysInYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-DaysInYear',
- DayWithinYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-DayWithinYear',
- Decode: 'https://ecma-international.org/ecma-262/8.0/#sec-decode',
- DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/8.0/#sec-definepropertyorthrow',
- DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/8.0/#sec-deletepropertyorthrow',
- DetachArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-detacharraybuffer',
- Encode: 'https://ecma-international.org/ecma-262/8.0/#sec-encode',
- EnqueueJob: 'https://ecma-international.org/ecma-262/8.0/#sec-enqueuejob',
- EnterCriticalSection: 'https://ecma-international.org/ecma-262/8.0/#sec-entercriticalsection',
- EnumerableOwnProperties: 'https://ecma-international.org/ecma-262/8.0/#sec-enumerableownproperties',
- EnumerateObjectProperties: 'https://ecma-international.org/ecma-262/8.0/#sec-enumerate-object-properties',
- EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/8.0/#sec-escaperegexppattern',
- EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/8.0/#sec-evaldeclarationinstantiation',
- EvaluateCall: 'https://ecma-international.org/ecma-262/8.0/#sec-evaluatecall',
- EvaluateDirectCall: 'https://ecma-international.org/ecma-262/8.0/#sec-evaluatedirectcall',
- EvaluateNew: 'https://ecma-international.org/ecma-262/8.0/#sec-evaluatenew',
- EventSet: 'https://ecma-international.org/ecma-262/8.0/#sec-event-set',
- floor: 'https://ecma-international.org/ecma-262/8.0/#eqn-floor',
- ForBodyEvaluation: 'https://ecma-international.org/ecma-262/8.0/#sec-forbodyevaluation',
- 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset',
- 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind',
- FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-frompropertydescriptor',
- FulfillPromise: 'https://ecma-international.org/ecma-262/8.0/#sec-fulfillpromise',
- FunctionAllocate: 'https://ecma-international.org/ecma-262/8.0/#sec-functionallocate',
- FunctionCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-functioncreate',
- FunctionDeclarationInstantiation: 'https://ecma-international.org/ecma-262/8.0/#sec-functiondeclarationinstantiation',
- FunctionInitialize: 'https://ecma-international.org/ecma-262/8.0/#sec-functioninitialize',
- GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorfunctioncreate',
- GeneratorResume: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorresume',
- GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorresumeabrupt',
- GeneratorStart: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorstart',
- GeneratorValidate: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorvalidate',
- GeneratorYield: 'https://ecma-international.org/ecma-262/8.0/#sec-generatoryield',
- Get: 'https://ecma-international.org/ecma-262/8.0/#sec-get-o-p',
- GetActiveScriptOrModule: 'https://ecma-international.org/ecma-262/8.0/#sec-getactivescriptormodule',
- GetBase: 'https://ecma-international.org/ecma-262/8.0/#ao-getbase',
- GetFunctionRealm: 'https://ecma-international.org/ecma-262/8.0/#sec-getfunctionrealm',
- GetGlobalObject: 'https://ecma-international.org/ecma-262/8.0/#sec-getglobalobject',
- GetIdentifierReference: 'https://ecma-international.org/ecma-262/8.0/#sec-getidentifierreference',
- GetIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-getiterator',
- GetMethod: 'https://ecma-international.org/ecma-262/8.0/#sec-getmethod',
- GetModifySetValueInBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-getmodifysetvalueinbuffer',
- GetModuleNamespace: 'https://ecma-international.org/ecma-262/8.0/#sec-getmodulenamespace',
- GetNewTarget: 'https://ecma-international.org/ecma-262/8.0/#sec-getnewtarget',
- GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/8.0/#sec-getownpropertykeys',
- GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-getprototypefromconstructor',
- GetReferencedName: 'https://ecma-international.org/ecma-262/8.0/#ao-getreferencedname',
- GetSubstitution: 'https://ecma-international.org/ecma-262/8.0/#sec-getsubstitution',
- GetSuperConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-getsuperconstructor',
- GetTemplateObject: 'https://ecma-international.org/ecma-262/8.0/#sec-gettemplateobject',
- GetThisEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-getthisenvironment',
- GetThisValue: 'https://ecma-international.org/ecma-262/8.0/#sec-getthisvalue',
- GetV: 'https://ecma-international.org/ecma-262/8.0/#sec-getv',
- GetValue: 'https://ecma-international.org/ecma-262/8.0/#sec-getvalue',
- GetValueFromBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-getvaluefrombuffer',
- GetViewValue: 'https://ecma-international.org/ecma-262/8.0/#sec-getviewvalue',
- GetWaiterList: 'https://ecma-international.org/ecma-262/8.0/#sec-getwaiterlist',
- GlobalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/8.0/#sec-globaldeclarationinstantiation',
- 'happens-before': 'https://ecma-international.org/ecma-262/8.0/#sec-happens-before',
- HasOwnProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-hasownproperty',
- HasPrimitiveBase: 'https://ecma-international.org/ecma-262/8.0/#ao-hasprimitivebase',
- HasProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-hasproperty',
- 'host-synchronizes-with': 'https://ecma-international.org/ecma-262/8.0/#sec-host-synchronizes-with',
- HostEnsureCanCompileStrings: 'https://ecma-international.org/ecma-262/8.0/#sec-hostensurecancompilestrings',
- HostEventSet: 'https://ecma-international.org/ecma-262/8.0/#sec-hosteventset',
- HostPromiseRejectionTracker: 'https://ecma-international.org/ecma-262/8.0/#sec-host-promise-rejection-tracker',
- HostReportErrors: 'https://ecma-international.org/ecma-262/8.0/#sec-host-report-errors',
- HostResolveImportedModule: 'https://ecma-international.org/ecma-262/8.0/#sec-hostresolveimportedmodule',
- HourFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-HourFromTime',
- IfAbruptRejectPromise: 'https://ecma-international.org/ecma-262/8.0/#sec-ifabruptrejectpromise',
- ImportedLocalNames: 'https://ecma-international.org/ecma-262/8.0/#sec-importedlocalnames',
- InitializeBoundName: 'https://ecma-international.org/ecma-262/8.0/#sec-initializeboundname',
- InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/8.0/#sec-initializehostdefinedrealm',
- InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/8.0/#sec-initializereferencedbinding',
- InLeapYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-InLeapYear',
- InstanceofOperator: 'https://ecma-international.org/ecma-262/8.0/#sec-instanceofoperator',
- IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/8.0/#sec-integerindexedelementget',
- IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/8.0/#sec-integerindexedelementset',
- IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-integerindexedobjectcreate',
- InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-internalizejsonproperty',
- Invoke: 'https://ecma-international.org/ecma-262/8.0/#sec-invoke',
- IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-isaccessordescriptor',
- IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/8.0/#sec-isanonymousfunctiondefinition',
- IsArray: 'https://ecma-international.org/ecma-262/8.0/#sec-isarray',
- IsCallable: 'https://ecma-international.org/ecma-262/8.0/#sec-iscallable',
- IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-iscompatiblepropertydescriptor',
- IsConcatSpreadable: 'https://ecma-international.org/ecma-262/8.0/#sec-isconcatspreadable',
- IsConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-isconstructor',
- IsDataDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-isdatadescriptor',
- IsDetachedBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-isdetachedbuffer',
- IsExtensible: 'https://ecma-international.org/ecma-262/8.0/#sec-isextensible-o',
- IsGenericDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-isgenericdescriptor',
- IsInTailPosition: 'https://ecma-international.org/ecma-262/8.0/#sec-isintailposition',
- IsInteger: 'https://ecma-international.org/ecma-262/8.0/#sec-isinteger',
- IsLabelledFunction: 'https://ecma-international.org/ecma-262/8.0/#sec-islabelledfunction',
- IsPromise: 'https://ecma-international.org/ecma-262/8.0/#sec-ispromise',
- IsPropertyKey: 'https://ecma-international.org/ecma-262/8.0/#sec-ispropertykey',
- IsPropertyReference: 'https://ecma-international.org/ecma-262/8.0/#ao-ispropertyreference',
- IsRegExp: 'https://ecma-international.org/ecma-262/8.0/#sec-isregexp',
- IsSharedArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-issharedarraybuffer',
- IsStrictReference: 'https://ecma-international.org/ecma-262/8.0/#ao-isstrictreference',
- IsSuperReference: 'https://ecma-international.org/ecma-262/8.0/#ao-issuperreference',
- IsUnresolvableReference: 'https://ecma-international.org/ecma-262/8.0/#ao-isunresolvablereference',
- IsWordChar: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-iswordchar-abstract-operation',
- IterableToList: 'https://ecma-international.org/ecma-262/8.0/#sec-iterabletolist',
- IteratorClose: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratorclose',
- IteratorComplete: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratorcomplete',
- IteratorNext: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratornext',
- IteratorStep: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratorstep',
- IteratorValue: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratorvalue',
- LeaveCriticalSection: 'https://ecma-international.org/ecma-262/8.0/#sec-leavecriticalsection',
- LocalTime: 'https://ecma-international.org/ecma-262/8.0/#sec-localtime',
- LoopContinues: 'https://ecma-international.org/ecma-262/8.0/#sec-loopcontinues',
- MakeArgGetter: 'https://ecma-international.org/ecma-262/8.0/#sec-makearggetter',
- MakeArgSetter: 'https://ecma-international.org/ecma-262/8.0/#sec-makeargsetter',
- MakeClassConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-makeclassconstructor',
- MakeConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-makeconstructor',
- MakeDate: 'https://ecma-international.org/ecma-262/8.0/#sec-makedate',
- MakeDay: 'https://ecma-international.org/ecma-262/8.0/#sec-makeday',
- MakeMethod: 'https://ecma-international.org/ecma-262/8.0/#sec-makemethod',
- MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/8.0/#sec-makesuperpropertyreference',
- MakeTime: 'https://ecma-international.org/ecma-262/8.0/#sec-maketime',
- max: 'https://ecma-international.org/ecma-262/8.0/#eqn-max',
- 'memory-order': 'https://ecma-international.org/ecma-262/8.0/#sec-memory-order',
- min: 'https://ecma-international.org/ecma-262/8.0/#eqn-min',
- MinFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-MinFromTime',
- ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-modulenamespacecreate',
- modulo: 'https://ecma-international.org/ecma-262/8.0/#eqn-modulo',
- MonthFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-MonthFromTime',
- msFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-msFromTime',
- NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newdeclarativeenvironment',
- NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newfunctionenvironment',
- NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newglobalenvironment',
- NewModuleEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newmoduleenvironment',
- NewObjectEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newobjectenvironment',
- NewPromiseCapability: 'https://ecma-international.org/ecma-262/8.0/#sec-newpromisecapability',
- NormalCompletion: 'https://ecma-international.org/ecma-262/8.0/#sec-normalcompletion',
- NumberToRawBytes: 'https://ecma-international.org/ecma-262/8.0/#sec-numbertorawbytes',
- ObjectCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-objectcreate',
- ObjectDefineProperties: 'https://ecma-international.org/ecma-262/8.0/#sec-objectdefineproperties',
- OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarycallbindthis',
- OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarycallevaluatebody',
- OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarycreatefromconstructor',
- OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarydefineownproperty',
- OrdinaryDelete: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarydelete',
- OrdinaryGet: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryget',
- OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarygetownproperty',
- OrdinaryGetPrototypeOf: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarygetprototypeof',
- OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryhasinstance',
- OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryhasproperty',
- OrdinaryIsExtensible: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryisextensible',
- OrdinaryOwnPropertyKeys: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryownpropertykeys',
- OrdinaryPreventExtensions: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarypreventextensions',
- OrdinarySet: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryset',
- OrdinarySetPrototypeOf: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarysetprototypeof',
- OrdinaryToPrimitive: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarytoprimitive',
- ParseModule: 'https://ecma-international.org/ecma-262/8.0/#sec-parsemodule',
- ParseScript: 'https://ecma-international.org/ecma-262/8.0/#sec-parse-script',
- PerformEval: 'https://ecma-international.org/ecma-262/8.0/#sec-performeval',
- PerformPromiseAll: 'https://ecma-international.org/ecma-262/8.0/#sec-performpromiseall',
- PerformPromiseRace: 'https://ecma-international.org/ecma-262/8.0/#sec-performpromiserace',
- PerformPromiseThen: 'https://ecma-international.org/ecma-262/8.0/#sec-performpromisethen',
- PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/8.0/#sec-prepareforordinarycall',
- PrepareForTailCall: 'https://ecma-international.org/ecma-262/8.0/#sec-preparefortailcall',
- PromiseReactionJob: 'https://ecma-international.org/ecma-262/8.0/#sec-promisereactionjob',
- PromiseResolveThenableJob: 'https://ecma-international.org/ecma-262/8.0/#sec-promiseresolvethenablejob',
- ProxyCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-proxycreate',
- PutValue: 'https://ecma-international.org/ecma-262/8.0/#sec-putvalue',
- QuoteJSONString: 'https://ecma-international.org/ecma-262/8.0/#sec-quotejsonstring',
- RawBytesToNumber: 'https://ecma-international.org/ecma-262/8.0/#sec-rawbytestonumber',
- 'reads-bytes-from': 'https://ecma-international.org/ecma-262/8.0/#sec-reads-bytes-from',
- 'reads-from': 'https://ecma-international.org/ecma-262/8.0/#sec-reads-from',
- RegExpAlloc: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpalloc',
- RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpbuiltinexec',
- RegExpCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpcreate',
- RegExpExec: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpexec',
- RegExpInitialize: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpinitialize',
- RejectPromise: 'https://ecma-international.org/ecma-262/8.0/#sec-rejectpromise',
- RemoveWaiter: 'https://ecma-international.org/ecma-262/8.0/#sec-removewaiter',
- RemoveWaiters: 'https://ecma-international.org/ecma-262/8.0/#sec-removewaiters',
- RepeatMatcher: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-repeatmatcher-abstract-operation',
- RequireObjectCoercible: 'https://ecma-international.org/ecma-262/8.0/#sec-requireobjectcoercible',
- ResolveBinding: 'https://ecma-international.org/ecma-262/8.0/#sec-resolvebinding',
- ResolveThisBinding: 'https://ecma-international.org/ecma-262/8.0/#sec-resolvethisbinding',
- ReturnIfAbrupt: 'https://ecma-international.org/ecma-262/8.0/#sec-returnifabrupt',
- RunJobs: 'https://ecma-international.org/ecma-262/8.0/#sec-runjobs',
- SameValue: 'https://ecma-international.org/ecma-262/8.0/#sec-samevalue',
- SameValueNonNumber: 'https://ecma-international.org/ecma-262/8.0/#sec-samevaluenonnumber',
- SameValueZero: 'https://ecma-international.org/ecma-262/8.0/#sec-samevaluezero',
- ScriptEvaluation: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-scriptevaluation',
- ScriptEvaluationJob: 'https://ecma-international.org/ecma-262/8.0/#sec-scriptevaluationjob',
- SecFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-SecFromTime',
- SerializeJSONArray: 'https://ecma-international.org/ecma-262/8.0/#sec-serializejsonarray',
- SerializeJSONObject: 'https://ecma-international.org/ecma-262/8.0/#sec-serializejsonobject',
- SerializeJSONProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-serializejsonproperty',
- Set: 'https://ecma-international.org/ecma-262/8.0/#sec-set-o-p-v-throw',
- SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/8.0/#sec-setdefaultglobalbindings',
- SetFunctionName: 'https://ecma-international.org/ecma-262/8.0/#sec-setfunctionname',
- SetImmutablePrototype: 'https://ecma-international.org/ecma-262/8.0/#sec-set-immutable-prototype',
- SetIntegrityLevel: 'https://ecma-international.org/ecma-262/8.0/#sec-setintegritylevel',
- SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/8.0/#sec-setrealmglobalobject',
- SetValueInBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-setvalueinbuffer',
- SetViewValue: 'https://ecma-international.org/ecma-262/8.0/#sec-setviewvalue',
- SharedDataBlockEventSet: 'https://ecma-international.org/ecma-262/8.0/#sec-sharedatablockeventset',
- SortCompare: 'https://ecma-international.org/ecma-262/8.0/#sec-sortcompare',
- SpeciesConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-speciesconstructor',
- SplitMatch: 'https://ecma-international.org/ecma-262/8.0/#sec-splitmatch',
- 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/8.0/#sec-strict-equality-comparison',
- StringCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-stringcreate',
- StringGetOwnProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-stringgetownproperty',
- Suspend: 'https://ecma-international.org/ecma-262/8.0/#sec-suspend',
- SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/8.0/#sec-symboldescriptivestring',
- 'synchronizes-with': 'https://ecma-international.org/ecma-262/8.0/#sec-synchronizes-with',
- TestIntegrityLevel: 'https://ecma-international.org/ecma-262/8.0/#sec-testintegritylevel',
- thisBooleanValue: 'https://ecma-international.org/ecma-262/8.0/#sec-thisbooleanvalue',
- thisNumberValue: 'https://ecma-international.org/ecma-262/8.0/#sec-thisnumbervalue',
- thisStringValue: 'https://ecma-international.org/ecma-262/8.0/#sec-thisstringvalue',
- thisTimeValue: 'https://ecma-international.org/ecma-262/8.0/#sec-thistimevalue',
- TimeClip: 'https://ecma-international.org/ecma-262/8.0/#sec-timeclip',
- TimeFromYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-TimeFromYear',
- TimeWithinDay: 'https://ecma-international.org/ecma-262/8.0/#eqn-TimeWithinDay',
- ToBoolean: 'https://ecma-international.org/ecma-262/8.0/#sec-toboolean',
- ToDateString: 'https://ecma-international.org/ecma-262/8.0/#sec-todatestring',
- ToIndex: 'https://ecma-international.org/ecma-262/8.0/#sec-toindex',
- ToInt16: 'https://ecma-international.org/ecma-262/8.0/#sec-toint16',
- ToInt32: 'https://ecma-international.org/ecma-262/8.0/#sec-toint32',
- ToInt8: 'https://ecma-international.org/ecma-262/8.0/#sec-toint8',
- ToInteger: 'https://ecma-international.org/ecma-262/8.0/#sec-tointeger',
- ToLength: 'https://ecma-international.org/ecma-262/8.0/#sec-tolength',
- ToNumber: 'https://ecma-international.org/ecma-262/8.0/#sec-tonumber',
- ToObject: 'https://ecma-international.org/ecma-262/8.0/#sec-toobject',
- TopLevelModuleEvaluationJob: 'https://ecma-international.org/ecma-262/8.0/#sec-toplevelmoduleevaluationjob',
- ToPrimitive: 'https://ecma-international.org/ecma-262/8.0/#sec-toprimitive',
- ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-topropertydescriptor',
- ToPropertyKey: 'https://ecma-international.org/ecma-262/8.0/#sec-topropertykey',
- ToString: 'https://ecma-international.org/ecma-262/8.0/#sec-tostring',
- 'ToString Applied to the Number Type': 'https://ecma-international.org/ecma-262/8.0/#sec-tostring-applied-to-the-number-type',
- ToUint16: 'https://ecma-international.org/ecma-262/8.0/#sec-touint16',
- ToUint32: 'https://ecma-international.org/ecma-262/8.0/#sec-touint32',
- ToUint8: 'https://ecma-international.org/ecma-262/8.0/#sec-touint8',
- ToUint8Clamp: 'https://ecma-international.org/ecma-262/8.0/#sec-touint8clamp',
- TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/8.0/#sec-triggerpromisereactions',
- Type: 'https://ecma-international.org/ecma-262/8.0/#sec-ecmascript-data-types-and-values',
- TypedArrayCreate: 'https://ecma-international.org/ecma-262/8.0/#typedarray-create',
- TypedArraySpeciesCreate: 'https://ecma-international.org/ecma-262/8.0/#typedarray-species-create',
- UpdateEmpty: 'https://ecma-international.org/ecma-262/8.0/#sec-updateempty',
- UTC: 'https://ecma-international.org/ecma-262/8.0/#sec-utc-t',
- UTF16Decode: 'https://ecma-international.org/ecma-262/8.0/#sec-utf16decode',
- UTF16Encoding: 'https://ecma-international.org/ecma-262/8.0/#sec-utf16encoding',
- ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor',
- ValidateAtomicAccess: 'https://ecma-international.org/ecma-262/8.0/#sec-validateatomicaccess',
- ValidateSharedIntegerTypedArray: 'https://ecma-international.org/ecma-262/8.0/#sec-validatesharedintegertypedarray',
- ValidateTypedArray: 'https://ecma-international.org/ecma-262/8.0/#sec-validatetypedarray',
- ValueOfReadEvent: 'https://ecma-international.org/ecma-262/8.0/#sec-valueofreadevent',
- WakeWaiter: 'https://ecma-international.org/ecma-262/8.0/#sec-wakewaiter',
- WeekDay: 'https://ecma-international.org/ecma-262/8.0/#sec-week-day',
- WordCharacters: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-wordcharacters-abstract-operation',
- YearFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-YearFromTime'
-};
diff --git a/node_modules/es-abstract/operations/2018.js b/node_modules/es-abstract/operations/2018.js
deleted file mode 100644
index c93b561..0000000
--- a/node_modules/es-abstract/operations/2018.js
+++ /dev/null
@@ -1,350 +0,0 @@
-'use strict';
-
-module.exports = {
- abs: 'https://ecma-international.org/ecma-262/9.0/#eqn-abs',
- 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/9.0/#sec-abstract-equality-comparison',
- 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/9.0/#sec-abstract-relational-comparison',
- AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/9.0/#sec-addrestrictedfunctionproperties',
- AddWaiter: 'https://ecma-international.org/ecma-262/9.0/#sec-addwaiter',
- AdvanceStringIndex: 'https://ecma-international.org/ecma-262/9.0/#sec-advancestringindex',
- 'agent-order': 'https://ecma-international.org/ecma-262/9.0/#sec-agent-order',
- AgentCanSuspend: 'https://ecma-international.org/ecma-262/9.0/#sec-agentcansuspend',
- AgentSignifier: 'https://ecma-international.org/ecma-262/9.0/#sec-agentsignifier',
- AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-allocatearraybuffer',
- AllocateSharedArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-allocatesharedarraybuffer',
- AllocateTypedArray: 'https://ecma-international.org/ecma-262/9.0/#sec-allocatetypedarray',
- AllocateTypedArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-allocatetypedarraybuffer',
- ArrayCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-arraycreate',
- ArraySetLength: 'https://ecma-international.org/ecma-262/9.0/#sec-arraysetlength',
- ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-arrayspeciescreate',
- AsyncFunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-async-functions-abstract-operations-async-function-create',
- AsyncFunctionStart: 'https://ecma-international.org/ecma-262/9.0/#sec-async-functions-abstract-operations-async-function-start',
- AsyncGeneratorEnqueue: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorenqueue',
- AsyncGeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorfunctioncreate',
- AsyncGeneratorReject: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorreject',
- AsyncGeneratorResolve: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorresolve',
- AsyncGeneratorResumeNext: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorresumenext',
- AsyncGeneratorStart: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorstart',
- AsyncGeneratorYield: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratoryield',
- AsyncIteratorClose: 'https://ecma-international.org/ecma-262/9.0/#sec-asynciteratorclose',
- AtomicLoad: 'https://ecma-international.org/ecma-262/9.0/#sec-atomicload',
- AtomicReadModifyWrite: 'https://ecma-international.org/ecma-262/9.0/#sec-atomicreadmodifywrite',
- Await: 'https://ecma-international.org/ecma-262/9.0/#await',
- BackreferenceMatcher: 'https://ecma-international.org/ecma-262/9.0/#sec-backreference-matcher',
- BlockDeclarationInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-blockdeclarationinstantiation',
- BoundFunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-boundfunctioncreate',
- Call: 'https://ecma-international.org/ecma-262/9.0/#sec-call',
- Canonicalize: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-canonicalize-ch',
- CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/9.0/#sec-canonicalnumericindexstring',
- CaseClauseIsSelected: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-caseclauseisselected',
- CharacterRange: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-characterrange-abstract-operation',
- CharacterRangeOrUnion: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation',
- CharacterSetMatcher: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation',
- CloneArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-clonearraybuffer',
- CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-completepropertydescriptor',
- Completion: 'https://ecma-international.org/ecma-262/9.0/#sec-completion-record-specification-type',
- ComposeWriteEventBytes: 'https://ecma-international.org/ecma-262/9.0/#sec-composewriteeventbytes',
- Construct: 'https://ecma-international.org/ecma-262/9.0/#sec-construct',
- CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/9.0/#sec-copydatablockbytes',
- CopyDataProperties: 'https://ecma-international.org/ecma-262/9.0/#sec-copydataproperties',
- CreateArrayFromList: 'https://ecma-international.org/ecma-262/9.0/#sec-createarrayfromlist',
- CreateArrayIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createarrayiterator',
- CreateAsyncFromSyncIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createasyncfromsynciterator',
- CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/9.0/#sec-createbuiltinfunction',
- CreateByteDataBlock: 'https://ecma-international.org/ecma-262/9.0/#sec-createbytedatablock',
- CreateDataProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-createdataproperty',
- CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/9.0/#sec-createdatapropertyorthrow',
- CreateDynamicFunction: 'https://ecma-international.org/ecma-262/9.0/#sec-createdynamicfunction',
- CreateHTML: 'https://ecma-international.org/ecma-262/9.0/#sec-createhtml',
- CreateIntrinsics: 'https://ecma-international.org/ecma-262/9.0/#sec-createintrinsics',
- CreateIterResultObject: 'https://ecma-international.org/ecma-262/9.0/#sec-createiterresultobject',
- CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/9.0/#sec-createlistfromarraylike',
- CreateListIteratorRecord: 'https://ecma-international.org/ecma-262/9.0/#sec-createlistiteratorRecord',
- CreateMapIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createmapiterator',
- CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/9.0/#sec-createmappedargumentsobject',
- CreateMethodProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-createmethodproperty',
- CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-createperiterationenvironment',
- CreateRealm: 'https://ecma-international.org/ecma-262/9.0/#sec-createrealm',
- CreateResolvingFunctions: 'https://ecma-international.org/ecma-262/9.0/#sec-createresolvingfunctions',
- CreateSetIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createsetiterator',
- CreateSharedByteDataBlock: 'https://ecma-international.org/ecma-262/9.0/#sec-createsharedbytedatablock',
- CreateStringIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createstringiterator',
- CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/9.0/#sec-createunmappedargumentsobject',
- DateFromTime: 'https://ecma-international.org/ecma-262/9.0/#sec-date-number',
- DateString: 'https://ecma-international.org/ecma-262/9.0/#sec-datestring',
- Day: 'https://ecma-international.org/ecma-262/9.0/#eqn-Day',
- DayFromYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-DaysFromYear',
- DaysInYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-DaysInYear',
- DayWithinYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-DayWithinYear',
- Decode: 'https://ecma-international.org/ecma-262/9.0/#sec-decode',
- DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/9.0/#sec-definepropertyorthrow',
- DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/9.0/#sec-deletepropertyorthrow',
- DetachArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-detacharraybuffer',
- Encode: 'https://ecma-international.org/ecma-262/9.0/#sec-encode',
- EnqueueJob: 'https://ecma-international.org/ecma-262/9.0/#sec-enqueuejob',
- EnterCriticalSection: 'https://ecma-international.org/ecma-262/9.0/#sec-entercriticalsection',
- EnumerableOwnPropertyNames: 'https://ecma-international.org/ecma-262/9.0/#sec-enumerableownpropertynames',
- EnumerateObjectProperties: 'https://ecma-international.org/ecma-262/9.0/#sec-enumerate-object-properties',
- EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/9.0/#sec-escaperegexppattern',
- EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-evaldeclarationinstantiation',
- EvaluateCall: 'https://ecma-international.org/ecma-262/9.0/#sec-evaluatecall',
- EvaluateNew: 'https://ecma-international.org/ecma-262/9.0/#sec-evaluatenew',
- EventSet: 'https://ecma-international.org/ecma-262/9.0/#sec-event-set',
- floor: 'https://ecma-international.org/ecma-262/9.0/#eqn-floor',
- ForBodyEvaluation: 'https://ecma-international.org/ecma-262/9.0/#sec-forbodyevaluation',
- 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset',
- 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind',
- FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-frompropertydescriptor',
- FulfillPromise: 'https://ecma-international.org/ecma-262/9.0/#sec-fulfillpromise',
- FunctionAllocate: 'https://ecma-international.org/ecma-262/9.0/#sec-functionallocate',
- FunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-functioncreate',
- FunctionDeclarationInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-functiondeclarationinstantiation',
- FunctionInitialize: 'https://ecma-international.org/ecma-262/9.0/#sec-functioninitialize',
- GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorfunctioncreate',
- GeneratorResume: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorresume',
- GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorresumeabrupt',
- GeneratorStart: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorstart',
- GeneratorValidate: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorvalidate',
- GeneratorYield: 'https://ecma-international.org/ecma-262/9.0/#sec-generatoryield',
- Get: 'https://ecma-international.org/ecma-262/9.0/#sec-get-o-p',
- GetActiveScriptOrModule: 'https://ecma-international.org/ecma-262/9.0/#sec-getactivescriptormodule',
- GetBase: 'https://ecma-international.org/ecma-262/9.0/#sec-getbase',
- GetFunctionRealm: 'https://ecma-international.org/ecma-262/9.0/#sec-getfunctionrealm',
- GetGeneratorKind: 'https://ecma-international.org/ecma-262/9.0/#sec-getgeneratorkind',
- GetGlobalObject: 'https://ecma-international.org/ecma-262/9.0/#sec-getglobalobject',
- GetIdentifierReference: 'https://ecma-international.org/ecma-262/9.0/#sec-getidentifierreference',
- GetIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-getiterator',
- GetMethod: 'https://ecma-international.org/ecma-262/9.0/#sec-getmethod',
- GetModifySetValueInBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-getmodifysetvalueinbuffer',
- GetModuleNamespace: 'https://ecma-international.org/ecma-262/9.0/#sec-getmodulenamespace',
- GetNewTarget: 'https://ecma-international.org/ecma-262/9.0/#sec-getnewtarget',
- GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/9.0/#sec-getownpropertykeys',
- GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-getprototypefromconstructor',
- GetReferencedName: 'https://ecma-international.org/ecma-262/9.0/#sec-getreferencedname',
- GetSubstitution: 'https://ecma-international.org/ecma-262/9.0/#sec-getsubstitution',
- GetSuperConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-getsuperconstructor',
- GetTemplateObject: 'https://ecma-international.org/ecma-262/9.0/#sec-gettemplateobject',
- GetThisEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-getthisenvironment',
- GetThisValue: 'https://ecma-international.org/ecma-262/9.0/#sec-getthisvalue',
- GetV: 'https://ecma-international.org/ecma-262/9.0/#sec-getv',
- GetValue: 'https://ecma-international.org/ecma-262/9.0/#sec-getvalue',
- GetValueFromBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-getvaluefrombuffer',
- GetViewValue: 'https://ecma-international.org/ecma-262/9.0/#sec-getviewvalue',
- GetWaiterList: 'https://ecma-international.org/ecma-262/9.0/#sec-getwaiterlist',
- GlobalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-globaldeclarationinstantiation',
- 'happens-before': 'https://ecma-international.org/ecma-262/9.0/#sec-happens-before',
- HasOwnProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-hasownproperty',
- HasPrimitiveBase: 'https://ecma-international.org/ecma-262/9.0/#sec-hasprimitivebase',
- HasProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-hasproperty',
- 'host-synchronizes-with': 'https://ecma-international.org/ecma-262/9.0/#sec-host-synchronizes-with',
- HostEnsureCanCompileStrings: 'https://ecma-international.org/ecma-262/9.0/#sec-hostensurecancompilestrings',
- HostEventSet: 'https://ecma-international.org/ecma-262/9.0/#sec-hosteventset',
- HostPromiseRejectionTracker: 'https://ecma-international.org/ecma-262/9.0/#sec-host-promise-rejection-tracker',
- HostReportErrors: 'https://ecma-international.org/ecma-262/9.0/#sec-host-report-errors',
- HostResolveImportedModule: 'https://ecma-international.org/ecma-262/9.0/#sec-hostresolveimportedmodule',
- HourFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-HourFromTime',
- IfAbruptRejectPromise: 'https://ecma-international.org/ecma-262/9.0/#sec-ifabruptrejectpromise',
- ImportedLocalNames: 'https://ecma-international.org/ecma-262/9.0/#sec-importedlocalnames',
- InitializeBoundName: 'https://ecma-international.org/ecma-262/9.0/#sec-initializeboundname',
- InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/9.0/#sec-initializehostdefinedrealm',
- InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/9.0/#sec-initializereferencedbinding',
- InLeapYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-InLeapYear',
- InnerModuleEvaluation: 'https://ecma-international.org/ecma-262/9.0/#sec-innermoduleevaluation',
- InnerModuleInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-innermoduleinstantiation',
- InstanceofOperator: 'https://ecma-international.org/ecma-262/9.0/#sec-instanceofoperator',
- IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/9.0/#sec-integerindexedelementget',
- IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/9.0/#sec-integerindexedelementset',
- IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-integerindexedobjectcreate',
- InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-internalizejsonproperty',
- Invoke: 'https://ecma-international.org/ecma-262/9.0/#sec-invoke',
- IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-isaccessordescriptor',
- IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/9.0/#sec-isanonymousfunctiondefinition',
- IsArray: 'https://ecma-international.org/ecma-262/9.0/#sec-isarray',
- IsCallable: 'https://ecma-international.org/ecma-262/9.0/#sec-iscallable',
- IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-iscompatiblepropertydescriptor',
- IsConcatSpreadable: 'https://ecma-international.org/ecma-262/9.0/#sec-isconcatspreadable',
- IsConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-isconstructor',
- IsDataDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-isdatadescriptor',
- IsDetachedBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-isdetachedbuffer',
- IsExtensible: 'https://ecma-international.org/ecma-262/9.0/#sec-isextensible-o',
- IsGenericDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-isgenericdescriptor',
- IsInTailPosition: 'https://ecma-international.org/ecma-262/9.0/#sec-isintailposition',
- IsInteger: 'https://ecma-international.org/ecma-262/9.0/#sec-isinteger',
- IsLabelledFunction: 'https://ecma-international.org/ecma-262/9.0/#sec-islabelledfunction',
- IsPromise: 'https://ecma-international.org/ecma-262/9.0/#sec-ispromise',
- IsPropertyKey: 'https://ecma-international.org/ecma-262/9.0/#sec-ispropertykey',
- IsPropertyReference: 'https://ecma-international.org/ecma-262/9.0/#sec-ispropertyreference',
- IsRegExp: 'https://ecma-international.org/ecma-262/9.0/#sec-isregexp',
- IsSharedArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-issharedarraybuffer',
- IsStrictReference: 'https://ecma-international.org/ecma-262/9.0/#sec-isstrictreference',
- IsStringPrefix: 'https://ecma-international.org/ecma-262/9.0/#sec-isstringprefix',
- IsSuperReference: 'https://ecma-international.org/ecma-262/9.0/#sec-issuperreference',
- IsUnresolvableReference: 'https://ecma-international.org/ecma-262/9.0/#sec-isunresolvablereference',
- IsWordChar: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-iswordchar-abstract-operation',
- IterableToList: 'https://ecma-international.org/ecma-262/9.0/#sec-iterabletolist',
- IteratorClose: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratorclose',
- IteratorComplete: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratorcomplete',
- IteratorNext: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratornext',
- IteratorStep: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratorstep',
- IteratorValue: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratorvalue',
- LeaveCriticalSection: 'https://ecma-international.org/ecma-262/9.0/#sec-leavecriticalsection',
- LocalTime: 'https://ecma-international.org/ecma-262/9.0/#sec-localtime',
- LoopContinues: 'https://ecma-international.org/ecma-262/9.0/#sec-loopcontinues',
- MakeArgGetter: 'https://ecma-international.org/ecma-262/9.0/#sec-makearggetter',
- MakeArgSetter: 'https://ecma-international.org/ecma-262/9.0/#sec-makeargsetter',
- MakeClassConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-makeclassconstructor',
- MakeConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-makeconstructor',
- MakeDate: 'https://ecma-international.org/ecma-262/9.0/#sec-makedate',
- MakeDay: 'https://ecma-international.org/ecma-262/9.0/#sec-makeday',
- MakeMethod: 'https://ecma-international.org/ecma-262/9.0/#sec-makemethod',
- MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/9.0/#sec-makesuperpropertyreference',
- MakeTime: 'https://ecma-international.org/ecma-262/9.0/#sec-maketime',
- max: 'https://ecma-international.org/ecma-262/9.0/#eqn-max',
- 'memory-order': 'https://ecma-international.org/ecma-262/9.0/#sec-memory-order',
- min: 'https://ecma-international.org/ecma-262/9.0/#eqn-min',
- MinFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-MinFromTime',
- ModuleDeclarationEnvironmentSetup: 'https://ecma-international.org/ecma-262/9.0/#sec-moduledeclarationenvironmentsetup',
- ModuleExecution: 'https://ecma-international.org/ecma-262/9.0/#sec-moduleexecution',
- ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-modulenamespacecreate',
- modulo: 'https://ecma-international.org/ecma-262/9.0/#eqn-modulo',
- MonthFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-MonthFromTime',
- msFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-msFromTime',
- NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newdeclarativeenvironment',
- NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newfunctionenvironment',
- NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newglobalenvironment',
- NewModuleEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newmoduleenvironment',
- NewObjectEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newobjectenvironment',
- NewPromiseCapability: 'https://ecma-international.org/ecma-262/9.0/#sec-newpromisecapability',
- NormalCompletion: 'https://ecma-international.org/ecma-262/9.0/#sec-normalcompletion',
- NumberToRawBytes: 'https://ecma-international.org/ecma-262/9.0/#sec-numbertorawbytes',
- NumberToString: 'https://ecma-international.org/ecma-262/9.0/#sec-tostring-applied-to-the-number-type',
- ObjectCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-objectcreate',
- ObjectDefineProperties: 'https://ecma-international.org/ecma-262/9.0/#sec-objectdefineproperties',
- OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarycallbindthis',
- OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarycallevaluatebody',
- OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarycreatefromconstructor',
- OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarydefineownproperty',
- OrdinaryDelete: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarydelete',
- OrdinaryGet: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryget',
- OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarygetownproperty',
- OrdinaryGetPrototypeOf: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarygetprototypeof',
- OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryhasinstance',
- OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryhasproperty',
- OrdinaryIsExtensible: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryisextensible',
- OrdinaryOwnPropertyKeys: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryownpropertykeys',
- OrdinaryPreventExtensions: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarypreventextensions',
- OrdinarySet: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryset',
- OrdinarySetPrototypeOf: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarysetprototypeof',
- OrdinarySetWithOwnDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarysetwithowndescriptor',
- OrdinaryToPrimitive: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarytoprimitive',
- ParseModule: 'https://ecma-international.org/ecma-262/9.0/#sec-parsemodule',
- ParseScript: 'https://ecma-international.org/ecma-262/9.0/#sec-parse-script',
- PerformEval: 'https://ecma-international.org/ecma-262/9.0/#sec-performeval',
- PerformPromiseAll: 'https://ecma-international.org/ecma-262/9.0/#sec-performpromiseall',
- PerformPromiseRace: 'https://ecma-international.org/ecma-262/9.0/#sec-performpromiserace',
- PerformPromiseThen: 'https://ecma-international.org/ecma-262/9.0/#sec-performpromisethen',
- PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/9.0/#sec-prepareforordinarycall',
- PrepareForTailCall: 'https://ecma-international.org/ecma-262/9.0/#sec-preparefortailcall',
- PromiseReactionJob: 'https://ecma-international.org/ecma-262/9.0/#sec-promisereactionjob',
- PromiseResolve: 'https://ecma-international.org/ecma-262/9.0/#sec-promise-resolve',
- PromiseResolveThenableJob: 'https://ecma-international.org/ecma-262/9.0/#sec-promiseresolvethenablejob',
- ProxyCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-proxycreate',
- PutValue: 'https://ecma-international.org/ecma-262/9.0/#sec-putvalue',
- QuoteJSONString: 'https://ecma-international.org/ecma-262/9.0/#sec-quotejsonstring',
- RawBytesToNumber: 'https://ecma-international.org/ecma-262/9.0/#sec-rawbytestonumber',
- 'reads-bytes-from': 'https://ecma-international.org/ecma-262/9.0/#sec-reads-bytes-from',
- 'reads-from': 'https://ecma-international.org/ecma-262/9.0/#sec-reads-from',
- RegExpAlloc: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpalloc',
- RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpbuiltinexec',
- RegExpCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpcreate',
- RegExpExec: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpexec',
- RegExpInitialize: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpinitialize',
- RejectPromise: 'https://ecma-international.org/ecma-262/9.0/#sec-rejectpromise',
- RemoveWaiter: 'https://ecma-international.org/ecma-262/9.0/#sec-removewaiter',
- RemoveWaiters: 'https://ecma-international.org/ecma-262/9.0/#sec-removewaiters',
- RepeatMatcher: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-repeatmatcher-abstract-operation',
- RequireObjectCoercible: 'https://ecma-international.org/ecma-262/9.0/#sec-requireobjectcoercible',
- ResolveBinding: 'https://ecma-international.org/ecma-262/9.0/#sec-resolvebinding',
- ResolveThisBinding: 'https://ecma-international.org/ecma-262/9.0/#sec-resolvethisbinding',
- ReturnIfAbrupt: 'https://ecma-international.org/ecma-262/9.0/#sec-returnifabrupt',
- RunJobs: 'https://ecma-international.org/ecma-262/9.0/#sec-runjobs',
- SameValue: 'https://ecma-international.org/ecma-262/9.0/#sec-samevalue',
- SameValueNonNumber: 'https://ecma-international.org/ecma-262/9.0/#sec-samevaluenonnumber',
- SameValueZero: 'https://ecma-international.org/ecma-262/9.0/#sec-samevaluezero',
- ScriptEvaluation: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-scriptevaluation',
- ScriptEvaluationJob: 'https://ecma-international.org/ecma-262/9.0/#sec-scriptevaluationjob',
- SecFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-SecFromTime',
- SerializeJSONArray: 'https://ecma-international.org/ecma-262/9.0/#sec-serializejsonarray',
- SerializeJSONObject: 'https://ecma-international.org/ecma-262/9.0/#sec-serializejsonobject',
- SerializeJSONProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-serializejsonproperty',
- Set: 'https://ecma-international.org/ecma-262/9.0/#sec-set-o-p-v-throw',
- SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/9.0/#sec-setdefaultglobalbindings',
- SetFunctionLength: 'https://ecma-international.org/ecma-262/9.0/#sec-setfunctionlength',
- SetFunctionName: 'https://ecma-international.org/ecma-262/9.0/#sec-setfunctionname',
- SetImmutablePrototype: 'https://ecma-international.org/ecma-262/9.0/#sec-set-immutable-prototype',
- SetIntegrityLevel: 'https://ecma-international.org/ecma-262/9.0/#sec-setintegritylevel',
- SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/9.0/#sec-setrealmglobalobject',
- SetValueInBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-setvalueinbuffer',
- SetViewValue: 'https://ecma-international.org/ecma-262/9.0/#sec-setviewvalue',
- SharedDataBlockEventSet: 'https://ecma-international.org/ecma-262/9.0/#sec-sharedatablockeventset',
- SortCompare: 'https://ecma-international.org/ecma-262/9.0/#sec-sortcompare',
- SpeciesConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-speciesconstructor',
- SplitMatch: 'https://ecma-international.org/ecma-262/9.0/#sec-splitmatch',
- 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/9.0/#sec-strict-equality-comparison',
- StringCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-stringcreate',
- StringGetOwnProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-stringgetownproperty',
- Suspend: 'https://ecma-international.org/ecma-262/9.0/#sec-suspend',
- SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/9.0/#sec-symboldescriptivestring',
- 'synchronizes-with': 'https://ecma-international.org/ecma-262/9.0/#sec-synchronizes-with',
- TestIntegrityLevel: 'https://ecma-international.org/ecma-262/9.0/#sec-testintegritylevel',
- thisBooleanValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thisbooleanvalue',
- thisNumberValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thisnumbervalue',
- thisStringValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thisstringvalue',
- thisSymbolValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thissymbolvalue',
- thisTimeValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thistimevalue',
- ThrowCompletion: 'https://ecma-international.org/ecma-262/9.0/#sec-throwcompletion',
- TimeClip: 'https://ecma-international.org/ecma-262/9.0/#sec-timeclip',
- TimeFromYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-TimeFromYear',
- TimeString: 'https://ecma-international.org/ecma-262/9.0/#sec-timestring',
- TimeWithinDay: 'https://ecma-international.org/ecma-262/9.0/#eqn-TimeWithinDay',
- TimeZoneString: 'https://ecma-international.org/ecma-262/9.0/#sec-timezoneestring',
- ToBoolean: 'https://ecma-international.org/ecma-262/9.0/#sec-toboolean',
- ToDateString: 'https://ecma-international.org/ecma-262/9.0/#sec-todatestring',
- ToIndex: 'https://ecma-international.org/ecma-262/9.0/#sec-toindex',
- ToInt16: 'https://ecma-international.org/ecma-262/9.0/#sec-toint16',
- ToInt32: 'https://ecma-international.org/ecma-262/9.0/#sec-toint32',
- ToInt8: 'https://ecma-international.org/ecma-262/9.0/#sec-toint8',
- ToInteger: 'https://ecma-international.org/ecma-262/9.0/#sec-tointeger',
- ToLength: 'https://ecma-international.org/ecma-262/9.0/#sec-tolength',
- ToNumber: 'https://ecma-international.org/ecma-262/9.0/#sec-tonumber',
- ToObject: 'https://ecma-international.org/ecma-262/9.0/#sec-toobject',
- TopLevelModuleEvaluationJob: 'https://ecma-international.org/ecma-262/9.0/#sec-toplevelmoduleevaluationjob',
- ToPrimitive: 'https://ecma-international.org/ecma-262/9.0/#sec-toprimitive',
- ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-topropertydescriptor',
- ToPropertyKey: 'https://ecma-international.org/ecma-262/9.0/#sec-topropertykey',
- ToString: 'https://ecma-international.org/ecma-262/9.0/#sec-tostring',
- ToUint16: 'https://ecma-international.org/ecma-262/9.0/#sec-touint16',
- ToUint32: 'https://ecma-international.org/ecma-262/9.0/#sec-touint32',
- ToUint8: 'https://ecma-international.org/ecma-262/9.0/#sec-touint8',
- ToUint8Clamp: 'https://ecma-international.org/ecma-262/9.0/#sec-touint8clamp',
- TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/9.0/#sec-triggerpromisereactions',
- Type: 'https://ecma-international.org/ecma-262/9.0/#sec-ecmascript-data-types-and-values',
- TypedArrayCreate: 'https://ecma-international.org/ecma-262/9.0/#typedarray-create',
- TypedArraySpeciesCreate: 'https://ecma-international.org/ecma-262/9.0/#typedarray-species-create',
- UnicodeEscape: 'https://ecma-international.org/ecma-262/9.0/#sec-unicodeescape',
- UnicodeMatchProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-unicodematchproperty-p',
- UnicodeMatchPropertyValue: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v',
- UpdateEmpty: 'https://ecma-international.org/ecma-262/9.0/#sec-updateempty',
- UTC: 'https://ecma-international.org/ecma-262/9.0/#sec-utc-t',
- UTF16Decode: 'https://ecma-international.org/ecma-262/9.0/#sec-utf16decode',
- UTF16Encoding: 'https://ecma-international.org/ecma-262/9.0/#sec-utf16encoding',
- ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-validateandapplypropertydescriptor',
- ValidateAtomicAccess: 'https://ecma-international.org/ecma-262/9.0/#sec-validateatomicaccess',
- ValidateSharedIntegerTypedArray: 'https://ecma-international.org/ecma-262/9.0/#sec-validatesharedintegertypedarray',
- ValidateTypedArray: 'https://ecma-international.org/ecma-262/9.0/#sec-validatetypedarray',
- ValueOfReadEvent: 'https://ecma-international.org/ecma-262/9.0/#sec-valueofreadevent',
- WakeWaiter: 'https://ecma-international.org/ecma-262/9.0/#sec-wakewaiter',
- WeekDay: 'https://ecma-international.org/ecma-262/9.0/#sec-week-day',
- WordCharacters: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-wordcharacters-abstract-operation',
- YearFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-YearFromTime'
-};
diff --git a/node_modules/es-abstract/operations/2019.js b/node_modules/es-abstract/operations/2019.js
deleted file mode 100644
index 73f05e8..0000000
--- a/node_modules/es-abstract/operations/2019.js
+++ /dev/null
@@ -1,355 +0,0 @@
-'use strict';
-
-module.exports = {
- abs: 'https://ecma-international.org/ecma-262/10.0/#eqn-abs',
- 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/10.0/#sec-abstract-equality-comparison',
- 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/10.0/#sec-abstract-relational-comparison',
- AddEntriesFromIterable: 'https://ecma-international.org/ecma-262/10.0/#sec-add-entries-from-iterable',
- AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/10.0/#sec-addrestrictedfunctionproperties',
- AddWaiter: 'https://ecma-international.org/ecma-262/10.0/#sec-addwaiter',
- AdvanceStringIndex: 'https://ecma-international.org/ecma-262/10.0/#sec-advancestringindex',
- 'agent-order': 'https://ecma-international.org/ecma-262/10.0/#sec-agent-order',
- AgentCanSuspend: 'https://ecma-international.org/ecma-262/10.0/#sec-agentcansuspend',
- AgentSignifier: 'https://ecma-international.org/ecma-262/10.0/#sec-agentsignifier',
- AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-allocatearraybuffer',
- AllocateSharedArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-allocatesharedarraybuffer',
- AllocateTypedArray: 'https://ecma-international.org/ecma-262/10.0/#sec-allocatetypedarray',
- AllocateTypedArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-allocatetypedarraybuffer',
- ArrayCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-arraycreate',
- ArraySetLength: 'https://ecma-international.org/ecma-262/10.0/#sec-arraysetlength',
- ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-arrayspeciescreate',
- AsyncFromSyncIteratorContinuation: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncfromsynciteratorcontinuation',
- AsyncFunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-async-functions-abstract-operations-async-function-create',
- AsyncFunctionStart: 'https://ecma-international.org/ecma-262/10.0/#sec-async-functions-abstract-operations-async-function-start',
- AsyncGeneratorEnqueue: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorenqueue',
- AsyncGeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorfunctioncreate',
- AsyncGeneratorReject: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorreject',
- AsyncGeneratorResolve: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorresolve',
- AsyncGeneratorResumeNext: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorresumenext',
- AsyncGeneratorStart: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorstart',
- AsyncGeneratorYield: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratoryield',
- AsyncIteratorClose: 'https://ecma-international.org/ecma-262/10.0/#sec-asynciteratorclose',
- AtomicLoad: 'https://ecma-international.org/ecma-262/10.0/#sec-atomicload',
- AtomicReadModifyWrite: 'https://ecma-international.org/ecma-262/10.0/#sec-atomicreadmodifywrite',
- Await: 'https://ecma-international.org/ecma-262/10.0/#await',
- BackreferenceMatcher: 'https://ecma-international.org/ecma-262/10.0/#sec-backreference-matcher',
- BlockDeclarationInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-blockdeclarationinstantiation',
- BoundFunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-boundfunctioncreate',
- Call: 'https://ecma-international.org/ecma-262/10.0/#sec-call',
- Canonicalize: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-canonicalize-ch',
- CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/10.0/#sec-canonicalnumericindexstring',
- CaseClauseIsSelected: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-caseclauseisselected',
- CharacterRange: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-characterrange-abstract-operation',
- CharacterRangeOrUnion: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation',
- CharacterSetMatcher: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation',
- CloneArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-clonearraybuffer',
- CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-completepropertydescriptor',
- Completion: 'https://ecma-international.org/ecma-262/10.0/#sec-completion-record-specification-type',
- ComposeWriteEventBytes: 'https://ecma-international.org/ecma-262/10.0/#sec-composewriteeventbytes',
- Construct: 'https://ecma-international.org/ecma-262/10.0/#sec-construct',
- CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/10.0/#sec-copydatablockbytes',
- CopyDataProperties: 'https://ecma-international.org/ecma-262/10.0/#sec-copydataproperties',
- CreateArrayFromList: 'https://ecma-international.org/ecma-262/10.0/#sec-createarrayfromlist',
- CreateArrayIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createarrayiterator',
- CreateAsyncFromSyncIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createasyncfromsynciterator',
- CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/10.0/#sec-createbuiltinfunction',
- CreateByteDataBlock: 'https://ecma-international.org/ecma-262/10.0/#sec-createbytedatablock',
- CreateDataProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-createdataproperty',
- CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/10.0/#sec-createdatapropertyorthrow',
- CreateDynamicFunction: 'https://ecma-international.org/ecma-262/10.0/#sec-createdynamicfunction',
- CreateHTML: 'https://ecma-international.org/ecma-262/10.0/#sec-createhtml',
- CreateIntrinsics: 'https://ecma-international.org/ecma-262/10.0/#sec-createintrinsics',
- CreateIterResultObject: 'https://ecma-international.org/ecma-262/10.0/#sec-createiterresultobject',
- CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/10.0/#sec-createlistfromarraylike',
- CreateListIteratorRecord: 'https://ecma-international.org/ecma-262/10.0/#sec-createlistiteratorRecord',
- CreateMapIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createmapiterator',
- CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/10.0/#sec-createmappedargumentsobject',
- CreateMethodProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-createmethodproperty',
- CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-createperiterationenvironment',
- CreateRealm: 'https://ecma-international.org/ecma-262/10.0/#sec-createrealm',
- CreateResolvingFunctions: 'https://ecma-international.org/ecma-262/10.0/#sec-createresolvingfunctions',
- CreateSetIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createsetiterator',
- CreateSharedByteDataBlock: 'https://ecma-international.org/ecma-262/10.0/#sec-createsharedbytedatablock',
- CreateStringIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createstringiterator',
- CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/10.0/#sec-createunmappedargumentsobject',
- DateFromTime: 'https://ecma-international.org/ecma-262/10.0/#sec-date-number',
- DateString: 'https://ecma-international.org/ecma-262/10.0/#sec-datestring',
- Day: 'https://ecma-international.org/ecma-262/10.0/#eqn-Day',
- DayFromYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-DaysFromYear',
- DaysInYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-DaysInYear',
- DayWithinYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-DayWithinYear',
- Decode: 'https://ecma-international.org/ecma-262/10.0/#sec-decode',
- DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/10.0/#sec-definepropertyorthrow',
- DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/10.0/#sec-deletepropertyorthrow',
- DetachArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-detacharraybuffer',
- Encode: 'https://ecma-international.org/ecma-262/10.0/#sec-encode',
- EnqueueJob: 'https://ecma-international.org/ecma-262/10.0/#sec-enqueuejob',
- EnterCriticalSection: 'https://ecma-international.org/ecma-262/10.0/#sec-entercriticalsection',
- EnumerableOwnPropertyNames: 'https://ecma-international.org/ecma-262/10.0/#sec-enumerableownpropertynames',
- EnumerateObjectProperties: 'https://ecma-international.org/ecma-262/10.0/#sec-enumerate-object-properties',
- EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/10.0/#sec-escaperegexppattern',
- EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-evaldeclarationinstantiation',
- EvaluateCall: 'https://ecma-international.org/ecma-262/10.0/#sec-evaluatecall',
- EvaluateNew: 'https://ecma-international.org/ecma-262/10.0/#sec-evaluatenew',
- EventSet: 'https://ecma-international.org/ecma-262/10.0/#sec-event-set',
- ExecuteModule: 'https://ecma-international.org/ecma-262/10.0/#sec-source-text-module-record-execute-module',
- FlattenIntoArray: 'https://ecma-international.org/ecma-262/10.0/#sec-flattenintoarray',
- floor: 'https://ecma-international.org/ecma-262/10.0/#eqn-floor',
- ForBodyEvaluation: 'https://ecma-international.org/ecma-262/10.0/#sec-forbodyevaluation',
- 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset',
- 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind',
- FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-frompropertydescriptor',
- FulfillPromise: 'https://ecma-international.org/ecma-262/10.0/#sec-fulfillpromise',
- FunctionAllocate: 'https://ecma-international.org/ecma-262/10.0/#sec-functionallocate',
- FunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-functioncreate',
- FunctionDeclarationInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-functiondeclarationinstantiation',
- FunctionInitialize: 'https://ecma-international.org/ecma-262/10.0/#sec-functioninitialize',
- GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorfunctioncreate',
- GeneratorResume: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorresume',
- GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorresumeabrupt',
- GeneratorStart: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorstart',
- GeneratorValidate: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorvalidate',
- GeneratorYield: 'https://ecma-international.org/ecma-262/10.0/#sec-generatoryield',
- Get: 'https://ecma-international.org/ecma-262/10.0/#sec-get-o-p',
- GetActiveScriptOrModule: 'https://ecma-international.org/ecma-262/10.0/#sec-getactivescriptormodule',
- GetBase: 'https://ecma-international.org/ecma-262/10.0/#sec-getbase',
- GetFunctionRealm: 'https://ecma-international.org/ecma-262/10.0/#sec-getfunctionrealm',
- GetGeneratorKind: 'https://ecma-international.org/ecma-262/10.0/#sec-getgeneratorkind',
- GetGlobalObject: 'https://ecma-international.org/ecma-262/10.0/#sec-getglobalobject',
- GetIdentifierReference: 'https://ecma-international.org/ecma-262/10.0/#sec-getidentifierreference',
- GetIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-getiterator',
- GetMethod: 'https://ecma-international.org/ecma-262/10.0/#sec-getmethod',
- GetModifySetValueInBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-getmodifysetvalueinbuffer',
- GetModuleNamespace: 'https://ecma-international.org/ecma-262/10.0/#sec-getmodulenamespace',
- GetNewTarget: 'https://ecma-international.org/ecma-262/10.0/#sec-getnewtarget',
- GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/10.0/#sec-getownpropertykeys',
- GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-getprototypefromconstructor',
- GetReferencedName: 'https://ecma-international.org/ecma-262/10.0/#sec-getreferencedname',
- GetSubstitution: 'https://ecma-international.org/ecma-262/10.0/#sec-getsubstitution',
- GetSuperConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-getsuperconstructor',
- GetTemplateObject: 'https://ecma-international.org/ecma-262/10.0/#sec-gettemplateobject',
- GetThisEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-getthisenvironment',
- GetThisValue: 'https://ecma-international.org/ecma-262/10.0/#sec-getthisvalue',
- GetV: 'https://ecma-international.org/ecma-262/10.0/#sec-getv',
- GetValue: 'https://ecma-international.org/ecma-262/10.0/#sec-getvalue',
- GetValueFromBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-getvaluefrombuffer',
- GetViewValue: 'https://ecma-international.org/ecma-262/10.0/#sec-getviewvalue',
- GetWaiterList: 'https://ecma-international.org/ecma-262/10.0/#sec-getwaiterlist',
- GlobalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-globaldeclarationinstantiation',
- 'happens-before': 'https://ecma-international.org/ecma-262/10.0/#sec-happens-before',
- HasOwnProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-hasownproperty',
- HasPrimitiveBase: 'https://ecma-international.org/ecma-262/10.0/#sec-hasprimitivebase',
- HasProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-hasproperty',
- 'host-synchronizes-with': 'https://ecma-international.org/ecma-262/10.0/#sec-host-synchronizes-with',
- HostEnsureCanCompileStrings: 'https://ecma-international.org/ecma-262/10.0/#sec-hostensurecancompilestrings',
- HostEventSet: 'https://ecma-international.org/ecma-262/10.0/#sec-hosteventset',
- HostPromiseRejectionTracker: 'https://ecma-international.org/ecma-262/10.0/#sec-host-promise-rejection-tracker',
- HostReportErrors: 'https://ecma-international.org/ecma-262/10.0/#sec-host-report-errors',
- HostResolveImportedModule: 'https://ecma-international.org/ecma-262/10.0/#sec-hostresolveimportedmodule',
- HourFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-HourFromTime',
- IfAbruptRejectPromise: 'https://ecma-international.org/ecma-262/10.0/#sec-ifabruptrejectpromise',
- ImportedLocalNames: 'https://ecma-international.org/ecma-262/10.0/#sec-importedlocalnames',
- InitializeBoundName: 'https://ecma-international.org/ecma-262/10.0/#sec-initializeboundname',
- InitializeEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-source-text-module-record-initialize-environment',
- InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/10.0/#sec-initializehostdefinedrealm',
- InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/10.0/#sec-initializereferencedbinding',
- InLeapYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-InLeapYear',
- InnerModuleEvaluation: 'https://ecma-international.org/ecma-262/10.0/#sec-innermoduleevaluation',
- InnerModuleInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-innermoduleinstantiation',
- InstanceofOperator: 'https://ecma-international.org/ecma-262/10.0/#sec-instanceofoperator',
- IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/10.0/#sec-integerindexedelementget',
- IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/10.0/#sec-integerindexedelementset',
- IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-integerindexedobjectcreate',
- InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-internalizejsonproperty',
- Invoke: 'https://ecma-international.org/ecma-262/10.0/#sec-invoke',
- IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-isaccessordescriptor',
- IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/10.0/#sec-isanonymousfunctiondefinition',
- IsArray: 'https://ecma-international.org/ecma-262/10.0/#sec-isarray',
- IsCallable: 'https://ecma-international.org/ecma-262/10.0/#sec-iscallable',
- IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-iscompatiblepropertydescriptor',
- IsConcatSpreadable: 'https://ecma-international.org/ecma-262/10.0/#sec-isconcatspreadable',
- IsConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-isconstructor',
- IsDataDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-isdatadescriptor',
- IsDetachedBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-isdetachedbuffer',
- IsExtensible: 'https://ecma-international.org/ecma-262/10.0/#sec-isextensible-o',
- IsGenericDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-isgenericdescriptor',
- IsInTailPosition: 'https://ecma-international.org/ecma-262/10.0/#sec-isintailposition',
- IsInteger: 'https://ecma-international.org/ecma-262/10.0/#sec-isinteger',
- IsLabelledFunction: 'https://ecma-international.org/ecma-262/10.0/#sec-islabelledfunction',
- IsPromise: 'https://ecma-international.org/ecma-262/10.0/#sec-ispromise',
- IsPropertyKey: 'https://ecma-international.org/ecma-262/10.0/#sec-ispropertykey',
- IsPropertyReference: 'https://ecma-international.org/ecma-262/10.0/#sec-ispropertyreference',
- IsRegExp: 'https://ecma-international.org/ecma-262/10.0/#sec-isregexp',
- IsSharedArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-issharedarraybuffer',
- IsStrictReference: 'https://ecma-international.org/ecma-262/10.0/#sec-isstrictreference',
- IsStringPrefix: 'https://ecma-international.org/ecma-262/10.0/#sec-isstringprefix',
- IsSuperReference: 'https://ecma-international.org/ecma-262/10.0/#sec-issuperreference',
- IsUnresolvableReference: 'https://ecma-international.org/ecma-262/10.0/#sec-isunresolvablereference',
- IsWordChar: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-iswordchar-abstract-operation',
- IterableToList: 'https://ecma-international.org/ecma-262/10.0/#sec-iterabletolist',
- IteratorClose: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratorclose',
- IteratorComplete: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratorcomplete',
- IteratorNext: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratornext',
- IteratorStep: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratorstep',
- IteratorValue: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratorvalue',
- LeaveCriticalSection: 'https://ecma-international.org/ecma-262/10.0/#sec-leavecriticalsection',
- LocalTime: 'https://ecma-international.org/ecma-262/10.0/#sec-localtime',
- LoopContinues: 'https://ecma-international.org/ecma-262/10.0/#sec-loopcontinues',
- MakeArgGetter: 'https://ecma-international.org/ecma-262/10.0/#sec-makearggetter',
- MakeArgSetter: 'https://ecma-international.org/ecma-262/10.0/#sec-makeargsetter',
- MakeClassConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-makeclassconstructor',
- MakeConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-makeconstructor',
- MakeDate: 'https://ecma-international.org/ecma-262/10.0/#sec-makedate',
- MakeDay: 'https://ecma-international.org/ecma-262/10.0/#sec-makeday',
- MakeMethod: 'https://ecma-international.org/ecma-262/10.0/#sec-makemethod',
- MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/10.0/#sec-makesuperpropertyreference',
- MakeTime: 'https://ecma-international.org/ecma-262/10.0/#sec-maketime',
- max: 'https://ecma-international.org/ecma-262/10.0/#eqn-max',
- 'memory-order': 'https://ecma-international.org/ecma-262/10.0/#sec-memory-order',
- min: 'https://ecma-international.org/ecma-262/10.0/#eqn-min',
- MinFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-MinFromTime',
- ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-modulenamespacecreate',
- modulo: 'https://ecma-international.org/ecma-262/10.0/#eqn-modulo',
- MonthFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-MonthFromTime',
- msFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-msFromTime',
- NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newdeclarativeenvironment',
- NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newfunctionenvironment',
- NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newglobalenvironment',
- NewModuleEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newmoduleenvironment',
- NewObjectEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newobjectenvironment',
- NewPromiseCapability: 'https://ecma-international.org/ecma-262/10.0/#sec-newpromisecapability',
- NormalCompletion: 'https://ecma-international.org/ecma-262/10.0/#sec-normalcompletion',
- NotifyWaiter: 'https://ecma-international.org/ecma-262/10.0/#sec-notifywaiter',
- NumberToRawBytes: 'https://ecma-international.org/ecma-262/10.0/#sec-numbertorawbytes',
- NumberToString: 'https://ecma-international.org/ecma-262/10.0/#sec-tostring-applied-to-the-number-type',
- ObjectCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-objectcreate',
- ObjectDefineProperties: 'https://ecma-international.org/ecma-262/10.0/#sec-objectdefineproperties',
- OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarycallbindthis',
- OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarycallevaluatebody',
- OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarycreatefromconstructor',
- OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarydefineownproperty',
- OrdinaryDelete: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarydelete',
- OrdinaryGet: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryget',
- OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarygetownproperty',
- OrdinaryGetPrototypeOf: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarygetprototypeof',
- OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryhasinstance',
- OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryhasproperty',
- OrdinaryIsExtensible: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryisextensible',
- OrdinaryOwnPropertyKeys: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryownpropertykeys',
- OrdinaryPreventExtensions: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarypreventextensions',
- OrdinarySet: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryset',
- OrdinarySetPrototypeOf: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarysetprototypeof',
- OrdinarySetWithOwnDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarysetwithowndescriptor',
- OrdinaryToPrimitive: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarytoprimitive',
- ParseModule: 'https://ecma-international.org/ecma-262/10.0/#sec-parsemodule',
- ParseScript: 'https://ecma-international.org/ecma-262/10.0/#sec-parse-script',
- PerformEval: 'https://ecma-international.org/ecma-262/10.0/#sec-performeval',
- PerformPromiseAll: 'https://ecma-international.org/ecma-262/10.0/#sec-performpromiseall',
- PerformPromiseRace: 'https://ecma-international.org/ecma-262/10.0/#sec-performpromiserace',
- PerformPromiseThen: 'https://ecma-international.org/ecma-262/10.0/#sec-performpromisethen',
- PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/10.0/#sec-prepareforordinarycall',
- PrepareForTailCall: 'https://ecma-international.org/ecma-262/10.0/#sec-preparefortailcall',
- PromiseReactionJob: 'https://ecma-international.org/ecma-262/10.0/#sec-promisereactionjob',
- PromiseResolve: 'https://ecma-international.org/ecma-262/10.0/#sec-promise-resolve',
- PromiseResolveThenableJob: 'https://ecma-international.org/ecma-262/10.0/#sec-promiseresolvethenablejob',
- ProxyCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-proxycreate',
- PutValue: 'https://ecma-international.org/ecma-262/10.0/#sec-putvalue',
- QuoteJSONString: 'https://ecma-international.org/ecma-262/10.0/#sec-quotejsonstring',
- RawBytesToNumber: 'https://ecma-international.org/ecma-262/10.0/#sec-rawbytestonumber',
- 'reads-bytes-from': 'https://ecma-international.org/ecma-262/10.0/#sec-reads-bytes-from',
- 'reads-from': 'https://ecma-international.org/ecma-262/10.0/#sec-reads-from',
- RegExpAlloc: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpalloc',
- RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpbuiltinexec',
- RegExpCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpcreate',
- RegExpExec: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpexec',
- RegExpInitialize: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpinitialize',
- RejectPromise: 'https://ecma-international.org/ecma-262/10.0/#sec-rejectpromise',
- RemoveWaiter: 'https://ecma-international.org/ecma-262/10.0/#sec-removewaiter',
- RemoveWaiters: 'https://ecma-international.org/ecma-262/10.0/#sec-removewaiters',
- RepeatMatcher: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-repeatmatcher-abstract-operation',
- RequireObjectCoercible: 'https://ecma-international.org/ecma-262/10.0/#sec-requireobjectcoercible',
- ResolveBinding: 'https://ecma-international.org/ecma-262/10.0/#sec-resolvebinding',
- ResolveThisBinding: 'https://ecma-international.org/ecma-262/10.0/#sec-resolvethisbinding',
- ReturnIfAbrupt: 'https://ecma-international.org/ecma-262/10.0/#sec-returnifabrupt',
- RunJobs: 'https://ecma-international.org/ecma-262/10.0/#sec-runjobs',
- SameValue: 'https://ecma-international.org/ecma-262/10.0/#sec-samevalue',
- SameValueNonNumber: 'https://ecma-international.org/ecma-262/10.0/#sec-samevaluenonnumber',
- SameValueZero: 'https://ecma-international.org/ecma-262/10.0/#sec-samevaluezero',
- ScriptEvaluation: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-scriptevaluation',
- ScriptEvaluationJob: 'https://ecma-international.org/ecma-262/10.0/#sec-scriptevaluationjob',
- SecFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-SecFromTime',
- SerializeJSONArray: 'https://ecma-international.org/ecma-262/10.0/#sec-serializejsonarray',
- SerializeJSONObject: 'https://ecma-international.org/ecma-262/10.0/#sec-serializejsonobject',
- SerializeJSONProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-serializejsonproperty',
- Set: 'https://ecma-international.org/ecma-262/10.0/#sec-set-o-p-v-throw',
- SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/10.0/#sec-setdefaultglobalbindings',
- SetFunctionLength: 'https://ecma-international.org/ecma-262/10.0/#sec-setfunctionlength',
- SetFunctionName: 'https://ecma-international.org/ecma-262/10.0/#sec-setfunctionname',
- SetImmutablePrototype: 'https://ecma-international.org/ecma-262/10.0/#sec-set-immutable-prototype',
- SetIntegrityLevel: 'https://ecma-international.org/ecma-262/10.0/#sec-setintegritylevel',
- SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/10.0/#sec-setrealmglobalobject',
- SetValueInBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-setvalueinbuffer',
- SetViewValue: 'https://ecma-international.org/ecma-262/10.0/#sec-setviewvalue',
- SharedDataBlockEventSet: 'https://ecma-international.org/ecma-262/10.0/#sec-sharedatablockeventset',
- SortCompare: 'https://ecma-international.org/ecma-262/10.0/#sec-sortcompare',
- SpeciesConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-speciesconstructor',
- SplitMatch: 'https://ecma-international.org/ecma-262/10.0/#sec-splitmatch',
- 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/10.0/#sec-strict-equality-comparison',
- StringCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-stringcreate',
- StringGetOwnProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-stringgetownproperty',
- Suspend: 'https://ecma-international.org/ecma-262/10.0/#sec-suspend',
- SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/10.0/#sec-symboldescriptivestring',
- SynchronizeEventSet: 'https://ecma-international.org/ecma-262/10.0/#sec-synchronizeeventset',
- 'synchronizes-with': 'https://ecma-international.org/ecma-262/10.0/#sec-synchronizes-with',
- TestIntegrityLevel: 'https://ecma-international.org/ecma-262/10.0/#sec-testintegritylevel',
- thisBooleanValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thisbooleanvalue',
- thisNumberValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thisnumbervalue',
- thisStringValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thisstringvalue',
- thisSymbolValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thissymbolvalue',
- thisTimeValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thistimevalue',
- ThrowCompletion: 'https://ecma-international.org/ecma-262/10.0/#sec-throwcompletion',
- TimeClip: 'https://ecma-international.org/ecma-262/10.0/#sec-timeclip',
- TimeFromYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-TimeFromYear',
- TimeString: 'https://ecma-international.org/ecma-262/10.0/#sec-timestring',
- TimeWithinDay: 'https://ecma-international.org/ecma-262/10.0/#eqn-TimeWithinDay',
- TimeZoneString: 'https://ecma-international.org/ecma-262/10.0/#sec-timezoneestring',
- ToBoolean: 'https://ecma-international.org/ecma-262/10.0/#sec-toboolean',
- ToDateString: 'https://ecma-international.org/ecma-262/10.0/#sec-todatestring',
- ToIndex: 'https://ecma-international.org/ecma-262/10.0/#sec-toindex',
- ToInt16: 'https://ecma-international.org/ecma-262/10.0/#sec-toint16',
- ToInt32: 'https://ecma-international.org/ecma-262/10.0/#sec-toint32',
- ToInt8: 'https://ecma-international.org/ecma-262/10.0/#sec-toint8',
- ToInteger: 'https://ecma-international.org/ecma-262/10.0/#sec-tointeger',
- ToLength: 'https://ecma-international.org/ecma-262/10.0/#sec-tolength',
- ToNumber: 'https://ecma-international.org/ecma-262/10.0/#sec-tonumber',
- ToObject: 'https://ecma-international.org/ecma-262/10.0/#sec-toobject',
- TopLevelModuleEvaluationJob: 'https://ecma-international.org/ecma-262/10.0/#sec-toplevelmoduleevaluationjob',
- ToPrimitive: 'https://ecma-international.org/ecma-262/10.0/#sec-toprimitive',
- ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-topropertydescriptor',
- ToPropertyKey: 'https://ecma-international.org/ecma-262/10.0/#sec-topropertykey',
- ToString: 'https://ecma-international.org/ecma-262/10.0/#sec-tostring',
- ToUint16: 'https://ecma-international.org/ecma-262/10.0/#sec-touint16',
- ToUint32: 'https://ecma-international.org/ecma-262/10.0/#sec-touint32',
- ToUint8: 'https://ecma-international.org/ecma-262/10.0/#sec-touint8',
- ToUint8Clamp: 'https://ecma-international.org/ecma-262/10.0/#sec-touint8clamp',
- TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/10.0/#sec-triggerpromisereactions',
- TrimString: 'https://ecma-international.org/ecma-262/10.0/#sec-trimstring',
- Type: 'https://ecma-international.org/ecma-262/10.0/#sec-ecmascript-data-types-and-values',
- TypedArrayCreate: 'https://ecma-international.org/ecma-262/10.0/#typedarray-create',
- TypedArraySpeciesCreate: 'https://ecma-international.org/ecma-262/10.0/#typedarray-species-create',
- UnicodeEscape: 'https://ecma-international.org/ecma-262/10.0/#sec-unicodeescape',
- UnicodeMatchProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-unicodematchproperty-p',
- UnicodeMatchPropertyValue: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v',
- UpdateEmpty: 'https://ecma-international.org/ecma-262/10.0/#sec-updateempty',
- UTC: 'https://ecma-international.org/ecma-262/10.0/#sec-utc-t',
- UTF16Decode: 'https://ecma-international.org/ecma-262/10.0/#sec-utf16decode',
- UTF16Encoding: 'https://ecma-international.org/ecma-262/10.0/#sec-utf16encoding',
- ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-validateandapplypropertydescriptor',
- ValidateAtomicAccess: 'https://ecma-international.org/ecma-262/10.0/#sec-validateatomicaccess',
- ValidateSharedIntegerTypedArray: 'https://ecma-international.org/ecma-262/10.0/#sec-validatesharedintegertypedarray',
- ValidateTypedArray: 'https://ecma-international.org/ecma-262/10.0/#sec-validatetypedarray',
- ValueOfReadEvent: 'https://ecma-international.org/ecma-262/10.0/#sec-valueofreadevent',
- WeekDay: 'https://ecma-international.org/ecma-262/10.0/#sec-week-day',
- WordCharacters: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-wordcharacters-abstract-operation',
- YearFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-YearFromTime'
-};
diff --git a/node_modules/es-abstract/package.json b/node_modules/es-abstract/package.json
deleted file mode 100644
index 46c61ae..0000000
--- a/node_modules/es-abstract/package.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{
- "_from": "es-abstract@^1.5.0",
- "_id": "es-abstract@1.16.3",
- "_inBundle": false,
- "_integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==",
- "_location": "/es-abstract",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es-abstract@^1.5.0",
- "name": "es-abstract",
- "escapedName": "es-abstract",
- "rawSpec": "^1.5.0",
- "saveSpec": null,
- "fetchSpec": "^1.5.0"
- },
- "_requiredBy": [
- "/string.prototype.trim"
- ],
- "_resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz",
- "_shasum": "52490d978f96ff9f89ec15b5cf244304a5bca161",
- "_spec": "es-abstract@^1.5.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/string.prototype.trim",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "bugs": {
- "url": "https://github.com/ljharb/es-abstract/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "dependencies": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.4",
- "is-regex": "^1.0.4",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "string.prototype.trimleft": "^2.1.0",
- "string.prototype.trimright": "^2.1.0"
- },
- "deprecated": false,
- "description": "ECMAScript spec abstract operations.",
- "devDependencies": {
- "@ljharb/eslint-config": "^15.0.2",
- "cheerio": "^1.0.0-rc.3",
- "diff": "^4.0.1",
- "eclint": "^2.8.1",
- "eslint": "^6.7.2",
- "foreach": "^2.0.5",
- "make-arrow-function": "^1.1.0",
- "nyc": "^10.3.2",
- "object-is": "^1.0.1",
- "object.assign": "^4.1.0",
- "object.fromentries": "^2.0.1",
- "replace": "^1.1.1",
- "safe-publish-latest": "^1.1.4",
- "semver": "^6.3.0",
- "tape": "^4.11.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "greenkeeper": {
- "//": "nyc is ignored because it requires node 4+, and we support older than that",
- "ignore": [
- "nyc"
- ]
- },
- "homepage": "https://github.com/ljharb/es-abstract#readme",
- "keywords": [
- "ECMAScript",
- "ES",
- "abstract",
- "operation",
- "abstract operation",
- "JavaScript",
- "ES5",
- "ES6",
- "ES7"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "es-abstract",
- "repository": {
- "type": "git",
- "url": "git://github.com/ljharb/es-abstract.git"
- },
- "scripts": {
- "coverage": "nyc npm run --silent tests-only >/dev/null",
- "eccheck": "eclint check *.js **/*.js > /dev/null",
- "lint": "eslint .",
- "postcoverage": "nyc report",
- "posttest": "npx aud --production",
- "prepublish": "safe-publish-latest",
- "pretest": "npm run --silent lint",
- "test": "npm run tests-only",
- "tests-only": "node test"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "version": "1.16.3"
-}
diff --git a/node_modules/es-abstract/test/GetIntrinsic.js b/node_modules/es-abstract/test/GetIntrinsic.js
deleted file mode 100644
index 3cbc4f4..0000000
--- a/node_modules/es-abstract/test/GetIntrinsic.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../GetIntrinsic');
-
-var test = require('tape');
-var forEach = require('foreach');
-var debug = require('object-inspect');
-
-var v = require('./helpers/values');
-
-test('export', function (t) {
- t.equal(typeof GetIntrinsic, 'function', 'it is a function');
- t.equal(GetIntrinsic.length, 2, 'function has length of 2');
-
- t.end();
-});
-
-test('throws', function (t) {
- t['throws'](
- function () { GetIntrinsic('not an intrinsic'); },
- SyntaxError,
- 'nonexistent intrinsic throws a syntax error'
- );
-
- forEach(v.nonBooleans, function (nonBoolean) {
- t['throws'](
- function () { GetIntrinsic('%', nonBoolean); },
- TypeError,
- debug(nonBoolean) + ' is not a Boolean'
- );
- });
-
- t.end();
-});
-
-test('base intrinsics', function (t) {
- t.equal(GetIntrinsic('%Object%'), Object, '%Object% yields Object');
- t.equal(GetIntrinsic('%Array%'), Array, '%Array% yields Array');
-
- t.end();
-});
-
-test('dotted paths', function (t) {
- t.equal(GetIntrinsic('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% yields Object.prototype.toString');
- t.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push, '%Array.prototype.push% yields Array.prototype.push');
-
- t.end();
-});
-
-test('accessors', { skip: !Object.getOwnPropertyDescriptor || typeof Map !== 'function' }, function (t) {
- var actual = Object.getOwnPropertyDescriptor(Map.prototype, 'size');
- t.ok(actual, 'Map.prototype.size has a descriptor');
- t.equal(typeof actual.get, 'function', 'Map.prototype.size has a getter function');
- t.equal(GetIntrinsic('%Map.prototype.size%'), actual.get, '%Map.prototype.size% yields the getter for it');
-
- t.end();
-});
diff --git a/node_modules/es-abstract/test/diffOps.js b/node_modules/es-abstract/test/diffOps.js
deleted file mode 100644
index 0fb2fc4..0000000
--- a/node_modules/es-abstract/test/diffOps.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-var keys = require('object-keys');
-var forEach = require('foreach');
-
-module.exports = function diffOperations(actual, expected, expectedMissing) {
- var actualKeys = keys(actual);
- var expectedKeys = keys(expected);
-
- var extra = [];
- var missing = [];
- forEach(actualKeys, function (op) {
- if (!(op in expected)) {
- extra.push(op);
- } else if (expectedMissing.indexOf(op) !== -1) {
- extra.push(op);
- }
- });
- forEach(expectedKeys, function (op) {
- if (typeof actual[op] !== 'function' && expectedMissing.indexOf(op) === -1) {
- missing.push(op);
- }
- });
-
- return { missing: missing, extra: extra };
-};
diff --git a/node_modules/es-abstract/test/es2015.js b/node_modules/es-abstract/test/es2015.js
deleted file mode 100644
index 7922d9c..0000000
--- a/node_modules/es-abstract/test/es2015.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var ES = require('../').ES2015;
-
-var ops = require('../operations/2015');
-
-var expectedMissing = ['Construct', 'CreateArrayFromList', 'CreateListIterator', 'NormalCompletion', 'RegExpBuiltinExec'];
-
-require('./tests').es2015(ES, ops, expectedMissing);
diff --git a/node_modules/es-abstract/test/es2016.js b/node_modules/es-abstract/test/es2016.js
deleted file mode 100644
index 016d35f..0000000
--- a/node_modules/es-abstract/test/es2016.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var ES = require('../').ES2016;
-
-var ops = require('../operations/2016');
-
-var expectedMissing = ['AddRestrictedFunctionProperties', 'AllocateArrayBuffer', 'AllocateTypedArray', 'AllocateTypedArrayBuffer', 'BlockDeclarationInstantiation', 'BoundFunctionCreate', 'Canonicalize', 'CharacterRange', 'CharacterRangeOrUnion', 'CharacterSetMatcher', 'CloneArrayBuffer', 'Completion', 'Construct', 'CopyDataBlockBytes', 'CreateArrayFromList', 'CreateArrayIterator', 'CreateBuiltinFunction', 'CreateByteDataBlock', 'CreateDynamicFunction', 'CreateIntrinsics', 'CreateListIterator', 'CreateMapIterator', 'CreateMappedArgumentsObject', 'CreatePerIterationEnvironment', 'CreateRealm', 'CreateResolvingFunctions', 'CreateSetIterator', 'CreateStringIterator', 'CreateUnmappedArgumentsObject', 'Decode', 'DetachArrayBuffer', 'Encode', 'EnqueueJob', 'EnumerateObjectProperties', 'EscapeRegExpPattern', 'EvalDeclarationInstantiation', 'EvaluateCall', 'EvaluateDirectCall', 'EvaluateNew', 'ForBodyEvaluation', 'ForIn/OfBodyEvaluation', 'ForIn/OfHeadEvaluation', 'FulfillPromise', 'FunctionAllocate', 'FunctionCreate', 'FunctionDeclarationInstantiation', 'FunctionInitialize', 'GeneratorFunctionCreate', 'GeneratorResume', 'GeneratorResumeAbrupt', 'GeneratorStart', 'GeneratorValidate', 'GeneratorYield', 'GetActiveScriptOrModule', 'GetFunctionRealm', 'GetGlobalObject', 'GetIdentifierReference', 'GetModuleNamespace', 'GetNewTarget', 'GetSuperConstructor', 'GetTemplateObject', 'GetThisEnvironment', 'GetThisValue', 'GetValue', 'GetValueFromBuffer', 'GetViewValue', 'GlobalDeclarationInstantiation', 'HostPromiseRejectionTracker', 'HostReportErrors', 'HostResolveImportedModule', 'IfAbruptRejectPromise', 'ImportedLocalNames', 'InitializeBoundName', 'InitializeHostDefinedRealm', 'InitializeReferencedBinding', 'IntegerIndexedElementGet', 'IntegerIndexedElementSet', 'IntegerIndexedObjectCreate', 'InternalizeJSONProperty', 'IsAnonymousFunctionDefinition', 'IsCompatiblePropertyDescriptor', 'IsDetachedBuffer', 'IsInTailPosition', 'IsLabelledFunction', 'IsWordChar', 'LocalTime', 'LoopContinues', 'MakeArgGetter', 'MakeArgSetter', 'MakeClassConstructor', 'MakeConstructor', 'MakeMethod', 'MakeSuperPropertyReference', 'ModuleNamespaceCreate', 'NewDeclarativeEnvironment', 'NewFunctionEnvironment', 'NewGlobalEnvironment', 'NewModuleEnvironment', 'NewObjectEnvironment', 'NewPromiseCapability', 'NextJob', 'NormalCompletion', 'ObjectDefineProperties', 'OrdinaryCallBindThis', 'OrdinaryCallEvaluateBody', 'OrdinaryCreateFromConstructor', 'OrdinaryDelete', 'OrdinaryGet', 'OrdinaryIsExtensible', 'OrdinaryOwnPropertyKeys', 'OrdinaryPreventExtensions', 'OrdinarySet', 'ParseModule', 'ParseScript', 'PerformEval', 'PerformPromiseAll', 'PerformPromiseRace', 'PerformPromiseThen', 'PrepareForOrdinaryCall', 'PrepareForTailCall', 'PromiseReactionJob', 'PromiseResolveThenableJob', 'ProxyCreate', 'PutValue', 'QuoteJSONString', 'RegExpAlloc', 'RegExpBuiltinExec', 'RegExpCreate', 'RegExpInitialize', 'RejectPromise', 'RepeatMatcher', 'ResolveBinding', 'ResolveThisBinding', 'ReturnIfAbrupt', 'ScriptEvaluation', 'ScriptEvaluationJob', 'SerializeJSONArray', 'SerializeJSONObject', 'SerializeJSONProperty', 'SetDefaultGlobalBindings', 'SetRealmGlobalObject', 'SetValueInBuffer', 'SetViewValue', 'SortCompare', 'SplitMatch', 'StringCreate', 'ToString Applied to the Number Type', 'TopLevelModuleEvaluationJob', 'TriggerPromiseReactions', 'TypedArrayCreate', 'TypedArraySpeciesCreate', 'UTC', 'UTF16Decode', 'UTF16Encoding', 'UpdateEmpty', 'ValidateTypedArray', 'abs', 'floor', 'max', 'min'];
-
-require('./tests').es2016(ES, ops, expectedMissing);
diff --git a/node_modules/es-abstract/test/es2017.js b/node_modules/es-abstract/test/es2017.js
deleted file mode 100644
index c497679..0000000
--- a/node_modules/es-abstract/test/es2017.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var ES = require('../').ES2017;
-
-var ops = require('../operations/2017');
-
-var expectedMissing = ['AddRestrictedFunctionProperties', 'AddWaiter', 'AgentCanSuspend', 'AgentSignifier', 'AllocateArrayBuffer', 'AllocateSharedArrayBuffer', 'AllocateTypedArray', 'AllocateTypedArrayBuffer', 'AsyncFunctionAwait', 'AsyncFunctionCreate', 'AsyncFunctionStart', 'AtomicLoad', 'AtomicReadModifyWrite', 'BlockDeclarationInstantiation', 'BoundFunctionCreate', 'Canonicalize', 'CharacterRange', 'CharacterRangeOrUnion', 'CharacterSetMatcher', 'CloneArrayBuffer', 'Completion', 'ComposeWriteEventBytes', 'Construct', 'CopyDataBlockBytes', 'CreateArrayFromList', 'CreateArrayIterator', 'CreateBuiltinFunction', 'CreateByteDataBlock', 'CreateDynamicFunction', 'CreateIntrinsics', 'CreateListIterator', 'CreateMapIterator', 'CreateMappedArgumentsObject', 'CreatePerIterationEnvironment', 'CreateRealm', 'CreateResolvingFunctions', 'CreateSetIterator', 'CreateSharedByteDataBlock', 'CreateStringIterator', 'CreateUnmappedArgumentsObject', 'Decode', 'DetachArrayBuffer', 'Encode', 'EnqueueJob', 'EnterCriticalSection', 'EnumerateObjectProperties', 'EscapeRegExpPattern', 'EvalDeclarationInstantiation', 'EvaluateCall', 'EvaluateDirectCall', 'EvaluateNew', 'EventSet', 'ForBodyEvaluation', 'ForIn/OfBodyEvaluation', 'ForIn/OfHeadEvaluation', 'FulfillPromise', 'FunctionAllocate', 'FunctionCreate', 'FunctionDeclarationInstantiation', 'FunctionInitialize', 'GeneratorFunctionCreate', 'GeneratorResume', 'GeneratorResumeAbrupt', 'GeneratorStart', 'GeneratorValidate', 'GeneratorYield', 'GetActiveScriptOrModule', 'GetBase', 'GetFunctionRealm', 'GetGlobalObject', 'GetIdentifierReference', 'GetModifySetValueInBuffer', 'GetModuleNamespace', 'GetNewTarget', 'GetReferencedName', 'GetSuperConstructor', 'GetTemplateObject', 'GetThisEnvironment', 'GetThisValue', 'GetValue', 'GetValueFromBuffer', 'GetViewValue', 'GetWaiterList', 'GlobalDeclarationInstantiation', 'HasPrimitiveBase', 'HostEnsureCanCompileStrings', 'HostEventSet', 'HostPromiseRejectionTracker', 'HostReportErrors', 'HostResolveImportedModule', 'IfAbruptRejectPromise', 'ImportedLocalNames', 'InitializeBoundName', 'InitializeHostDefinedRealm', 'InitializeReferencedBinding', 'IntegerIndexedElementGet', 'IntegerIndexedElementSet', 'IntegerIndexedObjectCreate', 'InternalizeJSONProperty', 'IsAnonymousFunctionDefinition', 'IsCompatiblePropertyDescriptor', 'IsDetachedBuffer', 'IsInTailPosition', 'IsLabelledFunction', 'IsPropertyReference', 'IsSharedArrayBuffer', 'IsStrictReference', 'IsSuperReference', 'IsUnresolvableReference', 'IsWordChar', 'LeaveCriticalSection', 'LocalTime', 'LoopContinues', 'MakeArgGetter', 'MakeArgSetter', 'MakeClassConstructor', 'MakeConstructor', 'MakeMethod', 'MakeSuperPropertyReference', 'ModuleNamespaceCreate', 'NewDeclarativeEnvironment', 'NewFunctionEnvironment', 'NewGlobalEnvironment', 'NewModuleEnvironment', 'NewObjectEnvironment', 'NewPromiseCapability', 'NormalCompletion', 'NumberToRawBytes', 'ObjectDefineProperties', 'OrdinaryCallBindThis', 'OrdinaryCallEvaluateBody', 'OrdinaryCreateFromConstructor', 'OrdinaryDelete', 'OrdinaryGet', 'OrdinaryIsExtensible', 'OrdinaryOwnPropertyKeys', 'OrdinaryPreventExtensions', 'OrdinarySet', 'OrdinaryToPrimitive', 'ParseModule', 'ParseScript', 'PerformEval', 'PerformPromiseAll', 'PerformPromiseRace', 'PerformPromiseThen', 'PrepareForOrdinaryCall', 'PrepareForTailCall', 'PromiseReactionJob', 'PromiseResolveThenableJob', 'ProxyCreate', 'PutValue', 'QuoteJSONString', 'RawBytesToNumber', 'RegExpAlloc', 'RegExpBuiltinExec', 'RegExpCreate', 'RegExpInitialize', 'RejectPromise', 'RemoveWaiter', 'RemoveWaiters', 'RepeatMatcher', 'ResolveBinding', 'ResolveThisBinding', 'ReturnIfAbrupt', 'RunJobs', 'ScriptEvaluation', 'ScriptEvaluationJob', 'SerializeJSONArray', 'SerializeJSONObject', 'SerializeJSONProperty', 'SetDefaultGlobalBindings', 'SetImmutablePrototype', 'SetRealmGlobalObject', 'SetValueInBuffer', 'SetViewValue', 'SharedDataBlockEventSet', 'SortCompare', 'SplitMatch', 'StringCreate', 'StringGetOwnProperty', 'Suspend', 'ToString Applied to the Number Type', 'TopLevelModuleEvaluationJob', 'TriggerPromiseReactions', 'TypedArrayCreate', 'TypedArraySpeciesCreate', 'UTC', 'UTF16Decode', 'UTF16Encoding', 'UpdateEmpty', 'ValidateAtomicAccess', 'ValidateSharedIntegerTypedArray', 'ValidateTypedArray', 'ValueOfReadEvent', 'WakeWaiter', 'WordCharacters', 'abs', 'agent-order', 'floor', 'happens-before', 'host-synchronizes-with', 'max', 'memory-order', 'min', 'reads-bytes-from', 'reads-from', 'synchronizes-with'];
-
-require('./tests').es2017(ES, ops, expectedMissing);
diff --git a/node_modules/es-abstract/test/es2018.js b/node_modules/es-abstract/test/es2018.js
deleted file mode 100644
index 37c029a..0000000
--- a/node_modules/es-abstract/test/es2018.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var ES = require('../').ES2018;
-
-var ops = require('../operations/2018');
-
-var expectedMissing = ['abs', 'AddRestrictedFunctionProperties', 'AddWaiter', 'agent-order', 'AgentCanSuspend', 'AgentSignifier', 'AllocateArrayBuffer', 'AllocateSharedArrayBuffer', 'AllocateTypedArray', 'AllocateTypedArrayBuffer', 'AsyncFunctionStart', 'AsyncGeneratorEnqueue', 'AsyncGeneratorReject', 'AsyncGeneratorResolve', 'AsyncGeneratorResumeNext', 'AsyncGeneratorStart', 'AsyncGeneratorYield', 'AtomicLoad', 'AtomicReadModifyWrite', 'Await', 'BlockDeclarationInstantiation', 'BoundFunctionCreate', 'Canonicalize', 'CaseClauseIsSelected', 'CharacterRange', 'CharacterRangeOrUnion', 'CharacterSetMatcher', 'CloneArrayBuffer', 'Completion', 'ComposeWriteEventBytes', 'CopyDataBlockBytes', 'CreateArrayIterator', 'CreateAsyncFromSyncIterator', 'CreateBuiltinFunction', 'CreateByteDataBlock', 'CreateDynamicFunction', 'CreateIntrinsics', 'CreateMapIterator', 'CreateMappedArgumentsObject', 'CreatePerIterationEnvironment', 'CreateRealm', 'CreateResolvingFunctions', 'CreateSetIterator', 'CreateSharedByteDataBlock', 'CreateStringIterator', 'CreateUnmappedArgumentsObject', 'Decode', 'DetachArrayBuffer', 'Encode', 'EnqueueJob', 'EnterCriticalSection', 'EnumerateObjectProperties', 'EscapeRegExpPattern', 'EvalDeclarationInstantiation', 'EvaluateCall', 'EvaluateNew', 'EventSet', 'floor', 'ForBodyEvaluation', 'ForIn/OfBodyEvaluation', 'ForIn/OfHeadEvaluation', 'FulfillPromise', 'FunctionAllocate', 'FunctionCreate', 'FunctionDeclarationInstantiation', 'FunctionInitialize', 'GeneratorFunctionCreate', 'GeneratorResume', 'GeneratorResumeAbrupt', 'GeneratorStart', 'GeneratorValidate', 'GeneratorYield', 'GetActiveScriptOrModule', 'GetBase', 'GetFunctionRealm', 'GetGeneratorKind', 'GetGlobalObject', 'GetIdentifierReference', 'GetModifySetValueInBuffer', 'GetModuleNamespace', 'GetNewTarget', 'GetReferencedName', 'GetSuperConstructor', 'GetTemplateObject', 'GetThisEnvironment', 'GetThisValue', 'GetValue', 'GetValueFromBuffer', 'GetViewValue', 'GetWaiterList', 'GlobalDeclarationInstantiation', 'happens-before', 'HasPrimitiveBase', 'host-synchronizes-with', 'HostEnsureCanCompileStrings', 'HostEventSet', 'HostPromiseRejectionTracker', 'HostReportErrors', 'HostResolveImportedModule', 'IfAbruptRejectPromise', 'ImportedLocalNames', 'InitializeBoundName', 'InitializeHostDefinedRealm', 'InitializeReferencedBinding', 'InnerModuleEvaluation', 'InnerModuleInstantiation', 'IntegerIndexedElementGet', 'IntegerIndexedElementSet', 'IntegerIndexedObjectCreate', 'InternalizeJSONProperty', 'IsAnonymousFunctionDefinition', 'IsCompatiblePropertyDescriptor', 'IsDetachedBuffer', 'IsInTailPosition', 'IsLabelledFunction', 'IsPropertyReference', 'IsSharedArrayBuffer', 'IsStrictReference', 'IsSuperReference', 'IsUnresolvableReference', 'IsWordChar', 'LeaveCriticalSection', 'LocalTime', 'LoopContinues', 'MakeArgGetter', 'MakeArgSetter', 'MakeClassConstructor', 'MakeConstructor', 'MakeMethod', 'MakeSuperPropertyReference', 'max', 'memory-order', 'min', 'ModuleDeclarationEnvironmentSetup', 'ModuleExecution', 'ModuleNamespaceCreate', 'NewDeclarativeEnvironment', 'NewFunctionEnvironment', 'NewGlobalEnvironment', 'NewModuleEnvironment', 'NewObjectEnvironment', 'NewPromiseCapability', 'NumberToRawBytes', 'ObjectDefineProperties', 'OrdinaryCallBindThis', 'OrdinaryCallEvaluateBody', 'OrdinaryCreateFromConstructor', 'OrdinaryDelete', 'OrdinaryGet', 'OrdinaryIsExtensible', 'OrdinaryOwnPropertyKeys', 'OrdinaryPreventExtensions', 'OrdinaryToPrimitive', 'ParseModule', 'ParseScript', 'PerformEval', 'PerformPromiseAll', 'PerformPromiseRace', 'PerformPromiseThen', 'PrepareForOrdinaryCall', 'PrepareForTailCall', 'PromiseReactionJob', 'PromiseResolveThenableJob', 'ProxyCreate', 'PutValue', 'QuoteJSONString', 'RawBytesToNumber', 'reads-bytes-from', 'reads-from', 'RegExpAlloc', 'RegExpCreate', 'RegExpInitialize', 'RejectPromise', 'RemoveWaiter', 'RemoveWaiters', 'RepeatMatcher', 'ResolveBinding', 'ResolveThisBinding', 'ReturnIfAbrupt', 'RunJobs', 'ScriptEvaluation', 'ScriptEvaluationJob', 'SerializeJSONArray', 'SerializeJSONObject', 'SerializeJSONProperty', 'SetDefaultGlobalBindings', 'SetImmutablePrototype', 'SetRealmGlobalObject', 'SetValueInBuffer', 'SetViewValue', 'SharedDataBlockEventSet', 'SortCompare', 'SplitMatch', 'StringCreate', 'StringGetOwnProperty', 'Suspend', 'synchronizes-with', 'TimeZoneString', 'TopLevelModuleEvaluationJob', 'TriggerPromiseReactions', 'TypedArrayCreate', 'TypedArraySpeciesCreate', 'UnicodeEscape', 'UpdateEmpty', 'UTC', 'UTF16Decode', 'UTF16Encoding', 'ValidateAtomicAccess', 'ValidateSharedIntegerTypedArray', 'ValidateTypedArray', 'ValueOfReadEvent', 'WakeWaiter', 'WordCharacters', 'AsyncFunctionCreate', 'AsyncGeneratorFunctionCreate', 'AsyncIteratorClose', 'BackreferenceMatcher', 'Construct', 'CreateArrayFromList', 'CreateListIteratorRecord', 'NormalCompletion', 'OrdinarySet', 'OrdinarySetWithOwnDescriptor', 'RegExpBuiltinExec', 'SetFunctionLength', 'ThrowCompletion', 'UnicodeMatchProperty', 'UnicodeMatchPropertyValue'];
-
-require('./tests').es2018(ES, ops, expectedMissing);
diff --git a/node_modules/es-abstract/test/es2019.js b/node_modules/es-abstract/test/es2019.js
deleted file mode 100644
index 94e00a3..0000000
--- a/node_modules/es-abstract/test/es2019.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var ES = require('../').ES2019;
-
-var ops = require('../operations/2019');
-
-var expectedMissing = ['abs', 'AddRestrictedFunctionProperties', 'AddWaiter', 'agent-order', 'AgentCanSuspend', 'AgentSignifier', 'AllocateArrayBuffer', 'AllocateSharedArrayBuffer', 'AllocateTypedArray', 'AllocateTypedArrayBuffer', 'AsyncFunctionStart', 'AsyncGeneratorEnqueue', 'AsyncGeneratorReject', 'AsyncGeneratorResolve', 'AsyncGeneratorResumeNext', 'AsyncGeneratorStart', 'AsyncGeneratorYield', 'AtomicLoad', 'AtomicReadModifyWrite', 'Await', 'BlockDeclarationInstantiation', 'BoundFunctionCreate', 'Canonicalize', 'CaseClauseIsSelected', 'CharacterRange', 'CharacterRangeOrUnion', 'CharacterSetMatcher', 'CloneArrayBuffer', 'Completion', 'ComposeWriteEventBytes', 'CopyDataBlockBytes', 'CreateArrayIterator', 'CreateAsyncFromSyncIterator', 'CreateBuiltinFunction', 'CreateByteDataBlock', 'CreateDynamicFunction', 'CreateIntrinsics', 'CreateMapIterator', 'CreateMappedArgumentsObject', 'CreatePerIterationEnvironment', 'CreateRealm', 'CreateResolvingFunctions', 'CreateSetIterator', 'CreateSharedByteDataBlock', 'CreateStringIterator', 'CreateUnmappedArgumentsObject', 'Decode', 'DetachArrayBuffer', 'Encode', 'EnqueueJob', 'EnterCriticalSection', 'EnumerateObjectProperties', 'EscapeRegExpPattern', 'EvalDeclarationInstantiation', 'EvaluateCall', 'EvaluateNew', 'EventSet', 'floor', 'ForBodyEvaluation', 'ForIn/OfBodyEvaluation', 'ForIn/OfHeadEvaluation', 'FulfillPromise', 'FunctionAllocate', 'FunctionCreate', 'FunctionDeclarationInstantiation', 'FunctionInitialize', 'GeneratorFunctionCreate', 'GeneratorResume', 'GeneratorResumeAbrupt', 'GeneratorStart', 'GeneratorValidate', 'GeneratorYield', 'GetActiveScriptOrModule', 'GetBase', 'GetFunctionRealm', 'GetGeneratorKind', 'GetGlobalObject', 'GetIdentifierReference', 'GetModifySetValueInBuffer', 'GetModuleNamespace', 'GetNewTarget', 'GetReferencedName', 'GetSuperConstructor', 'GetTemplateObject', 'GetThisEnvironment', 'GetThisValue', 'GetValue', 'GetValueFromBuffer', 'GetViewValue', 'GetWaiterList', 'GlobalDeclarationInstantiation', 'happens-before', 'HasPrimitiveBase', 'host-synchronizes-with', 'HostEnsureCanCompileStrings', 'HostEventSet', 'HostPromiseRejectionTracker', 'HostReportErrors', 'HostResolveImportedModule', 'IfAbruptRejectPromise', 'ImportedLocalNames', 'InitializeBoundName', 'InitializeHostDefinedRealm', 'InitializeReferencedBinding', 'InnerModuleEvaluation', 'InnerModuleInstantiation', 'IntegerIndexedElementGet', 'IntegerIndexedElementSet', 'IntegerIndexedObjectCreate', 'InternalizeJSONProperty', 'IsAnonymousFunctionDefinition', 'IsCompatiblePropertyDescriptor', 'IsDetachedBuffer', 'IsInTailPosition', 'IsLabelledFunction', 'IsPropertyReference', 'IsSharedArrayBuffer', 'IsStrictReference', 'IsSuperReference', 'IsUnresolvableReference', 'IsWordChar', 'LeaveCriticalSection', 'LocalTime', 'LoopContinues', 'MakeArgGetter', 'MakeArgSetter', 'MakeClassConstructor', 'MakeConstructor', 'MakeMethod', 'MakeSuperPropertyReference', 'max', 'memory-order', 'min', 'ModuleDeclarationEnvironmentSetup', 'ModuleExecution', 'ModuleNamespaceCreate', 'NewDeclarativeEnvironment', 'NewFunctionEnvironment', 'NewGlobalEnvironment', 'NewModuleEnvironment', 'NewObjectEnvironment', 'NewPromiseCapability', 'NumberToRawBytes', 'ObjectDefineProperties', 'OrdinaryCallBindThis', 'OrdinaryCallEvaluateBody', 'OrdinaryCreateFromConstructor', 'OrdinaryDelete', 'OrdinaryGet', 'OrdinaryIsExtensible', 'OrdinaryOwnPropertyKeys', 'OrdinaryPreventExtensions', 'OrdinaryToPrimitive', 'ParseModule', 'ParseScript', 'PerformEval', 'PerformPromiseAll', 'PerformPromiseRace', 'PerformPromiseThen', 'PrepareForOrdinaryCall', 'PrepareForTailCall', 'PromiseReactionJob', 'PromiseResolveThenableJob', 'ProxyCreate', 'PutValue', 'QuoteJSONString', 'RawBytesToNumber', 'reads-bytes-from', 'reads-from', 'RegExpAlloc', 'RegExpCreate', 'RegExpInitialize', 'RejectPromise', 'RemoveWaiter', 'RemoveWaiters', 'RepeatMatcher', 'ResolveBinding', 'ResolveThisBinding', 'ReturnIfAbrupt', 'RunJobs', 'ScriptEvaluation', 'ScriptEvaluationJob', 'SerializeJSONArray', 'SerializeJSONObject', 'SerializeJSONProperty', 'SetDefaultGlobalBindings', 'SetImmutablePrototype', 'SetRealmGlobalObject', 'SetValueInBuffer', 'SetViewValue', 'SharedDataBlockEventSet', 'SortCompare', 'SplitMatch', 'StringCreate', 'StringGetOwnProperty', 'Suspend', 'synchronizes-with', 'TimeZoneString', 'TopLevelModuleEvaluationJob', 'TriggerPromiseReactions', 'TypedArrayCreate', 'TypedArraySpeciesCreate', 'UnicodeEscape', 'UpdateEmpty', 'UTC', 'UTF16Decode', 'UTF16Encoding', 'ValidateAtomicAccess', 'ValidateSharedIntegerTypedArray', 'ValidateTypedArray', 'ValueOfReadEvent', 'WakeWaiter', 'WordCharacters', 'AsyncFunctionCreate', 'AsyncGeneratorFunctionCreate', 'AsyncIteratorClose', 'BackreferenceMatcher', 'Construct', 'CreateArrayFromList', 'CreateListIteratorRecord', 'NormalCompletion', 'OrdinarySet', 'OrdinarySetWithOwnDescriptor', 'RegExpBuiltinExec', 'SetFunctionLength', 'ThrowCompletion', 'UnicodeMatchProperty', 'UnicodeMatchPropertyValue', 'AsyncFromSyncIteratorContinuation', 'ExecuteModule', 'InitializeEnvironment', 'NotifyWaiter', 'SynchronizeEventSet'];
-
-require('./tests').es2019(ES, ops, expectedMissing);
diff --git a/node_modules/es-abstract/test/es5.js b/node_modules/es-abstract/test/es5.js
deleted file mode 100644
index efd9042..0000000
--- a/node_modules/es-abstract/test/es5.js
+++ /dev/null
@@ -1,782 +0,0 @@
-'use strict';
-
-var ES = require('../').ES5;
-var test = require('tape');
-
-var forEach = require('foreach');
-var is = require('object-is');
-var debug = require('object-inspect');
-
-var v = require('./helpers/values');
-
-test('ToPrimitive', function (t) {
- t.test('primitives', function (st) {
- var testPrimitive = function (primitive) {
- st.ok(is(ES.ToPrimitive(primitive), primitive), debug(primitive) + ' is returned correctly');
- };
- forEach(v.primitives, testPrimitive);
- st.end();
- });
-
- t.test('objects', function (st) {
- st.equal(ES.ToPrimitive(v.coercibleObject), v.coercibleObject.valueOf(), 'coercibleObject coerces to valueOf');
- st.equal(ES.ToPrimitive(v.coercibleObject, Number), v.coercibleObject.valueOf(), 'coercibleObject with hint Number coerces to valueOf');
- st.equal(ES.ToPrimitive(v.coercibleObject, String), v.coercibleObject.toString(), 'coercibleObject with hint String coerces to toString');
- st.equal(ES.ToPrimitive(v.coercibleFnObject), v.coercibleFnObject.toString(), 'coercibleFnObject coerces to toString');
- st.equal(ES.ToPrimitive(v.toStringOnlyObject), v.toStringOnlyObject.toString(), 'toStringOnlyObject returns toString');
- st.equal(ES.ToPrimitive(v.valueOfOnlyObject), v.valueOfOnlyObject.valueOf(), 'valueOfOnlyObject returns valueOf');
- st.equal(ES.ToPrimitive({}), '[object Object]', '{} with no hint coerces to Object#toString');
- st.equal(ES.ToPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString');
- st.equal(ES.ToPrimitive({}, Number), '[object Object]', '{} with hint Number coerces to Object#toString');
- st['throws'](function () { return ES.ToPrimitive(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws a TypeError');
- st['throws'](function () { return ES.ToPrimitive(v.uncoercibleFnObject); }, TypeError, 'uncoercibleFnObject throws a TypeError');
- st.end();
- });
-
- t.end();
-});
-
-test('ToBoolean', function (t) {
- t.equal(false, ES.ToBoolean(undefined), 'undefined coerces to false');
- t.equal(false, ES.ToBoolean(null), 'null coerces to false');
- t.equal(false, ES.ToBoolean(false), 'false returns false');
- t.equal(true, ES.ToBoolean(true), 'true returns true');
- forEach([0, -0, NaN], function (falsyNumber) {
- t.equal(false, ES.ToBoolean(falsyNumber), 'falsy number ' + falsyNumber + ' coerces to false');
- });
- forEach([Infinity, 42, 1, -Infinity], function (truthyNumber) {
- t.equal(true, ES.ToBoolean(truthyNumber), 'truthy number ' + truthyNumber + ' coerces to true');
- });
- t.equal(false, ES.ToBoolean(''), 'empty string coerces to false');
- t.equal(true, ES.ToBoolean('foo'), 'nonempty string coerces to true');
- forEach(v.objects, function (obj) {
- t.equal(true, ES.ToBoolean(obj), 'object coerces to true');
- });
- t.equal(true, ES.ToBoolean(v.uncoercibleObject), 'uncoercibleObject coerces to true');
- t.end();
-});
-
-test('ToNumber', function (t) {
- t.ok(is(NaN, ES.ToNumber(undefined)), 'undefined coerces to NaN');
- t.ok(is(ES.ToNumber(null), 0), 'null coerces to +0');
- t.ok(is(ES.ToNumber(false), 0), 'false coerces to +0');
- t.equal(1, ES.ToNumber(true), 'true coerces to 1');
- t.ok(is(NaN, ES.ToNumber(NaN)), 'NaN returns itself');
- forEach([0, -0, 42, Infinity, -Infinity], function (num) {
- t.equal(num, ES.ToNumber(num), num + ' returns itself');
- });
- forEach(['foo', '0', '4a', '2.0', 'Infinity', '-Infinity'], function (numString) {
- t.ok(is(+numString, ES.ToNumber(numString)), '"' + numString + '" coerces to ' + Number(numString));
- });
- forEach(v.objects, function (object) {
- t.ok(is(ES.ToNumber(object), ES.ToNumber(ES.ToPrimitive(object))), 'object ' + object + ' coerces to same as ToPrimitive of object does');
- });
- t['throws'](function () { return ES.ToNumber(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.end();
-});
-
-test('ToInteger', function (t) {
- t.ok(is(0, ES.ToInteger(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity, 42], function (num) {
- t.ok(is(num, ES.ToInteger(num)), num + ' returns itself');
- t.ok(is(-num, ES.ToInteger(-num)), '-' + num + ' returns itself');
- });
- t.equal(3, ES.ToInteger(Math.PI), 'pi returns 3');
- t['throws'](function () { return ES.ToInteger(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.end();
-});
-
-test('ToInt32', function (t) {
- t.ok(is(0, ES.ToInt32(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToInt32(num)), num + ' returns +0');
- t.ok(is(0, ES.ToInt32(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToInt32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToInt32(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToInt32(0x100000000 - 1), -1), '2^32 - 1 returns -1');
- t.ok(is(ES.ToInt32(0x80000000), -0x80000000), '2^31 returns -2^31');
- t.ok(is(ES.ToInt32(0x80000000 - 1), 0x80000000 - 1), '2^31 - 1 returns 2^31 - 1');
- forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) {
- t.ok(is(ES.ToInt32(num), ES.ToInt32(ES.ToUint32(num))), 'ToInt32(x) === ToInt32(ToUint32(x)) for 0x' + num.toString(16));
- t.ok(is(ES.ToInt32(-num), ES.ToInt32(ES.ToUint32(-num))), 'ToInt32(x) === ToInt32(ToUint32(x)) for -0x' + num.toString(16));
- });
- t.end();
-});
-
-test('ToUint32', function (t) {
- t.ok(is(0, ES.ToUint32(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToUint32(num)), num + ' returns +0');
- t.ok(is(0, ES.ToUint32(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToUint32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToUint32(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToUint32(0x100000000 - 1), 0x100000000 - 1), '2^32 - 1 returns 2^32 - 1');
- t.ok(is(ES.ToUint32(0x80000000), 0x80000000), '2^31 returns 2^31');
- t.ok(is(ES.ToUint32(0x80000000 - 1), 0x80000000 - 1), '2^31 - 1 returns 2^31 - 1');
- forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) {
- t.ok(is(ES.ToUint32(num), ES.ToUint32(ES.ToInt32(num))), 'ToUint32(x) === ToUint32(ToInt32(x)) for 0x' + num.toString(16));
- t.ok(is(ES.ToUint32(-num), ES.ToUint32(ES.ToInt32(-num))), 'ToUint32(x) === ToUint32(ToInt32(x)) for -0x' + num.toString(16));
- });
- t.end();
-});
-
-test('ToUint16', function (t) {
- t.ok(is(0, ES.ToUint16(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToUint16(num)), num + ' returns +0');
- t.ok(is(0, ES.ToUint16(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToUint16(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToUint16(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToUint16(0x100000000 - 1), 0x10000 - 1), '2^32 - 1 returns 2^16 - 1');
- t.ok(is(ES.ToUint16(0x80000000), 0), '2^31 returns +0');
- t.ok(is(ES.ToUint16(0x80000000 - 1), 0x10000 - 1), '2^31 - 1 returns 2^16 - 1');
- t.ok(is(ES.ToUint16(0x10000), 0), '2^16 returns +0');
- t.ok(is(ES.ToUint16(0x10000 - 1), 0x10000 - 1), '2^16 - 1 returns 2^16 - 1');
- t.end();
-});
-
-test('ToString', function (t) {
- t['throws'](function () { return ES.ToString(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.end();
-});
-
-test('ToObject', function (t) {
- t['throws'](function () { return ES.ToObject(undefined); }, TypeError, 'undefined throws');
- t['throws'](function () { return ES.ToObject(null); }, TypeError, 'null throws');
- forEach(v.numbers, function (number) {
- var obj = ES.ToObject(number);
- t.equal(typeof obj, 'object', 'number ' + number + ' coerces to object');
- t.equal(true, obj instanceof Number, 'object of ' + number + ' is Number object');
- t.ok(is(obj.valueOf(), number), 'object of ' + number + ' coerces to ' + number);
- });
- t.end();
-});
-
-test('CheckObjectCoercible', function (t) {
- t['throws'](function () { return ES.CheckObjectCoercible(undefined); }, TypeError, 'undefined throws');
- t['throws'](function () { return ES.CheckObjectCoercible(null); }, TypeError, 'null throws');
- var checkCoercible = function (value) {
- t.doesNotThrow(function () { return ES.CheckObjectCoercible(value); }, debug(value) + ' does not throw');
- };
- forEach(v.objects.concat(v.nonNullPrimitives), checkCoercible);
- t.end();
-});
-
-test('IsCallable', function (t) {
- t.equal(true, ES.IsCallable(function () {}), 'function is callable');
- var nonCallables = [/a/g, {}, Object.prototype, NaN].concat(v.primitives);
- forEach(nonCallables, function (nonCallable) {
- t.equal(false, ES.IsCallable(nonCallable), debug(nonCallable) + ' is not callable');
- });
- t.end();
-});
-
-test('SameValue', function (t) {
- t.equal(true, ES.SameValue(NaN, NaN), 'NaN is SameValue as NaN');
- t.equal(false, ES.SameValue(0, -0), '+0 is not SameValue as -0');
- forEach(v.objects.concat(v.primitives), function (val) {
- t.equal(val === val, ES.SameValue(val, val), debug(val) + ' is SameValue to itself');
- });
- t.end();
-});
-
-test('Type', function (t) {
- t.equal(ES.Type(), 'Undefined', 'Type() is Undefined');
- t.equal(ES.Type(undefined), 'Undefined', 'Type(undefined) is Undefined');
- t.equal(ES.Type(null), 'Null', 'Type(null) is Null');
- t.equal(ES.Type(true), 'Boolean', 'Type(true) is Boolean');
- t.equal(ES.Type(false), 'Boolean', 'Type(false) is Boolean');
- t.equal(ES.Type(0), 'Number', 'Type(0) is Number');
- t.equal(ES.Type(NaN), 'Number', 'Type(NaN) is Number');
- t.equal(ES.Type('abc'), 'String', 'Type("abc") is String');
- t.equal(ES.Type(function () {}), 'Object', 'Type(function () {}) is Object');
- t.equal(ES.Type({}), 'Object', 'Type({}) is Object');
- t.end();
-});
-
-test('IsPropertyDescriptor', function (t) {
- forEach(v.primitives, function (primitive) {
- t.equal(ES.IsPropertyDescriptor(primitive), false, debug(primitive) + ' is not a Property Descriptor');
- });
-
- t.equal(ES.IsPropertyDescriptor({ invalid: true }), false, 'invalid keys not allowed on a Property Descriptor');
-
- t.equal(ES.IsPropertyDescriptor({}), true, 'empty object is an incomplete Property Descriptor');
-
- t.equal(ES.IsPropertyDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is a Property Descriptor');
- t.equal(ES.IsPropertyDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is a Property Descriptor');
- t.equal(ES.IsPropertyDescriptor(v.dataDescriptor()), true, 'data descriptor is a Property Descriptor');
- t.equal(ES.IsPropertyDescriptor(v.genericDescriptor()), true, 'generic descriptor is a Property Descriptor');
-
- t['throws'](
- function () { ES.IsPropertyDescriptor(v.bothDescriptor()); },
- TypeError,
- 'a Property Descriptor can not be both a Data and an Accessor Descriptor'
- );
-
- t['throws'](
- function () { ES.IsPropertyDescriptor(v.bothDescriptorWritable()); },
- TypeError,
- 'a Property Descriptor can not be both a Data and an Accessor Descriptor'
- );
-
- t.end();
-});
-
-test('IsAccessorDescriptor', function (t) {
- forEach(v.nonNullPrimitives.concat(null), function (primitive) {
- t['throws'](function () { ES.IsAccessorDescriptor(primitive); }, TypeError, debug(primitive) + ' is not a Property Descriptor');
- });
-
- t.equal(ES.IsAccessorDescriptor(), false, 'no value is not an Accessor Descriptor');
- t.equal(ES.IsAccessorDescriptor(undefined), false, 'undefined value is not an Accessor Descriptor');
-
- t.equal(ES.IsAccessorDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is an Accessor Descriptor');
- t.equal(ES.IsAccessorDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is an Accessor Descriptor');
- t.equal(ES.IsAccessorDescriptor(v.dataDescriptor()), false, 'data descriptor is not an Accessor Descriptor');
- t.equal(ES.IsAccessorDescriptor(v.genericDescriptor()), false, 'generic descriptor is not an Accessor Descriptor');
-
- t.end();
-});
-
-test('IsDataDescriptor', function (t) {
- forEach(v.nonNullPrimitives.concat(null), function (primitive) {
- t['throws'](function () { ES.IsDataDescriptor(primitive); }, TypeError, debug(primitive) + ' is not a Property Descriptor');
- });
-
- t.equal(ES.IsDataDescriptor(), false, 'no value is not a Data Descriptor');
- t.equal(ES.IsDataDescriptor(undefined), false, 'undefined value is not a Data Descriptor');
-
- t.equal(ES.IsDataDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a Data Descriptor');
- t.equal(ES.IsDataDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a Data Descriptor');
- t.equal(ES.IsDataDescriptor(v.dataDescriptor()), true, 'data descriptor is a Data Descriptor');
- t.equal(ES.IsDataDescriptor(v.genericDescriptor()), false, 'generic descriptor is not a Data Descriptor');
-
- t.end();
-});
-
-test('IsGenericDescriptor', function (t) {
- forEach(v.nonNullPrimitives.concat(null), function (primitive) {
- t['throws'](
- function () { ES.IsGenericDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- t.equal(ES.IsGenericDescriptor(), false, 'no value is not a Data Descriptor');
- t.equal(ES.IsGenericDescriptor(undefined), false, 'undefined value is not a Data Descriptor');
-
- t.equal(ES.IsGenericDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a generic Descriptor');
- t.equal(ES.IsGenericDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a generic Descriptor');
- t.equal(ES.IsGenericDescriptor(v.dataDescriptor()), false, 'data descriptor is not a generic Descriptor');
-
- t.equal(ES.IsGenericDescriptor(v.genericDescriptor()), true, 'generic descriptor is a generic Descriptor');
-
- t.end();
-});
-
-test('FromPropertyDescriptor', function (t) {
- t.equal(ES.FromPropertyDescriptor(), undefined, 'no value begets undefined');
- t.equal(ES.FromPropertyDescriptor(undefined), undefined, 'undefined value begets undefined');
-
- forEach(v.nonNullPrimitives.concat(null), function (primitive) {
- t['throws'](
- function () { ES.FromPropertyDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- var accessor = v.accessorDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(accessor), {
- get: accessor['[[Get]]'],
- set: accessor['[[Set]]'],
- enumerable: !!accessor['[[Enumerable]]'],
- configurable: !!accessor['[[Configurable]]']
- });
-
- var mutator = v.mutatorDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(mutator), {
- get: mutator['[[Get]]'],
- set: mutator['[[Set]]'],
- enumerable: !!mutator['[[Enumerable]]'],
- configurable: !!mutator['[[Configurable]]']
- });
- var data = v.dataDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(data), {
- value: data['[[Value]]'],
- writable: data['[[Writable]]'],
- enumerable: !!data['[[Enumerable]]'],
- configurable: !!data['[[Configurable]]']
- });
-
- t['throws'](
- function () { ES.FromPropertyDescriptor(v.genericDescriptor()); },
- TypeError,
- 'a complete Property Descriptor is required'
- );
-
- t.end();
-});
-
-test('ToPropertyDescriptor', function (t) {
- forEach(v.nonNullPrimitives.concat(null), function (primitive) {
- t['throws'](
- function () { ES.ToPropertyDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
-
- var accessor = v.accessorDescriptor();
- t.deepEqual(ES.ToPropertyDescriptor({
- get: accessor['[[Get]]'],
- enumerable: !!accessor['[[Enumerable]]'],
- configurable: !!accessor['[[Configurable]]']
- }), accessor);
-
- var mutator = v.mutatorDescriptor();
- t.deepEqual(ES.ToPropertyDescriptor({
- set: mutator['[[Set]]'],
- enumerable: !!mutator['[[Enumerable]]'],
- configurable: !!mutator['[[Configurable]]']
- }), mutator);
-
- var data = v.descriptors.nonConfigurable(v.dataDescriptor());
- t.deepEqual(ES.ToPropertyDescriptor({
- value: data['[[Value]]'],
- writable: data['[[Writable]]'],
- configurable: !!data['[[Configurable]]']
- }), data);
-
- var both = v.bothDescriptor();
- t['throws'](
- function () {
- ES.ToPropertyDescriptor({ get: both['[[Get]]'], value: both['[[Value]]'] });
- },
- TypeError,
- 'data and accessor descriptors are mutually exclusive'
- );
-
- t['throws'](
- function () { ES.ToPropertyDescriptor({ get: 'not callable' }); },
- TypeError,
- '"get" must be undefined or callable'
- );
-
- t['throws'](
- function () { ES.ToPropertyDescriptor({ set: 'not callable' }); },
- TypeError,
- '"set" must be undefined or callable'
- );
-
- t.end();
-});
-
-test('Abstract Equality Comparison', function (t) {
- t.test('same types use ===', function (st) {
- forEach(v.primitives.concat(v.objects), function (value) {
- st.equal(ES['Abstract Equality Comparison'](value, value), value === value, debug(value) + ' is abstractly equal to itself');
- });
- st.end();
- });
-
- t.test('different types coerce', function (st) {
- var pairs = [
- [null, undefined],
- [3, '3'],
- [true, '3'],
- [true, 3],
- [false, 0],
- [false, '0'],
- [3, [3]],
- ['3', [3]],
- [true, [1]],
- [false, [0]],
- [String(v.coercibleObject), v.coercibleObject],
- [Number(String(v.coercibleObject)), v.coercibleObject],
- [Number(v.coercibleObject), v.coercibleObject],
- [String(Number(v.coercibleObject)), v.coercibleObject]
- ];
- forEach(pairs, function (pair) {
- var a = pair[0];
- var b = pair[1];
- // eslint-disable-next-line eqeqeq
- st.equal(ES['Abstract Equality Comparison'](a, b), a == b, debug(a) + ' == ' + debug(b));
- // eslint-disable-next-line eqeqeq
- st.equal(ES['Abstract Equality Comparison'](b, a), b == a, debug(b) + ' == ' + debug(a));
- });
- st.end();
- });
-
- t.end();
-});
-
-test('Strict Equality Comparison', function (t) {
- t.test('same types use ===', function (st) {
- forEach(v.primitives.concat(v.objects), function (value) {
- st.equal(ES['Strict Equality Comparison'](value, value), value === value, debug(value) + ' is strictly equal to itself');
- });
- st.end();
- });
-
- t.test('different types are not ===', function (st) {
- var pairs = [
- [null, undefined],
- [3, '3'],
- [true, '3'],
- [true, 3],
- [false, 0],
- [false, '0'],
- [3, [3]],
- ['3', [3]],
- [true, [1]],
- [false, [0]],
- [String(v.coercibleObject), v.coercibleObject],
- [Number(String(v.coercibleObject)), v.coercibleObject],
- [Number(v.coercibleObject), v.coercibleObject],
- [String(Number(v.coercibleObject)), v.coercibleObject]
- ];
- forEach(pairs, function (pair) {
- var a = pair[0];
- var b = pair[1];
- st.equal(ES['Strict Equality Comparison'](a, b), a === b, debug(a) + ' === ' + debug(b));
- st.equal(ES['Strict Equality Comparison'](b, a), b === a, debug(b) + ' === ' + debug(a));
- });
- st.end();
- });
-
- t.end();
-});
-
-test('Abstract Relational Comparison', function (t) {
- t.test('at least one operand is NaN', function (st) {
- st.equal(ES['Abstract Relational Comparison'](NaN, {}, true), undefined, 'LeftFirst: first is NaN, returns undefined');
- st.equal(ES['Abstract Relational Comparison']({}, NaN, true), undefined, 'LeftFirst: second is NaN, returns undefined');
- st.equal(ES['Abstract Relational Comparison'](NaN, {}, false), undefined, '!LeftFirst: first is NaN, returns undefined');
- st.equal(ES['Abstract Relational Comparison']({}, NaN, false), undefined, '!LeftFirst: second is NaN, returns undefined');
- st.end();
- });
-
- t.equal(ES['Abstract Relational Comparison'](3, 4, true), true, 'LeftFirst: 3 is less than 4');
- t.equal(ES['Abstract Relational Comparison'](4, 3, true), false, 'LeftFirst: 3 is not less than 4');
- t.equal(ES['Abstract Relational Comparison'](3, 4, false), true, '!LeftFirst: 3 is less than 4');
- t.equal(ES['Abstract Relational Comparison'](4, 3, false), false, '!LeftFirst: 3 is not less than 4');
-
- t.equal(ES['Abstract Relational Comparison']('3', '4', true), true, 'LeftFirst: "3" is less than "4"');
- t.equal(ES['Abstract Relational Comparison']('4', '3', true), false, 'LeftFirst: "3" is not less than "4"');
- t.equal(ES['Abstract Relational Comparison']('3', '4', false), true, '!LeftFirst: "3" is less than "4"');
- t.equal(ES['Abstract Relational Comparison']('4', '3', false), false, '!LeftFirst: "3" is not less than "4"');
-
- t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, true), true, 'LeftFirst: coercible object is less than 42');
- t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, true), false, 'LeftFirst: 42 is not less than coercible object');
- t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, false), true, '!LeftFirst: coercible object is less than 42');
- t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, false), false, '!LeftFirst: 42 is not less than coercible object');
-
- t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', true), false, 'LeftFirst: coercible object is not less than "3"');
- t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, true), false, 'LeftFirst: "3" is not less than coercible object');
- t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', false), false, '!LeftFirst: coercible object is not less than "3"');
- t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, false), false, '!LeftFirst: "3" is not less than coercible object');
-
- t.end();
-});
-
-test('FromPropertyDescriptor', function (t) {
- t.equal(ES.FromPropertyDescriptor(), undefined, 'no value begets undefined');
- t.equal(ES.FromPropertyDescriptor(undefined), undefined, 'undefined value begets undefined');
-
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { ES.FromPropertyDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- var accessor = v.accessorDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(accessor), {
- get: accessor['[[Get]]'],
- set: accessor['[[Set]]'],
- enumerable: !!accessor['[[Enumerable]]'],
- configurable: !!accessor['[[Configurable]]']
- });
-
- var mutator = v.mutatorDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(mutator), {
- get: mutator['[[Get]]'],
- set: mutator['[[Set]]'],
- enumerable: !!mutator['[[Enumerable]]'],
- configurable: !!mutator['[[Configurable]]']
- });
- var data = v.dataDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(data), {
- value: data['[[Value]]'],
- writable: data['[[Writable]]'],
- enumerable: !!data['[[Enumerable]]'],
- configurable: !!data['[[Configurable]]']
- });
-
- t['throws'](
- function () { ES.FromPropertyDescriptor(v.genericDescriptor()); },
- TypeError,
- 'a complete Property Descriptor is required'
- );
-
- t.end();
-});
-
-test('SecFromTime', function (t) {
- var now = new Date();
- t.equal(ES.SecFromTime(now.getTime()), now.getUTCSeconds(), 'second from Date timestamp matches getUTCSeconds');
- t.end();
-});
-
-test('MinFromTime', function (t) {
- var now = new Date();
- t.equal(ES.MinFromTime(now.getTime()), now.getUTCMinutes(), 'minute from Date timestamp matches getUTCMinutes');
- t.end();
-});
-
-test('HourFromTime', function (t) {
- var now = new Date();
- t.equal(ES.HourFromTime(now.getTime()), now.getUTCHours(), 'hour from Date timestamp matches getUTCHours');
- t.end();
-});
-
-test('msFromTime', function (t) {
- var now = new Date();
- t.equal(ES.msFromTime(now.getTime()), now.getUTCMilliseconds(), 'ms from Date timestamp matches getUTCMilliseconds');
- t.end();
-});
-
-var msPerSecond = 1e3;
-var msPerMinute = 60 * msPerSecond;
-var msPerHour = 60 * msPerMinute;
-var msPerDay = 24 * msPerHour;
-
-test('Day', function (t) {
- var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5);
- var add = 2.5;
- var later = new Date(time + (add * msPerDay));
-
- t.equal(ES.Day(later.getTime()), ES.Day(time) + Math.floor(add), 'adding 2.5 days worth of ms, gives a Day delta of 2');
- t.end();
-});
-
-test('TimeWithinDay', function (t) {
- var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5);
- var add = 2.5;
- var later = new Date(time + (add * msPerDay));
-
- t.equal(ES.TimeWithinDay(later.getTime()), ES.TimeWithinDay(time) + (0.5 * msPerDay), 'adding 2.5 days worth of ms, gives a TimeWithinDay delta of +0.5');
- t.end();
-});
-
-test('DayFromYear', function (t) {
- t.equal(ES.DayFromYear(2021) - ES.DayFromYear(2020), 366, '2021 is a leap year, has 366 days');
- t.equal(ES.DayFromYear(2020) - ES.DayFromYear(2019), 365, '2020 is not a leap year, has 365 days');
- t.equal(ES.DayFromYear(2019) - ES.DayFromYear(2018), 365, '2019 is not a leap year, has 365 days');
- t.equal(ES.DayFromYear(2018) - ES.DayFromYear(2017), 365, '2018 is not a leap year, has 365 days');
- t.equal(ES.DayFromYear(2017) - ES.DayFromYear(2016), 366, '2017 is a leap year, has 366 days');
-
- t.end();
-});
-
-test('TimeFromYear', function (t) {
- for (var i = 1900; i < 2100; i += 1) {
- t.equal(ES.TimeFromYear(i), Date.UTC(i, 0, 1), 'TimeFromYear matches a Date object’s year: ' + i);
- }
- t.end();
-});
-
-test('YearFromTime', function (t) {
- for (var i = 1900; i < 2100; i += 1) {
- t.equal(ES.YearFromTime(Date.UTC(i, 0, 1)), i, 'YearFromTime matches a Date object’s year on 1/1: ' + i);
- t.equal(ES.YearFromTime(Date.UTC(i, 10, 1)), i, 'YearFromTime matches a Date object’s year on 10/1: ' + i);
- }
- t.end();
-});
-
-test('WeekDay', function (t) {
- var now = new Date();
- var today = now.getUTCDay();
- for (var i = 0; i < 7; i += 1) {
- var weekDay = ES.WeekDay(now.getTime() + (i * msPerDay));
- t.equal(weekDay, (today + i) % 7, i + ' days after today (' + today + '), WeekDay is ' + weekDay);
- }
- t.end();
-});
-
-test('DaysInYear', function (t) {
- t.equal(ES.DaysInYear(2021), 365, '2021 is not a leap year');
- t.equal(ES.DaysInYear(2020), 366, '2020 is a leap year');
- t.equal(ES.DaysInYear(2019), 365, '2019 is not a leap year');
- t.equal(ES.DaysInYear(2018), 365, '2018 is not a leap year');
- t.equal(ES.DaysInYear(2017), 365, '2017 is not a leap year');
- t.equal(ES.DaysInYear(2016), 366, '2016 is a leap year');
-
- t.end();
-});
-
-test('InLeapYear', function (t) {
- t.equal(ES.InLeapYear(Date.UTC(2021, 0, 1)), 0, '2021 is not a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2020, 0, 1)), 1, '2020 is a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2019, 0, 1)), 0, '2019 is not a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2018, 0, 1)), 0, '2018 is not a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2017, 0, 1)), 0, '2017 is not a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2016, 0, 1)), 1, '2016 is a leap year');
-
- t.end();
-});
-
-test('DayWithinYear', function (t) {
- t.equal(ES.DayWithinYear(Date.UTC(2019, 0, 1)), 0, '1/1 is the 1st day');
- t.equal(ES.DayWithinYear(Date.UTC(2019, 11, 31)), 364, '12/31 is the 365th day in a non leap year');
- t.equal(ES.DayWithinYear(Date.UTC(2016, 11, 31)), 365, '12/31 is the 366th day in a leap year');
-
- t.end();
-});
-
-test('MonthFromTime', function (t) {
- t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 1)), 0, 'non-leap: 1/1 gives January');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 31)), 0, 'non-leap: 1/31 gives January');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 1)), 1, 'non-leap: 2/1 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 28)), 1, 'non-leap: 2/28 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 29)), 2, 'non-leap: 2/29 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 1)), 2, 'non-leap: 3/1 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 31)), 2, 'non-leap: 3/31 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 1)), 3, 'non-leap: 4/1 gives April');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 30)), 3, 'non-leap: 4/30 gives April');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 1)), 4, 'non-leap: 5/1 gives May');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 31)), 4, 'non-leap: 5/31 gives May');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 1)), 5, 'non-leap: 6/1 gives June');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 30)), 5, 'non-leap: 6/30 gives June');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 1)), 6, 'non-leap: 7/1 gives July');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 31)), 6, 'non-leap: 7/31 gives July');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 1)), 7, 'non-leap: 8/1 gives August');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 30)), 7, 'non-leap: 8/30 gives August');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 1)), 8, 'non-leap: 9/1 gives September');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 30)), 8, 'non-leap: 9/30 gives September');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 1)), 9, 'non-leap: 10/1 gives October');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 31)), 9, 'non-leap: 10/31 gives October');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 1)), 10, 'non-leap: 11/1 gives November');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 30)), 10, 'non-leap: 11/30 gives November');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 1)), 11, 'non-leap: 12/1 gives December');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 31)), 11, 'non-leap: 12/31 gives December');
-
- t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 1)), 0, 'leap: 1/1 gives January');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 31)), 0, 'leap: 1/31 gives January');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 1)), 1, 'leap: 2/1 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 28)), 1, 'leap: 2/28 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 29)), 1, 'leap: 2/29 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 1)), 2, 'leap: 3/1 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 31)), 2, 'leap: 3/31 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 1)), 3, 'leap: 4/1 gives April');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 30)), 3, 'leap: 4/30 gives April');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 1)), 4, 'leap: 5/1 gives May');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 31)), 4, 'leap: 5/31 gives May');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 1)), 5, 'leap: 6/1 gives June');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 30)), 5, 'leap: 6/30 gives June');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 1)), 6, 'leap: 7/1 gives July');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 31)), 6, 'leap: 7/31 gives July');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 1)), 7, 'leap: 8/1 gives August');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 30)), 7, 'leap: 8/30 gives August');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 1)), 8, 'leap: 9/1 gives September');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 30)), 8, 'leap: 9/30 gives September');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 1)), 9, 'leap: 10/1 gives October');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 31)), 9, 'leap: 10/31 gives October');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 1)), 10, 'leap: 11/1 gives November');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 30)), 10, 'leap: 11/30 gives November');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 1)), 11, 'leap: 12/1 gives December');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 31)), 11, 'leap: 12/31 gives December');
- t.end();
-});
-
-test('DateFromTime', function (t) {
- var i;
- for (i = 1; i <= 28; i += 1) {
- t.equal(ES.DateFromTime(Date.UTC(2019, 1, i)), i, '2019.02.' + i + ' is date ' + i);
- }
- for (i = 1; i <= 29; i += 1) {
- t.equal(ES.DateFromTime(Date.UTC(2016, 1, i)), i, '2016.02.' + i + ' is date ' + i);
- }
- for (i = 1; i <= 30; i += 1) {
- t.equal(ES.DateFromTime(Date.UTC(2019, 8, i)), i, '2019.09.' + i + ' is date ' + i);
- }
- for (i = 1; i <= 31; i += 1) {
- t.equal(ES.DateFromTime(Date.UTC(2019, 9, i)), i, '2019.10.' + i + ' is date ' + i);
- }
- t.end();
-});
-
-test('MakeDay', function (t) {
- var day2015 = 16687;
- t.equal(ES.MakeDay(2015, 8, 9), day2015, '2015.09.09 is day 16687');
- var day2016 = day2015 + 366; // 2016 is a leap year
- t.equal(ES.MakeDay(2016, 8, 9), day2016, '2015.09.09 is day 17053');
- var day2017 = day2016 + 365;
- t.equal(ES.MakeDay(2017, 8, 9), day2017, '2017.09.09 is day 17418');
- var day2018 = day2017 + 365;
- t.equal(ES.MakeDay(2018, 8, 9), day2018, '2018.09.09 is day 17783');
- var day2019 = day2018 + 365;
- t.equal(ES.MakeDay(2019, 8, 9), day2019, '2019.09.09 is day 18148');
- t.end();
-});
-
-test('MakeDate', function (t) {
- forEach(v.infinities.concat(NaN), function (nonFiniteNumber) {
- t.ok(is(ES.MakeDate(nonFiniteNumber, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `day`');
- t.ok(is(ES.MakeDate(0, nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `time`');
- });
- t.equal(ES.MakeDate(0, 0), 0, 'zero day and zero time is zero date');
- t.equal(ES.MakeDate(0, 123), 123, 'zero day and nonzero time is a date of the "time"');
- t.equal(ES.MakeDate(1, 0), msPerDay, 'day of 1 and zero time is a date of "ms per day"');
- t.equal(ES.MakeDate(3, 0), 3 * msPerDay, 'day of 3 and zero time is a date of thrice "ms per day"');
- t.equal(ES.MakeDate(1, 123), msPerDay + 123, 'day of 1 and nonzero time is a date of "ms per day" plus the "time"');
- t.equal(ES.MakeDate(3, 123), (3 * msPerDay) + 123, 'day of 3 and nonzero time is a date of thrice "ms per day" plus the "time"');
-
- t.end();
-});
-
-test('MakeTime', function (t) {
- forEach(v.infinities.concat(NaN), function (nonFiniteNumber) {
- t.ok(is(ES.MakeTime(nonFiniteNumber, 0, 0, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `hour`');
- t.ok(is(ES.MakeTime(0, nonFiniteNumber, 0, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `min`');
- t.ok(is(ES.MakeTime(0, 0, nonFiniteNumber, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `sec`');
- t.ok(is(ES.MakeTime(0, 0, 0, nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `ms`');
- });
-
- t.equal(
- ES.MakeTime(1.2, 2.3, 3.4, 4.5),
- (1 * msPerHour) + (2 * msPerMinute) + (3 * msPerSecond) + 4,
- 'all numbers are converted to integer, multiplied by the right number of ms, and summed'
- );
- t.end();
-});
-
-test('TimeClip', function (t) {
- forEach(v.infinities.concat(NaN), function (nonFiniteNumber) {
- t.ok(is(ES.TimeClip(nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `time`');
- });
- t.ok(is(ES.TimeClip(8.64e15 + 1), NaN), '8.64e15 is the largest magnitude considered "finite"');
- t.ok(is(ES.TimeClip(-8.64e15 - 1), NaN), '-8.64e15 is the largest magnitude considered "finite"');
-
- forEach(v.zeroes.concat([-10, 10, Date.now()]), function (time) {
- t.equal(ES.TimeClip(time), time, debug(time) + ' is a time of ' + debug(time));
- });
-
- t.end();
-});
-
-test('modulo', function (t) {
- t.equal(3 % 2, 1, '+3 % 2 is +1');
- t.equal(ES.modulo(3, 2), 1, '+3 mod 2 is +1');
-
- t.equal(-3 % 2, -1, '-3 % 2 is -1');
- t.equal(ES.modulo(-3, 2), 1, '-3 mod 2 is +1');
- t.end();
-});
diff --git a/node_modules/es-abstract/test/es6.js b/node_modules/es-abstract/test/es6.js
deleted file mode 100644
index e7c9d98..0000000
--- a/node_modules/es-abstract/test/es6.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-var ES = require('../');
-var ES6 = ES.ES6;
-var ES2015 = ES.ES2015;
-var ES6entry = require('../es6');
-
-test('legacy es6 export', function (t) {
- t.equal(ES6, ES2015, 'main ES6 === main ES2015');
- t.end();
-});
-
-test('legacy es6 entry point', function (t) {
- t.equal(ES6, ES6entry, 'main ES6 === ES6 entry point');
- t.end();
-});
diff --git a/node_modules/es-abstract/test/es7.js b/node_modules/es-abstract/test/es7.js
deleted file mode 100644
index ee57e15..0000000
--- a/node_modules/es-abstract/test/es7.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-var ES = require('../');
-var ES7 = ES.ES7;
-var ES2016 = ES.ES2016;
-var ES7entry = require('../es7');
-
-test('legacy es7 export', function (t) {
- t.equal(ES7, ES2016, 'main ES7 === main ES2016');
- t.end();
-});
-
-test('legacy es7 entry point', function (t) {
- t.equal(ES7, ES7entry, 'main ES7 === ES7 entry point');
- t.end();
-});
diff --git a/node_modules/es-abstract/test/helpers/assertRecord.js b/node_modules/es-abstract/test/helpers/assertRecord.js
deleted file mode 100644
index 22e1aea..0000000
--- a/node_modules/es-abstract/test/helpers/assertRecord.js
+++ /dev/null
@@ -1,60 +0,0 @@
-'use strict';
-
-var forEach = require('foreach');
-var debug = require('object-inspect');
-
-var assertRecord = require('../../helpers/assertRecord');
-var v = require('./values');
-
-module.exports = function assertRecordTests(ES, test) {
- test('Property Descriptor', function (t) {
- var record = 'Property Descriptor';
-
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { assertRecord(ES, record, 'arg', primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- t['throws'](
- function () { assertRecord(ES, record, 'arg', { invalid: true }); },
- TypeError,
- 'invalid keys not allowed on a Property Descriptor'
- );
-
- t.doesNotThrow(
- function () { assertRecord(ES, record, 'arg', {}); },
- 'empty object is an incomplete Property Descriptor'
- );
-
- t.doesNotThrow(
- function () { assertRecord(ES, record, 'arg', v.accessorDescriptor()); },
- 'accessor descriptor is a Property Descriptor'
- );
-
- t.doesNotThrow(
- function () { assertRecord(ES, record, 'arg', v.mutatorDescriptor()); },
- 'mutator descriptor is a Property Descriptor'
- );
-
- t.doesNotThrow(
- function () { assertRecord(ES, record, 'arg', v.dataDescriptor()); },
- 'data descriptor is a Property Descriptor'
- );
-
- t.doesNotThrow(
- function () { assertRecord(ES, record, 'arg', v.genericDescriptor()); },
- 'generic descriptor is a Property Descriptor'
- );
-
- t['throws'](
- function () { assertRecord(ES, record, 'arg', v.bothDescriptor()); },
- TypeError,
- 'a Property Descriptor can not be both a Data and an Accessor Descriptor'
- );
-
- t.end();
- });
-};
diff --git a/node_modules/es-abstract/test/helpers/getSymbolDescription.js b/node_modules/es-abstract/test/helpers/getSymbolDescription.js
deleted file mode 100644
index 49af899..0000000
--- a/node_modules/es-abstract/test/helpers/getSymbolDescription.js
+++ /dev/null
@@ -1,50 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var debug = require('object-inspect');
-var forEach = require('foreach');
-
-var v = require('./values');
-var getSymbolDescription = require('../../helpers/getSymbolDescription');
-
-test('getSymbolDescription', function (t) {
- t.test('no symbols', { skip: v.hasSymbols }, function (st) {
- st['throws'](
- getSymbolDescription,
- SyntaxError,
- 'requires Symbol support'
- );
-
- st.end();
- });
-
- forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) {
- t['throws'](
- function () { getSymbolDescription(nonSymbol); },
- TypeError,
- debug(nonSymbol) + ' is not a Symbol'
- );
- });
-
- t.test('with symbols', { skip: !v.hasSymbols }, function (st) {
- forEach(
- [
- [Symbol(), undefined],
- [Symbol(undefined), undefined],
- [Symbol(null), 'null'],
- [Symbol(''), ''],
- [Symbol.iterator, 'Symbol.iterator'],
- [Symbol('foo'), 'foo']
- ],
- function (pair) {
- var sym = pair[0];
- var desc = pair[1];
- st.equal(getSymbolDescription(sym), desc, debug(sym) + ' yields ' + debug(desc));
- }
- );
-
- st.end();
- });
-
- t.end();
-});
diff --git a/node_modules/es-abstract/test/helpers/values.js b/node_modules/es-abstract/test/helpers/values.js
deleted file mode 100644
index ccef743..0000000
--- a/node_modules/es-abstract/test/helpers/values.js
+++ /dev/null
@@ -1,121 +0,0 @@
-'use strict';
-
-var assign = require('../../helpers/assign');
-
-var hasSymbols = require('has-symbols')();
-
-var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } };
-var coercibleFnObject = {
- valueOf: function () { return function valueOfFn() {}; },
- toString: function () { return 42; }
-};
-var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } };
-var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } };
-var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } };
-var uncoercibleFnObject = {
- valueOf: function () { return function valueOfFn() {}; },
- toString: function () { return function toStrFn() {}; }
-};
-var objects = [{}, coercibleObject, coercibleFnObject, toStringOnlyObject, valueOfOnlyObject];
-var nullPrimitives = [undefined, null];
-var nonIntegerNumbers = [-1.3, 0.2, 1.8, 1 / 3];
-var zeroes = [0, -0];
-var infinities = [Infinity, -Infinity];
-var numbers = zeroes.concat([42], infinities, nonIntegerNumbers);
-var strings = ['', 'foo', 'a\uD83D\uDCA9c'];
-var booleans = [true, false];
-var symbols = hasSymbols ? [Symbol.iterator, Symbol('foo')] : [];
-var nonSymbolPrimitives = [].concat(nullPrimitives, booleans, strings, numbers);
-var nonNumberPrimitives = [].concat(nullPrimitives, booleans, strings, symbols);
-var nonNullPrimitives = [].concat(booleans, strings, numbers, symbols);
-var nonUndefinedPrimitives = [].concat(null, nonNullPrimitives);
-var nonStrings = [].concat(nullPrimitives, booleans, numbers, symbols, objects);
-var primitives = [].concat(nullPrimitives, nonNullPrimitives);
-var nonPropertyKeys = [].concat(nullPrimitives, booleans, numbers, objects);
-var propertyKeys = [].concat(strings, symbols);
-var nonBooleans = [].concat(nullPrimitives, strings, symbols, numbers, objects);
-var falsies = [].concat(nullPrimitives, false, '', 0, -0, NaN);
-var truthies = [].concat(true, 'foo', 42, symbols, objects);
-var timestamps = [].concat(0, 946713600000, 1546329600000);
-var nonFunctions = [].concat(primitives, objects, [42]);
-var nonArrays = [].concat(nonFunctions);
-
-var descriptors = {
- configurable: function (descriptor) {
- return assign(assign({}, descriptor), { '[[Configurable]]': true });
- },
- nonConfigurable: function (descriptor) {
- return assign(assign({}, descriptor), { '[[Configurable]]': false });
- },
- enumerable: function (descriptor) {
- return assign(assign({}, descriptor), { '[[Enumerable]]': true });
- },
- nonEnumerable: function (descriptor) {
- return assign(assign({}, descriptor), { '[[Enumerable]]': false });
- },
- writable: function (descriptor) {
- return assign(assign({}, descriptor), { '[[Writable]]': true });
- },
- nonWritable: function (descriptor) {
- return assign(assign({}, descriptor), { '[[Writable]]': false });
- }
-};
-
-module.exports = {
- coercibleObject: coercibleObject,
- coercibleFnObject: coercibleFnObject,
- valueOfOnlyObject: valueOfOnlyObject,
- toStringOnlyObject: toStringOnlyObject,
- uncoercibleObject: uncoercibleObject,
- uncoercibleFnObject: uncoercibleFnObject,
- objects: objects,
- nonFunctions: nonFunctions,
- nonArrays: nonArrays,
- nullPrimitives: nullPrimitives,
- numbers: numbers,
- zeroes: zeroes,
- infinities: infinities,
- strings: strings,
- booleans: booleans,
- symbols: symbols,
- hasSymbols: hasSymbols,
- nonSymbolPrimitives: nonSymbolPrimitives,
- nonNumberPrimitives: nonNumberPrimitives,
- nonNullPrimitives: nonNullPrimitives,
- nonUndefinedPrimitives: nonUndefinedPrimitives,
- nonStrings: nonStrings,
- nonNumbers: nonNumberPrimitives.concat(objects),
- nonIntegerNumbers: nonIntegerNumbers,
- primitives: primitives,
- nonPropertyKeys: nonPropertyKeys,
- propertyKeys: propertyKeys,
- nonBooleans: nonBooleans,
- falsies: falsies,
- truthies: truthies,
- timestamps: timestamps,
- bothDescriptor: function () {
- return { '[[Get]]': function () {}, '[[Value]]': true };
- },
- bothDescriptorWritable: function () {
- return descriptors.writable({ '[[Get]]': function () {} });
- },
- accessorDescriptor: function (value) {
- return descriptors.enumerable(descriptors.configurable({
- '[[Get]]': function get() { return value; }
- }));
- },
- mutatorDescriptor: function () {
- return descriptors.enumerable(descriptors.configurable({
- '[[Set]]': function () {}
- }));
- },
- dataDescriptor: function (value) {
- return descriptors.nonWritable({
- '[[Value]]': arguments.length > 0 ? value : 42
- });
- },
- genericDescriptor: function () {
- return descriptors.configurable(descriptors.nonEnumerable());
- },
- descriptors: descriptors
-};
diff --git a/node_modules/es-abstract/test/index.js b/node_modules/es-abstract/test/index.js
deleted file mode 100644
index a435044..0000000
--- a/node_modules/es-abstract/test/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-var ES = require('../');
-var test = require('tape');
-
-var ESkeys = Object.keys(ES).sort();
-var ES6keys = Object.keys(ES.ES6).sort();
-
-test('exposed properties', function (t) {
- t.deepEqual(ESkeys, ES6keys.concat(['ES2019', 'ES2018', 'ES2017', 'ES7', 'ES2016', 'ES6', 'ES2015', 'ES5']).sort(), 'main ES object keys match ES6 keys');
- t.end();
-});
-
-test('methods match', function (t) {
- ES6keys.forEach(function (key) {
- t.equal(ES.ES6[key], ES[key], 'method ' + key + ' on main ES object is ES6 method');
- });
- t.end();
-});
-
-require('./GetIntrinsic');
-
-require('./es5');
-require('./es6');
-require('./es2015');
-require('./es7');
-require('./es2016');
-require('./es2017');
-require('./es2018');
-require('./es2019');
diff --git a/node_modules/es-abstract/test/tests.js b/node_modules/es-abstract/test/tests.js
deleted file mode 100644
index a5df2a3..0000000
--- a/node_modules/es-abstract/test/tests.js
+++ /dev/null
@@ -1,4074 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-var forEach = require('foreach');
-var is = require('object-is');
-var debug = require('object-inspect');
-var assign = require('object.assign');
-var keys = require('object-keys');
-var has = require('has');
-var arrowFns = require('make-arrow-function').list();
-
-var getInferredName = require('../helpers/getInferredName');
-var assertRecordTests = require('./helpers/assertRecord');
-var v = require('./helpers/values');
-var diffOps = require('./diffOps');
-
-var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
-
-var getArraySubclassWithSpeciesConstructor = function getArraySubclass(speciesConstructor) {
- var Bar = function Bar() {
- var inst = [];
- Object.setPrototypeOf(inst, Bar.prototype);
- Object.defineProperty(inst, 'constructor', { value: Bar });
- return inst;
- };
- Bar.prototype = Object.create(Array.prototype);
- Object.setPrototypeOf(Bar, Array);
- Object.defineProperty(Bar, Symbol.species, { value: speciesConstructor });
-
- return Bar;
-};
-
-var testIterator = function (t, iterator, expected) {
- var resultCount = 0;
- var result;
- while (result = iterator.next(), !result.done) { // eslint-disable-line no-sequences
- t.deepEqual(result, { done: false, value: expected[resultCount] }, 'result ' + resultCount);
- resultCount += 1;
- }
- t.equal(resultCount, expected.length, 'expected ' + expected.length + ', got ' + resultCount);
-};
-
-var hasSpecies = v.hasSymbols && Symbol.species;
-
-var hasGroups = 'groups' in (/a/).exec('a');
-var groups = function groups(matchObject) {
- return hasGroups ? assign(matchObject, { groups: matchObject.groups }) : matchObject;
-};
-
-var testEnumerableOwnNames = function (t, enumerableOwnNames) {
- forEach(v.primitives, function (nonObject) {
- t['throws'](
- function () { enumerableOwnNames(nonObject); },
- debug(nonObject) + ' is not an Object'
- );
- });
-
- var Child = function Child() {
- this.own = {};
- };
- Child.prototype = {
- inherited: {}
- };
-
- var obj = new Child();
-
- t.equal('own' in obj, true, 'has "own"');
- t.equal(has(obj, 'own'), true, 'has own "own"');
- t.equal(Object.prototype.propertyIsEnumerable.call(obj, 'own'), true, 'has enumerable "own"');
-
- t.equal('inherited' in obj, true, 'has "inherited"');
- t.equal(has(obj, 'inherited'), false, 'has non-own "inherited"');
- t.equal(has(Child.prototype, 'inherited'), true, 'Child.prototype has own "inherited"');
- t.equal(Child.prototype.inherited, obj.inherited, 'Child.prototype.inherited === obj.inherited');
- t.equal(Object.prototype.propertyIsEnumerable.call(Child.prototype, 'inherited'), true, 'has enumerable "inherited"');
-
- t.equal('toString' in obj, true, 'has "toString"');
- t.equal(has(obj, 'toString'), false, 'has non-own "toString"');
- t.equal(has(Object.prototype, 'toString'), true, 'Object.prototype has own "toString"');
- t.equal(Object.prototype.toString, obj.toString, 'Object.prototype.toString === obj.toString');
- // eslint-disable-next-line no-useless-call
- t.equal(Object.prototype.propertyIsEnumerable.call(Object.prototype, 'toString'), false, 'has non-enumerable "toString"');
-
- return obj;
-};
-
-var es2015 = function ES2015(ES, ops, expectedMissing, skips) {
- test('has expected operations', function (t) {
- var diff = diffOps(ES, ops, expectedMissing);
-
- t.deepEqual(diff.extra, [], 'no extra ops');
-
- t.deepEqual(diff.missing, [], 'no unexpected missing ops');
-
- t.end();
- });
-
- test('ToPrimitive', function (t) {
- t.test('primitives', function (st) {
- var testPrimitive = function (primitive) {
- st.ok(is(ES.ToPrimitive(primitive), primitive), debug(primitive) + ' is returned correctly');
- };
- forEach(v.primitives, testPrimitive);
- st.end();
- });
-
- t.test('objects', function (st) {
- st.equal(ES.ToPrimitive(v.coercibleObject), 3, 'coercibleObject with no hint coerces to valueOf');
- st.ok(is(ES.ToPrimitive({}), '[object Object]'), '{} with no hint coerces to Object#toString');
- st.equal(ES.ToPrimitive(v.coercibleObject, Number), 3, 'coercibleObject with hint Number coerces to valueOf');
- st.ok(is(ES.ToPrimitive({}, Number), '[object Object]'), '{} with hint Number coerces to NaN');
- st.equal(ES.ToPrimitive(v.coercibleObject, String), 42, 'coercibleObject with hint String coerces to nonstringified toString');
- st.equal(ES.ToPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString');
- st.equal(ES.ToPrimitive(v.toStringOnlyObject), 7, 'toStringOnlyObject returns non-stringified toString');
- st.equal(ES.ToPrimitive(v.valueOfOnlyObject), 4, 'valueOfOnlyObject returns valueOf');
- st['throws'](function () { return ES.ToPrimitive(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws a TypeError');
- st.end();
- });
-
- t.test('dates', function (st) {
- var invalid = new Date(NaN);
- st.equal(ES.ToPrimitive(invalid), Date.prototype.toString.call(invalid), 'invalid Date coerces to Date#toString');
- var now = new Date();
- st.equal(ES.ToPrimitive(now), Date.prototype.toString.call(now), 'Date coerces to Date#toString');
- st.end();
- });
-
- t.end();
- });
-
- test('ToBoolean', function (t) {
- t.equal(false, ES.ToBoolean(undefined), 'undefined coerces to false');
- t.equal(false, ES.ToBoolean(null), 'null coerces to false');
- t.equal(false, ES.ToBoolean(false), 'false returns false');
- t.equal(true, ES.ToBoolean(true), 'true returns true');
-
- t.test('numbers', function (st) {
- forEach(v.zeroes.concat(NaN), function (falsyNumber) {
- st.equal(false, ES.ToBoolean(falsyNumber), 'falsy number ' + falsyNumber + ' coerces to false');
- });
- forEach(v.infinities.concat([42, 1]), function (truthyNumber) {
- st.equal(true, ES.ToBoolean(truthyNumber), 'truthy number ' + truthyNumber + ' coerces to true');
- });
-
- st.end();
- });
-
- t.equal(false, ES.ToBoolean(''), 'empty string coerces to false');
- t.equal(true, ES.ToBoolean('foo'), 'nonempty string coerces to true');
-
- t.test('objects', function (st) {
- forEach(v.objects, function (obj) {
- st.equal(true, ES.ToBoolean(obj), 'object coerces to true');
- });
- st.equal(true, ES.ToBoolean(v.uncoercibleObject), 'uncoercibleObject coerces to true');
-
- st.end();
- });
-
- t.end();
- });
-
- test('ToNumber', function (t) {
- t.ok(is(NaN, ES.ToNumber(undefined)), 'undefined coerces to NaN');
- t.ok(is(ES.ToNumber(null), 0), 'null coerces to +0');
- t.ok(is(ES.ToNumber(false), 0), 'false coerces to +0');
- t.equal(1, ES.ToNumber(true), 'true coerces to 1');
-
- t.test('numbers', function (st) {
- st.ok(is(NaN, ES.ToNumber(NaN)), 'NaN returns itself');
- forEach(v.zeroes.concat(v.infinities, 42), function (num) {
- st.equal(num, ES.ToNumber(num), num + ' returns itself');
- });
- forEach(['foo', '0', '4a', '2.0', 'Infinity', '-Infinity'], function (numString) {
- st.ok(is(+numString, ES.ToNumber(numString)), '"' + numString + '" coerces to ' + Number(numString));
- });
- st.end();
- });
-
- t.test('objects', function (st) {
- forEach(v.objects, function (object) {
- st.ok(is(ES.ToNumber(object), ES.ToNumber(ES.ToPrimitive(object))), 'object ' + object + ' coerces to same as ToPrimitive of object does');
- });
- st['throws'](function () { return ES.ToNumber(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- st.end();
- });
-
- t.test('binary literals', function (st) {
- st.equal(ES.ToNumber('0b10'), 2, '0b10 is 2');
- st.equal(ES.ToNumber({ toString: function () { return '0b11'; } }), 3, 'Object that toStrings to 0b11 is 3');
-
- st.equal(true, is(ES.ToNumber('0b12'), NaN), '0b12 is NaN');
- st.equal(true, is(ES.ToNumber({ toString: function () { return '0b112'; } }), NaN), 'Object that toStrings to 0b112 is NaN');
- st.end();
- });
-
- t.test('octal literals', function (st) {
- st.equal(ES.ToNumber('0o10'), 8, '0o10 is 8');
- st.equal(ES.ToNumber({ toString: function () { return '0o11'; } }), 9, 'Object that toStrings to 0o11 is 9');
-
- st.equal(true, is(ES.ToNumber('0o18'), NaN), '0o18 is NaN');
- st.equal(true, is(ES.ToNumber({ toString: function () { return '0o118'; } }), NaN), 'Object that toStrings to 0o118 is NaN');
- st.end();
- });
-
- t.test('signed hex numbers', function (st) {
- st.equal(true, is(ES.ToNumber('-0xF'), NaN), '-0xF is NaN');
- st.equal(true, is(ES.ToNumber(' -0xF '), NaN), 'space-padded -0xF is NaN');
- st.equal(true, is(ES.ToNumber('+0xF'), NaN), '+0xF is NaN');
- st.equal(true, is(ES.ToNumber(' +0xF '), NaN), 'space-padded +0xF is NaN');
-
- st.end();
- });
-
- t.test('trimming of whitespace and non-whitespace characters', function (st) {
- var whitespace = ' \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000';
- st.equal(0, ES.ToNumber(whitespace + 0 + whitespace), 'whitespace is trimmed');
-
- // Zero-width space (zws), next line character (nel), and non-character (bom) are not whitespace.
- var nonWhitespaces = {
- '\\u0085': '\u0085',
- '\\u200b': '\u200b',
- '\\ufffe': '\ufffe'
- };
-
- forEach(nonWhitespaces, function (desc, nonWS) {
- st.equal(true, is(ES.ToNumber(nonWS + 0 + nonWS), NaN), 'non-whitespace ' + desc + ' not trimmed');
- });
-
- st.end();
- });
-
- forEach(v.symbols, function (symbol) {
- t['throws'](
- function () { ES.ToNumber(symbol); },
- TypeError,
- 'Symbols can’t be converted to a Number: ' + debug(symbol)
- );
- });
-
- t.test('dates', function (st) {
- var invalid = new Date(NaN);
- st.ok(is(ES.ToNumber(invalid), NaN), 'invalid Date coerces to NaN');
- var now = Date.now();
- st.equal(ES.ToNumber(new Date(now)), now, 'Date coerces to timestamp');
- st.end();
- });
-
- t.end();
- });
-
- test('ToInteger', function (t) {
- t.ok(is(0, ES.ToInteger(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity, 42], function (num) {
- t.ok(is(num, ES.ToInteger(num)), num + ' returns itself');
- t.ok(is(-num, ES.ToInteger(-num)), '-' + num + ' returns itself');
- });
- t.equal(3, ES.ToInteger(Math.PI), 'pi returns 3');
- t['throws'](function () { return ES.ToInteger(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.end();
- });
-
- test('ToInt32', function (t) {
- t.ok(is(0, ES.ToInt32(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToInt32(num)), num + ' returns +0');
- t.ok(is(0, ES.ToInt32(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToInt32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToInt32(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToInt32(0x100000000 - 1), -1), '2^32 - 1 returns -1');
- t.ok(is(ES.ToInt32(0x80000000), -0x80000000), '2^31 returns -2^31');
- t.ok(is(ES.ToInt32(0x80000000 - 1), 0x80000000 - 1), '2^31 - 1 returns 2^31 - 1');
- forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) {
- t.ok(is(ES.ToInt32(num), ES.ToInt32(ES.ToUint32(num))), 'ToInt32(x) === ToInt32(ToUint32(x)) for 0x' + num.toString(16));
- t.ok(is(ES.ToInt32(-num), ES.ToInt32(ES.ToUint32(-num))), 'ToInt32(x) === ToInt32(ToUint32(x)) for -0x' + num.toString(16));
- });
- t.end();
- });
-
- test('ToUint32', function (t) {
- t.ok(is(0, ES.ToUint32(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToUint32(num)), num + ' returns +0');
- t.ok(is(0, ES.ToUint32(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToUint32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToUint32(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToUint32(0x100000000 - 1), 0x100000000 - 1), '2^32 - 1 returns 2^32 - 1');
- t.ok(is(ES.ToUint32(0x80000000), 0x80000000), '2^31 returns 2^31');
- t.ok(is(ES.ToUint32(0x80000000 - 1), 0x80000000 - 1), '2^31 - 1 returns 2^31 - 1');
- forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) {
- t.ok(is(ES.ToUint32(num), ES.ToUint32(ES.ToInt32(num))), 'ToUint32(x) === ToUint32(ToInt32(x)) for 0x' + num.toString(16));
- t.ok(is(ES.ToUint32(-num), ES.ToUint32(ES.ToInt32(-num))), 'ToUint32(x) === ToUint32(ToInt32(x)) for -0x' + num.toString(16));
- });
- t.end();
- });
-
- test('ToInt16', function (t) {
- t.ok(is(0, ES.ToInt16(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToInt16(num)), num + ' returns +0');
- t.ok(is(0, ES.ToInt16(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToInt16(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToInt16(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToInt16(0x100000000 - 1), -1), '2^32 - 1 returns -1');
- t.ok(is(ES.ToInt16(0x80000000), 0), '2^31 returns +0');
- t.ok(is(ES.ToInt16(0x80000000 - 1), -1), '2^31 - 1 returns -1');
- t.ok(is(ES.ToInt16(0x10000), 0), '2^16 returns +0');
- t.ok(is(ES.ToInt16(0x10000 - 1), -1), '2^16 - 1 returns -1');
- t.end();
- });
-
- test('ToUint16', function (t) {
- t.ok(is(0, ES.ToUint16(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToUint16(num)), num + ' returns +0');
- t.ok(is(0, ES.ToUint16(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToUint16(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToUint16(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToUint16(0x100000000 - 1), 0x10000 - 1), '2^32 - 1 returns 2^16 - 1');
- t.ok(is(ES.ToUint16(0x80000000), 0), '2^31 returns +0');
- t.ok(is(ES.ToUint16(0x80000000 - 1), 0x10000 - 1), '2^31 - 1 returns 2^16 - 1');
- t.ok(is(ES.ToUint16(0x10000), 0), '2^16 returns +0');
- t.ok(is(ES.ToUint16(0x10000 - 1), 0x10000 - 1), '2^16 - 1 returns 2^16 - 1');
- t.end();
- });
-
- test('ToInt8', function (t) {
- t.ok(is(0, ES.ToInt8(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToInt8(num)), num + ' returns +0');
- t.ok(is(0, ES.ToInt8(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToInt8(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToInt8(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToInt8(0x100000000 - 1), -1), '2^32 - 1 returns -1');
- t.ok(is(ES.ToInt8(0x80000000), 0), '2^31 returns +0');
- t.ok(is(ES.ToInt8(0x80000000 - 1), -1), '2^31 - 1 returns -1');
- t.ok(is(ES.ToInt8(0x10000), 0), '2^16 returns +0');
- t.ok(is(ES.ToInt8(0x10000 - 1), -1), '2^16 - 1 returns -1');
- t.ok(is(ES.ToInt8(0x100), 0), '2^8 returns +0');
- t.ok(is(ES.ToInt8(0x100 - 1), -1), '2^8 - 1 returns -1');
- t.ok(is(ES.ToInt8(0x10), 0x10), '2^4 returns 2^4');
- t.end();
- });
-
- test('ToUint8', function (t) {
- t.ok(is(0, ES.ToUint8(NaN)), 'NaN coerces to +0');
- forEach([0, Infinity], function (num) {
- t.ok(is(0, ES.ToUint8(num)), num + ' returns +0');
- t.ok(is(0, ES.ToUint8(-num)), '-' + num + ' returns +0');
- });
- t['throws'](function () { return ES.ToUint8(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- t.ok(is(ES.ToUint8(0x100000000), 0), '2^32 returns +0');
- t.ok(is(ES.ToUint8(0x100000000 - 1), 0x100 - 1), '2^32 - 1 returns 2^8 - 1');
- t.ok(is(ES.ToUint8(0x80000000), 0), '2^31 returns +0');
- t.ok(is(ES.ToUint8(0x80000000 - 1), 0x100 - 1), '2^31 - 1 returns 2^8 - 1');
- t.ok(is(ES.ToUint8(0x10000), 0), '2^16 returns +0');
- t.ok(is(ES.ToUint8(0x10000 - 1), 0x100 - 1), '2^16 - 1 returns 2^8 - 1');
- t.ok(is(ES.ToUint8(0x100), 0), '2^8 returns +0');
- t.ok(is(ES.ToUint8(0x100 - 1), 0x100 - 1), '2^8 - 1 returns 2^16 - 1');
- t.ok(is(ES.ToUint8(0x10), 0x10), '2^4 returns 2^4');
- t.ok(is(ES.ToUint8(0x10 - 1), 0x10 - 1), '2^4 - 1 returns 2^4 - 1');
- t.end();
- });
-
- test('ToUint8Clamp', function (t) {
- t.ok(is(0, ES.ToUint8Clamp(NaN)), 'NaN coerces to +0');
- t.ok(is(0, ES.ToUint8Clamp(0)), '+0 returns +0');
- t.ok(is(0, ES.ToUint8Clamp(-0)), '-0 returns +0');
- t.ok(is(0, ES.ToUint8Clamp(-Infinity)), '-Infinity returns +0');
- t['throws'](function () { return ES.ToUint8Clamp(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
- forEach([255, 256, 0x100000, Infinity], function (number) {
- t.ok(is(255, ES.ToUint8Clamp(number)), number + ' coerces to 255');
- });
- t.equal(1, ES.ToUint8Clamp(1.49), '1.49 coerces to 1');
- t.equal(2, ES.ToUint8Clamp(1.5), '1.5 coerces to 2, because 2 is even');
- t.equal(2, ES.ToUint8Clamp(1.51), '1.51 coerces to 2');
-
- t.equal(2, ES.ToUint8Clamp(2.49), '2.49 coerces to 2');
- t.equal(2, ES.ToUint8Clamp(2.5), '2.5 coerces to 2, because 2 is even');
- t.equal(3, ES.ToUint8Clamp(2.51), '2.51 coerces to 3');
- t.end();
- });
-
- test('ToString', function (t) {
- forEach(v.objects.concat(v.nonSymbolPrimitives), function (item) {
- t.equal(ES.ToString(item), String(item), 'ES.ToString(' + debug(item) + ') ToStrings to String(' + debug(item) + ')');
- });
-
- t['throws'](function () { return ES.ToString(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws');
-
- forEach(v.symbols, function (symbol) {
- t['throws'](function () { return ES.ToString(symbol); }, TypeError, debug(symbol) + ' throws');
- });
- t.end();
- });
-
- test('ToObject', function (t) {
- t['throws'](function () { return ES.ToObject(undefined); }, TypeError, 'undefined throws');
- t['throws'](function () { return ES.ToObject(null); }, TypeError, 'null throws');
- forEach(v.numbers, function (number) {
- var obj = ES.ToObject(number);
- t.equal(typeof obj, 'object', 'number ' + number + ' coerces to object');
- t.equal(true, obj instanceof Number, 'object of ' + number + ' is Number object');
- t.ok(is(obj.valueOf(), number), 'object of ' + number + ' coerces to ' + number);
- });
- t.end();
- });
-
- test('RequireObjectCoercible', function (t) {
- t.equal(false, 'CheckObjectCoercible' in ES, 'CheckObjectCoercible -> RequireObjectCoercible in ES6');
- t['throws'](function () { return ES.RequireObjectCoercible(undefined); }, TypeError, 'undefined throws');
- t['throws'](function () { return ES.RequireObjectCoercible(null); }, TypeError, 'null throws');
- var isCoercible = function (value) {
- t.doesNotThrow(function () { return ES.RequireObjectCoercible(value); }, debug(value) + ' does not throw');
- };
- forEach(v.objects.concat(v.nonNullPrimitives), isCoercible);
- t.end();
- });
-
- test('IsCallable', function (t) {
- t.equal(true, ES.IsCallable(function () {}), 'function is callable');
- var nonCallables = [/a/g, {}, Object.prototype, NaN].concat(v.nonFunctions);
- forEach(nonCallables, function (nonCallable) {
- t.equal(false, ES.IsCallable(nonCallable), debug(nonCallable) + ' is not callable');
- });
- t.end();
- });
-
- test('SameValue', function (t) {
- t.equal(true, ES.SameValue(NaN, NaN), 'NaN is SameValue as NaN');
- t.equal(false, ES.SameValue(0, -0), '+0 is not SameValue as -0');
- forEach(v.objects.concat(v.primitives), function (val) {
- t.equal(val === val, ES.SameValue(val, val), debug(val) + ' is SameValue to itself');
- });
- t.end();
- });
-
- test('SameValueZero', function (t) {
- t.equal(true, ES.SameValueZero(NaN, NaN), 'NaN is SameValueZero as NaN');
- t.equal(true, ES.SameValueZero(0, -0), '+0 is SameValueZero as -0');
- forEach(v.objects.concat(v.primitives), function (val) {
- t.equal(val === val, ES.SameValueZero(val, val), debug(val) + ' is SameValueZero to itself');
- });
- t.end();
- });
-
- test('ToPropertyKey', function (t) {
- forEach(v.objects.concat(v.nonSymbolPrimitives), function (value) {
- t.equal(ES.ToPropertyKey(value), String(value), 'ToPropertyKey(value) === String(value) for non-Symbols');
- });
-
- forEach(v.symbols, function (symbol) {
- t.equal(
- ES.ToPropertyKey(symbol),
- symbol,
- 'ToPropertyKey(' + debug(symbol) + ') === ' + debug(symbol)
- );
- t.equal(
- ES.ToPropertyKey(Object(symbol)),
- symbol,
- 'ToPropertyKey(' + debug(Object(symbol)) + ') === ' + debug(symbol)
- );
- });
-
- t.end();
- });
-
- test('ToLength', function (t) {
- t['throws'](function () { return ES.ToLength(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws a TypeError');
- t.equal(3, ES.ToLength(v.coercibleObject), 'coercibleObject coerces to 3');
- t.equal(42, ES.ToLength('42.5'), '"42.5" coerces to 42');
- t.equal(7, ES.ToLength(7.3), '7.3 coerces to 7');
- forEach([-0, -1, -42, -Infinity], function (negative) {
- t.ok(is(0, ES.ToLength(negative)), negative + ' coerces to +0');
- });
- t.equal(MAX_SAFE_INTEGER, ES.ToLength(MAX_SAFE_INTEGER + 1), '2^53 coerces to 2^53 - 1');
- t.equal(MAX_SAFE_INTEGER, ES.ToLength(MAX_SAFE_INTEGER + 3), '2^53 + 2 coerces to 2^53 - 1');
- t.end();
- });
-
- test('IsArray', function (t) {
- t.equal(true, ES.IsArray([]), '[] is array');
- t.equal(false, ES.IsArray({}), '{} is not array');
- t.equal(false, ES.IsArray({ length: 1, 0: true }), 'arraylike object is not array');
- forEach(v.objects.concat(v.primitives), function (value) {
- t.equal(false, ES.IsArray(value), debug(value) + ' is not array');
- });
- t.end();
- });
-
- test('IsRegExp', function (t) {
- forEach([/a/g, new RegExp('a', 'g')], function (regex) {
- t.equal(true, ES.IsRegExp(regex), regex + ' is regex');
- });
-
- forEach(v.objects.concat(v.primitives), function (nonRegex) {
- t.equal(false, ES.IsRegExp(nonRegex), debug(nonRegex) + ' is not regex');
- });
-
- t.test('Symbol.match', { skip: !v.hasSymbols || !Symbol.match }, function (st) {
- var obj = {};
- obj[Symbol.match] = true;
- st.equal(true, ES.IsRegExp(obj), 'object with truthy Symbol.match is regex');
-
- var regex = /a/;
- regex[Symbol.match] = false;
- st.equal(false, ES.IsRegExp(regex), 'regex with falsy Symbol.match is not regex');
-
- st.end();
- });
-
- t.end();
- });
-
- test('IsPropertyKey', function (t) {
- forEach(v.numbers.concat(v.objects), function (notKey) {
- t.equal(false, ES.IsPropertyKey(notKey), debug(notKey) + ' is not property key');
- });
-
- t.equal(true, ES.IsPropertyKey('foo'), 'string is property key');
-
- forEach(v.symbols, function (symbol) {
- t.equal(true, ES.IsPropertyKey(symbol), debug(symbol) + ' is property key');
- });
- t.end();
- });
-
- test('IsInteger', function (t) {
- for (var i = -100; i < 100; i += 10) {
- t.equal(true, ES.IsInteger(i), i + ' is integer');
- t.equal(false, ES.IsInteger(i + 0.2), (i + 0.2) + ' is not integer');
- }
- t.equal(true, ES.IsInteger(-0), '-0 is integer');
- var notInts = v.nonNumbers.concat(v.nonIntegerNumbers, v.infinities, [NaN, [], new Date()]);
- forEach(notInts, function (notInt) {
- t.equal(false, ES.IsInteger(notInt), debug(notInt) + ' is not integer');
- });
- t.equal(false, ES.IsInteger(v.uncoercibleObject), 'uncoercibleObject is not integer');
- t.end();
- });
-
- test('IsExtensible', function (t) {
- forEach(v.objects, function (object) {
- t.equal(true, ES.IsExtensible(object), debug(object) + ' object is extensible');
- });
- forEach(v.primitives, function (primitive) {
- t.equal(false, ES.IsExtensible(primitive), debug(primitive) + ' is not extensible');
- });
- if (Object.preventExtensions) {
- t.equal(false, ES.IsExtensible(Object.preventExtensions({})), 'object with extensions prevented is not extensible');
- }
- t.end();
- });
-
- test('CanonicalNumericIndexString', function (t) {
- var throwsOnNonString = function (notString) {
- t['throws'](
- function () { return ES.CanonicalNumericIndexString(notString); },
- TypeError,
- debug(notString) + ' is not a string'
- );
- };
- forEach(v.objects.concat(v.numbers), throwsOnNonString);
- t.ok(is(-0, ES.CanonicalNumericIndexString('-0')), '"-0" returns -0');
- for (var i = -50; i < 50; i += 10) {
- t.equal(i, ES.CanonicalNumericIndexString(String(i)), '"' + i + '" returns ' + i);
- t.equal(undefined, ES.CanonicalNumericIndexString(String(i) + 'a'), '"' + i + 'a" returns undefined');
- }
- t.end();
- });
-
- test('IsConstructor', function (t) {
- t.equal(true, ES.IsConstructor(function () {}), 'function is constructor');
- t.equal(false, ES.IsConstructor(/a/g), 'regex is not constructor');
- forEach(v.objects, function (object) {
- t.equal(false, ES.IsConstructor(object), object + ' object is not constructor');
- });
-
- try {
- var foo = Function('return class Foo {}')(); // eslint-disable-line no-new-func
- t.equal(ES.IsConstructor(foo), true, 'class is constructor');
- } catch (e) {
- t.comment('SKIP: class syntax not supported.');
- }
- t.end();
- });
-
- test('Call', function (t) {
- var receiver = {};
- var notFuncs = v.nonFunctions.concat([/a/g, new RegExp('a', 'g')]);
- t.plan(notFuncs.length + 4);
- var throwsIfNotCallable = function (notFunc) {
- t['throws'](
- function () { return ES.Call(notFunc, receiver); },
- TypeError,
- debug(notFunc) + ' (' + typeof notFunc + ') is not callable'
- );
- };
- forEach(notFuncs, throwsIfNotCallable);
- ES.Call(
- function (a, b) {
- t.equal(this, receiver, 'context matches expected');
- t.deepEqual([a, b], [1, 2], 'named args are correct');
- t.equal(arguments.length, 3, 'extra argument was passed');
- t.equal(arguments[2], 3, 'extra argument was correct');
- },
- receiver,
- [1, 2, 3]
- );
- t.end();
- });
-
- test('GetV', function (t) {
- t['throws'](function () { return ES.GetV({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key');
- var obj = { a: function () {} };
- t.equal(ES.GetV(obj, 'a'), obj.a, 'returns property if it exists');
- t.equal(ES.GetV(obj, 'b'), undefined, 'returns undefiend if property does not exist');
- t.end();
- });
-
- test('GetMethod', function (t) {
- t['throws'](function () { return ES.GetMethod({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key');
- t.equal(ES.GetMethod({}, 'a'), undefined, 'returns undefined in property is undefined');
- t.equal(ES.GetMethod({ a: null }, 'a'), undefined, 'returns undefined if property is null');
- t.equal(ES.GetMethod({ a: undefined }, 'a'), undefined, 'returns undefined if property is undefined');
- var obj = { a: function () {} };
- t['throws'](function () { ES.GetMethod({ a: 'b' }, 'a'); }, TypeError, 'throws TypeError if property exists and is not callable');
- t.equal(ES.GetMethod(obj, 'a'), obj.a, 'returns property if it is callable');
- t.end();
- });
-
- test('Get', function (t) {
- t['throws'](function () { return ES.Get('a', 'a'); }, TypeError, 'Throws a TypeError if `O` is not an Object');
- t['throws'](function () { return ES.Get({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key');
-
- var value = {};
- t.test('Symbols', { skip: !v.hasSymbols }, function (st) {
- var sym = Symbol('sym');
- var obj = {};
- obj[sym] = value;
- st.equal(ES.Get(obj, sym), value, 'returns property `P` if it exists on object `O`');
- st.end();
- });
- t.equal(ES.Get({ a: value }, 'a'), value, 'returns property `P` if it exists on object `O`');
- t.end();
- });
-
- test('Type', { skip: !v.hasSymbols }, function (t) {
- t.equal(ES.Type(Symbol.iterator), 'Symbol', 'Type(Symbol.iterator) is Symbol');
- t.end();
- });
-
- test('SpeciesConstructor', function (t) {
- t['throws'](function () { ES.SpeciesConstructor(null); }, TypeError);
- t['throws'](function () { ES.SpeciesConstructor(undefined); }, TypeError);
-
- var defaultConstructor = function Foo() {};
-
- t.equal(
- ES.SpeciesConstructor({ constructor: undefined }, defaultConstructor),
- defaultConstructor,
- 'undefined constructor returns defaultConstructor'
- );
-
- t['throws'](
- function () { return ES.SpeciesConstructor({ constructor: null }, defaultConstructor); },
- TypeError,
- 'non-undefined non-object constructor throws'
- );
-
- t.test('with Symbol.species', { skip: !hasSpecies }, function (st) {
- var Bar = function Bar() {};
- Bar[Symbol.species] = null;
-
- st.equal(
- ES.SpeciesConstructor(new Bar(), defaultConstructor),
- defaultConstructor,
- 'undefined/null Symbol.species returns default constructor'
- );
-
- var Baz = function Baz() {};
- Baz[Symbol.species] = Bar;
- st.equal(
- ES.SpeciesConstructor(new Baz(), defaultConstructor),
- Bar,
- 'returns Symbol.species constructor value'
- );
-
- Baz[Symbol.species] = {};
- st['throws'](
- function () { ES.SpeciesConstructor(new Baz(), defaultConstructor); },
- TypeError,
- 'throws when non-constructor non-null non-undefined species value found'
- );
-
- st.end();
- });
-
- t.end();
- });
-
- test('IsPropertyDescriptor', { skip: skips && skips.IsPropertyDescriptor }, function (t) {
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t.equal(
- ES.IsPropertyDescriptor(primitive),
- false,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- t.equal(ES.IsPropertyDescriptor({ invalid: true }), false, 'invalid keys not allowed on a Property Descriptor');
-
- t.equal(ES.IsPropertyDescriptor({}), true, 'empty object is an incomplete Property Descriptor');
-
- t.equal(ES.IsPropertyDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is a Property Descriptor');
- t.equal(ES.IsPropertyDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is a Property Descriptor');
- t.equal(ES.IsPropertyDescriptor(v.dataDescriptor()), true, 'data descriptor is a Property Descriptor');
- t.equal(ES.IsPropertyDescriptor(v.genericDescriptor()), true, 'generic descriptor is a Property Descriptor');
-
- t['throws'](
- function () { ES.IsPropertyDescriptor(v.bothDescriptor()); },
- TypeError,
- 'a Property Descriptor can not be both a Data and an Accessor Descriptor'
- );
-
- t.end();
- });
-
- assertRecordTests(ES, test);
-
- test('IsAccessorDescriptor', function (t) {
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { ES.IsAccessorDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- t.equal(ES.IsAccessorDescriptor(), false, 'no value is not an Accessor Descriptor');
- t.equal(ES.IsAccessorDescriptor(undefined), false, 'undefined value is not an Accessor Descriptor');
-
- t.equal(ES.IsAccessorDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is an Accessor Descriptor');
- t.equal(ES.IsAccessorDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is an Accessor Descriptor');
- t.equal(ES.IsAccessorDescriptor(v.dataDescriptor()), false, 'data descriptor is not an Accessor Descriptor');
- t.equal(ES.IsAccessorDescriptor(v.genericDescriptor()), false, 'generic descriptor is not an Accessor Descriptor');
-
- t.end();
- });
-
- test('IsDataDescriptor', function (t) {
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { ES.IsDataDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- t.equal(ES.IsDataDescriptor(), false, 'no value is not a Data Descriptor');
- t.equal(ES.IsDataDescriptor(undefined), false, 'undefined value is not a Data Descriptor');
-
- t.equal(ES.IsDataDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a Data Descriptor');
- t.equal(ES.IsDataDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a Data Descriptor');
- t.equal(ES.IsDataDescriptor(v.dataDescriptor()), true, 'data descriptor is a Data Descriptor');
- t.equal(ES.IsDataDescriptor(v.genericDescriptor()), false, 'generic descriptor is not a Data Descriptor');
-
- t.end();
- });
-
- test('IsGenericDescriptor', function (t) {
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { ES.IsGenericDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- t.equal(ES.IsGenericDescriptor(), false, 'no value is not a Data Descriptor');
- t.equal(ES.IsGenericDescriptor(undefined), false, 'undefined value is not a Data Descriptor');
-
- t.equal(ES.IsGenericDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a generic Descriptor');
- t.equal(ES.IsGenericDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a generic Descriptor');
- t.equal(ES.IsGenericDescriptor(v.dataDescriptor()), false, 'data descriptor is not a generic Descriptor');
-
- t.equal(ES.IsGenericDescriptor(v.genericDescriptor()), true, 'generic descriptor is a generic Descriptor');
-
- t.end();
- });
-
- test('FromPropertyDescriptor', function (t) {
- t.equal(ES.FromPropertyDescriptor(), undefined, 'no value begets undefined');
- t.equal(ES.FromPropertyDescriptor(undefined), undefined, 'undefined value begets undefined');
-
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { ES.FromPropertyDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- var accessor = v.accessorDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(accessor), {
- get: accessor['[[Get]]'],
- enumerable: !!accessor['[[Enumerable]]'],
- configurable: !!accessor['[[Configurable]]']
- });
-
- var mutator = v.mutatorDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(mutator), {
- set: mutator['[[Set]]'],
- enumerable: !!mutator['[[Enumerable]]'],
- configurable: !!mutator['[[Configurable]]']
- });
- var data = v.dataDescriptor();
- t.deepEqual(ES.FromPropertyDescriptor(data), {
- value: data['[[Value]]'],
- writable: data['[[Writable]]']
- });
-
- t.deepEqual(ES.FromPropertyDescriptor(v.genericDescriptor()), {
- enumerable: false,
- configurable: true
- });
-
- t.end();
- });
-
- test('ToPropertyDescriptor', function (t) {
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { ES.ToPropertyDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
-
- var accessor = v.accessorDescriptor();
- t.deepEqual(ES.ToPropertyDescriptor({
- get: accessor['[[Get]]'],
- enumerable: !!accessor['[[Enumerable]]'],
- configurable: !!accessor['[[Configurable]]']
- }), accessor);
-
- var mutator = v.mutatorDescriptor();
- t.deepEqual(ES.ToPropertyDescriptor({
- set: mutator['[[Set]]'],
- enumerable: !!mutator['[[Enumerable]]'],
- configurable: !!mutator['[[Configurable]]']
- }), mutator);
-
- var data = v.dataDescriptor();
- t.deepEqual(ES.ToPropertyDescriptor({
- value: data['[[Value]]'],
- writable: data['[[Writable]]'],
- configurable: !!data['[[Configurable]]']
- }), assign(data, { '[[Configurable]]': false }));
-
- var both = v.bothDescriptor();
- t['throws'](
- function () {
- ES.FromPropertyDescriptor({ get: both['[[Get]]'], value: both['[[Value]]'] });
- },
- TypeError,
- 'data and accessor descriptors are mutually exclusive'
- );
-
- t.end();
- });
-
- test('CompletePropertyDescriptor', function (t) {
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { ES.CompletePropertyDescriptor(primitive); },
- TypeError,
- debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- var generic = v.genericDescriptor();
- t.deepEqual(
- ES.CompletePropertyDescriptor(generic),
- {
- '[[Configurable]]': !!generic['[[Configurable]]'],
- '[[Enumerable]]': !!generic['[[Enumerable]]'],
- '[[Value]]': undefined,
- '[[Writable]]': false
- },
- 'completes a Generic Descriptor'
- );
-
- var data = v.dataDescriptor();
- t.deepEqual(
- ES.CompletePropertyDescriptor(data),
- {
- '[[Configurable]]': !!data['[[Configurable]]'],
- '[[Enumerable]]': false,
- '[[Value]]': data['[[Value]]'],
- '[[Writable]]': !!data['[[Writable]]']
- },
- 'completes a Data Descriptor'
- );
-
- var accessor = v.accessorDescriptor();
- t.deepEqual(
- ES.CompletePropertyDescriptor(accessor),
- {
- '[[Get]]': accessor['[[Get]]'],
- '[[Enumerable]]': !!accessor['[[Enumerable]]'],
- '[[Configurable]]': !!accessor['[[Configurable]]'],
- '[[Set]]': undefined
- },
- 'completes an Accessor Descriptor'
- );
-
- var mutator = v.mutatorDescriptor();
- t.deepEqual(
- ES.CompletePropertyDescriptor(mutator),
- {
- '[[Set]]': mutator['[[Set]]'],
- '[[Enumerable]]': !!mutator['[[Enumerable]]'],
- '[[Configurable]]': !!mutator['[[Configurable]]'],
- '[[Get]]': undefined
- },
- 'completes a mutator Descriptor'
- );
-
- t['throws'](
- function () { ES.CompletePropertyDescriptor(v.bothDescriptor()); },
- TypeError,
- 'data and accessor descriptors are mutually exclusive'
- );
-
- t.end();
- });
-
- test('Set', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.Set(primitive, '', null, false); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonKey) {
- t['throws'](
- function () { ES.Set({}, nonKey, null, false); },
- TypeError,
- debug(nonKey) + ' is not a Property Key'
- );
- });
-
- forEach(v.nonBooleans, function (nonBoolean) {
- t['throws'](
- function () { ES.Set({}, '', null, nonBoolean); },
- TypeError,
- debug(nonBoolean) + ' is not a Boolean'
- );
- });
-
- var o = {};
- var value = {};
- ES.Set(o, 'key', value, true);
- t.deepEqual(o, { key: value }, 'key is set');
-
- t.test('nonwritable', { skip: !Object.defineProperty }, function (st) {
- var obj = { a: value };
- Object.defineProperty(obj, 'a', { writable: false });
-
- st['throws'](
- function () { ES.Set(obj, 'a', value, true); },
- TypeError,
- 'can not Set nonwritable property'
- );
-
- st.doesNotThrow(
- function () { ES.Set(obj, 'a', value, false); },
- 'setting Throw to false prevents an exception'
- );
-
- st.end();
- });
-
- t.test('nonconfigurable', { skip: !Object.defineProperty }, function (st) {
- var obj = { a: value };
- Object.defineProperty(obj, 'a', { configurable: false });
-
- ES.Set(obj, 'a', value, true);
- st.deepEqual(obj, { a: value }, 'key is set');
-
- st.end();
- });
-
- t.end();
- });
-
- test('HasOwnProperty', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.HasOwnProperty(primitive, 'key'); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonKey) {
- t['throws'](
- function () { ES.HasOwnProperty({}, nonKey); },
- TypeError,
- debug(nonKey) + ' is not a Property Key'
- );
- });
-
- t.equal(ES.HasOwnProperty({}, 'toString'), false, 'inherited properties are not own');
- t.equal(
- ES.HasOwnProperty({ toString: 1 }, 'toString'),
- true,
- 'shadowed inherited own properties are own'
- );
- t.equal(ES.HasOwnProperty({ a: 1 }, 'a'), true, 'own properties are own');
-
- t.end();
- });
-
- test('HasProperty', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.HasProperty(primitive, 'key'); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonKey) {
- t['throws'](
- function () { ES.HasProperty({}, nonKey); },
- TypeError,
- debug(nonKey) + ' is not a Property Key'
- );
- });
-
- t.equal(ES.HasProperty({}, 'nope'), false, 'object does not have nonexistent properties');
- t.equal(ES.HasProperty({}, 'toString'), true, 'object has inherited properties');
- t.equal(
- ES.HasProperty({ toString: 1 }, 'toString'),
- true,
- 'object has shadowed inherited own properties'
- );
- t.equal(ES.HasProperty({ a: 1 }, 'a'), true, 'object has own properties');
-
- t.end();
- });
-
- test('IsConcatSpreadable', function (t) {
- forEach(v.primitives, function (primitive) {
- t.equal(ES.IsConcatSpreadable(primitive), false, debug(primitive) + ' is not an Object');
- });
-
- var hasSymbolConcatSpreadable = v.hasSymbols && Symbol.isConcatSpreadable;
- t.test('Symbol.isConcatSpreadable', { skip: !hasSymbolConcatSpreadable }, function (st) {
- forEach(v.falsies, function (falsy) {
- var obj = {};
- obj[Symbol.isConcatSpreadable] = falsy;
- st.equal(
- ES.IsConcatSpreadable(obj),
- false,
- 'an object with ' + debug(falsy) + ' as Symbol.isConcatSpreadable is not concat spreadable'
- );
- });
-
- forEach(v.truthies, function (truthy) {
- var obj = {};
- obj[Symbol.isConcatSpreadable] = truthy;
- st.equal(
- ES.IsConcatSpreadable(obj),
- true,
- 'an object with ' + debug(truthy) + ' as Symbol.isConcatSpreadable is concat spreadable'
- );
- });
-
- st.end();
- });
-
- forEach(v.objects, function (object) {
- t.equal(
- ES.IsConcatSpreadable(object),
- false,
- 'non-array without Symbol.isConcatSpreadable is not concat spreadable'
- );
- });
-
- t.equal(ES.IsConcatSpreadable([]), true, 'arrays are concat spreadable');
-
- t.end();
- });
-
- test('Invoke', function (t) {
- forEach(v.nonPropertyKeys, function (nonKey) {
- t['throws'](
- function () { ES.Invoke({}, nonKey); },
- TypeError,
- debug(nonKey) + ' is not a Property Key'
- );
- });
-
- t['throws'](function () { ES.Invoke({ o: false }, 'o'); }, TypeError, 'fails on a non-function');
-
- t.test('invoked callback', function (st) {
- var aValue = {};
- var bValue = {};
- var obj = {
- f: function (a) {
- st.equal(arguments.length, 2, '2 args passed');
- st.equal(a, aValue, 'first arg is correct');
- st.equal(arguments[1], bValue, 'second arg is correct');
- }
- };
- st.plan(3);
- ES.Invoke(obj, 'f', aValue, bValue);
- });
-
- t.end();
- });
-
- test('GetIterator', function (t) {
- var arr = [1, 2];
- testIterator(t, ES.GetIterator(arr), arr);
-
- testIterator(t, ES.GetIterator('abc'), 'abc'.split(''));
-
- t.test('Symbol.iterator', { skip: !v.hasSymbols }, function (st) {
- var m = new Map();
- m.set(1, 'a');
- m.set(2, 'b');
-
- testIterator(st, ES.GetIterator(m), [[1, 'a'], [2, 'b']]);
-
- st.end();
- });
-
- t.end();
- });
-
- test('IteratorNext', { skip: true });
-
- test('IteratorComplete', { skip: true });
-
- test('IteratorValue', { skip: true });
-
- test('IteratorStep', { skip: true });
-
- test('IteratorClose', { skip: true });
-
- test('CreateIterResultObject', function (t) {
- forEach(v.nonBooleans, function (nonBoolean) {
- t['throws'](
- function () { ES.CreateIterResultObject({}, nonBoolean); },
- TypeError,
- '"done" argument must be a boolean; ' + debug(nonBoolean) + ' is not'
- );
- });
-
- var value = {};
- t.deepEqual(
- ES.CreateIterResultObject(value, true),
- { value: value, done: true },
- 'creates a "done" iteration result'
- );
- t.deepEqual(
- ES.CreateIterResultObject(value, false),
- { value: value, done: false },
- 'creates a "not done" iteration result'
- );
-
- t.end();
- });
-
- test('RegExpExec', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.RegExpExec(primitive); },
- TypeError,
- '"R" argument must be an object; ' + debug(primitive) + ' is not'
- );
- });
-
- forEach(v.nonStrings, function (nonString) {
- t['throws'](
- function () { ES.RegExpExec({}, nonString); },
- TypeError,
- '"S" argument must be a String; ' + debug(nonString) + ' is not'
- );
- });
-
- t.test('gets and calls a callable "exec"', function (st) {
- var str = '123';
- var o = {
- exec: function (S) {
- st.equal(this, o, '"exec" receiver is R');
- st.equal(S, str, '"exec" argument is S');
-
- return null;
- }
- };
- st.plan(2);
- ES.RegExpExec(o, str);
- st.end();
- });
-
- t.test('throws if a callable "exec" returns a non-null non-object', function (st) {
- var str = '123';
- st.plan(v.nonNullPrimitives.length);
- forEach(v.nonNullPrimitives, function (nonNullPrimitive) {
- st['throws'](
- function () { ES.RegExpExec({ exec: function () { return nonNullPrimitive; } }, str); },
- TypeError,
- '"exec" method must return `null` or an Object; ' + debug(nonNullPrimitive) + ' is not'
- );
- });
- st.end();
- });
-
- t.test('actual regex that should match against a string', function (st) {
- var S = 'aabc';
- var R = /a/g;
- var match1 = ES.RegExpExec(R, S);
- var match2 = ES.RegExpExec(R, S);
- var match3 = ES.RegExpExec(R, S);
- st.deepEqual(match1, assign(['a'], groups({ index: 0, input: S })), 'match object 1 is as expected');
- st.deepEqual(match2, assign(['a'], groups({ index: 1, input: S })), 'match object 2 is as expected');
- st.equal(match3, null, 'match 3 is null as expected');
- st.end();
- });
-
- t.test('actual regex that should match against a string, with shadowed "exec"', function (st) {
- var S = 'aabc';
- var R = /a/g;
- R.exec = undefined;
- var match1 = ES.RegExpExec(R, S);
- var match2 = ES.RegExpExec(R, S);
- var match3 = ES.RegExpExec(R, S);
- st.deepEqual(match1, assign(['a'], groups({ index: 0, input: S })), 'match object 1 is as expected');
- st.deepEqual(match2, assign(['a'], groups({ index: 1, input: S })), 'match object 2 is as expected');
- st.equal(match3, null, 'match 3 is null as expected');
- st.end();
- });
- t.end();
- });
-
- test('ArraySpeciesCreate', function (t) {
- t.test('errors', function (st) {
- var testNonNumber = function (nonNumber) {
- st['throws'](
- function () { ES.ArraySpeciesCreate([], nonNumber); },
- TypeError,
- debug(nonNumber) + ' is not a number'
- );
- };
- forEach(v.nonNumbers, testNonNumber);
-
- st['throws'](
- function () { ES.ArraySpeciesCreate([], -1); },
- TypeError,
- '-1 is not >= 0'
- );
- st['throws'](
- function () { ES.ArraySpeciesCreate([], -Infinity); },
- TypeError,
- '-Infinity is not >= 0'
- );
-
- var testNonIntegers = function (nonInteger) {
- st['throws'](
- function () { ES.ArraySpeciesCreate([], nonInteger); },
- TypeError,
- debug(nonInteger) + ' is not an integer'
- );
- };
- forEach(v.nonIntegerNumbers, testNonIntegers);
-
- st.end();
- });
-
- t.test('works with a non-array', function (st) {
- forEach(v.objects.concat(v.primitives), function (nonArray) {
- var arr = ES.ArraySpeciesCreate(nonArray, 0);
- st.ok(ES.IsArray(arr), 'is an array');
- st.equal(arr.length, 0, 'length is correct');
- st.equal(arr.constructor, Array, 'constructor is correct');
- });
-
- st.end();
- });
-
- t.test('works with a normal array', function (st) {
- var len = 2;
- var orig = [1, 2, 3];
- var arr = ES.ArraySpeciesCreate(orig, len);
-
- st.ok(ES.IsArray(arr), 'is an array');
- st.equal(arr.length, len, 'length is correct');
- st.equal(arr.constructor, orig.constructor, 'constructor is correct');
-
- st.end();
- });
-
- t.test('-0 length produces +0 length', function (st) {
- var len = -0;
- st.ok(is(len, -0), '-0 is negative zero');
- st.notOk(is(len, 0), '-0 is not positive zero');
-
- var orig = [1, 2, 3];
- var arr = ES.ArraySpeciesCreate(orig, len);
-
- st.equal(ES.IsArray(arr), true);
- st.ok(is(arr.length, 0));
- st.equal(arr.constructor, orig.constructor);
-
- st.end();
- });
-
- t.test('works with species construtor', { skip: !hasSpecies }, function (st) {
- var sentinel = {};
- var Foo = function Foo(len) {
- this.length = len;
- this.sentinel = sentinel;
- };
- var Bar = getArraySubclassWithSpeciesConstructor(Foo);
- var bar = new Bar();
-
- t.equal(ES.IsArray(bar), true, 'Bar instance is an array');
-
- var arr = ES.ArraySpeciesCreate(bar, 3);
- st.equal(arr.constructor, Foo, 'result used species constructor');
- st.equal(arr.length, 3, 'length property is correct');
- st.equal(arr.sentinel, sentinel, 'Foo constructor was exercised');
-
- st.end();
- });
-
- t.test('works with null species constructor', { skip: !hasSpecies }, function (st) {
- var Bar = getArraySubclassWithSpeciesConstructor(null);
- var bar = new Bar();
-
- t.equal(ES.IsArray(bar), true, 'Bar instance is an array');
-
- var arr = ES.ArraySpeciesCreate(bar, 3);
- st.equal(arr.constructor, Array, 'result used default constructor');
- st.equal(arr.length, 3, 'length property is correct');
-
- st.end();
- });
-
- t.test('works with undefined species constructor', { skip: !hasSpecies }, function (st) {
- var Bar = getArraySubclassWithSpeciesConstructor();
- var bar = new Bar();
-
- t.equal(ES.IsArray(bar), true, 'Bar instance is an array');
-
- var arr = ES.ArraySpeciesCreate(bar, 3);
- st.equal(arr.constructor, Array, 'result used default constructor');
- st.equal(arr.length, 3, 'length property is correct');
-
- st.end();
- });
-
- t.test('throws with object non-construtor species constructor', { skip: !hasSpecies }, function (st) {
- forEach(v.objects, function (obj) {
- var Bar = getArraySubclassWithSpeciesConstructor(obj);
- var bar = new Bar();
-
- st.equal(ES.IsArray(bar), true, 'Bar instance is an array');
-
- st['throws'](
- function () { ES.ArraySpeciesCreate(bar, 3); },
- TypeError,
- debug(obj) + ' is not a constructor'
- );
- });
-
- st.end();
- });
-
- t.end();
- });
-
- test('CreateDataProperty', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.CreateDataProperty(primitive); },
- TypeError,
- debug(primitive) + ' is not an object'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.CreateDataProperty({}, nonPropertyKey); },
- TypeError,
- debug(nonPropertyKey) + ' is not a property key'
- );
- });
-
- var sentinel = {};
- forEach(v.propertyKeys, function (propertyKey) {
- var obj = {};
- var status = ES.CreateDataProperty(obj, propertyKey, sentinel);
- t.equal(status, true, 'status is true');
- t.equal(
- obj[propertyKey],
- sentinel,
- debug(sentinel) + ' is installed on "' + debug(propertyKey) + '" on the object'
- );
-
- if (typeof Object.defineProperty === 'function') {
- var nonWritable = Object.defineProperty({}, propertyKey, { configurable: true, writable: false });
-
- var nonWritableStatus = ES.CreateDataProperty(nonWritable, propertyKey, sentinel);
- t.equal(nonWritableStatus, false, 'create data property failed');
- t.notEqual(
- nonWritable[propertyKey],
- sentinel,
- debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object when key is nonwritable'
- );
-
- var nonConfigurable = Object.defineProperty({}, propertyKey, { configurable: false, writable: true });
-
- var nonConfigurableStatus = ES.CreateDataProperty(nonConfigurable, propertyKey, sentinel);
- t.equal(nonConfigurableStatus, false, 'create data property failed');
- t.notEqual(
- nonConfigurable[propertyKey],
- sentinel,
- debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object when key is nonconfigurable'
- );
- }
- });
-
- t.end();
- });
-
- test('CreateDataPropertyOrThrow', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.CreateDataPropertyOrThrow(primitive); },
- TypeError,
- debug(primitive) + ' is not an object'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.CreateDataPropertyOrThrow({}, nonPropertyKey); },
- TypeError,
- debug(nonPropertyKey) + ' is not a property key'
- );
- });
-
- var sentinel = {};
- forEach(v.propertyKeys, function (propertyKey) {
- var obj = {};
- var status = ES.CreateDataPropertyOrThrow(obj, propertyKey, sentinel);
- t.equal(status, true, 'status is true');
- t.equal(
- obj[propertyKey],
- sentinel,
- debug(sentinel) + ' is installed on "' + debug(propertyKey) + '" on the object'
- );
-
- if (typeof Object.preventExtensions === 'function') {
- var notExtensible = {};
- Object.preventExtensions(notExtensible);
-
- t['throws'](
- function () { ES.CreateDataPropertyOrThrow(notExtensible, propertyKey, sentinel); },
- TypeError,
- 'can not install ' + debug(propertyKey) + ' on non-extensible object'
- );
- t.notEqual(
- notExtensible[propertyKey],
- sentinel,
- debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object'
- );
- }
- });
-
- t.end();
- });
-
- test('ObjectCreate', function (t) {
- forEach(v.nonNullPrimitives, function (value) {
- t['throws'](
- function () { ES.ObjectCreate(value); },
- TypeError,
- debug(value) + ' is not null, or an object'
- );
- });
-
- t.test('proto arg', function (st) {
- var Parent = function Parent() {};
- Parent.prototype.foo = {};
- var child = ES.ObjectCreate(Parent.prototype);
- st.equal(child instanceof Parent, true, 'child is instanceof Parent');
- st.equal(child.foo, Parent.prototype.foo, 'child inherits properties from Parent.prototype');
-
- st.end();
- });
-
- t.test('internal slots arg', function (st) {
- st.doesNotThrow(function () { ES.ObjectCreate(null, []); }, 'an empty slot list is valid');
-
- st['throws'](
- function () { ES.ObjectCreate(null, ['a']); },
- SyntaxError,
- 'internal slots are not supported'
- );
-
- st.end();
- });
-
- t.test('null proto', { skip: !Object.create }, function (st) {
- st.equal('toString' in {}, true, 'normal objects have toString');
- st.equal('toString' in ES.ObjectCreate(null), false, 'makes a null object');
-
- st.end();
- });
-
- t.test('null proto when no native Object.create', { skip: Object.create }, function (st) {
- st['throws'](
- function () { ES.ObjectCreate(null); },
- SyntaxError,
- 'without a native Object.create, can not create null objects'
- );
-
- st.end();
- });
-
- t.end();
- });
-
- test('AdvanceStringIndex', function (t) {
- forEach(v.nonStrings, function (nonString) {
- t['throws'](
- function () { ES.AdvanceStringIndex(nonString); },
- TypeError,
- '"S" argument must be a String; ' + debug(nonString) + ' is not'
- );
- });
-
- var notInts = v.nonNumbers.concat(
- v.nonIntegerNumbers,
- v.infinities,
- [NaN, [], new Date(), Math.pow(2, 53), -1]
- );
- forEach(notInts, function (nonInt) {
- t['throws'](
- function () { ES.AdvanceStringIndex('abc', nonInt); },
- TypeError,
- '"index" argument must be an integer, ' + debug(nonInt) + ' is not.'
- );
- });
-
- forEach(v.nonBooleans, function (nonBoolean) {
- t['throws'](
- function () { ES.AdvanceStringIndex('abc', 0, nonBoolean); },
- TypeError,
- debug(nonBoolean) + ' is not a Boolean'
- );
- });
-
- var str = 'a\uD83D\uDCA9c';
-
- t.test('non-unicode mode', function (st) {
- for (var i = 0; i < str.length + 2; i += 1) {
- st.equal(ES.AdvanceStringIndex(str, i, false), i + 1, i + ' advances to ' + (i + 1));
- }
-
- st.end();
- });
-
- t.test('unicode mode', function (st) {
- st.equal(ES.AdvanceStringIndex(str, 0, true), 1, '0 advances to 1');
- st.equal(ES.AdvanceStringIndex(str, 1, true), 3, '1 advances to 3');
- st.equal(ES.AdvanceStringIndex(str, 2, true), 3, '2 advances to 3');
- st.equal(ES.AdvanceStringIndex(str, 3, true), 4, '3 advances to 4');
- st.equal(ES.AdvanceStringIndex(str, 4, true), 5, '4 advances to 5');
-
- st.end();
- });
-
- t.test('lone surrogates', function (st) {
- var halfPoo = 'a\uD83Dc';
-
- st.equal(ES.AdvanceStringIndex(halfPoo, 0, true), 1, '0 advances to 1');
- st.equal(ES.AdvanceStringIndex(halfPoo, 1, true), 2, '1 advances to 2');
- st.equal(ES.AdvanceStringIndex(halfPoo, 2, true), 3, '2 advances to 3');
- st.equal(ES.AdvanceStringIndex(halfPoo, 3, true), 4, '3 advances to 4');
-
- st.end();
- });
-
- t.test('surrogate pairs', function (st) {
- var lowestPair = String.fromCharCode('0xD800') + String.fromCharCode('0xDC00');
- var highestPair = String.fromCharCode('0xDBFF') + String.fromCharCode('0xDFFF');
- var poop = String.fromCharCode('0xD83D') + String.fromCharCode('0xDCA9');
-
- st.equal(ES.AdvanceStringIndex(lowestPair, 0, true), 2, 'lowest surrogate pair, 0 -> 2');
- st.equal(ES.AdvanceStringIndex(highestPair, 0, true), 2, 'highest surrogate pair, 0 -> 2');
- st.equal(ES.AdvanceStringIndex(poop, 0, true), 2, 'poop, 0 -> 2');
-
- st.end();
- });
-
- t.end();
- });
-
- test('CreateMethodProperty', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.CreateMethodProperty(primitive, 'key'); },
- TypeError,
- 'O must be an Object'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.CreateMethodProperty({}, nonPropertyKey); },
- TypeError,
- debug(nonPropertyKey) + ' is not a Property Key'
- );
- });
-
- t.test('defines correctly', function (st) {
- var obj = {};
- var key = 'the key';
- var value = { foo: 'bar' };
-
- st.equal(ES.CreateMethodProperty(obj, key, value), true, 'defines property successfully');
- st.test('property descriptor', { skip: !Object.getOwnPropertyDescriptor }, function (s2t) {
- s2t.deepEqual(
- Object.getOwnPropertyDescriptor(obj, key),
- {
- configurable: true,
- enumerable: false,
- value: value,
- writable: true
- },
- 'sets the correct property descriptor'
- );
-
- s2t.end();
- });
- st.equal(obj[key], value, 'sets the correct value');
-
- st.end();
- });
-
- t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) {
- var obj = Object.freeze({ foo: 'bar' });
- st['throws'](
- function () { ES.CreateMethodProperty(obj, 'foo', { value: 'baz' }); },
- TypeError,
- 'nonconfigurable key can not be defined'
- );
-
- st.end();
- });
-
- var hasNonConfigurableFunctionName = !Object.getOwnPropertyDescriptor
- || !Object.getOwnPropertyDescriptor(function () {}, 'name').configurable;
- t.test('fails as expected on a function with a nonconfigurable name', { skip: !hasNonConfigurableFunctionName }, function (st) {
- st['throws'](
- function () { ES.CreateMethodProperty(function () {}, 'name', { value: 'baz' }); },
- TypeError,
- 'nonconfigurable function name can not be defined'
- );
- st.end();
- });
-
- t.end();
- });
-
- test('DefinePropertyOrThrow', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.DefinePropertyOrThrow(primitive, 'key', {}); },
- TypeError,
- 'O must be an Object'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.DefinePropertyOrThrow({}, nonPropertyKey, {}); },
- TypeError,
- debug(nonPropertyKey) + ' is not a Property Key'
- );
- });
-
- t.test('defines correctly', function (st) {
- var obj = {};
- var key = 'the key';
- var descriptor = {
- configurable: true,
- enumerable: false,
- value: { foo: 'bar' },
- writable: true
- };
-
- st.equal(ES.DefinePropertyOrThrow(obj, key, descriptor), true, 'defines property successfully');
- st.test('property descriptor', { skip: !Object.getOwnPropertyDescriptor }, function (s2t) {
- s2t.deepEqual(
- Object.getOwnPropertyDescriptor(obj, key),
- descriptor,
- 'sets the correct property descriptor'
- );
-
- s2t.end();
- });
- st.deepEqual(obj[key], descriptor.value, 'sets the correct value');
-
- st.end();
- });
-
- t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) {
- var obj = Object.freeze({ foo: 'bar' });
- st['throws'](
- function () {
- ES.DefinePropertyOrThrow(obj, 'foo', { configurable: true, value: 'baz' });
- },
- TypeError,
- 'nonconfigurable key can not be defined'
- );
-
- st.end();
- });
-
- var hasNonConfigurableFunctionName = !Object.getOwnPropertyDescriptor
- || !Object.getOwnPropertyDescriptor(function () {}, 'name').configurable;
- t.test('fails as expected on a function with a nonconfigurable name', { skip: !hasNonConfigurableFunctionName }, function (st) {
- st['throws'](
- function () {
- ES.DefinePropertyOrThrow(function () {}, 'name', { configurable: true, value: 'baz' });
- },
- TypeError,
- 'nonconfigurable function name can not be defined'
- );
- st.end();
- });
-
- t.end();
- });
-
- test('DeletePropertyOrThrow', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.DeletePropertyOrThrow(primitive, 'key', {}); },
- TypeError,
- 'O must be an Object'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.DeletePropertyOrThrow({}, nonPropertyKey, {}); },
- TypeError,
- debug(nonPropertyKey) + ' is not a Property Key'
- );
- });
-
- t.test('defines correctly', function (st) {
- var obj = { 'the key': 42 };
- var key = 'the key';
-
- st.equal(ES.DeletePropertyOrThrow(obj, key), true, 'deletes property successfully');
- st.equal(key in obj, false, 'key is no longer in the object');
-
- st.end();
- });
-
- t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) {
- var obj = Object.freeze({ foo: 'bar' });
- st['throws'](
- function () { ES.DeletePropertyOrThrow(obj, 'foo'); },
- TypeError,
- 'nonconfigurable key can not be deleted'
- );
-
- st.end();
- });
-
- var hasNonConfigurableFunctionName = !Object.getOwnPropertyDescriptor
- || !Object.getOwnPropertyDescriptor(function () {}, 'name').configurable;
- t.test('fails as expected on a function with a nonconfigurable name', { skip: !hasNonConfigurableFunctionName }, function (st) {
- st['throws'](
- function () { ES.DeletePropertyOrThrow(function () {}, 'name'); },
- TypeError,
- 'nonconfigurable function name can not be deleted'
- );
- st.end();
- });
-
- t.end();
- });
-
- test('EnumerableOwnNames', { skip: skips && skips.EnumerableOwnNames }, function (t) {
- var obj = testEnumerableOwnNames(t, function (O) { return ES.EnumerableOwnNames(O); });
-
- t.deepEqual(
- ES.EnumerableOwnNames(obj),
- ['own'],
- 'returns enumerable own names'
- );
-
- t.end();
- });
-
- test('thisNumberValue', function (t) {
- forEach(v.nonNumbers, function (nonNumber) {
- t['throws'](
- function () { ES.thisNumberValue(nonNumber); },
- TypeError,
- debug(nonNumber) + ' is not a Number'
- );
- });
-
- forEach(v.numbers, function (number) {
- t.equal(ES.thisNumberValue(number), number, debug(number) + ' is its own thisNumberValue');
- var obj = Object(number);
- t.equal(ES.thisNumberValue(obj), number, debug(obj) + ' is the boxed thisNumberValue');
- });
-
- t.end();
- });
-
- test('thisBooleanValue', function (t) {
- forEach(v.nonBooleans, function (nonBoolean) {
- t['throws'](
- function () { ES.thisBooleanValue(nonBoolean); },
- TypeError,
- debug(nonBoolean) + ' is not a Boolean'
- );
- });
-
- forEach(v.booleans, function (boolean) {
- t.equal(ES.thisBooleanValue(boolean), boolean, debug(boolean) + ' is its own thisBooleanValue');
- var obj = Object(boolean);
- t.equal(ES.thisBooleanValue(obj), boolean, debug(obj) + ' is the boxed thisBooleanValue');
- });
-
- t.end();
- });
-
- test('thisStringValue', function (t) {
- forEach(v.nonStrings, function (nonString) {
- t['throws'](
- function () { ES.thisStringValue(nonString); },
- TypeError,
- debug(nonString) + ' is not a String'
- );
- });
-
- forEach(v.strings, function (string) {
- t.equal(ES.thisStringValue(string), string, debug(string) + ' is its own thisStringValue');
- var obj = Object(string);
- t.equal(ES.thisStringValue(obj), string, debug(obj) + ' is the boxed thisStringValue');
- });
-
- t.end();
- });
-
- test('thisTimeValue', function (t) {
- forEach(v.primitives.concat(v.objects), function (nonDate) {
- t['throws'](
- function () { ES.thisTimeValue(nonDate); },
- TypeError,
- debug(nonDate) + ' is not a Date'
- );
- });
-
- forEach(v.timestamps, function (timestamp) {
- var date = new Date(timestamp);
-
- t.equal(ES.thisTimeValue(date), timestamp, debug(date) + ' is its own thisTimeValue');
- });
-
- t.end();
- });
-
- test('SetIntegrityLevel', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.SetIntegrityLevel(primitive); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
-
- t['throws'](
- function () { ES.SetIntegrityLevel({}); },
- /^TypeError: Assertion failed: `level` must be `"sealed"` or `"frozen"`$/,
- '`level` must be `"sealed"` or `"frozen"`'
- );
-
- var O = { a: 1 };
- t.equal(ES.SetIntegrityLevel(O, 'sealed'), true);
- t['throws'](
- function () { O.b = 2; },
- /^TypeError: (Cannot|Can't) add property b, object is not extensible$/,
- 'sealing prevent new properties from being added'
- );
- O.a = 2;
- t.equal(O.a, 2, 'pre-frozen, existing properties are mutable');
-
- t.equal(ES.SetIntegrityLevel(O, 'frozen'), true);
- t['throws'](
- function () { O.a = 3; },
- /^TypeError: Cannot assign to read only property 'a' of /,
- 'freezing prevents existing properties from being mutated'
- );
-
- t.end();
- });
-
- test('TestIntegrityLevel', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.TestIntegrityLevel(primitive); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
-
- t['throws'](
- function () { ES.TestIntegrityLevel({ a: 1 }); },
- /^TypeError: Assertion failed: `level` must be `"sealed"` or `"frozen"`$/,
- '`level` must be `"sealed"` or `"frozen"`'
- );
-
- t.equal(ES.TestIntegrityLevel({ a: 1 }, 'sealed'), false, 'basic object is not sealed');
- t.equal(ES.TestIntegrityLevel({ a: 1 }, 'frozen'), false, 'basic object is not frozen');
-
- t.test('preventExtensions', { skip: !Object.preventExtensions }, function (st) {
- var o = Object.preventExtensions({ a: 1 });
- st.equal(ES.TestIntegrityLevel(o, 'sealed'), false, 'nonextensible object is not sealed');
- st.equal(ES.TestIntegrityLevel(o, 'frozen'), false, 'nonextensible object is not frozen');
-
- var empty = Object.preventExtensions({});
- st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty nonextensible object is sealed');
- st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty nonextensible object is frozen');
- st.end();
- });
-
- t.test('seal', { skip: !Object.seal }, function (st) {
- var o = Object.seal({ a: 1 });
- st.equal(ES.TestIntegrityLevel(o, 'sealed'), true, 'sealed object is sealed');
- st.equal(ES.TestIntegrityLevel(o, 'frozen'), false, 'sealed object is not frozen');
-
- var empty = Object.seal({});
- st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty sealed object is sealed');
- st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty sealed object is frozen');
-
- st.end();
- });
-
- t.test('freeze', { skip: !Object.freeze }, function (st) {
- var o = Object.freeze({ a: 1 });
- st.equal(ES.TestIntegrityLevel(o, 'sealed'), true, 'frozen object is sealed');
- st.equal(ES.TestIntegrityLevel(o, 'frozen'), true, 'frozen object is frozen');
-
- var empty = Object.freeze({});
- st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty frozen object is sealed');
- st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty frozen object is frozen');
-
- st.end();
- });
-
- t.end();
- });
-
- test('OrdinaryHasInstance', function (t) {
- forEach(v.nonFunctions, function (nonFunction) {
- t.equal(ES.OrdinaryHasInstance(nonFunction, {}), false, debug(nonFunction) + ' is not callable');
- });
-
- forEach(v.primitives, function (primitive) {
- t.equal(ES.OrdinaryHasInstance(function () {}, primitive), false, debug(primitive) + ' is not an object');
- });
-
- var C = function C() {};
- var D = function D() {};
- t.equal(ES.OrdinaryHasInstance(C, new C()), true, 'constructor function has an instance of itself');
- t.equal(ES.OrdinaryHasInstance(C, new D()), false, 'constructor/instance mismatch is false');
- t.equal(ES.OrdinaryHasInstance(D, new C()), false, 'instance/constructor mismatch is false');
- t.equal(ES.OrdinaryHasInstance(C, {}), false, 'plain object is not an instance of a constructor');
- t.equal(ES.OrdinaryHasInstance(Object, {}), true, 'plain object is an instance of Object');
-
- t.end();
- });
-
- test('OrdinaryHasProperty', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.OrdinaryHasProperty(primitive, ''); },
- TypeError,
- debug(primitive) + ' is not an object'
- );
- });
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.OrdinaryHasProperty({}, nonPropertyKey); },
- TypeError,
- 'P: ' + debug(nonPropertyKey) + ' is not a Property Key'
- );
- });
-
- t.equal(ES.OrdinaryHasProperty({ a: 1 }, 'a'), true, 'own property is true');
- t.equal(ES.OrdinaryHasProperty({}, 'toString'), true, 'inherited property is true');
- t.equal(ES.OrdinaryHasProperty({}, 'nope'), false, 'absent property is false');
-
- t.end();
- });
-
- test('InstanceofOperator', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.InstanceofOperator(primitive, function () {}); },
- TypeError,
- debug(primitive) + ' is not an object'
- );
- });
-
- forEach(v.nonFunctions, function (nonFunction) {
- t['throws'](
- function () { ES.InstanceofOperator({}, nonFunction); },
- TypeError,
- debug(nonFunction) + ' is not callable'
- );
- });
-
- var C = function C() {};
- var D = function D() {};
-
- t.equal(ES.InstanceofOperator(new C(), C), true, 'constructor function has an instance of itself');
- t.equal(ES.InstanceofOperator(new D(), C), false, 'constructor/instance mismatch is false');
- t.equal(ES.InstanceofOperator(new C(), D), false, 'instance/constructor mismatch is false');
- t.equal(ES.InstanceofOperator({}, C), false, 'plain object is not an instance of a constructor');
- t.equal(ES.InstanceofOperator({}, Object), true, 'plain object is an instance of Object');
-
- t.test('Symbol.hasInstance', { skip: !v.hasSymbols || !Symbol.hasInstance }, function (st) {
- st.plan(4);
-
- var O = {};
- var C2 = function () {};
- st.equal(ES.InstanceofOperator(O, C2), false, 'O is not an instance of C2');
-
- Object.defineProperty(C2, Symbol.hasInstance, {
- value: function (obj) {
- st.equal(this, C2, 'hasInstance receiver is C2');
- st.equal(obj, O, 'hasInstance argument is O');
-
- return {}; // testing coercion to boolean
- }
- });
-
- st.equal(ES.InstanceofOperator(O, C2), true, 'O is now an instance of C2');
-
- st.end();
- });
-
- t.end();
- });
-
- test('Abstract Equality Comparison', function (t) {
- t.test('same types use ===', function (st) {
- forEach(v.primitives.concat(v.objects), function (value) {
- st.equal(ES['Abstract Equality Comparison'](value, value), value === value, debug(value) + ' is abstractly equal to itself');
- });
- st.end();
- });
-
- t.test('different types coerce', function (st) {
- var pairs = [
- [null, undefined],
- [3, '3'],
- [true, '3'],
- [true, 3],
- [false, 0],
- [false, '0'],
- [3, [3]],
- ['3', [3]],
- [true, [1]],
- [false, [0]],
- [String(v.coercibleObject), v.coercibleObject],
- [Number(String(v.coercibleObject)), v.coercibleObject],
- [Number(v.coercibleObject), v.coercibleObject],
- [String(Number(v.coercibleObject)), v.coercibleObject]
- ];
- forEach(pairs, function (pair) {
- var a = pair[0];
- var b = pair[1];
- // eslint-disable-next-line eqeqeq
- st.equal(ES['Abstract Equality Comparison'](a, b), a == b, debug(a) + ' == ' + debug(b));
- // eslint-disable-next-line eqeqeq
- st.equal(ES['Abstract Equality Comparison'](b, a), b == a, debug(b) + ' == ' + debug(a));
- });
- st.end();
- });
-
- t.end();
- });
-
- test('Strict Equality Comparison', function (t) {
- t.test('same types use ===', function (st) {
- forEach(v.primitives.concat(v.objects), function (value) {
- st.equal(ES['Strict Equality Comparison'](value, value), value === value, debug(value) + ' is strictly equal to itself');
- });
- st.end();
- });
-
- t.test('different types are not ===', function (st) {
- var pairs = [
- [null, undefined],
- [3, '3'],
- [true, '3'],
- [true, 3],
- [false, 0],
- [false, '0'],
- [3, [3]],
- ['3', [3]],
- [true, [1]],
- [false, [0]],
- [String(v.coercibleObject), v.coercibleObject],
- [Number(String(v.coercibleObject)), v.coercibleObject],
- [Number(v.coercibleObject), v.coercibleObject],
- [String(Number(v.coercibleObject)), v.coercibleObject]
- ];
- forEach(pairs, function (pair) {
- var a = pair[0];
- var b = pair[1];
- st.equal(ES['Strict Equality Comparison'](a, b), a === b, debug(a) + ' === ' + debug(b));
- st.equal(ES['Strict Equality Comparison'](b, a), b === a, debug(b) + ' === ' + debug(a));
- });
- st.end();
- });
-
- t.end();
- });
-
- test('Abstract Relational Comparison', function (t) {
- t.test('at least one operand is NaN', function (st) {
- st.equal(ES['Abstract Relational Comparison'](NaN, {}, true), undefined, 'LeftFirst: first is NaN, returns undefined');
- st.equal(ES['Abstract Relational Comparison']({}, NaN, true), undefined, 'LeftFirst: second is NaN, returns undefined');
- st.equal(ES['Abstract Relational Comparison'](NaN, {}, false), undefined, '!LeftFirst: first is NaN, returns undefined');
- st.equal(ES['Abstract Relational Comparison']({}, NaN, false), undefined, '!LeftFirst: second is NaN, returns undefined');
- st.end();
- });
-
- t.equal(ES['Abstract Relational Comparison'](3, 4, true), true, 'LeftFirst: 3 is less than 4');
- t.equal(ES['Abstract Relational Comparison'](4, 3, true), false, 'LeftFirst: 3 is not less than 4');
- t.equal(ES['Abstract Relational Comparison'](3, 4, false), true, '!LeftFirst: 3 is less than 4');
- t.equal(ES['Abstract Relational Comparison'](4, 3, false), false, '!LeftFirst: 3 is not less than 4');
-
- t.equal(ES['Abstract Relational Comparison']('3', '4', true), true, 'LeftFirst: "3" is less than "4"');
- t.equal(ES['Abstract Relational Comparison']('4', '3', true), false, 'LeftFirst: "3" is not less than "4"');
- t.equal(ES['Abstract Relational Comparison']('3', '4', false), true, '!LeftFirst: "3" is less than "4"');
- t.equal(ES['Abstract Relational Comparison']('4', '3', false), false, '!LeftFirst: "3" is not less than "4"');
-
- t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, true), true, 'LeftFirst: coercible object is less than 42');
- t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, true), false, 'LeftFirst: 42 is not less than coercible object');
- t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, false), true, '!LeftFirst: coercible object is less than 42');
- t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, false), false, '!LeftFirst: 42 is not less than coercible object');
-
- t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', true), false, 'LeftFirst: coercible object is not less than "3"');
- t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, true), false, 'LeftFirst: "3" is not less than coercible object');
- t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', false), false, '!LeftFirst: coercible object is not less than "3"');
- t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, false), false, '!LeftFirst: "3" is not less than coercible object');
-
- t.end();
- });
-
- test('ValidateAndApplyPropertyDescriptor', function (t) {
- forEach(v.nonUndefinedPrimitives, function (nonUndefinedPrimitive) {
- t['throws'](
- function () { ES.ValidateAndApplyPropertyDescriptor(nonUndefinedPrimitive, '', false, v.genericDescriptor(), v.genericDescriptor()); },
- TypeError,
- 'O: ' + debug(nonUndefinedPrimitive) + ' is not undefined or an Object'
- );
- });
-
- forEach(v.nonBooleans, function (nonBoolean) {
- t['throws'](
- function () {
- return ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- null,
- nonBoolean,
- v.genericDescriptor(),
- v.genericDescriptor()
- );
- },
- TypeError,
- 'extensible: ' + debug(nonBoolean) + ' is not a Boolean'
- );
- });
-
- forEach(v.primitives, function (primitive) {
- // Desc must be a Property Descriptor
- t['throws'](
- function () {
- return ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- null,
- false,
- primitive,
- v.genericDescriptor()
- );
- },
- TypeError,
- 'Desc: ' + debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- // current must be undefined or a Property Descriptor
- t['throws'](
- function () {
- return ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- null,
- false,
- v.genericDescriptor(),
- primitive
- );
- },
- TypeError,
- 'current: ' + debug(primitive) + ' is not a Property Descriptor or undefined'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- // if O is an object, P must be a property key
- t['throws'](
- function () {
- return ES.ValidateAndApplyPropertyDescriptor(
- {},
- nonPropertyKey,
- false,
- v.genericDescriptor(),
- v.genericDescriptor()
- );
- },
- TypeError,
- 'P: ' + debug(nonPropertyKey) + ' is not a Property Key'
- );
- });
-
- t.test('current is undefined', function (st) {
- var propertyKey = 'howdy';
-
- st.test('generic descriptor', function (s2t) {
- var generic = v.genericDescriptor();
- generic['[[Enumerable]]'] = true;
- var O = {};
- ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, generic);
- s2t.equal(
- ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, generic),
- false,
- 'when extensible is false, nothing happens'
- );
- s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false');
- s2t.equal(
- ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, generic),
- true,
- 'operation is successful'
- );
- var expected = {};
- expected[propertyKey] = undefined;
- s2t.deepEqual(O, expected, 'generic descriptor has been defined as an own data property');
- s2t.end();
- });
-
- st.test('data descriptor', function (s2t) {
- var data = v.dataDescriptor();
- data['[[Enumerable]]'] = true;
-
- var O = {};
- ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, data);
- s2t.equal(
- ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, data),
- false,
- 'when extensible is false, nothing happens'
- );
- s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false');
- s2t.equal(
- ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, data),
- true,
- 'operation is successful'
- );
- var expected = {};
- expected[propertyKey] = data['[[Value]]'];
- s2t.deepEqual(O, expected, 'data descriptor has been defined as an own data property');
- s2t.end();
- });
-
- st.test('accessor descriptor', function (s2t) {
- var count = 0;
- var accessor = v.accessorDescriptor();
- accessor['[[Enumerable]]'] = true;
- accessor['[[Get]]'] = function () {
- count += 1;
- return count;
- };
-
- var O = {};
- ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, accessor);
- s2t.equal(
- ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, accessor),
- false,
- 'when extensible is false, nothing happens'
- );
- s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false');
- s2t.equal(
- ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, accessor),
- true,
- 'operation is successful'
- );
- var expected = {};
- expected[propertyKey] = accessor['[[Get]]']() + 1;
- s2t.deepEqual(O, expected, 'accessor descriptor has been defined as an own accessor property');
- s2t.end();
- });
-
- st.end();
- });
-
- t.test('every field in Desc is absent', { skip: 'it is unclear if having no fields qualifies Desc to be a Property Descriptor' });
-
- forEach([v.dataDescriptor, v.accessorDescriptor, v.mutatorDescriptor], function (getDescriptor) {
- t.equal(
- ES.ValidateAndApplyPropertyDescriptor(undefined, 'property key', true, getDescriptor(), getDescriptor()),
- true,
- 'when Desc and current are the same, early return true'
- );
- });
-
- t.test('current is nonconfigurable', function (st) {
- // note: these must not be generic descriptors, or else the algorithm returns an early true
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.descriptors.configurable(v.dataDescriptor()),
- v.descriptors.nonConfigurable(v.dataDescriptor())
- ),
- false,
- 'false if Desc is configurable'
- );
-
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.descriptors.enumerable(v.dataDescriptor()),
- v.descriptors.nonEnumerable(v.dataDescriptor())
- ),
- false,
- 'false if Desc is Enumerable and current is not'
- );
-
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.descriptors.nonEnumerable(v.dataDescriptor()),
- v.descriptors.enumerable(v.dataDescriptor())
- ),
- false,
- 'false if Desc is not Enumerable and current is'
- );
-
- var descLackingEnumerable = v.accessorDescriptor();
- delete descLackingEnumerable['[[Enumerable]]'];
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- descLackingEnumerable,
- v.descriptors.enumerable(v.accessorDescriptor())
- ),
- true,
- 'not false if Desc lacks Enumerable'
- );
-
- st.end();
- });
-
- t.test('Desc and current: one is a data descriptor, one is not', { skip: !Object.defineProperty }, function (st) {
- // note: Desc must be configurable if current is nonconfigurable, to hit this branch
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.descriptors.configurable(v.accessorDescriptor()),
- v.descriptors.nonConfigurable(v.dataDescriptor())
- ),
- false,
- 'false if current (data) is nonconfigurable'
- );
-
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.descriptors.configurable(v.dataDescriptor()),
- v.descriptors.nonConfigurable(v.accessorDescriptor())
- ),
- false,
- 'false if current (not data) is nonconfigurable'
- );
-
- // one is data and one is not,
- // // if current is data, convert to accessor
- // // else convert to data
-
- var startsWithData = {
- 'property key': 42
- };
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- startsWithData,
- 'property key',
- true,
- v.descriptors.enumerable(v.descriptors.configurable(v.accessorDescriptor())),
- v.descriptors.enumerable(v.descriptors.configurable(v.dataDescriptor()))
- ),
- true,
- 'operation is successful: current is data, Desc is accessor'
- );
- var shouldBeAccessor = Object.getOwnPropertyDescriptor(startsWithData, 'property key');
- st.equal(typeof shouldBeAccessor.get, 'function', 'has a getter');
-
- var key = 'property key';
- var startsWithAccessor = {};
- Object.defineProperty(startsWithAccessor, key, {
- configurable: true,
- enumerable: true,
- get: function get() { return 42; }
- });
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- startsWithAccessor,
- key,
- true,
- v.descriptors.enumerable(v.descriptors.configurable(v.dataDescriptor())),
- v.descriptors.enumerable(v.descriptors.configurable(v.accessorDescriptor(42)))
- ),
- true,
- 'operation is successful: current is accessor, Desc is data'
- );
- var shouldBeData = Object.getOwnPropertyDescriptor(startsWithAccessor, 'property key');
- st.deepEqual(shouldBeData, { configurable: true, enumerable: true, value: 42, writable: false }, 'is a data property');
-
- st.end();
- });
-
- t.test('Desc and current are both data descriptors', function (st) {
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.descriptors.writable(v.dataDescriptor()),
- v.descriptors.nonWritable(v.descriptors.nonConfigurable(v.dataDescriptor()))
- ),
- false,
- 'false if frozen current and writable Desc'
- );
-
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.descriptors.configurable({ '[[Value]]': 42 }),
- v.descriptors.nonWritable({ '[[Value]]': 7 })
- ),
- false,
- 'false if nonwritable current has a different value than Desc'
- );
-
- st.end();
- });
-
- t.test('current is nonconfigurable; Desc and current are both accessor descriptors', function (st) {
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.mutatorDescriptor(),
- v.descriptors.nonConfigurable(v.mutatorDescriptor())
- ),
- false,
- 'false if both Sets are not equal'
- );
-
- st.equal(
- ES.ValidateAndApplyPropertyDescriptor(
- undefined,
- 'property key',
- true,
- v.accessorDescriptor(),
- v.descriptors.nonConfigurable(v.accessorDescriptor())
- ),
- false,
- 'false if both Gets are not equal'
- );
-
- st.end();
- });
-
- t.end();
- });
-
- test('OrdinaryGetOwnProperty', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.OrdinaryGetOwnProperty(primitive, ''); },
- TypeError,
- 'O: ' + debug(primitive) + ' is not an Object'
- );
- });
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.OrdinaryGetOwnProperty({}, nonPropertyKey); },
- TypeError,
- 'P: ' + debug(nonPropertyKey) + ' is not a Property Key'
- );
- });
-
- t.equal(ES.OrdinaryGetOwnProperty({}, 'not in the object'), undefined, 'missing property yields undefined');
- t.equal(ES.OrdinaryGetOwnProperty({}, 'toString'), undefined, 'inherited non-own property yields undefined');
-
- t.deepEqual(
- ES.OrdinaryGetOwnProperty({ a: 1 }, 'a'),
- ES.ToPropertyDescriptor({
- configurable: true,
- enumerable: true,
- value: 1,
- writable: true
- }),
- 'own assigned data property yields expected descriptor'
- );
-
- t.deepEqual(
- ES.OrdinaryGetOwnProperty(/a/, 'lastIndex'),
- ES.ToPropertyDescriptor({
- configurable: false,
- enumerable: false,
- value: 0,
- writable: true
- }),
- 'regex lastIndex yields expected descriptor'
- );
-
- t.deepEqual(
- ES.OrdinaryGetOwnProperty([], 'length'),
- ES.ToPropertyDescriptor({
- configurable: false,
- enumerable: false,
- value: 0,
- writable: true
- }),
- 'array length yields expected descriptor'
- );
-
- t.deepEqual(
- ES.OrdinaryGetOwnProperty(Object.prototype, 'toString'),
- ES.ToPropertyDescriptor({
- configurable: true,
- enumerable: false,
- value: Object.prototype.toString,
- writable: true
- }),
- 'own non-enumerable data property yields expected descriptor'
- );
-
- t.test('ES5+', { skip: !Object.defineProperty }, function (st) {
- var O = {};
- Object.defineProperty(O, 'foo', {
- configurable: false,
- enumerable: false,
- value: O,
- writable: true
- });
-
- t.deepEqual(
- ES.OrdinaryGetOwnProperty(O, 'foo'),
- ES.ToPropertyDescriptor({
- configurable: false,
- enumerable: false,
- value: O,
- writable: true
- }),
- 'defined own property yields expected descriptor'
- );
-
- st.end();
- });
-
- t.end();
- });
-
- test('OrdinaryDefineOwnProperty', { skip: !Object.defineProperty }, function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.CopyDataProperties(primitive, {}, []); },
- TypeError,
- 'O: ' + debug(primitive) + ' is not an Object'
- );
- });
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.OrdinaryDefineOwnProperty({}, nonPropertyKey, v.genericDescriptor()); },
- TypeError,
- 'P: ' + debug(nonPropertyKey) + ' is not a Property Key'
- );
- });
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.OrdinaryDefineOwnProperty(primitive, '', v.genericDescriptor()); },
- TypeError,
- 'Desc: ' + debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- var O = {};
- var P = 'property key';
- var Desc = v.accessorDescriptor();
- t.equal(
- ES.OrdinaryDefineOwnProperty(O, P, Desc),
- true,
- 'operation is successful'
- );
- t.deepEqual(
- Object.getOwnPropertyDescriptor(O, P),
- ES.FromPropertyDescriptor(ES.CompletePropertyDescriptor(Desc)),
- 'expected property descriptor is defined'
- );
-
- t.end();
- });
-
- test('ArrayCreate', function (t) {
- forEach(v.nonIntegerNumbers.concat([-1]), function (nonIntegerNumber) {
- t['throws'](
- function () { ES.ArrayCreate(nonIntegerNumber); },
- TypeError,
- 'length must be an integer number >= 0'
- );
- });
-
- t['throws'](
- function () { ES.ArrayCreate(Math.pow(2, 32)); },
- RangeError,
- 'length must be < 2**32'
- );
-
- t.deepEqual(ES.ArrayCreate(-0), [], 'length of -0 creates an empty array');
- t.deepEqual(ES.ArrayCreate(0), [], 'length of +0 creates an empty array');
- // eslint-disable-next-line no-sparse-arrays, comma-spacing
- t.deepEqual(ES.ArrayCreate(1), [,], 'length of 1 creates a sparse array of length 1');
- // eslint-disable-next-line no-sparse-arrays, comma-spacing
- t.deepEqual(ES.ArrayCreate(2), [,,], 'length of 2 creates a sparse array of length 2');
-
- // eslint-disable-next-line no-proto
- t.test('proto argument', { skip: [].__proto__ !== Array.prototype }, function (st) {
- var fakeProto = {
- push: { toString: function () { return 'not array push'; } }
- };
- st.equal(ES.ArrayCreate(0, fakeProto).push, fakeProto.push, 'passing the proto argument works');
- st.end();
- });
-
- t.end();
- });
-
- test('ArraySetLength', function (t) {
- forEach(v.primitives.concat(v.objects), function (nonArray) {
- t['throws'](
- function () { ES.ArraySetLength(nonArray, 0); },
- TypeError,
- 'A: ' + debug(nonArray) + ' is not an Array'
- );
- });
-
- forEach(v.nonUndefinedPrimitives, function (primitive) {
- t['throws'](
- function () { ES.ArraySetLength([], primitive); },
- TypeError,
- 'Desc: ' + debug(primitive) + ' is not a Property Descriptor'
- );
- });
-
- t.test('making length nonwritable', { skip: !Object.defineProperty }, function (st) {
- var a = [];
- ES.ArraySetLength(a, { '[[Writable]]': false });
- st.deepEqual(
- Object.getOwnPropertyDescriptor(a, 'length'),
- {
- configurable: false,
- enumerable: false,
- value: 0,
- writable: false
- },
- 'without a value, length becomes nonwritable'
- );
- st.end();
- });
-
- var arr = [];
- ES.ArraySetLength(arr, { '[[Value]]': 7 });
- t.equal(arr.length, 7, 'array now has a length of 7');
-
- t.end();
- });
-
- test('CreateHTML', function (t) {
- forEach(v.nonStrings, function (nonString) {
- t['throws'](
- function () { ES.CreateHTML('', nonString, '', ''); },
- TypeError,
- 'tag: ' + debug(nonString) + ' is not a String'
- );
- t['throws'](
- function () { ES.CreateHTML('', '', nonString, ''); },
- TypeError,
- 'attribute: ' + debug(nonString) + ' is not a String'
- );
- });
-
- t.equal(
- ES.CreateHTML(
- { toString: function () { return 'the string'; } },
- 'some HTML tag!',
- ''
- ),
- 'the string',
- 'works with an empty string attribute value'
- );
-
- t.equal(
- ES.CreateHTML(
- { toString: function () { return 'the string'; } },
- 'some HTML tag!',
- 'attr',
- 'value "with quotes"'
- ),
- 'the string',
- 'works with an attribute, and a value with quotes'
- );
-
- t.end();
- });
-
- test('GetOwnPropertyKeys', function (t) {
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.GetOwnPropertyKeys(primitive, 'String'); },
- TypeError,
- 'O: ' + debug(primitive) + ' is not an Object'
- );
- });
-
- t['throws'](
- function () { ES.GetOwnPropertyKeys({}, 'not string or symbol'); },
- TypeError,
- 'Type: must be "String" or "Symbol"'
- );
-
- t.test('Symbols', { skip: !v.hasSymbols }, function (st) {
- var O = { a: 1 };
- O[Symbol.iterator] = true;
- var s = Symbol('test');
- Object.defineProperty(O, s, { enumerable: false, value: true });
-
- st.deepEqual(
- ES.GetOwnPropertyKeys(O, 'Symbol'),
- [Symbol.iterator, s],
- 'works with Symbols, enumerable or not'
- );
-
- st.end();
- });
-
- t.test('non-enumerable names', { skip: !Object.defineProperty }, function (st) {
- var O = { a: 1 };
- Object.defineProperty(O, 'b', { enumerable: false, value: 2 });
- if (v.hasSymbols) {
- O[Symbol.iterator] = true;
- }
-
- st.deepEqual(
- ES.GetOwnPropertyKeys(O, 'String').sort(),
- ['a', 'b'].sort(),
- 'works with Strings, enumerable or not'
- );
-
- st.end();
- });
-
- t.deepEqual(
- ES.GetOwnPropertyKeys({ a: 1, b: 2 }, 'String').sort(),
- ['a', 'b'].sort(),
- 'works with enumerable keys'
- );
-
- t.end();
- });
-
- test('SymbolDescriptiveString', function (t) {
- forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) {
- t['throws'](
- function () { ES.SymbolDescriptiveString(nonSymbol); },
- TypeError,
- debug(nonSymbol) + ' is not a Symbol'
- );
- });
-
- t.test('Symbols', { skip: !v.hasSymbols }, function (st) {
- st.equal(ES.SymbolDescriptiveString(Symbol()), 'Symbol()', 'undefined description');
- st.equal(ES.SymbolDescriptiveString(Symbol('')), 'Symbol()', 'empty string description');
- st.equal(ES.SymbolDescriptiveString(Symbol.iterator), 'Symbol(Symbol.iterator)', 'well-known symbol');
- st.equal(ES.SymbolDescriptiveString(Symbol('foo')), 'Symbol(foo)', 'string description');
-
- st.end();
- });
-
- t.end();
- });
-
- test('GetSubstitution', { skip: skips && skips.GetSubstitution }, function (t) {
- forEach(v.nonStrings, function (nonString) {
- t['throws'](
- function () { ES.GetSubstitution(nonString, '', 0, [], ''); },
- TypeError,
- '`matched`: ' + debug(nonString) + ' is not a String'
- );
-
- t['throws'](
- function () { ES.GetSubstitution('', nonString, 0, [], ''); },
- TypeError,
- '`str`: ' + debug(nonString) + ' is not a String'
- );
-
- t['throws'](
- function () { ES.GetSubstitution('', '', 0, [], nonString); },
- TypeError,
- '`replacement`: ' + debug(nonString) + ' is not a String'
- );
-
- t['throws'](
- function () { ES.GetSubstitution('', '', 0, [nonString], ''); },
- TypeError,
- '`captures`: ' + debug([nonString]) + ' is not an Array of strings'
- );
- });
-
- forEach(v.nonIntegerNumbers.concat([-1, -42, -Infinity]), function (nonNonNegativeInteger) {
- t['throws'](
- function () { ES.GetSubstitution('', '', nonNonNegativeInteger, [], ''); },
- TypeError,
- '`position`: ' + debug(nonNonNegativeInteger) + ' is not a non-negative integer'
- );
- });
-
- forEach(v.nonArrays, function (nonArray) {
- t['throws'](
- function () { ES.GetSubstitution('', '', 0, nonArray, ''); },
- TypeError,
- '`captures`: ' + debug(nonArray) + ' is not an Array'
- );
- });
-
- t.equal(
- ES.GetSubstitution('def', 'abcdefghi', 3, [], '123'),
- '123',
- 'returns the substitution'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '$$2$'),
- '$2$',
- 'supports $$, and trailing $'
- );
-
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$&<'),
- '>abcdef<',
- 'supports $&'
- );
-
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$`<'),
- '><',
- 'supports $` at position 0'
- );
- t.equal(
- ES.GetSubstitution('def', 'abcdefghi', 3, [], '>$`<'),
- '>ab<',
- 'supports $` at position > 0'
- );
-
- t.equal(
- ES.GetSubstitution('def', 'abcdefghi', 7, [], ">$'<"),
- '><',
- "supports $' at a position where there's less than `matched.length` chars left"
- );
- t.equal(
- ES.GetSubstitution('def', 'abcdefghi', 3, [], ">$'<"),
- '>ghi<',
- "supports $' at a position where there's more than `matched.length` chars left"
- );
-
- for (var i = 0; i < 100; i += 1) {
- var captures = [];
- captures[i] = 'test';
- if (i > 0) {
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$' + i + '<'),
- '>undefined<',
- 'supports $' + i + ' with no captures'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$' + i),
- '>undefined',
- 'supports $' + i + ' at the end of the replacement, with no captures'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$' + i + '<'),
- '><',
- 'supports $' + i + ' with a capture at that index'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$' + i),
- '>',
- 'supports $' + i + ' at the end of the replacement, with a capture at that index'
- );
- }
- if (i < 10) {
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$0' + i + '<'),
- i === 0 ? '><' : '>undefined<',
- 'supports $0' + i + ' with no captures'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$0' + i),
- i === 0 ? '>' : '>undefined',
- 'supports $0' + i + ' at the end of the replacement, with no captures'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$0' + i + '<'),
- '><',
- 'supports $0' + i + ' with a capture at that index'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$0' + i),
- '>',
- 'supports $0' + i + ' at the end of the replacement, with a capture at that index'
- );
- }
- }
-
- t.end();
- });
-
- test('SecFromTime', function (t) {
- var now = new Date();
- t.equal(ES.SecFromTime(now.getTime()), now.getUTCSeconds(), 'second from Date timestamp matches getUTCSeconds');
- t.end();
- });
-
- test('MinFromTime', function (t) {
- var now = new Date();
- t.equal(ES.MinFromTime(now.getTime()), now.getUTCMinutes(), 'minute from Date timestamp matches getUTCMinutes');
- t.end();
- });
-
- test('HourFromTime', function (t) {
- var now = new Date();
- t.equal(ES.HourFromTime(now.getTime()), now.getUTCHours(), 'hour from Date timestamp matches getUTCHours');
- t.end();
- });
-
- test('msFromTime', function (t) {
- var now = new Date();
- t.equal(ES.msFromTime(now.getTime()), now.getUTCMilliseconds(), 'ms from Date timestamp matches getUTCMilliseconds');
- t.end();
- });
-
- var msPerSecond = 1e3;
- var msPerMinute = 60 * msPerSecond;
- var msPerHour = 60 * msPerMinute;
- var msPerDay = 24 * msPerHour;
-
- test('Day', function (t) {
- var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5);
- var add = 2.5;
- var later = new Date(time + (add * msPerDay));
-
- t.equal(ES.Day(later.getTime()), ES.Day(time) + Math.floor(add), 'adding 2.5 days worth of ms, gives a Day delta of 2');
- t.end();
- });
-
- test('TimeWithinDay', function (t) {
- var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5);
- var add = 2.5;
- var later = new Date(time + (add * msPerDay));
-
- t.equal(ES.TimeWithinDay(later.getTime()), ES.TimeWithinDay(time) + (0.5 * msPerDay), 'adding 2.5 days worth of ms, gives a TimeWithinDay delta of +0.5');
- t.end();
- });
-
- test('DayFromYear', function (t) {
- t.equal(ES.DayFromYear(2021) - ES.DayFromYear(2020), 366, '2021 is a leap year, has 366 days');
- t.equal(ES.DayFromYear(2020) - ES.DayFromYear(2019), 365, '2020 is not a leap year, has 365 days');
- t.equal(ES.DayFromYear(2019) - ES.DayFromYear(2018), 365, '2019 is not a leap year, has 365 days');
- t.equal(ES.DayFromYear(2018) - ES.DayFromYear(2017), 365, '2018 is not a leap year, has 365 days');
- t.equal(ES.DayFromYear(2017) - ES.DayFromYear(2016), 366, '2017 is a leap year, has 366 days');
-
- t.end();
- });
-
- test('TimeFromYear', function (t) {
- for (var i = 1900; i < 2100; i += 1) {
- t.equal(ES.TimeFromYear(i), Date.UTC(i, 0, 1), 'TimeFromYear matches a Date object’s year: ' + i);
- }
- t.end();
- });
-
- test('YearFromTime', function (t) {
- for (var i = 1900; i < 2100; i += 1) {
- t.equal(ES.YearFromTime(Date.UTC(i, 0, 1)), i, 'YearFromTime matches a Date object’s year on 1/1: ' + i);
- t.equal(ES.YearFromTime(Date.UTC(i, 10, 1)), i, 'YearFromTime matches a Date object’s year on 10/1: ' + i);
- }
- t.end();
- });
-
- test('WeekDay', function (t) {
- var now = new Date();
- var today = now.getUTCDay();
- for (var i = 0; i < 7; i += 1) {
- var weekDay = ES.WeekDay(now.getTime() + (i * msPerDay));
- t.equal(weekDay, (today + i) % 7, i + ' days after today (' + today + '), WeekDay is ' + weekDay);
- }
- t.end();
- });
-
- test('DaysInYear', function (t) {
- t.equal(ES.DaysInYear(2021), 365, '2021 is not a leap year');
- t.equal(ES.DaysInYear(2020), 366, '2020 is a leap year');
- t.equal(ES.DaysInYear(2019), 365, '2019 is not a leap year');
- t.equal(ES.DaysInYear(2018), 365, '2018 is not a leap year');
- t.equal(ES.DaysInYear(2017), 365, '2017 is not a leap year');
- t.equal(ES.DaysInYear(2016), 366, '2016 is a leap year');
-
- t.end();
- });
-
- test('InLeapYear', function (t) {
- t.equal(ES.InLeapYear(Date.UTC(2021, 0, 1)), 0, '2021 is not a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2020, 0, 1)), 1, '2020 is a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2019, 0, 1)), 0, '2019 is not a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2018, 0, 1)), 0, '2018 is not a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2017, 0, 1)), 0, '2017 is not a leap year');
- t.equal(ES.InLeapYear(Date.UTC(2016, 0, 1)), 1, '2016 is a leap year');
-
- t.end();
- });
-
- test('DayWithinYear', function (t) {
- t.equal(ES.DayWithinYear(Date.UTC(2019, 0, 1)), 0, '1/1 is the 1st day');
- t.equal(ES.DayWithinYear(Date.UTC(2019, 11, 31)), 364, '12/31 is the 365th day in a non leap year');
- t.equal(ES.DayWithinYear(Date.UTC(2016, 11, 31)), 365, '12/31 is the 366th day in a leap year');
-
- t.end();
- });
-
- test('MonthFromTime', function (t) {
- t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 1)), 0, 'non-leap: 1/1 gives January');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 31)), 0, 'non-leap: 1/31 gives January');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 1)), 1, 'non-leap: 2/1 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 28)), 1, 'non-leap: 2/28 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 29)), 2, 'non-leap: 2/29 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 1)), 2, 'non-leap: 3/1 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 31)), 2, 'non-leap: 3/31 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 1)), 3, 'non-leap: 4/1 gives April');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 30)), 3, 'non-leap: 4/30 gives April');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 1)), 4, 'non-leap: 5/1 gives May');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 31)), 4, 'non-leap: 5/31 gives May');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 1)), 5, 'non-leap: 6/1 gives June');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 30)), 5, 'non-leap: 6/30 gives June');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 1)), 6, 'non-leap: 7/1 gives July');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 31)), 6, 'non-leap: 7/31 gives July');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 1)), 7, 'non-leap: 8/1 gives August');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 30)), 7, 'non-leap: 8/30 gives August');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 1)), 8, 'non-leap: 9/1 gives September');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 30)), 8, 'non-leap: 9/30 gives September');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 1)), 9, 'non-leap: 10/1 gives October');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 31)), 9, 'non-leap: 10/31 gives October');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 1)), 10, 'non-leap: 11/1 gives November');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 30)), 10, 'non-leap: 11/30 gives November');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 1)), 11, 'non-leap: 12/1 gives December');
- t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 31)), 11, 'non-leap: 12/31 gives December');
-
- t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 1)), 0, 'leap: 1/1 gives January');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 31)), 0, 'leap: 1/31 gives January');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 1)), 1, 'leap: 2/1 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 28)), 1, 'leap: 2/28 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 29)), 1, 'leap: 2/29 gives February');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 1)), 2, 'leap: 3/1 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 31)), 2, 'leap: 3/31 gives March');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 1)), 3, 'leap: 4/1 gives April');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 30)), 3, 'leap: 4/30 gives April');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 1)), 4, 'leap: 5/1 gives May');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 31)), 4, 'leap: 5/31 gives May');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 1)), 5, 'leap: 6/1 gives June');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 30)), 5, 'leap: 6/30 gives June');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 1)), 6, 'leap: 7/1 gives July');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 31)), 6, 'leap: 7/31 gives July');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 1)), 7, 'leap: 8/1 gives August');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 30)), 7, 'leap: 8/30 gives August');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 1)), 8, 'leap: 9/1 gives September');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 30)), 8, 'leap: 9/30 gives September');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 1)), 9, 'leap: 10/1 gives October');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 31)), 9, 'leap: 10/31 gives October');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 1)), 10, 'leap: 11/1 gives November');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 30)), 10, 'leap: 11/30 gives November');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 1)), 11, 'leap: 12/1 gives December');
- t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 31)), 11, 'leap: 12/31 gives December');
- t.end();
- });
-
- test('DateFromTime', function (t) {
- var i;
- for (i = 1; i <= 28; i += 1) {
- t.equal(ES.DateFromTime(Date.UTC(2019, 1, i)), i, '2019.02.' + i + ' is date ' + i);
- }
- for (i = 1; i <= 29; i += 1) {
- t.equal(ES.DateFromTime(Date.UTC(2016, 1, i)), i, '2016.02.' + i + ' is date ' + i);
- }
- for (i = 1; i <= 30; i += 1) {
- t.equal(ES.DateFromTime(Date.UTC(2019, 8, i)), i, '2019.09.' + i + ' is date ' + i);
- }
- for (i = 1; i <= 31; i += 1) {
- t.equal(ES.DateFromTime(Date.UTC(2019, 9, i)), i, '2019.10.' + i + ' is date ' + i);
- }
- t.end();
- });
-
- test('MakeDay', function (t) {
- var day2015 = 16687;
- t.equal(ES.MakeDay(2015, 8, 9), day2015, '2015.09.09 is day 16687');
- var day2016 = day2015 + 366; // 2016 is a leap year
- t.equal(ES.MakeDay(2016, 8, 9), day2016, '2015.09.09 is day 17053');
- var day2017 = day2016 + 365;
- t.equal(ES.MakeDay(2017, 8, 9), day2017, '2017.09.09 is day 17418');
- var day2018 = day2017 + 365;
- t.equal(ES.MakeDay(2018, 8, 9), day2018, '2018.09.09 is day 17783');
- var day2019 = day2018 + 365;
- t.equal(ES.MakeDay(2019, 8, 9), day2019, '2019.09.09 is day 18148');
- t.end();
- });
-
- test('MakeDate', function (t) {
- forEach(v.infinities.concat(NaN), function (nonFiniteNumber) {
- t.ok(is(ES.MakeDate(nonFiniteNumber, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `day`');
- t.ok(is(ES.MakeDate(0, nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `time`');
- });
- t.equal(ES.MakeDate(0, 0), 0, 'zero day and zero time is zero date');
- t.equal(ES.MakeDate(0, 123), 123, 'zero day and nonzero time is a date of the "time"');
- t.equal(ES.MakeDate(1, 0), msPerDay, 'day of 1 and zero time is a date of "ms per day"');
- t.equal(ES.MakeDate(3, 0), 3 * msPerDay, 'day of 3 and zero time is a date of thrice "ms per day"');
- t.equal(ES.MakeDate(1, 123), msPerDay + 123, 'day of 1 and nonzero time is a date of "ms per day" plus the "time"');
- t.equal(ES.MakeDate(3, 123), (3 * msPerDay) + 123, 'day of 3 and nonzero time is a date of thrice "ms per day" plus the "time"');
-
- t.end();
- });
-
- test('MakeTime', function (t) {
- forEach(v.infinities.concat(NaN), function (nonFiniteNumber) {
- t.ok(is(ES.MakeTime(nonFiniteNumber, 0, 0, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `hour`');
- t.ok(is(ES.MakeTime(0, nonFiniteNumber, 0, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `min`');
- t.ok(is(ES.MakeTime(0, 0, nonFiniteNumber, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `sec`');
- t.ok(is(ES.MakeTime(0, 0, 0, nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `ms`');
- });
-
- t.equal(
- ES.MakeTime(1.2, 2.3, 3.4, 4.5),
- (1 * msPerHour) + (2 * msPerMinute) + (3 * msPerSecond) + 4,
- 'all numbers are converted to integer, multiplied by the right number of ms, and summed'
- );
-
- t.end();
- });
-
- test('TimeClip', function (t) {
- forEach(v.infinities.concat(NaN), function (nonFiniteNumber) {
- t.ok(is(ES.TimeClip(nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `time`');
- });
- t.ok(is(ES.TimeClip(8.64e15 + 1), NaN), '8.64e15 is the largest magnitude considered "finite"');
- t.ok(is(ES.TimeClip(-8.64e15 - 1), NaN), '-8.64e15 is the largest magnitude considered "finite"');
-
- forEach(v.zeroes.concat([-10, 10, Date.now()]), function (time) {
- t.equal(ES.TimeClip(time), time, debug(time) + ' is a time of ' + debug(time));
- });
-
- t.end();
- });
-
- test('modulo', function (t) {
- t.equal(3 % 2, 1, '+3 % 2 is +1');
- t.equal(ES.modulo(3, 2), 1, '+3 mod 2 is +1');
-
- t.equal(-3 % 2, -1, '-3 % 2 is -1');
- t.equal(ES.modulo(-3, 2), 1, '-3 mod 2 is +1');
- t.end();
- });
-
- test('ToDateString', function (t) {
- forEach(v.nonNumbers, function (nonNumber) {
- t['throws'](
- function () { ES.ToDateString(nonNumber); },
- TypeError,
- debug(nonNumber) + ' is not a Number'
- );
- });
-
- t.equal(ES.ToDateString(NaN), 'Invalid Date', 'NaN becomes "Invalid Date"');
- var now = Date.now();
- t.equal(ES.ToDateString(now), Date(now), 'any timestamp becomes `Date(timestamp)`');
- t.end();
- });
-
- test('CreateListFromArrayLike', function (t) {
- forEach(v.primitives, function (nonObject) {
- t['throws'](
- function () { ES.CreateListFromArrayLike(nonObject); },
- TypeError,
- debug(nonObject) + ' is not an Object'
- );
- });
- forEach(v.nonArrays, function (nonArray) {
- t['throws'](
- function () { ES.CreateListFromArrayLike({}, nonArray); },
- TypeError,
- debug(nonArray) + ' is not an Array'
- );
- });
-
- t.deepEqual(
- ES.CreateListFromArrayLike({ length: 2, 0: 'a', 1: 'b', 2: 'c' }),
- ['a', 'b'],
- 'arraylike stops at the length'
- );
-
- t.end();
- });
-
- test('GetPrototypeFromConstructor', function (t) {
- forEach(v.nonFunctions, function (nonFunction) {
- t['throws'](
- function () { ES.GetPrototypeFromConstructor(nonFunction, '%Array%'); },
- TypeError,
- debug(nonFunction) + ' is not a constructor'
- );
- });
-
- forEach(arrowFns, function (arrowFn) {
- t['throws'](
- function () { ES.GetPrototypeFromConstructor(arrowFn, '%Array%'); },
- TypeError,
- debug(arrowFn) + ' is not a constructor'
- );
- });
-
- var f = function () {};
- t.equal(
- ES.GetPrototypeFromConstructor(f, '%Array.prototype%'),
- f.prototype,
- 'function with normal `prototype` property returns it'
- );
- forEach([true, 'foo', 42], function (truthyPrimitive) {
- f.prototype = truthyPrimitive;
- t.equal(
- ES.GetPrototypeFromConstructor(f, '%Array.prototype%'),
- Array.prototype,
- 'function with non-object `prototype` property (' + debug(truthyPrimitive) + ') returns default intrinsic'
- );
- });
-
- t.end();
- });
-
- var getNamelessFunction = function () {
- var f = Object(function () {});
- try {
- delete f.name;
- } catch (e) { /**/ }
- return f;
- };
-
- test('SetFunctionName', function (t) {
- t.test('non-extensible function', { skip: !Object.preventExtensions }, function (st) {
- var f = getNamelessFunction();
- Object.preventExtensions(f);
- st['throws'](
- function () { ES.SetFunctionName(f, ''); },
- TypeError,
- 'throws on a non-extensible function'
- );
- st.end();
- });
-
- t['throws'](
- function () { ES.SetFunctionName(function g() {}, ''); },
- TypeError,
- 'throws if function has an own `name` property'
- );
-
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- t['throws'](
- function () { ES.SetFunctionName(getNamelessFunction(), nonPropertyKey); },
- TypeError,
- debug(nonPropertyKey) + ' is not a Symbol or String'
- );
- });
-
- t.test('symbols', { skip: !v.hasSymbols || has(getNamelessFunction(), 'name') }, function (st) {
- var pairs = [
- [Symbol(), ''],
- [Symbol(undefined), ''],
- [Symbol(null), '[null]'],
- [Symbol(''), getInferredName ? '[]' : ''],
- [Symbol.iterator, '[Symbol.iterator]'],
- [Symbol('foo'), '[foo]']
- ];
- forEach(pairs, function (pair) {
- var sym = pair[0];
- var desc = pair[1];
- var f = getNamelessFunction();
- ES.SetFunctionName(f, sym);
- st.equal(f.name, desc, debug(sym) + ' yields a name of ' + debug(desc));
- });
-
- st.end();
- });
-
- var f = getNamelessFunction();
- t.test('when names are configurable', { skip: has(f, 'name') }, function (st) {
- // without prefix
- st.notEqual(f.name, 'foo', 'precondition');
- ES.SetFunctionName(f, 'foo');
- st.equal(f.name, 'foo', 'function name is set without a prefix');
-
- // with prefix
- var g = getNamelessFunction();
- st.notEqual(g.name, 'pre- foo', 'precondition');
- ES.SetFunctionName(g, 'foo', 'pre-');
- st.equal(g.name, 'pre- foo', 'function name is set with a prefix');
-
- st.end();
- });
-
- t.end();
- });
-};
-
-var es2016 = function ES2016(ES, ops, expectedMissing, skips) {
- es2015(ES, ops, expectedMissing, skips);
-
- test('SameValueNonNumber', function (t) {
- var willThrow = [
- [3, 4],
- [NaN, 4],
- [4, ''],
- ['abc', true],
- [{}, false]
- ];
- forEach(willThrow, function (nums) {
- t['throws'](function () { return ES.SameValueNonNumber.apply(ES, nums); }, TypeError, 'value must be same type and non-number');
- });
-
- forEach(v.objects.concat(v.nonNumberPrimitives), function (val) {
- t.equal(val === val, ES.SameValueNonNumber(val, val), debug(val) + ' is SameValueNonNumber to itself');
- });
-
- t.end();
- });
-
- test('IterableToArrayLike', { skip: skips && skips.IterableToArrayLike }, function (t) {
- t.test('custom iterables', { skip: !v.hasSymbols }, function (st) {
- var O = {};
- O[Symbol.iterator] = function () {
- var i = -1;
- return {
- next: function () {
- i += 1;
- return {
- done: i >= 5,
- value: i
- };
- }
- };
- };
- st.deepEqual(
- ES.IterableToArrayLike(O),
- [0, 1, 2, 3, 4],
- 'Symbol.iterator method is called and values collected'
- );
-
- st.end();
- });
-
- t.deepEqual(ES.IterableToArrayLike('abc'), ['a', 'b', 'c'], 'a string of code units spreads');
- t.deepEqual(ES.IterableToArrayLike('💩'), ['💩'], 'a string of code points spreads');
- t.deepEqual(ES.IterableToArrayLike('a💩c'), ['a', '💩', 'c'], 'a string of code points and units spreads');
-
- var arr = [1, 2, 3];
- t.deepEqual(ES.IterableToArrayLike(arr), arr, 'an array becomes a similar array');
- t.notEqual(ES.IterableToArrayLike(arr), arr, 'an array becomes a different, but similar, array');
-
- var O = {};
- t.equal(ES.IterableToArrayLike(O), O, 'a non-iterable non-array non-string object is returned directly');
-
- t.end();
- });
-
- test('OrdinaryGetPrototypeOf', function (t) {
- t.equal(ES.OrdinaryGetPrototypeOf([]), Array.prototype, 'array [[Prototype]] is Array.prototype');
- t.equal(ES.OrdinaryGetPrototypeOf({}), Object.prototype, 'object [[Prototype]] is Object.prototype');
- t.equal(ES.OrdinaryGetPrototypeOf(/a/g), RegExp.prototype, 'regex [[Prototype]] is RegExp.prototype');
- t.equal(ES.OrdinaryGetPrototypeOf(Object('')), String.prototype, 'boxed string [[Prototype]] is String.prototype');
- t.equal(ES.OrdinaryGetPrototypeOf(Object(42)), Number.prototype, 'boxed number [[Prototype]] is Number.prototype');
- t.equal(ES.OrdinaryGetPrototypeOf(Object(true)), Boolean.prototype, 'boxed boolean [[Prototype]] is Boolean.prototype');
- if (v.hasSymbols) {
- t.equal(ES.OrdinaryGetPrototypeOf(Object(Symbol.iterator)), Symbol.prototype, 'boxed symbol [[Prototype]] is Symbol.prototype');
- }
-
- forEach(v.primitives, function (primitive) {
- t['throws'](
- function () { ES.OrdinaryGetPrototypeOf(primitive); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
- t.end();
- });
-
- test('OrdinarySetPrototypeOf', function (t) {
- var a = [];
- var proto = {};
-
- t.equal(ES.OrdinaryGetPrototypeOf(a), Array.prototype, 'precondition');
- t.equal(ES.OrdinarySetPrototypeOf(a, proto), true, 'setting prototype is successful');
- t.equal(ES.OrdinaryGetPrototypeOf(a), proto, 'postcondition');
-
- t.end();
- });
-};
-
-var es2017 = function ES2017(ES, ops, expectedMissing, skips) {
- es2016(ES, ops, expectedMissing, assign({}, skips, {
- EnumerableOwnNames: true,
- IterableToArrayLike: true
- }));
-
- test('ToIndex', function (t) {
- t.ok(is(ES.ToIndex(), 0), 'no value gives 0');
- t.ok(is(ES.ToIndex(undefined), 0), 'undefined value gives 0');
-
- t['throws'](function () { ES.ToIndex(-1); }, RangeError, 'negative numbers throw');
-
- t['throws'](function () { ES.ToIndex(MAX_SAFE_INTEGER + 1); }, RangeError, 'too large numbers throw');
-
- t.equal(ES.ToIndex(3), 3, 'numbers work');
- t.equal(ES.ToIndex(v.valueOfOnlyObject), 4, 'coercible objects are coerced');
-
- t.end();
- });
-
- test('EnumerableOwnProperties', { skip: skips && skips.EnumerableOwnProperties }, function (t) {
- var obj = testEnumerableOwnNames(t, function (O) {
- return ES.EnumerableOwnProperties(O, 'key');
- });
-
- t.deepEqual(
- ES.EnumerableOwnProperties(obj, 'value'),
- [obj.own],
- 'returns enumerable own values'
- );
-
- t.deepEqual(
- ES.EnumerableOwnProperties(obj, 'key+value'),
- [['own', obj.own]],
- 'returns enumerable own entries'
- );
-
- t.end();
- });
-
- test('IterableToList', function (t) {
- var customIterator = function () {
- var i = -1;
- return {
- next: function () {
- i += 1;
- return {
- done: i >= 5,
- value: i
- };
- }
- };
- };
-
- t.deepEqual(
- ES.IterableToList({}, customIterator),
- [0, 1, 2, 3, 4],
- 'iterator method is called and values collected'
- );
-
- t.test('Symbol support', { skip: !v.hasSymbols }, function (st) {
- st.deepEqual(ES.IterableToList('abc', String.prototype[Symbol.iterator]), ['a', 'b', 'c'], 'a string of code units spreads');
- st.deepEqual(ES.IterableToList('☃', String.prototype[Symbol.iterator]), ['☃'], 'a string of code points spreads');
-
- var arr = [1, 2, 3];
- st.deepEqual(ES.IterableToList(arr, arr[Symbol.iterator]), arr, 'an array becomes a similar array');
- st.notEqual(ES.IterableToList(arr, arr[Symbol.iterator]), arr, 'an array becomes a different, but similar, array');
-
- st.end();
- });
-
- t['throws'](
- function () { ES.IterableToList({}, void 0); },
- TypeError,
- 'non-function iterator method'
- );
-
- t.end();
- });
-};
-
-var es2018 = function ES2018(ES, ops, expectedMissing, skips) {
- es2017(ES, ops, expectedMissing, assign({}, skips, {
- EnumerableOwnProperties: true,
- GetSubstitution: true,
- IsPropertyDescriptor: true
- }));
-
- test('thisSymbolValue', function (t) {
- forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) {
- t['throws'](
- function () { ES.thisSymbolValue(nonSymbol); },
- v.hasSymbols ? TypeError : SyntaxError,
- debug(nonSymbol) + ' is not a Symbol'
- );
- });
-
- t.test('no native Symbols', { skip: v.hasSymbols }, function (st) {
- forEach(v.objects.concat(v.primitives), function (value) {
- st['throws'](
- function () { ES.thisSymbolValue(value); },
- SyntaxError,
- 'Symbols are not supported'
- );
- });
- st.end();
- });
-
- t.test('symbol values', { skip: !v.hasSymbols }, function (st) {
- forEach(v.symbols, function (symbol) {
- st.equal(ES.thisSymbolValue(symbol), symbol, 'Symbol value of ' + debug(symbol) + ' is same symbol');
-
- st.equal(
- ES.thisSymbolValue(Object(symbol)),
- symbol,
- 'Symbol value of ' + debug(Object(symbol)) + ' is ' + debug(symbol)
- );
- });
-
- st.end();
- });
-
- t.end();
- });
-
- test('IsStringPrefix', function (t) {
- forEach(v.nonStrings, function (nonString) {
- t['throws'](
- function () { ES.IsStringPrefix(nonString, 'a'); },
- TypeError,
- 'first arg: ' + debug(nonString) + ' is not a string'
- );
- t['throws'](
- function () { ES.IsStringPrefix('a', nonString); },
- TypeError,
- 'second arg: ' + debug(nonString) + ' is not a string'
- );
- });
-
- forEach(v.strings, function (string) {
- t.equal(ES.IsStringPrefix(string, string), true, debug(string) + ' is a prefix of itself');
-
- t.equal(ES.IsStringPrefix('', string), true, 'the empty string is a prefix of everything');
- });
-
- t.equal(ES.IsStringPrefix('abc', 'abcd'), true, '"abc" is a prefix of "abcd"');
- t.equal(ES.IsStringPrefix('abcd', 'abc'), false, '"abcd" is not a prefix of "abc"');
-
- t.equal(ES.IsStringPrefix('a', 'bc'), false, '"a" is not a prefix of "bc"');
-
- t.end();
- });
-
- test('NumberToString', function (t) {
- forEach(v.nonNumbers, function (nonNumber) {
- t['throws'](
- function () { ES.NumberToString(nonNumber); },
- TypeError,
- debug(nonNumber) + ' is not a Number'
- );
- });
-
- forEach(v.numbers, function (number) {
- t.equal(ES.NumberToString(number), String(number), debug(number) + ' stringifies to ' + number);
- });
-
- t.end();
- });
-
- test('CopyDataProperties', function (t) {
- t.test('first argument: target', function (st) {
- forEach(v.primitives, function (primitive) {
- st['throws'](
- function () { ES.CopyDataProperties(primitive, {}, []); },
- TypeError,
- debug(primitive) + ' is not an Object'
- );
- });
- st.end();
- });
-
- t.test('second argument: source', function (st) {
- var frozenTarget = Object.freeze ? Object.freeze({}) : {};
- forEach(v.nullPrimitives, function (nullish) {
- st.equal(
- ES.CopyDataProperties(frozenTarget, nullish, []),
- frozenTarget,
- debug(nullish) + ' "source" yields identical, unmodified target'
- );
- });
-
- forEach(v.nonNullPrimitives, function (objectCoercible) {
- var target = {};
- var result = ES.CopyDataProperties(target, objectCoercible, []);
- st.equal(result, target, 'result === target');
- st.deepEqual(keys(result), keys(Object(objectCoercible)), 'target ends up with keys of ' + debug(objectCoercible));
- });
-
- st.end();
- });
-
- t.test('third argument: excludedItems', function (st) {
- forEach(v.objects.concat(v.primitives), function (nonArray) {
- st['throws'](
- function () { ES.CopyDataProperties({}, {}, nonArray); },
- TypeError,
- debug(nonArray) + ' is not an Array'
- );
- });
-
- forEach(v.nonPropertyKeys, function (nonPropertyKey) {
- st['throws'](
- function () { ES.CopyDataProperties({}, {}, [nonPropertyKey]); },
- TypeError,
- debug(nonPropertyKey) + ' is not a Property Key'
- );
- });
-
- var result = ES.CopyDataProperties({}, { a: 1, b: 2, c: 3 }, ['b']);
- st.deepEqual(keys(result), ['a', 'c'], 'excluded string keys are excluded');
-
- st.test('excluding symbols', { skip: !v.hasSymbols }, function (s2t) {
- var source = {};
- forEach(v.symbols, function (symbol) {
- source[symbol] = true;
- });
-
- var includedSymbols = v.symbols.slice(1);
- var excludedSymbols = v.symbols.slice(0, 1);
- var target = ES.CopyDataProperties({}, source, excludedSymbols);
-
- forEach(includedSymbols, function (symbol) {
- s2t.equal(has(target, symbol), true, debug(symbol) + ' is included');
- });
-
- forEach(excludedSymbols, function (symbol) {
- s2t.equal(has(target, symbol), false, debug(symbol) + ' is excluded');
- });
-
- s2t.end();
- });
-
- st.end();
- });
-
- t.end();
- });
-
- test('PromiseResolve', function (t) {
- t.test('Promises unsupported', { skip: typeof Promise === 'function' }, function (st) {
- st['throws'](
- function () { ES.PromiseResolve(); },
- SyntaxError,
- 'Promises are not supported'
- );
- st.end();
- });
-
- t.test('Promises supported', { skip: typeof Promise !== 'function' }, function (st) {
- st.plan(2);
-
- var a = {};
- var b = {};
- var fulfilled = Promise.resolve(a);
- var rejected = Promise.reject(b);
-
- ES.PromiseResolve(Promise, fulfilled).then(function (x) {
- st.equal(x, a, 'fulfilled promise resolves to fulfilled');
- });
-
- ES.PromiseResolve(Promise, rejected)['catch'](function (e) {
- st.equal(e, b, 'rejected promise resolves to rejected');
- });
- });
-
- t.end();
- });
-
- test('EnumerableOwnPropertyNames', { skip: skips && skips.EnumerableOwnPropertyNames }, function (t) {
- var obj = testEnumerableOwnNames(t, function (O) {
- return ES.EnumerableOwnPropertyNames(O, 'key');
- });
-
- t.deepEqual(
- ES.EnumerableOwnPropertyNames(obj, 'value'),
- [obj.own],
- 'returns enumerable own values'
- );
-
- t.deepEqual(
- ES.EnumerableOwnPropertyNames(obj, 'key+value'),
- [['own', obj.own]],
- 'returns enumerable own entries'
- );
-
- t.end();
- });
-
- test('IsPromise', { skip: typeof Promise !== 'function' }, function (t) {
- forEach(v.objects.concat(v.primitives), function (nonPromise) {
- t.equal(ES.IsPromise(nonPromise), false, debug(nonPromise) + ' is not a Promise');
- });
-
- var thenable = { then: Promise.prototype.then };
- t.equal(ES.IsPromise(thenable), false, 'generic thenable is not a Promise');
-
- t.equal(ES.IsPromise(Promise.resolve()), true, 'Promise is a Promise');
-
- t.end();
- });
-
- test('GetSubstitution (ES2018+)', function (t) {
- forEach(v.nonStrings, function (nonString) {
- t['throws'](
- function () { ES.GetSubstitution(nonString, '', 0, [], undefined, ''); },
- TypeError,
- '`matched`: ' + debug(nonString) + ' is not a String'
- );
-
- t['throws'](
- function () { ES.GetSubstitution('', nonString, 0, [], undefined, ''); },
- TypeError,
- '`str`: ' + debug(nonString) + ' is not a String'
- );
-
- t['throws'](
- function () { ES.GetSubstitution('', '', 0, [], undefined, nonString); },
- TypeError,
- '`replacement`: ' + debug(nonString) + ' is not a String'
- );
-
- t['throws'](
- function () { ES.GetSubstitution('', '', 0, [nonString], undefined, ''); },
- TypeError,
- '`captures`: ' + debug([nonString]) + ' is not an Array of strings'
- );
- });
-
- forEach(v.nonIntegerNumbers.concat([-1, -42, -Infinity]), function (nonNonNegativeInteger) {
- t['throws'](
- function () { ES.GetSubstitution('', '', nonNonNegativeInteger, [], undefined, ''); },
- TypeError,
- '`position`: ' + debug(nonNonNegativeInteger) + ' is not a non-negative integer'
- );
- });
-
- forEach(v.nonArrays, function (nonArray) {
- t['throws'](
- function () { ES.GetSubstitution('', '', 0, nonArray, undefined, ''); },
- TypeError,
- '`captures`: ' + debug(nonArray) + ' is not an Array'
- );
- });
-
- t.equal(
- ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, '123'),
- '123',
- 'returns the substitution'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '$$2$'),
- '$2$',
- 'supports $$, and trailing $'
- );
-
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$&<'),
- '>abcdef<',
- 'supports $&'
- );
-
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$`<'),
- '><',
- 'supports $` at position 0'
- );
- t.equal(
- ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, '>$`<'),
- '>ab<',
- 'supports $` at position > 0'
- );
-
- t.equal(
- ES.GetSubstitution('def', 'abcdefghi', 7, [], undefined, ">$'<"),
- '><',
- "supports $' at a position where there's less than `matched.length` chars left"
- );
- t.equal(
- ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, ">$'<"),
- '>ghi<',
- "supports $' at a position where there's more than `matched.length` chars left"
- );
-
- for (var i = 0; i < 100; i += 1) {
- var captures = [];
- captures[i] = 'test';
- if (i > 0) {
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$' + i + '<'),
- '>undefined<',
- 'supports $' + i + ' with no captures'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$' + i),
- '>undefined',
- 'supports $' + i + ' at the end of the replacement, with no captures'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$' + i + '<'),
- '><',
- 'supports $' + i + ' with a capture at that index'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$' + i),
- '>',
- 'supports $' + i + ' at the end of the replacement, with a capture at that index'
- );
- }
- if (i < 10) {
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$0' + i + '<'),
- i === 0 ? '><' : '>undefined<',
- 'supports $0' + i + ' with no captures'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$0' + i),
- i === 0 ? '>' : '>undefined',
- 'supports $0' + i + ' at the end of the replacement, with no captures'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$0' + i + '<'),
- '><',
- 'supports $0' + i + ' with a capture at that index'
- );
- t.equal(
- ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$0' + i),
- '>',
- 'supports $0' + i + ' at the end of the replacement, with a capture at that index'
- );
- }
- }
-
- t.end();
- });
-
- test('DateString', function (t) {
- forEach(v.nonNumbers.concat(NaN), function (nonNumberOrNaN) {
- t['throws'](
- function () { ES.DateString(nonNumberOrNaN); },
- TypeError,
- debug(nonNumberOrNaN) + ' is not a non-NaN Number'
- );
- });
-
- t.equal(ES.DateString(Date.UTC(2019, 8, 10, 7, 8, 9)), 'Tue Sep 10 2019');
- t.equal(ES.DateString(Date.UTC(2016, 1, 29, 7, 8, 9)), 'Mon Feb 29 2016'); // leap day
- t.end();
- });
-
- test('TimeString', function (t) {
- forEach(v.nonNumbers.concat(NaN), function (nonNumberOrNaN) {
- t['throws'](
- function () { ES.TimeString(nonNumberOrNaN); },
- TypeError,
- debug(nonNumberOrNaN) + ' is not a non-NaN Number'
- );
- });
-
- var tv = Date.UTC(2019, 8, 10, 7, 8, 9);
- t.equal(ES.TimeString(tv), '07:08:09 GMT');
- t.end();
- });
-};
-
-var es2019 = function ES2018(ES, ops, expectedMissing, skips) {
- es2018(ES, ops, expectedMissing, assign({}, skips, {
- }));
-
- test('AddEntriesFromIterable', function (t) {
- t['throws'](
- function () { ES.AddEntriesFromIterable({}, undefined, function () {}); },
- TypeError,
- 'iterable must not be undefined'
- );
- t['throws'](
- function () { ES.AddEntriesFromIterable({}, null, function () {}); },
- TypeError,
- 'iterable must not be null'
- );
- forEach(v.nonFunctions, function (nonFunction) {
- t['throws'](
- function () { ES.AddEntriesFromIterable({}, {}, nonFunction); },
- TypeError,
- debug(nonFunction) + ' is not a function'
- );
- });
-
- t.test('Symbol support', { skip: !v.hasSymbols }, function (st) {
- st.plan(4);
-
- var O = {};
- st.equal(ES.AddEntriesFromIterable(O, [], function () {}), O, 'returns the target');
-
- var adder = function (key, value) {
- st.equal(this, O, 'adder gets proper receiver');
- st.equal(key, 0, 'k is key');
- st.equal(value, 'a', 'v is value');
- };
- ES.AddEntriesFromIterable(O, ['a'].entries(), adder);
-
- st.end();
- });
-
- t.end();
- });
-
- test('FlattenIntoArray', function (t) {
- t.test('no mapper function', function (st) {
- var testDepth = function testDepth(tt, depth, expected) {
- var a = [];
- var o = [[1], 2, , [[3]], [], 4, [[[[5]]]]]; // eslint-disable-line no-sparse-arrays
- ES.FlattenIntoArray(a, o, o.length, 0, depth);
- tt.deepEqual(a, expected, 'depth: ' + depth);
- };
-
- testDepth(st, 1, [1, 2, [3], 4, [[[5]]]]);
- testDepth(st, 2, [1, 2, 3, 4, [[5]]]);
- testDepth(st, 3, [1, 2, 3, 4, [5]]);
- testDepth(st, 4, [1, 2, 3, 4, 5]);
- testDepth(st, Infinity, [1, 2, 3, 4, 5]);
- st.end();
- });
-
- t.test('mapper function', function (st) {
- var testMapper = function testMapper(tt, mapper, expected, thisArg) {
- var a = [];
- var o = [[1], 2, , [[3]], [], 4, [[[[5]]]]]; // eslint-disable-line no-sparse-arrays
- ES.FlattenIntoArray(a, o, o.length, 0, 1, mapper, thisArg);
- tt.deepEqual(a, expected);
- };
-
- var double = function double(x) {
- return typeof x === 'number' ? 2 * x : x;
- };
- testMapper(
- st,
- double,
- [1, 4, [3], 8, [[[5]]]]
- );
- testMapper(
- st,
- function (x) { return [this, double(x)]; },
- [42, [1], 42, 4, 42, [[3]], 42, [], 42, 8, 42, [[[[5]]]]],
- 42
- );
- st.end();
- });
-
- t.end();
- });
-
- test('TrimString', function (t) {
- t.test('non-object string', function (st) {
- forEach(v.nullPrimitives, function (nullish) {
- st['throws'](
- function () { ES.TrimString(nullish); },
- debug(nullish) + ' is not an Object'
- );
- });
- st.end();
- });
-
- var string = ' \n abc \n ';
- t.equal(ES.TrimString(string, 'start'), string.slice(string.indexOf('a')));
- t.equal(ES.TrimString(string, 'end'), string.slice(0, string.lastIndexOf('c') + 1));
- t.equal(ES.TrimString(string, 'start+end'), string.slice(string.indexOf('a'), string.lastIndexOf('c') + 1));
-
- t.end();
- });
-};
-
-module.exports = {
- es2015: es2015,
- es2016: es2016,
- es2017: es2017,
- es2018: es2018,
- es2019: es2019
-};
diff --git a/node_modules/es-to-primitive/.eslintrc b/node_modules/es-to-primitive/.eslintrc
deleted file mode 100644
index b6639b9..0000000
--- a/node_modules/es-to-primitive/.eslintrc
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "complexity": [2, 14],
- "func-name-matching": 0,
- "id-length": [2, { "min": 1, "max": 24, "properties": "never" }],
- "max-statements": [2, 20],
- "new-cap": [2, { "capIsNewExceptions": ["GetMethod"] }]
- },
-
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "max-lines-per-function": [2, { "max": 68 }],
- },
- }
- ],
-}
diff --git a/node_modules/es-to-primitive/.github/FUNDING.yml b/node_modules/es-to-primitive/.github/FUNDING.yml
deleted file mode 100644
index 9f928ae..0000000
--- a/node_modules/es-to-primitive/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/es-to-primitive
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/es-to-primitive/.travis.yml b/node_modules/es-to-primitive/.travis.yml
deleted file mode 100644
index d4c5a84..0000000
--- a/node_modules/es-to-primitive/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: ~> 1.0
-language: node_js
-cache:
- directories:
- - "$(nvm cache dir)"
-os:
- - linux
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
- - ljharb/travis-ci:node/coverage.yml
-matrix:
- allow_failures:
- - env: COVERAGE=true
diff --git a/node_modules/es-to-primitive/CHANGELOG.md b/node_modules/es-to-primitive/CHANGELOG.md
deleted file mode 100644
index 0a5dda7..0000000
--- a/node_modules/es-to-primitive/CHANGELOG.md
+++ /dev/null
@@ -1,49 +0,0 @@
-1.2.1 / 2019-11-08
-=================
- * [readme] remove testling URLs
- * [meta] add `funding` field
- * [meta] create FUNDING.yml
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `replace`, `semver`, `tape`, `function.prototype.name`
- * [Tests] use shared travis-ci configs
- * [Tests] Add es5 tests for `symbol` types (#45)
- * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
- * [Tests] remove `jscs`
-
-1.2.0 / 2018-09-27
-=================
- * [New] create ES2015 entry point/property, to replace ES6
- * [Fix] Ensure optional arguments are not part of the length (#29)
- * [Deps] update `is-callable`
- * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`, `object-inspect`, `replace`
- * [Tests] avoid util.inspect bug with `new Date(NaN)` on node v6.0 and v6.1.
- * [Tests] up to `node` `v10.11`, `v9.11`, `v8.12`, `v6.14`, `v4.9`
-
-1.1.1 / 2016-01-03
-=================
- * [Fix: ES5] fix coercion logic: ES5’s ToPrimitive does not coerce any primitive value, regardless of hint (#2)
-
-1.1.0 / 2015-12-27
-=================
- * [New] add `Symbol.toPrimitive` support
- * [Deps] update `is-callable`, `is-date-object`
- * [Dev Deps] update `eslint`, `tape`, `semver`, `jscs`, `covert`, `nsp`, `@ljharb/eslint-config`
- * [Dev Deps] remove unused deps
- * [Tests] up to `node` `v5.3`
- * [Tests] fix npm upgrades on older node versions
- * [Tests] fix testling
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
-
-1.0.1 / 2016-01-03
-=================
- * [Fix: ES5] fix coercion logic: ES5’s ToPrimitive does not coerce any primitive value, regardless of hint (#2)
- * [Deps] update `is-callable`, `is-date-object`
- * [Dev Deps] update `eslint`, `tape`, `semver`, `jscs`, `covert`, `nsp`, `@ljharb/eslint-config`
- * [Dev Deps] remove unused deps
- * [Tests] up to `node` `v5.3`
- * [Tests] fix npm upgrades on older node versions
- * [Tests] fix testling
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
-
-1.0.0 / 2015-03-19
-=================
- * Initial release.
diff --git a/node_modules/es-to-primitive/LICENSE b/node_modules/es-to-primitive/LICENSE
deleted file mode 100644
index b43df44..0000000
--- a/node_modules/es-to-primitive/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Jordan Harband
-
-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.
-
diff --git a/node_modules/es-to-primitive/Makefile b/node_modules/es-to-primitive/Makefile
deleted file mode 100644
index b9e4fe1..0000000
--- a/node_modules/es-to-primitive/Makefile
+++ /dev/null
@@ -1,61 +0,0 @@
-# Since we rely on paths relative to the makefile location, abort if make isn't being run from there.
-$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in))
-
- # The files that need updating when incrementing the version number.
-VERSIONED_FILES := *.js *.json README*
-
-
-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
-# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
-export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH")
-UTILS := semver
-# Make sure that all required utilities can be located.
-UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS)))
-
-# Default target (by virtue of being the first non '.'-prefixed in the file).
-.PHONY: _no-target-specified
-_no-target-specified:
- $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests)
-
-# Lists all targets defined in this makefile.
-.PHONY: list
-list:
- @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort
-
-# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS).
-.PHONY: test
-test:
- @npm test
-
-.PHONY: _ensure-tag
-_ensure-tag:
-ifndef TAG
- $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number)
-endif
-
-CHANGELOG_ERROR = $(error No CHANGELOG specified)
-.PHONY: _ensure-changelog
-_ensure-changelog:
- @ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2)
-
-# Ensures that the git workspace is clean.
-.PHONY: _ensure-clean
-_ensure-clean:
- @[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; }
-
-# Makes a release; invoke with `make TAG= release`.
-.PHONY: release
-release: _ensure-tag _ensure-changelog _ensure-clean
- @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
- new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
- if printf "$$new_ver" | command grep -q '^[0-9]'; then \
- semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \
- semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \
- else \
- new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
- fi; \
- printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \
- replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \
- git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \
- git tag -a -m "v$$new_ver" "v$$new_ver"
diff --git a/node_modules/es-to-primitive/README.md b/node_modules/es-to-primitive/README.md
deleted file mode 100644
index 5ce322b..0000000
--- a/node_modules/es-to-primitive/README.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# es-to-primitive [![Version Badge][npm-version-svg]][package-url]
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-ECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions.
-When different versions of the spec conflict, the default export will be the latest version of the abstract operation.
-Alternative versions will also be available under an `es5`/`es2015` exported property if you require a specific version.
-
-## Example
-
-```js
-var toPrimitive = require('es-to-primitive');
-var assert = require('assert');
-
-assert(toPrimitive(function () {}) === String(function () {}));
-
-var date = new Date();
-assert(toPrimitive(date) === String(date));
-
-assert(toPrimitive({ valueOf: function () { return 3; } }) === 3);
-
-assert(toPrimitive(['a', 'b', 3]) === String(['a', 'b', 3]));
-
-var sym = Symbol();
-assert(toPrimitive(Object(sym)) === sym);
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/es-to-primitive
-[npm-version-svg]: http://versionbadg.es/ljharb/es-to-primitive.svg
-[travis-svg]: https://travis-ci.org/ljharb/es-to-primitive.svg
-[travis-url]: https://travis-ci.org/ljharb/es-to-primitive
-[deps-svg]: https://david-dm.org/ljharb/es-to-primitive.svg
-[deps-url]: https://david-dm.org/ljharb/es-to-primitive
-[dev-deps-svg]: https://david-dm.org/ljharb/es-to-primitive/dev-status.svg
-[dev-deps-url]: https://david-dm.org/ljharb/es-to-primitive#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/es-to-primitive.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/es-to-primitive.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/es-to-primitive.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=es-to-primitive
diff --git a/node_modules/es-to-primitive/es2015.js b/node_modules/es-to-primitive/es2015.js
deleted file mode 100644
index 4a11a34..0000000
--- a/node_modules/es-to-primitive/es2015.js
+++ /dev/null
@@ -1,75 +0,0 @@
-'use strict';
-
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
-
-var isPrimitive = require('./helpers/isPrimitive');
-var isCallable = require('is-callable');
-var isDate = require('is-date-object');
-var isSymbol = require('is-symbol');
-
-var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {
- if (typeof O === 'undefined' || O === null) {
- throw new TypeError('Cannot call method on ' + O);
- }
- if (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {
- throw new TypeError('hint must be "string" or "number"');
- }
- var methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];
- var method, result, i;
- for (i = 0; i < methodNames.length; ++i) {
- method = O[methodNames[i]];
- if (isCallable(method)) {
- result = method.call(O);
- if (isPrimitive(result)) {
- return result;
- }
- }
- }
- throw new TypeError('No default value');
-};
-
-var GetMethod = function GetMethod(O, P) {
- var func = O[P];
- if (func !== null && typeof func !== 'undefined') {
- if (!isCallable(func)) {
- throw new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');
- }
- return func;
- }
- return void 0;
-};
-
-// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive
-module.exports = function ToPrimitive(input) {
- if (isPrimitive(input)) {
- return input;
- }
- var hint = 'default';
- if (arguments.length > 1) {
- if (arguments[1] === String) {
- hint = 'string';
- } else if (arguments[1] === Number) {
- hint = 'number';
- }
- }
-
- var exoticToPrim;
- if (hasSymbols) {
- if (Symbol.toPrimitive) {
- exoticToPrim = GetMethod(input, Symbol.toPrimitive);
- } else if (isSymbol(input)) {
- exoticToPrim = Symbol.prototype.valueOf;
- }
- }
- if (typeof exoticToPrim !== 'undefined') {
- var result = exoticToPrim.call(input, hint);
- if (isPrimitive(result)) {
- return result;
- }
- throw new TypeError('unable to convert exotic object to primitive');
- }
- if (hint === 'default' && (isDate(input) || isSymbol(input))) {
- hint = 'string';
- }
- return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);
-};
diff --git a/node_modules/es-to-primitive/es5.js b/node_modules/es-to-primitive/es5.js
deleted file mode 100644
index 602aa36..0000000
--- a/node_modules/es-to-primitive/es5.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-var toStr = Object.prototype.toString;
-
-var isPrimitive = require('./helpers/isPrimitive');
-
-var isCallable = require('is-callable');
-
-// http://ecma-international.org/ecma-262/5.1/#sec-8.12.8
-var ES5internalSlots = {
- '[[DefaultValue]]': function (O) {
- var actualHint;
- if (arguments.length > 1) {
- actualHint = arguments[1];
- } else {
- actualHint = toStr.call(O) === '[object Date]' ? String : Number;
- }
-
- if (actualHint === String || actualHint === Number) {
- var methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];
- var value, i;
- for (i = 0; i < methods.length; ++i) {
- if (isCallable(O[methods[i]])) {
- value = O[methods[i]]();
- if (isPrimitive(value)) {
- return value;
- }
- }
- }
- throw new TypeError('No default value');
- }
- throw new TypeError('invalid [[DefaultValue]] hint supplied');
- }
-};
-
-// http://ecma-international.org/ecma-262/5.1/#sec-9.1
-module.exports = function ToPrimitive(input) {
- if (isPrimitive(input)) {
- return input;
- }
- if (arguments.length > 1) {
- return ES5internalSlots['[[DefaultValue]]'](input, arguments[1]);
- }
- return ES5internalSlots['[[DefaultValue]]'](input);
-};
diff --git a/node_modules/es-to-primitive/es6.js b/node_modules/es-to-primitive/es6.js
deleted file mode 100644
index 2d1f4dc..0000000
--- a/node_modules/es-to-primitive/es6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-module.exports = require('./es2015');
diff --git a/node_modules/es-to-primitive/helpers/isPrimitive.js b/node_modules/es-to-primitive/helpers/isPrimitive.js
deleted file mode 100644
index 06f0bf0..0000000
--- a/node_modules/es-to-primitive/helpers/isPrimitive.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = function isPrimitive(value) {
- return value === null || (typeof value !== 'function' && typeof value !== 'object');
-};
diff --git a/node_modules/es-to-primitive/index.js b/node_modules/es-to-primitive/index.js
deleted file mode 100644
index e60d912..0000000
--- a/node_modules/es-to-primitive/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var ES5 = require('./es5');
-var ES6 = require('./es6');
-var ES2015 = require('./es2015');
-
-if (Object.defineProperty) {
- Object.defineProperty(ES2015, 'ES5', { enumerable: false, value: ES5 });
- Object.defineProperty(ES2015, 'ES6', { enumerable: false, value: ES6 });
- Object.defineProperty(ES2015, 'ES2015', { enumerable: false, value: ES2015 });
-} else {
- ES6.ES5 = ES5;
- ES6.ES6 = ES6;
- ES6.ES2015 = ES2015;
-}
-
-module.exports = ES2015;
diff --git a/node_modules/es-to-primitive/package.json b/node_modules/es-to-primitive/package.json
deleted file mode 100644
index 0bed372..0000000
--- a/node_modules/es-to-primitive/package.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "_from": "es-to-primitive@^1.2.1",
- "_id": "es-to-primitive@1.2.1",
- "_inBundle": false,
- "_integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "_location": "/es-to-primitive",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es-to-primitive@^1.2.1",
- "name": "es-to-primitive",
- "escapedName": "es-to-primitive",
- "rawSpec": "^1.2.1",
- "saveSpec": null,
- "fetchSpec": "^1.2.1"
- },
- "_requiredBy": [
- "/es-abstract"
- ],
- "_resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "_shasum": "e55cd4c9cdc188bcefb03b366c736323fc5c898a",
- "_spec": "es-to-primitive@^1.2.1",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/es-abstract",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/ljharb/es-to-primitive/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
- "deprecated": false,
- "description": "ECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions.",
- "devDependencies": {
- "@ljharb/eslint-config": "^15.0.0",
- "covert": "^1.1.1",
- "eslint": "^6.6.0",
- "foreach": "^2.0.5",
- "function.prototype.name": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-inspect": "^1.6.0",
- "object-is": "^1.0.1",
- "replace": "^1.1.1",
- "semver": "^6.3.0",
- "tape": "^4.11.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "homepage": "https://github.com/ljharb/es-to-primitive#readme",
- "keywords": [
- "primitive",
- "abstract",
- "ecmascript",
- "es5",
- "es6",
- "es2015",
- "toPrimitive",
- "coerce",
- "type",
- "object",
- "string",
- "number",
- "boolean",
- "symbol",
- "null",
- "undefined"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "es-to-primitive",
- "repository": {
- "type": "git",
- "url": "git://github.com/ljharb/es-to-primitive.git"
- },
- "scripts": {
- "coverage": "covert test/*.js",
- "coverage-quiet": "covert test/*.js --quiet",
- "lint": "eslint .",
- "posttest": "npx aud",
- "pretest": "npm run --silent lint",
- "test": "npm run --silent tests-only",
- "tests-only": "node --es-staging test"
- },
- "testling": {
- "files": "test",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "version": "1.2.1"
-}
diff --git a/node_modules/es-to-primitive/test/es2015.js b/node_modules/es-to-primitive/test/es2015.js
deleted file mode 100644
index 80f4083..0000000
--- a/node_modules/es-to-primitive/test/es2015.js
+++ /dev/null
@@ -1,151 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var toPrimitive = require('../es2015');
-var is = require('object-is');
-var forEach = require('foreach');
-var functionName = require('function.prototype.name');
-var debug = require('object-inspect');
-
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
-var hasSymbolToPrimitive = hasSymbols && typeof Symbol.toPrimitive === 'symbol';
-
-test('function properties', function (t) {
- t.equal(toPrimitive.length, 1, 'length is 1');
- t.equal(functionName(toPrimitive), 'ToPrimitive', 'name is ToPrimitive');
-
- t.end();
-});
-
-var primitives = [null, undefined, true, false, 0, -0, 42, NaN, Infinity, -Infinity, '', 'abc'];
-
-test('primitives', function (t) {
- forEach(primitives, function (i) {
- t.ok(is(toPrimitive(i), i), 'toPrimitive(' + debug(i) + ') returns the same value');
- t.ok(is(toPrimitive(i, String), i), 'toPrimitive(' + debug(i) + ', String) returns the same value');
- t.ok(is(toPrimitive(i, Number), i), 'toPrimitive(' + debug(i) + ', Number) returns the same value');
- });
- t.end();
-});
-
-test('Symbols', { skip: !hasSymbols }, function (t) {
- var symbols = [
- Symbol('foo'),
- Symbol.iterator,
- Symbol['for']('foo') // eslint-disable-line no-restricted-properties
- ];
- forEach(symbols, function (sym) {
- t.equal(toPrimitive(sym), sym, 'toPrimitive(' + debug(sym) + ') returns the same value');
- t.equal(toPrimitive(sym, String), sym, 'toPrimitive(' + debug(sym) + ', String) returns the same value');
- t.equal(toPrimitive(sym, Number), sym, 'toPrimitive(' + debug(sym) + ', Number) returns the same value');
- });
-
- var primitiveSym = Symbol('primitiveSym');
- var objectSym = Object(primitiveSym);
- t.equal(toPrimitive(objectSym), primitiveSym, 'toPrimitive(' + debug(objectSym) + ') returns ' + debug(primitiveSym));
- t.equal(toPrimitive(objectSym, String), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', String) returns ' + debug(primitiveSym));
- t.equal(toPrimitive(objectSym, Number), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', Number) returns ' + debug(primitiveSym));
- t.end();
-});
-
-test('Arrays', function (t) {
- var arrays = [[], ['a', 'b'], [1, 2]];
- forEach(arrays, function (arr) {
- t.equal(toPrimitive(arr), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array');
- t.equal(toPrimitive(arr, String), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array');
- t.equal(toPrimitive(arr, Number), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array');
- });
- t.end();
-});
-
-test('Dates', function (t) {
- var dates = [new Date(), new Date(0), new Date(NaN)];
- forEach(dates, function (date) {
- t.equal(toPrimitive(date), String(date), 'toPrimitive(' + debug(date) + ') returns the string version of the date');
- t.equal(toPrimitive(date, String), String(date), 'toPrimitive(' + debug(date) + ') returns the string version of the date');
- t.ok(is(toPrimitive(date, Number), Number(date)), 'toPrimitive(' + debug(date) + ') returns the number version of the date');
- });
- t.end();
-});
-
-var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } };
-var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } };
-var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } };
-var coercibleFnObject = {
- valueOf: function () { return function valueOfFn() {}; },
- toString: function () { return 42; }
-};
-var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } };
-var uncoercibleFnObject = {
- valueOf: function () { return function valueOfFn() {}; },
- toString: function () { return function toStrFn() {}; }
-};
-
-test('Objects', function (t) {
- t.equal(toPrimitive(coercibleObject), coercibleObject.valueOf(), 'coercibleObject with no hint coerces to valueOf');
- t.equal(toPrimitive(coercibleObject, Number), coercibleObject.valueOf(), 'coercibleObject with hint Number coerces to valueOf');
- t.equal(toPrimitive(coercibleObject, String), coercibleObject.toString(), 'coercibleObject with hint String coerces to non-stringified toString');
-
- t.equal(toPrimitive(coercibleFnObject), coercibleFnObject.toString(), 'coercibleFnObject coerces to non-stringified toString');
- t.equal(toPrimitive(coercibleFnObject, Number), coercibleFnObject.toString(), 'coercibleFnObject with hint Number coerces to non-stringified toString');
- t.equal(toPrimitive(coercibleFnObject, String), coercibleFnObject.toString(), 'coercibleFnObject with hint String coerces to non-stringified toString');
-
- t.equal(toPrimitive({}), '[object Object]', '{} with no hint coerces to Object#toString');
- t.equal(toPrimitive({}, Number), '[object Object]', '{} with hint Number coerces to Object#toString');
- t.equal(toPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString');
-
- t.equal(toPrimitive(toStringOnlyObject), toStringOnlyObject.toString(), 'toStringOnlyObject returns non-stringified toString');
- t.equal(toPrimitive(toStringOnlyObject, Number), toStringOnlyObject.toString(), 'toStringOnlyObject with hint Number returns non-stringified toString');
- t.equal(toPrimitive(toStringOnlyObject, String), toStringOnlyObject.toString(), 'toStringOnlyObject with hint String returns non-stringified toString');
-
- t.equal(toPrimitive(valueOfOnlyObject), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject returns valueOf');
- t.equal(toPrimitive(valueOfOnlyObject, Number), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint Number returns valueOf');
- t.equal(toPrimitive(valueOfOnlyObject, String), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint String returns non-stringified valueOf');
-
- t.test('Symbol.toPrimitive', { skip: !hasSymbolToPrimitive }, function (st) {
- var overriddenObject = { toString: st.fail, valueOf: st.fail };
- overriddenObject[Symbol.toPrimitive] = function (hint) { return String(hint); };
-
- st.equal(toPrimitive(overriddenObject), 'default', 'object with Symbol.toPrimitive + no hint invokes that');
- st.equal(toPrimitive(overriddenObject, Number), 'number', 'object with Symbol.toPrimitive + hint Number invokes that');
- st.equal(toPrimitive(overriddenObject, String), 'string', 'object with Symbol.toPrimitive + hint String invokes that');
-
- var nullToPrimitive = { toString: coercibleObject.toString, valueOf: coercibleObject.valueOf };
- nullToPrimitive[Symbol.toPrimitive] = null;
- st.equal(toPrimitive(nullToPrimitive), toPrimitive(coercibleObject), 'object with no hint + null Symbol.toPrimitive ignores it');
- st.equal(toPrimitive(nullToPrimitive, Number), toPrimitive(coercibleObject, Number), 'object with hint Number + null Symbol.toPrimitive ignores it');
- st.equal(toPrimitive(nullToPrimitive, String), toPrimitive(coercibleObject, String), 'object with hint String + null Symbol.toPrimitive ignores it');
-
- st.test('exceptions', function (sst) {
- var nonFunctionToPrimitive = { toString: sst.fail, valueOf: sst.fail };
- nonFunctionToPrimitive[Symbol.toPrimitive] = {};
- sst['throws'](toPrimitive.bind(null, nonFunctionToPrimitive), TypeError, 'Symbol.toPrimitive returning a non-function throws');
-
- var uncoercibleToPrimitive = { toString: sst.fail, valueOf: sst.fail };
- uncoercibleToPrimitive[Symbol.toPrimitive] = function (hint) {
- return { toString: function () { return hint; } };
- };
- sst['throws'](toPrimitive.bind(null, uncoercibleToPrimitive), TypeError, 'Symbol.toPrimitive returning an object throws');
-
- var throwingToPrimitive = { toString: sst.fail, valueOf: sst.fail };
- throwingToPrimitive[Symbol.toPrimitive] = function (hint) { throw new RangeError(hint); };
- sst['throws'](toPrimitive.bind(null, throwingToPrimitive), RangeError, 'Symbol.toPrimitive throwing throws');
-
- sst.end();
- });
-
- st.end();
- });
-
- t.test('exceptions', function (st) {
- st['throws'](toPrimitive.bind(null, uncoercibleObject), TypeError, 'uncoercibleObject throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleObject, Number), TypeError, 'uncoercibleObject with hint Number throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleObject, String), TypeError, 'uncoercibleObject with hint String throws a TypeError');
-
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject), TypeError, 'uncoercibleFnObject throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject, Number), TypeError, 'uncoercibleFnObject with hint Number throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject, String), TypeError, 'uncoercibleFnObject with hint String throws a TypeError');
- st.end();
- });
- t.end();
-});
diff --git a/node_modules/es-to-primitive/test/es5.js b/node_modules/es-to-primitive/test/es5.js
deleted file mode 100644
index 79444b0..0000000
--- a/node_modules/es-to-primitive/test/es5.js
+++ /dev/null
@@ -1,118 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var toPrimitive = require('../es5');
-var is = require('object-is');
-var forEach = require('foreach');
-var functionName = require('function.prototype.name');
-var debug = require('object-inspect');
-var hasSymbols = require('has-symbols')();
-
-test('function properties', function (t) {
- t.equal(toPrimitive.length, 1, 'length is 1');
- t.equal(functionName(toPrimitive), 'ToPrimitive', 'name is ToPrimitive');
-
- t.end();
-});
-
-var primitives = [null, undefined, true, false, 0, -0, 42, NaN, Infinity, -Infinity, '', 'abc'];
-
-test('primitives', function (t) {
- forEach(primitives, function (i) {
- t.ok(is(toPrimitive(i), i), 'toPrimitive(' + debug(i) + ') returns the same value');
- t.ok(is(toPrimitive(i, String), i), 'toPrimitive(' + debug(i) + ', String) returns the same value');
- t.ok(is(toPrimitive(i, Number), i), 'toPrimitive(' + debug(i) + ', Number) returns the same value');
- });
- t.end();
-});
-
-test('Symbols', { skip: !hasSymbols }, function (t) {
- var symbols = [
- Symbol('foo'),
- Symbol.iterator,
- Symbol['for']('foo') // eslint-disable-line no-restricted-properties
- ];
- forEach(symbols, function (sym) {
- t.equal(toPrimitive(sym), sym, 'toPrimitive(' + debug(sym) + ') returns the same value');
- t.equal(toPrimitive(sym, String), sym, 'toPrimitive(' + debug(sym) + ', String) returns the same value');
- t.equal(toPrimitive(sym, Number), sym, 'toPrimitive(' + debug(sym) + ', Number) returns the same value');
- });
-
- var primitiveSym = Symbol('primitiveSym');
- var stringSym = Symbol.prototype.toString.call(primitiveSym);
- var objectSym = Object(primitiveSym);
- t.equal(toPrimitive(objectSym), primitiveSym, 'toPrimitive(' + debug(objectSym) + ') returns ' + debug(primitiveSym));
-
- // This is different from ES2015, as the ES5 algorithm doesn't account for the existence of Symbols:
- t.equal(toPrimitive(objectSym, String), stringSym, 'toPrimitive(' + debug(objectSym) + ', String) returns ' + debug(stringSym));
- t.equal(toPrimitive(objectSym, Number), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', Number) returns ' + debug(primitiveSym));
- t.end();
-});
-
-test('Arrays', function (t) {
- var arrays = [[], ['a', 'b'], [1, 2]];
- forEach(arrays, function (arr) {
- t.ok(is(toPrimitive(arr), arr.toString()), 'toPrimitive(' + debug(arr) + ') returns toString of the array');
- t.equal(toPrimitive(arr, String), arr.toString(), 'toPrimitive(' + debug(arr) + ') returns toString of the array');
- t.ok(is(toPrimitive(arr, Number), arr.toString()), 'toPrimitive(' + debug(arr) + ') returns toString of the array');
- });
- t.end();
-});
-
-test('Dates', function (t) {
- var dates = [new Date(), new Date(0), new Date(NaN)];
- forEach(dates, function (date) {
- t.equal(toPrimitive(date), date.toString(), 'toPrimitive(' + debug(date) + ') returns toString of the date');
- t.equal(toPrimitive(date, String), date.toString(), 'toPrimitive(' + debug(date) + ') returns toString of the date');
- t.ok(is(toPrimitive(date, Number), date.valueOf()), 'toPrimitive(' + debug(date) + ') returns valueOf of the date');
- });
- t.end();
-});
-
-var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } };
-var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } };
-var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } };
-var coercibleFnObject = {
- valueOf: function () { return function valueOfFn() {}; },
- toString: function () { return 42; }
-};
-var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } };
-var uncoercibleFnObject = {
- valueOf: function () { return function valueOfFn() {}; },
- toString: function () { return function toStrFn() {}; }
-};
-
-test('Objects', function (t) {
- t.equal(toPrimitive(coercibleObject), coercibleObject.valueOf(), 'coercibleObject with no hint coerces to valueOf');
- t.equal(toPrimitive(coercibleObject, String), coercibleObject.toString(), 'coercibleObject with hint String coerces to toString');
- t.equal(toPrimitive(coercibleObject, Number), coercibleObject.valueOf(), 'coercibleObject with hint Number coerces to valueOf');
-
- t.equal(toPrimitive(coercibleFnObject), coercibleFnObject.toString(), 'coercibleFnObject coerces to toString');
- t.equal(toPrimitive(coercibleFnObject, String), coercibleFnObject.toString(), 'coercibleFnObject with hint String coerces to toString');
- t.equal(toPrimitive(coercibleFnObject, Number), coercibleFnObject.toString(), 'coercibleFnObject with hint Number coerces to toString');
-
- t.ok(is(toPrimitive({}), '[object Object]'), '{} with no hint coerces to Object#toString');
- t.equal(toPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString');
- t.ok(is(toPrimitive({}, Number), '[object Object]'), '{} with hint Number coerces to Object#toString');
-
- t.equal(toPrimitive(toStringOnlyObject), toStringOnlyObject.toString(), 'toStringOnlyObject returns toString');
- t.equal(toPrimitive(toStringOnlyObject, String), toStringOnlyObject.toString(), 'toStringOnlyObject with hint String returns toString');
- t.equal(toPrimitive(toStringOnlyObject, Number), toStringOnlyObject.toString(), 'toStringOnlyObject with hint Number returns toString');
-
- t.equal(toPrimitive(valueOfOnlyObject), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject returns valueOf');
- t.equal(toPrimitive(valueOfOnlyObject, String), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint String returns valueOf');
- t.equal(toPrimitive(valueOfOnlyObject, Number), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint Number returns valueOf');
-
- t.test('exceptions', function (st) {
- st['throws'](toPrimitive.bind(null, uncoercibleObject), TypeError, 'uncoercibleObject throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleObject, String), TypeError, 'uncoercibleObject with hint String throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleObject, Number), TypeError, 'uncoercibleObject with hint Number throws a TypeError');
-
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject), TypeError, 'uncoercibleFnObject throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject, String), TypeError, 'uncoercibleFnObject with hint String throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject, Number), TypeError, 'uncoercibleFnObject with hint Number throws a TypeError');
- st.end();
- });
-
- t.end();
-});
diff --git a/node_modules/es-to-primitive/test/es6.js b/node_modules/es-to-primitive/test/es6.js
deleted file mode 100644
index 16ea0e8..0000000
--- a/node_modules/es-to-primitive/test/es6.js
+++ /dev/null
@@ -1,151 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var toPrimitive = require('../es6');
-var is = require('object-is');
-var forEach = require('foreach');
-var functionName = require('function.prototype.name');
-var debug = require('object-inspect');
-
-var hasSymbols = require('has-symbols')();
-var hasSymbolToPrimitive = hasSymbols && typeof Symbol.toPrimitive === 'symbol';
-
-test('function properties', function (t) {
- t.equal(toPrimitive.length, 1, 'length is 1');
- t.equal(functionName(toPrimitive), 'ToPrimitive', 'name is ToPrimitive');
-
- t.end();
-});
-
-var primitives = [null, undefined, true, false, 0, -0, 42, NaN, Infinity, -Infinity, '', 'abc'];
-
-test('primitives', function (t) {
- forEach(primitives, function (i) {
- t.ok(is(toPrimitive(i), i), 'toPrimitive(' + debug(i) + ') returns the same value');
- t.ok(is(toPrimitive(i, String), i), 'toPrimitive(' + debug(i) + ', String) returns the same value');
- t.ok(is(toPrimitive(i, Number), i), 'toPrimitive(' + debug(i) + ', Number) returns the same value');
- });
- t.end();
-});
-
-test('Symbols', { skip: !hasSymbols }, function (t) {
- var symbols = [
- Symbol('foo'),
- Symbol.iterator,
- Symbol['for']('foo') // eslint-disable-line no-restricted-properties
- ];
- forEach(symbols, function (sym) {
- t.equal(toPrimitive(sym), sym, 'toPrimitive(' + debug(sym) + ') returns the same value');
- t.equal(toPrimitive(sym, String), sym, 'toPrimitive(' + debug(sym) + ', String) returns the same value');
- t.equal(toPrimitive(sym, Number), sym, 'toPrimitive(' + debug(sym) + ', Number) returns the same value');
- });
-
- var primitiveSym = Symbol('primitiveSym');
- var objectSym = Object(primitiveSym);
- t.equal(toPrimitive(objectSym), primitiveSym, 'toPrimitive(' + debug(objectSym) + ') returns ' + debug(primitiveSym));
- t.equal(toPrimitive(objectSym, String), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', String) returns ' + debug(primitiveSym));
- t.equal(toPrimitive(objectSym, Number), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', Number) returns ' + debug(primitiveSym));
- t.end();
-});
-
-test('Arrays', function (t) {
- var arrays = [[], ['a', 'b'], [1, 2]];
- forEach(arrays, function (arr) {
- t.equal(toPrimitive(arr), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array');
- t.equal(toPrimitive(arr, String), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array');
- t.equal(toPrimitive(arr, Number), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array');
- });
- t.end();
-});
-
-test('Dates', function (t) {
- var dates = [new Date(), new Date(0), new Date(NaN)];
- forEach(dates, function (date) {
- t.equal(toPrimitive(date), String(date), 'toPrimitive(' + debug(date) + ') returns the string version of the date');
- t.equal(toPrimitive(date, String), String(date), 'toPrimitive(' + debug(date) + ') returns the string version of the date');
- t.ok(is(toPrimitive(date, Number), Number(date)), 'toPrimitive(' + debug(date) + ') returns the number version of the date');
- });
- t.end();
-});
-
-var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } };
-var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } };
-var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } };
-var coercibleFnObject = {
- valueOf: function () { return function valueOfFn() {}; },
- toString: function () { return 42; }
-};
-var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } };
-var uncoercibleFnObject = {
- valueOf: function () { return function valueOfFn() {}; },
- toString: function () { return function toStrFn() {}; }
-};
-
-test('Objects', function (t) {
- t.equal(toPrimitive(coercibleObject), coercibleObject.valueOf(), 'coercibleObject with no hint coerces to valueOf');
- t.equal(toPrimitive(coercibleObject, Number), coercibleObject.valueOf(), 'coercibleObject with hint Number coerces to valueOf');
- t.equal(toPrimitive(coercibleObject, String), coercibleObject.toString(), 'coercibleObject with hint String coerces to non-stringified toString');
-
- t.equal(toPrimitive(coercibleFnObject), coercibleFnObject.toString(), 'coercibleFnObject coerces to non-stringified toString');
- t.equal(toPrimitive(coercibleFnObject, Number), coercibleFnObject.toString(), 'coercibleFnObject with hint Number coerces to non-stringified toString');
- t.equal(toPrimitive(coercibleFnObject, String), coercibleFnObject.toString(), 'coercibleFnObject with hint String coerces to non-stringified toString');
-
- t.equal(toPrimitive({}), '[object Object]', '{} with no hint coerces to Object#toString');
- t.equal(toPrimitive({}, Number), '[object Object]', '{} with hint Number coerces to Object#toString');
- t.equal(toPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString');
-
- t.equal(toPrimitive(toStringOnlyObject), toStringOnlyObject.toString(), 'toStringOnlyObject returns non-stringified toString');
- t.equal(toPrimitive(toStringOnlyObject, Number), toStringOnlyObject.toString(), 'toStringOnlyObject with hint Number returns non-stringified toString');
- t.equal(toPrimitive(toStringOnlyObject, String), toStringOnlyObject.toString(), 'toStringOnlyObject with hint String returns non-stringified toString');
-
- t.equal(toPrimitive(valueOfOnlyObject), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject returns valueOf');
- t.equal(toPrimitive(valueOfOnlyObject, Number), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint Number returns valueOf');
- t.equal(toPrimitive(valueOfOnlyObject, String), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint String returns non-stringified valueOf');
-
- t.test('Symbol.toPrimitive', { skip: !hasSymbolToPrimitive }, function (st) {
- var overriddenObject = { toString: st.fail, valueOf: st.fail };
- overriddenObject[Symbol.toPrimitive] = function (hint) { return String(hint); };
-
- st.equal(toPrimitive(overriddenObject), 'default', 'object with Symbol.toPrimitive + no hint invokes that');
- st.equal(toPrimitive(overriddenObject, Number), 'number', 'object with Symbol.toPrimitive + hint Number invokes that');
- st.equal(toPrimitive(overriddenObject, String), 'string', 'object with Symbol.toPrimitive + hint String invokes that');
-
- var nullToPrimitive = { toString: coercibleObject.toString, valueOf: coercibleObject.valueOf };
- nullToPrimitive[Symbol.toPrimitive] = null;
- st.equal(toPrimitive(nullToPrimitive), toPrimitive(coercibleObject), 'object with no hint + null Symbol.toPrimitive ignores it');
- st.equal(toPrimitive(nullToPrimitive, Number), toPrimitive(coercibleObject, Number), 'object with hint Number + null Symbol.toPrimitive ignores it');
- st.equal(toPrimitive(nullToPrimitive, String), toPrimitive(coercibleObject, String), 'object with hint String + null Symbol.toPrimitive ignores it');
-
- st.test('exceptions', function (sst) {
- var nonFunctionToPrimitive = { toString: sst.fail, valueOf: sst.fail };
- nonFunctionToPrimitive[Symbol.toPrimitive] = {};
- sst['throws'](toPrimitive.bind(null, nonFunctionToPrimitive), TypeError, 'Symbol.toPrimitive returning a non-function throws');
-
- var uncoercibleToPrimitive = { toString: sst.fail, valueOf: sst.fail };
- uncoercibleToPrimitive[Symbol.toPrimitive] = function (hint) {
- return { toString: function () { return hint; } };
- };
- sst['throws'](toPrimitive.bind(null, uncoercibleToPrimitive), TypeError, 'Symbol.toPrimitive returning an object throws');
-
- var throwingToPrimitive = { toString: sst.fail, valueOf: sst.fail };
- throwingToPrimitive[Symbol.toPrimitive] = function (hint) { throw new RangeError(hint); };
- sst['throws'](toPrimitive.bind(null, throwingToPrimitive), RangeError, 'Symbol.toPrimitive throwing throws');
-
- sst.end();
- });
-
- st.end();
- });
-
- t.test('exceptions', function (st) {
- st['throws'](toPrimitive.bind(null, uncoercibleObject), TypeError, 'uncoercibleObject throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleObject, Number), TypeError, 'uncoercibleObject with hint Number throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleObject, String), TypeError, 'uncoercibleObject with hint String throws a TypeError');
-
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject), TypeError, 'uncoercibleFnObject throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject, Number), TypeError, 'uncoercibleFnObject with hint Number throws a TypeError');
- st['throws'](toPrimitive.bind(null, uncoercibleFnObject, String), TypeError, 'uncoercibleFnObject with hint String throws a TypeError');
- st.end();
- });
- t.end();
-});
diff --git a/node_modules/es-to-primitive/test/index.js b/node_modules/es-to-primitive/test/index.js
deleted file mode 100644
index ad71f39..0000000
--- a/node_modules/es-to-primitive/test/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var toPrimitive = require('../');
-var ES5 = require('../es5');
-var ES6 = require('../es6');
-var ES2015 = require('../es2015');
-
-var test = require('tape');
-
-test('default export', function (t) {
- t.equal(toPrimitive, ES2015, 'default export is ES2015');
- t.equal(toPrimitive.ES5, ES5, 'ES5 property has ES5 method');
- t.equal(toPrimitive.ES6, ES6, 'ES6 property has ES6 method');
- t.equal(toPrimitive.ES2015, ES2015, 'ES2015 property has ES2015 method');
- t.end();
-});
-
-require('./es5');
-require('./es6');
-require('./es2015');
diff --git a/node_modules/events/.travis.yml b/node_modules/events/.travis.yml
deleted file mode 100644
index 54d7e04..0000000
--- a/node_modules/events/.travis.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-sudo: false
-language: node_js
-node_js:
- - '0.10'
-script:
- - npm test
- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then npm run test:browsers; fi
-env:
- global:
- - secure: XcBiD8yReflut9q7leKsigDZ0mI3qTKH+QrNVY8DaqlomJOZw8aOrVuX9Jz12l86ZJ41nbxmKnRNkFzcVr9mbP9YaeTb3DpeOBWmvaoSfud9Wnc16VfXtc1FCcwDhSVcSiM3UtnrmFU5cH+Dw1LPh5PbfylYOS/nJxUvG0FFLqI=
- - secure: jNWtEbqhUdQ0xXDHvCYfUbKYeJCi6a7B4LsrcxYCyWWn4NIgncE5x2YbB+FSUUFVYfz0dsn5RKP1oHB99f0laUEo18HBNkrAS/rtyOdVzcpJjbQ6kgSILGjnJD/Ty1B57Rcz3iyev5Y7bLZ6Y1FbDnk/i9/l0faOGz8vTC3Vdkc=
diff --git a/node_modules/events/.zuul.yml b/node_modules/events/.zuul.yml
deleted file mode 100644
index 216b335..0000000
--- a/node_modules/events/.zuul.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-ui: mocha-qunit
-concurrency: 1
-browsers:
- - name: chrome
- version: latest
- - name: firefox
- version: latest
- - name: safari
- version: 7..latest
- - name: iphone
- version: latest
- - name: ie
- version: 8..latest
diff --git a/node_modules/events/History.md b/node_modules/events/History.md
deleted file mode 100644
index aa9af52..0000000
--- a/node_modules/events/History.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2.1.0 (2018-05-25)
-
- - add Emitter#rawListeners from Node.js v9.4
-
-# 2.0.0 (2018-02-02)
-
- - Update to events code from node.js 8.x
- - Adds `prependListener()` and `prependOnceListener()`
- - Adds `eventNames()` method
- - (semver major) Unwrap `once()` listeners in `listeners()`
- - copy tests from node.js
-
-Note that this version doubles the gzipped size, jumping from 1.1KB to 2.1KB,
-due to new methods and runtime performance improvements. Be aware of that when
-upgrading.
-
-# 1.1.1 (2016-06-22)
-
- - add more context to errors if they are not instanceof Error
-
-# 1.1.0 (2015-09-29)
-
- - add Emitter#listerCount (to match node v4 api)
-
-# 1.0.2 (2014-08-28)
-
- - remove un-reachable code
- - update devDeps
-
-## 1.0.1 / 2014-05-11
-
- - check for console.trace before using it
-
-## 1.0.0 / 2013-12-10
-
- - Update to latest events code from node.js 0.10
- - copy tests from node.js
-
-## 0.4.0 / 2011-07-03 ##
-
- - Switching to graphquire@0.8.0
-
-## 0.3.0 / 2011-07-03 ##
-
- - Switching to URL based module require.
-
-## 0.2.0 / 2011-06-10 ##
-
- - Simplified package structure.
- - Graphquire for dependency management.
-
-## 0.1.1 / 2011-05-16 ##
-
- - Unhandled errors are logged via console.error
-
-## 0.1.0 / 2011-04-22 ##
-
- - Initial release
diff --git a/node_modules/events/LICENSE b/node_modules/events/LICENSE
deleted file mode 100644
index 52ed3b0..0000000
--- a/node_modules/events/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-MIT
-
-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.
diff --git a/node_modules/events/Readme.md b/node_modules/events/Readme.md
deleted file mode 100644
index 4fae922..0000000
--- a/node_modules/events/Readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Status: [Maintainer Needed](https://github.com/Gozala/events/issues/43)
-
-# events [![Build Status](https://travis-ci.org/Gozala/events.png?branch=master)](https://travis-ci.org/Gozala/events)
-
-Node's event emitter for all engines.
-
-## Install ##
-
-```
-npm install events
-```
-
-## Require ##
-
-```javascript
-var EventEmitter = require('events')
-```
-
-## Usage ##
-
-See the [node.js event emitter docs](http://nodejs.org/api/events.html)
diff --git a/node_modules/events/events.js b/node_modules/events/events.js
deleted file mode 100644
index a17bcba..0000000
--- a/node_modules/events/events.js
+++ /dev/null
@@ -1,523 +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.
-
-var objectCreate = Object.create || objectCreatePolyfill
-var objectKeys = Object.keys || objectKeysPolyfill
-var bind = Function.prototype.bind || functionBindPolyfill
-
-function EventEmitter() {
- if (!this._events || !Object.prototype.hasOwnProperty.call(this, '_events')) {
- this._events = objectCreate(null);
- this._eventsCount = 0;
- }
-
- this._maxListeners = this._maxListeners || undefined;
-}
-module.exports = EventEmitter;
-
-// Backwards-compat with node 0.10.x
-EventEmitter.EventEmitter = EventEmitter;
-
-EventEmitter.prototype._events = undefined;
-EventEmitter.prototype._maxListeners = undefined;
-
-// By default EventEmitters will print a warning if more than 10 listeners are
-// added to it. This is a useful default which helps finding memory leaks.
-var defaultMaxListeners = 10;
-
-var hasDefineProperty;
-try {
- var o = {};
- if (Object.defineProperty) Object.defineProperty(o, 'x', { value: 0 });
- hasDefineProperty = o.x === 0;
-} catch (err) { hasDefineProperty = false }
-if (hasDefineProperty) {
- Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
- enumerable: true,
- get: function() {
- return defaultMaxListeners;
- },
- set: function(arg) {
- // check whether the input is a positive number (whose value is zero or
- // greater and not a NaN).
- if (typeof arg !== 'number' || arg < 0 || arg !== arg)
- throw new TypeError('"defaultMaxListeners" must be a positive number');
- defaultMaxListeners = arg;
- }
- });
-} else {
- EventEmitter.defaultMaxListeners = defaultMaxListeners;
-}
-
-// Obviously not all Emitters should be limited to 10. This function allows
-// that to be increased. Set to zero for unlimited.
-EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
- if (typeof n !== 'number' || n < 0 || isNaN(n))
- throw new TypeError('"n" argument must be a positive number');
- this._maxListeners = n;
- return this;
-};
-
-function $getMaxListeners(that) {
- if (that._maxListeners === undefined)
- return EventEmitter.defaultMaxListeners;
- return that._maxListeners;
-}
-
-EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
- return $getMaxListeners(this);
-};
-
-// These standalone emit* functions are used to optimize calling of event
-// handlers for fast cases because emit() itself often has a variable number of
-// arguments and can be deoptimized because of that. These functions always have
-// the same number of arguments and thus do not get deoptimized, so the code
-// inside them can execute faster.
-function emitNone(handler, isFn, self) {
- if (isFn)
- handler.call(self);
- else {
- var len = handler.length;
- var listeners = arrayClone(handler, len);
- for (var i = 0; i < len; ++i)
- listeners[i].call(self);
- }
-}
-function emitOne(handler, isFn, self, arg1) {
- if (isFn)
- handler.call(self, arg1);
- else {
- var len = handler.length;
- var listeners = arrayClone(handler, len);
- for (var i = 0; i < len; ++i)
- listeners[i].call(self, arg1);
- }
-}
-function emitTwo(handler, isFn, self, arg1, arg2) {
- if (isFn)
- handler.call(self, arg1, arg2);
- else {
- var len = handler.length;
- var listeners = arrayClone(handler, len);
- for (var i = 0; i < len; ++i)
- listeners[i].call(self, arg1, arg2);
- }
-}
-function emitThree(handler, isFn, self, arg1, arg2, arg3) {
- if (isFn)
- handler.call(self, arg1, arg2, arg3);
- else {
- var len = handler.length;
- var listeners = arrayClone(handler, len);
- for (var i = 0; i < len; ++i)
- listeners[i].call(self, arg1, arg2, arg3);
- }
-}
-
-function emitMany(handler, isFn, self, args) {
- if (isFn)
- handler.apply(self, args);
- else {
- var len = handler.length;
- var listeners = arrayClone(handler, len);
- for (var i = 0; i < len; ++i)
- listeners[i].apply(self, args);
- }
-}
-
-EventEmitter.prototype.emit = function emit(type) {
- var er, handler, len, args, i, events;
- var doError = (type === 'error');
-
- events = this._events;
- if (events)
- doError = (doError && events.error == null);
- else if (!doError)
- return false;
-
- // If there is no 'error' event listener then throw.
- if (doError) {
- if (arguments.length > 1)
- er = arguments[1];
- if (er instanceof Error) {
- throw er; // Unhandled 'error' event
- } else {
- // At least give some kind of context to the user
- var err = new Error('Unhandled "error" event. (' + er + ')');
- err.context = er;
- throw err;
- }
- return false;
- }
-
- handler = events[type];
-
- if (!handler)
- return false;
-
- var isFn = typeof handler === 'function';
- len = arguments.length;
- switch (len) {
- // fast cases
- case 1:
- emitNone(handler, isFn, this);
- break;
- case 2:
- emitOne(handler, isFn, this, arguments[1]);
- break;
- case 3:
- emitTwo(handler, isFn, this, arguments[1], arguments[2]);
- break;
- case 4:
- emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);
- break;
- // slower
- default:
- args = new Array(len - 1);
- for (i = 1; i < len; i++)
- args[i - 1] = arguments[i];
- emitMany(handler, isFn, this, args);
- }
-
- return true;
-};
-
-function _addListener(target, type, listener, prepend) {
- var m;
- var events;
- var existing;
-
- if (typeof listener !== 'function')
- throw new TypeError('"listener" argument must be a function');
-
- events = target._events;
- if (!events) {
- events = target._events = objectCreate(null);
- target._eventsCount = 0;
- } else {
- // To avoid recursion in the case that type === "newListener"! Before
- // adding it to the listeners, first emit "newListener".
- if (events.newListener) {
- target.emit('newListener', type,
- listener.listener ? listener.listener : listener);
-
- // Re-assign `events` because a newListener handler could have caused the
- // this._events to be assigned to a new object
- events = target._events;
- }
- existing = events[type];
- }
-
- if (!existing) {
- // Optimize the case of one listener. Don't need the extra array object.
- existing = events[type] = listener;
- ++target._eventsCount;
- } else {
- if (typeof existing === 'function') {
- // Adding the second element, need to change to array.
- existing = events[type] =
- prepend ? [listener, existing] : [existing, listener];
- } else {
- // If we've already got an array, just append.
- if (prepend) {
- existing.unshift(listener);
- } else {
- existing.push(listener);
- }
- }
-
- // Check for listener leak
- if (!existing.warned) {
- m = $getMaxListeners(target);
- if (m && m > 0 && existing.length > m) {
- existing.warned = true;
- var w = new Error('Possible EventEmitter memory leak detected. ' +
- existing.length + ' "' + String(type) + '" listeners ' +
- 'added. Use emitter.setMaxListeners() to ' +
- 'increase limit.');
- w.name = 'MaxListenersExceededWarning';
- w.emitter = target;
- w.type = type;
- w.count = existing.length;
- if (typeof console === 'object' && console.warn) {
- console.warn('%s: %s', w.name, w.message);
- }
- }
- }
- }
-
- return target;
-}
-
-EventEmitter.prototype.addListener = function addListener(type, listener) {
- return _addListener(this, type, listener, false);
-};
-
-EventEmitter.prototype.on = EventEmitter.prototype.addListener;
-
-EventEmitter.prototype.prependListener =
- function prependListener(type, listener) {
- return _addListener(this, type, listener, true);
- };
-
-function onceWrapper() {
- if (!this.fired) {
- this.target.removeListener(this.type, this.wrapFn);
- this.fired = true;
- switch (arguments.length) {
- case 0:
- return this.listener.call(this.target);
- case 1:
- return this.listener.call(this.target, arguments[0]);
- case 2:
- return this.listener.call(this.target, arguments[0], arguments[1]);
- case 3:
- return this.listener.call(this.target, arguments[0], arguments[1],
- arguments[2]);
- default:
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; ++i)
- args[i] = arguments[i];
- this.listener.apply(this.target, args);
- }
- }
-}
-
-function _onceWrap(target, type, listener) {
- var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };
- var wrapped = bind.call(onceWrapper, state);
- wrapped.listener = listener;
- state.wrapFn = wrapped;
- return wrapped;
-}
-
-EventEmitter.prototype.once = function once(type, listener) {
- if (typeof listener !== 'function')
- throw new TypeError('"listener" argument must be a function');
- this.on(type, _onceWrap(this, type, listener));
- return this;
-};
-
-EventEmitter.prototype.prependOnceListener =
- function prependOnceListener(type, listener) {
- if (typeof listener !== 'function')
- throw new TypeError('"listener" argument must be a function');
- this.prependListener(type, _onceWrap(this, type, listener));
- return this;
- };
-
-// Emits a 'removeListener' event if and only if the listener was removed.
-EventEmitter.prototype.removeListener =
- function removeListener(type, listener) {
- var list, events, position, i, originalListener;
-
- if (typeof listener !== 'function')
- throw new TypeError('"listener" argument must be a function');
-
- events = this._events;
- if (!events)
- return this;
-
- list = events[type];
- if (!list)
- return this;
-
- if (list === listener || list.listener === listener) {
- if (--this._eventsCount === 0)
- this._events = objectCreate(null);
- else {
- delete events[type];
- if (events.removeListener)
- this.emit('removeListener', type, list.listener || listener);
- }
- } else if (typeof list !== 'function') {
- position = -1;
-
- for (i = list.length - 1; i >= 0; i--) {
- if (list[i] === listener || list[i].listener === listener) {
- originalListener = list[i].listener;
- position = i;
- break;
- }
- }
-
- if (position < 0)
- return this;
-
- if (position === 0)
- list.shift();
- else
- spliceOne(list, position);
-
- if (list.length === 1)
- events[type] = list[0];
-
- if (events.removeListener)
- this.emit('removeListener', type, originalListener || listener);
- }
-
- return this;
- };
-
-EventEmitter.prototype.removeAllListeners =
- function removeAllListeners(type) {
- var listeners, events, i;
-
- events = this._events;
- if (!events)
- return this;
-
- // not listening for removeListener, no need to emit
- if (!events.removeListener) {
- if (arguments.length === 0) {
- this._events = objectCreate(null);
- this._eventsCount = 0;
- } else if (events[type]) {
- if (--this._eventsCount === 0)
- this._events = objectCreate(null);
- else
- delete events[type];
- }
- return this;
- }
-
- // emit removeListener for all listeners on all events
- if (arguments.length === 0) {
- var keys = objectKeys(events);
- var key;
- for (i = 0; i < keys.length; ++i) {
- key = keys[i];
- if (key === 'removeListener') continue;
- this.removeAllListeners(key);
- }
- this.removeAllListeners('removeListener');
- this._events = objectCreate(null);
- this._eventsCount = 0;
- return this;
- }
-
- listeners = events[type];
-
- if (typeof listeners === 'function') {
- this.removeListener(type, listeners);
- } else if (listeners) {
- // LIFO order
- for (i = listeners.length - 1; i >= 0; i--) {
- this.removeListener(type, listeners[i]);
- }
- }
-
- return this;
- };
-
-function _listeners(target, type, unwrap) {
- var events = target._events;
-
- if (!events)
- return [];
-
- var evlistener = events[type];
- if (!evlistener)
- return [];
-
- if (typeof evlistener === 'function')
- return unwrap ? [evlistener.listener || evlistener] : [evlistener];
-
- return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
-}
-
-EventEmitter.prototype.listeners = function listeners(type) {
- return _listeners(this, type, true);
-};
-
-EventEmitter.prototype.rawListeners = function rawListeners(type) {
- return _listeners(this, type, false);
-};
-
-EventEmitter.listenerCount = function(emitter, type) {
- if (typeof emitter.listenerCount === 'function') {
- return emitter.listenerCount(type);
- } else {
- return listenerCount.call(emitter, type);
- }
-};
-
-EventEmitter.prototype.listenerCount = listenerCount;
-function listenerCount(type) {
- var events = this._events;
-
- if (events) {
- var evlistener = events[type];
-
- if (typeof evlistener === 'function') {
- return 1;
- } else if (evlistener) {
- return evlistener.length;
- }
- }
-
- return 0;
-}
-
-EventEmitter.prototype.eventNames = function eventNames() {
- return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];
-};
-
-// About 1.5x faster than the two-arg version of Array#splice().
-function spliceOne(list, index) {
- for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)
- list[i] = list[k];
- list.pop();
-}
-
-function arrayClone(arr, n) {
- var copy = new Array(n);
- for (var i = 0; i < n; ++i)
- copy[i] = arr[i];
- return copy;
-}
-
-function unwrapListeners(arr) {
- var ret = new Array(arr.length);
- for (var i = 0; i < ret.length; ++i) {
- ret[i] = arr[i].listener || arr[i];
- }
- return ret;
-}
-
-function objectCreatePolyfill(proto) {
- var F = function() {};
- F.prototype = proto;
- return new F;
-}
-function objectKeysPolyfill(obj) {
- var keys = [];
- for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k)) {
- keys.push(k);
- }
- return k;
-}
-function functionBindPolyfill(context) {
- var fn = this;
- return function () {
- return fn.apply(context, arguments);
- };
-}
diff --git a/node_modules/events/package.json b/node_modules/events/package.json
deleted file mode 100644
index c859792..0000000
--- a/node_modules/events/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "events@^2.0.0",
- "_id": "events@2.1.0",
- "_inBundle": false,
- "_integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==",
- "_location": "/events",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "events@^2.0.0",
- "name": "events",
- "escapedName": "events",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/browserify"
- ],
- "_resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz",
- "_shasum": "2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5",
- "_spec": "events@^2.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/browserify",
- "author": {
- "name": "Irakli Gozalishvili",
- "email": "rfobic@gmail.com",
- "url": "http://jeditoolkit.com"
- },
- "bugs": {
- "url": "http://github.com/Gozala/events/issues/"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Node's event emitter for all engines.",
- "devDependencies": {
- "isarray": "^2.0.2",
- "mocha": "^3.5.3",
- "object-keys": "^1.0.11",
- "zuul": "^3.11.1"
- },
- "engines": {
- "node": ">=0.4.x"
- },
- "homepage": "https://github.com/Gozala/events#readme",
- "id": "events",
- "keywords": [
- "events",
- "eventEmitter",
- "eventDispatcher",
- "listeners"
- ],
- "license": "MIT",
- "main": "./events.js",
- "name": "events",
- "repository": {
- "type": "git",
- "url": "git://github.com/Gozala/events.git",
- "web": "https://github.com/Gozala/events"
- },
- "scripts": {
- "test": "mocha --ui qunit -- tests/index.js",
- "test:browsers": "zuul -- tests/index.js"
- },
- "version": "2.1.0"
-}
diff --git a/node_modules/events/tests/add-listeners.js b/node_modules/events/tests/add-listeners.js
deleted file mode 100644
index 6682862..0000000
--- a/node_modules/events/tests/add-listeners.js
+++ /dev/null
@@ -1,111 +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.
-
-var common = require('./common');
-var assert = require('assert');
-var EventEmitter = require('../');
-
-{
- var ee = new EventEmitter();
- var events_new_listener_emitted = [];
- var listeners_new_listener_emitted = [];
-
- // Sanity check
- assert.strictEqual(ee.addListener, ee.on);
-
- ee.on('newListener', function(event, listener) {
- // Don't track newListener listeners.
- if (event === 'newListener')
- return;
-
- events_new_listener_emitted.push(event);
- listeners_new_listener_emitted.push(listener);
- });
-
- var hello = common.mustCall(function(a, b) {
- assert.strictEqual('a', a);
- assert.strictEqual('b', b);
- });
-
- ee.once('newListener', function(name, listener) {
- assert.strictEqual(name, 'hello');
- assert.strictEqual(listener, hello);
-
- var listeners = this.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- });
-
- ee.on('hello', hello);
- ee.once('foo', assert.fail);
-
- assert.ok(Array.isArray(events_new_listener_emitted));
- assert.strictEqual(events_new_listener_emitted.length, 2);
- assert.strictEqual(events_new_listener_emitted[0], 'hello');
- assert.strictEqual(events_new_listener_emitted[1], 'foo');
-
- assert.ok(Array.isArray(listeners_new_listener_emitted));
- assert.strictEqual(listeners_new_listener_emitted.length, 2);
- assert.strictEqual(listeners_new_listener_emitted[0], hello);
- assert.strictEqual(listeners_new_listener_emitted[1], assert.fail);
-
- ee.emit('hello', 'a', 'b');
-}
-
-// just make sure that this doesn't throw:
-{
- var f = new EventEmitter();
-
- f.setMaxListeners(0);
-}
-
-{
- var listen1 = function() {};
- var listen2 = function() {};
- var ee = new EventEmitter();
-
- ee.once('newListener', function() {
- var listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- ee.once('newListener', function() {
- var listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- });
- ee.on('hello', listen2);
- });
- ee.on('hello', listen1);
- // The order of listeners on an event is not always the order in which the
- // listeners were added.
- var listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 2);
- assert.strictEqual(listeners[0], listen2);
- assert.strictEqual(listeners[1], listen1);
-}
-
-// Verify that the listener must be a function
-assert.throws(function() {
- var ee = new EventEmitter();
-
- ee.on('foo', null);
-}, /^TypeError: "listener" argument must be a function$/);
diff --git a/node_modules/events/tests/check-listener-leaks.js b/node_modules/events/tests/check-listener-leaks.js
deleted file mode 100644
index 3cd0aa2..0000000
--- a/node_modules/events/tests/check-listener-leaks.js
+++ /dev/null
@@ -1,93 +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.
-
-var common = require('./common');
-var assert = require('assert');
-var events = require('../');
-
-// default
-{
- var e = new events.EventEmitter();
-
- for (var i = 0; i < 10; i++) {
- e.on('default', common.mustNotCall());
- }
- assert.ok(!e._events['default'].hasOwnProperty('warned'));
- e.on('default', common.mustNotCall());
- assert.ok(e._events['default'].warned);
-
- // specific
- e.setMaxListeners(5);
- for (var i = 0; i < 5; i++) {
- e.on('specific', common.mustNotCall());
- }
- assert.ok(!e._events['specific'].hasOwnProperty('warned'));
- e.on('specific', common.mustNotCall());
- assert.ok(e._events['specific'].warned);
-
- // only one
- e.setMaxListeners(1);
- e.on('only one', common.mustNotCall());
- assert.ok(!e._events['only one'].hasOwnProperty('warned'));
- e.on('only one', common.mustNotCall());
- assert.ok(e._events['only one'].hasOwnProperty('warned'));
-
- // unlimited
- e.setMaxListeners(0);
- for (var i = 0; i < 1000; i++) {
- e.on('unlimited', common.mustNotCall());
- }
- assert.ok(!e._events['unlimited'].hasOwnProperty('warned'));
-}
-
-// process-wide
-{
- events.EventEmitter.defaultMaxListeners = 42;
- var e = new events.EventEmitter();
-
- for (var i = 0; i < 42; ++i) {
- e.on('fortytwo', common.mustNotCall());
- }
- assert.ok(!e._events['fortytwo'].hasOwnProperty('warned'));
- e.on('fortytwo', common.mustNotCall());
- assert.ok(e._events['fortytwo'].hasOwnProperty('warned'));
- delete e._events['fortytwo'].warned;
-
- events.EventEmitter.defaultMaxListeners = 44;
- e.on('fortytwo', common.mustNotCall());
- assert.ok(!e._events['fortytwo'].hasOwnProperty('warned'));
- e.on('fortytwo', common.mustNotCall());
- assert.ok(e._events['fortytwo'].hasOwnProperty('warned'));
-}
-
-// but _maxListeners still has precedence over defaultMaxListeners
-{
- events.EventEmitter.defaultMaxListeners = 42;
- var e = new events.EventEmitter();
- e.setMaxListeners(1);
- e.on('uno', common.mustNotCall());
- assert.ok(!e._events['uno'].hasOwnProperty('warned'));
- e.on('uno', common.mustNotCall());
- assert.ok(e._events['uno'].hasOwnProperty('warned'));
-
- // chainable
- assert.strictEqual(e, e.setMaxListeners(1));
-}
diff --git a/node_modules/events/tests/common.js b/node_modules/events/tests/common.js
deleted file mode 100644
index cdd5aea..0000000
--- a/node_modules/events/tests/common.js
+++ /dev/null
@@ -1,103 +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.
-
-var assert = require('assert');
-
-var noop = function() {};
-
-var mustCallChecks = [];
-
-function runCallChecks(exitCode) {
- if (exitCode !== 0) return;
-
- var failed = filter(mustCallChecks, function(context) {
- if ('minimum' in context) {
- context.messageSegment = 'at least ' + context.minimum;
- return context.actual < context.minimum;
- } else {
- context.messageSegment = 'exactly ' + context.exact;
- return context.actual !== context.exact;
- }
- });
-
- for (var i = 0; i < failed.length; i++) {
- var context = failed[i];
- console.log('Mismatched %s function calls. Expected %s, actual %d.',
- context.name,
- context.messageSegment,
- context.actual);
- // IE8 has no .stack
- if (context.stack) console.log(context.stack.split('\n').slice(2).join('\n'));
- }
-
- assert.strictEqual(failed.length, 0);
-}
-
-exports.mustCall = function(fn, exact) {
- return _mustCallInner(fn, exact, 'exact');
-};
-
-function _mustCallInner(fn, criteria, field) {
- if (typeof criteria == 'undefined') criteria = 1;
-
- if (typeof fn === 'number') {
- criteria = fn;
- fn = noop;
- } else if (fn === undefined) {
- fn = noop;
- }
-
- if (typeof criteria !== 'number')
- throw new TypeError('Invalid ' + field + ' value: ' + criteria);
-
- var context = {
- actual: 0,
- stack: (new Error()).stack,
- name: fn.name || ''
- };
-
- context[field] = criteria;
-
- // add the exit listener only once to avoid listener leak warnings
- if (mustCallChecks.length === 0) after(function() { runCallChecks(0); });
-
- mustCallChecks.push(context);
-
- return function() {
- context.actual++;
- return fn.apply(this, arguments);
- };
-}
-
-exports.mustNotCall = function(msg) {
- return function mustNotCall() {
- assert.fail(msg || 'function should not have been called');
- };
-};
-
-function filter(arr, fn) {
- if (arr.filter) return arr.filter(fn);
- var filtered = [];
- for (var i = 0; i < arr.length; i++) {
- if (fn(arr[i], i, arr)) filtered.push(arr[i]);
- }
- return filtered
-}
diff --git a/node_modules/events/tests/index.js b/node_modules/events/tests/index.js
deleted file mode 100644
index f71bc98..0000000
--- a/node_modules/events/tests/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-
-require('./legacy-compat');
-
-// we do this to easily wrap each file in a mocha test
-// and also have browserify be able to statically analyze this file
-var orig_require = require;
-var require = function(file) {
- test(file, function() {
- orig_require(file);
- });
-};
-
-require('./add-listeners.js');
-require('./check-listener-leaks.js');
-require('./listener-count.js');
-require('./listeners-side-effects.js');
-require('./listeners.js');
-require('./max-listeners.js');
-require('./modify-in-emit.js');
-require('./num-args.js');
-require('./once.js');
-require('./set-max-listeners-side-effects.js');
-require('./subclass.js');
-require('./remove-all-listeners.js');
-require('./remove-listeners.js');
diff --git a/node_modules/events/tests/legacy-compat.js b/node_modules/events/tests/legacy-compat.js
deleted file mode 100644
index a402be6..0000000
--- a/node_modules/events/tests/legacy-compat.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// sigh... life is hard
-if (!global.console) {
- console = {}
-}
-
-var fns = ['log', 'error', 'trace'];
-for (var i=0 ; ifoo should not be emitted');
-}
-
-e.once('foo', remove);
-e.removeListener('foo', remove);
-e.emit('foo');
-
-e.once('e', common.mustCall(function() {
- e.emit('e');
-}));
-
-e.once('e', common.mustCall());
-
-e.emit('e');
-
-// Verify that the listener must be a function
-assert.throws(function() {
- var ee = new EventEmitter();
-
- ee.once('foo', null);
-}, /^TypeError: "listener" argument must be a function$/);
-
-{
- // once() has different code paths based on the number of arguments being
- // emitted. Verify that all of the cases are covered.
- var maxArgs = 4;
-
- for (var i = 0; i <= maxArgs; ++i) {
- var ee = new EventEmitter();
- var args = ['foo'];
-
- for (var j = 0; j < i; ++j)
- args.push(j);
-
- ee.once('foo', common.mustCall(function() {
- var params = Array.prototype.slice.call(arguments);
- var restArgs = args.slice(1);
- assert.ok(Array.isArray(params));
- assert.strictEqual(params.length, restArgs.length);
- for (var index = 0; index < params.length; index++) {
- var param = params[index];
- assert.strictEqual(param, restArgs[index]);
- }
- }));
-
- EventEmitter.prototype.emit.apply(ee, args);
- }
-}
diff --git a/node_modules/events/tests/remove-all-listeners.js b/node_modules/events/tests/remove-all-listeners.js
deleted file mode 100644
index df29998..0000000
--- a/node_modules/events/tests/remove-all-listeners.js
+++ /dev/null
@@ -1,139 +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.
-
-var common = require('./common');
-var assert = require('assert');
-var events = require('../');
-
-var after_checks = [];
-after(function() {
- for (var i = 0 ; i < after_checks.length ; ++i) {
- after_checks[i]();
- }
-});
-
-function expect(expected) {
- var actual = [];
- after_checks.push(function() {
- var sortedActual = actual.sort();
- var sortedExpected = expected.sort();
- assert.strictEqual(sortedActual.length, sortedExpected.length);
- for (var index = 0; index < sortedActual.length; index++) {
- var value = sortedActual[index];
- assert.strictEqual(value, sortedExpected[index]);
- }
- });
- function listener(name) {
- actual.push(name);
- }
- return common.mustCall(listener, expected.length);
-}
-
-{
- var ee = new events.EventEmitter();
- var noop = common.mustNotCall();
- ee.on('foo', noop);
- ee.on('bar', noop);
- ee.on('baz', noop);
- ee.on('baz', noop);
- var fooListeners = ee.listeners('foo');
- var barListeners = ee.listeners('bar');
- var bazListeners = ee.listeners('baz');
- ee.on('removeListener', expect(['bar', 'baz', 'baz']));
- ee.removeAllListeners('bar');
- ee.removeAllListeners('baz');
-
- var listeners = ee.listeners('foo');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 1);
- assert.strictEqual(listeners[0], noop);
-
- listeners = ee.listeners('bar');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- listeners = ee.listeners('baz');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- // After calling removeAllListeners(),
- // the old listeners array should stay unchanged.
- assert.strictEqual(fooListeners.length, 1);
- assert.strictEqual(fooListeners[0], noop);
- assert.strictEqual(barListeners.length, 1);
- assert.strictEqual(barListeners[0], noop);
- assert.strictEqual(bazListeners.length, 2);
- assert.strictEqual(bazListeners[0], noop);
- assert.strictEqual(bazListeners[1], noop);
- // After calling removeAllListeners(),
- // new listeners arrays is different from the old.
- assert.notStrictEqual(ee.listeners('bar'), barListeners);
- assert.notStrictEqual(ee.listeners('baz'), bazListeners);
-}
-
-{
- var ee = new events.EventEmitter();
- ee.on('foo', common.mustNotCall());
- ee.on('bar', common.mustNotCall());
- // Expect LIFO order
- ee.on('removeListener', expect(['foo', 'bar', 'removeListener']));
- ee.on('removeListener', expect(['foo', 'bar']));
- ee.removeAllListeners();
-
- var listeners = ee.listeners('foo');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- listeners = ee.listeners('bar');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
-}
-
-{
- var ee = new events.EventEmitter();
- ee.on('removeListener', common.mustNotCall());
- // Check for regression where removeAllListeners() throws when
- // there exists a 'removeListener' listener, but there exists
- // no listeners for the provided event type.
- assert.doesNotThrow(function () { ee.removeAllListeners(ee, 'foo') });
-}
-
-{
- var ee = new events.EventEmitter();
- var expectLength = 2;
- ee.on('removeListener', function() {
- assert.strictEqual(expectLength--, this.listeners('baz').length);
- });
- ee.on('baz', common.mustNotCall());
- ee.on('baz', common.mustNotCall());
- ee.on('baz', common.mustNotCall());
- assert.strictEqual(ee.listeners('baz').length, expectLength + 1);
- ee.removeAllListeners('baz');
- assert.strictEqual(ee.listeners('baz').length, 0);
-}
-
-{
- var ee = new events.EventEmitter();
- assert.strictEqual(ee, ee.removeAllListeners());
-}
-
-{
- var ee = new events.EventEmitter();
- ee._events = undefined;
- assert.strictEqual(ee, ee.removeAllListeners());
-}
diff --git a/node_modules/events/tests/remove-listeners.js b/node_modules/events/tests/remove-listeners.js
deleted file mode 100644
index 6cccd96..0000000
--- a/node_modules/events/tests/remove-listeners.js
+++ /dev/null
@@ -1,212 +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.
-
-var common = require('./common');
-var assert = require('assert');
-var EventEmitter = require('../');
-
-var listener1 = function listener1() {};
-var listener2 = function listener2() {};
-
-{
- var ee = new EventEmitter();
- ee.on('hello', listener1);
- ee.on('removeListener', common.mustCall(function(name, cb) {
- assert.strictEqual(name, 'hello');
- assert.strictEqual(cb, listener1);
- }));
- ee.removeListener('hello', listener1);
- var listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
-}
-
-{
- var ee = new EventEmitter();
- ee.on('hello', listener1);
- ee.on('removeListener', common.mustNotCall());
- ee.removeListener('hello', listener2);
-
- var listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 1);
- assert.strictEqual(listeners[0], listener1);
-}
-
-{
- var ee = new EventEmitter();
- ee.on('hello', listener1);
- ee.on('hello', listener2);
-
- var listeners;
- ee.once('removeListener', common.mustCall(function(name, cb) {
- assert.strictEqual(name, 'hello');
- assert.strictEqual(cb, listener1);
- listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 1);
- assert.strictEqual(listeners[0], listener2);
- }));
- ee.removeListener('hello', listener1);
- listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 1);
- assert.strictEqual(listeners[0], listener2);
- ee.once('removeListener', common.mustCall(function(name, cb) {
- assert.strictEqual(name, 'hello');
- assert.strictEqual(cb, listener2);
- listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- }));
- ee.removeListener('hello', listener2);
- listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
-}
-
-{
- var ee = new EventEmitter();
-
- function remove1() {
- assert.fail('remove1 should not have been called');
- }
-
- function remove2() {
- assert.fail('remove2 should not have been called');
- }
-
- ee.on('removeListener', common.mustCall(function(name, cb) {
- if (cb !== remove1) return;
- this.removeListener('quux', remove2);
- this.emit('quux');
- }, 2));
- ee.on('quux', remove1);
- ee.on('quux', remove2);
- ee.removeListener('quux', remove1);
-}
-
-{
- var ee = new EventEmitter();
- ee.on('hello', listener1);
- ee.on('hello', listener2);
-
- var listeners;
- ee.once('removeListener', common.mustCall(function(name, cb) {
- assert.strictEqual(name, 'hello');
- assert.strictEqual(cb, listener1);
- listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 1);
- assert.strictEqual(listeners[0], listener2);
- ee.once('removeListener', common.mustCall(function(name, cb) {
- assert.strictEqual(name, 'hello');
- assert.strictEqual(cb, listener2);
- listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- }));
- ee.removeListener('hello', listener2);
- listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
- }));
- ee.removeListener('hello', listener1);
- listeners = ee.listeners('hello');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 0);
-}
-
-{
- var ee = new EventEmitter();
- var listener3 = common.mustCall(function() {
- ee.removeListener('hello', listener4);
- }, 2);
- var listener4 = common.mustCall();
-
- ee.on('hello', listener3);
- ee.on('hello', listener4);
-
- // listener4 will still be called although it is removed by listener 3.
- ee.emit('hello');
- // This is so because the interal listener array at time of emit
- // was [listener3,listener4]
-
- // Interal listener array [listener3]
- ee.emit('hello');
-}
-
-{
- var ee = new EventEmitter();
-
- ee.once('hello', listener1);
- ee.on('removeListener', common.mustCall(function(eventName, listener) {
- assert.strictEqual(eventName, 'hello');
- assert.strictEqual(listener, listener1);
- }));
- ee.emit('hello');
-}
-
-{
- var ee = new EventEmitter();
-
- assert.strictEqual(ee, ee.removeListener('foo', function() {}));
-}
-
-// Verify that the removed listener must be a function
-assert.throws(function() {
- var ee = new EventEmitter();
-
- ee.removeListener('foo', null);
-}, /^TypeError: "listener" argument must be a function$/);
-
-{
- var ee = new EventEmitter();
- var listener = function() {};
- ee._events = undefined;
- var e = ee.removeListener('foo', listener);
- assert.strictEqual(e, ee);
-}
-
-{
- var ee = new EventEmitter();
-
- ee.on('foo', listener1);
- ee.on('foo', listener2);
- var listeners = ee.listeners('foo');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 2);
- assert.strictEqual(listeners[0], listener1);
- assert.strictEqual(listeners[1], listener2);
-
- ee.removeListener('foo', listener1);
- assert.strictEqual(ee._events.foo, listener2);
-
- ee.on('foo', listener1);
- listeners = ee.listeners('foo');
- assert.ok(Array.isArray(listeners));
- assert.strictEqual(listeners.length, 2);
- assert.strictEqual(listeners[0], listener2);
- assert.strictEqual(listeners[1], listener1);
-
- ee.removeListener('foo', listener1);
- assert.strictEqual(ee._events.foo, listener2);
-}
diff --git a/node_modules/events/tests/set-max-listeners-side-effects.js b/node_modules/events/tests/set-max-listeners-side-effects.js
deleted file mode 100644
index 99471db..0000000
--- a/node_modules/events/tests/set-max-listeners-side-effects.js
+++ /dev/null
@@ -1,32 +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.
-
-require('./common');
-var assert = require('assert');
-var events = require('../');
-var objectKeys = require('object-keys');
-
-var e = new events.EventEmitter();
-
-if (Object.create) assert.ok(!(e._events instanceof Object));
-assert.strictEqual(objectKeys(e._events).length, 0);
-e.setMaxListeners(5);
-assert.strictEqual(objectKeys(e._events).length, 0);
diff --git a/node_modules/events/tests/subclass.js b/node_modules/events/tests/subclass.js
deleted file mode 100644
index 6c2ae64..0000000
--- a/node_modules/events/tests/subclass.js
+++ /dev/null
@@ -1,73 +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.
-
-var common = require('./common');
-var assert = require('assert');
-var EventEmitter = require('../').EventEmitter;
-var util = require('util');
-var objectKeys = require('object-keys');
-
-var after_checks = [];
-after(function() {
- for (var i = 0 ; i < after_checks.length ; ++i) {
- after_checks[i]();
- }
-});
-
-util.inherits(MyEE, EventEmitter);
-
-function MyEE(cb) {
- this.once(1, cb);
- this.emit(1);
- this.removeAllListeners();
- EventEmitter.call(this);
-}
-
-var myee = new MyEE(common.mustCall());
-
-
-util.inherits(ErrorEE, EventEmitter);
-function ErrorEE() {
- this.emit('error', new Error('blerg'));
-}
-
-assert.throws(function() {
- new ErrorEE();
-}, /blerg/);
-
-after_checks.push(function() {
- if (Object.create) assert.ok(!(myee._events instanceof Object));
- assert.strictEqual(objectKeys(myee._events).length, 0);
-});
-
-
-function MyEE2() {
- EventEmitter.call(this);
-}
-
-MyEE2.prototype = new EventEmitter();
-
-var ee1 = new MyEE2();
-var ee2 = new MyEE2();
-
-ee1.on('x', function() {});
-
-assert.strictEqual(ee2.listenerCount('x'), 0);
diff --git a/node_modules/evp_bytestokey/LICENSE b/node_modules/evp_bytestokey/LICENSE
deleted file mode 100644
index f06007a..0000000
--- a/node_modules/evp_bytestokey/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 crypto-browserify 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.
diff --git a/node_modules/evp_bytestokey/README.md b/node_modules/evp_bytestokey/README.md
deleted file mode 100644
index 36da238..0000000
--- a/node_modules/evp_bytestokey/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# EVP\_BytesToKey
-[![NPM Package](https://img.shields.io/npm/v/evp_bytestokey.svg?style=flat-square)](https://www.npmjs.org/package/evp_bytestokey)
-[![Build Status](https://img.shields.io/travis/crypto-browserify/EVP_BytesToKey.svg?branch=master&style=flat-square)](https://travis-ci.org/crypto-browserify/EVP_BytesToKey)
-[![Dependency status](https://img.shields.io/david/crypto-browserify/EVP_BytesToKey.svg?style=flat-square)](https://david-dm.org/crypto-browserify/EVP_BytesToKey#info=dependencies)
-
-[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)
-
-The insecure [key derivation algorithm from OpenSSL.][1]
-
-**WARNING: DO NOT USE, except for compatibility reasons.**
-
-MD5 is insecure.
-
-Use at least `scrypt` or `pbkdf2-hmac-sha256` instead.
-
-
-## API
-`EVP_BytesToKey(password, salt, keyLen, ivLen)`
-
-* `password` - `Buffer`, password used to derive the key data.
-* `salt` - 8 byte `Buffer` or `null`, salt is used as a salt in the derivation.
-* `keyBits` - `number`, key length in **bits**.
-* `ivLen` - `number`, iv length in bytes.
-
-*Returns*: `{ key: Buffer, iv: Buffer }`
-
-
-## Examples
-MD5 with `aes-256-cbc`:
-
-```js
-const crypto = require('crypto')
-const EVP_BytesToKey = require('evp_bytestokey')
-
-const result = EVP_BytesToKey(
- 'my-secret-password',
- null,
- 32,
- 16
-)
-// =>
-// { key: ,
-// iv: }
-
-const cipher = crypto.createCipheriv('aes-256-cbc', result.key, result.iv)
-```
-
-## LICENSE [MIT](LICENSE)
-
-[1]: https://wiki.openssl.org/index.php/Manual:EVP_BytesToKey(3)
-[2]: https://nodejs.org/api/crypto.html#crypto_class_hash
diff --git a/node_modules/evp_bytestokey/index.js b/node_modules/evp_bytestokey/index.js
deleted file mode 100644
index f9d4757..0000000
--- a/node_modules/evp_bytestokey/index.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var Buffer = require('safe-buffer').Buffer
-var MD5 = require('md5.js')
-
-/* eslint-disable camelcase */
-function EVP_BytesToKey (password, salt, keyBits, ivLen) {
- if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')
- if (salt) {
- if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')
- if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')
- }
-
- var keyLen = keyBits / 8
- var key = Buffer.alloc(keyLen)
- var iv = Buffer.alloc(ivLen || 0)
- var tmp = Buffer.alloc(0)
-
- while (keyLen > 0 || ivLen > 0) {
- var hash = new MD5()
- hash.update(tmp)
- hash.update(password)
- if (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
- var length = Math.min(ivLen, tmp.length - used)
- tmp.copy(iv, ivStart, used, used + length)
- ivLen -= length
- }
- }
-
- tmp.fill(0)
- return { key: key, iv: iv }
-}
-
-module.exports = EVP_BytesToKey
diff --git a/node_modules/evp_bytestokey/package.json b/node_modules/evp_bytestokey/package.json
deleted file mode 100644
index 80be6c6..0000000
--- a/node_modules/evp_bytestokey/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "evp_bytestokey@^1.0.0",
- "_id": "evp_bytestokey@1.0.3",
- "_inBundle": false,
- "_integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "_location": "/evp_bytestokey",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "evp_bytestokey@^1.0.0",
- "name": "evp_bytestokey",
- "escapedName": "evp_bytestokey",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/browserify-aes",
- "/browserify-cipher",
- "/parse-asn1"
- ],
- "_resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "_shasum": "7fcbdb198dc71959432efe13842684e0525acb02",
- "_spec": "evp_bytestokey@^1.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/browserify-cipher",
- "author": {
- "name": "Calvin Metcalf",
- "email": "calvin.metcalf@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/crypto-browserify/EVP_BytesToKey/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Kirill Fomichev",
- "email": "fanatid@ya.ru"
- }
- ],
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- },
- "deprecated": false,
- "description": "The insecure key derivation algorithm from OpenSSL",
- "devDependencies": {
- "bindings": "^1.2.1",
- "nan": "^2.4.0",
- "nyc": "^8.1.0",
- "standard": "^8.0.0",
- "tape": "^4.6.0"
- },
- "files": [
- "index.js"
- ],
- "gypfile": false,
- "homepage": "https://github.com/crypto-browserify/EVP_BytesToKey",
- "keywords": [
- "crypto",
- "openssl"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "evp_bytestokey",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/crypto-browserify/EVP_BytesToKey.git"
- },
- "scripts": {
- "coverage": "nyc tape test/*.js",
- "lint": "standard",
- "test": "npm run lint && npm run unit",
- "test:prepare": "node-gyp rebuild",
- "unit": "tape test/*.js"
- },
- "version": "1.0.3"
-}
diff --git a/node_modules/fast-safe-stringify/.travis.yml b/node_modules/fast-safe-stringify/.travis.yml
deleted file mode 100644
index 2b06d25..0000000
--- a/node_modules/fast-safe-stringify/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-sudo: false
-node_js:
-- '4'
-- '6'
-- '8'
-- '9'
-- '10'
diff --git a/node_modules/fast-safe-stringify/CHANGELOG.md b/node_modules/fast-safe-stringify/CHANGELOG.md
deleted file mode 100644
index 55f2d08..0000000
--- a/node_modules/fast-safe-stringify/CHANGELOG.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Changelog
-
-## v.2.0.0
-
-Features
-
-- Added stable-stringify (see documentation)
-- Support replacer
-- Support spacer
-- toJSON support without forceDecirc property
-- Improved performance
-
-Breaking changes
-
-- Manipulating the input value in a `toJSON` function is not possible anymore in
- all cases (see documentation)
-- Dropped support for e.g. IE8 and Node.js < 4
diff --git a/node_modules/fast-safe-stringify/LICENSE b/node_modules/fast-safe-stringify/LICENSE
deleted file mode 100644
index d310c2d..0000000
--- a/node_modules/fast-safe-stringify/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 David Mark Clements
-Copyright (c) 2017 David Mark Clements & Matteo Collina
-Copyright (c) 2018 David Mark Clements, Matteo Collina & Ruben Bridgewater
-
-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.
diff --git a/node_modules/fast-safe-stringify/benchmark.js b/node_modules/fast-safe-stringify/benchmark.js
deleted file mode 100644
index 7ba5e9f..0000000
--- a/node_modules/fast-safe-stringify/benchmark.js
+++ /dev/null
@@ -1,137 +0,0 @@
-const Benchmark = require('benchmark')
-const suite = new Benchmark.Suite()
-const { inspect } = require('util')
-const jsonStringifySafe = require('json-stringify-safe')
-const fastSafeStringify = require('./')
-
-const array = new Array(10).fill(0).map((_, i) => i)
-const obj = { foo: array }
-const circ = JSON.parse(JSON.stringify(obj))
-circ.o = { obj: circ, array }
-const circGetters = JSON.parse(JSON.stringify(obj))
-Object.assign(circGetters, { get o () { return { obj: circGetters, array } } })
-
-const deep = require('./package.json')
-deep.deep = JSON.parse(JSON.stringify(deep))
-deep.deep.deep = JSON.parse(JSON.stringify(deep))
-deep.deep.deep.deep = JSON.parse(JSON.stringify(deep))
-deep.array = array
-
-const deepCirc = JSON.parse(JSON.stringify(deep))
-deepCirc.deep.deep.deep.circ = deepCirc
-deepCirc.deep.deep.circ = deepCirc
-deepCirc.deep.circ = deepCirc
-deepCirc.array = array
-
-const deepCircGetters = JSON.parse(JSON.stringify(deep))
-for (let i = 0; i < 10; i++) {
- deepCircGetters[i.toString()] = {
- deep: {
- deep: {
- get circ () { return deep.deep },
- deep: { get circ () { return deep.deep.deep } }
- },
- get circ () { return deep }
- },
- get array () { return array }
- }
-}
-
-const deepCircNonCongifurableGetters = JSON.parse(JSON.stringify(deep))
-Object.defineProperty(deepCircNonCongifurableGetters.deep.deep.deep, 'circ', {
- get: () => deepCircNonCongifurableGetters,
- enumerable: true,
- configurable: false
-})
-Object.defineProperty(deepCircNonCongifurableGetters.deep.deep, 'circ', {
- get: () => deepCircNonCongifurableGetters,
- enumerable: true,
- configurable: false
-})
-Object.defineProperty(deepCircNonCongifurableGetters.deep, 'circ', {
- get: () => deepCircNonCongifurableGetters,
- enumerable: true,
- configurable: false
-})
-Object.defineProperty(deepCircNonCongifurableGetters, 'array', {
- get: () => array,
- enumerable: true,
- configurable: false
-})
-
-suite.add('util.inspect: simple object ', function () {
- inspect(obj, { showHidden: false, depth: null })
-})
-suite.add('util.inspect: circular ', function () {
- inspect(circ, { showHidden: false, depth: null })
-})
-suite.add('util.inspect: circular getters ', function () {
- inspect(circGetters, { showHidden: false, depth: null })
-})
-suite.add('util.inspect: deep ', function () {
- inspect(deep, { showHidden: false, depth: null })
-})
-suite.add('util.inspect: deep circular ', function () {
- inspect(deepCirc, { showHidden: false, depth: null })
-})
-suite.add('util.inspect: large deep circular getters ', function () {
- inspect(deepCircGetters, { showHidden: false, depth: null })
-})
-suite.add('util.inspect: deep non-conf circular getters', function () {
- inspect(deepCircNonCongifurableGetters, { showHidden: false, depth: null })
-})
-
-suite.add('\njson-stringify-safe: simple object ', function () {
- jsonStringifySafe(obj)
-})
-suite.add('json-stringify-safe: circular ', function () {
- jsonStringifySafe(circ)
-})
-suite.add('json-stringify-safe: circular getters ', function () {
- jsonStringifySafe(circGetters)
-})
-suite.add('json-stringify-safe: deep ', function () {
- jsonStringifySafe(deep)
-})
-suite.add('json-stringify-safe: deep circular ', function () {
- jsonStringifySafe(deepCirc)
-})
-suite.add('json-stringify-safe: large deep circular getters ', function () {
- jsonStringifySafe(deepCircGetters)
-})
-suite.add('json-stringify-safe: deep non-conf circular getters', function () {
- jsonStringifySafe(deepCircNonCongifurableGetters)
-})
-
-suite.add('\nfast-safe-stringify: simple object ', function () {
- fastSafeStringify(obj)
-})
-suite.add('fast-safe-stringify: circular ', function () {
- fastSafeStringify(circ)
-})
-suite.add('fast-safe-stringify: circular getters ', function () {
- fastSafeStringify(circGetters)
-})
-suite.add('fast-safe-stringify: deep ', function () {
- fastSafeStringify(deep)
-})
-suite.add('fast-safe-stringify: deep circular ', function () {
- fastSafeStringify(deepCirc)
-})
-suite.add('fast-safe-stringify: large deep circular getters ', function () {
- fastSafeStringify(deepCircGetters)
-})
-suite.add('fast-safe-stringify: deep non-conf circular getters', function () {
- fastSafeStringify(deepCircNonCongifurableGetters)
-})
-
-// add listeners
-suite.on('cycle', function (event) {
- console.log(String(event.target))
-})
-
-suite.on('complete', function () {
- console.log('\nFastest is ' + this.filter('fastest').map('name'))
-})
-
-suite.run({ delay: 1, minSamples: 150 })
diff --git a/node_modules/fast-safe-stringify/index.d.ts b/node_modules/fast-safe-stringify/index.d.ts
deleted file mode 100644
index 56f6865..0000000
--- a/node_modules/fast-safe-stringify/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-declare function stringify(value: any, replacer?: (key: string, value: any) => any, space?: string | number): string;
-
-declare namespace stringify {
- export function stable(value: any, replacer?: (key: string, value: any) => any, space?: string | number): string;
- export function stableStringify(value: any, replacer?: (key: string, value: any) => any, space?: string | number): string;
-}
-
-export default stringify;
diff --git a/node_modules/fast-safe-stringify/index.js b/node_modules/fast-safe-stringify/index.js
deleted file mode 100644
index 670698d..0000000
--- a/node_modules/fast-safe-stringify/index.js
+++ /dev/null
@@ -1,161 +0,0 @@
-module.exports = stringify
-stringify.default = stringify
-stringify.stable = deterministicStringify
-stringify.stableStringify = deterministicStringify
-
-var arr = []
-var replacerStack = []
-
-// Regular stringify
-function stringify (obj, replacer, spacer) {
- decirc(obj, '', [], undefined)
- var res
- if (replacerStack.length === 0) {
- res = JSON.stringify(obj, replacer, spacer)
- } else {
- res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)
- }
- while (arr.length !== 0) {
- var part = arr.pop()
- if (part.length === 4) {
- Object.defineProperty(part[0], part[1], part[3])
- } else {
- part[0][part[1]] = part[2]
- }
- }
- return res
-}
-function decirc (val, k, stack, parent) {
- var i
- if (typeof val === 'object' && val !== null) {
- for (i = 0; i < stack.length; i++) {
- if (stack[i] === val) {
- var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)
- if (propertyDescriptor.get !== undefined) {
- if (propertyDescriptor.configurable) {
- Object.defineProperty(parent, k, { value: '[Circular]' })
- arr.push([parent, k, val, propertyDescriptor])
- } else {
- replacerStack.push([val, k])
- }
- } else {
- parent[k] = '[Circular]'
- arr.push([parent, k, val])
- }
- return
- }
- }
- stack.push(val)
- // Optimize for Arrays. Big arrays could kill the performance otherwise!
- if (Array.isArray(val)) {
- for (i = 0; i < val.length; i++) {
- decirc(val[i], i, stack, val)
- }
- } else {
- var keys = Object.keys(val)
- for (i = 0; i < keys.length; i++) {
- var key = keys[i]
- decirc(val[key], key, stack, val)
- }
- }
- stack.pop()
- }
-}
-
-// Stable-stringify
-function compareFunction (a, b) {
- if (a < b) {
- return -1
- }
- if (a > b) {
- return 1
- }
- return 0
-}
-
-function deterministicStringify (obj, replacer, spacer) {
- var tmp = deterministicDecirc(obj, '', [], undefined) || obj
- var res
- if (replacerStack.length === 0) {
- res = JSON.stringify(tmp, replacer, spacer)
- } else {
- res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)
- }
- while (arr.length !== 0) {
- var part = arr.pop()
- if (part.length === 4) {
- Object.defineProperty(part[0], part[1], part[3])
- } else {
- part[0][part[1]] = part[2]
- }
- }
- return res
-}
-
-function deterministicDecirc (val, k, stack, parent) {
- var i
- if (typeof val === 'object' && val !== null) {
- for (i = 0; i < stack.length; i++) {
- if (stack[i] === val) {
- var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)
- if (propertyDescriptor.get !== undefined) {
- if (propertyDescriptor.configurable) {
- Object.defineProperty(parent, k, { value: '[Circular]' })
- arr.push([parent, k, val, propertyDescriptor])
- } else {
- replacerStack.push([val, k])
- }
- } else {
- parent[k] = '[Circular]'
- arr.push([parent, k, val])
- }
- return
- }
- }
- if (typeof val.toJSON === 'function') {
- return
- }
- stack.push(val)
- // Optimize for Arrays. Big arrays could kill the performance otherwise!
- if (Array.isArray(val)) {
- for (i = 0; i < val.length; i++) {
- deterministicDecirc(val[i], i, stack, val)
- }
- } else {
- // Create a temporary object in the required way
- var tmp = {}
- var keys = Object.keys(val).sort(compareFunction)
- for (i = 0; i < keys.length; i++) {
- var key = keys[i]
- deterministicDecirc(val[key], key, stack, val)
- tmp[key] = val[key]
- }
- if (parent !== undefined) {
- arr.push([parent, k, val])
- parent[k] = tmp
- } else {
- return tmp
- }
- }
- stack.pop()
- }
-}
-
-// wraps replacer function to handle values we couldn't replace
-// and mark them as [Circular]
-function replaceGetterValues (replacer) {
- replacer = replacer !== undefined ? replacer : function (k, v) { return v }
- return function (key, val) {
- if (replacerStack.length > 0) {
- for (var i = 0; i < replacerStack.length; i++) {
- var part = replacerStack[i]
- if (part[1] === key && part[0] === val) {
- val = '[Circular]'
- replacerStack.splice(i, 1)
- break
- }
- }
- }
- return replacer.call(this, key, val)
- }
-}
diff --git a/node_modules/fast-safe-stringify/package.json b/node_modules/fast-safe-stringify/package.json
deleted file mode 100644
index 0b645f6..0000000
--- a/node_modules/fast-safe-stringify/package.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "_from": "fast-safe-stringify@^2.0.7",
- "_id": "fast-safe-stringify@2.0.7",
- "_inBundle": false,
- "_integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",
- "_location": "/fast-safe-stringify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "fast-safe-stringify@^2.0.7",
- "name": "fast-safe-stringify",
- "escapedName": "fast-safe-stringify",
- "rawSpec": "^2.0.7",
- "saveSpec": null,
- "fetchSpec": "^2.0.7"
- },
- "_requiredBy": [
- "/shasum-object"
- ],
- "_resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
- "_shasum": "124aa885899261f68aedb42a7c080de9da608743",
- "_spec": "fast-safe-stringify@^2.0.7",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/shasum-object",
- "author": {
- "name": "David Mark Clements"
- },
- "bugs": {
- "url": "https://github.com/davidmarkclements/fast-safe-stringify/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Ruben Bridgewater"
- },
- {
- "name": "Matteo Collina"
- },
- {
- "name": "Ben Gourley"
- },
- {
- "name": "Gabriel Lesperance"
- },
- {
- "name": "Alex Liu"
- },
- {
- "name": "Christoph Walcher"
- },
- {
- "name": "Nicholas Young"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Safely and quickly serialize JavaScript objects",
- "devDependencies": {
- "benchmark": "^2.1.4",
- "clone": "^2.1.0",
- "json-stringify-safe": "^5.0.1",
- "standard": "^11.0.0",
- "tap": "^12.0.0"
- },
- "homepage": "https://github.com/davidmarkclements/fast-safe-stringify#readme",
- "keywords": [
- "stable",
- "stringify",
- "JSON",
- "JSON.stringify",
- "safe",
- "serialize"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "fast-safe-stringify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/davidmarkclements/fast-safe-stringify.git"
- },
- "scripts": {
- "benchmark": "node benchmark.js",
- "test": "standard && tap --no-esm test.js test-stable.js"
- },
- "typings": "index",
- "version": "2.0.7"
-}
diff --git a/node_modules/fast-safe-stringify/readme.md b/node_modules/fast-safe-stringify/readme.md
deleted file mode 100644
index 51ed1fb..0000000
--- a/node_modules/fast-safe-stringify/readme.md
+++ /dev/null
@@ -1,154 +0,0 @@
-# fast-safe-stringify
-
-Safe and fast serialization alternative to [JSON.stringify][].
-
-Gracefully handles circular structures instead of throwing.
-
-Provides a deterministic ("stable") version as well that will also gracefully
-handle circular structures. See the example below for further information.
-
-## Usage
-
-The same as [JSON.stringify][].
-
-`stringify(value[, replacer[, space]])`
-
-```js
-const safeStringify = require('fast-safe-stringify')
-const o = { a: 1 }
-o.o = o
-
-console.log(safeStringify(o))
-// '{"a":1,"o":"[Circular]"}'
-console.log(JSON.stringify(o))
-// TypeError: Converting circular structure to JSON
-
-function replacer(key, value) {
- console.log('Key:', JSON.stringify(key), 'Value:', JSON.stringify(value))
- // Remove the circular structure
- if (value === '[Circular]') {
- return
- }
- return value
-}
-const serialized = safeStringify(o, replacer, 2)
-// Key: "" Value: {"a":1,"o":"[Circular]"}
-// Key: "a" Value: 1
-// Key: "o" Value: "[Circular]"
-console.log(serialized)
-// {
-// "a": 1
-// }
-```
-
-Using the deterministic version also works the same:
-
-```js
-const safeStringify = require('fast-safe-stringify')
-const o = { b: 1, a: 0 }
-o.o = o
-
-console.log(safeStringify(o))
-// '{"b":1,"a":0,"o":"[Circular]"}'
-console.log(safeStringify.stableStringify(o))
-// '{"a":0,"b":1,"o":"[Circular]"}'
-console.log(JSON.stringify(o))
-// TypeError: Converting circular structure to JSON
-```
-
-A faster and side-effect free implementation is available in the
-[safe-stable-stringify][] module. However it is still considered experimental
-due to a new and more complex implementation.
-
-## Differences to JSON.stringify
-
-In general the behavior is identical to [JSON.stringify][]. The [`replacer`][]
-and [`space`][] options are also available.
-
-A few exceptions exist to [JSON.stringify][] while using [`toJSON`][] or
-[`replacer`][]:
-
-### Regular safe stringify
-
-- Manipulating a circular structure of the passed in value in a `toJSON` or the
- `replacer` is not possible! It is possible for any other value and property.
-
-- In case a circular structure is detected and the [`replacer`][] is used it
- will receive the string `[Circular]` as the argument instead of the circular
- object itself.
-
-### Deterministic ("stable") safe stringify
-
-- Manipulating the input object either in a [`toJSON`][] or the [`replacer`][]
- function will not have any effect on the output. The output entirely relies on
- the shape the input value had at the point passed to the stringify function!
-
-- In case a circular structure is detected and the [`replacer`][] is used it
- will receive the string `[Circular]` as the argument instead of the circular
- object itself.
-
-A side effect free variation without these limitations can be found as well
-([`safe-stable-stringify`][]). It is also faster than the current
-implementation. It is still considered experimental due to a new and more
-complex implementation.
-
-## Benchmarks
-
-Although not JSON, the Node.js `util.inspect` method can be used for similar
-purposes (e.g. logging) and also handles circular references.
-
-Here we compare `fast-safe-stringify` with some alternatives:
-(Lenovo T450s with a i7-5600U CPU using Node.js 8.9.4)
-
-```md
-fast-safe-stringify: simple object x 1,121,497 ops/sec ±0.75% (97 runs sampled)
-fast-safe-stringify: circular x 560,126 ops/sec ±0.64% (96 runs sampled)
-fast-safe-stringify: deep x 32,472 ops/sec ±0.57% (95 runs sampled)
-fast-safe-stringify: deep circular x 32,513 ops/sec ±0.80% (92 runs sampled)
-
-util.inspect: simple object x 272,837 ops/sec ±1.48% (90 runs sampled)
-util.inspect: circular x 116,896 ops/sec ±1.19% (95 runs sampled)
-util.inspect: deep x 19,382 ops/sec ±0.66% (92 runs sampled)
-util.inspect: deep circular x 18,717 ops/sec ±0.63% (96 runs sampled)
-
-json-stringify-safe: simple object x 233,621 ops/sec ±0.97% (94 runs sampled)
-json-stringify-safe: circular x 110,409 ops/sec ±1.85% (95 runs sampled)
-json-stringify-safe: deep x 8,705 ops/sec ±0.87% (96 runs sampled)
-json-stringify-safe: deep circular x 8,336 ops/sec ±2.20% (93 runs sampled)
-```
-
-For stable stringify comparisons, see the performance benchmarks in the
-[`safe-stable-stringify`][] readme.
-
-## Protip
-
-Whether `fast-safe-stringify` or alternatives are used: if the use case
-consists of deeply nested objects without circular references the following
-pattern will give best results.
-Shallow or one level nested objects on the other hand will slow down with it.
-It is entirely dependant on the use case.
-
-```js
-const stringify = require('fast-safe-stringify')
-
-function tryJSONStringify (obj) {
- try { return JSON.stringify(obj) } catch (_) {}
-}
-
-const serializedString = tryJSONStringify(deep) || stringify(deep)
-```
-
-## Acknowledgements
-
-Sponsored by [nearForm](http://nearform.com)
-
-## License
-
-MIT
-
-[`replacer`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The%20replacer%20parameter
-[`safe-stable-stringify`]: https://github.com/BridgeAR/safe-stable-stringify
-[`space`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The%20space%20argument
-[`toJSON`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON()_behavior
-[benchmark]: https://github.com/epoberezkin/fast-json-stable-stringify/blob/67f688f7441010cfef91a6147280cc501701e83b/benchmark
-[JSON.stringify]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
diff --git a/node_modules/fast-safe-stringify/test-stable.js b/node_modules/fast-safe-stringify/test-stable.js
deleted file mode 100644
index 93d8bc4..0000000
--- a/node_modules/fast-safe-stringify/test-stable.js
+++ /dev/null
@@ -1,311 +0,0 @@
-const test = require('tap').test
-const fss = require('./').stable
-const clone = require('clone')
-const s = JSON.stringify
-
-test('circular reference to root', function (assert) {
- const fixture = { name: 'Tywin Lannister' }
- fixture.circle = fixture
- const expected = s(
- { circle: '[Circular]', name: 'Tywin Lannister' }
- )
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('circular getter reference to root', function (assert) {
- const fixture = {
- name: 'Tywin Lannister',
- get circle () {
- return fixture
- }
- }
-
- const expected = s(
- { circle: '[Circular]', name: 'Tywin Lannister' }
- )
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested circular reference to root', function (assert) {
- const fixture = { name: 'Tywin Lannister' }
- fixture.id = { circle: fixture }
- const expected = s(
- { id: { circle: '[Circular]' }, name: 'Tywin Lannister' }
- )
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('child circular reference', function (assert) {
- const fixture = { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister' } }
- fixture.child.dinklage = fixture.child
- const expected = s({
- child: {
- dinklage: '[Circular]', name: 'Tyrion Lannister'
- },
- name: 'Tywin Lannister'
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested child circular reference', function (assert) {
- const fixture = { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister' } }
- fixture.child.actor = { dinklage: fixture.child }
- const expected = s({
- child: {
- actor: { dinklage: '[Circular]' }, name: 'Tyrion Lannister'
- },
- name: 'Tywin Lannister'
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('circular objects in an array', function (assert) {
- const fixture = { name: 'Tywin Lannister' }
- fixture.hand = [fixture, fixture]
- const expected = s({
- hand: ['[Circular]', '[Circular]'], name: 'Tywin Lannister'
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested circular references in an array', function (assert) {
- const fixture = {
- name: 'Tywin Lannister',
- offspring: [{ name: 'Tyrion Lannister' }, { name: 'Cersei Lannister' }]
- }
- fixture.offspring[0].dinklage = fixture.offspring[0]
- fixture.offspring[1].headey = fixture.offspring[1]
-
- const expected = s({
- name: 'Tywin Lannister',
- offspring: [
- { dinklage: '[Circular]', name: 'Tyrion Lannister' },
- { headey: '[Circular]', name: 'Cersei Lannister' }
- ]
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('circular arrays', function (assert) {
- const fixture = []
- fixture.push(fixture, fixture)
- const expected = s(['[Circular]', '[Circular]'])
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested circular arrays', function (assert) {
- const fixture = []
- fixture.push(
- { name: 'Jon Snow', bastards: fixture },
- { name: 'Ramsay Bolton', bastards: fixture }
- )
- const expected = s([
- { bastards: '[Circular]', name: 'Jon Snow' },
- { bastards: '[Circular]', name: 'Ramsay Bolton' }
- ])
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('repeated non-circular references in objects', function (assert) {
- const daenerys = { name: 'Daenerys Targaryen' }
- const fixture = {
- motherOfDragons: daenerys,
- queenOfMeereen: daenerys
- }
- const expected = s(fixture)
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('repeated non-circular references in arrays', function (assert) {
- const daenerys = { name: 'Daenerys Targaryen' }
- const fixture = [daenerys, daenerys]
- const expected = s(fixture)
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('double child circular reference', function (assert) {
- // create circular reference
- const child = { name: 'Tyrion Lannister' }
- child.dinklage = child
-
- // include it twice in the fixture
- const fixture = { name: 'Tywin Lannister', childA: child, childB: child }
- const cloned = clone(fixture)
- const expected = s({
- childA: {
- dinklage: '[Circular]', name: 'Tyrion Lannister'
- },
- childB: {
- dinklage: '[Circular]', name: 'Tyrion Lannister'
- },
- name: 'Tywin Lannister'
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
-
- // check if the fixture has not been modified
- assert.deepEqual(fixture, cloned)
- assert.end()
-})
-
-test('child circular reference with toJSON', function (assert) {
- // Create a test object that has an overriden `toJSON` property
- TestObject.prototype.toJSON = function () { return { special: 'case' } }
- function TestObject (content) {}
-
- // Creating a simple circular object structure
- const parentObject = {}
- parentObject.childObject = new TestObject()
- parentObject.childObject.parentObject = parentObject
-
- // Creating a simple circular object structure
- const otherParentObject = new TestObject()
- otherParentObject.otherChildObject = {}
- otherParentObject.otherChildObject.otherParentObject = otherParentObject
-
- // Making sure our original tests work
- assert.deepEqual(parentObject.childObject.parentObject, parentObject)
- assert.deepEqual(otherParentObject.otherChildObject.otherParentObject, otherParentObject)
-
- // Should both be idempotent
- assert.equal(fss(parentObject), '{"childObject":{"special":"case"}}')
- assert.equal(fss(otherParentObject), '{"special":"case"}')
-
- // Therefore the following assertion should be `true`
- assert.deepEqual(parentObject.childObject.parentObject, parentObject)
- assert.deepEqual(otherParentObject.otherChildObject.otherParentObject, otherParentObject)
-
- assert.end()
-})
-
-test('null object', function (assert) {
- const expected = s(null)
- const actual = fss(null)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('null property', function (assert) {
- const expected = s({ f: null })
- const actual = fss({ f: null })
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested child circular reference in toJSON', function (assert) {
- var circle = { some: 'data' }
- circle.circle = circle
- var a = {
- b: {
- toJSON: function () {
- a.b = 2
- return '[Redacted]'
- }
- },
- baz: {
- circle,
- toJSON: function () {
- a.baz = circle
- return '[Redacted]'
- }
- }
- }
- var o = {
- a,
- bar: a
- }
-
- const expected = s({
- a: {
- b: '[Redacted]',
- baz: '[Redacted]'
- },
- bar: {
- // TODO: This is a known limitation of the current implementation.
- // The ideal result would be:
- //
- // b: 2,
- // baz: {
- // circle: '[Circular]',
- // some: 'data'
- // }
- //
- b: '[Redacted]',
- baz: '[Redacted]'
- }
- })
- const actual = fss(o)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('circular getters are restored when stringified', function (assert) {
- const fixture = {
- name: 'Tywin Lannister',
- get circle () {
- return fixture
- }
- }
- fss(fixture)
-
- assert.is(fixture.circle, fixture)
- assert.end()
-})
-
-test('non-configurable circular getters use a replacer instead of markers', function (assert) {
- const fixture = { name: 'Tywin Lannister' }
- Object.defineProperty(fixture, 'circle', {
- configurable: false,
- get: function () { return fixture },
- enumerable: true
- })
-
- fss(fixture)
-
- assert.is(fixture.circle, fixture)
- assert.end()
-})
-
-test('getter child circular reference', function (assert) {
- const fixture = {
- name: 'Tywin Lannister',
- child: {
- name: 'Tyrion Lannister',
- get dinklage () { return fixture.child }
- },
- get self () { return fixture }
- }
-
- const expected = s({
- child: {
- dinklage: '[Circular]', name: 'Tyrion Lannister'
- },
- name: 'Tywin Lannister',
- self: '[Circular]'
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
diff --git a/node_modules/fast-safe-stringify/test.js b/node_modules/fast-safe-stringify/test.js
deleted file mode 100644
index 7da5821..0000000
--- a/node_modules/fast-safe-stringify/test.js
+++ /dev/null
@@ -1,304 +0,0 @@
-const test = require('tap').test
-const fss = require('./')
-const clone = require('clone')
-const s = JSON.stringify
-
-test('circular reference to root', function (assert) {
- const fixture = { name: 'Tywin Lannister' }
- fixture.circle = fixture
- const expected = s(
- { name: 'Tywin Lannister', circle: '[Circular]' }
- )
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('circular getter reference to root', function (assert) {
- const fixture = {
- name: 'Tywin Lannister',
- get circle () {
- return fixture
- }
- }
- const expected = s(
- { name: 'Tywin Lannister', circle: '[Circular]' }
- )
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested circular reference to root', function (assert) {
- const fixture = { name: 'Tywin Lannister' }
- fixture.id = { circle: fixture }
- const expected = s(
- { name: 'Tywin Lannister', id: { circle: '[Circular]' } }
- )
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('child circular reference', function (assert) {
- const fixture = { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister' } }
- fixture.child.dinklage = fixture.child
- const expected = s({
- name: 'Tywin Lannister',
- child: {
- name: 'Tyrion Lannister', dinklage: '[Circular]'
- }
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested child circular reference', function (assert) {
- const fixture = { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister' } }
- fixture.child.actor = { dinklage: fixture.child }
- const expected = s({
- name: 'Tywin Lannister',
- child: {
- name: 'Tyrion Lannister', actor: { dinklage: '[Circular]' }
- }
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('circular objects in an array', function (assert) {
- const fixture = { name: 'Tywin Lannister' }
- fixture.hand = [fixture, fixture]
- const expected = s({
- name: 'Tywin Lannister', hand: ['[Circular]', '[Circular]']
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested circular references in an array', function (assert) {
- const fixture = {
- name: 'Tywin Lannister',
- offspring: [{ name: 'Tyrion Lannister' }, { name: 'Cersei Lannister' }]
- }
- fixture.offspring[0].dinklage = fixture.offspring[0]
- fixture.offspring[1].headey = fixture.offspring[1]
-
- const expected = s({
- name: 'Tywin Lannister',
- offspring: [
- { name: 'Tyrion Lannister', dinklage: '[Circular]' },
- { name: 'Cersei Lannister', headey: '[Circular]' }
- ]
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('circular arrays', function (assert) {
- const fixture = []
- fixture.push(fixture, fixture)
- const expected = s(['[Circular]', '[Circular]'])
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested circular arrays', function (assert) {
- const fixture = []
- fixture.push(
- { name: 'Jon Snow', bastards: fixture },
- { name: 'Ramsay Bolton', bastards: fixture }
- )
- const expected = s([
- { name: 'Jon Snow', bastards: '[Circular]' },
- { name: 'Ramsay Bolton', bastards: '[Circular]' }
- ])
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('repeated non-circular references in objects', function (assert) {
- const daenerys = { name: 'Daenerys Targaryen' }
- const fixture = {
- motherOfDragons: daenerys,
- queenOfMeereen: daenerys
- }
- const expected = s(fixture)
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('repeated non-circular references in arrays', function (assert) {
- const daenerys = { name: 'Daenerys Targaryen' }
- const fixture = [daenerys, daenerys]
- const expected = s(fixture)
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('double child circular reference', function (assert) {
- // create circular reference
- const child = { name: 'Tyrion Lannister' }
- child.dinklage = child
-
- // include it twice in the fixture
- const fixture = { name: 'Tywin Lannister', childA: child, childB: child }
- const cloned = clone(fixture)
- const expected = s({
- name: 'Tywin Lannister',
- childA: {
- name: 'Tyrion Lannister', dinklage: '[Circular]'
- },
- childB: {
- name: 'Tyrion Lannister', dinklage: '[Circular]'
- }
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
-
- // check if the fixture has not been modified
- assert.deepEqual(fixture, cloned)
- assert.end()
-})
-
-test('child circular reference with toJSON', function (assert) {
- // Create a test object that has an overriden `toJSON` property
- TestObject.prototype.toJSON = function () { return { special: 'case' } }
- function TestObject (content) {}
-
- // Creating a simple circular object structure
- const parentObject = {}
- parentObject.childObject = new TestObject()
- parentObject.childObject.parentObject = parentObject
-
- // Creating a simple circular object structure
- const otherParentObject = new TestObject()
- otherParentObject.otherChildObject = {}
- otherParentObject.otherChildObject.otherParentObject = otherParentObject
-
- // Making sure our original tests work
- assert.deepEqual(parentObject.childObject.parentObject, parentObject)
- assert.deepEqual(otherParentObject.otherChildObject.otherParentObject, otherParentObject)
-
- // Should both be idempotent
- assert.equal(fss(parentObject), '{"childObject":{"special":"case"}}')
- assert.equal(fss(otherParentObject), '{"special":"case"}')
-
- // Therefore the following assertion should be `true`
- assert.deepEqual(parentObject.childObject.parentObject, parentObject)
- assert.deepEqual(otherParentObject.otherChildObject.otherParentObject, otherParentObject)
-
- assert.end()
-})
-
-test('null object', function (assert) {
- const expected = s(null)
- const actual = fss(null)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('null property', function (assert) {
- const expected = s({ f: null })
- const actual = fss({ f: null })
- assert.is(actual, expected)
- assert.end()
-})
-
-test('nested child circular reference in toJSON', function (assert) {
- const circle = { some: 'data' }
- circle.circle = circle
- const a = {
- b: {
- toJSON: function () {
- a.b = 2
- return '[Redacted]'
- }
- },
- baz: {
- circle,
- toJSON: function () {
- a.baz = circle
- return '[Redacted]'
- }
- }
- }
- const o = {
- a,
- bar: a
- }
-
- const expected = s({
- a: {
- b: '[Redacted]',
- baz: '[Redacted]'
- },
- bar: {
- b: 2,
- baz: {
- some: 'data',
- circle: '[Circular]'
- }
- }
- })
- const actual = fss(o)
- assert.is(actual, expected)
- assert.end()
-})
-
-test('circular getters are restored when stringified', function (assert) {
- const fixture = {
- name: 'Tywin Lannister',
- get circle () {
- return fixture
- }
- }
- fss(fixture)
-
- assert.is(fixture.circle, fixture)
- assert.end()
-})
-
-test('non-configurable circular getters use a replacer instead of markers', function (assert) {
- const fixture = { name: 'Tywin Lannister' }
- Object.defineProperty(fixture, 'circle', {
- configurable: false,
- get: function () { return fixture },
- enumerable: true
- })
-
- fss(fixture)
-
- assert.is(fixture.circle, fixture)
- assert.end()
-})
-
-test('getter child circular reference are replaced instead of marked', function (assert) {
- const fixture = {
- name: 'Tywin Lannister',
- child: {
- name: 'Tyrion Lannister',
- get dinklage () { return fixture.child }
- },
- get self () { return fixture }
- }
-
- const expected = s({
- name: 'Tywin Lannister',
- child: {
- name: 'Tyrion Lannister', dinklage: '[Circular]'
- },
- self: '[Circular]'
- })
- const actual = fss(fixture)
- assert.is(actual, expected)
- assert.end()
-})
diff --git a/node_modules/for-each/.editorconfig b/node_modules/for-each/.editorconfig
deleted file mode 100644
index ac29ade..0000000
--- a/node_modules/for-each/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 120
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
diff --git a/node_modules/for-each/.eslintrc b/node_modules/for-each/.eslintrc
deleted file mode 100644
index 2b8ea2a..0000000
--- a/node_modules/for-each/.eslintrc
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "eqeqeq": [2, "allow-null"],
- "func-name-matching": 0,
- "indent": [2, 4],
- "max-nested-callbacks": [2, 3],
- "max-params": [2, 3],
- "max-statements": [2, 14],
- "no-invalid-this": [1],
- "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"],
- }
-}
diff --git a/node_modules/for-each/.travis.yml b/node_modules/for-each/.travis.yml
deleted file mode 100644
index e9e54bd..0000000
--- a/node_modules/for-each/.travis.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
- - "8"
- - "7"
- - "6"
- - "5"
- - "4"
- - "iojs"
- - "0.12"
- - "0.10"
- - "0.8"
-before_install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi'
- - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then if [ "${TRAVIS_NODE_VERSION%${TRAVIS_NODE_VERSION#[0-9]}}" = "0" ] || [ "${TRAVIS_NODE_VERSION:0:4}" = "iojs" ]; then npm install -g npm@4.5 ; else npm install -g npm; fi; fi'
-install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
- - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
- - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
- - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-env:
- - TEST=true
-matrix:
- fast_finish: true
- include:
- - node_js: "node"
- env: PRETEST=true
- - node_js: "node"
- env: POSTTEST=true
- - node_js: "0.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.4"
- env: TEST=true ALLOW_FAILURE=true
- allow_failures:
- - os: osx
- - env: TEST=true ALLOW_FAILURE=true
- - env: COVERAGE=true
diff --git a/node_modules/for-each/LICENSE b/node_modules/for-each/LICENSE
deleted file mode 100644
index 53f19aa..0000000
--- a/node_modules/for-each/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2012 Raynos.
-
-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.
-
diff --git a/node_modules/for-each/README.md b/node_modules/for-each/README.md
deleted file mode 100644
index 16dfbb6..0000000
--- a/node_modules/for-each/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# for-each [![build status][1]][2]
-
-[![browser support][3]][4]
-
-A better forEach.
-
-## Example
-
-Like `Array.prototype.forEach` but works on objects.
-
-```js
-var forEach = require("for-each")
-
-forEach({ key: "value" }, function (value, key, object) {
- /* code */
-})
-```
-
-As a bonus, it's also a perfectly function shim/polyfill for arrays too!
-
-```js
-var forEach = require("for-each")
-
-forEach([1, 2, 3], function (value, index, array) {
- /* code */
-})
-```
-
-## Installation
-
-`npm install for-each`
-
-## Contributors
-
- - Raynos
-
-## MIT Licenced
-
- [1]: https://secure.travis-ci.org/Raynos/for-each.png
- [2]: http://travis-ci.org/Raynos/for-each
- [3]: https://ci.testling.com/Raynos/for-each.png
- [4]: https://ci.testling.com/Raynos/for-each
-
diff --git a/node_modules/for-each/index.js b/node_modules/for-each/index.js
deleted file mode 100644
index 609ef9f..0000000
--- a/node_modules/for-each/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-
-var isCallable = require('is-callable');
-
-var toStr = Object.prototype.toString;
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-
-var forEachArray = function forEachArray(array, iterator, receiver) {
- for (var i = 0, len = array.length; i < len; i++) {
- if (hasOwnProperty.call(array, i)) {
- if (receiver == null) {
- iterator(array[i], i, array);
- } else {
- iterator.call(receiver, array[i], i, array);
- }
- }
- }
-};
-
-var forEachString = function forEachString(string, iterator, receiver) {
- for (var i = 0, len = string.length; i < len; i++) {
- // no such thing as a sparse string.
- if (receiver == null) {
- iterator(string.charAt(i), i, string);
- } else {
- iterator.call(receiver, string.charAt(i), i, string);
- }
- }
-};
-
-var forEachObject = function forEachObject(object, iterator, receiver) {
- for (var k in object) {
- if (hasOwnProperty.call(object, k)) {
- if (receiver == null) {
- iterator(object[k], k, object);
- } else {
- iterator.call(receiver, object[k], k, object);
- }
- }
- }
-};
-
-var forEach = function forEach(list, iterator, thisArg) {
- if (!isCallable(iterator)) {
- throw new TypeError('iterator must be a function');
- }
-
- var receiver;
- if (arguments.length >= 3) {
- receiver = thisArg;
- }
-
- if (toStr.call(list) === '[object Array]') {
- forEachArray(list, iterator, receiver);
- } else if (typeof list === 'string') {
- forEachString(list, iterator, receiver);
- } else {
- forEachObject(list, iterator, receiver);
- }
-};
-
-module.exports = forEach;
diff --git a/node_modules/for-each/package.json b/node_modules/for-each/package.json
deleted file mode 100644
index 8992df0..0000000
--- a/node_modules/for-each/package.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "for-each@~0.3.3",
- "_id": "for-each@0.3.3",
- "_inBundle": false,
- "_integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "_location": "/for-each",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "for-each@~0.3.3",
- "name": "for-each",
- "escapedName": "for-each",
- "rawSpec": "~0.3.3",
- "saveSpec": null,
- "fetchSpec": "~0.3.3"
- },
- "_requiredBy": [
- "/tape"
- ],
- "_resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "_shasum": "69b447e88a0a5d32c3e7084f3f1710034b21376e",
- "_spec": "for-each@~0.3.3",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/tape",
- "author": {
- "name": "Raynos",
- "email": "raynos2@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/Raynos/for-each/issues",
- "email": "raynos2@gmail.com"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jake Verbaten"
- },
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "dependencies": {
- "is-callable": "^1.1.3"
- },
- "deprecated": false,
- "description": "A better forEach",
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "eslint": "^4.19.1",
- "nsp": "^3.2.1",
- "tape": "^4.9.0"
- },
- "homepage": "https://github.com/Raynos/for-each",
- "keywords": [],
- "license": "MIT",
- "licenses": [
- {
- "type": "MIT",
- "url": "http://github.com/Raynos/for-each/raw/master/LICENSE"
- }
- ],
- "main": "index",
- "name": "for-each",
- "repository": {
- "type": "git",
- "url": "git://github.com/Raynos/for-each.git"
- },
- "scripts": {
- "lint": "eslint *.js test/*.js",
- "posttest": "npm run security",
- "pretest": "npm run lint",
- "security": "nsp check",
- "test": "npm run tests-only",
- "tests-only": "node test/test"
- },
- "testling": {
- "files": "test/test.js",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "version": "0.3.3"
-}
diff --git a/node_modules/for-each/test/.eslintrc b/node_modules/for-each/test/.eslintrc
deleted file mode 100644
index a6c04b9..0000000
--- a/node_modules/for-each/test/.eslintrc
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "rules": {
- "array-bracket-newline": 0,
- "array-element-newline": 0,
- "max-statements-per-line": 0,
- "no-magic-numbers": 0,
- }
-}
diff --git a/node_modules/for-each/test/test.js b/node_modules/for-each/test/test.js
deleted file mode 100644
index 8c93787..0000000
--- a/node_modules/for-each/test/test.js
+++ /dev/null
@@ -1,182 +0,0 @@
-'use strict';
-
-/* globals window */
-
-var test = require('tape');
-var forEach = require('../');
-
-test('forEach calls each iterator', function (t) {
- var count = 0;
- t.plan(4);
- forEach({ a: 1, b: 2 }, function (value, key) {
- if (count === 0) {
- t.equal(value, 1);
- t.equal(key, 'a');
- } else {
- t.equal(value, 2);
- t.equal(key, 'b');
- }
- count += 1;
- });
-});
-
-test('forEach calls iterator with correct this value', function (t) {
- var thisValue = {};
-
- t.plan(1);
-
- forEach([0], function () {
- t.equal(this, thisValue);
- }, thisValue);
-});
-
-test('second argument: iterator', function (t) {
- var arr = [];
- t['throws'](function () { forEach(arr); }, TypeError, 'undefined is not a function');
- t['throws'](function () { forEach(arr, null); }, TypeError, 'null is not a function');
- t['throws'](function () { forEach(arr, ''); }, TypeError, 'string is not a function');
- t['throws'](function () { forEach(arr, /a/); }, TypeError, 'regex is not a function');
- t['throws'](function () { forEach(arr, true); }, TypeError, 'true is not a function');
- t['throws'](function () { forEach(arr, false); }, TypeError, 'false is not a function');
- t['throws'](function () { forEach(arr, NaN); }, TypeError, 'NaN is not a function');
- t['throws'](function () { forEach(arr, 42); }, TypeError, '42 is not a function');
- t.doesNotThrow(function () { forEach(arr, function () {}); }, 'function is a function');
- t.doesNotThrow(function () { forEach(arr, setTimeout); }, 'setTimeout is a function');
- if (typeof window !== 'undefined') {
- t.doesNotThrow(function () { forEach(arr, window.alert); }, 'alert is a function');
- }
- t.end();
-});
-
-test('array', function (t) {
- var arr = [1, 2, 3];
-
- t.test('iterates over every item', function (st) {
- var index = 0;
- forEach(arr, function () { index += 1; });
- st.equal(index, arr.length, 'iterates ' + arr.length + ' times');
- st.end();
- });
-
- t.test('first iterator argument', function (st) {
- var index = 0;
- st.plan(arr.length);
- forEach(arr, function (item) {
- st.equal(arr[index], item, 'item ' + index + ' is passed as first argument');
- index += 1;
- });
- st.end();
- });
-
- t.test('second iterator argument', function (st) {
- var counter = 0;
- st.plan(arr.length);
- forEach(arr, function (item, index) {
- st.equal(counter, index, 'index ' + index + ' is passed as second argument');
- counter += 1;
- });
- st.end();
- });
-
- t.test('third iterator argument', function (st) {
- st.plan(arr.length);
- forEach(arr, function (item, index, array) {
- st.deepEqual(arr, array, 'array is passed as third argument');
- });
- st.end();
- });
-
- t.test('context argument', function (st) {
- var context = {};
- forEach([], function () {
- st.equal(this, context, '"this" is the passed context');
- }, context);
- st.end();
- });
-
- t.end();
-});
-
-test('object', function (t) {
- var obj = {
- a: 1,
- b: 2,
- c: 3
- };
- var keys = ['a', 'b', 'c'];
-
- var F = function F() {
- this.a = 1;
- this.b = 2;
- };
- F.prototype.c = 3;
- var fKeys = ['a', 'b'];
-
- t.test('iterates over every object literal key', function (st) {
- var counter = 0;
- forEach(obj, function () { counter += 1; });
- st.equal(counter, keys.length, 'iterated ' + counter + ' times');
- st.end();
- });
-
- t.test('iterates only over own keys', function (st) {
- var counter = 0;
- forEach(new F(), function () { counter += 1; });
- st.equal(counter, fKeys.length, 'iterated ' + fKeys.length + ' times');
- st.end();
- });
-
- t.test('first iterator argument', function (st) {
- var index = 0;
- st.plan(keys.length);
- forEach(obj, function (item) {
- st.equal(obj[keys[index]], item, 'item at key ' + keys[index] + ' is passed as first argument');
- index += 1;
- });
- st.end();
- });
-
- t.test('second iterator argument', function (st) {
- var counter = 0;
- st.plan(keys.length);
- forEach(obj, function (item, key) {
- st.equal(keys[counter], key, 'key ' + key + ' is passed as second argument');
- counter += 1;
- });
- st.end();
- });
-
- t.test('third iterator argument', function (st) {
- st.plan(keys.length);
- forEach(obj, function (item, key, object) {
- st.deepEqual(obj, object, 'object is passed as third argument');
- });
- st.end();
- });
-
- t.test('context argument', function (st) {
- var context = {};
- forEach({}, function () {
- st.equal(this, context, '"this" is the passed context');
- }, context);
- st.end();
- });
-
- t.end();
-});
-
-test('string', function (t) {
- var str = 'str';
- t.test('second iterator argument', function (st) {
- var counter = 0;
- st.plan((str.length * 2) + 1);
- forEach(str, function (item, index) {
- st.equal(counter, index, 'index ' + index + ' is passed as second argument');
- st.equal(str.charAt(index), item);
- counter += 1;
- });
- st.equal(counter, str.length, 'iterates ' + str.length + ' times');
- st.end();
- });
- t.end();
-});
diff --git a/node_modules/fs.realpath/LICENSE b/node_modules/fs.realpath/LICENSE
deleted file mode 100644
index 5bd884c..0000000
--- a/node_modules/fs.realpath/LICENSE
+++ /dev/null
@@ -1,43 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-----
-
-This library bundles a version of the `fs.realpath` and `fs.realpathSync`
-methods from Node.js v0.10 under the terms of the Node.js MIT license.
-
-Node's license follows, also included at the header of `old.js` which contains
-the licensed code:
-
- 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.
diff --git a/node_modules/fs.realpath/README.md b/node_modules/fs.realpath/README.md
deleted file mode 100644
index a42ceac..0000000
--- a/node_modules/fs.realpath/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# fs.realpath
-
-A backwards-compatible fs.realpath for Node v6 and above
-
-In Node v6, the JavaScript implementation of fs.realpath was replaced
-with a faster (but less resilient) native implementation. That raises
-new and platform-specific errors and cannot handle long or excessively
-symlink-looping paths.
-
-This module handles those cases by detecting the new errors and
-falling back to the JavaScript implementation. On versions of Node
-prior to v6, it has no effect.
-
-## USAGE
-
-```js
-var rp = require('fs.realpath')
-
-// async version
-rp.realpath(someLongAndLoopingPath, function (er, real) {
- // the ELOOP was handled, but it was a bit slower
-})
-
-// sync version
-var real = rp.realpathSync(someLongAndLoopingPath)
-
-// monkeypatch at your own risk!
-// This replaces the fs.realpath/fs.realpathSync builtins
-rp.monkeypatch()
-
-// un-do the monkeypatching
-rp.unmonkeypatch()
-```
diff --git a/node_modules/fs.realpath/index.js b/node_modules/fs.realpath/index.js
deleted file mode 100644
index b09c7c7..0000000
--- a/node_modules/fs.realpath/index.js
+++ /dev/null
@@ -1,66 +0,0 @@
-module.exports = realpath
-realpath.realpath = realpath
-realpath.sync = realpathSync
-realpath.realpathSync = realpathSync
-realpath.monkeypatch = monkeypatch
-realpath.unmonkeypatch = unmonkeypatch
-
-var fs = require('fs')
-var origRealpath = fs.realpath
-var origRealpathSync = fs.realpathSync
-
-var version = process.version
-var ok = /^v[0-5]\./.test(version)
-var old = require('./old.js')
-
-function newError (er) {
- return er && er.syscall === 'realpath' && (
- er.code === 'ELOOP' ||
- er.code === 'ENOMEM' ||
- er.code === 'ENAMETOOLONG'
- )
-}
-
-function realpath (p, cache, cb) {
- if (ok) {
- return origRealpath(p, cache, cb)
- }
-
- if (typeof cache === 'function') {
- cb = cache
- cache = null
- }
- origRealpath(p, cache, function (er, result) {
- if (newError(er)) {
- old.realpath(p, cache, cb)
- } else {
- cb(er, result)
- }
- })
-}
-
-function realpathSync (p, cache) {
- if (ok) {
- return origRealpathSync(p, cache)
- }
-
- try {
- return origRealpathSync(p, cache)
- } catch (er) {
- if (newError(er)) {
- return old.realpathSync(p, cache)
- } else {
- throw er
- }
- }
-}
-
-function monkeypatch () {
- fs.realpath = realpath
- fs.realpathSync = realpathSync
-}
-
-function unmonkeypatch () {
- fs.realpath = origRealpath
- fs.realpathSync = origRealpathSync
-}
diff --git a/node_modules/fs.realpath/old.js b/node_modules/fs.realpath/old.js
deleted file mode 100644
index b40305e..0000000
--- a/node_modules/fs.realpath/old.js
+++ /dev/null
@@ -1,303 +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.
-
-var pathModule = require('path');
-var isWindows = process.platform === 'win32';
-var fs = require('fs');
-
-// JavaScript implementation of realpath, ported from node pre-v6
-
-var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
-
-function rethrow() {
- // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
- // is fairly slow to generate.
- var callback;
- if (DEBUG) {
- var backtrace = new Error;
- callback = debugCallback;
- } else
- callback = missingCallback;
-
- return callback;
-
- function debugCallback(err) {
- if (err) {
- backtrace.message = err.message;
- err = backtrace;
- missingCallback(err);
- }
- }
-
- function missingCallback(err) {
- if (err) {
- if (process.throwDeprecation)
- throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
- else if (!process.noDeprecation) {
- var msg = 'fs: missing callback ' + (err.stack || err.message);
- if (process.traceDeprecation)
- console.trace(msg);
- else
- console.error(msg);
- }
- }
- }
-}
-
-function maybeCallback(cb) {
- return typeof cb === 'function' ? cb : rethrow();
-}
-
-var normalize = pathModule.normalize;
-
-// Regexp that finds the next partion of a (partial) path
-// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
-if (isWindows) {
- var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
-} else {
- var nextPartRe = /(.*?)(?:[\/]+|$)/g;
-}
-
-// Regex to find the device root, including trailing slash. E.g. 'c:\\'.
-if (isWindows) {
- var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
-} else {
- var splitRootRe = /^[\/]*/;
-}
-
-exports.realpathSync = function realpathSync(p, cache) {
- // make p is absolute
- p = pathModule.resolve(p);
-
- if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
- return cache[p];
- }
-
- var original = p,
- seenLinks = {},
- knownHard = {};
-
- // current character position in p
- var pos;
- // the partial path so far, including a trailing slash if any
- var current;
- // the partial path without a trailing slash (except when pointing at a root)
- var base;
- // the partial path scanned in the previous round, with slash
- var previous;
-
- start();
-
- function start() {
- // Skip over roots
- var m = splitRootRe.exec(p);
- pos = m[0].length;
- current = m[0];
- base = m[0];
- previous = '';
-
- // On windows, check that the root exists. On unix there is no need.
- if (isWindows && !knownHard[base]) {
- fs.lstatSync(base);
- knownHard[base] = true;
- }
- }
-
- // walk down the path, swapping out linked pathparts for their real
- // values
- // NB: p.length changes.
- while (pos < p.length) {
- // find the next part
- nextPartRe.lastIndex = pos;
- var result = nextPartRe.exec(p);
- previous = current;
- current += result[0];
- base = previous + result[1];
- pos = nextPartRe.lastIndex;
-
- // continue if not a symlink
- if (knownHard[base] || (cache && cache[base] === base)) {
- continue;
- }
-
- var resolvedLink;
- if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
- // some known symbolic link. no need to stat again.
- resolvedLink = cache[base];
- } else {
- var stat = fs.lstatSync(base);
- if (!stat.isSymbolicLink()) {
- knownHard[base] = true;
- if (cache) cache[base] = base;
- continue;
- }
-
- // read the link if it wasn't read before
- // dev/ino always return 0 on windows, so skip the check.
- var linkTarget = null;
- if (!isWindows) {
- var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
- if (seenLinks.hasOwnProperty(id)) {
- linkTarget = seenLinks[id];
- }
- }
- if (linkTarget === null) {
- fs.statSync(base);
- linkTarget = fs.readlinkSync(base);
- }
- resolvedLink = pathModule.resolve(previous, linkTarget);
- // track this, if given a cache.
- if (cache) cache[base] = resolvedLink;
- if (!isWindows) seenLinks[id] = linkTarget;
- }
-
- // resolve the link, then start over
- p = pathModule.resolve(resolvedLink, p.slice(pos));
- start();
- }
-
- if (cache) cache[original] = p;
-
- return p;
-};
-
-
-exports.realpath = function realpath(p, cache, cb) {
- if (typeof cb !== 'function') {
- cb = maybeCallback(cache);
- cache = null;
- }
-
- // make p is absolute
- p = pathModule.resolve(p);
-
- if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
- return process.nextTick(cb.bind(null, null, cache[p]));
- }
-
- var original = p,
- seenLinks = {},
- knownHard = {};
-
- // current character position in p
- var pos;
- // the partial path so far, including a trailing slash if any
- var current;
- // the partial path without a trailing slash (except when pointing at a root)
- var base;
- // the partial path scanned in the previous round, with slash
- var previous;
-
- start();
-
- function start() {
- // Skip over roots
- var m = splitRootRe.exec(p);
- pos = m[0].length;
- current = m[0];
- base = m[0];
- previous = '';
-
- // On windows, check that the root exists. On unix there is no need.
- if (isWindows && !knownHard[base]) {
- fs.lstat(base, function(err) {
- if (err) return cb(err);
- knownHard[base] = true;
- LOOP();
- });
- } else {
- process.nextTick(LOOP);
- }
- }
-
- // walk down the path, swapping out linked pathparts for their real
- // values
- function LOOP() {
- // stop if scanned past end of path
- if (pos >= p.length) {
- if (cache) cache[original] = p;
- return cb(null, p);
- }
-
- // find the next part
- nextPartRe.lastIndex = pos;
- var result = nextPartRe.exec(p);
- previous = current;
- current += result[0];
- base = previous + result[1];
- pos = nextPartRe.lastIndex;
-
- // continue if not a symlink
- if (knownHard[base] || (cache && cache[base] === base)) {
- return process.nextTick(LOOP);
- }
-
- if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
- // known symbolic link. no need to stat again.
- return gotResolvedLink(cache[base]);
- }
-
- return fs.lstat(base, gotStat);
- }
-
- function gotStat(err, stat) {
- if (err) return cb(err);
-
- // if not a symlink, skip to the next path part
- if (!stat.isSymbolicLink()) {
- knownHard[base] = true;
- if (cache) cache[base] = base;
- return process.nextTick(LOOP);
- }
-
- // stat & read the link if not read before
- // call gotTarget as soon as the link target is known
- // dev/ino always return 0 on windows, so skip the check.
- if (!isWindows) {
- var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
- if (seenLinks.hasOwnProperty(id)) {
- return gotTarget(null, seenLinks[id], base);
- }
- }
- fs.stat(base, function(err) {
- if (err) return cb(err);
-
- fs.readlink(base, function(err, target) {
- if (!isWindows) seenLinks[id] = target;
- gotTarget(err, target);
- });
- });
- }
-
- function gotTarget(err, target, base) {
- if (err) return cb(err);
-
- var resolvedLink = pathModule.resolve(previous, target);
- if (cache) cache[base] = resolvedLink;
- gotResolvedLink(resolvedLink);
- }
-
- function gotResolvedLink(resolvedLink) {
- // resolve the link, then start over
- p = pathModule.resolve(resolvedLink, p.slice(pos));
- start();
- }
-};
diff --git a/node_modules/fs.realpath/package.json b/node_modules/fs.realpath/package.json
deleted file mode 100644
index 89b4c6d..0000000
--- a/node_modules/fs.realpath/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "_from": "fs.realpath@^1.0.0",
- "_id": "fs.realpath@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "_location": "/fs.realpath",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "fs.realpath@^1.0.0",
- "name": "fs.realpath",
- "escapedName": "fs.realpath",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/glob"
- ],
- "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
- "_spec": "fs.realpath@^1.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/glob",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/fs.realpath/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails",
- "devDependencies": {},
- "files": [
- "old.js",
- "index.js"
- ],
- "homepage": "https://github.com/isaacs/fs.realpath#readme",
- "keywords": [
- "realpath",
- "fs",
- "polyfill"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "fs.realpath",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/fs.realpath.git"
- },
- "scripts": {
- "test": "tap test/*.js --cov"
- },
- "version": "1.0.0"
-}
diff --git a/node_modules/function-bind/.editorconfig b/node_modules/function-bind/.editorconfig
deleted file mode 100644
index ac29ade..0000000
--- a/node_modules/function-bind/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 120
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
diff --git a/node_modules/function-bind/.eslintrc b/node_modules/function-bind/.eslintrc
deleted file mode 100644
index 9b33d8e..0000000
--- a/node_modules/function-bind/.eslintrc
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "func-name-matching": 0,
- "indent": [2, 4],
- "max-nested-callbacks": [2, 3],
- "max-params": [2, 3],
- "max-statements": [2, 20],
- "no-new-func": [1],
- "strict": [0]
- }
-}
diff --git a/node_modules/function-bind/.jscs.json b/node_modules/function-bind/.jscs.json
deleted file mode 100644
index 8c44794..0000000
--- a/node_modules/function-bind/.jscs.json
+++ /dev/null
@@ -1,176 +0,0 @@
-{
- "es3": true,
-
- "additionalRules": [],
-
- "requireSemicolons": true,
-
- "disallowMultipleSpaces": true,
-
- "disallowIdentifierNames": [],
-
- "requireCurlyBraces": {
- "allExcept": [],
- "keywords": ["if", "else", "for", "while", "do", "try", "catch"]
- },
-
- "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"],
-
- "disallowSpaceAfterKeywords": [],
-
- "disallowSpaceBeforeComma": true,
- "disallowSpaceAfterComma": false,
- "disallowSpaceBeforeSemicolon": true,
-
- "disallowNodeTypes": [
- "DebuggerStatement",
- "ForInStatement",
- "LabeledStatement",
- "SwitchCase",
- "SwitchStatement",
- "WithStatement"
- ],
-
- "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] },
-
- "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true },
- "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
- "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
-
- "requireSpaceBetweenArguments": true,
-
- "disallowSpacesInsideParentheses": true,
-
- "disallowSpacesInsideArrayBrackets": true,
-
- "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] },
-
- "disallowSpaceAfterObjectKeys": true,
-
- "requireCommaBeforeLineBreak": true,
-
- "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
- "requireSpaceAfterPrefixUnaryOperators": [],
-
- "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
- "requireSpaceBeforePostfixUnaryOperators": [],
-
- "disallowSpaceBeforeBinaryOperators": [],
- "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
-
- "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
- "disallowSpaceAfterBinaryOperators": [],
-
- "disallowImplicitTypeConversion": ["binary", "string"],
-
- "disallowKeywords": ["with", "eval"],
-
- "requireKeywordsOnNewLine": [],
- "disallowKeywordsOnNewLine": ["else"],
-
- "requireLineFeedAtFileEnd": true,
-
- "disallowTrailingWhitespace": true,
-
- "disallowTrailingComma": true,
-
- "excludeFiles": ["node_modules/**", "vendor/**"],
-
- "disallowMultipleLineStrings": true,
-
- "requireDotNotation": { "allExcept": ["keywords"] },
-
- "requireParenthesesAroundIIFE": true,
-
- "validateLineBreaks": "LF",
-
- "validateQuoteMarks": {
- "escape": true,
- "mark": "'"
- },
-
- "disallowOperatorBeforeLineBreak": [],
-
- "requireSpaceBeforeKeywords": [
- "do",
- "for",
- "if",
- "else",
- "switch",
- "case",
- "try",
- "catch",
- "finally",
- "while",
- "with",
- "return"
- ],
-
- "validateAlignedFunctionParameters": {
- "lineBreakAfterOpeningBraces": true,
- "lineBreakBeforeClosingBraces": true
- },
-
- "requirePaddingNewLinesBeforeExport": true,
-
- "validateNewlineAfterArrayElements": {
- "maximum": 8
- },
-
- "requirePaddingNewLinesAfterUseStrict": true,
-
- "disallowArrowFunctions": true,
-
- "disallowMultiLineTernary": true,
-
- "validateOrderInObjectKeys": "asc-insensitive",
-
- "disallowIdenticalDestructuringNames": true,
-
- "disallowNestedTernaries": { "maxLevel": 1 },
-
- "requireSpaceAfterComma": { "allExcept": ["trailing"] },
- "requireAlignedMultilineParams": false,
-
- "requireSpacesInGenerator": {
- "afterStar": true
- },
-
- "disallowSpacesInGenerator": {
- "beforeStar": true
- },
-
- "disallowVar": false,
-
- "requireArrayDestructuring": false,
-
- "requireEnhancedObjectLiterals": false,
-
- "requireObjectDestructuring": false,
-
- "requireEarlyReturn": false,
-
- "requireCapitalizedConstructorsNew": {
- "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"]
- },
-
- "requireImportAlphabetized": false,
-
- "requireSpaceBeforeObjectValues": true,
- "requireSpaceBeforeDestructuredValues": true,
-
- "disallowSpacesInsideTemplateStringPlaceholders": true,
-
- "disallowArrayDestructuringReturn": false,
-
- "requireNewlineBeforeSingleStatementsInIf": false,
-
- "disallowUnusedVariables": true,
-
- "requireSpacesInsideImportedObjectBraces": true,
-
- "requireUseStrict": true
-}
-
diff --git a/node_modules/function-bind/.npmignore b/node_modules/function-bind/.npmignore
deleted file mode 100644
index dbb555f..0000000
--- a/node_modules/function-bind/.npmignore
+++ /dev/null
@@ -1,22 +0,0 @@
-# gitignore
-.DS_Store
-.monitor
-.*.swp
-.nodemonignore
-releases
-*.log
-*.err
-fleet.json
-public/browserify
-bin/*.json
-.bin
-build
-compile
-.lock-wscript
-coverage
-node_modules
-
-# Only apps should have lockfiles
-npm-shrinkwrap.json
-package-lock.json
-yarn.lock
diff --git a/node_modules/function-bind/.travis.yml b/node_modules/function-bind/.travis.yml
deleted file mode 100644
index 85f70d2..0000000
--- a/node_modules/function-bind/.travis.yml
+++ /dev/null
@@ -1,168 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
- - "8.4"
- - "7.10"
- - "6.11"
- - "5.12"
- - "4.8"
- - "iojs-v3.3"
- - "iojs-v2.5"
- - "iojs-v1.8"
- - "0.12"
- - "0.10"
- - "0.8"
-before_install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi'
- - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then if [ "${TRAVIS_NODE_VERSION%${TRAVIS_NODE_VERSION#[0-9]}}" = "0" ] || [ "${TRAVIS_NODE_VERSION:0:4}" = "iojs" ]; then npm install -g npm@4.5 ; else npm install -g npm; fi; fi'
-install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
- - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
- - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
- - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-env:
- - TEST=true
-matrix:
- fast_finish: true
- include:
- - node_js: "node"
- env: PRETEST=true
- - node_js: "4"
- env: COVERAGE=true
- - node_js: "8.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.4"
- env: TEST=true ALLOW_FAILURE=true
- allow_failures:
- - os: osx
- - env: TEST=true ALLOW_FAILURE=true
diff --git a/node_modules/function-bind/LICENSE b/node_modules/function-bind/LICENSE
deleted file mode 100644
index 62d6d23..0000000
--- a/node_modules/function-bind/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2013 Raynos.
-
-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.
-
diff --git a/node_modules/function-bind/README.md b/node_modules/function-bind/README.md
deleted file mode 100644
index 81862a0..0000000
--- a/node_modules/function-bind/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# function-bind
-
-
-
-
-
-Implementation of function.prototype.bind
-
-## Example
-
-I mainly do this for unit tests I run on phantomjs.
-PhantomJS does not have Function.prototype.bind :(
-
-```js
-Function.prototype.bind = require("function-bind")
-```
-
-## Installation
-
-`npm install function-bind`
-
-## Contributors
-
- - Raynos
-
-## MIT Licenced
-
- [travis-svg]: https://travis-ci.org/Raynos/function-bind.svg
- [travis-url]: https://travis-ci.org/Raynos/function-bind
- [npm-badge-svg]: https://badge.fury.io/js/function-bind.svg
- [npm-url]: https://npmjs.org/package/function-bind
- [5]: https://coveralls.io/repos/Raynos/function-bind/badge.png
- [6]: https://coveralls.io/r/Raynos/function-bind
- [7]: https://gemnasium.com/Raynos/function-bind.png
- [8]: https://gemnasium.com/Raynos/function-bind
- [deps-svg]: https://david-dm.org/Raynos/function-bind.svg
- [deps-url]: https://david-dm.org/Raynos/function-bind
- [dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg
- [dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies
- [11]: https://ci.testling.com/Raynos/function-bind.png
- [12]: https://ci.testling.com/Raynos/function-bind
diff --git a/node_modules/function-bind/implementation.js b/node_modules/function-bind/implementation.js
deleted file mode 100644
index cc4daec..0000000
--- a/node_modules/function-bind/implementation.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-/* eslint no-invalid-this: 1 */
-
-var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
-var slice = Array.prototype.slice;
-var toStr = Object.prototype.toString;
-var funcType = '[object Function]';
-
-module.exports = function bind(that) {
- var target = this;
- if (typeof target !== 'function' || toStr.call(target) !== funcType) {
- throw new TypeError(ERROR_MESSAGE + target);
- }
- var args = slice.call(arguments, 1);
-
- var bound;
- var binder = function () {
- if (this instanceof bound) {
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
- }
- };
-
- var boundLength = Math.max(0, target.length - args.length);
- var boundArgs = [];
- for (var i = 0; i < boundLength; i++) {
- boundArgs.push('$' + i);
- }
-
- bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
-
- if (target.prototype) {
- var Empty = function Empty() {};
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
-
- return bound;
-};
diff --git a/node_modules/function-bind/index.js b/node_modules/function-bind/index.js
deleted file mode 100644
index 3bb6b96..0000000
--- a/node_modules/function-bind/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = Function.prototype.bind || implementation;
diff --git a/node_modules/function-bind/package.json b/node_modules/function-bind/package.json
deleted file mode 100644
index f011552..0000000
--- a/node_modules/function-bind/package.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "_from": "function-bind@^1.1.1",
- "_id": "function-bind@1.1.1",
- "_inBundle": false,
- "_integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "_location": "/function-bind",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "function-bind@^1.1.1",
- "name": "function-bind",
- "escapedName": "function-bind",
- "rawSpec": "^1.1.1",
- "saveSpec": null,
- "fetchSpec": "^1.1.1"
- },
- "_requiredBy": [
- "/has"
- ],
- "_resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "_shasum": "a56899d3ea3c9bab874bb9773b7c5ede92f4895d",
- "_spec": "function-bind@^1.1.1",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/has",
- "author": {
- "name": "Raynos",
- "email": "raynos2@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/Raynos/function-bind/issues",
- "email": "raynos2@gmail.com"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Raynos"
- },
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Implementation of Function.prototype.bind",
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "covert": "^1.1.0",
- "eslint": "^4.5.0",
- "jscs": "^3.0.7",
- "tape": "^4.8.0"
- },
- "homepage": "https://github.com/Raynos/function-bind",
- "keywords": [
- "function",
- "bind",
- "shim",
- "es5"
- ],
- "license": "MIT",
- "main": "index",
- "name": "function-bind",
- "repository": {
- "type": "git",
- "url": "git://github.com/Raynos/function-bind.git"
- },
- "scripts": {
- "coverage": "covert test/*.js",
- "eslint": "eslint *.js */*.js",
- "jscs": "jscs *.js */*.js",
- "lint": "npm run jscs && npm run eslint",
- "posttest": "npm run coverage -- --quiet",
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "tests-only": "node test"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "ie/8..latest",
- "firefox/16..latest",
- "firefox/nightly",
- "chrome/22..latest",
- "chrome/canary",
- "opera/12..latest",
- "opera/next",
- "safari/5.1..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2..latest"
- ]
- },
- "version": "1.1.1"
-}
diff --git a/node_modules/function-bind/test/.eslintrc b/node_modules/function-bind/test/.eslintrc
deleted file mode 100644
index 8a56d5b..0000000
--- a/node_modules/function-bind/test/.eslintrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "rules": {
- "array-bracket-newline": 0,
- "array-element-newline": 0,
- "max-statements-per-line": [2, { "max": 2 }],
- "no-invalid-this": 0,
- "no-magic-numbers": 0,
- }
-}
diff --git a/node_modules/function-bind/test/index.js b/node_modules/function-bind/test/index.js
deleted file mode 100644
index 2edecce..0000000
--- a/node_modules/function-bind/test/index.js
+++ /dev/null
@@ -1,252 +0,0 @@
-// jscs:disable requireUseStrict
-
-var test = require('tape');
-
-var functionBind = require('../implementation');
-var getCurrentContext = function () { return this; };
-
-test('functionBind is a function', function (t) {
- t.equal(typeof functionBind, 'function');
- t.end();
-});
-
-test('non-functions', function (t) {
- var nonFunctions = [true, false, [], {}, 42, 'foo', NaN, /a/g];
- t.plan(nonFunctions.length);
- for (var i = 0; i < nonFunctions.length; ++i) {
- try { functionBind.call(nonFunctions[i]); } catch (ex) {
- t.ok(ex instanceof TypeError, 'throws when given ' + String(nonFunctions[i]));
- }
- }
- t.end();
-});
-
-test('without a context', function (t) {
- t.test('binds properly', function (st) {
- var args, context;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- context = this;
- })
- };
- namespace.func(1, 2, 3);
- st.deepEqual(args, [1, 2, 3]);
- st.equal(context, getCurrentContext.call());
- st.end();
- });
-
- t.test('binds properly, and still supplies bound arguments', function (st) {
- var args, context;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- context = this;
- }, undefined, 1, 2, 3)
- };
- namespace.func(4, 5, 6);
- st.deepEqual(args, [1, 2, 3, 4, 5, 6]);
- st.equal(context, getCurrentContext.call());
- st.end();
- });
-
- t.test('returns properly', function (st) {
- var args;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- return this;
- }, null)
- };
- var context = namespace.func(1, 2, 3);
- st.equal(context, getCurrentContext.call(), 'returned context is namespaced context');
- st.deepEqual(args, [1, 2, 3], 'passed arguments are correct');
- st.end();
- });
-
- t.test('returns properly with bound arguments', function (st) {
- var args;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- return this;
- }, null, 1, 2, 3)
- };
- var context = namespace.func(4, 5, 6);
- st.equal(context, getCurrentContext.call(), 'returned context is namespaced context');
- st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct');
- st.end();
- });
-
- t.test('called as a constructor', function (st) {
- var thunkify = function (value) {
- return function () { return value; };
- };
- st.test('returns object value', function (sst) {
- var expectedReturnValue = [1, 2, 3];
- var Constructor = functionBind.call(thunkify(expectedReturnValue), null);
- var result = new Constructor();
- sst.equal(result, expectedReturnValue);
- sst.end();
- });
-
- st.test('does not return primitive value', function (sst) {
- var Constructor = functionBind.call(thunkify(42), null);
- var result = new Constructor();
- sst.notEqual(result, 42);
- sst.end();
- });
-
- st.test('object from bound constructor is instance of original and bound constructor', function (sst) {
- var A = function (x) {
- this.name = x || 'A';
- };
- var B = functionBind.call(A, null, 'B');
-
- var result = new B();
- sst.ok(result instanceof B, 'result is instance of bound constructor');
- sst.ok(result instanceof A, 'result is instance of original constructor');
- sst.end();
- });
-
- st.end();
- });
-
- t.end();
-});
-
-test('with a context', function (t) {
- t.test('with no bound arguments', function (st) {
- var args, context;
- var boundContext = {};
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- context = this;
- }, boundContext)
- };
- namespace.func(1, 2, 3);
- st.equal(context, boundContext, 'binds a context properly');
- st.deepEqual(args, [1, 2, 3], 'supplies passed arguments');
- st.end();
- });
-
- t.test('with bound arguments', function (st) {
- var args, context;
- var boundContext = {};
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- context = this;
- }, boundContext, 1, 2, 3)
- };
- namespace.func(4, 5, 6);
- st.equal(context, boundContext, 'binds a context properly');
- st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'supplies bound and passed arguments');
- st.end();
- });
-
- t.test('returns properly', function (st) {
- var boundContext = {};
- var args;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- return this;
- }, boundContext)
- };
- var context = namespace.func(1, 2, 3);
- st.equal(context, boundContext, 'returned context is bound context');
- st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context');
- st.deepEqual(args, [1, 2, 3], 'passed arguments are correct');
- st.end();
- });
-
- t.test('returns properly with bound arguments', function (st) {
- var boundContext = {};
- var args;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- return this;
- }, boundContext, 1, 2, 3)
- };
- var context = namespace.func(4, 5, 6);
- st.equal(context, boundContext, 'returned context is bound context');
- st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context');
- st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct');
- st.end();
- });
-
- t.test('passes the correct arguments when called as a constructor', function (st) {
- var expected = { name: 'Correct' };
- var namespace = {
- Func: functionBind.call(function (arg) {
- return arg;
- }, { name: 'Incorrect' })
- };
- var returned = new namespace.Func(expected);
- st.equal(returned, expected, 'returns the right arg when called as a constructor');
- st.end();
- });
-
- t.test('has the new instance\'s context when called as a constructor', function (st) {
- var actualContext;
- var expectedContext = { foo: 'bar' };
- var namespace = {
- Func: functionBind.call(function () {
- actualContext = this;
- }, expectedContext)
- };
- var result = new namespace.Func();
- st.equal(result instanceof namespace.Func, true);
- st.notEqual(actualContext, expectedContext);
- st.end();
- });
-
- t.end();
-});
-
-test('bound function length', function (t) {
- t.test('sets a correct length without thisArg', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; });
- st.equal(subject.length, 3);
- st.equal(subject(1, 2, 3), 6);
- st.end();
- });
-
- t.test('sets a correct length with thisArg', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {});
- st.equal(subject.length, 3);
- st.equal(subject(1, 2, 3), 6);
- st.end();
- });
-
- t.test('sets a correct length without thisArg and first argument', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1);
- st.equal(subject.length, 2);
- st.equal(subject(2, 3), 6);
- st.end();
- });
-
- t.test('sets a correct length with thisArg and first argument', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1);
- st.equal(subject.length, 2);
- st.equal(subject(2, 3), 6);
- st.end();
- });
-
- t.test('sets a correct length without thisArg and too many arguments', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1, 2, 3, 4);
- st.equal(subject.length, 0);
- st.equal(subject(), 6);
- st.end();
- });
-
- t.test('sets a correct length with thisArg and too many arguments', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1, 2, 3, 4);
- st.equal(subject.length, 0);
- st.equal(subject(), 6);
- st.end();
- });
-});
diff --git a/node_modules/get-assigned-identifiers/.travis.yml b/node_modules/get-assigned-identifiers/.travis.yml
deleted file mode 100644
index 989f791..0000000
--- a/node_modules/get-assigned-identifiers/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-node_js:
- - 8
- - 6
- - 4
-cache:
- directories:
- - ~/.npm
diff --git a/node_modules/get-assigned-identifiers/CHANGELOG.md b/node_modules/get-assigned-identifiers/CHANGELOG.md
deleted file mode 100644
index fe525db..0000000
--- a/node_modules/get-assigned-identifiers/CHANGELOG.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# get-destructure-identifiers change log
-
-All notable changes to this project will be documented in this file.
-
-This project adheres to [Semantic Versioning](http://semver.org/).
-
-## 1.2.0 / 2018-02-08
-
-* support object rest destructuring `{...a} = b`
-
-## 1.1.0 / 2017-12-02
-
-* support import declarations
-
-## 1.0.0 / 2017-11-11
-
-* initial release
diff --git a/node_modules/get-assigned-identifiers/LICENSE.md b/node_modules/get-assigned-identifiers/LICENSE.md
deleted file mode 100644
index 04361d9..0000000
--- a/node_modules/get-assigned-identifiers/LICENSE.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# [Apache License 2.0](https://spdx.org/licenses/Apache-2.0)
-
-Copyright 2017 Renée Kooi
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-> http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/node_modules/get-assigned-identifiers/README.md b/node_modules/get-assigned-identifiers/README.md
deleted file mode 100644
index 06957e4..0000000
--- a/node_modules/get-assigned-identifiers/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# get-assigned-identifiers
-
-get a list of identifiers that are initialised by a JavaScript AST node.
-
-[![npm][npm-image]][npm-url]
-[![travis][travis-image]][travis-url]
-[![standard][standard-image]][standard-url]
-
-[npm-image]: https://img.shields.io/npm/v/get-assigned-identifiers.svg?style=flat-square
-[npm-url]: https://www.npmjs.com/package/get-assigned-identifiers
-[travis-image]: https://img.shields.io/travis/goto-bus-stop/get-assigned-identifiers.svg?style=flat-square
-[travis-url]: https://travis-ci.org/goto-bus-stop/get-assigned-identifiers
-[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
-[standard-url]: http://npm.im/standard
-
-## Install
-
-```
-npm install get-assigned-identifiers
-```
-
-## Usage
-
-```js
-var getAssignedIdentifiers = require('get-assigned-identifiers')
-
-var ast = parse(`
- var { a, b: [ c,, ...x ], d } = whatever()
-`)
-var node = ast.body[0].declarations[0].id
-getAssignedIdentifiers(node)
-// → [{ name: 'a' }, { name: 'c' }, { name: 'x' }, { name: 'd' }]
-```
-
-## API
-
-### `getAssignedIdentifiers(node)`
-
-Return an array of AST Nodes referencing identifiers that are initialised by the `node`, taking into account destructuring.
-
-If `node` is not an identifier or destructuring node, this returns an empty array.
-
-## License
-
-[Apache-2.0](LICENSE.md)
diff --git a/node_modules/get-assigned-identifiers/index.js b/node_modules/get-assigned-identifiers/index.js
deleted file mode 100644
index 5933f83..0000000
--- a/node_modules/get-assigned-identifiers/index.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var assert = require('assert')
-
-/**
- * Get a list of all identifiers that are initialised by this (possibly destructuring)
- * node.
- *
- * eg with input:
- *
- * var { a: [b, ...c], d } = xyz
- *
- * this returns the nodes for 'b', 'c', and 'd'
- */
-module.exports = function getAssignedIdentifiers (node, identifiers) {
- assert.equal(typeof node, 'object', 'get-assigned-identifiers: node must be object')
- assert.equal(typeof node.type, 'string', 'get-assigned-identifiers: node must have a type')
-
- identifiers = identifiers || []
-
- if (node.type === 'ImportDeclaration') {
- node.specifiers.forEach(function (el) {
- getAssignedIdentifiers(el, identifiers)
- })
- }
-
- if (node.type === 'ImportDefaultSpecifier' || node.type === 'ImportNamespaceSpecifier' || node.type === 'ImportSpecifier') {
- node = node.local
- }
-
- if (node.type === 'RestElement') {
- node = node.argument
- }
-
- if (node.type === 'ArrayPattern') {
- node.elements.forEach(function (el) {
- // `el` might be `null` in case of `[x,,y] = whatever`
- if (el) {
- getAssignedIdentifiers(el, identifiers)
- }
- })
- }
-
- if (node.type === 'ObjectPattern') {
- node.properties.forEach(function (prop) {
- if (prop.type === 'Property') {
- getAssignedIdentifiers(prop.value, identifiers)
- } else if (prop.type === 'RestElement') {
- getAssignedIdentifiers(prop, identifiers)
- }
- })
- }
-
- if (node.type === 'Identifier') {
- identifiers.push(node)
- }
-
- return identifiers
-}
diff --git a/node_modules/get-assigned-identifiers/package.json b/node_modules/get-assigned-identifiers/package.json
deleted file mode 100644
index e2bc73c..0000000
--- a/node_modules/get-assigned-identifiers/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "_from": "get-assigned-identifiers@^1.2.0",
- "_id": "get-assigned-identifiers@1.2.0",
- "_inBundle": false,
- "_integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==",
- "_location": "/get-assigned-identifiers",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "get-assigned-identifiers@^1.2.0",
- "name": "get-assigned-identifiers",
- "escapedName": "get-assigned-identifiers",
- "rawSpec": "^1.2.0",
- "saveSpec": null,
- "fetchSpec": "^1.2.0"
- },
- "_requiredBy": [
- "/undeclared-identifiers"
- ],
- "_resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz",
- "_shasum": "6dbf411de648cbaf8d9169ebb0d2d576191e2ff1",
- "_spec": "get-assigned-identifiers@^1.2.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/undeclared-identifiers",
- "author": {
- "name": "Renée Kooi",
- "email": "renee@kooi.me"
- },
- "bugs": {
- "url": "https://github.com/goto-bus-stop/get-assigned-identifiers/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "get a list of identifiers that are initialised by a JavaScript AST node.",
- "devDependencies": {
- "acorn": "^5.4.1",
- "standard": "^10.0.3",
- "tape": "^4.8.0"
- },
- "homepage": "https://github.com/goto-bus-stop/get-assigned-identifiers",
- "keywords": [
- "ast",
- "bindings",
- "destructuring",
- "identifiers",
- "javascript",
- "names",
- "node"
- ],
- "license": "Apache-2.0",
- "main": "index.js",
- "name": "get-assigned-identifiers",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/goto-bus-stop/get-assigned-identifiers.git"
- },
- "scripts": {
- "test": "standard && tape test/*.js"
- },
- "version": "1.2.0"
-}
diff --git a/node_modules/get-assigned-identifiers/test/index.js b/node_modules/get-assigned-identifiers/test/index.js
deleted file mode 100644
index 3fbb2dd..0000000
--- a/node_modules/get-assigned-identifiers/test/index.js
+++ /dev/null
@@ -1,122 +0,0 @@
-var test = require('tape')
-var assert = require('assert')
-var parse = require('acorn').parse
-var getAssignedIdentifiers = require('../')
-
-function getName (node) {
- assert.equal(node.type, 'Identifier', 'Returned node must be an Identifier')
- return node.name
-}
-
-test('example', function (t) {
- t.plan(1)
-
- var ast = parse(`
- var { a, b: [ c,, ...x ], d } = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [
- 'a',
- 'c',
- 'x',
- 'd'
- ])
-})
-
-test('simple identifiers', function (t) {
- t.plan(1)
- var ast = parse(`
- var xyz = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'xyz' ])
-})
-
-test('array destructuring', function (t) {
- t.plan(1)
- var ast = parse(`
- var [a, b, c] = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'a', 'b', 'c' ])
-})
-
-test('array destructuring with rest element', function (t) {
- t.plan(1)
- var ast = parse(`
- var [a, b, ...rest] = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'a', 'b', 'rest' ])
-})
-
-test('array destructuring with holes', function (t) {
- t.plan(1)
- var ast = parse(`
- var [a, b,,,,,, boop] = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'a', 'b', 'boop' ])
-})
-
-test('nested array destructuring', function (t) {
- t.plan(1)
- var ast = parse(`
- var [a, [[[b]], ...c], boop] = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'a', 'b', 'c', 'boop' ])
-})
-
-test('object destructuring', function (t) {
- t.plan(1)
- var ast = parse(`
- var {a, b} = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'a', 'b' ])
-})
-
-test('object destructuring with different names', function (t) {
- t.plan(1)
- var ast = parse(`
- var {a: b, b: lol} = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'b', 'lol' ])
-})
-
-test('nested object destructuring', function (t) {
- t.plan(1)
- var ast = parse(`
- var {a: {b}, b: lol, c: {
- d, e: { f: g }
- }} = whatever()
- `)
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'b', 'lol', 'd', 'g' ])
-})
-
-test('object rest destructuring', function (t) {
- t.plan(1)
- var ast = parse(`
- var {a, ...b} = whatever()
- `, { ecmaVersion: 9 })
- var node = ast.body[0].declarations[0].id
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'a', 'b' ])
-})
-
-test('import declarations', function (t) {
- t.plan(2)
- var ast = parse(`
- import x, { y, z as a } from 'module'
- `, { sourceType: 'module' })
- var node = ast.body[0]
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'x', 'y', 'a' ])
-
- ast = parse(`
- import * as ns from 'module'
- `, { sourceType: 'module' })
- node = ast.body[0]
- t.deepEqual(getAssignedIdentifiers(node).map(getName), [ 'ns' ])
-})
diff --git a/node_modules/glob/LICENSE b/node_modules/glob/LICENSE
deleted file mode 100644
index 42ca266..0000000
--- a/node_modules/glob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-## Glob Logo
-
-Glob's logo created by Tanya Brassie , licensed
-under a Creative Commons Attribution-ShareAlike 4.0 International License
-https://creativecommons.org/licenses/by-sa/4.0/
diff --git a/node_modules/glob/README.md b/node_modules/glob/README.md
deleted file mode 100644
index 0916a48..0000000
--- a/node_modules/glob/README.md
+++ /dev/null
@@ -1,375 +0,0 @@
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master)
-
-This is a glob implementation in JavaScript. It uses the `minimatch`
-library to do its matching.
-
-![](logo/glob.png)
-
-## Usage
-
-Install with npm
-
-```
-npm i glob
-```
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
- // files is an array of filenames.
- // If the `nonull` option is set, and nothing
- // was found, then files is ["**/*.js"]
- // er is an error object or null.
-})
-```
-
-## Glob Primer
-
-"Globs" are the patterns you type when you do stuff like `ls *.js` on
-the command line, or put `build/*` in a `.gitignore` file.
-
-Before parsing the path part patterns, braced sections are expanded
-into a set. Braced sections start with `{` and end with `}`, with any
-number of comma-delimited sections within. Braced sections may contain
-slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
-
-The following characters have special magic meaning when used in a
-path portion:
-
-* `*` Matches 0 or more characters in a single path portion
-* `?` Matches 1 character
-* `[...]` Matches a range of characters, similar to a RegExp range.
- If the first character of the range is `!` or `^` then it matches
- any character not in the range.
-* `!(pattern|pattern|pattern)` Matches anything that does not match
- any of the patterns provided.
-* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
- patterns provided.
-* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
- patterns provided.
-* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
-* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
- provided
-* `**` If a "globstar" is alone in a path portion, then it matches
- zero or more directories and subdirectories searching for matches.
- It does not crawl symlinked directories.
-
-### Dots
-
-If a file or directory path portion has a `.` as the first character,
-then it will not match any glob pattern unless that pattern's
-corresponding path part also has a `.` as its first character.
-
-For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
-However the pattern `a/*/c` would not, because `*` does not start with
-a dot character.
-
-You can make glob treat dots as normal characters by setting
-`dot:true` in the options.
-
-### Basename Matching
-
-If you set `matchBase:true` in the options, and the pattern has no
-slashes in it, then it will seek for any file anywhere in the tree
-with a matching basename. For example, `*.js` would match
-`test/simple/basic.js`.
-
-### Empty Sets
-
-If no matching files are found, then an empty array is returned. This
-differs from the shell, where the pattern itself is returned. For
-example:
-
- $ echo a*s*d*f
- a*s*d*f
-
-To get the bash-style behavior, set the `nonull:true` in the options.
-
-### See Also:
-
-* `man sh`
-* `man bash` (Search for "Pattern Matching")
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob.hasMagic(pattern, [options])
-
-Returns `true` if there are any special characters in the pattern, and
-`false` otherwise.
-
-Note that the options affect the results. If `noext:true` is set in
-the options object, then `+(a|b)` will not be considered a magic
-pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`
-then that is considered magical, unless `nobrace:true` is set in the
-options.
-
-## glob(pattern, [options], cb)
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* `cb` `{Function}`
- * `err` `{Error | null}`
- * `matches` `{Array}` filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* return: `{Array}` filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instantiating the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` `{String}` pattern to search for
-* `options` `{Object}`
-* `cb` `{Function}` Called when an error occurs, or matches are found
- * `err` `{Error | null}`
- * `matches` `{Array}` filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `aborted` Boolean which is set to true when calling `abort()`. There
- is no way at this time to continue a glob search after aborting, but
- you can re-use the statCache to avoid having to duplicate syscalls.
-* `cache` Convenience object. Each field has the following possible
- values:
- * `false` - Path does not exist
- * `true` - Path exists
- * `'FILE'` - Path exists, and is not a directory
- * `'DIR'` - Path exists, and is a directory
- * `[file, entries, ...]` - Path exists, is a directory, and the
- array value is the results of `fs.readdir`
-* `statCache` Cache of `fs.stat` results, to prevent statting the same
- path multiple times.
-* `symlinks` A record of which paths are symbolic links, which is
- relevant in resolving `**` patterns.
-* `realpathCache` An optional object which is passed to `fs.realpath`
- to minimize unnecessary syscalls. It is stored on the instantiated
- Glob object, and may be re-used.
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
- matches found. If the `nonull` option is set, and no match was found,
- then the `matches` list contains the original pattern. The matches
- are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the specific
- thing that matched. It is not deduplicated or resolved to a realpath.
-* `error` Emitted when an unexpected error is encountered, or whenever
- any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `pause` Temporarily stop the search
-* `resume` Resume the search
-* `abort` Stop the search forever
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior. Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the Glob object, as well.
-
-If you are running many `glob` operations, you can pass a Glob object
-as the `options` argument to a subsequent operation to shortcut some
-`stat` and `readdir` calls. At the very least, you may pass in shared
-`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
-parallel glob operations will be sped up by sharing information about
-the filesystem.
-
-* `cwd` The current working directory in which to search. Defaults
- to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
- onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
- systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
- Note that an explicit dot in a portion of the pattern will always
- match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
- "mounted" onto the root setting, so that a valid filesystem path is
- returned. Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches. Note that this
- requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results. This reduces performance
- somewhat, and is completely unnecessary, unless `readdir` is presumed
- to be an untrustworthy indicator of file existence.
-* `silent` When an unusual error is encountered when attempting to
- read a directory, a warning will be printed to stderr. Set the
- `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered when attempting to
- read a directory, the process will just continue on in search of
- other matches. Set the `strict` option to raise an error in these
- cases.
-* `cache` See `cache` property above. Pass in a previously generated
- cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
- unnecessary stat calls. While it should not normally be necessary
- to set this, you may pass the statCache from one glob() call to the
- options object of another, if you know that the filesystem will not
- change between calls. (See "Race Conditions" below.)
-* `symlinks` A cache of known symbolic links. You may pass in a
- previously generated `symlinks` object to save `lstat` calls when
- resolving `**` matches.
-* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
-* `nounique` In some cases, brace-expanded patterns can result in the
- same file showing up multiple times in the result set. By default,
- this implementation prevents duplicates in the result set. Set this
- flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
- containing the pattern itself. This is the default in glob(3).
-* `debug` Set to enable debug logging in minimatch and glob.
-* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
-* `noglobstar` Do not match `**` against multiple filenames. (Ie,
- treat it as a normal `*` instead.)
-* `noext` Do not match `+(a|b)` "extglob" patterns.
-* `nocase` Perform a case-insensitive match. Note: on
- case-insensitive filesystems, non-magic patterns will match by
- default, since `stat` and `readdir` will not raise errors.
-* `matchBase` Perform a basename-only match if the pattern does not
- contain any slash characters. That is, `*.js` would be treated as
- equivalent to `**/*.js`, matching all js files in all directories.
-* `nodir` Do not match directories, only files. (Note: to match
- *only* directories, simply put a `/` at the end of the pattern.)
-* `ignore` Add a pattern or an array of glob patterns to exclude matches.
- Note: `ignore` patterns are *always* in `dot:true` mode, regardless
- of any other settings.
-* `follow` Follow symlinked directories when expanding `**` patterns.
- Note that this can result in a lot of duplicate references in the
- presence of cyclic links.
-* `realpath` Set to true to call `fs.realpath` on all of the results.
- In the case of a symlink that cannot be resolved, the full absolute
- path to the matched entry is returned (though it will usually be a
- broken symlink)
-* `absolute` Set to true to always receive absolute paths for matched
- files. Unlike `realpath`, this also affects the values returned in
- the `match` event.
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.3, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-Note that symlinked directories are not crawled as part of a `**`,
-though their contents may match against subsequent portions of the
-pattern. This prevents infinite loops and duplicates and the like.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
-
-### Comments and Negation
-
-Previously, this module let you mark a pattern as a "comment" if it
-started with a `#` character, or a "negated" pattern if it started
-with a `!` character.
-
-These options were deprecated in version 5, and removed in version 6.
-
-To specify things that should not match, use the `ignore` option.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation. You must use
-forward-slashes **only** in glob expressions. Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`. On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead. However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes. For the vast majority
-of operations, this is never a problem.
-
-## Glob Logo
-Glob's logo was created by [Tanya Brassie](http://tanyabrassie.com/). Logo files can be found [here](https://github.com/isaacs/node-glob/tree/master/logo).
-
-The logo is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).
-
-## Contributing
-
-Any change to behavior (including bugfixes) must come with a test.
-
-Patches that fail tests or reduce performance will be rejected.
-
-```
-# to run tests
-npm test
-
-# to re-generate test fixtures
-npm run test-regen
-
-# to benchmark against bash/zsh
-npm run bench
-
-# to profile javascript
-npm run prof
-```
-
-![](oh-my-glob.gif)
diff --git a/node_modules/glob/changelog.md b/node_modules/glob/changelog.md
deleted file mode 100644
index 4163677..0000000
--- a/node_modules/glob/changelog.md
+++ /dev/null
@@ -1,67 +0,0 @@
-## 7.0
-
-- Raise error if `options.cwd` is specified, and not a directory
-
-## 6.0
-
-- Remove comment and negation pattern support
-- Ignore patterns are always in `dot:true` mode
-
-## 5.0
-
-- Deprecate comment and negation patterns
-- Fix regression in `mark` and `nodir` options from making all cache
- keys absolute path.
-- Abort if `fs.readdir` returns an error that's unexpected
-- Don't emit `match` events for ignored items
-- Treat ENOTSUP like ENOTDIR in readdir
-
-## 4.5
-
-- Add `options.follow` to always follow directory symlinks in globstar
-- Add `options.realpath` to call `fs.realpath` on all results
-- Always cache based on absolute path
-
-## 4.4
-
-- Add `options.ignore`
-- Fix handling of broken symlinks
-
-## 4.3
-
-- Bump minimatch to 2.x
-- Pass all tests on Windows
-
-## 4.2
-
-- Add `glob.hasMagic` function
-- Add `options.nodir` flag
-
-## 4.1
-
-- Refactor sync and async implementations for performance
-- Throw if callback provided to sync glob function
-- Treat symbolic links in globstar results the same as Bash 4.3
-
-## 4.0
-
-- Use `^` for dependency versions (bumped major because this breaks
- older npm versions)
-- Ensure callbacks are only ever called once
-- switch to ISC license
-
-## 3.x
-
-- Rewrite in JavaScript
-- Add support for setting root, cwd, and windows support
-- Cache many fs calls
-- Add globstar support
-- emit match events
-
-## 2.x
-
-- Use `glob.h` and `fnmatch.h` from NetBSD
-
-## 1.x
-
-- `glob.h` static binding.
diff --git a/node_modules/glob/common.js b/node_modules/glob/common.js
deleted file mode 100644
index 66651bb..0000000
--- a/node_modules/glob/common.js
+++ /dev/null
@@ -1,240 +0,0 @@
-exports.alphasort = alphasort
-exports.alphasorti = alphasorti
-exports.setopts = setopts
-exports.ownProp = ownProp
-exports.makeAbs = makeAbs
-exports.finish = finish
-exports.mark = mark
-exports.isIgnored = isIgnored
-exports.childrenIgnored = childrenIgnored
-
-function ownProp (obj, field) {
- return Object.prototype.hasOwnProperty.call(obj, field)
-}
-
-var path = require("path")
-var minimatch = require("minimatch")
-var isAbsolute = require("path-is-absolute")
-var Minimatch = minimatch.Minimatch
-
-function alphasorti (a, b) {
- return a.toLowerCase().localeCompare(b.toLowerCase())
-}
-
-function alphasort (a, b) {
- return a.localeCompare(b)
-}
-
-function setupIgnores (self, options) {
- self.ignore = options.ignore || []
-
- if (!Array.isArray(self.ignore))
- self.ignore = [self.ignore]
-
- if (self.ignore.length) {
- self.ignore = self.ignore.map(ignoreMap)
- }
-}
-
-// ignore patterns are always in dot:true mode.
-function ignoreMap (pattern) {
- var gmatcher = null
- if (pattern.slice(-3) === '/**') {
- var gpattern = pattern.replace(/(\/\*\*)+$/, '')
- gmatcher = new Minimatch(gpattern, { dot: true })
- }
-
- return {
- matcher: new Minimatch(pattern, { dot: true }),
- gmatcher: gmatcher
- }
-}
-
-function setopts (self, pattern, options) {
- if (!options)
- options = {}
-
- // base-matching: just use globstar for that.
- if (options.matchBase && -1 === pattern.indexOf("/")) {
- if (options.noglobstar) {
- throw new Error("base matching requires globstar")
- }
- pattern = "**/" + pattern
- }
-
- self.silent = !!options.silent
- self.pattern = pattern
- self.strict = options.strict !== false
- self.realpath = !!options.realpath
- self.realpathCache = options.realpathCache || Object.create(null)
- self.follow = !!options.follow
- self.dot = !!options.dot
- self.mark = !!options.mark
- self.nodir = !!options.nodir
- if (self.nodir)
- self.mark = true
- self.sync = !!options.sync
- self.nounique = !!options.nounique
- self.nonull = !!options.nonull
- self.nosort = !!options.nosort
- self.nocase = !!options.nocase
- self.stat = !!options.stat
- self.noprocess = !!options.noprocess
- self.absolute = !!options.absolute
-
- self.maxLength = options.maxLength || Infinity
- self.cache = options.cache || Object.create(null)
- self.statCache = options.statCache || Object.create(null)
- self.symlinks = options.symlinks || Object.create(null)
-
- setupIgnores(self, options)
-
- self.changedCwd = false
- var cwd = process.cwd()
- if (!ownProp(options, "cwd"))
- self.cwd = cwd
- else {
- self.cwd = path.resolve(options.cwd)
- self.changedCwd = self.cwd !== cwd
- }
-
- self.root = options.root || path.resolve(self.cwd, "/")
- self.root = path.resolve(self.root)
- if (process.platform === "win32")
- self.root = self.root.replace(/\\/g, "/")
-
- // TODO: is an absolute `cwd` supposed to be resolved against `root`?
- // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
- self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
- if (process.platform === "win32")
- self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
- self.nomount = !!options.nomount
-
- // disable comments and negation in Minimatch.
- // Note that they are not supported in Glob itself anyway.
- options.nonegate = true
- options.nocomment = true
-
- self.minimatch = new Minimatch(pattern, options)
- self.options = self.minimatch.options
-}
-
-function finish (self) {
- var nou = self.nounique
- var all = nou ? [] : Object.create(null)
-
- for (var i = 0, l = self.matches.length; i < l; i ++) {
- var matches = self.matches[i]
- if (!matches || Object.keys(matches).length === 0) {
- if (self.nonull) {
- // do like the shell, and spit out the literal glob
- var literal = self.minimatch.globSet[i]
- if (nou)
- all.push(literal)
- else
- all[literal] = true
- }
- } else {
- // had matches
- var m = Object.keys(matches)
- if (nou)
- all.push.apply(all, m)
- else
- m.forEach(function (m) {
- all[m] = true
- })
- }
- }
-
- if (!nou)
- all = Object.keys(all)
-
- if (!self.nosort)
- all = all.sort(self.nocase ? alphasorti : alphasort)
-
- // at *some* point we statted all of these
- if (self.mark) {
- for (var i = 0; i < all.length; i++) {
- all[i] = self._mark(all[i])
- }
- if (self.nodir) {
- all = all.filter(function (e) {
- var notDir = !(/\/$/.test(e))
- var c = self.cache[e] || self.cache[makeAbs(self, e)]
- if (notDir && c)
- notDir = c !== 'DIR' && !Array.isArray(c)
- return notDir
- })
- }
- }
-
- if (self.ignore.length)
- all = all.filter(function(m) {
- return !isIgnored(self, m)
- })
-
- self.found = all
-}
-
-function mark (self, p) {
- var abs = makeAbs(self, p)
- var c = self.cache[abs]
- var m = p
- if (c) {
- var isDir = c === 'DIR' || Array.isArray(c)
- var slash = p.slice(-1) === '/'
-
- if (isDir && !slash)
- m += '/'
- else if (!isDir && slash)
- m = m.slice(0, -1)
-
- if (m !== p) {
- var mabs = makeAbs(self, m)
- self.statCache[mabs] = self.statCache[abs]
- self.cache[mabs] = self.cache[abs]
- }
- }
-
- return m
-}
-
-// lotta situps...
-function makeAbs (self, f) {
- var abs = f
- if (f.charAt(0) === '/') {
- abs = path.join(self.root, f)
- } else if (isAbsolute(f) || f === '') {
- abs = f
- } else if (self.changedCwd) {
- abs = path.resolve(self.cwd, f)
- } else {
- abs = path.resolve(f)
- }
-
- if (process.platform === 'win32')
- abs = abs.replace(/\\/g, '/')
-
- return abs
-}
-
-
-// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
-// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
-function isIgnored (self, path) {
- if (!self.ignore.length)
- return false
-
- return self.ignore.some(function(item) {
- return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
- })
-}
-
-function childrenIgnored (self, path) {
- if (!self.ignore.length)
- return false
-
- return self.ignore.some(function(item) {
- return !!(item.gmatcher && item.gmatcher.match(path))
- })
-}
diff --git a/node_modules/glob/glob.js b/node_modules/glob/glob.js
deleted file mode 100644
index 58dec0f..0000000
--- a/node_modules/glob/glob.js
+++ /dev/null
@@ -1,790 +0,0 @@
-// Approach:
-//
-// 1. Get the minimatch set
-// 2. For each pattern in the set, PROCESS(pattern, false)
-// 3. Store matches per-set, then uniq them
-//
-// PROCESS(pattern, inGlobStar)
-// Get the first [n] items from pattern that are all strings
-// Join these together. This is PREFIX.
-// If there is no more remaining, then stat(PREFIX) and
-// add to matches if it succeeds. END.
-//
-// If inGlobStar and PREFIX is symlink and points to dir
-// set ENTRIES = []
-// else readdir(PREFIX) as ENTRIES
-// If fail, END
-//
-// with ENTRIES
-// If pattern[n] is GLOBSTAR
-// // handle the case where the globstar match is empty
-// // by pruning it out, and testing the resulting pattern
-// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
-// // handle other cases.
-// for ENTRY in ENTRIES (not dotfiles)
-// // attach globstar + tail onto the entry
-// // Mark that this entry is a globstar match
-// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
-//
-// else // not globstar
-// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
-// Test ENTRY against pattern[n]
-// If fails, continue
-// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
-//
-// Caveat:
-// Cache all stats and readdirs results to minimize syscall. Since all
-// we ever care about is existence and directory-ness, we can just keep
-// `true` for files, and [children,...] for directories, or `false` for
-// things that don't exist.
-
-module.exports = glob
-
-var fs = require('fs')
-var rp = require('fs.realpath')
-var minimatch = require('minimatch')
-var Minimatch = minimatch.Minimatch
-var inherits = require('inherits')
-var EE = require('events').EventEmitter
-var path = require('path')
-var assert = require('assert')
-var isAbsolute = require('path-is-absolute')
-var globSync = require('./sync.js')
-var common = require('./common.js')
-var alphasort = common.alphasort
-var alphasorti = common.alphasorti
-var setopts = common.setopts
-var ownProp = common.ownProp
-var inflight = require('inflight')
-var util = require('util')
-var childrenIgnored = common.childrenIgnored
-var isIgnored = common.isIgnored
-
-var once = require('once')
-
-function glob (pattern, options, cb) {
- if (typeof options === 'function') cb = options, options = {}
- if (!options) options = {}
-
- if (options.sync) {
- if (cb)
- throw new TypeError('callback provided to sync glob')
- return globSync(pattern, options)
- }
-
- return new Glob(pattern, options, cb)
-}
-
-glob.sync = globSync
-var GlobSync = glob.GlobSync = globSync.GlobSync
-
-// old api surface
-glob.glob = glob
-
-function extend (origin, add) {
- if (add === null || typeof add !== 'object') {
- return origin
- }
-
- var keys = Object.keys(add)
- var i = keys.length
- while (i--) {
- origin[keys[i]] = add[keys[i]]
- }
- return origin
-}
-
-glob.hasMagic = function (pattern, options_) {
- var options = extend({}, options_)
- options.noprocess = true
-
- var g = new Glob(pattern, options)
- var set = g.minimatch.set
-
- if (!pattern)
- return false
-
- if (set.length > 1)
- return true
-
- for (var j = 0; j < set[0].length; j++) {
- if (typeof set[0][j] !== 'string')
- return true
- }
-
- return false
-}
-
-glob.Glob = Glob
-inherits(Glob, EE)
-function Glob (pattern, options, cb) {
- if (typeof options === 'function') {
- cb = options
- options = null
- }
-
- if (options && options.sync) {
- if (cb)
- throw new TypeError('callback provided to sync glob')
- return new GlobSync(pattern, options)
- }
-
- if (!(this instanceof Glob))
- return new Glob(pattern, options, cb)
-
- setopts(this, pattern, options)
- this._didRealPath = false
-
- // process each pattern in the minimatch set
- var n = this.minimatch.set.length
-
- // The matches are stored as {: true,...} so that
- // duplicates are automagically pruned.
- // Later, we do an Object.keys() on these.
- // Keep them as a list so we can fill in when nonull is set.
- this.matches = new Array(n)
-
- if (typeof cb === 'function') {
- cb = once(cb)
- this.on('error', cb)
- this.on('end', function (matches) {
- cb(null, matches)
- })
- }
-
- var self = this
- this._processing = 0
-
- this._emitQueue = []
- this._processQueue = []
- this.paused = false
-
- if (this.noprocess)
- return this
-
- if (n === 0)
- return done()
-
- var sync = true
- for (var i = 0; i < n; i ++) {
- this._process(this.minimatch.set[i], i, false, done)
- }
- sync = false
-
- function done () {
- --self._processing
- if (self._processing <= 0) {
- if (sync) {
- process.nextTick(function () {
- self._finish()
- })
- } else {
- self._finish()
- }
- }
- }
-}
-
-Glob.prototype._finish = function () {
- assert(this instanceof Glob)
- if (this.aborted)
- return
-
- if (this.realpath && !this._didRealpath)
- return this._realpath()
-
- common.finish(this)
- this.emit('end', this.found)
-}
-
-Glob.prototype._realpath = function () {
- if (this._didRealpath)
- return
-
- this._didRealpath = true
-
- var n = this.matches.length
- if (n === 0)
- return this._finish()
-
- var self = this
- for (var i = 0; i < this.matches.length; i++)
- this._realpathSet(i, next)
-
- function next () {
- if (--n === 0)
- self._finish()
- }
-}
-
-Glob.prototype._realpathSet = function (index, cb) {
- var matchset = this.matches[index]
- if (!matchset)
- return cb()
-
- var found = Object.keys(matchset)
- var self = this
- var n = found.length
-
- if (n === 0)
- return cb()
-
- var set = this.matches[index] = Object.create(null)
- found.forEach(function (p, i) {
- // If there's a problem with the stat, then it means that
- // one or more of the links in the realpath couldn't be
- // resolved. just return the abs value in that case.
- p = self._makeAbs(p)
- rp.realpath(p, self.realpathCache, function (er, real) {
- if (!er)
- set[real] = true
- else if (er.syscall === 'stat')
- set[p] = true
- else
- self.emit('error', er) // srsly wtf right here
-
- if (--n === 0) {
- self.matches[index] = set
- cb()
- }
- })
- })
-}
-
-Glob.prototype._mark = function (p) {
- return common.mark(this, p)
-}
-
-Glob.prototype._makeAbs = function (f) {
- return common.makeAbs(this, f)
-}
-
-Glob.prototype.abort = function () {
- this.aborted = true
- this.emit('abort')
-}
-
-Glob.prototype.pause = function () {
- if (!this.paused) {
- this.paused = true
- this.emit('pause')
- }
-}
-
-Glob.prototype.resume = function () {
- if (this.paused) {
- this.emit('resume')
- this.paused = false
- if (this._emitQueue.length) {
- var eq = this._emitQueue.slice(0)
- this._emitQueue.length = 0
- for (var i = 0; i < eq.length; i ++) {
- var e = eq[i]
- this._emitMatch(e[0], e[1])
- }
- }
- if (this._processQueue.length) {
- var pq = this._processQueue.slice(0)
- this._processQueue.length = 0
- for (var i = 0; i < pq.length; i ++) {
- var p = pq[i]
- this._processing--
- this._process(p[0], p[1], p[2], p[3])
- }
- }
- }
-}
-
-Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
- assert(this instanceof Glob)
- assert(typeof cb === 'function')
-
- if (this.aborted)
- return
-
- this._processing++
- if (this.paused) {
- this._processQueue.push([pattern, index, inGlobStar, cb])
- return
- }
-
- //console.error('PROCESS %d', this._processing, pattern)
-
- // Get the first [n] parts of pattern that are all strings.
- var n = 0
- while (typeof pattern[n] === 'string') {
- n ++
- }
- // now n is the index of the first one that is *not* a string.
-
- // see if there's anything else
- var prefix
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- this._processSimple(pattern.join('/'), index, cb)
- return
-
- case 0:
- // pattern *starts* with some non-trivial item.
- // going to readdir(cwd), but not include the prefix in matches.
- prefix = null
- break
-
- default:
- // pattern has some string bits in the front.
- // whatever it starts with, whether that's 'absolute' like /foo/bar,
- // or 'relative' like '../baz'
- prefix = pattern.slice(0, n).join('/')
- break
- }
-
- var remain = pattern.slice(n)
-
- // get the list of entries.
- var read
- if (prefix === null)
- read = '.'
- else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
- if (!prefix || !isAbsolute(prefix))
- prefix = '/' + prefix
- read = prefix
- } else
- read = prefix
-
- var abs = this._makeAbs(read)
-
- //if ignored, skip _processing
- if (childrenIgnored(this, read))
- return cb()
-
- var isGlobStar = remain[0] === minimatch.GLOBSTAR
- if (isGlobStar)
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
- else
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
-}
-
-Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
- var self = this
- this._readdir(abs, inGlobStar, function (er, entries) {
- return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
- })
-}
-
-Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
-
- // if the abs isn't a dir, then nothing can match!
- if (!entries)
- return cb()
-
- // It will only match dot entries if it starts with a dot, or if
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
- var pn = remain[0]
- var negate = !!this.minimatch.negate
- var rawGlob = pn._glob
- var dotOk = this.dot || rawGlob.charAt(0) === '.'
-
- var matchedEntries = []
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i]
- if (e.charAt(0) !== '.' || dotOk) {
- var m
- if (negate && !prefix) {
- m = !e.match(pn)
- } else {
- m = e.match(pn)
- }
- if (m)
- matchedEntries.push(e)
- }
- }
-
- //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
-
- var len = matchedEntries.length
- // If there are no matched entries, then nothing matches.
- if (len === 0)
- return cb()
-
- // if this is the last remaining pattern bit, then no need for
- // an additional stat *unless* the user has specified mark or
- // stat explicitly. We know they exist, since readdir returned
- // them.
-
- if (remain.length === 1 && !this.mark && !this.stat) {
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- if (prefix) {
- if (prefix !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
-
- if (e.charAt(0) === '/' && !this.nomount) {
- e = path.join(this.root, e)
- }
- this._emitMatch(index, e)
- }
- // This was the last one, and no stats were needed
- return cb()
- }
-
- // now test all matched entries as stand-ins for that part
- // of the pattern.
- remain.shift()
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- var newPattern
- if (prefix) {
- if (prefix !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
- this._process([e].concat(remain), index, inGlobStar, cb)
- }
- cb()
-}
-
-Glob.prototype._emitMatch = function (index, e) {
- if (this.aborted)
- return
-
- if (isIgnored(this, e))
- return
-
- if (this.paused) {
- this._emitQueue.push([index, e])
- return
- }
-
- var abs = isAbsolute(e) ? e : this._makeAbs(e)
-
- if (this.mark)
- e = this._mark(e)
-
- if (this.absolute)
- e = abs
-
- if (this.matches[index][e])
- return
-
- if (this.nodir) {
- var c = this.cache[abs]
- if (c === 'DIR' || Array.isArray(c))
- return
- }
-
- this.matches[index][e] = true
-
- var st = this.statCache[abs]
- if (st)
- this.emit('stat', e, st)
-
- this.emit('match', e)
-}
-
-Glob.prototype._readdirInGlobStar = function (abs, cb) {
- if (this.aborted)
- return
-
- // follow all symlinked directories forever
- // just proceed as if this is a non-globstar situation
- if (this.follow)
- return this._readdir(abs, false, cb)
-
- var lstatkey = 'lstat\0' + abs
- var self = this
- var lstatcb = inflight(lstatkey, lstatcb_)
-
- if (lstatcb)
- fs.lstat(abs, lstatcb)
-
- function lstatcb_ (er, lstat) {
- if (er && er.code === 'ENOENT')
- return cb()
-
- var isSym = lstat && lstat.isSymbolicLink()
- self.symlinks[abs] = isSym
-
- // If it's not a symlink or a dir, then it's definitely a regular file.
- // don't bother doing a readdir in that case.
- if (!isSym && lstat && !lstat.isDirectory()) {
- self.cache[abs] = 'FILE'
- cb()
- } else
- self._readdir(abs, false, cb)
- }
-}
-
-Glob.prototype._readdir = function (abs, inGlobStar, cb) {
- if (this.aborted)
- return
-
- cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
- if (!cb)
- return
-
- //console.error('RD %j %j', +inGlobStar, abs)
- if (inGlobStar && !ownProp(this.symlinks, abs))
- return this._readdirInGlobStar(abs, cb)
-
- if (ownProp(this.cache, abs)) {
- var c = this.cache[abs]
- if (!c || c === 'FILE')
- return cb()
-
- if (Array.isArray(c))
- return cb(null, c)
- }
-
- var self = this
- fs.readdir(abs, readdirCb(this, abs, cb))
-}
-
-function readdirCb (self, abs, cb) {
- return function (er, entries) {
- if (er)
- self._readdirError(abs, er, cb)
- else
- self._readdirEntries(abs, entries, cb)
- }
-}
-
-Glob.prototype._readdirEntries = function (abs, entries, cb) {
- if (this.aborted)
- return
-
- // if we haven't asked to stat everything, then just
- // assume that everything in there exists, so we can avoid
- // having to stat it a second time.
- if (!this.mark && !this.stat) {
- for (var i = 0; i < entries.length; i ++) {
- var e = entries[i]
- if (abs === '/')
- e = abs + e
- else
- e = abs + '/' + e
- this.cache[e] = true
- }
- }
-
- this.cache[abs] = entries
- return cb(null, entries)
-}
-
-Glob.prototype._readdirError = function (f, er, cb) {
- if (this.aborted)
- return
-
- // handle errors, and cache the information
- switch (er.code) {
- case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
- case 'ENOTDIR': // totally normal. means it *does* exist.
- var abs = this._makeAbs(f)
- this.cache[abs] = 'FILE'
- if (abs === this.cwdAbs) {
- var error = new Error(er.code + ' invalid cwd ' + this.cwd)
- error.path = this.cwd
- error.code = er.code
- this.emit('error', error)
- this.abort()
- }
- break
-
- case 'ENOENT': // not terribly unusual
- case 'ELOOP':
- case 'ENAMETOOLONG':
- case 'UNKNOWN':
- this.cache[this._makeAbs(f)] = false
- break
-
- default: // some unusual error. Treat as failure.
- this.cache[this._makeAbs(f)] = false
- if (this.strict) {
- this.emit('error', er)
- // If the error is handled, then we abort
- // if not, we threw out of here
- this.abort()
- }
- if (!this.silent)
- console.error('glob error', er)
- break
- }
-
- return cb()
-}
-
-Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
- var self = this
- this._readdir(abs, inGlobStar, function (er, entries) {
- self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
- })
-}
-
-
-Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
- //console.error('pgs2', prefix, remain[0], entries)
-
- // no entries means not a dir, so it can never have matches
- // foo.txt/** doesn't match foo.txt
- if (!entries)
- return cb()
-
- // test without the globstar, and with every child both below
- // and replacing the globstar.
- var remainWithoutGlobStar = remain.slice(1)
- var gspref = prefix ? [ prefix ] : []
- var noGlobStar = gspref.concat(remainWithoutGlobStar)
-
- // the noGlobStar pattern exits the inGlobStar state
- this._process(noGlobStar, index, false, cb)
-
- var isSym = this.symlinks[abs]
- var len = entries.length
-
- // If it's a symlink, and we're in a globstar, then stop
- if (isSym && inGlobStar)
- return cb()
-
- for (var i = 0; i < len; i++) {
- var e = entries[i]
- if (e.charAt(0) === '.' && !this.dot)
- continue
-
- // these two cases enter the inGlobStar state
- var instead = gspref.concat(entries[i], remainWithoutGlobStar)
- this._process(instead, index, true, cb)
-
- var below = gspref.concat(entries[i], remain)
- this._process(below, index, true, cb)
- }
-
- cb()
-}
-
-Glob.prototype._processSimple = function (prefix, index, cb) {
- // XXX review this. Shouldn't it be doing the mounting etc
- // before doing stat? kinda weird?
- var self = this
- this._stat(prefix, function (er, exists) {
- self._processSimple2(prefix, index, er, exists, cb)
- })
-}
-Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
-
- //console.error('ps2', prefix, exists)
-
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- // If it doesn't exist, then just mark the lack of results
- if (!exists)
- return cb()
-
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- var trail = /[\/\\]$/.test(prefix)
- if (prefix.charAt(0) === '/') {
- prefix = path.join(this.root, prefix)
- } else {
- prefix = path.resolve(this.root, prefix)
- if (trail)
- prefix += '/'
- }
- }
-
- if (process.platform === 'win32')
- prefix = prefix.replace(/\\/g, '/')
-
- // Mark this as a match
- this._emitMatch(index, prefix)
- cb()
-}
-
-// Returns either 'DIR', 'FILE', or false
-Glob.prototype._stat = function (f, cb) {
- var abs = this._makeAbs(f)
- var needDir = f.slice(-1) === '/'
-
- if (f.length > this.maxLength)
- return cb()
-
- if (!this.stat && ownProp(this.cache, abs)) {
- var c = this.cache[abs]
-
- if (Array.isArray(c))
- c = 'DIR'
-
- // It exists, but maybe not how we need it
- if (!needDir || c === 'DIR')
- return cb(null, c)
-
- if (needDir && c === 'FILE')
- return cb()
-
- // otherwise we have to stat, because maybe c=true
- // if we know it exists, but not what it is.
- }
-
- var exists
- var stat = this.statCache[abs]
- if (stat !== undefined) {
- if (stat === false)
- return cb(null, stat)
- else {
- var type = stat.isDirectory() ? 'DIR' : 'FILE'
- if (needDir && type === 'FILE')
- return cb()
- else
- return cb(null, type, stat)
- }
- }
-
- var self = this
- var statcb = inflight('stat\0' + abs, lstatcb_)
- if (statcb)
- fs.lstat(abs, statcb)
-
- function lstatcb_ (er, lstat) {
- if (lstat && lstat.isSymbolicLink()) {
- // If it's a symlink, then treat it as the target, unless
- // the target does not exist, then treat it as a file.
- return fs.stat(abs, function (er, stat) {
- if (er)
- self._stat2(f, abs, null, lstat, cb)
- else
- self._stat2(f, abs, er, stat, cb)
- })
- } else {
- self._stat2(f, abs, er, lstat, cb)
- }
- }
-}
-
-Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
- if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
- this.statCache[abs] = false
- return cb()
- }
-
- var needDir = f.slice(-1) === '/'
- this.statCache[abs] = stat
-
- if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
- return cb(null, false, stat)
-
- var c = true
- if (stat)
- c = stat.isDirectory() ? 'DIR' : 'FILE'
- this.cache[abs] = this.cache[abs] || c
-
- if (needDir && c === 'FILE')
- return cb()
-
- return cb(null, c, stat)
-}
diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json
deleted file mode 100644
index 2e7f06b..0000000
--- a/node_modules/glob/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "_from": "glob@^7.1.0",
- "_id": "glob@7.1.6",
- "_inBundle": false,
- "_integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "_location": "/glob",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "glob@^7.1.0",
- "name": "glob",
- "escapedName": "glob",
- "rawSpec": "^7.1.0",
- "saveSpec": null,
- "fetchSpec": "^7.1.0"
- },
- "_requiredBy": [
- "/browserify"
- ],
- "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "_shasum": "141f33b81a7c2492e125594307480c46679278a6",
- "_spec": "glob@^7.1.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/browserify",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/node-glob/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "deprecated": false,
- "description": "a little globber",
- "devDependencies": {
- "mkdirp": "0",
- "rimraf": "^2.2.8",
- "tap": "^12.0.1",
- "tick": "0.0.6"
- },
- "engines": {
- "node": "*"
- },
- "files": [
- "glob.js",
- "sync.js",
- "common.js"
- ],
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "homepage": "https://github.com/isaacs/node-glob#readme",
- "license": "ISC",
- "main": "glob.js",
- "name": "glob",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/node-glob.git"
- },
- "scripts": {
- "bench": "bash benchmark.sh",
- "benchclean": "node benchclean.js",
- "prepublish": "npm run benchclean",
- "prof": "bash prof.sh && cat profile.txt",
- "profclean": "rm -f v8.log profile.txt",
- "test": "tap test/*.js --cov",
- "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
- },
- "version": "7.1.6"
-}
diff --git a/node_modules/glob/sync.js b/node_modules/glob/sync.js
deleted file mode 100644
index c952134..0000000
--- a/node_modules/glob/sync.js
+++ /dev/null
@@ -1,486 +0,0 @@
-module.exports = globSync
-globSync.GlobSync = GlobSync
-
-var fs = require('fs')
-var rp = require('fs.realpath')
-var minimatch = require('minimatch')
-var Minimatch = minimatch.Minimatch
-var Glob = require('./glob.js').Glob
-var util = require('util')
-var path = require('path')
-var assert = require('assert')
-var isAbsolute = require('path-is-absolute')
-var common = require('./common.js')
-var alphasort = common.alphasort
-var alphasorti = common.alphasorti
-var setopts = common.setopts
-var ownProp = common.ownProp
-var childrenIgnored = common.childrenIgnored
-var isIgnored = common.isIgnored
-
-function globSync (pattern, options) {
- if (typeof options === 'function' || arguments.length === 3)
- throw new TypeError('callback provided to sync glob\n'+
- 'See: https://github.com/isaacs/node-glob/issues/167')
-
- return new GlobSync(pattern, options).found
-}
-
-function GlobSync (pattern, options) {
- if (!pattern)
- throw new Error('must provide pattern')
-
- if (typeof options === 'function' || arguments.length === 3)
- throw new TypeError('callback provided to sync glob\n'+
- 'See: https://github.com/isaacs/node-glob/issues/167')
-
- if (!(this instanceof GlobSync))
- return new GlobSync(pattern, options)
-
- setopts(this, pattern, options)
-
- if (this.noprocess)
- return this
-
- var n = this.minimatch.set.length
- this.matches = new Array(n)
- for (var i = 0; i < n; i ++) {
- this._process(this.minimatch.set[i], i, false)
- }
- this._finish()
-}
-
-GlobSync.prototype._finish = function () {
- assert(this instanceof GlobSync)
- if (this.realpath) {
- var self = this
- this.matches.forEach(function (matchset, index) {
- var set = self.matches[index] = Object.create(null)
- for (var p in matchset) {
- try {
- p = self._makeAbs(p)
- var real = rp.realpathSync(p, self.realpathCache)
- set[real] = true
- } catch (er) {
- if (er.syscall === 'stat')
- set[self._makeAbs(p)] = true
- else
- throw er
- }
- }
- })
- }
- common.finish(this)
-}
-
-
-GlobSync.prototype._process = function (pattern, index, inGlobStar) {
- assert(this instanceof GlobSync)
-
- // Get the first [n] parts of pattern that are all strings.
- var n = 0
- while (typeof pattern[n] === 'string') {
- n ++
- }
- // now n is the index of the first one that is *not* a string.
-
- // See if there's anything else
- var prefix
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- this._processSimple(pattern.join('/'), index)
- return
-
- case 0:
- // pattern *starts* with some non-trivial item.
- // going to readdir(cwd), but not include the prefix in matches.
- prefix = null
- break
-
- default:
- // pattern has some string bits in the front.
- // whatever it starts with, whether that's 'absolute' like /foo/bar,
- // or 'relative' like '../baz'
- prefix = pattern.slice(0, n).join('/')
- break
- }
-
- var remain = pattern.slice(n)
-
- // get the list of entries.
- var read
- if (prefix === null)
- read = '.'
- else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
- if (!prefix || !isAbsolute(prefix))
- prefix = '/' + prefix
- read = prefix
- } else
- read = prefix
-
- var abs = this._makeAbs(read)
-
- //if ignored, skip processing
- if (childrenIgnored(this, read))
- return
-
- var isGlobStar = remain[0] === minimatch.GLOBSTAR
- if (isGlobStar)
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
- else
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
-}
-
-
-GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
- var entries = this._readdir(abs, inGlobStar)
-
- // if the abs isn't a dir, then nothing can match!
- if (!entries)
- return
-
- // It will only match dot entries if it starts with a dot, or if
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
- var pn = remain[0]
- var negate = !!this.minimatch.negate
- var rawGlob = pn._glob
- var dotOk = this.dot || rawGlob.charAt(0) === '.'
-
- var matchedEntries = []
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i]
- if (e.charAt(0) !== '.' || dotOk) {
- var m
- if (negate && !prefix) {
- m = !e.match(pn)
- } else {
- m = e.match(pn)
- }
- if (m)
- matchedEntries.push(e)
- }
- }
-
- var len = matchedEntries.length
- // If there are no matched entries, then nothing matches.
- if (len === 0)
- return
-
- // if this is the last remaining pattern bit, then no need for
- // an additional stat *unless* the user has specified mark or
- // stat explicitly. We know they exist, since readdir returned
- // them.
-
- if (remain.length === 1 && !this.mark && !this.stat) {
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- if (prefix) {
- if (prefix.slice(-1) !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
-
- if (e.charAt(0) === '/' && !this.nomount) {
- e = path.join(this.root, e)
- }
- this._emitMatch(index, e)
- }
- // This was the last one, and no stats were needed
- return
- }
-
- // now test all matched entries as stand-ins for that part
- // of the pattern.
- remain.shift()
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- var newPattern
- if (prefix)
- newPattern = [prefix, e]
- else
- newPattern = [e]
- this._process(newPattern.concat(remain), index, inGlobStar)
- }
-}
-
-
-GlobSync.prototype._emitMatch = function (index, e) {
- if (isIgnored(this, e))
- return
-
- var abs = this._makeAbs(e)
-
- if (this.mark)
- e = this._mark(e)
-
- if (this.absolute) {
- e = abs
- }
-
- if (this.matches[index][e])
- return
-
- if (this.nodir) {
- var c = this.cache[abs]
- if (c === 'DIR' || Array.isArray(c))
- return
- }
-
- this.matches[index][e] = true
-
- if (this.stat)
- this._stat(e)
-}
-
-
-GlobSync.prototype._readdirInGlobStar = function (abs) {
- // follow all symlinked directories forever
- // just proceed as if this is a non-globstar situation
- if (this.follow)
- return this._readdir(abs, false)
-
- var entries
- var lstat
- var stat
- try {
- lstat = fs.lstatSync(abs)
- } catch (er) {
- if (er.code === 'ENOENT') {
- // lstat failed, doesn't exist
- return null
- }
- }
-
- var isSym = lstat && lstat.isSymbolicLink()
- this.symlinks[abs] = isSym
-
- // If it's not a symlink or a dir, then it's definitely a regular file.
- // don't bother doing a readdir in that case.
- if (!isSym && lstat && !lstat.isDirectory())
- this.cache[abs] = 'FILE'
- else
- entries = this._readdir(abs, false)
-
- return entries
-}
-
-GlobSync.prototype._readdir = function (abs, inGlobStar) {
- var entries
-
- if (inGlobStar && !ownProp(this.symlinks, abs))
- return this._readdirInGlobStar(abs)
-
- if (ownProp(this.cache, abs)) {
- var c = this.cache[abs]
- if (!c || c === 'FILE')
- return null
-
- if (Array.isArray(c))
- return c
- }
-
- try {
- return this._readdirEntries(abs, fs.readdirSync(abs))
- } catch (er) {
- this._readdirError(abs, er)
- return null
- }
-}
-
-GlobSync.prototype._readdirEntries = function (abs, entries) {
- // if we haven't asked to stat everything, then just
- // assume that everything in there exists, so we can avoid
- // having to stat it a second time.
- if (!this.mark && !this.stat) {
- for (var i = 0; i < entries.length; i ++) {
- var e = entries[i]
- if (abs === '/')
- e = abs + e
- else
- e = abs + '/' + e
- this.cache[e] = true
- }
- }
-
- this.cache[abs] = entries
-
- // mark and cache dir-ness
- return entries
-}
-
-GlobSync.prototype._readdirError = function (f, er) {
- // handle errors, and cache the information
- switch (er.code) {
- case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
- case 'ENOTDIR': // totally normal. means it *does* exist.
- var abs = this._makeAbs(f)
- this.cache[abs] = 'FILE'
- if (abs === this.cwdAbs) {
- var error = new Error(er.code + ' invalid cwd ' + this.cwd)
- error.path = this.cwd
- error.code = er.code
- throw error
- }
- break
-
- case 'ENOENT': // not terribly unusual
- case 'ELOOP':
- case 'ENAMETOOLONG':
- case 'UNKNOWN':
- this.cache[this._makeAbs(f)] = false
- break
-
- default: // some unusual error. Treat as failure.
- this.cache[this._makeAbs(f)] = false
- if (this.strict)
- throw er
- if (!this.silent)
- console.error('glob error', er)
- break
- }
-}
-
-GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
-
- var entries = this._readdir(abs, inGlobStar)
-
- // no entries means not a dir, so it can never have matches
- // foo.txt/** doesn't match foo.txt
- if (!entries)
- return
-
- // test without the globstar, and with every child both below
- // and replacing the globstar.
- var remainWithoutGlobStar = remain.slice(1)
- var gspref = prefix ? [ prefix ] : []
- var noGlobStar = gspref.concat(remainWithoutGlobStar)
-
- // the noGlobStar pattern exits the inGlobStar state
- this._process(noGlobStar, index, false)
-
- var len = entries.length
- var isSym = this.symlinks[abs]
-
- // If it's a symlink, and we're in a globstar, then stop
- if (isSym && inGlobStar)
- return
-
- for (var i = 0; i < len; i++) {
- var e = entries[i]
- if (e.charAt(0) === '.' && !this.dot)
- continue
-
- // these two cases enter the inGlobStar state
- var instead = gspref.concat(entries[i], remainWithoutGlobStar)
- this._process(instead, index, true)
-
- var below = gspref.concat(entries[i], remain)
- this._process(below, index, true)
- }
-}
-
-GlobSync.prototype._processSimple = function (prefix, index) {
- // XXX review this. Shouldn't it be doing the mounting etc
- // before doing stat? kinda weird?
- var exists = this._stat(prefix)
-
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- // If it doesn't exist, then just mark the lack of results
- if (!exists)
- return
-
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- var trail = /[\/\\]$/.test(prefix)
- if (prefix.charAt(0) === '/') {
- prefix = path.join(this.root, prefix)
- } else {
- prefix = path.resolve(this.root, prefix)
- if (trail)
- prefix += '/'
- }
- }
-
- if (process.platform === 'win32')
- prefix = prefix.replace(/\\/g, '/')
-
- // Mark this as a match
- this._emitMatch(index, prefix)
-}
-
-// Returns either 'DIR', 'FILE', or false
-GlobSync.prototype._stat = function (f) {
- var abs = this._makeAbs(f)
- var needDir = f.slice(-1) === '/'
-
- if (f.length > this.maxLength)
- return false
-
- if (!this.stat && ownProp(this.cache, abs)) {
- var c = this.cache[abs]
-
- if (Array.isArray(c))
- c = 'DIR'
-
- // It exists, but maybe not how we need it
- if (!needDir || c === 'DIR')
- return c
-
- if (needDir && c === 'FILE')
- return false
-
- // otherwise we have to stat, because maybe c=true
- // if we know it exists, but not what it is.
- }
-
- var exists
- var stat = this.statCache[abs]
- if (!stat) {
- var lstat
- try {
- lstat = fs.lstatSync(abs)
- } catch (er) {
- if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
- this.statCache[abs] = false
- return false
- }
- }
-
- if (lstat && lstat.isSymbolicLink()) {
- try {
- stat = fs.statSync(abs)
- } catch (er) {
- stat = lstat
- }
- } else {
- stat = lstat
- }
- }
-
- this.statCache[abs] = stat
-
- var c = true
- if (stat)
- c = stat.isDirectory() ? 'DIR' : 'FILE'
-
- this.cache[abs] = this.cache[abs] || c
-
- if (needDir && c === 'FILE')
- return false
-
- return c
-}
-
-GlobSync.prototype._mark = function (p) {
- return common.mark(this, p)
-}
-
-GlobSync.prototype._makeAbs = function (f) {
- return common.makeAbs(this, f)
-}
diff --git a/node_modules/has-symbols/.eslintrc b/node_modules/has-symbols/.eslintrc
deleted file mode 100644
index 2d9a66a..0000000
--- a/node_modules/has-symbols/.eslintrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "max-statements-per-line": [2, { "max": 2 }],
- "no-magic-numbers": 0,
- "multiline-comment-style": 0,
- }
-}
diff --git a/node_modules/has-symbols/.github/FUNDING.yml b/node_modules/has-symbols/.github/FUNDING.yml
deleted file mode 100644
index 04cf87e..0000000
--- a/node_modules/has-symbols/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/has-symbols
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/has-symbols/.github/workflows/rebase.yml b/node_modules/has-symbols/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/has-symbols/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
- _:
- name: "Automatic Rebase"
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v1
- - uses: ljharb/rebase@master
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/has-symbols/.travis.yml b/node_modules/has-symbols/.travis.yml
deleted file mode 100644
index 2d1c1d2..0000000
--- a/node_modules/has-symbols/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: ~> 1.0
-language: node_js
-os:
- - linux
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
- - ljharb/travis-ci:node/coverage.yml
-matrix:
- allow_failures:
- - env: COVERAGE=true
diff --git a/node_modules/has-symbols/CHANGELOG.md b/node_modules/has-symbols/CHANGELOG.md
deleted file mode 100644
index 4dcac04..0000000
--- a/node_modules/has-symbols/CHANGELOG.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
-
-## [v1.0.1](https://github.com/inspect-js/has-symbols/compare/v1.0.0...v1.0.1) - 2019-11-17
-
-### Commits
-
-- [Tests] use shared travis-ci configs [`ce396c9`](https://github.com/inspect-js/has-symbols/commit/ce396c9419ff11c43d0da5d05cdbb79f7fb42229)
-- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v4.9`; use `nvm install-latest-npm` [`0690732`](https://github.com/inspect-js/has-symbols/commit/0690732801f47ab429f39ba1962f522d5c462d6b)
-- [meta] add `auto-changelog` [`2163d0b`](https://github.com/inspect-js/has-symbols/commit/2163d0b7f36343076b8f947cd1667dd1750f26fc)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`8e0951f`](https://github.com/inspect-js/has-symbols/commit/8e0951f1a7a2e52068222b7bb73511761e6e4d9c)
-- [actions] add automatic rebasing / merge commit blocking [`b09cdb7`](https://github.com/inspect-js/has-symbols/commit/b09cdb7cd7ee39e7a769878f56e2d6066f5ccd1d)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `core-js`, `get-own-property-symbols`, `tape` [`1dd42cd`](https://github.com/inspect-js/has-symbols/commit/1dd42cd86183ed0c50f99b1062345c458babca91)
-- [meta] create FUNDING.yml [`aa57a17`](https://github.com/inspect-js/has-symbols/commit/aa57a17b19708906d1927f821ea8e73394d84ca4)
-- Only apps should have lockfiles [`a2d8bea`](https://github.com/inspect-js/has-symbols/commit/a2d8bea23a97d15c09eaf60f5b107fcf9a4d57aa)
-- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`9e96cb7`](https://github.com/inspect-js/has-symbols/commit/9e96cb783746cbed0c10ef78e599a8eaa7ebe193)
-- [meta] add `funding` field [`a0b32cf`](https://github.com/inspect-js/has-symbols/commit/a0b32cf68e803f963c1639b6d47b0a9d6440bab0)
-- [Dev Deps] update `safe-publish-latest` [`cb9f0a5`](https://github.com/inspect-js/has-symbols/commit/cb9f0a521a3a1790f1064d437edd33bb6c3d6af0)
-
-## v1.0.0 - 2016-09-19
-
-### Commits
-
-- Tests. [`ecb6eb9`](https://github.com/inspect-js/has-symbols/commit/ecb6eb934e4883137f3f93b965ba5e0a98df430d)
-- package.json [`88a337c`](https://github.com/inspect-js/has-symbols/commit/88a337cee0864a0da35f5d19e69ff0ef0150e46a)
-- Initial commit [`42e1e55`](https://github.com/inspect-js/has-symbols/commit/42e1e5502536a2b8ac529c9443984acd14836b1c)
-- Initial implementation. [`33f5cc6`](https://github.com/inspect-js/has-symbols/commit/33f5cc6cdff86e2194b081ee842bfdc63caf43fb)
-- read me [`01f1170`](https://github.com/inspect-js/has-symbols/commit/01f1170188ff7cb1558aa297f6ba5b516c6d7b0c)
diff --git a/node_modules/has-symbols/LICENSE b/node_modules/has-symbols/LICENSE
deleted file mode 100644
index df31cbf..0000000
--- a/node_modules/has-symbols/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2016 Jordan Harband
-
-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.
diff --git a/node_modules/has-symbols/README.md b/node_modules/has-symbols/README.md
deleted file mode 100644
index b27b31a..0000000
--- a/node_modules/has-symbols/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# has-symbols [![Version Badge][2]][1]
-
-[![Build Status][3]][4]
-[![dependency status][5]][6]
-[![dev dependency status][7]][8]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][11]][1]
-
-Determine if the JS environment has Symbol support. Supports spec, or shams.
-
-## Example
-
-```js
-var hasSymbols = require('has-symbols');
-
-hasSymbols() === true; // if the environment has native Symbol support. Not polyfillable, not forgeable.
-
-var hasSymbolsKinda = require('has-symbols/shams');
-hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly follows the spec.
-```
-
-## Supported Symbol shams
- - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols)
- - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js)
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[1]: https://npmjs.org/package/has-symbols
-[2]: http://versionbadg.es/ljharb/has-symbols.svg
-[3]: https://travis-ci.org/ljharb/has-symbols.svg
-[4]: https://travis-ci.org/ljharb/has-symbols
-[5]: https://david-dm.org/ljharb/has-symbols.svg
-[6]: https://david-dm.org/ljharb/has-symbols
-[7]: https://david-dm.org/ljharb/has-symbols/dev-status.svg
-[8]: https://david-dm.org/ljharb/has-symbols#info=devDependencies
-[9]: https://ci.testling.com/ljharb/has-symbols.png
-[10]: https://ci.testling.com/ljharb/has-symbols
-[11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/has-symbols.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/has-symbols.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=has-symbols
diff --git a/node_modules/has-symbols/index.js b/node_modules/has-symbols/index.js
deleted file mode 100644
index f72159e..0000000
--- a/node_modules/has-symbols/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var origSymbol = global.Symbol;
-var hasSymbolSham = require('./shams');
-
-module.exports = function hasNativeSymbols() {
- if (typeof origSymbol !== 'function') { return false; }
- if (typeof Symbol !== 'function') { return false; }
- if (typeof origSymbol('foo') !== 'symbol') { return false; }
- if (typeof Symbol('bar') !== 'symbol') { return false; }
-
- return hasSymbolSham();
-};
diff --git a/node_modules/has-symbols/package.json b/node_modules/has-symbols/package.json
deleted file mode 100644
index 8059b46..0000000
--- a/node_modules/has-symbols/package.json
+++ /dev/null
@@ -1,119 +0,0 @@
-{
- "_from": "has-symbols@^1.0.1",
- "_id": "has-symbols@1.0.1",
- "_inBundle": false,
- "_integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "_location": "/has-symbols",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "has-symbols@^1.0.1",
- "name": "has-symbols",
- "escapedName": "has-symbols",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/es-abstract",
- "/is-symbol"
- ],
- "_resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "_shasum": "9f5214758a44196c406d9bd76cebf81ec2dd31e8",
- "_spec": "has-symbols@^1.0.1",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/es-abstract",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false
- },
- "bugs": {
- "url": "https://github.com/ljharb/has-symbols/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.",
- "devDependencies": {
- "@ljharb/eslint-config": "^15.0.1",
- "auto-changelog": "^1.16.2",
- "core-js": "^2.6.10",
- "eslint": "^6.6.0",
- "get-own-property-symbols": "^0.9.4",
- "safe-publish-latest": "^1.1.4",
- "tape": "^4.11.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "homepage": "https://github.com/ljharb/has-symbols#readme",
- "keywords": [
- "Symbol",
- "symbols",
- "typeof",
- "sham",
- "polyfill",
- "native",
- "core-js",
- "ES6"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "has-symbols",
- "repository": {
- "type": "git",
- "url": "git://github.com/ljharb/has-symbols.git"
- },
- "scripts": {
- "lint": "eslint *.js",
- "posttest": "npx aud",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
- "prepublish": "safe-publish-latest",
- "pretest": "npm run --silent lint",
- "test": "npm run --silent tests-only",
- "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs",
- "test:shams:corejs": "node test/shams/core-js.js",
- "test:shams:getownpropertysymbols": "node test/shams/get-own-property-symbols.js",
- "test:staging": "node --harmony --es-staging test",
- "test:stock": "node test",
- "tests-only": "npm run --silent test:stock && npm run --silent test:staging && npm run --silent test:shams",
- "version": "auto-changelog && git add CHANGELOG.md"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "version": "1.0.1"
-}
diff --git a/node_modules/has-symbols/shams.js b/node_modules/has-symbols/shams.js
deleted file mode 100644
index 9f80f79..0000000
--- a/node_modules/has-symbols/shams.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-/* eslint complexity: [2, 18], max-statements: [2, 33] */
-module.exports = function hasSymbols() {
- if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
- if (typeof Symbol.iterator === 'symbol') { return true; }
-
- var obj = {};
- var sym = Symbol('test');
- var symObj = Object(sym);
- if (typeof sym === 'string') { return false; }
-
- if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
- if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
- // temp disabled per https://github.com/ljharb/object.assign/issues/17
- // if (sym instanceof Symbol) { return false; }
- // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
- // if (!(symObj instanceof Symbol)) { return false; }
-
- // if (typeof Symbol.prototype.toString !== 'function') { return false; }
- // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
- var symVal = 42;
- obj[sym] = symVal;
- for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
- if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
- if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
- var syms = Object.getOwnPropertySymbols(obj);
- if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
- if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
- if (typeof Object.getOwnPropertyDescriptor === 'function') {
- var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
- if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
- }
-
- return true;
-};
diff --git a/node_modules/has-symbols/test/index.js b/node_modules/has-symbols/test/index.js
deleted file mode 100644
index fc32aff..0000000
--- a/node_modules/has-symbols/test/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var hasSymbols = require('../');
-var runSymbolTests = require('./tests');
-
-test('interface', function (t) {
- t.equal(typeof hasSymbols, 'function', 'is a function');
- t.equal(typeof hasSymbols(), 'boolean', 'returns a boolean');
- t.end();
-});
-
-test('Symbols are supported', { skip: !hasSymbols() }, function (t) {
- runSymbolTests(t);
- t.end();
-});
-
-test('Symbols are not supported', { skip: hasSymbols() }, function (t) {
- t.equal(typeof Symbol, 'undefined', 'global Symbol is undefined');
- t.equal(typeof Object.getOwnPropertySymbols, 'undefined', 'Object.getOwnPropertySymbols does not exist');
- t.end();
-});
diff --git a/node_modules/has-symbols/test/shams/core-js.js b/node_modules/has-symbols/test/shams/core-js.js
deleted file mode 100644
index df5365c..0000000
--- a/node_modules/has-symbols/test/shams/core-js.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') {
- test('has native Symbol support', function (t) {
- t.equal(typeof Symbol, 'function');
- t.equal(typeof Symbol(), 'symbol');
- t.end();
- });
- return;
-}
-
-var hasSymbols = require('../../shams');
-
-test('polyfilled Symbols', function (t) {
- /* eslint-disable global-require */
- t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling');
- require('core-js/fn/symbol');
- require('core-js/fn/symbol/to-string-tag');
-
- require('../tests')(t);
-
- var hasSymbolsAfter = hasSymbols();
- t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling');
- /* eslint-enable global-require */
- t.end();
-});
diff --git a/node_modules/has-symbols/test/shams/get-own-property-symbols.js b/node_modules/has-symbols/test/shams/get-own-property-symbols.js
deleted file mode 100644
index 9191b24..0000000
--- a/node_modules/has-symbols/test/shams/get-own-property-symbols.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') {
- test('has native Symbol support', function (t) {
- t.equal(typeof Symbol, 'function');
- t.equal(typeof Symbol(), 'symbol');
- t.end();
- });
- return;
-}
-
-var hasSymbols = require('../../shams');
-
-test('polyfilled Symbols', function (t) {
- /* eslint-disable global-require */
- t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling');
-
- require('get-own-property-symbols');
-
- require('../tests')(t);
-
- var hasSymbolsAfter = hasSymbols();
- t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling');
- /* eslint-enable global-require */
- t.end();
-});
diff --git a/node_modules/has-symbols/test/tests.js b/node_modules/has-symbols/test/tests.js
deleted file mode 100644
index 93ff0ea..0000000
--- a/node_modules/has-symbols/test/tests.js
+++ /dev/null
@@ -1,54 +0,0 @@
-'use strict';
-
-module.exports = function runSymbolTests(t) {
- t.equal(typeof Symbol, 'function', 'global Symbol is a function');
-
- if (typeof Symbol !== 'function') { return false };
-
- t.notEqual(Symbol(), Symbol(), 'two symbols are not equal');
-
- /*
- t.equal(
- Symbol.prototype.toString.call(Symbol('foo')),
- Symbol.prototype.toString.call(Symbol('foo')),
- 'two symbols with the same description stringify the same'
- );
- */
-
- var foo = Symbol('foo');
-
- /*
- t.notEqual(
- String(foo),
- String(Symbol('bar')),
- 'two symbols with different descriptions do not stringify the same'
- );
- */
-
- t.equal(typeof Symbol.prototype.toString, 'function', 'Symbol#toString is a function');
- // t.equal(String(foo), Symbol.prototype.toString.call(foo), 'Symbol#toString equals String of the same symbol');
-
- t.equal(typeof Object.getOwnPropertySymbols, 'function', 'Object.getOwnPropertySymbols is a function');
-
- var obj = {};
- var sym = Symbol('test');
- var symObj = Object(sym);
- t.notEqual(typeof sym, 'string', 'Symbol is not a string');
- t.equal(Object.prototype.toString.call(sym), '[object Symbol]', 'symbol primitive Object#toStrings properly');
- t.equal(Object.prototype.toString.call(symObj), '[object Symbol]', 'symbol primitive Object#toStrings properly');
-
- var symVal = 42;
- obj[sym] = symVal;
- for (sym in obj) { t.fail('symbol property key was found in for..in of object'); }
-
- t.deepEqual(Object.keys(obj), [], 'no enumerable own keys on symbol-valued object');
- t.deepEqual(Object.getOwnPropertyNames(obj), [], 'no own names on symbol-valued object');
- t.deepEqual(Object.getOwnPropertySymbols(obj), [sym], 'one own symbol on symbol-valued object');
- t.equal(Object.prototype.propertyIsEnumerable.call(obj, sym), true, 'symbol is enumerable');
- t.deepEqual(Object.getOwnPropertyDescriptor(obj, sym), {
- configurable: true,
- enumerable: true,
- value: 42,
- writable: true
- }, 'property descriptor is correct');
-};
diff --git a/node_modules/has/LICENSE-MIT b/node_modules/has/LICENSE-MIT
deleted file mode 100644
index ae7014d..0000000
--- a/node_modules/has/LICENSE-MIT
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2013 Thiago de Arruda
-
-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.
diff --git a/node_modules/has/README.md b/node_modules/has/README.md
deleted file mode 100644
index 635e3a4..0000000
--- a/node_modules/has/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# has
-
-> Object.prototype.hasOwnProperty.call shortcut
-
-## Installation
-
-```sh
-npm install --save has
-```
-
-## Usage
-
-```js
-var has = require('has');
-
-has({}, 'hasOwnProperty'); // false
-has(Object.prototype, 'hasOwnProperty'); // true
-```
diff --git a/node_modules/has/package.json b/node_modules/has/package.json
deleted file mode 100644
index 501046c..0000000
--- a/node_modules/has/package.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "_from": "has@^1.0.0",
- "_id": "has@1.0.3",
- "_inBundle": false,
- "_integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "_location": "/has",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "has@^1.0.0",
- "name": "has",
- "escapedName": "has",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/browserify"
- ],
- "_resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "_shasum": "722d7cbfc1f6aa8241f16dd814e011e1f41e8796",
- "_spec": "has@^1.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/browserify",
- "author": {
- "name": "Thiago de Arruda",
- "email": "tpadilha84@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/tarruda/has/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "deprecated": false,
- "description": "Object.prototype.hasOwnProperty.call shortcut",
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "eslint": "^4.19.1",
- "tape": "^4.9.0"
- },
- "engines": {
- "node": ">= 0.4.0"
- },
- "homepage": "https://github.com/tarruda/has",
- "license": "MIT",
- "licenses": [
- {
- "type": "MIT",
- "url": "https://github.com/tarruda/has/blob/master/LICENSE-MIT"
- }
- ],
- "main": "./src",
- "name": "has",
- "repository": {
- "type": "git",
- "url": "git://github.com/tarruda/has.git"
- },
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "tape test"
- },
- "version": "1.0.3"
-}
diff --git a/node_modules/has/src/index.js b/node_modules/has/src/index.js
deleted file mode 100644
index dd92dd9..0000000
--- a/node_modules/has/src/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-var bind = require('function-bind');
-
-module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
diff --git a/node_modules/has/test/index.js b/node_modules/has/test/index.js
deleted file mode 100644
index 43d480b..0000000
--- a/node_modules/has/test/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var has = require('../');
-
-test('has', function (t) {
- t.equal(has({}, 'hasOwnProperty'), false, 'object literal does not have own property "hasOwnProperty"');
- t.equal(has(Object.prototype, 'hasOwnProperty'), true, 'Object.prototype has own property "hasOwnProperty"');
- t.end();
-});
diff --git a/node_modules/hash-base/LICENSE b/node_modules/hash-base/LICENSE
deleted file mode 100644
index 6f02ae8..0000000
--- a/node_modules/hash-base/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Kirill Fomichev
-
-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.
diff --git a/node_modules/hash-base/README.md b/node_modules/hash-base/README.md
deleted file mode 100644
index 83ae2ed..0000000
--- a/node_modules/hash-base/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# hash-base
-
-[![NPM Package](https://img.shields.io/npm/v/hash-base.svg?style=flat-square)](https://www.npmjs.org/package/hash-base)
-[![Build Status](https://img.shields.io/travis/crypto-browserify/hash-base.svg?branch=master&style=flat-square)](https://travis-ci.org/crypto-browserify/hash-base)
-[![Dependency status](https://img.shields.io/david/crypto-browserify/hash-base.svg?style=flat-square)](https://david-dm.org/crypto-browserify/hash-base#info=dependencies)
-
-[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)
-
-Abstract base class to inherit from if you want to create streams implementing the same API as node crypto [Hash][1] (for [Cipher][2] / [Decipher][3] check [crypto-browserify/cipher-base][4]).
-
-## Example
-
-```js
-const HashBase = require('hash-base')
-const inherits = require('inherits')
-
-// our hash function is XOR sum of all bytes
-function MyHash () {
- HashBase.call(this, 1) // in bytes
-
- this._sum = 0x00
-}
-
-inherits(MyHash, HashBase)
-
-MyHash.prototype._update = function () {
- for (let i = 0; i < this._block.length; ++i) this._sum ^= this._block[i]
-}
-
-MyHash.prototype._digest = function () {
- return this._sum
-}
-
-const data = Buffer.from([ 0x00, 0x42, 0x01 ])
-const hash = new MyHash().update(data).digest()
-console.log(hash) // => 67
-```
-You also can check [source code](index.js) or [crypto-browserify/md5.js][5]
-
-## LICENSE
-
-MIT
-
-[1]: https://nodejs.org/api/crypto.html#crypto_class_hash
-[2]: https://nodejs.org/api/crypto.html#crypto_class_cipher
-[3]: https://nodejs.org/api/crypto.html#crypto_class_decipher
-[4]: https://github.com/crypto-browserify/cipher-base
-[5]: https://github.com/crypto-browserify/md5.js
diff --git a/node_modules/hash-base/index.js b/node_modules/hash-base/index.js
deleted file mode 100644
index bf788da..0000000
--- a/node_modules/hash-base/index.js
+++ /dev/null
@@ -1,95 +0,0 @@
-'use strict'
-var Buffer = require('safe-buffer').Buffer
-var Transform = require('stream').Transform
-var inherits = require('inherits')
-
-function throwIfNotStringOrBuffer (val, prefix) {
- if (!Buffer.isBuffer(val) && typeof val !== 'string') {
- throw new TypeError(prefix + ' must be a string or a buffer')
- }
-}
-
-function HashBase (blockSize) {
- Transform.call(this)
-
- this._block = Buffer.allocUnsafe(blockSize)
- this._blockSize = blockSize
- this._blockOffset = 0
- this._length = [0, 0, 0, 0]
-
- this._finalized = false
-}
-
-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) {
- throwIfNotStringOrBuffer(data, 'Data')
- if (this._finalized) throw new Error('Digest already called')
- if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
-
- // consume data
- var block = this._block
- var offset = 0
- while (this._blockOffset + data.length - offset >= this._blockSize) {
- for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
- this._update()
- this._blockOffset = 0
- }
- while (offset < data.length) block[this._blockOffset++] = data[offset++]
-
- // update length
- for (var j = 0, carry = data.length * 8; carry > 0; ++j) {
- this._length[j] += carry
- carry = (this._length[j] / 0x0100000000) | 0
- if (carry > 0) this._length[j] -= 0x0100000000 * 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 = true
-
- var digest = this._digest()
- if (encoding !== undefined) digest = digest.toString(encoding)
-
- // reset state
- 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
diff --git a/node_modules/hash-base/package.json b/node_modules/hash-base/package.json
deleted file mode 100644
index 5109d56..0000000
--- a/node_modules/hash-base/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "hash-base@^3.0.0",
- "_id": "hash-base@3.0.4",
- "_inBundle": false,
- "_integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
- "_location": "/hash-base",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "hash-base@^3.0.0",
- "name": "hash-base",
- "escapedName": "hash-base",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/md5.js",
- "/ripemd160"
- ],
- "_resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
- "_shasum": "5fc8686847ecd73499403319a6b0a3f3f6ae4918",
- "_spec": "hash-base@^3.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/md5.js",
- "author": {
- "name": "Kirill Fomichev",
- "email": "fanatid@ya.ru",
- "url": "https://github.com/fanatid"
- },
- "bugs": {
- "url": "https://github.com/crypto-browserify/hash-base/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "deprecated": false,
- "description": "abstract base class for hash-streams",
- "devDependencies": {
- "nyc": "^8.3.2",
- "standard": "*",
- "tape": "^4.2.0"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/crypto-browserify/hash-base",
- "keywords": [
- "hash",
- "stream"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "hash-base",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/crypto-browserify/hash-base.git"
- },
- "scripts": {
- "coverage": "nyc node test/*.js",
- "lint": "standard",
- "test": "npm run lint && npm run unit",
- "unit": "node test/*.js"
- },
- "version": "3.0.4"
-}
diff --git a/node_modules/hash.js/.eslintrc.js b/node_modules/hash.js/.eslintrc.js
deleted file mode 100644
index 614f8fc..0000000
--- a/node_modules/hash.js/.eslintrc.js
+++ /dev/null
@@ -1,41 +0,0 @@
-module.exports = {
- 'env': {
- 'browser': true,
- 'commonjs': true,
- 'node': true,
- 'es6': true
- },
- 'parserOptions': {
- 'ecmaVersion': 8
- },
- 'extends': 'eslint:recommended',
- 'rules': {
- 'indent': [
- 'error',
- 2,
- {
- 'FunctionDeclaration': {
- 'parameters': 'first'
- },
- 'FunctionExpression': {
- 'parameters': 'first'
- },
- 'CallExpression': {
- 'arguments': 'first'
- }
- }
- ],
- 'linebreak-style': [
- 'error',
- 'unix'
- ],
- 'quotes': [
- 'error',
- 'single'
- ],
- 'semi': [
- 'error',
- 'always'
- ]
- }
-};
diff --git a/node_modules/hash.js/.travis.yml b/node_modules/hash.js/.travis.yml
deleted file mode 100644
index 5406edc..0000000
--- a/node_modules/hash.js/.travis.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-sudo: false
-language: node_js
-node_js:
- - "6"
- - "8"
- - "10"
- - "stable"
-branches:
- only:
- - master
diff --git a/node_modules/hash.js/README.md b/node_modules/hash.js/README.md
deleted file mode 100644
index 006d3bb..0000000
--- a/node_modules/hash.js/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# hash.js [![Build Status](https://secure.travis-ci.org/indutny/hash.js.svg)](http://travis-ci.org/indutny/hash.js)
-
-Just a bike-shed.
-
-## Install
-
-```sh
-npm install hash.js
-```
-
-## Usage
-
-```js
-var hash = require('hash.js')
-hash.sha256().update('abc').digest('hex')
-```
-
-## Selective hash usage
-
-```js
-var sha512 = require('hash.js/lib/hash/sha/512');
-sha512().update('abc').digest('hex');
-```
-
-#### LICENSE
-
-This software is licensed under the MIT License.
-
-Copyright Fedor Indutny, 2014.
-
-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.
diff --git a/node_modules/hash.js/lib/hash.d.ts b/node_modules/hash.js/lib/hash.d.ts
deleted file mode 100644
index abbb5c5..0000000
--- a/node_modules/hash.js/lib/hash.d.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-declare var hash: Hash;
-
-declare module "hash.js" {
- export = hash;
-}
-
-interface BlockHash {
- hmacStrength: number
- padLength: number
- endian: 'big' | 'little'
-}
-
-interface MessageDigest {
- blockSize: number
- outSize: number
- update(msg: any, enc?: 'hex'): T
- digest(): number[]
- digest(enc: 'hex'): string
-}
-
-interface Hash {
- hmac: HmacConstructor
- ripemd: RipemdSet
- ripemd160: Ripemd160Constructor
- sha: ShaSet
- sha1: Sha1Constructor
- sha224: Sha224Constructor
- sha256: Sha256Constructor
- sha384: Sha384Constructor
- sha512: Sha512Constructor
- utils: Utils
-}
-
-interface Utils {
- toArray(msg: any, enc: 'hex'): Array
- toHex(msg: any): string
-}
-
-interface RipemdSet {
- ripemd160: Ripemd160Constructor
-}
-
-interface ShaSet {
- sha1: Sha1Constructor
- sha224: Sha224Constructor
- sha256: Sha256Constructor
- sha384: Sha384Constructor
- sha512: Sha512Constructor
-}
-
-interface HmacConstructor { (hash: BlockHash, key: any, enc?: 'hex'): Hmac }
-interface Ripemd160Constructor { (): Ripemd160 }
-interface Sha1Constructor { (): Sha1; }
-interface Sha224Constructor { (): Sha224; }
-interface Sha256Constructor { (): Sha256; }
-interface Sha384Constructor { (): Sha384; }
-interface Sha512Constructor { (): Sha512; }
-
-interface Hmac extends MessageDigest {
- blockSize: 512
- outSize: 160
-}
-
-interface Ripemd160 extends BlockHash, MessageDigest {
- blockSize: 512
- hmacStrength: 192
- outSize: 160
- padLength: 64
- endian: 'little'
-}
-
-interface Sha1 extends BlockHash, MessageDigest {
- blockSize: 512
- hmacStrength: 80
- outSize: 160
- padLength: 64
- endian: 'big'
-}
-interface Sha224 extends BlockHash, MessageDigest {
- blockSize: 512
- hmacStrength: 192
- outSize: 224
- padLength: 64
- endian: 'big'
-}
-interface Sha256 extends BlockHash, MessageDigest {
- blockSize: 512
- hmacStrength: 192
- outSize: 256
- padLength: 64
- endian: 'big'
-}
-interface Sha384 extends BlockHash, MessageDigest {
- blockSize: 1024
- hmacStrength: 192
- outSize: 384
- padLength: 128
- endian: 'big'
-}
-interface Sha512 extends BlockHash, MessageDigest {
- blockSize: 1024
- hmacStrength: 192
- outSize: 512
- padLength: 128
- endian: 'big'
-}
diff --git a/node_modules/hash.js/lib/hash.js b/node_modules/hash.js/lib/hash.js
deleted file mode 100644
index f59b673..0000000
--- a/node_modules/hash.js/lib/hash.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var hash = exports;
-
-hash.utils = require('./hash/utils');
-hash.common = require('./hash/common');
-hash.sha = require('./hash/sha');
-hash.ripemd = require('./hash/ripemd');
-hash.hmac = require('./hash/hmac');
-
-// Proxy hash functions to the main object
-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;
diff --git a/node_modules/hash.js/lib/hash/common.js b/node_modules/hash.js/lib/hash/common.js
deleted file mode 100644
index c49f476..0000000
--- a/node_modules/hash.js/lib/hash/common.js
+++ /dev/null
@@ -1,92 +0,0 @@
-'use strict';
-
-var utils = require('./utils');
-var 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 update(msg, enc) {
- // Convert message to array, pad it, and join into 32bit blocks
- msg = utils.toArray(msg, enc);
- if (!this.pending)
- this.pending = msg;
- else
- this.pending = this.pending.concat(msg);
- this.pendingTotal += msg.length;
-
- // Enough data, try updating
- if (this.pending.length >= this._delta8) {
- msg = this.pending;
-
- // Process pending data in blocks
- var r = msg.length % this._delta8;
- this.pending = msg.slice(msg.length - r, msg.length);
- if (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 digest(enc) {
- this.update(this._pad());
- assert(this.pending === null);
-
- return this._digest(enc);
-};
-
-BlockHash.prototype._pad = function pad() {
- var len = this.pendingTotal;
- var bytes = this._delta8;
- var k = bytes - ((len + this.padLength) % bytes);
- var res = new Array(k + this.padLength);
- res[0] = 0x80;
- for (var i = 1; i < k; i++)
- res[i] = 0;
-
- // Append length
- len <<= 3;
- if (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) & 0xff;
- res[i++] = (len >>> 16) & 0xff;
- res[i++] = (len >>> 8) & 0xff;
- res[i++] = len & 0xff;
- } else {
- res[i++] = len & 0xff;
- res[i++] = (len >>> 8) & 0xff;
- res[i++] = (len >>> 16) & 0xff;
- res[i++] = (len >>> 24) & 0xff;
- res[i++] = 0;
- res[i++] = 0;
- res[i++] = 0;
- res[i++] = 0;
-
- for (t = 8; t < this.padLength; t++)
- res[i++] = 0;
- }
-
- return res;
-};
diff --git a/node_modules/hash.js/lib/hash/hmac.js b/node_modules/hash.js/lib/hash/hmac.js
deleted file mode 100644
index faff12d..0000000
--- a/node_modules/hash.js/lib/hash/hmac.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-var utils = require('./utils');
-var 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 init(key) {
- // Shorten key, if needed
- if (key.length > this.blockSize)
- key = new this.Hash().update(key).digest();
- assert(key.length <= this.blockSize);
-
- // Add padding to key
- for (var i = key.length; i < this.blockSize; i++)
- key.push(0);
-
- for (i = 0; i < key.length; i++)
- key[i] ^= 0x36;
- this.inner = new this.Hash().update(key);
-
- // 0x36 ^ 0x5c = 0x6a
- for (i = 0; i < key.length; i++)
- key[i] ^= 0x6a;
- this.outer = new this.Hash().update(key);
-};
-
-Hmac.prototype.update = function update(msg, enc) {
- this.inner.update(msg, enc);
- return this;
-};
-
-Hmac.prototype.digest = function digest(enc) {
- this.outer.update(this.inner.digest());
- return this.outer.digest(enc);
-};
diff --git a/node_modules/hash.js/lib/hash/ripemd.js b/node_modules/hash.js/lib/hash/ripemd.js
deleted file mode 100644
index 2dcdff2..0000000
--- a/node_modules/hash.js/lib/hash/ripemd.js
+++ /dev/null
@@ -1,146 +0,0 @@
-'use strict';
-
-var utils = require('./utils');
-var common = require('./common');
-
-var rotl32 = utils.rotl32;
-var sum32 = utils.sum32;
-var sum32_3 = utils.sum32_3;
-var sum32_4 = utils.sum32_4;
-var BlockHash = common.BlockHash;
-
-function RIPEMD160() {
- if (!(this instanceof RIPEMD160))
- return new RIPEMD160();
-
- BlockHash.call(this);
-
- this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];
- 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 update(msg, start) {
- var A = this.h[0];
- var B = this.h[1];
- var C = this.h[2];
- var D = this.h[3];
- var E = this.h[4];
- var Ah = A;
- var Bh = B;
- var Ch = C;
- var Dh = D;
- var Eh = E;
- for (var 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 digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h, 'little');
- else
- return utils.split32(this.h, 'little');
-};
-
-function f(j, x, y, z) {
- if (j <= 15)
- return x ^ y ^ z;
- else if (j <= 31)
- return (x & y) | ((~x) & z);
- else if (j <= 47)
- return (x | (~y)) ^ z;
- else if (j <= 63)
- return (x & z) | (y & (~z));
- else
- return x ^ (y | (~z));
-}
-
-function K(j) {
- if (j <= 15)
- return 0x00000000;
- else if (j <= 31)
- return 0x5a827999;
- else if (j <= 47)
- return 0x6ed9eba1;
- else if (j <= 63)
- return 0x8f1bbcdc;
- else
- return 0xa953fd4e;
-}
-
-function Kh(j) {
- if (j <= 15)
- return 0x50a28be6;
- else if (j <= 31)
- return 0x5c4dd124;
- else if (j <= 47)
- return 0x6d703ef3;
- else if (j <= 63)
- return 0x7a6d76e9;
- else
- return 0x00000000;
-}
-
-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
-];
-
-var 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
-];
-
-var 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
-];
-
-var 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
-];
diff --git a/node_modules/hash.js/lib/hash/sha.js b/node_modules/hash.js/lib/hash/sha.js
deleted file mode 100644
index f34a38d..0000000
--- a/node_modules/hash.js/lib/hash/sha.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-exports.sha1 = require('./sha/1');
-exports.sha224 = require('./sha/224');
-exports.sha256 = require('./sha/256');
-exports.sha384 = require('./sha/384');
-exports.sha512 = require('./sha/512');
diff --git a/node_modules/hash.js/lib/hash/sha/1.js b/node_modules/hash.js/lib/hash/sha/1.js
deleted file mode 100644
index fcdfa29..0000000
--- a/node_modules/hash.js/lib/hash/sha/1.js
+++ /dev/null
@@ -1,74 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-var common = require('../common');
-var shaCommon = require('./common');
-
-var rotl32 = utils.rotl32;
-var sum32 = utils.sum32;
-var sum32_5 = utils.sum32_5;
-var ft_1 = shaCommon.ft_1;
-var BlockHash = common.BlockHash;
-
-var sha1_K = [
- 0x5A827999, 0x6ED9EBA1,
- 0x8F1BBCDC, 0xCA62C1D6
-];
-
-function SHA1() {
- if (!(this instanceof SHA1))
- return new SHA1();
-
- BlockHash.call(this);
- this.h = [
- 0x67452301, 0xefcdab89, 0x98badcfe,
- 0x10325476, 0xc3d2e1f0 ];
- 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 _update(msg, start) {
- var W = this.W;
-
- for (var 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];
- var b = this.h[1];
- var c = this.h[2];
- var d = this.h[3];
- var e = this.h[4];
-
- for (i = 0; i < W.length; i++) {
- var s = ~~(i / 20);
- var 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 digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h, 'big');
- else
- return utils.split32(this.h, 'big');
-};
diff --git a/node_modules/hash.js/lib/hash/sha/224.js b/node_modules/hash.js/lib/hash/sha/224.js
deleted file mode 100644
index c69882d..0000000
--- a/node_modules/hash.js/lib/hash/sha/224.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-var SHA256 = require('./256');
-
-function SHA224() {
- if (!(this instanceof SHA224))
- return new SHA224();
-
- SHA256.call(this);
- this.h = [
- 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
- 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];
-}
-utils.inherits(SHA224, SHA256);
-module.exports = SHA224;
-
-SHA224.blockSize = 512;
-SHA224.outSize = 224;
-SHA224.hmacStrength = 192;
-SHA224.padLength = 64;
-
-SHA224.prototype._digest = function digest(enc) {
- // Just truncate output
- if (enc === 'hex')
- return utils.toHex32(this.h.slice(0, 7), 'big');
- else
- return utils.split32(this.h.slice(0, 7), 'big');
-};
-
diff --git a/node_modules/hash.js/lib/hash/sha/256.js b/node_modules/hash.js/lib/hash/sha/256.js
deleted file mode 100644
index 6dbd6a0..0000000
--- a/node_modules/hash.js/lib/hash/sha/256.js
+++ /dev/null
@@ -1,105 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-var common = require('../common');
-var shaCommon = require('./common');
-var assert = require('minimalistic-assert');
-
-var sum32 = utils.sum32;
-var sum32_4 = utils.sum32_4;
-var sum32_5 = utils.sum32_5;
-var ch32 = shaCommon.ch32;
-var maj32 = shaCommon.maj32;
-var s0_256 = shaCommon.s0_256;
-var s1_256 = shaCommon.s1_256;
-var g0_256 = shaCommon.g0_256;
-var g1_256 = shaCommon.g1_256;
-
-var BlockHash = common.BlockHash;
-
-var sha256_K = [
- 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
- 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
- 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
- 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
- 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
- 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
- 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
- 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
- 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
- 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
- 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
- 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
- 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
- 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
- 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
- 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
-];
-
-function SHA256() {
- if (!(this instanceof SHA256))
- return new SHA256();
-
- BlockHash.call(this);
- this.h = [
- 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
- 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
- ];
- 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 _update(msg, start) {
- var W = this.W;
-
- for (var 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];
- var b = this.h[1];
- var c = this.h[2];
- var d = this.h[3];
- var e = this.h[4];
- var f = this.h[5];
- var g = this.h[6];
- var h = this.h[7];
-
- assert(this.k.length === W.length);
- for (i = 0; i < W.length; i++) {
- var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
- var 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 digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h, 'big');
- else
- return utils.split32(this.h, 'big');
-};
diff --git a/node_modules/hash.js/lib/hash/sha/384.js b/node_modules/hash.js/lib/hash/sha/384.js
deleted file mode 100644
index 01df256..0000000
--- a/node_modules/hash.js/lib/hash/sha/384.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-
-var SHA512 = require('./512');
-
-function SHA384() {
- if (!(this instanceof SHA384))
- return new SHA384();
-
- SHA512.call(this);
- this.h = [
- 0xcbbb9d5d, 0xc1059ed8,
- 0x629a292a, 0x367cd507,
- 0x9159015a, 0x3070dd17,
- 0x152fecd8, 0xf70e5939,
- 0x67332667, 0xffc00b31,
- 0x8eb44a87, 0x68581511,
- 0xdb0c2e0d, 0x64f98fa7,
- 0x47b5481d, 0xbefa4fa4 ];
-}
-utils.inherits(SHA384, SHA512);
-module.exports = SHA384;
-
-SHA384.blockSize = 1024;
-SHA384.outSize = 384;
-SHA384.hmacStrength = 192;
-SHA384.padLength = 128;
-
-SHA384.prototype._digest = function digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h.slice(0, 12), 'big');
- else
- return utils.split32(this.h.slice(0, 12), 'big');
-};
diff --git a/node_modules/hash.js/lib/hash/sha/512.js b/node_modules/hash.js/lib/hash/sha/512.js
deleted file mode 100644
index c371a25..0000000
--- a/node_modules/hash.js/lib/hash/sha/512.js
+++ /dev/null
@@ -1,330 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-var common = require('../common');
-var assert = require('minimalistic-assert');
-
-var rotr64_hi = utils.rotr64_hi;
-var rotr64_lo = utils.rotr64_lo;
-var shr64_hi = utils.shr64_hi;
-var shr64_lo = utils.shr64_lo;
-var sum64 = utils.sum64;
-var sum64_hi = utils.sum64_hi;
-var sum64_lo = utils.sum64_lo;
-var sum64_4_hi = utils.sum64_4_hi;
-var sum64_4_lo = utils.sum64_4_lo;
-var sum64_5_hi = utils.sum64_5_hi;
-var sum64_5_lo = utils.sum64_5_lo;
-
-var BlockHash = common.BlockHash;
-
-var sha512_K = [
- 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
- 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
- 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
- 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
- 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
- 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
- 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
- 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
- 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
- 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
- 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
- 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
- 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
- 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
- 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
- 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
- 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
- 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
- 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
- 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
- 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
- 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
- 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
- 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
- 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
- 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
- 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
- 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
- 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
- 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
- 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
- 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
- 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
- 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
- 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
- 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
- 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
- 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
- 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
- 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
-];
-
-function SHA512() {
- if (!(this instanceof SHA512))
- return new SHA512();
-
- BlockHash.call(this);
- this.h = [
- 0x6a09e667, 0xf3bcc908,
- 0xbb67ae85, 0x84caa73b,
- 0x3c6ef372, 0xfe94f82b,
- 0xa54ff53a, 0x5f1d36f1,
- 0x510e527f, 0xade682d1,
- 0x9b05688c, 0x2b3e6c1f,
- 0x1f83d9ab, 0xfb41bd6b,
- 0x5be0cd19, 0x137e2179 ];
- 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 _prepareBlock(msg, start) {
- var W = this.W;
-
- // 32 x 32bit words
- for (var 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]); // i - 2
- var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);
- var c1_hi = W[i - 14]; // i - 7
- var c1_lo = W[i - 13];
- var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15
- var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);
- var c3_hi = W[i - 32]; // i - 16
- var 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 _update(msg, start) {
- this._prepareBlock(msg, start);
-
- var W = this.W;
-
- var ah = this.h[0];
- var al = this.h[1];
- var bh = this.h[2];
- var bl = this.h[3];
- var ch = this.h[4];
- var cl = this.h[5];
- var dh = this.h[6];
- var dl = this.h[7];
- var eh = this.h[8];
- var el = this.h[9];
- var fh = this.h[10];
- var fl = this.h[11];
- var gh = this.h[12];
- var gl = this.h[13];
- var hh = this.h[14];
- var hl = this.h[15];
-
- assert(this.k.length === W.length);
- for (var i = 0; i < W.length; i += 2) {
- var c0_hi = hh;
- var c0_lo = hl;
- var c1_hi = s1_512_hi(eh, el);
- var c1_lo = s1_512_lo(eh, el);
- var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
- var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
- var c3_hi = this.k[i];
- var c3_lo = this.k[i + 1];
- var c4_hi = W[i];
- var c4_lo = W[i + 1];
-
- var 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);
- var 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);
- var 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 digest(enc) {
- if (enc === 'hex')
- return utils.toHex32(this.h, 'big');
- else
- return utils.split32(this.h, 'big');
-};
-
-function ch64_hi(xh, xl, yh, yl, zh) {
- var r = (xh & yh) ^ ((~xh) & zh);
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function ch64_lo(xh, xl, yh, yl, zh, zl) {
- var r = (xl & yl) ^ ((~xl) & zl);
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function maj64_hi(xh, xl, yh, yl, zh) {
- var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function maj64_lo(xh, xl, yh, yl, zh, zl) {
- var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function s0_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 28);
- var c1_hi = rotr64_hi(xl, xh, 2); // 34
- var c2_hi = rotr64_hi(xl, xh, 7); // 39
-
- var r = c0_hi ^ c1_hi ^ c2_hi;
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function s0_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 28);
- var c1_lo = rotr64_lo(xl, xh, 2); // 34
- var c2_lo = rotr64_lo(xl, xh, 7); // 39
-
- var r = c0_lo ^ c1_lo ^ c2_lo;
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function s1_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 14);
- var c1_hi = rotr64_hi(xh, xl, 18);
- var c2_hi = rotr64_hi(xl, xh, 9); // 41
-
- var r = c0_hi ^ c1_hi ^ c2_hi;
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function s1_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 14);
- var c1_lo = rotr64_lo(xh, xl, 18);
- var c2_lo = rotr64_lo(xl, xh, 9); // 41
-
- var r = c0_lo ^ c1_lo ^ c2_lo;
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function g0_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 1);
- var c1_hi = rotr64_hi(xh, xl, 8);
- var c2_hi = shr64_hi(xh, xl, 7);
-
- var r = c0_hi ^ c1_hi ^ c2_hi;
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function g0_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 1);
- var c1_lo = rotr64_lo(xh, xl, 8);
- var c2_lo = shr64_lo(xh, xl, 7);
-
- var r = c0_lo ^ c1_lo ^ c2_lo;
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function g1_512_hi(xh, xl) {
- var c0_hi = rotr64_hi(xh, xl, 19);
- var c1_hi = rotr64_hi(xl, xh, 29); // 61
- var c2_hi = shr64_hi(xh, xl, 6);
-
- var r = c0_hi ^ c1_hi ^ c2_hi;
- if (r < 0)
- r += 0x100000000;
- return r;
-}
-
-function g1_512_lo(xh, xl) {
- var c0_lo = rotr64_lo(xh, xl, 19);
- var c1_lo = rotr64_lo(xl, xh, 29); // 61
- var c2_lo = shr64_lo(xh, xl, 6);
-
- var r = c0_lo ^ c1_lo ^ c2_lo;
- if (r < 0)
- r += 0x100000000;
- return r;
-}
diff --git a/node_modules/hash.js/lib/hash/sha/common.js b/node_modules/hash.js/lib/hash/sha/common.js
deleted file mode 100644
index d41b464..0000000
--- a/node_modules/hash.js/lib/hash/sha/common.js
+++ /dev/null
@@ -1,49 +0,0 @@
-'use strict';
-
-var utils = require('../utils');
-var 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;
diff --git a/node_modules/hash.js/lib/hash/utils.js b/node_modules/hash.js/lib/hash/utils.js
deleted file mode 100644
index 7487f8e..0000000
--- a/node_modules/hash.js/lib/hash/utils.js
+++ /dev/null
@@ -1,278 +0,0 @@
-'use strict';
-
-var assert = require('minimalistic-assert');
-var inherits = require('inherits');
-
-exports.inherits = inherits;
-
-function isSurrogatePair(msg, i) {
- if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {
- return false;
- }
- if (i < 0 || i + 1 >= msg.length) {
- return false;
- }
- return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;
-}
-
-function toArray(msg, enc) {
- if (Array.isArray(msg))
- return msg.slice();
- if (!msg)
- return [];
- var res = [];
- if (typeof msg === 'string') {
- if (!enc) {
- // Inspired by stringToUtf8ByteArray() in closure-library by Google
- // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143
- // Apache License 2.0
- // https://github.com/google/closure-library/blob/master/LICENSE
- var p = 0;
- for (var i = 0; i < msg.length; i++) {
- var c = msg.charCodeAt(i);
- if (c < 128) {
- res[p++] = c;
- } else if (c < 2048) {
- res[p++] = (c >> 6) | 192;
- res[p++] = (c & 63) | 128;
- } else if (isSurrogatePair(msg, i)) {
- c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);
- res[p++] = (c >> 18) | 240;
- res[p++] = ((c >> 12) & 63) | 128;
- res[p++] = ((c >> 6) & 63) | 128;
- res[p++] = (c & 63) | 128;
- } else {
- res[p++] = (c >> 12) | 224;
- res[p++] = ((c >> 6) & 63) | 128;
- res[p++] = (c & 63) | 128;
- }
- }
- } else if (enc === 'hex') {
- msg = msg.replace(/[^a-z0-9]+/ig, '');
- if (msg.length % 2 !== 0)
- msg = '0' + msg;
- for (i = 0; i < msg.length; i += 2)
- res.push(parseInt(msg[i] + msg[i + 1], 16));
- }
- } else {
- for (i = 0; i < msg.length; i++)
- res[i] = msg[i] | 0;
- }
- return res;
-}
-exports.toArray = toArray;
-
-function toHex(msg) {
- var res = '';
- for (var 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) & 0xff00) |
- ((w << 8) & 0xff0000) |
- ((w & 0xff) << 24);
- return res >>> 0;
-}
-exports.htonl = htonl;
-
-function toHex32(msg, endian) {
- var res = '';
- for (var i = 0; i < msg.length; i++) {
- var w = msg[i];
- if (endian === 'little')
- w = htonl(w);
- res += zero8(w.toString(16));
- }
- return res;
-}
-exports.toHex32 = toHex32;
-
-function zero2(word) {
- if (word.length === 1)
- return '0' + word;
- else
- return word;
-}
-exports.zero2 = zero2;
-
-function zero8(word) {
- if (word.length === 7)
- return '0' + word;
- else if (word.length === 6)
- return '00' + word;
- else if (word.length === 5)
- return '000' + word;
- else if (word.length === 4)
- return '0000' + word;
- else if (word.length === 3)
- return '00000' + word;
- else if (word.length === 2)
- return '000000' + word;
- else if (word.length === 1)
- return '0000000' + word;
- else
- return word;
-}
-exports.zero8 = zero8;
-
-function join32(msg, start, end, endian) {
- var len = end - start;
- assert(len % 4 === 0);
- var res = new Array(len / 4);
- for (var i = 0, k = start; i < res.length; i++, k += 4) {
- var w;
- if (endian === 'big')
- w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];
- else
- 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) {
- var res = new Array(msg.length * 4);
- for (var i = 0, k = 0; i < msg.length; i++, k += 4) {
- var m = msg[i];
- if (endian === 'big') {
- res[k] = m >>> 24;
- res[k + 1] = (m >>> 16) & 0xff;
- res[k + 2] = (m >>> 8) & 0xff;
- res[k + 3] = m & 0xff;
- } else {
- res[k + 3] = m >>> 24;
- res[k + 2] = (m >>> 16) & 0xff;
- res[k + 1] = (m >>> 8) & 0xff;
- res[k] = m & 0xff;
- }
- }
- 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];
- var bl = buf[pos + 1];
-
- var lo = (al + bl) >>> 0;
- var 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;
- var 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;
- var 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;
- var 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;
diff --git a/node_modules/hash.js/package.json b/node_modules/hash.js/package.json
deleted file mode 100644
index 1e07ca7..0000000
--- a/node_modules/hash.js/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "hash.js@^1.0.0",
- "_id": "hash.js@1.1.7",
- "_inBundle": false,
- "_integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "_location": "/hash.js",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "hash.js@^1.0.0",
- "name": "hash.js",
- "escapedName": "hash.js",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/elliptic",
- "/hmac-drbg"
- ],
- "_resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "_shasum": "0babca538e8d4ee4a0f8988d68866537a003cf42",
- "_spec": "hash.js@^1.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/elliptic",
- "author": {
- "name": "Fedor Indutny",
- "email": "fedor@indutny.com"
- },
- "bugs": {
- "url": "https://github.com/indutny/hash.js/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- },
- "deprecated": false,
- "description": "Various hash functions that could be run by both browser and node",
- "devDependencies": {
- "eslint": "^4.19.1",
- "mocha": "^5.2.0"
- },
- "homepage": "https://github.com/indutny/hash.js",
- "keywords": [
- "hash",
- "sha256",
- "sha224",
- "hmac"
- ],
- "license": "MIT",
- "main": "lib/hash.js",
- "name": "hash.js",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/hash.js.git"
- },
- "scripts": {
- "lint": "eslint lib/*.js lib/**/*.js lib/**/**/*.js test/*.js",
- "test": "mocha --reporter=spec test/*-test.js && npm run lint"
- },
- "typings": "lib/hash.d.ts",
- "version": "1.1.7"
-}
diff --git a/node_modules/hash.js/test/hash-test.js b/node_modules/hash.js/test/hash-test.js
deleted file mode 100644
index f6ca564..0000000
--- a/node_modules/hash.js/test/hash-test.js
+++ /dev/null
@@ -1,140 +0,0 @@
-'use strict';
-/* global describe it */
-
-var assert = require('assert');
-var crypto = require('crypto');
-var hash = require('../');
-
-describe('Hash', function() {
- function test(fn, cases) {
- for (var i = 0; i < cases.length; i++) {
- var msg = cases[i][0];
- var res = cases[i][1];
- var enc = cases[i][2];
-
- var dgst = fn().update(msg, enc).digest('hex');
- assert.equal(dgst, res);
-
- // Split message
- dgst = fn().update(msg.slice(0, 2), enc)
- .update(msg.slice(2), enc)
- .digest('hex');
- assert.equal(dgst, res);
- }
- }
-
- it('should support sha256', function() {
- assert.equal(hash.sha256.blockSize, 512);
- assert.equal(hash.sha256.outSize, 256);
-
- test(hash.sha256, [
- [ 'abc',
- 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad' ],
- [ 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq',
- '248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1' ],
- [ 'deadbeef',
- '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953',
- 'hex' ],
- ]);
- });
-
- it('should support sha224', function() {
- assert.equal(hash.sha224.blockSize, 512);
- assert.equal(hash.sha224.outSize, 224);
-
- test(hash.sha224, [
- [ 'abc',
- '23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7' ],
- [ 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq',
- '75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525' ],
- [ 'deadbeef',
- '55b9eee5f60cc362ddc07676f620372611e22272f60fdbec94f243f8',
- 'hex' ],
- ]);
- });
-
- it('should support ripemd160', function() {
- assert.equal(hash.ripemd160.blockSize, 512);
- assert.equal(hash.ripemd160.outSize, 160);
-
- test(hash.ripemd160, [
- [ '', '9c1185a5c5e9fc54612808977ee8f548b2258d31'],
- [ 'abc',
- '8eb208f7e05d987a9b044a8e98c6b087f15a0bfc' ],
- [ 'message digest',
- '5d0689ef49d2fae572b881b123a85ffa21595f36' ],
- [ 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq',
- '12a053384a9c0c88e405a06c27dcf49ada62eb2b' ],
- [ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
- 'b0e20b6e3116640286ed3a87a5713079b21f5189' ],
- ]);
- });
-
- it('should support sha1', function() {
- assert.equal(hash.sha1.blockSize, 512);
- assert.equal(hash.sha1.outSize, 160);
-
- test(hash.sha1, [
- [ '',
- 'da39a3ee5e6b4b0d3255bfef95601890afd80709' ],
- [ 'abc',
- 'a9993e364706816aba3e25717850c26c9cd0d89d' ],
- [ 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq',
- '84983e441c3bd26ebaae4aa1f95129e5e54670f1' ],
- [ 'deadbeef',
- 'd78f8bb992a56a597f6c7a1fb918bb78271367eb',
- 'hex' ],
- ]);
- });
-
- it('should support sha512', function() {
- assert.equal(hash.sha512.blockSize, 1024);
- assert.equal(hash.sha512.outSize, 512);
-
- test(hash.sha512, [
- [ 'abc',
- 'ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a' +
- '2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f'
- ],
- [
- 'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn' +
- 'hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu',
- '8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018' +
- '501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909'
- ]
- ]);
- });
-
- it('should support sha384', function() {
- assert.equal(hash.sha384.blockSize, 1024);
- assert.equal(hash.sha384.outSize, 384);
-
- test(hash.sha384, [
- [ 'abc',
- 'cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed' +
- '8086072ba1e7cc2358baeca134c825a7'
- ],
- [
- 'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn' +
- 'hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu',
- '09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712' +
- 'fcc7c71a557e2db966c3e9fa91746039'
- ]
- ]);
- });
-
- it('handles utf8 in strings just like crypto', function() {
- const algorithm = 'sha256';
- test(hash[algorithm], [
- 'hello', // one byte per character
- 'привет', // two bytes per character
- '您好', // three bytes per character
- '👋', // four bytes per character
- 'hello привет 您好 👋!!!' // mixed character lengths
- ].map(str => [str, crypto
- .createHash(algorithm)
- .update(str)
- .digest('hex')]));
- });
-
-});
diff --git a/node_modules/hash.js/test/hmac-test.js b/node_modules/hash.js/test/hmac-test.js
deleted file mode 100644
index 6fe18e3..0000000
--- a/node_modules/hash.js/test/hmac-test.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-/* global describe it */
-
-var assert = require('assert');
-var hash = require('../');
-
-describe('Hmac', function() {
- describe('mixed test vector', function() {
- test({
- name: 'nist 1',
- key: '00010203 04050607 08090A0B 0C0D0E0F' +
- '10111213 14151617 18191A1B 1C1D1E1F 20212223 24252627' +
- '28292A2B 2C2D2E2F 30313233 34353637 38393A3B 3C3D3E3F',
- msg: 'Sample message for keylen=blocklen',
- res: '8bb9a1db9806f20df7f77b82138c7914d174d59e13dc4d0169c9057b133e1d62'
- });
- test({
- name: 'nist 2',
- key: '00010203 04050607' +
- '08090A0B 0C0D0E0F 10111213 14151617 18191A1B 1C1D1E1F',
- msg: 'Sample message for keylen= (this.minEntropy / 8),
- 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
- this._init(entropy, nonce, pers);
-}
-module.exports = HmacDRBG;
-
-HmacDRBG.prototype._init = function init(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] = 0x00;
- this.V[i] = 0x01;
- }
-
- this._update(seed);
- this._reseed = 1;
- this.reseedInterval = 0x1000000000000; // 2^48
-};
-
-HmacDRBG.prototype._hmac = function hmac() {
- return new hash.hmac(this.hash, this.K);
-};
-
-HmacDRBG.prototype._update = function update(seed) {
- var kmac = this._hmac()
- .update(this.V)
- .update([ 0x00 ]);
- if (seed)
- kmac = kmac.update(seed);
- this.K = kmac.digest();
- this.V = this._hmac().update(this.V).digest();
- if (!seed)
- return;
-
- this.K = this._hmac()
- .update(this.V)
- .update([ 0x01 ])
- .update(seed)
- .digest();
- this.V = this._hmac().update(this.V).digest();
-};
-
-HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
- // Optional entropy enc
- if (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 generate(len, enc, add, addEnc) {
- if (this._reseed > this.reseedInterval)
- throw new Error('Reseed is required');
-
- // Optional encoding
- if (typeof enc !== 'string') {
- addEnc = add;
- add = enc;
- enc = null;
- }
-
- // Optional additional data
- if (add) {
- add = utils.toArray(add, addEnc || 'hex');
- this._update(add);
- }
-
- var temp = [];
- while (temp.length < len) {
- this.V = this._hmac().update(this.V).digest();
- temp = temp.concat(this.V);
- }
-
- var res = temp.slice(0, len);
- this._update(add);
- this._reseed++;
- return utils.encode(res, enc);
-};
diff --git a/node_modules/hmac-drbg/package.json b/node_modules/hmac-drbg/package.json
deleted file mode 100644
index a511de8..0000000
--- a/node_modules/hmac-drbg/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "_from": "hmac-drbg@^1.0.0",
- "_id": "hmac-drbg@1.0.1",
- "_inBundle": false,
- "_integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
- "_location": "/hmac-drbg",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "hmac-drbg@^1.0.0",
- "name": "hmac-drbg",
- "escapedName": "hmac-drbg",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/elliptic"
- ],
- "_resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "_shasum": "d2745701025a6c775a6c545793ed502fc0c649a1",
- "_spec": "hmac-drbg@^1.0.0",
- "_where": "/Users/heekyun/Kadena/transfer/node_modules/elliptic",
- "author": {
- "name": "Fedor Indutny",
- "email": "fedor@indutny.com"
- },
- "bugs": {
- "url": "https://github.com/indutny/hmac-drbg/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- },
- "deprecated": false,
- "description": "Deterministic random bit generator (hmac)",
- "devDependencies": {
- "mocha": "^3.2.0"
- },
- "homepage": "https://github.com/indutny/hmac-drbg#readme",
- "keywords": [
- "hmac",
- "drbg",
- "prng"
- ],
- "license": "MIT",
- "main": "lib/hmac-drbg.js",
- "name": "hmac-drbg",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/hmac-drbg.git"
- },
- "scripts": {
- "test": "mocha --reporter=spec test/*-test.js"
- },
- "version": "1.0.1"
-}
diff --git a/node_modules/hmac-drbg/test/drbg-test.js b/node_modules/hmac-drbg/test/drbg-test.js
deleted file mode 100644
index 14fd28a..0000000
--- a/node_modules/hmac-drbg/test/drbg-test.js
+++ /dev/null
@@ -1,91 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const HmacDRBG = require('../');
-const hash = require('hash.js');
-
-describe('Hmac_DRBG', () => {
- it('should support hmac-drbg-sha256', () => {
- function doDrbg(opt) {
- const drbg = HmacDRBG({
- hash: hash.sha256,
- entropy: opt.entropy,
- entropyEnc: 'utf8',
- nonce: opt.nonce,
- nonceEnc: 'utf8',
- pers: opt.pers,
- persEnc: 'utf8'
- });
- return drbg.generate(opt.size, 'hex');
- }
-
- const test = [
- {
- entropy: 'totally random0123456789',
- nonce: 'secret nonce',
- pers: 'my drbg',
- size: 32,
- res: '018ec5f8e08c41e5ac974eb129ac297c5388ee1864324fa13d9b15cf98d9a157'
- },
- {
- entropy: 'totally random0123456789',
- nonce: 'secret nonce',
- pers: null,
- size: 32,
- res: 'ed5d61ecf0ef38258e62f03bbb49f19f2cd07ba5145a840d83b134d5963b3633'
- }
- ];
- for (let i = 0; i < test.length; i++)
- assert.equal(doDrbg(test[i]), test[i].res);
- });
-
- describe('NIST vector', function() {
- require('./fixtures/hmac-drbg-nist.json').forEach(function (opt) {
- it('should not fail at ' + opt.name, function() {
- const drbg = HmacDRBG({
- hash: hash.sha256,
- entropy: opt.entropy,
- nonce: opt.nonce,
- pers: opt.pers
- });
-
- let last;
- for (let i = 0; i < opt.add.length; i++) {
- let add = opt.add[i];
- last = drbg.generate(opt.expected.length / 2, 'hex', add);
- }
- assert.equal(last, opt.expected);
- });
- });
- });
-
- describe('reseeding', function() {
- it('should reseed', function() {
- const entropy = 'totally random string with many chars that I typed ' +
- 'in agony';
- const nonce = 'nonce';
- const pers = 'pers';
-
- const original = HmacDRBG({
- hash: hash.sha256,
- entropy,
- nonce,
- pers
- });
- const reseeded = HmacDRBG({
- hash: hash.sha256,
- entropy,
- nonce,
- pers
- });
-
- assert.strictEqual(original.generate(32, 'hex'),
- reseeded.generate(32, 'hex'));
-
- reseeded.reseed('another absolutely random string');
-
- assert.notEqual(original.generate(32, 'hex'),
- reseeded.generate(32, 'hex'));
- });
- });
-});
diff --git a/node_modules/hmac-drbg/test/fixtures/hmac-drbg-nist.json b/node_modules/hmac-drbg/test/fixtures/hmac-drbg-nist.json
deleted file mode 100644
index fce148a..0000000
--- a/node_modules/hmac-drbg/test/fixtures/hmac-drbg-nist.json
+++ /dev/null
@@ -1,332 +0,0 @@
-[
- {
- "name": "0",
- "entropy": "ca851911349384bffe89de1cbdc46e6831e44d34a4fb935ee285dd14b71a7488",
- "nonce": "659ba96c601dc69fc902940805ec0ca8",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "e528e9abf2dece54d47c7e75e5fe302149f817ea9fb4bee6f4199697d04d5b89d54fbb978a15b5c443c9ec21036d2460b6f73ebad0dc2aba6e624abf07745bc107694bb7547bb0995f70de25d6b29e2d3011bb19d27676c07162c8b5ccde0668961df86803482cb37ed6d5c0bb8d50cf1f50d476aa0458bdaba806f48be9dcb8"
- },
- {
- "name": "1",
- "entropy": "79737479ba4e7642a221fcfd1b820b134e9e3540a35bb48ffae29c20f5418ea3",
- "nonce": "3593259c092bef4129bc2c6c9e19f343",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "cf5ad5984f9e43917aa9087380dac46e410ddc8a7731859c84e9d0f31bd43655b924159413e2293b17610f211e09f770f172b8fb693a35b85d3b9e5e63b1dc252ac0e115002e9bedfb4b5b6fd43f33b8e0eafb2d072e1a6fee1f159df9b51e6c8da737e60d5032dd30544ec51558c6f080bdbdab1de8a939e961e06b5f1aca37"
- },
- {
- "name": "2",
- "entropy": "b340907445b97a8b589264de4a17c0bea11bb53ad72f9f33297f05d2879d898d",
- "nonce": "65cb27735d83c0708f72684ea58f7ee5",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "75183aaaf3574bc68003352ad655d0e9ce9dd17552723b47fab0e84ef903694a32987eeddbdc48efd24195dbdac8a46ba2d972f5808f23a869e71343140361f58b243e62722088fe10a98e43372d252b144e00c89c215a76a121734bdc485486f65c0b16b8963524a3a70e6f38f169c12f6cbdd169dd48fe4421a235847a23ff"
- },
- {
- "name": "3",
- "entropy": "8e159f60060a7d6a7e6fe7c9f769c30b98acb1240b25e7ee33f1da834c0858e7",
- "nonce": "c39d35052201bdcce4e127a04f04d644",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "62910a77213967ea93d6457e255af51fc79d49629af2fccd81840cdfbb4910991f50a477cbd29edd8a47c4fec9d141f50dfde7c4d8fcab473eff3cc2ee9e7cc90871f180777a97841597b0dd7e779eff9784b9cc33689fd7d48c0dcd341515ac8fecf5c55a6327aea8d58f97220b7462373e84e3b7417a57e80ce946d6120db5"
- },
- {
- "name": "4",
- "entropy": "74755f196305f7fb6689b2fe6835dc1d81484fc481a6b8087f649a1952f4df6a",
- "nonce": "c36387a544a5f2b78007651a7b74b749",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "b2896f3af4375dab67e8062d82c1a005ef4ed119d13a9f18371b1b873774418684805fd659bfd69964f83a5cfe08667ddad672cafd16befffa9faed49865214f703951b443e6dca22edb636f3308380144b9333de4bcb0735710e4d9266786342fc53babe7bdbe3c01a3addb7f23c63ce2834729fabbd419b47beceb4a460236"
- },
- {
- "name": "5",
- "entropy": "4b222718f56a3260b3c2625a4cf80950b7d6c1250f170bd5c28b118abdf23b2f",
- "nonce": "7aed52d0016fcaef0b6492bc40bbe0e9",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "a6da029b3665cd39fd50a54c553f99fed3626f4902ffe322dc51f0670dfe8742ed48415cf04bbad5ed3b23b18b7892d170a7dcf3ef8052d5717cb0c1a8b3010d9a9ea5de70ae5356249c0e098946030c46d9d3d209864539444374d8fbcae068e1d6548fa59e6562e6b2d1acbda8da0318c23752ebc9be0c1c1c5b3cf66dd967"
- },
- {
- "name": "6",
- "entropy": "b512633f27fb182a076917e39888ba3ff35d23c3742eb8f3c635a044163768e0",
- "nonce": "e2c39b84629a3de5c301db5643af1c21",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "fb931d0d0194a97b48d5d4c231fdad5c61aedf1c3a55ac24983ecbf38487b1c93396c6b86ff3920cfa8c77e0146de835ea5809676e702dee6a78100da9aa43d8ec0bf5720befa71f82193205ac2ea403e8d7e0e6270b366dc4200be26afd9f63b7e79286a35c688c57cbff55ac747d4c28bb80a2b2097b3b62ea439950d75dff"
- },
- {
- "name": "7",
- "entropy": "aae3ffc8605a975befefcea0a7a286642bc3b95fb37bd0eb0585a4cabf8b3d1e",
- "nonce": "9504c3c0c4310c1c0746a036c91d9034",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "2819bd3b0d216dad59ddd6c354c4518153a2b04374b07c49e64a8e4d055575dfbc9a8fcde68bd257ff1ba5c6000564b46d6dd7ecd9c5d684fd757df62d85211575d3562d7814008ab5c8bc00e7b5a649eae2318665b55d762de36eba00c2906c0e0ec8706edb493e51ca5eb4b9f015dc932f262f52a86b11c41e9a6d5b3bd431"
- },
- {
- "name": "8",
- "entropy": "b9475210b79b87180e746df704b3cbc7bf8424750e416a7fbb5ce3ef25a82cc6",
- "nonce": "24baf03599c10df6ef44065d715a93f7",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "ae12d784f796183c50db5a1a283aa35ed9a2b685dacea97c596ff8c294906d1b1305ba1f80254eb062b874a8dfffa3378c809ab2869aa51a4e6a489692284a25038908a347342175c38401193b8afc498077e10522bec5c70882b7f760ea5946870bd9fc72961eedbe8bff4fd58c7cc1589bb4f369ed0d3bf26c5bbc62e0b2b2"
- },
- {
- "name": "9",
- "entropy": "27838eb44ceccb4e36210703ebf38f659bc39dd3277cd76b7a9bcd6bc964b628",
- "nonce": "39cfe0210db2e7b0eb52a387476e7ea1",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "e5e72a53605d2aaa67832f97536445ab774dd9bff7f13a0d11fd27bf6593bfb52309f2d4f09d147192199ea584503181de87002f4ee085c7dc18bf32ce5315647a3708e6f404d6588c92b2dda599c131aa350d18c747b33dc8eda15cf40e95263d1231e1b4b68f8d829f86054d49cfdb1b8d96ab0465110569c8583a424a099a"
- },
- {
- "name": "10",
- "entropy": "d7129e4f47008ad60c9b5d081ff4ca8eb821a6e4deb91608bf4e2647835373a5",
- "nonce": "a72882773f78c2fc4878295840a53012",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "0cbf48585c5de9183b7ff76557f8fc9ebcfdfde07e588a8641156f61b7952725bbee954f87e9b937513b16bba0f2e523d095114658e00f0f3772175acfcb3240a01de631c19c5a834c94cc58d04a6837f0d2782fa53d2f9f65178ee9c837222494c799e64c60406069bd319549b889fa00a0032dd7ba5b1cc9edbf58de82bfcd"
- },
- {
- "name": "11",
- "entropy": "67fe5e300c513371976c80de4b20d4473889c9f1214bce718bc32d1da3ab7532",
- "nonce": "e256d88497738a33923aa003a8d7845c",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "b44660d64ef7bcebc7a1ab71f8407a02285c7592d755ae6766059e894f694373ed9c776c0cfc8594413eefb400ed427e158d687e28da3ecc205e0f7370fb089676bbb0fa591ec8d916c3d5f18a3eb4a417120705f3e2198154cd60648dbfcfc901242e15711cacd501b2c2826abe870ba32da785ed6f1fdc68f203d1ab43a64f"
- },
- {
- "name": "12",
- "entropy": "de8142541255c46d66efc6173b0fe3ffaf5936c897a3ce2e9d5835616aafa2cb",
- "nonce": "d01f9002c407127bc3297a561d89b81d",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "64d1020929d74716446d8a4e17205d0756b5264867811aa24d0d0da8644db25d5cde474143c57d12482f6bf0f31d10af9d1da4eb6d701bdd605a8db74fb4e77f79aaa9e450afda50b18d19fae68f03db1d7b5f1738d2fdce9ad3ee9461b58ee242daf7a1d72c45c9213eca34e14810a9fca5208d5c56d8066bab1586f1513de7"
- },
- {
- "name": "13",
- "entropy": "4a8e0bd90bdb12f7748ad5f147b115d7385bb1b06aee7d8b76136a25d779bcb7",
- "nonce": "7f3cce4af8c8ce3c45bdf23c6b181a00",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "320c7ca4bbeb7af977bc054f604b5086a3f237aa5501658112f3e7a33d2231f5536d2c85c1dad9d9b0bf7f619c81be4854661626839c8c10ae7fdc0c0b571be34b58d66da553676167b00e7d8e49f416aacb2926c6eb2c66ec98bffae20864cf92496db15e3b09e530b7b9648be8d3916b3c20a3a779bec7d66da63396849aaf"
- },
- {
- "name": "14",
- "entropy": "451ed024bc4b95f1025b14ec3616f5e42e80824541dc795a2f07500f92adc665",
- "nonce": "2f28e6ee8de5879db1eccd58c994e5f0",
- "pers": null,
- "add": [
- null,
- null
- ],
- "expected": "3fb637085ab75f4e95655faae95885166a5fbb423bb03dbf0543be063bcd48799c4f05d4e522634d9275fe02e1edd920e26d9accd43709cb0d8f6e50aa54a5f3bdd618be23cf73ef736ed0ef7524b0d14d5bef8c8aec1cf1ed3e1c38a808b35e61a44078127c7cb3a8fd7addfa50fcf3ff3bc6d6bc355d5436fe9b71eb44f7fd"
- },
- {
- "name": "0 with additional data",
- "entropy": "d3cc4d1acf3dde0c4bd2290d262337042dc632948223d3a2eaab87da44295fbd",
- "nonce": "0109b0e729f457328aa18569a9224921",
- "pers": null,
- "add": [
- "3c311848183c9a212a26f27f8c6647e40375e466a0857cc39c4e47575d53f1f6",
- "fcb9abd19ccfbccef88c9c39bfb3dd7b1c12266c9808992e305bc3cff566e4e4"
- ],
- "expected": "9c7b758b212cd0fcecd5daa489821712e3cdea4467b560ef5ddc24ab47749a1f1ffdbbb118f4e62fcfca3371b8fbfc5b0646b83e06bfbbab5fac30ea09ea2bc76f1ea568c9be0444b2cc90517b20ca825f2d0eccd88e7175538b85d90ab390183ca6395535d34473af6b5a5b88f5a59ee7561573337ea819da0dcc3573a22974"
- },
- {
- "name": "1 with additional data",
- "entropy": "f97a3cfd91faa046b9e61b9493d436c4931f604b22f1081521b3419151e8ff06",
- "nonce": "11f3a7d43595357d58120bd1e2dd8aed",
- "pers": null,
- "add": [
- "517289afe444a0fe5ed1a41dbbb5eb17150079bdd31e29cf2ff30034d8268e3b",
- "88028d29ef80b4e6f0fe12f91d7449fe75062682e89c571440c0c9b52c42a6e0"
- ],
- "expected": "c6871cff0824fe55ea7689a52229886730450e5d362da5bf590dcf9acd67fed4cb32107df5d03969a66b1f6494fdf5d63d5b4d0d34ea7399a07d0116126d0d518c7c55ba46e12f62efc8fe28a51c9d428e6d371d7397ab319fc73ded4722e5b4f30004032a6128df5e7497ecf82ca7b0a50e867ef6728a4f509a8c859087039c"
- },
- {
- "name": "2 with additional data",
- "entropy": "0f2f23d64f481cabec7abb01db3aabf125c3173a044b9bf26844300b69dcac8b",
- "nonce": "9a5ae13232b43aa19cfe8d7958b4b590",
- "pers": null,
- "add": [
- "ec4c7a62acab73385f567da10e892ff395a0929f959231a5628188ce0c26e818",
- "6b97b8c6b6bb8935e676c410c17caa8042aa3145f856d0a32b641e4ae5298648"
- ],
- "expected": "7480a361058bd9afa3db82c9d7586e42269102013f6ec5c269b6d05f17987847748684766b44918fd4b65e1648622fc0e0954178b0279dfc9fa99b66c6f53e51c4860131e9e0644287a4afe4ca8e480417e070db68008a97c3397e4b320b5d1a1d7e1d18a95cfedd7d1e74997052bf649d132deb9ec53aae7dafdab55e6dae93"
- },
- {
- "name": "3 with additional data",
- "entropy": "53c56660c78481be9c63284e005fcc14fbc7fb27732c9bf1366d01a426765a31",
- "nonce": "dc7a14d0eb5b0b3534e717a0b3c64614",
- "pers": null,
- "add": [
- "3aa848706ecb877f5bedf4ffc332d57c22e08747a47e75cff6f0fd1316861c95",
- "9a401afa739b8f752fddacd291e0b854f5eff4a55b515e20cb319852189d3722"
- ],
- "expected": "5c0eb420e0bf41ce9323e815310e4e8303cd677a8a8b023f31f0d79f0ca15aeb636099a369fd074d69889865eac1b72ab3cbfebdb8cf460b00072802e2ec648b1349a5303be4ccaadd729f1a9ea17482fd026aaeb93f1602bc1404b9853adde40d6c34b844cf148bc088941ecfc1642c8c0b9778e45f3b07e06e21ee2c9e0300"
- },
- {
- "name": "4 with additional data",
- "entropy": "f63c804404902db334c54bb298fc271a21d7acd9f770278e089775710bf4fdd7",
- "nonce": "3e45009ea9cb2a36ba1aa4bf39178200",
- "pers": null,
- "add": [
- "d165a13dc8cc43f3f0952c3f5d3de4136954d983683d4a3e6d2dc4c89bf23423",
- "75106bc86d0336df85097f6af8e80e2da59046a03fa65b06706b8bbc7ffc6785"
- ],
- "expected": "6363139bba32c22a0f5cd23ca6d437b5669b7d432f786b8af445471bee0b2d24c9d5f2f93717cbe00d1f010cc3b9c515fc9f7336d53d4d26ba5c0d76a90186663c8582eb739c7b6578a3328bf68dc2cec2cd89b3a90201f6993adcc854df0f5c6974d0f5570765a15fe03dbce28942dd2fd16ba2027e68abac83926969349af8"
- },
- {
- "name": "5 with additional data",
- "entropy": "2aaca9147da66c176615726b69e3e851cc3537f5f279fe7344233d8e44cfc99d",
- "nonce": "4e171f080af9a6081bee9f183ac9e340",
- "pers": null,
- "add": [
- "d75a2a6eb66c3833e50f5ec3d2e434cf791448d618026d0c360806d120ded669",
- "b643b74c15b37612e6577ed7ca2a4c67a78d560af9eb50a4108fca742e87b8d6"
- ],
- "expected": "501dcdc977f4ba856f24eaa4968b374bebb3166b280334cb510232c31ebffde10fa47b7840ef3fe3b77725c2272d3a1d4219baf23e0290c622271edcced58838cf428f0517425d2e19e0d8c89377eecfc378245f283236fafa466c914b99672ceafab369e8889a0c866d8bd639db9fb797254262c6fd44cfa9045ad6340a60ef"
- },
- {
- "name": "6 with additional data",
- "entropy": "a2e4cd48a5cf918d6f55942d95fcb4e8465cdc4f77b7c52b6fae5b16a25ca306",
- "nonce": "bef036716440db6e6d333d9d760b7ca8",
- "pers": null,
- "add": [
- "bfa591c7287f3f931168f95e38869441d1f9a11035ad8ea625bb61b9ea17591c",
- "c00c735463bca215adc372cb892b05e939bf669583341c06d4e31d0e5b363a37"
- ],
- "expected": "e7d136af69926a5421d4266ee0420fd729f2a4f7c295d3c966bdfa05268180b508b8a2852d1b3a06fd2ab3e13c54005123ef319f42d0c6d3a575e6e7e1496cb28aacadbcf83740fba8f35fcee04bb2ed8a51db3d3362b01094a62fb57e33c99a432f29fce6676cffbbcc05107e794e75e44a02d5e6d9d748c5fbff00a0178d65"
- },
- {
- "name": "7 with additional data",
- "entropy": "95a67771cba69011a79776e713145d309edae56fad5fd6d41d83eaff89df6e5e",
- "nonce": "be5b5164e31ecc51ba6f7c3c5199eb33",
- "pers": null,
- "add": [
- "065f693b229a7c4fd373cd15b3807552dd9bf98c5485cef361949d4e7d774b53",
- "9afb62406f0e812c4f156d58b19a656c904813c1b4a45a0029ae7f50731f8014"
- ],
- "expected": "f61b61a6e79a41183e8ed6647899d2dc85cdaf5c3abf5c7f3bf37685946dc28f4923dc842f2d4326bd6ce0d50a84cb3ba869d72a36e246910eba6512ba36cd7ed3a5437c9245b00a344308c792b668b458d3c3e16dee2fbec41867da31084d46d8ec168de2148ef64fc5b72069abf5a6ada1ead2b7146bb793ff1c9c3690fa56"
- },
- {
- "name": "8 with additional data",
- "entropy": "a459e1815cbca4514ec8094d5ab2414a557ba6fe10e613c345338d0521e4bf90",
- "nonce": "62221392e2552e76cd0d36df6e6068eb",
- "pers": null,
- "add": [
- "0a3642b02b23b3ef62c701a63401124022f5b896de86dab6e6c7451497aa1dcc",
- "c80514865901371c45ba92d9f95d50bb7c9dd1768cb3dfbc45b968da94965c6e"
- ],
- "expected": "464e6977b8adaef307c9623e41c357013249c9ffd77f405f3925cebb69f151ce8fbb6a277164002aee7858fc224f6499042aa1e6322deee9a5d133c31d640e12a7487c731ba03ad866a24675badb1d79220c40be689f79c2a0be93cb4dada3e0eac4ab140cb91998b6f11953e68f2319b050c40f71c34de9905ae41b2de1c2f6"
- },
- {
- "name": "9 with additional data",
- "entropy": "252c2cad613e002478162861880979ee4e323025eebb6fb2e0aa9f200e28e0a1",
- "nonce": "d001bc9a8f2c8c242e4369df0c191989",
- "pers": null,
- "add": [
- "9bcfc61cb2bc000034bb3db980eb47c76fb5ecdd40553eff113368d639b947fd",
- "8b0565c767c2610ee0014582e9fbecb96e173005b60e9581503a6dca5637a26e"
- ],
- "expected": "e96c15fe8a60692b0a7d67171e0195ff6e1c87aab844221e71700d1bbee75feea695f6a740c9760bbe0e812ecf4061d8f0955bc0195e18c4fd1516ebca50ba6a6db86881737dbab8321707675479b87611db6af2c97ea361a5484555ead454defb1a64335de964fc803d40f3a6f057893d2afc25725754f4f00abc51920743dc"
- },
- {
- "name": "10 with additional data",
- "entropy": "8be0ca6adc8b3870c9d69d6021bc1f1d8eb9e649073d35ee6c5aa0b7e56ad8a5",
- "nonce": "9d1265f7d51fdb65377f1e6edd6ae0e4",
- "pers": null,
- "add": [
- "da86167ac997c406bb7979f423986a84ec6614d6caa7afc10aff0699a9b2cf7f",
- "e4baa3c555950b53e2bfdba480cb4c94b59381bac1e33947e0c22e838a9534cf"
- ],
- "expected": "64384ecc4ea6b458efc227ca697eac5510092265520c0a0d8a0ccf9ed3ca9d58074671188c6a7ad16d0b050cdc072c125d7298d3a31d9f044a9ee40da0089a84fea28cc7f05f1716db952fad29a0e779635cb7a912a959be67be2f0a4170aace2981802e2ff6467e5b46f0ffbff3b42ba5935fd553c82482ac266acf1cd247d7"
- },
- {
- "name": "11 with additional data",
- "entropy": "d43a75b6adf26d60322284cb12ac38327792442aa8f040f60a2f331b33ac4a8f",
- "nonce": "0682f8b091f811afacaacaec9b04d279",
- "pers": null,
- "add": [
- "7fd3b8f512940da7de5d80199d9a7b42670c04a945775a3dba869546cbb9bc65",
- "2575db20bc7aafc2a90a5dabab760db851d754777bc9f05616af1858b24ff3da"
- ],
- "expected": "0da7a8dc73c163014bf0841913d3067806456bbca6d5de92b85534c6545467313648d71ef17c923d090dc92cff8d4d1a9a2bb63e001dc2e8ab1a597999be3d6cf70ff63fee9985801395fbd4f4990430c4259fcae4fa1fcd73dc3187ccc102d04af7c07532885e5a226fc42809c48f22eecf4f6ab996ae4fcb144786957d9f41"
- },
- {
- "name": "12 with additional data",
- "entropy": "64352f236af5d32067a529a8fd05ba00a338c9de306371a0b00c36e610a48d18",
- "nonce": "df99ed2c7608c870624b962a5dc68acd",
- "pers": null,
- "add": [
- "da416335e7aaf60cf3d06fb438735ce796aad09034f8969c8f8c3f81e32fef24",
- "a28c07c21a2297311adf172c19e83ca0a87731bdffb80548978d2d1cd82cf8a3"
- ],
- "expected": "132b9f25868729e3853d3c51f99a3b5fae6d4204bea70890daf62e042b776a526c8fb831b80a6d5d3f153237df1fd39b6fd9137963f5516d9cdd4e3f9195c46e9972c15d3edc6606e3368bde1594977fb88d0ca6e6f5f3d057ccadc7d7dab77dfc42658a1e972aa446b20d418286386a52dfc1c714d2ac548713268b0b709729"
- },
- {
- "name": "13 with additional data",
- "entropy": "282f4d2e05a2cd30e9087f5633089389449f04bac11df718c90bb351cd3653a5",
- "nonce": "90a7daf3c0de9ea286081efc4a684dfb",
- "pers": null,
- "add": [
- "2630b4ccc7271cc379cb580b0aaede3d3aa8c1c7ba002cf791f0752c3d739007",
- "c31d69de499f1017be44e3d4fa77ecebc6a9b9934749fcf136f267b29115d2cc"
- ],
- "expected": "c899094520e0197c37b91dd50778e20a5b950decfb308d39f1db709447ae48f6101d9abe63a783fbb830eec1d359a5f61a2013728966d349213ee96382614aa4135058a967627183810c6622a2158cababe3b8ab99169c89e362108bf5955b4ffc47440f87e4bad0d36bc738e737e072e64d8842e7619f1be0af1141f05afe2d"
- },
- {
- "name": "14 with additional data",
- "entropy": "13c752b9e745ce77bbc7c0dbda982313d3fe66f903e83ebd8dbe4ff0c11380e9",
- "nonce": "f1a533095d6174164bd7c82532464ae7",
- "pers": null,
- "add": [
- "4f53db89b9ba7fc00767bc751fb8f3c103fe0f76acd6d5c7891ab15b2b7cf67c",
- "582c2a7d34679088cca6bd28723c99aac07db46c332dc0153d1673256903b446"
- ],
- "expected": "6311f4c0c4cd1f86bd48349abb9eb930d4f63df5e5f7217d1d1b91a71d8a6938b0ad2b3e897bd7e3d8703db125fab30e03464fad41e5ddf5bf9aeeb5161b244468cfb26a9d956931a5412c97d64188b0da1bd907819c686f39af82e91cfeef0cbffb5d1e229e383bed26d06412988640706815a6e820796876f416653e464961"
- }
-]
diff --git a/node_modules/htmlescape/.npmignore b/node_modules/htmlescape/.npmignore
deleted file mode 100644
index e2a6af8..0000000
--- a/node_modules/htmlescape/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/.gitignore
-/CHANGELOG.md
-/LICENSE
-/test
diff --git a/node_modules/htmlescape/CHANGELOG.md b/node_modules/htmlescape/CHANGELOG.md
deleted file mode 100644
index d03d620..0000000
--- a/node_modules/htmlescape/CHANGELOG.md
+++ /dev/null
@@ -1,9 +0,0 @@
-1.0.0 / 2014-09-29
-==================
-
- * No more API changes
-
-0.0.1 / 2014-09-28
-==================
-
- * Initial release
diff --git a/node_modules/htmlescape/LICENSE b/node_modules/htmlescape/LICENSE
deleted file mode 100644
index bdff13e..0000000
--- a/node_modules/htmlescape/LICENSE
+++ /dev/null
@@ -1,9 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Andres Suarez
-
-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.
diff --git a/node_modules/htmlescape/README.md b/node_modules/htmlescape/README.md
deleted file mode 100644
index 870ba16..0000000
--- a/node_modules/htmlescape/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# htmlescape
-
-Properly escape JSON for usage as an object literal inside of a `
-```
diff --git a/node_modules/htmlescape/htmlescape.js b/node_modules/htmlescape/htmlescape.js
deleted file mode 100644
index 5f0ce6c..0000000
--- a/node_modules/htmlescape/htmlescape.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Properly escape JSON for usage as an object literal inside of a `
-
-
- Open in Console
-
-