@typescript-eslint/experimental-utils 2.24.1-alpha.15 → 2.25.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.
Files changed (100) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +13 -10
  3. package/dist/ast-utils/eslint-utils/PatternMatcher.d.ts +48 -0
  4. package/dist/ast-utils/eslint-utils/PatternMatcher.d.ts.map +1 -0
  5. package/dist/ast-utils/eslint-utils/PatternMatcher.js +19 -0
  6. package/dist/ast-utils/eslint-utils/PatternMatcher.js.map +1 -0
  7. package/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts +72 -0
  8. package/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map +1 -0
  9. package/dist/ast-utils/eslint-utils/ReferenceTracker.js +22 -0
  10. package/dist/ast-utils/eslint-utils/ReferenceTracker.js.map +1 -0
  11. package/dist/ast-utils/eslint-utils/astUtilities.d.ts +82 -0
  12. package/dist/ast-utils/eslint-utils/astUtilities.d.ts.map +1 -0
  13. package/dist/ast-utils/eslint-utils/astUtilities.js +91 -0
  14. package/dist/ast-utils/eslint-utils/astUtilities.js.map +1 -0
  15. package/dist/ast-utils/eslint-utils/index.d.ts +6 -0
  16. package/dist/ast-utils/eslint-utils/index.d.ts.map +1 -0
  17. package/dist/ast-utils/eslint-utils/index.js +11 -0
  18. package/dist/ast-utils/eslint-utils/index.js.map +1 -0
  19. package/dist/ast-utils/eslint-utils/predicates.d.ts +45 -0
  20. package/dist/ast-utils/eslint-utils/predicates.d.ts.map +1 -0
  21. package/dist/ast-utils/eslint-utils/predicates.js +55 -0
  22. package/dist/ast-utils/eslint-utils/predicates.js.map +1 -0
  23. package/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts +18 -0
  24. package/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts.map +1 -0
  25. package/dist/ast-utils/eslint-utils/scopeAnalysis.js +27 -0
  26. package/dist/ast-utils/eslint-utils/scopeAnalysis.js.map +1 -0
  27. package/dist/ast-utils/index.d.ts +4 -0
  28. package/dist/ast-utils/index.d.ts.map +1 -0
  29. package/dist/ast-utils/index.js +9 -0
  30. package/dist/ast-utils/index.js.map +1 -0
  31. package/dist/ast-utils/misc.d.ts +8 -0
  32. package/dist/ast-utils/misc.d.ts.map +1 -0
  33. package/dist/ast-utils/misc.js +12 -0
  34. package/dist/ast-utils/misc.js.map +1 -0
  35. package/dist/ast-utils/predicates.d.ts +58 -0
  36. package/dist/ast-utils/predicates.d.ts.map +1 -0
  37. package/dist/ast-utils/predicates.js +156 -0
  38. package/dist/ast-utils/predicates.js.map +1 -0
  39. package/dist/eslint-utils/RuleCreator.d.ts +2 -2
  40. package/dist/eslint-utils/RuleCreator.d.ts.map +1 -1
  41. package/dist/eslint-utils/RuleCreator.js.map +1 -1
  42. package/dist/eslint-utils/applyDefault.d.ts +2 -1
  43. package/dist/eslint-utils/applyDefault.d.ts.map +1 -1
  44. package/dist/eslint-utils/applyDefault.js.map +1 -1
  45. package/dist/eslint-utils/deepMerge.d.ts +2 -2
  46. package/dist/eslint-utils/deepMerge.d.ts.map +1 -1
  47. package/dist/eslint-utils/deepMerge.js.map +1 -1
  48. package/dist/eslint-utils/getParserServices.d.ts +4 -3
  49. package/dist/eslint-utils/getParserServices.d.ts.map +1 -1
  50. package/dist/eslint-utils/getParserServices.js.map +1 -1
  51. package/dist/index.d.ts +4 -4
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +8 -11
  54. package/dist/index.js.map +1 -1
  55. package/dist/ts-eslint/AST.d.ts +1 -1
  56. package/dist/ts-eslint/AST.d.ts.map +1 -1
  57. package/dist/ts-eslint/Linter.d.ts +1 -1
  58. package/dist/ts-eslint/Linter.d.ts.map +1 -1
  59. package/dist/ts-eslint/Linter.js.map +1 -1
  60. package/dist/ts-eslint/ParserOptions.d.ts +2 -1
  61. package/dist/ts-eslint/ParserOptions.d.ts.map +1 -1
  62. package/dist/ts-eslint/Rule.d.ts +1 -1
  63. package/dist/ts-eslint/Rule.d.ts.map +1 -1
  64. package/dist/ts-eslint/RuleTester.d.ts +1 -1
  65. package/dist/ts-eslint/RuleTester.d.ts.map +1 -1
  66. package/dist/ts-eslint/RuleTester.js.map +1 -1
  67. package/dist/ts-eslint/Scope.d.ts +1 -1
  68. package/dist/ts-eslint/Scope.d.ts.map +1 -1
  69. package/dist/ts-eslint/SourceCode.d.ts +2 -2
  70. package/dist/ts-eslint/SourceCode.d.ts.map +1 -1
  71. package/dist/ts-eslint/SourceCode.js.map +1 -1
  72. package/dist/ts-eslint-scope/Definition.d.ts +1 -1
  73. package/dist/ts-eslint-scope/Definition.d.ts.map +1 -1
  74. package/dist/ts-eslint-scope/Definition.js.map +1 -1
  75. package/dist/ts-eslint-scope/Options.d.ts +1 -1
  76. package/dist/ts-eslint-scope/Options.d.ts.map +1 -1
  77. package/dist/ts-eslint-scope/PatternVisitor.d.ts +1 -1
  78. package/dist/ts-eslint-scope/PatternVisitor.d.ts.map +1 -1
  79. package/dist/ts-eslint-scope/PatternVisitor.js.map +1 -1
  80. package/dist/ts-eslint-scope/Reference.d.ts +2 -2
  81. package/dist/ts-eslint-scope/Reference.d.ts.map +1 -1
  82. package/dist/ts-eslint-scope/Reference.js.map +1 -1
  83. package/dist/ts-eslint-scope/Referencer.d.ts +1 -1
  84. package/dist/ts-eslint-scope/Referencer.d.ts.map +1 -1
  85. package/dist/ts-eslint-scope/Referencer.js +1 -0
  86. package/dist/ts-eslint-scope/Referencer.js.map +1 -1
  87. package/dist/ts-eslint-scope/Scope.d.ts +1 -1
  88. package/dist/ts-eslint-scope/Scope.d.ts.map +1 -1
  89. package/dist/ts-eslint-scope/Scope.js.map +1 -1
  90. package/dist/ts-eslint-scope/ScopeManager.d.ts +1 -1
  91. package/dist/ts-eslint-scope/ScopeManager.d.ts.map +1 -1
  92. package/dist/ts-eslint-scope/ScopeManager.js.map +1 -1
  93. package/dist/ts-eslint-scope/Variable.d.ts +1 -1
  94. package/dist/ts-eslint-scope/Variable.d.ts.map +1 -1
  95. package/dist/ts-eslint-scope/Variable.js.map +1 -1
  96. package/dist/ts-estree.d.ts +3 -0
  97. package/dist/ts-estree.d.ts.map +1 -0
  98. package/dist/ts-estree.js +12 -0
  99. package/dist/ts-estree.js.map +1 -0
  100. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.24.0...v2.25.0) (2020-03-23)
