UNPKG

dicelang

Version:

JavaScript interpreter of the Roll20 dice language

555 lines (525 loc) 113 kB
/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 12); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.INT53_UPPER_MASK = 0x1FFFFF; exports.MAX_JS_INT = 9007199254740991; exports.MAX_UINT_32 = 4294967295; exports.POW_2_32 = 4294967296; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbW1vbi9Db25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBYSxRQUFBLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztBQUs1QixRQUFBLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztBQUs5QixRQUFBLFdBQVcsR0FBRyxVQUFVLENBQUM7QUFFekIsUUFBQSxRQUFRLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IElOVDUzX1VQUEVSX01BU0sgPSAweDFGRkZGRjtcclxuXHJcbi8qKlxyXG4gKiBFcXVhbCB0byBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiwgb3IgMl41MyAtIDEuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTUFYX0pTX0lOVCA9IDkwMDcxOTkyNTQ3NDA5OTE7XHJcblxyXG4vKipcclxuICogRXF1YWwgdG8gMl4zMiAtIDEuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTUFYX1VJTlRfMzIgPSA0Mjk0OTY3Mjk1O1xyXG5cclxuZXhwb3J0IGNvbnN0IFBPV18yXzMyID0gNDI5NDk2NzI5NjtcclxuIl19 /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Constants_1 = __webpack_require__(0); var Random_1 = __webpack_require__(6); var DiceMod_1 = __webpack_require__(7); var Dice = (function () { function Dice(diceExpr, binding) { this._minRoll = 1; this._fate = false; this._rolls = []; this._rawRolls = []; if (!diceExpr) { this._d = 20; this._n = 1; this._mod = new DiceMod_1.DiceMod(); } else { var parseResult = Dice.diceRegExp.exec(diceExpr); if (parseResult == null) { throw new Error("\"" + diceExpr + "\" is not a valid expression."); } this._mod = new DiceMod_1.DiceMod(parseResult[3]); if (parseResult[1] === undefined) { this._n = 1; } else { var n = parseInt(parseResult[1], 10); Dice.checkN(n); this._n = n; } if (parseResult[2] === 'f' || parseResult[2] === 'F') { this.fate = true; } else { var d = parseInt(parseResult[2], 10); Dice.checkD(d); this._fate = false; this._d = d; } } } Object.defineProperty(Dice, "maxD", { get: function () { return Constants_1.MAX_JS_INT; }, enumerable: true, configurable: true }); Object.defineProperty(Dice, "maxN", { get: function () { return Constants_1.MAX_JS_INT; }, enumerable: true, configurable: true }); Dice.roll = function (d, n) { Dice.checkD(d); if (n === undefined) { n = 1; } Dice.checkN(n); var result = []; for (var i = 0; i < n; ++i) { result.push(Random_1.getRandomInt(1, d)); } return result; }; Object.defineProperty(Dice, "diceRegExp", { get: function () { return /^(\d+)?d(f|\d+)(.*)$/ig; }, enumerable: true, configurable: true }); Dice.checkD = function (d) { if (d < 0 || d > Dice.maxD) { throw new Error("The value of n must be between 0 and " + Dice.maxD + " inclusive (got " + d + ")"); } }; Dice.checkN = function (n) { if (n < 0 || n > Dice.maxN) { throw new Error("The value of n must be between 0 and " + Dice.maxN + " inclusive (got " + n + ")"); } }; Object.defineProperty(Dice.prototype, "n", { get: function () { return this._n; }, set: function (value) { value = Math.round(value); Dice.checkN(value); this._n = value; }, enumerable: true, configurable: true }); Object.defineProperty(Dice.prototype, "d", { get: function () { if (this._fate) { return 3; } else { return this._d; } }, set: function (value) { value = Math.round(value); Dice.checkD(value); this._d = value; this._fate = false; this._minRoll = 1; }, enumerable: true, configurable: true }); Object.defineProperty(Dice.prototype, "fate", { get: function () { return this._fate; }, set: function (value) { value = !!value; if (value !== this._fate) { this._fate = value; if (value) { this._d = 1; this._minRoll = -1; } else { this._d = 3; this._minRoll = 1; } } }, enumerable: true, configurable: true }); Object.defineProperty(Dice.prototype, "minRoll", { get: function () { return this._minRoll; }, enumerable: true, configurable: true }); Dice.prototype.roll = function (n) { if (n === void 0) { n = this.n; } Dice.checkN(n); var rolls = []; this._rolls.length = 0; this._rawRolls.length = 0; for (var i = 0; i < n; ++i) { var roll = Random_1.getRandomInt(this._minRoll, this._d); this._rawRolls.push(roll); this._mod.rolled(roll, rolls, this); } this._result = this._mod.modResult(rolls); this._rolls = rolls; return this.result; }; Object.defineProperty(Dice.prototype, "result", { get: function () { return this._result; }, enumerable: true, configurable: true }); Object.defineProperty(Dice.prototype, "rolls", { get: function () { return this._rolls.slice(); }, enumerable: true, configurable: true }); Object.defineProperty(Dice.prototype, "rawRolls", { get: function () { return this._rawRolls.slice(); }, enumerable: true, configurable: true }); Dice.prototype.toString = function () { return this._n + "d" + (this._fate ? 'F' : this._d) + this._mod.toString(); }; Dice.prototype.toStringPlaintext = function () { return "Roll " + this._n + " " + (this._fate ? 'fate dice' : "d" + this._d + (this._n > 1 ? 's' : '')) + ". " + this._mod.toStringPlaintext(); }; return Dice; }()); exports.Dice = Dice; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9EaWNlL0RpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBOEQ7QUFDOUQsMkNBQWdEO0FBRWhELHFDQUFvQztBQWtCcEM7SUEwRUUsY0FBbUIsUUFBaUIsRUFBRSxPQUFnQjtRQW5COUMsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUdyQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBSXZCLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFDdEIsY0FBUyxHQUFhLEVBQUUsQ0FBQztRQVkvQixFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFPLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFJLFFBQVEsa0NBQThCLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBR0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFHeEMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLElBQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxX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Qzs7O09BQUE7SUFFRCxzQkFBVywwQkFBUTthQUFuQjtZQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7OztPQUFBO0lBRU0sdUJBQVEsR0FBZjtRQUNFLE1BQU0sQ0FBSSxJQUFJLENBQUMsRUFBRSxVQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUksQ0FBQztJQUMzRSxDQUFDO0lBRU0sZ0NBQWlCLEdBQXhCO1FBQ0UsTUFBTSxDQUFDLFVBQVEsSUFBSSxDQUFDLEVBQUUsVUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsR0FBRyxNQUFJLElBQUksQ0FBQyxFQUFFLElBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBRSxXQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUksQ0FBQztJQUNsSSxDQUFDO0lBQ0gsV0FBQztBQUFELENBQUMsQUF2T0QsSUF1T0M7QUF2T1ksb0JBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVhfSlNfSU5ULCBNQVhfVUlOVF8zMiB9IGZyb20gJy4uL0NvbW1vbi9Db25zdGFudHMnO1xyXG5pbXBvcnQgeyBnZXRSYW5kb21JbnQgfSBmcm9tICcuLi9Db21tb24vUmFuZG9tJztcclxuXHJcbmltcG9ydCB7IERpY2VNb2QgfSBmcm9tICcuL0RpY2VNb2QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRGljZSB7XHJcbiAgbjogbnVtYmVyO1xyXG4gIGQ6IG51bWJlcjtcclxuICBmYXRlOiBib29sZWFuO1xyXG4gIG1pblJvbGw6IG51bWJlcjtcclxuICByZXN1bHQ6IG51bWJlcjtcclxuICByb2xsczogbnVtYmVyW107XHJcbiAgcmF3Um9sbHM6IG51bWJlcltdO1xyXG4gIHJvbGwobj86IG51bWJlcik6IG51bWJlcjtcclxuICB0b1N0cmluZygpOiBzdHJpbmc7XHJcbiAgdG9TdHJpbmdQbGFpbnRleHQoKTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50YXRpb24gb2YgYSBkaWNlIHJvbGwuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGljZSBpbXBsZW1lbnRzIElEaWNlIHtcclxuICAvKipcclxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIG9mIGQsIHdoaWNoIGlzIGVxdWFsIHRvIHRoZSBsYXJnZXN0IHJlcHJlc2VudGFibGVcclxuICAgKiBpbnRlZ2VyIGluIEphdmFTY3JpcHQgKDkwMDcxOTkyNTQ3NDA5OTEsIG9yIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldCBtYXhEKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTUFYX0pTX0lOVDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgb2Ygbiwgd2hpY2ggaXMgZXF1YWwgdG8gdGhlIGxhcmdlc3QgcmVwcmVzZW50YWJsZVxyXG4gICAqIGludGVnZXIgaW4gSmF2YVNjcmlwdCAoOTAwNzE5OTI1NDc0MDk5MSwgb3IgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgaW5cclxuICAgKiBFUzYpLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IG1heE4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNQVhfSlNfSU5UO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybSBhIHNpbXBsZSBkaWNlIHJvbGwuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGQgVGhlIG51bWJlciBvZiBmYWNlcyB0aGUgZGljZSBzaG91bGQgaGF2ZS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGRpY2UgdG8gcm9sbC4gRGVmYXVsdHMgdG8gMSBpZiBub3QgZ2l2ZW4uXHJcbiAgICogQHRocm93cyBJZiB0aGUgdmFsdWUgb2YgbiBpcyBub3QgYmV0d2VlbiAwIGFuZCBEaWNlLm1heE4gaW5jbHVzaXZlLlxyXG4gICAqIEB0aHJvd3MgSWYgdGhlIHZhbHVlIG9mIGQgaXMgbm90IGJldHdlZW4gMCBhbmQgRGljZS5tYXhEIGluY2x1c2l2ZS5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHJvbGwoZDogbnVtYmVyLCBuPzogbnVtYmVyKTogbnVtYmVyW10ge1xyXG4gICAgRGljZS5jaGVja0QoZCk7XHJcbiAgICBpZiAobiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG4gPSAxO1xyXG4gICAgfVxyXG4gICAgRGljZS5jaGVja04obik7XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBudW1iZXJbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyArK2kpIHtcclxuICAgICAgcmVzdWx0LnB1c2goZ2V0UmFuZG9tSW50KDEsIGQpKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc3RhdGljIGdldCBkaWNlUmVnRXhwKCk6IFJlZ0V4cCB7XHJcbiAgICByZXR1cm4gL14oXFxkKyk/ZChmfFxcZCspKC4qKSQvaWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjaGVja0QoZDogbnVtYmVyKSB7XHJcbiAgICBpZiAoZCA8IDAgfHwgZCA+IERpY2UubWF4RCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSB2YWx1ZSBvZiBuIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAke0RpY2UubWF4RH0gaW5jbHVzaXZlIChnb3QgJHtkfSlgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNoZWNrTihuOiBudW1iZXIpIHtcclxuICAgIGlmIChuIDwgMCB8fCBuID4gRGljZS5tYXhOKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHZhbHVlIG9mIG4gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kICR7RGljZS5tYXhOfSBpbmNsdXNpdmUgKGdvdCAke259KWApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWluUm9sbDogbnVtYmVyID0gMTtcclxuICBwcml2YXRlIF9uOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfZDogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2ZhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9tb2Q6IERpY2VNb2Q7XHJcbiAgcHJpdmF0ZSBfYmluZGluZzogYW55O1xyXG4gIHByaXZhdGUgX3Jlc3VsdDogbnVtYmVyO1xyXG4gIHByaXZhdGUgX3JvbGxzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3Jhd1JvbGxzOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBuZXcgZGljZSBmcm9tIHRoZSBnaXZlbiBhdG9taWMgZXhwcmVzc2lvbi5cclxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGRpY2VFeHByIFRoZSBhdG9taWMgZGljZSBleHByZXNzaW9uIHRvIGNyZWF0ZSB0aGUgZGljZVxyXG4gICAqIGZyb20uIElmIG5vdCBnaXZlbiwgdGhlIGRpY2UgaXMgaW5pdGlhbGl6ZWQgYXMgXCIxZDIwXCIuXHJcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBiaW5kaW5nIEFuIG9iamVjdCB0byBiaW5kIHRvIGlmIHRoZSBleHByZXNzaW9uIGluY2x1ZGVzXHJcbiAgICogYmluZGluZ3MuXHJcbiAgICogQHRocm93cyBJZiB0aGUgdmFsdWUgb2YgbiBpcyBub3QgYmV0d2VlbiAwIGFuZCBEaWNlLm1heE4gaW5jbHVzaXZlLlxyXG4gICAqIEB0aHJvd3MgSWYgdGhlIHZhbHVlIG9mIGQgaXMgbm90IGJldHdlZW4gMCBhbmQgRGljZS5tYXhEIGluY2x1c2l2ZS5cclxuICAgKi9cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGljZUV4cHI/OiBzdHJpbmcsIGJpbmRpbmc/OiBvYmplY3QpIHtcclxuICAgIGlmICghZGljZUV4cHIpIHtcclxuICAgICAgdGhpcy5fZCA9IDIwO1xyXG4gICAgICB0aGlzLl9uID0gMTtcclxuICAgICAgdGhpcy5fbW9kID0gbmV3IERpY2VNb2QoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhcnNlUmVzdWx0ID0gRGljZS5kaWNlUmVnRXhwLmV4ZWMoZGljZUV4cHIpO1xyXG4gICAgICBpZiAocGFyc2VSZXN1bHQgPT0gbnVsbCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCIke2RpY2VFeHByfVwiIGlzIG5vdCBhIHZhbGlkIGV4cHJlc3Npb24uYCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFBhcnNlIHRoZSBtb2RzIHRvIGZhaWwtZmFzdCBpZiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgbW9kc3RyaW5nLlxyXG4gICAgICB0aGlzLl9tb2QgPSBuZXcgRGljZU1vZChwYXJzZVJlc3VsdFszXSk7XHJcblxyXG4gICAgICAvLyBQYXJzZSB0aGUgdmFsdWUgb2YgblxyXG4gICAgICBpZiAocGFyc2VSZXN1bHRbMV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX24gPSAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG4gPSBwYXJzZUludChwYXJzZVJlc3VsdFsxXSwgMTApO1xyXG4gICAgICAgIERpY2UuY2hlY2tOKG4pO1xyXG4gICAgICAgIHRoaXMuX24gPSBuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBQYXJzZSB0aGUgdmFsdWUgb2YgZC5cclxuICAgICAgaWYgKHBhcnNlUmVzdWx0WzJdID09PSAnZicgfHwgcGFyc2VSZXN1bHRbMl0gPT09ICdGJykge1xyXG4gICAgICAgIC8vIFVzZSB0aGUgZmF0ZSBzZXR0ZXIuXHJcbiAgICAgICAgdGhpcy5mYXRlID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBkID0gcGFyc2VJbnQocGFyc2VSZXN1bHRbMl0sIDEwKTtcclxuICAgICAgICBEaWNlLmNoZWNrRChkKTtcclxuICAgICAgICB0aGlzLl9mYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fZCA9IGQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdmFsdWUgb2Ygbiwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgZC1zaWRlZCBkaWNlIGlzIHJvbGxlZFxyXG4gICAqIHdoZW4gcm9sbCgpIGlzIGNhbGxlZC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IG4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB2YWx1ZSBvZiBuLlxyXG4gICAqIEB0aHJvd3MgSWYgdGhlIHZhbHVlIG9mIG4gaXMgbm90IGJldHdlZW4gMCBhbmQgRGljZS5tYXhOIGluY2x1c2l2ZS5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0IG4odmFsdWU6IG51bWJlcikge1xyXG4gICAgdmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlKTtcclxuICAgIERpY2UuY2hlY2tOKHZhbHVlKTtcclxuICAgIHRoaXMuX24gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB2YWx1ZSBvZiBkIGlzIHRoZSBudW1iZXIgb2YgZmFjZXMgb24gdGhpcyBkaWNlLiBJbiB0aGUgY2FzZSBvZiBmYXRlXHJcbiAgICogZGljZSwgcmV0dXJucyAzIChkMykuXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBkKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5fZmF0ZSkge1xyXG4gICAgICByZXR1cm4gMztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9kO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB2YWx1ZSBvZiBkLiBJZiB0aGUgZGljZSBpcyBhIGZhdGUgZGljZSwgdGhlIGZhdGUgYXR0cmlidXRlIGlzXHJcbiAgICogY2xlYXJlZC5cclxuICAgKiBAdGhyb3dzIElmIHRoZSB2YWx1ZSBvZiBkIGlzIG5vdCBiZXR3ZWVuIDAgYW5kIERpY2UubWF4RCBpbmNsdXNpdmUuXHJcbiAgICovXHJcbiAgcHVibGljIHNldCBkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHZhbHVlID0gTWF0aC5yb3VuZCh2YWx1ZSk7XHJcbiAgICBEaWNlLmNoZWNrRCh2YWx1ZSk7XHJcbiAgICB0aGlzLl9kID0gdmFsdWU7XHJcbiAgICB0aGlzLl9mYXRlID0gZmFsc2U7XHJcbiAgICB0aGlzLl9taW5Sb2xsID0gMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRydWUgaWYgdGhpcyBkaWNlIGlzIGEgZmF0ZSBkaWNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgZmF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9mYXRlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGlmIHRoaXMgZGljZSBpcyBhIGZhdGUgZGljZS4gSWYgdGhlIHZhbHVlIGNoYW5nZXMgdG8gdHJ1ZSwgdGhlIHByZXZpb3VzXHJcbiAgICogdmFsdWUgZm9yIGQgaXMgY2xlYXJlZC4gSWYgdGhlIHZhbHVlIGNoYW5nZXMgdG8gZmFsc2UsIHRoZSB2YWx1ZSBvZiBkIGlzXHJcbiAgICogc2V0IHRvIDMgKHRoZSBkaWNlIGJlY29tZXMgYSBkMyBhbmQga2VlcHMgaXRzIHZhbHVlIG9mIG4pLiBJZiB0aGUgbmV3IHZhbHVlXHJcbiAgICogaXMgdGhlIHNhbWUgYXMgdGhlIGRpY2UncyBjdXJyZW50IHZhbHVlLCB0aGVyZSBpcyBubyBlZmZlY3QuXHJcbiAgICovXHJcbiAgcHVibGljIHNldCBmYXRlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB2YWx1ZSA9ICEhdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX2ZhdGUpIHtcclxuICAgICAgdGhpcy5fZmF0ZSA9IHZhbHVlO1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9kID0gMTtcclxuICAgICAgICB0aGlzLl9taW5Sb2xsID0gLTE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fZCA9IDM7XHJcbiAgICAgICAgdGhpcy5fbWluUm9sbCA9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWluUm9sbCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pblJvbGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSb2xsIHRoZSBkaWNlLiBSZXR1cm5zIHRoZSBjb21iaW5lZCByZXN1bHQgb2YgdGhlIGRpY2Ugcm9sbC4gSW5kaXZpZHVhbFxyXG4gICAqIHJvbGxzIGFyZSBzdG9yZWQgaW4gdGhlIHJvbGxzIHByb3BlcnR5LlxyXG4gICAqIEBwYXJhbSB7P251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGRpY2UgdG8gcm9sbC4gSWYgbm90IHN1cHBsaWVkLCBkZWZhdWx0cyB0b1xyXG4gICAqIHRoZSB2YWx1ZSBvZiBuIGdpdmVuIHdoZW4gdGhlIGRpY2Ugd2FzIGNvbnN0cnVjdGVkLlxyXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBjb21iaW5lZCByZXN1bHQgb2YgdGhlIGRpY2Ugcm9sbC5cclxuICAgKiBAdGhyb3dzIElmIHRoZSB2YWx1ZSBvZiBuIGlzIG5vdCBiZXR3ZWVuIDAgYW5kIERpY2UubWF4TiBpbmNsdXNpdmUuXHJcbiAgICogQHRocm93cyBJdCBpcyBwb3NzaWJsZSBmb3IgY2VydGFpbiB0eXBlcyBvZiByb2xsIG1vZGlmaWVycyB0byBjb250aW51ZVxyXG4gICAqIHJvbGxpbmcgaW5maW5pdGVseS4gSW5zdGVhZCBvZiBjcmFzaGluZyB3ZSB0aHJvdyBhbiBlcnJvciBkZXNjcmliaW5nIHdoZXJlXHJcbiAgICogd2Ugc3RvcHBlZCBwcmVtYXR1cmVseS4gVGhlIHZhbHVlIG9mIHRoZSByb2xscyB0aGF0IHdlIGRpZCBleGVjdXRlIGNhblxyXG4gICAqIHN0aWxsIGJlIGFjY2Vzc2VkIHZpYSB0aGUgcm9sbHMgcHJvcGVydHksIGFuZCB0aGUgcmVzdWx0IGNhbiBzdGlsbCBiZVxyXG4gICAqIGFjY2Vzc2VkIHZpYSB0aGUgcmVzdWx0IHByb3BlcnR5LlxyXG4gICAqL1xyXG4gIHB1YmxpYyByb2xsKG46IG51bWJlciA9IHRoaXMubik6IG51bWJlciB7XHJcbiAgICBEaWNlLmNoZWNrTihuKTtcclxuICAgIGNvbnN0IHJvbGxzID0gW107XHJcbiAgICB0aGlzLl9yb2xscy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5fcmF3Um9sbHMubGVuZ3RoID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgKytpKSB7XHJcbiAgICAgIGNvbnN0IHJvbGwgPSBnZXRSYW5kb21JbnQodGhpcy5fbWluUm9sbCwgdGhpcy5fZCk7XHJcbiAgICAgIHRoaXMuX3Jhd1JvbGxzLnB1c2gocm9sbCk7XHJcbiAgICAgIHRoaXMuX21vZC5yb2xsZWQocm9sbCwgcm9sbHMsIHRoaXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVzdWx0ID0gdGhpcy5fbW9kLm1vZFJlc3VsdChyb2xscyk7XHJcbiAgICB0aGlzLl9yb2xscyA9IHJvbGxzO1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZXN1bHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvbGxzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiB0aGlzLl9yb2xscy5zbGljZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYXdSb2xscygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmF3Um9sbHMuc2xpY2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuX259ZCR7dGhpcy5fZmF0ZSA/ICdGJyA6IHRoaXMuX2R9JHt0aGlzLl9tb2QudG9TdHJpbmcoKX1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvU3RyaW5nUGxhaW50ZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYFJvbGwgJHt0aGlzLl9ufSAke3RoaXMuX2ZhdGUgPyAnZmF0ZSBkaWNlJyA6IGBkJHt0aGlzLl9kfSR7dGhpcy5fbiA+IDEgPyAncycgOiAnJ31gfS4gJHt0aGlzLl9tb2QudG9TdHJpbmdQbGFpbnRleHQoKX1gO1xyXG4gIH1cclxufVxyXG4iXX0= /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __extends = (this && this.__extends) || (function () { var 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 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 index_1 = __webpack_require__(8); var React = __webpack_require__(9); var ReactDOM = __webpack_require__(10); var App = (function (_super) { __extends(App, _super); function App(props, context) { var _this = _super.call(this, props, context) || this; var dice = new index_1.Dice(); _this.state = { description: dice.toStringPlaintext(), dice: dice, error: null, lastRolls: null, lastRollsBeforeMods: null, lastTotal: null, normalizedSpec: dice.toString(), }; return _this; } App.prototype.render = function () { var _this = this; return (React.createElement("div", { style: { margin: '2em', maxWidth: '100%', wordWrap: 'break-word' } }, React.createElement("div", null, React.createElement("input", { style: { fontFamily: 'monospace', width: '20em' }, placeholder: "Enter the dice to roll!", onKeyPress: function (e) { return _this.handleKeyDown(e); }, onChange: function (e) { return _this.handleChange(e); } }), React.createElement("button", { onClick: function () { return _this.roll(); } }, "Roll!")), React.createElement("div", null, React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Normalized Spec"), React.createElement("p", null, React.createElement("code", null, this.state.normalizedSpec || 'n/a')), React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Description"), React.createElement("p", null, React.createElement("code", null, this.state.description || 'n/a')), React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Last Total"), React.createElement("p", null, React.createElement("code", null, this.state.lastTotal || 'n/a')), React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Last Rolls"), React.createElement("p", null, React.createElement("code", null, this.state.lastRolls || 'n/a')), React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Last Rolls Before Mods"), React.createElement("p", null, React.createElement("code", null, this.state.lastRollsBeforeMods || 'n/a')), React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Errors"), React.createElement("p", null, React.createElement("code", null, this.state.error || 'n/a'))))); }; App.prototype.handleChange = function (event) { try { var newDice = new index_1.Dice(event.target.value); this.setState({ description: newDice.toStringPlaintext(), dice: newDice, error: null, normalizedSpec: newDice.toString(), }); } catch (e) { console.error(e); this.setState({ description: null, dice: null, error: e.message, normalizedSpec: null, }); } }; App.prototype.handleKeyDown = function (event) { if (event.key === 'Enter') { this.roll(); } }; App.prototype.roll = function () { if (this.state.dice) { try { this.state.dice.roll(); this.setState({ error: null, lastRolls: this.state.dice.rolls.join(', '), lastRollsBeforeMods: this.state.dice.rawRolls.join(', '), lastTotal: this.state.dice.result, }); } catch (e) { console.error(e); this.setState({ error: e.message, lastRolls: null, lastRollsBeforeMods: null, lastTotal: null, }); } } }; return App; }(React.Component)); ReactDOM.render(React.createElement(App, null), document.getElementById('app')); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9leGFtcGxlL2FwcC9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVDO0FBRXZDLDZCQUErQjtBQUMvQixvQ0FBc0M7QUFZdEM7SUFBa0IsdUJBQStCO0lBQy9DLGFBQW1CLEtBQUssRUFBRSxPQUFPO1FBQWpDLFlBQ0Usa0JBQU0sS0FBSyxFQUFFLE9BQU8sQ0FBQyxTQVl0QjtRQVZDLElBQU0sSUFBSSxHQUFHLElBQUksWUFBSSxFQUFFLENBQUM7UUFDeEIsS0FBSSxDQUFDLEtBQUssR0FBRztZQUNYLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDckMsSUFBSSxNQUFBO1lBQ0osS0FBSyxFQUFFLElBQUk7WUFDWCxTQUFTLEVBQUUsSUFBSTtZQUNmLG1CQUFtQixFQUFFLElBQUk7WUFDekIsU0FBUyxFQUFFLElBQUk7WUFDZixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtTQUNoQyxDQUFDOztJQUNKLENBQUM7SUFFTSxvQkFBTSxHQUFiO1FBQUEsaUJBMkJDO1FBMUJDLE1BQU0sQ0FBQyxDQUNMLDZCQUFLLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO1lBQ3JFO2dCQUNFLCtCQUNFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUNqRCxXQUFXLEVBQUUseUJBQXlCLEVBQ3RDLFVBQVUsRUFBRSxVQUFDLENBQUMsSUFBSyxPQUFBLEtBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQXJCLENBQXFCLEVBQ3hDLFFBQVEsRUFBRSxVQUFDLENBQUMsSUFBSyxPQUFBLEtBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQXBCLENBQW9CLEdBQUk7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QUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNO2lCQUNsQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTztvQkFDaEIsU0FBUyxFQUFFLElBQUk7b0JBQ2YsbUJBQW1CLEVBQUUsSUFBSTtvQkFDekIsU0FBUyxFQUFFLElBQUk7aUJBQ2hCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNILFVBQUM7QUFBRCxDQUFDLEFBNUZELENBQWtCLEtBQUssQ0FBQyxTQUFTLEdBNEZoQztBQUVELFFBQVEsQ0FBQyxNQUFNLENBQUMsb0JBQUMsR0FBRyxPQUFHLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljZSB9IGZyb20gJy4uLy4uL3NyYy9pbmRleCc7XHJcblxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XHJcblxyXG5pbnRlcmZhY2UgSUFwcFN0YXRlIHtcclxuICBkaWNlOiBEaWNlO1xyXG4gIGVycm9yOiBzdHJpbmc7XHJcbiAgbm9ybWFsaXplZFNwZWM6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGxhc3RUb3RhbDogbnVtYmVyO1xyXG4gIGxhc3RSb2xsczogc3RyaW5nO1xyXG4gIGxhc3RSb2xsc0JlZm9yZU1vZHM6IHN0cmluZztcclxufVxyXG5cclxuY2xhc3MgQXBwIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PGFueSwgSUFwcFN0YXRlPiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XHJcbiAgICBzdXBlcihwcm9wcywgY29udGV4dCk7XHJcblxyXG4gICAgY29uc3QgZGljZSA9IG5ldyBEaWNlKCk7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogZGljZS50b1N0cmluZ1BsYWludGV4dCgpLFxyXG4gICAgICBkaWNlLFxyXG4gICAgICBlcnJvcjogbnVsbCxcclxuICAgICAgbGFzdFJvbGxzOiBudWxsLFxyXG4gICAgICBsYXN0Um9sbHNCZWZvcmVNb2RzOiBudWxsLFxyXG4gICAgICBsYXN0VG90YWw6IG51bGwsXHJcbiAgICAgIG5vcm1hbGl6ZWRTcGVjOiBkaWNlLnRvU3RyaW5nKCksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbmRlcigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luOiAnMmVtJywgbWF4V2lkdGg6ICcxMDAlJywgd29yZFdyYXA6ICdicmVhay13b3JkJyB9fT5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IGZvbnRGYW1pbHk6ICdtb25vc3BhY2UnLCB3aWR0aDogJzIwZW0nIH19XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtgRW50ZXIgdGhlIGRpY2UgdG8gcm9sbCFgfVxyXG4gICAgICAgICAgICBvbktleVByZXNzPXsoZSkgPT4gdGhpcy5oYW5kbGVLZXlEb3duKGUpfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHRoaXMuaGFuZGxlQ2hhbmdlKGUpfSAvPlxyXG4gICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiB0aGlzLnJvbGwoKX0+Um9sbCE8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGgzIHN0eWxlPXt7IGZvbnRGYW1pbHk6ICdzYW5zLXNlcmlmJyB9fT5Ob3JtYWxpemVkIFNwZWM8L2gzPlxyXG4gICAgICAgICAgPHA+PGNvZGU+e3RoaXMuc3RhdGUubm9ybWFsaXplZFNwZWMgfHwgJ24vYSd9PC9jb2RlPjwvcD5cclxuICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicgfX0+RGVzY3JpcHRpb248L2gzPlxyXG4gICAgICAgICAgPHA+PGNvZGU+e3RoaXMuc3RhdGUuZGVzY3JpcHRpb24gfHwgJ24vYSd9PC9jb2RlPjwvcD5cclxuICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicgfX0+TGFzdCBUb3RhbDwvaDM+XHJcbiAgICAgICAgICA8cD48Y29kZT57dGhpcy5zdGF0ZS5sYXN0VG90YWwgfHwgJ24vYSd9PC9jb2RlPjwvcD5cclxuICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicgfX0+TGFzdCBSb2xsczwvaDM+XHJcbiAgICAgICAgICA8cD48Y29kZT57dGhpcy5zdGF0ZS5sYXN0Um9sbHMgfHwgJ24vYSd9PC9jb2RlPjwvcD5cclxuICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicgfX0+TGFzdCBSb2xscyBCZWZvcmUgTW9kczwvaDM+XHJcbiAgICAgICAgICA8cD48Y29kZT57dGhpcy5zdGF0ZS5sYXN0Um9sbHNCZWZvcmVNb2RzIHx8ICduL2EnfTwvY29kZT48L3A+XHJcbiAgICAgICAgICA8aDMgc3R5bGU9e3sgZm9udEZhbWlseTogJ3NhbnMtc2VyaWYnIH19PkVycm9yczwvaDM+XHJcbiAgICAgICAgICA8cD48Y29kZT57dGhpcy5zdGF0ZS5lcnJvciB8fCAnbi9hJ308L2NvZGU+PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNoYW5nZShldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IG5ld0RpY2UgPSBuZXcgRGljZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogbmV3RGljZS50b1N0cmluZ1BsYWludGV4dCgpLFxyXG4gICAgICAgIGRpY2U6IG5ld0RpY2UsXHJcbiAgICAgICAgZXJyb3I6IG51bGwsXHJcbiAgICAgICAgbm9ybWFsaXplZFNwZWM6IG5ld0RpY2UudG9TdHJpbmcoKSxcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBudWxsLFxyXG4gICAgICAgIGRpY2U6IG51bGwsXHJcbiAgICAgICAgZXJyb3I6IGUubWVzc2FnZSxcclxuICAgICAgICBub3JtYWxpemVkU3BlYzogbnVsbCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUtleURvd24oZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5yb2xsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJvbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5kaWNlKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZS5kaWNlLnJvbGwoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgICAgbGFzdFJvbGxzOiB0aGlzLnN0YXRlLmRpY2Uucm9sbHMuam9pbignLCAnKSxcclxuICAgICAgICAgIGxhc3RSb2xsc0JlZm9yZU1vZHM6IHRoaXMuc3RhdGUuZGljZS5yYXdSb2xscy5qb2luKCcsICcpLFxyXG4gICAgICAgICAgbGFzdFRvdGFsOiB0aGlzLnN0YXRlLmRpY2UucmVzdWx0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGVycm9yOiBlLm1lc3NhZ2UsXHJcbiAgICAgICAgICBsYXN0Um9sbHM6IG51bGwsXHJcbiAgICAgICAgICBsYXN0Um9sbHNCZWZvcmVNb2RzOiBudWxsLFxyXG4gICAgICAgICAgbGFzdFRvdGFsOiBudWxsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5SZWFjdERPTS5yZW5kZXIoPEFwcCAvPiwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcCcpKTtcclxuIl19 /***/ }), /* 3 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || Function("return this")() || (1,eval)("this"); } catch(e) { // This works if the window reference is available if(typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { var window = __webpack_require__(5); var nodeCrypto = __webpack_require__(11); function getRandomValues(buf) { if (window.crypto && window.crypto.getRandomValues) { return window.crypto.getRandomValues(buf); } if (typeof window.msCrypto === 'object' && typeof window.msCrypto.getRandomValues === 'function') { return window.msCrypto.getRandomValues(buf); } if (nodeCrypto.randomBytes) { if (!(buf instanceof Uint8Array)) { throw new TypeError('expected Uint8Array'); } if (buf.length > 65536) { var e = new Error(); e.code = 22; e.message = 'Failed to execute \'getRandomValues\' on \'Crypto\': The ' + 'ArrayBufferView\'s byte length (' + buf.length + ') exceeds the ' + 'number of bytes of entropy available via this API (65536).'; e.name = 'QuotaExceededError'; throw e; } var bytes = nodeCrypto.randomBytes(buf.length); buf.set(bytes); return buf; } else { throw new Error('No secure random number generator available.'); } } module.exports = getRandomValues; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {if (typeof window !== "undefined") { module.exports = window; } else if (typeof global !== "undefined") { module.exports = global; } else if (typeof self !== "undefined"){ module.exports = self; } else { module.exports = {}; } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Constants_1 = __webpack_require__(0); var getRandomValues; try { getRandomValues = __webpack_require__(4); } catch (e) { console.error(new Error('Enviroment does not support the crypto API.')); } var buff = new ArrayBuffer(8); function getRandomNumber() { if (getRandomValues) { getRandomValues(new Uint8Array(buff)); var view = new Uint32Array(buff); var lsb = view[1]; var msb = view[0]; msb = msb & Constants_1.INT53_UPPER_MASK; msb *= Constants_1.POW_2_32; return (msb + lsb) / Constants_1.MAX_JS_INT; } else { return Math.random(); } } exports.getRandomNumber = getRandomNumber; function getRandomInt(min, max) { min = Math.round(min); max = Math.round(max); if (min === max) { return min; } else if (max < min) { return 0; } else { return Math.floor(getRandomNumber() * (max - min + 1)) + min; } } exports.getRandomInt = getRandomInt; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFuZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbW1vbi9SYW5kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FLcUI7QUFFckIsSUFBSSxlQUFlLENBQUM7QUFDcEIsSUFBSSxDQUFDO0lBRUgsZUFBZSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUVELElBQU0sSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBTWhDO0lBQ0UsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUVwQixlQUFlLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV0QyxJQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR2xCLEdBQUcsR0FBRyxHQUFHLEdBQUcsNEJBQWdCLENBQUM7UUFHN0IsR0FBRyxJQUFJLG9CQUFRLENBQUM7UUFDaEIsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLHNCQUFVLENBQUM7SUFDbEMsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0FBQ0gsQ0FBQztBQWxCRCwwQ0FrQkM7QUFXRCxzQkFBNkIsR0FBVyxFQUFFLEdBQVc7SUFDbkQsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEIsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckIsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUMvRCxDQUFDO0FBQ0gsQ0FBQztBQVZELG9DQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBJTlQ1M19VUFBFUl9NQVNLLFxyXG4gIE1BWF9KU19JTlQsXHJcbiAgTUFYX1VJTlRfMzIsXHJcbiAgUE9XXzJfMzIsXHJcbn0gZnJvbSAnLi9Db25zdGFudHMnO1xyXG5cclxubGV0IGdldFJhbmRvbVZhbHVlcztcclxudHJ5IHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdmFyLXJlcXVpcmVzXHJcbiAgZ2V0UmFuZG9tVmFsdWVzID0gcmVxdWlyZSgnZ2V0LXJhbmRvbS12YWx1ZXMnKTtcclxufSBjYXRjaCAoZSkge1xyXG4gIGNvbnNvbGUuZXJyb3IobmV3IEVycm9yKCdFbnZpcm9tZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIGNyeXB0byBBUEkuJykpO1xyXG59XHJcblxyXG5jb25zdCBidWZmID0gbmV3IEFycmF5QnVmZmVyKDgpO1xyXG4vKipcclxuICogR2VuZXJhdGVzIGEgcmFuZG9tIHJlYWwgbnVtYmVyIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUuIFVzZXMgdGhlIEphdmFTY3JpcHRcclxuICogY3J5cHRvIEFQSSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2VzIE1hdGgucmFuZG9tKCkuXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ9IEEgcmFuZG9tIHJlYWwgbnVtYmVyIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmFuZG9tTnVtYmVyKCk6IG51bWJlciB7XHJcbiAgaWYgKGdldFJhbmRvbVZhbHVlcykge1xyXG4gICAgLy8gR2VuZXJhdGUgNjQgcmFuZG9tIGJpdHMuXHJcbiAgICBnZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoYnVmZikpO1xyXG4gICAgLy8gV2UgY2FuIG9ubHkgY3JlYXRlIFVpbnQzMiB2aWV3cywgc28gd2UgaGF2ZSAyIFVpbnQzMnMgbm93LlxyXG4gICAgY29uc3QgdmlldyA9IG5ldyBVaW50MzJBcnJheShidWZmKTtcclxuICAgIGNvbnN0IGxzYiA9IHZpZXdbMV07XHJcbiAgICBsZXQgbXNiID0gdmlld1swXTtcclxuICAgIC8vIE1hc2sgdGhlIG1zYiBmb3IgNTMgYml0cyB0b3RhbC5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICBtc2IgPSBtc2IgJiBJTlQ1M19VUFBFUl9NQVNLO1xyXG4gICAgLy8gVGhlIE1TQiBuZWVkcyB0byBiZSBzaGlmdGVkIDMyLCBidXQgSlMgdHJlYXRzIGJpdHdpc2Ugb3BzIGFzIDMyIGJpdFxyXG4gICAgLy8gbnVtYmVycywgc28gaXQgd291bGQgb3ZlcmZsb3cuIE11bHRpcGx5IGJ5IDJeMzIgaW5zdGVhZC5cclxuICAgIG1zYiAqPSBQT1dfMl8zMjtcclxuICAgIHJldHVybiAobXNiICsgbHNiKSAvIE1BWF9KU19JTlQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBNYXRoLnJhbmRvbSgpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBhIHJhbmRvbSBpbnRlZ2VyIGJldHdlZW4gbWluIGFuZCBtYXggaW5jbHVzaXZlLiBUaGUgdmFsdWVzIG9mIG1pbiBhbmQgbWF4XHJcbiAqIGFyZSBmaXJzdCByb3VuZGVkIHVzaW5nIE1hdGgucm91bmQoKS4gVGhlIEphdmFTY3JpcHQgY3J5cHRvIEFQSXMgYXJlIHVzZWQgaWZcclxuICogYXZhaWxhYmxlLCBvdGhlcndpc2UgTWF0aC5yYW5kb20oKSBpcyB1c2VkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gbWluXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBtYXhcclxuICogQHJldHVybnMge251bWJlcn0gQSByYW5kb20gaW50ZWdlciBiZXR3ZWVuIG1pbiBhbmQgbWF4IGluY2x1c2l2ZSwgb3IgMCBpZiBtYXhcclxuICogaXMgbGVzcyB0aGFuIG1pbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRSYW5kb21JbnQobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcclxuICBtaW4gPSBNYXRoLnJvdW5kKG1pbik7XHJcbiAgbWF4ID0gTWF0aC5yb3VuZChtYXgpO1xyXG4gIGlmIChtaW4gPT09IG1heCkge1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9IGVsc2UgaWYgKG1heCA8IG1pbikge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKGdldFJhbmRvbU51bWJlcigpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcclxuICB9XHJcbn1cclxuIl19 /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Constants_1 = __webpack_require__(0); var Dice_1 = __webpack_require__(1); var DiceMod = (function () { function DiceMod(modExpr) { this._successes = null; this._failures = null; this._exploding = null; this._compounding = null; this._penetrating = null; this._keepDrop = null; this._reroll = []; this._sort = null; var originalExpr = modExpr; var result; var explodeRegExp = DiceMod.explodeModRegExpr; while (result = explodeRegExp.exec(modExpr)) { this._parseExplodeResult(result); modExpr = modExpr.replace(result[0], ''); } var keepDropRegExp = DiceMod.keepDropModRegExp; while (result = keepDropRegExp.exec(modExpr)) { this._parseKeepDropResult(result); modExpr = modExpr.replace(result[0], ''); } var rerollRegExp = DiceMod.rerollModRegExp; while (result = rerollRegExp.exec(modExpr)) { this._parseRerollResult(result); modExpr = modExpr.replace(result[0], '');