{
  "version": 3,
  "sources": ["../../../../src/packages/workspace.injected-deps-syncer/index.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport { PnpmError } from '../error/index.ts';\nimport { logger as createLogger } from '../logger/index.ts';\nimport { readModulesManifest } from '../modules-yaml/index.ts';\nimport normalizePath from 'normalize-path';\nimport { DirPatcher } from './DirPatcher.ts';\nimport type { ModulesDir } from '../types/project.ts';\n\ntype SkipSyncInjectedDepsMessage = {\n  message: string;\n  reason: 'no-name' | 'no-injected-deps';\n  opts: SyncInjectedDepsOptions;\n};\n\nconst logger = createLogger<SkipSyncInjectedDepsMessage>(\n  'skip-sync-injected-deps'\n);\n\nexport type SyncInjectedDepsOptions = {\n  pkgName: string | undefined;\n  pkgRootDir: string;\n  workspaceDir: string | undefined;\n};\n\nexport async function syncInjectedDeps(\n  opts: SyncInjectedDepsOptions\n): Promise<void> {\n  if (typeof opts.pkgName !== 'string') {\n    logger.debug({\n      reason: 'no-name',\n      message: `Skipping sync of ${opts.pkgRootDir} as an injected dependency because, without a name, it cannot be a dependency`,\n      opts,\n    });\n    return;\n  }\n\n  if (typeof opts.workspaceDir !== 'string') {\n    throw new PnpmError(\n      'NO_WORKSPACE_DIR',\n      'Cannot update injected dependencies without workspace dir'\n    );\n  }\n\n  const pkgRootDir = path.resolve(opts.workspaceDir, opts.pkgRootDir);\n\n  const modulesDir: ModulesDir = path.resolve(\n    opts.workspaceDir,\n    'node_modules'\n  ) as ModulesDir;\n\n  const modules = await readModulesManifest(modulesDir);\n\n  if (!modules?.injectedDeps) {\n    logger.debug({\n      reason: 'no-injected-deps',\n      message:\n        'Skipping sync of injected dependencies because none were detected',\n      opts,\n    });\n    return;\n  }\n\n  const injectedDepKey = normalizePath(\n    path.relative(opts.workspaceDir, pkgRootDir),\n    true\n  );\n\n  const targetDirs: string[] | undefined = modules.injectedDeps[injectedDepKey];\n\n  if (!targetDirs || targetDirs.length === 0) {\n    logger.debug({\n      reason: 'no-injected-deps',\n      message: `There are no injected dependencies from ${opts.pkgRootDir}`,\n      opts,\n    });\n\n    return;\n  }\n\n  const patchers = await DirPatcher.fromMultipleTargets(\n    pkgRootDir,\n    targetDirs.map((targetDir: string): string => {\n      return path.resolve(opts.workspaceDir ?? '', targetDir);\n    })\n  );\n\n  await Promise.all(\n    patchers.map((patcher: DirPatcher): Promise<void> => {\n      return patcher.apply();\n    })\n  );\n}\n"],
  "mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,iBAAiB;AAC1B,SAAS,UAAU,oBAAoB;AACvC,SAAS,2BAA2B;AACpC,OAAO,mBAAmB;AAC1B,SAAS,kBAAkB;AAS3B,MAAM,SAAS;AAAA,EACb;AACF;AAQA,eAAsB,iBACpB,MACe;AACf,MAAI,OAAO,KAAK,YAAY,UAAU;AACpC,WAAO,MAAM;AAAA,MACX,QAAQ;AAAA,MACR,SAAS,oBAAoB,KAAK,UAAU;AAAA,MAC5C;AAAA,IACF,CAAC;AACD;AAAA,EACF;AAEA,MAAI,OAAO,KAAK,iBAAiB,UAAU;AACzC,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,aAAa,KAAK,QAAQ,KAAK,cAAc,KAAK,UAAU;AAElE,QAAM,aAAyB,KAAK;AAAA,IAClC,KAAK;AAAA,IACL;AAAA,EACF;AAEA,QAAM,UAAU,MAAM,oBAAoB,UAAU;AAEpD,MAAI,CAAC,SAAS,cAAc;AAC1B,WAAO,MAAM;AAAA,MACX,QAAQ;AAAA,MACR,SACE;AAAA,MACF;AAAA,IACF,CAAC;AACD;AAAA,EACF;AAEA,QAAM,iBAAiB;AAAA,IACrB,KAAK,SAAS,KAAK,cAAc,UAAU;AAAA,IAC3C;AAAA,EACF;AAEA,QAAM,aAAmC,QAAQ,aAAa,cAAc;AAE5E,MAAI,CAAC,cAAc,WAAW,WAAW,GAAG;AAC1C,WAAO,MAAM;AAAA,MACX,QAAQ;AAAA,MACR,SAAS,2CAA2C,KAAK,UAAU;AAAA,MACnE;AAAA,IACF,CAAC;AAED;AAAA,EACF;AAEA,QAAM,WAAW,MAAM,WAAW;AAAA,IAChC;AAAA,IACA,WAAW,IAAI,CAAC,cAA8B;AAC5C,aAAO,KAAK,QAAQ,KAAK,gBAAgB,IAAI,SAAS;AAAA,IACxD,CAAC;AAAA,EACH;AAEA,QAAM,QAAQ;AAAA,IACZ,SAAS,IAAI,CAAC,YAAuC;AACnD,aAAO,QAAQ,MAAM;AAAA,IACvB,CAAC;AAAA,EACH;AACF;",
  "names": []
}
