import { a6 as _createAssigner, aN as _assignValue, aw as _copyObject, aO as isArrayLike_1, aP as _isPrototype, as as keys_1, a8 as _baseRest, aQ as eq_1, aE as _isIterateeCall, ae as keysIn_1 } from "./index.js";
var assignValue = _assignValue, copyObject = _copyObject, createAssigner = _createAssigner, isArrayLike = isArrayLike_1, isPrototype = _isPrototype, keys = keys_1;
var objectProto$1 = Object.prototype;
var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
var assign = createAssigner(function(object, source) {
  if (isPrototype(source) || isArrayLike(source)) {
    copyObject(source, keys(source), object);
    return;
  }
  for (var key in source) {
    if (hasOwnProperty$1.call(source, key)) {
      assignValue(object, key, source[key]);
    }
  }
});
var assign_1 = assign;
var baseRest = _baseRest, eq = eq_1, isIterateeCall = _isIterateeCall, keysIn = keysIn_1;
var objectProto = Object.prototype;
var hasOwnProperty = objectProto.hasOwnProperty;
var defaults = baseRest(function(object, sources) {
  object = Object(object);
  var index = -1;
  var length = sources.length;
  var guard = length > 2 ? sources[2] : void 0;
  if (guard && isIterateeCall(sources[0], sources[1], guard)) {
    length = 1;
  }
  while (++index < length) {
    var source = sources[index];
    var props = keysIn(source);
    var propsIndex = -1;
    var propsLength = props.length;
    while (++propsIndex < propsLength) {
      var key = props[propsIndex];
      var value = object[key];
      if (value === void 0 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {
        object[key] = source[key];
      }
    }
  }
  return object;
});
var defaults_1 = defaults;
export { assign_1 as a, defaults_1 as d };
