@futdevpro/dynamo-eslint 1.12.1 → 1.14.2

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.
Files changed (106) hide show
  1. package/.github/workflows/main.yml +1 -2
  2. package/README.md +34 -0
  3. package/build/configs/base.d.ts +7 -3
  4. package/build/configs/base.d.ts.map +1 -1
  5. package/build/configs/base.js +9 -4
  6. package/build/configs/base.js.map +1 -1
  7. package/build/configs/fsm.d.ts +13 -9
  8. package/build/configs/fsm.d.ts.map +1 -1
  9. package/build/configs/fsm.js +6 -2
  10. package/build/configs/fsm.js.map +1 -1
  11. package/build/configs/ngx-package.d.ts +8 -3
  12. package/build/configs/ngx-package.d.ts.map +1 -1
  13. package/build/configs/ngx-package.js +4 -0
  14. package/build/configs/ngx-package.js.map +1 -1
  15. package/build/configs/ngx.d.ts +8 -3
  16. package/build/configs/ngx.d.ts.map +1 -1
  17. package/build/configs/ngx.js +4 -0
  18. package/build/configs/ngx.js.map +1 -1
  19. package/build/configs/nts-package.d.ts +8 -3
  20. package/build/configs/nts-package.d.ts.map +1 -1
  21. package/build/configs/nts-package.js +4 -0
  22. package/build/configs/nts-package.js.map +1 -1
  23. package/build/configs/nts.d.ts +8 -3
  24. package/build/configs/nts.d.ts.map +1 -1
  25. package/build/configs/nts.js +4 -0
  26. package/build/configs/nts.js.map +1 -1
  27. package/build/plugin/index.d.ts +4 -0
  28. package/build/plugin/index.d.ts.map +1 -1
  29. package/build/plugin/index.js +7 -1
  30. package/build/plugin/index.js.map +1 -1
  31. package/build/plugin/rules/import/import-order.d.ts +4 -0
  32. package/build/plugin/rules/import/import-order.d.ts.map +1 -0
  33. package/build/plugin/rules/{import-order.js → import/import-order.js} +16 -17
  34. package/build/plugin/rules/import/import-order.js.map +1 -0
  35. package/build/plugin/rules/import/import-order.spec.d.ts.map +1 -0
  36. package/build/plugin/rules/{import-order.spec.js → import/import-order.spec.js} +40 -40
  37. package/build/plugin/rules/import/import-order.spec.js.map +1 -0
  38. package/build/plugin/rules/import/no-import-type.d.ts +4 -0
  39. package/build/plugin/rules/import/no-import-type.d.ts.map +1 -0
  40. package/build/plugin/rules/import/no-import-type.js +35 -0
  41. package/build/plugin/rules/import/no-import-type.js.map +1 -0
  42. package/build/plugin/rules/import/no-import-type.spec.d.ts +2 -0
  43. package/build/plugin/rules/import/no-import-type.spec.d.ts.map +1 -0
  44. package/build/plugin/rules/import/no-import-type.spec.js +60 -0
  45. package/build/plugin/rules/import/no-import-type.spec.js.map +1 -0
  46. package/build/plugin/rules/import/no-js-import.d.ts +4 -0
  47. package/build/plugin/rules/import/no-js-import.d.ts.map +1 -0
  48. package/build/plugin/rules/import/no-js-import.js +33 -0
  49. package/build/plugin/rules/import/no-js-import.js.map +1 -0
  50. package/build/plugin/rules/import/no-js-import.spec.d.ts +2 -0
  51. package/build/plugin/rules/import/no-js-import.spec.d.ts.map +1 -0
  52. package/build/plugin/rules/import/no-js-import.spec.js +68 -0
  53. package/build/plugin/rules/import/no-js-import.spec.js.map +1 -0
  54. package/build/plugin/rules/naming-patterns.d.ts +1 -1
  55. package/build/plugin/rules/naming-patterns.d.ts.map +1 -1
  56. package/build/plugin/rules/naming-patterns.spec.js +1 -1
  57. package/build/plugin/rules/naming-patterns.spec.js.map +1 -1
  58. package/build/scripts/dynamo-fix.d.ts +3 -0
  59. package/build/scripts/dynamo-fix.d.ts.map +1 -0
  60. package/build/scripts/dynamo-fix.js +92 -0
  61. package/build/scripts/dynamo-fix.js.map +1 -0
  62. package/build/scripts/eslintrc-audit.js.map +1 -1
  63. package/build/scripts/fix-return-types.d.ts +3 -0
  64. package/build/scripts/fix-return-types.d.ts.map +1 -0
  65. package/build/scripts/fix-return-types.js +109 -0
  66. package/build/scripts/fix-return-types.js.map +1 -0
  67. package/build/scripts/validate-imports.js +10 -9
  68. package/build/scripts/validate-imports.js.map +1 -1
  69. package/build/scripts/validate-naming.js +11 -26
  70. package/build/scripts/validate-naming.js.map +1 -1
  71. package/build-test/plugin/rules/import-order.d.ts +1 -1
  72. package/build-test/plugin/rules/naming-patterns.d.ts +1 -1
  73. package/eslint.config.js +55 -0
  74. package/futdevpro-dynamo-eslint-01.14.2.tgz +0 -0
  75. package/package.json +27 -18
  76. package/samples/poc-violations.ts +32 -3
  77. package/src/configs/base.ts +14 -4
  78. package/src/configs/fsm.ts +6 -2
  79. package/src/configs/ngx-package.ts +4 -0
  80. package/src/configs/ngx.ts +4 -0
  81. package/src/configs/nts-package.ts +4 -0
  82. package/src/configs/nts.ts +5 -1
  83. package/src/plugin/index.ts +9 -1
  84. package/src/plugin/rules/{import-order.spec.ts → import/import-order.spec.ts} +46 -40
  85. package/src/plugin/rules/{import-order.ts → import/import-order.ts} +20 -18
  86. package/src/plugin/rules/import/no-import-type.spec.ts +69 -0
  87. package/src/plugin/rules/import/no-import-type.ts +37 -0
  88. package/src/plugin/rules/import/no-js-import.spec.ts +82 -0
  89. package/src/plugin/rules/import/no-js-import.ts +35 -0
  90. package/src/plugin/rules/naming-patterns.spec.ts +3 -1
  91. package/src/plugin/rules/naming-patterns.ts +1 -1
  92. package/src/scripts/dynamo-fix.ts +108 -0
  93. package/src/scripts/eslintrc-audit.ts +6 -2
  94. package/src/scripts/fix-return-types.ts +146 -0
  95. package/src/scripts/validate-imports.ts +95 -13
  96. package/src/scripts/validate-naming.ts +16 -28
  97. package/.eslintrc.json +0 -16
  98. package/INTEGRATION.md +0 -74
  99. package/POC-README.md +0 -147
  100. package/build/plugin/rules/import-order.d.ts +0 -4
  101. package/build/plugin/rules/import-order.d.ts.map +0 -1
  102. package/build/plugin/rules/import-order.js.map +0 -1
  103. package/build/plugin/rules/import-order.spec.d.ts.map +0 -1
  104. package/build/plugin/rules/import-order.spec.js.map +0 -1
  105. package/futdevpro-dynamo-eslint-01.12.01.tgz +0 -0
  106. /package/build/plugin/rules/{import-order.spec.d.ts → import/import-order.spec.d.ts} +0 -0
