diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..22c3243 --- /dev/null +++ b/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": ["@babel/preset-env"], + "plugins": [ + ["@babel/transform-runtime"] + ] +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index e59b288..72237a3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -src/node_modules/ +node_modules/ test.js \ No newline at end of file diff --git a/build/esyur.js b/build/esyur.js new file mode 100644 index 0000000..7d88583 --- /dev/null +++ b/build/esyur.js @@ -0,0 +1,9257 @@ +(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 result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + exports.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; + +}( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + typeof module === "object" ? module.exports : {} +)); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); +} + +},{}],17:[function(require,module,exports){ +module.exports = require("regenerator-runtime"); + +},{"regenerator-runtime":16}],18:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _AsyncReply2 = _interopRequireDefault(require("./AsyncReply.js")); + +var AsyncBag = +/*#__PURE__*/ +function (_AsyncReply) { + (0, _inherits2["default"])(AsyncBag, _AsyncReply); + + function AsyncBag() { + var _this; + + (0, _classCallCheck2["default"])(this, AsyncBag); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AsyncBag).call(this)); + _this.replies = []; + _this.results = []; + _this.count = 0; + _this.sealedBag = false; + return _this; + } + + (0, _createClass2["default"])(AsyncBag, [{ + key: "seal", + value: function seal() { + this.sealedBag = true; + if (this.results.length == 0) this.trigger([]); + var self = this; + + var singleTaskCompleted = function singleTaskCompleted(taskIndex) { + return function (results, reply) { + self.results[taskIndex] = results; + self.count++; + if (self.count == self.results.length) self.trigger(self.results); + }; + }; + + for (var i = 0; i < this.results.length; i++) { + this.replies[i].then(singleTaskCompleted(i)); + } + /* + this.replies[i].then(function(r, reply){ + self.results[self.replies.indexOf(reply)] = r; + self.count++; + if (self.count == self.results.length) + self.trigger(self.results); + }); + */ + + } + }, { + key: "add", + value: function add(reply) { + if (!this.sealedBag) { + this.replies.push(reply); + this.results.push(null); + } + } + }]); + return AsyncBag; +}(_AsyncReply2["default"]); + +exports["default"] = AsyncBag; + +},{"./AsyncReply.js":21,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],19:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 18/11/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); + +var _ExceptionCode = _interopRequireDefault(require("./ExceptionCode.js")); + +var AsyncException = +/*#__PURE__*/ +function (_Error) { + (0, _inherits2["default"])(AsyncException, _Error); + + function AsyncException() { + var _this; + + (0, _classCallCheck2["default"])(this, AsyncException); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AsyncException).call(this)); + _this.raised = false; + return _this; + } + + (0, _createClass2["default"])(AsyncException, [{ + key: "raise", + value: function raise(type, code, message) { + this.type = type; + this.code = code; + + if (type == 0) { + for (var i in _ExceptionCode["default"]) { + if (_ExceptionCode["default"][i] == code) { + this.message = i; + break; + } + } + } else this.message = message; + + this.raised = true; + } + }, { + key: "toString", + value: function toString() { + return (this.type == 0 ? "Management" : "Exception") + " (" + this.code + ") : " + this.message; + } + }]); + return AsyncException; +}((0, _wrapNativeSuper2["default"])(Error)); + +exports["default"] = AsyncException; + +},{"./ExceptionCode.js":23,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/helpers/wrapNativeSuper":15}],20:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _AsyncReply2 = _interopRequireDefault(require("./AsyncReply.js")); + +var AsyncQueue = +/*#__PURE__*/ +function (_AsyncReply) { + (0, _inherits2["default"])(AsyncQueue, _AsyncReply); + + function AsyncQueue() { + var _this; + + (0, _classCallCheck2["default"])(this, AsyncQueue); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AsyncQueue).call(this)); + _this.list = []; + var self = (0, _assertThisInitialized2["default"])(_this); + + _this.processQueue = function () { + for (var i = 0; i < self.list.length; i++) { + if (self.list[i].ready) { + self.trigger(self.list[i].result); + self.list.splice(i, 1); + i--; + } else break; + } + + self.ready = self.list.length == 0; + }; + + return _this; + } + + (0, _createClass2["default"])(AsyncQueue, [{ + key: "add", + value: function add(reply) { + this.list.push(reply); + this.ready = false; + reply.then(this.processQueue); + } + }, { + key: "remove", + value: function remove(reply) { + this.list.splice(this.list.indexOf(reply), 1); + this.processQueue(); + } + }]); + return AsyncQueue; +}(_AsyncReply2["default"]); + +exports["default"] = AsyncQueue; + +},{"./AsyncReply.js":21,"@babel/runtime/helpers/assertThisInitialized":1,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],21:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); + +var _AsyncException = _interopRequireDefault(require("./AsyncException.js")); + +var AsyncReply = +/*#__PURE__*/ +function (_Promise) { + (0, _inherits2["default"])(AsyncReply, _Promise); + (0, _createClass2["default"])(AsyncReply, [{ + key: "then", + value: function then(callback, onError) { + if (callback != undefined) { + this.callbacks.push(callback); + if (this.ready) callback(this.result, this); + } + + if (onError != undefined) { + this.error(onError); + } + + return this; + } // Alias for then() + + }, { + key: "done", + value: function done(callback) { + this.then(callback); + } + }, { + key: "error", + value: function error(callback) { + this.errorCallbacks.push(callback); + + if (this.exception.raised) { + callback(this.exception); + } + + return this; + } + }, { + key: "progress", + value: function progress(callback) { + this.progressCallbacks.push(callback); + return this; + } + }, { + key: "chunk", + value: function chunk(callback) { + this.chunkCallbacks.push(callback); + return this; + } // Alias for chunk() + + }, { + key: "next", + value: function next(callback) { + this.chunk(callback); + } + }, { + key: "trigger", + value: function trigger(result) { + this.result = result; + this.ready = true; + + for (var i = 0; i < this.callbacks.length; i++) { + this.callbacks[i](result, this); + } + } + }, { + key: "triggerError", + value: function triggerError(type, code, message) { + if (this.ready) return; + if (type instanceof _AsyncException["default"]) this.exception.raise(type.type, type.code, type.message);else this.exception.raise(type, code, message); + if (this.errorCallbacks.length == 0) throw this.exception;else for (var i = 0; i < this.errorCallbacks.length; i++) { + this.errorCallbacks[i](this.exception, this); + } + } + }, { + key: "triggerProgress", + value: function triggerProgress(type, value, max) { + if (this.ready) return; + + for (var i = 0; i < this.progressCallbacks.length; i++) { + this.progressCallbacks[i](type, value, max, this); + } + } + }, { + key: "triggerChunk", + value: function triggerChunk(value) { + if (this.ready) return; + + for (var i = 0; i < this.chunkCallbacks.length; i++) { + this.chunkCallbacks[i](value, this); + } + } + }]); + + function AsyncReply(result) { + var _this; + + (0, _classCallCheck2["default"])(this, AsyncReply); + + if (result instanceof Function) { + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AsyncReply).call(this, result)); + _this.awaiter = result; + } else _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AsyncReply).call(this, function () {})); + + _this.callbacks = []; + _this.errorCallbacks = []; + _this.progressCallbacks = []; + _this.chunkCallbacks = []; + _this.exception = new _AsyncException["default"](); // null; + + var self = (0, _assertThisInitialized2["default"])(_this); + + if (result !== undefined && !(result instanceof Function)) { + _this.result = result; + _this.ready = true; + } else { + _this.ready = false; + _this.result = null; + } + + return (0, _possibleConstructorReturn2["default"])(_this); + } + + return AsyncReply; +}((0, _wrapNativeSuper2["default"])(Promise)); + +exports["default"] = AsyncReply; + +},{"./AsyncException.js":19,"@babel/runtime/helpers/assertThisInitialized":1,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/helpers/wrapNativeSuper":15}],22:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = { + Management: 0, + Exception: 1 +}; +exports["default"] = _default; + +},{}],23:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = //const ExceptionCode = +{ + HostNotReachable: 0, + AccessDenied: 1, + ResourceNotFound: 2, + AttachDenied: 3, + InvalidMethod: 4, + InvokeDenied: 5, + CreateDenied: 6, + AddParentDenied: 7, + AddChildDenied: 8, + ViewAttributeDenied: 9, + UpdateAttributeDenied: 10, + StoreNotFound: 11, + ParentNotFound: 12, + ChildNotFound: 13, + ResourceIsNotStore: 14, + DeleteDenied: 15, + DeleteFailed: 16, + UpdateAttributeFailed: 17, + GetAttributesFailed: 18, + ClearAttributesFailed: 19, + TemplateNotFound: 20, + RenameDenied: 21, + ClassNotFound: 22, + MethodNotFound: 23, + PropertyNotFound: 24, + SetPropertyDenied: 25, + ReadOnlyProperty: 26 +}; +exports["default"] = _default; + +},{}],24:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 31/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _IEventHandler2 = _interopRequireDefault(require("./IEventHandler.js")); + +var IDestructible = +/*#__PURE__*/ +function (_IEventHandler) { + (0, _inherits2["default"])(IDestructible, _IEventHandler); + (0, _createClass2["default"])(IDestructible, [{ + key: "destroy", + value: function destroy() { + this._emit("destroy", this); + } + }]); + + function IDestructible() { + (0, _classCallCheck2["default"])(this, IDestructible); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(IDestructible).call(this)); + } + + return IDestructible; +}(_IEventHandler2["default"]); + +exports["default"] = IDestructible; + +},{"./IEventHandler.js":25,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],25:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 30/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var IEventHandler = +/*#__PURE__*/ +function () { + (0, _createClass2["default"])(IEventHandler, [{ + key: "_register", + value: function _register(event) { + this._events[event] = []; + } + }]); + + function IEventHandler() { + (0, _classCallCheck2["default"])(this, IEventHandler); + this._events = {}; + } + + (0, _createClass2["default"])(IEventHandler, [{ + key: "_emit", + value: function _emit(event) { + event = event.toLowerCase(); + var args = Array.prototype.slice.call(arguments, 1); + if (this._events[event]) for (var i = 0; i < this._events[event].length; i++) { + if (this._events[event][i].f.apply(this._events[event][i].i, args)) return true; + } + return false; + } + }, { + key: "_emitArgs", + value: function _emitArgs(event, args) { + event = event.toLowerCase(); + if (this._events[event]) for (var i = 0; i < this._events[event].length; i++) { + if (this._events[event][i].f.apply(this._events[event][i].i, args)) return true; + } + return this; + } + }, { + key: "on", + value: function on(event, fn, issuer) { + if (!(fn instanceof Function)) return this; + event = event.toLowerCase(); // add + + if (!this._events[event]) this._events[event] = []; + + this._events[event].push({ + f: fn, + i: issuer == null ? this : issuer + }); + + return this; + } + }, { + key: "off", + value: function off(event, fn) { + event = event.toLocaleString(); + + if (this._events[event]) { + if (fn) { + for (var i = 0; i < this._events[event].length; i++) { + if (this._events[event][i].f == fn) this._events[event].splice(i--, 1); + } //var index = this._events[event].indexOf(fn); + //if (index > -1) + //this._events[event].splice(index, 1); + + } else { + this._events[event] = []; + } + } + } + }]); + return IEventHandler; +}(); + +exports["default"] = IEventHandler; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],26:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = { + Execution: 0, + Network: 1 +}; +exports["default"] = _default; + +},{}],27:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 05/09/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _IEventHandler2 = _interopRequireDefault(require("../Core/IEventHandler.js")); + +var _IDestructible = _interopRequireDefault(require("../Core/IDestructible.js")); + +var AutoList = +/*#__PURE__*/ +function (_IEventHandler) { + (0, _inherits2["default"])(AutoList, _IEventHandler); + + function AutoList() { + var _this; + + (0, _classCallCheck2["default"])(this, AutoList); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AutoList).call(this)); + _this.list = []; + return _this; + } + + (0, _createClass2["default"])(AutoList, [{ + key: "add", + value: function add(value) { + if (value instanceof _IDestructible["default"]) value.on("destroy", this._item_destroyed, this); + this.list.push(value); + + this._emit("add", value); + } + }, { + key: "set", + value: function set(index, value) { + if (index >= this.list.length || index < 0) return; + if (value instanceof _IDestructible["default"]) value.on("destroy", this._item_destroyed, this); + if (this.list[index] instanceof _IDestructible["default"]) this.list[index].off("destroy", this._item_destroyed); + this.list[index] = value; + } + }, { + key: "at", + value: function at(index) { + return this.list[index]; + } + }, { + key: "item", + value: function item(index) { + return this.list[index]; + } + }, { + key: "remove", + value: function remove(value) { + this.removeAt(this.list.indexOf(value)); + } + }, { + key: "contains", + value: function contains(value) { + return this.list.indexOf(value) > -1; + } + }, { + key: "toArray", + value: function toArray() { + return this.list.slice(0); + } + }, { + key: "removeAt", + value: function removeAt(index) { + if (index >= this.list.length || index < 0) return; + var item = this.list[index]; + if (item instanceof _IDestructible["default"]) item.off("destroy", this._item_destroyed); + this.list.splice(index, 1); + + this._emit("remove", item); + } + }, { + key: "_item_destroyed", + value: function _item_destroyed(sender) { + this.remove(sender); + } + }, { + key: "length", + get: function get() { + return this.list.length; + } + }]); + return AutoList; +}(_IEventHandler2["default"]); + +exports["default"] = AutoList; + +},{"../Core/IDestructible.js":24,"../Core/IEventHandler.js":25,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],28:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _DataType = _interopRequireDefault(require("./DataType.js")); + +var _DataConverter = _interopRequireDefault(require("./DataConverter.js")); + +var BinaryList = +/*#__PURE__*/ +function () { + function BinaryList() { + (0, _classCallCheck2["default"])(this, BinaryList); + this.list = []; + } + + (0, _createClass2["default"])(BinaryList, [{ + key: "addRange", + value: function addRange(bl) { + for (var i = 0; i < bl.list.length; i++) { + this.list.push(bl.list[i]); + } + + return this; + } + }, { + key: "add", + value: function add(typedValue, position) { + if (position !== undefined) this.list.splice(position, 0, typedValue);else this.list.push(typedValue); + return this; + } + }, { + key: "toArray", + value: function toArray() { + var ars = []; // calculate length + + for (var i = 0; i < this.list.length; i++) { + switch (this.list[i].type) { + case _DataType["default"].Bool: + ars.push(_DataConverter["default"].boolToBytes(this.list[i].value)); + break; + + case _DataType["default"].UInt8: + ars.push(_DataConverter["default"].uint8ToBytes(this.list[i].value)); + break; + + case _DataType["default"].Int8: + ars.push(_DataConverter["default"].int8ToBytes(this.list[i].value)); + break; + + case _DataType["default"].Char: + ars.push(_DataConverter["default"].charToBytes(this.list[i].value)); + break; + + case _DataType["default"].UInt16: + ars.push(_DataConverter["default"].uint16ToBytes(this.list[i].value)); + break; + + case _DataType["default"].Int16: + ars.push(_DataConverter["default"].int16ToBytes(this.list[i].value)); + break; + + case _DataType["default"].UInt32: + ars.push(_DataConverter["default"].uint32ToBytes(this.list[i].value)); + break; + + case _DataType["default"].Int32: + ars.push(_DataConverter["default"].int32ToBytes(this.list[i].value)); + break; + + case _DataType["default"].UInt64: + ars.push(_DataConverter["default"].uint64ToBytes(this.list[i].value)); + break; + + case _DataType["default"].Int64: + ars.push(_DataConverter["default"].int64ToBytes(this.list[i].value)); + break; + + case _DataType["default"].Float32: + ars.push(_DataConverter["default"].float32ToBytes(this.list[i].value)); + break; + + case _DataType["default"].Float64: + ars.push(_DataConverter["default"].float64ToBytes(this.list[i].value)); + break; + + case _DataType["default"].String: + ars.push(_DataConverter["default"].stringToBytes(this.list[i].value)); + break; + + case _DataType["default"].DateTime: + ars.push(_DataConverter["default"].dateTimeToBytes(this.list[i].value)); + break; + + case _DataType["default"].UInt8Array: + ars.push(this.list[i].value); + //case DataType.Resource: + // ars.push(DC.uint32ToBytes(this.list[i].value.instance.id)); + // break; + //case DataType.DistributedResource: + // ars.push(DC.int8ToBytes(this.list[i].value)); + // break; + } + } + + var length = 0; + ars.forEach(function (a) { + length += a.length; + }); + var rt = new Uint8Array(length); + var offset = 0; + + for (var i = 0; i < ars.length; i++) { + rt.set(ars[i], offset); + offset += ars[i].length; + } + + return rt; + } + }, { + key: "toDC", + value: function toDC() { + return new _DataConverter["default"](this.toArray()); + } + }, { + key: "addDateTime", + value: function addDateTime(value, position) { + return this.add({ + type: _DataType["default"].DateTime, + value: value + }, position); + } + }, { + key: "addUint8Array", + value: function addUint8Array(value, position) { + return this.add({ + type: _DataType["default"].UInt8Array, + value: value + }, position); + } + }, { + key: "addHex", + value: function addHex(value, position) { + return this.addUint8Array(_DataConverter["default"].hexToBytes(value), position); + } + }, { + key: "addString", + value: function addString(value, position) { + return this.add({ + type: _DataType["default"].String, + value: value + }, position); + } + }, { + key: "addUint8", + value: function addUint8(value, position) { + return this.add({ + type: _DataType["default"].UInt8, + value: value + }, position); + } + }, { + key: "addInt8", + value: function addInt8(value, position) { + return this.add({ + type: _DataType["default"].Int8, + value: value + }, position); + } + }, { + key: "addChar", + value: function addChar(value, position) { + return this.add({ + type: _DataType["default"].Char, + value: value + }, position); + } + }, { + key: "addUint16", + value: function addUint16(value, position) { + return this.add({ + type: _DataType["default"].UInt16, + value: value + }, position); + } + }, { + key: "addInt16", + value: function addInt16(value, position) { + return this.add({ + type: _DataType["default"].Int16, + value: value + }, position); + } + }, { + key: "addUint32", + value: function addUint32(value, position) { + return this.add({ + type: _DataType["default"].UInt32, + value: value + }, position); + } + }, { + key: "addInt32", + value: function addInt32(value, position) { + return this.add({ + type: _DataType["default"].Int32, + value: value + }, position); + } + }, { + key: "addUint64", + value: function addUint64(value, position) { + return this.add({ + type: _DataType["default"].UInt64, + value: value + }, position); + } + }, { + key: "addInt64", + value: function addInt64(value, position) { + return this.add({ + type: _DataType["default"].Int64, + value: value + }, position); + } + }, { + key: "addFloat32", + value: function addFloat32(value, position) { + return this.add({ + type: _DataType["default"].Float32, + value: value + }, position); + } + }, { + key: "addFloat64", + value: function addFloat64(value, position) { + return this.add({ + type: _DataType["default"].Float64, + value: value + }, position); + } + }, { + key: "length", + get: function get() { + return this.toArray().length; + } + }]); + return BinaryList; +}(); + +exports["default"] = BinaryList; + +},{"./DataConverter.js":30,"./DataType.js":31,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],29:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _DataType = _interopRequireDefault(require("./DataType.js")); + +var _ResourceComparisionResult = _interopRequireDefault(require("./ResourceComparisionResult.js")); + +var _StructureComparisonResult = _interopRequireDefault(require("./StructureComparisonResult.js")); + +var _AsyncBag = _interopRequireDefault(require("../Core/AsyncBag.js")); + +var _AsyncReply = _interopRequireDefault(require("../Core/AsyncReply.js")); + +var _Structure = _interopRequireDefault(require("./Structure.js")); + +var _PropertyValue = _interopRequireDefault(require("./PropertyValue.js")); + +var _DataConverter = require("./DataConverter.js"); + +var _BinaryList = _interopRequireDefault(require("./BinaryList.js")); + +var _DistributedPropertyContext = _interopRequireDefault(require("../Net/IIP/DistributedPropertyContext.js")); + +var _DistributedResource = _interopRequireDefault(require("../Net/IIP/DistributedResource.js")); + +var _IResource = _interopRequireDefault(require("../Resource/IResource.js")); + +var Codec = +/*#__PURE__*/ +function () { + function Codec() { + (0, _classCallCheck2["default"])(this, Codec); + } + + (0, _createClass2["default"])(Codec, null, [{ + key: "parse", + value: function parse(data, offset, sizeObject, connection) { + var dataType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _DataType["default"].Unspecified; + var size; + var reply = new _AsyncReply["default"](); + var isArray; + var t; + + if (dataType == _DataType["default"].Unspecified) { + size = 1; + dataType = data[offset++]; + } else size = 0; + + t = dataType & 0x7F; + isArray = (dataType & 0x80) == 0x80; + + var payloadSize = _DataType["default"].sizeOf(dataType); + + var contentLength = 0; // check if we have the enough data + + if (payloadSize == -1) { + contentLength = data.getUint32(offset); + offset += 4; + size += 4 + contentLength; + } else size += payloadSize; + + sizeObject.size = size; + + if (isArray) { + switch (t) { + // VarArray ? + case _DataType["default"].Void: + return Codec.parseVarArray(data, offset, contentLength, connection); + + case _DataType["default"].Bool: + return new _AsyncReply["default"](data.getBooleanArray(offset, contentLength)); + + case _DataType["default"].UInt8: + return new _AsyncReply["default"](data.getUint8Array(offset, contentLength)); + + case _DataType["default"].Int8: + return new _AsyncReply["default"](data.getInt8Array(offset, contentLength)); + + case _DataType["default"].Char: + return new _AsyncReply["default"](data.getCharArray(offset, contentLength)); + + case _DataType["default"].Int16: + return new _AsyncReply["default"](data.getInt16Array(offset, contentLength)); + + case _DataType["default"].UInt16: + return new _AsyncReply["default"](data.getUint16Array(offset, contentLength)); + + case _DataType["default"].Int32: + return new _AsyncReply["default"](data.getInt32Array(offset, contentLength)); + + case _DataType["default"].UInt32: + return new _AsyncReply["default"](data.getUint32Array(offset, contentLength)); + + case _DataType["default"].Int64: + return new _AsyncReply["default"](data.getInt64Array(offset, contentLength)); + + case _DataType["default"].UInt64: + return new _AsyncReply["default"](data.getUint64Array(offset, contentLength)); + + case _DataType["default"].Float32: + return new _AsyncReply["default"](data.getFloat32Array(offset, contentLength)); + + case _DataType["default"].Float64: + return new _AsyncReply["default"](data.getFloat64Array(offset, contentLength)); + + case _DataType["default"].String: + return new _AsyncReply["default"](data.getStringArray(offset, contentLength)); + + case _DataType["default"].Resource: + case _DataType["default"].DistributedResource: + return Codec.parseResourceArray(data, offset, contentLength, connection); + + case _DataType["default"].DateTime: + return new _AsyncReply["default"](data.getDateTimeArray(offset, contentLength)); + + case _DataType["default"].Structure: + return Codec.parseStructureArray(data, offset, contentLength, connection); + } + } else { + switch (t) { + case _DataType["default"].NotModified: + return new _AsyncReply["default"](new NotModified()); + + case _DataType["default"].Void: + return new _AsyncReply["default"](null); + + case _DataType["default"].Bool: + return new _AsyncReply["default"](data.getBoolean(offset)); + + case _DataType["default"].UInt8: + return new _AsyncReply["default"](data[offset]); + + case _DataType["default"].Int8: + return new _AsyncReply["default"](data.getInt8(offset)); + + case _DataType["default"].Char: + return new _AsyncReply["default"](data.getChar(offset)); + + case _DataType["default"].Int16: + return new _AsyncReply["default"](data.getInt16(offset)); + + case _DataType["default"].UInt16: + return new _AsyncReply["default"](data.getUint16(offset)); + + case _DataType["default"].Int32: + return new _AsyncReply["default"](data.getInt32(offset)); + + case _DataType["default"].UInt32: + return new _AsyncReply["default"](data.getUint32(offset)); + + case _DataType["default"].Int64: + return new _AsyncReply["default"](data.getInt64(offset)); + + case _DataType["default"].UInt64: + return new _AsyncReply["default"](data.getUint64(offset)); + + case _DataType["default"].Float32: + return new _AsyncReply["default"](data.getFloat32(offset)); + + case _DataType["default"].Float64: + return new _AsyncReply["default"](data.getFloat64(offset)); + + case _DataType["default"].String: + return new _AsyncReply["default"](data.getString(offset, contentLength)); + + case _DataType["default"].Resource: + return Codec.parseResource(data, offset); + + case _DataType["default"].DistributedResource: + return Codec.parseDistributedResource(data, offset, connection); + + case _DataType["default"].DateTime: + return new _AsyncReply["default"](data.getDateTime(offset)); + + case _DataType["default"].Structure: + return Codec.parseStructure(data, offset, contentLength, connection); + } + } + + return null; + } + }, { + key: "parseResource", + value: function parseResource(data, offset) { + return Warehouse.getById(data.getUint32(offset)); + } + }, { + key: "parseDistributedResource", + value: function parseDistributedResource(data, offset, connection) { + //var g = data.getGuid(offset); + //offset += 16; + // find the object + var iid = data.getUint32(offset); + return connection.fetch(iid); // Warehouse.getById(iid); + } /// + /// Parse an array of bytes into array of resources + /// + /// Array of bytes. + /// Number of bytes to parse. + /// Zero-indexed offset. + /// DistributedConnection is required to fetch resources. + /// Array of resources. + + }, { + key: "parseResourceArray", + value: function parseResourceArray(data, offset, length, connection) { + var reply = new _AsyncBag["default"](); + + if (length == 0) { + reply.seal(); + return reply; + } + + var end = offset + length; // + + var result = data[offset++]; + var previous = null; + if (result == _ResourceComparisionResult["default"].Null) previous = new _AsyncReply["default"](null);else if (result == _ResourceComparisionResult["default"].Local) { + previous = Warehouse.getById(data.getUint32(offset)); + offset += 4; + } else if (result == _ResourceComparisionResult["default"].Distributed) { + previous = connection.fetch(data.getUint32(offset)); + offset += 4; + } + reply.add(previous); + + while (offset < end) { + result = data[offset++]; + var current = null; + + if (result == _ResourceComparisionResult["default"].Null) { + current = new _AsyncReply["default"](null); + } else if (result == _ResourceComparisionResult["default"].Same) { + current = previous; + } else if (result == _ResourceComparisionResult["default"].Local) { + current = Warehouse.getById(data.getUint32(offset)); + offset += 4; + } else if (result == _ResourceComparisionResult["default"].Distributed) { + current = connection.fetch(data.getUint32(offset)); + offset += 4; + } + + reply.add(current); + previous = current; + } + + reply.seal(); + return reply; + } /// + /// Compose an array of property values. + /// + /// PropertyValue array. + /// DistributedConnection is required to check locality. + /// If True, prepend the length as UInt32 at the beginning of the output. + /// Array of bytes in the network byte order. + + }, { + key: "composePropertyValueArray", + value: function composePropertyValueArray(array, connection) { + var prependLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var rt = (0, _DataConverter.BL)(); + + for (var i = 0; i < array.length; i++) { + rt.addUint8Array(Codec.composePropertyValue(array[i], connection)); + } + + if (prependLength) rt.addUint32(rt.length, 0); + return rt.toArray(); + } /// + /// Compose a property value. + /// + /// Property value + /// DistributedConnection is required to check locality. + /// Array of bytes in the network byte order. + + }, { + key: "composePropertyValue", + value: function composePropertyValue(propertyValue, connection) { + // age, date, value + return (0, _DataConverter.BL)().addUint64(propertyValue.age).addDateTime(propertyValue.date).addUint8Array(Codec.compose(propertyValue.value, connection)).toArray(); + } /// + /// Parse property value. + /// + /// Array of bytes. + /// Zero-indexed offset. + /// DistributedConnection is required to fetch resources. + /// Output content size. + /// PropertyValue. + + }, { + key: "parsePropertyValue", + value: function parsePropertyValue(data, offset, sizeObject, connection) { + var reply = new _AsyncReply["default"](); + var age = data.getUint64(offset); + offset += 8; + var date = data.getDateTime(offset); + offset += 8; + var cs = {}; + Codec.parse(data, offset, cs, connection).then(function (value) { + reply.trigger(new _PropertyValue["default"](value, age, date)); + }); + sizeObject.size = 16 + cs.size; + return reply; + } /// + /// Parse resource history + /// + /// Array of bytes. + /// Zero-indexed offset. + /// Number of bytes to parse. + /// Resource + /// Starting age. + /// Ending age. + /// DistributedConnection is required to fetch resources. + /// + + }, { + key: "parseHistory", + value: function parseHistory(data, offset, length, resource, connection) { + var list = new KeyList(); + var reply = new _AsyncReply["default"](); + var bagOfBags = new _AsyncBag["default"](); + var ends = offset + length; + + while (offset < ends) { + var index = data[offset++]; + var pt = resource.instance.template.getPropertyTemplateByIndex(index); + list.add(pt, null); + var cs = data.getUint32(offset); + offset += 4; + bagOfBags.add(Codec.parsePropertyValueArray(data, offset, cs, connection)); + offset += cs; + } + + bagOfBags.seal(); + bagOfBags.then(function (x) { + for (var i = 0; i < list.length; i++) { + list.values[i] = x[i]; + } + + reply.trigger(list); + }); + return reply; + } /// + /// Compose resource history + /// + /// History + /// DistributedConnection is required to fetch resources. + /// + + }, { + key: "composeHistory", + value: function composeHistory(history, connection) { + var prependLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var rt = new _BinaryList["default"](); + + for (var i = 0; i < history.length; i++) { + rt.addUint8(history.keys[i].index).addUint8Array(Codec.composePropertyValueArray(history.values[i], connection, true)); + } + + if (prependLength) rt.addUint32(rt.length, 0); + return rt.toArray(); + } /// + /// Parse an array of ProperyValue. + /// + /// Array of bytes. + /// Zero-indexed offset. + /// Number of bytes to parse. + /// DistributedConnection is required to fetch resources. + /// + + }, { + key: "parsePropertyValueArray", + value: function parsePropertyValueArray(data, offset, length, connection) { + var rt = new _AsyncBag["default"](); + + while (length > 0) { + var cs = {}; + rt.add(Codec.parsePropertyValue(data, offset, cs, connection)); + + if (cs.size > 0) { + offset += cs.size; + length -= cs.size; + } else throw new Exception("Error while parsing ValueInfo structured data"); + } + + rt.seal(); + return rt; + } + }, { + key: "parseStructure", + value: function parseStructure(data, offset, contentLength, connection) { + var metadata = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; + var keys = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null; + var types = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null; + var reply = new _AsyncReply["default"](); + var bag = new _AsyncBag["default"](); + var keylist = []; + var typelist = []; + + if (keys == null) { + while (contentLength > 0) { + var len = data[offset++]; + keylist.push(data.getString(offset, len)); + offset += len; + typelist.push(data[offset]); + var rt = {}; + bag.add(Codec.parse(data, offset, rt, connection)); + contentLength -= rt.size + len + 1; + offset += rt.size; + } + } else if (types == null) { + for (var i = 0; i < keys.length; i++) { + keylist.push(keys[i]); + } + + while (contentLength > 0) { + typelist.push(data[offset]); + var rt = {}; + bag.add(Codec.parse(data, offset, rt, connection)); + contentLength -= rt.size; + offset += rt.size; + } + } else { + for (var i = 0; i < keys.length; i++) { + keylist.push(keys[i]); + typelist.push(types[i]); + } + + var i = 0; + + while (contentLength > 0) { + var rt = {}; + bag.add(Codec.parse(data, offset, rt, connection, types[i])); + contentLength -= rt.size; + offset += rt.size; + i++; + } + } + + bag.seal(); + bag.then(function (res) { + // compose the list + var s = new _Structure["default"](); + + for (var i = 0; i < keylist.length; i++) { + s[keylist[i]] = res[i]; + } + + reply.trigger(s); + }); + + if (metadata != null) { + metadata.keys = keylist; + metadata.types = typelist; + } + + return reply; + } + }, { + key: "parseVarArray", + value: function parseVarArray(data, offset, contentLength, connection) { + var rt = new _AsyncBag["default"](); + + while (contentLength > 0) { + var cs = {}; + rt.add(Codec.parse(data, offset, cs, connection)); + + if (cs.size > 0) { + offset += cs.size; + contentLength -= cs.size; + } else throw new Exception("Error while parsing structured data"); + } + + rt.seal(); + return rt; + } + }, { + key: "compose", + value: function compose(value, connection) { + var prependType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + if (value instanceof Function) value = value(connection);else if (value instanceof _DistributedPropertyContext["default"]) value = value.method(this); + var type = Codec.getDataType(value, connection); + var rt = new _BinaryList["default"](); + + switch (type) { + case _DataType["default"].Void: + // nothing to do; + break; + + case _DataType["default"].String: + var st = _DataConverter.DC.stringToBytes(value); + + rt.addUint32(st.length).addUint8Array(st); + break; + + case _DataType["default"].Resource: + rt.addUint32(value._p.instanceId); + break; + + case _DataType["default"].DistributedResource: + // rt.addUint8Array(DC.stringToBytes(value.instance.template.classId)).addUint32(value.instance.id); + rt.addUint32(value.instance.id); + break; + + case _DataType["default"].Structure: + rt.addUint8Array(Codec.composeStructure(value, connection, true, true, true)); + break; + + case _DataType["default"].VarArray: + rt.addUint8Array(Codec.composeVarArray(value, connection, true)); + break; + + case _DataType["default"].ResourceArray: + rt.addUint8Array(Codec.composeResourceArray(value, connection, true)); + break; + + case _DataType["default"].StructureArray: + rt.addUint8Array(Codec.composeStructureArray(value, connection, true)); + break; + + default: + rt.add({ + type: type, + value: value + }); + if (_DataType["default"].isArray(type)) rt.addUint32(rt.length, 0); + break; + } + + if (prependType) rt.addUint8(type, 0); + return rt.toArray(); + } + }, { + key: "composeVarArray", + value: function composeVarArray(array, connection) { + var prependLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var rt = new _BinaryList["default"](); + + for (var i = 0; i < array.length; i++) { + rt.addUint8Array(Codec.compose(array[i], connection)); + } + + if (prependLength) rt.addUint32(rt.length, 0); + return rt.toArray(); + } + }, { + key: "composeStructure", + value: function composeStructure(value, connection) { + var includeKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var includeTypes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var prependLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + var rt = new _BinaryList["default"](); + var keys = value.getKeys(); + + if (includeKeys) { + for (var i = 0; i < keys.length; i++) { + var key = _DataConverter.DC.stringToBytes(keys[i]); + + rt.addUint8(key.length).addUint8Array(key).addUint8Array(Codec.compose(value[keys[i]], connection)); + } + } else { + for (var i = 0; i < keys.length; i++) { + rt.addUint8Array(Codec.compose(value[keys[i]], connection, includeTypes)); + } + } + + if (prependLength) rt.addUint32(rt.length, 0); + return rt.toArray(); + } + }, { + key: "composeStructureArray", + value: function composeStructureArray(structures, connection) { + var prependLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (structures == null || structures.length == 0 || !(structures instanceof StructureArray)) return new _DataConverter.DC(0); + var rt = new _BinaryList["default"](); + var comparision = _StructureComparisonResult["default"].Structure; + rt.addUint8(comparision); + rt.addUint8Array(Codec.composeStructure(structures[0], connection)); + + for (var i = 1; i < structures.length; i++) { + comparision = Codec.compareStructure(structures[i - 1], structures[i], connection); + rt.addUint8(comparision); + if (comparision == _StructureComparisonResult["default"].Structure) rt.addUint8Array(Codec.composeStructure(structures[i], connection));else if (comparision == _StructureComparisonResult["default"].StructureSameKeys) rt.addUint8Array(Codec.composeStructure(structures[i], connection, false));else if (comparision == _StructureComparisonResult["default"].StructureSameTypes) rt.addUint8Array(Codec.composeStructure(structures[i], connection, false, false)); + } + + if (prependLength) rt.addUint32(rt.length, 0); + return rt.toArray(); + } + }, { + key: "compareStructure", + value: function compareStructure(previous, next, connection) { + if (next == null) return _StructureComparisonResult["default"].Null; + if (previous == null) return _StructureComparisonResult["default"].Structure; + if (next == previous) return _StructureComparisonResult["default"].Same; + if (previous.length != next.length) return _StructureComparisonResult["default"].Structure; + var previousKeys = previous.getKeys(); + var nextKeys = next.getKeys(); + + for (var i = 0; i < previousKeys.length; i++) { + if (previousKeys[i] != nextKeys[i]) return _StructureComparisonResult["default"].Structure; + } + + var previousTypes = Codec.getStructureDateTypes(previous, connection); + var nextTypes = Codec.getStructureDateTypes(next, connection); + + for (var i = 0; i < previousTypes.length; i++) { + if (previousTypes[i] != nextTypes[i]) return _StructureComparisonResult["default"].StructureSameKeys; + } + + return _StructureComparisonResult["default"].StructureSameTypes; + } + }, { + key: "getStructureDateTypes", + value: function getStructureDateTypes(structure, connection) { + var keys = structure.getKeys(); + var types = []; + + for (var i = 0; i < keys.length; i++) { + types.push(Codec.getDataType(structure[keys[i]], connection)); + } + + return types; + } + }, { + key: "isLocalResource", + value: function isLocalResource(resource, connection) { + if (resource instanceof _DistributedResource["default"]) if (resource._p.connection == connection) return true; + return false; + } + }, { + key: "composeResource", + value: function composeResource(resource, connection) { + if (Codec.isLocalResource(resource, connection)) return (0, _DataConverter.BL)().addUint32(resource.id);else { + return (0, _DataConverter.BL)().addUint8Array(resource.instance.template.classId.value).addUint32(resource.instance.id); + } + } + }, { + key: "compareResource", + value: function compareResource(previous, next, connection) { + if (next == null) return _ResourceComparisionResult["default"].Null;else if (next == previous) return _ResourceComparisionResult["default"].Same;else if (Codec.isLocalResource(next, connection)) return _ResourceComparisionResult["default"].Local;else return _ResourceComparisionResult["default"].Distributed; + } + }, { + key: "composeResourceArray", + value: function composeResourceArray(resources, connection) { + var prependLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (resources == null || resources.length == 0) // || !(resources instanceof ResourceArray)) + return prependLength ? new _DataConverter.DC(4) : new _DataConverter.DC(0); + var rt = new _BinaryList["default"](); + var comparsion = Codec.compareResource(null, resources[0], connection); + rt.addUint8(comparsion); + if (comparsion == _ResourceComparisionResult["default"].Local) rt.addUint32(resources[0]._p.instanceId);else if (comparsion == _ResourceComparisionResult["default"].Distributed) rt.addUint32(resources[0].instance.id); + + for (var i = 1; i < resources.length; i++) { + comparsion = Codec.compareResource(resources[i - 1], resources[i], connection); + rt.addUint8(comparsion); + if (comparsion == _ResourceComparisionResult["default"].Local) rt.addUint32(resources[i]._p.instanceId);else if (comparsion == _ResourceComparisionResult["default"].Distributed) rt.addUint32(resources[i].instance.id); + } + + if (prependLength) rt.addUint32(rt.length, 0); + return rt.toArray(); + } + }, { + key: "getDataType", + value: function getDataType(value, connection) { + switch ((0, _typeof2["default"])(value)) { + case "number": + // float or ? + if (Math.floor(value) == value) { + if (value > 0) { + // larger than byte ? + if (value > 0xFF) { + // larger than short ? + if (value > 0xFFFF) { + // larger than int ? + if (value > 0xFFFFFFFF) { + return _DataType["default"].UInt64; + } else { + return _DataType["default"].UInt32; + } + } else { + return _DataType["default"].UInt16; + } + } else { + return _DataType["default"].UInt8; + } + } else { + if (value < -128) { + if (value < -32768) { + if (value < -2147483648) { + return _DataType["default"].Int64; + } else { + return _DataType["default"].Int32; + } + } else { + return _DataType["default"].Int16; + } + } else { + return _DataType["default"].Int8; + } + } + } else { + // float or double + return _DataType["default"].Float64; + } + + break; + + case "string": + return _DataType["default"].String; + + case "boolean": + return _DataType["default"].Bool; + + case "object": + if (value instanceof Array) { + return _DataType["default"].VarArray; + } else if (value instanceof _IResource["default"]) { + return Codec.isLocalResource(value, connection) ? _DataType["default"].Resource : _DataType["default"].DistributedResource; + } else if (value instanceof Date) { + return _DataType["default"].DateTime; + } else if (value instanceof Uint8Array || value instanceof ArrayBuffer) { + return _DataType["default"].UInt8Array; + } else if (value instanceof Number) { + // JS numbers are always 64-bit float + return _DataType["default"].Float64; + } else if (value instanceof _Structure["default"]) { + return _DataType["default"].Structure; + } else { + return _DataType["default"].Void; + } + + break; + + default: + return _DataType["default"].Void; + } + } /// + /// Parse an array of structures + /// + /// Bytes array + /// Zero-indexed offset + /// Number of bytes to parse + /// DistributedConnection is required in case a structure in the array holds items at the other end + /// Array of structures + + }, { + key: "parseStructureArray", + value: function parseStructureArray(data, offset, length, connection) { + var reply = new _AsyncBag["default"](); + + if (length == 0) { + reply.seal(); + return reply; + } + + var end = offset + length; + var result = data[offset++]; + var previous = null; //var previousKeys = []; + //var previousTypes = []; + + var metadata = { + keys: null, + types: null + }; + if (result == _StructureComparisonResult["default"].Null) previous = new _AsyncReply["default"](null);else if (result == _StructureComparisonResult["default"].Structure) { + var cs = data.getUint32(offset); + offset += 4; + previous = this.parseStructure(data, offset, cs, connection, metadata); + offset += cs; + } + reply.add(previous); + + while (offset < end) { + result = data[offset++]; + if (result == _StructureComparisonResult["default"].Null) previous = new _AsyncReply["default"](null);else if (result == _StructureComparisonResult["default"].Structure) { + var cs = data.getUint32(offset); + offset += 4; + previous = this.parseStructure(data, offset, cs, connection, metadata); + offset += cs; + } else if (result == _StructureComparisonResult["default"].StructureSameKeys) { + var cs = data.getUint32(offset); + offset += 4; + previous = this.parseStructure(data, offset, cs, connection, metadata, metadata.keys); + offset += cs; + } else if (result == _StructureComparisonResult["default"].StructureSameTypes) { + var cs = data.getUint32(offset); + offset += 4; + previous = this.parseStructure(data, offset, cs, connection, metadata, metadata.keys, metadata.types); + offset += cs; + } + reply.add(previous); + } + + reply.seal(); + return reply; + } + }]); + return Codec; +}(); + +exports["default"] = Codec; + +},{"../Core/AsyncBag.js":18,"../Core/AsyncReply.js":21,"../Net/IIP/DistributedPropertyContext.js":40,"../Net/IIP/DistributedResource.js":41,"../Resource/IResource.js":56,"./BinaryList.js":28,"./DataConverter.js":30,"./DataType.js":31,"./PropertyValue.js":34,"./ResourceComparisionResult.js":35,"./Structure.js":36,"./StructureComparisonResult.js":38,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/typeof":14}],30:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BL = BL; +exports.DC = exports["default"] = exports.TWO_PWR_32 = exports.UNIX_EPOCH = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); + +var _BinaryList = _interopRequireDefault(require("./BinaryList.js")); + +var _Guid = _interopRequireDefault(require("./Guid.js")); + +var UNIX_EPOCH = 621355968000000000; +exports.UNIX_EPOCH = UNIX_EPOCH; +var TWO_PWR_32 = (1 << 16) * (1 << 16); +exports.TWO_PWR_32 = TWO_PWR_32; + +var DC = +/*#__PURE__*/ +function (_Uint8Array) { + (0, _inherits2["default"])(DC, _Uint8Array); + + function DC(bufferOrSize) { + var _this; + + (0, _classCallCheck2["default"])(this, DC); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DC).call(this, bufferOrSize)); //if (bufferOrSize instanceof ArrayBuffer) { + // this.buffer = bufferOrSize; + //} + //else + //{ + // this.buffer = new Uint8Array(bufferOrSize); + //} + + _this.dv = new DataView(_this.buffer); + return _this; + } + + (0, _createClass2["default"])(DC, [{ + key: "append", + value: function append(src, offset, length) { + if (!(src instanceof DC)) src = new DC(src); + var appendix = src.clip(offset, length); + var rt = new DC(this.length + appendix.length); + rt.set(this, 0); + rt.set(appendix, this.length); + return rt; + } + }, { + key: "clip", + value: function clip(offset, length) { + return this.slice(offset, offset + length); + } + }, { + key: "getInt8", + value: function getInt8(offset) { + return this.dv.getUint8(offset); + } + }, { + key: "getUint8", + value: function getUint8(offset) { + return this[offset]; // this.dv.getUint8(offset); + } + }, { + key: "getInt16", + value: function getInt16(offset) { + return this.dv.getInt16(offset); + } + }, { + key: "getUint16", + value: function getUint16(offset) { + return this.dv.getUint16(offset); + } + }, { + key: "getInt32", + value: function getInt32(offset) { + return this.dv.getInt32(offset); + } + }, { + key: "getUint32", + value: function getUint32(offset) { + return this.dv.getUint32(offset); + } + }, { + key: "getFloat32", + value: function getFloat32(offset) { + return this.dv.getFloat32(offset); + } + }, { + key: "getFloat64", + value: function getFloat64(offset) { + return this.dv.getFloat64(offset); + } + }, { + key: "setInt8", + value: function setInt8(offset, value) { + return this.dv.setInt8(offset, value); + } + }, { + key: "setUint8", + value: function setUint8(offset, value) { + return this.dv.setUint8(offset, value); + } + }, { + key: "setInt16", + value: function setInt16(offset, value) { + return this.dv.setInt16(offset, value); + } + }, { + key: "setUint16", + value: function setUint16(offset, value) { + return this.dv.setUint16(offset, value); + } + }, { + key: "setInt32", + value: function setInt32(offset, value) { + return this.dv.setInt32(offset, value); + } + }, { + key: "setUint32", + value: function setUint32(offset, value) { + return this.dv.setUint32(offset, value); + } + }, { + key: "setFloat32", + value: function setFloat32(offset, value) { + return this.dv.setFloat32(offset, value); + } + }, { + key: "setFloat64", + value: function setFloat64(offset, value) { + return this.dv.setFloat64(offset, value); + } + }, { + key: "getInt8Array", + value: function getInt8Array(offset, length) { + return new Int8Array(this.buffer, offset, length); + } + }, { + key: "getUint8Array", + value: function getUint8Array(offset, length) { + return new Uint8Array(this.buffer, offset, length); + } + }, { + key: "getInt16Array", + value: function getInt16Array(offset, length) { + return new Int16Array(this.buffer, offset, length); + } + }, { + key: "getUint16Array", + value: function getUint16Array(offset, length) { + return new Uint16Array(this.buffer, offset, length); + } + }, { + key: "getInt32Array", + value: function getInt32Array(offset, length) { + return new Int32Array(this.buffer, offset, length); + } + }, { + key: "getUint32Array", + value: function getUint32Array(offset, length) { + return new Uint32Array(this.buffer, offset, length); + } + }, { + key: "getFloat32Array", + value: function getFloat32Array(offset, length) { + return new Float32Array(this.buffer, offset, length); + } + }, { + key: "getFloat64Array", + value: function getFloat64Array(offset, length) { + return new Float64Array(this.buffer, offset, length); + } + }, { + key: "getInt64Array", + value: function getInt64Array(offset, length) { + return new Int64Array(this.buffer, offset, length); + } + }, { + key: "getUint64Array", + value: function getUint64Array(offset, length) { + return new Uint64Array(this.buffer, offset, length); + } + }, { + key: "getBoolean", + value: function getBoolean(offset) { + return this.getUint8(offset) > 0; + } + }, { + key: "setBoolean", + value: function setBoolean(offset, value) { + this.setUint8(offset, value ? 1 : 0); + } + }, { + key: "getBooleanArray", + value: function getBooleanArray(offset, length) { + var rt = []; + + for (var i = 0; i < length; i++) { + rt.push(this.getBoolean(offset + i)); + } + + return rt; + } + }, { + key: "getChar", + value: function getChar(offset) { + return String.fromCharCode(this.getUint16(offset)); + } + }, { + key: "setChar", + value: function setChar(offset, value) { + this.setUint16(offset, value.charCodeAt(0)); + } + }, { + key: "getCharArray", + value: function getCharArray(offset, length) { + var rt = []; + + for (var i = 0; i < length; i += 2) { + rt.push(this.getChar(offset + i)); + } + + return rt; + } + }, { + key: "getHex", + value: function getHex(offset, length) { + var rt = ""; + + for (var i = offset; i < offset + length; i++) { + var h = this[i].toString(16); + rt += h.length == 1 ? "0" + h : h; + } + + return rt; + } + }, { + key: "getString", + value: function getString(offset, length) { + if (typeof StringView != "undefined") return new StringView(this.buffer, "UTF-8", offset, length);else { + var bytes = this.getUint8Array(offset, length); + var encodedString = String.fromCharCode.apply(null, bytes), + decodedString = decodeURIComponent(escape(encodedString)); + return decodedString; + } + } + }, { + key: "getStringArray", + value: function getStringArray(offset, length) { + var rt = []; + var i = 0; + + while (i < length) { + var cl = this.getUint32(offset + i); + i += 4; + rt.push(this.getString(offset + i, cl)); + i += cl; + } + + return rt; + } + }, { + key: "getInt64", + value: function getInt64(offset) { + var h = this.getInt32(offset); + var l = this.getInt32(offset + 4); + return h * TWO_PWR_32 + (l >= 0 ? l : TWO_PWR_32 + l); + } + }, { + key: "getUint64", + value: function getUint64(offset) { + var h = this.getUint32(offset); + var l = this.getUint32(offset + 4); + return h * TWO_PWR_32 + (l >= 0 ? l : TWO_PWR_32 + l); + } + }, { + key: "setInt64", + value: function setInt64(offset, value) { + var l = value % TWO_PWR_32 | 0; + var h = value / TWO_PWR_32 | 0; + this.setInt32(offset, h); + this.setInt32(offset + 4, l); + } + }, { + key: "setUint64", + value: function setUint64(offset, value) { + var l = value % TWO_PWR_32 | 0; + var h = value / TWO_PWR_32 | 0; + this.setInt32(offset, h); + this.setInt32(offset + 4, l); + } + }, { + key: "setDateTime", + value: function setDateTime(offset, value) { + // Unix Epoch + var ticks = 621355968000000000 + value.getTime() * 10000; + this.setUint64(offset, ticks); + } + }, { + key: "getDateTime", + value: function getDateTime(offset) { + var ticks = this.getUint64(offset); + return new Date(Math.round((ticks - UNIX_EPOCH) / 10000)); + } + }, { + key: "getDateTimeArray", + value: function getDateTimeArray(offset) { + var rt = []; + + for (var i = 0; i < length; i += 8) { + rt.push(this.getDateTime(offset + i)); + } + + return rt; + } + }, { + key: "getGuid", + value: function getGuid(offset) { + return new _Guid["default"](this.clip(offset, 16)); + /* + var d = this.getUint8Array(offset, 16); + var rt = ""; + for (var i = 0; i < 16; i++) { + rt += String.fromCharCode(d[i]); + } + return btoa(rt); + */ + } + }, { + key: "getGuidArray", + value: function getGuidArray(offset, length) { + var rt = []; + + for (var i = 0; i < length; i += 16) { + rt.push(this.getGuid(offset + i)); + } + + return rt; + } + }, { + key: "sequenceEqual", + value: function sequenceEqual(ar) { + if (ar.length != this.length) return false;else { + for (var i = 0; i < this.length; i++) { + if (ar[i] != this[i]) return false; + } + } + return true; + } + }], [{ + key: "boolToBytes", + value: function boolToBytes(value) { + var rt = new DC(1); + rt.setBoolean(0, value); + return rt; + } + }, { + key: "int8ToBytes", + value: function int8ToBytes(value) { + var rt = new DC(1); + rt.setInt8(0, value); + return rt; + } + }, { + key: "hexToBytes", + value: function hexToBytes(value) { + // convert hex to Uint8Array + var rt = new DC(value.length / 2); + + for (var i = 0; i < ar.length; i++) { + rt[i] = parseInt(value.substr(i * 2, 2), 16); + } + + return rt; + } + }, { + key: "uint8ToBytes", + value: function uint8ToBytes(value) { + var rt = new DC(1); + rt.setUint8(0, value); + return rt; + } + }, { + key: "charToBytes", + value: function charToBytes(value) { + var rt = new DC(2); + rt.setChar(0, value); + return rt; + } + }, { + key: "int16ToBytes", + value: function int16ToBytes(value) { + var rt = new DC(2); + rt.setInt16(0, value); + return rt; + } + }, { + key: "uint16ToBytes", + value: function uint16ToBytes(value) { + var rt = new DC(2); + rt.setUint16(0, value); + return rt; + } + }, { + key: "int32ToBytes", + value: function int32ToBytes(value) { + var rt = new DC(4); + rt.setInt32(0, value); + return rt; + } + }, { + key: "uint32ToBytes", + value: function uint32ToBytes(value) { + var rt = new DC(4); + rt.setUint32(0, value); + return rt; + } + }, { + key: "float32ToBytes", + value: function float32ToBytes(value) { + var rt = new DC(4); + rt.setFloat32(0, value); + return rt; + } + }, { + key: "int64ToBytes", + value: function int64ToBytes(value) { + var rt = new DC(8); + rt.setInt64(0, value); + return rt; + } + }, { + key: "uint64ToBytes", + value: function uint64ToBytes(value) { + var rt = new DC(8); + rt.setUint64(0, value); + return rt; + } + }, { + key: "float64ToBytes", + value: function float64ToBytes(value) { + var rt = new DC(8); + rt.setFloat64(0, value); + return rt; + } + }, { + key: "dateTimeToBytes", + value: function dateTimeToBytes(value) { + var rt = new DC(8); + rt.setDateTime(0, value); + return rt; + } + }, { + key: "stringToBytes", + value: function stringToBytes(value) { + var utf8 = unescape(encodeURIComponent(value)); + var rt = []; + + for (var i = 0; i < utf8.length; i++) { + rt.push(utf8.charCodeAt(i)); + } + + return new DC(rt); + } + }, { + key: "stringArrayToBytes", + value: function stringArrayToBytes(values) { + var list = new _BinaryList["default"](); + + for (var i = 0; i < values.length; i++) { + var s = DC.stringToBytes(values[i]); + list.addUint32(s.length).addUint8Array(s); + } + + return list.toArray(); + } + }, { + key: "combine", + value: function combine(a, aOffset, aLength, b, bOffset, bLength) { + if (!(a instanceof DC)) a = new DC(a); + if (!(b instanceof DC)) b = new DC(b); + a = a.clip(aOffset, aLength); + b = b.clip(bOffset, bLength); + var rt = new DC(a.length + b.length); + rt.set(a, 0); + rt.set(b, a.length); + return rt; + } + }]); + return DC; +}((0, _wrapNativeSuper2["default"])(Uint8Array)); + +exports.DC = exports["default"] = DC; + +function BL() { + return new _BinaryList["default"](); +} + +; + +},{"./BinaryList.js":28,"./Guid.js":32,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/helpers/wrapNativeSuper":15}],31:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = { + Void: 0x0, + //Variant, + Bool: 1, + Int8: 2, + UInt8: 3, + Char: 4, + Int16: 5, + UInt16: 6, + Int32: 7, + UInt32: 8, + Int64: 9, + UInt64: 10, + Float32: 11, + Float64: 12, + Decimal: 13, + DateTime: 14, + Resource: 15, + DistributedResource: 16, + ResourceLink: 17, + String: 18, + Structure: 19, + //Stream, + //Array = 0x80, + VarArray: 0x80, + BoolArray: 0x81, + UInt8Array: 0x82, + Int8Array: 0x83, + CharArray: 0x84, + Int16Array: 0x85, + UInt16Array: 0x86, + Int32Array: 0x87, + UInt32Array: 0x88, + Int64Array: 0x89, + UInt64Array: 0x8A, + Float32Array: 0x8B, + Float64Array: 0x8C, + DecimalArray: 0x8D, + DateTimeArray: 0x8E, + ResourceArray: 0x8F, + DistributedResourceArray: 0x90, + ResourceLinkArray: 0x91, + StringArray: 0x92, + StructureArray: 0x93, + NotModified: 0x7f, + Unspecified: 0xff, + isArray: function isArray(type) { + return (type & 0x80) == 0x80 && type != this.NotModified; + }, + sizeOf: function sizeOf(type) { + switch (type) { + case this.Void: + case this.NotModified: + return 0; + + case this.Bool: + case this.Int8: + case this.UInt8: + return 1; + + case this.Char: + case this.Int16: + case this.UInt16: + return 2; + + case this.Int32: + case this.UInt32: + case this.Float32: + case this.Resource: + return 4; + + case this.Int64: + case this.UInt64: + case this.Float64: + case this.DateTime: + return 8; + + case this.DistributedResource: + return 4; + + default: + return -1; + } + } +}; +exports["default"] = _default; + +},{}],32:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 02/09/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var Guid = +/*#__PURE__*/ +function () { + function Guid(dc) { + (0, _classCallCheck2["default"])(this, Guid); + this.value = dc; + } + + (0, _createClass2["default"])(Guid, [{ + key: "valueOf", + value: function valueOf() { + return this.value.getHex(0, 16); + } + }]); + return Guid; +}(); + +exports["default"] = Guid; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],33:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 06/11/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _IDestructible = _interopRequireDefault(require("../Core/IDestructible.js")); + +var KeyList = +/*#__PURE__*/ +function () { + function KeyList() { + (0, _classCallCheck2["default"])(this, KeyList); + this.keys = []; + this.values = []; + } + + (0, _createClass2["default"])(KeyList, [{ + key: "toObject", + value: function toObject() { + var rt = {}; + + for (var i = 0; i < this.keys.length; i++) { + rt[this.keys[i]] = this.values[i]; + } + + return rt; + } + }, { + key: "at", + value: function at(index) { + return this.values[index]; + } + }, { + key: "item", + value: function item(key) { + for (var i = 0; i < this.keys.length; i++) { + if (this.keys[i] == key) return this.values[i]; + } + } + }, { + key: "get", + value: function get(key) { + for (var i = 0; i < this.keys.length; i++) { + if (this.keys[i] == key) return this.values[i]; + } + } + }, { + key: "_item_destroyed", + value: function _item_destroyed(sender) { + for (var i = 0; i < this.values.length; i++) { + if (sender == this.values[i]) { + this.removeAt(i); + break; + } + } + } + }, { + key: "add", + value: function add(key, value) { + this.remove(key); + if (value instanceof _IDestructible["default"]) value.on("destroy", this._item_destroyed, this); + this.keys.push(key); + this.values.push(value); + } + }, { + key: "contains", + value: function contains(key) { + for (var i = 0; i < this.keys.length; i++) { + if (this.keys[i] == key) return true; + } + + return false; + } + }, { + key: "set", + value: function set(key, value) { + this.remove(key); + this.add(key, value); + } + }, { + key: "remove", + value: function remove(key) { + for (var i = 0; i < this.keys.length; i++) { + if (key == this.keys[i]) { + this.removeAt(i); + break; + } + } + } + }, { + key: "removeAt", + value: function removeAt(index) { + if (this.values[index] instanceof _IDestructible["default"]) this.values[index].off("destroy", this._item_destroyed); + this.keys.splice(index, 1); + this.values.splice(index, 1); + } + }, { + key: "length", + get: function get() { + return this.keys.length; + } + }]); + return KeyList; +}(); + +exports["default"] = KeyList; + +},{"../Core/IDestructible.js":24,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],34:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 06/11/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var PropertyValue = function PropertyValue(value, age, date) { + (0, _classCallCheck2["default"])(this, PropertyValue); + this.value = value; + this.age = age; + this.date = date; +}; + +exports["default"] = PropertyValue; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/interopRequireDefault":9}],35:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = // const ResourceComparisonResult = +{ + Null: 0, + Distributed: 1, + Local: 2, + Same: 3 +}; +exports["default"] = _default; + +},{}],36:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 26/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var Structure = +/*#__PURE__*/ +function () { + (0, _createClass2["default"])(Structure, [{ + key: "getKeys", + value: function getKeys() { + var rt = []; + + for (var i in this) { + if (!(this[i] instanceof Function)) rt.push(i); + } + + return rt; + } + }]); + + function Structure(data) { + (0, _classCallCheck2["default"])(this, Structure); + if (data instanceof Object) for (var i in data) { + this[i] = data[i]; + } + } + + return Structure; +}(); + +exports["default"] = Structure; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],37:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 06/09/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); + +var StructureArray = +/*#__PURE__*/ +function (_Array) { + (0, _inherits2["default"])(StructureArray, _Array); + + function StructureArray() { + (0, _classCallCheck2["default"])(this, StructureArray); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(StructureArray).apply(this, arguments)); + } + + (0, _createClass2["default"])(StructureArray, [{ + key: "push", + value: function push(value) { + if (value instanceof Structure) (0, _get2["default"])((0, _getPrototypeOf2["default"])(StructureArray.prototype), "push", this).call(this, value);else return; + } + }]); + return StructureArray; +}((0, _wrapNativeSuper2["default"])(Array)); + +exports["default"] = StructureArray; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/get":6,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/helpers/wrapNativeSuper":15}],38:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = //const StructureComparisonResult = +{ + Null: 0, + Structure: 1, + StructureSameKeys: 2, + StructureSameTypes: 3, + Same: 4 +}; +exports["default"] = _default; + +},{}],39:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _IStore2 = _interopRequireDefault(require("../../Resource/IStore.js")); + +var _Session = _interopRequireDefault(require("../../Security/Authority/Session.js")); + +var _Authentication = _interopRequireDefault(require("../../Security/Authority/Authentication.js")); + +var _AuthenticationType = _interopRequireDefault(require("../../Security/Authority/AuthenticationType.js")); + +var _SHA = _interopRequireDefault(require("../../Security/Integrity/SHA256.js")); + +var _DataConverter = require("../../Data/DataConverter.js"); + +var _SendList = _interopRequireDefault(require("../SendList.js")); + +var _AsyncReply = _interopRequireDefault(require("../../Core/AsyncReply.js")); + +var _Codec = _interopRequireDefault(require("../../Data/Codec.js")); + +var _NetworkBuffer = _interopRequireDefault(require("../Sockets/NetworkBuffer.js")); + +var _KeyList = _interopRequireDefault(require("../../Data/KeyList.js")); + +var _AsyncQueue = _interopRequireDefault(require("../../Core/AsyncQueue.js")); + +var _Warehouse = _interopRequireDefault(require("../../Resource/Warehouse.js")); + +var _IIPAuthPacket = _interopRequireDefault(require("../Packets/IIPAuthPacket.js")); + +var _IIPPacket = _interopRequireDefault(require("../Packets/IIPPacket.js")); + +var _IIPAuthPacketAction = _interopRequireDefault(require("../Packets/IIPAuthPacketAction.js")); + +var _IIPAuthPacketCommand = _interopRequireDefault(require("../Packets/IIPAuthPacketCommand.js")); + +var _IIPAuthPacketMethod = _interopRequireDefault(require("../Packets/IIPAuthPacketMethod.js")); + +var _IIPPacketAction = _interopRequireDefault(require("../Packets/IIPPacketAction.js")); + +var _IIPPacketCommand = _interopRequireDefault(require("../Packets/IIPPacketCommand.js")); + +var _IIPPacketEvent = _interopRequireDefault(require("../Packets/IIPPacketEvent.js")); + +var _IIPPacketReport = _interopRequireDefault(require("../Packets//IIPPacketReport.js")); + +var _ErrorType = _interopRequireDefault(require("../../Core/ErrorType.js")); + +var _ProgressType = _interopRequireDefault(require("../../Core/ProgressType.js")); + +var _ExceptionCode = _interopRequireDefault(require("../../Core/ExceptionCode.js")); + +var _DistributedResource = _interopRequireDefault(require("./DistributedResource.js")); + +var _ResourceTemplate = _interopRequireDefault(require("../../Resource/Template/ResourceTemplate.js")); + +var _DistributedResourceQueueItem = _interopRequireDefault(require("./DistributedResourceQueueItem.js")); + +var _DistributedResourceQueueItemType = _interopRequireDefault(require("./DistributedResourceQueueItemType.js")); + +var _DistributedPropertyContext = _interopRequireDefault(require("./DistributedPropertyContext.js")); + +var _IResource = require("../../Resource/IResource.js"); + +var DistributedConnection = +/*#__PURE__*/ +function (_IStore) { + (0, _inherits2["default"])(DistributedConnection, _IStore); + (0, _createClass2["default"])(DistributedConnection, [{ + key: "send", + value: function send(data) { + if (this.holdSending) { + //console.log("hold ", data.length); + this.sendBuffer.writeAll(data); + } else //console.log("Send", data.length); + this.socket.send(data.buffer); + } + }, { + key: "sendParams", + value: function sendParams(doneReply) { + return new _SendList["default"](this, doneReply); + } + }, { + key: "generateNonce", + value: function generateNonce(length) { + var rt = new Uint8Array(length); + + for (var i = 0; i < length; i++) { + rt[i] = Math.random() * 255; + } + + return rt; + } + }]); + + function DistributedConnection() { + var _this; + + (0, _classCallCheck2["default"])(this, DistributedConnection); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DistributedConnection).call(this)); //Instance.Name = Global.GenerateCode(12); + //this.hostType = AuthenticationType.Client; + //this.domain = domain; + //this.localUsername = username; + //this._register("ready"); + //this._register("error"); + + _this._register("close"); + + _this.session = new _Session["default"](new _Authentication["default"](_AuthenticationType["default"].Client), new _Authentication["default"](_AuthenticationType["default"].Host)); + _this.packet = new _IIPPacket["default"](); + _this.authPacket = new _IIPAuthPacket["default"](); + _this.resources = {}; + _this.templates = new _KeyList["default"](); + _this.requests = {}; + _this.pathRequests = {}; + _this.templateRequests = new _KeyList["default"](); + _this.resourceRequests = {}; + _this.callbackCounter = 0; + _this.queue = new _AsyncQueue["default"](); + + _this.queue.then(function (x) { + if (x.type == _DistributedResourceQueueItemType["default"].Event) { + x.resource._emitEventByIndex(x.index, x.value); + } else { + x.resource._updatePropertyByIndex(x.index, x.value); + } + }); + + _this.localNonce = _this.generateNonce(32); // new Uint8Array(32); + //window.crypto.getRandomValues(this.localNonce); + // declare (Credentials -> No Auth, No Enctypt) + //this.socket.onerror = function(event) + //{ + // self.close(event); + //}; + + return _this; + } + + (0, _createClass2["default"])(DistributedConnection, [{ + key: "processPacket", + value: function processPacket(msg, offset, ends, data) { + var authPacket = this.authPacket; + + if (this.ready) { + var packet = new _IIPPacket["default"](); + var rt = packet.parse(msg, offset, ends); + + if (rt <= 0) { + data.holdFor(msg, offset, ends - offset, -rt); + return ends; + } else { + offset += rt; + + if (packet.command == _IIPPacketCommand["default"].Event) { + switch (packet.event) { + case _IIPPacketEvent["default"].ResourceReassigned: + this.IIPEventResourceReassigned(packet.resourceId, packet.newResourceId); + break; + + case _IIPPacketEvent["default"].ResourceDestroyed: + this.IIPEventResourceDestroyed(packet.resourceId); + break; + + case _IIPPacketEvent["default"].PropertyUpdated: + this.IIPEventPropertyUpdated(packet.resourceId, packet.methodIndex, packet.content); + break; + + case _IIPPacketEvent["default"].EventOccurred: + this.IIPEventEventOccurred(packet.resourceId, packet.methodIndex, packet.content); + break; + + case _IIPPacketEvent["default"].ChildAdded: + this.IIPEventChildAdded(packet.resourceId, packet.childId); + break; + + case _IIPPacketEvent["default"].ChildRemoved: + this.IIPEventChildRemoved(packet.resourceId, packet.childId); + break; + + case _IIPPacketEvent["default"].Renamed: + this.IIPEventRenamed(packet.resourceId, packet.content); + break; + + case _IIPPacketEvent["default"].AttributesUpdated: + this.IIPEventAttributesUpdated(packet.resourceId, packet.content); + break; + } + } else if (packet.command == _IIPPacketCommand["default"].Request) { + switch (packet.action) { + // Manage + case _IIPPacketAction["default"].AttachResource: + this.IIPRequestAttachResource(packet.callbackId, packet.resourceId); + break; + + case _IIPPacketAction["default"].ReattachResource: + this.IIPRequestReattachResource(packet.callbackId, packet.resourceId, packet.resourceAge); + break; + + case _IIPPacketAction["default"].DetachResource: + this.IIPRequestDetachResource(packet.callbackId, packet.resourceId); + break; + + case _IIPPacketAction["default"].CreateResource: + this.IIPRequestCreateResource(packet.callbackId, packet.storeId, packet.resourceId, packet.content); + break; + + case _IIPPacketAction["default"].DeleteResource: + this.IIPRequestDeleteResource(packet.callbackId, packet.resourceId); + break; + + case _IIPPacketAction["default"].AddChild: + this.IIPRequestAddChild(packet.callbackId, packet.resourceId, packet.childId); + break; + + case _IIPPacketAction["default"].RemoveChild: + this.IIPRequestRemoveChild(packet.callbackId, packet.resourceId, packet.childId); + break; + + case _IIPPacketAction["default"].RenameResource: + this.IIPRequestRenameResource(packet.callbackId, packet.resourceId, packet.content); + break; + // Inquire + + case _IIPPacketAction["default"].TemplateFromClassName: + this.IIPRequestTemplateFromClassName(packet.callbackId, packet.className); + break; + + case _IIPPacketAction["default"].TemplateFromClassId: + this.IIPRequestTemplateFromClassId(packet.callbackId, packet.classId); + break; + + case _IIPPacketAction["default"].TemplateFromResourceId: + this.IIPRequestTemplateFromResourceId(packet.callbackId, packet.resourceId); + break; + + case _IIPPacketAction["default"].QueryLink: + this.IIPRequestQueryResources(packet.callbackId, packet.resourceLink); + break; + + case _IIPPacketAction["default"].ResourceChildren: + this.IIPRequestResourceChildren(packet.callbackId, packet.resourceId); + break; + + case _IIPPacketAction["default"].ResourceParents: + this.IIPRequestResourceParents(packet.callbackId, packet.resourceId); + break; + + case _IIPPacketAction["default"].ResourceHistory: + this.IIPRequestInquireResourceHistory(packet.callbackId, packet.resourceId, packet.fromDate, packet.toDate); + break; + // Invoke + + case _IIPPacketAction["default"].InvokeFunctionArrayArguments: + this.IIPRequestInvokeFunctionArrayArguments(packet.callbackId, packet.resourceId, packet.methodIndex, packet.content); + break; + + case _IIPPacketAction["default"].InvokeFunctionNamedArguments: + this.IIPRequestInvokeFunctionNamedArguments(packet.callbackId, packet.resourceId, packet.methodIndex, packet.content); + break; + + case _IIPPacketAction["default"].GetProperty: + this.IIPRequestGetProperty(packet.callbackId, packet.resourceId, packet.methodIndex); + break; + + case _IIPPacketAction["default"].GetPropertyIfModified: + this.IIPRequestGetPropertyIfModifiedSince(packet.callbackId, packet.resourceId, packet.methodIndex, packet.resourceAge); + break; + + case _IIPPacketAction["default"].SetProperty: + this.IIPRequestSetProperty(packet.callbackId, packet.resourceId, packet.methodIndex, packet.content); + break; + + case _IIPPacketAction["default"].ResourceHistory: + this.IIPRequestInquireResourceHistory(packet.callbackId, packet.resourceId, packet.fromDate, packet.toDate); + break; + + case _IIPPacketAction["default"].QueryLink: + this.IIPRequestQueryResources(packet.callbackId, packet.resourceLink); + break; + // Attribute + + case _IIPPacketAction["default"].GetAllAttributes: + this.IIPRequestGetAttributes(packet.callbackId, packet.resourceId, packet.content, true); + break; + + case _IIPPacketAction["default"].UpdateAllAttributes: + this.IIPRequestUpdateAttributes(packet.callbackId, packet.resourceId, packet.content, true); + break; + + case _IIPPacketAction["default"].ClearAllAttributes: + this.IIPRequestClearAttributes(packet.callbackId, packet.resourceId, packet.content, true); + break; + + case _IIPPacketAction["default"].GetAttributes: + this.IIPRequestGetAttributes(packet.callbackId, packet.resourceId, packet.content, false); + break; + + case _IIPPacketAction["default"].UpdateAttributes: + this.IIPRequestUpdateAttributes(packet.callbackId, packet.resourceId, packet.content, false); + break; + + case _IIPPacketAction["default"].ClearAttributes: + this.IIPRequestClearAttributes(packet.callbackId, packet.resourceId, packet.content, false); + break; + } + } else if (packet.command == _IIPPacketCommand["default"].Reply) { + switch (packet.action) { + case _IIPPacketAction["default"].AttachResource: + this.IIPReply(packet.callbackId, packet.classId, packet.resourceAge, packet.resourceLink, packet.content); + break; + + case _IIPPacketAction["default"].ReattachResource: + this.IIPReply(packet.callbackId, packet.resourceAge, packet.content); + break; + + case _IIPPacketAction["default"].DetachResource: + this.IIPReply(packet.callbackId); + break; + + case _IIPPacketAction["default"].CreateResource: + this.IIPReply(packet.callbackId, packet.resourceId); + break; + + case _IIPPacketAction["default"].DeleteResource: + case _IIPPacketAction["default"].AddChild: + case _IIPPacketAction["default"].RemoveChild: + case _IIPPacketAction["default"].RenameResource: + this.IIPReply(packet.callbackId); + break; + + case _IIPPacketAction["default"].TemplateFromClassName: + case _IIPPacketAction["default"].TemplateFromClassId: + case _IIPPacketAction["default"].TemplateFromResourceId: + this.IIPReply(packet.callbackId, _ResourceTemplate["default"].parse(packet.content)); + break; + + case _IIPPacketAction["default"].QueryLink: + case _IIPPacketAction["default"].ResourceChildren: + case _IIPPacketAction["default"].ResourceParents: + case _IIPPacketAction["default"].ResourceHistory: + this.IIPReply(packet.callbackId, packet.content); + break; + + case _IIPPacketAction["default"].InvokeFunctionArrayArguments: + case _IIPPacketAction["default"].InvokeFunctionNamedArguments: + this.IIPReplyInvoke(packet.callbackId, packet.content); + break; + + case _IIPPacketAction["default"].GetProperty: + this.IIPReply(packet.callbackId, packet.content); + break; + + case _IIPPacketAction["default"].GetPropertyIfModified: + this.IIPReply(packet.callbackId, packet.content); + break; + + case _IIPPacketAction["default"].SetProperty: + this.IIPReply(packet.callbackId); + break; + // Attribute + + case _IIPPacketAction["default"].GetAllAttributes: + case _IIPPacketAction["default"].GetAttributes: + this.IIPReply(packet.callbackId, packet.content); + break; + + case _IIPPacketAction["default"].UpdateAllAttributes: + case _IIPPacketAction["default"].UpdateAttributes: + case _IIPPacketAction["default"].ClearAllAttributes: + case _IIPPacketAction["default"].ClearAttributes: + this.IIPReply(packet.callbackId); + break; + } + } else if (packet.command == _IIPPacketCommand["default"].Report) { + switch (packet.report) { + case _IIPPacketReport["default"].ManagementError: + this.IIPReportError(packet.callbackId, _ErrorType["default"].Management, packet.errorCode, null); + break; + + case _IIPPacketReport["default"].ExecutionError: + this.IIPReportError(packet.callbackId, _ErrorType["default"].Exception, packet.errorCode, packet.errorMessage); + break; + + case _IIPPacketReport["default"].ProgressReport: + this.IIPReportProgress(packet.callbackId, _ProgressType["default"].Execution, packet.progressValue, packet.progressMax); + break; + + case _IIPPacketReport["default"].ChunkStream: + this.IIPReportChunk(packet.callbackId, packet.content); + break; + } + } + } + } else { + var rt = authPacket.parse(msg, offset, ends); + + if (rt <= 0) { + data.holdAllFor(msg, ends - rt); + return ends; + } else { + offset += rt; + + if (this.session.localAuthentication.type == _AuthenticationType["default"].Host) { + if (authPacket.command == _IIPAuthPacketCommand["default"].Declare) { + if (authPacket.remoteMethod == _IIPAuthPacketMethod["default"].credentials && authPacket.localMethod == _IIPAuthPacketMethod["default"].None) { + this.session.remoteAuthentication.username = authPacket.remoteUsername; + this.remoteNonce = authPacket.remoteNonce; + this.domain = authPacket.domain; + this.sendParams().addUint8(0xa0).addUint8Array(this.localNonce).done(); + } + } else if (authPacket.command == _IIPAuthPacketCommand["default"].Action) { + if (authPacket.action == _IIPAuthPacketAction["default"].AuthenticateHash) { + var remoteHash = authPacket.hash; + this.server.membership.getPassword(this.session.remoteAuthentication.username, this.domain).then(function (pw) { + if (pw != null) { + //var hash = new DC(sha256.arrayBuffer(BL().addString(pw).addUint8Array(remoteNonce).addUint8Array(this.localNonce).toArray())); + var hash = _SHA["default"].compute((0, _DataConverter.BL)().addString(pw).addUint8Array(remoteNonce).addUint8Array(this.localNonce).toDC()); + + if (hash.sequenceEqual(remoteHash)) { + // send our hash + //var localHash = new DC(sha256.arrayBuffer((new BinaryList()).addUint8Array(this.localNonce).addUint8Array(remoteNonce).addUint8Array(pw).toArray())); + var localHash = _SHA["default"].compute((0, _DataConverter.BL)().addUint8Array(this.localNonce).addUint8Array(remoteNonce).addUint8Array(pw).toDC()); + + this.sendParams().addUint8(0).addUint8Array(localHash).done(); + this.readyToEstablish = true; + } else { + // incorrect password + this.sendParams().addUint8(0xc0).addInt32(1).addUint16(5).addString("Error").done(); + } + } + }); + } else if (authPacket.action == _IIPAuthPacketAction["default"].NewConnection) { + if (readyToEstablish) { + this.session.id = this.generateNonce(32); // new DC(32); + //window.crypto.getRandomValues(this.session.id); + + this.sendParams().addUint8(0x28).addUint8Array(this.session.id).done(); + this.ready = true; + this.openReply.trigger(this); //this._emit("ready", this); + } + } + } + } else if (this.session.localAuthentication.type == _AuthenticationType["default"].Client) { + if (authPacket.command == _IIPAuthPacketCommand["default"].Acknowledge) { + this.remoteNonce = authPacket.remoteNonce; // send our hash + //var localHash = new DC(sha256.arrayBuffer(BL().addUint8Array(this.localPassword) + // .addUint8Array(this.localNonce) + // .addUint8Array(this.remoteNonce).toArray())); + + var localHash = _SHA["default"].compute((0, _DataConverter.BL)().addUint8Array(this.localPassword).addUint8Array(this.localNonce).addUint8Array(this.remoteNonce).toDC()); + + this.sendParams().addUint8(0).addUint8Array(localHash).done(); + } else if (authPacket.command == _IIPAuthPacketCommand["default"].Action) { + if (authPacket.action == _IIPAuthPacketAction["default"].AuthenticateHash) { + // check if the server knows my password + //var remoteHash = new DC(sha256.arrayBuffer(BL().addUint8Array(this.remoteNonce) + // .addUint8Array(this.localNonce) + // .addUint8Array(this.localPassword).toArray() + //)); + var remoteHash = _SHA["default"].compute((0, _DataConverter.BL)().addUint8Array(this.remoteNonce).addUint8Array(this.localNonce).addUint8Array(this.localPassword).toDC()); + + if (remoteHash.sequenceEqual(authPacket.hash)) { + // send establish request + this.sendParams().addUint8(0x20).addUint16(0).done(); + } else { + this.sendParams().addUint8(0xc0).addUint32(1).addUint16(5).addString("Error").done(); + } + } else if (authPacket.action == _IIPAuthPacketAction["default"].ConnectionEstablished) { + this.session.id = authPacket.sessionId; + this.ready = true; + this.openReply.trigger(this); //this._emit("ready", this); + } + } else if (authPacket.command == _IIPAuthPacketCommand["default"].Error) { + this.openReply.triggerError(1, authPacket.errorCode, authPacket.errorMessage); //this._emit("error", this, authPacket.errorCode, authPacket.errorMessage); + + this.close(); + } + } + } + } + + return offset; //if (offset < ends) + // this.processPacket(msg, offset, ends, data); + } + }, { + key: "receive", + value: function receive(data) { + var msg = data.read(); + var offset = 0; + var ends = msg.length; + var packet = this.packet; //console.log("Data"); + + while (offset < ends) { + offset = this.processPacket(msg, offset, ends, data); + } + } + }, { + key: "close", + value: function close(event) { + this._emit("close", event); + + _Warehouse["default"].remove(this); + + if (this.socket.readyState != this.socket.CLOSED) { + this.socket.close(); + } + } + }, { + key: "hold", + value: function hold() { + this.holdSending = true; + } + }, { + key: "unhold", + value: function unhold() { + if (this.holdSending) { + this.holdSending = false; + var msg = this.sendBuffer.read(); + if (msg == null || msg.length == 0) return; + this.socket.send(msg); + } + } + }, { + key: "trigger", + value: function trigger(_trigger) { + if (_trigger == _IResource.ResourceTrigger.Open) { + var _this$instance$attrib = this.instance.attributes.toObject(), + _this$instance$attrib2 = _this$instance$attrib.domain, + domain = _this$instance$attrib2 === void 0 ? null : _this$instance$attrib2, + _this$instance$attrib3 = _this$instance$attrib.secure, + secure = _this$instance$attrib3 === void 0 ? false : _this$instance$attrib3, + _this$instance$attrib4 = _this$instance$attrib.username, + username = _this$instance$attrib4 === void 0 ? "guest" : _this$instance$attrib4, + _this$instance$attrib5 = _this$instance$attrib.password, + password = _this$instance$attrib5 === void 0 ? "" : _this$instance$attrib5, + _this$instance$attrib6 = _this$instance$attrib.checkInterval, + checkInterval = _this$instance$attrib6 === void 0 ? 30 : _this$instance$attrib6, + _this$instance$attrib7 = _this$instance$attrib.connectionTimeout, + connectionTimeout = _this$instance$attrib7 === void 0 ? 600 : _this$instance$attrib7, + _this$instance$attrib8 = _this$instance$attrib.revivingTime, + revivingTime = _this$instance$attrib8 === void 0 ? 120 : _this$instance$attrib8, + _this$instance$attrib9 = _this$instance$attrib.debug, + debug = _this$instance$attrib9 === void 0 ? false : _this$instance$attrib9; + + this.openReply = new _AsyncReply["default"](); //var hostname = this.instance.name.split("://", 2)[1].split("/", 2)[0]; + // assign domain from hostname if not provided + + var host = this.instance.name.split(':'); + var address = host[0]; + var port = parseInt(host[1]); + domain = domain ? domain : address; + this.session.localAuthentication.domain = domain; + this.session.localAuthentication.username = username; + this.localPassword = _DataConverter.DC.stringToBytes(password); + var url = "ws".concat(secure ? 's' : '', "://").concat(this.instance.name); + this.debug = debug; + this.totalReceived = 0; + this.totalSent = 0; + this.checkInterval = checkInterval * 1000; // check every 30 seconds + + this.connectionTimeout = connectionTimeout * 1000; // 10 minutes (4 pings failed) + + this.revivingTime = revivingTime * 1000; // 2 minutes + + this.lastAction = Date.now(); + this.socket = new WebSocket(url, "iip"); + this.socket.binaryType = "arraybuffer"; + this.socket.connection = this; + this.socket.networkBuffer = new _NetworkBuffer["default"](); + this.sendBuffer = new _NetworkBuffer["default"](); + + var un = _DataConverter.DC.stringToBytes(username); + + var dmn = _DataConverter.DC.stringToBytes(domain); + + var self = this; + + this.socket.onopen = function () { + var bl = (0, _DataConverter.BL)(); + bl.addUint8(0x60).addUint8(dmn.length).addUint8Array(dmn).addUint8Array(self.localNonce).addUint8(un.length).addUint8Array(un); + self.send(bl.toArray()); + }; + + this.socket.onmessage = function (msg) { + //console.log("Rec", msg.data.byteLength); + this.networkBuffer.writeAll(msg.data); + self.lastAction = new Date(); + self.hold(); + + while (this.networkBuffer.available > 0 && !this.networkBuffer["protected"]) { + self.receive(this.networkBuffer); + } + + self.unhold(); + }; + + this.socket.onclose = function (event) { + if (this.connection.openReply) this.connection.openReply.triggerError(0, 0, "Host not reachable"); + self.close(event); + }; + + return this.openReply; + } + + return new _AsyncReply["default"](true); + } + }, { + key: "put", + value: function put(resource) { + this.resources[parseInt(resource.instance.name)] = resource; + return true; + } + }, { + key: "remove", + value: function remove(resource) {} // nothing to do (IStore interface) + // Protocol Implementation + + }, { + key: "sendRequest2", + value: function sendRequest2(action, binaryList) { + var reply = new _AsyncReply["default"](); + this.callbackCounter++; + this.sendParams().addUint8(0x40 | action).addUint32(this.callbackCounter).addRange(binaryList).done(); + this.requests[this.callbackCounter] = reply; + return reply; + } + }, { + key: "sendRequest", + value: function sendRequest(action) { + var reply = new _AsyncReply["default"](); + this.callbackCounter++; + this.requests[this.callbackCounter] = reply; + return this.sendParams(reply).addUint8(0x40 | action).addUint32(this.callbackCounter); + } + }, { + key: "sendInvokeByArrayArguments", + value: function sendInvokeByArrayArguments(instanceId, index, parameters) { + var reply = new _AsyncReply["default"](); + + var pb = _Codec["default"].composeVarArray(parameters, this, true); + + this.callbackCounter++; + this.sendParams().addUint8(0x40 | _IIPPacketAction["default"].InvokeFunctionArrayArguments).addUint32(this.callbackCounter).addUint32(instanceId).addUint8(index).addUint8Array(pb).done(); + this.requests[this.callbackCounter] = reply; + return reply; + } + }, { + key: "sendInvokeByNamedArguments", + value: function sendInvokeByNamedArguments(instanceId, index, parameters) { + var reply = new _AsyncReply["default"](); + + var pb = _Codec["default"].composeStructure(parameters, this, true, true, true); + + this.callbackCounter++; + this.sendParams().addUint8(0x40 | _IIPPacketAction["default"].InvokeFunctionNamedArguments).addUint32(this.callbackCounter).addUint32(instanceId).addUint8(index).addUint8Array(pb).done(); + this.requests[this.callbackCounter] = reply; + return reply; + } + }, { + key: "sendError", + value: function sendError(type, callbackId, errorCode) { + var errorMessage = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ""; + + var msg = _DataConverter.DC.stringToBytes(errorMessage); + + if (type == _ErrorType["default"].Management) this.sendParams().addUint8(0xC0 | _IIPPacketReport["default"].ManagementError).addUint32(callbackId).addUint16(errorCode).done();else if (type == _ErrorType["default"].Exception) this.sendParams().addUint8(0xC0 | _IIPPacketReport["default"].ExecutionError).addUint32(callbackId).addUint16(errorCode).addUint16(msg.length).addUint8Array(msg).done(); + } + }, { + key: "sendProgress", + value: function sendProgress(callbackId, value, max) { + this.sendParams().addUint8(0xC0 | _IIPPacketReport["default"].ProgressReport).addUint32(callbackId).addInt32(value).addInt32(max).done(); + } + }, { + key: "sendChunk", + value: function sendChunk(callbackId, chunk) { + var c = _Codec["default"].compose(chunk, this, true); + + this.sendParams().addUint8(0xC0 | _IIPPacketReport["default"].ChunkStream).addUint32(callbackId).addUint8Array(c).done(); + } + }, { + key: "IIPReply", + value: function IIPReply(callbackId) { + var results = Array.prototype.slice.call(arguments, 1); + var req = this.requests[callbackId]; //console.log("Reply " + callbackId, req); + + delete this.requests[callbackId]; + req.trigger(results); + } + }, { + key: "IIPReplyInvoke", + value: function IIPReplyInvoke(callbackId, result) { + var req = this.requests[callbackId]; + delete this.requests[callbackId]; + + _Codec["default"].parse(result, 0, {}, this).then(function (rt) { + req.trigger(rt); + }); + } + }, { + key: "IIPReportError", + value: function IIPReportError(callbackId, errorType, errorCode, errorMessage) { + var req = this.requests[callbackId]; + delete this.requests[callbackId]; + req.triggerError(errorType, errorCode, errorMessage); + } + }, { + key: "IIPReportProgress", + value: function IIPReportProgress(callbackId, type, value, max) { + var req = this.requests[callbackId]; + req.triggerProgress(type, value, max); + } + }, { + key: "IIPReportChunk", + value: function IIPReportChunk(callbackId, data) { + if (this.requests[callbackId]) { + var req = this.requests[callbackId]; + + _Codec["default"].parse(data, 0, {}, this).then(function (x) { + req.triggerChunk(x); + }); + } + } + }, { + key: "IIPEventResourceReassigned", + value: function IIPEventResourceReassigned(resourceId, newResourceId) {} + }, { + key: "IIPEventResourceDestroyed", + value: function IIPEventResourceDestroyed(resourceId) { + if (this.resources[resourceId]) { + var r = this.resources[resourceId]; + delete this.resources[resourceId]; + r.destroy(); + } + } + }, { + key: "IIPEventPropertyUpdated", + value: function IIPEventPropertyUpdated(resourceId, index, content) { + var self = this; + this.fetch(resourceId).then(function (r) { + // push to the queue to gaurantee serialization + var item = new _AsyncReply["default"](); + self.queue.add(item); + + _Codec["default"].parse(content, 0, {}, self).then(function (args) { + var pt = r.instance.template.getPropertyTemplateByIndex(index); + + if (pt != null) { + item.trigger(new _DistributedResourceQueueItem["default"](r, _DistributedResourceQueueItemType["default"].Propery, args, index)); + } else { + // ft found, fi not found, this should never happen + self.queue.remove(item); + } + }); + }); + } + }, { + key: "IIPEventEventOccurred", + value: function IIPEventEventOccurred(resourceId, index, content) { + var self = this; + this.fetch(resourceId).then(function (r) { + // push to the queue to guarantee serialization + var item = new _AsyncReply["default"](); + var r = self.resources[resourceId]; + self.queue.add(item); + + _Codec["default"].parseVarArray(content, 0, content.length, self).then(function (args) { + var et = r.instance.template.getEventTemplateByIndex(index); + + if (et != null) { + item.trigger(new _DistributedResourceQueueItem["default"](r, _DistributedResourceQueueItemType["default"].Event, args, index)); + } else { + // ft found, fi not found, this should never happen + self.queue.remove(item); + } + }); + }); + } + }, { + key: "IIPEventChildAdded", + value: function IIPEventChildAdded(resourceId, childId) { + var self = this; + this.fetch(resourceId).then(function (parent) { + self.fetch(childId).then(function (child) { + parent.instance.children.add(child); + }); + }); + } + }, { + key: "IIPEventChildRemoved", + value: function IIPEventChildRemoved(resourceId, childId) { + var self = this; + this.fetch(resourceId).then(function (parent) { + self.fetch(childId).then(function (child) { + parent.instance.children.remove(child); + }); + }); + } + }, { + key: "IIPEventRenamed", + value: function IIPEventRenamed(resourceId, name) { + this.fetch(resourceId).then(function (resource) { + resource.instance.attributes.set("name", name.getString(0, name.length)); + }); + } + }, { + key: "IIPEventAttributesUpdated", + value: function IIPEventAttributesUpdated(resourceId, attributes) { + var self = this; + this.fetch(resourceId).then(function (resource) { + var attrs = attributes.getStringArray(0, attributes.length); + self.getAttributes(resource, attrs).then(function (s) { + resource.instance.setAttributes(s); + }); + }); + } + }, { + key: "sendReply", + value: function sendReply(action, callbackId) { + return this.sendParams().addUint8(0x80 | action).addUint32(callbackId); + } + }, { + key: "sendEvent", + value: function sendEvent(evt) { + return this.sendParams().addUint8(evt); + } + }, { + key: "IIPRequestAttachResource", + value: function IIPRequestAttachResource(callback, resourceId) { + //var sl = this.sendParams(); + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) { + if (r.instance.applicable(self.session, ActionType.Attach, null) == Ruling.Denied) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AttachDenied); + return; + } + + r.instance.on("ResourceEventOccurred", self.instance_eventOccurred, self); + r.instance.on("ResourceModified", self.instance_propertyModified, self); + r.instance.on("ResourceDestroyed", self.instance_resourceDestroyed, self); // reply ok + + var link = _DataConverter.DC.stringToBytes(r.instance.link); + + if (r instanceof _DistributedResource["default"]) self.sendReply(_IIPPacketAction["default"].AttachResource, callback).addUint8Array(r.instance.template.classId.value).addUint64(r.instance.age).addUint16(link.length).addUint8Array(link).addUint8Array(_Codec["default"].composePropertyValueArray(r._serialize(), self, true)).done();else self.sendReply(_IIPPacketAction["default"].AttachResource, callback).addUint8Array(r.instance.template.classId.value).addUint64(r.instance.age).addUint16(link.length).addUint8Array(link).addUint8Array(_Codec["default"].composePropertyValueArray(r.instance.serialize(), self, true)).done(); + } else { + // reply failed + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + } + }); + } + }, { + key: "IIPRequestReattachResource", + value: function IIPRequestReattachResource(callback, resourceId, resourceAge) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (res != null) { + r.instance.on("ResourceEventOccurred", self.instance_eventOccurred, self); + r.instance.on("ResourceModified", self.instance_propertyModified, self); + r.instance.on("ResourceDestroyed", self.instance_resourceDestroyed, self); // reply ok + + self.sendReply(_IIPPacketAction["default"].ReattachResource, callback).addUint64(r.instance.age).addUint8Array(_Codec["default"].composePropertyValueArray(r.instance.serialize(), self, true)).done(); + } else { + // reply failed + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + } + }); + } + }, { + key: "IIPRequestDetachResource", + value: function IIPRequestDetachResource(callback, resourceId) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) { + r.instance.off("ResourceEventOccurred", self.instance_eventOccurred); + r.instance.off("ResourceModified", self.instance_propertyModified); + r.instance.off("ResourceDestroyed", self.instance_resourceDestroyed); // reply ok + + self.sendReply(_IIPPacketAction["default"].DetachResource, callback).done(); + } else { + // reply failed + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + } + }); + } + }, { + key: "IIPRequestCreateResource", + value: function IIPRequestCreateResource(callback, storeId, parentId, content) { + var self = this; + + _Warehouse["default"].getById(storeId).then(function (store) { + if (store == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].StoreNotFound); + return; + } + + if (!(store instanceof _IStore2["default"])) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceIsNotStore); + return; + } // check security + + + if (store.instance.applicable(self.session, ActionType.CreateResource, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].CreateDenied); + return; + } + + _Warehouse["default"].getById(parentId).then(function (parent) { + // check security + if (parent != null) if (parent.instance.applicable(self.session, ActionType.AddChild, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied); + return; + } + var offset = 0; + var className = content.getString(offset + 1, content[0]); + offset += 1 + content[0]; + var nameLength = content.getUint16(offset); + offset += 2; + var name = content.getString(offset, nameLength); + var cl = content.getUint32(offset); + offset += 4; + var type = window[className]; + + if (type == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ClassNotFound); + return; + } + + _Codec["default"].parseVarArray(content, offset, cl, self).then(function (parameters) { + offset += cl; + cl = content.getUint32(offset); + + _Codec["default"].parseStructure(content, offset, cl, self).then(function (attributes) { + offset += cl; + cl = content.length - offset; + + _Codec["default"].parseStructure(content, offset, cl, self).then(function (values) { + var resource = new (Function.prototype.bind.apply(type, values))(); + + _Warehouse["default"].put(resource, name, store, parent); + + self.sendReply(_IIPPacketAction["default"].CreateResource, callback).addUint32(resource.Instance.Id).done(); + }); + }); + }); + }); + }); + } + }, { + key: "IIPRequestDeleteResource", + value: function IIPRequestDeleteResource(callback, resourceId) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + if (r.instance.store.instance.applicable(session, ActionType.Delete, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].DeleteDenied); + return; + } + + if (_Warehouse["default"].remove(r)) self.sendReply(_IIPPacketAction["default"].DeleteResource, callback).done();else self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].DeleteFailed); + }); + } + }, { + key: "IIPRequestTemplateFromClassName", + value: function IIPRequestTemplateFromClassName(callback, className) { + var self = this; + + _Warehouse["default"].getTemplateByClassName(className).then(function (t) { + if (t != null) self.sendReply(_IIPPacketAction["default"].TemplateFromClassName, callback).addUint32(t.content.length).addUint8Array(t.content).done();else { + // reply failed + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].TemplateNotFound); + } + }); + } + }, { + key: "IIPRequestTemplateFromClassId", + value: function IIPRequestTemplateFromClassId(callback, classId) { + var self = this; + + _Warehouse["default"].getTemplateByClassId(classId).then(function (t) { + if (t != null) self.sendReply(_IIPPacketAction["default"].TemplateFromClassId, callback).addUint32(t.content.length).addUint8Array(t.content).done();else { + // reply failed + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].TemplateNotFound); + } + }); + } + }, { + key: "IIPRequestTemplateFromResourceId", + value: function IIPRequestTemplateFromResourceId(callback, resourceId) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) self.sendReply(_IIPPacketAction["default"].TemplateFromResourceId, callback).addUint32(r.instance.template.content.length).addUint8Array(r.instance.template.content).done();else { + // reply failed + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].TemplateNotFound); + } + }); + } + }, { + key: "IIPRequestInvokeFunctionArrayArguments", + value: function IIPRequestInvokeFunctionArrayArguments(callback, resourceId, index, content) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) { + _Codec["default"].parseVarArray(content, 0, content.length, self).then(function (args) { + var ft = r.instance.template.getFunctionTemplateByIndex(index); + + if (ft != null) { + if (r instanceof _DistributedResource["default"]) { + var rt = r._invokeByArrayArguments(index, args); + + if (rt != null) { + rt.then(function (res) { + self.sendReply(_IIPPacketAction["default"].InvokeFunctionArrayArguments, callback).addUint8Array(_Codec["default"].compose(res, self)).done(); + }); + } else {// function not found on a distributed object + } + } else { + var fi = r[ft.name]; + + if (r.instance.applicable(self.session, ActionType.Execute, ft) == Ruling.Denied) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].InvokeDenied); + return; + } + + if (fi instanceof Function) { + var itt = + /*#__PURE__*/ + _regenerator["default"].mark(function itt() { + return _regenerator["default"].wrap(function itt$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + case "end": + return _context.stop(); + } + } + }, itt); + }); + + args.push(self); + var rt = fi.apply(r, args); + ; // Is iterator ? + + if (rt[Symbol.iterator] instanceof Function) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = rt[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var v = _step.value; + self.sendChunk(callback, v); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator["return"] != null) { + _iterator["return"](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + self.sendReply(_IIPPacket["default"].IIPPacketAction.InvokeFunctionArrayArguments, callback).addUint8(DataType.Void).done(); + } else if (rt instanceof _AsyncReply["default"]) { + rt.then(function (res) { + self.sendReply(_IIPPacketAction["default"].InvokeFunctionArrayArguments, callback).addUint8Array(_Codec["default"].compose(res, self)).done(); + }); + } else { + self.sendReply(_IIPPacketAction["default"].InvokeFunctionArrayArguments, callback).addUint8Array(_Codec["default"].compose(rt, self)).done(); + } + } else {// ft found, fi not found, this should never happen + } + } + } else {// no function at this index + } + }); + } else {// no resource with this id + } + }); + } + }, { + key: "IIPRequestInvokeFunctionNamedArguments", + value: function IIPRequestInvokeFunctionNamedArguments(callback, resourceId, index, content) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) { + _Codec["default"].parseStructure(content, 0, content.length, self).then(function (namedArgs) { + var ft = r.instance.template.getFunctionTemplateByIndex(index); + + if (ft != null) { + if (r instanceof _DistributedResource["default"]) { + var rt = r._invokeByNamedArguments(index, namedArgs); + + if (rt != null) { + rt.then(function (res) { + self.sendReply(_IIPPacketAction["default"].InvokeFunctionNamedArguments, callback).addUint8Array(_Codec["default"].compose(res, self)).done(); + }); + } else {// function not found on a distributed object + } + } else { + var fi = r[ft.name]; + + if (r.instance.applicable(self.session, ActionType.Execute, ft) == Ruling.Denied) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].InvokeDenied); + return; + } + + if (fi instanceof Function) { + var pi = _ResourceTemplate["default"].getFunctionParameters(fi); + + var args = new Array(pi.length); + + for (var i = 0; i < pi.length; i++) { + if (namedArgs[pi[i]] !== undefined) args[i] = namedArgs[pi[i]]; + } // pass this to the last argument if it is undefined + + + if (args[args.length - 1] === undefined) args[args.length - 1] = self; + var rt = fi.apply(r, args); // Is iterator ? + + if (rt[Symbol.iterator] instanceof Function) { + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = rt[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var v = _step2.value; + self.sendChunk(callback, v); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { + _iterator2["return"](); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + self.sendReply(_IIPPacket["default"].IIPPacketAction.InvokeFunctionNamedArguments, callback).addUint8(DataType.Void).done(); + } else if (rt instanceof _AsyncReply["default"]) { + rt.then(function (res) { + self.sendReply(_IIPPacketAction["default"].InvokeFunctionNamedArguments, callback).addUint8Array(_Codec["default"].compose(res, self)).done(); + }); + } else { + self.sendReply(_IIPPacketAction["default"].InvokeFunctionNamedArguments, callback).addUint8Array(_Codec["default"].compose(rt, self)).done(); + } + } else {// ft found, fi not found, this should never happen + } + } + } else {// no function at this index + } + }); + } else {// no resource with this id + } + }); + } + }, { + key: "IIPRequestGetProperty", + value: function IIPRequestGetProperty(callback, resourceId, index) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) { + var pt = r.instance.template.getFunctionTemplateByIndex(index); + + if (pt != null) { + if (r instanceof _DistributedResource["default"]) { + self.sendReply(_IIPPacketAction["default"].GetProperty, callback).addUint8Array(_Codec["default"].compose(r._get(pt.index), self)).done(); + } else { + var pv = r[pt.name]; + self.sendReply(_IIPPacketAction["default"].GetProperty).addUint8Array(_Codec["default"].compose(pv, self)).done(); + } + } else {// pt not found + } + } else {// resource not found + } + }); + } + }, { + key: "IIPRequestGetPropertyIfModifiedSince", + value: function IIPRequestGetPropertyIfModifiedSince(callback, resourceId, index, age) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) { + var pt = r.instance.template.getFunctionTemplateByIndex(index); + + if (pt != null) { + if (r.instance.getAge(index) > age) { + var pv = r[pt.name]; + self.sendReply(_IIPPacketAction["default"].GetPropertyIfModified, callback).addUint8Array(_Codec["default"].compose(pv, self)).done(); + } else { + self.sendReply(_IIPPacketAction["default"].GetPropertyIfModified, callback).addUint8(DataType.NotModified).done(); + } + } else {// pt not found + } + } else {// resource not found + } + }); + } + }, { + key: "IIPRequestSetProperty", + value: function IIPRequestSetProperty(callback, resourceId, index, content) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) { + var pt = r.instance.template.getPropertyTemplateByIndex(index); + + if (pt != null) { + _Codec["default"].parse(content, 0, {}, this).then(function (value) { + if (r instanceof _DistributedResource["default"]) { + // propagation + r._set(index, value).then(function (x) { + self.sendReply(_IIPPacketAction["default"].SetProperty, callback).done(); + }).error(function (x) { + self.sendError(x.type, callback, x.code, x.message).done(); + }); + } else { + if (r.instance.applicable(self.session, ActionType.SetProperty, pt) == Ruling.Denied) { + self.sendError(_AsyncReply["default"].ErrorType.Exception, callback, _ExceptionCode["default"].SetPropertyDenied); + return; + } + + try { + if (r[pt.name] instanceof _DistributedPropertyContext["default"]) value = new _DistributedPropertyContext["default"](this, value); + r[pt.name] = value; + self.sendReply(_IIPPacketAction["default"].SetProperty, callback).done(); + } catch (ex) { + self.sendError(_AsyncReply["default"].ErrorType.Exception, callback, 0, ex.toString()).done(); + } + } + }); + } else { + // property not found + self.sendError(_AsyncReply["default"].ErrorType.Management, callback, _ExceptionCode["default"].PropertyNotFound).done(); + } + } else { + // resource not found + self.sendError(_AsyncReply["default"].ErrorType.Management, callback, _ExceptionCode["default"].PropertyNotFound).done(); + } + }); + } + }, { + key: "IIPRequestInquireResourceHistory", + value: function IIPRequestInquireResourceHistory(callback, resourceId, fromDate, toDate) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r != null) { + r.instance.store.getRecord(r, fromDate, toDate).then(function (results) { + var history = _Codec["default"].composeHistory(results, self, true); + + self.sendReply(_IIPPacketAction["default"].ResourceHistory, callback).addUint8Array(history).done(); + }); + } + }); + } + }, { + key: "IIPRequestQueryResources", + value: function IIPRequestQueryResources(callback, resourceLink) { + var self = this; + + _Warehouse["default"].query(resourceLink).then(function (resources) { + var list = resources.filter(function (r) { + return r.instance.applicable(self.session, ActionType.Attach, null) != Ruling.Denied; + }); + if (list.length == 0) self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound);else self.sendReply(_IIPPacketAction["default"].QueryLink, callback).addUint8Array(_Codec["default"].composeResourceArray(list, self, true)).done(); + }); + } + }, { + key: "create", + value: function create(store, parent, className, parameters, attributes, values) { + var reply = new _AsyncReply["default"](); + + var sb = _DataConverter.DC.stringToBytes(className); + + var pkt = (0, _DataConverter.BL)().addUint32(store.instance.id).addUint32(parent.instance.id).addUint32(sb.length).addUint8Array(sb).addUint8Array(_Codec["default"].composeVarArray(parameters, this, true)).addUint8Array(_Codec["default"].composeStructure(attributes, this, true, true, true)).addUint8Array(_Codec["default"].composeStructure(values, this)); + pkt.addUint32(pkt.length, 8); + this.sendRequest(_IIPPacket["default"].IIPPacketAction.CreateResource).addUint8Array(pkt.ToArray()).done().then(function (args) { + var rid = args[0]; + self.fetch(rid).then(function (r) { + reply.trigger(r); + }); + }); + return reply; + } + }, { + key: "query", + value: function query(resourceLink) { + var reply = new _AsyncReply["default"](); + var self = this; + + var sb = _DataConverter.DC.stringToBytes(resourceLink); + + this.sendRequest(_IIPPacketAction["default"].QueryLink).addUint16(sb.length).addUint8Array(sb).done().then(function (args) { + _Codec["default"].parseResourceArray(args[0], 0, args[0].length, self).then(function (resources) { + reply.trigger(resources); + }); + }).error(function (ex) { + reply.triggerError(ex); + }); + return reply; + } + }, { + key: "getTemplate", + value: function getTemplate(classId) { + if (this.templates.contains(classId)) return new _AsyncReply["default"](this.templates.item(classId));else if (this.templateRequests.contains(classId)) return this.templateRequests.item(classId); + var reply = new _AsyncReply["default"](); + this.templateRequests.add(classId.valueOf(), reply); + var self = this; + this.sendRequest(_IIPPacketAction["default"].TemplateFromClassId).addUint8Array(classId.value).done().then(function (rt) { + self.templateRequests.remove(classId); + self.templates.add(rt[0].classId.valueOf(), rt[0]); + + _Warehouse["default"].putTemplate(rt[0]); + + reply.trigger(rt[0]); + }); + return reply; + } // IStore interface + + }, { + key: "get", + value: function get(path) { + var rt = new _AsyncReply["default"](); + this.query(path).then(function (ar) { + if (ar != null && ar.length > 0) rt.trigger(ar[0]);else rt.trigger(null); + }).error(function (ex) { + rt.triggerError(ex); + }); + return rt; + /* + if (this.pathRequests[path]) + return this.pathRequests[path]; + var reply = new AsyncReply(); + this.pathRequests[path] = reply; + var bl = new BinaryList(); + bl.addString(path); + bl.addUint16(bl.length, 0); + var link = data.get + var self = this; + this.sendRequest(IIPPacketAction.ResourceIdFromResourceLink) + .addUint16(.then(function (rt) { + delete self.pathRequests[path]; + self.fetch(rt[1]).then(function (r) { + reply.trigger(r); + }); + }); + return reply; + */ + } + }, { + key: "retrieve", + value: function retrieve(iid) { + for (var r in this.resources) { + if (this.resources[r].instance.id == iid) return new _AsyncReply["default"](r); + } + + return new _AsyncReply["default"](null); + } // Get a resource from the other end + + }, { + key: "fetch", + value: function fetch(id) { + if (this.resourceRequests[id] && this.resources[id]) { + // dig for dead locks + // or not + return new _AsyncReply["default"](this.resources[id]); //return this.resourceRequests[id]; + } else if (this.resourceRequests[id]) return this.resourceRequests[id];else if (this.resources[id]) return new _AsyncReply["default"](this.resources[id]); + + var reply = new _AsyncReply["default"](); + this.resourceRequests[id] = reply; + var self = this; + this.sendRequest(_IIPPacketAction["default"].AttachResource).addUint32(id).done().then(function (rt) { + var dr = new _DistributedResource["default"](self, id, rt[1], rt[2]); //var dr = new DistributedResource(self, tmp, id, rt[1], rt[2]); + + self.getTemplate(rt[0]).then(function (tmp) { + // ClassId, ResourceAge, ResourceLink, Content + _Warehouse["default"].put(dr, id.toString(), self, null, tmp); + + _Codec["default"].parsePropertyValueArray(rt[3], 0, rt[3].length, self).then(function (ar) { + dr._attached(ar); + + delete self.resourceRequests[id]; + reply.trigger(dr); + }); + }); + }); + return reply; + } + }, { + key: "getRecord", + value: function getRecord(resource, fromDate, toDate) { + if (resource instanceof _DistributedResource["default"]) { + if (resource._p.connection != this) return new _AsyncReply["default"](null); + var reply = new _AsyncReply["default"](); + var self = this; + this.sendRequest(_IIPPacketAction["default"].ResourceHistory).addUint32(resource._p.instanceId).addDateTime(fromDate).addDateTime(toDate).done().then(function (rt) { + _Codec["default"].parseHistory(rt[0], 0, rt[0].length, resource, self).then(function (history) { + reply.trigger(history); + }); + }); + return reply; + } else return new _AsyncReply["default"](null); + } + }, { + key: "instance_resourceDestroyed", + value: function instance_resourceDestroyed(resource) { + // compose the packet + this.sendEvent(_IIPPacketEvent["default"].ResourceDestroyed).addUint32(resource.instance.id).done(); + } + }, { + key: "instance_propertyModified", + value: function instance_propertyModified(resource, name, newValue) { + var pt = resource.instance.template.getPropertyTemplateByName(name); + if (pt == null) return; + this.sendEvent(_IIPPacketEvent["default"].PropertyUpdated).addUint32(resource.instance.id).addUint8(pt.index).addUint8Array(_Codec["default"].compose(newValue, this)).done(); + } + }, { + key: "instance_eventOccurred", + value: function instance_eventOccurred(resource, issuer, receivers, name, args) { + var et = resource.instance.template.getEventTemplateByName(name); + if (et == null) return; + if (receivers != null) if (receivers.indexOf(this.session) < 0) return; + if (resource.instance.applicable(this.session, ActionType.ReceiveEvent, et, issuer) == Ruling.Denied) return; // compose the packet + + this.sendEvent(_IIPPacketEvent["default"].EventOccurred).addUint32(resource.instance.id).addUint8(et.index).addUint8Array(_Codec["default"].composeVarArray(args, this, true)).done(); + } + }, { + key: "IIPRequestAddChild", + value: function IIPRequestAddChild(callback, parentId, childId) { + var self = this; + + _Warehouse["default"].getById(parentId).then(function (parent) { + if (parent == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + _Warehouse["default"].getById(childId).then(function (child) { + if (child == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + if (parent.instance.applicable(self.session, ActionType.AddChild, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied); + return; + } + + if (child.instance.applicable(self.session, ActionType.AddParent, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddParentDenied); + return; + } + + parent.instance.children.add(child); + self.sendReply(_IIPPacketAction["default"].AddChild, callback).done(); //child.Instance.Parents + }); + }); + } + }, { + key: "IIPRequestRemoveChild", + value: function IIPRequestRemoveChild(callback, parentId, childId) { + var self = this; + + _Warehouse["default"].getById(parentId).then(function (parent) { + if (parent == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + _Warehouse["default"].getById(childId).then(function (child) { + if (child == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + if (parent.instance.applicable(self.session, ActionType.RemoveChild, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied); + return; + } + + if (child.instance.applicable(self.session, ActionType.RemoveParent, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddParentDenied); + return; + } + + parent.instance.children.remove(child); + self.sendReply(_IIPPacketAction["default"].RemoveChild, callback).done(); //child.Instance.Parents + }); + }); + } + }, { + key: "IIPRequestRenameResource", + value: function IIPRequestRenameResource(callback, resourceId, name) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (resource) { + if (resource == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + if (resource.instance.applicable(self.session, ActionType.Rename, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].RenameDenied); + return; + } + + resource.instance.name = name.getString(0, name.length); + self.sendReply(_IIPPacketAction["default"].RenameResource, callback).done(); + }); + } + }, { + key: "IIPRequestResourceChildren", + value: function IIPRequestResourceChildren(callback, resourceId) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (resource) { + if (resource == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + self.sendReply(_IIPPacketAction["default"].ResourceChildren, callback).addUint8Array(_Codec["default"].composeResourceArray(resource.instance.children.toArray(), this, true)).done(); + }); + } + }, { + key: "IIPRequestResourceParents", + value: function IIPRequestResourceParents(callback, resourceId) { + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (resource) { + if (resource == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + self.sendReply(_IIPPacketAction["default"].ResourceParents, callback).addUint8Array(_Codec["default"].composeResourceArray(resource.instance.parents.toArray(), this, true)).done(); + }); + } + }, { + key: "IIPRequestClearAttributes", + value: function IIPRequestClearAttributes(callback, resourceId, attributes) { + var all = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + if (r.instance.store.instance.applicable(self.session, ActionType.UpdateAttributes, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].UpdateAttributeDenied); + return; + } + + var attrs = []; + if (!all) attrs = attributes.getStringArray(0, attributes.length); + if (r.instance.removeAttributes(attrs)) self.sendReply(all ? _IIPPacketAction["default"].ClearAllAttributes : _IIPPacketAction["default"].ClearAttributes, callback).done();else self.sendError(_AsyncReply["default"].ErrorType.Management, callback, _ExceptionCode["default"].UpdateAttributeFailed); + }); + } + }, { + key: "IIPRequestUpdateAttributes", + value: function IIPRequestUpdateAttributes(callback, resourceId, attributes) { + var clearAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var self = this; + + _Warehouse["default"].getById(resourceId).then(function (r) { + if (r == null) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound); + return; + } + + if (r.instance.store.instance.applicable(self.session, ActionType.UpdateAttributes, null) != Ruling.Allowed) { + self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].UpdateAttributeDenied); + return; + } + + _Codec["default"].parseStructure(attributes, 0, attributes.length, this).then(function (attrs) { + if (r.instance.setAttributes(attrs, clearAttributes)) self.sendReply(clearAttributes ? _IIPPacketAction["default"].ClearAllAttributes : _IIPPacketAction["default"].ClearAttributes, callback).done();else self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].UpdateAttributeFailed); + }); + }); + } + }, { + key: "getChildren", + value: function getChildren(resource) { + if (resource._p.connection != this) return new _AsyncReply["default"](null); + var rt = new _AsyncReply["default"](); + var self = this; + this.sendRequest(_IIPPacketAction["default"].ResourceChildren).addUint32(resource._p.instanceId).done().then(function (d) { + _Codec["default"].parseResourceArray(d, 0, d.length, self).then(function (resources) { + rt.trigger(resources); + }).error(function (ex) { + rt.triggerError(ex); + }); + }); + return rt; + } + }, { + key: "getParents", + value: function getParents(resource) { + if (resource._p.connection != this) return new _AsyncReply["default"](null); + var rt = new _AsyncReply["default"](); + var self = this; + this.sendRequest(_IIPPacketAction["default"].ResourceParents).addUint32(resource._p.instanceId).done().then(function (d) { + _Codec["default"].parseResourceArray(d, 0, d.length, this).then(function (resources) { + rt.trigger(resources); + }).error(function (ex) { + rt.triggerError(ex); + }); + }); + return rt; + } + }, { + key: "removeAttributes", + value: function removeAttributes(resource) { + var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (resource._p.connection != this) return new _AsyncReply["default"](null); + var rt = new _AsyncReply["default"](); + if (attributes == null) this.sendRequest(_IIPPacketAction["default"].ClearAllAttributes).addUint32(resource._p.instanceId).done().then(function (ar) { + rt.trigger(true); + }).error(function (ex) { + rt.triggerError(ex); + });else { + var attrs = _DataConverter.DC.stringArrayToBytes(attributes); + + this.sendRequest(_IIPPacketAction["default"].ClearAttributes).addUint32(resource.instance.id).addUint32(attrs.length).addUint8Array(attrs).done().then(function (ar) { + rt.trigger(true); + }).error(function (ex) { + rt.triggerError(ex); + }); + } + return rt; + } + }, { + key: "setAttributes", + value: function setAttributes(resource, attributes) { + var clearAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (resource._p.connection != this) return new _AsyncReply["default"](null); + var rt = new _AsyncReply["default"](); + this.sendRequest(clearAttributes ? _IIPPacketAction["default"].UpdateAllAttributes : _IIPPacketAction["default"].UpdateAttributes).addUint32(resource._p.instanceId).addUint8Array(_Codec["default"].composeStructure(attributes, this, true, true, true)).done().then(function (ar) { + rt.trigger(true); + }).error(function (ex) { + rt.triggerError(ex); + }); + return rt; + } + }, { + key: "getAttributes", + value: function getAttributes(resource) { + var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (resource._p.connection != this) return new _AsyncReply["default"](null); + var rt = new _AsyncReply["default"](); + var self = this; + + if (attributes == null) { + this.sendRequest(_IIPPacketAction["default"].GetAllAttributes).addUint32(resource._p.instanceId).done().then(function (ar) { + _Codec["default"].parseStructure(ar[0], 0, ar[0].length, this).then(function (st) { + for (var a in st) { + resource.instance.attributes.set(a, st[a]); + } + + rt.trigger(st); + }).error(function (ex) { + rt.triggerError(ex); + }); + }); + } else { + var attrs = _DataConverter.DC.stringArrayToBytes(attributes); + + this.sendRequest(_IIPPacketAction["default"].GetAttributes).addUint32(resource._p.instanceId).addUint32(attrs.length).addUint8Array(attrs).done().then(function (ar) { + _Codec["default"].parseStructure(ar[0], 0, ar[0].length, self).then(function (st) { + for (var a in st) { + resource.instance.attributes.set(a, st[a]); + } + + rt.trigger(st); + }).error(function (ex) { + rt.triggerError(ex); + }); + }); + } + + return rt; + } + }]); + return DistributedConnection; +}(_IStore2["default"]); + +exports["default"] = DistributedConnection; + +},{"../../Core/AsyncQueue.js":20,"../../Core/AsyncReply.js":21,"../../Core/ErrorType.js":22,"../../Core/ExceptionCode.js":23,"../../Core/ProgressType.js":26,"../../Data/Codec.js":29,"../../Data/DataConverter.js":30,"../../Data/KeyList.js":33,"../../Resource/IResource.js":56,"../../Resource/IStore.js":57,"../../Resource/Template/ResourceTemplate.js":64,"../../Resource/Warehouse.js":65,"../../Security/Authority/Authentication.js":66,"../../Security/Authority/AuthenticationType.js":67,"../../Security/Authority/Session.js":68,"../../Security/Integrity/SHA256.js":69,"../Packets//IIPPacketReport.js":52,"../Packets/IIPAuthPacket.js":44,"../Packets/IIPAuthPacketAction.js":45,"../Packets/IIPAuthPacketCommand.js":46,"../Packets/IIPAuthPacketMethod.js":47,"../Packets/IIPPacket.js":48,"../Packets/IIPPacketAction.js":49,"../Packets/IIPPacketCommand.js":50,"../Packets/IIPPacketEvent.js":51,"../SendList.js":53,"../Sockets/NetworkBuffer.js":54,"./DistributedPropertyContext.js":40,"./DistributedResource.js":41,"./DistributedResourceQueueItem.js":42,"./DistributedResourceQueueItemType.js":43,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/regenerator":17}],40:[function(require,module,exports){ +/* +* Copyright (c) 2017-2018 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 27/10/2018. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var DistributedPropertyContext = function DistributedPropertyContext(p1, p2) { + (0, _classCallCheck2["default"])(this, DistributedPropertyContext); + + if (arguments.length == 1) { + this.method = p1; + } else if (arguments.length == 2) { + this.connection = p1; + this.value = p2; + } +}; + +exports["default"] = DistributedPropertyContext; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/interopRequireDefault":9}],41:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _IResource2 = _interopRequireDefault(require("../../Resource/IResource.js")); + +var _AsyncReply = _interopRequireDefault(require("../../Core/AsyncReply.js")); + +var _Codec = _interopRequireDefault(require("../../Data/Codec.js")); + +var _Structure = _interopRequireDefault(require("../../Data/Structure.js")); + +var _IIPPacketAction = _interopRequireDefault(require("../Packets//IIPPacketAction.js")); + +var DistributedResource = +/*#__PURE__*/ +function (_IResource) { + (0, _inherits2["default"])(DistributedResource, _IResource); + (0, _createClass2["default"])(DistributedResource, [{ + key: "destroy", + value: function destroy() { + this.destroyed = true; + + this._emit("destroy", this); + } + }]); + + function DistributedResource(connection, instanceId, age, link) { + var _this; + + (0, _classCallCheck2["default"])(this, DistributedResource); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DistributedResource).call(this)); + _this._p = { + isAttached: false, + connection: connection, + instanceId: instanceId, + age: age, + link: link, + properties: [] + }; + return _this; + } + + (0, _createClass2["default"])(DistributedResource, [{ + key: "_serialize", + value: function _serialize() { + var props = []; + + for (var i = 0; i < this._p.properties.length; i++) { + props.push(new PropertyValue(this._p.properties[i], this.instance.getAge(i), this.instance.getModificationDate(i))); + } + + return props; + } + }, { + key: "_attached", + value: function _attached(properties) { + if (this._isAttached) return false;else { + for (var i = 0; i < properties.length; i++) { + this.instance.setAge(i, properties[i].age); + this.instance.setModificationDate(i, properties[i].date); + + this._p.properties.push(properties[i].value); + } + + this._p.isAttached = true; + var self = this; + + var makeFunc = function makeFunc(index) { + var func = function func() { + if (arguments.length == 1 && arguments[0] instanceof Object && arguments[0].constructor.name == "Object") { + var namedArgs = new _Structure["default"](arguments[0]); + return self._invokeByNamedArguments(index, namedArgs); + } else { + return self._invokeByArrayArguments(index, arguments); + } + }; // get expansion + + + func.help = self.instance.template.functions[index].expansion; + return func; + }; + + var makeGetter = function makeGetter(index) { + return function () { + return self._get(index); + }; + }; + + var makeSetter = function makeSetter(index) { + return function (value) { + self._set(index, value); + }; + }; + + for (var i = 0; i < this.instance.template.functions.length; i++) { + var ft = this.instance.template.functions[i]; + this[ft.name] = makeFunc(ft.index); + } + + for (var i = 0; i < this.instance.template.properties.length; i++) { + var pt = this.instance.template.properties[i]; + Object.defineProperty(this, pt.name, { + get: makeGetter(pt.index), + set: makeSetter(pt.index), + enumerable: true, + configurable: true + }); + } + } + return true; + } + }, { + key: "_emitEventByIndex", + value: function _emitEventByIndex(index, args) { + var et = this.instance.template.getEventTemplateByIndex(index); + + this._emitArgs(et.name, args); + + this.instance._emitResourceEvent(null, null, et.name, args); + } + }, { + key: "_invokeByArrayArguments", + value: function _invokeByArrayArguments(index, args) { + if (this.destroyed) throw new Exception("Trying to access destroyed object"); + if (index >= this.instance.template.functions.length) throw new Exception("Function index is incorrect"); + return this._p.connection.sendInvokeByArrayArguments(this._p.instanceId, index, args); + } + }, { + key: "_invokeByNamedArguments", + value: function _invokeByNamedArguments(index, namedArgs) { + if (this.destroyed) throw new Exception("Trying to access destroyed object"); + if (index >= this.instance.template.functions.length) throw new Exception("Function index is incorrect"); + return this._p.connection.sendInvokeByNamedArguments(this._p.instanceId, index, namedArgs); + } + }, { + key: "_get", + value: function _get(index) { + if (index >= this._p.properties.length) return null; + return this._p.properties[index]; + } + }, { + key: "_updatePropertyByIndex", + value: function _updatePropertyByIndex(index, value) { + var pt = this.instance.template.getPropertyTemplateByIndex(index); + this._p.properties[index] = value; + this.instance.emitModification(pt, value); // this to invoke other property setters + + this._p.neglect = true; + this[pt.name] = null; + this._p.neglect = false; + } + }, { + key: "_set", + value: function _set(index, value) { + if (this._p.neglect) return; + if (index >= this._p.properties.length) return null; + var reply = new _AsyncReply["default"](); + + var parameters = _Codec["default"].compose(value, this._p.connection); + + var self = this; + + this._p.connection.sendRequest(_IIPPacketAction["default"].SetProperty).addUint32(self._p.instanceId).addUint8(index).addUint8Array(parameters).done().then(function (res) { + // not really needed, server will always send property modified, this only happens if the programmer forgot to emit in property setter + self._p.properties[index] = value; + reply.trigger(null); + }); + + return reply; + } + }]); + return DistributedResource; +}(_IResource2["default"]); + +exports["default"] = DistributedResource; + +},{"../../Core/AsyncReply.js":21,"../../Data/Codec.js":29,"../../Data/Structure.js":36,"../../Resource/IResource.js":56,"../Packets//IIPPacketAction.js":49,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],42:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var DistributedResourceQueueItem = function DistributedResourceQueueItem(resource, type, value, index) { + (0, _classCallCheck2["default"])(this, DistributedResourceQueueItem); + this.resource = resource; + this.index = index; + this.type = type; + this.value = value; +}; + +exports["default"] = DistributedResourceQueueItem; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/interopRequireDefault":9}],43:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = { + Propery: 0, + Event: 1 +}; +exports["default"] = _default; + +},{}],44:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _IIPAuthPacketCommand = _interopRequireDefault(require("./IIPAuthPacketCommand.js")); + +var _IIPAuthPacketAction = _interopRequireDefault(require("./IIPAuthPacketAction.js")); + +var _IIPAuthPacketMethod = _interopRequireDefault(require("./IIPAuthPacketMethod.js")); + +var IIPAuthPacket = +/*#__PURE__*/ +function () { + function IIPAuthPacket() { + (0, _classCallCheck2["default"])(this, IIPAuthPacket); + this.command = 0; + this.action = 0; + this.errorCode = 0; + this.errorMessage = ""; + this.localMethod = 0; + this.sourceInfo = ""; + this.hash = ""; + this.sessionId = ""; + this.remoteMethod = 0; + this.domain = ""; + this.CertificateId = 0; + this.localUsername = ""; + this.remoteUsername = ""; + this.localPassword = ""; + this.remotePassword = ""; + this.localToken = []; + this.reemoteToken = []; + this.asymetricEncryptionKey = []; + this.localNonce = []; + this.remoteNonce = []; + this.dataLengthNeeded = 0; + } + + (0, _createClass2["default"])(IIPAuthPacket, [{ + key: "notEnough", + value: function notEnough(offset, ends, needed) { + if (offset + needed > ends) { + this.dataLengthNeeded = needed - (ends - offset); + return true; + } else return false; + } + }, { + key: "parse", + value: function parse(data, offset, ends) { + var oOffset = offset; + if (this.notEnough(offset, ends, 1)) return -this.dataLengthNeeded; + this.command = data.getUint8(offset) >> 6; + + if (this.command == _IIPAuthPacketCommand["default"].Action) { + this.action = data[offset++] & 0x3f; + + if (this.action == _IIPAuthPacketAction["default"].AuthenticateHash) { + if (this.notEnough(offset, ends, 32)) return -this.dataLengthNeeded; + this.hash = data.getUint8Array(offset, 32); + offset += 32; + } else if (this.action == _IIPAuthPacketAction["default"].NewConnection) { + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + var length = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, length)) return -this.dataLengthNeeded; + this.sourceInfo = data.clip(offset, length); + offset += 32; + } else if (this.action == _IIPAuthPacketAction["default"].ResumeConnection || this.action == _IIPAuthPacketAction["default"].ConnectionEstablished) { + if (this.notEnough(offset, ends, 32)) return -this.dataLengthNeeded; + this.sessionId = data.clip(offset, 32); + offset += 32; + } + } else if (this.command == _IIPAuthPacketCommand["default"].Declare) { + this.remoteMethod = data.getUint8(offset) >> 4 & 0x3; + this.localMethod = data.getUint8(offset) >> 2 & 0x3; + var encrypt = (data.getUint8(offset++) & 0x2) == 0x2; + if (this.notEnough(offset, ends, 1)) return -this.dataLengthNeeded; + var domainLength = data.getUint8(offset++); + if (this.notEnough(offset, ends, domainLength)) return -this.dataLengthNeeded; + this.domain = data.getString(offset, domainLength); + offset += domainLength; + + if (this.remoteMethod == _IIPAuthPacketMethod["default"].Credentials) { + if (this.localMethod == _IIPAuthPacketMethod["default"].None) { + if (this.notEnough(offset, ends, 33)) return -this.dataLengthNeeded; + this.remoteNonce = data.clip(offset, 32); + offset += 32; + var length = data.getUint8(offset++); + if (this.notEnough(offset, ends, length)) return -this.dataLengthNeeded; + this.remoteUsername = data.getString(offset, length); + offset += length; + } + } + + if (encrypt) { + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + var keyLength = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, keyLength)) return -this.dataLengthNeeded; + this.asymetricEncryptionKey = data.clip(offset, keyLength); + offset += keyLength; + } + } else if (this.command == _IIPAuthPacketCommand["default"].Acknowledge) { + this.remoteMethod = data.getUint8(offset) >> 4 & 0x3; + this.localMethod = data.getUint8(offset) >> 2 & 0x3; + var encrypt = (data.getUint8(offset++) & 0x2) == 0x2; + if (this.notEnough(offset, ends, 1)) return -this.dataLengthNeeded; + + if (this.remoteMethod == _IIPAuthPacketMethod["default"].Credentials) { + if (this.localMethod == _IIPAuthPacketMethod["default"].None) { + if (this.notEnough(offset, ends, 32)) return -this.dataLengthNeeded; + this.remoteNonce = data.clip(offset, 32); + offset += 32; + } + } + + if (encrypt) { + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + var keyLength = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, keyLength)) return -this.dataLengthNeeded; + this.asymetricEncryptionKey = data.clip(offset, keyLength); + offset += keyLength; + } + } else if (this.command == _IIPAuthPacketCommand["default"].Error) { + if (this.notEnough(offset, ends, 5)) return -this.dataLengthNeeded; + offset++; + this.errorCode = data.getUint8(offset++); + var cl = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.errorMessage = data.getString(offset, cl); + offset += cl; + } + + return offset - oOffset; + } + }]); + return IIPAuthPacket; +}(); + +exports["default"] = IIPAuthPacket; + +},{"./IIPAuthPacketAction.js":45,"./IIPAuthPacketCommand.js":46,"./IIPAuthPacketMethod.js":47,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],45:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = // const IIPAuthPacketAction = +{ + // Authenticate + AuthenticateHash: 0, + NewConnection: 0x20, + ResumeConnection: 0x21, + ConnectionEstablished: 0x28 +}; +exports["default"] = _default; + +},{}],46:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = //const IIPAuthPacketCommand = +{ + Action: 0, + Declare: 1, + Acknowledge: 2, + Error: 3 +}; +exports["default"] = _default; + +},{}],47:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = //const IIPAuthPacketMethod = +{ + None: 0, + Certificate: 1, + Credentials: 2, + Token: 3 +}; +exports["default"] = _default; + +},{}],48:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _IIPPacketAction = _interopRequireDefault(require("./IIPPacketAction.js")); + +var _IIPPacketCommand = _interopRequireDefault(require("./IIPPacketCommand.js")); + +var _IIPPacketEvent = _interopRequireDefault(require("./IIPPacketEvent.js")); + +var _IIPPacketReport = _interopRequireDefault(require("./IIPPacketReport.js")); + +var _DataType = _interopRequireDefault(require("../../Data/DataType.js")); + +var IIPPacket = +/*#__PURE__*/ +function () { + function IIPPacket() { + (0, _classCallCheck2["default"])(this, IIPPacket); + this.command = 0; + this.action = 0; + this.event = 0; + this.resourceId = 0; + this.newResourceId = 0; + this.resourceAge = 0; + this.content = []; + this.errorCode = 0; + this.errorMessage = ""; + this.className = ""; + this.resourceLink = ""; + this.classId = ""; + this.methodIndex = ""; + this.methodName = ""; + this.callbackId = 0; + this.dataLengthNeeded = 0; + this.originalOffset = 0; + } + + (0, _createClass2["default"])(IIPPacket, [{ + key: "notEnough", + value: function notEnough(offset, ends, needed) { + if (offset + needed > ends) { + this.dataLengthNeeded = needed - (ends - offset); // this.dataLengthNeeded = needed - (ends - this.originalOffset); + + return true; + } else return false; + } + }, { + key: "parse", + value: function parse(data, offset, ends) { + this.originalOffset = offset; + if (this.notEnough(offset, ends, 1)) return -this.dataLengthNeeded; + this.command = data.getUint8(offset) >> 6; + + if (this.command == _IIPPacketCommand["default"].Event) { + this.event = data.getUint8(offset++) & 0x3f; + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + } else if (this.command == _IIPPacketCommand["default"].Report) { + this.report = data.getUint8(offset++) & 0x3f; + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.callbackId = data.getUint32(offset); + offset += 4; + } else { + this.action = data.getUint8(offset++) & 0x3f; + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.callbackId = data.getUint32(offset); + offset += 4; + } + + if (this.command == _IIPPacketCommand["default"].Event) { + if (this.event == _IIPPacketEvent["default"].ResourceReassigned) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.newResourceId = data.getUint32(offset); + offset += 4; + } else if (this.event == _IIPPacketEvent["default"].ResourceDestroyed) {// nothing to parse + } else if (this.event == _IIPPacketEvent["default"].ChildAdded || this.event == _IIPPacketEvent["default"].ChildRemoved) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.childId = data.getUint32(offset); + offset += 4; + } else if (this.event == _IIPPacketEvent["default"].Renamed) { + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + var cl = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset, cl); + offset += cl; + } else if (this.event == _IIPPacketEvent["default"].PropertyUpdated) { + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + this.methodIndex = data[offset++]; + var dt = data.getUint8(offset++); + + var size = _DataType["default"].sizeOf(dt); + + if (size < 0) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset - 5, cl + 5); + offset += cl; + } else { + if (this.notEnough(offset, ends, size)) return -this.dataLengthNeeded; + this.content = data.clip(offset - 1, size + 1); + offset += size; + } + } else if (this.event == _IIPPacketEvent["default"].EventOccurred) { + if (this.notEnough(offset, ends, 5)) return -this.dataLengthNeeded; + this.methodIndex = data.getUint8(offset++); + var cl = data.getUint32(offset); + offset += 4; + this.content = data.clip(offset, cl); + offset += cl; + } // Attribute + else if (this.event == _IIPPacketEvent["default"].AttributesUpdated) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset, cl); + offset += cl; + } + } else if (this.command == _IIPPacketCommand["default"].Request) { + if (this.action == _IIPPacketAction["default"].AttachResource) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + } else if (this.action == _IIPPacketAction["default"].ReattachResource) { + if (this.notEnough(offset, ends, 12)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + this.resourceAge = data.getUint64(offset); + offset += 8; + } else if (this.action == _IIPPacketAction["default"].DetachResource) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + } else if (this.action == _IIPPacketAction["default"].CreateResource) { + if (this.notEnough(offset, ends, 12)) return -dataLengthNeeded; + this.storeId = data.getUint32(offset); + offset += 4; + this.resourceId = data.getUint32(offset); + offset += 4; + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -dataLengthNeeded; + this.content = data.clip(offset, cl); + } else if (this.action == _IIPPacketAction["default"].DeleteResource) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + } else if (this.action == _IIPPacketAction["default"].AddChild || this.action == _IIPPacketAction["default"].RemoveChild) { + if (this.notEnough(offset, ends, 8)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + this.childId = data.getUint32(offset); + offset += 4; + } else if (this.action == _IIPPacketAction["default"].RenameResource) { + if (this.notEnough(offset, ends, 6)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + var cl = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset, cl); + offset += cl; + } else if (this.action == _IIPPacketAction["default"].TemplateFromClassName) { + if (this.notEnough(offset, ends, 1)) return -this.dataLengthNeeded; + var cl = data.getUint8(offset++); + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.className = data.getString(offset, cl); + offset += cl; + } else if (this.action == _IIPPacketAction["default"].TemplateFromClassId) { + if (this.notEnough(offset, ends, 16)) return -this.dataLengthNeeded; + this.classId = data.getGuid(offset); + offset += 16; + } else if (this.action == _IIPPacketAction["default"].TemplateFromResourceId) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + } else if (this.action == _IIPPacketAction["default"].QueryLink) { + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + var cl = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.resourceLink = data.getString(offset, cl); + offset += cl; + } else if (this.action == _IIPPacketAction["default"].ResourceChildren || this.action == _IIPPacketAction["default"].ResourceParents) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + } else if (this.action == _IIPPacketAction["default"].ResourceHistory) { + if (this.notEnough(offset, ends, 20)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + this.fromDate = data.getDateTime(offset); + offset += 8; + this.toDate = data.getDateTime(offset); + offset += 8; + } else if (this.action == IIPPacket.InvokeFunctionArrayArguments || this.action == _IIPPacketAction["default"].InvokeFunctionNamedArguments) { + if (this.notEnough(offset, ends, 9)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + this.methodIndex = data.getUint8(offset++); + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset, cl); + offset += cl; + } else if (this.action == _IIPPacketAction["default"].GetProperty) { + if (this.notEnough(offset, ends, 5)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + this.methodIndex = data.getUint8(offset++); + } else if (this.action == _IIPPacketAction["default"].GetPropertyIfModified) { + if (this.notEnough(offset, ends, 9)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + this.methodIndex = data[offset++]; + this.resourceAge = data.getUint64(offset); + offset += 8; + } else if (this.action == _IIPPacketAction["default"].SetProperty) { + if (this.notEnough(offset, ends, 6)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + this.methodIndex = data[offset++]; + var dt = data.getUint8(offset++); + + var size = _DataType["default"].sizeOf(dt); + + if (size < 0) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset - 5, cl + 5); + offset += cl; + } else { + if (this.notEnough(offset, ends, size)) return -this.dataLengthNeeded; + this.content = data.clip(offset - 1, size + 1); + offset += size; + } + } // Attribute + else if (this.action == _IIPPacketAction["default"].UpdateAllAttributes || this.action == _IIPPacketAction["default"].GetAttributes || this.action == _IIPPacketAction["default"].UpdateAttributes || this.action == _IIPPacketAction["default"].ClearAttributes) { + if (this.notEnough(offset, ends, 8)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset, cl); + offset += cl; + } + } else if (this.command == _IIPPacketCommand["default"].Reply) { + if (this.action == _IIPPacketAction["default"].AttachResource || this.action == _IIPPacketAction["default"].ReattachResource) { + if (this.notEnough(offset, ends, 26)) return -this.dataLengthNeeded; + this.classId = data.getGuid(offset); + offset += 16; + this.resourceAge = data.getUint64(offset); + offset += 8; + var cl = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.resourceLink = data.getString(offset, cl); + offset += cl; + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset, cl); + offset += cl; + } else if (this.action == _IIPPacketAction["default"].DetachResource) {// nothing to do + } else if (this.action == _IIPPacketAction["default"].CreateResource) { + if (this.notEnough(offset, ends, 20)) return -this.dataLengthNeeded; + this.resourceId = data.getUint32(offset); + offset += 4; + } else if (this.action == _IIPPacketAction["default"].DetachResource) {// nothing to do + } else if (this.action == _IIPPacketAction["default"].TemplateFromClassName || this.action == _IIPPacketAction["default"].TemplateFromClassId || this.action == _IIPPacketAction["default"].TemplateFromResourceId || this.action == _IIPPacketAction["default"].QueryLink || this.action == _IIPPacketAction["default"].ResourceChildren || this.action == _IIPPacketAction["default"].ResourceParents || this.action == _IIPPacketAction["default"].ResourceHistory // Attribute + || this.action == _IIPPacketAction["default"].GetAllAttributes || this.action == _IIPPacketAction["default"].GetAttributes) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset, cl); + offset += cl; + } else if (this.action == _IIPPacketAction["default"].InvokeFunctionArrayArguments || this.action == _IIPPacketAction["default"].InvokeFunctionNamedArguments || this.action == _IIPPacketAction["default"].GetProperty || this.action == _IIPPacketAction["default"].GetPropertyIfModified) { + if (this.notEnough(offset, ends, 1)) return -this.dataLengthNeeded; + var dt = data.getUint8(offset++); + + var size = _DataType["default"].sizeOf(dt); + + if (size < 0) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset - 5, cl + 5); + offset += cl; + } else { + if (this.notEnough(offset, ends, size)) return -this.dataLengthNeeded; + this.content = data.clip(offset - 1, size + 1); + offset += size; + } + } else if (this.action == _IIPPacketAction["default"].SetProperty) {// nothing to do + } + } else if (this.command == _IIPPacketCommand["default"].Report) { + if (this.report == _IIPPacketReport["default"].ManagementError) { + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + this.errorCode = data.getUint16(offset); + offset += 2; + } else if (this.report == _IIPPacketReport["default"].ExecutionError) { + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + this.errorCode = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, 2)) return -this.dataLengthNeeded; + var cl = data.getUint16(offset); + offset += 2; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.errorMessage = data.getString(offset, cl); + offset += cl; + } else if (this.report == _IIPPacketReport["default"].ProgressReport) { + if (this.notEnough(offset, ends, 8)) return -this.dataLengthNeeded; + this.progressValue = data.getInt32(offset); + offset += 4; + this.progressMax = data.getInt32(offset); + offset += 4; + } else if (this.report == _IIPPacketReport["default"].ChunkStream) { + var dt = data.getUint8(offset++); + + var size = _DataType["default"].sizeOf(dt); + + if (size < 0) { + if (this.notEnough(offset, ends, 4)) return -this.dataLengthNeeded; + var cl = data.getUint32(offset); + offset += 4; + if (this.notEnough(offset, ends, cl)) return -this.dataLengthNeeded; + this.content = data.clip(offset - 5, cl + 5); + offset += cl; + } else { + if (this.notEnough(offset, ends, size)) return -this.dataLengthNeeded; + this.content = data.clip(offset - 1, size + 1); + offset += size; + } + } + } + + return offset - this.originalOffset; + } + }]); + return IIPPacket; +}(); + +exports["default"] = IIPPacket; + +},{"../../Data/DataType.js":31,"./IIPPacketAction.js":49,"./IIPPacketCommand.js":50,"./IIPPacketEvent.js":51,"./IIPPacketReport.js":52,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],49:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = // const IIPPacketAction = +{ + // Request Manage + AttachResource: 0, + ReattachResource: 1, + DetachResource: 2, + CreateResource: 3, + DeleteResource: 4, + AddChild: 5, + RemoveChild: 6, + RenameResource: 7, + // Request Inquire + TemplateFromClassName: 8, + TemplateFromClassId: 9, + TemplateFromResourceId: 10, + QueryLink: 11, + ResourceHistory: 12, + ResourceChildren: 13, + ResourceParents: 14, + // Request Invoke + InvokeFunctionArrayArguments: 16, + GetProperty: 17, + GetPropertyIfModified: 18, + SetProperty: 19, + InvokeFunctionNamedArguments: 20, + // Request Attribute + GetAllAttributes: 24, + UpdateAllAttributes: 25, + ClearAllAttributes: 26, + GetAttributes: 27, + UpdateAttributes: 28, + ClearAttributes: 29 +}; +exports["default"] = _default; + +},{}],50:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = // IIPPacketCommand = +{ + Event: 0, + Request: 1, + Reply: 2, + Report: 3 +}; +exports["default"] = _default; + +},{}],51:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var IIPPacketEvent = { + // Event Manage + ResourceReassigned: 0, + ResourceDestroyed: 1, + ChildAdded: 2, + ChildRemoved: 3, + Renamed: 4, + // Event Invoke + PropertyUpdated: 0x10, + EventOccurred: 0x11, + // Attribute + AttributesUpdated: 0x18 +}; +var _default = IIPPacketEvent; +exports["default"] = _default; + +},{}],52:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var IIPPacketReport = { + ManagementError: 0, + ExecutionError: 1, + ProgressReport: 0x8, + ChunkStream: 0x9 +}; +var _default = IIPPacketReport; +exports["default"] = _default; + +},{}],53:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 02/09/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _BinaryList2 = _interopRequireDefault(require("../Data/BinaryList.js")); + +var SendList = +/*#__PURE__*/ +function (_BinaryList) { + (0, _inherits2["default"])(SendList, _BinaryList); + + function SendList(connection, doneReply) { + var _this; + + (0, _classCallCheck2["default"])(this, SendList); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SendList).call(this)); + _this.connection = connection; + _this.reply = doneReply; + return _this; + } + + (0, _createClass2["default"])(SendList, [{ + key: "done", + value: function done() { + this.connection.send(this.toArray()); + return this.reply; + } + }]); + return SendList; +}(_BinaryList2["default"]); + +exports["default"] = SendList; + +},{"../Data/BinaryList.js":28,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],54:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 01/09/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _DataConverter = _interopRequireDefault(require("../../Data/DataConverter.js")); + +var NetworkBuffer = +/*#__PURE__*/ +function () { + function NetworkBuffer() { + (0, _classCallCheck2["default"])(this, NetworkBuffer); + this.neededDataLength = 0; + this.data = new _DataConverter["default"](0); + } + + (0, _createClass2["default"])(NetworkBuffer, [{ + key: "holdAllForNextWrite", + value: function holdAllForNextWrite(src) { + this.holdFor(src, src.length + 1); + } + }, { + key: "holdForNextWrite", + value: function holdForNextWrite(src, offset, size) { + this.holdFor(src, offset, size, size + 1); + } + }, { + key: "holdFor", + value: function holdFor(src, offset, size, needed) { + if (size >= needed) throw new Exception("Size >= Needed !"); + this.data = _DataConverter["default"].combine(src, offset, size, this.data, 0, this.data.length); + this.neededDataLength = needed; + } + }, { + key: "holdAllFor", + value: function holdAllFor(src, needed) { + this.holdFor(src, 0, src.length, needed); + } + }, { + key: "protect", + value: function protect(data, offset, needed) { + var dataLength = data.length - offset; // protection + + if (dataLength < needed) { + this.holdFor(data, offset, dataLength, needed); + return true; + } else return false; + } + }, { + key: "writeAll", + value: function writeAll(src) { + this.write(src, 0, src.length ? src.length : src.byteLength); + } + }, { + key: "write", + value: function write(src, offset, length) { + this.data = this.data.append(src, offset, length); + } + }, { + key: "read", + value: function read() { + if (this.data.length == 0) return null; + var rt = null; + + if (this.neededDataLength == 0) { + rt = this.data; + this.data = new _DataConverter["default"](0); + } else { + if (this.data.length >= this.neededDataLength) { + rt = this.data; + this.data = new _DataConverter["default"](0); + this.neededDataLength = 0; + return rt; + } else { + return null; + } + } + + return rt; + } + }, { + key: "protected", + get: function get() { + return this.neededDataLength > this.data.length; + } + }, { + key: "available", + get: function get() { + return this.data.length; + } + }, { + key: "canRead", + get: function get() { + if (this.data.length == 0) return false;else if (this.data.length < this.neededDataLength) return false; + return true; + } + }]); + return NetworkBuffer; +}(); + +exports["default"] = NetworkBuffer; + +},{"../../Data/DataConverter.js":30,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],55:[function(require,module,exports){ +/* +* Copyright (c) 2017-2018 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 10/11/2018. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var CustomResourceEvent = function CustomResourceEvent(issuer, receivers, params) { + (0, _classCallCheck2["default"])(this, CustomResourceEvent); + this.issuer = issuer; + this.receivers = receivers; + this.params = params; +}; + +exports["default"] = CustomResourceEvent; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/interopRequireDefault":9}],56:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = exports.ResourceTrigger = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _IDestructible2 = _interopRequireDefault(require("../Core/IDestructible.js")); + +var ResourceTrigger = { + Open: 0, + Initialize: 1, + Terminate: 2, + Configure: 3, + SystemInitialized: 4, + SystemTerminated: 5, + SystemReload: 6 +}; +exports.ResourceTrigger = ResourceTrigger; + +var IResource = +/*#__PURE__*/ +function (_IDestructible) { + (0, _inherits2["default"])(IResource, _IDestructible); + (0, _createClass2["default"])(IResource, [{ + key: "trigger", + value: function trigger(_trigger) {} + }]); + + function IResource() { + (0, _classCallCheck2["default"])(this, IResource); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(IResource).call(this)); + } + + (0, _createClass2["default"])(IResource, null, [{ + key: "getTemplate", + value: function getTemplate() { + return { + namespace: "Esyur", + properties: [], + functions: [], + events: [] + }; + } + }]); + return IResource; +}(_IDestructible2["default"]); + +exports["default"] = IResource; + +},{"../Core/IDestructible.js":24,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],57:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _IResource2 = _interopRequireDefault(require("./IResource.js")); + +var IStore = +/*#__PURE__*/ +function (_IResource) { + (0, _inherits2["default"])(IStore, _IResource); + (0, _createClass2["default"])(IStore, [{ + key: "get", + value: function get(path) {} + }, { + key: "retrieve", + value: function retrieve(iid) {} + }, { + key: "put", + value: function put(resource) {} + }, { + key: "record", + value: function record(resource, propertyName, value, age, dateTime) {} + }, { + key: "getRecord", + value: function getRecord(resource, fromDate, toDate) {} + }, { + key: "remove", + value: function remove(resource) {} + }]); + + function IStore() { + (0, _classCallCheck2["default"])(this, IStore); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(IStore).call(this)); + } + + return IStore; +}(_IResource2["default"]); + +exports["default"] = IStore; + +},{"./IResource.js":56,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],58:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 29/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); + +var _IEventHandler2 = _interopRequireDefault(require("../Core/IEventHandler.js")); + +var _IPermissionsManager = _interopRequireDefault(require("../Security/Permissions/IPermissionsManager.js")); + +var _StructureArray = _interopRequireDefault(require("../Data/StructureArray.js")); + +var _AutoList = _interopRequireDefault(require("../Data/AutoList.js")); + +var _KeyList = _interopRequireDefault(require("../Data/KeyList.js")); + +var _Structure = _interopRequireDefault(require("../Data/Structure.js")); + +var _PropertyValue = _interopRequireDefault(require("../Data/PropertyValue.js")); + +var _CustomResourceEvent = _interopRequireDefault(require("./CustomResourceEvent.js")); + +var _Warehouse = _interopRequireDefault(require("./Warehouse.js")); + +var Instance = +/*#__PURE__*/ +function (_IEventHandler) { + (0, _inherits2["default"])(Instance, _IEventHandler); + (0, _createClass2["default"])(Instance, [{ + key: "getAge", + value: function getAge(index) { + if (index < this.ages.length) return this.ages[index];else return 0; + } + }, { + key: "setAge", + value: function setAge(index, value) { + if (index < this.ages.length) { + this.ages[index] = value; + if (value > this.instanceAge) this.instanceAge = value; + } + } + }, { + key: "getModificationDate", + value: function getModificationDate(index) { + if (index < this.modificationDates.length) return this.modificationDates[index];else return new Date(0); + } + }, { + key: "setModificationDate", + value: function setModificationDate(index, value) { + if (index < this.modificationDates.length) { + this.modificationDates[index] = value; + if (value > this.instanceModificationDate) this.instanceModificationDate = value; + } + } + }, { + key: "loadProperty", + value: function loadProperty(name, age, modificationDate, value) { + var pt = this.template.getPropertyTemplateByName(name); + if (pt == null) return false; + this.resource[name] = value; + this.setAge(pt.index, age); + this.setModificationDate(pt.index, modificationDate); + return true; + } + }, { + key: "deserialize", + value: function deserialize(properties) { + for (var i = 0; i < properties.length; i++) { + var pt = this.template.GetPropertyTemplateByIndex(i); + + if (pt != null) { + var pv = properties[i]; + this.loadProperty(pt.name, pv.age, pv.date, pv.value); + } + } + + return true; + } + }, { + key: "serialize", + value: function serialize() { + var props = []; + + for (var i = 0; i < this.template.properties.length; i++) { + props.push(new _PropertyValue["default"](this.resource[this.template.properties[i].name], this.ages[this.template.properties[i].index], this.modificationDates[this.template.properties[i].index])); + } + + return props; + } + }, { + key: "isStorable", + value: function isStorable() { + return resource instanceof Storable; + } + }, { + key: "emitModification", + value: function emitModification(pt, value) { + this.instanceAge++; + var now = new Date(); + this.ages[pt.index] = this.instanceAge; + this.modificationDates[pt.index] = now; + if (pt.recordable) this.store.record(this.resource, pt.name, value, this.ages[pt.index], now); + (0, _get2["default"])((0, _getPrototypeOf2["default"])(Instance.prototype), "_emit", this).call(this, "ResourceModified", this.resource, pt.name, value); + + this.resource._emit("modified", pt.name, value); + } + }, { + key: "modified", + value: function (_modified) { + function modified() { + return _modified.apply(this, arguments); + } + + modified.toString = function () { + return _modified.toString(); + }; + + return modified; + }(function () { + var propertyName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + if (propertyName == null) propertyName = modified.caller.name; + var val = {}; + + if (this.getPropertyValue(propertyName, val)) { + var pt = this.template.getPropertyTemplateByName(propertyName); + this.emitModification(pt, val.value); + } + }) + }, { + key: "_emitResourceEvent", + value: function _emitResourceEvent(issuer, receivers, name, args) { + (0, _get2["default"])((0, _getPrototypeOf2["default"])(Instance.prototype), "_emit", this).call(this, "ResourceEventOccurred", this.resource, issuer, receivers, name, args); + } + }, { + key: "getPropertyValue", + value: function getPropertyValue(name, resultObject) { + for (var i = 0; i < this.template.properties.length; i++) { + if (this.template.properties[i].name == name) { + resultObject.value = this.resource[name]; + return true; + } + } + + return false; + } + }]); + + function Instance(id, name, resource, store) { + var _this; + + var customTemplate = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; + var age = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + (0, _classCallCheck2["default"])(this, Instance); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Instance).call(this)); + _this.store = store; + _this.resource = resource; + _this.id = id; + _this.name = name; + _this.instanceAge = age; + _this.instanceModificationDate = new Date(0); + _this.children = new _AutoList["default"](); + _this.parents = new _AutoList["default"](); + _this.managers = new _AutoList["default"](); + _this.attributes = new _KeyList["default"](); + var self = (0, _assertThisInitialized2["default"])(_this); + + _this.children.on("add", function (value) { + value.instance.parents.add(self.resource); + }); + + _this.children.on("remove", function (value) { + value.instance.parents.remove(self.resource); + }); + + _this.resource.on("Destroy", function (sender) { + self._emit("ResourceDestroyed", sender); + }); + + if (customTemplate != null) _this.template = customTemplate;else _this.template = _Warehouse["default"].getTemplateByType(_this.resource.constructor); // set ages + + _this.ages = []; + _this.modificationDates = []; + + for (var i = 0; i < _this.template.properties.length; i++) { + _this.ages.push(0); + + _this.modificationDates.push(new Date(0)); + } // connect events + + + for (var i = 0; i < _this.template.events.length; i++) { + _this.resource.on(_this.template.events[i].name, _this._makeHandler(_this.template.events[i].name)); + } + + return _this; + } + + (0, _createClass2["default"])(Instance, [{ + key: "_makeHandler", + value: function _makeHandler(name) { + var self = this; + return function (args) { + if (args instanceof _CustomResourceEvent["default"]) self._emitResourceEvent(args.issuer, args.receivers, name, args.params);else self._emitResourceEvent(null, null, name, args); + }; + } /// + /// Check for permission. + /// + /// Caller sessions. + /// Action type + /// Function or property to check for permission. + /// Ruling. + + }, { + key: "applicable", + value: function applicable(session, action, member, inquirer) { + for (var i = 0; i < this.managers.length; i++) { + var r = this.managers.item(i).applicable(this.resource, session, action, member, inquirer); + if (r != Ruling.DontCare) return r; + } + + return Ruling.DontCare; + } + }, { + key: "removeAttributes", + value: function removeAttributes() { + var attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + if (attributes == null) this.attributes.clear();else { + for (var i = 0; i < attributes.length; i++) { + this.attributes.remove(attributes[i]); + } + } + return true; + } + }, { + key: "getAttributes", + value: function getAttributes() { + var attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var st = new _Structure["default"](); + + if (attributes == null) { + attributes = this.attributes.keys.slice(0); + attributes.push("managers"); + } + + for (var i = 0; i < attributes.length; i++) { + var attr = attributes[i]; + if (attr == "name") st["name"] = this.name;else if (attr == "managers") { + var mngrs = new _StructureArray["default"](); + + for (var j = 0; j < this.managers.length; j++) { + var manager = this.managers.item(j); + var sm = new _Structure["default"](); + sm["type"] = manager.constructor.name; + sm["settings"] = manager.settings; + mngrs.push(sm); + } + + st["managers"] = mngrs; + } else st[attr] = this.attributes.item(attr); + } + + return st; + } + }, { + key: "setAttributes", + value: function setAttributes(attributes) { + var clearAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + if (clearAttributes) this.attributes.clear(); + + for (var attr in attributes) { + if (attr == "name") this.name = attributes[attr];else if (attr == "managers") { + this.managers.clear(); + var mngrs = attributes[attr]; + + for (var i = 0; i < mngrs.length; i++) { + var mngr = mngrs[i]; + var type = window[mngr]; + var settings = mngr["settings"]; + var manager = new (Function.prototype.bind.apply(type))(); + + if (manager instanceof _IPermissionsManager["default"]) { + manager.initialize(settings, this.resource); + this.managers.add(manager); + } else return false; + } + } else { + this.attributes.set(attr, attributes[attr]); + } + } + + return true; + } + }]); + return Instance; +}(_IEventHandler2["default"]); + +exports["default"] = Instance; + +},{"../Core/IEventHandler.js":25,"../Data/AutoList.js":27,"../Data/KeyList.js":33,"../Data/PropertyValue.js":34,"../Data/Structure.js":36,"../Data/StructureArray.js":37,"../Security/Permissions/IPermissionsManager.js":70,"./CustomResourceEvent.js":55,"./Warehouse.js":65,"@babel/runtime/helpers/assertThisInitialized":1,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/get":6,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],59:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 24/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _DataConverter = require("../../Data/DataConverter.js"); + +var _MemberTemplate2 = _interopRequireDefault(require("./MemberTemplate.js")); + +var _MemberType = _interopRequireDefault(require("./MemberType.js")); + +var EventTemplate = +/*#__PURE__*/ +function (_MemberTemplate) { + (0, _inherits2["default"])(EventTemplate, _MemberTemplate); + + function EventTemplate() { + var _this; + + (0, _classCallCheck2["default"])(this, EventTemplate); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(EventTemplate).call(this)); + _this.type = _MemberType["default"].Event; + return _this; + } + + (0, _createClass2["default"])(EventTemplate, [{ + key: "compose", + value: function compose() { + var rt = (0, _DataConverter.BL)(); + var name = (0, _get2["default"])((0, _getPrototypeOf2["default"])(EventTemplate.prototype), "compose", this).call(this); + + if (this.expansion != null) { + var exp = _DataConverter.DC.stringToBytes(this.expansion); + + return rt.addUint8(0x50).addUint8(name.length).addUint8Array(name).addUint32(exp.length).addUint8Array(exp).toArray(); + } else return rt.addUint8(0x40).addUint32(name.length).addUint8Array(name).toArray(); + } + }]); + return EventTemplate; +}(_MemberTemplate2["default"]); + +exports["default"] = EventTemplate; + +},{"../../Data/DataConverter.js":30,"./MemberTemplate.js":61,"./MemberType.js":62,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/get":6,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],60:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 27/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); + +var _DataConverter = require("../../Data/DataConverter.js"); + +var _MemberTemplate2 = _interopRequireDefault(require("./MemberTemplate.js")); + +var _MemberType = _interopRequireDefault(require("./MemberType.js")); + +var FunctionTemplate = +/*#__PURE__*/ +function (_MemberTemplate) { + (0, _inherits2["default"])(FunctionTemplate, _MemberTemplate); + (0, _createClass2["default"])(FunctionTemplate, [{ + key: "compose", + value: function compose() { + var name = (0, _get2["default"])((0, _getPrototypeOf2["default"])(FunctionTemplate.prototype), "compose", this).call(this); + var rt = (0, _DataConverter.BL)(); + + if (this.expansion != null) { + var exp = _DataConverter.DC.stringToBytes(this.expansion); + + return rt.addUint8(0x10 | (this.isVoid ? 0x8 : 0x0)).addUint8(name.length).addUint8Array(name).addUint32(exp.length).addUint8Array(exp).toArray(); + } else return rt.addUint8(this.isVoid ? 0x8 : 0x0).addUint8(name.length).addUint8Array(name).toArray(); + } + }]); + + function FunctionTemplate() { + var _this; + + (0, _classCallCheck2["default"])(this, FunctionTemplate); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FunctionTemplate).call(this)); + _this.type = _MemberType["default"].Function; + return _this; + } + + return FunctionTemplate; +}(_MemberTemplate2["default"]); + +exports["default"] = FunctionTemplate; + +},{"../../Data/DataConverter.js":30,"./MemberTemplate.js":61,"./MemberType.js":62,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/get":6,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],61:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 24/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _DataConverter = _interopRequireDefault(require("../../Data/DataConverter.js")); + +var MemberTemplate = +/*#__PURE__*/ +function () { + function MemberTemplate() { + (0, _classCallCheck2["default"])(this, MemberTemplate); + } + + (0, _createClass2["default"])(MemberTemplate, [{ + key: "compose", + value: function compose() { + return _DataConverter["default"].stringToBytes(this.name); + } + }]); + return MemberTemplate; +}(); + +exports["default"] = MemberTemplate; + +},{"../../Data/DataConverter.js":30,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],62:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = { + Function: 0, + Property: 1, + Event: 2 +}; +exports["default"] = _default; + +},{}],63:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 27/08/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = exports.PropertyPermission = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _DataConverter = require("../../Data/DataConverter.js"); + +var _MemberTemplate2 = _interopRequireDefault(require("./MemberTemplate.js")); + +var _MemberType = _interopRequireDefault(require("./MemberType.js")); + +var PropertyPermission = { + Read: 1, + Write: 2, + ReadWrite: 3 +}; +exports.PropertyPermission = PropertyPermission; + +var PropertyTemplate = +/*#__PURE__*/ +function (_MemberTemplate) { + (0, _inherits2["default"])(PropertyTemplate, _MemberTemplate); + + function PropertyTemplate() { + var _this; + + (0, _classCallCheck2["default"])(this, PropertyTemplate); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PropertyTemplate).call(this)); + _this.type = _MemberType["default"].Property; + return _this; + } + + (0, _createClass2["default"])(PropertyTemplate, [{ + key: "compose", + value: function compose() { + var name = (0, _get2["default"])((0, _getPrototypeOf2["default"])(PropertyTemplate.prototype), "compose", this).call(this); + var rt = (0, _DataConverter.BL)(); + var pv = this.permission >> 1 | (this.recordable ? 1 : 0); + + if (this.writeExpansion != null && this.readExpansion != null) { + var rexp = _DataConverter.DC.stringToBytes(this.readExpansion); + + var wexp = _DataConverter.DC.stringToBytes(this.writeExpansion); + + return rt.addUint8(0x38 | pv).addUint8(name.length).addUint8Array(name).addUint32(wexp.length).addUint8Array(wexp).addUint32(rexp.length).addUint8Array(rexp).toArray(); + } else if (this.writeExpansion != null) { + var wexp = _DataConverter.DC.stringToBytes(this.writeExpansion); + + return rt.addUint8(0x30 | pv).addUint8(name.length).addUint8Array(name).addUint32(wexp.length).addUint8Array(wexp).toArray(); + } else if (this.readExpansion != null) { + var rexp = _DataConverter.DC.stringToBytes(this.readExpansion); + + return rt.addUint8(0x28 | pv).addUint8(name.length).addUint8Array(name).addUint32(rexp.length).addUint8Array(rexp).toArray(); + } else return rt.addUint8(0x20 | pv).addUint32(name.length).addUint8Array(name).toArray(); + } + }]); + return PropertyTemplate; +}(_MemberTemplate2["default"]); + +exports["default"] = PropertyTemplate; + +},{"../../Data/DataConverter.js":30,"./MemberTemplate.js":61,"./MemberType.js":62,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/get":6,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],64:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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 _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _FunctionTemplate = _interopRequireDefault(require("./FunctionTemplate.js")); + +var _PropertyTemplate = _interopRequireDefault(require("./PropertyTemplate.js")); + +var _EventTemplate = _interopRequireDefault(require("./EventTemplate.js")); + +var _SHA = _interopRequireDefault(require("../../Security/Integrity/SHA256.js")); + +var _DataConverter = require("../../Data/DataConverter.js"); + +var ResourceTemplate = +/*#__PURE__*/ +function () { + (0, _createClass2["default"])(ResourceTemplate, [{ + key: "getEventTemplateByName", + value: function getEventTemplateByName(eventName) { + for (var i = 0; i < this.events.length; i++) { + if (this.events[i].name == eventName) return this.events[i]; + } + + return null; + } + }, { + key: "getEventTemplateByIndex", + value: function getEventTemplateByIndex(index) { + for (var i = 0; i < this.events.length; i++) { + if (this.events[i].index == index) return this.events[i]; + } + + return null; + } + }, { + key: "getFunctionTemplateByName", + value: function getFunctionTemplateByName(functionName) { + for (var i = 0; i < this.functions.length; i++) { + if (this.functions[i].name == functionName) return this.functions[i]; + } + + return null; + } + }, { + key: "getFunctionTemplateByIndex", + value: function getFunctionTemplateByIndex(index) { + for (var i = 0; i < this.functions.length; i++) { + if (this.functions[i].index == index) return this.functions[i]; + } + + return null; + } + }, { + key: "getPropertyTemplateByName", + value: function getPropertyTemplateByName(propertyName) { + for (var i = 0; i < this.properties.length; i++) { + if (this.properties[i].name == propertyName) return this.properties[i]; + } + + return null; + } + }, { + key: "getPropertyTemplateByIndex", + value: function getPropertyTemplateByIndex(index) { + for (var i = 0; i < this.properties.length; i++) { + if (this.properties[i].index == index) return this.properties[i]; + } + + return null; + } + /* + template: { + properties: [ + {name: 'size', read: null, write: null} + ], + functions: [ + ], + events: [ + ] + } + */ + + }]); + + function ResourceTemplate(type) { + (0, _classCallCheck2["default"])(this, ResourceTemplate); + this.properties = []; + this.events = []; + this.functions = []; + this.members = []; + if (type === undefined) return; + var template = type.getTemplate(); // set guid + + this.className = template.namespace + "." + type.prototype.constructor.name; + this.classId = _SHA["default"].compute(_DataConverter.DC.stringToBytes(this.className)).getGuid(0); //byte currentIndex = 0; + + for (var i = 0; i < template.properties.length; i++) { + var pt = new _PropertyTemplate["default"](); + pt.name = template.properties[i].name; + pt.index = i; + pt.readExpansion = template.properties[i].read; + pt.writeExpansion = template.properties[i].write; + pt.recordable = template.properties[i].recordable; + this.properties.push(pt); + } + + for (var i = 0; i < template.events.length; i++) { + var et = new _EventTemplate["default"](); + et.name = template.events[i].name; + et.index = i; + et.expansion = template.events[i].expansion; + this.events.push(et); + } + + for (var i = 0; i < template.functions.length; i++) { + var ft = new _FunctionTemplate["default"](); + ft.name = template.functions[i].name; + ft.index = i; + ft.isVoid = template.functions[i]["void"]; + ft.expansion = template.functions[i].expansion; + this.functions.push(ft); + } // append signals + + + for (var i = 0; i < this.events.length; i++) { + this.members.push(this.events[i]); + } // append slots + + + for (var i = 0; i < this.functions.length; i++) { + this.members.push(this.functions[i]); + } // append properties + + + for (var i = 0; i < this.properties.length; i++) { + this.members.push(this.properties[i]); + } // bake it binarily + + + var b = (0, _DataConverter.BL)(); + + var cls = _DataConverter.DC.stringToBytes(this.className); + + b.addUint8Array(this.classId.value).addUint8(cls.length).addUint8Array(cls).addUint32(template.version).addUint16(this.members.length); + + for (var i = 0; i < this.functions.length; i++) { + b.addUint8Array(this.functions[i].compose()); + } + + for (var i = 0; i < this.properties.length; i++) { + b.addUint8Array(this.properties[i].compose()); + } + + for (var i = 0; i < this.events.length; i++) { + b.addUint8Array(this.events[i].compose()); + } + + this.content = b.toArray(); + } + + (0, _createClass2["default"])(ResourceTemplate, null, [{ + key: "getFunctionParameters", + value: function getFunctionParameters(func) { + var STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,\)]*(('(?:\\'|[^'\r\n])*')|("(?:\\"|[^"\r\n])*"))|(\s*=[^,\)]*))/mg; + var ARGUMENT_NAMES = /([^\s,]+)/g; + var fnStr = func.toString().replace(STRIP_COMMENTS, ''); + var result = fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(ARGUMENT_NAMES); + if (result === null) result = []; + return result; + } + }, { + key: "parse", + value: function parse(data) { + var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var contentLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; + if (contentLength == -1) contentLength = data.length; + var ends = offset + contentLength; + var oOffset = offset; // start parsing... + + var od = new ResourceTemplate(); + od.content = data.clip(offset, contentLength); + od.classId = data.getGuid(offset); + offset += 16; + od.className = data.getString(offset + 1, data.getUint8(offset)); + offset += data.getUint8(offset) + 1; + od.version = data.getInt32(offset); + offset += 4; + var methodsCount = data.getUint16(offset); + offset += 2; + var functionIndex = 0; + var propertyIndex = 0; + var eventIndex = 0; + + for (var i = 0; i < methodsCount; i++) { + var type = data.getUint8(offset) >> 5; + + if (type == 0) // function + { + var ft = new _FunctionTemplate["default"](); + ft.index = functionIndex++; + var expansion = (data.getUint8(offset) & 0x10) == 0x10; + ft.isVoid = (data.getUint8(offset++) & 0x08) == 0x08; + var len = data.getUint8(offset++); + ft.name = data.getString(offset, len); + offset += len; + + if (expansion) // expansion ? + { + var cs = data.getUint32(offset); + offset += 4; + ft.expansion = data.getString(offset, cs); + offset += cs; + } + + od.functions.push(ft); + } else if (type == 1) // property + { + var pt = new _PropertyTemplate["default"](); + pt.index = propertyIndex++; + var readExpansion = (data.getUint8(offset) & 0x8) == 0x8; + var writeExpansion = (data.getUint8(offset) & 0x10) == 0x10; + pt.recordable = (data.getUint8(offset) & 1) == 1; + pt.permission = data.getUint8(offset++) >> 1 & 0x3; + var len = data.getUint8(offset++); + pt.name = data.getString(offset, len); + offset += len; + + if (readExpansion) // expansion ? + { + var cs = data.getUint32(offset); + offset += 4; + pt.readExpansion = data.getString(offset, cs); + offset += cs; + } + + if (writeExpansion) // expansion ? + { + var cs = data.getUint32(offset); + offset += 4; + pt.writeExpansion = data.getString(offset, cs); + offset += cs; + } + + od.properties.push(pt); + } else if (type == 2) // Event + { + var et = new _EventTemplate["default"](); + et.index = eventIndex++; + var expansion = (data.getUint8(offset++) & 0x10) == 0x10; + var len = data.getUint8(offset++); + et.name = data.getString(offset, len); + offset += len; + + if (expansion) // expansion ? + { + var cs = data.getUint32(offset); + offset += 4; + et.expansion = data.getString(offset, cs); + offset += cs; + } + + od.events.push(et); + } + } // append signals + + + for (var i = 0; i < od.events.length; i++) { + od.members.push(od.events[i]); + } // append slots + + + for (var i = 0; i < od.functions.length; i++) { + od.members.push(od.functions[i]); + } // append properties + + + for (var i = 0; i < od.properties.length; i++) { + od.members.push(od.properties[i]); + } + + return od; + } + }]); + return ResourceTemplate; +}(); + +exports["default"] = ResourceTemplate; + +},{"../../Data/DataConverter.js":30,"../../Security/Integrity/SHA256.js":69,"./EventTemplate.js":59,"./FunctionTemplate.js":60,"./PropertyTemplate.js":63,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],65:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/07/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = exports.WH = void 0; + +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); + +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _AsyncReply = _interopRequireDefault(require("../Core/AsyncReply.js")); + +var _ResourceTemplate = _interopRequireDefault(require("../Resource/Template/ResourceTemplate.js")); + +var _IEventHandler2 = _interopRequireDefault(require("../Core/IEventHandler.js")); + +var _AutoList = _interopRequireDefault(require("../Data/AutoList.js")); + +var _KeyList = _interopRequireDefault(require("../Data/KeyList.js")); + +var _DistributedConnection = _interopRequireDefault(require("../Net/IIP/DistributedConnection.js")); + +var _MemoryStore = _interopRequireDefault(require("../Stores/MemoryStore.js")); + +var _Instance = _interopRequireDefault(require("../Resource/Instance.js")); + +var _IStore = _interopRequireDefault(require("./IStore.js")); + +var _IResource = require("./IResource.js"); + +var WH = +/*#__PURE__*/ +function (_IEventHandler) { + (0, _inherits2["default"])(WH, _IEventHandler); + + function WH() { + var _this; + + (0, _classCallCheck2["default"])(this, WH); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(WH).call(this)); + _this.stores = new _AutoList["default"](); + _this.resources = new _KeyList["default"](); + _this.resourceCounter = 0; + _this.templates = new _KeyList["default"](); + _this.protocols = new _KeyList["default"](); + + _this._register("connected"); + + _this._register("disconnected"); ///this._urlRegex = /^(?:([\S]*):\/\/([^\/]*)\/?)/; + + + _this._urlRegex = /^(?:([^\s|:]*):\/\/([^\/]*)\/?)/; + return _this; + } + + (0, _createClass2["default"])(WH, [{ + key: "new", + value: function _new(type, name) { + var store = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var parent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var manager = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; + var attributes = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null; + var res = new type(); + this.put(res, name, store, parent, null, 0, manager, attributes); + return res; + } + }, { + key: "getById", + value: function getById(id) { + return new _AsyncReply["default"](this.resources.item(id)); + } + }, { + key: "get", + value: function get(path) { + var _this2 = this; + + var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var manager = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var rt = new _AsyncReply["default"](); + var self = this; // Should we create a new store ? + + if (path.match(this._urlRegex)) //if (path.includes("://")) + { + // with port + //var url = path.split(/(?:):\/\/([^:\/]*):?(\d*)/); + // without port + var url = path.split(this._urlRegex); //var url = path.split("://", 2); + //var hostname = url[1];// url[1].split("/", 2)[0]; + //var pathname = url[2];// url[1].split("/").splice(1).join("/"); + + var handler; + + if (handler = this.protocols.item(url[1])) { + var store = handler(); + this.put(store, url[2], null, parent, null, 0, manager, attributes); + store.trigger(_IResource.ResourceTrigger.Open).then(function (x) { + _this2.warehouseIsOpen = true; + if (url[3].length > 0 && url[3] != "") store.get(url[3]).then(function (r) { + rt.trigger(r); + }).error(function (e) { + return rt.triggerError(e); + });else rt.trigger(store); + }).error(function (e) { + rt.triggerError(e); + self.remove(store); + }); + return rt; + } + } + + this.query(path).then(function (rs) { + if (rs != null && rs.length > 0) rt.trigger(rs[0]);else rt.trigger(null); + }); + return rt; + /* + var p = id.split('/'); + var res = null; + for(var s = 0; s < this.stores.length; s++) + { + var d = this.stores.at(s); + if (p[0] == d.instance.name) + { + var i = 1; + res = d; + while(p.length > i) + { + var si = i; + for (var r = 0; r < res.instance.children.length; r++) + if (res.instance.children.item(r).instance.name == p[i]) + { + i++; + res = res.instance.children.item(r); + break; + } + if (si == i) + // not found, ask the store + return d.get(id.substring(p[0].length + 1)); + } + return new AsyncReply(res); + } + } + // Should we create a new store ? + if (id.includes("://")) + { + var url = id.split("://", 2); + var hostname = url[1].split("/", 2)[0]; + var pathname = url[1].split("/").splice(1).join("/"); + var handler; + var rt = new AsyncReply(); + var self = this; + if (handler = this.protocols.item(url[0])) + { + var store = handler(); + this.put(store, url[0] + "://" + hostname, null, parent, null, 0, manager, attributes); + store.trigger(ResourceTrigger.Open).then(x=>{ + if (pathname.length > 0 && pathname != "") + store.get(pathname).then(r=>{ + rt.trigger(r); + }).error(e => rt.triggerError(e)); + else + rt.trigger(store); + + }).error(e => { + rt.triggerError(e); + self.remove(store); + }); + } + return rt; + } + return new AsyncReply(null); + */ + } + }, { + key: "remove", + value: function remove(resource) { + if (this.resources.contains(resource.instance.id)) this.resources.remove(resource.instance.id);else return false; + + if (resource instanceof _IStore["default"]) { + this.stores.remove(resource); // remove all objects associated with the store + + var toBeRemoved = null; + + for (var i = 0; i < this.resources.length; i++) { + var o = this.resources.at(i); + + if (o.instance.store == resource) { + if (toBeRemoved == null) toBeRemoved = []; + toBeRemoved.push(o); + } + } + + if (toBeRemoved != null) for (var i = 0; i < toBeRemoved.length; i++) { + this.remove(toBeRemoved[i]); + } + + this._emit("disconnected", resource); + } + + if (resource.instance.store != null) resource.instance.store.remove(resource); + resource.destroy(); + return true; + } + }, { + key: "put", + value: function put(resource, name, store, parent) { + var customTemplate = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; + var age = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + var manager = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null; + var attributes = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null; + resource.instance = new _Instance["default"](this.resourceCounter++, name, resource, store, customTemplate, age); //resource.instance.children.on("add", Warehouse._onChildrenAdd).on("remove", Warehouse._onChildrenRemove); + //resource.instance.parents.on("add", Warehouse._onParentsAdd).on("remove", Warehouse._onParentsRemove); + + if (attributes != null) resource.instance.setAttributes(attributes); + if (manager != null) resource.instance.managers.add(manager); + + if (parent) { + parent.instance.children.add(resource); + } else { + if (!(resource instanceof _IStore["default"])) store.instance.children.add(resource); + } + + if (resource instanceof _IStore["default"]) { + this.stores.add(resource); + + this._emit("connected", resource); + } else store.put(resource); + + this.resources.add(resource.instance.id, resource); + } + }, { + key: "_onParentsRemove", + value: function _onParentsRemove(value) { + if (value.instance.children.contains(value)) value.instance.children.remove(value); + } + }, { + key: "_onParentsAdd", + value: function _onParentsAdd(value) { + if (!value.instance.children.contains(value)) value.instance.children.add(value); + } + }, { + key: "_onChildrenRemove", + value: function _onChildrenRemove(value) { + if (value.instance.parents.contains(value)) value.instance.parents.remove(value); + } + }, { + key: "_onChildrenAdd", + value: function _onChildrenAdd(value) { + if (!value.instance.parents.contains(value)) value.instance.parents.add(value); + } + }, { + key: "putTemplate", + value: function putTemplate(template) { + this.templates.add(template.classId.valueOf(), template); + } + }, { + key: "getTemplateByType", + value: function getTemplateByType(type) { + // loaded ? + for (var i = 0; i < this.templates.length; i++) { + if (this.templates.at(i).className == (0, _typeof2["default"])(type)) return this.templates.at(i); + } + + var template = new _ResourceTemplate["default"](type); + this.templates.add(template.classId.valueOf(), template); + return template; + } + }, { + key: "getTemplateByClassId", + value: function getTemplateByClassId(classId) { + var template = this.templates.item(classId); + return new _AsyncReply["default"](template); + } + }, { + key: "getTemplateByClassName", + value: function getTemplateByClassName(className) { + for (var i = 0; i < this.templates.length; i++) { + if (this.templates.at(i).className == className) return new _AsyncReply["default"](this.templates.at(i)); + } + + return new _AsyncReply["default"](null); + } + }, { + key: "_qureyIn", + value: function _qureyIn(path, index, resources) { + var rt = []; + + if (index == path.length - 1) { + if (path[index] == "") for (var i = 0; i < resources.length; i++) { + rt.push(resources.at(i)); + } else for (var i = 0; i < resources.length; i++) { + if (resources.at(i).instance.name == path[index]) rt.push(resources.at(i)); + } + } else for (var i = 0; i < resources.length; i++) { + if (resources.at(i).instance.name == path[index]) rt = rt.concat(this._qureyIn(path, index + 1, resources.at(i).instance.children)); + } + + return rt; + } + }, { + key: "query", + value: function () { + var _query = (0, _asyncToGenerator2["default"])( + /*#__PURE__*/ + _regenerator["default"].mark(function _callee(path) { + var rt, p, resource, i, store, res, children; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + //var p = path.split('/'); + //return new AsyncReply(this._qureyIn(p, 0, this.stores)); + rt = new _AsyncReply["default"](); + p = path.trim().split('/'); + i = 0; + + case 3: + if (!(i < this.stores.length)) { + _context.next = 35; + break; + } + + store = this.stores.at(i); + + if (!(p[0] == store.instance.name)) { + _context.next = 32; + break; + } + + if (!(p.length == 1)) { + _context.next = 8; + break; + } + + return _context.abrupt("return", [store]); + + case 8: + _context.next = 10; + return store.get(p.splice(1).join("/")); + + case 10: + res = _context.sent; + + if (!(res != null)) { + _context.next = 13; + break; + } + + return _context.abrupt("return", [res]); + + case 13: + resource = store; + i = 1; + + case 15: + if (!(i < p.length)) { + _context.next = 31; + break; + } + + _context.next = 18; + return resource.instance.children.list.filter(function (x) { + return x.instance.name == p[i]; + }); + + case 18: + children = _context.sent; + + if (!(children.length > 0)) { + _context.next = 27; + break; + } + + if (!(i == p.length - 1)) { + _context.next = 24; + break; + } + + return _context.abrupt("return", children); + + case 24: + resource = children[0]; + + case 25: + _context.next = 28; + break; + + case 27: + return _context.abrupt("break", 31); + + case 28: + i++; + _context.next = 15; + break; + + case 31: + return _context.abrupt("return", null); + + case 32: + i++; + _context.next = 3; + break; + + case 35: + return _context.abrupt("return", null); + + case 36: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function query(_x) { + return _query.apply(this, arguments); + } + + return query; + }() + }]); + return WH; +}(_IEventHandler2["default"]); + +exports.WH = WH; +var Warehouse = new WH(); +Warehouse.protocols.add("iip", function () { + return new _DistributedConnection["default"](); +}); +Warehouse.protocols.add("mem", function () { + return new _MemoryStore["default"](); +}); +var _default = Warehouse; +exports["default"] = _default; + +},{"../Core/AsyncReply.js":21,"../Core/IEventHandler.js":25,"../Data/AutoList.js":27,"../Data/KeyList.js":33,"../Net/IIP/DistributedConnection.js":39,"../Resource/Instance.js":58,"../Resource/Template/ResourceTemplate.js":64,"../Stores/MemoryStore.js":71,"./IResource.js":56,"./IStore.js":57,"@babel/runtime/helpers/asyncToGenerator":2,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/helpers/typeof":14,"@babel/runtime/regenerator":17}],66:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 16/11/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var Authentication = +/*#__PURE__*/ +function () { + function Authentication(type) { + (0, _classCallCheck2["default"])(this, Authentication); + this.type = type; + this.state = 0; + this.domain = null; + this.username = null; + } + + (0, _createClass2["default"])(Authentication, [{ + key: "fullName", + get: function get() { + return this.domain + "@" + this.username; + } + }]); + return Authentication; +}(); + +exports["default"] = Authentication; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],67:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; +var _default = { + //const AuthenticationType = { + Host: 0, + CoHost: 1, + Client: 2, + Alien: 3 +}; +exports["default"] = _default; + +},{}],68:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 16/11/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var Session = function Session(localAuthentication, remoteAuthentication) { + (0, _classCallCheck2["default"])(this, Session); + this.localAuthentication = localAuthentication; + this.remoteAuthentication = remoteAuthentication; + this.id = null; + this.creation = null; + this.modification = null; +}; + +exports["default"] = Session; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/interopRequireDefault":9}],69:[function(require,module,exports){ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _DataConverter = require("../../Data/DataConverter.js"); + +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 25/12/2017. + * Ref: https://en.wikipedia.org/wiki/SHA-2 + */ +var SHA256 = +/*#__PURE__*/ +function () { + function SHA256() { + (0, _classCallCheck2["default"])(this, SHA256); + } + + (0, _createClass2["default"])(SHA256, null, [{ + key: "RROT", + value: function RROT(n, d) { + return n >>> d | n << 32 - d; + } + }, { + key: "compute", + value: function compute(msg) { + /* + Note 1: All variables are 32 bit unsigned integers and addition is calculated modulo 2^32 + Note 2: For each round, there is one round constant k[i] and one entry in the message schedule array w[i], 0 ≤ i ≤ 63 + Note 3: The compression function uses 8 working variables, a through h + Note 4: Big-endian convention is used when expressing the constants in this pseudocode, + and when parsing message block data from bytes to words, for example, + the first word of the input message "abc" after padding is 0x61626380 + */ + // Initialize hash values: + // (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19): + var hash = new Uint32Array([0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19]); // Initialize array of round constants: + // (first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311): + + var k = new Uint32Array([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]); // Pre-processing: + // begin with the original message of length L bits + + var L = msg.length * 8; // append a single '1' bit + // append K '0' bits, where K is the minimum number >= 0 such that L + 1 + K + 64 is a multiple of 512 + + var K = 512 - (L + 1 + 64) % 512; + if (K == 512) K = 0; + var paddingLength = (K + 1) / 8; + var paddingBytes = new Uint8Array(paddingLength); + paddingBytes[0] = 0x80; + var data = new _DataConverter.DC((0, _DataConverter.BL)().addUint8Array(msg).addUint8Array(paddingBytes).addUint64(L).toArray()); // append L as a 64-bit big-endian integer, making the total post-processed length a multiple of 512 bits + // Process the message in successive 512-bit chunks: + // break message into 512-bit chunks + // for each chunk + + for (var chunk = 0; chunk < data.length; chunk += 64) { + // create a 64-entry message schedule array w[0..63] of 32-bit words + // (The initial values in w[0..63] don't matter, so many implementations zero them here) + // copy chunk into first 16 words w[0..15] of the message schedule array + var w = new Uint32Array(64); + + for (var i = 0; i < 16; i++) { + w[i] = data.getInt32(chunk + i * 4); + } //for(var i = 16; i < 64; i++) + // w[i] = 0; + // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array: + // for i from 16 to 63 + // s0 := (w[i-15] rightrotate 7) xor (w[i-15] rightrotate 18) xor (w[i-15] rightshift 3) + // s1 := (w[i-2] rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2] rightshift 10) + // w[i] := w[i-16] + s0 + w[i-7] + s1 + + + for (var i = 16; i < 64; i++) { + var s0 = SHA256.RROT(w[i - 15], 7) ^ SHA256.RROT(w[i - 15], 18) ^ w[i - 15] >>> 3; + var s1 = SHA256.RROT(w[i - 2], 17) ^ SHA256.RROT(w[i - 2], 19) ^ w[i - 2] >>> 10; + w[i] = w[i - 16] + s0 + w[i - 7] + s1; + } // Initialize working variables to current hash value: + + + var a = hash[0]; + var b = hash[1]; + var c = hash[2]; + var d = hash[3]; + var e = hash[4]; + var f = hash[5]; + var g = hash[6]; + var h = hash[7]; // Compression function main loop: + + for (var i = 0; i < 64; i++) { + var S1 = SHA256.RROT(e, 6) ^ SHA256.RROT(e, 11) ^ SHA256.RROT(e, 25); + var ch = e & f ^ ~e & g; + var temp1 = h + S1 + ch + k[i] + w[i]; + var S0 = SHA256.RROT(a, 2) ^ SHA256.RROT(a, 13) ^ SHA256.RROT(a, 22); + var maj = a & b ^ a & c ^ b & c; + var temp2 = S0 + maj; + h = g; + g = f; + f = e; + e = d + temp1 >>> 0; + d = c; + c = b; + b = a; + a = temp1 + temp2 >>> 0; + } // Add the compressed chunk to the current hash value: + + + hash[0] = hash[0] + a >>> 0; + hash[1] = hash[1] + b >>> 0; + hash[2] = hash[2] + c >>> 0; + hash[3] = hash[3] + d >>> 0; + hash[4] = hash[4] + e >>> 0; + hash[5] = hash[5] + f >>> 0; + hash[6] = hash[6] + g >>> 0; + hash[7] = hash[7] + h >>> 0; + } // Produce the final hash value (big-endian): + //digest := hash := h0 append h1 append h2 append h3 append h4 append h5 append h6 append h7 + + + var results = (0, _DataConverter.BL)(); + + for (var i = 0; i < 8; i++) { + results.addUint32(hash[i]); + } + + return results.toDC(); + } + }]); + return SHA256; +}(); + +exports["default"] = SHA256; + +},{"../../Data/DataConverter.js":30,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],70:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 16/11/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = exports.Ruling = exports.ActionType = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var ActionType = { + Attach: 0, + Delete: 1, + Execute: 2, + GetProperty: 3, + SetProperty: 4, + CreateResource: 5, + UpdateAttributes: 6, + InquireAttributes: 7, + AddParent: 8, + RemoveParent: 9, + AddChild: 10, + RemoveChild: 11, + Rename: 12, + ReceiveEvent: 13 +}; +exports.ActionType = ActionType; +var Ruling = { + Denied: 0, + Allowed: 1, + DontCare: 2 +}; +exports.Ruling = Ruling; + +var IPermissionsManager = +/*#__PURE__*/ +function () { + function IPermissionsManager() { + (0, _classCallCheck2["default"])(this, IPermissionsManager); + } + + (0, _createClass2["default"])(IPermissionsManager, [{ + key: "applicable", + /// + /// Check for permission. + /// + /// IResource. + /// Caller sessions. + /// Action type + /// Function or property to check for permission. + /// Allowed or denined. + value: function applicable(resource, session, action, member, inquirer) {} + }, { + key: "initialize", + value: function initialize(settings, resource) {} + }, { + key: "settings", + get: function get() {} + }]); + return IPermissionsManager; +}(); + +exports["default"] = IPermissionsManager; + +},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],71:[function(require,module,exports){ +/* +* Copyright (c) 2017 Ahmed Kh. Zamil +* +* 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. +*/ + +/** + * Created by Ahmed Zamil on 12/11/2017. + */ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _IStore2 = _interopRequireDefault(require("../Resource/IStore.js")); + +var MemoryStore = +/*#__PURE__*/ +function (_IStore) { + (0, _inherits2["default"])(MemoryStore, _IStore); + + function MemoryStore() { + var _this; + + (0, _classCallCheck2["default"])(this, MemoryStore); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MemoryStore).call(this)); + _this.resources = []; + return _this; + } + + (0, _createClass2["default"])(MemoryStore, [{ + key: "put", + value: function put(resource) { + this.resources[resource.instance.id] = resource; + } + }, { + key: "retrive", + value: function retrive(id) { + if (this.resources[resource.instance.id]) return new AsyncReply(this.resources[resource.instance.id]);else return new AsyncReply(null); + } + }, { + key: "get", + value: function get(resource) { + return new AsyncReply(null); + } + }, { + key: "link", + value: function link(resource) { + if (resource.instance.store == this) return this.instance.name + "/" + resource.instance.id; + } + }, { + key: "trigger", + value: function trigger(_trigger) { + return new AsyncReply(true); + } + }, { + key: "record", + value: function record(resource, propertyName, value, age, dateTime) {} + }, { + key: "getRecord", + value: function getRecord(resource, fromDate, toDate) {} + }]); + return MemoryStore; +}(_IStore2["default"]); + +exports["default"] = MemoryStore; + +},{"../Resource/IStore.js":57,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],72:[function(require,module,exports){ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _Warehouse = _interopRequireDefault(require("./Resource/Warehouse.js")); + +if (window) window.wh = _Warehouse["default"]; +var _default = _Warehouse["default"]; +exports["default"] = _default; + +},{"./Resource/Warehouse.js":65,"@babel/runtime/helpers/interopRequireDefault":9}]},{},[72]); diff --git a/module.js b/module.js index 4c433c6..0d70b49 100644 --- a/module.js +++ b/module.js @@ -1,5 +1,5 @@ exports.printMsg = function() { - console.log("Esyur 1.1"); + console.log("Esyur"); } module.exports = { wh }; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f63bab6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5017 @@ +{ + "name": "esyur", + "version": "1.3.5", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/cli": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.7.7.tgz", + "integrity": "sha512-XQw5KyCZyu/M8/0rYiZyuwbgIQNzOrJzs9dDLX+MieSgBwTLvTj4QVbLmxJACAIvQIDT7PtyHN2sC48EOWTgaA==", + "dev": true, + "requires": { + "chokidar": "^2.1.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + } + }, + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", + "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.7", + "@babel/helpers": "^7.7.4", + "@babel/parser": "^7.7.7", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", + "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", + "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", + "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-call-delegate": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", + "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", + "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" + } + }, + "@babel/helper-define-map": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", + "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.7.4", + "@babel/types": "^7.7.4", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", + "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-function-name": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", + "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", + "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", + "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", + "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-module-imports": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", + "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz", + "integrity": "sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@babel/helper-simple-access": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", + "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", + "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", + "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.7.4", + "@babel/helper-wrap-function": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", + "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.7.4", + "@babel/helper-optimise-call-expression": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", + "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==", + "dev": true, + "requires": { + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", + "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-wrap-function": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", + "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helpers": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", + "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "dev": true, + "requires": { + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", + "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", + "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.7.4", + "@babel/plugin-syntax-async-generators": "^7.7.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz", + "integrity": "sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.7.4" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz", + "integrity": "sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.7.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz", + "integrity": "sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", + "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.7.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz", + "integrity": "sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", + "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", + "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz", + "integrity": "sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", + "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", + "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz", + "integrity": "sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", + "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", + "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.7.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", + "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", + "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", + "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.7.4", + "@babel/helper-define-map": "^7.7.4", + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-optimise-call-expression": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", + "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", + "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz", + "integrity": "sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz", + "integrity": "sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", + "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", + "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz", + "integrity": "sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", + "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", + "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz", + "integrity": "sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.7.5", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz", + "integrity": "sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.7.5", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.7.4", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz", + "integrity": "sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz", + "integrity": "sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz", + "integrity": "sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.7.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz", + "integrity": "sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", + "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.7.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz", + "integrity": "sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.7.4", + "@babel/helper-get-function-arity": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", + "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz", + "integrity": "sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz", + "integrity": "sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.6.tgz", + "integrity": "sha512-tajQY+YmXR7JjTwRvwL4HePqoL3DYxpYXIHKVvrOIvJmeHe2y1w4tz5qz9ObUDC9m76rCzIMPyn4eERuwA4a4A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", + "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", + "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", + "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", + "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", + "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", + "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/preset-env": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", + "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.7.4", + "@babel/plugin-proposal-dynamic-import": "^7.7.4", + "@babel/plugin-proposal-json-strings": "^7.7.4", + "@babel/plugin-proposal-object-rest-spread": "^7.7.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", + "@babel/plugin-syntax-async-generators": "^7.7.4", + "@babel/plugin-syntax-dynamic-import": "^7.7.4", + "@babel/plugin-syntax-json-strings": "^7.7.4", + "@babel/plugin-syntax-object-rest-spread": "^7.7.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", + "@babel/plugin-syntax-top-level-await": "^7.7.4", + "@babel/plugin-transform-arrow-functions": "^7.7.4", + "@babel/plugin-transform-async-to-generator": "^7.7.4", + "@babel/plugin-transform-block-scoped-functions": "^7.7.4", + "@babel/plugin-transform-block-scoping": "^7.7.4", + "@babel/plugin-transform-classes": "^7.7.4", + "@babel/plugin-transform-computed-properties": "^7.7.4", + "@babel/plugin-transform-destructuring": "^7.7.4", + "@babel/plugin-transform-dotall-regex": "^7.7.7", + "@babel/plugin-transform-duplicate-keys": "^7.7.4", + "@babel/plugin-transform-exponentiation-operator": "^7.7.4", + "@babel/plugin-transform-for-of": "^7.7.4", + "@babel/plugin-transform-function-name": "^7.7.4", + "@babel/plugin-transform-literals": "^7.7.4", + "@babel/plugin-transform-member-expression-literals": "^7.7.4", + "@babel/plugin-transform-modules-amd": "^7.7.5", + "@babel/plugin-transform-modules-commonjs": "^7.7.5", + "@babel/plugin-transform-modules-systemjs": "^7.7.4", + "@babel/plugin-transform-modules-umd": "^7.7.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", + "@babel/plugin-transform-new-target": "^7.7.4", + "@babel/plugin-transform-object-super": "^7.7.4", + "@babel/plugin-transform-parameters": "^7.7.7", + "@babel/plugin-transform-property-literals": "^7.7.4", + "@babel/plugin-transform-regenerator": "^7.7.5", + "@babel/plugin-transform-reserved-words": "^7.7.4", + "@babel/plugin-transform-shorthand-properties": "^7.7.4", + "@babel/plugin-transform-spread": "^7.7.4", + "@babel/plugin-transform-sticky-regex": "^7.7.4", + "@babel/plugin-transform-template-literals": "^7.7.4", + "@babel/plugin-transform-typeof-symbol": "^7.7.4", + "@babel/plugin-transform-unicode-regex": "^7.7.4", + "@babel/types": "^7.7.4", + "browserslist": "^4.6.0", + "core-js-compat": "^3.6.0", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + } + }, + "@babel/runtime": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz", + "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==", + "requires": { + "regenerator-runtime": "^0.13.2" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + } + } + }, + "@babel/template": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", + "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/traverse": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", + "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.4", + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", + "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true, + "optional": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "optional": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + } + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babelify": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", + "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", + "dev": true + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browserify": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.0.tgz", + "integrity": "sha512-6bfI3cl76YLAnCZ75AGu/XPOsqUhRyc0F/olGIJeCxtfxF2HvPKEcmjU9M8oAPxl4uBY1U7Nry33Q6koV3f2iw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "^5.0.2", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "labeled-stream-splicer": "^2.0.0", + "mkdirp": "^0.5.0", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", + "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001015", + "electron-to-chromium": "^1.3.322", + "node-releases": "^1.1.42" + } + }, + "buffer": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", + "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cached-path-relative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", + "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001017", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001017.tgz", + "integrity": "sha512-EDnZyOJ6eYh6lHmCvCdHAFbfV4KJ9lSdfv4h/ppEhrU/Yudkl7jujwMZ1we6RX7DXqBfT04pVMQ4J+1wcTlsKA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + } + } + }, + "commander": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", + "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "dev": true + }, + "core-js-compat": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.1.tgz", + "integrity": "sha512-2Tl1EuxZo94QS2VeH28Ebf5g3xbPZG/hj/N5HDDy4XMP/ImR0JIer/nggQRiMN91Q54JVkGbytf42wO29oXVHg==", + "dev": true, + "requires": { + "browserslist": "^4.8.2", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "electron-to-chromium": { + "version": "1.3.322", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", + "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", + "dev": true + }, + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "dev": true, + "requires": { + "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" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "optional": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "optional": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "optional": true, + "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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "optional": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "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==", + "dev": true + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "requires": { + "source-map": "~0.5.3" + } + }, + "insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true, + "optional": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "optional": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true, + "optional": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true, + "optional": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true, + "optional": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "module-deps": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", + "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "node-releases": { + "version": "1.1.44", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.44.tgz", + "integrity": "sha512-NwbdvJyR7nrcGrXvKAvzc5raj/NkoJudkarh2yIpJ4t0NH4aqjUDz/486P+ynIW5eokKOfzGNRdYoLfBlomruw==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "optional": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "optional": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, + "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=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true, + "optional": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "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==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "optional": true + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "optional": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz", + "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "resolve": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", + "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "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==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "requires": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.0.tgz", + "integrity": "sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^3.0.6", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "requires": { + "minimist": "^1.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "requires": { + "acorn-node": "^1.2.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "requires": { + "process": "~0.11.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true + }, + "undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "^1.1.1" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.0.tgz", + "integrity": "sha512-deZYUNlt2O4buFCa3t5bKLf8A7FPP/TVjwOeVNpw818Ma5nk4MLXls2eoEGS39o8119QIYxTrTDoPQ5B/gTD6w==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b338423 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "esyur", + "version": "1.3.7", + "description": "Distributed Object Framework", + "main": "esyur.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "babel": "./node_modules/.bin/babel src -d build", + "build": "browserify src/esyur.js -t babelify --outfile build/esyur.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/esyur/esyur-js.git" + }, + "author": "Ahmed Zamil", + "license": "MIT", + "bugs": { + "url": "https://github.com/esyur/esyur-js/issues" + }, + "homepage": "https://github.com/esyur/esyur-js#readme", + "dependencies": { + "@babel/runtime": "^7.7.7", + "ws": "^6.2.0" + }, + "devDependencies": { + "@babel/cli": "^7.7.7", + "@babel/core": "^7.7.7", + "@babel/plugin-transform-runtime": "^7.7.6", + "@babel/preset-env": "^7.7.7", + "babel-cli": "^6.0.0", + "babelify": "^10.0.0", + "browserify": "^16.5.0" + } +} diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index 40b878d..0000000 --- a/src/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ \ No newline at end of file diff --git a/src/Data/DataType.js b/src/Data/DataType.js index 34e10e7..742ca66 100644 --- a/src/Data/DataType.js +++ b/src/Data/DataType.js @@ -53,8 +53,8 @@ export default //Array = 0x80, VarArray: 0x80, BoolArray: 0x81, - UInt8Array: 0x82, - Int8Array: 0x83, + Int8Array: 0x82, + UInt8Array: 0x83, CharArray: 0x84, Int16Array: 0x85, UInt16Array: 0x86, diff --git a/src/Resource/Warehouse.js b/src/Resource/Warehouse.js index 5b47412..b274bae 100644 --- a/src/Resource/Warehouse.js +++ b/src/Resource/Warehouse.js @@ -51,6 +51,8 @@ export class WH extends IEventHandler this.protocols = new KeyList(); this._register("connected"); this._register("disconnected"); + ///this._urlRegex = /^(?:([\S]*):\/\/([^\/]*)\/?)/; + this._urlRegex = /^(?:([^\s|:]*):\/\/([^\/]*)\/?)/; } new(type, name, store = null, parent = null, manager = null, attributes = null) @@ -72,29 +74,35 @@ export class WH extends IEventHandler // Should we create a new store ? - if (path.includes("://")) + + if (path.match(this._urlRegex)) + //if (path.includes("://")) { + // with port + //var url = path.split(/(?:):\/\/([^:\/]*):?(\d*)/); + // without port + let url = path.split(this._urlRegex); - var url = path.split("://", 2); - var hostname = url[1].split("/", 2)[0]; - var pathname = url[1].split("/").splice(1).join("/"); - + //var url = path.split("://", 2); + //var hostname = url[1];// url[1].split("/", 2)[0]; + //var pathname = url[2];// url[1].split("/").splice(1).join("/"); + var handler; - if (handler = this.protocols.item(url[0])) + if (handler = this.protocols.item(url[1])) { var store = handler(); - this.put(store, hostname, null, parent, null, 0, manager, attributes); + this.put(store, url[2], null, parent, null, 0, manager, attributes); store.trigger(ResourceTrigger.Open).then(x => { this.warehouseIsOpen = true; - if (pathname.length > 0 && pathname != "") - store.get(pathname).then(r => { + if (url[3].length > 0 && url[3] != "") + store.get(url[3]).then(r => { rt.trigger(r); }).error(e => rt.triggerError(e)); else diff --git a/src/package-lock.json b/src/package-lock.json deleted file mode 100644 index 77c62ad..0000000 --- a/src/package-lock.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "esyur", - "version": "1.2.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" - }, - "ws": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.0.tgz", - "integrity": "sha512-deZYUNlt2O4buFCa3t5bKLf8A7FPP/TVjwOeVNpw818Ma5nk4MLXls2eoEGS39o8119QIYxTrTDoPQ5B/gTD6w==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } -} diff --git a/src/package.json b/src/package.json deleted file mode 100644 index ab6be1f..0000000 --- a/src/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "esyur", - "version": "1.3.5", - "description": "Distributed Object Framework", - "main": "esyur.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/esyur/esyur-js.git" - }, - "author": "Ahmed Zamil", - "license": "MIT", - "bugs": { - "url": "https://github.com/esyur/esyur-js/issues" - }, - "homepage": "https://github.com/esyur/esyur-js#readme", - "dependencies": { - "ws": "^6.2.0" - } -}