{"version":3,"file":"isPlainObject.cjs","names":[],"sources":["../../src/is/isPlainObject.ts"],"sourcesContent":["/**\n * Checks if value is a plain object, that is, an object created by the Object constructor\n * or one with a [[Prototype]] of null.\n *\n * @param value - The value to check\n * @returns Returns true if value is a plain object, else false\n *\n * @example\n * isPlainObject({}) // => true\n * isPlainObject({ a: 1 }) // => true\n * isPlainObject(Object.create(null)) // => true\n * isPlainObject([]) // => false\n * isPlainObject(() => {}) // => false\n * isPlainObject(new Date()) // => false\n */\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n  if (typeof value !== 'object' || value === null) {\n    return false;\n  }\n\n  if (Object.prototype.toString.call(value) !== '[object Object]') {\n    return false;\n  }\n\n  // Handle objects with null prototype\n  if (Object.getPrototypeOf(value) === null) {\n    return true;\n  }\n\n  // Check if it's a plain object by verifying its constructor\n  let proto = value;\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n\n  return Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === proto;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAeA,SAAgB,cAAc,OAAkD;CAC9E,IAAI,OAAO,UAAU,YAAY,UAAU,MACzC,OAAO;CAGT,IAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAC5C,OAAO;CAIT,IAAI,OAAO,eAAe,KAAK,MAAM,MACnC,OAAO;CAIT,IAAI,QAAQ;CACZ,OAAO,OAAO,eAAe,KAAK,MAAM,MACtC,QAAQ,OAAO,eAAe,KAAK;CAGrC,OAAO,OAAO,eAAe,KAAK,MAAM,OAAO,aAAa,OAAO,eAAe,KAAK,MAAM;AAC/F"}