@teambit/dependencies 1.0.675 → 1.0.677
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/auto-detect-deps.ts +1 -2
- package/dist/dependencies-loader/auto-detect-deps.d.ts +1 -2
- package/dist/dependencies-loader/auto-detect-deps.js.map +1 -1
- package/dist/esm.mjs +0 -1
- package/dist/files-dependency-builder/filing-cabinet/index.d.ts +1 -1
- package/dist/files-dependency-builder/filing-cabinet/index.js +4 -4
- 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/precinct/index.d.ts +1 -1
- package/dist/files-dependency-builder/precinct/index.js +4 -4
- 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 +1 -1
- package/dist/files-dependency-builder/types/dependency-tree-type.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -25
- package/dist/index.js.map +1 -1
- package/esm.mjs +0 -1
- package/files-dependency-builder/filing-cabinet/index.spec.ts +1 -1
- package/files-dependency-builder/filing-cabinet/index.ts +2 -2
- package/files-dependency-builder/precinct/index.spec.ts +1 -1
- package/files-dependency-builder/precinct/index.ts +2 -2
- package/files-dependency-builder/types/dependency-tree-type.ts +1 -1
- package/package.json +21 -21
- package/dist/files-dependency-builder/detector-hook.d.ts +0 -48
- package/dist/files-dependency-builder/detector-hook.js +0 -31
- package/dist/files-dependency-builder/detector-hook.js.map +0 -1
- package/files-dependency-builder/detector-hook.ts +0 -73
- /package/dist/{preview-1753990279797.js → preview-1753998672851.js} +0 -0
@@ -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 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":"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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 '@teambit/dependency-resolver';\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":[]}
|
@@ -95,9 +95,9 @@ function _typescriptDepsDetectors() {
|
|
95
95
|
};
|
96
96
|
return data;
|
97
97
|
}
|
98
|
-
function
|
99
|
-
const data = require("
|
100
|
-
|
98
|
+
function _dependencyResolver() {
|
99
|
+
const data = require("@teambit/dependency-resolver");
|
100
|
+
_dependencyResolver = function () {
|
101
101
|
return data;
|
102
102
|
};
|
103
103
|
return data;
|
@@ -141,7 +141,7 @@ const typeToDetective = {
|
|
141
141
|
amd: _detectiveAmd().default
|
142
142
|
};
|
143
143
|
const debug = require('debug')('precinct');
|
144
|
-
const detectorHook = new (
|
144
|
+
const detectorHook = new (_dependencyResolver().DetectorHook)();
|
145
145
|
const assign = (o1, o2) => {
|
146
146
|
// eslint-disable-next-line
|
147
147
|
for (const key in o2) {
|
@@ -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 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
|
+
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_module","_moduleDefinition","_nodeSourceWalk","_detectiveAmd","_detectiveStylus","_nodeDepsDetectors","_stylingDepsDetectors","_stylingDepsDetectors2","_stylingDepsDetectors3","_stylingDepsDetectors4","_typescriptDepsDetectors","_dependencyResolver","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 '@teambit/dependency-resolver';\nimport { DetectorHook } from '@teambit/dependency-resolver';\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 type { DependencyDetector } from '
|
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 '@teambit/dependency-resolver';\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
1
|
import type { ImportSpecifier } from '@teambit/legacy.consumer-component';
|
2
2
|
import type { ResolvedPackageData } from '../../resolve-pkg-data';
|
3
|
-
import type { DependencyDetector } from '
|
3
|
+
import type { DependencyDetector } from '@teambit/dependency-resolver';
|
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 type { ImportSpecifier } from '@teambit/legacy.consumer-component';\nimport type { ResolvedPackageData } from '../../resolve-pkg-data';\nimport type { DependencyDetector } from '
|
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 '@teambit/dependency-resolver';\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":[]}
|
package/dist/index.d.ts
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import { DependenciesAspect } from './dependencies.aspect';
|
2
2
|
export type { DependenciesMain } from './dependencies.main.runtime';
|
3
|
-
export { DetectorHook, DependencyDetector, FileContext } from './files-dependency-builder/detector-hook';
|
4
3
|
export default DependenciesAspect;
|
5
4
|
export { DependenciesAspect };
|
package/dist/index.js
CHANGED
@@ -9,24 +9,6 @@ Object.defineProperty(exports, "DependenciesAspect", {
|
|
9
9
|
return _dependencies().DependenciesAspect;
|
10
10
|
}
|
11
11
|
});
|
12
|
-
Object.defineProperty(exports, "DependencyDetector", {
|
13
|
-
enumerable: true,
|
14
|
-
get: function () {
|
15
|
-
return _detectorHook().DependencyDetector;
|
16
|
-
}
|
17
|
-
});
|
18
|
-
Object.defineProperty(exports, "DetectorHook", {
|
19
|
-
enumerable: true,
|
20
|
-
get: function () {
|
21
|
-
return _detectorHook().DetectorHook;
|
22
|
-
}
|
23
|
-
});
|
24
|
-
Object.defineProperty(exports, "FileContext", {
|
25
|
-
enumerable: true,
|
26
|
-
get: function () {
|
27
|
-
return _detectorHook().FileContext;
|
28
|
-
}
|
29
|
-
});
|
30
12
|
exports.default = void 0;
|
31
13
|
function _dependencies() {
|
32
14
|
const data = require("./dependencies.aspect");
|
@@ -35,13 +17,6 @@ function _dependencies() {
|
|
35
17
|
};
|
36
18
|
return data;
|
37
19
|
}
|
38
|
-
function _detectorHook() {
|
39
|
-
const data = require("./files-dependency-builder/detector-hook");
|
40
|
-
_detectorHook = function () {
|
41
|
-
return data;
|
42
|
-
};
|
43
|
-
return data;
|
44
|
-
}
|
45
20
|
var _default = exports.default = _dependencies().DependenciesAspect;
|
46
21
|
|
47
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_dependencies","data","require","
|
1
|
+
{"version":3,"names":["_dependencies","data","require","_default","exports","default","DependenciesAspect"],"sources":["index.ts"],"sourcesContent":["import { DependenciesAspect } from './dependencies.aspect';\n\nexport type { DependenciesMain } from './dependencies.main.runtime';\nexport default DependenciesAspect;\nexport { DependenciesAspect };\n"],"mappings":";;;;;;;;;;;;AAAA,SAAAA,cAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,aAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2D,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAG5CC,kCAAkB","ignoreList":[]}
|
package/esm.mjs
CHANGED
@@ -5,7 +5,7 @@ import path from 'path';
|
|
5
5
|
import rewire from 'rewire';
|
6
6
|
import sinon from 'sinon';
|
7
7
|
|
8
|
-
import type { DependencyDetector } from '
|
8
|
+
import type { DependencyDetector } from '@teambit/dependency-resolver';
|
9
9
|
|
10
10
|
const UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');
|
11
11
|
|
@@ -10,8 +10,8 @@ import stylusLookup from 'stylus-lookup';
|
|
10
10
|
import { lookupJavaScript, lookupTypeScript } from '@teambit/typescript.deps-lookups.lookup-typescript';
|
11
11
|
import { lookupStyling } from '@teambit/styling.deps-lookups.lookup-styling';
|
12
12
|
|
13
|
-
import type { DependencyDetector } from '
|
14
|
-
import { DetectorHook } from '
|
13
|
+
import type { DependencyDetector } from '@teambit/dependency-resolver';
|
14
|
+
import { DetectorHook } from '@teambit/dependency-resolver';
|
15
15
|
|
16
16
|
const debug = require('debug')('cabinet');
|
17
17
|
|
@@ -20,8 +20,8 @@ import detectiveSass from '@teambit/styling.deps-detectors.detective-sass';
|
|
20
20
|
import detectiveScss from '@teambit/styling.deps-detectors.detective-scss';
|
21
21
|
import detectiveTypeScript from '@teambit/typescript.deps-detectors.detective-typescript';
|
22
22
|
|
23
|
-
import type { DependencyDetector } from '
|
24
|
-
import { DetectorHook } from '
|
23
|
+
import type { DependencyDetector } from '@teambit/dependency-resolver';
|
24
|
+
import { DetectorHook } from '@teambit/dependency-resolver';
|
25
25
|
|
26
26
|
/**
|
27
27
|
* The file info object.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { ImportSpecifier } from '@teambit/legacy.consumer-component';
|
2
2
|
import type { ResolvedPackageData } from '../../resolve-pkg-data';
|
3
|
-
import type { DependencyDetector } from '
|
3
|
+
import type { DependencyDetector } from '@teambit/dependency-resolver';
|
4
4
|
import { isEmpty } from 'lodash';
|
5
5
|
|
6
6
|
export type FileObject = {
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/dependencies",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.677",
|
4
4
|
"homepage": "https://bit.cloud/teambit/dependencies/dependencies",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.dependencies",
|
8
8
|
"name": "dependencies",
|
9
|
-
"version": "1.0.
|
9
|
+
"version": "1.0.677"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"archy": "1.0.0",
|
@@ -26,26 +26,17 @@
|
|
26
26
|
"detective-stylus": "1.0.0",
|
27
27
|
"module-definition": "3.3.1",
|
28
28
|
"node-source-walk": "4.2.0",
|
29
|
-
"@teambit/cli": "0.0.1250",
|
30
29
|
"@teambit/legacy.constants": "0.0.14",
|
31
30
|
"@teambit/harmony": "0.4.7",
|
32
31
|
"@teambit/component-id": "1.2.4",
|
33
32
|
"@teambit/component-package-version": "0.0.440",
|
34
|
-
"@teambit/legacy.consumer-component": "0.0.61",
|
35
|
-
"@teambit/logger": "0.0.1343",
|
36
33
|
"@teambit/bit-error": "0.0.404",
|
37
|
-
"@teambit/legacy.dependency-graph": "0.0.63",
|
38
|
-
"@teambit/component.sources": "0.0.112",
|
39
34
|
"@teambit/legacy.utils": "0.0.23",
|
40
35
|
"@teambit/toolbox.path.path": "0.0.8",
|
41
36
|
"@teambit/component-issues": "0.0.161",
|
42
|
-
"@teambit/legacy.bit-map": "0.0.117",
|
43
|
-
"@teambit/legacy.consumer-config": "0.0.60",
|
44
|
-
"@teambit/legacy.consumer": "0.0.60",
|
45
37
|
"@teambit/component-version": "1.0.4",
|
46
38
|
"@teambit/legacy.logger": "0.0.24",
|
47
39
|
"@teambit/toolbox.fs.extension-getter": "0.0.5",
|
48
|
-
"@teambit/legacy.extension-data": "0.0.62",
|
49
40
|
"@teambit/toolbox.fs.last-modified": "0.0.6",
|
50
41
|
"@teambit/styling.deps-lookups.lookup-styling": "0.0.4",
|
51
42
|
"@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
|
@@ -55,12 +46,21 @@
|
|
55
46
|
"@teambit/styling.deps-detectors.detective-sass": "0.0.9",
|
56
47
|
"@teambit/styling.deps-detectors.detective-scss": "0.0.9",
|
57
48
|
"@teambit/typescript.deps-detectors.detective-typescript": "0.0.9",
|
58
|
-
"@teambit/
|
59
|
-
"@teambit/
|
60
|
-
"@teambit/
|
61
|
-
"@teambit/
|
62
|
-
"@teambit/
|
63
|
-
"@teambit/
|
49
|
+
"@teambit/cli": "0.0.1251",
|
50
|
+
"@teambit/graph": "1.0.677",
|
51
|
+
"@teambit/workspace": "1.0.677",
|
52
|
+
"@teambit/aspect-loader": "1.0.677",
|
53
|
+
"@teambit/dependency-resolver": "1.0.677",
|
54
|
+
"@teambit/dev-files": "1.0.677",
|
55
|
+
"@teambit/legacy.consumer-component": "0.0.62",
|
56
|
+
"@teambit/logger": "0.0.1344",
|
57
|
+
"@teambit/scope": "1.0.677",
|
58
|
+
"@teambit/legacy.dependency-graph": "0.0.64",
|
59
|
+
"@teambit/component.sources": "0.0.113",
|
60
|
+
"@teambit/legacy.bit-map": "0.0.118",
|
61
|
+
"@teambit/legacy.consumer-config": "0.0.61",
|
62
|
+
"@teambit/legacy.consumer": "0.0.61",
|
63
|
+
"@teambit/legacy.extension-data": "0.0.63"
|
64
64
|
},
|
65
65
|
"devDependencies": {
|
66
66
|
"@types/cli-table": "^0.3.0",
|
@@ -70,11 +70,11 @@
|
|
70
70
|
"rewire": "7.0.0",
|
71
71
|
"sinon": "17.0.1",
|
72
72
|
"@types/mocha": "9.1.0",
|
73
|
-
"@teambit/component.testing.mock-components": "0.0.324",
|
74
|
-
"@teambit/harmony.testing.load-aspect": "0.0.319",
|
75
|
-
"@teambit/workspace.testing.mock-workspace": "0.0.103",
|
76
73
|
"@teambit/defender.fs.global-bit-temp-dir": "0.0.1",
|
77
|
-
"@teambit/harmony.envs.core-aspect-env": "0.0.72"
|
74
|
+
"@teambit/harmony.envs.core-aspect-env": "0.0.72",
|
75
|
+
"@teambit/component.testing.mock-components": "0.0.325",
|
76
|
+
"@teambit/harmony.testing.load-aspect": "0.0.320",
|
77
|
+
"@teambit/workspace.testing.mock-workspace": "0.0.104"
|
78
78
|
},
|
79
79
|
"peerDependencies": {
|
80
80
|
"chai": "5.2.1",
|