lint-suite 0.0.9 → 0.0.11

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
@@ -27,36 +27,275 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // src/index.ts
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
- // 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 = {
42
- ...import_eslint_plugin.default.configs["flat/base"]
43
- };
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
+ ];
44
88
 
45
- // src/lib/typescript.ts
89
+ // packages/lint-suite/src/lib/angular.ts
46
90
  var import_eslint_plugin2 = __toESM(require("@nx/eslint-plugin"), 1);
47
- var typescript = {
48
- ...import_eslint_plugin2.default.configs["flat/typescript"]
49
- };
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
+ ];
50
100
 
51
- // src/lib/javascript.ts
101
+ // packages/lint-suite/src/lib/base.ts
52
102
  var import_eslint_plugin3 = __toESM(require("@nx/eslint-plugin"), 1);
53
- var javascript = {
54
- ...import_eslint_plugin3.default.configs["flat/javascript"]
55
- };
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
+ {
109
+ files: ["**/*.js", "**/*.ts", "**/*.html"],
110
+ plugins: { "@stylistic": import_eslint_plugin4.default },
111
+ rules: {
112
+ // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML
113
+ "no-console": "warn",
114
+ "max-len": [
115
+ "error",
116
+ {
117
+ code: 135,
118
+ ignoreComments: true
119
+ }
120
+ ],
121
+ "max-lines": [
122
+ "error",
123
+ {
124
+ max: 150,
125
+ skipBlankLines: true,
126
+ skipComments: true
127
+ }
128
+ ],
129
+ "spaced-comment": [
130
+ 2,
131
+ "always",
132
+ {
133
+ block: {
134
+ exceptions: ["*"]
135
+ }
136
+ }
137
+ ],
138
+ "@stylistic/comma-dangle": [
139
+ "error",
140
+ {
141
+ functions: "never",
142
+ arrays: "always-multiline",
143
+ exports: "always-multiline",
144
+ imports: "always-multiline",
145
+ objects: "always-multiline",
146
+ enums: "always-multiline"
147
+ }
148
+ ],
149
+ "@stylistic/indent": [
150
+ "error",
151
+ 2,
152
+ {
153
+ offsetTernaryExpressions: true,
154
+ SwitchCase: 1,
155
+ ignoredNodes: [
156
+ "TSTypeParameterInstantiation",
157
+ "FunctionExpression > .params > :matches(Decorator, :not(:first-child))"
158
+ ]
159
+ }
160
+ ]
161
+ }
162
+ }
163
+ ];
164
+
165
+ // packages/lint-suite/src/lib/typescript.ts
166
+ var import_eslint_plugin5 = __toESM(require("@nx/eslint-plugin"), 1);
167
+ var import_eslint_plugin_import2 = __toESM(require("eslint-plugin-import"), 1);
168
+ var typescript = [
169
+ import_eslint_plugin_import2.default.flatConfigs.typescript,
170
+ ...import_eslint_plugin5.default.configs["flat/typescript"],
171
+ {
172
+ files: ["**/*.ts"],
173
+ languageOptions: {
174
+ parserOptions: {
175
+ projectService: true
176
+ }
177
+ },
178
+ rules: {
179
+ "@typescript-eslint/explicit-member-accessibility": "error",
180
+ "@typescript-eslint/consistent-type-imports": "error",
181
+ "@typescript-eslint/explicit-function-return-type": "warn",
182
+ "@typescript-eslint/prefer-readonly": "error",
183
+ "@typescript-eslint/no-empty-function": "error",
184
+ "sort-imports": [
185
+ "error",
186
+ {
187
+ ignoreCase: false,
188
+ ignoreDeclarationSort: true,
189
+ ignoreMemberSort: false,
190
+ memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
191
+ allowSeparatedGroups: true
192
+ }
193
+ ],
194
+ "class-methods-use-this": "error"
195
+ }
196
+ },
197
+ {
198
+ files: ["**/*.action.ts"],
199
+ rules: {
200
+ "max-classes-per-file": "off"
201
+ }
202
+ },
203
+ {
204
+ files: ["**/*.state.ts"],
205
+ rules: {
206
+ "class-methods-use-this": "off"
207
+ }
208
+ },
209
+ {
210
+ files: ["**/*.spec.ts"],
211
+ rules: {
212
+ "@typescript-eslint/dot-notation": "off",
213
+ "max-lines": [
214
+ "error",
215
+ {
216
+ max: 300,
217
+ skipBlankLines: true,
218
+ skipComments: true
219
+ }
220
+ ]
221
+ }
222
+ }
223
+ ];
224
+
225
+ // packages/lint-suite/src/lib/jest.ts
226
+ var import_eslint_plugin_jest = __toESM(require("eslint-plugin-jest"), 1);
227
+ var jest = [
228
+ {
229
+ files: ["**/*.spec.ts"],
230
+ ...import_eslint_plugin_jest.default.configs["flat/recommended"],
231
+ rules: {
232
+ ...import_eslint_plugin_jest.default.configs["flat/recommended"].rules,
233
+ ...import_eslint_plugin_jest.default.configs["flat/style"].rules,
234
+ "jest/no-done-callback": "off"
235
+ }
236
+ }
237
+ ];
238
+
239
+ // packages/lint-suite/src/lib/json.ts
240
+ var import_eslint_plugin_json = __toESM(require("eslint-plugin-json"), 1);
241
+ var json = [
242
+ {
243
+ files: ["**/*.json"],
244
+ ...import_eslint_plugin_json.default.configs.recommended
245
+ }
246
+ ];
247
+
248
+ // packages/lint-suite/src/lib/rxjs.ts
249
+ var import_eslint_plugin_rxjs = __toESM(require("@smarttools/eslint-plugin-rxjs"), 1);
250
+ var rxjs = [
251
+ import_eslint_plugin_rxjs.default.configs.recommended,
252
+ {
253
+ files: ["**/*.ts"],
254
+ plugins: { rxjs: import_eslint_plugin_rxjs.default },
255
+ rules: {
256
+ "rxjs/prefer-observer": "error",
257
+ "rxjs/finnish": "warn",
258
+ "rxjs/no-ignored-error": "warn",
259
+ "rxjs/no-unsafe-switchmap": "error",
260
+ "rxjs/no-unsafe-takeuntil": "error",
261
+ "rxjs/no-unsafe-catch": "error",
262
+ "rxjs/no-unsafe-first": "error",
263
+ "rxjs/no-topromise": "error",
264
+ "rxjs/throw-error": "error",
265
+ "rxjs/no-async-subscribe": "off"
266
+ }
267
+ },
268
+ {
269
+ files: ["**/*.spec.ts"],
270
+ rules: {
271
+ "rxjs/no-ignored-subscription": "off"
272
+ }
273
+ }
274
+ ];
275
+
276
+ // packages/lint-suite/src/lib/storybook.ts
277
+ var import_eslint_plugin_storybook = __toESM(require("eslint-plugin-storybook"), 1);
278
+ var storybook = [
279
+ ...import_eslint_plugin_storybook.default.configs["flat/recommended"],
280
+ {
281
+ ignores: ["!.storybook"],
282
+ files: ["**/*.stories.ts"]
283
+ }
284
+ ];
285
+
286
+ // packages/lint-suite/src/lib/javascript.ts
287
+ var import_eslint_plugin6 = __toESM(require("@nx/eslint-plugin"), 1);
288
+ var javascript = [...import_eslint_plugin6.default.configs["flat/javascript"]];
56
289
  // Annotate the CommonJS export names for ESM import in node:
