Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
canvas
/
Filename :
.dependency-cruiser.js
back
Copy
/** @type {import('dependency-cruiser').IConfiguration} */ module.exports = { forbidden: [ { name: 'no-circular', severity: 'info', comment: 'This dependency is part of a circular relationship. You might want to revise ' + 'your solution (i.e. use dependency inversion, make sure the modules have a single responsibility) ', from: {}, to: { circular: true, }, }, { name: 'no-orphans', comment: "This is an orphan module - it's likely not used (anymore?). Either use it or " + "remove it. If it's logical this module is an orphan (i.e. it's a config file), " + 'add an exception for it in your dependency-cruiser configuration. By default ' + 'this rule does not scrutinize dot-files (e.g. .eslintrc.js), TypeScript declaration ' + 'files (.d.ts), tsconfig.json and some of the babel and webpack configs.', severity: 'warn', from: { orphan: true, pathNot: [ '(^|/)[.][^/]+[.](?:js|cjs|mjs|ts|cts|mts|json)$', // dot files '[.]d[.]ts$', // TypeScript declaration files '(^|/)tsconfig[.]json$', // TypeScript config '(^|/)(?:babel|webpack)[.]config[.](?:js|cjs|mjs|ts|cts|mts|json)$', // other configs ], }, to: {}, }, { name: 'no-deprecated-core', comment: 'A module depends on a node core module that has been deprecated. Find an alternative - these are ' + "bound to exist - node doesn't deprecate lightly.", severity: 'warn', from: {}, to: { dependencyTypes: ['core'], path: [ '^v8/tools/codemap$', '^v8/tools/consarray$', '^v8/tools/csvparser$', '^v8/tools/logreader$', '^v8/tools/profile_view$', '^v8/tools/profile$', '^v8/tools/SourceMap$', '^v8/tools/splaytree$', '^v8/tools/tickprocessor-driver$', '^v8/tools/tickprocessor$', '^node-inspect/lib/_inspect$', '^node-inspect/lib/internal/inspect_client$', '^node-inspect/lib/internal/inspect_repl$', '^async_hooks$', '^punycode$', '^domain$', '^constants$', '^sys$', '^_linklist$', '^_stream_wrap$', ], }, }, { name: 'not-to-deprecated', comment: 'This module uses a (version of an) npm module that has been deprecated. Either upgrade to a later ' + 'version of that module, or find an alternative. Deprecated modules are a security risk.', severity: 'warn', from: {}, to: { dependencyTypes: ['deprecated'], }, }, { name: 'no-non-package-json', severity: 'error', comment: "This module depends on an npm package that isn't in the 'dependencies' section of your package.json. " + "That's problematic as the package either (1) won't be available on live (2 - worse) will be " + 'available on live with an non-guaranteed version. Fix it by adding the package to the dependencies ' + 'in your package.json.', from: {}, to: { dependencyTypes: ['npm-no-pkg', 'npm-unknown'], }, }, { name: 'not-to-unresolvable', comment: "This module depends on a module that cannot be found ('resolved to disk'). If it's an npm " + 'module: add it to your package.json. In all other cases you likely already know what to do.', severity: 'error', from: { pathNot: ['ui/shared/datetime/__tests__/momentSpec.js'], }, to: { couldNotResolve: true, }, }, { name: 'no-duplicate-dep-types', comment: "Likely this module depends on an external ('npm') package that occurs more than once " + 'in your package.json i.e. bot as a devDependencies and in dependencies. This will cause ' + 'maintenance problems later on.', severity: 'warn', from: {}, to: { moreThanOneDependencyType: true, // as it's pretty common to have a type import be a type only import // _and_ (e.g.) a devDependency - don't consider type-only dependency // types for this rule dependencyTypesNot: ['type-only'], }, }, { name: 'not-to-spec', comment: 'This module depends on a spec (test) file. The sole responsibility of a spec file is to test code. ' + "If there's something in a spec that's of use to other modules, it doesn't have that single " + 'responsibility anymore. Factor it out into (e.g.) a separate utility/ helper or a mock.', severity: 'error', from: {}, to: { path: '[.](?:spec|test)[.](?:js|mjs|cjs|jsx|ts|mts|cts|tsx|ls|coffee|litcoffee|coffee[.]md)$', }, }, { name: 'not-to-dev-dep', severity: 'error', comment: "This module depends on an npm package from the 'devDependencies' section of your " + 'package.json. It looks like something that ships to production, though. To prevent problems ' + "with npm packages that aren't there on production declare it (only!) in the 'dependencies'" + 'section of your package.json. If this module is development only - add it to the ' + 'from.pathNot re of the not-to-dev-dep rule in the dependency-cruiser configuration', from: { path: '^(packages)', pathNot: '[.](?:spec|test)[.](?:js|mjs|cjs|jsx|ts|mts|cts|tsx|ls|coffee|litcoffee|coffee[.]md)$', }, to: { dependencyTypes: ['npm-dev'], // type only dependencies are not a problem as they don't end up in the // production code or are ignored by the runtime. dependencyTypesNot: ['type-only'], pathNot: ['node_modules/@types/', 'node_modules/sinon/'], }, }, { name: 'optional-deps-used', severity: 'info', comment: 'This module depends on an npm package that is declared as an optional dependency ' + "in your package.json. As this makes sense in limited situations only, it's flagged here. " + "If you're using an optional dependency here by design - add an exception to your" + 'dependency-cruiser configuration.', from: {}, to: { dependencyTypes: ['npm-optional'], }, }, { name: 'peer-deps-used', comment: 'This module depends on an npm package that is declared as a peer dependency ' + 'in your package.json. This makes sense if your package is e.g. a plugin, but in ' + 'other cases - maybe not so much. If the use of a peer dependency is intentional ' + 'add an exception to your dependency-cruiser configuration.', severity: 'warn', from: {}, to: { dependencyTypes: ['npm-peer'], }, }, { name: 'no-ui-shared-to-ui-features', comment: 'Do not allow imports in ui/shared from ui/features', severity: 'error', from: { path: '^ui/shared', pathNot: [ // TODO: remove these 'ui/shared/proxy-submission/react/ProxyUploadModal.tsx', 'ui/shared/global/env/EnvCoursePaces.d.ts', 'ui/shared/global/env/EnvCourse.d.ts', 'ui/shared/discussions/react/components/AnonymousAvatar/AnonymousAvatar.stories.jsx', ], }, to: { path: '^ui/features', }, }, { name: 'no-packages-to-ui', comment: 'Do not allow imports in packages/ from ui/', severity: 'error', from: { path: '^packages/', pathNot: ['packages/slickgrid/slick.grid.js'], }, to: { path: '^ui/', }, }, { name: 'no-feature-interdependence', comment: 'One feature should not depend on another feature (in a separate folder)', severity: 'error', from: {path: '(^ui/features/)([^/]+)/'}, to: {path: '^$1', pathNot: '$1$2'}, }, ], options: { doNotFollow: { path: ['node_modules'], }, includeOnly: ['ui', 'packages'], exclude: ['ui/shared/datetime/__tests__/momentSpec.js'], /* false (the default): ignore dependencies that only exist before typescript-to-javascript compilation true: also detect dependencies that only exist before typescript-to-javascript compilation "specify": for each dependency identify whether it only exists before compilation or also after */ tsPreCompilationDeps: false, /* if true combines the package.jsons found from the module up to the base folder the cruise is initiated from. Useful for how (some) mono-repos manage dependencies & dependency definitions. */ combinedDependencies: false, /* TypeScript project file ('tsconfig.json') to use for (1) compilation and (2) resolution (e.g. with the paths property) The (optional) fileName attribute specifies which file to take (relative to dependency-cruiser's current working directory). When not provided defaults to './tsconfig.json'. */ tsConfig: { fileName: 'tsconfig.json', }, enhancedResolveOptions: { /* What to consider as an 'exports' field in package.jsons */ exportsFields: ['exports'], /* List of conditions to check for in the exports field. Only works when the 'exportsFields' array is non-empty. */ conditionNames: ['import', 'require', 'node', 'default', 'types'], /* The extensions, by default are the same as the ones dependency-cruiser can access (run `npx depcruise --info` to see which ones that are in _your_ environment. If that list is larger than you need you can pass the extensions you actually use (e.g. [".js", ".jsx"]). This can speed up the most expensive step in dependency cruising (module resolution) quite a bit. */ extensions: ['.js', '.jsx', '.ts', '.tsx', '.d.ts'], /* What to consider a 'main' field in package.json */ // if you migrate to ESM (or are in an ESM environment already) you will want to // have "module" in the list of mainFields, like so: // mainFields: ["module", "main", "types", "typings"], mainFields: ['main', 'types', 'typings'], }, reporterOptions: { dot: { collapsePattern: 'node_modules/(?:@[^/]+/[^/]+|[^/]+)', }, archi: { collapsePattern: '^(?:packages|src|lib(s?)|app(s?)|bin|test(s?)|spec(s?))/[^/]+|node_modules/(?:@[^/]+/[^/]+|[^/]+)', }, text: { highlightFocused: true, }, }, }, }