@@ -230,8 +230,7 @@ jobs:
230
230
  name: 🚀 Deploy to NPM
231
231
  runs-on: ubuntu-latest
232
232
  timeout-minutes: 20
233
- # if: ${{ needs.check_version.outputs.version_published != 'true' }}
234
- if: always()
233
+ if: ${{ needs.check_version.outputs.version_published != 'true' }}
235
234
  steps:
236
235
  - name: Checkout code
237
236
  uses: actions/checkout@v2
package/README.md CHANGED
@@ -31,6 +31,40 @@ Shared ESLint presets and Dynamo validators for Node TS and Angular.
31
31
  - nts-package
32
32
  - ngx-package
33
33
 
34
+ ## Custom Rules
35
+
36
+ This package includes custom ESLint rules for Dynamo conventions:
37
+
38
+ - `@futdevpro/dynamo/import-order` - Enforces import ordering and forbids certain patterns
39
+ - `@futdevpro/dynamo/naming-patterns` - Enforces naming conventions using DyFM patterns
40
+
41
+ ## Validation Scripts
42
+
43
+ Use the provided CLI tools to validate your codebase:
44
+
45
+ ```bash
46
+ # Validate import ordering across all TypeScript files
47
+ dynamo-validate-imports
48
+
49
+ # Validate naming conventions across all TypeScript files
50
+ dynamo-validate-naming
51
+
52
+ # Audit ESLint configurations for duplicate rules
53
+ dynamo-eslintrc-audit
54
+ ```
55
+
56
+ Or use npm scripts if this package is installed locally:
57
+
58
+ ```bash
59
+ npm run validate:imports
60
+ npm run validate:naming
61
+ npm run audit:eslintrc
62
+ ```
63
+
64
+ ## Self-Linting
65
+
66
+ This package uses its own presets and rules for self-linting. The ESLint v9 flat config is in `eslint.config.js`.
67
+
34
68
  ## Audit
35
69
 
