{
  "version": 3,
  "sources": ["../../../../src/packages/hooks.read-package-hook/createReadPackageHook.ts"],
  "sourcesContent": ["import { packageExtensions as compatPackageExtensions } from '@yarnpkg/extensions';\nimport type {\n  LockFileDir,\n  PackageExtension,\n  PackageManifest,\n  ProjectManifest,\n  ReadPackageHook,\n} from '../types/index.ts';\nimport isEmpty from 'ramda/src/isEmpty';\nimport pipeWith from 'ramda/src/pipeWith';\nimport { createOptionalDependenciesRemover } from './createOptionalDependenciesRemover.ts';\nimport { createPackageExtender } from './createPackageExtender.ts';\nimport { createVersionsOverrider } from './createVersionsOverrider.ts';\nimport type { PackageSelector } from '../parse-overrides/index.ts';\n\nexport function createReadPackageHook({\n  ignoreCompatibilityDb,\n  lockfileDir,\n  overrides,\n  ignoredOptionalDependencies,\n  packageExtensions,\n  readPackageHook,\n}: {\n  ignoreCompatibilityDb?: boolean | undefined;\n  lockfileDir?: LockFileDir | undefined;\n  overrides?:\n    | (\n        | {\n            parentPkg: PackageSelector;\n            targetPkg: PackageSelector;\n            selector: string;\n            newPref: string;\n          }\n        | {\n            targetPkg: PackageSelector;\n            selector: string;\n            newPref: string;\n          }\n      )[]\n    | undefined;\n  ignoredOptionalDependencies?: string[] | undefined;\n  packageExtensions?: Record<string, PackageExtension> | undefined;\n  readPackageHook?: ReadPackageHook[] | ReadPackageHook | undefined;\n}): ReadPackageHook | undefined {\n  const hooks: ReadPackageHook[] = [];\n\n  if (ignoreCompatibilityDb !== true) {\n    hooks.push(\n      createPackageExtender(Object.fromEntries(compatPackageExtensions))\n    );\n  }\n\n  if (\n    typeof packageExtensions !== 'undefined' &&\n    !isEmpty.default(packageExtensions)\n  ) {\n    hooks.push(createPackageExtender(packageExtensions));\n  }\n\n  if (Array.isArray(readPackageHook)) {\n    hooks.push(...readPackageHook);\n  } else if (readPackageHook) {\n    hooks.push(readPackageHook);\n  }\n\n  if (\n    typeof overrides !== 'undefined' &&\n    typeof lockfileDir !== 'undefined' &&\n    !isEmpty.default(overrides)\n  ) {\n    hooks.push(createVersionsOverrider(overrides, lockfileDir));\n  }\n\n  if (\n    ignoredOptionalDependencies &&\n    !isEmpty.default(ignoredOptionalDependencies)\n  ) {\n    hooks.push(createOptionalDependenciesRemover(ignoredOptionalDependencies));\n  }\n\n  if (hooks.length === 0) {\n    return undefined;\n  }\n\n  const readPackageAndExtend: ReadPackageHook | undefined =\n    hooks.length === 1\n      ? hooks[0]\n      : (((pkg: PackageManifest | ProjectManifest, dir: string) => {\n          return pipeWith.default(async (f, res) => {\n            return f(await res, dir);\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          }, hooks as any)(pkg, dir);\n        }) as ReadPackageHook);\n\n  return readPackageAndExtend;\n}\n"],
  "mappings": "AAAA,SAAS,qBAAqB,+BAA+B;AAQ7D,OAAO,aAAa;AACpB,OAAO,cAAc;AACrB,SAAS,yCAAyC;AAClD,SAAS,6BAA6B;AACtC,SAAS,+BAA+B;AAGjC,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAqBgC;AAC9B,QAAM,QAA2B,CAAC;AAElC,MAAI,0BAA0B,MAAM;AAClC,UAAM;AAAA,MACJ,sBAAsB,OAAO,YAAY,uBAAuB,CAAC;AAAA,IACnE;AAAA,EACF;AAEA,MACE,OAAO,sBAAsB,eAC7B,CAAC,QAAQ,QAAQ,iBAAiB,GAClC;AACA,UAAM,KAAK,sBAAsB,iBAAiB,CAAC;AAAA,EACrD;AAEA,MAAI,MAAM,QAAQ,eAAe,GAAG;AAClC,UAAM,KAAK,GAAG,eAAe;AAAA,EAC/B,WAAW,iBAAiB;AAC1B,UAAM,KAAK,eAAe;AAAA,EAC5B;AAEA,MACE,OAAO,cAAc,eACrB,OAAO,gBAAgB,eACvB,CAAC,QAAQ,QAAQ,SAAS,GAC1B;AACA,UAAM,KAAK,wBAAwB,WAAW,WAAW,CAAC;AAAA,EAC5D;AAEA,MACE,+BACA,CAAC,QAAQ,QAAQ,2BAA2B,GAC5C;AACA,UAAM,KAAK,kCAAkC,2BAA2B,CAAC;AAAA,EAC3E;AAEA,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO;AAAA,EACT;AAEA,QAAM,uBACJ,MAAM,WAAW,IACb,MAAM,CAAC,IACL,CAAC,KAAwC,QAAgB;AACzD,WAAO,SAAS,QAAQ,OAAO,GAAG,QAAQ;AACxC,aAAO,EAAE,MAAM,KAAK,GAAG;AAAA,IAEzB,GAAG,KAAY,EAAE,KAAK,GAAG;AAAA,EAC3B;AAEN,SAAO;AACT;",
  "names": []
}