57
290
  0 && (module.exports = {
291
+ angular,
292
+ angularTemplate,
58
293
  base,
59
294
  javascript,
295
+ jest,
296
+ json,
297
+ rxjs,
298
+ storybook,
60
299
  typescript
61
300
  });
62
301
  //# sourceMappingURL=index.cjs.map
package/index.cjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/lib/base.ts", "../src/lib/typescript.ts", "../src/lib/javascript.ts"],
4
- "sourcesContent": ["export { base } from './lib/base.js';\r\nexport { typescript } from './lib/typescript.js';\r\nexport { javascript } from './lib/javascript.js';\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const base = {\r\n ...nx.configs['flat/base'],\r\n};", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const typescript = {\r\n ...nx.configs['flat/typescript'],\r\n};\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = {\r\n ...nx.configs['flat/javascript'],\r\n};\r\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,2BAAe;AAER,IAAM,OAAO;AAAA,EAClB,GAAG,qBAAAA,QAAG,QAAQ,WAAW;AAC3B;;;ACJA,IAAAC,wBAAe;AAER,IAAM,aAAa;AAAA,EACxB,GAAG,sBAAAC,QAAG,QAAQ,iBAAiB;AACjC;;;ACJA,IAAAC,wBAAe;AAER,IAAM,aAAa;AAAA,EACxB,GAAG,sBAAAC,QAAG,QAAQ,iBAAiB;AACjC;",
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 {\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 importPlugin.flatConfigs.typescript,\r\n ...nx.configs['flat/typescript'],\r\n {\r\n files: ['**/*.ts'],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\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", "importPlugin", "nx", "jestEslint", "jsonEslint", "rxjsEslint", "storybookEslint", "import_eslint_plugin", "nx"]
7
7
  }
package/index.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ export { angularTemplate } from './lib/angular-template.js';
2
+ export { angular } from './lib/angular.js';
3
+ export { base } from './lib/base.js';
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';
9
+ export { javascript } from './lib/javascript.js';
10
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
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,23 +1,256 @@
1
- // src/lib/base.ts
1
+ // packages/lint-suite/src/lib/angular-template.ts
2
2
  import nx from "@nx/eslint-plugin";
3
- var base = {
4
- ...nx.configs["flat/base"]
5
- };
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
+ ];
6
44
 
7
- // src/lib/typescript.ts
45
+ // packages/lint-suite/src/lib/angular.ts
8
46
  import nx2 from "@nx/eslint-plugin";
9
- var typescript = {
10
- ...nx2.configs["flat/typescript"]
11
- };
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
+ ];
12
56
 
