@nrwl/eslint-plugin-nx 16.0.0-beta.0 → 16.0.0-beta.1

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 (62) hide show
  1. package/index.d.ts +1 -0
  2. package/index.js +5 -0
  3. package/index.js.map +1 -0
  4. package/package.json +8 -18
  5. package/README.md +0 -63
  6. package/src/configs/angular-template.d.ts +0 -20
  7. package/src/configs/angular-template.js +0 -22
  8. package/src/configs/angular-template.js.map +0 -1
  9. package/src/configs/angular.d.ts +0 -25
  10. package/src/configs/angular.js +0 -43
  11. package/src/configs/angular.js.map +0 -1
  12. package/src/configs/javascript.d.ts +0 -42
  13. package/src/configs/javascript.js +0 -51
  14. package/src/configs/javascript.js.map +0 -1
  15. package/src/configs/react-base.d.ts +0 -112
  16. package/src/configs/react-base.js +0 -141
  17. package/src/configs/react-base.js.map +0 -1
  18. package/src/configs/react-jsx.d.ts +0 -71
  19. package/src/configs/react-jsx.js +0 -65
  20. package/src/configs/react-jsx.js.map +0 -1
  21. package/src/configs/react-tmp.d.ts +0 -12
  22. package/src/configs/react-tmp.js +0 -18
  23. package/src/configs/react-tmp.js.map +0 -1
  24. package/src/configs/react-typescript.d.ts +0 -41
  25. package/src/configs/react-typescript.js +0 -56
  26. package/src/configs/react-typescript.js.map +0 -1
  27. package/src/configs/typescript.d.ts +0 -24
  28. package/src/configs/typescript.js +0 -34
  29. package/src/configs/typescript.js.map +0 -1
  30. package/src/constants.d.ts +0 -12
  31. package/src/constants.js +0 -18
  32. package/src/constants.js.map +0 -1
  33. package/src/index.d.ts +0 -1
  34. package/src/index.js +0 -28
  35. package/src/index.js.map +0 -1
  36. package/src/resolve-workspace-rules.d.ts +0 -4
  37. package/src/resolve-workspace-rules.js +0 -36
  38. package/src/resolve-workspace-rules.js.map +0 -1
  39. package/src/rules/enforce-module-boundaries.d.ts +0 -16
  40. package/src/rules/enforce-module-boundaries.js +0 -428
  41. package/src/rules/enforce-module-boundaries.js.map +0 -1
  42. package/src/rules/nx-plugin-checks.d.ts +0 -21
  43. package/src/rules/nx-plugin-checks.js +0 -359
  44. package/src/rules/nx-plugin-checks.js.map +0 -1
  45. package/src/utils/ast-utils.d.ts +0 -12
  46. package/src/utils/ast-utils.js +0 -181
  47. package/src/utils/ast-utils.js.map +0 -1
  48. package/src/utils/config-utils.d.ts +0 -6
  49. package/src/utils/config-utils.js +0 -21
  50. package/src/utils/config-utils.js.map +0 -1
  51. package/src/utils/create-eslint-rule.d.ts +0 -2
  52. package/src/utils/create-eslint-rule.js +0 -6
  53. package/src/utils/create-eslint-rule.js.map +0 -1
  54. package/src/utils/graph-utils.d.ts +0 -5
  55. package/src/utils/graph-utils.js +0 -117
  56. package/src/utils/graph-utils.js.map +0 -1
  57. package/src/utils/project-graph-utils.d.ts +0 -7
  58. package/src/utils/project-graph-utils.js +0 -46
  59. package/src/utils/project-graph-utils.js.map +0 -1
  60. package/src/utils/runtime-lint-utils.d.ts +0 -85
  61. package/src/utils/runtime-lint-utils.js +0 -329
  62. package/src/utils/runtime-lint-utils.js.map +0 -1
