{"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","setProp","paths","value","entry","entries","idx","isPlainObject","isArray","TypeError","isLast","length","newValue","getPropStrict","path","getProp","defaultValue","undefined","deleteProps","forEach","updateObject","old","update","val","existing","FrameworkError","context","customMerge","results","processors","finalResult","next","oldValue","takeFirstBy","mapObj","obj","fn","updated","pair"],"mappings":"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","file":"object.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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\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 (!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 : (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 deleteProps<T, K extends keyof T>(target: T, keys: readonly K[]) {\n  keys.forEach((key) => {\n    // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n    delete target[key];\n  });\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>(fn: (key: K, value: T[K]) => T[K]): T {\n    const updated: T = Object.assign({}, obj);\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"]}