13
- // src/lib/javascript.ts
57
+ // packages/lint-suite/src/lib/base.ts
14
58
  import nx3 from "@nx/eslint-plugin";
15
- var javascript = {
16
- ...nx3.configs["flat/javascript"]
17
- };
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
+ {
65
+ files: ["**/*.js", "**/*.ts", "**/*.html"],
66
+ plugins: { "@stylistic": stylistic },
67
+ rules: {
68
+ // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML
69
+ "no-console": "warn",
70
+ "max-len": [
71
+ "error",
72
+ {
73
+ code: 135,
74
+ ignoreComments: true
75
+ }
76
+ ],
77
+ "max-lines": [
78
+ "error",
79
+ {
80
+ max: 150,
81
+ skipBlankLines: true,
82
+ skipComments: true
83
+ }
84
+ ],
85
+ "spaced-comment": [
86
+ 2,
87
+ "always",
88
+ {
89
+ block: {
90
+ exceptions: ["*"]
91
+ }
92
+ }
93
+ ],
94
+ "@stylistic/comma-dangle": [
95
+ "error",
96
+ {
97
+ functions: "never",
98
+ arrays: "always-multiline",
99
+ exports: "always-multiline",
100
+ imports: "always-multiline",
101
+ objects: "always-multiline",
102
+ enums: "always-multiline"
103
+ }
104
+ ],
105
+ "@stylistic/indent": [
106
+ "error",
107
+ 2,
108
+ {
109
+ offsetTernaryExpressions: true,
110
+ SwitchCase: 1,
111
+ ignoredNodes: [
112
+ "TSTypeParameterInstantiation",
113
+ "FunctionExpression > .params > :matches(Decorator, :not(:first-child))"
114
+ ]
115
+ }
116
+ ]
117
+ }
118
+ }
119
+ ];
120
+
121
+ // packages/lint-suite/src/lib/typescript.ts
122
+ import nx4 from "@nx/eslint-plugin";
123
+ import importPlugin2 from "eslint-plugin-import";
124
+ var typescript = [
125
+ importPlugin2.flatConfigs.typescript,
126
+ ...nx4.configs["flat/typescript"],
127
+ {
128
+ files: ["**/*.ts"],
129
+ languageOptions: {
130
+ parserOptions: {
131
+ projectService: true
132
+ }
133
+ },
134
+ rules: {
135
+ "@typescript-eslint/explicit-member-accessibility": "error",
136
+ "@typescript-eslint/consistent-type-imports": "error",
137
+ "@typescript-eslint/explicit-function-return-type": "warn",
138
+ "@typescript-eslint/prefer-readonly": "error",
139
+ "@typescript-eslint/no-empty-function": "error",
140
+ "sort-imports": [
141
+ "error",
142
+ {
143
+ ignoreCase: false,
144
+ ignoreDeclarationSort: true,
145
+ ignoreMemberSort: false,
146
+ memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
147
+ allowSeparatedGroups: true
148
+ }
149
+ ],
150
+ "class-methods-use-this": "error"
151
+ }
152
+ },
153
+ {
154
+ files: ["**/*.action.ts"],
155
+ rules: {
156
+ "max-classes-per-file": "off"
157
+ }
158
+ },
159
+ {
160
+ files: ["**/*.state.ts"],
161
+ rules: {
162
+ "class-methods-use-this": "off"
163
+ }
164
+ },
165
+ {
166
+ files: ["**/*.spec.ts"],
167
+ rules: {
168
+ "@typescript-eslint/dot-notation": "off",
169
+ "max-lines": [
170
+ "error",
171
+ {
172
+ max: 300,
173
+ skipBlankLines: true,
174
+ skipComments: true
175
+ }
176
+ ]
177
+ }
178
+ }
179
+ ];
180
+
181
+ // packages/lint-suite/src/lib/jest.ts
182
+ import jestEslint from "eslint-plugin-jest";
183
+ var jest = [
184
+ {
185
+ files: ["**/*.spec.ts"],
186
+ ...jestEslint.configs["flat/recommended"],
187
+ rules: {
188
+ ...jestEslint.configs["flat/recommended"].rules,
189
+ ...jestEslint.configs["flat/style"].rules,
190
+ "jest/no-done-callback": "off"
191
+ }
192
+ }
193
+ ];
194
+
195
+ // packages/lint-suite/src/lib/json.ts
196
+ import jsonEslint from "eslint-plugin-json";
197
+ var json = [
198
+ {
199
+ files: ["**/*.json"],
200
+ ...jsonEslint.configs.recommended
201
+ }
202
+ ];
203
+
204
+ // packages/lint-suite/src/lib/rxjs.ts
205
+ import rxjsEslint from "@smarttools/eslint-plugin-rxjs";
206
+ var rxjs = [
207
+ rxjsEslint.configs.recommended,
208
+ {
209
+ files: ["**/*.ts"],
210
+ plugins: { rxjs: rxjsEslint },
211
+ rules: {
212
+ "rxjs/prefer-observer": "error",
213
+ "rxjs/finnish": "warn",
214
+ "rxjs/no-ignored-error": "warn",
215
+ "rxjs/no-unsafe-switchmap": "error",
216
+ "rxjs/no-unsafe-takeuntil": "error",
217
+ "rxjs/no-unsafe-catch": "error",
218
+ "rxjs/no-unsafe-first": "error",
219
+ "rxjs/no-topromise": "error",
220
+ "rxjs/throw-error": "error",
221
+ "rxjs/no-async-subscribe": "off"
222
+ }
223
+ },
224
+ {
225
+ files: ["**/*.spec.ts"],
226
+ rules: {
227
+ "rxjs/no-ignored-subscription": "off"
228
+ }
229
+ }
230
+ ];
231
+
232
+ // packages/lint-suite/src/lib/storybook.ts
233
+ import storybookEslint from "eslint-plugin-storybook";
234
+ var storybook = [
235
+ ...storybookEslint.configs["flat/recommended"],
236
+ {
237
+ ignores: ["!.storybook"],
238
+ files: ["**/*.stories.ts"]
239
+ }
240
+ ];
241
+
242
+ // packages/lint-suite/src/lib/javascript.ts
243
+ import nx5 from "@nx/eslint-plugin";
244
+ var javascript = [...nx5.configs["flat/javascript"]];
18
245
  export {
246
+ angular,
247
+ angularTemplate,
19
248
  base,
20
249
  javascript,
250
+ jest,
251
+ json,
252
+ rxjs,
253
+ storybook,
21
254
  typescript
22
255
  };
23
256
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/lib/base.ts", "../src/lib/typescript.ts", "../src/lib/javascript.ts"],
4
- "sourcesContent": ["import nx from '@nx/eslint-plugin';\r\n\r\nexport const base = {\r\n ...nx.configs['flat/base'],\r\n};", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const typescript = {\r\n ...nx.configs['flat/typescript'],\r\n};\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = {\r\n ...nx.configs['flat/javascript'],\r\n};\r\n"],
5
- "mappings": ";AAAA,OAAO,QAAQ;AAER,IAAM,OAAO;AAAA,EAClB,GAAG,GAAG,QAAQ,WAAW;AAC3B;;;ACJA,OAAOA,SAAQ;AAER,IAAM,aAAa;AAAA,EACxB,GAAGA,IAAG,QAAQ,iBAAiB;AACjC;;;ACJA,OAAOC,SAAQ;AAER,IAAM,aAAa;AAAA,EACxB,GAAGA,IAAG,QAAQ,iBAAiB;AACjC;",
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 {\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 importPlugin.flatConfigs.typescript,\r\n ...nx.configs['flat/typescript'],\r\n {\r\n files: ['**/*.ts'],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\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
  }