lint-suite 0.0.10 → 0.0.12

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/index.cjs CHANGED
@@ -30,27 +30,275 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // packages/lint-suite/src/index.ts
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
+ angular: () => angular,
34
+ angularTemplate: () => angularTemplate,
33
35
  base: () => base,
34
36
  javascript: () => javascript,
37
+ jest: () => jest,
38
+ json: () => json,
39
+ rxjs: () => rxjs,
40
+ storybook: () => storybook,
35
41
  typescript: () => typescript
36
42
  });
37
43
  module.exports = __toCommonJS(src_exports);
38
44
 
39
- // packages/lint-suite/src/lib/base.ts
45
+ // packages/lint-suite/src/lib/angular-template.ts
40
46
  var import_eslint_plugin = __toESM(require("@nx/eslint-plugin"), 1);
41
- var base = [...import_eslint_plugin.default.configs["flat/base"]];
47
+ var angularTemplate = [
48
+ ...import_eslint_plugin.default.configs["flat/angular-template"],
49
+ {
50
+ files: ["**/*.html"],
51
+ rules: {
52
+ "@angular-eslint/template/button-has-type": "error",
53
+ "@angular-eslint/template/no-positive-tabindex": "error",
54
+ "@angular-eslint/template/valid-aria": "error",
55
+ "@angular-eslint/template/alt-text": "error",
56
+ "@angular-eslint/template/elements-content": "error",
57
+ "@angular-eslint/template/click-events-have-key-events": "error",
58
+ "@angular-eslint/template/mouse-events-have-key-events": "error",
59
+ "@angular-eslint/template/table-scope": "error",
60
+ "@angular-eslint/template/no-autofocus": "error",
61
+ "@angular-eslint/template/no-distracting-elements": "error",
62
+ "@angular-eslint/template/prefer-control-flow": "error",
63
+ "@angular-eslint/template/prefer-self-closing-tags": "error",
64
+ "@angular-eslint/template/prefer-ngsrc": "error",
65
+ "@angular-eslint/template/attributes-order": [
66
+ "error",
67
+ {
68
+ alphabetical: true,
69
+ order: [
70
+ "STRUCTURAL_DIRECTIVE",
71
+ // e.g. `*ngIf="true"`, `*ngFor="let item of items"`
72
+ "TEMPLATE_REFERENCE",
73
+ // e.g. `<input #inputRef>`
74
+ "INPUT_BINDING",
75
+ // e.g. `[id]="3"`, `[attr.colspan]="colspan"`, [style.width.%]="100", [@triggerName]="expression", `bind-id="handleChange()"`
76
+ "TWO_WAY_BINDING",
77
+ // e.g. `[(id)]="id"`, `bindon-id="id"
78
+ "ATTRIBUTE_BINDING",
79
+ // e.g. `<input required>`, `id="3"`
80
+ "OUTPUT_BINDING"
81
+ // e.g. `(idChange)="handleChange()"`, `on-id="handleChange()"`
82
+ ]
83
+ }
84
+ ]
85
+ }
86
+ }
87
+ ];
42
88
 
43
- // packages/lint-suite/src/lib/typescript.ts
89
+ // packages/lint-suite/src/lib/angular.ts
44
90
  var import_eslint_plugin2 = __toESM(require("@nx/eslint-plugin"), 1);
45
- var typescript = [...import_eslint_plugin2.default.configs["flat/typescript"]];
91
+ var angular = [
92
+ ...import_eslint_plugin2.default.configs["flat/angular"],
93
+ {
94
+ files: ["**/*.ts"],
95
+ rules: {
96
+ "@angular-eslint/prefer-on-push-component-change-detection": "error"
97
+ }
98
+ }
99
+ ];
46
100
 
47
- // packages/lint-suite/src/lib/javascript.ts
101
+ // packages/lint-suite/src/lib/base.ts
48
102
  var import_eslint_plugin3 = __toESM(require("@nx/eslint-plugin"), 1);
