@teambit/dependencies 1.0.667 → 1.0.668
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dependencies-loader/apply-overrides.ts +16 -11
- package/dependencies-loader/auto-detect-deps.ts +17 -26
- package/dependencies-loader/dependencies-data.ts +3 -2
- package/dependencies-loader/dependencies-loader.ts +10 -8
- package/dependencies-loader/dependencies-versions-resolver.ts +8 -7
- package/dependencies-loader/overrides-dependencies.ts +2 -2
- package/dist/dependencies-cmd.d.ts +3 -3
- package/dist/dependencies-cmd.js.map +1 -1
- package/dist/dependencies-loader/apply-overrides.d.ts +9 -8
- package/dist/dependencies-loader/apply-overrides.js.map +1 -1
- package/dist/dependencies-loader/auto-detect-deps.d.ts +13 -13
- package/dist/dependencies-loader/auto-detect-deps.js.map +1 -1
- package/dist/dependencies-loader/dependencies-data.d.ts +2 -2
- package/dist/dependencies-loader/dependencies-data.js.map +1 -1
- package/dist/dependencies-loader/dependencies-loader.d.ts +8 -8
- package/dist/dependencies-loader/dependencies-loader.js.map +1 -1
- package/dist/dependencies-loader/dependencies-versions-resolver.d.ts +5 -5
- package/dist/dependencies-loader/dependencies-versions-resolver.js.map +1 -1
- package/dist/dependencies-loader/overrides-dependencies.d.ts +2 -2
- package/dist/dependencies-loader/overrides-dependencies.js.map +1 -1
- package/dist/dependencies.main.runtime.d.ts +13 -13
- package/dist/dependencies.main.runtime.js.map +1 -1
- package/dist/dependencies.spec.js.map +1 -1
- package/dist/dependents-cmd.d.ts +2 -2
- package/dist/dependents-cmd.js.map +1 -1
- package/dist/dependents.d.ts +3 -3
- package/dist/dependents.js.map +1 -1
- package/dist/files-dependency-builder/build-tree.d.ts +1 -1
- package/dist/files-dependency-builder/build-tree.js.map +1 -1
- package/dist/files-dependency-builder/filing-cabinet/index.d.ts +1 -1
- package/dist/files-dependency-builder/filing-cabinet/index.js.map +1 -1
- package/dist/files-dependency-builder/filing-cabinet/index.spec.js.map +1 -1
- package/dist/files-dependency-builder/generate-tree-madge.d.ts +1 -1
- package/dist/files-dependency-builder/generate-tree-madge.js.map +1 -1
- package/dist/files-dependency-builder/missing-handler.d.ts +2 -2
- package/dist/files-dependency-builder/missing-handler.js.map +1 -1
- package/dist/files-dependency-builder/path-map.d.ts +1 -1
- package/dist/files-dependency-builder/path-map.js.map +1 -1
- package/dist/files-dependency-builder/precinct/index.d.ts +1 -1
- package/dist/files-dependency-builder/precinct/index.js.map +1 -1
- package/dist/files-dependency-builder/precinct/index.spec.js.map +1 -1
- package/dist/files-dependency-builder/types/dependency-tree-type.d.ts +3 -3
- package/dist/files-dependency-builder/types/dependency-tree-type.js.map +1 -1
- package/dist/resolve-pkg-data.d.ts +1 -1
- package/dist/resolve-pkg-data.js.map +1 -1
- package/dist/template.d.ts +2 -2
- package/dist/template.js.map +1 -1
- package/files-dependency-builder/build-tree.ts +8 -4
- package/files-dependency-builder/filing-cabinet/index.spec.ts +1 -1
- package/files-dependency-builder/filing-cabinet/index.ts +2 -1
- package/files-dependency-builder/generate-tree-madge.ts +1 -1
- package/files-dependency-builder/missing-handler.ts +4 -2
- package/files-dependency-builder/path-map.ts +1 -1
- package/files-dependency-builder/precinct/index.spec.ts +1 -1
- package/files-dependency-builder/precinct/index.ts +2 -1
- package/files-dependency-builder/types/dependency-tree-type.ts +3 -3
- package/package.json +22 -22
- /package/dist/{preview-1753809186996.js → preview-1753833698619.js} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_path","data","_interopRequireDefault","require","_resolveDependencyPath","_stylusLookup","_typescriptDepsLookups","_stylingDepsLookups","_detectorHook","e","__esModule","default","debug","defaultLookups","lookupJavaScript","lookupTypeScript","lookupStyling","stylusLookup","cabinet","options","detectorHook","DetectorHook","dependency","filename","ext","path","extname","resolver","resolveDependencyPath","startsWith","detector","getDetector","dependencyLookup","envDetectors","envDetector","isSupported","name","result","dependencyExt","err","message","module","exports","supportedFileExtensions","Object","keys","register","extension","lookupStrategy","indexOf","push"],"sources":["index.ts"],"sourcesContent":["// @flow\n\n/**\n * this file had been forked from https://github.com/dependents/node-filing-cabinet\n */\nimport path from 'path';\nimport resolveDependencyPath from 'resolve-dependency-path';\nimport stylusLookup from 'stylus-lookup';\n\nimport { lookupJavaScript, lookupTypeScript } from '@teambit/typescript.deps-lookups.lookup-typescript';\nimport { lookupStyling } from '@teambit/styling.deps-lookups.lookup-styling';\n\nimport { DependencyDetector
|
1
|
+
{"version":3,"names":["_path","data","_interopRequireDefault","require","_resolveDependencyPath","_stylusLookup","_typescriptDepsLookups","_stylingDepsLookups","_detectorHook","e","__esModule","default","debug","defaultLookups","lookupJavaScript","lookupTypeScript","lookupStyling","stylusLookup","cabinet","options","detectorHook","DetectorHook","dependency","filename","ext","path","extname","resolver","resolveDependencyPath","startsWith","detector","getDetector","dependencyLookup","envDetectors","envDetector","isSupported","name","result","dependencyExt","err","message","module","exports","supportedFileExtensions","Object","keys","register","extension","lookupStrategy","indexOf","push"],"sources":["index.ts"],"sourcesContent":["// @flow\n\n/**\n * this file had been forked from https://github.com/dependents/node-filing-cabinet\n */\nimport path from 'path';\nimport resolveDependencyPath from 'resolve-dependency-path';\nimport stylusLookup from 'stylus-lookup';\n\nimport { lookupJavaScript, lookupTypeScript } from '@teambit/typescript.deps-lookups.lookup-typescript';\nimport { lookupStyling } from '@teambit/styling.deps-lookups.lookup-styling';\n\nimport type { DependencyDetector } from '../detector-hook';\nimport { DetectorHook } from '../detector-hook';\n\nconst debug = require('debug')('cabinet');\n\nconst defaultLookups = {\n '.js': lookupJavaScript,\n '.cjs': lookupJavaScript,\n '.mjs': lookupJavaScript,\n '.jsx': lookupJavaScript,\n '.ts': lookupTypeScript,\n '.tsx': lookupTypeScript,\n '.cts': lookupTypeScript,\n '.mts': lookupTypeScript,\n '.scss': lookupStyling,\n '.sass': lookupStyling,\n '.styl': stylusLookup,\n '.less': lookupStyling,\n};\n\ntype Options = {\n dependency: string; // previous name was \"partial\"\n filename: string;\n directory: string;\n config: Record<string, any>;\n webpackConfig?: Record<string, any>;\n configPath?: string;\n resolveConfig?: Record<string, any>;\n isScript?: boolean; // relevant for Vue files\n ast?: string;\n ext?: string;\n content?: string;\n envDetectors?: DependencyDetector[];\n};\n\nexport default function cabinet(options: Options) {\n const detectorHook = new DetectorHook();\n const { dependency, filename } = options;\n const ext = options.ext || path.extname(filename);\n debug(`working on a dependency \"${dependency}\" of a file \"${filename}\"`);\n\n let resolver = defaultLookups[ext];\n\n if (!resolver) {\n debug('using generic resolver');\n resolver = resolveDependencyPath;\n }\n if (ext === '.css' && dependency.startsWith('~')) resolver = lookupStyling;\n\n const detector = detectorHook.getDetector(ext, filename);\n if (detector) {\n // test if the new detector API has a dependency lookup.\n if (detector.dependencyLookup) {\n resolver = detector.dependencyLookup;\n } else {\n // otherwise use TypeScript as the default resolver.\n resolver = lookupTypeScript;\n }\n }\n\n if (options?.envDetectors) {\n for (const envDetector of options.envDetectors) {\n if (envDetector.isSupported({ ext, filename }) && envDetector.dependencyLookup) {\n resolver = envDetector.dependencyLookup;\n }\n }\n }\n\n debug(`found a resolver ${resolver.name} for ${ext}`);\n\n let result = resolver(options);\n const dependencyExt = path.extname(dependency);\n if (!result && dependencyExt && dependencyExt !== ext) {\n resolver = defaultLookups[dependencyExt];\n if (resolver) {\n // todo: this strategy probably fails often. if, for example, a dependency A.js inside B.ts\n // was not found using the ts resolve, it tries the js resolver, however, parsing the ts file\n // with js parser, won't work most of the time. A better approach would be to fix the\n // original resolver.\n debug(\n `dependency has a different extension (${dependencyExt}) than the original file (${ext}), trying to use its resolver instead`\n );\n try {\n result = resolver(options);\n } catch (err: any) {\n debug(`unable to use the resolver of ${dependencyExt} for ${filename}. got an error ${err.message}`);\n }\n }\n }\n debug(`resolved path for ${dependency}: ${result}`);\n return result;\n}\n\nmodule.exports.supportedFileExtensions = Object.keys(defaultLookups);\n\n/**\n * Register a custom lookup resolver for a file extension\n *\n * @param {String} extension - The file extension that should use the resolver\n * @param {Function} lookupStrategy - A resolver of dependency paths\n */\nmodule.exports.register = function (extension, lookupStrategy) {\n defaultLookups[extension] = lookupStrategy;\n\n if (this.supportedFileExtensions.indexOf(extension) === -1) {\n this.supportedFileExtensions.push(extension);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_defenderFs","data","require","_fsExtra","_interopRequireDefault","_assert","_path","_rewire","_sinon","e","__esModule","default","UNIT_TEST_DIR","path","join","BIT_TEMP_ROOT","cabinetNonDefault","rewire","cabinet","fixtures","resolve","__dirname","mockedFiles","mockAST","mockfs","obj","acc","Object","entries","forEach","key","value","filePath","fullFilePath","content","fs","outputFileSync","undefined","cleanUnitDir","removeSync","describe","beforeEach","afterEach","it","resolvedFile","dependency","filename","directory","assert","ok","endsWith","ast","result","equal","options","skip","stub","sinon","revert","__set__","called","main","paths","some","p","indexOf","normalize","nodeModulesConfig","entry","stylus","sass","less","detector","detect","fileContent","isSupported","ext","dependencyLookup","type","envDetectors","returns","register","pathResult","stub2","newExt","supportedFileExtensions","lastIndexOf","testResolution","expected","resolved","webpackConfig"],"sources":["index.spec.ts"],"sourcesContent":["import { BIT_TEMP_ROOT } from '@teambit/defender.fs.global-bit-temp-dir';\nimport fs from 'fs-extra';\nimport assert from 'assert';\nimport path from 'path';\nimport rewire from 'rewire';\nimport sinon from 'sinon';\n\nimport { DependencyDetector } from '../detector-hook';\n\nconst UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');\n\nconst cabinetNonDefault = rewire('./');\nconst cabinet = cabinetNonDefault.default;\n\nconst fixtures = path.resolve(`${__dirname}/../fixtures/filing-cabinet`);\n\n// eslint-disable-next-line import/no-dynamic-require, global-require\nconst mockedFiles = require(`${fixtures}/mockedJSFiles`);\n// eslint-disable-next-line import/no-dynamic-require, global-require\nconst mockAST = require(`${fixtures}/ast`);\n\nfunction mockfs(obj: any, acc?: string) {\n Object.entries(obj).forEach(([key, value]) => {\n if (typeof value === 'string') {\n const filePath = acc ? path.join(acc, key) : key;\n const fullFilePath = path.join(UNIT_TEST_DIR, filePath);\n const content = value;\n return fs.outputFileSync(fullFilePath, content);\n }\n mockfs(value, acc ? path.join(acc, key) : key);\n return undefined;\n });\n}\n\nfunction cleanUnitDir() {\n fs.removeSync(UNIT_TEST_DIR);\n}\n\n// try {\n// // eslint-disable-next-line global-require\n// require('module-lookup-amd');\n// } catch (err: any) {\n// // eslint-disable-next-line no-console\n// console.log(`mocha suppresses the error, so console.error is needed to show the error on the screen.\n// the problem is with module-lookup-amd that calls requirejs package and uses rewire package.\n// see https://github.com/jhnns/rewire/issues/178 for more details.\n// the error occurs since node v12.16.0. for the time being, to run the tests, use an earlier version.\n// `);\n// // eslint-disable-next-line no-console\n// console.error(err);\n// throw err;\n// }\n\ndescribe('filing-cabinet', () => {\n describe('JavaScript', () => {\n beforeEach(() => {\n mockfs(mockedFiles);\n });\n\n afterEach(() => {\n cleanUnitDir();\n });\n\n it('uses a generic resolve for unsupported file extensions', () => {\n const resolvedFile = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.baz`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n assert.ok(resolvedFile.endsWith('bar.baz'));\n });\n\n describe('when given an ast for a JS file', () => {\n it('reuses the ast when trying to determine the module type', () => {\n const ast = {};\n\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n ast,\n });\n assert.ok(result.endsWith('es6/bar.js'));\n });\n\n it('resolves the dependency successfully', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n ast: mockAST,\n });\n assert.equal(result, path.join(UNIT_TEST_DIR, 'js/es6/bar.js'));\n });\n });\n\n describe('when not given an ast', () => {\n it('uses the filename to look for the module type', () => {\n const options = {\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n };\n\n const result = cabinet(options);\n assert.equal(result, path.join(UNIT_TEST_DIR, 'js/es6/bar.js'));\n });\n });\n\n describe('es6', () => {\n // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference\n it.skip('assumes commonjs for es6 modules with no requirejs/webpack config', () => {\n const stub = sinon.stub();\n const revert = cabinetNonDefault.__set__('commonJSLookup', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n });\n\n assert.ok(stub.called);\n\n revert();\n });\n });\n\n describe('jsx', () => {\n it('resolves files with the .jsx extension', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.jsx`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/es6/bar.js')}`);\n });\n });\n\n // describe('amd', () => {\n // it('uses the amd resolver', () => {\n // const resolvedFile = cabinet({\n // dependency: './bar',\n // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,\n // directory: `${UNIT_TEST_DIR}/js/amd/`,\n // });\n // assert.ok(resolvedFile.endsWith('amd/bar.js'));\n // });\n\n // // skipped as part of lazy loading fix. not seems to be super helpful test\n // it.skip('passes along arguments', () => {\n // const stub = sinon.stub();\n // const revert = cabinet.__set__('amdLookup', stub);\n // const config = { baseUrl: 'js' };\n\n // cabinet({\n // dependency: 'bar',\n // config,\n // configPath: 'config.js',\n // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,\n // directory: `${UNIT_TEST_DIR}/js/amd/`,\n // });\n\n // const args = stub.getCall(0).args[0];\n\n // assert.equal(args.dependency, 'bar');\n // assert.equal(args.config, config);\n // assert.equal(args.configPath, 'config.js');\n // assert.equal(args.filename, 'js/amd/foo.js');\n // assert.equal(args.directory, 'js/amd/');\n\n // assert.ok(stub.called);\n\n // revert();\n // });\n // });\n\n describe('commonjs', () => {\n // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference\n it.skip(\"uses require's resolver\", () => {\n const stub = sinon.stub();\n const revert = cabinetNonDefault.__set__('commonJSLookup', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n\n assert.ok(stub.called);\n\n revert();\n });\n\n it('returns an empty string for an unresolved module', () => {\n const result = cabinet({\n dependency: 'foobar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n\n assert.equal(result, '');\n });\n\n it('adds the directory to the require resolution paths', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n cabinet({\n dependency: 'foobar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory,\n });\n\n assert.ok(\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n require.main.paths.some(function (p) {\n return p.indexOf(path.normalize(directory)) !== -1;\n })\n );\n });\n\n it('resolves a relative dependency about the filename', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}foo.js`;\n\n const result = cabinet({\n dependency: './bar',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'bar.js'));\n });\n\n it(\"resolves a .. dependency to its parent directory's index.js file\", () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}subdir/module.js`;\n\n const result = cabinet({\n dependency: '../',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'index.js'));\n });\n\n // @todo: fix\n it.skip('resolves a dependency within a directory outside of the given file', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}test/index.spec.js`;\n\n const result = cabinet({\n dependency: 'subdir',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'subdir/index.js'));\n });\n\n // @todo: fix\n it.skip('resolves a node module with module entry in package.json', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}module.entry.js`;\n\n const result = cabinet({\n dependency: 'module.entry',\n filename,\n directory,\n nodeModulesConfig: {\n entry: 'module',\n },\n });\n\n assert.equal(\n result,\n path.join(path.resolve(directory), '..', 'node_modules', 'module.entry', 'index.module.js')\n );\n });\n\n it('resolves a nested module', () => {\n const directory = `${UNIT_TEST_DIR}/js/node_modules/nested/`;\n const filename = `${directory}index.js`;\n\n const result = cabinet({\n dependency: 'lodash.assign',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'node_modules', 'lodash.assign', 'index.js'));\n });\n\n it('resolves to the index.js file of a directory', () => {\n const directory = `${UNIT_TEST_DIR}/js/withIndex`;\n const filename = `${directory}/index.js`;\n\n const result = cabinet({\n dependency: './subdir',\n filename,\n directory,\n });\n\n assert.equal(result, path.normalize(`${path.resolve(directory)}/subdir/index.js`));\n });\n\n it('resolves implicit .jsx requires', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/bar.jsx')}`);\n });\n\n it('resolves implicit .scss requires', () => {\n const result = cabinet({\n dependency: './baz',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/baz.scss')}`);\n });\n\n it('resolves implicit .json requires', () => {\n const result = cabinet({\n dependency: './pkg',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/pkg.json')}`);\n });\n });\n\n describe('typescript', () => {\n it('resolves an import', () => {\n const directory = `${UNIT_TEST_DIR}/js/ts`;\n const filename = `${directory}/index.ts`;\n\n const result = cabinet({\n dependency: './foo',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'foo.ts'));\n });\n\n describe('when a dependency does not exist', () => {\n it('returns an empty result', () => {\n const directory = `${UNIT_TEST_DIR}/js/ts`;\n const filename = `${directory}/index.ts`;\n\n const result = cabinet({\n dependency: './barbar',\n filename,\n directory,\n });\n\n assert.equal(result, '');\n });\n });\n });\n });\n\n describe('CSS', () => {\n beforeEach(() => {\n mockfs({\n stylus: {\n 'foo.styl': '',\n 'bar.styl': '',\n },\n sass: {\n 'foo.scss': '',\n 'bar.scss': '',\n 'foo.sass': '',\n 'bar.sass': '',\n },\n less: {\n 'foo.less': '',\n 'bar.less': '',\n 'bar.css': '',\n },\n });\n\n // mockJSDir = path.resolve(__dirname, '../');\n });\n\n afterEach(() => {\n cleanUnitDir();\n });\n\n describe('sass', () => {\n it('uses the sass resolver for .scss files', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/sass/foo.scss`,\n directory: `${UNIT_TEST_DIR}/sass/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/sass/bar.scss`));\n });\n\n it('uses the sass resolver for .sass files', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/sass/foo.sass`,\n directory: `${UNIT_TEST_DIR}/sass/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/sass/bar.sass`));\n });\n });\n\n describe('stylus', () => {\n it('uses the stylus resolver', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,\n directory: `${UNIT_TEST_DIR}/stylus/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/stylus/bar.styl`));\n });\n });\n\n describe('less', () => {\n it('resolves extensionless dependencies', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.less`));\n });\n\n it('resolves dependencies with a less extension', () => {\n const result = cabinet({\n dependency: 'bar.less',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.less`));\n });\n\n it('resolves dependencies with a css extension', () => {\n const result = cabinet({\n dependency: 'bar.css',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.css`));\n });\n });\n });\n\n describe('unrecognized extension', () => {\n it('uses a generic resolve for unsupported file extensions', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/barbazim/foo.baz`,\n directory: `${UNIT_TEST_DIR}/barbazim/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/barbazim/bar.baz`));\n });\n });\n\n describe('custom env lookups', () => {\n it('supports passing env detectors', () => {\n const detector: DependencyDetector = {\n detect: (fileContent: string) => {\n return fileContent.indexOf('foo') === -1 ? [] : ['foo'];\n },\n isSupported: ({ ext }) => {\n return ext === '.foo';\n },\n dependencyLookup: ({ dependency }) => {\n return `/xyz/${dependency}.baz`;\n },\n type: 'foo',\n };\n const result = cabinet({\n directory: `${UNIT_TEST_DIR}/barbazim/`,\n filename: `${UNIT_TEST_DIR}/barbazim/xxx.foo`,\n ext: '.foo',\n dependency: 'bar',\n envDetectors: [detector],\n });\n\n assert.equal(result, '/xyz/bar.baz');\n });\n });\n\n describe('.register', () => {\n it('registers a custom resolver for a given extension', () => {\n const stub = sinon.stub().returns('foo.foobar');\n cabinetNonDefault.register('.foobar', stub);\n\n const pathResult = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n assert.ok(stub.called);\n assert.equal(pathResult, 'foo.foobar');\n });\n\n it('allows does not break default resolvers', () => {\n mockfs({\n stylus: {\n 'foo.styl': '',\n 'bar.styl': '',\n },\n });\n\n const stub = sinon.stub().returns('foo');\n\n cabinetNonDefault.register('.foobar', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,\n directory: `${UNIT_TEST_DIR}/stylus/`,\n });\n\n assert.ok(stub.called);\n assert.ok(result);\n\n cleanUnitDir();\n });\n\n it('can be called multiple times', () => {\n const stub = sinon.stub().returns('foo');\n const stub2 = sinon.stub().returns('foo');\n\n cabinetNonDefault.register('.foobar', stub);\n cabinetNonDefault.register('.barbar', stub2);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.barbar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n assert.ok(stub.called);\n assert.ok(stub2.called);\n });\n\n it('does not add redundant extensions to supportedFileExtensions', () => {\n const stub = sinon.stub;\n const newExt = '.foobar';\n\n cabinetNonDefault.register(newExt, stub);\n cabinetNonDefault.register(newExt, stub);\n\n const { supportedFileExtensions } = cabinetNonDefault;\n\n assert.equal(supportedFileExtensions.indexOf(newExt), supportedFileExtensions.lastIndexOf(newExt));\n });\n });\n\n // @todo: fix.\n describe.skip('webpack', () => {\n let directory;\n\n beforeEach(() => {\n directory = path.resolve(__dirname, '../../../');\n });\n\n function testResolution(dependency, expected) {\n const resolved = cabinet({\n dependency,\n filename: `${__dirname}/index.js`,\n directory,\n webpackConfig: `${fixtures}/webpack.config.js`,\n });\n\n assert.equal(resolved, path.normalize(expected));\n }\n\n it('resolves an aliased path', () => {\n testResolution('R', `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a non-aliased path', () => {\n testResolution('resolve', `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a relative path', () => {\n testResolution('./test/ast', `${fixtures}/test/ast.js`);\n });\n\n it('resolves an absolute path from a file within a subdirectory', () => {\n const resolved = cabinet({\n dependency: 'R',\n filename: `${fixtures}/test/ast.js`,\n directory,\n webpackConfig: `${fixtures}/webpack.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a path using resolve.root', () => {\n const resolved = cabinet({\n dependency: 'mod1',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/test/root1/mod1.js`);\n });\n\n it('resolves NPM module when using resolve.root', () => {\n const resolved = cabinet({\n dependency: 'resolve',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves NPM module when using resolve.modulesDirectories', () => {\n const resolved = cabinet({\n dependency: 'resolve',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a path using resolve.modulesDirectories', () => {\n const resolved = cabinet({\n dependency: 'mod2',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/test/root2/mod2.js`);\n });\n\n it('resolves a path using webpack config that exports a function', () => {\n const resolved = cabinet({\n dependency: 'R',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-env.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves files with a .jsx extension', () => {\n testResolution('./test/foo.jsx', `${directory}/test/foo.jsx`);\n });\n\n describe('when the dependency contains a loader', () => {\n it('still works', () => {\n testResolution('hgn!resolve', `${directory}/node_modules/resolve/index.js`);\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_defenderFs","data","require","_fsExtra","_interopRequireDefault","_assert","_path","_rewire","_sinon","e","__esModule","default","UNIT_TEST_DIR","path","join","BIT_TEMP_ROOT","cabinetNonDefault","rewire","cabinet","fixtures","resolve","__dirname","mockedFiles","mockAST","mockfs","obj","acc","Object","entries","forEach","key","value","filePath","fullFilePath","content","fs","outputFileSync","undefined","cleanUnitDir","removeSync","describe","beforeEach","afterEach","it","resolvedFile","dependency","filename","directory","assert","ok","endsWith","ast","result","equal","options","skip","stub","sinon","revert","__set__","called","main","paths","some","p","indexOf","normalize","nodeModulesConfig","entry","stylus","sass","less","detector","detect","fileContent","isSupported","ext","dependencyLookup","type","envDetectors","returns","register","pathResult","stub2","newExt","supportedFileExtensions","lastIndexOf","testResolution","expected","resolved","webpackConfig"],"sources":["index.spec.ts"],"sourcesContent":["import { BIT_TEMP_ROOT } from '@teambit/defender.fs.global-bit-temp-dir';\nimport fs from 'fs-extra';\nimport assert from 'assert';\nimport path from 'path';\nimport rewire from 'rewire';\nimport sinon from 'sinon';\n\nimport type { DependencyDetector } from '../detector-hook';\n\nconst UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');\n\nconst cabinetNonDefault = rewire('./');\nconst cabinet = cabinetNonDefault.default;\n\nconst fixtures = path.resolve(`${__dirname}/../fixtures/filing-cabinet`);\n\n// eslint-disable-next-line import/no-dynamic-require, global-require\nconst mockedFiles = require(`${fixtures}/mockedJSFiles`);\n// eslint-disable-next-line import/no-dynamic-require, global-require\nconst mockAST = require(`${fixtures}/ast`);\n\nfunction mockfs(obj: any, acc?: string) {\n Object.entries(obj).forEach(([key, value]) => {\n if (typeof value === 'string') {\n const filePath = acc ? path.join(acc, key) : key;\n const fullFilePath = path.join(UNIT_TEST_DIR, filePath);\n const content = value;\n return fs.outputFileSync(fullFilePath, content);\n }\n mockfs(value, acc ? path.join(acc, key) : key);\n return undefined;\n });\n}\n\nfunction cleanUnitDir() {\n fs.removeSync(UNIT_TEST_DIR);\n}\n\n// try {\n// // eslint-disable-next-line global-require\n// require('module-lookup-amd');\n// } catch (err: any) {\n// // eslint-disable-next-line no-console\n// console.log(`mocha suppresses the error, so console.error is needed to show the error on the screen.\n// the problem is with module-lookup-amd that calls requirejs package and uses rewire package.\n// see https://github.com/jhnns/rewire/issues/178 for more details.\n// the error occurs since node v12.16.0. for the time being, to run the tests, use an earlier version.\n// `);\n// // eslint-disable-next-line no-console\n// console.error(err);\n// throw err;\n// }\n\ndescribe('filing-cabinet', () => {\n describe('JavaScript', () => {\n beforeEach(() => {\n mockfs(mockedFiles);\n });\n\n afterEach(() => {\n cleanUnitDir();\n });\n\n it('uses a generic resolve for unsupported file extensions', () => {\n const resolvedFile = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.baz`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n assert.ok(resolvedFile.endsWith('bar.baz'));\n });\n\n describe('when given an ast for a JS file', () => {\n it('reuses the ast when trying to determine the module type', () => {\n const ast = {};\n\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n ast,\n });\n assert.ok(result.endsWith('es6/bar.js'));\n });\n\n it('resolves the dependency successfully', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n ast: mockAST,\n });\n assert.equal(result, path.join(UNIT_TEST_DIR, 'js/es6/bar.js'));\n });\n });\n\n describe('when not given an ast', () => {\n it('uses the filename to look for the module type', () => {\n const options = {\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n };\n\n const result = cabinet(options);\n assert.equal(result, path.join(UNIT_TEST_DIR, 'js/es6/bar.js'));\n });\n });\n\n describe('es6', () => {\n // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference\n it.skip('assumes commonjs for es6 modules with no requirejs/webpack config', () => {\n const stub = sinon.stub();\n const revert = cabinetNonDefault.__set__('commonJSLookup', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n });\n\n assert.ok(stub.called);\n\n revert();\n });\n });\n\n describe('jsx', () => {\n it('resolves files with the .jsx extension', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/es6/foo.jsx`,\n directory: `${UNIT_TEST_DIR}/js/es6/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/es6/bar.js')}`);\n });\n });\n\n // describe('amd', () => {\n // it('uses the amd resolver', () => {\n // const resolvedFile = cabinet({\n // dependency: './bar',\n // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,\n // directory: `${UNIT_TEST_DIR}/js/amd/`,\n // });\n // assert.ok(resolvedFile.endsWith('amd/bar.js'));\n // });\n\n // // skipped as part of lazy loading fix. not seems to be super helpful test\n // it.skip('passes along arguments', () => {\n // const stub = sinon.stub();\n // const revert = cabinet.__set__('amdLookup', stub);\n // const config = { baseUrl: 'js' };\n\n // cabinet({\n // dependency: 'bar',\n // config,\n // configPath: 'config.js',\n // filename: `${UNIT_TEST_DIR}/js/amd/foo.js`,\n // directory: `${UNIT_TEST_DIR}/js/amd/`,\n // });\n\n // const args = stub.getCall(0).args[0];\n\n // assert.equal(args.dependency, 'bar');\n // assert.equal(args.config, config);\n // assert.equal(args.configPath, 'config.js');\n // assert.equal(args.filename, 'js/amd/foo.js');\n // assert.equal(args.directory, 'js/amd/');\n\n // assert.ok(stub.called);\n\n // revert();\n // });\n // });\n\n describe('commonjs', () => {\n // TODO: commonJSLookup is not able to be stubbed after the revamp, but keep the test case temporarily for reference\n it.skip(\"uses require's resolver\", () => {\n const stub = sinon.stub();\n const revert = cabinetNonDefault.__set__('commonJSLookup', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n\n assert.ok(stub.called);\n\n revert();\n });\n\n it('returns an empty string for an unresolved module', () => {\n const result = cabinet({\n dependency: 'foobar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/commonjs/`,\n });\n\n assert.equal(result, '');\n });\n\n it('adds the directory to the require resolution paths', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n cabinet({\n dependency: 'foobar',\n filename: `${UNIT_TEST_DIR}/js/commonjs/foo.js`,\n directory,\n });\n\n assert.ok(\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n require.main.paths.some(function (p) {\n return p.indexOf(path.normalize(directory)) !== -1;\n })\n );\n });\n\n it('resolves a relative dependency about the filename', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}foo.js`;\n\n const result = cabinet({\n dependency: './bar',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'bar.js'));\n });\n\n it(\"resolves a .. dependency to its parent directory's index.js file\", () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}subdir/module.js`;\n\n const result = cabinet({\n dependency: '../',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'index.js'));\n });\n\n // @todo: fix\n it.skip('resolves a dependency within a directory outside of the given file', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}test/index.spec.js`;\n\n const result = cabinet({\n dependency: 'subdir',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'subdir/index.js'));\n });\n\n // @todo: fix\n it.skip('resolves a node module with module entry in package.json', () => {\n const directory = `${UNIT_TEST_DIR}/js/commonjs/`;\n const filename = `${directory}module.entry.js`;\n\n const result = cabinet({\n dependency: 'module.entry',\n filename,\n directory,\n nodeModulesConfig: {\n entry: 'module',\n },\n });\n\n assert.equal(\n result,\n path.join(path.resolve(directory), '..', 'node_modules', 'module.entry', 'index.module.js')\n );\n });\n\n it('resolves a nested module', () => {\n const directory = `${UNIT_TEST_DIR}/js/node_modules/nested/`;\n const filename = `${directory}index.js`;\n\n const result = cabinet({\n dependency: 'lodash.assign',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'node_modules', 'lodash.assign', 'index.js'));\n });\n\n it('resolves to the index.js file of a directory', () => {\n const directory = `${UNIT_TEST_DIR}/js/withIndex`;\n const filename = `${directory}/index.js`;\n\n const result = cabinet({\n dependency: './subdir',\n filename,\n directory,\n });\n\n assert.equal(result, path.normalize(`${path.resolve(directory)}/subdir/index.js`));\n });\n\n it('resolves implicit .jsx requires', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/bar.jsx')}`);\n });\n\n it('resolves implicit .scss requires', () => {\n const result = cabinet({\n dependency: './baz',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/baz.scss')}`);\n });\n\n it('resolves implicit .json requires', () => {\n const result = cabinet({\n dependency: './pkg',\n filename: `${UNIT_TEST_DIR}/js/cjs/foo.js`,\n directory: `${UNIT_TEST_DIR}/js/cjs/`,\n });\n\n assert.equal(result, `${path.join(UNIT_TEST_DIR, 'js/cjs/pkg.json')}`);\n });\n });\n\n describe('typescript', () => {\n it('resolves an import', () => {\n const directory = `${UNIT_TEST_DIR}/js/ts`;\n const filename = `${directory}/index.ts`;\n\n const result = cabinet({\n dependency: './foo',\n filename,\n directory,\n });\n\n assert.equal(result, path.join(path.resolve(directory), 'foo.ts'));\n });\n\n describe('when a dependency does not exist', () => {\n it('returns an empty result', () => {\n const directory = `${UNIT_TEST_DIR}/js/ts`;\n const filename = `${directory}/index.ts`;\n\n const result = cabinet({\n dependency: './barbar',\n filename,\n directory,\n });\n\n assert.equal(result, '');\n });\n });\n });\n });\n\n describe('CSS', () => {\n beforeEach(() => {\n mockfs({\n stylus: {\n 'foo.styl': '',\n 'bar.styl': '',\n },\n sass: {\n 'foo.scss': '',\n 'bar.scss': '',\n 'foo.sass': '',\n 'bar.sass': '',\n },\n less: {\n 'foo.less': '',\n 'bar.less': '',\n 'bar.css': '',\n },\n });\n\n // mockJSDir = path.resolve(__dirname, '../');\n });\n\n afterEach(() => {\n cleanUnitDir();\n });\n\n describe('sass', () => {\n it('uses the sass resolver for .scss files', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/sass/foo.scss`,\n directory: `${UNIT_TEST_DIR}/sass/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/sass/bar.scss`));\n });\n\n it('uses the sass resolver for .sass files', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/sass/foo.sass`,\n directory: `${UNIT_TEST_DIR}/sass/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/sass/bar.sass`));\n });\n });\n\n describe('stylus', () => {\n it('uses the stylus resolver', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,\n directory: `${UNIT_TEST_DIR}/stylus/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/stylus/bar.styl`));\n });\n });\n\n describe('less', () => {\n it('resolves extensionless dependencies', () => {\n const result = cabinet({\n dependency: 'bar',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.less`));\n });\n\n it('resolves dependencies with a less extension', () => {\n const result = cabinet({\n dependency: 'bar.less',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.less`));\n });\n\n it('resolves dependencies with a css extension', () => {\n const result = cabinet({\n dependency: 'bar.css',\n filename: `${UNIT_TEST_DIR}/less/foo.less`,\n directory: `${UNIT_TEST_DIR}/less/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/less/bar.css`));\n });\n });\n });\n\n describe('unrecognized extension', () => {\n it('uses a generic resolve for unsupported file extensions', () => {\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/barbazim/foo.baz`,\n directory: `${UNIT_TEST_DIR}/barbazim/`,\n });\n\n assert.equal(result, path.normalize(`${UNIT_TEST_DIR}/barbazim/bar.baz`));\n });\n });\n\n describe('custom env lookups', () => {\n it('supports passing env detectors', () => {\n const detector: DependencyDetector = {\n detect: (fileContent: string) => {\n return fileContent.indexOf('foo') === -1 ? [] : ['foo'];\n },\n isSupported: ({ ext }) => {\n return ext === '.foo';\n },\n dependencyLookup: ({ dependency }) => {\n return `/xyz/${dependency}.baz`;\n },\n type: 'foo',\n };\n const result = cabinet({\n directory: `${UNIT_TEST_DIR}/barbazim/`,\n filename: `${UNIT_TEST_DIR}/barbazim/xxx.foo`,\n ext: '.foo',\n dependency: 'bar',\n envDetectors: [detector],\n });\n\n assert.equal(result, '/xyz/bar.baz');\n });\n });\n\n describe('.register', () => {\n it('registers a custom resolver for a given extension', () => {\n const stub = sinon.stub().returns('foo.foobar');\n cabinetNonDefault.register('.foobar', stub);\n\n const pathResult = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n assert.ok(stub.called);\n assert.equal(pathResult, 'foo.foobar');\n });\n\n it('allows does not break default resolvers', () => {\n mockfs({\n stylus: {\n 'foo.styl': '',\n 'bar.styl': '',\n },\n });\n\n const stub = sinon.stub().returns('foo');\n\n cabinetNonDefault.register('.foobar', stub);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n const result = cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/stylus/foo.styl`,\n directory: `${UNIT_TEST_DIR}/stylus/`,\n });\n\n assert.ok(stub.called);\n assert.ok(result);\n\n cleanUnitDir();\n });\n\n it('can be called multiple times', () => {\n const stub = sinon.stub().returns('foo');\n const stub2 = sinon.stub().returns('foo');\n\n cabinetNonDefault.register('.foobar', stub);\n cabinetNonDefault.register('.barbar', stub2);\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.foobar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n cabinet({\n dependency: './bar',\n filename: `${UNIT_TEST_DIR}/js/amd/foo.barbar`,\n directory: `${UNIT_TEST_DIR}/js/amd/`,\n });\n\n assert.ok(stub.called);\n assert.ok(stub2.called);\n });\n\n it('does not add redundant extensions to supportedFileExtensions', () => {\n const stub = sinon.stub;\n const newExt = '.foobar';\n\n cabinetNonDefault.register(newExt, stub);\n cabinetNonDefault.register(newExt, stub);\n\n const { supportedFileExtensions } = cabinetNonDefault;\n\n assert.equal(supportedFileExtensions.indexOf(newExt), supportedFileExtensions.lastIndexOf(newExt));\n });\n });\n\n // @todo: fix.\n describe.skip('webpack', () => {\n let directory;\n\n beforeEach(() => {\n directory = path.resolve(__dirname, '../../../');\n });\n\n function testResolution(dependency, expected) {\n const resolved = cabinet({\n dependency,\n filename: `${__dirname}/index.js`,\n directory,\n webpackConfig: `${fixtures}/webpack.config.js`,\n });\n\n assert.equal(resolved, path.normalize(expected));\n }\n\n it('resolves an aliased path', () => {\n testResolution('R', `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a non-aliased path', () => {\n testResolution('resolve', `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a relative path', () => {\n testResolution('./test/ast', `${fixtures}/test/ast.js`);\n });\n\n it('resolves an absolute path from a file within a subdirectory', () => {\n const resolved = cabinet({\n dependency: 'R',\n filename: `${fixtures}/test/ast.js`,\n directory,\n webpackConfig: `${fixtures}/webpack.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a path using resolve.root', () => {\n const resolved = cabinet({\n dependency: 'mod1',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/test/root1/mod1.js`);\n });\n\n it('resolves NPM module when using resolve.root', () => {\n const resolved = cabinet({\n dependency: 'resolve',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves NPM module when using resolve.modulesDirectories', () => {\n const resolved = cabinet({\n dependency: 'resolve',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves a path using resolve.modulesDirectories', () => {\n const resolved = cabinet({\n dependency: 'mod2',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-root.config.js`,\n });\n\n assert.equal(resolved, `${directory}/test/root2/mod2.js`);\n });\n\n it('resolves a path using webpack config that exports a function', () => {\n const resolved = cabinet({\n dependency: 'R',\n filename: `${directory}/index.js`,\n directory,\n webpackConfig: `${directory}/webpack-env.config.js`,\n });\n\n assert.equal(resolved, `${directory}/node_modules/resolve/index.js`);\n });\n\n it('resolves files with a .jsx extension', () => {\n testResolution('./test/foo.jsx', `${directory}/test/foo.jsx`);\n });\n\n describe('when the dependency contains a loader', () => {\n it('still works', () => {\n testResolution('hgn!resolve', `${directory}/node_modules/resolve/index.js`);\n });\n });\n });\n});\n"],"mappings":";;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,MAAA;EAAA,MAAAL,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,OAAA;EAAA,MAAAP,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAM,MAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAG,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAI1B,MAAMG,aAAa,GAAGC,eAAI,CAACC,IAAI,CAACC,2BAAa,EAAE,WAAW,CAAC;AAE3D,MAAMC,iBAAiB,GAAG,IAAAC,iBAAM,EAAC,IAAI,CAAC;AACtC,MAAMC,OAAO,GAAGF,iBAAiB,CAACL,OAAO;AAEzC,MAAMQ,QAAQ,GAAGN,eAAI,CAACO,OAAO,CAAC,GAAGC,SAAS,6BAA6B,CAAC;;AAExE;AACA,MAAMC,WAAW,GAAGpB,OAAO,CAAC,GAAGiB,QAAQ,gBAAgB,CAAC;AACxD;AACA,MAAMI,OAAO,GAAGrB,OAAO,CAAC,GAAGiB,QAAQ,MAAM,CAAC;AAE1C,SAASK,MAAMA,CAACC,GAAQ,EAAEC,GAAY,EAAE;EACtCC,MAAM,CAACC,OAAO,CAACH,GAAG,CAAC,CAACI,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;IAC5C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,MAAMC,QAAQ,GAAGN,GAAG,GAAGb,eAAI,CAACC,IAAI,CAACY,GAAG,EAAEI,GAAG,CAAC,GAAGA,GAAG;MAChD,MAAMG,YAAY,GAAGpB,eAAI,CAACC,IAAI,CAACF,aAAa,EAAEoB,QAAQ,CAAC;MACvD,MAAME,OAAO,GAAGH,KAAK;MACrB,OAAOI,kBAAE,CAACC,cAAc,CAACH,YAAY,EAAEC,OAAO,CAAC;IACjD;IACAV,MAAM,CAACO,KAAK,EAAEL,GAAG,GAAGb,eAAI,CAACC,IAAI,CAACY,GAAG,EAAEI,GAAG,CAAC,GAAGA,GAAG,CAAC;IAC9C,OAAOO,SAAS;EAClB,CAAC,CAAC;AACJ;AAEA,SAASC,YAAYA,CAAA,EAAG;EACtBH,kBAAE,CAACI,UAAU,CAAC3B,aAAa,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA4B,QAAQ,CAAC,gBAAgB,EAAE,MAAM;EAC/BA,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC3BC,UAAU,CAAC,MAAM;MACfjB,MAAM,CAACF,WAAW,CAAC;IACrB,CAAC,CAAC;IAEFoB,SAAS,CAAC,MAAM;MACdJ,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC;IAEFK,EAAE,CAAC,wDAAwD,EAAE,MAAM;MACjE,MAAMC,YAAY,GAAG1B,OAAO,CAAC;QAC3B2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,sBAAsB;QAChDmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MACFoC,iBAAM,CAACC,EAAE,CAACL,YAAY,CAACM,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEFV,QAAQ,CAAC,iCAAiC,EAAE,MAAM;MAChDG,EAAE,CAAC,yDAAyD,EAAE,MAAM;QAClE,MAAMQ,GAAG,GAAG,CAAC,CAAC;QAEd,MAAMC,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa,UAAU;UACrCuC;QACF,CAAC,CAAC;QACFH,iBAAM,CAACC,EAAE,CAACG,MAAM,CAACF,QAAQ,CAAC,YAAY,CAAC,CAAC;MAC1C,CAAC,CAAC;MAEFP,EAAE,CAAC,sCAAsC,EAAE,MAAM;QAC/C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa,UAAU;UACrCuC,GAAG,EAAE5B;QACP,CAAC,CAAC;QACFyB,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,eAAe,CAAC,CAAC;MACjE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACtCG,EAAE,CAAC,+CAA+C,EAAE,MAAM;QACxD,MAAMW,OAAO,GAAG;UACdT,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC;QAED,MAAMwC,MAAM,GAAGlC,OAAO,CAACoC,OAAO,CAAC;QAC/BN,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,eAAe,CAAC,CAAC;MACjE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,KAAK,EAAE,MAAM;MACpB;MACAG,EAAE,CAACY,IAAI,CAAC,mEAAmE,EAAE,MAAM;QACjF,MAAMC,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC;QACzB,MAAME,MAAM,GAAG1C,iBAAiB,CAAC2C,OAAO,CAAC,gBAAgB,EAAEH,IAAI,CAAC;QAEhEtC,OAAO,CAAC;UACN2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;QAEtBF,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFlB,QAAQ,CAAC,KAAK,EAAE,MAAM;MACpBG,EAAE,CAAC,wCAAwC,EAAE,MAAM;QACjD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,iBAAiB;UAC3CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,GAAGvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;MACtE,CAAC,CAAC;IACJ,CAAC,CAAC;;IAEF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;;IAEA;IACA;IACA;IACA;IACA;;IAEA;;IAEA;IACA;IACA;;IAEA4B,QAAQ,CAAC,UAAU,EAAE,MAAM;MACzB;MACAG,EAAE,CAACY,IAAI,CAAC,yBAAyB,EAAE,MAAM;QACvC,MAAMC,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC;QACzB,MAAME,MAAM,GAAG1C,iBAAiB,CAAC2C,OAAO,CAAC,gBAAgB,EAAEH,IAAI,CAAC;QAEhEtC,OAAO,CAAC;UACN2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,qBAAqB;UAC/CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;QAEtBF,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;MAEFf,EAAE,CAAC,kDAAkD,EAAE,MAAM;QAC3D,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,QAAQ;UACpBC,QAAQ,EAAE,GAAGlC,aAAa,qBAAqB;UAC/CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,EAAE,CAAC;MAC1B,CAAC,CAAC;MAEFT,EAAE,CAAC,oDAAoD,EAAE,MAAM;QAC7D,MAAMI,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjDM,OAAO,CAAC;UACN2B,UAAU,EAAE,QAAQ;UACpBC,QAAQ,EAAE,GAAGlC,aAAa,qBAAqB;UAC/CmC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACC,EAAE;QACP;QACA/C,OAAO,CAAC2D,IAAI,CAACC,KAAK,CAACC,IAAI,CAAC,UAAUC,CAAC,EAAE;UACnC,OAAOA,CAAC,CAACC,OAAO,CAACpD,eAAI,CAACqD,SAAS,CAACnB,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CACH,CAAC;MACH,CAAC,CAAC;MAEFJ,EAAE,CAAC,mDAAmD,EAAE,MAAM;QAC5D,MAAMI,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,QAAQ;QAErC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;MACpE,CAAC,CAAC;MAEFJ,EAAE,CAAC,kEAAkE,EAAE,MAAM;QAC3E,MAAMI,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,kBAAkB;QAE/C,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;MACtE,CAAC,CAAC;;MAEF;MACAJ,EAAE,CAACY,IAAI,CAAC,oEAAoE,EAAE,MAAM;QAClF,MAAMR,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,oBAAoB;QAEjD,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,QAAQ;UACpBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,iBAAiB,CAAC,CAAC;MAC7E,CAAC,CAAC;;MAEF;MACAJ,EAAE,CAACY,IAAI,CAAC,0DAA0D,EAAE,MAAM;QACxE,MAAMR,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,iBAAiB;QAE9C,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,cAAc;UAC1BC,QAAQ;UACRC,SAAS;UACToB,iBAAiB,EAAE;YACjBC,KAAK,EAAE;UACT;QACF,CAAC,CAAC;QAEFpB,iBAAM,CAACK,KAAK,CACVD,MAAM,EACNvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,CAC5F,CAAC;MACH,CAAC,CAAC;MAEFJ,EAAE,CAAC,0BAA0B,EAAE,MAAM;QACnC,MAAMI,SAAS,GAAG,GAAGnC,aAAa,0BAA0B;QAC5D,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,UAAU;QAEvC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,eAAe;UAC3BC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;MACvG,CAAC,CAAC;MAEFJ,EAAE,CAAC,8CAA8C,EAAE,MAAM;QACvD,MAAMI,SAAS,GAAG,GAAGnC,aAAa,eAAe;QACjD,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,WAAW;QAExC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,UAAU;UACtBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGrD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,kBAAkB,CAAC,CAAC;MACpF,CAAC,CAAC;MAEFJ,EAAE,CAAC,iCAAiC,EAAE,MAAM;QAC1C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,GAAGvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,gBAAgB,CAAC,EAAE,CAAC;MACvE,CAAC,CAAC;MAEF+B,EAAE,CAAC,kCAAkC,EAAE,MAAM;QAC3C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,GAAGvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,iBAAiB,CAAC,EAAE,CAAC;MACxE,CAAC,CAAC;MAEF+B,EAAE,CAAC,kCAAkC,EAAE,MAAM;QAC3C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,GAAGvC,eAAI,CAACC,IAAI,CAACF,aAAa,EAAE,iBAAiB,CAAC,EAAE,CAAC;MACxE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,YAAY,EAAE,MAAM;MAC3BG,EAAE,CAAC,oBAAoB,EAAE,MAAM;QAC7B,MAAMI,SAAS,GAAG,GAAGnC,aAAa,QAAQ;QAC1C,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,WAAW;QAExC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,OAAO;UACnBC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACC,IAAI,CAACD,eAAI,CAACO,OAAO,CAAC2B,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;MACpE,CAAC,CAAC;MAEFP,QAAQ,CAAC,kCAAkC,EAAE,MAAM;QACjDG,EAAE,CAAC,yBAAyB,EAAE,MAAM;UAClC,MAAMI,SAAS,GAAG,GAAGnC,aAAa,QAAQ;UAC1C,MAAMkC,QAAQ,GAAG,GAAGC,SAAS,WAAW;UAExC,MAAMK,MAAM,GAAGlC,OAAO,CAAC;YACrB2B,UAAU,EAAE,UAAU;YACtBC,QAAQ;YACRC;UACF,CAAC,CAAC;UAEFC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,EAAE,CAAC;QAC1B,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFZ,QAAQ,CAAC,KAAK,EAAE,MAAM;IACpBC,UAAU,CAAC,MAAM;MACfjB,MAAM,CAAC;QACL6C,MAAM,EAAE;UACN,UAAU,EAAE,EAAE;UACd,UAAU,EAAE;QACd,CAAC;QACDC,IAAI,EAAE;UACJ,UAAU,EAAE,EAAE;UACd,UAAU,EAAE,EAAE;UACd,UAAU,EAAE,EAAE;UACd,UAAU,EAAE;QACd,CAAC;QACDC,IAAI,EAAE;UACJ,UAAU,EAAE,EAAE;UACd,UAAU,EAAE,EAAE;UACd,SAAS,EAAE;QACb;MACF,CAAC,CAAC;;MAEF;IACF,CAAC,CAAC;IAEF7B,SAAS,CAAC,MAAM;MACdJ,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC;IAEFE,QAAQ,CAAC,MAAM,EAAE,MAAM;MACrBG,EAAE,CAAC,wCAAwC,EAAE,MAAM;QACjD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,gBAAgB,CAAC,CAAC;MACxE,CAAC,CAAC;MAEF+B,EAAE,CAAC,wCAAwC,EAAE,MAAM;QACjD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,gBAAgB,CAAC,CAAC;MACxE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,QAAQ,EAAE,MAAM;MACvBG,EAAE,CAAC,0BAA0B,EAAE,MAAM;QACnC,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ,EAAE,GAAGlC,aAAa,kBAAkB;UAC5CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,kBAAkB,CAAC,CAAC;MAC1E,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF4B,QAAQ,CAAC,MAAM,EAAE,MAAM;MACrBG,EAAE,CAAC,qCAAqC,EAAE,MAAM;QAC9C,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,KAAK;UACjBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,gBAAgB,CAAC,CAAC;MACxE,CAAC,CAAC;MAEF+B,EAAE,CAAC,6CAA6C,EAAE,MAAM;QACtD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,UAAU;UACtBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,gBAAgB,CAAC,CAAC;MACxE,CAAC,CAAC;MAEF+B,EAAE,CAAC,4CAA4C,EAAE,MAAM;QACrD,MAAMS,MAAM,GAAGlC,OAAO,CAAC;UACrB2B,UAAU,EAAE,SAAS;UACrBC,QAAQ,EAAE,GAAGlC,aAAa,gBAAgB;UAC1CmC,SAAS,EAAE,GAAGnC,aAAa;QAC7B,CAAC,CAAC;QAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,eAAe,CAAC,CAAC;MACvE,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF4B,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACvCG,EAAE,CAAC,wDAAwD,EAAE,MAAM;MACjE,MAAMS,MAAM,GAAGlC,OAAO,CAAC;QACrB2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,mBAAmB;QAC7CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFoC,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAEvC,eAAI,CAACqD,SAAS,CAAC,GAAGtD,aAAa,mBAAmB,CAAC,CAAC;IAC3E,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF4B,QAAQ,CAAC,oBAAoB,EAAE,MAAM;IACnCG,EAAE,CAAC,gCAAgC,EAAE,MAAM;MACzC,MAAM6B,QAA4B,GAAG;QACnCC,MAAM,EAAGC,WAAmB,IAAK;UAC/B,OAAOA,WAAW,CAACT,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;QACzD,CAAC;QACDU,WAAW,EAAEA,CAAC;UAAEC;QAAI,CAAC,KAAK;UACxB,OAAOA,GAAG,KAAK,MAAM;QACvB,CAAC;QACDC,gBAAgB,EAAEA,CAAC;UAAEhC;QAAW,CAAC,KAAK;UACpC,OAAO,QAAQA,UAAU,MAAM;QACjC,CAAC;QACDiC,IAAI,EAAE;MACR,CAAC;MACD,MAAM1B,MAAM,GAAGlC,OAAO,CAAC;QACrB6B,SAAS,EAAE,GAAGnC,aAAa,YAAY;QACvCkC,QAAQ,EAAE,GAAGlC,aAAa,mBAAmB;QAC7CgE,GAAG,EAAE,MAAM;QACX/B,UAAU,EAAE,KAAK;QACjBkC,YAAY,EAAE,CAACP,QAAQ;MACzB,CAAC,CAAC;MAEFxB,iBAAM,CAACK,KAAK,CAACD,MAAM,EAAE,cAAc,CAAC;IACtC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFZ,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC1BG,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC5D,MAAMa,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC,CAACwB,OAAO,CAAC,YAAY,CAAC;MAC/ChE,iBAAiB,CAACiE,QAAQ,CAAC,SAAS,EAAEzB,IAAI,CAAC;MAE3C,MAAM0B,UAAU,GAAGhE,OAAO,CAAC;QACzB2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,oBAAoB;QAC9CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;MACtBZ,iBAAM,CAACK,KAAK,CAAC6B,UAAU,EAAE,YAAY,CAAC;IACxC,CAAC,CAAC;IAEFvC,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAClDnB,MAAM,CAAC;QACL6C,MAAM,EAAE;UACN,UAAU,EAAE,EAAE;UACd,UAAU,EAAE;QACd;MACF,CAAC,CAAC;MAEF,MAAMb,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC,CAACwB,OAAO,CAAC,KAAK,CAAC;MAExChE,iBAAiB,CAACiE,QAAQ,CAAC,SAAS,EAAEzB,IAAI,CAAC;MAE3CtC,OAAO,CAAC;QACN2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,oBAAoB;QAC9CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEF,MAAMwC,MAAM,GAAGlC,OAAO,CAAC;QACrB2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,kBAAkB;QAC5CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;MACtBZ,iBAAM,CAACC,EAAE,CAACG,MAAM,CAAC;MAEjBd,YAAY,CAAC,CAAC;IAChB,CAAC,CAAC;IAEFK,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMa,IAAI,GAAGC,gBAAK,CAACD,IAAI,CAAC,CAAC,CAACwB,OAAO,CAAC,KAAK,CAAC;MACxC,MAAMG,KAAK,GAAG1B,gBAAK,CAACD,IAAI,CAAC,CAAC,CAACwB,OAAO,CAAC,KAAK,CAAC;MAEzChE,iBAAiB,CAACiE,QAAQ,CAAC,SAAS,EAAEzB,IAAI,CAAC;MAC3CxC,iBAAiB,CAACiE,QAAQ,CAAC,SAAS,EAAEE,KAAK,CAAC;MAE5CjE,OAAO,CAAC;QACN2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,oBAAoB;QAC9CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFM,OAAO,CAAC;QACN2B,UAAU,EAAE,OAAO;QACnBC,QAAQ,EAAE,GAAGlC,aAAa,oBAAoB;QAC9CmC,SAAS,EAAE,GAAGnC,aAAa;MAC7B,CAAC,CAAC;MAEFoC,iBAAM,CAACC,EAAE,CAACO,IAAI,CAACI,MAAM,CAAC;MACtBZ,iBAAM,CAACC,EAAE,CAACkC,KAAK,CAACvB,MAAM,CAAC;IACzB,CAAC,CAAC;IAEFjB,EAAE,CAAC,8DAA8D,EAAE,MAAM;MACvE,MAAMa,IAAI,GAAGC,gBAAK,CAACD,IAAI;MACvB,MAAM4B,MAAM,GAAG,SAAS;MAExBpE,iBAAiB,CAACiE,QAAQ,CAACG,MAAM,EAAE5B,IAAI,CAAC;MACxCxC,iBAAiB,CAACiE,QAAQ,CAACG,MAAM,EAAE5B,IAAI,CAAC;MAExC,MAAM;QAAE6B;MAAwB,CAAC,GAAGrE,iBAAiB;MAErDgC,iBAAM,CAACK,KAAK,CAACgC,uBAAuB,CAACpB,OAAO,CAACmB,MAAM,CAAC,EAAEC,uBAAuB,CAACC,WAAW,CAACF,MAAM,CAAC,CAAC;IACpG,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF;EACA5C,QAAQ,CAACe,IAAI,CAAC,SAAS,EAAE,MAAM;IAC7B,IAAIR,SAAS;IAEbN,UAAU,CAAC,MAAM;MACfM,SAAS,GAAGlC,eAAI,CAACO,OAAO,CAACC,SAAS,EAAE,WAAW,CAAC;IAClD,CAAC,CAAC;IAEF,SAASkE,cAAcA,CAAC1C,UAAU,EAAE2C,QAAQ,EAAE;MAC5C,MAAMC,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU;QACVC,QAAQ,EAAE,GAAGzB,SAAS,WAAW;QACjC0B,SAAS;QACT2C,aAAa,EAAE,GAAGvE,QAAQ;MAC5B,CAAC,CAAC;MAEF6B,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE5E,eAAI,CAACqD,SAAS,CAACsB,QAAQ,CAAC,CAAC;IAClD;IAEA7C,EAAE,CAAC,0BAA0B,EAAE,MAAM;MACnC4C,cAAc,CAAC,GAAG,EAAE,GAAGxC,SAAS,gCAAgC,CAAC;IACnE,CAAC,CAAC;IAEFJ,EAAE,CAAC,6BAA6B,EAAE,MAAM;MACtC4C,cAAc,CAAC,SAAS,EAAE,GAAGxC,SAAS,gCAAgC,CAAC;IACzE,CAAC,CAAC;IAEFJ,EAAE,CAAC,0BAA0B,EAAE,MAAM;MACnC4C,cAAc,CAAC,YAAY,EAAE,GAAGpE,QAAQ,cAAc,CAAC;IACzD,CAAC,CAAC;IAEFwB,EAAE,CAAC,6DAA6D,EAAE,MAAM;MACtE,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,GAAG;QACfC,QAAQ,EAAE,GAAG3B,QAAQ,cAAc;QACnC4B,SAAS;QACT2C,aAAa,EAAE,GAAGvE,QAAQ;MAC5B,CAAC,CAAC;MAEF6B,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,gCAAgC,CAAC;IACtE,CAAC,CAAC;IAEFJ,EAAE,CAAC,oCAAoC,EAAE,MAAM;MAC7C,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,MAAM;QAClBC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,qBAAqB,CAAC;IAC3D,CAAC,CAAC;IAEFJ,EAAE,CAAC,6CAA6C,EAAE,MAAM;MACtD,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,SAAS;QACrBC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,gCAAgC,CAAC;IACtE,CAAC,CAAC;IAEFJ,EAAE,CAAC,2DAA2D,EAAE,MAAM;MACpE,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,SAAS;QACrBC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,gCAAgC,CAAC;IACtE,CAAC,CAAC;IAEFJ,EAAE,CAAC,kDAAkD,EAAE,MAAM;MAC3D,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,MAAM;QAClBC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,qBAAqB,CAAC;IAC3D,CAAC,CAAC;IAEFJ,EAAE,CAAC,8DAA8D,EAAE,MAAM;MACvE,MAAM8C,QAAQ,GAAGvE,OAAO,CAAC;QACvB2B,UAAU,EAAE,GAAG;QACfC,QAAQ,EAAE,GAAGC,SAAS,WAAW;QACjCA,SAAS;QACT2C,aAAa,EAAE,GAAG3C,SAAS;MAC7B,CAAC,CAAC;MAEFC,iBAAM,CAACK,KAAK,CAACoC,QAAQ,EAAE,GAAG1C,SAAS,gCAAgC,CAAC;IACtE,CAAC,CAAC;IAEFJ,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC/C4C,cAAc,CAAC,gBAAgB,EAAE,GAAGxC,SAAS,eAAe,CAAC;IAC/D,CAAC,CAAC;IAEFP,QAAQ,CAAC,uCAAuC,EAAE,MAAM;MACtDG,EAAE,CAAC,aAAa,EAAE,MAAM;QACtB4C,cAAc,CAAC,aAAa,EAAE,GAAGxC,SAAS,gCAAgC,CAAC;MAC7E,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_os","data","_interopRequireDefault","require","_path","_dependencyTree","e","__esModule","default","isWin","os","platform","isNpmPathFunc","pathStr","indexOf","sort","tree","Object","keys","reduce","acc","id","exclude","excludeRegExp","regExpList","map","re","RegExp","regExpFilter","findIndex","regexp","test","filter","processPath","absPath","cache","baseDir","relPath","path","relative","replace","convertTreePaths","depTree","pathCache","forEach","file","d","generateTree","files","config","nonExistent","npmPaths","pathMap","errors","detective","detectiveOptions","dependencyTreeResult","dependencyTree","filename","directory","requireConfig","webpackConfig","resolveConfig","visited","dependencyFilePath","traversedFilePath","dependencyFilterRes","isNpmPath","dependencyFilter","includeNpm","push","undefined","cacheProjectAst","envDetectors","assign","err","relativeFile","npmKey","npmPath","madgeTree","skipped"],"sources":["generate-tree-madge.ts"],"sourcesContent":["// most of the functions in this file were taken from the Madge project: https://github.com/pahen/madge\n// reasons for not using Madge directly: 1) it has issues with TypeScript on Windows. 2) it has issues with tsx files\n\nimport os from 'os';\nimport path from 'path';\n\nimport dependencyTree from './dependency-tree';\nimport { PathLinuxRelative } from '@teambit/toolbox.path.path';\n\n/**\n * Check if running on Windows.\n * @type {Boolean}\n */\nconst isWin = os.platform() === 'win32';\n\n/**\n * Check if path is from NPM folder\n * @param {String} path\n * @return {Boolean}\n */\nfunction isNpmPathFunc(pathStr) {\n return pathStr.indexOf('node_modules') >= 0;\n}\n\n/**\n * Sort tree.\n * @param {Object} tree\n * @return {Object}\n */\nfunction sort(tree) {\n return Object.keys(tree)\n .sort()\n .reduce((acc, id) => {\n acc[id] = tree[id].sort();\n return acc;\n }, {});\n}\n\n/**\n * Exclude modules from tree using RegExp.\n * @param {Object} tree\n * @param {Array} excludeRegExp\n * @return {Object}\n */\nfunction exclude(tree, excludeRegExp) {\n const regExpList = excludeRegExp.map((re) => new RegExp(re));\n\n function regExpFilter(id) {\n return regExpList.findIndex((regexp) => regexp.test(id)) < 0;\n }\n\n return Object.keys(tree)\n .filter(regExpFilter)\n .reduce((acc, id) => {\n acc[id] = tree[id].filter(regExpFilter);\n return acc;\n }, {});\n}\n\n/**\n * Process absolute path and return a shorter one.\n * @param {String} absPath\n * @param {Object} cache\n * @param {String} baseDir\n * @return {String}\n */\nexport function processPath(absPath, cache, baseDir) {\n if (cache[absPath]) {\n return cache[absPath];\n }\n\n let relPath = path.relative(baseDir, absPath);\n\n if (isWin) {\n relPath = relPath.replace(/\\\\/g, '/');\n }\n\n cache[absPath] = relPath;\n\n return relPath;\n}\n\n/**\n * Convert deep tree produced by dependency-tree to a\n * shallow (one level deep) tree used by madge.\n * @param {Object} depTree\n * @param {Object} tree\n * @param {Object} pathCache\n * @param {String} baseDir\n * @return {Object}\n */\nfunction convertTreePaths(depTree, pathCache, baseDir) {\n const tree = {};\n Object.keys(depTree).forEach((file) => {\n tree[processPath(file, pathCache, baseDir)] = depTree[file].map((d) => processPath(d, pathCache, baseDir));\n });\n\n return tree;\n}\n\n// e.g. { 'index.ts': ['foo.ts', '../node_modules/react/index.js'] }\n// all paths are normalized to Linux\nexport type MadgeTree = { [relativePath: string]: PathLinuxRelative[] };\n\n// e.g. { '/tmp/workspace': ['lodash', 'underscore'] };\nexport type Missing = { [absolutePath: string]: string[] };\n\ntype GenerateTreeResults = {\n madgeTree: MadgeTree;\n skipped: Missing;\n pathMap: any;\n errors: { [filePath: string]: Error };\n};\n\n/**\n * Generate the tree from the given files\n * @param {Array} files\n * @param config\n * @return {Object}\n */\nexport default function generateTree(files: string[] = [], config): GenerateTreeResults {\n const depTree = {};\n const nonExistent = {};\n const npmPaths = {};\n const pathCache = {};\n const pathMap = [];\n const errors = {};\n\n files.forEach((file) => {\n if (depTree[file]) {\n return;\n }\n\n const detective = config.detectiveOptions;\n try {\n const dependencyTreeResult = dependencyTree({\n filename: file,\n directory: config.baseDir,\n requireConfig: config.requireConfig,\n webpackConfig: config.webpackConfig,\n resolveConfig: config.resolveConfig,\n visited: config.visited,\n errors,\n filter: (dependencyFilePath, traversedFilePath) => {\n let dependencyFilterRes = true;\n const isNpmPath = isNpmPathFunc(dependencyFilePath);\n\n if (config.dependencyFilter) {\n dependencyFilterRes = config.dependencyFilter(dependencyFilePath, traversedFilePath, config.baseDir);\n }\n\n if (config.includeNpm && isNpmPath) {\n (npmPaths[traversedFilePath] = npmPaths[traversedFilePath] || []).push(dependencyFilePath);\n }\n\n return !isNpmPath && (dependencyFilterRes || dependencyFilterRes === undefined);\n },\n detective,\n nonExistent,\n pathMap,\n cacheProjectAst: config.cacheProjectAst,\n envDetectors: config.envDetectors,\n });\n Object.assign(depTree, dependencyTreeResult);\n } catch (err: any) {\n errors[file] = err;\n }\n });\n\n let tree = convertTreePaths(depTree, pathCache, config.baseDir);\n\n // rename errors keys from absolute paths to relative paths\n Object.keys(errors).forEach((file) => {\n const relativeFile = processPath(file, pathCache, config.baseDir);\n if (relativeFile !== file) {\n errors[relativeFile] = errors[file];\n delete errors[file];\n }\n });\n\n Object.keys(npmPaths).forEach((npmKey) => {\n const id = processPath(npmKey, pathCache, config.baseDir);\n // a file might not be in the tree if it has errors or errors found with its parents\n if (!tree[id]) return;\n npmPaths[npmKey].forEach((npmPath) => {\n tree[id].push(processPath(npmPath, pathCache, config.baseDir));\n });\n });\n\n if (config.excludeRegExp) {\n tree = exclude(tree, config.excludeRegExp);\n }\n\n return {\n madgeTree: sort(tree),\n skipped: nonExistent,\n pathMap,\n errors,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_os","data","_interopRequireDefault","require","_path","_dependencyTree","e","__esModule","default","isWin","os","platform","isNpmPathFunc","pathStr","indexOf","sort","tree","Object","keys","reduce","acc","id","exclude","excludeRegExp","regExpList","map","re","RegExp","regExpFilter","findIndex","regexp","test","filter","processPath","absPath","cache","baseDir","relPath","path","relative","replace","convertTreePaths","depTree","pathCache","forEach","file","d","generateTree","files","config","nonExistent","npmPaths","pathMap","errors","detective","detectiveOptions","dependencyTreeResult","dependencyTree","filename","directory","requireConfig","webpackConfig","resolveConfig","visited","dependencyFilePath","traversedFilePath","dependencyFilterRes","isNpmPath","dependencyFilter","includeNpm","push","undefined","cacheProjectAst","envDetectors","assign","err","relativeFile","npmKey","npmPath","madgeTree","skipped"],"sources":["generate-tree-madge.ts"],"sourcesContent":["// most of the functions in this file were taken from the Madge project: https://github.com/pahen/madge\n// reasons for not using Madge directly: 1) it has issues with TypeScript on Windows. 2) it has issues with tsx files\n\nimport os from 'os';\nimport path from 'path';\n\nimport dependencyTree from './dependency-tree';\nimport type { PathLinuxRelative } from '@teambit/toolbox.path.path';\n\n/**\n * Check if running on Windows.\n * @type {Boolean}\n */\nconst isWin = os.platform() === 'win32';\n\n/**\n * Check if path is from NPM folder\n * @param {String} path\n * @return {Boolean}\n */\nfunction isNpmPathFunc(pathStr) {\n return pathStr.indexOf('node_modules') >= 0;\n}\n\n/**\n * Sort tree.\n * @param {Object} tree\n * @return {Object}\n */\nfunction sort(tree) {\n return Object.keys(tree)\n .sort()\n .reduce((acc, id) => {\n acc[id] = tree[id].sort();\n return acc;\n }, {});\n}\n\n/**\n * Exclude modules from tree using RegExp.\n * @param {Object} tree\n * @param {Array} excludeRegExp\n * @return {Object}\n */\nfunction exclude(tree, excludeRegExp) {\n const regExpList = excludeRegExp.map((re) => new RegExp(re));\n\n function regExpFilter(id) {\n return regExpList.findIndex((regexp) => regexp.test(id)) < 0;\n }\n\n return Object.keys(tree)\n .filter(regExpFilter)\n .reduce((acc, id) => {\n acc[id] = tree[id].filter(regExpFilter);\n return acc;\n }, {});\n}\n\n/**\n * Process absolute path and return a shorter one.\n * @param {String} absPath\n * @param {Object} cache\n * @param {String} baseDir\n * @return {String}\n */\nexport function processPath(absPath, cache, baseDir) {\n if (cache[absPath]) {\n return cache[absPath];\n }\n\n let relPath = path.relative(baseDir, absPath);\n\n if (isWin) {\n relPath = relPath.replace(/\\\\/g, '/');\n }\n\n cache[absPath] = relPath;\n\n return relPath;\n}\n\n/**\n * Convert deep tree produced by dependency-tree to a\n * shallow (one level deep) tree used by madge.\n * @param {Object} depTree\n * @param {Object} tree\n * @param {Object} pathCache\n * @param {String} baseDir\n * @return {Object}\n */\nfunction convertTreePaths(depTree, pathCache, baseDir) {\n const tree = {};\n Object.keys(depTree).forEach((file) => {\n tree[processPath(file, pathCache, baseDir)] = depTree[file].map((d) => processPath(d, pathCache, baseDir));\n });\n\n return tree;\n}\n\n// e.g. { 'index.ts': ['foo.ts', '../node_modules/react/index.js'] }\n// all paths are normalized to Linux\nexport type MadgeTree = { [relativePath: string]: PathLinuxRelative[] };\n\n// e.g. { '/tmp/workspace': ['lodash', 'underscore'] };\nexport type Missing = { [absolutePath: string]: string[] };\n\ntype GenerateTreeResults = {\n madgeTree: MadgeTree;\n skipped: Missing;\n pathMap: any;\n errors: { [filePath: string]: Error };\n};\n\n/**\n * Generate the tree from the given files\n * @param {Array} files\n * @param config\n * @return {Object}\n */\nexport default function generateTree(files: string[] = [], config): GenerateTreeResults {\n const depTree = {};\n const nonExistent = {};\n const npmPaths = {};\n const pathCache = {};\n const pathMap = [];\n const errors = {};\n\n files.forEach((file) => {\n if (depTree[file]) {\n return;\n }\n\n const detective = config.detectiveOptions;\n try {\n const dependencyTreeResult = dependencyTree({\n filename: file,\n directory: config.baseDir,\n requireConfig: config.requireConfig,\n webpackConfig: config.webpackConfig,\n resolveConfig: config.resolveConfig,\n visited: config.visited,\n errors,\n filter: (dependencyFilePath, traversedFilePath) => {\n let dependencyFilterRes = true;\n const isNpmPath = isNpmPathFunc(dependencyFilePath);\n\n if (config.dependencyFilter) {\n dependencyFilterRes = config.dependencyFilter(dependencyFilePath, traversedFilePath, config.baseDir);\n }\n\n if (config.includeNpm && isNpmPath) {\n (npmPaths[traversedFilePath] = npmPaths[traversedFilePath] || []).push(dependencyFilePath);\n }\n\n return !isNpmPath && (dependencyFilterRes || dependencyFilterRes === undefined);\n },\n detective,\n nonExistent,\n pathMap,\n cacheProjectAst: config.cacheProjectAst,\n envDetectors: config.envDetectors,\n });\n Object.assign(depTree, dependencyTreeResult);\n } catch (err: any) {\n errors[file] = err;\n }\n });\n\n let tree = convertTreePaths(depTree, pathCache, config.baseDir);\n\n // rename errors keys from absolute paths to relative paths\n Object.keys(errors).forEach((file) => {\n const relativeFile = processPath(file, pathCache, config.baseDir);\n if (relativeFile !== file) {\n errors[relativeFile] = errors[file];\n delete errors[file];\n }\n });\n\n Object.keys(npmPaths).forEach((npmKey) => {\n const id = processPath(npmKey, pathCache, config.baseDir);\n // a file might not be in the tree if it has errors or errors found with its parents\n if (!tree[id]) return;\n npmPaths[npmKey].forEach((npmPath) => {\n tree[id].push(processPath(npmPath, pathCache, config.baseDir));\n });\n });\n\n if (config.excludeRegExp) {\n tree = exclude(tree, config.excludeRegExp);\n }\n\n return {\n madgeTree: sort(tree),\n skipped: nonExistent,\n pathMap,\n errors,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ResolvedPackageData } from '../resolve-pkg-data';
|
2
|
-
import { Missing } from './generate-tree-madge';
|
1
|
+
import type { ResolvedPackageData } from '../resolve-pkg-data';
|
2
|
+
import type { Missing } from './generate-tree-madge';
|
3
3
|
export type MissingGroupItem = {
|
4
4
|
originFile: string;
|
5
5
|
packages?: string[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_legacy","data","require","_resolvePkgData","_generateTreeMadge","_lodash","MissingHandler","constructor","missing","componentDir","workspacePath","groupAndFindMissing","missingGroups","groupMissingByType","forEach","group","packages","map","resolvePackageNameByPath","foundPackages","components","processMissingGroup","missingPackages","packageName","includes","resolvedPath","resolvePackagePath","push","resolvedPackageData","resolvePackageData","componentId","version","versionUsedByDependent","concreteVersion","Error","packageWithVersion","name","Object","assign","byPathType","item","startsWith","keys","key","originFile","processPath","groupBy","exports"],"sources":["missing-handler.ts"],"sourcesContent":["import { resolvePackageNameByPath, resolvePackagePath } from '@teambit/legacy.utils';\nimport { ResolvedPackageData
|
1
|
+
{"version":3,"names":["_legacy","data","require","_resolvePkgData","_generateTreeMadge","_lodash","MissingHandler","constructor","missing","componentDir","workspacePath","groupAndFindMissing","missingGroups","groupMissingByType","forEach","group","packages","map","resolvePackageNameByPath","foundPackages","components","processMissingGroup","missingPackages","packageName","includes","resolvedPath","resolvePackagePath","push","resolvedPackageData","resolvePackageData","componentId","version","versionUsedByDependent","concreteVersion","Error","packageWithVersion","name","Object","assign","byPathType","item","startsWith","keys","key","originFile","processPath","groupBy","exports"],"sources":["missing-handler.ts"],"sourcesContent":["import { resolvePackageNameByPath, resolvePackagePath } from '@teambit/legacy.utils';\nimport type { ResolvedPackageData } from '../resolve-pkg-data';\nimport { resolvePackageData } from '../resolve-pkg-data';\nimport type { Missing } from './generate-tree-madge';\nimport { processPath } from './generate-tree-madge';\nimport { groupBy } from 'lodash';\n\nexport type MissingGroupItem = { originFile: string; packages?: string[]; files?: string[] };\nexport type FoundPackages = {\n packages: { [packageName: string]: string };\n components: ResolvedPackageData[];\n};\n\nexport class MissingHandler {\n constructor(\n private missing: Missing,\n private componentDir: string,\n private workspacePath: string\n ) {}\n\n /**\n * Run over each entry in the missing array and transform the missing from list of paths\n * to object with missing types\n */\n groupAndFindMissing(): { missingGroups: MissingGroupItem[]; foundPackages: FoundPackages } {\n const missingGroups: MissingGroupItem[] = this.groupMissingByType();\n missingGroups.forEach((group: MissingGroupItem) => {\n if (group.packages) group.packages = group.packages.map(resolvePackageNameByPath);\n });\n // This is a hack to solve problems that madge has with packages for type script files\n // It see them as missing even if they are exists\n const foundPackages: FoundPackages = {\n packages: {},\n components: [],\n };\n missingGroups.forEach((group) => this.processMissingGroup(group, foundPackages));\n\n return { missingGroups, foundPackages };\n }\n\n private processMissingGroup(group: MissingGroupItem, foundPackages: FoundPackages) {\n if (!group.packages) return;\n const missingPackages: string[] = [];\n group.packages.forEach((packageName) => {\n // Don't try to resolve the same package twice\n if (missingPackages.includes(packageName)) return;\n const resolvedPath = resolvePackagePath(packageName, this.componentDir, this.workspacePath);\n if (!resolvedPath) {\n missingPackages.push(packageName);\n return;\n }\n const resolvedPackageData = resolvePackageData(this.componentDir, resolvedPath);\n if (!resolvedPackageData) {\n missingPackages.push(packageName);\n return;\n }\n // if the package is actually a component add it to the components list\n if (resolvedPackageData.componentId) {\n foundPackages.components.push(resolvedPackageData);\n } else {\n const version = resolvedPackageData.versionUsedByDependent || resolvedPackageData.concreteVersion;\n if (!version) throw new Error(`unable to find the version for a package ${packageName}`);\n const packageWithVersion = {\n [resolvedPackageData.name]: version,\n };\n Object.assign(foundPackages.packages, packageWithVersion);\n }\n });\n }\n\n /**\n * Group missing dependencies by types (files, packages)\n * @param {Array} missing list of missing paths to group\n * @returns {Function} function which group the dependencies\n */\n private groupMissingByType(): MissingGroupItem[] {\n const byPathType = (item) => (item.startsWith('.') ? 'files' : 'packages');\n return Object.keys(this.missing).map((key) =>\n Object.assign({ originFile: processPath(key, {}, this.componentDir) }, groupBy(this.missing[key], byPathType))\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* The data is retrieved by dependency-tree which collects them from the various detectives.
|
5
5
|
* It is used to update the final tree.
|
6
6
|
*/
|
7
|
-
import { Specifier } from '@teambit/legacy.consumer-component';
|
7
|
+
import type { Specifier } from '@teambit/legacy.consumer-component';
|
8
8
|
export type PathMapDependency = {
|
9
9
|
importSource: string;
|
10
10
|
resolvedDep: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","_generateTreeMadge","convertPathMapToRelativePaths","pathMap","baseDir","pathCache","map","file","newFile","clone","processPath","dependencies","dependency","newDependency","resolvedDep"],"sources":["path-map.ts"],"sourcesContent":["/**\n * Path Map is the extra data about the files and the dependencies, such as ImportSpecifiers and\n * custom-resolve-modules used.\n * The data is retrieved by dependency-tree which collects them from the various detectives.\n * It is used to update the final tree.\n */\n\nimport { clone } from 'lodash';\nimport { processPath } from './generate-tree-madge';\nimport { Specifier } from '@teambit/legacy.consumer-component';\n\nexport type PathMapDependency = {\n importSource: string; // dependency path as it has been received from dependency-tree lib\n resolvedDep: string; // path relative to consumer root (after convertPathMapToRelativePaths() )\n importSpecifiers?: Specifier[]; // relevant for ES6 and TS\n};\n\n/**\n * PathMap is used to get the ImportSpecifiers from dependency-tree library\n */\nexport type PathMapItem = {\n file: string; // path relative to consumer root (after convertPathMapToRelativePaths() )\n dependencies: PathMapDependency[];\n};\n\nexport function convertPathMapToRelativePaths(pathMap: PathMapItem[], baseDir: string): PathMapItem[] {\n const pathCache = {};\n return pathMap.map((file: PathMapItem) => {\n const newFile = clone(file);\n newFile.file = processPath(file.file, pathCache, baseDir);\n newFile.dependencies = file.dependencies.map((dependency) => {\n const newDependency = clone(dependency);\n newDependency.resolvedDep = processPath(dependency.resolvedDep, pathCache, baseDir);\n return newDependency;\n });\n return newFile;\n });\n}\n"],"mappings":";;;;;;AAOA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AARA;AACA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;;AAMO,SAASG,6BAA6BA,CAACC,OAAsB,EAAEC,OAAe,EAAiB;EACpG,MAAMC,SAAS,GAAG,CAAC,CAAC;EACpB,OAAOF,OAAO,CAACG,GAAG,CAAEC,IAAiB,IAAK;IACxC,MAAMC,OAAO,GAAG,IAAAC,eAAK,EAACF,IAAI,CAAC;IAC3BC,OAAO,CAACD,IAAI,GAAG,IAAAG,gCAAW,EAACH,IAAI,CAACA,IAAI,EAAEF,SAAS,EAAED,OAAO,CAAC;IACzDI,OAAO,CAACG,YAAY,GAAGJ,IAAI,CAACI,YAAY,CAACL,GAAG,CAAEM,UAAU,IAAK;MAC3D,MAAMC,aAAa,GAAG,IAAAJ,eAAK,EAACG,UAAU,CAAC;MACvCC,aAAa,CAACC,WAAW,GAAG,IAAAJ,gCAAW,EAACE,UAAU,CAACE,WAAW,EAAET,SAAS,EAAED,OAAO,CAAC;MACnF,OAAOS,aAAa;IACtB,CAAC,CAAC;IACF,OAAOL,OAAO;EAChB,CAAC,CAAC;AACJ","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_lodash","data","require","_generateTreeMadge","convertPathMapToRelativePaths","pathMap","baseDir","pathCache","map","file","newFile","clone","processPath","dependencies","dependency","newDependency","resolvedDep"],"sources":["path-map.ts"],"sourcesContent":["/**\n * Path Map is the extra data about the files and the dependencies, such as ImportSpecifiers and\n * custom-resolve-modules used.\n * The data is retrieved by dependency-tree which collects them from the various detectives.\n * It is used to update the final tree.\n */\n\nimport { clone } from 'lodash';\nimport { processPath } from './generate-tree-madge';\nimport type { Specifier } from '@teambit/legacy.consumer-component';\n\nexport type PathMapDependency = {\n importSource: string; // dependency path as it has been received from dependency-tree lib\n resolvedDep: string; // path relative to consumer root (after convertPathMapToRelativePaths() )\n importSpecifiers?: Specifier[]; // relevant for ES6 and TS\n};\n\n/**\n * PathMap is used to get the ImportSpecifiers from dependency-tree library\n */\nexport type PathMapItem = {\n file: string; // path relative to consumer root (after convertPathMapToRelativePaths() )\n dependencies: PathMapDependency[];\n};\n\nexport function convertPathMapToRelativePaths(pathMap: PathMapItem[], baseDir: string): PathMapItem[] {\n const pathCache = {};\n return pathMap.map((file: PathMapItem) => {\n const newFile = clone(file);\n newFile.file = processPath(file.file, pathCache, baseDir);\n newFile.dependencies = file.dependencies.map((dependency) => {\n const newDependency = clone(dependency);\n newDependency.resolvedDep = processPath(dependency.resolvedDep, pathCache, baseDir);\n return newDependency;\n });\n return newFile;\n });\n}\n"],"mappings":";;;;;;AAOA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AARA;AACA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;;AAMO,SAASG,6BAA6BA,CAACC,OAAsB,EAAEC,OAAe,EAAiB;EACpG,MAAMC,SAAS,GAAG,CAAC,CAAC;EACpB,OAAOF,OAAO,CAACG,GAAG,CAAEC,IAAiB,IAAK;IACxC,MAAMC,OAAO,GAAG,IAAAC,eAAK,EAACF,IAAI,CAAC;IAC3BC,OAAO,CAACD,IAAI,GAAG,IAAAG,gCAAW,EAACH,IAAI,CAACA,IAAI,EAAEF,SAAS,EAAED,OAAO,CAAC;IACzDI,OAAO,CAACG,YAAY,GAAGJ,IAAI,CAACI,YAAY,CAACL,GAAG,CAAEM,UAAU,IAAK;MAC3D,MAAMC,aAAa,GAAG,IAAAJ,eAAK,EAACG,UAAU,CAAC;MACvCC,aAAa,CAACC,WAAW,GAAG,IAAAJ,gCAAW,EAACE,UAAU,CAACE,WAAW,EAAET,SAAS,EAAED,OAAO,CAAC;MACnF,OAAOS,aAAa;IACtB,CAAC,CAAC;IACF,OAAOL,OAAO;EAChB,CAAC,CAAC;AACJ","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_module","_moduleDefinition","_nodeSourceWalk","_detectiveAmd","_detectiveStylus","_nodeDepsDetectors","_stylingDepsDetectors","_stylingDepsDetectors2","_stylingDepsDetectors3","_stylingDepsDetectors4","_typescriptDepsDetectors","_detectorHook","e","__esModule","default","jsExt","extToType","typeToDetective","css","detectiveCss","sass","detectiveSass","less","detectiveLess","scss","detectiveScss","stylus","detectiveStylus","ts","detectiveTypeScript","commonjs","detectiveEs6","es6","amd","detectiveAmd","debug","detectorHook","DetectorHook","assign","o1","o2","key","hasOwnProperty","getFileInfo","filename","ext","path","extname","content","fs","readFileSync","type","ast","getDetector","fileInfo","options","normalizedOptions","envDetectors","detector","isSupported","detect","detective","jsx","undefined","getJsDetector","includes","walker","Walker","parse","message","useContent","getModuleType","fromSource","normalizeDeps","deps","includeCore","normalizedDeps","Array","isArray","Object","keys","filter","d","isBuiltin","getDepsFromFile","startsWith","precinct","paperwork","_default","exports"],"sources":["index.ts"],"sourcesContent":["/**\n * this file had been forked from https://github.com/dependents/node-precinct\n */\nimport fs from 'fs-extra';\nimport path from 'path';\n\n// @ts-ignore we currently have @types/node as v12, and this is available > 16. once updated, remove the ts-ignore\nimport { isBuiltin } from 'module';\n\nimport getModuleType from 'module-definition';\nimport Walker from 'node-source-walk';\n\nimport detectiveAmd from 'detective-amd';\nimport detectiveStylus from 'detective-stylus';\n\nimport detectiveEs6 from '@teambit/node.deps-detectors.detective-es6';\nimport detectiveCss from '@teambit/styling.deps-detectors.detective-css';\nimport detectiveLess from '@teambit/styling.deps-detectors.detective-less';\nimport detectiveSass from '@teambit/styling.deps-detectors.detective-sass';\nimport detectiveScss from '@teambit/styling.deps-detectors.detective-scss';\nimport detectiveTypeScript from '@teambit/typescript.deps-detectors.detective-typescript';\n\nimport { DependencyDetector, DetectorHook } from '../detector-hook';\n\n/**\n * The file info object.\n * - `ext` is the file extension.\n * - `content` is the input file content.\n * - `type` is the parsed file type from ext or content.\n * - `ast` is the eventually consumed content by the corresponding detective.\n */\ntype FileInfo = {\n ext: string;\n content: string | object;\n type: string;\n ast: any;\n filename: string;\n};\n\ntype Options = {\n envDetectors?: DependencyDetector[];\n useContent?: boolean;\n includeCore?: boolean;\n type?: string;\n [lang: string]: any;\n};\n\ntype BuiltinDeps = string[] | Record<string, any>;\ntype Detective = (fileContent: string, options?: any) => BuiltinDeps;\n\nconst jsExt = ['.js', '.jsx', '.cjs', '.mjs'];\n\nconst extToType = {\n '.css': 'css',\n '.sass': 'sass',\n '.less': 'less',\n '.scss': 'scss',\n '.styl': 'stylus',\n '.mts': 'ts',\n '.cts': 'ts',\n '.ts': 'ts',\n '.tsx': 'ts',\n};\n\nconst typeToDetective: Record<string, Detective> = {\n css: detectiveCss,\n sass: detectiveSass,\n less: detectiveLess,\n scss: detectiveScss,\n stylus: detectiveStylus,\n ts: detectiveTypeScript,\n commonjs: detectiveEs6,\n es6: detectiveEs6,\n amd: detectiveAmd,\n};\n\nconst debug = require('debug')('precinct');\n\nconst detectorHook = new DetectorHook();\n\nconst assign = (o1, o2) => {\n // eslint-disable-next-line\n for (const key in o2) {\n // eslint-disable-next-line\n if (o2.hasOwnProperty(key)) {\n o1[key] = o2[key];\n }\n }\n\n return o1;\n};\n\n/**\n * Get file info from the given file path.\n */\nconst getFileInfo = (filename: string): FileInfo => {\n const ext = path.extname(filename);\n const content = fs.readFileSync(filename, 'utf8');\n return {\n ext,\n content,\n // determined later\n type: '',\n // initialized with the content\n ast: content,\n filename,\n };\n};\n\n/**\n * Get the non-JS detective for the given file info.\n * The type of the file would be determined as well.\n * Return undefined if no proper detective found, perhaps it's plain\n * JavaScript or unknown content. We can deal with it later.\n */\nconst getDetector = (fileInfo: FileInfo, options?: Options): Detective | undefined => {\n const { ext, filename } = fileInfo;\n const normalizedOptions: Options = options || {};\n\n // from env detectors\n if (options?.envDetectors) {\n for (const detector of options.envDetectors) {\n if (detector.isSupported({ ext, filename })) {\n fileInfo.type = detector.type || '';\n return detector.detect as Detective;\n }\n }\n }\n\n // from builtin detectors\n // - check `fileInfo.type` first to support `precinct(content, { type })`\n const type = fileInfo.type || extToType[ext];\n if (typeToDetective[type]) {\n const detective = typeToDetective[type];\n fileInfo.type = type;\n // special logic for tsx files\n if (ext === '.tsx') {\n if (!normalizedOptions.ts) normalizedOptions.ts = {};\n normalizedOptions.ts.jsx = true;\n }\n return detective;\n }\n\n // from global detector hook (legacy)\n if (detectorHook.isSupported(ext, filename)) {\n const detector = detectorHook.getDetector(ext, filename);\n if (detector) {\n fileInfo.type = ext;\n typeToDetective[ext] = detector.detect as Detective;\n return detector.detect as Detective;\n }\n }\n\n return undefined;\n};\n\n/**\n * Get the JS detective (amd/es6/cjs) for the given file info.\n * The type and ast of the file would be determined as well.\n */\nconst getJsDetector = (fileInfo: FileInfo, options?: Options): Detective | undefined => {\n if (!jsExt.includes(fileInfo.ext)) {\n return undefined;\n }\n\n if (typeof fileInfo.content !== 'object') {\n const walker = new Walker();\n try {\n fileInfo.ast = walker.parse(fileInfo.content);\n } catch (e: any) {\n debug('could not parse content: %s', e.message);\n throw e;\n }\n }\n\n const useContent = options?.useContent;\n const type = useContent ? getModuleType.fromSource(fileInfo.content) : getModuleType.fromSource(fileInfo.ast);\n const detector = typeToDetective[type];\n fileInfo.type = type;\n\n return detector;\n};\n\n/**\n * Normalize the deps into an array.\n */\nconst normalizeDeps = (deps: BuiltinDeps, includeCore?: boolean): string[] => {\n const normalizedDeps = Array.isArray(deps) ? deps : Object.keys(deps);\n return includeCore ? normalizedDeps : normalizedDeps.filter((d) => !isBuiltin(d));\n};\n\nconst getDepsFromFile = (filename: string, options?: Options): string[] => {\n const normalizedOptions: Options = assign({ includeCore: true }, options || {});\n const fileInfo = getFileInfo(filename);\n if (\n typeof fileInfo.content === 'string' &&\n (fileInfo.content.startsWith('// @bit-no-check') || fileInfo.content.startsWith('/* @bit-no-check'))\n ) {\n debug(`skipping file ${filename}, it has a @bit-no-check comment`);\n return [];\n }\n\n const detective = getDetector(fileInfo, normalizedOptions) || getJsDetector(fileInfo, normalizedOptions);\n if (!detective) {\n debug(`skipping unsupported file ${filename}`);\n return [];\n }\n debug('module type: ', fileInfo.type);\n\n const deps = detective(fileInfo.ast, normalizedOptions[fileInfo.type]);\n\n return normalizeDeps(deps, normalizedOptions?.includeCore);\n};\n\nconst precinct = {\n paperwork: getDepsFromFile,\n};\n\nexport default precinct;\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_module","_moduleDefinition","_nodeSourceWalk","_detectiveAmd","_detectiveStylus","_nodeDepsDetectors","_stylingDepsDetectors","_stylingDepsDetectors2","_stylingDepsDetectors3","_stylingDepsDetectors4","_typescriptDepsDetectors","_detectorHook","e","__esModule","default","jsExt","extToType","typeToDetective","css","detectiveCss","sass","detectiveSass","less","detectiveLess","scss","detectiveScss","stylus","detectiveStylus","ts","detectiveTypeScript","commonjs","detectiveEs6","es6","amd","detectiveAmd","debug","detectorHook","DetectorHook","assign","o1","o2","key","hasOwnProperty","getFileInfo","filename","ext","path","extname","content","fs","readFileSync","type","ast","getDetector","fileInfo","options","normalizedOptions","envDetectors","detector","isSupported","detect","detective","jsx","undefined","getJsDetector","includes","walker","Walker","parse","message","useContent","getModuleType","fromSource","normalizeDeps","deps","includeCore","normalizedDeps","Array","isArray","Object","keys","filter","d","isBuiltin","getDepsFromFile","startsWith","precinct","paperwork","_default","exports"],"sources":["index.ts"],"sourcesContent":["/**\n * this file had been forked from https://github.com/dependents/node-precinct\n */\nimport fs from 'fs-extra';\nimport path from 'path';\n\n// @ts-ignore we currently have @types/node as v12, and this is available > 16. once updated, remove the ts-ignore\nimport { isBuiltin } from 'module';\n\nimport getModuleType from 'module-definition';\nimport Walker from 'node-source-walk';\n\nimport detectiveAmd from 'detective-amd';\nimport detectiveStylus from 'detective-stylus';\n\nimport detectiveEs6 from '@teambit/node.deps-detectors.detective-es6';\nimport detectiveCss from '@teambit/styling.deps-detectors.detective-css';\nimport detectiveLess from '@teambit/styling.deps-detectors.detective-less';\nimport detectiveSass from '@teambit/styling.deps-detectors.detective-sass';\nimport detectiveScss from '@teambit/styling.deps-detectors.detective-scss';\nimport detectiveTypeScript from '@teambit/typescript.deps-detectors.detective-typescript';\n\nimport type { DependencyDetector } from '../detector-hook';\nimport { DetectorHook } from '../detector-hook';\n\n/**\n * The file info object.\n * - `ext` is the file extension.\n * - `content` is the input file content.\n * - `type` is the parsed file type from ext or content.\n * - `ast` is the eventually consumed content by the corresponding detective.\n */\ntype FileInfo = {\n ext: string;\n content: string | object;\n type: string;\n ast: any;\n filename: string;\n};\n\ntype Options = {\n envDetectors?: DependencyDetector[];\n useContent?: boolean;\n includeCore?: boolean;\n type?: string;\n [lang: string]: any;\n};\n\ntype BuiltinDeps = string[] | Record<string, any>;\ntype Detective = (fileContent: string, options?: any) => BuiltinDeps;\n\nconst jsExt = ['.js', '.jsx', '.cjs', '.mjs'];\n\nconst extToType = {\n '.css': 'css',\n '.sass': 'sass',\n '.less': 'less',\n '.scss': 'scss',\n '.styl': 'stylus',\n '.mts': 'ts',\n '.cts': 'ts',\n '.ts': 'ts',\n '.tsx': 'ts',\n};\n\nconst typeToDetective: Record<string, Detective> = {\n css: detectiveCss,\n sass: detectiveSass,\n less: detectiveLess,\n scss: detectiveScss,\n stylus: detectiveStylus,\n ts: detectiveTypeScript,\n commonjs: detectiveEs6,\n es6: detectiveEs6,\n amd: detectiveAmd,\n};\n\nconst debug = require('debug')('precinct');\n\nconst detectorHook = new DetectorHook();\n\nconst assign = (o1, o2) => {\n // eslint-disable-next-line\n for (const key in o2) {\n // eslint-disable-next-line\n if (o2.hasOwnProperty(key)) {\n o1[key] = o2[key];\n }\n }\n\n return o1;\n};\n\n/**\n * Get file info from the given file path.\n */\nconst getFileInfo = (filename: string): FileInfo => {\n const ext = path.extname(filename);\n const content = fs.readFileSync(filename, 'utf8');\n return {\n ext,\n content,\n // determined later\n type: '',\n // initialized with the content\n ast: content,\n filename,\n };\n};\n\n/**\n * Get the non-JS detective for the given file info.\n * The type of the file would be determined as well.\n * Return undefined if no proper detective found, perhaps it's plain\n * JavaScript or unknown content. We can deal with it later.\n */\nconst getDetector = (fileInfo: FileInfo, options?: Options): Detective | undefined => {\n const { ext, filename } = fileInfo;\n const normalizedOptions: Options = options || {};\n\n // from env detectors\n if (options?.envDetectors) {\n for (const detector of options.envDetectors) {\n if (detector.isSupported({ ext, filename })) {\n fileInfo.type = detector.type || '';\n return detector.detect as Detective;\n }\n }\n }\n\n // from builtin detectors\n // - check `fileInfo.type` first to support `precinct(content, { type })`\n const type = fileInfo.type || extToType[ext];\n if (typeToDetective[type]) {\n const detective = typeToDetective[type];\n fileInfo.type = type;\n // special logic for tsx files\n if (ext === '.tsx') {\n if (!normalizedOptions.ts) normalizedOptions.ts = {};\n normalizedOptions.ts.jsx = true;\n }\n return detective;\n }\n\n // from global detector hook (legacy)\n if (detectorHook.isSupported(ext, filename)) {\n const detector = detectorHook.getDetector(ext, filename);\n if (detector) {\n fileInfo.type = ext;\n typeToDetective[ext] = detector.detect as Detective;\n return detector.detect as Detective;\n }\n }\n\n return undefined;\n};\n\n/**\n * Get the JS detective (amd/es6/cjs) for the given file info.\n * The type and ast of the file would be determined as well.\n */\nconst getJsDetector = (fileInfo: FileInfo, options?: Options): Detective | undefined => {\n if (!jsExt.includes(fileInfo.ext)) {\n return undefined;\n }\n\n if (typeof fileInfo.content !== 'object') {\n const walker = new Walker();\n try {\n fileInfo.ast = walker.parse(fileInfo.content);\n } catch (e: any) {\n debug('could not parse content: %s', e.message);\n throw e;\n }\n }\n\n const useContent = options?.useContent;\n const type = useContent ? getModuleType.fromSource(fileInfo.content) : getModuleType.fromSource(fileInfo.ast);\n const detector = typeToDetective[type];\n fileInfo.type = type;\n\n return detector;\n};\n\n/**\n * Normalize the deps into an array.\n */\nconst normalizeDeps = (deps: BuiltinDeps, includeCore?: boolean): string[] => {\n const normalizedDeps = Array.isArray(deps) ? deps : Object.keys(deps);\n return includeCore ? normalizedDeps : normalizedDeps.filter((d) => !isBuiltin(d));\n};\n\nconst getDepsFromFile = (filename: string, options?: Options): string[] => {\n const normalizedOptions: Options = assign({ includeCore: true }, options || {});\n const fileInfo = getFileInfo(filename);\n if (\n typeof fileInfo.content === 'string' &&\n (fileInfo.content.startsWith('// @bit-no-check') || fileInfo.content.startsWith('/* @bit-no-check'))\n ) {\n debug(`skipping file ${filename}, it has a @bit-no-check comment`);\n return [];\n }\n\n const detective = getDetector(fileInfo, normalizedOptions) || getJsDetector(fileInfo, normalizedOptions);\n if (!detective) {\n debug(`skipping unsupported file ${filename}`);\n return [];\n }\n debug('module type: ', fileInfo.type);\n\n const deps = detective(fileInfo.ast, normalizedOptions[fileInfo.type]);\n\n return normalizeDeps(deps, normalizedOptions?.includeCore);\n};\n\nconst precinct = {\n paperwork: getDepsFromFile,\n};\n\nexport default precinct;\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["assert","require","path","rewire","sinon","fixtures","fixturesFullPath","resolve","__dirname","precinctNonWired","precinct","default","describe","it","skip","ok","Object","keys","paperwork","length","throws","deps","includeCore","config","amd","skipLazyLoaded","deepEqual","detector","detect","fileContent","indexOf","isSupported","ext","type","result","envDetectors","result2","stub","returns","revert","__set__","equal","args"],"sources":["index.spec.ts"],"sourcesContent":["import { DependencyDetector } from '../detector-hook';\n\nconst assert = require('assert');\nconst path = require('path');\nconst rewire = require('rewire');\nconst sinon = require('sinon');\n\nconst fixtures = '../fixtures/precinct';\nconst fixturesFullPath = path.resolve(__dirname, fixtures);\n\nconst precinctNonWired = rewire('./');\nconst precinct = precinctNonWired.default;\n\ndescribe('node-precinct', () => {\n describe('paperwork', () => {\n // todo: currently it doesn't work because we set it with bit-no-check\n it.skip('returns the dependencies for the given filepath', () => {\n assert.ok(Object.keys(precinct.paperwork(`${fixturesFullPath}/es6.js`)).length);\n assert.ok(Object.keys(precinct.paperwork(`${fixturesFullPath}/styles.scss`)).length);\n // todo: uncomment the next line and typescript.ts file once we have a way to ignore some component files from compiling/parsing altogether\n // assert.ok(Object.keys(precinct.paperwork(`${fixturesFullPath}/typescript.ts`)).length);\n assert.ok(Object.keys(precinct.paperwork(`${fixturesFullPath}/styles.css`)).length);\n });\n\n it('throws if the file cannot be found', () => {\n assert.throws(() => {\n precinct.paperwork('foo');\n });\n });\n\n it('filters out core modules if options.includeCore is false', () => {\n const deps = precinct.paperwork(`${fixturesFullPath}/coreModules.js`, {\n includeCore: false,\n });\n\n assert(!deps.length);\n });\n\n // todo: currently it doesn't work because we set it with bit-no-check\n it.skip('does not filter out core modules by default', () => {\n const deps = precinct.paperwork(`${fixturesFullPath}/coreModules.js`);\n assert(Object.keys(deps).length);\n });\n\n // todo: currently it doesn't work because we set it with bit-no-check\n it.skip('supports passing detective configuration', () => {\n const config = {\n amd: {\n skipLazyLoaded: true,\n },\n };\n\n const deps = precinct.paperwork(`${fixturesFullPath}/amd.js`, {\n includeCore: false,\n amd: config.amd,\n });\n assert.deepEqual(deps, ['./a', './b']);\n });\n\n it('supports passing env detectors', () => {\n const detector: DependencyDetector = {\n detect: (fileContent: string) => {\n return fileContent.indexOf('foo') === -1 ? [] : ['foo'];\n },\n isSupported: ({ ext }) => {\n return ext === '.foo';\n },\n type: 'foo',\n };\n const result = precinct.paperwork(`${fixturesFullPath}/foo.foo`, {\n envDetectors: [detector],\n });\n assert.deepEqual(result, []);\n\n const result2 = precinct.paperwork(`${fixturesFullPath}/bar.foo`, {\n envDetectors: [detector],\n });\n assert.deepEqual(result2, ['foo']);\n });\n\n describe('when given detective configuration', () => {\n // This test case doesn't fit the current implementation of precinct.\n it.skip('still does not filter out core module by default', () => {\n const stub = sinon.stub().returns([]);\n const revert = precinctNonWired.__set__('precinct', stub);\n\n precinct.paperwork(`${fixturesFullPath}/amd.js`, {\n amd: {\n skipLazyLoaded: true,\n },\n });\n\n assert.equal(stub.args[0][1].includeCore, true);\n revert();\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["assert","require","path","rewire","sinon","fixtures","fixturesFullPath","resolve","__dirname","precinctNonWired","precinct","default","describe","it","skip","ok","Object","keys","paperwork","length","throws","deps","includeCore","config","amd","skipLazyLoaded","deepEqual","detector","detect","fileContent","indexOf","isSupported","ext","type","result","envDetectors","result2","stub","returns","revert","__set__","equal","args"],"sources":["index.spec.ts"],"sourcesContent":["import type { DependencyDetector } from '../detector-hook';\n\nconst assert = require('assert');\nconst path = require('path');\nconst rewire = require('rewire');\nconst sinon = require('sinon');\n\nconst fixtures = '../fixtures/precinct';\nconst fixturesFullPath = path.resolve(__dirname, fixtures);\n\nconst precinctNonWired = rewire('./');\nconst precinct = precinctNonWired.default;\n\ndescribe('node-precinct', () => {\n describe('paperwork', () => {\n // todo: currently it doesn't work because we set it with bit-no-check\n it.skip('returns the dependencies for the given filepath', () => {\n assert.ok(Object.keys(precinct.paperwork(`${fixturesFullPath}/es6.js`)).length);\n assert.ok(Object.keys(precinct.paperwork(`${fixturesFullPath}/styles.scss`)).length);\n // todo: uncomment the next line and typescript.ts file once we have a way to ignore some component files from compiling/parsing altogether\n // assert.ok(Object.keys(precinct.paperwork(`${fixturesFullPath}/typescript.ts`)).length);\n assert.ok(Object.keys(precinct.paperwork(`${fixturesFullPath}/styles.css`)).length);\n });\n\n it('throws if the file cannot be found', () => {\n assert.throws(() => {\n precinct.paperwork('foo');\n });\n });\n\n it('filters out core modules if options.includeCore is false', () => {\n const deps = precinct.paperwork(`${fixturesFullPath}/coreModules.js`, {\n includeCore: false,\n });\n\n assert(!deps.length);\n });\n\n // todo: currently it doesn't work because we set it with bit-no-check\n it.skip('does not filter out core modules by default', () => {\n const deps = precinct.paperwork(`${fixturesFullPath}/coreModules.js`);\n assert(Object.keys(deps).length);\n });\n\n // todo: currently it doesn't work because we set it with bit-no-check\n it.skip('supports passing detective configuration', () => {\n const config = {\n amd: {\n skipLazyLoaded: true,\n },\n };\n\n const deps = precinct.paperwork(`${fixturesFullPath}/amd.js`, {\n includeCore: false,\n amd: config.amd,\n });\n assert.deepEqual(deps, ['./a', './b']);\n });\n\n it('supports passing env detectors', () => {\n const detector: DependencyDetector = {\n detect: (fileContent: string) => {\n return fileContent.indexOf('foo') === -1 ? [] : ['foo'];\n },\n isSupported: ({ ext }) => {\n return ext === '.foo';\n },\n type: 'foo',\n };\n const result = precinct.paperwork(`${fixturesFullPath}/foo.foo`, {\n envDetectors: [detector],\n });\n assert.deepEqual(result, []);\n\n const result2 = precinct.paperwork(`${fixturesFullPath}/bar.foo`, {\n envDetectors: [detector],\n });\n assert.deepEqual(result2, ['foo']);\n });\n\n describe('when given detective configuration', () => {\n // This test case doesn't fit the current implementation of precinct.\n it.skip('still does not filter out core module by default', () => {\n const stub = sinon.stub().returns([]);\n const revert = precinctNonWired.__set__('precinct', stub);\n\n precinct.paperwork(`${fixturesFullPath}/amd.js`, {\n amd: {\n skipLazyLoaded: true,\n },\n });\n\n assert.equal(stub.args[0][1].includeCore, true);\n revert();\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { ImportSpecifier } from '@teambit/legacy.consumer-component';
|
2
|
-
import { ResolvedPackageData } from '../../resolve-pkg-data';
|
3
|
-
import { DependencyDetector } from '../detector-hook';
|
1
|
+
import type { ImportSpecifier } from '@teambit/legacy.consumer-component';
|
2
|
+
import type { ResolvedPackageData } from '../../resolve-pkg-data';
|
3
|
+
import type { DependencyDetector } from '../detector-hook';
|
4
4
|
export type FileObject = {
|
5
5
|
file: string;
|
6
6
|
importSpecifiers?: ImportSpecifier[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesTreeItem","constructor","isEmpty","files","length","packages","unidentifiedPackages","components","error","missing","exports"],"sources":["dependency-tree-type.ts"],"sourcesContent":["import { ImportSpecifier } from '@teambit/legacy.consumer-component';\nimport { ResolvedPackageData } from '../../resolve-pkg-data';\nimport { DependencyDetector } from '../detector-hook';\nimport { isEmpty } from 'lodash';\n\nexport type FileObject = {\n file: string;\n importSpecifiers?: ImportSpecifier[];\n importSource?: string;\n};\n\ntype MissingType = 'files' | 'packages';\n\nexport class DependenciesTreeItem {\n files: FileObject[] = [];\n packages: { [packageName: string]: string } = {}; // pkgName: pkgVersion\n unidentifiedPackages: string[] = [];\n components: ResolvedPackageData[] = [];\n error?: Error; // error.code is either PARSING_ERROR or RESOLVE_ERROR\n missing?: { [key in MissingType]: string[] };\n\n isEmpty() {\n return (\n !this.files.length &&\n isEmpty(this.packages) &&\n !this.unidentifiedPackages.length &&\n !this.components.length &&\n !this.error &&\n !this.missing\n );\n }\n}\n\nexport type DependenciesTree = {\n [filePath: string]: DependenciesTreeItem;\n};\n\nexport type DependencyTreeParams = {\n componentDir: string;\n workspacePath: string;\n filePaths: string[];\n visited?: Record<string, any>;\n cacheResolvedDependencies?: Record<string, any>;\n cacheProjectAst?: Record<string, any>;\n envDetectors?: DependencyDetector[] | null;\n};\n"],"mappings":";;;;;;AAGA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiC,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAU1B,MAAMgB,oBAAoB,CAAC;EAAAC,YAAA;IAAApB,eAAA,gBACV,EAAE;IAAAA,eAAA,mBACsB,CAAC,CAAC;IAAE;IAAAA,eAAA,+BACjB,EAAE;IAAAA,eAAA,qBACC,EAAE;IAAAA,eAAA;IACvB;IAAAA,eAAA;EAAA;EAGfqB,OAAOA,CAAA,EAAG;IACR,OACE,CAAC,IAAI,CAACC,KAAK,CAACC,MAAM,IAClB,IAAAF,iBAAO,EAAC,IAAI,CAACG,QAAQ,CAAC,IACtB,CAAC,IAAI,CAACC,oBAAoB,CAACF,MAAM,IACjC,CAAC,IAAI,CAACG,UAAU,CAACH,MAAM,IACvB,CAAC,IAAI,CAACI,KAAK,IACX,CAAC,IAAI,CAACC,OAAO;EAEjB;AACF;AAACC,OAAA,CAAAV,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_lodash","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DependenciesTreeItem","constructor","isEmpty","files","length","packages","unidentifiedPackages","components","error","missing","exports"],"sources":["dependency-tree-type.ts"],"sourcesContent":["import type { ImportSpecifier } from '@teambit/legacy.consumer-component';\nimport type { ResolvedPackageData } from '../../resolve-pkg-data';\nimport type { DependencyDetector } from '../detector-hook';\nimport { isEmpty } from 'lodash';\n\nexport type FileObject = {\n file: string;\n importSpecifiers?: ImportSpecifier[];\n importSource?: string;\n};\n\ntype MissingType = 'files' | 'packages';\n\nexport class DependenciesTreeItem {\n files: FileObject[] = [];\n packages: { [packageName: string]: string } = {}; // pkgName: pkgVersion\n unidentifiedPackages: string[] = [];\n components: ResolvedPackageData[] = [];\n error?: Error; // error.code is either PARSING_ERROR or RESOLVE_ERROR\n missing?: { [key in MissingType]: string[] };\n\n isEmpty() {\n return (\n !this.files.length &&\n isEmpty(this.packages) &&\n !this.unidentifiedPackages.length &&\n !this.components.length &&\n !this.error &&\n !this.missing\n );\n }\n}\n\nexport type DependenciesTree = {\n [filePath: string]: DependenciesTreeItem;\n};\n\nexport type DependencyTreeParams = {\n componentDir: string;\n workspacePath: string;\n filePaths: string[];\n visited?: Record<string, any>;\n cacheResolvedDependencies?: Record<string, any>;\n cacheProjectAst?: Record<string, any>;\n envDetectors?: DependencyDetector[] | null;\n};\n"],"mappings":";;;;;;AAGA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiC,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAU1B,MAAMgB,oBAAoB,CAAC;EAAAC,YAAA;IAAApB,eAAA,gBACV,EAAE;IAAAA,eAAA,mBACsB,CAAC,CAAC;IAAE;IAAAA,eAAA,+BACjB,EAAE;IAAAA,eAAA,qBACC,EAAE;IAAAA,eAAA;IACvB;IAAAA,eAAA;EAAA;EAGfqB,OAAOA,CAAA,EAAG;IACR,OACE,CAAC,IAAI,CAACC,KAAK,CAACC,MAAM,IAClB,IAAAF,iBAAO,EAAC,IAAI,CAACG,QAAQ,CAAC,IACtB,CAAC,IAAI,CAACC,oBAAoB,CAACF,MAAM,IACjC,CAAC,IAAI,CAACG,UAAU,CAACH,MAAM,IACvB,CAAC,IAAI,CAACI,KAAK,IACX,CAAC,IAAI,CAACC,OAAO;EAEjB;AACF;AAACC,OAAA,CAAAV,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ComponentID } from '@teambit/component-id';
|
2
|
-
import { PathLinuxAbsolute, PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';
|
2
|
+
import type { PathLinuxAbsolute, PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';
|
3
3
|
export interface ResolvedPackageData {
|
4
4
|
fullPath: PathOsBasedAbsolute;
|
5
5
|
packageJsonPath?: PathOsBased;
|