@@ -52,7 +52,7 @@ const siteDependenciesTest = async function (
5252 return (
5353 await Promise . all (
5454 Object . entries ( allowedSiteDependencies ) . map ( async ( [ dependencyName , allowedVersion ] ) =>
55- siteDependencyTest ( { dependencyName, allowedVersion, siteDependencies, buildDir } ) ,
55+ siteDependencyTest ( { dependencyName, allowedVersion, siteDependencies, buildDir, packagePath } ) ,
5656 ) ,
5757 )
5858 ) . every ( Boolean )
@@ -63,10 +63,12 @@ const siteDependencyTest = async function ({
6363 allowedVersion,
6464 siteDependencies,
6565 buildDir,
66+ packagePath,
6667} : {
6768 dependencyName : string
6869 allowedVersion : string
6970 buildDir : string
71+ packagePath : string
7072 siteDependencies : Record < string , string | undefined >
7173} ) : Promise < boolean > {
7274 const siteDependency = siteDependencies [ dependencyName ]
@@ -79,6 +81,19 @@ const siteDependencyTest = async function ({
7981 return semver . satisfies ( siteDependency , allowedVersion , { includePrerelease : true } )
8082 }
8183
84+ // try from package path if defined
85+ if ( packagePath ) {
86+ try {
87+ // if this is a range we need to get the exact version
88+ const packageJsonPath = await resolvePath ( `${ dependencyName } /package.json` , join ( buildDir , packagePath ) )
89+ const { version } = await importJsonFile ( packageJsonPath )
90+ if ( ! version ) {
91+ return false
92+ }
93+ return semver . satisfies ( version , allowedVersion )
94+ } catch { }
95+ }
96+
8297 try {
8398 // if this is a range we need to get the exact version
8499 const packageJsonPath = await resolvePath ( `${ dependencyName } /package.json` , buildDir )
0 commit comments