7
+
8
+
9
+ ### Features
10
+
11
+ * **experimental-utils:** expose ast utility functions ([#1670](https://github.com/typescript-eslint/typescript-eslint/issues/1670)) ([3eb5d45](https://github.com/typescript-eslint/typescript-eslint/commit/3eb5d4525e95c8ab990f55588b8d830a02ce5a9c))
12
+
13
+
14
+
15
+
16
+
6
17
  # [2.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.23.0...v2.24.0) (2020-03-16)
7
18
 
8
19
  **Note:** Version bump only for package @typescript-eslint/experimental-utils
package/README.md CHANGED
@@ -5,23 +5,26 @@
5
5
  ## Note
6
6
 
7
7
  This package has inherited its version number from the `@typescript-eslint` project.
8
- Meaning that even though this package is `1.x.y`, you shouldn't expect 100% stability between minor version bumps.
8
+ Meaning that even though this package is `2.x.y`, you shouldn't expect 100% stability between minor version bumps.
9
9
  i.e. treat it as a `0.x.y` package.
10
10
 
11
11
  Feel free to use it now, and let us know what utilities you need or send us PRs with utilities you build on top of it.
12
12
 
13
- Once it is stable, it will be renamed to `@typescript-eslint/util` for a `2.0.0` release.
13
+ Once it is stable, it will be renamed to `@typescript-eslint/util` for a `3.0.0` release.
14
14
 
15
15
  ## Exports
16
16
 
17
- | Name | Description |
18
- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
19
- | [`TSESTree`](../packages/typescript-estree/src/ts-estree/ts-estree.ts) | Types for the TypeScript flavor of ESTree created by `@typescript-eslint/typescript-estree`. |
20
- | [`AST_NODE_TYPES`](../packages/typescript-estree/src/ts-estree/ast-node-types.ts) | An enum with the names of every single _node_ found in `TSESTree`. |
21
- | [`AST_TOKEN_TYPES`](../packages/typescript-estree/src/ts-estree/ast-node-types.ts) | An enum with the names of every single _token_ found in `TSESTree`. |
22
- | [`TSESLint`](./src/ts-eslint) | Types for ESLint, correctly typed to work with the types found in `TSESTree`. |
23
- | [`ESLintUtils`](./src/eslint-utils) | Tools for creating ESLint rules with TypeScript. |
24
- | [`ParserServices`](../packages/typescript-estree/src/ts-estree/parser.ts) | The parser services provided when parsing a file using `@typescript-eslint/typescript-estree`. |
17
+ | Name | Description |
18
+ | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
19
+ | [`ASTUtils`](./src/ast-utils) | Tools for operating on the ESTree AST. Also includes the [`eslint-utils`](https://www.npmjs.com/package/eslint-utils) package, correctly typed to work with the types found in `TSESTree` |
20
+ | [`ESLintUtils`](./src/eslint-utils) | Tools for creating ESLint rules with TypeScript. |
21
+ | `JSONSchema` | Types from the [`@types/json-schema`](https://www.npmjs.com/package/@types/json-schema) package, re-exported to save you having to manually import them. Also ensures you're using the same version of the types as this package. |
22
+ | [`TSESLint`](./src/ts-eslint) | Types for ESLint, correctly typed to work with the types found in `TSESTree`. |
23
+ | [`TSESLintScope`](./src/ts-eslint-scope) | The [`eslint-scope`](https://www.npmjs.com/package/eslint-scope) package, correctly typed to work with the types found in both `TSESTree` and `TSESLint` |
24
+ | [`TSESTree`](../packages/typescript-estree/src/ts-estree/ts-estree.ts) | Types for the TypeScript flavor of ESTree created by `@typescript-eslint/typescript-estree`. |
25
+ | [`AST_NODE_TYPES`](../packages/typescript-estree/src/ts-estree/ast-node-types.ts) | An enum with the names of every single _node_ found in `TSESTree`. |
26
+ | [`AST_TOKEN_TYPES`](../packages/typescript-estree/src/ts-estree/ast-node-types.ts) | An enum with the names of every single _token_ found in `TSESTree`. |
27
+ | [`ParserServices`](../packages/typescript-estree/src/ts-estree/parser.ts) | Typing for the parser services provided when parsing a file using `@typescript-eslint/typescript-estree`. |
25
28
 
26
29
  ## Contributing
27
30
 
@@ -0,0 +1,48 @@
1
+ interface PatternMatcher {
2
+ /**
3
+ * Iterate all matched parts in a given string.
4
+ *
5
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#matcher-execall}
6
+ */
7
+ execAll(str: string): IterableIterator<RegExpExecArray>;
8
+ /**
9
+ * Check whether this pattern matches a given string or not.
10
+ *
11
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#matcher-test}
12
+ */
13
+ test(str: string): boolean;
14
+ /**
15
+ * Replace all matched parts by a given replacer.
16
+ *
17
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#matcher-symbol-replace}
18
+ * @example
19
+ * const { PatternMatcher } = require("eslint-utils")
20
+ * const matcher = new PatternMatcher(/\\p{Script=Greek}/g)
21
+ *
22
+ * module.exports = {
23
+ * meta: {},
24
+ * create(context) {
25
+ * return {
26
+ * "Literal[regex]"(node) {
27
+ * const replacedPattern = node.regex.pattern.replace(
28
+ * matcher,
29
+ * "[\\u0370-\\u0373\\u0375-\\u0377\\u037A-\\u037D\\u037F\\u0384\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03E1\\u03F0-\\u03FF\\u1D26-\\u1D2A\\u1D5D-\\u1D61\\u1D66-\\u1D6A\\u1DBF\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FC4\\u1FC6-\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEF\\u1FF2-\\u1FF4\\u1FF6-\\u1FFE\\u2126\\uAB65]|\\uD800[\\uDD40-\\uDD8E\\uDDA0]|\\uD834[\\uDE00-\\uDE45]"
30
+ * )
31
+ * },
32
+ * }
33
+ * },
34
+ * }
35
+ */
36
+ [Symbol.replace](str: string, replacer: string | ((...strs: string[]) => string)): string;
37
+ }
38
+ /**
39
+ * The class to find a pattern in strings as handling escape sequences.
40
+ * It ignores the found pattern if it's escaped with `\`.
41
+ *
42
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#patternmatcher-class}
43
+ */
44
+ declare const PatternMatcher: new (pattern: RegExp, options?: {
45
+ escaped?: boolean | undefined;
46
+ } | undefined) => PatternMatcher;
47
+ export { PatternMatcher };
48
+ //# sourceMappingURL=PatternMatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternMatcher.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/PatternMatcher.ts"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAExD;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,CACd,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,GACjD,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,QAAA,MAAM,cAAc;;gCAEnB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importStar = (this && this.__importStar) || function (mod) {
3
+ if (mod && mod.__esModule) return mod;
4
+ var result = {};
5
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
+ result["default"] = mod;
7
+ return result;
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const eslintUtils = __importStar(require("eslint-utils"));
11
+ /**
12
+ * The class to find a pattern in strings as handling escape sequences.
13
+ * It ignores the found pattern if it's escaped with `\`.
14
+ *
15
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#patternmatcher-class}
16
+ */
17
+ const PatternMatcher = eslintUtils.PatternMatcher;
18
+ exports.PatternMatcher = PatternMatcher;
19
+ //# sourceMappingURL=PatternMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternMatcher.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/PatternMatcher.ts"],"names":[],"mappings":";;;;;;;;;AAAA,0DAA4C;AA6C5C;;;;;GAKG;AACH,MAAM,cAAc,GAAG,WAAW,CAAC,cAElC,CAAC;AAEO,wCAAc"}
@@ -0,0 +1,72 @@
1
+ import { TSESTree } from '../../ts-estree';
2
+ import * as TSESLint from '../../ts-eslint';
3
+ declare const ReferenceTrackerREAD: unique symbol;
4
+ declare const ReferenceTrackerCALL: unique symbol;
5
+ declare const ReferenceTrackerCONSTRUCT: unique symbol;
6
+ interface ReferenceTracker {
7
+ /**
8
+ * Iterate the references that the given `traceMap` determined.
9
+ * This method starts to search from global variables.
10
+ *
11
+ * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iterateglobalreferences}
12
+ */
13
+ iterateGlobalReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>;
14
+ /**
15
+ * Iterate the references that the given `traceMap` determined.
16
+ * This method starts to search from `require()` expression.
17
+ *
18
+ * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iteratecjsreferences}
19
+ */
20
+ iterateCjsReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>;
21
+ /**
22
+ * Iterate the references that the given `traceMap` determined.
23
+ * This method starts to search from `import`/`export` declarations.
24
+ *
25
+ * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#tracker-iterateesmreferences}
26
+ */
27
+ iterateEsmReferences<T>(traceMap: ReferenceTracker.TraceMap<T>): IterableIterator<ReferenceTracker.FoundReference<T>>;
28
+ }
29
+ interface ReferenceTrackerStatic {
30
+ new (globalScope: TSESLint.Scope.Scope, options?: {
31
+ /**
32
+ * The mode which determines how the `tracker.iterateEsmReferences()` method scans CommonJS modules.
33
+ * If this is `"strict"`, the method binds CommonJS modules to the default export. Otherwise, the method binds
34
+ * CommonJS modules to both the default export and named exports. Optional. Default is `"strict"`.
35
+ */
36
+ mode: 'strict' | 'legacy';
37
+ /**
38
+ * The name list of Global Object. Optional. Default is `["global", "globalThis", "self", "window"]`.
39
+ */
40
+ globalObjectNames: readonly string[];
41
+ }): ReferenceTracker;
42
+ readonly READ: typeof ReferenceTrackerREAD;
43
+ readonly CALL: typeof ReferenceTrackerCALL;
44
+ readonly CONSTRUCT: typeof ReferenceTrackerCONSTRUCT;
45
+ }
46
+ declare namespace ReferenceTracker {
47
+ type READ = ReferenceTrackerStatic['READ'];
48
+ type CALL = ReferenceTrackerStatic['CALL'];
49
+ type CONSTRUCT = ReferenceTrackerStatic['CONSTRUCT'];
50
+ type ReferenceType = READ | CALL | CONSTRUCT;
51
+ type TraceMap<T = any> = Record<string, TraceMapElement<T>>;
52
+ interface TraceMapElement<T> {
53
+ [ReferenceTrackerREAD]?: T;
54
+ [ReferenceTrackerCALL]?: T;
55
+ [ReferenceTrackerCONSTRUCT]?: T;
56
+ [key: string]: TraceMapElement<T>;
57
+ }
58
+ interface FoundReference<T = any> {
59
+ node: TSESTree.Node;
60
+ path: readonly string[];
61
+ type: ReferenceType;
62
+ entry: T;
63
+ }
64
+ }
65
+ /**
66
+ * The tracker for references. This provides reference tracking for global variables, CommonJS modules, and ES modules.
67
+ *
68
+ * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#referencetracker-class}
69
+ */
70
+ declare const ReferenceTracker: ReferenceTrackerStatic;
71
+ export { ReferenceTracker };
72
+ //# sourceMappingURL=ReferenceTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceTracker.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/ReferenceTracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,QAAA,MAAM,oBAAoB,EAAE,OAAO,MAA0C,CAAC;AAC9E,QAAA,MAAM,oBAAoB,EAAE,OAAO,MAA0C,CAAC;AAC9E,QAAA,MAAM,yBAAyB,EAAE,OAAO,MACA,CAAC;AAEzC,UAAU,gBAAgB;IACxB;;;;;OAKG;IACH,uBAAuB,CAAC,CAAC,EACvB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,EACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,EACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD;AACD,UAAU,sBAAsB;IAC9B,KACE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EACjC,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B;;WAEG;QACH,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;KACtC,GACA,gBAAgB,CAAC;IAEpB,QAAQ,CAAC,IAAI,EAAE,OAAO,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,OAAO,yBAAyB,CAAC;CACtD;AAED,kBAAU,gBAAgB,CAAC;IACzB,KAAY,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,KAAY,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,KAAY,SAAS,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5D,KAAY,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpD,KAAY,QAAQ,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,UAAiB,eAAe,CAAC,CAAC;QAChC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;KACnC;IAED,UAAiB,cAAc,CAAC,CAAC,GAAG,GAAG;QACrC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;QACpB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;QACpB,KAAK,EAAE,CAAC,CAAC;KACV;CACF;AAED;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,wBAAyD,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-namespace */
3
+ var __importStar = (this && this.__importStar) || function (mod) {
4
+ if (mod && mod.__esModule) return mod;
5
+ var result = {};
6
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
7
+ result["default"] = mod;
8
+ return result;
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ const eslintUtils = __importStar(require("eslint-utils"));
12
+ const ReferenceTrackerREAD = eslintUtils.ReferenceTracker.READ;
13
+ const ReferenceTrackerCALL = eslintUtils.ReferenceTracker.CALL;
14
+ const ReferenceTrackerCONSTRUCT = eslintUtils.ReferenceTracker.CONSTRUCT;
15
+ /**
16
+ * The tracker for references. This provides reference tracking for global variables, CommonJS modules, and ES modules.
17
+ *
18
+ * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#referencetracker-class}
19
+ */
20
+ const ReferenceTracker = eslintUtils.ReferenceTracker;
21
+ exports.ReferenceTracker = ReferenceTracker;
22
+ //# sourceMappingURL=ReferenceTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceTracker.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/ReferenceTracker.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;AAEpD,0DAA4C;AAI5C,MAAM,oBAAoB,GAAkB,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9E,MAAM,oBAAoB,GAAkB,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9E,MAAM,yBAAyB,GAC7B,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC;AA6EzC;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAA0C,CAAC;AAEvE,4CAAgB"}
@@ -0,0 +1,82 @@
1
+ import { TSESTree } from '../../ts-estree';
2
+ import * as TSESLint from '../../ts-eslint';
3
+ /**
4
+ * Get the proper location of a given function node to report.
5
+ *
6
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getfunctionheadlocation}
7
+ */
8
+ declare const getFunctionHeadLocation: (node: TSESTree.ArrowFunctionExpression | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression, sourceCode: TSESLint.SourceCode) => TSESTree.SourceLocation;
9
+ /**
10
+ * Get the name and kind of a given function node.
11
+ *
12
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getfunctionnamewithkind}
13
+ */
14
+ declare const getFunctionNameWithKind: (node: TSESTree.ArrowFunctionExpression | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression) => string;
15
+ /**
16
+ * Get the property name of a given property node.
17
+ * If the node is a computed property, this tries to compute the property name by the getStringIfConstant function.
18
+ *
19
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getpropertyname}
20
+ * @returns The property name of the node. If the property name is not constant then it returns `null`.
21
+ */
22
+ declare const getPropertyName: (node: TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.OptionalMemberExpressionComputedName | TSESTree.OptionalMemberExpressionNonComputedName | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName, initialScope?: TSESLint.Scope.Scope | undefined) => string | null;
23
+ /**
24
+ * Get the value of a given node if it can decide the value statically.
25
+ * If the 2nd parameter `initialScope` was given, this function tries to resolve identifier references which are in the
26
+ * given node as much as possible. In the resolving way, it does on the assumption that built-in global objects have
27
+ * not been modified.
28
+ * For example, it considers `Symbol.iterator`, ` String.raw``hello`` `, and `Object.freeze({a: 1}).a` as static.
29
+ *
30
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstaticvalue}
31
+ * @returns The `{ value: any }` shaped object. The `value` property is the static value. If it couldn't compute the
32
+ * static value of the node, it returns `null`.
33
+ */
34
+ declare const getStaticValue: (node: TSESTree.Node, initialScope?: TSESLint.Scope.Scope | undefined) => {
35
+ value: unknown;
36
+ } | null;
37
+ /**
38
+ * Get the string value of a given node.
39
+ * This function is a tiny wrapper of the getStaticValue function.
40
+ *
41
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstringifconstant}
42
+ */
43
+ declare const getStringIfConstant: (node: TSESTree.Node, initialScope?: TSESLint.Scope.Scope | undefined) => string | null;
44
+ /**
45
+ * Check whether a given node has any side effect or not.
46
+ * The side effect means that it may modify a certain variable or object member. This function considers the node which
47
+ * contains the following types as the node which has side effects:
48
+ * - `AssignmentExpression`
49
+ * - `AwaitExpression`
50
+ * - `CallExpression`
51
+ * - `ImportExpression`
52
+ * - `NewExpression`
53
+ * - `UnaryExpression([operator = "delete"])`
54
+ * - `UpdateExpression`
55
+ * - `YieldExpression`
56
+ * - When `options.considerGetters` is `true`:
57
+ * - `MemberExpression`
58
+ * - When `options.considerImplicitTypeConversion` is `true`:
59
+ * - `BinaryExpression([operator = "==" | "!=" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in"])`
60
+ * - `MemberExpression([computed = true])`
61
+ * - `MethodDefinition([computed = true])`
62
+ * - `Property([computed = true])`
63
+ * - `UnaryExpression([operator = "-" | "+" | "!" | "~"])`
64
+ *
65
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#hassideeffect}
66
+ */
67
+ declare const hasSideEffect: (node: TSESTree.Node, sourceCode: TSESLint.SourceCode, options?: {
68
+ considerGetters?: boolean | undefined;
69
+ considerImplicitTypeConversion?: boolean | undefined;
70
+ } | undefined) => boolean;
71
+ /**
72
+ * Check whether a given node is parenthesized or not.
73
+ * This function detects it correctly even if it's parenthesized by specific syntax.
74
+ *
75
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#isparenthesized}
76
+ * @returns `true` if the node is parenthesized.
77
+ * If `times` was given, it returns `true` only if the node is parenthesized the `times` times.
78
+ * For example, `isParenthesized(2, node, sourceCode)` returns true for `((foo))`, but not for `(foo)`.
79
+ */
80
+ declare const isParenthesized: (node: TSESTree.Node, sourceCode: TSESLint.SourceCode) => boolean;
81
+ export { getFunctionHeadLocation, getFunctionNameWithKind, getPropertyName, getStaticValue, getStringIfConstant, hasSideEffect, isParenthesized, };
82
+ //# sourceMappingURL=astUtilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astUtilities.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/astUtilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,mKAMD,CAAC;AAE7B;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,iHAKlB,CAAC;AAEZ;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,qZAOH,CAAC;AAEnB;;;;;;;;;;GAUG;AACH,QAAA,MAAM,cAAc;;QAGU,CAAC;AAE/B;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,yFAGP,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,aAAa;;;yBAOP,CAAC;AAEb;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,mEAGT,CAAC;AAEb,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,eAAe,GAChB,CAAC"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __importStar = (this && this.__importStar) || function (mod) {
3
+ if (mod && mod.__esModule) return mod;
4
+ var result = {};
5
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
+ result["default"] = mod;
7
+ return result;
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const eslintUtils = __importStar(require("eslint-utils"));
11
+ /**
12
+ * Get the proper location of a given function node to report.
13
+ *
14
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getfunctionheadlocation}
15
+ */
16
+ const getFunctionHeadLocation = eslintUtils.getFunctionHeadLocation;
17
+ exports.getFunctionHeadLocation = getFunctionHeadLocation;
18
+ /**
19
+ * Get the name and kind of a given function node.
20
+ *
21
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getfunctionnamewithkind}
22
+ */
23
+ const getFunctionNameWithKind = eslintUtils.getFunctionNameWithKind;
24
+ exports.getFunctionNameWithKind = getFunctionNameWithKind;
25
+ /**
26
+ * Get the property name of a given property node.
27
+ * If the node is a computed property, this tries to compute the property name by the getStringIfConstant function.
28
+ *
29
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getpropertyname}
30
+ * @returns The property name of the node. If the property name is not constant then it returns `null`.
31
+ */
32
+ const getPropertyName = eslintUtils.getPropertyName;
33
+ exports.getPropertyName = getPropertyName;
34
+ /**
35
+ * Get the value of a given node if it can decide the value statically.
36
+ * If the 2nd parameter `initialScope` was given, this function tries to resolve identifier references which are in the
37
+ * given node as much as possible. In the resolving way, it does on the assumption that built-in global objects have
38
+ * not been modified.
39
+ * For example, it considers `Symbol.iterator`, ` String.raw``hello`` `, and `Object.freeze({a: 1}).a` as static.
40
+ *
41
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstaticvalue}
42
+ * @returns The `{ value: any }` shaped object. The `value` property is the static value. If it couldn't compute the
43
+ * static value of the node, it returns `null`.
44
+ */
45
+ const getStaticValue = eslintUtils.getStaticValue;
46
+ exports.getStaticValue = getStaticValue;
47
+ /**
48
+ * Get the string value of a given node.
49
+ * This function is a tiny wrapper of the getStaticValue function.
50
+ *
51
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstringifconstant}
52
+ */
53
+ const getStringIfConstant = eslintUtils.getStringIfConstant;
54
+ exports.getStringIfConstant = getStringIfConstant;
55
+ /**
56
+ * Check whether a given node has any side effect or not.
57
+ * The side effect means that it may modify a certain variable or object member. This function considers the node which
58
+ * contains the following types as the node which has side effects:
59
+ * - `AssignmentExpression`
60
+ * - `AwaitExpression`
61
+ * - `CallExpression`
62
+ * - `ImportExpression`
63
+ * - `NewExpression`
64
+ * - `UnaryExpression([operator = "delete"])`
65
+ * - `UpdateExpression`
66
+ * - `YieldExpression`
67
+ * - When `options.considerGetters` is `true`:
68
+ * - `MemberExpression`
69
+ * - When `options.considerImplicitTypeConversion` is `true`:
70
+ * - `BinaryExpression([operator = "==" | "!=" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in"])`
71
+ * - `MemberExpression([computed = true])`
72
+ * - `MethodDefinition([computed = true])`
73
+ * - `Property([computed = true])`
74
+ * - `UnaryExpression([operator = "-" | "+" | "!" | "~"])`
75
+ *
76
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#hassideeffect}
77
+ */
78
+ const hasSideEffect = eslintUtils.hasSideEffect;
79
+ exports.hasSideEffect = hasSideEffect;
80
+ /**
81
+ * Check whether a given node is parenthesized or not.
82
+ * This function detects it correctly even if it's parenthesized by specific syntax.
83
+ *
84
+ * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#isparenthesized}
85
+ * @returns `true` if the node is parenthesized.
86
+ * If `times` was given, it returns `true` only if the node is parenthesized the `times` times.
87
+ * For example, `isParenthesized(2, node, sourceCode)` returns true for `((foo))`, but not for `(foo)`.
88
+ */
89
+ const isParenthesized = eslintUtils.isParenthesized;
90
+ exports.isParenthesized = isParenthesized;
91
+ //# sourceMappingURL=astUtilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astUtilities.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/astUtilities.ts"],"names":[],"mappings":";;;;;;;;;AAAA,0DAA4C;AAI5C;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,WAAW,CAAC,uBAMhB,CAAC;AAwG3B,0DAAuB;AAtGzB;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,WAAW,CAAC,uBAKjC,CAAC;AA6FV,0DAAuB;AA3FzB;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,WAAW,CAAC,eAOlB,CAAC;AA8EjB,0CAAe;AA5EjB;;;;;;;;;;GAUG;AACH,MAAM,cAAc,GAAG,WAAW,CAAC,cAGL,CAAC;AA+D7B,wCAAc;AA7DhB;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAGtB,CAAC;AAqDjB,kDAAmB;AAnDrB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,aAAa,GAAG,WAAW,CAAC,aAOtB,CAAC;AAsBX,sCAAa;AApBf;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,WAAW,CAAC,eAGxB,CAAC;AASX,0CAAe"}
@@ -0,0 +1,6 @@
1
+ export * from './astUtilities';
2
+ export * from './PatternMatcher';
3
+ export * from './predicates';
4
+ export * from './ReferenceTracker';
5
+ export * from './scopeAnalysis';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ function __export(m) {
3
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
+ }
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ __export(require("./astUtilities"));
7
+ __export(require("./PatternMatcher"));
8
+ __export(require("./predicates"));
9
+ __export(require("./ReferenceTracker"));
10
+ __export(require("./scopeAnalysis"));
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/index.ts"],"names":[],"mappings":";;;;;AAAA,oCAA+B;AAC/B,sCAAiC;AACjC,kCAA6B;AAC7B,wCAAmC;AACnC,qCAAgC"}
@@ -0,0 +1,45 @@
1
+ import { TSESTree } from '../../ts-estree';
2
+ declare const isArrowToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
3
+ value: "=>";
4
+ };
5
+ declare const isNotArrowToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
6
+ declare const isClosingBraceToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
7
+ value: "}";
8
+ };
9
+ declare const isNotClosingBraceToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
10
+ declare const isClosingBracketToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
11
+ value: "]";
12
+ };
13
+ declare const isNotClosingBracketToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
14
+ declare const isClosingParenToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
15
+ value: ")";
16
+ };
17
+ declare const isNotClosingParenToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
18
+ declare const isColonToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
19
+ value: ":";
20
+ };
21
+ declare const isNotColonToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
22
+ declare const isCommaToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
23
+ value: ",";
24
+ };
25
+ declare const isNotCommaToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
26
+ declare const isCommentToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.Comment;
27
+ declare const isNotCommentToken: <T extends TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment>(token: T) => token is Exclude<T, TSESTree.Comment>;
28
+ declare const isOpeningBraceToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
29
+ value: "{";
30
+ };
31
+ declare const isNotOpeningBraceToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
32
+ declare const isOpeningBracketToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
33
+ value: "[";
34
+ };
35
+ declare const isNotOpeningBracketToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
36
+ declare const isOpeningParenToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
37
+ value: "(";
38
+ };
39
+ declare const isNotOpeningParenToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
40
+ declare const isSemicolonToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => token is TSESTree.PunctuatorToken & {
41
+ value: ";";
42
+ };
43
+ declare const isNotSemicolonToken: (token: TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken | TSESTree.BlockComment | TSESTree.LineComment) => boolean;
44
+ export { isArrowToken, isClosingBraceToken, isClosingBracketToken, isClosingParenToken, isColonToken, isCommaToken, isCommentToken, isNotArrowToken, isNotClosingBraceToken, isNotClosingBracketToken, isNotClosingParenToken, isNotColonToken, isNotCommaToken, isNotCommentToken, isNotOpeningBraceToken, isNotOpeningBracketToken, isNotOpeningParenToken, isNotSemicolonToken, isOpeningBraceToken, isOpeningBracketToken, isOpeningParenToken, isSemicolonToken, };
45
+ //# sourceMappingURL=predicates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/predicates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,QAAA,MAAM,YAAY;;CAEsC,CAAC;AACzD,QAAA,MAAM,eAAe,6VAET,CAAC;AAEb,QAAA,MAAM,mBAAmB;;CAE8B,CAAC;AACxD,QAAA,MAAM,sBAAsB,6VAEhB,CAAC;AAEb,QAAA,MAAM,qBAAqB;;CAE4B,CAAC;AACxD,QAAA,MAAM,wBAAwB,6VAElB,CAAC;AAEb,QAAA,MAAM,mBAAmB;;CAE8B,CAAC;AACxD,QAAA,MAAM,sBAAsB,6VAEhB,CAAC;AAEb,QAAA,MAAM,YAAY;;CAEqC,CAAC;AACxD,QAAA,MAAM,eAAe,6VAET,CAAC;AAEb,QAAA,MAAM,YAAY;;CAEqC,CAAC;AACxD,QAAA,MAAM,eAAe,6VAET,CAAC;AAEb,QAAA,MAAM,cAAc,+WAEU,CAAC;AAC/B,QAAA,MAAM,iBAAiB,wYAImB,CAAC;AAE3C,QAAA,MAAM,mBAAmB;;CAE8B,CAAC;AACxD,QAAA,MAAM,sBAAsB,6VAEhB,CAAC;AAEb,QAAA,MAAM,qBAAqB;;CAE4B,CAAC;AACxD,QAAA,MAAM,wBAAwB,6VAElB,CAAC;AAEb,QAAA,MAAM,mBAAmB;;CAE8B,CAAC;AACxD,QAAA,MAAM,sBAAsB,6VAEhB,CAAC;AAEb,QAAA,MAAM,gBAAgB;;CAEiC,CAAC;AACxD,QAAA,MAAM,mBAAmB,6VAEb,CAAC;AAEb,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importStar = (this && this.__importStar) || function (mod) {
3
+ if (mod && mod.__esModule) return mod;
4
+ var result = {};
5
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
+ result["default"] = mod;
7
+ return result;
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const eslintUtils = __importStar(require("eslint-utils"));
11
+ const isArrowToken = eslintUtils.isArrowToken;
12
+ exports.isArrowToken = isArrowToken;
13
+ const isNotArrowToken = eslintUtils.isNotArrowToken;
14
+ exports.isNotArrowToken = isNotArrowToken;
15
+ const isClosingBraceToken = eslintUtils.isClosingBraceToken;
16
+ exports.isClosingBraceToken = isClosingBraceToken;
17
+ const isNotClosingBraceToken = eslintUtils.isNotClosingBraceToken;
18
+ exports.isNotClosingBraceToken = isNotClosingBraceToken;
19
+ const isClosingBracketToken = eslintUtils.isClosingBracketToken;
20
+ exports.isClosingBracketToken = isClosingBracketToken;
21
+ const isNotClosingBracketToken = eslintUtils.isNotClosingBracketToken;
22
+ exports.isNotClosingBracketToken = isNotClosingBracketToken;
23
+ const isClosingParenToken = eslintUtils.isClosingParenToken;
24
+ exports.isClosingParenToken = isClosingParenToken;
25
+ const isNotClosingParenToken = eslintUtils.isNotClosingParenToken;
26
+ exports.isNotClosingParenToken = isNotClosingParenToken;
27
+ const isColonToken = eslintUtils.isColonToken;
28
+ exports.isColonToken = isColonToken;
29
+ const isNotColonToken = eslintUtils.isNotColonToken;
30
+ exports.isNotColonToken = isNotColonToken;
31
+ const isCommaToken = eslintUtils.isCommaToken;
32
+ exports.isCommaToken = isCommaToken;
33
+ const isNotCommaToken = eslintUtils.isNotCommaToken;
34
+ exports.isNotCommaToken = isNotCommaToken;
35
+ const isCommentToken = eslintUtils.isCommentToken;
36
+ exports.isCommentToken = isCommentToken;
37
+ const isNotCommentToken = eslintUtils.isNotCommentToken;
38
+ exports.isNotCommentToken = isNotCommentToken;
39
+ const isOpeningBraceToken = eslintUtils.isOpeningBraceToken;
40
+ exports.isOpeningBraceToken = isOpeningBraceToken;
41
+ const isNotOpeningBraceToken = eslintUtils.isNotOpeningBraceToken;
42
+ exports.isNotOpeningBraceToken = isNotOpeningBraceToken;
43
+ const isOpeningBracketToken = eslintUtils.isOpeningBracketToken;
44
+ exports.isOpeningBracketToken = isOpeningBracketToken;
45
+ const isNotOpeningBracketToken = eslintUtils.isNotOpeningBracketToken;
46
+ exports.isNotOpeningBracketToken = isNotOpeningBracketToken;
47
+ const isOpeningParenToken = eslintUtils.isOpeningParenToken;
48
+ exports.isOpeningParenToken = isOpeningParenToken;
49
+ const isNotOpeningParenToken = eslintUtils.isNotOpeningParenToken;
50
+ exports.isNotOpeningParenToken = isNotOpeningParenToken;
51
+ const isSemicolonToken = eslintUtils.isSemicolonToken;
52
+ exports.isSemicolonToken = isSemicolonToken;
53
+ const isNotSemicolonToken = eslintUtils.isNotSemicolonToken;
54
+ exports.isNotSemicolonToken = isNotSemicolonToken;
55
+ //# sourceMappingURL=predicates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/predicates.ts"],"names":[],"mappings":";;;;;;;;;AAAA,0DAA4C;AAG5C,MAAM,YAAY,GAAG,WAAW,CAAC,YAEuB,CAAC;AA8EvD,oCAAY;AA7Ed,MAAM,eAAe,GAAG,WAAW,CAAC,eAExB,CAAC;AAkFX,0CAAe;AAhFjB,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAEe,CAAC;AAwEtD,kDAAmB;AAvErB,MAAM,sBAAsB,GAAG,WAAW,CAAC,sBAE/B,CAAC;AA4EX,wDAAsB;AA1ExB,MAAM,qBAAqB,GAAG,WAAW,CAAC,qBAEa,CAAC;AAkEtD,sDAAqB;AAjEvB,MAAM,wBAAwB,GAAG,WAAW,CAAC,wBAEjC,CAAC;AAsEX,4DAAwB;AApE1B,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAEe,CAAC;AA4DtD,kDAAmB;AA3DrB,MAAM,sBAAsB,GAAG,WAAW,CAAC,sBAE/B,CAAC;AAgEX,wDAAsB;AA9DxB,MAAM,YAAY,GAAG,WAAW,CAAC,YAEsB,CAAC;AAsDtD,oCAAY;AArDd,MAAM,eAAe,GAAG,WAAW,CAAC,eAExB,CAAC;AA0DX,0CAAe;AAxDjB,MAAM,YAAY,GAAG,WAAW,CAAC,YAEsB,CAAC;AAgDtD,oCAAY;AA/Cd,MAAM,eAAe,GAAG,WAAW,CAAC,eAExB,CAAC;AAoDX,0CAAe;AAlDjB,MAAM,cAAc,GAAG,WAAW,CAAC,cAEL,CAAC;AA0C7B,wCAAc;AAzChB,MAAM,iBAAiB,GAAG,WAAW,CAAC,iBAII,CAAC;AA4CzC,8CAAiB;AA1CnB,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAEe,CAAC;AA6CtD,kDAAmB;AA5CrB,MAAM,sBAAsB,GAAG,WAAW,CAAC,sBAE/B,CAAC;AAsCX,wDAAsB;AApCxB,MAAM,qBAAqB,GAAG,WAAW,CAAC,qBAEa,CAAC;AAuCtD,sDAAqB;AAtCvB,MAAM,wBAAwB,GAAG,WAAW,CAAC,wBAEjC,CAAC;AAgCX,4DAAwB;AA9B1B,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAEe,CAAC;AAiCtD,kDAAmB;AAhCrB,MAAM,sBAAsB,GAAG,WAAW,CAAC,sBAE/B,CAAC;AA0BX,wDAAsB;AAxBxB,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAEkB,CAAC;AA2BtD,4CAAgB;AA1BlB,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAE5B,CAAC;AAoBX,kDAAmB"}
@@ -0,0 +1,18 @@
1
+ import { TSESTree } from '../../ts-estree';
2
+ import * as TSESLint from '../../ts-eslint';
3
+ /**
4
+ * Get the variable of a given name.
5
+ *
6
+ * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#findvariable}
7
+ */
8
+ declare const findVariable: (initialScope: TSESLint.Scope.Scope, name: string) => TSESLint.Scope.Variable | null;
9
+ /**
10
+ * Get the innermost scope which contains a given node.
11
+ *
12
+ * @see {@link https://eslint-utils.mysticatea.dev/api/scope-utils.html#getinnermostscope}
13
+ * @returns The innermost scope which contains the given node.
14
+ * If such scope doesn't exist then it returns the 1st argument `initialScope`.
15
+ */
16
+ declare const getInnermostScope: (initialScope: TSESLint.Scope.Scope, node: TSESTree.Node) => TSESLint.Scope.Scope;
17
+ export { findVariable, getInnermostScope };
18
+ //# sourceMappingURL=scopeAnalysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeAnalysis.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/scopeAnalysis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,QAAA,MAAM,YAAY,sFAGiB,CAAC;AAEpC;;;;;;GAMG;AACH,QAAA,MAAM,iBAAiB,mFAGE,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}