Socket
Socket
Sign inDemoInstall

pertain

Package Overview
Dependencies
6
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.0 to 0.2.1

.eslintignore

18

build/main/__tests__/pertain.spec.js

@@ -11,3 +11,3 @@ "use strict";

test('provides info about pertaining dependencies, in dependency order', () => {
expect(__1.default(projectPath, 'germane.draw')
expect((0, __1.default)(projectPath, 'germane.draw')
// hide absolute paths so snapshot is portable

@@ -22,3 +22,3 @@ .map((dep) => ({

test('pertains to "germane.identify" in dep order to list ingredients in a cool cactus', () => {
const identifiers = __1.default(projectPath, 'germane.identify');
const identifiers = (0, __1.default)(projectPath, 'germane.identify');
const ingredients = identifiers

@@ -32,4 +32,4 @@ .map((i) => `- ${i.name} adds ${require(i.path)()}`)

const sort = jest.spyOn(TopologicalSorter_1.default.prototype, 'sort');
__1.default(projectPath, 'germane.identify');
__1.default(projectPath, 'germane.identify');
(0, __1.default)(projectPath, 'germane.identify');
(0, __1.default)(projectPath, 'germane.identify');
expect(sort).toHaveBeenCalledTimes(1);

@@ -39,14 +39,14 @@ sort.mockRestore();

test('pertains to "germane.draw" in dep order to draw the cool cactus', () => {
const picture = __1.default(projectPath, 'germane.draw').reduce((drawing, artist) => require(artist.path)(drawing), '');
const picture = (0, __1.default)(projectPath, 'germane.draw').reduce((drawing, artist) => require(artist.path)(drawing), '');
expect(picture).toMatchSnapshot();
});
test('throws informative error if a dep declares an invalid pertainer', () => {
expect(() => __1.default(projectPath, 'lies')).toThrow('could not find');
expect(() => (0, __1.default)(projectPath, 'lies')).toThrow('could not find');
});
test('throws informative error if circular deps are detected', () => {
expect(() => __1.default(projectPath, 'humpty')).toThrow('Cyclic');
expect(() => (0, __1.default)(projectPath, 'humpty')).toThrow('Cyclic');
});
test('accepts custom DependencyFinder', () => {
__1.default.clearCache();
const allTalk = __1.default(projectPath, 'germane.identify', () => [
const allTalk = (0, __1.default)(projectPath, 'germane.identify', () => [
'cactus-attitude',

@@ -58,2 +58,2 @@ ])

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wZXJ0YWluLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQTBCO0FBQzFCLDZFQUFxRDtBQUVyRCxNQUFNLFdBQVcsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBRXJFLElBQUksQ0FBQyxrRUFBa0UsRUFBRSxHQUFHLEVBQUU7SUFDNUUsTUFBTSxDQUNKLFdBQU8sQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1FBQ2xDLDhDQUE4QztTQUM3QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDYixJQUFJLEVBQUUsY0FBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQztRQUMxQyxVQUFVLEVBQUUsY0FBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUN0RCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87S0FDckIsQ0FBQyxDQUFDLENBQ04sQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxrRkFBa0YsRUFBRSxHQUFHLEVBQUU7SUFDNUYsTUFBTSxXQUFXLEdBQUcsV0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdELE1BQU0sV0FBVyxHQUFHLFdBQVc7U0FDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtJQUM5RCxXQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywyQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsV0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pDLFdBQU8sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxXQUFPLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FDekQsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUNsRCxFQUFFLENBQ0gsQ0FBQztJQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpRUFBaUUsRUFBRSxHQUFHLEVBQUU7SUFDM0UsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7SUFDbEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO0lBQzNDLFdBQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQixNQUFNLE9BQU8sR0FBRyxXQUFPLENBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzdELGlCQUFpQjtLQUNsQixDQUFDO1NBQ0MsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyxDQUFDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wZXJ0YWluLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQTBCO0FBQzFCLDZFQUFxRDtBQUVyRCxNQUFNLFdBQVcsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBRXJFLElBQUksQ0FBQyxrRUFBa0UsRUFBRSxHQUFHLEVBQUU7SUFDNUUsTUFBTSxDQUNKLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxjQUFjLENBQUM7UUFDbEMsOENBQThDO1NBQzdDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNiLElBQUksRUFBRSxjQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzFDLFVBQVUsRUFBRSxjQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3RELElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztLQUNyQixDQUFDLENBQUMsQ0FDTixDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGtGQUFrRixFQUFFLEdBQUcsRUFBRTtJQUM1RixNQUFNLFdBQVcsR0FBRyxJQUFBLFdBQU8sRUFBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUM3RCxNQUFNLFdBQVcsR0FBRyxXQUFXO1NBQzVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxTQUFTLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNkLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7SUFDOUQsV0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdELElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pDLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDckIsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO0lBQzNFLE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFDbEQsRUFBRSxDQUNILENBQUM7SUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO0lBQzNFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLFdBQU8sRUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7SUFDbEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7SUFDM0MsV0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUM3RCxpQkFBaUI7S0FDbEIsQ0FBQztTQUNDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyJ9

@@ -10,3 +10,3 @@ "use strict";

const base = path_1.default.resolve(__dirname, '../../');
const resolve = __1.resolver(base);
const resolve = (0, __1.resolver)(base);
test('resolves node_modules', () => {

@@ -23,3 +23,3 @@ const typescriptPath = resolve('typescript');

const coolCactus = path_1.default.resolve(__dirname, './__fixtures__/cool-cactus');
const resolve = __1.resolver(coolCactus);
const resolve = (0, __1.resolver)(coolCactus);
test('resolves node_modules with an entry point', () => {

@@ -40,2 +40,2 @@ expect(resolve('treachery')).toBe(path_1.default.resolve(coolCactus, './node_modules/treachery'));

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvX190ZXN0c19fL3Jlc29sdmVyRmFjdG9yeS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLDJCQUFrRDtBQUVsRCxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtJQUN2QixNQUFNLElBQUksR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxNQUFNLE9BQU8sR0FBRyxZQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtRQUNqQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFXLENBQUM7UUFDdkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FDSixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDekQsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtJQUMzQyxNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLFlBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU1QyxJQUFJLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9CLGNBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLDBCQUEwQixDQUFDLENBQ3JELENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQywyQ0FBMkMsRUFBRSxHQUFHLEVBQUU7UUFDckQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwQyxjQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSwrQkFBK0IsQ0FBQyxDQUMxRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO1FBQzdDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQVcsQ0FBQztRQUN2RCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUN6RCxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvX190ZXN0c19fL3Jlc29sdmVyRmFjdG9yeS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLDJCQUFrRDtBQUVsRCxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtJQUN2QixNQUFNLElBQUksR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFBLFlBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUV0QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQVcsQ0FBQztRQUN2RCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUN6RCxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE1BQU0sVUFBVSxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLDRCQUE0QixDQUFDLENBQUM7SUFDekUsTUFBTSxPQUFPLEdBQUcsSUFBQSxZQUFlLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFFNUMsSUFBSSxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvQixjQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSwwQkFBMEIsQ0FBQyxDQUNyRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDcEMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsK0JBQStCLENBQUMsQ0FDMUQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtRQUM3QyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFXLENBQUM7UUFDdkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FDSixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDekQsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=

@@ -10,3 +10,3 @@ "use strict";

const PertainError_1 = __importDefault(require("./PertainError"));
const debug = debug_1.default('pertain:ExplicitDependency');
const debug = (0, debug_1.default)('pertain:ExplicitDependency');
/**

@@ -18,6 +18,2 @@ * A Node module that the consuming project (the one calling `pertain()`) has

class ExplicitDependency {
constructor(modulePath) {
this.modulePath = modulePath;
this.pkg = new PackageJson_1.default(modulePath);
}
/**

@@ -29,2 +25,6 @@ * Name of this package; for use in dependency detection.

}
constructor(modulePath) {
this.modulePath = modulePath;
this.pkg = new PackageJson_1.default(modulePath);
}
/**

@@ -45,3 +45,3 @@ * Returns true if this module has declared an explicit peer dependency on

dependsOn(name) {
return this.pkg.peerDependencies.hasOwnProperty(name);
return Reflect.has(this.pkg.peerDependencies, name);
}

@@ -60,3 +60,3 @@ /**

pertains(subject) {
const pertaining = PackageJson_1.default.lookup(this.pkg, subject);
const pertaining = this.pkg.lookup(subject);
// Only strings can be file paths, so anything else does not pertain

@@ -85,2 +85,2 @@ if (!pertaining || typeof pertaining !== 'string') {

exports.default = ExplicitDependency;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUE4QjtBQUM5QixnREFBd0I7QUFDeEIsZ0VBQXdDO0FBQ3hDLGtFQUEwQztBQUUxQyxNQUFNLEtBQUssR0FBRyxlQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsTUFBcUIsa0JBQWtCO0lBaUJyQyxZQUFZLFVBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxxQkFBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFWRDs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQU9EOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxTQUFTLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksUUFBUSxDQUFDLE9BQWU7UUFDN0IsTUFBTSxVQUFVLEdBQUcscUJBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6RCxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDakQsS0FBSyxDQUNILCtCQUErQixFQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFDYixPQUFPLEVBQ1AsVUFBVSxDQUNYLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsS0FBSyxDQUNILDJDQUEyQyxFQUMzQyxPQUFPLEVBQ1AsVUFBVSxFQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNkLENBQUM7UUFFRixxRUFBcUU7UUFDckUsTUFBTSxVQUFVLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDRixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckQsS0FBSyxDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLHNCQUFZLENBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixPQUFPLHFFQUFxRSxVQUFVLEdBQUcsQ0FDNUgsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtJQUNuQixRQUFRO1FBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUF6RkQscUNBeUZDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUE4QjtBQUM5QixnREFBd0I7QUFDeEIsZ0VBQXdDO0FBQ3hDLGtFQUEwQztBQUUxQyxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVMsRUFBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRXREOzs7O0dBSUc7QUFDSCxNQUFxQixrQkFBa0I7SUFVckM7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLFVBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxxQkFBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksU0FBUyxDQUFDLElBQVk7UUFDM0IsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxRQUFRLENBQUMsT0FBZTtRQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QyxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDakQsS0FBSyxDQUNILCtCQUErQixFQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFDYixPQUFPLEVBQ1AsVUFBVSxDQUNYLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsS0FBSyxDQUNILDJDQUEyQyxFQUMzQyxPQUFPLEVBQ1AsVUFBVSxFQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNkLENBQUM7UUFFRixxRUFBcUU7UUFDckUsTUFBTSxVQUFVLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDRixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckQsS0FBSyxDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLHNCQUFZLENBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixPQUFPLHFFQUFxRSxVQUFVLEdBQUcsQ0FDNUgsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtJQUNuQixRQUFRO1FBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUF6RkQscUNBeUZDIn0=
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TopologicalSorter = exports.ExplicitDependency = exports.ExplicitDependencySet = exports.resolver = exports.default = void 0;
var pertain_1 = require("./pertain");
exports.default = pertain_1.default;
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(pertain_1).default; } });
var resolverFactory_1 = require("./resolverFactory");
exports.resolver = resolverFactory_1.default;
Object.defineProperty(exports, "resolver", { enumerable: true, get: function () { return __importDefault(resolverFactory_1).default; } });
var ExplicitDependencySet_1 = require("./ExplicitDependencySet");
exports.ExplicitDependencySet = ExplicitDependencySet_1.default;
Object.defineProperty(exports, "ExplicitDependencySet", { enumerable: true, get: function () { return __importDefault(ExplicitDependencySet_1).default; } });
var ExplicitDependency_1 = require("./ExplicitDependency");
exports.ExplicitDependency = ExplicitDependency_1.default;
Object.defineProperty(exports, "ExplicitDependency", { enumerable: true, get: function () { return __importDefault(ExplicitDependency_1).default; } });
var TopologicalSorter_1 = require("./TopologicalSorter");
exports.TopologicalSorter = TopologicalSorter_1.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBb0M7QUFBM0IsNEJBQUEsT0FBTyxDQUFBO0FBQ2hCLHFEQUF3RDtBQUEvQyxxQ0FBQSxPQUFPLENBQVk7QUFDNUIsaUVBQTJFO0FBQWxFLHdEQUFBLE9BQU8sQ0FBeUI7QUFDekMsMkRBQXFFO0FBQTVELGtEQUFBLE9BQU8sQ0FBc0I7QUFDdEMseURBQW1FO0FBQTFELGdEQUFBLE9BQU8sQ0FBcUIifQ==
Object.defineProperty(exports, "TopologicalSorter", { enumerable: true, get: function () { return __importDefault(TopologicalSorter_1).default; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQW9DO0FBQTNCLG1IQUFBLE9BQU8sT0FBQTtBQUNoQixxREFBd0Q7QUFBL0MsNEhBQUEsT0FBTyxPQUFZO0FBQzVCLGlFQUEyRTtBQUFsRSwrSUFBQSxPQUFPLE9BQXlCO0FBQ3pDLDJEQUFxRTtBQUE1RCx5SUFBQSxPQUFPLE9BQXNCO0FBQ3RDLHlEQUFtRTtBQUExRCx1SUFBQSxPQUFPLE9BQXFCIn0=

@@ -1,4 +0,8 @@

export interface JsonMap<T> {
[key: string]: T;
}
import objectPath from 'object-path';
type PkgData = {
name: string;
dependencies: Record<string, string>;
devDependencies: Record<string, string>;
peerDependencies: Record<string, string>;
};
/**

@@ -14,12 +18,8 @@ * Lazy-loading proxy for package.json. A subset of properties are available,

export default class PackageJson {
/**
* Look up a custom dot-path on a package.json instance. Abstracting this
* simple operation behind a static method helps us to keep this loading lazy.
*/
static lookup(pkg: PackageJson, dotPath: string): unknown;
get dependencies(): JsonMap<string>;
get devDependencies(): JsonMap<string>;
json: objectPath.ObjectPathBound<PkgData>;
lookup<T>(dotPath: string, fallback?: T): T;
get dependencies(): Record<string, string>;
get devDependencies(): Record<string, string>;
get name(): string;
get peerDependencies(): JsonMap<string>;
private json;
get peerDependencies(): Record<string, string>;
private modulePath;

@@ -29,1 +29,2 @@ constructor(modulePath: string);

}
export {};

@@ -6,3 +6,4 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const dot_prop_1 = __importDefault(require("dot-prop"));
const object_path_1 = __importDefault(require("object-path"));
const fs_1 = require("fs");
const path_1 = __importDefault(require("path"));

@@ -19,27 +20,23 @@ /**

class PackageJson {
constructor(modulePath) {
this.modulePath = modulePath;
lookup(dotPath, fallback) {
return this.getJson().get(dotPath) || fallback;
}
/**
* Look up a custom dot-path on a package.json instance. Abstracting this
* simple operation behind a static method helps us to keep this loading lazy.
*/
static lookup(pkg, dotPath) {
return dot_prop_1.default.get(pkg.getJson(), dotPath);
}
get dependencies() {
return this.getJson().dependencies || {};
return this.lookup('dependencies', {});
}
get devDependencies() {
return this.getJson().devDependencies || {};
return this.lookup('devDependencies', {});
}
get name() {
return this.getJson().name;
return this.lookup('name');
}
get peerDependencies() {
return this.getJson().peerDependencies || {};
return this.lookup('peerDependencies', {});
}
constructor(modulePath) {
this.modulePath = modulePath;
}
getJson() {
if (!this.json) {
this.json = require(path_1.default.join(this.modulePath, 'package.json'));
this.json = (0, object_path_1.default)(JSON.parse((0, fs_1.readFileSync)(path_1.default.join(this.modulePath, 'package.json'), 'utf8')));
}

@@ -50,2 +47,2 @@ return this.json;

exports.default = PackageJson;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3REFBK0I7QUFDL0IsZ0RBQXdCO0FBTXhCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBcUIsV0FBVztJQXNCOUIsWUFBWSxVQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBdkJEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBZ0IsRUFBRSxPQUFlO1FBQ3BELE9BQU8sa0JBQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUNELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQWMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFNTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUMzQixJQUFJLENBQUMsVUFBVSxFQUNmLGNBQWMsQ0FDZixDQUFpQixDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQWxDRCw4QkFrQ0MifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4REFBcUM7QUFDckMsMkJBQWtDO0FBQ2xDLGdEQUF3QjtBQVN4Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQXFCLFdBQVc7SUFFdkIsTUFBTSxDQUFJLE9BQWUsRUFBRSxRQUFZO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsWUFBWSxVQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBQ08sT0FBTztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFBLHFCQUFVLEVBQ3BCLElBQUksQ0FBQyxLQUFLLENBQ1IsSUFBQSxpQkFBWSxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FDakUsQ0FDRixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBL0JELDhCQStCQyJ9
import PackageJson from './PackageJson';
export declare type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[];
export type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[];
/**

@@ -4,0 +4,0 @@ * A Node package which declares in its `package.json` file that it contains

@@ -10,3 +10,3 @@ "use strict";

const resolverFactory_1 = __importDefault(require("./resolverFactory"));
const debug = debug_1.default('pertain:main');
const debug = (0, debug_1.default)('pertain:main');
const depsAndDevDeps = (pkg) => {

@@ -38,3 +38,3 @@ // Merging the two dependency sets that we look at will dedupe them.

// algorithm.
const resolve = resolverFactory_1.default(rootDir);
const resolve = (0, resolverFactory_1.default)(rootDir);
const packageJson = new PackageJson_1.default(rootDir);

@@ -60,2 +60,2 @@ const allDependencyNames = getDependencies(depsAndDevDeps(packageJson), packageJson, rootDir, subject);

exports.default = pertain;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJ0YWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQThCO0FBQzlCLG9GQUE0RDtBQUM1RCxnRUFBd0M7QUFDeEMsd0VBQXlDO0FBRXpDLE1BQU0sS0FBSyxHQUFHLGVBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQVN4QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQWdCLEVBQVksRUFBRTtJQUNwRCxvRUFBb0U7SUFDcEUsdUVBQXVFO0lBQ3ZFLHlFQUF5RTtJQUN6RSw2QkFBNkI7SUFDN0IsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxpQ0FDakMsR0FBRyxDQUFDLFlBQVksR0FDaEIsR0FBRyxDQUFDLGVBQWUsRUFDdEIsQ0FBQztJQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFDN0MsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUErQkY7Ozs7R0FJRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7QUFFcEU7Ozs7R0FJRztBQUNILFNBQVMsT0FBTyxDQUNkLE9BQWUsRUFDZixPQUFlLEVBQ2Ysa0JBQW9DLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLO0lBRXBELElBQUksTUFBTSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsS0FBSyxDQUFDLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLDBFQUEwRTtRQUMxRSxhQUFhO1FBQ2IsTUFBTSxPQUFPLEdBQUcseUJBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLFdBQVcsR0FBRyxJQUFJLHFCQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsTUFBTSxrQkFBa0IsR0FBRyxlQUFlLENBQ3hDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFDM0IsV0FBVyxFQUNYLE9BQU8sRUFDUCxPQUFPLENBQ1IsQ0FBQztRQUNGLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCxNQUFNLEdBQUcsSUFBSSwrQkFBcUIsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7UUFDMUIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFXO1FBQ3JDLE9BQU87S0FDUixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsT0FBTyxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUV0RCxrQkFBZSxPQUFPLENBQUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJ0YWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQThCO0FBQzlCLG9GQUE0RDtBQUM1RCxnRUFBd0M7QUFDeEMsd0VBQXlDO0FBRXpDLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBUyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0FBU3hDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBZ0IsRUFBWSxFQUFFO0lBQ3BELG9FQUFvRTtJQUNwRSx1RUFBdUU7SUFDdkUseUVBQXlFO0lBQ3pFLDZCQUE2QjtJQUM3QixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLGlDQUNqQyxHQUFHLENBQUMsWUFBWSxHQUNoQixHQUFHLENBQUMsZUFBZSxFQUN0QixDQUFDO0lBQ0gsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYztJQUM3QyxPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUMsQ0FBQztBQStCRjs7OztHQUlHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztBQUVwRTs7OztHQUlHO0FBQ0gsU0FBUyxPQUFPLENBQ2QsT0FBZSxFQUNmLE9BQWUsRUFDZixrQkFBb0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7SUFFcEQsSUFBSSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxLQUFLLENBQUMseUJBQXlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsMEVBQTBFO1FBQzFFLGFBQWE7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFRLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUN4QyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQzNCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsT0FBTyxDQUNSLENBQUM7UUFDRixLQUFLLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsTUFBTSxHQUFHLElBQUksK0JBQXFCLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDaEUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN6QztJQUNELE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1FBQzFCLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBVztRQUNyQyxPQUFPO0tBQ1IsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7QUFFdEQsa0JBQWUsT0FBTyxDQUFDIn0=

@@ -1,2 +0,2 @@

export declare type Resolver = (modulePath: string) => string | undefined;
export type Resolver = (modulePath: string) => string | undefined;
/**

@@ -3,0 +3,0 @@ * Returns a function which resolves filesystem base directories, given module

@@ -7,3 +7,3 @@ "use strict";

const path_1 = __importDefault(require("path"));
const pkg_dir_1 = __importDefault(require("pkg-dir"));
const find_root_1 = __importDefault(require("find-root"));
const resolve_pkg_1 = __importDefault(require("resolve-pkg"));

@@ -18,8 +18,8 @@ /**

if (path_1.default.isAbsolute(modulePath) || modulePath.startsWith('.')) {
return pkg_dir_1.default.sync(path_1.default.resolve(cwd, modulePath));
return (0, find_root_1.default)(path_1.default.resolve(cwd, modulePath));
}
return resolve_pkg_1.default(modulePath, { cwd });
return (0, resolve_pkg_1.default)(modulePath, { cwd });
};
}
exports.default = resolver;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc29sdmVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4QixzREFBNkI7QUFDN0IsOERBQXFDO0FBSXJDOzs7O0dBSUc7QUFDSCxTQUF3QixRQUFRLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxjQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxpQkFBTSxDQUFDLElBQUksQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsT0FBTyxxQkFBVSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVBELDJCQU9DIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc29sdmVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4QiwwREFBaUM7QUFDakMsOERBQXFDO0FBSXJDOzs7O0dBSUc7QUFDSCxTQUF3QixRQUFRLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxjQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxJQUFBLG1CQUFRLEVBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNoRDtRQUNELE9BQU8sSUFBQSxxQkFBVSxFQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVBELDJCQU9DIn0=

@@ -7,3 +7,3 @@ "use strict";

const PertainError_1 = __importDefault(require("./PertainError"));
/* tslint:disable */
/* eslint-disable */
/**

@@ -10,0 +10,0 @@ * Topologically sort a list of items of any type, given a list of items and

@@ -12,7 +12,11 @@ import makeDebug from 'debug';

export default class ExplicitDependency {
constructor(modulePath) {
this.modulePath = modulePath;
this.pkg = new PackageJson(modulePath);
}
/**
* Lazy-loading package.json data.
*/
pkg;
/**
* Real path on disk of this module.
*/
modulePath;
/**
* Name of this package; for use in dependency detection.

@@ -23,2 +27,6 @@ */

}
constructor(modulePath) {
this.modulePath = modulePath;
this.pkg = new PackageJson(modulePath);
}
/**

@@ -39,3 +47,3 @@ * Returns true if this module has declared an explicit peer dependency on

dependsOn(name) {
return this.pkg.peerDependencies.hasOwnProperty(name);
return Reflect.has(this.pkg.peerDependencies, name);
}

@@ -54,3 +62,3 @@ /**

pertains(subject) {
const pertaining = PackageJson.lookup(this.pkg, subject);
const pertaining = this.pkg.lookup(subject);
// Only strings can be file paths, so anything else does not pertain

@@ -78,2 +86,2 @@ if (!pertaining || typeof pertaining !== 'string') {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLFlBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQkFBa0I7SUFpQnJDLFlBQVksVUFBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBVkQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFPRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksU0FBUyxDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFFBQVEsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6RCxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDakQsS0FBSyxDQUNILCtCQUErQixFQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFDYixPQUFPLEVBQ1AsVUFBVSxDQUNYLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsS0FBSyxDQUNILDJDQUEyQyxFQUMzQyxPQUFPLEVBQ1AsVUFBVSxFQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNkLENBQUM7UUFFRixxRUFBcUU7UUFDckUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDRixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckQsS0FBSyxDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLFlBQVksQ0FDcEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksaUJBQWlCLE9BQU8scUVBQXFFLFVBQVUsR0FBRyxDQUM1SCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsMEJBQTBCO0lBQ25CLFFBQVE7UUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDRiJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLFlBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQkFBa0I7SUFDckM7O09BRUc7SUFDSyxHQUFHLENBQWM7SUFDekI7O09BRUc7SUFDSSxVQUFVLENBQVM7SUFFMUI7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLFVBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxTQUFTLENBQUMsSUFBWTtRQUMzQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFFBQVEsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUNqRCxLQUFLLENBQ0gsK0JBQStCLEVBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUNiLE9BQU8sRUFDUCxVQUFVLENBQ1gsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxLQUFLLENBQ0gsMkNBQTJDLEVBQzNDLE9BQU8sRUFDUCxVQUFVLEVBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQ2QsQ0FBQztRQUVGLHFFQUFxRTtRQUNyRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUQsSUFBSTtZQUNGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyRCxLQUFLLENBQUMsNkJBQTZCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUN2RCxPQUFPLGdCQUFnQixDQUFDO1NBQ3pCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksWUFBWSxDQUNwQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxpQkFBaUIsT0FBTyxxRUFBcUUsVUFBVSxHQUFHLENBQzVILENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCwwQkFBMEI7SUFDbkIsUUFBUTtRQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakQsQ0FBQztDQUNGIn0=

@@ -7,2 +7,9 @@ import ExplicitDependency from './ExplicitDependency';

export default class ExplicitDependencySet {
resolve;
dependencies;
/**
* Cache storage to prevent unnecessary recalculation of the same list.
* The same subject should result in the same list while this object exists.
*/
sortedBySubject;
constructor(resolve, names) {

@@ -46,2 +53,2 @@ this.resolve = resolve;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5U2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeVNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHFCQUFxQjtJQVV4QyxZQUFZLE9BQWlCLEVBQUUsS0FBZTtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLFVBQVUsR0FBeUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQy9ELENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUM3QyxDQUFDO1lBQ0Ysa0VBQWtFO1lBQ2xFLGlFQUFpRTtZQUNqRSxvQkFBb0I7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFVBQThCLEVBQUUsRUFBRSxDQUMxRCxVQUFVLENBQUMsTUFBTSxDQUNmLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLEtBQUssVUFBVSxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUNuRSxDQUFDO1lBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsQ0FDbEMsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssR0FBRyxDQUFDLElBQVk7UUFDdEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLFVBQVUsRUFBRTtZQUNkLE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0NBQ0YifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5U2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeVNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHFCQUFxQjtJQUNoQyxPQUFPLENBQVc7SUFDbEIsWUFBWSxDQUF1QjtJQUUzQzs7O09BR0c7SUFDSyxlQUFlLENBQW9DO0lBRTNELFlBQVksT0FBaUIsRUFBRSxLQUFlO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUFDLE9BQWU7UUFDL0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sVUFBVSxHQUF5QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDL0QsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQzdDLENBQUM7WUFDRixrRUFBa0U7WUFDbEUsaUVBQWlFO1lBQ2pFLG9CQUFvQjtZQUNwQixNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBOEIsRUFBRSxFQUFFLENBQzFELFVBQVUsQ0FBQyxNQUFNLENBQ2YsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNaLFNBQVMsS0FBSyxVQUFVLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQ25FLENBQUM7WUFDSixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixDQUNsQyxnQkFBZ0IsQ0FDakIsQ0FBQztZQUNGLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxHQUFHLENBQUMsSUFBWTtRQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksVUFBVSxFQUFFO1lBQ2QsTUFBTSxVQUFVLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7Q0FDRiJ9

@@ -1,4 +0,8 @@

export interface JsonMap<T> {
[key: string]: T;
}
import objectPath from 'object-path';
type PkgData = {
name: string;
dependencies: Record<string, string>;
devDependencies: Record<string, string>;
peerDependencies: Record<string, string>;
};
/**

@@ -14,12 +18,8 @@ * Lazy-loading proxy for package.json. A subset of properties are available,

export default class PackageJson {
/**
* Look up a custom dot-path on a package.json instance. Abstracting this
* simple operation behind a static method helps us to keep this loading lazy.
*/
static lookup(pkg: PackageJson, dotPath: string): unknown;
get dependencies(): JsonMap<string>;
get devDependencies(): JsonMap<string>;
json: objectPath.ObjectPathBound<PkgData>;
lookup<T>(dotPath: string, fallback?: T): T;
get dependencies(): Record<string, string>;
get devDependencies(): Record<string, string>;
get name(): string;
get peerDependencies(): JsonMap<string>;
private json;
get peerDependencies(): Record<string, string>;
private modulePath;

@@ -29,1 +29,2 @@ constructor(modulePath: string);

}
export {};

@@ -1,2 +0,3 @@

import dotProp from 'dot-prop';
import objectPath from 'object-path';
import { readFileSync } from 'fs';
import path from 'path';

@@ -13,27 +14,25 @@ /**

export default class PackageJson {
constructor(modulePath) {
this.modulePath = modulePath;
json;
lookup(dotPath, fallback) {
return this.getJson().get(dotPath) || fallback;
}
/**
* Look up a custom dot-path on a package.json instance. Abstracting this
* simple operation behind a static method helps us to keep this loading lazy.
*/
static lookup(pkg, dotPath) {
return dotProp.get(pkg.getJson(), dotPath);
}
get dependencies() {
return this.getJson().dependencies || {};
return this.lookup('dependencies', {});
}
get devDependencies() {
return this.getJson().devDependencies || {};
return this.lookup('devDependencies', {});
}
get name() {
return this.getJson().name;
return this.lookup('name');
}
get peerDependencies() {
return this.getJson().peerDependencies || {};
return this.lookup('peerDependencies', {});
}
modulePath;
constructor(modulePath) {
this.modulePath = modulePath;
}
getJson() {
if (!this.json) {
this.json = require(path.join(this.modulePath, 'package.json'));
this.json = objectPath(JSON.parse(readFileSync(path.join(this.modulePath, 'package.json'), 'utf8')));
}

@@ -43,2 +42,2 @@ return this.json;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBQy9CLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQU14Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sV0FBVztJQXNCOUIsWUFBWSxVQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBdkJEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBZ0IsRUFBRSxPQUFlO1FBQ3BELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBYyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQU1PLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzNCLElBQUksQ0FBQyxVQUFVLEVBQ2YsY0FBYyxDQUNmLENBQWlCLENBQUM7U0FDcEI7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBU3hCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxXQUFXO0lBQzlCLElBQUksQ0FBdUM7SUFDcEMsTUFBTSxDQUFJLE9BQWUsRUFBRSxRQUFZO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ08sVUFBVSxDQUFTO0lBQzNCLFlBQVksVUFBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUNPLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUNwQixJQUFJLENBQUMsS0FBSyxDQUNSLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQ2pFLENBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRiJ9
import PackageJson from './PackageJson';
export declare type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[];
export type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[];
/**

@@ -4,0 +4,0 @@ * A Node package which declares in its `package.json` file that it contains

@@ -1,2 +0,2 @@

export declare type Resolver = (modulePath: string) => string | undefined;
export type Resolver = (modulePath: string) => string | undefined;
/**

@@ -3,0 +3,0 @@ * Returns a function which resolves filesystem base directories, given module

import path from 'path';
import pkgDir from 'pkg-dir';
import findRoot from 'find-root';
import resolvePkg from 'resolve-pkg';

@@ -12,3 +12,3 @@ /**

if (path.isAbsolute(modulePath) || modulePath.startsWith('.')) {
return pkgDir.sync(path.resolve(cwd, modulePath));
return findRoot(path.resolve(cwd, modulePath));
}

@@ -18,2 +18,2 @@ return resolvePkg(modulePath, { cwd });

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc29sdmVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQzdCLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUlyQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxRQUFRLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxPQUFPLFVBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc29sdmVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUlyQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxRQUFRLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNoRDtRQUNELE9BQU8sVUFBVSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
import PertainError from './PertainError';
/* tslint:disable */
/* eslint-disable */
/**

@@ -14,2 +14,3 @@ * Topologically sort a list of items of any type, given a list of items and

export default class TopologicalSorter {
outgoingFrom;
constructor(outgoingFrom) {

@@ -58,2 +59,2 @@ this.outgoingFrom = outgoingFrom;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9wb2xvZ2ljYWxTb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVG9wb2xvZ2ljYWxTb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsb0JBQW9CO0FBRXBCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8saUJBQWlCO0lBRXBDLFlBQVksWUFBOEI7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUNNLElBQUksQ0FBQyxLQUFVO1FBQ3BCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDMUIsTUFBTSxNQUFNLEdBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDZixxREFBcUQ7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTlCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztRQUVkLFNBQVMsS0FBSyxDQUFDLElBQU8sRUFBRSxDQUFTLEVBQUUsWUFBb0I7WUFDckQsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMxQixNQUFNLElBQUksWUFBWSxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3hEO1lBRUQsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU87WUFDdkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUVsQixNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEMsSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pCLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLEdBQUc7b0JBQ0QsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzFCLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztpQkFDNUQsUUFBUSxDQUFDLEVBQUU7Z0JBQ1osWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMzQjtZQUVELE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNPLGFBQWEsQ0FBQyxHQUFRO1FBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFhLENBQUM7UUFDakMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9wb2xvZ2ljYWxTb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVG9wb2xvZ2ljYWxTb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsb0JBQW9CO0FBRXBCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8saUJBQWlCO0lBQzVCLFlBQVksQ0FBbUI7SUFDdkMsWUFBWSxZQUE4QjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBQ00sSUFBSSxDQUFDLEtBQVU7UUFDcEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQixNQUFNLE1BQU0sR0FBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBK0IsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNmLHFEQUFxRDtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFOUIsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNoRDtRQUVELE9BQU8sTUFBTSxDQUFDO1FBRWQsU0FBUyxLQUFLLENBQUMsSUFBTyxFQUFFLENBQVMsRUFBRSxZQUFvQjtZQUNyRCxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxZQUFZLENBQUMsd0JBQXdCLElBQUksRUFBRSxDQUFDLENBQUM7YUFDeEQ7WUFFRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBRWxCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVwQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDekIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsR0FBRztvQkFDRCxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDMUIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO2lCQUM1RCxRQUFRLENBQUMsRUFBRTtnQkFDWixZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNCO1lBRUQsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBQ08sYUFBYSxDQUFDLEdBQVE7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQWEsQ0FBQztRQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YifQ==

@@ -5,2 +5,4 @@ # Changelog

### [0.2.1](https://github.com/zetlen/pertain/compare/v0.2.0...v0.2.1) (2023-05-22)
## [0.2.0](https://github.com/zetlen/pertain/compare/v0.1.11...v0.2.0) (2020-04-22)

@@ -7,0 +9,0 @@

@@ -7,3 +7,3 @@ module.exports = {

collectCoverage: true,
collectCoverageFrom: ['./src/*.ts'],
collectCoverageFrom: ['./src/*.ts', '!./src/**/index.ts'],
coverageThreshold: {

@@ -18,5 +18,4 @@ global: {

moduleDirectories: ['node_modules', 'src/__tests__/__fixtures__'],
testEnvironment: 'node',
testMatch: ['**/__tests__/*.ts'],
testPathIgnorePatterns: ['.d.ts']
};
{
"name": "pertain",
"version": "0.2.0",
"version": "0.2.1",
"publishConfig": {

@@ -24,3 +24,3 @@ "access": "public"

"ci:all": "run-s clean ci:typescript test:lint ci:unit ci:sendcov",
"ci:typescript": "run-s \"build:* -- --noEmit --extendedDiagnostics --traceResolution\"",
"ci:typescript": "run-s \"build:* -- --noEmit --extendedDiagnostics\"",
"ci:sendcov": "codecov",

@@ -30,6 +30,7 @@ "ci:unit": "jest --runInBand --no-bail",

"fix:prettier": "prettier \"src/**/*.ts\" --write",
"fix:tslint": "tslint --fix --project .",
"fix:lint": "eslint --fix .",
"lint": "npm run -s test:lint",
"test": "run-s build test:*",
"test:lint": "tslint --project . && prettier \"src/**/*.ts\" --list-different",
"test:unit": "jest",
"test:lint": "eslint .",
"test:universal": "node testCjs.js",

@@ -41,2 +42,3 @@ "watch": "run-s \"test:unit -- --watch\"",

"clean": "rimraf build test",
"prepare": "husky install",
"prepare-release": "run-s reset test version"

@@ -50,7 +52,2 @@ },

"homepage": "https://github.com/zetlen/pertain",
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"engines": {

@@ -60,25 +57,28 @@ "node": ">=10"

"dependencies": {
"debug": "~4.1.1",
"dot-prop": "^5.2.0",
"pkg-dir": "^4.2.0",
"debug": "^4.3.4",
"find-root": "^1.1.0",
"object-path": "^0.11.8",
"resolve-pkg": "^2.0.0"
},
"devDependencies": {
"@commitlint/cli": "^8.2.0",
"@commitlint/config-conventional": "^8.2.0",
"@types/debug": "^4.1.5",
"@types/jest": "^25.2.1",
"@types/node": "^13.13.2",
"@commitlint/cli": "^17.6.3",
"@commitlint/config-conventional": "^17.6.3",
"@types/debug": "^4.1.7",
"@types/find-root": "^1.1.2",
"@types/jest": "^29.5.1",
"@types/node": "^20.2.3",
"@types/object-path": "^0.11.1",
"@typescript-eslint/eslint-plugin": "^5.59.6",
"@typescript-eslint/parser": "^5.59.6",
"codecov": "^3.5.0",
"husky": "^4.2.5",
"jest": "^25.4.0",
"eslint": "^8.41.0",
"husky": "^8.0.3",
"jest": "^29.5.0",
"npm-run-all": "^4.1.5",
"open-cli": "^6.0.1",
"prettier": "^2.0.5",
"rimraf": "^3.0.2",
"standard-version": "^7.1.0",
"ts-jest": "^25.4.0",
"tslint": "^6.1.1",
"tslint-config-prettier": "^1.18.0",
"typescript": "^3.8.3"
"open-cli": "^7.2.0",
"prettier": "^2.8.8",
"rimraf": "^5.0.1",
"standard-version": "^9.5.0",
"ts-jest": "^29.1.0",
"typescript": "^5.0.4"
},

@@ -85,0 +85,0 @@ "prettier": {

@@ -50,3 +50,3 @@ import makeDebug from 'debug';

public dependsOn(name: string) {
return this.pkg.peerDependencies.hasOwnProperty(name);
return Reflect.has(this.pkg.peerDependencies,name);
}

@@ -66,3 +66,3 @@

public pertains(subject: string) {
const pertaining = PackageJson.lookup(this.pkg, subject);
const pertaining = this.pkg.lookup(subject);

@@ -69,0 +69,0 @@ // Only strings can be file paths, so anything else does not pertain

@@ -1,7 +0,11 @@

import dotProp from 'dot-prop';
import objectPath from 'object-path';
import { readFileSync } from 'fs';
import path from 'path';
export interface JsonMap<T> {
[key: string]: T;
}
type PkgData = {
name: string;
dependencies: Record<string, string>;
devDependencies: Record<string, string>;
peerDependencies: Record<string, string>;
};

@@ -18,22 +22,18 @@ /**

export default class PackageJson {
/**
* Look up a custom dot-path on a package.json instance. Abstracting this
* simple operation behind a static method helps us to keep this loading lazy.
*/
public static lookup(pkg: PackageJson, dotPath: string) {
return dotProp.get(pkg.getJson(), dotPath);
json!: objectPath.ObjectPathBound<PkgData>;
public lookup<T>(dotPath: string, fallback?: T): T {
return this.getJson().get(dotPath) || fallback;
}
public get dependencies(): JsonMap<string> {
return this.getJson().dependencies || {};
public get dependencies(): Record<string, string> {
return this.lookup('dependencies', {});
}
public get devDependencies(): JsonMap<string> {
return this.getJson().devDependencies || {};
public get devDependencies(): Record<string, string> {
return this.lookup('devDependencies', {});
}
public get name(): string {
return this.getJson().name as string;
return this.lookup('name');
}
public get peerDependencies(): JsonMap<string> {
return this.getJson().peerDependencies || {};
public get peerDependencies(): Record<string, string> {
return this.lookup('peerDependencies', {});
}
private json: JsonMap<any> | undefined;
private modulePath: string;

@@ -43,8 +43,9 @@ constructor(modulePath: string) {

}
private getJson(): JsonMap<any> {
private getJson() {
if (!this.json) {
this.json = require(path.join(
this.modulePath,
'package.json'
)) as JsonMap<any>;
this.json = objectPath(
JSON.parse(
readFileSync(path.join(this.modulePath, 'package.json'), 'utf8')
)
);
}

@@ -51,0 +52,0 @@ return this.json;

import path from 'path';
import pkgDir from 'pkg-dir';
import findRoot from 'find-root';
import resolvePkg from 'resolve-pkg';

@@ -15,3 +15,3 @@

if (path.isAbsolute(modulePath) || modulePath.startsWith('.')) {
return pkgDir.sync(path.resolve(cwd, modulePath));
return findRoot(path.resolve(cwd, modulePath));
}

@@ -18,0 +18,0 @@ return resolvePkg(modulePath, { cwd });

import PertainError from './PertainError';
/* tslint:disable */
/* eslint-disable */

@@ -4,0 +4,0 @@ /**

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc