@itcase/lint 1.0.41 → 1.0.43

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/eslint/index.js CHANGED
@@ -25,7 +25,6 @@ import {
25
25
  const eslintConfig = [
26
26
  eslintJs.configs.recommended,
27
27
  ...eslintTypeScript.configs.recommended,
28
- ...eslintMarkdown.configs.recommended,
29
28
  eslintPluginPrettierRecommended,
30
29
 
31
30
  {
@@ -54,6 +53,10 @@ const eslintConfig = [
54
53
  files: ['**/*.json'],
55
54
  ...eslintJson.configs['recommended'],
56
55
  },
56
+ {
57
+ files: ['**/*.md', '**/*.mdx'],
58
+ ...eslintMarkdown.configs.recommended,
59
+ },
57
60
 
58
61
  {
59
62
  files: ['**/*.{js,jsx,mjs,cjs,ts,tsx}'],
@@ -85,7 +88,7 @@ const eslintConfig = [
85
88
  'object-shorthand': ['warn', 'consistent'],
86
89
 
87
90
  // Class
88
- 'perfectionist/sort-classes': sortClasses,
91
+ 'perfectionist/sort-classes': 'off',
89
92
  // Enum
90
93
  'perfectionist/sort-enums': sortEnums,
91
94
  // Interfaces
@@ -0,0 +1,29 @@
1
+ const customGroups = {
2
+ id: '^id$',
3
+ title: '^title.*',
4
+ subtitle: '^subtitle.*',
5
+ label: '^label.*',
6
+ desc: '^desc.*',
7
+ description: '^description.*',
8
+ fill: '^fill.*',
9
+ border: '^border.*',
10
+ shadow: '^shadow.*',
11
+ font: '^font.*',
12
+ text: '^text.*',
13
+ flex: '^flex.*',
14
+ justify: '^justify.*',
15
+ align: '^align.*',
16
+ initial: '^initial.*',
17
+ background: '^background.*',
18
+ direction: '^direction.*',
19
+ isMobile: '^isMobile.*',
20
+ isTablet: '^isTablet.*',
21
+ isDesktop: '^isDesktop.*',
22
+ close: '^close.*',
23
+ open: '^open.*',
24
+ is: '^is.*',
25
+ set: '^set.*',
26
+ on: '^on.*'
27
+ }
28
+
29
+ export { customGroups }
@@ -0,0 +1,177 @@
1
+ const props = [
2
+ 'id',
3
+ 'className',
4
+ 'key',
5
+ 'name',
6
+ 'type',
7
+
8
+ 'appearance',
9
+
10
+ // Size and positioning
11
+ 'width',
12
+ 'height',
13
+ 'minWidth',
14
+ 'maxWidth',
15
+ 'minHeight',
16
+ 'maxHeight',
17
+ 'direction',
18
+ 'flex',
19
+ 'justify',
20
+ 'align',
21
+
22
+ 'fill',
23
+
24
+ 'position',
25
+ 'top',
26
+ 'right',
27
+ 'bottom',
28
+ 'left',
29
+ 'zIndex',
30
+ 'aspectRatio',
31
+
32
+ 'initial',
33
+ 'isMobile',
34
+ 'isTablet',
35
+ 'isDesktop',
36
+ 'children',
37
+ 'config',
38
+
39
+ 'url',
40
+ 'method',
41
+ 'data',
42
+ 'signal',
43
+ 'timeout',
44
+ 'username',
45
+ 'password',
46
+ 'code',
47
+
48
+ // Indents and margins
49
+ 'margin',
50
+ 'marginMobile',
51
+ 'marginTablet',
52
+ 'marginDesktop',
53
+ 'marginVertical',
54
+ 'marginHorizontal',
55
+ 'marginVerticalMobile',
56
+ 'marginHorizontalMobile',
57
+ 'marginVerticalTablet',
58
+ 'marginHorizontalTablet',
59
+ 'marginVerticalDesktop',
60
+ 'marginHorizontalDesktop',
61
+ 'marginTop',
62
+ 'marginRight',
63
+ 'marginBottom',
64
+ 'marginLeft',
65
+ 'marginTopMobile',
66
+ 'marginRightMobile',
67
+ 'marginBottomMobile',
68
+ 'marginLeftMobile',
69
+ 'marginTopTablet',
70
+ 'marginRightTablet',
71
+ 'marginBottomTablet',
72
+ 'marginLeftTablet',
73
+ 'marginTopDesktop',
74
+ 'marginRightDesktop',
75
+ 'marginBottomDesktop',
76
+ 'marginLeftDesktop',
77
+ 'padding',
78
+ 'paddingMobile',
79
+ 'paddingTablet',
80
+ 'paddingDesktop',
81
+ 'paddingVertical',
82
+ 'paddingHorizontal',
83
+ 'paddingVerticalMobile',
84
+ 'paddingHorizontalMobile',
85
+ 'paddingVerticalTablet',
86
+ 'paddingHorizontalTablet',
87
+ 'paddingVerticalDesktop',
88
+ 'paddingHorizontalDesktop',
89
+ 'paddingTop',
90
+ 'paddingRight',
91
+ 'paddingBottom',
92
+ 'paddingLeft',
93
+ 'paddingTopMobile',
94
+ 'paddingRightMobile',
95
+ 'paddingBottomMobile',
96
+ 'paddingLeftMobile',
97
+ 'paddingTopTablet',
98
+ 'paddingRightTablet',
99
+ 'paddingBottomTablet',
100
+ 'paddingLeftTablet',
101
+ 'paddingTopDesktop',
102
+ 'paddingRightDesktop',
103
+ 'paddingBottomDesktop',
104
+ 'paddingLeftDesktop',
105
+ 'gap',
106
+
107
+ // Borders and shadows
108
+ 'border',
109
+ 'shadow',
110
+ 'elevation',
111
+
112
+ // Color and background
113
+ // Цвет и фон
114
+ 'backgroundColor',
115
+ 'opacity',
116
+
117
+ // Fonts and text
118
+ 'color',
119
+ 'font',
120
+ 'lineHeight',
121
+ 'letterSpacing',
122
+ 'text',
123
+ 'includeFontPadding',
124
+ 'textAlignVertical',
125
+ 'writingDirection',
126
+
127
+ 'title',
128
+ 'subtitle',
129
+ 'label',
130
+ 'desc',
131
+ 'description',
132
+
133
+ // Other
134
+ // Прочее
135
+ 'overflow',
136
+ 'display',
137
+ 'resizeMode',
138
+ 'backfaceVisibility',
139
+ 'tintColor',
140
+ 'overlayColor',
141
+ 'end',
142
+ 'start',
143
+ 'transform',
144
+ 'transformOrigin',
145
+ 'translateX',
146
+ 'translateY',
147
+ 'scale',
148
+ 'rotate',
149
+ 'rotateX',
150
+ 'rotateY',
151
+ 'perspective',
152
+ 'cursor',
153
+ 'component',
154
+ 'args',
155
+ 'globals',
156
+ 'loaders',
157
+ 'parameters',
158
+ 'page',
159
+ 'design',
160
+ 'layout',
161
+ 'sourceLink',
162
+ 'render',
163
+ 'device',
164
+ 'unknown',
165
+ 'before',
166
+ 'after',
167
+ 'open',
168
+ 'close',
169
+ 'is',
170
+ 'set',
171
+ 'use',
172
+ 'on',
173
+ 'onSuccess',
174
+ 'onError',
175
+ ]
176
+
177
+ export { props }
@@ -1,27 +1,8 @@
1
1
  import { wrapArrayWithCaretAndDollarAnchors } from '../utils.js'
2
- import { eslintStyleProps } from './../eslint.styleProps.js'
2
+ import { customGroups } from './sort/customGroup.js'
3
+ import { props } from './sort/props.js'
3
4
 
4
- // In what order they are written, that’s how they will be sorted
5
- // В каком порядке они записаны, так они и будут отсортированы
6
- const groups = [
7
- 'className',
8
- 'key',
9
- 'ref',
10
- 'name',
11
- ...eslintStyleProps,
12
- 'shorthand',
13
- 'unknown',
14
- 'multiline',
15
- 'is',
16
- 'set',
17
- 'callback',
18
- ]
19
-
20
- const customRulesForGroups = {
21
- is: '^is.*',
22
- callback: '^on.*',
23
- set: '^set.*',
24
- }
5
+ const groups = [...props]
25
6
 
26
7
  const sortJSXProps = [
27
8
  'error',
@@ -31,7 +12,7 @@ const sortJSXProps = [
31
12
  groups: groups,
32
13
  customGroups: {
33
14
  ...wrapArrayWithCaretAndDollarAnchors(groups),
34
- ...customRulesForGroups,
15
+ ...customGroups,
35
16
  },
36
17
  },
37
18
  ]
@@ -1,39 +1,29 @@
1
1
  import { wrapArrayWithCaretAndDollarAnchors } from '../utils.js'
2
- import { eslintStyleObjects } from './../eslint.styleObjects.js'
2
+ import { customGroups } from './sort/customGroup.js'
3
+ import { props } from './sort/props.js'
3
4
 
4
- // In what order they are written, that’s how they will be sorted
5
- // В каком порядке они записаны, так они и будут отсортированы
6
- const groups = [
7
- 'id',
8
- 'isMobile',
9
- 'isTablet',
10
- 'isDesktop',
11
- 'children',
12
- ...eslintStyleObjects,
13
- 'device',
14
- 'is',
15
- 'unknown',
16
- 'callback',
17
- ]
18
-
19
- const customRulesForGroups = {
20
- id: '^id$',
21
- isMobile: '^isMobile.*',
22
- isTablet: '^isTablet.*',
23
- isDesktop: '^isDesktop.*',
24
- is: '^is.*',
25
- callback: '^on.*',
26
- }
5
+ const groups = [...props]
27
6
 
28
7
  const sortObjects = [
29
8
  'error',
9
+ {
10
+ type: 'unsorted', // Don't sort objects passed to constructor
11
+ groups: ['MESSAGES_FIELDS'],
12
+ customGroups: {
13
+ formConfig: '.*(?<!FormConfig)$',
14
+ },
15
+ useConfigurationIf: {
16
+ allNamesMatchPattern: 'MESSAGES_FIELDS',
17
+ callingFunctionNamePattern: '^.*',
18
+ },
19
+ },
30
20
  {
31
21
  type: 'natural',
32
22
  order: 'asc',
33
23
  groups: groups,
34
24
  customGroups: {
35
25
  ...wrapArrayWithCaretAndDollarAnchors(groups),
36
- ...customRulesForGroups,
26
+ ...customGroups,
37
27
  },
38
28
  },
39
29
  ]
@@ -1,10 +1,5 @@
1
1
  import eslintStorybook from 'eslint-plugin-storybook'
2
2
 
3
3
  export default [
4
- {
5
- plugins: {
6
- strorybook: eslintStorybook,
7
- },
8
- files: ['**/*.stories.@(ts|tsx|js|jsx|mjs|cjs)']
9
- },
4
+ { plugins: { strorybook: eslintStorybook }, files: ['**/*.stories.@(ts|tsx|js|jsx|mjs|cjs)'] },
10
5
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/lint",
3
- "version": "1.0.41",
3
+ "version": "1.0.43",
4
4
  "author": "ITCase",
5
5
  "description": "Code style linter configuration presets",
6
6
  "engines": {
@@ -33,46 +33,47 @@
33
33
  "registry": "https://registry.npmjs.org/"
34
34
  },
35
35
  "dependencies": {
36
- "@babel/eslint-parser": "^7.26.8",
37
- "@eslint/compat": "^1.2.6",
38
- "@eslint/js": "^9.20.0",
39
- "@eslint/markdown": "^6.2.2",
36
+ "@babel/eslint-parser": "^7.26.10",
37
+ "@babel/eslint-plugin": "^7.26.10",
38
+ "@eslint/compat": "^1.2.7",
39
+ "@eslint/js": "^9.22.0",
40
+ "@eslint/markdown": "^6.3.0",
40
41
  "@ianvs/prettier-plugin-sort-imports": "^4.4.1",
41
- "@itcase/config": "^1.0.7",
42
- "eslint": "^9.20.1",
43
- "eslint-config-prettier": "^10.0.1",
42
+ "@itcase/config": "^1.0.26",
43
+ "eslint": "^9.22.0",
44
+ "eslint-config-prettier": "^10.1.1",
44
45
  "eslint-plugin-html": "^8.1.2",
45
46
  "eslint-plugin-json": "^4.0.1",
46
47
  "eslint-plugin-mobx": "^0.0.13",
47
- "eslint-plugin-n": "^17.15.1",
48
+ "eslint-plugin-n": "^17.16.2",
48
49
  "eslint-plugin-node": "^11.1.0",
49
- "eslint-plugin-perfectionist": "^4.8.0",
50
+ "eslint-plugin-perfectionist": "^4.10.1",
50
51
  "eslint-plugin-prettier": "^5.2.3",
51
52
  "eslint-plugin-promise": "^7.2.1",
52
53
  "eslint-plugin-react": "^7.37.4",
53
- "eslint-plugin-react-hooks": "^5.1.0",
54
+ "eslint-plugin-react-hooks": "^5.2.0",
54
55
  "eslint-plugin-react-native": "^5.0.0",
55
56
  "eslint-plugin-react-refresh": "^0.4.19",
56
- "eslint-plugin-storybook": "^0.11.2",
57
- "globals": "^15.15.0",
58
- "prettier": "^3.5.0",
57
+ "eslint-plugin-storybook": "^0.11.6",
58
+ "expo-modules-autolinking": "^2.0.8",
59
+ "globals": "^16.0.0",
60
+ "prettier": "^3.5.3",
59
61
  "stylelint-config-standard": "^37.0.0",
60
62
  "stylelint-no-unsupported-browser-features": "^8.0.4",
61
63
  "stylelint-order": "^6.0.4",
62
64
  "stylelint-prettier": "^5.0.3",
63
- "typescript-eslint": "^8.24.0"
65
+ "typescript-eslint": "^8.27.0"
64
66
  },
65
67
  "devDependencies": {
66
- "@commitlint/cli": "^19.7.1",
67
- "@commitlint/config-conventional": "^19.7.1",
68
+ "@commitlint/cli": "^19.8.0",
69
+ "@commitlint/config-conventional": "^19.8.0",
68
70
  "@semantic-release/changelog": "^6.0.3",
69
71
  "@semantic-release/git": "^10.0.1",
70
72
  "@semantic-release/release-notes-generator": "14.0.3",
71
73
  "conventional-changelog-conventionalcommits": "^8.0.0",
72
74
  "husky": "^9.1.7",
73
- "lint-staged": "^15.4.3",
74
- "react": "^18.3.1",
75
- "semantic-release": "^24.2.2",
76
- "typescript": "^5.7.3"
75
+ "lint-staged": "^15.5.0",
76
+ "semantic-release": "^24.2.3",
77
+ "typescript": "^5.8.2"
77
78
  }
78
79
  }
@@ -1,122 +0,0 @@
1
- // In what order they are written, that’s how they will be sorted
2
- // В каком порядке они записаны, так они и будут отсортированы
3
- const eslintStyleObjects = [
4
- // Size and positioning
5
- // Размер и позиционирование
6
- 'width',
7
- 'height',
8
- 'flex',
9
- 'flexDirection',
10
- 'justifyContent',
11
- 'alignItems',
12
- 'alignSelf',
13
- 'flexGrow',
14
- 'flexShrink',
15
- 'flexBasis',
16
- 'flexWrap',
17
- 'position',
18
- 'top',
19
- 'right',
20
- 'bottom',
21
- 'left',
22
- 'zIndex',
23
- 'minWidth',
24
- 'maxWidth',
25
- 'minHeight',
26
- 'maxHeight',
27
- 'aspectRatio',
28
-
29
- // Indents and margins
30
- // Отступы и поля
31
- 'margin',
32
- 'marginTop',
33
- 'marginRight',
34
- 'marginBottom',
35
- 'marginLeft',
36
- 'marginHorizontal',
37
- 'marginVertical',
38
- 'padding',
39
- 'paddingTop',
40
- 'paddingRight',
41
- 'paddingBottom',
42
- 'paddingLeft',
43
- 'paddingHorizontal',
44
- 'paddingVertical',
45
- 'gap',
46
-
47
- // Borders and shadows
48
- // Границы и тени
49
- 'borderWidth',
50
- 'borderColor',
51
- 'borderRadius',
52
- 'borderTopWidth',
53
- 'borderRightWidth',
54
- 'borderBottomWidth',
55
- 'borderLeftWidth',
56
- 'borderTopColor',
57
- 'borderRightColor',
58
- 'borderBottomColor',
59
- 'borderLeftColor',
60
- 'borderStyle',
61
- 'borderEndWidth',
62
- 'borderStartWidth',
63
- 'borderTopLeftRadius',
64
- 'borderTopRightRadius',
65
- 'borderBottomLeftRadius',
66
- 'borderBottomRightRadius',
67
- 'shadowColor',
68
- 'shadowOffset',
69
- 'shadowOpacity',
70
- 'shadowRadius',
71
- 'elevation',
72
-
73
- // Color and background
74
- // Цвет и фон
75
- 'backgroundColor',
76
- 'opacity',
77
-
78
- // Fonts and text
79
- // Шрифты и текст
80
- 'color',
81
- 'fontSize',
82
- 'fontWeight',
83
- 'fontStyle',
84
- 'fontFamily',
85
- 'lineHeight',
86
- 'letterSpacing',
87
- 'textAlign',
88
- 'textDecorationLine',
89
- 'textDecorationStyle',
90
- 'textDecorationColor',
91
- 'textTransform',
92
- 'textShadowColor',
93
- 'textShadowOffset',
94
- 'textShadowRadius',
95
- 'includeFontPadding',
96
- 'textAlignVertical',
97
- 'writingDirection',
98
-
99
- // Other
100
- // Прочее
101
- 'overflow',
102
- 'display',
103
- 'resizeMode',
104
- 'backfaceVisibility',
105
- 'tintColor',
106
- 'overlayColor',
107
- 'end',
108
- 'start',
109
- 'direction',
110
- 'transform',
111
- 'transformOrigin',
112
- 'translateX',
113
- 'translateY',
114
- 'scale',
115
- 'rotate',
116
- 'rotateX',
117
- 'rotateY',
118
- 'perspective',
119
- 'cursor',
120
- ]
121
-
122
- export { eslintStyleObjects }
@@ -1,65 +0,0 @@
1
- // In what order they are written, that’s how they will be sorted
2
- // В каком порядке они записаны, так они и будут отсортированы
3
- const eslintStyleProps = [
4
- 'width',
5
- 'height',
6
- 'minWidth',
7
- 'minHeight',
8
- 'maxWidth',
9
- 'maxHeight',
10
- 'aspectRatio',
11
- 'font',
12
- 'color',
13
- 'labelTextColor',
14
- 'labelTextSize',
15
- 'fill',
16
- 'fillHover',
17
- 'background',
18
- 'background-position',
19
- 'background-repeat',
20
- 'background-size',
21
- 'padding',
22
- 'margin',
23
- 'border',
24
- 'borderWidth',
25
- 'borderColor',
26
- 'borderStyle',
27
- 'borderRadius',
28
- 'borderLeft',
29
- 'borderTop',
30
- 'borderRight',
31
- 'borderBottom',
32
- 'float',
33
- 'clear',
34
- 'position',
35
- 'overflow',
36
- 'content',
37
- 'display',
38
- 'flex',
39
- 'flexDirection',
40
- 'flexWrap',
41
- 'flexFlow',
42
- 'order',
43
- 'justify-content',
44
- 'align-items',
45
- 'align-self',
46
- 'align-content',
47
- 'flexGrow',
48
- 'flexShrink',
49
- 'flexBasis',
50
- 'visibility',
51
- 'box-sizing',
52
- 'box-shadow',
53
- 'left',
54
- 'top',
55
- 'right',
56
- 'bottom',
57
- 'verticalAlign',
58
- 'zIndex',
59
- 'transform',
60
- 'transition',
61
- 'opacity',
62
- 'cursor',
63
- ]
64
-
65
- export { eslintStyleProps }