@application-kit/lint-config 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @application-kit/lint-config
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 61cb664: `useTranslate()` во входе `@application-kit/i18n/vue` — перевод и локаль для компонента без импорта `vue-i18n`. Пресет `@application-kit/lint-config` запрещает импорт `vue-i18n` в `src/libs` и `src/modules`.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 90dbfbc: `import-x/no-internal-modules` разрешает новый вход `@application-kit/authorization/vue`.
|
|
12
|
+
- Updated dependencies [30e0656]
|
|
13
|
+
- @application-kit/ui@0.4.0
|
|
14
|
+
|
|
15
|
+
## 0.4.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- cb146ba: Подпути `@application-kit/security/password-hasher` и `@application-kit/security/password-strength` (хешер и оценщик
|
|
20
|
+
стойкости пароля) добавлены в allow-list импортов приложения.
|
|
21
|
+
|
|
3
22
|
## 0.3.1
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -42,8 +42,8 @@ export default [
|
|
|
42
42
|
|---------|---------------------------------|
|
|
43
43
|
| `src/modules/*/**` кроме оболочки | внутренности оболочки, второй путь словаря ролей, вендор, внутренности субмодулей |
|
|
44
44
|
| `src/modules/*/modules/**` | то же без внутренностей субмодулей: изнутри субмодуля можно |
|
|
45
|
-
| `src/libs/**` | импорт модулей,
|
|
46
|
-
| `src/modules/<оболочка>/**` | второй путь словаря ролей,
|
|
45
|
+
| `src/libs/**` | импорт модулей, вендор, `vue-i18n` |
|
|
46
|
+
| `src/modules/<оболочка>/**` | второй путь словаря ролей, вендор, `vue-i18n` |
|
|
47
47
|
| `src/**/*.vue` | классы вендора — правилом `vue/no-restricted-class` |
|
|
48
48
|
| `src/modules/**/user-interface/client/**` | набор корня модуля и серверный GraphQL-класс |
|
|
49
49
|
| `src/modules/<оболочка>/user-interface/**` | набор оболочки, внутренности субмодулей и серверный GraphQL-класс |
|
|
@@ -5,6 +5,7 @@ const APPLICATION_KIT_ENTRIES = [
|
|
|
5
5
|
'@application-kit/*/nest',
|
|
6
6
|
'@application-kit/*/testing',
|
|
7
7
|
'@application-kit/*/vite-plugin',
|
|
8
|
+
'@application-kit/authorization/vue',
|
|
8
9
|
'@application-kit/bootstrap/*',
|
|
9
10
|
'@application-kit/feature-flags/vue',
|
|
10
11
|
'@application-kit/graphql/client',
|
|
@@ -13,6 +14,8 @@ const APPLICATION_KIT_ENTRIES = [
|
|
|
13
14
|
'@application-kit/kafka/event-contract',
|
|
14
15
|
'@application-kit/observability/*',
|
|
15
16
|
'@application-kit/observability/health/*',
|
|
17
|
+
'@application-kit/security/password-hasher',
|
|
18
|
+
'@application-kit/security/password-strength',
|
|
16
19
|
'@application-kit/testing/stryker',
|
|
17
20
|
'@application-kit/testing/vitest',
|
|
18
21
|
'@application-kit/testing/vitest/fast-bcrypt',
|
|
@@ -8,6 +8,10 @@ const UI_VENDOR_IMPORT = {
|
|
|
8
8
|
message: 'UI-вендор импортируется только пакетом @application-kit/ui: в приложении — его обёртки.',
|
|
9
9
|
regex: UI_VENDOR_IMPORT_PATTERN,
|
|
10
10
|
};
|
|
11
|
+
const I18N_VENDOR_IMPORT = {
|
|
12
|
+
message: 'vue-i18n импортируется только пакетом @application-kit/i18n: в компонентах — useTranslate из входа /vue.',
|
|
13
|
+
regex: '^vue-i18n$',
|
|
14
|
+
};
|
|
11
15
|
const SERVER_GRAPHQL_CLASS_IMPORT = {
|
|
12
16
|
message: 'Клиент не типизируется серверным GraphQL-классом: '
|
|
13
17
|
+ 'общая часть — wire-контракт в @/modules/<module>/shared/*.wire.',
|
|
@@ -55,13 +59,16 @@ export const defineRestrictedImportBlocks = (options) => {
|
|
|
55
59
|
const { roleDictionary, shellModule } = options;
|
|
56
60
|
const shellInternals = shellInternalsImport(shellModule);
|
|
57
61
|
const roleDictionaryPath = roleDictionaryImport(roleDictionary);
|
|
58
|
-
const modules = [shellInternals, roleDictionaryPath, UI_VENDOR_IMPORT];
|
|
59
|
-
const shell = [roleDictionaryPath, UI_VENDOR_IMPORT];
|
|
62
|
+
const modules = [shellInternals, roleDictionaryPath, UI_VENDOR_IMPORT, I18N_VENDOR_IMPORT];
|
|
63
|
+
const shell = [roleDictionaryPath, UI_VENDOR_IMPORT, I18N_VENDOR_IMPORT];
|
|
60
64
|
const moduleRoot = [...modules, SUBMODULE_INTERNALS_IMPORT];
|
|
61
65
|
return [
|
|
62
66
|
{ files: ['src/modules/*/**'], ignores: [`src/modules/${shellModule}/**`], rules: restrictedImports(moduleRoot) },
|
|
63
67
|
{ files: ['src/modules/*/modules/**'], rules: restrictedImports(modules) },
|
|
64
|
-
{
|
|
68
|
+
{
|
|
69
|
+
files: ['src/libs/**'],
|
|
70
|
+
rules: restrictedImports([LIBS_TO_MODULES_IMPORT, UI_VENDOR_IMPORT, I18N_VENDOR_IMPORT]),
|
|
71
|
+
},
|
|
65
72
|
{ files: [`src/modules/${shellModule}/**`], rules: restrictedImports(shell) },
|
|
66
73
|
{ files: ['src/**/*.vue'], rules: { 'vue/no-restricted-class': ['error', UI_VENDOR_CLASS_PATTERN] } },
|
|
67
74
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@application-kit/lint-config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Пресет ESLint приложения на пакетах @application-kit: flat-config с границами слоёв, разрешёнными подпутями пакетов и запретами UI-вендора",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint-config",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"test:unit": "vitest run"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@application-kit/ui": "^0.
|
|
45
|
+
"@application-kit/ui": "^0.4.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@libs-for-dev/eslint-rules": "3.4.0",
|