49
- var javascript = [...import_eslint_plugin3.default.configs["flat/javascript"]];
103
+ var import_eslint_plugin_import = __toESM(require("eslint-plugin-import"), 1);
104
+ var import_eslint_plugin4 = __toESM(require("@stylistic/eslint-plugin"), 1);
105
+ var base = [
106
+ ...import_eslint_plugin3.default.configs["flat/base"],
107
+ import_eslint_plugin_import.default.flatConfigs.recommended,
108
+ import_eslint_plugin4.default.configs.recommended,
109
+ {
110
+ files: ["**/*.js", "**/*.ts", "**/*.html"],
111
+ plugins: { "@stylistic": import_eslint_plugin4.default },
112
+ rules: {
113
+ // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML
114
+ "no-console": "warn",
115
+ "max-len": [
116
+ "error",
117
+ {
118
+ code: 135,
119
+ ignoreComments: true
120
+ }
121
+ ],
122
+ "max-lines": [
123
+ "error",
124
+ {
125
+ max: 150,
126
+ skipBlankLines: true,
127
+ skipComments: true
128
+ }
129
+ ],
130
+ "spaced-comment": [
131
+ 2,
132
+ "always",
133
+ {
134
+ block: {
135
+ exceptions: ["*"]
136
+ }
137
+ }
138
+ ],
139
+ "@stylistic/comma-dangle": [
140
+ "error",
141
+ {
142
+ functions: "never",
143
+ arrays: "always-multiline",
144
+ exports: "always-multiline",
145
+ imports: "always-multiline",
146
+ objects: "always-multiline",
147
+ enums: "always-multiline"
148
+ }
149
+ ],
150
+ "@stylistic/indent": [
151
+ "error",
152
+ 2,
153
+ {
154
+ offsetTernaryExpressions: true,
155
+ SwitchCase: 1,
156
+ ignoredNodes: [
157
+ "TSTypeParameterInstantiation",
158
+ "FunctionExpression > .params > :matches(Decorator, :not(:first-child))"
159
+ ]
160
+ }
161
+ ]
162
+ }
163
+ }
164
+ ];
165
+
166
+ // packages/lint-suite/src/lib/typescript.ts
167
+ var import_eslint_plugin5 = __toESM(require("@nx/eslint-plugin"), 1);
168
+ var import_eslint_plugin_import2 = __toESM(require("eslint-plugin-import"), 1);
169
+ var typescript = [
170
+ ...import_eslint_plugin5.default.configs["flat/typescript"],
171
+ import_eslint_plugin_import2.default.flatConfigs.typescript,
172
+ {
173
+ languageOptions: {
174
+ parserOptions: {
175
+ projectService: true
176
+ }
177
+ }
178
+ },
179
+ {
180
+ files: ["**/*.ts"],
181
+ rules: {
182
+ "@typescript-eslint/explicit-member-accessibility": "error",
183
+ "@typescript-eslint/consistent-type-imports": "error",
184
+ "@typescript-eslint/explicit-function-return-type": "warn",
185
+ "@typescript-eslint/prefer-readonly": "error",
186
+ "@typescript-eslint/no-empty-function": "error",
187
+ "sort-imports": [
188
+ "error",
189
+ {
190
+ ignoreCase: false,
191
+ ignoreDeclarationSort: true,
192
+ ignoreMemberSort: false,
193
+ memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
194
+ allowSeparatedGroups: true
195
+ }
196
+ ],
197
+ "class-methods-use-this": "error"
198
+ }
199
+ },
200
+ {
201
+ files: ["**/*.action.ts"],
202
+ rules: {
203
+ "max-classes-per-file": "off"
204
+ }
205
+ },
206
+ {
207
+ files: ["**/*.state.ts"],
208
+ rules: {
209
+ "class-methods-use-this": "off"
210
+ }
211
+ },
212
+ {
213
+ files: ["**/*.spec.ts"],
214
+ rules: {
215
+ "@typescript-eslint/dot-notation": "off",
216
+ "max-lines": [
217
+ "error",
218
+ {
219
+ max: 300,
220
+ skipBlankLines: true,
221
+ skipComments: true
222
+ }
223
+ ]
224
+ }
225
+ }
226
+ ];
227
+
228
+ // packages/lint-suite/src/lib/jest.ts
229
+ var import_eslint_plugin_jest = __toESM(require("eslint-plugin-jest"), 1);
230
+ var jest = [
231
+ {
232
+ files: ["**/*.spec.ts"],
233
+ ...import_eslint_plugin_jest.default.configs["flat/recommended"],
234
+ rules: {
235
+ ...import_eslint_plugin_jest.default.configs["flat/recommended"].rules,
236
+ ...import_eslint_plugin_jest.default.configs["flat/style"].rules,
237
+ "jest/no-done-callback": "off"
238
+ }
239
+ }
240
+ ];
241
+
242
+ // packages/lint-suite/src/lib/json.ts
243
+ var import_eslint_plugin_json = __toESM(require("eslint-plugin-json"), 1);
244
+ var json = [
245
+ {
246
+ files: ["**/*.json"],
247
+ ...import_eslint_plugin_json.default.configs.recommended
248
+ }
249
+ ];
250
+
251
+ // packages/lint-suite/src/lib/rxjs.ts
252
+ var import_eslint_plugin_rxjs = __toESM(require("@smarttools/eslint-plugin-rxjs"), 1);
253
+ var rxjs = [
254
+ import_eslint_plugin_rxjs.default.configs.recommended,
255
+ {
256
+ files: ["**/*.ts"],
257
+ plugins: { rxjs: import_eslint_plugin_rxjs.default },
258
+ rules: {
259
+ "rxjs/prefer-observer": "error",
260
+ "rxjs/finnish": "warn",
261
+ "rxjs/no-ignored-error": "warn",
262
+ "rxjs/no-unsafe-switchmap": "error",
263
+ "rxjs/no-unsafe-takeuntil": "error",
264
+ "rxjs/no-unsafe-catch": "error",
265
+ "rxjs/no-unsafe-first": "error",
266
+ "rxjs/no-topromise": "error",
267
+ "rxjs/throw-error": "error",
268
+ "rxjs/no-async-subscribe": "off"
269
+ }
270
+ },
271
+ {
272
+ files: ["**/*.spec.ts"],
273
+ rules: {
274
+ "rxjs/no-ignored-subscription": "off"
275
+ }
276
+ }
277
+ ];
278
+
279
+ // packages/lint-suite/src/lib/storybook.ts
280
+ var import_eslint_plugin_storybook = __toESM(require("eslint-plugin-storybook"), 1);
281
+ var storybook = [
282
+ ...import_eslint_plugin_storybook.default.configs["flat/recommended"],
283
+ {
284
+ ignores: ["!.storybook"],
285
+ files: ["**/*.stories.ts"]
286
+ }
287
+ ];
288
+
289
+ // packages/lint-suite/src/lib/javascript.ts
290
+ var import_eslint_plugin6 = __toESM(require("@nx/eslint-plugin"), 1);
291
+ var javascript = [...import_eslint_plugin6.default.configs["flat/javascript"]];
50
292
  // Annotate the CommonJS export names for ESM import in node:
51
293
  0 && (module.exports = {
294
+ angular,
295
+ angularTemplate,
52
296
  base,
53
297
  javascript,
298
+ jest,
299
+ json,
300
+ rxjs,
301
+ storybook,
54
302
  typescript
55
303
  });
56
304
  //# sourceMappingURL=index.cjs.map
package/index.cjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../packages/lint-suite/src/index.ts", "../../../../packages/lint-suite/src/lib/base.ts", "../../../../packages/lint-suite/src/lib/typescript.ts", "../../../../packages/lint-suite/src/lib/javascript.ts"],
4
- "sourcesContent": ["export { base } from './lib/base.js';\nexport { typescript } from './lib/typescript.js';\nexport { javascript } from './lib/javascript.js';\n", "import nx from '@nx/eslint-plugin';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const base: Linter.Config[] = [...nx.configs['flat/base']];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const typescript = [...nx.configs['flat/typescript']];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,2BAAe;AAGR,IAAM,OAAwB,CAAC,GAAG,qBAAAA,QAAG,QAAQ,WAAW,CAAC;;;ACHhE,IAAAC,wBAAe;AAER,IAAM,aAAa,CAAC,GAAG,sBAAAC,QAAG,QAAQ,iBAAiB,CAAC;;;ACF3D,IAAAC,wBAAe;AAER,IAAM,aAAa,CAAC,GAAG,sBAAAC,QAAG,QAAQ,iBAAiB,CAAC;",
6
- "names": ["nx", "import_eslint_plugin", "nx", "import_eslint_plugin", "nx"]
3
+ "sources": ["../../../../packages/lint-suite/src/index.ts", "../../../../packages/lint-suite/src/lib/angular-template.ts", "../../../../packages/lint-suite/src/lib/angular.ts", "../../../../packages/lint-suite/src/lib/base.ts", "../../../../packages/lint-suite/src/lib/typescript.ts", "../../../../packages/lint-suite/src/lib/jest.ts", "../../../../packages/lint-suite/src/lib/json.ts", "../../../../packages/lint-suite/src/lib/rxjs.ts", "../../../../packages/lint-suite/src/lib/storybook.ts", "../../../../packages/lint-suite/src/lib/javascript.ts"],
4
+ "sourcesContent": ["export { angularTemplate } from './lib/angular-template.js';\r\nexport { angular } from './lib/angular.js';\r\nexport { base } from './lib/base.js';\r\nexport { typescript } from './lib/typescript.js';\r\nexport { jest } from './lib/jest.js';\r\nexport { json } from './lib/json.js';\r\nexport { rxjs } from './lib/rxjs.js';\r\nexport { storybook } from './lib/storybook.js';\r\nexport { javascript } from './lib/javascript.js';\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angularTemplate = [\r\n ...nx.configs['flat/angular-template'],\r\n {\r\n files: ['**/*.html'],\r\n rules: {\r\n '@angular-eslint/template/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n importPlugin.flatConfigs.recommended,\r\n stylistic.configs.recommended,\r\n {\r\n files: ['**/*.js', '**/*.ts', '**/*.html'],\r\n plugins: { '@stylistic': stylistic },\r\n rules: {\r\n // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML\r\n 'no-console': 'warn',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true,\r\n },\r\n ],\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 150,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n 'spaced-comment': [\r\n 2,\r\n 'always',\r\n {\r\n block: {\r\n exceptions: ['*'],\r\n },\r\n },\r\n ],\r\n '@stylistic/comma-dangle': [\r\n 'error',\r\n {\r\n functions: 'never',\r\n arrays: 'always-multiline',\r\n exports: 'always-multiline',\r\n imports: 'always-multiline',\r\n objects: 'always-multiline',\r\n enums: 'always-multiline',\r\n },\r\n ],\r\n '@stylistic/indent': [\r\n 'error',\r\n 2,\r\n {\r\n offsetTernaryExpressions: true,\r\n SwitchCase: 1,\r\n ignoredNodes: [\r\n 'TSTypeParameterInstantiation',\r\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))',\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n ...nx.configs['flat/typescript'],\r\n importPlugin.flatConfigs.typescript,\r\n {\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n },\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/prefer-readonly': 'error',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n 'sort-imports': [\r\n 'error',\r\n {\r\n ignoreCase: false,\r\n ignoreDeclarationSort: true,\r\n ignoreMemberSort: false,\r\n memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],\r\n allowSeparatedGroups: true,\r\n },\r\n ],\r\n 'class-methods-use-this': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts'],\r\n rules: {\r\n '@typescript-eslint/dot-notation': 'off',\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts'],\r\n ...jestEslint.configs['flat/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].rules,\r\n 'jest/no-done-callback': 'off',\r\n },\r\n },\r\n];\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended,\r\n },\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\r\n rxjsEslint.configs.recommended,\r\n {\r\n files: ['**/*.ts'],\r\n plugins: { rxjs: rxjsEslint },\r\n rules: {\r\n 'rxjs/prefer-observer': 'error',\r\n 'rxjs/finnish': 'warn',\r\n 'rxjs/no-ignored-error': 'warn',\r\n 'rxjs/no-unsafe-switchmap': 'error',\r\n 'rxjs/no-unsafe-takeuntil': 'error',\r\n 'rxjs/no-unsafe-catch': 'error',\r\n 'rxjs/no-unsafe-first': 'error',\r\n 'rxjs/no-topromise': 'error',\r\n 'rxjs/throw-error': 'error',\r\n 'rxjs/no-async-subscribe': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off',\r\n },\r\n },\r\n];\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
5
+ "mappings": "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",
6
+ "names": ["nx", "import_eslint_plugin", "nx", "import_eslint_plugin", "nx", "importPlugin", "stylistic", "import_eslint_plugin", "import_eslint_plugin_import", "nx", "importPlugin", "jestEslint", "jsonEslint", "rxjsEslint", "storybookEslint", "import_eslint_plugin", "nx"]
7
7
  }
package/index.d.ts CHANGED
@@ -1,4 +1,10 @@
1
+ export { angularTemplate } from './lib/angular-template.js';
2
+ export { angular } from './lib/angular.js';
1
3
  export { base } from './lib/base.js';
2
4
  export { typescript } from './lib/typescript.js';
5
+ export { jest } from './lib/jest.js';
6
+ export { json } from './lib/json.js';
7
+ export { rxjs } from './lib/rxjs.js';
8
+ export { storybook } from './lib/storybook.js';
3
9
  export { javascript } from './lib/javascript.js';
4
10
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/lint-suite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/lint-suite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
package/index.js CHANGED
@@ -1,17 +1,259 @@
1
- // packages/lint-suite/src/lib/base.ts
1
+ // packages/lint-suite/src/lib/angular-template.ts
2
2
  import nx from "@nx/eslint-plugin";
3
- var base = [...nx.configs["flat/base"]];
3
+ var angularTemplate = [
4
+ ...nx.configs["flat/angular-template"],
5
+ {
6
+ files: ["**/*.html"],
7
+ rules: {
8
+ "@angular-eslint/template/button-has-type": "error",
9
+ "@angular-eslint/template/no-positive-tabindex": "error",
10
+ "@angular-eslint/template/valid-aria": "error",
11
+ "@angular-eslint/template/alt-text": "error",
12
+ "@angular-eslint/template/elements-content": "error",
13
+ "@angular-eslint/template/click-events-have-key-events": "error",
14
+ "@angular-eslint/template/mouse-events-have-key-events": "error",
15
+ "@angular-eslint/template/table-scope": "error",
16
+ "@angular-eslint/template/no-autofocus": "error",
17
+ "@angular-eslint/template/no-distracting-elements": "error",
18
+ "@angular-eslint/template/prefer-control-flow": "error",
19
+ "@angular-eslint/template/prefer-self-closing-tags": "error",
20
+ "@angular-eslint/template/prefer-ngsrc": "error",
21
+ "@angular-eslint/template/attributes-order": [
22
+ "error",
23
+ {
24
+ alphabetical: true,
25
+ order: [
26
+ "STRUCTURAL_DIRECTIVE",
27
+ // e.g. `*ngIf="true"`, `*ngFor="let item of items"`
28
+ "TEMPLATE_REFERENCE",
29
+ // e.g. `<input #inputRef>`
30
+ "INPUT_BINDING",
31
+ // e.g. `[id]="3"`, `[attr.colspan]="colspan"`, [style.width.%]="100", [@triggerName]="expression", `bind-id="handleChange()"`
32
+ "TWO_WAY_BINDING",
33
+ // e.g. `[(id)]="id"`, `bindon-id="id"
34
+ "ATTRIBUTE_BINDING",
35
+ // e.g. `<input required>`, `id="3"`
36
+ "OUTPUT_BINDING"
37
+ // e.g. `(idChange)="handleChange()"`, `on-id="handleChange()"`
38
+ ]
39
+ }
40
+ ]
41
+ }
42
+ }
43
+ ];
4
44
 
5
- // packages/lint-suite/src/lib/typescript.ts
45
+ // packages/lint-suite/src/lib/angular.ts
6
46
  import nx2 from "@nx/eslint-plugin";
7
- var typescript = [...nx2.configs["flat/typescript"]];
47
+ var angular = [
48
+ ...nx2.configs["flat/angular"],
49
+ {
50
+ files: ["**/*.ts"],
51
+ rules: {
52
+ "@angular-eslint/prefer-on-push-component-change-detection": "error"
53
+ }
54
+ }
55
+ ];
8
56
 
9
- // packages/lint-suite/src/lib/javascript.ts
57
+ // packages/lint-suite/src/lib/base.ts
10
58
  import nx3 from "@nx/eslint-plugin";
11
- var javascript = [...nx3.configs["flat/javascript"]];
59
+ import importPlugin from "eslint-plugin-import";
60
+ import stylistic from "@stylistic/eslint-plugin";
61
+ var base = [
62
+ ...nx3.configs["flat/base"],
63
+ importPlugin.flatConfigs.recommended,
64
+ stylistic.configs.recommended,
65
+ {
66
+ files: ["**/*.js", "**/*.ts", "**/*.html"],
67
+ plugins: { "@stylistic": stylistic },
68
+ rules: {
69
+ // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML
70
+ "no-console": "warn",
71
+ "max-len": [
72
+ "error",
73
+ {
74
+ code: 135,
75
+ ignoreComments: true
76
+ }
77
+ ],
78
+ "max-lines": [
79
+ "error",
80
+ {
81
+ max: 150,
82
+ skipBlankLines: true,
83
+ skipComments: true
84
+ }
85
+ ],
86
+ "spaced-comment": [
87
+ 2,
88
+ "always",
89
+ {
90
+ block: {
91
+ exceptions: ["*"]
92
+ }
93
+ }
94
+ ],
95
+ "@stylistic/comma-dangle": [
96
+ "error",
97
+ {
98
+ functions: "never",
99
+ arrays: "always-multiline",
100
+ exports: "always-multiline",
101
+ imports: "always-multiline",
102
+ objects: "always-multiline",
103
+ enums: "always-multiline"
104
+ }
105
+ ],
106
+ "@stylistic/indent": [
107
+ "error",
108
+ 2,
109
+ {
110
+ offsetTernaryExpressions: true,
111
+ SwitchCase: 1,
112
+ ignoredNodes: [
113
+ "TSTypeParameterInstantiation",
114
+ "FunctionExpression > .params > :matches(Decorator, :not(:first-child))"
115
+ ]
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ ];
121
+
122
+ // packages/lint-suite/src/lib/typescript.ts
123
+ import nx4 from "@nx/eslint-plugin";
124
+ import importPlugin2 from "eslint-plugin-import";
125
+ var typescript = [
126
+ ...nx4.configs["flat/typescript"],
127
+ importPlugin2.flatConfigs.typescript,
128
+ {
129
+ languageOptions: {
130
+ parserOptions: {
131
+ projectService: true
132
+ }
133
+ }
134
+ },
135
+ {
136
+ files: ["**/*.ts"],
137
+ rules: {
138
+ "@typescript-eslint/explicit-member-accessibility": "error",
139
+ "@typescript-eslint/consistent-type-imports": "error",
140
+ "@typescript-eslint/explicit-function-return-type": "warn",
141
+ "@typescript-eslint/prefer-readonly": "error",
142
+ "@typescript-eslint/no-empty-function": "error",
143
+ "sort-imports": [
144
+ "error",
145
+ {
146
+ ignoreCase: false,
147
+ ignoreDeclarationSort: true,
148
+ ignoreMemberSort: false,
149
+ memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
150
+ allowSeparatedGroups: true
151
+ }
152
+ ],
153
+ "class-methods-use-this": "error"
154
+ }
155
+ },
156
+ {
157
+ files: ["**/*.action.ts"],
158
+ rules: {
159
+ "max-classes-per-file": "off"
160
+ }
161
+ },
162
+ {
163
+ files: ["**/*.state.ts"],
164
+ rules: {
165
+ "class-methods-use-this": "off"
166
+ }
167
+ },
168
+ {
169
+ files: ["**/*.spec.ts"],
170
+ rules: {
171
+ "@typescript-eslint/dot-notation": "off",
172
+ "max-lines": [
173
+ "error",
174
+ {
175
+ max: 300,
176
+ skipBlankLines: true,
177
+ skipComments: true
178
+ }
179
+ ]
180
+ }
181
+ }
182
+ ];
183
+
184
+ // packages/lint-suite/src/lib/jest.ts
185
+ import jestEslint from "eslint-plugin-jest";
186
+ var jest = [
187
+ {
188
+ files: ["**/*.spec.ts"],
189
+ ...jestEslint.configs["flat/recommended"],
190
+ rules: {
191
+ ...jestEslint.configs["flat/recommended"].rules,
192
+ ...jestEslint.configs["flat/style"].rules,
193
+ "jest/no-done-callback": "off"
194
+ }
195
+ }
196
+ ];
197
+
198
+ // packages/lint-suite/src/lib/json.ts
199
+ import jsonEslint from "eslint-plugin-json";
200
+ var json = [
201
+ {
202
+ files: ["**/*.json"],
203
+ ...jsonEslint.configs.recommended
204
+ }
205
+ ];
206
+
207
+ // packages/lint-suite/src/lib/rxjs.ts
208
+ import rxjsEslint from "@smarttools/eslint-plugin-rxjs";
209
+ var rxjs = [
210
+ rxjsEslint.configs.recommended,
211
+ {
212
+ files: ["**/*.ts"],
213
+ plugins: { rxjs: rxjsEslint },
214
+ rules: {
215
+ "rxjs/prefer-observer": "error",
216
+ "rxjs/finnish": "warn",
217
+ "rxjs/no-ignored-error": "warn",
218
+ "rxjs/no-unsafe-switchmap": "error",
219
+ "rxjs/no-unsafe-takeuntil": "error",
220
+ "rxjs/no-unsafe-catch": "error",
221
+ "rxjs/no-unsafe-first": "error",
222
+ "rxjs/no-topromise": "error",
223
+ "rxjs/throw-error": "error",
224
+ "rxjs/no-async-subscribe": "off"
225
+ }
226
+ },
227
+ {
228
+ files: ["**/*.spec.ts"],
229
+ rules: {
230
+ "rxjs/no-ignored-subscription": "off"
231
+ }
232
+ }
233
+ ];
234
+
235
+ // packages/lint-suite/src/lib/storybook.ts
236
+ import storybookEslint from "eslint-plugin-storybook";
237
+ var storybook = [
238
+ ...storybookEslint.configs["flat/recommended"],
239
+ {
240
+ ignores: ["!.storybook"],
241
+ files: ["**/*.stories.ts"]
242
+ }
243
+ ];
244
+
245
+ // packages/lint-suite/src/lib/javascript.ts
246
+ import nx5 from "@nx/eslint-plugin";
247
+ var javascript = [...nx5.configs["flat/javascript"]];
12
248
  export {
249
+ angular,
250
+ angularTemplate,
13
251
  base,
14
252
  javascript,
253
+ jest,
254
+ json,
255
+ rxjs,
256
+ storybook,
15
257
  typescript
16
258
  };
17
259
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../packages/lint-suite/src/lib/base.ts", "../../../../packages/lint-suite/src/lib/typescript.ts", "../../../../packages/lint-suite/src/lib/javascript.ts"],
4
- "sourcesContent": ["import nx from '@nx/eslint-plugin';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const base: Linter.Config[] = [...nx.configs['flat/base']];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const typescript = [...nx.configs['flat/typescript']];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
5
- "mappings": ";AAAA,OAAO,QAAQ;AAGR,IAAM,OAAwB,CAAC,GAAG,GAAG,QAAQ,WAAW,CAAC;;;ACHhE,OAAOA,SAAQ;AAER,IAAM,aAAa,CAAC,GAAGA,IAAG,QAAQ,iBAAiB,CAAC;;;ACF3D,OAAOC,SAAQ;AAER,IAAM,aAAa,CAAC,GAAGA,IAAG,QAAQ,iBAAiB,CAAC;",
6
- "names": ["nx", "nx"]
3
+ "sources": ["../../../../packages/lint-suite/src/lib/angular-template.ts", "../../../../packages/lint-suite/src/lib/angular.ts", "../../../../packages/lint-suite/src/lib/base.ts", "../../../../packages/lint-suite/src/lib/typescript.ts", "../../../../packages/lint-suite/src/lib/jest.ts", "../../../../packages/lint-suite/src/lib/json.ts", "../../../../packages/lint-suite/src/lib/rxjs.ts", "../../../../packages/lint-suite/src/lib/storybook.ts", "../../../../packages/lint-suite/src/lib/javascript.ts"],
4
+ "sourcesContent": ["import nx from '@nx/eslint-plugin';\r\n\r\nexport const angularTemplate = [\r\n ...nx.configs['flat/angular-template'],\r\n {\r\n files: ['**/*.html'],\r\n rules: {\r\n '@angular-eslint/template/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n importPlugin.flatConfigs.recommended,\r\n stylistic.configs.recommended,\r\n {\r\n files: ['**/*.js', '**/*.ts', '**/*.html'],\r\n plugins: { '@stylistic': stylistic },\r\n rules: {\r\n // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML\r\n 'no-console': 'warn',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true,\r\n },\r\n ],\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 150,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n 'spaced-comment': [\r\n 2,\r\n 'always',\r\n {\r\n block: {\r\n exceptions: ['*'],\r\n },\r\n },\r\n ],\r\n '@stylistic/comma-dangle': [\r\n 'error',\r\n {\r\n functions: 'never',\r\n arrays: 'always-multiline',\r\n exports: 'always-multiline',\r\n imports: 'always-multiline',\r\n objects: 'always-multiline',\r\n enums: 'always-multiline',\r\n },\r\n ],\r\n '@stylistic/indent': [\r\n 'error',\r\n 2,\r\n {\r\n offsetTernaryExpressions: true,\r\n SwitchCase: 1,\r\n ignoredNodes: [\r\n 'TSTypeParameterInstantiation',\r\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))',\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n ...nx.configs['flat/typescript'],\r\n importPlugin.flatConfigs.typescript,\r\n {\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n },\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/prefer-readonly': 'error',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n 'sort-imports': [\r\n 'error',\r\n {\r\n ignoreCase: false,\r\n ignoreDeclarationSort: true,\r\n ignoreMemberSort: false,\r\n memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],\r\n allowSeparatedGroups: true,\r\n },\r\n ],\r\n 'class-methods-use-this': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts'],\r\n rules: {\r\n '@typescript-eslint/dot-notation': 'off',\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts'],\r\n ...jestEslint.configs['flat/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].rules,\r\n 'jest/no-done-callback': 'off',\r\n },\r\n },\r\n];\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended,\r\n },\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\r\n rxjsEslint.configs.recommended,\r\n {\r\n files: ['**/*.ts'],\r\n plugins: { rxjs: rxjsEslint },\r\n rules: {\r\n 'rxjs/prefer-observer': 'error',\r\n 'rxjs/finnish': 'warn',\r\n 'rxjs/no-ignored-error': 'warn',\r\n 'rxjs/no-unsafe-switchmap': 'error',\r\n 'rxjs/no-unsafe-takeuntil': 'error',\r\n 'rxjs/no-unsafe-catch': 'error',\r\n 'rxjs/no-unsafe-first': 'error',\r\n 'rxjs/no-topromise': 'error',\r\n 'rxjs/throw-error': 'error',\r\n 'rxjs/no-async-subscribe': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off',\r\n },\r\n },\r\n];\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
5
+ "mappings": "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",
6
+ "names": ["nx", "nx", "nx", "importPlugin", "nx"]
7
7
  }
@@ -0,0 +1,23 @@
1
+ export declare const angularTemplate: (import("@typescript-eslint/utils/ts-eslint").FlatConfig.Config | {
2
+ files: string[];
3
+ rules: {
4
+ '@angular-eslint/template/button-has-type': string;
5
+ '@angular-eslint/template/no-positive-tabindex': string;
6
+ '@angular-eslint/template/valid-aria': string;
7
+ '@angular-eslint/template/alt-text': string;
8
+ '@angular-eslint/template/elements-content': string;
9
+ '@angular-eslint/template/click-events-have-key-events': string;
10
+ '@angular-eslint/template/mouse-events-have-key-events': string;
11
+ '@angular-eslint/template/table-scope': string;
12
+ '@angular-eslint/template/no-autofocus': string;
13
+ '@angular-eslint/template/no-distracting-elements': string;
14
+ '@angular-eslint/template/prefer-control-flow': string;
15
+ '@angular-eslint/template/prefer-self-closing-tags': string;
16
+ '@angular-eslint/template/prefer-ngsrc': string;
17
+ '@angular-eslint/template/attributes-order': (string | {
18
+ alphabetical: boolean;
19
+ order: string[];
20
+ })[];
21
+ };
22
+ })[];
23
+ //# sourceMappingURL=angular-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular-template.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/angular-template.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;IAkC3B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const angular: (import("@typescript-eslint/utils/ts-eslint").FlatConfig.Config | {
2
+ files: string[];
3
+ rules: {
4
+ '@angular-eslint/prefer-on-push-component-change-detection': string;
5
+ };
6
+ })[];
7
+ //# sourceMappingURL=angular.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/angular.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;IAQnB,CAAC"}
package/lib/base.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/base.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAiC,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EA2D/B,CAAC"}
package/lib/jest.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { Linter } from 'eslint';
2
+ export declare const jest: Linter.Config[];
3
+ //# sourceMappingURL=jest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/jest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAU/B,CAAC"}
package/lib/json.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { Linter } from 'eslint';
2
+ export declare const json: Linter.Config[];
3
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/json.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAK/B,CAAC"}
package/lib/rxjs.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { Linter } from 'eslint';
2
+ export declare const rxjs: Linter.Config[];
3
+ //# sourceMappingURL=rxjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxjs.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/rxjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAwB/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Linter } from 'eslint';
2
+ export declare const storybook: Linter.Config[];
3
+ //# sourceMappingURL=storybook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storybook.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/storybook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAMpC,CAAC"}
@@ -1,2 +1,68 @@
1
- export declare const typescript: import("@typescript-eslint/utils/ts-eslint").FlatConfig.Config[];
1
+ export declare const typescript: (import("@typescript-eslint/utils/ts-eslint").FlatConfig.Config | import("eslint").Linter.FlatConfig | {
2
+ files: string[];
3
+ rules: {
4
+ '@typescript-eslint/explicit-member-accessibility': string;
5
+ '@typescript-eslint/consistent-type-imports': string;
6
+ '@typescript-eslint/explicit-function-return-type': string;
7
+ '@typescript-eslint/prefer-readonly': string;
8
+ '@typescript-eslint/no-empty-function': string;
9
+ 'sort-imports': (string | {
10
+ ignoreCase: boolean;
11
+ ignoreDeclarationSort: boolean;
12
+ ignoreMemberSort: boolean;
13
+ memberSyntaxSortOrder: string[];
14
+ allowSeparatedGroups: boolean;
15
+ })[];
16
+ 'class-methods-use-this': string;
17
+ 'max-classes-per-file'?: undefined;
18
+ '@typescript-eslint/dot-notation'?: undefined;
19
+ 'max-lines'?: undefined;
20
+ };
21
+ } | {
22
+ files: string[];
23
+ rules: {
24
+ 'max-classes-per-file': string;
25
+ '@typescript-eslint/explicit-member-accessibility'?: undefined;
26
+ '@typescript-eslint/consistent-type-imports'?: undefined;
27
+ '@typescript-eslint/explicit-function-return-type'?: undefined;
28
+ '@typescript-eslint/prefer-readonly'?: undefined;
29
+ '@typescript-eslint/no-empty-function'?: undefined;
30
+ 'sort-imports'?: undefined;
31
+ 'class-methods-use-this'?: undefined;
32
+ '@typescript-eslint/dot-notation'?: undefined;
33
+ 'max-lines'?: undefined;
34
+ };
35
+ } | {
36
+ files: string[];
37
+ rules: {
38
+ 'class-methods-use-this': string;
39
+ '@typescript-eslint/explicit-member-accessibility'?: undefined;
40
+ '@typescript-eslint/consistent-type-imports'?: undefined;
41
+ '@typescript-eslint/explicit-function-return-type'?: undefined;
42
+ '@typescript-eslint/prefer-readonly'?: undefined;
43
+ '@typescript-eslint/no-empty-function'?: undefined;
44
+ 'sort-imports'?: undefined;
45
+ 'max-classes-per-file'?: undefined;
46
+ '@typescript-eslint/dot-notation'?: undefined;
47
+ 'max-lines'?: undefined;
48
+ };
49
+ } | {
50
+ files: string[];
51
+ rules: {
52
+ '@typescript-eslint/dot-notation': string;
53
+ 'max-lines': (string | {
54
+ max: number;
55
+ skipBlankLines: boolean;
56
+ skipComments: boolean;
57
+ })[];
58
+ '@typescript-eslint/explicit-member-accessibility'?: undefined;
59
+ '@typescript-eslint/consistent-type-imports'?: undefined;
60
+ '@typescript-eslint/explicit-function-return-type'?: undefined;
61
+ '@typescript-eslint/prefer-readonly'?: undefined;
62
+ '@typescript-eslint/no-empty-function'?: undefined;
63
+ 'sort-imports'?: undefined;
64
+ 'class-methods-use-this'?: undefined;
65
+ 'max-classes-per-file'?: undefined;
66
+ };
67
+ })[];
2
68
  //# sourceMappingURL=typescript.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/typescript.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,kEAAqC,CAAC"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/typescript.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyDtB,CAAC"}
package/package.json CHANGED
@@ -1,52 +1,58 @@
1
- {
2
- "name": "lint-suite",
3
- "version": "0.0.10",
4
- "description": "Reusable ESLint configurations",
5
- "repository": {
6
- "type": "git",
7
- "url": "git+https://github.com/F0rty-Tw0/lint-suite.git",
8
- "directory": "packages/lint-suite"
9
- },
10
- "keywords": [
11
- "eslint",
12
- "eslintconfig",
13
- "lint",
14
- "typescript",
15
- "jest",
16
- "angular",
17
- "storybook",
18
- "json"
19
- ],
20
- "license": "MIT",
21
- "author": "Artiom Tofan artiomtofancv@gmail.com",
22
- "type": "module",
23
- "main": "./index.cjs",
24
- "module": "./index.js",
25
- "types": "./index.d.ts",
26
- "dependencies": {
27
- "eslint": "^9.8.0",
28
- "@nx/eslint-plugin": "^20.6.4"
29
- },
30
- "scripts": {
31
- "build": "nx build lint-suite",
32
- "patch": "npm version patch",
33
- "minor": "npm version minor",
34
- "major": "npm version major",
35
- "publish": "npm publish --access public"
36
- },
37
- "exports": {
38
- "./package.json": "./package.json",
39
- ".": {
40
- "types": "./index.d.ts",
41
- "import": "./index.js",
42
- "require": "./index.cjs"
43
- }
44
- },
45
- "files": [
46
- "./**",
47
- "!**/*.tsbuildinfo"
48
- ],
49
- "publishConfig": {
50
- "access": "public"
51
- }
52
- }
1
+ {
2
+ "name": "lint-suite",
3
+ "version": "0.0.12",
4
+ "description": "Reusable ESLint configurations",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/F0rty-Tw0/lint-suite.git",
8
+ "directory": "packages/lint-suite"
9
+ },
10
+ "keywords": [
11
+ "eslint",
12
+ "eslintconfig",
13
+ "lint",
14
+ "typescript",
15
+ "jest",
16
+ "angular",
17
+ "storybook",
18
+ "json"
19
+ ],
20
+ "license": "MIT",
21
+ "author": "Artiom Tofan artiomtofancv@gmail.com",
22
+ "type": "module",
23
+ "main": "./index.cjs",
24
+ "module": "./index.js",
25
+ "types": "./index.d.ts",
26
+ "dependencies": {
27
+ "eslint": "^9.23.0",
28
+ "@nx/eslint-plugin": "^20.6.4",
29
+ "eslint-plugin-jest": "^28.11.0",
30
+ "eslint-plugin-json": "^4.0.1",
31
+ "@smarttools/eslint-plugin-rxjs": "^1.0.18",
32
+ "eslint-plugin-storybook": "^0.12.0",
33
+ "eslint-plugin-import": "^2.31.0",
34
+ "@stylistic/eslint-plugin": "^4.2.0"
35
+ },
36
+ "scripts": {
37
+ "build": "nx build lint-suite",
38
+ "patch": "npm version patch",
39
+ "minor": "npm version minor",
40
+ "major": "npm version major",
41
+ "publish": "npm publish --access public"
42
+ },
43
+ "exports": {
44
+ "./package.json": "./package.json",
45
+ ".": {
46
+ "types": "./index.d.ts",
47
+ "import": "./index.js",
48
+ "require": "./index.cjs"
49
+ }
50
+ },
51
+ "files": [
52
+ "./**",
53
+ "!**/*.tsbuildinfo"
54
+ ],
55
+ "publishConfig": {
56
+ "access": "public"
57
+ }
58
+ }