Circular dependency issues?

Having issues with two private packages where one has a weak dependency on the other which has a hard dependency on the first.

ie.
package-1 uses package-2 if it has been added
package-2 needs package-1 to function (extends functionality of package-1)

I’ve added api.use('package-2', { weak: true }) to package-1 and api.use('pacakge-1') to package2 which gives a circular dependency.

It’s legacy code that previously worked by making everything global and just expecting the other package to be there / testing if it is without defining the dependency in package.js. I’m refactoring them into ES6 module packages for dynamic imports.

How can I best sort out this dependency chain with meteor packages?