module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId])
/******/ 			return installedModules[moduleId].exports;
/******/
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// identity function for calling harmory imports with the correct context
/******/ 	__webpack_require__.i = function(value) { return value; };
/******/
/******/ 	// define getter function for harmory exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		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 = 136);
/******/ })
/************************************************************************/
/******/ ({

/***/ "./src/entity.js":
/***/ function(module, exports, __webpack_require__) {

"use strict";
'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.createEntity = undefined;

var _keys = __webpack_require__(7);

var _keys2 = _interopRequireDefault(_keys);

var _assign = __webpack_require__(1);

var _assign2 = _interopRequireDefault(_assign);

exports.create = create;

var _properties = __webpack_require__(16);

var _lodash = __webpack_require__(8);

var _lodash2 = _interopRequireDefault(_lodash);

var _object = __webpack_require__(47);

var _object2 = _interopRequireDefault(_object);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function create(sourceObject) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
}

var createEntity = exports.createEntity = function createEntity() {
  var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

  var instance = (0, _properties.mixinPropertyUtils)((0, _assign2.default)({}, object), false);

  (0, _keys2.default)(_object2.default).forEach(function (meth) {
    return instance.hide(meth, function () {
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      return _object2.default[meth].apply(_object2.default, [instance].concat(args));
    });
  });

  if (options !== false && options && options.includeChain !== false) {
    instance.hideGetter('chain', function () {
      return _lodash2.default.chain(instance);
    });
  }

  instance.hide('toJSON', function () {
    return _lodash2.default.omit(instance, 'chain');
  });

  return instance;
};

exports.default = createEntity;

/***/ },

/***/ 1:
/***/ function(module, exports) {

module.exports = require("babel-runtime/core-js/object/assign");

/***/ },

/***/ 136:
/***/ function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("./src/entity.js");


/***/ },

/***/ 16:
/***/ function(module, exports) {

module.exports = require("skypager-util/lib/properties");

/***/ },

/***/ 47:
/***/ function(module, exports) {

module.exports = require("lodash/object");

/***/ },

/***/ 7:
/***/ function(module, exports) {

module.exports = require("babel-runtime/core-js/object/keys");

/***/ },

/***/ 8:
/***/ function(module, exports) {

module.exports = require("lodash");

/***/ }

/******/ });
//# sourceMappingURL=entity.js.map