@metamask/snaps-utils
Version:
A collection of utilities for MetaMask Snaps
1 lines • 1.95 kB
Source Map (JSON)
{"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,MAAM,CAAC,UAAU,CAAC;QAC5D,IACE,CAAC,qBAAqB,IAAI,kBAAkB,CAAC;YAC7C,CAAC,SAAS,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,EACrD,CAAC;YACD,OAAO,CAAC,MAAM,CACZ,IAAI,gBAAgB,CAAC,QAAQ,4CAA4C,gBAAgB,CAAC,WAAW,uBAAuB,EAC5H,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,QAAQ,CAAC,UAAU,GAAG,qBAAqB;oBACzC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC;oBAClC,CAAC,CAAC,SAAS,CAAC;gBACd,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.result.repository;\n if (\n (packageJsonRepository || manifestRepository) &&\n !deepEqual(packageJsonRepository, manifestRepository)\n ) {\n context.report(\n `\"${NpmSnapFileNames.Manifest}\" \"repository\" field does not match the \"${NpmSnapFileNames.PackageJson}\" \"repository\" field.`,\n ({ manifest }) => {\n manifest.repository = packageJsonRepository\n ? deepClone(packageJsonRepository)\n : undefined;\n return { manifest };\n },\n );\n }\n },\n};\n"]}