UNPKG

inject-js

Version:

lightweight, small, high level dependency injector with object lifetime management

1,814 lines (1,440 loc) 174 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else { var a = factory(); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(typeof self !== 'undefined' ? self : this, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 33); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _curry1 = /*#__PURE__*/__webpack_require__(1); var _isPlaceholder = /*#__PURE__*/__webpack_require__(9); /** * Optimized internal two-arity curry function. * * @private * @category Function * @param {Function} fn The function to curry. * @return {Function} The curried function. */ function _curry2(fn) { return function f2(a, b) { switch (arguments.length) { case 0: return f2; case 1: return _isPlaceholder(a) ? f2 : _curry1(function (_b) { return fn(a, _b); }); default: return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) { return fn(_a, b); }) : _isPlaceholder(b) ? _curry1(function (_b) { return fn(a, _b); }) : fn(a, b); } }; } module.exports = _curry2; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _isPlaceholder = /*#__PURE__*/__webpack_require__(9); /** * Optimized internal one-arity curry function. * * @private * @category Function * @param {Function} fn The function to curry. * @return {Function} The curried function. */ function _curry1(fn) { return function f1(a) { if (arguments.length === 0 || _isPlaceholder(a)) { return f1; } else { return fn.apply(this, arguments); } }; } module.exports = _curry1; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _provideTransient = __webpack_require__(82); Object.defineProperty(exports, 'provideTransient', { enumerable: true, get: function get() { return _interopRequireDefault(_provideTransient).default; } }); var _provideCached = __webpack_require__(85); Object.defineProperty(exports, 'provideCached', { enumerable: true, get: function get() { return _interopRequireDefault(_provideCached).default; } }); var _provideRoot = __webpack_require__(86); Object.defineProperty(exports, 'provideRoot', { enumerable: true, get: function get() { return _interopRequireDefault(_provideRoot).default; } }); var _provideParent = __webpack_require__(87); Object.defineProperty(exports, 'provideParent', { enumerable: true, get: function get() { return _interopRequireDefault(_provideParent).default; } }); var _provideProvider = __webpack_require__(88); Object.defineProperty(exports, 'provideProvider', { enumerable: true, get: function get() { return _interopRequireDefault(_provideProvider).default; } }); var _provideState = __webpack_require__(89); Object.defineProperty(exports, 'provideState', { enumerable: true, get: function get() { return _interopRequireDefault(_provideState).default; } }); var _buildProvider = __webpack_require__(90); Object.defineProperty(exports, 'buildProvider', { enumerable: true, get: function get() { return _interopRequireDefault(_buildProvider).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _assertLifetime = __webpack_require__(34); Object.defineProperty(exports, 'assertLifetime', { enumerable: true, get: function get() { return _interopRequireDefault(_assertLifetime).default; } }); var _registerType = __webpack_require__(35); Object.defineProperty(exports, 'registerType', { enumerable: true, get: function get() { return _interopRequireDefault(_registerType).default; } }); var _registerFake = __webpack_require__(36); Object.defineProperty(exports, 'registerFake', { enumerable: true, get: function get() { return _interopRequireDefault(_registerFake).default; } }); var _registerInstantiable = __webpack_require__(37); Object.defineProperty(exports, 'registerInstantiable', { enumerable: true, get: function get() { return _interopRequireDefault(_registerInstantiable).default; } }); var _register = __webpack_require__(38); Object.defineProperty(exports, 'register', { enumerable: true, get: function get() { return _interopRequireDefault(_register).default; } }); var _registerProvider = __webpack_require__(44); Object.defineProperty(exports, 'registerProvider', { enumerable: true, get: function get() { return _registerProvider.registerProvider; } }); Object.defineProperty(exports, 'registerMain', { enumerable: true, get: function get() { return _registerProvider.registerMain; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _buildAnonymousDescriptor = __webpack_require__(45); Object.defineProperty(exports, 'buildAnonymousDescriptor', { enumerable: true, get: function get() { return _interopRequireDefault(_buildAnonymousDescriptor).default; } }); var _assertCircularReferences = __webpack_require__(49); Object.defineProperty(exports, 'assertCircularReferences', { enumerable: true, get: function get() { return _interopRequireDefault(_assertCircularReferences).default; } }); var _buildGraph = __webpack_require__(50); Object.defineProperty(exports, 'buildGraph', { enumerable: true, get: function get() { return _interopRequireDefault(_buildGraph).default; } }); var _getDescriptor = __webpack_require__(135); Object.defineProperty(exports, 'getDescriptor', { enumerable: true, get: function get() { return _interopRequireDefault(_getDescriptor).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _getDependencyNames = __webpack_require__(18); Object.defineProperty(exports, 'getDependencyNames', { enumerable: true, get: function get() { return _interopRequireDefault(_getDependencyNames).default; } }); var _clearState = __webpack_require__(46); Object.defineProperty(exports, 'clearState', { enumerable: true, get: function get() { return _interopRequireDefault(_clearState).default; } }); var _uuid = __webpack_require__(8); Object.defineProperty(exports, 'uuid', { enumerable: true, get: function get() { return _interopRequireDefault(_uuid).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _curry1 = /*#__PURE__*/__webpack_require__(1); var _has = /*#__PURE__*/__webpack_require__(11); var _isArguments = /*#__PURE__*/__webpack_require__(48); // cover IE < 9 keys issues var hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString'); var nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug var hasArgsEnumBug = /*#__PURE__*/function () { 'use strict'; return arguments.propertyIsEnumerable('length'); }(); var contains = function contains(list, item) { var idx = 0; while (idx < list.length) { if (list[idx] === item) { return true; } idx += 1; } return false; }; /** * Returns a list containing the names of all the enumerable own properties of * the supplied object. * Note that the order of the output array is not guaranteed to be consistent * across different JS platforms. * * @func * @memberOf R * @since v0.1.0 * @category Object * @sig {k: v} -> [k] * @param {Object} obj The object to extract properties from * @return {Array} An array of the object's own properties. * @see R.keysIn, R.values * @example * * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c'] */ var _keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? function keys(obj) { return Object(obj) !== obj ? [] : Object.keys(obj); } : function keys(obj) { if (Object(obj) !== obj) { return []; } var prop, nIdx; var ks = []; var checkArgsLength = hasArgsEnumBug && _isArguments(obj); for (prop in obj) { if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) { ks[ks.length] = prop; } } if (hasEnumBug) { nIdx = nonEnumerableProps.length - 1; while (nIdx >= 0) { prop = nonEnumerableProps[nIdx]; if (_has(prop, obj) && !contains(ks, prop)) { ks[ks.length] = prop; } nIdx -= 1; } } return ks; }; var keys = /*#__PURE__*/_curry1(_keys); module.exports = keys; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _curry1 = /*#__PURE__*/__webpack_require__(1); var _curry2 = /*#__PURE__*/__webpack_require__(0); var _isPlaceholder = /*#__PURE__*/__webpack_require__(9); /** * Optimized internal three-arity curry function. * * @private * @category Function * @param {Function} fn The function to curry. * @return {Function} The curried function. */ function _curry3(fn) { return function f3(a, b, c) { switch (arguments.length) { case 0: return f3; case 1: return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) { return fn(a, _b, _c); }); case 2: return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) { return fn(_a, b, _c); }) : _isPlaceholder(b) ? _curry2(function (_b, _c) { return fn(a, _b, _c); }) : _curry1(function (_c) { return fn(a, b, _c); }); default: return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) { return fn(_a, _b, c); }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) { return fn(_a, b, _c); }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) { return fn(a, _b, _c); }) : _isPlaceholder(a) ? _curry1(function (_a) { return fn(_a, b, c); }) : _isPlaceholder(b) ? _curry1(function (_b) { return fn(a, _b, c); }) : _isPlaceholder(c) ? _curry1(function (_c) { return fn(a, b, _c); }) : fn(a, b, c); } }; } module.exports = _curry3; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var i = 0; exports.default = { getNext: function getNext() { return ++i; }, reset: function reset() { i = 0; } }; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _isPlaceholder(a) { return a != null && (typeof a === 'undefined' ? 'undefined' : _typeof(a)) === 'object' && a['@@functional/placeholder'] === true; } module.exports = _isPlaceholder; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _arity(n, fn) { /* eslint-disable no-unused-vars */ switch (n) { case 0: return function () { return fn.apply(this, arguments); }; case 1: return function (a0) { return fn.apply(this, arguments); }; case 2: return function (a0, a1) { return fn.apply(this, arguments); }; case 3: return function (a0, a1, a2) { return fn.apply(this, arguments); }; case 4: return function (a0, a1, a2, a3) { return fn.apply(this, arguments); }; case 5: return function (a0, a1, a2, a3, a4) { return fn.apply(this, arguments); }; case 6: return function (a0, a1, a2, a3, a4, a5) { return fn.apply(this, arguments); }; case 7: return function (a0, a1, a2, a3, a4, a5, a6) { return fn.apply(this, arguments); }; case 8: return function (a0, a1, a2, a3, a4, a5, a6, a7) { return fn.apply(this, arguments); }; case 9: return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) { return fn.apply(this, arguments); }; case 10: return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) { return fn.apply(this, arguments); }; default: throw new Error('First argument to _arity must be a non-negative integer no greater than ten'); } } module.exports = _arity; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _has(prop, obj) { return Object.prototype.hasOwnProperty.call(obj, prop); } module.exports = _has; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array, else `false`. * @example * * _.isArray([1, 2, 3]); * // => true * * _.isArray(document.body.children); * // => false * * _.isArray('abc'); * // => false * * _.isArray(_.noop); * // => false */ var isArray = Array.isArray; module.exports = isArray; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _Symbol = __webpack_require__(20), getRawTag = __webpack_require__(64), objectToString = __webpack_require__(65); /** `Object#toString` result references. */ var nullTag = '[object Null]', undefinedTag = '[object Undefined]'; /** Built-in value references. */ var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; /** * The base implementation of `getTag` without fallbacks for buggy environments. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ function baseGetTag(value) { if (value == null) { return value === undefined ? undefinedTag : nullTag; } return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); } module.exports = baseGetTag; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return value != null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object'; } module.exports = isObjectLike; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Tests whether or not an object is an array. * * @private * @param {*} val The object to test. * @return {Boolean} `true` if `val` is an array, `false` otherwise. * @example * * _isArray([]); //=> true * _isArray(null); //=> false * _isArray({}); //=> false */ module.exports = Array.isArray || function _isArray(val) { return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]'; }; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _isArrayLike = /*#__PURE__*/__webpack_require__(95); var _xwrap = /*#__PURE__*/__webpack_require__(96); var bind = /*#__PURE__*/__webpack_require__(97); function _arrayReduce(xf, acc, list) { var idx = 0; var len = list.length; while (idx < len) { acc = xf['@@transducer/step'](acc, list[idx]); if (acc && acc['@@transducer/reduced']) { acc = acc['@@transducer/value']; break; } idx += 1; } return xf['@@transducer/result'](acc); } function _iterableReduce(xf, acc, iter) { var step = iter.next(); while (!step.done) { acc = xf['@@transducer/step'](acc, step.value); if (acc && acc['@@transducer/reduced']) { acc = acc['@@transducer/value']; break; } step = iter.next(); } return xf['@@transducer/result'](acc); } function _methodReduce(xf, acc, obj, methodName) { return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc)); } var symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator'; function _reduce(fn, acc, list) { if (typeof fn === 'function') { fn = _xwrap(fn); } if (_isArrayLike(list)) { return _arrayReduce(fn, acc, list); } if (typeof list['fantasy-land/reduce'] === 'function') { return _methodReduce(fn, acc, list, 'fantasy-land/reduce'); } if (list[symIterator] != null) { return _iterableReduce(fn, acc, list[symIterator]()); } if (typeof list.next === 'function') { return _iterableReduce(fn, acc, list); } if (typeof list.reduce === 'function') { return _methodReduce(fn, acc, list, 'reduce'); } throw new TypeError('reduce: list must be array or iterable'); } module.exports = _reduce; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _isString(x) { return Object.prototype.toString.call(x) === '[object String]'; } module.exports = _isString; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (type) { var serialized_type = type.toString(); var serialized_dependencies = dependency_pattern.exec(serialized_type); return serialized_dependencies ? serialized_dependencies[1].split(separatorPattern) : undefined; }; var dependency_pattern = /^function *\w* *?\( *((?:\w+|(?:, *?))+) *?\)/; var separatorPattern = /, */; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { return typeof obj === "undefined" ? "undefined" : _typeof2(obj); } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof2(obj); }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); } }return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var ValueConverter = function () { function ValueConverter() { _classCallCheck(this, ValueConverter); } _createClass(ValueConverter, null, [{ key: 'toString', /** * @param {*} value * @returns {string} */ value: function toString(value) { if (typeof value === 'string') { return 'string["' + value + '"]'; } if (typeof value === 'number') { if (Number.isInteger(value)) { return 'int[' + value + ']'; } return 'float[' + value + ']'; } if (typeof value === 'boolean') { return 'boolean[' + (value ? "true" : "false") + ']'; } if (typeof value === 'function') { return 'function[' + value.toString() + ']'; } if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { if (Array.isArray(value)) { return 'array[length: ' + value.length + ']'; } if (value instanceof Map) { return 'Map[size: ' + value.size + ']'; } if (value instanceof WeakMap) { return 'WeakMap[]'; } if (value instanceof Set) { return 'Set[size: ' + value.size + ']'; } if (value instanceof WeakSet) { return 'WeakSet[]'; } if (value instanceof String) { return 'String["' + value + '"]'; } if (value instanceof Number) { var source = value.valueOf(); if (Number.isInteger(source)) { return 'Number:int[' + source + ']'; } return 'Number:float[' + source + ']'; } if (value instanceof Boolean) { return 'Boolean[' + (value.valueOf() ? "true" : "false") + ']'; } if (value instanceof Date) { return 'Date["' + value.toUTCString() + '"]'; } if (value instanceof RegExp) { return 'RegExp[' + value.toString() + ']'; } return 'object[' + JSON.stringify(value) + ']'; } if (typeof value === 'undefined') { return 'undefined'; } throw 'Unhandled type ' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)); } }]); return ValueConverter; }(); module.exports = ValueConverter; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var root = __webpack_require__(21); /** Built-in value references. */ var _Symbol = root.Symbol; module.exports = _Symbol; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var freeGlobal = __webpack_require__(22); /** Detect free variable `self`. */ var freeSelf = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root = freeGlobal || freeSelf || Function('return this')(); module.exports = root; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /** Detect free variable `global` from Node.js. */ var freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global && global.Object === Object && global; module.exports = freeGlobal; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(63))) /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (module) { if (!module.webpackPolyfill) { module.deprecate = function () {}; module.paths = []; // module.parent = undefined by default if (!module.children) module.children = []; Object.defineProperty(module, "loaded", { enumerable: true, get: function get() { return module.l; } }); Object.defineProperty(module, "id", { enumerable: true, get: function get() { return module.i; } }); module.webpackPolyfill = 1; } return module; }; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER = 9007199254740991; /** * Checks if `value` is a valid array-like length. * * **Note:** This method is loosely based on * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. * @example * * _.isLength(3); * // => true * * _.isLength(Number.MIN_VALUE); * // => false * * _.isLength(Infinity); * // => false * * _.isLength('3'); * // => false */ function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } module.exports = isLength; /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isFunction = __webpack_require__(77), isLength = __webpack_require__(24); /** * Checks if `value` is array-like. A value is considered array-like if it's * not a function and has a `value.length` that's an integer greater than or * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is array-like, else `false`. * @example * * _.isArrayLike([1, 2, 3]); * // => true * * _.isArrayLike(document.body.children); * // => true * * _.isArrayLike('abc'); * // => true * * _.isArrayLike(_.noop); * // => false */ function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } module.exports = isArrayLike; /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.identityf = undefined; var _identity = __webpack_require__(83); var _identity2 = _interopRequireDefault(_identity); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function liftuf(fn) { return function (a) { return function () { return fn(a); }; }; } var identityf = exports.identityf = liftuf(_identity2.default); /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _isArray = /*#__PURE__*/__webpack_require__(15); var _isTransformer = /*#__PURE__*/__webpack_require__(94); /** * Returns a function that dispatches with different strategies based on the * object in list position (last argument). If it is an array, executes [fn]. * Otherwise, if it has a function with one of the given method names, it will * execute that function (functor case). Otherwise, if it is a transformer, * uses transducer [xf] to return a new transformer (transducer case). * Otherwise, it will default to executing [fn]. * * @private * @param {Array} methodNames properties to check for a custom implementation * @param {Function} xf transducer to initialize if object is transformer * @param {Function} fn default ramda implementation * @return {Function} A function that dispatches on object in list position */ function _dispatchable(methodNames, xf, fn) { return function () { if (arguments.length === 0) { return fn(); } var args = Array.prototype.slice.call(arguments, 0); var obj = args.pop(); if (!_isArray(obj)) { var idx = 0; while (idx < methodNames.length) { if (typeof obj[methodNames[idx]] === 'function') { return obj[methodNames[idx]].apply(obj, args); } idx += 1; } if (_isTransformer(obj)) { var transducer = xf.apply(null, args); return transducer(obj); } } return fn.apply(this, arguments); }; } module.exports = _dispatchable; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _map(fn, functor) { var idx = 0; var len = functor.length; var result = Array(len); while (idx < len) { result[idx] = fn(functor[idx]); idx += 1; } return result; } module.exports = _map; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { init: function init() { return this.xf['@@transducer/init'](); }, result: function result(_result) { return this.xf['@@transducer/result'](_result); } }; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _arity = /*#__PURE__*/__webpack_require__(10); var _curry1 = /*#__PURE__*/__webpack_require__(1); var _curry2 = /*#__PURE__*/__webpack_require__(0); var _curryN = /*#__PURE__*/__webpack_require__(99); /** * Returns a curried equivalent of the provided function, with the specified * arity. The curried function has two unusual capabilities. First, its * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the * following are equivalent: * * - `g(1)(2)(3)` * - `g(1)(2, 3)` * - `g(1, 2)(3)` * - `g(1, 2, 3)` * * Secondly, the special placeholder value [`R.__`](#__) may be used to specify * "gaps", allowing partial application of any combination of arguments, * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__), * the following are equivalent: * * - `g(1, 2, 3)` * - `g(_, 2, 3)(1)` * - `g(_, _, 3)(1)(2)` * - `g(_, _, 3)(1, 2)` * - `g(_, 2)(1)(3)` * - `g(_, 2)(1, 3)` * - `g(_, 2)(_, 3)(1)` * * @func * @memberOf R * @since v0.5.0 * @category Function * @sig Number -> (* -> a) -> (* -> a) * @param {Number} length The arity for the returned function. * @param {Function} fn The function to curry. * @return {Function} A new, curried function. * @see R.curry * @example * * var sumArgs = (...args) => R.sum(args); * * var curriedAddFourNumbers = R.curryN(4, sumArgs); * var f = curriedAddFourNumbers(1, 2); * var g = f(3); * g(4); //=> 10 */ var curryN = /*#__PURE__*/_curry2(function curryN(length, fn) { if (length === 1) { return _curry1(fn); } return _arity(length, _curryN(length, [], fn)); }); module.exports = curryN; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _curry2 = /*#__PURE__*/__webpack_require__(0); var _isFunction = /*#__PURE__*/__webpack_require__(106); var curryN = /*#__PURE__*/__webpack_require__(30); var toString = /*#__PURE__*/__webpack_require__(107); /** * Turns a named method with a specified arity into a function that can be * called directly supplied with arguments and a target object. * * The returned function is curried and accepts `arity + 1` parameters where * the final parameter is the target object. * * @func * @memberOf R * @since v0.1.0 * @category Function * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *) * @param {Number} arity Number of arguments the returned function should take * before the target object. * @param {String} method Name of the method to call. * @return {Function} A new curried function. * @see R.construct * @example * * var sliceFrom = R.invoker(1, 'slice'); * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm' * var sliceFrom6 = R.invoker(2, 'slice')(6); * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh' * @symb R.invoker(0, 'method')(o) = o['method']() * @symb R.invoker(1, 'method')(a, o) = o['method'](a) * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b) */ var invoker = /*#__PURE__*/_curry2(function invoker(arity, method) { return curryN(arity + 1, function () { var target = arguments[arity]; if (target != null && _isFunction(target[method])) { return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity)); } throw new TypeError(toString(target) + ' does not have a method named "' + method + '"'); }); }); module.exports = invoker; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _isArray = /*#__PURE__*/__webpack_require__(15); /** * This checks whether a function has a [methodname] function. If it isn't an * array it will execute that function otherwise it will default to the ramda * implementation. * * @private * @param {Function} fn ramda implemtation * @param {String} methodname property to check for a custom implementation * @return {Object} Whatever the return value of the method is. */ function _checkForMethod(methodname, fn) { return function () { var length = arguments.length; if (length === 0) { return fn(); } var obj = arguments[length - 1]; return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1)); }; } module.exports = _checkForMethod; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.createInjector = createInjector; var _registration = __webpack_require__(3); var _injection = __webpack_require__(4); var _providers = __webpack_require__(2); var _util = __webpack_require__(5); function createInjector() { var curry = function curry(fn) { return function (arg1) { return function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return fn.apply(undefined, [arg1].concat(args)); }; }; }; var stores = { types: {}, providers: {}, fakes: {}, state: {}, cache: {}, singletons: {}, DEFAULT_LIFETIME: 'transient' }; var registration = { registerType: curry(_registration.registerType)(stores), registerFake: curry(_registration.registerFake)(stores), registerProvider: curry(_registration.registerProvider)(stores), registerMain: curry(_registration.registerMain)(stores) }; var injection = { inject: function inject(name) { var descriptor = (0, _injection.getDescriptor)(stores, name); if (stores.cache[name] && stores.cache[name].descriptor.hashCode === descriptor.hashCode) { return stores.cache[name]((0, _injection.buildGraph)(descriptor, stores)); } return (0, _providers.buildProvider)(stores, descriptor)((0, _injection.buildGraph)(descriptor, stores)); }, get: function get(name, adhoc_dependencies, context) { if (name.indexOf('::provider') > -1) { name = name.split('::provider')[0]; var _spec = injection.inject(name); return _spec.provider; } var spec = injection.inject(name); return spec.provider.call(context, adhoc_dependencies); }, run: function run(context, adhoc_dependencies) { if (!stores.providers.main) { throw 'No main method registered. Please register one by running injector.registerMain() before running the app'; } return injection.get('main', context, adhoc_dependencies); }, getType: function getType(name) { return (stores.fakes[name] || stores.types[name]).type; } }; var util = { clearState: function clearState() { return (0, _util.clearState)(stores); } }; return _extends({}, registration, injection, util); } /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (lifetime) { if (!~lifetimes.indexOf(lifetime)) { throw 'invalid lifetime "' + lifetime + '" provided. Valid lifetimes are singleton, transient, instance and parent'; } }; var lifetimes = ['singleton', 'transient', 'root', 'parent', 'state']; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (runtimeStores, name, type, lifetime, provider) { if (runtimeStores.cache[name]) { if (lifetime === 'singleton') { throw 'you cannot re-register a singleton that has already been instantiated'; } delete runtimeStores.cache[name]; } (0, _index.registerInstantiable)(runtimeStores.types, name, type, lifetime || runtimeStores.DEFAULT_LIFETIME, provider); }; var _index = __webpack_require__(3); /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (runtimeStores, name, type, lifetime, provider) { if (runtimeStores.cache[name]) { delete runtimeStores.cache[name]; } (0, _index.registerInstantiable)(runtimeStores.fakes, name, type, lifetime || runtimeStores.DEFAULT_LIFETIME, provider); }; var _index = __webpack_require__(3); /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (targetStore, name, type, lifetime, provider) { (0, _registration.assertLifetime)(lifetime); var newDescriptor = (0, _registration.register)(name, type, lifetime); if (provider) { newDescriptor.provider = (0, _registration.register)(name + '::passive', provider); newDescriptor.provider.dependencies.shift(); } targetStore[name] = newDescriptor; }; var _registration = __webpack_require__(3); /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (name, typeDescriptor, lifetime) { var type = void 0, dependencies = void 0; (0, _assertions.assertNameRequired)(name); (0, _assertions.assertTypeRequired)(typeDescriptor); if (typeof typeDescriptor === 'function') { dependencies = typeDescriptor.$inject || typeDescriptor.prototype.$inject || (0, _getDependencyNames2.default)(typeDescriptor); type = typeDescriptor; } else if (Array.isArray(typeDescriptor)) { type = typeDescriptor[typeDescriptor.length - 1]; (0, _assertions.assertTypeDependency)(typeDescriptor, type); dependencies = typeDescriptor.length > 1 ? typeDescriptor.slice(0, typeDescriptor.length - 1) : undefined; } else { throw 'type must be a function or an array'; } (0, _assertions.assertTypeProvided)(type); return { name: name, type: type, dependencies: dependencies, lifetime: lifetime, hashCode: _uuid2.default.getNext() }; }; var _getDependencyNames = __webpack_require__(18); var _getDependencyNames2 = _interopRequireDefault(_getDependencyNames); var _uuid = __webpack_require__(8); var _uuid2 = _interopRequireDefault(_uuid); var _assertions = __webpack_require__(39); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.assertDestination = assertDestination; exports.assertNameRequired = assertNameRequired; exports.assertTypeRequired = assertTypeRequired; exports.assertTypeDependency = assertTypeDependency; exports.assertTypeProvided = assertTypeProvided; var _assertJs = __webpack_require__(40); var _assertJs2 = _interopRequireDefault(_assertJs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function assertDestination(where) { _assertJs2.default.oneOf(where, ['types', 'providers', 'fakes'], 'invalid destination "' + where + '" provided. Valid destinations are types, providers and fakes'); } function assertNameRequired(name) { _assertJs2.default.string(name, 'Type must have a name'); _assertJs2.default.notEmpty(name, 'Type must have a name'); } function assertTypeRequired(type) { _assertJs2.default.true(!!type, 'no type was passed'); } function assertTypeDependency(type, realType) { _assertJs2.default.false(!!(type.$inject || realType.$inject), 'passed type cannot have both array notation and the $inject property populated'); } function assertTypeProvided(realType) { _assertJs2.default.isFunction(realType, 'no type was passed'); } /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var assert = __webpack_require__(41); module.exports = assert; if (typeof window !== 'undefined') { window.Assert = assert; } /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { return typeof obj === "undefined" ? "undefined" : _typeof2(obj); } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof2(obj); }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); } }return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var InvalidValueException = __webpack_require__(42); var ValueConverter = __webpack_require__(19); var Assert = function () { function Assert() { _classCallCheck(this, Assert); } _createClass(Assert, null, [{ key: 'instanceOf', /** * @param {object} objectValue * @param {function} expectedInstance * @param {string} [message] */ value: function instanceOf(objectValue, expectedInstance) { var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ""; this.string(message, "Custom error message passed to Assert.instanceOf needs to be a valid string."); if ((typeof objectValue === 'undefined' ? 'undefined' : _typeof(objectValue)) !== 'object') { throw InvalidValueException.expected("object", objectValue, message); } if (!(objectValue instanceof expectedInstance)) { throw InvalidValueException.expected(expectedInstance.name, objectValue, message.length ? message : "Expected instance of \"${expected}\" but got \"${received}\"."); } } }, { key: 'instanceOneOf', value: function instanceOneOf(objectValue, expectedInstances) { var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ""; this.string(message, "Custom error message passed to Assert.instanceOf needs to be a valid string."); this.array(expectedInstances); var instance = expectedInstances.find(function (expectedInstance) { return objectValue instanceof expectedInstance; }); if (instance === undefined) { throw InvalidValueException.expected(expectedInstances.map(function (instance) { return ValueConverter.toString(instance); }).join(', '), objectValue, message.length ? message : "Expected instance of \"${expected}\" but got \"${received}\"."); } } /** * @param {int} integerValue * @param {string} [message] */ }, { key: 'integer', value: function integer(integerValue) { var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; this.string(message, "Custom error message passed to Assert.integer needs to be a valid string."); if (!Number.isInteger(integerValue)) { throw InvalidValueException.expected("integer", integerValue, message); } } /** * @param {number} numberValue * @param {string} [message] */ }, { key: 'number', value: function number(numberValue) { var message = arguments.length > 1 && arguments[1] !== undefin