@trackunit/eslint-plugin-trackunit 0.0.2
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/CHANGELOG.md +9 -0
- package/README.md +117 -0
- package/package.json +31 -0
- package/src/index.d.ts +8 -0
- package/src/index.js +20 -0
- package/src/index.js.map +1 -0
- package/src/lib/config/fragments/ignores.d.ts +2 -0
- package/src/lib/config/fragments/ignores.js +18 -0
- package/src/lib/config/fragments/ignores.js.map +1 -0
- package/src/lib/config/fragments/import-rules.d.ts +3 -0
- package/src/lib/config/fragments/import-rules.js +58 -0
- package/src/lib/config/fragments/import-rules.js.map +1 -0
- package/src/lib/config/fragments/jest-overrides.d.ts +2 -0
- package/src/lib/config/fragments/jest-overrides.js +30 -0
- package/src/lib/config/fragments/jest-overrides.js.map +1 -0
- package/src/lib/config/fragments/jsdoc-rules.d.ts +3 -0
- package/src/lib/config/fragments/jsdoc-rules.js +71 -0
- package/src/lib/config/fragments/jsdoc-rules.js.map +1 -0
- package/src/lib/config/fragments/module-boundaries.d.ts +2 -0
- package/src/lib/config/fragments/module-boundaries.js +92 -0
- package/src/lib/config/fragments/module-boundaries.js.map +1 -0
- package/src/lib/config/fragments/react-rules.d.ts +5 -0
- package/src/lib/config/fragments/react-rules.js +137 -0
- package/src/lib/config/fragments/react-rules.js.map +1 -0
- package/src/lib/config/fragments/restricted-imports.d.ts +2 -0
- package/src/lib/config/fragments/restricted-imports.js +58 -0
- package/src/lib/config/fragments/restricted-imports.js.map +1 -0
- package/src/lib/config/fragments/testing-library.d.ts +2 -0
- package/src/lib/config/fragments/testing-library.js +7 -0
- package/src/lib/config/fragments/testing-library.js.map +1 -0
- package/src/lib/config/fragments/typescript-rules.d.ts +2 -0
- package/src/lib/config/fragments/typescript-rules.js +97 -0
- package/src/lib/config/fragments/typescript-rules.js.map +1 -0
- package/src/lib/config/index.d.ts +863 -0
- package/src/lib/config/index.js +10 -0
- package/src/lib/config/index.js.map +1 -0
- package/src/lib/config/plugins.d.ts +90 -0
- package/src/lib/config/plugins.js +44 -0
- package/src/lib/config/plugins.js.map +1 -0
- package/src/lib/config/presets/base.d.ts +265 -0
- package/src/lib/config/presets/base.js +145 -0
- package/src/lib/config/presets/base.js.map +1 -0
- package/src/lib/config/presets/e2e.d.ts +10 -0
- package/src/lib/config/presets/e2e.js +19 -0
- package/src/lib/config/presets/e2e.js.map +1 -0
- package/src/lib/config/presets/public-api.d.ts +147 -0
- package/src/lib/config/presets/public-api.js +62 -0
- package/src/lib/config/presets/public-api.js.map +1 -0
- package/src/lib/config/presets/react.d.ts +598 -0
- package/src/lib/config/presets/react.js +97 -0
- package/src/lib/config/presets/react.js.map +1 -0
- package/src/lib/config/presets/server.d.ts +36 -0
- package/src/lib/config/presets/server.js +37 -0
- package/src/lib/config/presets/server.js.map +1 -0
- package/src/lib/config/utils.d.ts +6 -0
- package/src/lib/config/utils.js +28 -0
- package/src/lib/config/utils.js.map +1 -0
- package/src/lib/config-helpers/create-skip-when.d.ts +35 -0
- package/src/lib/config-helpers/create-skip-when.js +54 -0
- package/src/lib/config-helpers/create-skip-when.js.map +1 -0
- package/src/lib/rules/cva-merge-base-classes-as-array/cva-merge-base-classes-as-array.d.ts +16 -0
- package/src/lib/rules/cva-merge-base-classes-as-array/cva-merge-base-classes-as-array.js +83 -0
- package/src/lib/rules/cva-merge-base-classes-as-array/cva-merge-base-classes-as-array.js.map +1 -0
- package/src/lib/rules/design-guideline-button-icon-size-match/design-guideline-button-icon-size-match.d.ts +4 -0
- package/src/lib/rules/design-guideline-button-icon-size-match/design-guideline-button-icon-size-match.js +297 -0
- package/src/lib/rules/design-guideline-button-icon-size-match/design-guideline-button-icon-size-match.js.map +1 -0
- package/src/lib/rules/no-internal-barrel-files/examples.d.ts +80 -0
- package/src/lib/rules/no-internal-barrel-files/examples.js +84 -0
- package/src/lib/rules/no-internal-barrel-files/examples.js.map +1 -0
- package/src/lib/rules/no-internal-barrel-files/no-internal-barrel-files.d.ts +29 -0
- package/src/lib/rules/no-internal-barrel-files/no-internal-barrel-files.js +178 -0
- package/src/lib/rules/no-internal-barrel-files/no-internal-barrel-files.js.map +1 -0
- package/src/lib/rules/no-internal-graphql-when-tagged-with-gql-public/no-internal-graphql-when-tagged-with-gql-public.d.ts +5 -0
- package/src/lib/rules/no-internal-graphql-when-tagged-with-gql-public/no-internal-graphql-when-tagged-with-gql-public.js +67 -0
- package/src/lib/rules/no-internal-graphql-when-tagged-with-gql-public/no-internal-graphql-when-tagged-with-gql-public.js.map +1 -0
- package/src/lib/rules/no-jest-mock-trackunit-react-core-hooks/no-jest-mock-trackunit-react-core-hooks.d.ts +2 -0
- package/src/lib/rules/no-jest-mock-trackunit-react-core-hooks/no-jest-mock-trackunit-react-core-hooks.js +34 -0
- package/src/lib/rules/no-jest-mock-trackunit-react-core-hooks/no-jest-mock-trackunit-react-core-hooks.js.map +1 -0
- package/src/lib/rules/no-template-strings-in-classname-prop/no-template-strings-in-classname-prop.d.ts +16 -0
- package/src/lib/rules/no-template-strings-in-classname-prop/no-template-strings-in-classname-prop.js +55 -0
- package/src/lib/rules/no-template-strings-in-classname-prop/no-template-strings-in-classname-prop.js.map +1 -0
- package/src/lib/rules/no-typescript-assertion/examples.d.ts +1 -0
- package/src/lib/rules/no-typescript-assertion/examples.js +45 -0
- package/src/lib/rules/no-typescript-assertion/examples.js.map +1 -0
- package/src/lib/rules/no-typescript-assertion/no-typescript-assertion.d.ts +20 -0
- package/src/lib/rules/no-typescript-assertion/no-typescript-assertion.js +83 -0
- package/src/lib/rules/no-typescript-assertion/no-typescript-assertion.js.map +1 -0
- package/src/lib/rules/prefer-destructured-imports/prefer-destructured-imports.d.ts +73 -0
- package/src/lib/rules/prefer-destructured-imports/prefer-destructured-imports.js +333 -0
- package/src/lib/rules/prefer-destructured-imports/prefer-destructured-imports.js.map +1 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/name-suggestion-strategies.d.ts +56 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/name-suggestion-strategies.js +225 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/name-suggestion-strategies.js.map +1 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/prefer-event-specific-callback-naming.d.ts +49 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/prefer-event-specific-callback-naming.js +75 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/prefer-event-specific-callback-naming.js.map +1 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/strategies/string-based.d.ts +32 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/strategies/string-based.js +143 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/strategies/string-based.js.map +1 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/strategies/type-based.d.ts +27 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/strategies/type-based.js +196 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/strategies/type-based.js.map +1 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/utils.d.ts +76 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/utils.js +245 -0
- package/src/lib/rules/prefer-event-specific-callback-naming/utils.js.map +1 -0
- package/src/lib/rules/prefer-field-components/prefer-field-components.d.ts +4 -0
- package/src/lib/rules/prefer-field-components/prefer-field-components.js +289 -0
- package/src/lib/rules/prefer-field-components/prefer-field-components.js.map +1 -0
- package/src/lib/rules/prefer-mouse-event-handler-in-react-props/prefer-mouse-event-handler-in-react-props.d.ts +26 -0
- package/src/lib/rules/prefer-mouse-event-handler-in-react-props/prefer-mouse-event-handler-in-react-props.js +402 -0
- package/src/lib/rules/prefer-mouse-event-handler-in-react-props/prefer-mouse-event-handler-in-react-props.js.map +1 -0
- package/src/lib/rules/require-classname-alternatives/require-classname-alternatives.d.ts +13 -0
- package/src/lib/rules/require-classname-alternatives/require-classname-alternatives.js +271 -0
- package/src/lib/rules/require-classname-alternatives/require-classname-alternatives.js.map +1 -0
- package/src/lib/rules/require-list-item-virtualization-props/require-list-item-virtualization-props.d.ts +15 -0
- package/src/lib/rules/require-list-item-virtualization-props/require-list-item-virtualization-props.js +245 -0
- package/src/lib/rules/require-list-item-virtualization-props/require-list-item-virtualization-props.js.map +1 -0
- package/src/lib/rules/require-optional-prop-initialization/require-optional-prop-initialization.d.ts +17 -0
- package/src/lib/rules/require-optional-prop-initialization/require-optional-prop-initialization.js +133 -0
- package/src/lib/rules/require-optional-prop-initialization/require-optional-prop-initialization.js.map +1 -0
- package/src/lib/rules/require-optional-prop-initialization/suggestion-utils.d.ts +12 -0
- package/src/lib/rules/require-optional-prop-initialization/suggestion-utils.js +128 -0
- package/src/lib/rules/require-optional-prop-initialization/suggestion-utils.js.map +1 -0
- package/src/lib/rules-map.d.ts +66 -0
- package/src/lib/rules-map.js +34 -0
- package/src/lib/rules-map.js.map +1 -0
- package/src/lib/utils/ast-utils.d.ts +85 -0
- package/src/lib/utils/ast-utils.js +530 -0
- package/src/lib/utils/ast-utils.js.map +1 -0
- package/src/lib/utils/classname-utils.d.ts +150 -0
- package/src/lib/utils/classname-utils.js +492 -0
- package/src/lib/utils/classname-utils.js.map +1 -0
- package/src/lib/utils/file-utils.d.ts +14 -0
- package/src/lib/utils/file-utils.js +106 -0
- package/src/lib/utils/file-utils.js.map +1 -0
- package/src/lib/utils/import-utils.d.ts +85 -0
- package/src/lib/utils/import-utils.js +193 -0
- package/src/lib/utils/import-utils.js.map +1 -0
- package/src/lib/utils/nx-utils.d.ts +59 -0
- package/src/lib/utils/nx-utils.js +103 -0
- package/src/lib/utils/nx-utils.js.map +1 -0
- package/src/lib/utils/package-utils.d.ts +38 -0
- package/src/lib/utils/package-utils.js +74 -0
- package/src/lib/utils/package-utils.js.map +1 -0
- package/src/lib/utils/typescript-utils.d.ts +29 -0
- package/src/lib/utils/typescript-utils.js +213 -0
- package/src/lib/utils/typescript-utils.js.map +1 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## 0.0.2 (2026-03-02)
|
|
2
|
+
|
|
3
|
+
### 🧱 Updated Dependencies
|
|
4
|
+
|
|
5
|
+
- Updated css-class-variance-utilities to 1.11.49
|
|
6
|
+
- Updated react-core-contexts-test to 1.12.32
|
|
7
|
+
- Updated react-form-components to 1.14.37
|
|
8
|
+
- Updated react-components to 1.17.34
|
|
9
|
+
- Updated shared-utils to 1.13.49
|
package/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# @trackunit/eslint-plugin-trackunit
|
|
2
|
+
|
|
3
|
+
A shared ESLint plugin and configuration preset for Trackunit projects. It bundles Trackunit-specific custom rules alongside curated third-party plugin configurations into ready-to-use flat-config presets for ESLint 9+.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
This plugin ships **flat-config presets** for common and client-side code. Compose them in your ESLint config:
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
// eslint.config.cjs
|
|
11
|
+
const { configs } = require("@trackunit/eslint-plugin-trackunit");
|
|
12
|
+
|
|
13
|
+
// Pick the presets that match your project:
|
|
14
|
+
module.exports = [...configs.base, ...configs.react];
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
> For server, public API, and E2E presets see `@trackunit/eslint-plugin-trackunit-internal` (internal, not published to npm).
|
|
18
|
+
|
|
19
|
+
## Presets
|
|
20
|
+
|
|
21
|
+
| Preset | Purpose | Includes |
|
|
22
|
+
|--------|---------|----------|
|
|
23
|
+
| `configs.base` | Foundation for every project | TypeScript, import, module-boundary, JSDoc, and custom Trackunit rules |
|
|
24
|
+
| `configs.react` | React / browser applications | React, React Hooks, Storybook, Jest + Testing Library overrides |
|
|
25
|
+
|
|
26
|
+
### Combining Presets
|
|
27
|
+
|
|
28
|
+
Presets are arrays of flat-config objects — spread them in the order you need:
|
|
29
|
+
|
|
30
|
+
```js
|
|
31
|
+
// React application
|
|
32
|
+
module.exports = [...configs.base, ...configs.react];
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`configs.base` should always come first.
|
|
36
|
+
|
|
37
|
+
## Custom Rules
|
|
38
|
+
|
|
39
|
+
All custom rules are enabled automatically through the presets under the `@trackunit/` prefix. Below is a summary of every rule shipped with the plugin.
|
|
40
|
+
|
|
41
|
+
### Code Quality
|
|
42
|
+
|
|
43
|
+
| Rule | Severity | Auto-fix | Description |
|
|
44
|
+
|------|----------|----------|-------------|
|
|
45
|
+
| `@trackunit/no-typescript-assertion` | warn | — | Disallows `as`, angle-bracket, and `!` type assertions. `as const` and `as unknown` are allowed. |
|
|
46
|
+
| `@trackunit/no-internal-barrel-files` | error | — | Prevents internal `index.ts` barrel files that are not at the library root. |
|
|
47
|
+
| `@trackunit/prefer-destructured-imports` | — | yes | Converts namespace imports (`import * as Foo`) to named imports for configured packages. |
|
|
48
|
+
|
|
49
|
+
### React & JSX
|
|
50
|
+
|
|
51
|
+
| Rule | Severity | Auto-fix | Description |
|
|
52
|
+
|------|----------|----------|-------------|
|
|
53
|
+
| `@trackunit/no-template-strings-in-classname-prop` | — | — | Disallows template literals in `className`. Use `twMerge()` or `cvaMerge()` instead. |
|
|
54
|
+
| `@trackunit/require-classname-alternatives` | — | yes | Replaces banned class names with approved alternatives. |
|
|
55
|
+
| `@trackunit/cva-merge-base-classes-as-array` | — | yes | Enforces array syntax for `cvaMerge` base classes when more than one class is used. |
|
|
56
|
+
| `@trackunit/design-guideline-button-icon-size-match` | — | yes | Ensures `Icon` inside `Button` uses the correct `size` prop. |
|
|
57
|
+
| `@trackunit/prefer-field-components` | — | yes | Prefers `SelectField`/`TextField` over manually combining `Label` + base input components. |
|
|
58
|
+
| `@trackunit/prefer-mouse-event-handler-in-react-props` | — | — | Enforces `MouseEventHandler<T>` typing for `onClick*` props. |
|
|
59
|
+
| `@trackunit/prefer-event-specific-callback-naming` | — | — | Enforces event-specific naming (e.g. `onClickClose` over `onClose`) for click handlers. |
|
|
60
|
+
| `@trackunit/require-optional-prop-initialization` | — | — | Requires optional component props to be initialized inside the component. |
|
|
61
|
+
| `@trackunit/require-list-item-virtualization-props` | — | — | Requires `VirtualizationListItemProps` on list items inside `<List>`. |
|
|
62
|
+
|
|
63
|
+
### Testing
|
|
64
|
+
|
|
65
|
+
| Rule | Severity | Auto-fix | Description |
|
|
66
|
+
|------|----------|----------|-------------|
|
|
67
|
+
| `@trackunit/no-jest-mock-trackunit-react-core-hooks` | — | — | Disallows `jest.mock("@trackunit/react-core-hooks")`. Use `trackunitProviders()` mock builders instead. |
|
|
68
|
+
|
|
69
|
+
### NX / Monorepo
|
|
70
|
+
|
|
71
|
+
| Rule | Severity | Auto-fix | Description |
|
|
72
|
+
|------|----------|----------|-------------|
|
|
73
|
+
| `@trackunit/no-internal-graphql-when-tagged-with-gql-public` | error | — | Prevents internal GraphQL usage in projects tagged with `gql-public`. Applied to `project.json` files. |
|
|
74
|
+
|
|
75
|
+
## Utilities
|
|
76
|
+
|
|
77
|
+
### `createSkipWhen`
|
|
78
|
+
|
|
79
|
+
Wraps rules so they are skipped for projects matching NX workspace criteria (e.g. specific tags):
|
|
80
|
+
|
|
81
|
+
```js
|
|
82
|
+
const { createSkipWhen } = require("@trackunit/eslint-plugin-trackunit");
|
|
83
|
+
|
|
84
|
+
createSkipWhen({
|
|
85
|
+
when: { tags: ["scope:tool"] },
|
|
86
|
+
plugins: {
|
|
87
|
+
"import-x": importXPlugin,
|
|
88
|
+
},
|
|
89
|
+
rules: {
|
|
90
|
+
"import-x/no-extraneous-dependencies": ["error", { /* ... */ }],
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### `findMonorepoRoot`
|
|
96
|
+
|
|
97
|
+
Resolves the NX monorepo root by walking up from the plugin directory until `nx.json` is found. Useful when rule options need an absolute path to the workspace root.
|
|
98
|
+
|
|
99
|
+
```js
|
|
100
|
+
const { findMonorepoRoot } = require("@trackunit/eslint-plugin-trackunit");
|
|
101
|
+
|
|
102
|
+
const root = findMonorepoRoot();
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Requirements
|
|
106
|
+
|
|
107
|
+
- Node.js >= 24
|
|
108
|
+
- ESLint 9+
|
|
109
|
+
- TypeScript 5.9+
|
|
110
|
+
|
|
111
|
+
For more info and a full guide on Iris App SDK Development, please visit our [Developer Hub](https://developers.trackunit.com/).
|
|
112
|
+
|
|
113
|
+
## Trackunit
|
|
114
|
+
This package was developed by Trackunit ApS.
|
|
115
|
+
Trackunit is the leading SaaS-based IoT solution for the construction industry, offering an ecosystem of hardware, fleet management software & telematics.
|
|
116
|
+
|
|
117
|
+

|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@trackunit/eslint-plugin-trackunit",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
|
+
"repository": "https://github.com/Trackunit/manager",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=24.x"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"eslint": "^9.33.0",
|
|
11
|
+
"@nx/eslint-plugin": "22.4.4",
|
|
12
|
+
"@typescript-eslint/eslint-plugin": "8.54.0",
|
|
13
|
+
"@typescript-eslint/parser": "8.54.0",
|
|
14
|
+
"@typescript-eslint/utils": "8.54.0",
|
|
15
|
+
"eslint-config-prettier": "^10.1.8",
|
|
16
|
+
"eslint-plugin-import": "2.32.0",
|
|
17
|
+
"eslint-plugin-jest": "^29.5.0",
|
|
18
|
+
"eslint-plugin-jsdoc": "^61.2.1",
|
|
19
|
+
"eslint-plugin-no-null": "^1.0.2",
|
|
20
|
+
"eslint-plugin-react": "7.37.5",
|
|
21
|
+
"eslint-plugin-react-hooks": "7.0.1",
|
|
22
|
+
"eslint-plugin-storybook": "^10.2.4",
|
|
23
|
+
"eslint-plugin-testing-library": "^7.6.6",
|
|
24
|
+
"globals": "^15.13.0",
|
|
25
|
+
"typescript": "5.9.3",
|
|
26
|
+
"tslib": "^2.6.2"
|
|
27
|
+
},
|
|
28
|
+
"types": "./src/index.d.ts",
|
|
29
|
+
"main": "./src/index.js",
|
|
30
|
+
"type": "commonjs"
|
|
31
|
+
}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { rulesMap } from "./lib/rules-map";
|
|
2
|
+
export default rulesMap;
|
|
3
|
+
export { configs } from "./lib/config";
|
|
4
|
+
export { createSkipWhen } from "./lib/config-helpers/create-skip-when";
|
|
5
|
+
export { findMonorepoRoot } from "./lib/config/utils";
|
|
6
|
+
export type { MatchCriteria, ProjectMetadata } from "./lib/utils/nx-utils";
|
|
7
|
+
export { strictJsdocRules } from "./lib/config/fragments/jsdoc-rules";
|
|
8
|
+
export { globals, jsdoc, nx, reactHooks, tsParser } from "./lib/config/plugins";
|
package/src/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsParser = exports.reactHooks = exports.nx = exports.jsdoc = exports.globals = exports.strictJsdocRules = exports.findMonorepoRoot = exports.createSkipWhen = exports.configs = void 0;
|
|
4
|
+
const rules_map_1 = require("./lib/rules-map");
|
|
5
|
+
exports.default = rules_map_1.rulesMap;
|
|
6
|
+
var config_1 = require("./lib/config");
|
|
7
|
+
Object.defineProperty(exports, "configs", { enumerable: true, get: function () { return config_1.configs; } });
|
|
8
|
+
var create_skip_when_1 = require("./lib/config-helpers/create-skip-when");
|
|
9
|
+
Object.defineProperty(exports, "createSkipWhen", { enumerable: true, get: function () { return create_skip_when_1.createSkipWhen; } });
|
|
10
|
+
var utils_1 = require("./lib/config/utils");
|
|
11
|
+
Object.defineProperty(exports, "findMonorepoRoot", { enumerable: true, get: function () { return utils_1.findMonorepoRoot; } });
|
|
12
|
+
var jsdoc_rules_1 = require("./lib/config/fragments/jsdoc-rules");
|
|
13
|
+
Object.defineProperty(exports, "strictJsdocRules", { enumerable: true, get: function () { return jsdoc_rules_1.strictJsdocRules; } });
|
|
14
|
+
var plugins_1 = require("./lib/config/plugins");
|
|
15
|
+
Object.defineProperty(exports, "globals", { enumerable: true, get: function () { return plugins_1.globals; } });
|
|
16
|
+
Object.defineProperty(exports, "jsdoc", { enumerable: true, get: function () { return plugins_1.jsdoc; } });
|
|
17
|
+
Object.defineProperty(exports, "nx", { enumerable: true, get: function () { return plugins_1.nx; } });
|
|
18
|
+
Object.defineProperty(exports, "reactHooks", { enumerable: true, get: function () { return plugins_1.reactHooks; } });
|
|
19
|
+
Object.defineProperty(exports, "tsParser", { enumerable: true, get: function () { return plugins_1.tsParser; } });
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/eslint/plugin-trackunit/src/index.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C,kBAAe,oBAAQ,CAAC;AAExB,uCAAuC;AAA9B,iGAAA,OAAO,OAAA;AAChB,0EAAuE;AAA9D,kHAAA,cAAc,OAAA;AACvB,4CAAsD;AAA7C,yGAAA,gBAAgB,OAAA;AAGzB,kEAAsE;AAA7D,+GAAA,gBAAgB,OAAA;AACzB,gDAAgF;AAAvE,kGAAA,OAAO,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,6FAAA,EAAE,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,mGAAA,QAAQ,OAAA","sourcesContent":["import { rulesMap } from \"./lib/rules-map\";\n\nexport default rulesMap;\n\nexport { configs } from \"./lib/config\";\nexport { createSkipWhen } from \"./lib/config-helpers/create-skip-when\";\nexport { findMonorepoRoot } from \"./lib/config/utils\";\nexport type { MatchCriteria, ProjectMetadata } from \"./lib/utils/nx-utils\";\n\nexport { strictJsdocRules } from \"./lib/config/fragments/jsdoc-rules\";\nexport { globals, jsdoc, nx, reactHooks, tsParser } from \"./lib/config/plugins\";\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.globalIgnores = void 0;
|
|
4
|
+
exports.globalIgnores = {
|
|
5
|
+
ignores: [
|
|
6
|
+
"**/src/gql-api.tsx",
|
|
7
|
+
"**/src/typings/**/*",
|
|
8
|
+
"**/testUtils.tsx",
|
|
9
|
+
"**/webpack.config.js",
|
|
10
|
+
"**/jest.config.*",
|
|
11
|
+
"**/jest.setup.*",
|
|
12
|
+
"**/src/**/generated/**/*.*",
|
|
13
|
+
"**/src/**/generated.*",
|
|
14
|
+
"**/dist/**/*",
|
|
15
|
+
"**/*.docs.mdx",
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=ignores.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignores.js","sourceRoot":"","sources":["../../../../../../../../libs/eslint/plugin-trackunit/src/lib/config/fragments/ignores.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAkB;IAC1C,OAAO,EAAE;QACP,oBAAoB;QACpB,qBAAqB;QACrB,kBAAkB;QAClB,sBAAsB;QACtB,kBAAkB;QAClB,iBAAiB;QACjB,4BAA4B;QAC5B,uBAAuB;QACvB,cAAc;QACd,eAAe;KAChB;CACF,CAAC","sourcesContent":["import type { Linter } from \"eslint\";\n\nexport const globalIgnores: Linter.Config = {\n ignores: [\n \"**/src/gql-api.tsx\",\n \"**/src/typings/**/*\",\n \"**/testUtils.tsx\",\n \"**/webpack.config.js\",\n \"**/jest.config.*\",\n \"**/jest.setup.*\",\n \"**/src/**/generated/**/*.*\",\n \"**/src/**/generated.*\",\n \"**/dist/**/*\",\n \"**/*.docs.mdx\",\n ],\n};\n"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createImportExtraneousDependenciesConfig = exports.importRules = void 0;
|
|
4
|
+
const create_skip_when_1 = require("../../config-helpers/create-skip-when");
|
|
5
|
+
const plugins_1 = require("../plugins");
|
|
6
|
+
exports.importRules = {
|
|
7
|
+
"import-x/no-cycle": [
|
|
8
|
+
"error",
|
|
9
|
+
{
|
|
10
|
+
ignoreExternal: true,
|
|
11
|
+
},
|
|
12
|
+
],
|
|
13
|
+
"import-x/first": "off",
|
|
14
|
+
};
|
|
15
|
+
const createImportExtraneousDependenciesConfig = (rootDir) => (0, create_skip_when_1.createSkipWhen)({
|
|
16
|
+
when: { tags: ["scope:tool"] },
|
|
17
|
+
plugins: {
|
|
18
|
+
"import-x": plugins_1.importPlugin,
|
|
19
|
+
},
|
|
20
|
+
rules: {
|
|
21
|
+
"import-x/no-extraneous-dependencies": [
|
|
22
|
+
"error",
|
|
23
|
+
{
|
|
24
|
+
packageDir: rootDir,
|
|
25
|
+
devDependencies: [
|
|
26
|
+
"**/*.cy.{ts,tsx}",
|
|
27
|
+
"**/cypress/**",
|
|
28
|
+
"**/*.spec.{ts,tsx}",
|
|
29
|
+
"**/*.test.{ts,tsx}",
|
|
30
|
+
"**/jest.setup.*",
|
|
31
|
+
"**/test/**",
|
|
32
|
+
"**/tests/**",
|
|
33
|
+
"**/testing/**",
|
|
34
|
+
"**/test-setup/**",
|
|
35
|
+
"**/test-utils/**",
|
|
36
|
+
"**/__tests__/**",
|
|
37
|
+
"**/__mocks__/**",
|
|
38
|
+
"**/mocks.{ts,tsx}",
|
|
39
|
+
"**/core-contexts-test/**",
|
|
40
|
+
"**/*.stories.{ts,tsx}",
|
|
41
|
+
"**/storybookUtils.{ts,tsx}",
|
|
42
|
+
"**/.storybook/**",
|
|
43
|
+
"**/scripts/**",
|
|
44
|
+
"**/tools/**",
|
|
45
|
+
"**/*.config.{ts,js,cjs,mjs}",
|
|
46
|
+
"**/css/tailwind/**",
|
|
47
|
+
"**/css/tailwind-custom-properties-plugin/**",
|
|
48
|
+
"**/css/component-tokens/**",
|
|
49
|
+
],
|
|
50
|
+
optionalDependencies: false,
|
|
51
|
+
peerDependencies: true,
|
|
52
|
+
bundledDependencies: true,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
exports.createImportExtraneousDependenciesConfig = createImportExtraneousDependenciesConfig;
|
|
58
|
+
//# sourceMappingURL=import-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-rules.js","sourceRoot":"","sources":["../../../../../../../../libs/eslint/plugin-trackunit/src/lib/config/fragments/import-rules.ts"],"names":[],"mappings":";;;AACA,4EAAuE;AACvE,wCAA0C;AAE7B,QAAA,WAAW,GAAuB;IAC7C,mBAAmB,EAAE;QACnB,OAAO;QACP;YACE,cAAc,EAAE,IAAI;SACrB;KACF;IACD,gBAAgB,EAAE,KAAK;CACxB,CAAC;AAEK,MAAM,wCAAwC,GAAG,CAAC,OAAe,EAAiB,EAAE,CACzF,IAAA,iCAAc,EAAC;IACb,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE;IAC9B,OAAO,EAAE;QACP,UAAU,EAAE,sBAAY;KACzB;IACD,KAAK,EAAE;QACL,qCAAqC,EAAE;YACrC,OAAO;YACP;gBACE,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE;oBACf,kBAAkB;oBAClB,eAAe;oBACf,oBAAoB;oBACpB,oBAAoB;oBACpB,iBAAiB;oBACjB,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,kBAAkB;oBAClB,kBAAkB;oBAClB,iBAAiB;oBACjB,iBAAiB;oBACjB,mBAAmB;oBACnB,0BAA0B;oBAC1B,uBAAuB;oBACvB,4BAA4B;oBAC5B,kBAAkB;oBAClB,eAAe;oBACf,aAAa;oBACb,6BAA6B;oBAC7B,oBAAoB;oBACpB,6CAA6C;oBAC7C,4BAA4B;iBAC7B;gBACD,oBAAoB,EAAE,KAAK;gBAC3B,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;aAC1B;SACF;KACF;CACF,CAAC,CAAC;AA1CQ,QAAA,wCAAwC,4CA0ChD","sourcesContent":["import type { Linter } from \"eslint\";\nimport { createSkipWhen } from \"../../config-helpers/create-skip-when\";\nimport { importPlugin } from \"../plugins\";\n\nexport const importRules: Linter.RulesRecord = {\n \"import-x/no-cycle\": [\n \"error\",\n {\n ignoreExternal: true,\n },\n ],\n \"import-x/first\": \"off\",\n};\n\nexport const createImportExtraneousDependenciesConfig = (rootDir: string): Linter.Config =>\n createSkipWhen({\n when: { tags: [\"scope:tool\"] },\n plugins: {\n \"import-x\": importPlugin,\n },\n rules: {\n \"import-x/no-extraneous-dependencies\": [\n \"error\",\n {\n packageDir: rootDir,\n devDependencies: [\n \"**/*.cy.{ts,tsx}\",\n \"**/cypress/**\",\n \"**/*.spec.{ts,tsx}\",\n \"**/*.test.{ts,tsx}\",\n \"**/jest.setup.*\",\n \"**/test/**\",\n \"**/tests/**\",\n \"**/testing/**\",\n \"**/test-setup/**\",\n \"**/test-utils/**\",\n \"**/__tests__/**\",\n \"**/__mocks__/**\",\n \"**/mocks.{ts,tsx}\",\n \"**/core-contexts-test/**\",\n \"**/*.stories.{ts,tsx}\",\n \"**/storybookUtils.{ts,tsx}\",\n \"**/.storybook/**\",\n \"**/scripts/**\",\n \"**/tools/**\",\n \"**/*.config.{ts,js,cjs,mjs}\",\n \"**/css/tailwind/**\",\n \"**/css/tailwind-custom-properties-plugin/**\",\n \"**/css/component-tokens/**\",\n ],\n optionalDependencies: false,\n peerDependencies: true,\n bundledDependencies: true,\n },\n ],\n },\n });\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.baseJestOverrides = void 0;
|
|
4
|
+
const plugins_1 = require("../plugins");
|
|
5
|
+
exports.baseJestOverrides = {
|
|
6
|
+
files: ["**/*.spec.ts", "**/*.spec.tsx"],
|
|
7
|
+
languageOptions: {
|
|
8
|
+
ecmaVersion: 5,
|
|
9
|
+
sourceType: "script",
|
|
10
|
+
parserOptions: {
|
|
11
|
+
project: ["./tsconfig.*?.json"],
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
plugins: {
|
|
15
|
+
jest: plugins_1.jest,
|
|
16
|
+
"testing-library": plugins_1.testingLibrary,
|
|
17
|
+
},
|
|
18
|
+
rules: {
|
|
19
|
+
...plugins_1.jest.configs.recommended.rules,
|
|
20
|
+
...plugins_1.jest.configs.style.rules,
|
|
21
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
22
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
23
|
+
"@typescript-eslint/no-non-null-assertion": "off",
|
|
24
|
+
"@trackunit/no-typescript-assertion": "off",
|
|
25
|
+
"@trackunit/no-jest-mock-trackunit-react-core-hooks": "error",
|
|
26
|
+
"no-console": "off",
|
|
27
|
+
"@typescript-eslint/strict-boolean-expressions": "off",
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=jest-overrides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-overrides.js","sourceRoot":"","sources":["../../../../../../../../libs/eslint/plugin-trackunit/src/lib/config/fragments/jest-overrides.ts"],"names":[],"mappings":";;;AACA,wCAAkD;AAErC,QAAA,iBAAiB,GAAkB;IAC9C,KAAK,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IACxC,eAAe,EAAE;QACf,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE;YACb,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAChC;KACF;IAED,OAAO,EAAE;QACP,IAAI,EAAJ,cAAI;QACJ,iBAAiB,EAAE,wBAAc;KAClC;IAED,KAAK,EAAE;QACL,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;QACjC,GAAG,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAC3B,oCAAoC,EAAE,KAAK;QAC3C,sCAAsC,EAAE,KAAK;QAC7C,0CAA0C,EAAE,KAAK;QACjD,oCAAoC,EAAE,KAAK;QAC3C,oDAAoD,EAAE,OAAO;QAC7D,YAAY,EAAE,KAAK;QACnB,+CAA+C,EAAE,KAAK;KACvD;CACF,CAAC","sourcesContent":["import type { Linter } from \"eslint\";\nimport { jest, testingLibrary } from \"../plugins\";\n\nexport const baseJestOverrides: Linter.Config = {\n files: [\"**/*.spec.ts\", \"**/*.spec.tsx\"],\n languageOptions: {\n ecmaVersion: 5,\n sourceType: \"script\",\n parserOptions: {\n project: [\"./tsconfig.*?.json\"],\n },\n },\n\n plugins: {\n jest,\n \"testing-library\": testingLibrary,\n },\n\n rules: {\n ...jest.configs.recommended.rules,\n ...jest.configs.style.rules,\n \"@typescript-eslint/no-explicit-any\": \"off\",\n \"@typescript-eslint/no-empty-function\": \"off\",\n \"@typescript-eslint/no-non-null-assertion\": \"off\",\n \"@trackunit/no-typescript-assertion\": \"off\",\n \"@trackunit/no-jest-mock-trackunit-react-core-hooks\": \"error\",\n \"no-console\": \"off\",\n \"@typescript-eslint/strict-boolean-expressions\": \"off\",\n },\n};\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.strictJsdocRules = exports.basicJsdocRules = void 0;
|
|
4
|
+
exports.basicJsdocRules = {
|
|
5
|
+
"jsdoc/tag-lines": [
|
|
6
|
+
"error",
|
|
7
|
+
"never",
|
|
8
|
+
{
|
|
9
|
+
startLines: 1,
|
|
10
|
+
},
|
|
11
|
+
],
|
|
12
|
+
"jsdoc/check-alignment": "error",
|
|
13
|
+
"prefer-arrow-functions": "off",
|
|
14
|
+
"jsdoc/check-indentation": "off",
|
|
15
|
+
"jsdoc/no-restricted-syntax": [
|
|
16
|
+
"error",
|
|
17
|
+
{
|
|
18
|
+
contexts: [
|
|
19
|
+
{
|
|
20
|
+
comment: "JsdocBlock:has(JsdocTag[tag=/type/])",
|
|
21
|
+
context: "any",
|
|
22
|
+
message: "Projects should not use @type annotation in JSDocs.",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
exports.strictJsdocRules = {
|
|
29
|
+
"jsdoc/require-jsdoc": [
|
|
30
|
+
"error",
|
|
31
|
+
{
|
|
32
|
+
publicOnly: true,
|
|
33
|
+
require: {
|
|
34
|
+
ArrowFunctionExpression: true,
|
|
35
|
+
ClassDeclaration: true,
|
|
36
|
+
FunctionDeclaration: true,
|
|
37
|
+
FunctionExpression: true,
|
|
38
|
+
MethodDefinition: true,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
"jsdoc/no-undefined-types": [
|
|
43
|
+
"error",
|
|
44
|
+
{
|
|
45
|
+
definedTypes: ["JSX"],
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
"jsdoc/check-param-names": "error",
|
|
49
|
+
"jsdoc/require-returns-type": "error",
|
|
50
|
+
"jsdoc/valid-types": "error",
|
|
51
|
+
"jsdoc/require-param-description": "error",
|
|
52
|
+
"jsdoc/check-access": "error",
|
|
53
|
+
"jsdoc/check-property-names": "error",
|
|
54
|
+
"jsdoc/check-tag-names": "error",
|
|
55
|
+
"jsdoc/check-types": "error",
|
|
56
|
+
"jsdoc/check-values": "error",
|
|
57
|
+
"jsdoc/check-alignment": "error",
|
|
58
|
+
"jsdoc/empty-tags": "error",
|
|
59
|
+
"jsdoc/implements-on-classes": "error",
|
|
60
|
+
"jsdoc/multiline-blocks": "error",
|
|
61
|
+
"jsdoc/no-multi-asterisks": "error",
|
|
62
|
+
"jsdoc/require-property": "error",
|
|
63
|
+
"jsdoc/require-property-description": "error",
|
|
64
|
+
"jsdoc/require-property-name": "error",
|
|
65
|
+
"jsdoc/require-property-type": "error",
|
|
66
|
+
"jsdoc/require-returns-check": "error",
|
|
67
|
+
"jsdoc/require-returns-description": "error",
|
|
68
|
+
"jsdoc/require-yields": "error",
|
|
69
|
+
"jsdoc/require-yields-check": "error",
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=jsdoc-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsdoc-rules.js","sourceRoot":"","sources":["../../../../../../../../libs/eslint/plugin-trackunit/src/lib/config/fragments/jsdoc-rules.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAuB;IACjD,iBAAiB,EAAE;QACjB,OAAO;QACP,OAAO;QACP;YACE,UAAU,EAAE,CAAC;SACd;KACF;IACD,uBAAuB,EAAE,OAAO;IAChC,wBAAwB,EAAE,KAAK;IAC/B,yBAAyB,EAAE,KAAK;IAChC,4BAA4B,EAAE;QAC5B,OAAO;QACP;YACE,QAAQ,EAAE;gBACR;oBACE,OAAO,EAAE,sCAAsC;oBAC/C,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,qDAAqD;iBAC/D;aACF;SACF;KACF;CACF,CAAC;AAEW,QAAA,gBAAgB,GAAuB;IAClD,qBAAqB,EAAE;QACrB,OAAO;QACP;YACE,UAAU,EAAE,IAAI;YAEhB,OAAO,EAAE;gBACP,uBAAuB,EAAE,IAAI;gBAC7B,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;gBACzB,kBAAkB,EAAE,IAAI;gBACxB,gBAAgB,EAAE,IAAI;aACvB;SACF;KACF;IAED,0BAA0B,EAAE;QAC1B,OAAO;QACP;YACE,YAAY,EAAE,CAAC,KAAK,CAAC;SACtB;KACF;IAED,yBAAyB,EAAE,OAAO;IAClC,4BAA4B,EAAE,OAAO;IACrC,mBAAmB,EAAE,OAAO;IAC5B,iCAAiC,EAAE,OAAO;IAC1C,oBAAoB,EAAE,OAAO;IAC7B,4BAA4B,EAAE,OAAO;IACrC,uBAAuB,EAAE,OAAO;IAChC,mBAAmB,EAAE,OAAO;IAC5B,oBAAoB,EAAE,OAAO;IAC7B,uBAAuB,EAAE,OAAO;IAChC,kBAAkB,EAAE,OAAO;IAC3B,6BAA6B,EAAE,OAAO;IACtC,wBAAwB,EAAE,OAAO;IACjC,0BAA0B,EAAE,OAAO;IACnC,wBAAwB,EAAE,OAAO;IACjC,oCAAoC,EAAE,OAAO;IAC7C,6BAA6B,EAAE,OAAO;IACtC,6BAA6B,EAAE,OAAO;IACtC,6BAA6B,EAAE,OAAO;IACtC,mCAAmC,EAAE,OAAO;IAC5C,sBAAsB,EAAE,OAAO;IAC/B,4BAA4B,EAAE,OAAO;CACtC,CAAC","sourcesContent":["import type { Linter } from \"eslint\";\n\nexport const basicJsdocRules: Linter.RulesRecord = {\n \"jsdoc/tag-lines\": [\n \"error\",\n \"never\",\n {\n startLines: 1,\n },\n ],\n \"jsdoc/check-alignment\": \"error\",\n \"prefer-arrow-functions\": \"off\",\n \"jsdoc/check-indentation\": \"off\",\n \"jsdoc/no-restricted-syntax\": [\n \"error\",\n {\n contexts: [\n {\n comment: \"JsdocBlock:has(JsdocTag[tag=/type/])\",\n context: \"any\",\n message: \"Projects should not use @type annotation in JSDocs.\",\n },\n ],\n },\n ],\n};\n\nexport const strictJsdocRules: Linter.RulesRecord = {\n \"jsdoc/require-jsdoc\": [\n \"error\",\n {\n publicOnly: true,\n\n require: {\n ArrowFunctionExpression: true,\n ClassDeclaration: true,\n FunctionDeclaration: true,\n FunctionExpression: true,\n MethodDefinition: true,\n },\n },\n ],\n\n \"jsdoc/no-undefined-types\": [\n \"error\",\n {\n definedTypes: [\"JSX\"],\n },\n ],\n\n \"jsdoc/check-param-names\": \"error\",\n \"jsdoc/require-returns-type\": \"error\",\n \"jsdoc/valid-types\": \"error\",\n \"jsdoc/require-param-description\": \"error\",\n \"jsdoc/check-access\": \"error\",\n \"jsdoc/check-property-names\": \"error\",\n \"jsdoc/check-tag-names\": \"error\",\n \"jsdoc/check-types\": \"error\",\n \"jsdoc/check-values\": \"error\",\n \"jsdoc/check-alignment\": \"error\",\n \"jsdoc/empty-tags\": \"error\",\n \"jsdoc/implements-on-classes\": \"error\",\n \"jsdoc/multiline-blocks\": \"error\",\n \"jsdoc/no-multi-asterisks\": \"error\",\n \"jsdoc/require-property\": \"error\",\n \"jsdoc/require-property-description\": \"error\",\n \"jsdoc/require-property-name\": \"error\",\n \"jsdoc/require-property-type\": \"error\",\n \"jsdoc/require-returns-check\": \"error\",\n \"jsdoc/require-returns-description\": \"error\",\n \"jsdoc/require-yields\": \"error\",\n \"jsdoc/require-yields-check\": \"error\",\n};\n"]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.moduleBoundaryRules = void 0;
|
|
4
|
+
exports.moduleBoundaryRules = {
|
|
5
|
+
"@nx/enforce-module-boundaries": [
|
|
6
|
+
"error",
|
|
7
|
+
{
|
|
8
|
+
allow: [],
|
|
9
|
+
depConstraints: [
|
|
10
|
+
{
|
|
11
|
+
sourceTag: "type:app",
|
|
12
|
+
onlyDependOnLibsWithTags: ["type:extension", "type:react", "type:vanilla"],
|
|
13
|
+
bannedExternalImports: ["i18next", "react-i18next"],
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
sourceTag: "type:extension",
|
|
17
|
+
onlyDependOnLibsWithTags: ["type:react", "type:vanilla"],
|
|
18
|
+
bannedExternalImports: ["i18next", "react-i18next"],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
sourceTag: "type:react",
|
|
22
|
+
onlyDependOnLibsWithTags: ["type:react", "type:vanilla"],
|
|
23
|
+
bannedExternalImports: ["i18next", "react-i18next"],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
sourceTag: "type:vanilla",
|
|
27
|
+
onlyDependOnLibsWithTags: ["type:vanilla"],
|
|
28
|
+
bannedExternalImports: ["i18next", "react*"],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
sourceTag: "scope:app",
|
|
32
|
+
onlyDependOnLibsWithTags: ["scope:client", "scope:server"],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
sourceTag: "scope:client",
|
|
36
|
+
onlyDependOnLibsWithTags: ["scope:client"],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
sourceTag: "scope:tool",
|
|
40
|
+
onlyDependOnLibsWithTags: ["scope:tool"],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
sourceTag: "scope:server",
|
|
44
|
+
onlyDependOnLibsWithTags: ["scope:server"],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
sourceTag: "visibility:host",
|
|
48
|
+
onlyDependOnLibsWithTags: ["visibility:host", "visibility:shared"],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
sourceTag: "visibility:iris-app",
|
|
52
|
+
onlyDependOnLibsWithTags: ["visibility:iris-app", "visibility:shared"],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
sourceTag: "visibility:shared",
|
|
56
|
+
onlyDependOnLibsWithTags: ["visibility:shared"],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
sourceTag: "dependencies:no-deprecated",
|
|
60
|
+
notDependOnLibsWithTags: ["deprecated"],
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
sourceTag: "gql:internal",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
sourceTag: "gql:public",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
sourceTag: "tier1",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
sourceTag: "tier2",
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
sourceTag: "tier3",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
sourceTag: "tier4",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
sourceTag: "publish:npm",
|
|
82
|
+
onlyDependOnLibsWithTags: ["publish:npm"],
|
|
83
|
+
bannedExternalImports: ["@sentry/*"],
|
|
84
|
+
notDependOnLibsWithTags: ["deprecated"],
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
enforceBuildableLibDependency: true,
|
|
88
|
+
banTransitiveDependencies: true,
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=module-boundaries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-boundaries.js","sourceRoot":"","sources":["../../../../../../../../libs/eslint/plugin-trackunit/src/lib/config/fragments/module-boundaries.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAuB;IACrD,+BAA+B,EAAE;QAC/B,OAAO;QACP;YACE,KAAK,EAAE,EAAE;YAET,cAAc,EAAE;gBACd;oBACE,SAAS,EAAE,UAAU;oBACrB,wBAAwB,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,cAAc,CAAC;oBAC1E,qBAAqB,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;iBACpD;gBACD;oBACE,SAAS,EAAE,gBAAgB;oBAC3B,wBAAwB,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACxD,qBAAqB,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;iBACpD;gBACD;oBACE,SAAS,EAAE,YAAY;oBACvB,wBAAwB,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACxD,qBAAqB,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;iBACpD;gBACD;oBACE,SAAS,EAAE,cAAc;oBACzB,wBAAwB,EAAE,CAAC,cAAc,CAAC;oBAC1C,qBAAqB,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;iBAC7C;gBACD;oBACE,SAAS,EAAE,WAAW;oBACtB,wBAAwB,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;iBAC3D;gBACD;oBACE,SAAS,EAAE,cAAc;oBACzB,wBAAwB,EAAE,CAAC,cAAc,CAAC;iBAC3C;gBACD;oBACE,SAAS,EAAE,YAAY;oBACvB,wBAAwB,EAAE,CAAC,YAAY,CAAC;iBACzC;gBACD;oBACE,SAAS,EAAE,cAAc;oBACzB,wBAAwB,EAAE,CAAC,cAAc,CAAC;iBAC3C;gBACD;oBACE,SAAS,EAAE,iBAAiB;oBAC5B,wBAAwB,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;iBACnE;gBACD;oBACE,SAAS,EAAE,qBAAqB;oBAChC,wBAAwB,EAAE,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;iBACvE;gBACD;oBACE,SAAS,EAAE,mBAAmB;oBAC9B,wBAAwB,EAAE,CAAC,mBAAmB,CAAC;iBAChD;gBACD;oBACE,SAAS,EAAE,4BAA4B;oBACvC,uBAAuB,EAAE,CAAC,YAAY,CAAC;iBACxC;gBACD;oBACE,SAAS,EAAE,cAAc;iBAC1B;gBACD;oBACE,SAAS,EAAE,YAAY;iBACxB;gBACD;oBACE,SAAS,EAAE,OAAO;iBACnB;gBACD;oBACE,SAAS,EAAE,OAAO;iBACnB;gBACD;oBACE,SAAS,EAAE,OAAO;iBACnB;gBACD;oBACE,SAAS,EAAE,OAAO;iBACnB;gBACD;oBACE,SAAS,EAAE,aAAa;oBACxB,wBAAwB,EAAE,CAAC,aAAa,CAAC;oBACzC,qBAAqB,EAAE,CAAC,WAAW,CAAC;oBACpC,uBAAuB,EAAE,CAAC,YAAY,CAAC;iBACxC;aACF;YAED,6BAA6B,EAAE,IAAI;YACnC,yBAAyB,EAAE,IAAI;SAChC;KACF;CACF,CAAC","sourcesContent":["import type { Linter } from \"eslint\";\n\nexport const moduleBoundaryRules: Linter.RulesRecord = {\n \"@nx/enforce-module-boundaries\": [\n \"error\",\n {\n allow: [],\n\n depConstraints: [\n {\n sourceTag: \"type:app\",\n onlyDependOnLibsWithTags: [\"type:extension\", \"type:react\", \"type:vanilla\"],\n bannedExternalImports: [\"i18next\", \"react-i18next\"],\n },\n {\n sourceTag: \"type:extension\",\n onlyDependOnLibsWithTags: [\"type:react\", \"type:vanilla\"],\n bannedExternalImports: [\"i18next\", \"react-i18next\"],\n },\n {\n sourceTag: \"type:react\",\n onlyDependOnLibsWithTags: [\"type:react\", \"type:vanilla\"],\n bannedExternalImports: [\"i18next\", \"react-i18next\"],\n },\n {\n sourceTag: \"type:vanilla\",\n onlyDependOnLibsWithTags: [\"type:vanilla\"],\n bannedExternalImports: [\"i18next\", \"react*\"],\n },\n {\n sourceTag: \"scope:app\",\n onlyDependOnLibsWithTags: [\"scope:client\", \"scope:server\"],\n },\n {\n sourceTag: \"scope:client\",\n onlyDependOnLibsWithTags: [\"scope:client\"],\n },\n {\n sourceTag: \"scope:tool\",\n onlyDependOnLibsWithTags: [\"scope:tool\"],\n },\n {\n sourceTag: \"scope:server\",\n onlyDependOnLibsWithTags: [\"scope:server\"],\n },\n {\n sourceTag: \"visibility:host\",\n onlyDependOnLibsWithTags: [\"visibility:host\", \"visibility:shared\"],\n },\n {\n sourceTag: \"visibility:iris-app\",\n onlyDependOnLibsWithTags: [\"visibility:iris-app\", \"visibility:shared\"],\n },\n {\n sourceTag: \"visibility:shared\",\n onlyDependOnLibsWithTags: [\"visibility:shared\"],\n },\n {\n sourceTag: \"dependencies:no-deprecated\",\n notDependOnLibsWithTags: [\"deprecated\"],\n },\n {\n sourceTag: \"gql:internal\",\n },\n {\n sourceTag: \"gql:public\",\n },\n {\n sourceTag: \"tier1\",\n },\n {\n sourceTag: \"tier2\",\n },\n {\n sourceTag: \"tier3\",\n },\n {\n sourceTag: \"tier4\",\n },\n {\n sourceTag: \"publish:npm\",\n onlyDependOnLibsWithTags: [\"publish:npm\"],\n bannedExternalImports: [\"@sentry/*\"],\n notDependOnLibsWithTags: [\"deprecated\"],\n },\n ],\n\n enforceBuildableLibDependency: true,\n banTransitiveDependencies: true,\n },\n ],\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Linter } from "eslint";
|
|
2
|
+
export declare const reactRules: Linter.RulesRecord;
|
|
3
|
+
export declare const reactCustomRules: Linter.RulesRecord;
|
|
4
|
+
export declare const reactTestingLibraryOverrides: Linter.Config;
|
|
5
|
+
export declare const reactStoryOverrides: Linter.Config;
|