{"version":3,"file":"repository-match.mjs","sourceRoot":"","sources":["../../../src/manifest/validators/repository-match.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAS,wBAAwB;;AAExC,OAAO,EAAE,SAAS,EAAE,6BAAyB;AAC7C,OAAO,EAAE,gBAAgB,EAAE,wBAAoB;AAG/C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,QAAQ,EAAE,OAAO;IACjB,aAAa,CAAC,KAAK,EAAE,OAAO;QAC1B,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;QAClE,MAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC;QAEpE,IACE,CAAC,qBAAqB,IAAI,kBAAkB,CAAC;YAC7C,CAAC,SAAS,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,EACrD,CAAC;YACD,OAAO,CAAC,MAAM,CACZ,kBAAkB,EAClB,IAAI,gBAAgB,CAAC,QAAQ,4CAA4C,gBAAgB,CAAC,WAAW,uBAAuB,EAC5H,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,GAAG,qBAAqB;oBAC7D,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC;oBAClC,CAAC,CAAC,SAAS,CAAC;gBAEd,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC","sourcesContent":["import deepEqual from 'fast-deep-equal';\n\nimport { deepClone } from '../../deep-clone';\nimport { NpmSnapFileNames } from '../../types';\nimport type { ValidatorMeta } from '../validator-types';\n\n/**\n * Check if the repository object in manifest is the same as in package.json.\n */\nexport const repositoryMatch: ValidatorMeta = {\n  severity: 'error',\n  semanticCheck(files, context) {\n    const packageJsonRepository = files.packageJson.result.repository;\n    const manifestRepository = files.manifest.mergedManifest.repository;\n\n    if (\n      (packageJsonRepository || manifestRepository) &&\n      !deepEqual(packageJsonRepository, manifestRepository)\n    ) {\n      context.report(\n        'repository-match',\n        `\"${NpmSnapFileNames.Manifest}\" \"repository\" field does not match the \"${NpmSnapFileNames.PackageJson}\" \"repository\" field.`,\n        ({ manifest }) => {\n          manifest.mainManifest.result.repository = packageJsonRepository\n            ? deepClone(packageJsonRepository)\n            : undefined;\n\n          return { manifest };\n        },\n      );\n    }\n  },\n};\n"]}