{"version":3,"sources":["../../../src/internals/helpers/object.ts"],"names":["assignFactory","target","source","Object","assign","a","b","omitEmptyValues","R","pickBy","isTruthy","omitUndefined","isDefined","hasProp","key","Boolean","prototype","hasOwnProperty","call","hasProps","keys","every","UnsafePathKeys","Set","setProp","paths","value","entry","entries","idx","has","TypeError","String","isPlainObject","isArray","isLast","length","newValue","getPropStrict","path","getProp","defaultValue","undefined","popProp","fallback","updateObject","old","update","val","existing","FrameworkError","context","customMerge","results","processors","finalResult","next","oldValue","takeFirstBy","mapObj","obj","fn","updated","pair","safeDefineProperty","get","defineProperty","enumerable","configurable","e","getLast","iterable","iterator","Symbol","result","done","arguments","Error","lastValue"],"mappings":"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","file":"object.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as R from \"remeda\";\nimport { FrameworkError } from \"@/errors.js\";\n\nexport type Override<T, T2 extends Partial<T>> = {\n  [K in keyof T2]: K extends keyof T ? T2[K] : never;\n};\n\nexport function assignFactory<T extends NonNullable<unknown>, T2 extends Partial<T>>(target: T) {\n  return (source: NonNullable<Override<T, T2>>) => {\n    Object.assign(target, source);\n  };\n}\n\nexport const assign = <T extends NonNullable<unknown>, T2 extends Partial<T>>(\n  a: T,\n  b: NonNullable<Override<T, T2>>,\n) => assignFactory(a)(b);\nexport const omitEmptyValues = R.pickBy(R.isTruthy);\nexport const omitUndefined = R.pickBy(R.isDefined);\n\nexport function hasProp<T>(target: T | undefined, key: keyof T): key is keyof T {\n  return Boolean(target) && Object.prototype.hasOwnProperty.call(target, key);\n}\n\nexport function hasProps<T>(keys: (keyof T)[]) {\n  return (target: T | undefined) => keys.every((key) => hasProp(target, key));\n}\n\nconst UnsafePathKeys = new Set<keyof any>([\"__proto__\"]);\n\nexport function setProp(target: unknown, paths: readonly (keyof any)[], value: unknown) {\n  for (const entry of paths.entries()) {\n    const [idx, key] = entry as [number, keyof object];\n    if (UnsafePathKeys.has(key)) {\n      throw new TypeError(`Cannot assign unsafe object path key \"${String(key)}\"`);\n    }\n\n    if (!R.isPlainObject(target) && !R.isArray(target)) {\n      throw new TypeError(\"Only plain objects and arrays are supported!\");\n    }\n\n    const isLast = idx === paths.length - 1;\n    const newValue = isLast ? value : hasProp(target, key) ? target[key] : {};\n    Object.assign(target, { [key]: newValue });\n    target = target[key];\n  }\n}\n\nexport function getPropStrict(target: NonNullable<unknown>, path: string): any {\n  if (!target || !(path in target)) {\n    throw new TypeError(`Target does not contain key \"${path}\"`);\n  }\n  return target[path as keyof typeof target];\n}\n\nexport function getProp(\n  target: unknown,\n  paths: readonly (keyof any)[],\n  defaultValue: any = undefined,\n) {\n  let value: any = target;\n  if (!value) {\n    return undefined;\n  }\n\n  for (const key of paths) {\n    if (!hasProp(value, key)) {\n      return defaultValue;\n    }\n    value = value[key];\n  }\n  return value;\n}\n\nexport function popProp<T, K extends keyof T>(\n  target: T,\n  key: K,\n  fallback: T[K] | null = null,\n): T[K] | null {\n  if (!hasProp(target, key)) {\n    return fallback;\n  }\n  const value = getProp(target, [key]);\n  try {\n    // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n    delete target[key];\n  } catch {\n    /* empty */\n  }\n  return value;\n}\n\nexport function updateObject<T extends object, L extends object>(\n  old: T,\n  update: L,\n): asserts old is T & L {\n  for (const [key, val] of Object.entries(update)) {\n    const existing = old[key as keyof T];\n    if (existing !== undefined && existing !== null) {\n      throw new FrameworkError(\n        `Cannot update object. Key '${key}' already exists and is defined.`,\n        [],\n        {\n          context: {\n            existing,\n            update: val,\n          },\n        },\n      );\n    }\n    old[key as keyof T] = val;\n  }\n}\n\nexport function customMerge<T extends NonNullable<unknown>>(\n  results: T[],\n  processors: {\n    [K in keyof T]: (value: T[K], oldValue: T[K]) => T[K];\n  },\n) {\n  if (results.length === 0) {\n    throw new TypeError(\"Cannot merge content of an empty array!\");\n  }\n\n  const finalResult = {} as T;\n  for (const next of results) {\n    for (const [key, value] of R.entries(next)) {\n      const oldValue = finalResult[key as keyof T];\n      // @ts-expect-error weak typing due to  generated types\n      finalResult[key] = (processors[key] ?? R.takeFirstBy(1))(value, oldValue);\n    }\n  }\n  return finalResult;\n}\n\nexport function mapObj<T extends object>(obj: T) {\n  return function <K extends keyof T, R = T[K]>(\n    fn: (key: K, value: T[K]) => R,\n  ): Record<keyof T, R> {\n    const updated = {} as Record<keyof T, R>;\n    for (const pair of Object.entries(obj)) {\n      const [key, value] = pair as [K, T[K]];\n      updated[key] = fn(key, value);\n    }\n    return updated;\n  };\n}\n\nexport function safeDefineProperty<T, K extends keyof T>(target: T, key: K, get: () => T[K]) {\n  try {\n    Object.defineProperty(target, key, {\n      enumerable: false,\n      configurable: false,\n      get() {\n        return get();\n      },\n    });\n  } catch (e) {\n    if (!(e instanceof TypeError)) {\n      throw e;\n    }\n  }\n}\n\nexport function getLast<T>(iterable: Iterable<T>, fallback?: T): T {\n  const iterator = iterable[Symbol.iterator]();\n  let result = iterator.next();\n\n  if (result.done) {\n    if (arguments.length < 2) {\n      throw new Error(`Target is empty.`);\n    }\n    return fallback as T;\n  }\n\n  let lastValue: T;\n  do {\n    lastValue = result.value;\n    result = iterator.next();\n  } while (!result.done);\n\n  return lastValue;\n}\n"]}