36
70
  Run `dynamo-eslintrc-audit` in a workspace to analyze duplicated rules.
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Base Rulesets For Dynamo Based Systems
3
+ */
1
4
  declare const _default: {
2
5
  env: {
3
6
  browser: boolean;
@@ -66,15 +69,16 @@ declare const _default: {
66
69
  quotes: (string | {
67
70
  allowTemplateLiterals: boolean;
68
71
  })[];
69
- '@typescript-eslint/quotes': (string | {
70
- allowTemplateLiterals: boolean;
71
- })[];
72
72
  '@typescript-eslint/no-unused-vars': string;
73
73
  '@typescript-eslint/explicit-function-return-type': (string | {
74
74
  allowTypedFunctionExpressions: boolean;
75
75
  })[];
76
76
  '@typescript-eslint/no-explicit-any': string;
77
77
  '@typescript-eslint/typedef': string;
78
+ '@futdevpro/dynamo/import-order': string;
79
+ '@futdevpro/dynamo/naming-patterns': string;
80
+ '@futdevpro/dynamo/no-import-type': string;
81
+ '@futdevpro/dynamo/no-js-import': string;
78
82
  };
79
83
  };
80
84
  export = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAgDE"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":"AACA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,kBAsDE"}
@@ -7,6 +7,7 @@ module.exports = {
7
7
  '@typescript-eslint',
8
8
  'unused-imports',
9
9
  'max-params-no-constructor',
10
+ '@futdevpro/dynamo',
10
11
  ],