@@ -1,428 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RULE_NAME = void 0;
4
- const devkit_1 = require("@nrwl/devkit");
5
- const fileutils_1 = require("nx/src/utils/fileutils");
6
- const graph_utils_1 = require("../utils/graph-utils");
7
- const runtime_lint_utils_1 = require("../utils/runtime-lint-utils");
8
- const utils_1 = require("@typescript-eslint/utils");
9
- const target_project_locator_1 = require("nx/src/plugins/js/project-graph/build-dependencies/target-project-locator");
10
- const path_1 = require("path");
11
- const ast_utils_1 = require("../utils/ast-utils");
12
- const create_eslint_rule_1 = require("../utils/create-eslint-rule");
13
- const project_graph_utils_1 = require("../utils/project-graph-utils");
14
- exports.RULE_NAME = 'enforce-module-boundaries';
15
- exports.default = (0, create_eslint_rule_1.createESLintRule)({
16
- name: exports.RULE_NAME,
17
- meta: {
18
- type: 'suggestion',
19
- docs: {
20
- description: `Ensure that module boundaries are respected within the monorepo`,
21
- recommended: 'error',
22
- },
23
- fixable: 'code',
24
- schema: [
25
- {
26
- type: 'object',
27
- properties: {
28
- enforceBuildableLibDependency: { type: 'boolean' },
29
- allowCircularSelfDependency: { type: 'boolean' },
30
- checkDynamicDependenciesExceptions: [{ type: 'string' }],
31
- banTransitiveDependencies: { type: 'boolean' },
32
- checkNestedExternalImports: { type: 'boolean' },
33
- allow: [{ type: 'string' }],
34
- depConstraints: [
35
- {
36
- type: 'object',
37
- properties: {
38
- oneOf: [
39
- { sourceTag: { type: 'string' } },
40
- {
41
- allSourceTags: {
42
- type: 'array',
43
- items: { type: 'string' },
44
- minItems: 2,
45
- },
46
- },
47
- ],
48
- onlyDependOnLibsWithTags: [{ type: 'string' }],
49
- allowedExternalImports: [{ type: 'string' }],
50
- bannedExternalImports: [{ type: 'string' }],
51
- notDependOnLibsWithTags: [{ type: 'string' }],
52
- },
53
- additionalProperties: false,
54
- },
55
- ],
56
- },
57
- additionalProperties: false,
58
- },
59
- ],
60
- messages: {
61
- noRelativeOrAbsoluteImportsAcrossLibraries: `Projects cannot be imported by a relative or absolute path, and must begin with a npm scope`,
62
- noCircularDependencies: `Circular dependency between "{{sourceProjectName}}" and "{{targetProjectName}}" detected: {{path}}\n\nCircular file chain:\n{{filePaths}}`,
63
- noSelfCircularDependencies: `Projects should use relative imports to import from other files within the same project. Use "./path/to/file" instead of import from "{{imp}}"`,
64
- noImportsOfApps: 'Imports of apps are forbidden',
65
- noImportsOfE2e: 'Imports of e2e projects are forbidden',
66
- noImportOfNonBuildableLibraries: 'Buildable libraries cannot import or export from non-buildable libraries',
67
- noImportsOfLazyLoadedLibraries: `Imports of lazy-loaded libraries are forbidden`,
68
- projectWithoutTagsCannotHaveDependencies: `A project without tags matching at least one constraint cannot depend on any libraries`,
69
- bannedExternalImportsViolation: `A project tagged with "{{sourceTag}}" is not allowed to import the "{{package}}" package`,
70
- nestedBannedExternalImportsViolation: `A project tagged with "{{sourceTag}}" is not allowed to import the "{{package}}" package. Nested import found at {{childProjectName}}`,
71
- noTransitiveDependencies: `Transitive dependencies are not allowed. Only packages defined in the "package.json" can be imported`,
72
- onlyTagsConstraintViolation: `A project tagged with "{{sourceTag}}" can only depend on libs tagged with {{tags}}`,
73
- emptyOnlyTagsConstraintViolation: 'A project tagged with "{{sourceTag}}" cannot depend on any libs with tags',
74
- notTagsConstraintViolation: `A project tagged with "{{sourceTag}}" can not depend on libs tagged with {{tags}}\n\nViolation detected in:\n{{projects}}`,
75
- },
76
- },
77
- defaultOptions: [
78
- {
79
- allow: [],
80
- depConstraints: [],
81
- enforceBuildableLibDependency: false,
82
- allowCircularSelfDependency: false,
83
- checkDynamicDependenciesExceptions: [],
84
- banTransitiveDependencies: false,
85
- checkNestedExternalImports: false,
86
- },
87
- ],
88
- create(context, [{ allow, depConstraints, enforceBuildableLibDependency, allowCircularSelfDependency, checkDynamicDependenciesExceptions, banTransitiveDependencies, checkNestedExternalImports, },]) {
89
- /**
90
- * Globally cached info about workspace
91
- */
92
- const projectPath = (0, devkit_1.normalizePath)(global.projectPath || devkit_1.workspaceRoot);
93
- const fileName = (0, devkit_1.normalizePath)(context.getFilename());
94
- const { projectGraph, projectRootMappings } = (0, project_graph_utils_1.readProjectGraph)(exports.RULE_NAME);
95
- if (!projectGraph) {
96
- return {};
97
- }
98
- const workspaceLayout = global.workspaceLayout;
99
- if (!global.targetProjectLocator) {
100
- global.targetProjectLocator = new target_project_locator_1.TargetProjectLocator(projectGraph.nodes, projectGraph.externalNodes);
101
- }
102
- const targetProjectLocator = global
103
- .targetProjectLocator;
104
- function run(node) {
105
- // Ignoring ExportNamedDeclarations like:
106
- // export class Foo {}
107
- if (!node.source) {
108
- return;
109
- }
110
- // accept only literals because template literals have no value
111
- if (node.source.type !== utils_1.AST_NODE_TYPES.Literal) {
112
- return;
113
- }
114
- const imp = node.source.value;
115
- // whitelisted import
116
- if (allow.some((a) => (0, runtime_lint_utils_1.matchImportWithWildcard)(a, imp))) {
117
- return;
118
- }
119
- const sourceFilePath = (0, runtime_lint_utils_1.getSourceFilePath)(fileName, projectPath);
120
- const sourceProject = (0, runtime_lint_utils_1.findProject)(projectGraph, projectRootMappings, sourceFilePath);
121
- // If source is not part of an nx workspace, return.
122
- if (!sourceProject) {
123
- return;
124
- }
125
- // check for relative and absolute imports
126
- const isAbsoluteImportIntoAnotherProj = (0, runtime_lint_utils_1.isAbsoluteImportIntoAnotherProject)(imp, workspaceLayout);
127
- let targetProject;
128
- if (isAbsoluteImportIntoAnotherProj) {
129
- targetProject = (0, runtime_lint_utils_1.findProject)(projectGraph, projectRootMappings, imp);
130
- }
131
- else {
132
- targetProject = (0, runtime_lint_utils_1.getTargetProjectBasedOnRelativeImport)(imp, projectPath, projectGraph, projectRootMappings, sourceFilePath);
133
- }
134
- if ((targetProject && sourceProject !== targetProject) ||
135
- isAbsoluteImportIntoAnotherProj) {
136
- context.report({
137
- node,
138
- messageId: 'noRelativeOrAbsoluteImportsAcrossLibraries',
139
- fix(fixer) {
140
- if (targetProject) {
141
- const indexTsPaths = (0, ast_utils_1.getBarrelEntryPointProjectNode)(targetProject);
142
- if (indexTsPaths && indexTsPaths.length > 0) {
143
- const specifiers = node.specifiers;
144
- if (!specifiers || specifiers.length === 0) {
145
- return;
146
- }
147
- const imports = specifiers
148
- .filter((s) => s.type === 'ImportSpecifier')
149
- .map((s) => s.imported.name);
150
- // process each potential entry point and try to find the imports
151
- const importsToRemap = [];
152
- for (const entryPointPath of indexTsPaths) {
153
- for (const importMember of imports) {
154
- const importPath = (0, ast_utils_1.getRelativeImportPath)(importMember, (0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, entryPointPath.path), sourceProject.data.sourceRoot);
155
- // we cannot remap, so leave it as is
156
- if (importPath) {
157
- importsToRemap.push({
158
- member: importMember,
159
- importPath: entryPointPath.importScope,
160
- });
161
- }
162
- }
163
- }
164
- const adjustedRelativeImports = (0, runtime_lint_utils_1.groupImports)(importsToRemap);
165
- if (adjustedRelativeImports !== '') {
166
- return fixer.replaceTextRange(node.range, adjustedRelativeImports);
167
- }
168
- }
169
- }
170
- },
171
- });
172
- return;
173
- }
174
- targetProject =
175
- targetProject ||
176
- (0, runtime_lint_utils_1.findProjectUsingImport)(projectGraph, targetProjectLocator, sourceFilePath, imp);
177
- // If target is not part of an nx workspace, return.
178
- if (!targetProject) {
179
- return;
180
- }
181
- // we only allow relative paths within the same project
182
- // and if it's not a secondary entrypoint in an angular lib
183
- if (sourceProject === targetProject) {
184
- if (!allowCircularSelfDependency &&
185
- !(0, fileutils_1.isRelativePath)(imp) &&
186
- !(0, runtime_lint_utils_1.isAngularSecondaryEntrypoint)(imp, sourceFilePath)) {
187
- context.report({
188
- node,
189
- messageId: 'noSelfCircularDependencies',
190
- data: {
191
- imp,
192
- },
193
- fix(fixer) {
194
- // imp has form of @myorg/someproject/some/path
195
- const indexTsPaths = (0, ast_utils_1.getBarrelEntryPointByImportScope)(imp);
196
- if (indexTsPaths && indexTsPaths.length > 0) {
197
- const specifiers = node.specifiers;
198
- if (!specifiers || specifiers.length === 0) {
199
- return;
200
- }
201
- // imported JS functions to remap
202
- const imports = specifiers
203
- .filter((s) => s.type === 'ImportSpecifier')
204
- .map((s) => s.imported.name);
205
- // process each potential entry point and try to find the imports
206
- const importsToRemap = [];
207
- for (const entryPointPath of indexTsPaths) {
208
- for (const importMember of imports) {
209
- const importPath = (0, ast_utils_1.getRelativeImportPath)(importMember, (0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, entryPointPath), sourceProject.data.sourceRoot);
210
- if (importPath) {
211
- // resolve the import path
212
- const relativePath = (0, path_1.relative)((0, path_1.dirname)(fileName), (0, path_1.dirname)(importPath));
213
- // if the string is empty, it's the current file
214
- const importPathResolved = relativePath === ''
215
- ? `./${(0, path_1.basename)(importPath)}`
216
- : (0, devkit_1.joinPathFragments)(relativePath, (0, path_1.basename)(importPath));
217
- importsToRemap.push({
218
- member: importMember,
219
- importPath: importPathResolved.replace('.ts', ''),
220
- });
221
- }
222
- }
223
- }
224
- const adjustedRelativeImports = (0, runtime_lint_utils_1.groupImports)(importsToRemap);
225
- if (adjustedRelativeImports !== '') {
226
- return fixer.replaceTextRange(node.range, adjustedRelativeImports);
227
- }
228
- }
229
- },
230
- });
231
- }
232
- return;
233
- }
234
- // project => npm package
235
- if (targetProject.type === 'npm') {
236
- if (banTransitiveDependencies &&
237
- !(0, runtime_lint_utils_1.isDirectDependency)(sourceProject, targetProject)) {
238
- context.report({
239
- node,
240
- messageId: 'noTransitiveDependencies',
241
- });
242
- }
243
- const constraint = (0, runtime_lint_utils_1.hasBannedImport)(sourceProject, targetProject, depConstraints);
244
- if (constraint) {
245
- context.report({
246
- node,
247
- messageId: 'bannedExternalImportsViolation',
248
- data: {
249
- sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
250
- ? constraint.allSourceTags.join('" and "')
251
- : constraint.sourceTag,
252
- package: targetProject.data.packageName,
253
- },
254
- });
255
- }
256
- return;
257
- }
258
- // check constraints between libs and apps
259
- // check for circular dependency
260
- const circularPath = (0, graph_utils_1.checkCircularPath)(projectGraph, sourceProject, targetProject);
261
- if (circularPath.length !== 0) {
262
- const circularFilePath = (0, graph_utils_1.findFilesInCircularPath)(circularPath);
263
- // spacer text used for indirect dependencies when printing one line per file.
264
- // without this, we can end up with a very long line that does not display well in the terminal.
265
- const spacer = ' ';
266
- context.report({
267
- node,
268
- messageId: 'noCircularDependencies',
269
- data: {
270
- sourceProjectName: sourceProject.name,
271
- targetProjectName: targetProject.name,
272
- path: circularPath.reduce((acc, v) => `${acc} -> ${v.name}`, sourceProject.name),
273
- filePaths: circularFilePath
274
- .map((files) => files.length > 1
275
- ? `[${files
276
- .map((f) => `\n${spacer}${spacer}${f}`)
277
- .join(',')}\n${spacer}]`
278
- : files[0])
279
- .reduce((acc, files) => `${acc}\n- ${files}`, `- ${sourceFilePath}`),
280
- },
281
- });
282
- return;
283
- }
284
- // cannot import apps
285
- if (targetProject.type === 'app') {
286
- context.report({
287
- node,
288
- messageId: 'noImportsOfApps',
289
- });
290
- return;
291
- }
292
- // cannot import e2e projects
293
- if (targetProject.type === 'e2e') {
294
- context.report({
295
- node,
296
- messageId: 'noImportsOfE2e',
297
- });
298
- return;
299
- }
300
- // buildable-lib is not allowed to import non-buildable-lib
301
- if (enforceBuildableLibDependency === true &&
302
- sourceProject.type === 'lib' &&
303
- targetProject.type === 'lib') {
304
- if ((0, runtime_lint_utils_1.hasBuildExecutor)(sourceProject) &&
305
- !(0, runtime_lint_utils_1.hasBuildExecutor)(targetProject)) {
306
- context.report({
307
- node,
308
- messageId: 'noImportOfNonBuildableLibraries',
309
- });
310
- return;
311
- }
312
- }
313
- // if we import a library using loadChildren, we should not import it using es6imports
314
- if (node.type === utils_1.AST_NODE_TYPES.ImportDeclaration &&
315
- node.importKind !== 'type' &&
316
- !checkDynamicDependenciesExceptions.some((a) => (0, runtime_lint_utils_1.matchImportWithWildcard)(a, imp)) &&
317
- (0, runtime_lint_utils_1.onlyLoadChildren)(projectGraph, sourceProject.name, targetProject.name, [])) {
318
- context.report({
319
- node,
320
- messageId: 'noImportsOfLazyLoadedLibraries',
321
- });
322
- return;
323
- }
324
- // check that dependency constraints are satisfied
325
- if (depConstraints.length > 0) {
326
- const constraints = (0, runtime_lint_utils_1.findConstraintsFor)(depConstraints, sourceProject);
327
- // when no constrains found => error. Force the user to provision them.
328
- if (constraints.length === 0) {
329
- context.report({
330
- node,
331
- messageId: 'projectWithoutTagsCannotHaveDependencies',
332
- });
333
- return;
334
- }
335
- const transitiveExternalDeps = checkNestedExternalImports
336
- ? (0, runtime_lint_utils_1.findTransitiveExternalDependencies)(projectGraph, targetProject)
337
- : [];
338
- for (let constraint of constraints) {
339
- if (constraint.onlyDependOnLibsWithTags &&
340
- constraint.onlyDependOnLibsWithTags.length &&
341
- (0, runtime_lint_utils_1.hasNoneOfTheseTags)(targetProject, constraint.onlyDependOnLibsWithTags)) {
342
- context.report({
343
- node,
344
- messageId: 'onlyTagsConstraintViolation',
345
- data: {
346
- sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
347
- ? constraint.allSourceTags.join('" and "')
348
- : constraint.sourceTag,
349
- tags: (0, runtime_lint_utils_1.stringifyTags)(constraint.onlyDependOnLibsWithTags),
350
- },
351
- });
352
- return;
353
- }
354
- if (constraint.onlyDependOnLibsWithTags &&
355
- constraint.onlyDependOnLibsWithTags.length === 0 &&
356
- targetProject.data.tags.length !== 0) {
357
- context.report({
358
- node,
359
- messageId: 'emptyOnlyTagsConstraintViolation',
360
- data: {
361
- sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
362
- ? constraint.allSourceTags.join('" and "')
363
- : constraint.sourceTag,
364
- },
365
- });
366
- return;
367
- }
368
- if (constraint.notDependOnLibsWithTags &&
369
- constraint.notDependOnLibsWithTags.length) {
370
- const projectPaths = (0, runtime_lint_utils_1.findDependenciesWithTags)(targetProject, constraint.notDependOnLibsWithTags, projectGraph);
371
- if (projectPaths.length > 0) {
372
- context.report({
373
- node,
374
- messageId: 'notTagsConstraintViolation',
375
- data: {
376
- sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
377
- ? constraint.allSourceTags.join('" and "')
378
- : constraint.sourceTag,
379
- tags: (0, runtime_lint_utils_1.stringifyTags)(constraint.notDependOnLibsWithTags),
380
- projects: projectPaths
381
- .map((projectPath) => `- ${projectPath.map((p) => p.name).join(' -> ')}`)
382
- .join('\n'),
383
- },
384
- });
385
- return;
386
- }
387
- }
388
- if (checkNestedExternalImports &&
389
- constraint.bannedExternalImports &&
390
- constraint.bannedExternalImports.length) {
391
- const matches = (0, runtime_lint_utils_1.hasBannedDependencies)(transitiveExternalDeps, projectGraph, constraint);
392
- if (matches.length > 0) {
393
- matches.forEach(([target, violatingSource, constraint]) => {
394
- context.report({
395
- node,
396
- messageId: 'bannedExternalImportsViolation',
397
- data: {
398
- sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
399
- ? constraint.allSourceTags.join('" and "')
400
- : constraint.sourceTag,
401
- childProjectName: violatingSource.name,
402
- package: target.data.packageName,
403
- },
404
- });
405
- });
406
- return;
407
- }
408
- }
409
- }
410
- }
411
- }
412
- return {
413
- ImportDeclaration(node) {
414
- run(node);
415
- },
416
- ImportExpression(node) {
417
- run(node);
418
- },
419
- ExportAllDeclaration(node) {
420
- run(node);
421
- },
422
- ExportNamedDeclaration(node) {
423
- run(node);
424
- },
425
- };
426
- },
427
- });
428
- //# sourceMappingURL=enforce-module-boundaries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enforce-module-boundaries.js","sourceRoot":"","sources":["../../../../../packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { AST } from 'jsonc-eslint-parser';
2
- import type { TSESLint } from '@typescript-eslint/utils';
3
- type Options = [
4
- {
5
- generatorsJson?: string;
6
- executorsJson?: string;
7
- migrationsJson?: string;
8
- packageJson?: string;
9
- allowedVersionStrings: string[];
10
- }
11
- ];
12
- export type MessageIds = 'missingRequiredSchema' | 'invalidSchemaPath' | 'missingImplementation' | 'invalidImplementationPath' | 'invalidImplementationModule' | 'unableToReadImplementationExports' | 'invalidVersion' | 'missingVersion' | 'noGeneratorsOrSchematicsFound' | 'noExecutorsOrBuildersFound' | 'valueShouldBeObject';
13
- export declare const RULE_NAME = "nx-plugin-checks";
14
- declare const _default: TSESLint.RuleModule<MessageIds, Options, TSESLint.RuleListener>;
15
- export default _default;
16
- export declare function checkCollectionFileNode(baseNode: AST.JSONObjectExpression, mode: 'migration' | 'generator' | 'executor', context: TSESLint.RuleContext<MessageIds, Options>): void;
17
- export declare function checkCollectionNode(baseNode: AST.JSONObjectExpression, mode: 'migration' | 'generator' | 'executor', context: TSESLint.RuleContext<MessageIds, Options>): void;
18
- export declare function validateEntry(baseNode: AST.JSONObjectExpression, key: string, mode: 'migration' | 'generator' | 'executor', context: TSESLint.RuleContext<MessageIds, Options>): void;
19
- export declare function validateImplemenationNode(implementationNode: AST.JSONProperty, key: string, context: TSESLint.RuleContext<MessageIds, Options>): void;
20
- export declare function validatePackageGroup(baseNode: AST.JSONObjectExpression, context: TSESLint.RuleContext<MessageIds, Options>): void;
21
- export declare function validateVersionJsonExpression(node: AST.JSONExpression, context: TSESLint.RuleContext<MessageIds, Options>): string | boolean;