@greenberry/linting-config 0.2.1 → 0.2.4

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/README.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  ESLint and Prettier bundle for all things Greenberry.
4
4
 
5
+ ## Table of Contents
6
+
7
+ - [Greenberry linting-config](#greenberry-linting-config)
8
+ - [Table of Contents](#table-of-contents)
9
+ - [Publish a new version](#publish-a-new-version)
10
+ - [Install](#install)
11
+ - [NextJS](#nextjs)
12
+
13
+
14
+ ## Publish a new version
15
+
16
+ 1. Make your changes
17
+ 2. Review and merge your changes into `main`
18
+ 3. Run `npm run build`
19
+ 4. If it is a patch update: run `npm run publish:patch`
20
+ 5. If it is a minor update: run `npm run publish:minor`
21
+ 6. If it is a major update: run `npm run publish:major`
22
+ 7. Push the changed version number to `main`
23
+
5
24
  ## Install
6
25
 
7
26
  ```bash
@@ -1,3 +1,3 @@
1
- declare const _default: import("eslint").Linter.Config<import("eslint").Linter.RulesRecord>[];
1
+ declare const _default: import("eslint/config").Config[];
2
2
  export default _default;
3
3
  //# sourceMappingURL=eslint.config.d.ts.map
@@ -7,11 +7,23 @@ import reactPlugin from "eslint-plugin-react";
7
7
  import reactCompilerPlugin from "eslint-plugin-react-compiler";
8
8
  import reactHooksPlugin from "eslint-plugin-react-hooks";
9
9
  import reactHooksExtraPlugin from "eslint-plugin-react-hooks-extra";
10
+ import storybookPlugin from "eslint-plugin-storybook";
10
11
  import unicornPlugin from "eslint-plugin-unicorn";
11
12
  import { defineConfig } from "eslint/config";
12
13
  import globals from "globals";
13
14
  import tseslint from "typescript-eslint";
14
15
  import eslint from "@eslint/js";
16
+ // Extract only meta and rules for TypeScript compatibility with ESLint flat config
17
+ // The plugins include a 'configs' property that's incompatible with the Plugin type
18
+ // but we only need meta and rules for flat config, so we extract just those
19
+ const reactHooksPluginTyped = {
20
+ meta: reactHooksPlugin.meta,
21
+ rules: reactHooksPlugin.rules,
22
+ };
23
+ const reactHooksExtraPluginTyped = {
24
+ meta: reactHooksExtraPlugin.meta,
25
+ rules: reactHooksExtraPlugin.rules,
26
+ };
15
27
  export default defineConfig(eslint.configs.recommended, tseslint.configs.strict, tseslint.configs.stylistic, {
16
28
  files: ["**/*.{js,mjs,cjs,jsx,ts,tsx}"],
17
29
  languageOptions: {
@@ -32,8 +44,8 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
32
44
  },
33
45
  plugins: {
34
46
  react: reactPlugin,
35
- "react-hooks": reactHooksPlugin,
36
- "react-hooks-extra": reactHooksExtraPlugin,
47
+ "react-hooks": reactHooksPluginTyped,
48
+ "react-hooks-extra": reactHooksExtraPluginTyped,
37
49
  import: importPlugin,
38
50
  unicorn: unicornPlugin,
39
51
  perfectionist: perfectionistPlugin,
@@ -113,6 +125,7 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
113
125
  ts: "always",
114
126
  tsx: "always",
115
127
  scss: "always",
128
+ stories: "always",
116
129
  },
117
130
  ],
118
131
  "import/prefer-default-export": "off",
@@ -195,6 +208,34 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
195
208
  // Prettier integration
196
209
  "prettier/prettier": "error",
197
210
  },
211
+ },
212
+ // Storybook stories configuration
213
+ ...storybookPlugin.configs["flat/recommended"], {
214
+ files: [
215
+ "**/*.stories.@(js|jsx|ts|tsx|mjs|cjs|mdx)",
216
+ "**/*.story.@(js|jsx|ts|tsx|mjs|cjs|mdx)",
217
+ ],
218
+ rules: {
219
+ "storybook/hierarchy-separator": "warn",
220
+ "storybook/no-redundant-story-name": "warn",
221
+ "storybook/no-stories-of": "error", // Enforce CSF format (not storiesOf API)
222
+ "storybook/no-title-property-in-meta": "error", // Use title in default export
223
+ "storybook/prefer-pascal-case": "warn",
224
+ // Relax some rules for Storybook story files
225
+ "react-hooks/rules-of-hooks": "off", // Stories can use hooks outside components
226
+ "import/no-anonymous-default-export": "off", // Stories use default exports
227
+ "react-hooks/exhaustive-deps": "warn", // Stories often have intentional dependencies
228
+ },
229
+ },
230
+ // Storybook main config file
231
+ {
232
+ files: [".storybook/main.@(js|cjs|mjs|ts)"],
233
+ plugins: {
234
+ storybook: storybookPlugin,
235
+ },
236
+ rules: {
237
+ "storybook/no-uninstalled-addons": "error",
238
+ },
198
239
  }, {
199
240
  ignores: [
200
241
  ".next/*",
@@ -202,6 +243,7 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
202
243
  "src/env.ts",
203
244
  "**/*.gql",
204
245
  "next-env.d.ts",
246
+ "!.storybook", // Allow linting of .storybook config files
205
247
  ],
206
248
  });
207
249
  //# sourceMappingURL=eslint.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../src/eslint.config.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../src/eslint.config.js"],"names":[],"mappings":"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"}
@@ -279,8 +279,104 @@ declare const config: ({
279
279
  flat: Record<string, reactPlugin.ReactFlatConfig>;
280
280
  };
281
281
  };
282
- "react-hooks": typeof reactHooksPlugin;
283
- import: import("eslint").ESLint.Plugin & {
282
+ "react-hooks": {
283
+ meta: {
284
+ name: string;
285
+ version: string;
286
+ };
287
+ rules: {
288
+ "exhaustive-deps": {
289
+ meta: {
290
+ type: "suggestion";
291
+ docs: {
292
+ description: string;
293
+ recommended: true;
294
+ url: string;
295
+ };
296
+ fixable: "code";
297
+ hasSuggestions: true;
298
+ schema: {
299
+ type: "object";
300
+ additionalProperties: false;
301
+ enableDangerousAutofixThisMayCauseInfiniteLoops: boolean;
302
+ properties: {
303
+ additionalHooks: {
304
+ type: "string";
305
+ };
306
+ enableDangerousAutofixThisMayCauseInfiniteLoops: {
307
+ type: "boolean";
308
+ };
309
+ experimental_autoDependenciesHooks: {
310
+ type: "array";
311
+ items: {
312
+ type: "string";
313
+ };
314
+ };
315
+ requireExplicitEffectDeps: {
316
+ type: "boolean";
317
+ };
318
+ };
319
+ }[];
320
+ };
321
+ create(context: import("eslint").Rule.RuleContext): {
322
+ CallExpression: (node: import("estree").CallExpression) => void;
323
+ };
324
+ };
325
+ "rules-of-hooks": {
326
+ meta: {
327
+ type: "problem";
328
+ docs: {
329
+ description: string;
330
+ recommended: true;
331
+ url: string;
332
+ };
333
+ schema: {
334
+ type: "object";
335
+ additionalProperties: false;
336
+ properties: {
337
+ additionalHooks: {
338
+ type: "string";
339
+ };
340
+ };
341
+ }[];
342
+ };
343
+ create(context: import("eslint").Rule.RuleContext): {
344
+ "*"(node: any): void;
345
+ "*:exit"(node: any): void;
346
+ CallExpression(node: import("estree").CallExpression & import("eslint").Rule.NodeParentExtension): void;
347
+ Identifier(node: import("estree").Identifier & import("eslint").Rule.NodeParentExtension): void;
348
+ "CallExpression:exit"(node: import("estree").CallExpression & import("eslint").Rule.NodeParentExtension): void;
349
+ FunctionDeclaration(node: import("estree").FunctionDeclaration & import("eslint").Rule.NodeParentExtension): void;
350
+ ArrowFunctionExpression(node: import("estree").ArrowFunctionExpression & import("eslint").Rule.NodeParentExtension): void;
351
+ };
352
+ };
353
+ };
354
+ configs: {
355
+ recommended: {
356
+ plugins: string[];
357
+ rules: import("eslint").Linter.RulesRecord;
358
+ };
359
+ "recommended-latest": {
360
+ plugins: string[];
361
+ rules: import("eslint").Linter.RulesRecord;
362
+ };
363
+ flat: {
364
+ recommended: {
365
+ plugins: {
366
+ react: any;
367
+ };
368
+ rules: import("eslint").Linter.RulesRecord;
369
+ };
370
+ "recommended-latest": {
371
+ plugins: {
372
+ react: any;
373
+ };
374
+ rules: import("eslint").Linter.RulesRecord;
375
+ };
376
+ };
377
+ };
378
+ };
379
+ import: import("@eslint/core", { with: { "resolution-mode": "require" } }).Plugin & {
284
380
  meta: {
285
381
  name: string;
286
382
  version: string;
@@ -309,16 +405,17 @@ declare const config: ({
309
405
  [key: string]: import("eslint").Rule.RuleModule;
310
406
  };
311
407
  };
312
- unicorn: import("eslint").ESLint.Plugin & {
408
+ unicorn: import("@eslint/core", { with: { "resolution-mode": "require" } }).Plugin & {
313
409
  configs: {
314
410
  recommended: import("eslint").Linter.FlatConfig;
411
+ unopinionated: import("eslint").Linter.FlatConfig;
315
412
  all: import("eslint").Linter.FlatConfig;
316
413
  "flat/all": import("eslint").Linter.FlatConfig;
317
414
  "flat/recommended": import("eslint").Linter.FlatConfig;
318
415
  };
319
416
  };
320
417
  "@next/next": typeof nextPlugin;
321
- "jsx-a11y": import("eslint").ESLint.Plugin & {
418
+ "jsx-a11y": import("@eslint/core", { with: { "resolution-mode": "require" } }).Plugin & {
322
419
  configs: {
323
420
  recommended: import("eslint").Linter.LegacyConfig;
324
421
  strict: import("eslint").Linter.LegacyConfig;
@@ -328,7 +425,7 @@ declare const config: ({
328
425
  strict: import("eslint").Linter.Config;
329
426
  };
330
427
  };
331
- prettier: import("eslint").ESLint.Plugin;
428
+ prettier: import("@eslint/core", { with: { "resolution-mode": "require" } }).Plugin;
332
429
  "react-compiler": typeof reactCompilerPlugin;
333
430
  };
334
431
  settings: {
@@ -403,18 +500,6 @@ declare const config: ({
403
500
  })[];
404
501
  curly: string[];
405
502
  "prettier/prettier": string;
406
- '@next/next/no-async-client-component': string;
407
- '@next/next/no-before-interactive-script-outside-document': string;
408
- '@next/next/no-css-tags': string;
409
- '@next/next/no-head-element': string;
410
- '@next/next/no-page-custom-font': string;
411
- '@next/next/no-styled-jsx-in-document': string;
412
- '@next/next/no-title-in-document-head': string;
413
- '@next/next/inline-script-id': string;
414
- '@next/next/no-assign-module-variable': string;
415
- '@next/next/no-document-import-in-page': string;
416
- '@next/next/no-head-import-in-document': string;
417
- 'react-hooks/rules-of-hooks': "error";
418
503
  'react/react-in-jsx-scope': 0;
419
504
  'react/jsx-uses-react': 0;
420
505
  };
@@ -428,7 +513,6 @@ declare const config: ({
428
513
  rules?: undefined;
429
514
  })[];
430
515
  import reactPlugin from "eslint-plugin-react";
431
- import reactHooksPlugin from "eslint-plugin-react-hooks";
432
516
  import nextPlugin from "@next/eslint-plugin-next";
433
517
  import reactCompilerPlugin from "eslint-plugin-react-compiler";
434
518
  //# sourceMappingURL=eslint.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.config.d.ts","sourceRoot":"","sources":["../../src/legacy/eslint.config.js"],"names":[],"mappings":";AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuIE;wBA9IsB,qBAAqB;6BAEhB,2BAA2B;uBAGjC,0BAA0B;gCAJjB,8BAA8B"}
1
+ {"version":3,"file":"eslint.config.d.ts","sourceRoot":"","sources":["../../src/legacy/eslint.config.js"],"names":[],"mappings":";AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuIE;wBA9IsB,qBAAqB;uBAKtB,0BAA0B;gCAJjB,8BAA8B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greenberry/linting-config",
3
- "version": "0.2.1",
3
+ "version": "0.2.4",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -16,37 +16,41 @@
16
16
  "scripts": {
17
17
  "clean": "rm -rf dist",
18
18
  "build": "npm run clean && tsc",
19
- "release": "npm run build && npm version patch && npm publish --access public"
19
+ "release:patch": "npm run build && npm version patch && npm publish --access public",
20
+ "release:minor": "npm run build && npm version minor && npm publish --access public",
21
+ "release:major": "npm run build && npm version major && npm publish --access public"
20
22
  },
21
23
  "files": [
22
24
  "dist"
23
25
  ],
24
26
  "dependencies": {
25
- "@ianvs/prettier-plugin-sort-imports": "^4.6.0",
26
- "@next/eslint-plugin-next": "^15.4.6",
27
- "@typescript-eslint/parser": "^8.39.0",
28
- "eslint": "^9.32.0",
27
+ "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
28
+ "@next/eslint-plugin-next": "^16.1.1",
29
+ "@typescript-eslint/parser": "^8.52.0",
30
+ "eslint": "^9.39.2",
29
31
  "eslint-config-prettier": "^10.1.8",
30
32
  "eslint-import-resolver-typescript": "3.8.3",
31
33
  "eslint-plugin-import": "2.32.0",
32
34
  "eslint-plugin-jsx-a11y": "^6.10.2",
33
- "eslint-plugin-perfectionist": "^4.15.0",
35
+ "eslint-plugin-perfectionist": "^5.3.0",
34
36
  "eslint-plugin-prettier": "^5.5.4",
35
37
  "eslint-plugin-react": "^7.37.5",
36
38
  "eslint-plugin-react-compiler": "^19.1.0-rc.2",
37
- "eslint-plugin-react-hooks": "^5.2.0",
38
- "eslint-plugin-react-hooks-extra": "^1.52.3",
39
- "eslint-plugin-unicorn": "^60.0.0",
40
- "prettier": "^3.6.2",
41
- "prettier-plugin-tailwindcss": "^0.6.14",
42
- "stylelint": "^16.23.0",
43
- "stylelint-config-standard-scss": "^15.0.1",
39
+ "eslint-plugin-react-hooks": "^7.0.1",
40
+ "eslint-plugin-react-hooks-extra": "^2.5.1",
41
+ "eslint-plugin-storybook": "^10.1.11",
42
+ "eslint-plugin-unicorn": "^62.0.0",
43
+ "globals": "^17.0.0",
44
+ "prettier": "^3.7.4",
45
+ "prettier-plugin-tailwindcss": "^0.7.2",
46
+ "stylelint": "^16.26.1",
47
+ "stylelint-config-standard-scss": "^16.0.0",
44
48
  "stylelint-prettier": "^5.0.3",
45
- "typescript-eslint": "^8.39.0"
49
+ "typescript-eslint": "^8.52.0"
46
50
  },
47
51
  "devDependencies": {
48
- "@types/eslint-plugin-jsx-a11y": "^6.10.0",
49
- "@types/node": "^24.3.1",
50
- "typescript": "^5.9.2"
52
+ "@types/eslint-plugin-jsx-a11y": "^6.10.1",
53
+ "@types/node": "^25.0.3",
54
+ "typescript": "^5.9.3"
51
55
  }
52
56
  }