11
12
  extends: [
12
13
  'eslint:recommended',
@@ -14,11 +15,11 @@ module.exports = {
14
15
  ],
15
16
  rules: {
16
17
  'no-warning-comments': ['warn', { terms: ['todo', 'fixme', 'removable', '??'], location: 'anywhere' }],
17
- indent: ['warn', 2, { SwitchCase: 1 }],
18
+ 'indent': ['warn', 2, { SwitchCase: 1 }],
18
19
  'max-len': ['warn', { code: 100, comments: 120 }],
19
20
  'max-lines': ['warn', 1000],
20
21
  'linebreak-style': 'off',
21
- semi: ['warn', 'always'],
22
+ 'semi': ['warn', 'always'],
22
23
  'no-unused-vars': 'off',
23
24
  'no-prototype-builtins': 'off',
24
25
  'no-empty': 'warn',
@@ -40,12 +41,16 @@ module.exports = {
40
41
  'no-duplicate-imports': 'warn',
41
42
  'max-params': ['warn', 4],
42
43
  'max-params-no-constructor/max-params-no-constructor': ['warn', 5],
43
- quotes: ['warn', 'single', { allowTemplateLiterals: true }],
44
- '@typescript-eslint/quotes': ['warn', 'single', { allowTemplateLiterals: true }],
44
+ 'quotes': ['warn', 'single', { allowTemplateLiterals: true }],
45
45
  '@typescript-eslint/no-unused-vars': 'warn',
46
46
  '@typescript-eslint/explicit-function-return-type': ['warn', { allowTypedFunctionExpressions: false }],
47
47
  '@typescript-eslint/no-explicit-any': 'warn',
48
48
  '@typescript-eslint/typedef': 'warn',
49
+ // Dynamo custom rules
50
+ '@futdevpro/dynamo/import-order': 'warn',
51
+ '@futdevpro/dynamo/naming-patterns': 'warn',
52
+ '@futdevpro/dynamo/no-import-type': 'warn',
53
+ '@futdevpro/dynamo/no-js-import': 'warn',
49
54
  },
50
55
  };
51
56
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":";AAAA,iBAAS;IACP,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACpC,MAAM,EAAE,2BAA2B;IACnC,aAAa,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IACxC,OAAO,EAAE;QACP,oBAAoB;QACpB,gBAAgB;QAChB,2BAA2B;KAC5B;IACD,OAAO,EAAE;QACP,oBAAoB;QACpB,uCAAuC;KACxC;IACD,KAAK,EAAE;QACL,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACtG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACtC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACjD,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;QAC3B,iBAAiB,EAAE,KAAK;QACxB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,gBAAgB,EAAE,KAAK;QACvB,uBAAuB,EAAE,KAAK;QAC9B,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACtJ,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;QAC3D,sBAAsB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC1C,uBAAuB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QAC9F,iCAAiC,EAAE;YACjC,MAAM;YACN,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAC,SAAS,CAAC,EAAE;YAClG,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;YACvE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAC,KAAK,EAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAC,KAAK,EAAC,KAAK,CAAC,EAAE;SAC/E;QACD,cAAc,EAAE,MAAM;QACtB,sBAAsB,EAAE,KAAK;QAC7B,gBAAgB,EAAE,KAAK;QACvB,iBAAiB,EAAE,MAAM;QACzB,gBAAgB,EAAE,MAAM;QACxB,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACzB,qDAAqD,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;QAC3D,2BAA2B,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;QAChF,mCAAmC,EAAE,MAAM;QAC3C,kDAAkD,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC;QACtG,oCAAoC,EAAE,MAAM;QAC5C,4BAA4B,EAAE,MAAM;KACrC;CACF,CAAC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,19 @@
1
+ /**
2
+ * Rulesets For Dynamo Based Systems
3
+ * FSM: Full Stack Module
4
+ */
1
5
  declare const config: {
2
6
  env: {
3
- node: boolean;
7
+ browser: boolean;
4
8
  es2021: boolean;
5
9
  };
10
+ parser: string;
6
11
  parserOptions: {
7
- sourceType: string;
8
12
  ecmaVersion: string;
9
13
  };
14
+ plugins: string[];
15
+ extends: string[];
10
16
  rules: {
11
- 'max-lines': (string | number)[];
12
17
  'no-warning-comments': (string | {
13
18
  terms: string[];
14
19
  location: string;
@@ -20,6 +25,7 @@ declare const config: {
20
25
  code: number;
21
26
  comments: number;
22
27
  })[];
28
+ 'max-lines': (string | number)[];
23
29
  'linebreak-style': string;
24
30
  semi: string[];
25
31
  'no-unused-vars': string;
@@ -64,19 +70,17 @@ declare const config: {
64
70
  quotes: (string | {
65
71
  allowTemplateLiterals: boolean;
66
72
  })[];
67
- '@typescript-eslint/quotes': (string | {
68
- allowTemplateLiterals: boolean;
69
- })[];
70
73
  '@typescript-eslint/no-unused-vars': string;
71
74
  '@typescript-eslint/explicit-function-return-type': (string | {
72
75
  allowTypedFunctionExpressions: boolean;
73
76
  })[];
74
77
  '@typescript-eslint/no-explicit-any': string;
75
78
  '@typescript-eslint/typedef': string;
79
+ '@futdevpro/dynamo/import-order': string;
80
+ '@futdevpro/dynamo/naming-patterns': string;
81
+ '@futdevpro/dynamo/no-import-type': string;
82
+ '@futdevpro/dynamo/no-js-import': string;
76
83
  };
77
- parser: string;
78
- plugins: string[];
79
- extends: string[];
80
84
  };
81
85
  export = config;
82
86
  //# sourceMappingURL=fsm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fsm.d.ts","sourceRoot":"","sources":["../../src/configs/fsm.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEX,CAAC;AAEF,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"fsm.d.ts","sourceRoot":"","sources":["../../src/configs/fsm.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEX,CAAC;AAEF,SAAS,MAAM,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
- const nts = require("./nts");
2
+ const base = require("./base");
3
+ /**
4
+ * Rulesets For Dynamo Based Systems
5
+ * FSM: Full Stack Module
6
+ */
3
7
  const config = {
4
- ...nts,
8
+ ...base,
5
9
  };
6
10
  module.exports = config;
7
11
  //# sourceMappingURL=fsm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fsm.js","sourceRoot":"","sources":["../../src/configs/fsm.ts"],"names":[],"mappings":";AAAA,6BAA8B;AAE9B,MAAM,MAAM,GAAG;IACb,GAAG,GAAG;CACP,CAAC;AAEF,iBAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"fsm.js","sourceRoot":"","sources":["../../src/configs/fsm.ts"],"names":[],"mappings":";AAAA,+BAAgC;AAEhC;;;GAGG;AACH,MAAM,MAAM,GAAG;IACb,GAAG,IAAI;CACR,CAAC;AAEF,iBAAS,MAAM,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Rulesets For Dynamo Based Systems
3
+ * NGX-PACKAGE: Angular Package
4
+ */
1
5
  declare const config: {
2
6
  env: {
3
7
  browser: boolean;
@@ -66,15 +70,16 @@ declare const config: {
66
70
  quotes: (string | {
67
71
  allowTemplateLiterals: boolean;
68
72
  })[];
69
- '@typescript-eslint/quotes': (string | {
70
- allowTemplateLiterals: boolean;
71
- })[];
72
73
  '@typescript-eslint/no-unused-vars': string;
73
74
  '@typescript-eslint/explicit-function-return-type': (string | {
74
75
  allowTypedFunctionExpressions: boolean;
75
76
  })[];
76
77
  '@typescript-eslint/no-explicit-any': string;
77
78
  '@typescript-eslint/typedef': string;
79
+ '@futdevpro/dynamo/import-order': string;
80
+ '@futdevpro/dynamo/naming-patterns': string;
81
+ '@futdevpro/dynamo/no-import-type': string;
82
+ '@futdevpro/dynamo/no-js-import': string;
78
83
  };
79
84
  };
80
85
  export = config;
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-package.d.ts","sourceRoot":"","sources":["../../src/configs/ngx-package.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEX,CAAC;AAEF,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"ngx-package.d.ts","sourceRoot":"","sources":["../../src/configs/ngx-package.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEX,CAAC;AAEF,SAAS,MAAM,CAAC"}
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
  const ngx = require("./ngx");
3
+ /**
4
+ * Rulesets For Dynamo Based Systems
5
+ * NGX-PACKAGE: Angular Package
6
+ */
3
7
  const config = {
4
8
  ...ngx,
5
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-package.js","sourceRoot":"","sources":["../../src/configs/ngx-package.ts"],"names":[],"mappings":";AAAA,6BAA8B;AAE9B,MAAM,MAAM,GAAG;IACb,GAAG,GAAG;CACP,CAAC;AAEF,iBAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"ngx-package.js","sourceRoot":"","sources":["../../src/configs/ngx-package.ts"],"names":[],"mappings":";AAAA,6BAA8B;AAE9B;;;GAGG;AACH,MAAM,MAAM,GAAG;IACb,GAAG,GAAG;CACP,CAAC;AAEF,iBAAS,MAAM,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Rulesets For Dynamo Based Systems
3
+ * NGX: Angular Projects
4
+ */
1
5
  declare const config: {
2
6
  env: {
3
7
  browser: boolean;
@@ -66,15 +70,16 @@ declare const config: {
66
70
  quotes: (string | {
67
71
  allowTemplateLiterals: boolean;
68
72
  })[];
69
- '@typescript-eslint/quotes': (string | {
70
- allowTemplateLiterals: boolean;
71
- })[];
72
73
  '@typescript-eslint/no-unused-vars': string;
73
74
  '@typescript-eslint/explicit-function-return-type': (string | {
74
75
  allowTypedFunctionExpressions: boolean;
75
76
  })[];
76
77
  '@typescript-eslint/no-explicit-any': string;
77
78
  '@typescript-eslint/typedef': string;
79
+ '@futdevpro/dynamo/import-order': string;
80
+ '@futdevpro/dynamo/naming-patterns': string;
81
+ '@futdevpro/dynamo/no-import-type': string;
82
+ '@futdevpro/dynamo/no-js-import': string;
78
83
  };
79
84
  };
80
85
  export = config;
@@ -1 +1 @@
1
- {"version":3,"file":"ngx.d.ts","sourceRoot":"","sources":["../../src/configs/ngx.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOX,CAAC;AAEF,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"ngx.d.ts","sourceRoot":"","sources":["../../src/configs/ngx.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOX,CAAC;AAEF,SAAS,MAAM,CAAC"}
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
  const base = require("./base");
3
+ /**
4
+ * Rulesets For Dynamo Based Systems
5
+ * NGX: Angular Projects
6
+ */
3
7
  const config = {
4
8
  ...base,
5
9
  env: { browser: true, es2021: true },
@@ -1 +1 @@
1
- {"version":3,"file":"ngx.js","sourceRoot":"","sources":["../../src/configs/ngx.ts"],"names":[],"mappings":";AAAA,+BAAgC;AAEhC,MAAM,MAAM,GAAG;IACb,GAAG,IAAI;IACP,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACpC,OAAO,EAAE;QACP,GAAG,IAAI,CAAC,OAAO;QACf,oCAAoC;KACrC;CACF,CAAC;AAEF,iBAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"ngx.js","sourceRoot":"","sources":["../../src/configs/ngx.ts"],"names":[],"mappings":";AAAA,+BAAgC;AAEhC;;;GAGG;AACH,MAAM,MAAM,GAAG;IACb,GAAG,IAAI;IACP,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACpC,OAAO,EAAE;QACP,GAAG,IAAI,CAAC,OAAO;QACf,oCAAoC;KACrC;CACF,CAAC;AAEF,iBAAS,MAAM,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Rulesets For Dynamo Based Systems
3
+ * NTS-PACKAGE: Node TypeScript Package
4
+ */
1
5
  declare const config: {
2
6
  rules: {
3
7
  '@typescript-eslint/ban-types': string;
@@ -58,14 +62,15 @@ declare const config: {
58
62
  quotes: (string | {
59
63
  allowTemplateLiterals: boolean;
60
64
  })[];
61
- '@typescript-eslint/quotes': (string | {
62
- allowTemplateLiterals: boolean;
63
- })[];
64
65
  '@typescript-eslint/no-unused-vars': string;
65
66
  '@typescript-eslint/explicit-function-return-type': (string | {
66
67
  allowTypedFunctionExpressions: boolean;
67
68
  })[];
68
69
  '@typescript-eslint/typedef': string;
70
+ '@futdevpro/dynamo/import-order': string;
71
+ '@futdevpro/dynamo/naming-patterns': string;
72
+ '@futdevpro/dynamo/no-import-type': string;
73
+ '@futdevpro/dynamo/no-js-import': string;
69
74
  };
70
75
  env: {
71
76
  node: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"nts-package.d.ts","sourceRoot":"","sources":["../../src/configs/nts-package.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOX,CAAC;AAEF,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"nts-package.d.ts","sourceRoot":"","sources":["../../src/configs/nts-package.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOX,CAAC;AAEF,SAAS,MAAM,CAAC"}
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
  const nts = require("./nts");
3
+ /**
4
+ * Rulesets For Dynamo Based Systems
5
+ * NTS-PACKAGE: Node TypeScript Package
6
+ */
3
7
  const config = {
4
8
  ...nts,
5
9
  rules: {
@@ -1 +1 @@
1
- {"version":3,"file":"nts-package.js","sourceRoot":"","sources":["../../src/configs/nts-package.ts"],"names":[],"mappings":";AAAA,6BAA8B;AAE9B,MAAM,MAAM,GAAG;IACb,GAAG,GAAG;IACN,KAAK,EAAE;QACL,GAAG,GAAG,CAAC,KAAK;QACZ,8BAA8B,EAAE,KAAK;QACrC,oCAAoC,EAAE,KAAK;KAC5C;CACF,CAAC;AAEF,iBAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"nts-package.js","sourceRoot":"","sources":["../../src/configs/nts-package.ts"],"names":[],"mappings":";AAAA,6BAA8B;AAE9B;;;GAGG;AACH,MAAM,MAAM,GAAG;IACb,GAAG,GAAG;IACN,KAAK,EAAE;QACL,GAAG,GAAG,CAAC,KAAK;QACZ,8BAA8B,EAAE,KAAK;QACrC,oCAAoC,EAAE,KAAK;KAC5C;CACF,CAAC;AAEF,iBAAS,MAAM,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Rulesets For Dynamo Based Systems
3
+ * NTS: Node TypeScript
4
+ */
1
5
  declare const config: {
2
6
  env: {
3
7
  node: boolean;
@@ -64,15 +68,16 @@ declare const config: {
64
68
  quotes: (string | {
65
69
  allowTemplateLiterals: boolean;
66
70
  })[];
67
- '@typescript-eslint/quotes': (string | {
68
- allowTemplateLiterals: boolean;
69
- })[];
70
71
  '@typescript-eslint/no-unused-vars': string;
71
72
  '@typescript-eslint/explicit-function-return-type': (string | {
72
73
  allowTypedFunctionExpressions: boolean;
73
74
  })[];
74
75
  '@typescript-eslint/no-explicit-any': string;
75
76
  '@typescript-eslint/typedef': string;
77
+ '@futdevpro/dynamo/import-order': string;
78
+ '@futdevpro/dynamo/naming-patterns': string;
79
+ '@futdevpro/dynamo/no-import-type': string;
80
+ '@futdevpro/dynamo/no-js-import': string;
76
81
  };
77
82
  parser: string;
78
83
  plugins: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"nts.d.ts","sourceRoot":"","sources":["../../src/configs/nts.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQX,CAAC;AAEF,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"nts.d.ts","sourceRoot":"","sources":["../../src/configs/nts.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQX,CAAC;AAEF,SAAS,MAAM,CAAC"}
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
  const base = require("./base");
3
+ /**
4
+ * Rulesets For Dynamo Based Systems
5
+ * NTS: Node TypeScript
6
+ */
3
7
  const config = {
4
8
  ...base,
5
9
  env: { node: true, es2021: true },
@@ -1 +1 @@
1
- {"version":3,"file":"nts.js","sourceRoot":"","sources":["../../src/configs/nts.ts"],"names":[],"mappings":";AAAA,+BAAgC;AAEhC,MAAM,MAAM,GAAG;IACb,GAAG,IAAI;IACP,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC9D,KAAK,EAAE;QACL,GAAG,IAAI,CAAC,KAAK;QACb,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;KAC5B;CACF,CAAC;AAEF,iBAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"nts.js","sourceRoot":"","sources":["../../src/configs/nts.ts"],"names":[],"mappings":";AAAA,+BAAgC;AAEhC;;;GAGG;AACH,MAAM,MAAM,GAAG;IACb,GAAG,IAAI;IACP,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC9D,KAAK,EAAE;QACL,GAAG,IAAI,CAAC,KAAK;QACb,WAAW,EAAE,CAAE,MAAM,EAAE,IAAI,CAAE;KAC9B;CACF,CAAC;AAEF,iBAAS,MAAM,CAAC"}
@@ -1,12 +1,16 @@
1
1
  declare const _default: {
2
2
  rules: {
3
3
  'import-order': import("eslint").Rule.RuleModule;
4
+ 'no-import-type': import("eslint").Rule.RuleModule;
5
+ 'no-js-import': import("eslint").Rule.RuleModule;
4
6
  'naming-patterns': import("eslint").Rule.RuleModule;
5
7
  };
6
8
  configs: {
7
9
  recommended: {
8
10
  rules: {
9
11
  '@futdevpro/dynamo/import-order': string;
12
+ '@futdevpro/dynamo/no-import-type': string;
13
+ '@futdevpro/dynamo/no-js-import': string;
10
14
  '@futdevpro/dynamo/naming-patterns': string;
11
15
  };
12
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,kBAaE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAKA,kBAmBE"}
@@ -1,16 +1,22 @@
1
1
  "use strict";
2
2
  const tslib_1 = require("tslib");
3
- const import_order_1 = tslib_1.__importDefault(require("./rules/import-order"));
3
+ const import_order_1 = tslib_1.__importDefault(require("./rules/import/import-order"));
4
4
  const naming_patterns_1 = tslib_1.__importDefault(require("./rules/naming-patterns"));
5
+ const no_import_type_1 = tslib_1.__importDefault(require("./rules/import/no-import-type"));
6
+ const no_js_import_1 = tslib_1.__importDefault(require("./rules/import/no-js-import"));
5
7
  module.exports = {
6
8
  rules: {
7
9
  'import-order': import_order_1.default,
10
+ 'no-import-type': no_import_type_1.default,
11
+ 'no-js-import': no_js_import_1.default,
8
12
  'naming-patterns': naming_patterns_1.default,
9
13
  },
10
14
  configs: {
11
15
  recommended: {
12
16
  rules: {
13
17
  '@futdevpro/dynamo/import-order': 'warn',
18
+ '@futdevpro/dynamo/no-import-type': 'warn',
19
+ '@futdevpro/dynamo/no-js-import': 'warn',
14
20
  '@futdevpro/dynamo/naming-patterns': 'warn',
15
21
  },
16
22
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":";;AAAA,gFAAmD;AACnD,sFAAyD;AAEzD,iBAAS;IACP,KAAK,EAAE;QACL,cAAc,EAAE,sBAAe;QAC/B,iBAAiB,EAAE,yBAAkB;KACtC;IACD,OAAO,EAAE;QACP,WAAW,EAAE;YACX,KAAK,EAAE;gBACL,gCAAgC,EAAE,MAAM;gBACxC,mCAAmC,EAAE,MAAM;aAC5C;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":";;AAAA,uFAA0D;AAC1D,sFAAyD;AACzD,2FAA6D;AAC7D,uFAA4D;AAE5D,iBAAS;IACP,KAAK,EAAE;QACL,cAAc,EAAE,sBAAe;QAC/B,gBAAgB,EAAE,wBAAgB;QAClC,cAAc,EAAE,sBAAiB;QAEjC,iBAAiB,EAAE,yBAAkB;KACtC;IACD,OAAO,EAAE;QACP,WAAW,EAAE;YACX,KAAK,EAAE;gBACL,gCAAgC,EAAE,MAAM;gBACxC,kCAAkC,EAAE,MAAM;gBAC1C,gCAAgC,EAAE,MAAM;gBAExC,mCAAmC,EAAE,MAAM;aAC5C;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Rule } from 'eslint';
2
+ declare const rule: Rule.RuleModule;
3
+ export default rule;
4
+ //# sourceMappingURL=import-order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-order.d.ts","sourceRoot":"","sources":["../../../../src/plugin/rules/import/import-order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UA6JhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -8,16 +8,14 @@ const rule = {
8
8
  messages: {
9
9
  misordered: 'Import statements should be grouped and ordered by convention.',
10
10
  forbiddenNpmPackages: 'Import from "*/../NPM-packages/*" is forbidden. Use "@futdevpro/*" instead.',
11
- forbiddenJsExtension: 'Import with ".js" extension is forbidden. Use ".ts" or no extension.',
12
- forbiddenImportType: 'Use of "import type" is forbidden.',
13
11
  missingEmptyLine: 'Missing empty line between import groups.',
14
12
  extraEmptyLine: 'Extra empty line detected.',
15
13
  },
16
14
  fixable: 'code',
17
15
  },
18
16
  create(context) {
19
- const sourceCode = context.getSourceCode();
20
- const filename = context.getFilename();
17
+ const sourceCode = context.sourceCode;
18
+ const filename = context.filename;
21
19
  function getImportGroup(importNode) {
22
20
  const source = importNode.source.value;
23
21
  // Check for forbidden patterns first
@@ -52,19 +50,11 @@ const rule = {
52
50
  context.report({
53
51
  node: importNode.source,
54
52
  messageId: 'forbiddenNpmPackages',
55
- });
56
- }
57
- if (source.endsWith('.js')) {
58
- context.report({
59
- node: importNode.source,
60
- messageId: 'forbiddenJsExtension',
61
- });
62
- }
63
- // Check for import type usage
64
- if (importNode.importKind === 'type') {
65
- context.report({
66
- node: importNode,
67
- messageId: 'forbiddenImportType',
53
+ fix(fixer) {
54
+ // Replace NPM-packages path with @futdevpro equivalent
55
+ const newSource = source.replace(/.*\/NPM-packages\/([^\/]+)/, '@futdevpro/$1');
56
+ return fixer.replaceText(importNode.source, `'${newSource}'`);
57
+ },
68
58
  });
69
59
  }
70
60
  }
@@ -98,6 +88,11 @@ const rule = {
98
88
  context.report({
99
89
  node: importNode,
100
90
  messageId: 'misordered',
91
+ fix(fixer) {
92
+ // This is complex to fix automatically, so we'll just report for now
93
+ // Future enhancement: reorder imports automatically
94
+ return null;
95
+ },
101
96
  });
102
97
  }
103
98
  currentGroupIndex = expectedGroupIndex;
@@ -115,6 +110,10 @@ const rule = {
115
110
  context.report({
116
111
  node: firstImportOfNextGroup,
117
112
  messageId: 'missingEmptyLine',
113
+ fix(fixer) {
114
+ // Add empty line before the first import of next group
115
+ return fixer.insertTextBefore(firstImportOfNextGroup, '\n');
116
+ },
118
117
  });
119
118
  }
120
119
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-order.js","sourceRoot":"","sources":["../../../../src/plugin/rules/import/import-order.ts"],"names":[],"mappings":";;AAOA,MAAM,IAAI,GAAoB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,EAAE,WAAW,EAAE,sDAAsD,EAAE;QAC7E,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,UAAU,EAAE,gEAAgE;YAC5E,oBAAoB,EAAE,6EAA6E;YACnG,gBAAgB,EAAE,2CAA2C;YAC7D,cAAc,EAAE,4BAA4B;SAC7C;QACD,OAAO,EAAE,MAAM;KAChB;IACD,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,SAAS,cAAc,CAAC,UAAe;YACrC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,KAAe,CAAC;YAEjD,qCAAqC;YACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtC,OAAO,eAAe,CAAC,CAAC,2BAA2B;YACrD,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,eAAe,CAAC,CAAC,2BAA2B;YACrD,CAAC;YAED,qBAAqB;YACrB,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrC,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,wDAAwD;YACxD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;gBAEhE,qEAAqE;gBACrE,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrF,OAAO,aAAa,CAAC;gBACvB,CAAC;gBAED,gBAAgB;gBAChB,OAAO,eAAe,CAAC;YACzB,CAAC;YAED,yBAAyB;YACzB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,SAAS,yBAAyB,CAAC,UAAe;YAChD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,KAAe,CAAC;YAEjD,+BAA+B;YAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,UAAU,CAAC,MAAM;oBACvB,SAAS,EAAE,sBAAsB;oBACjC,GAAG,CAAC,KAAK;wBACP,uDAAuD;wBACvD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;wBAEhF,OAAO,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;oBAChE,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;QAGH,CAAC;QAED,SAAS,sBAAsB,CAAC,WAAkB;YAChD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAErC,gBAAgB;YAChB,MAAM,MAAM,GAAkB;gBAC5B,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE;gBACtC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;gBAClC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE;gBACtC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;aACrC,CAAC;YAEF,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC/B,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBAErD,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,sBAAsB;YACtB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAExE,wCAAwC;YACxC,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,iBAAiB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;gBACrD,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;gBAC7E,MAAM,kBAAkB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;gBAEvF,IAAI,kBAAkB,GAAG,iBAAiB,EAAE,CAAC;oBAC3C,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,YAAY;wBACvB,GAAG,CAAC,KAAK;4BACP,qEAAqE;4BACrE,oDAAoD;4BACpD,OAAO,IAAI,CAAC;wBACd,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,iBAAiB,GAAG,kBAAkB,CAAC;YACzC,CAAC;YAED,mCAAmC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,MAAM,wBAAwB,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvF,MAAM,sBAAsB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAEpD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACpC,MAAM,cAAc,GAAG,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;gBACnE,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBAEpE,IAAI,eAAe,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;oBACzC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,sBAAsB;wBAC5B,SAAS,EAAE,kBAAkB;wBAC7B,GAAG,CAAC,KAAK;4BACP,uDAAuD;4BACvD,OAAO,KAAK,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;wBAC9D,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,CAAC,IAAS;gBACf,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAClC,CAAC,SAAc,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,mBAAmB,CAC3D,CAAC;gBAEF,0CAA0C;gBAC1C,WAAW,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBAE/C,2BAA2B;gBAC3B,sBAAsB,CAAC,WAAW,CAAC,CAAC;YACtC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,kBAAe,IAAI,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-order.spec.d.ts","sourceRoot":"","sources":["../../../../src/plugin/rules/import/import-order.spec.ts"],"names":[],"mappings":""}