eslint-plugin-runtime-cleanup 1.2.8 → 1.2.10

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 (145) hide show
  1. package/README.md +29 -29
  2. package/dist/_internal/ast-node.d.ts +5 -1
  3. package/dist/_internal/ast-node.d.ts.map +1 -1
  4. package/dist/_internal/ast-node.js +2 -1
  5. package/dist/_internal/ast-node.js.map +1 -1
  6. package/dist/_internal/bounded-cache.d.ts.map +1 -1
  7. package/dist/_internal/bounded-cache.js +2 -1
  8. package/dist/_internal/bounded-cache.js.map +1 -1
  9. package/dist/_internal/expression-boolean-memoizer.d.ts.map +1 -1
  10. package/dist/_internal/expression-boolean-memoizer.js +2 -1
  11. package/dist/_internal/expression-boolean-memoizer.js.map +1 -1
  12. package/dist/_internal/filter-callback.d.ts +5 -1
  13. package/dist/_internal/filter-callback.d.ts.map +1 -1
  14. package/dist/_internal/filter-callback.js +9 -10
  15. package/dist/_internal/filter-callback.js.map +1 -1
  16. package/dist/_internal/floating-resource.d.ts +8 -0
  17. package/dist/_internal/floating-resource.d.ts.map +1 -1
  18. package/dist/_internal/floating-resource.js +42 -36
  19. package/dist/_internal/floating-resource.js.map +1 -1
  20. package/dist/_internal/normalize-expression-text.d.ts +6 -1
  21. package/dist/_internal/normalize-expression-text.d.ts.map +1 -1
  22. package/dist/_internal/normalize-expression-text.js +30 -28
  23. package/dist/_internal/normalize-expression-text.js.map +1 -1
  24. package/dist/_internal/nullish-comparison.d.ts +1 -1
  25. package/dist/_internal/nullish-comparison.d.ts.map +1 -1
  26. package/dist/_internal/nullish-comparison.js +16 -11
  27. package/dist/_internal/nullish-comparison.js.map +1 -1
  28. package/dist/_internal/plugin-settings.d.ts +2 -1
  29. package/dist/_internal/plugin-settings.d.ts.map +1 -1
  30. package/dist/_internal/plugin-settings.js +3 -2
  31. package/dist/_internal/plugin-settings.js.map +1 -1
  32. package/dist/_internal/report-adapter.d.ts +5 -4
  33. package/dist/_internal/report-adapter.d.ts.map +1 -1
  34. package/dist/_internal/report-adapter.js +3 -2
  35. package/dist/_internal/report-adapter.js.map +1 -1
  36. package/dist/_internal/rule-catalog.d.ts.map +1 -1
  37. package/dist/_internal/rule-catalog.js +3 -2
  38. package/dist/_internal/rule-catalog.js.map +1 -1
  39. package/dist/_internal/rule-docs-metadata.d.ts +2 -1
  40. package/dist/_internal/rule-docs-metadata.d.ts.map +1 -1
  41. package/dist/_internal/rule-docs-metadata.js +36 -33
  42. package/dist/_internal/rule-docs-metadata.js.map +1 -1
  43. package/dist/_internal/rules-registry.d.ts +2 -1
  44. package/dist/_internal/rules-registry.d.ts.map +1 -1
  45. package/dist/_internal/rules-registry.js.map +1 -1
  46. package/dist/_internal/runtime-cleanup-config-references.d.ts +2 -1
  47. package/dist/_internal/runtime-cleanup-config-references.d.ts.map +1 -1
  48. package/dist/_internal/runtime-cleanup-config-references.js +8 -7
  49. package/dist/_internal/runtime-cleanup-config-references.js.map +1 -1
  50. package/dist/_internal/scope-variable.d.ts.map +1 -1
  51. package/dist/_internal/scope-variable.js +5 -4
  52. package/dist/_internal/scope-variable.js.map +1 -1
  53. package/dist/_internal/type-checker.d.ts +2 -2
  54. package/dist/_internal/type-checker.d.ts.map +1 -1
  55. package/dist/_internal/type-checker.js +10 -8
  56. package/dist/_internal/type-checker.js.map +1 -1
  57. package/dist/_internal/type-predicate-autofix-safety.d.ts +5 -1
  58. package/dist/_internal/type-predicate-autofix-safety.d.ts.map +1 -1
  59. package/dist/_internal/type-predicate-autofix-safety.js +9 -10
  60. package/dist/_internal/type-predicate-autofix-safety.js.map +1 -1
  61. package/dist/_internal/type-reference-node.d.ts +7 -5
  62. package/dist/_internal/type-reference-node.d.ts.map +1 -1
  63. package/dist/_internal/type-reference-node.js +6 -6
  64. package/dist/_internal/type-reference-node.js.map +1 -1
  65. package/dist/_internal/typed-rule.d.ts +2 -1
  66. package/dist/_internal/typed-rule.d.ts.map +1 -1
  67. package/dist/_internal/typed-rule.js +6 -5
  68. package/dist/_internal/typed-rule.js.map +1 -1
  69. package/dist/_internal/value-rewrite-autofix-safety.d.ts +5 -1
  70. package/dist/_internal/value-rewrite-autofix-safety.d.ts.map +1 -1
  71. package/dist/_internal/value-rewrite-autofix-safety.js +10 -18
  72. package/dist/_internal/value-rewrite-autofix-safety.js.map +1 -1
  73. package/dist/plugin.cjs +571 -662
  74. package/dist/plugin.cjs.map +4 -4
  75. package/dist/plugin.d.cts +2 -1
  76. package/dist/plugin.d.ts +2 -1
  77. package/dist/plugin.d.ts.map +1 -1
  78. package/dist/plugin.js +8 -7
  79. package/dist/plugin.js.map +1 -1
  80. package/dist/rules/no-floating-abort-controllers.d.ts.map +1 -1
  81. package/dist/rules/no-floating-abort-controllers.js +24 -52
  82. package/dist/rules/no-floating-abort-controllers.js.map +1 -1
  83. package/dist/rules/no-floating-audio-contexts.d.ts.map +1 -1
  84. package/dist/rules/no-floating-audio-contexts.js +7 -6
  85. package/dist/rules/no-floating-audio-contexts.js.map +1 -1
  86. package/dist/rules/no-floating-broadcast-channels.d.ts.map +1 -1
  87. package/dist/rules/no-floating-broadcast-channels.js +31 -59
  88. package/dist/rules/no-floating-broadcast-channels.js.map +1 -1
  89. package/dist/rules/no-floating-child-processes.d.ts.map +1 -1
  90. package/dist/rules/no-floating-child-processes.js +43 -45
  91. package/dist/rules/no-floating-child-processes.js.map +1 -1
  92. package/dist/rules/no-floating-disposable-stacks.d.ts.map +1 -1
  93. package/dist/rules/no-floating-disposable-stacks.js +37 -38
  94. package/dist/rules/no-floating-disposable-stacks.js.map +1 -1
  95. package/dist/rules/no-floating-file-watchers.d.ts.map +1 -1
  96. package/dist/rules/no-floating-file-watchers.js +40 -42
  97. package/dist/rules/no-floating-file-watchers.js.map +1 -1
  98. package/dist/rules/no-floating-geolocation-watches.js +20 -20
  99. package/dist/rules/no-floating-geolocation-watches.js.map +1 -1
  100. package/dist/rules/no-floating-infinite-animations.d.ts.map +1 -1
  101. package/dist/rules/no-floating-infinite-animations.js +4 -3
  102. package/dist/rules/no-floating-infinite-animations.js.map +1 -1
  103. package/dist/rules/no-floating-media-streams.d.ts.map +1 -1
  104. package/dist/rules/no-floating-media-streams.js +24 -24
  105. package/dist/rules/no-floating-media-streams.js.map +1 -1
  106. package/dist/rules/no-floating-message-channels.js +30 -30
  107. package/dist/rules/no-floating-message-channels.js.map +1 -1
  108. package/dist/rules/no-floating-network-connections.d.ts.map +1 -1
  109. package/dist/rules/no-floating-network-connections.js +36 -36
  110. package/dist/rules/no-floating-network-connections.js.map +1 -1
  111. package/dist/rules/no-floating-object-urls.d.ts.map +1 -1
  112. package/dist/rules/no-floating-object-urls.js +4 -3
  113. package/dist/rules/no-floating-object-urls.js.map +1 -1
  114. package/dist/rules/no-floating-observers.d.ts.map +1 -1
  115. package/dist/rules/no-floating-observers.js +33 -34
  116. package/dist/rules/no-floating-observers.js.map +1 -1
  117. package/dist/rules/no-floating-servers.d.ts.map +1 -1
  118. package/dist/rules/no-floating-servers.js +50 -52
  119. package/dist/rules/no-floating-servers.js.map +1 -1
  120. package/dist/rules/no-floating-streams.d.ts.map +1 -1
  121. package/dist/rules/no-floating-streams.js +28 -29
  122. package/dist/rules/no-floating-streams.js.map +1 -1
  123. package/dist/rules/no-floating-timers.d.ts.map +1 -1
  124. package/dist/rules/no-floating-timers.js +7 -47
  125. package/dist/rules/no-floating-timers.js.map +1 -1
  126. package/dist/rules/no-floating-wake-locks.js +20 -20
  127. package/dist/rules/no-floating-wake-locks.js.map +1 -1
  128. package/dist/rules/no-floating-web-stream-locks.d.ts.map +1 -1
  129. package/dist/rules/no-floating-web-stream-locks.js +4 -3
  130. package/dist/rules/no-floating-web-stream-locks.js.map +1 -1
  131. package/dist/rules/no-floating-workers.d.ts.map +1 -1
  132. package/dist/rules/no-floating-workers.js +39 -40
  133. package/dist/rules/no-floating-workers.js.map +1 -1
  134. package/dist/rules/no-unmanaged-event-listeners.d.ts.map +1 -1
  135. package/dist/rules/no-unmanaged-event-listeners.js +23 -23
  136. package/dist/rules/no-unmanaged-event-listeners.js.map +1 -1
  137. package/docs/rules/no-floating-audio-contexts.md +1 -2
  138. package/docs/rules/no-floating-media-streams.md +1 -1
  139. package/docs/rules/no-floating-object-urls.md +3 -3
  140. package/docs/rules/no-floating-observers.md +1 -1
  141. package/docs/rules/no-floating-servers.md +1 -1
  142. package/docs/rules/no-floating-wake-locks.md +1 -1
  143. package/docs/rules/no-floating-web-stream-locks.md +1 -2
  144. package/docs/rules/presets/index.md +28 -28
  145. package/package.json +7 -4
package/dist/plugin.d.cts CHANGED
@@ -3,6 +3,7 @@
3
3
  * Public plugin entrypoint for eslint-plugin-runtime-cleanup exports and preset wiring.
4
4
  */
5
5
  import type { ESLint, Linter } from "eslint";
6
+ import type { Except } from "type-fest";
6
7
  import { runtimeCleanupRules } from "./_internal/rules-registry.js";
7
8
  import { type RuntimeCleanupConfigName as InternalRuntimeCleanupConfigName } from "./_internal/runtime-cleanup-config-references.js";
8
9
  /**
@@ -26,7 +27,7 @@ export type RuntimeCleanupPresetConfig = Linter.Config & {
26
27
  /** Contract for the `configs` object exported by this plugin. */
27
28
  type RuntimeCleanupConfigsContract = Record<RuntimeCleanupConfigName, RuntimeCleanupPresetConfig>;
28
29
  /** Fully assembled plugin contract used by the runtime default export. */
29
- type RuntimeCleanupPluginContract = Omit<ESLint.Plugin, "configs" | "rules"> & {
30
+ type RuntimeCleanupPluginContract = Except<ESLint.Plugin, "configs" | "rules"> & {
30
31
  configs: RuntimeCleanupConfigsContract;
31
32
  meta: {
32
33
  name: string;
package/dist/plugin.d.ts CHANGED
@@ -3,6 +3,7 @@
3
3
  * Public plugin entrypoint for eslint-plugin-runtime-cleanup exports and preset wiring.
4
4
  */
5
5
  import type { ESLint, Linter } from "eslint";
6
+ import type { Except } from "type-fest";
6
7
  import { runtimeCleanupRules } from "./_internal/rules-registry.js";
7
8
  import { type RuntimeCleanupConfigName as InternalRuntimeCleanupConfigName } from "./_internal/runtime-cleanup-config-references.js";
8
9
  /**
@@ -26,7 +27,7 @@ export type RuntimeCleanupPresetConfig = Linter.Config & {
26
27
  /** Contract for the `configs` object exported by this plugin. */
27
28
  type RuntimeCleanupConfigsContract = Record<RuntimeCleanupConfigName, RuntimeCleanupPresetConfig>;
28
29
  /** Fully assembled plugin contract used by the runtime default export. */
29
- type RuntimeCleanupPluginContract = Omit<ESLint.Plugin, "configs" | "rules"> & {
30
+ type RuntimeCleanupPluginContract = Except<ESLint.Plugin, "configs" | "rules"> & {
30
31
  configs: RuntimeCleanupConfigsContract;
31
32
  meta: {
32
33
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAM7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACH,KAAK,wBAAwB,IAAI,gCAAgC,EAGpE,MAAM,kDAAkD,CAAC;AAK1D;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,GAAG;IACrD,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C,CAAC;AAWF,iEAAiE;AACjE,KAAK,6BAA6B,GAAG,MAAM,CACvC,wBAAwB,EACxB,0BAA0B,CAC7B,CAAC;AAEF,0EAA0E;AAC1E,KAAK,4BAA4B,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IAC3E,OAAO,EAAE,6BAA6B,CAAC;IACvC,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACrD,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C,CAAC;AAwCF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,sBAAsB,EAAE,CAAC;AAE/E,0EAA0E;AAC1E,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AA4MtE,kEAAkE;AAClE,QAAA,MAAM,qBAAqB,EAAE,6BACM,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE;;GAEG;AACH,QAAA,MAAM,oBAAoB,EAAE,4BAS3B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAE/D;;GAEG;AACH,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACH,KAAK,wBAAwB,IAAI,gCAAgC,EAGpE,MAAM,kDAAkD,CAAC;AAK1D;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,GAAG;IACrD,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C,CAAC;AAWF,iEAAiE;AACjE,KAAK,6BAA6B,GAAG,MAAM,CACvC,wBAAwB,EACxB,0BAA0B,CAC7B,CAAC;AAEF,0EAA0E;AAC1E,KAAK,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IAC7E,OAAO,EAAE,6BAA6B,CAAC;IACvC,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACrD,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C,CAAC;AAwCF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,sBAAsB,EAAE,CAAC;AAE/E,0EAA0E;AAC1E,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AA4MtE,kEAAkE;AAClE,QAAA,MAAM,qBAAqB,EAAE,6BACM,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE;;GAEG;AACH,QAAA,MAAM,oBAAoB,EAAE,4BAS3B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAE/D;;GAEG;AACH,eAAe,oBAAoB,CAAC"}
package/dist/plugin.js CHANGED
@@ -1,10 +1,11 @@
1
- import typeScriptParser from "@typescript-eslint/parser";
1
+ import tsParser from "@typescript-eslint/parser";
2
+ import { objectFromEntries, objectHasOwn } from "ts-extras";
2
3
  // eslint-disable-next-line import-x/extensions -- Avoid importing from the ESM entrypoint to preserve CJS compatibility
3
4
  import packageJson from "../package.json" with { type: "json" };
4
5
  import { runtimeCleanupRules } from "./_internal/rules-registry.js";
5
6
  import { runtimeCleanupConfigMetadataByName, runtimeCleanupConfigNames, } from "./_internal/runtime-cleanup-config-references.js";
6
7
  /** Default file globs targeted by plugin presets when `files` is omitted. */
7
- const TYPE_SCRIPT_FILES = ["**/*.{ts,tsx,mts,cts}"];
8
+ const TS_FILES = ["**/*.{ts,tsx,mts,cts}"];
8
9
  /**
9
10
  * Resolve package version from package.json data.
10
11
  *
@@ -20,7 +21,7 @@ function getPackageVersion(pkg) {
20
21
  return typeof version === "string" ? version : "0.0.0";
21
22
  }
22
23
  /** Parser module reused across preset construction. */
23
- const typeScriptParserValue = typeScriptParser;
24
+ const tsParserValue = tsParser;
24
25
  /** Default parser options applied when a preset omits parser options. */
25
26
  const defaultParserOptions = {
26
27
  ecmaVersion: "latest",
@@ -160,17 +161,17 @@ function withRuntimeCleanupPlugin(config, plugin, options) {
160
161
  const existingParserOptions = existingLanguageOptions["parserOptions"];
161
162
  const parserOptions = normalizeParserOptions(existingParserOptions);
162
163
  if (options.requiresTypeChecking &&
163
- !Object.hasOwn(parserOptions, "projectService")) {
164
+ !objectHasOwn(parserOptions, "projectService")) {
164
165
  Reflect.set(parserOptions, "projectService", true);
165
166
  }
166
167
  const languageOptions = {
167
168
  ...existingLanguageOptions,
168
- parser: existingLanguageOptions["parser"] ?? typeScriptParserValue,
169
+ parser: existingLanguageOptions["parser"] ?? tsParserValue,
169
170
  parserOptions,
170
171
  };
171
172
  return {
172
173
  ...config,
173
- files: config.files ?? [...TYPE_SCRIPT_FILES],
174
+ files: config.files ?? [...TS_FILES],
174
175
  languageOptions,
175
176
  plugins: {
176
177
  ...config.plugins,
@@ -196,7 +197,7 @@ const createPresetConfig = (configName) => {
196
197
  */
197
198
  const createRuntimeCleanupConfigsDefinition = () =>
198
199
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Object.fromEntries cannot preserve the finite preset-key union.
199
- Object.fromEntries(runtimeCleanupConfigNames.map((configName) => [
200
+ objectFromEntries(runtimeCleanupConfigNames.map((configName) => [
200
201
  configName,
201
202
  createPresetConfig(configName),
202
203
  ]));
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAOA,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,wHAAwH;AACxH,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAEH,kCAAkC,EAClC,yBAAyB,GAC5B,MAAM,kDAAkD,CAAC;AAE1D,6EAA6E;AAC7E,MAAM,QAAQ,GAAG,CAAC,uBAAuB,CAAU,CAAC;AAiDpD;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,GAAY;IACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAY,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAErD,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3D,CAAC;AAED,uDAAuD;AACvD,MAAM,aAAa,GAAkC,QAAQ,CAAC;AAE9D,yEAAyE;AACzE,MAAM,oBAAoB,GAAG;IACzB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,QAAQ;CACK,CAAC;AAE9B;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAC3B,aAAmD,EAClC,EAAE,CACnB,aAAa,KAAK,IAAI;IACtB,OAAO,aAAa,KAAK,QAAQ;IACjC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;IACzB,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE;IACtB,CAAC,CAAC,EAAE,GAAG,oBAAoB,EAAE,CAAC;AActC;;GAEG;AACH,MAAM,yBAAyB;AAE3B,4JAA4J;AAC5J,mBAC8B,CAAC;AAEnC;;;;;;GAMG;AACH,SAAS,aAAa,CAClB,SAA4C;IAE5C,MAAM,KAAK,GAAwC,EAAE,CAAC;IAEtD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC;IACnD,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,MAAM,gCAAgC,GAElC;IACA,GAAG,EAAE;QACD,+BAA+B;QAC/B,4BAA4B;QAC5B,gCAAgC;QAChC,6BAA6B;QAC7B,+BAA+B;QAC/B,2BAA2B;QAC3B,iCAAiC;QACjC,iCAAiC;QACjC,2BAA2B;QAC3B,8BAA8B;QAC9B,iCAAiC;QACjC,yBAAyB;QACzB,uBAAuB;QACvB,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,qBAAqB;QACrB,8BAA8B;KACjC;IACD,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,EAAE;IACX,WAAW,EAAE;QACT,+BAA+B;QAC/B,4BAA4B;QAC5B,gCAAgC;QAChC,6BAA6B;QAC7B,+BAA+B;QAC/B,2BAA2B;QAC3B,iCAAiC;QACjC,2BAA2B;QAC3B,8BAA8B;QAC9B,iCAAiC;QACjC,yBAAyB;QACzB,uBAAuB;QACvB,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB;QACpB,wBAAwB;QACxB,qBAAqB;QACrB,8BAA8B;KACjC;IACD,0BAA0B,EAAE;QACxB,+BAA+B;QAC/B,4BAA4B;QAC5B,gCAAgC;QAChC,6BAA6B;QAC7B,+BAA+B;QAC/B,2BAA2B;QAC3B,iCAAiC;QACjC,iCAAiC;QACjC,2BAA2B;QAC3B,8BAA8B;QAC9B,iCAAiC;QACjC,yBAAyB;QACzB,uBAAuB;QACvB,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,qBAAqB;QACrB,8BAA8B;KACjC;IACD,MAAM,EAAE;QACJ,+BAA+B;QAC/B,4BAA4B;QAC5B,gCAAgC;QAChC,6BAA6B;QAC7B,+BAA+B;QAC/B,2BAA2B;QAC3B,iCAAiC;QACjC,iCAAiC;QACjC,2BAA2B;QAC3B,8BAA8B;QAC9B,iCAAiC;QACjC,yBAAyB;QACzB,uBAAuB;QACvB,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,qBAAqB;QACrB,8BAA8B;KACjC;CACJ,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAS,wBAAwB,CAC7B,MAA4C,EAC5C,MAA+B,EAC/B,OAAoD;IAEpD,MAAM,uBAAuB,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;IAC7D,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;IAEpE,IACI,OAAO,CAAC,oBAAoB;QAC5B,CAAC,YAAY,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAChD,CAAC;QACC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,eAAe,GAAwB;QACzC,GAAG,uBAAuB;QAC1B,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,IAAI,aAAa;QAC1D,aAAa;KAChB,CAAC;IAEF,OAAO;QACH,GAAG,MAAM;QACT,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC;QACpC,eAAe;QACf,OAAO,EAAE;YACL,GAAG,MAAM,CAAC,OAAO;YACjB,iBAAiB,EAAE,MAAM;SAC5B;KACJ,CAAC;AACN,CAAC;AAED,sEAAsE;AACtE,MAAM,gBAAgB,GAAkB;IACpC,KAAK,EAAE,yBAAyB;CACnC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACvB,UAAoC,EACV,EAAE;IAC5B,MAAM,cAAc,GAAG,kCAAkC,CAAC,UAAU,CAAC,CAAC;IAEtE,OAAO,wBAAwB,CAC3B;QACI,IAAI,EAAE,cAAc,CAAC,UAAU;QAC/B,KAAK,EAAE,aAAa,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAC;KACrE,EACD,gBAAgB,EAChB;QACI,oBAAoB,EAAE,cAAc,CAAC,oBAAoB;KAC5D,CACJ,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,qCAAqC,GACvC,GAAkC,EAAE;AAChC,0IAA0I;AAC1I,iBAAiB,CACb,yBAAyB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;IAC1C,UAAU;IACV,kBAAkB,CAAC,UAAU,CAAC;CACjC,CAAC,CAC4B,CAAC;AAE3C,MAAM,+BAA+B,GAAG,qCAAqC,EAAE,CAAC;AAEhF,kEAAkE;AAClE,MAAM,qBAAqB,GACvB,+BAA+B,CAAC;AAWpC;;GAEG;AACH,MAAM,oBAAoB,GAAiC;IACvD,OAAO,EAAE,qBAAqB;IAC9B,IAAI,EAAE;QACF,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,iBAAiB;QAC5B,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC;KAC1C;IACD,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,yBAAyB;CACnC,CAAC;AAWF;;GAEG;AACH,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-abort-controllers.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-abort-controllers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAsKlC,+EAA+E;AAC/E,QAAA,MAAM,0BAA0B,EAAE,QAAQ,CAAC,UAAU,CACjD,yBAAyB,EACzB,SAAS,EAAE,CA2Cb,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"no-floating-abort-controllers.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-abort-controllers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAgIlC,+EAA+E;AAC/E,QAAA,MAAM,0BAA0B,EAAE,QAAQ,CAAC,UAAU,CACjD,yBAAyB,EACzB,SAAS,EAAE,CA2Cb,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
@@ -3,7 +3,9 @@
3
3
  * Require AbortController handles to be retained so work can be aborted during cleanup.
4
4
  */
5
5
  import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
6
+ import { isDefined, setHas } from "ts-extras";
6
7
  import { getParentNode } from "../_internal/ast-node.js";
8
+ import { getFirstOpaqueParent } from "../_internal/floating-resource.js";
7
9
  import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
8
10
  import { getVariableInScopeChain } from "../_internal/scope-variable.js";
9
11
  import { createTypedRule, } from "../_internal/typed-rule.js";
@@ -14,25 +16,7 @@ const globalReceiverNames = [
14
16
  "window",
15
17
  ];
16
18
  const globalReceiverNameSet = new Set(globalReceiverNames);
17
- const isGlobalReceiverName = (name) => globalReceiverNameSet.has(name);
18
- const getTransparentWrappedExpression = (node) => {
19
- if (node.type === AST_NODE_TYPES.ChainExpression) {
20
- return node.expression;
21
- }
22
- if (node.type === AST_NODE_TYPES.TSAsExpression) {
23
- return node.expression;
24
- }
25
- if (node.type === AST_NODE_TYPES.TSNonNullExpression) {
26
- return node.expression;
27
- }
28
- if (node.type === AST_NODE_TYPES.TSSatisfiesExpression) {
29
- return node.expression;
30
- }
31
- if (node.type === AST_NODE_TYPES.TSTypeAssertion) {
32
- return node.expression;
33
- }
34
- return undefined;
35
- };
19
+ const isGlobalReceiverName = (name) => setHas(globalReceiverNameSet, name);
36
20
  const getStaticPropertyName = (node, computed) => {
37
21
  if (!computed && node.type === AST_NODE_TYPES.Identifier) {
38
22
  return node.name;
@@ -61,45 +45,33 @@ const isMemberAbortControllerConstructor = (callee) => callee.type === AST_NODE_
61
45
  const isAbortControllerConstructor = (context, callee) => isDirectAbortControllerConstructor(context, callee) ||
62
46
  isMemberAbortControllerConstructor(callee);
63
47
  const isDiscardedAbortControllerHandle = (node) => {
64
- let current = node;
65
- let parent = getParentNode(current);
66
- while (parent !== undefined) {
67
- const wrappedExpression = getTransparentWrappedExpression(parent);
68
- if (wrappedExpression === current) {
69
- current = parent;
70
- parent = getParentNode(current);
71
- continue;
72
- }
73
- if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
74
- parent.expression === current) {
75
- return true;
76
- }
77
- if (parent.type === AST_NODE_TYPES.UnaryExpression &&
78
- parent.operator === "void" &&
79
- parent.argument === current) {
80
- const unaryParent = getParentNode(parent);
81
- return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
82
- }
48
+ const opaqueParent = getFirstOpaqueParent(node);
49
+ if (!isDefined(opaqueParent)) {
83
50
  return false;
84
51
  }
52
+ const { current, parent } = opaqueParent;
53
+ if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
54
+ parent.expression === current) {
55
+ return true;
56
+ }
57
+ if (parent.type === AST_NODE_TYPES.UnaryExpression &&
58
+ parent.operator === "void" &&
59
+ parent.argument === current) {
60
+ const unaryParent = getParentNode(parent);
61
+ return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
62
+ }
85
63
  return false;
86
64
  };
87
65
  const isImmediateAbortSignalAccess = (node) => {
88
- let current = node;
89
- let parent = getParentNode(current);
90
- while (parent !== undefined) {
91
- const wrappedExpression = getTransparentWrappedExpression(parent);
92
- if (wrappedExpression === current) {
93
- current = parent;
94
- parent = getParentNode(current);
95
- continue;
96
- }
97
- return (parent.type === AST_NODE_TYPES.MemberExpression &&
98
- parent.object === current &&
99
- !parent.optional &&
100
- getStaticPropertyName(parent.property, parent.computed) === "signal");
66
+ const opaqueParent = getFirstOpaqueParent(node);
67
+ if (!isDefined(opaqueParent)) {
68
+ return false;
101
69
  }
102
- return false;
70
+ const { current, parent } = opaqueParent;
71
+ return (parent.type === AST_NODE_TYPES.MemberExpression &&
72
+ parent.object === current &&
73
+ !parent.optional &&
74
+ getStaticPropertyName(parent.property, parent.computed) === "signal");
103
75
  };
104
76
  /** Rule implementation for `runtime-cleanup/no-floating-abort-controllers`. */
105
77
  const noFloatingAbortControllers = createTypedRule({
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-abort-controllers.js","sourceRoot":"","sources":["../../src/rules/no-floating-abort-controllers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-floating-abort-controllers.js","sourceRoot":"","sources":["../../src/rules/no-floating-abort-controllers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-audio-contexts.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-audio-contexts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAkGlC,4EAA4E;AAC5E,QAAA,MAAM,uBAAuB,EAAE,QAAQ,CAAC,UAAU,CAC9C,sBAAsB,EACtB,SAAS,EAAE,CAoDb,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"no-floating-audio-contexts.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-audio-contexts.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAmGlC,4EAA4E;AAC5E,QAAA,MAAM,uBAAuB,EAAE,QAAQ,CAAC,UAAU,CAC9C,sBAAsB,EACtB,SAAS,EAAE,CAoDb,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Require AudioContext instances to be retained so they can be closed.
4
4
  */
5
5
  import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
6
+ import { arrayFirst, isDefined, setHas } from "ts-extras";
6
7
  import { collectStaticMemberPath, isDiscardedResourceExpression, isImmediateUnownedMemberReceiver, } from "../_internal/floating-resource.js";
7
8
  import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
8
9
  import { getVariableInScopeChain } from "../_internal/scope-variable.js";
@@ -15,7 +16,7 @@ const cleanupMemberNames = new Set(["close"]);
15
16
  const globalReceiverNames = ["globalThis", "self", "window"];
16
17
  const audioContextConstructorNameSet = new Set(audioContextConstructorNames);
17
18
  const globalReceiverNameSet = new Set(globalReceiverNames);
18
- const isAudioContextConstructorName = (name) => audioContextConstructorNameSet.has(name);
19
+ const isAudioContextConstructorName = (name) => setHas(audioContextConstructorNameSet, name);
19
20
  const isShadowedIdentifier = (context, identifier) => {
20
21
  const scope = context.sourceCode.getScope(identifier);
21
22
  const variable = getVariableInScopeChain(scope, identifier.name);
@@ -37,13 +38,13 @@ const getMemberAudioContextConstructorName = (callee) => {
37
38
  if (path?.length !== 2) {
38
39
  return undefined;
39
40
  }
40
- const receiverName = path[0];
41
- if (receiverName === undefined ||
42
- !globalReceiverNameSet.has(receiverName)) {
41
+ const receiverName = arrayFirst(path);
42
+ if (!isDefined(receiverName) ||
43
+ !setHas(globalReceiverNameSet, receiverName)) {
43
44
  return undefined;
44
45
  }
45
46
  const constructorName = path[1];
46
- return constructorName !== undefined &&
47
+ return isDefined(constructorName) &&
47
48
  isAudioContextConstructorName(constructorName)
48
49
  ? constructorName
49
50
  : undefined;
@@ -56,7 +57,7 @@ const noFloatingAudioContexts = createTypedRule({
56
57
  return {
57
58
  NewExpression(node) {
58
59
  const constructorName = getAudioContextConstructorName(context, node.callee);
59
- if (constructorName === undefined ||
60
+ if (!isDefined(constructorName) ||
60
61
  (!isDiscardedResourceExpression(node) &&
61
62
  !isImmediateUnownedMemberReceiver(node, cleanupMemberNames))) {
62
63
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-audio-contexts.js","sourceRoot":"","sources":["../../src/rules/no-floating-audio-contexts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-floating-audio-contexts.js","sourceRoot":"","sources":["../../src/rules/no-floating-audio-contexts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-broadcast-channels.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-broadcast-channels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAsLlC,gFAAgF;AAChF,QAAA,MAAM,2BAA2B,EAAE,QAAQ,CAAC,UAAU,CAClD,0BAA0B,EAC1B,SAAS,EAAE,CA2Cb,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"no-floating-broadcast-channels.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-broadcast-channels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA8IlC,gFAAgF;AAChF,QAAA,MAAM,2BAA2B,EAAE,QAAQ,CAAC,UAAU,CAClD,0BAA0B,EAC1B,SAAS,EAAE,CA2Cb,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
@@ -3,7 +3,9 @@
3
3
  * Require BroadcastChannel handles to be retained so they can be closed.
4
4
  */
5
5
  import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
6
+ import { isDefined, setHas } from "ts-extras";
6
7
  import { getParentNode } from "../_internal/ast-node.js";
8
+ import { getFirstOpaqueParent } from "../_internal/floating-resource.js";
7
9
  import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
8
10
  import { getVariableInScopeChain } from "../_internal/scope-variable.js";
9
11
  import { createTypedRule, } from "../_internal/typed-rule.js";
@@ -14,25 +16,7 @@ const globalReceiverNames = [
14
16
  "window",
15
17
  ];
16
18
  const globalReceiverNameSet = new Set(globalReceiverNames);
17
- const isGlobalReceiverName = (name) => globalReceiverNameSet.has(name);
18
- const getTransparentWrappedExpression = (node) => {
19
- if (node.type === AST_NODE_TYPES.ChainExpression) {
20
- return node.expression;
21
- }
22
- if (node.type === AST_NODE_TYPES.TSAsExpression) {
23
- return node.expression;
24
- }
25
- if (node.type === AST_NODE_TYPES.TSNonNullExpression) {
26
- return node.expression;
27
- }
28
- if (node.type === AST_NODE_TYPES.TSSatisfiesExpression) {
29
- return node.expression;
30
- }
31
- if (node.type === AST_NODE_TYPES.TSTypeAssertion) {
32
- return node.expression;
33
- }
34
- return undefined;
35
- };
19
+ const isGlobalReceiverName = (name) => setHas(globalReceiverNameSet, name);
36
20
  const getStaticPropertyName = (node, computed) => {
37
21
  if (!computed && node.type === AST_NODE_TYPES.Identifier) {
38
22
  return node.name;
@@ -61,52 +45,40 @@ const isMemberBroadcastChannelConstructor = (callee) => callee.type === AST_NODE
61
45
  const isBroadcastChannelConstructor = (context, callee) => isDirectBroadcastChannelConstructor(context, callee) ||
62
46
  isMemberBroadcastChannelConstructor(callee);
63
47
  const isDiscardedBroadcastChannel = (node) => {
64
- let current = node;
65
- let parent = getParentNode(current);
66
- while (parent !== undefined) {
67
- const wrappedExpression = getTransparentWrappedExpression(parent);
68
- if (wrappedExpression === current) {
69
- current = parent;
70
- parent = getParentNode(current);
71
- continue;
72
- }
73
- if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
74
- parent.expression === current) {
75
- return true;
76
- }
77
- if (parent.type === AST_NODE_TYPES.UnaryExpression &&
78
- parent.operator === "void" &&
79
- parent.argument === current) {
80
- const unaryParent = getParentNode(parent);
81
- return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
82
- }
48
+ const opaqueParent = getFirstOpaqueParent(node);
49
+ if (!isDefined(opaqueParent)) {
83
50
  return false;
84
51
  }
52
+ const { current, parent } = opaqueParent;
53
+ if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
54
+ parent.expression === current) {
55
+ return true;
56
+ }
57
+ if (parent.type === AST_NODE_TYPES.UnaryExpression &&
58
+ parent.operator === "void" &&
59
+ parent.argument === current) {
60
+ const unaryParent = getParentNode(parent);
61
+ return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
62
+ }
85
63
  return false;
86
64
  };
87
65
  const isImmediateBroadcastChannelMethodReceiver = (node) => {
88
- let current = node;
89
- let parent = getParentNode(current);
90
- while (parent !== undefined) {
91
- const wrappedExpression = getTransparentWrappedExpression(parent);
92
- if (wrappedExpression === current) {
93
- current = parent;
94
- parent = getParentNode(current);
95
- continue;
96
- }
97
- if (parent.type !== AST_NODE_TYPES.MemberExpression ||
98
- parent.object !== current ||
99
- parent.optional) {
100
- return false;
101
- }
102
- if (getStaticPropertyName(parent.property, parent.computed) === "close") {
103
- return false;
104
- }
105
- const callExpression = getParentNode(parent);
106
- return (callExpression?.type === AST_NODE_TYPES.CallExpression &&
107
- callExpression.callee === parent);
66
+ const opaqueParent = getFirstOpaqueParent(node);
67
+ if (!isDefined(opaqueParent)) {
68
+ return false;
108
69
  }
109
- return false;
70
+ const { current, parent } = opaqueParent;
71
+ if (parent.type !== AST_NODE_TYPES.MemberExpression ||
72
+ parent.object !== current ||
73
+ parent.optional) {
74
+ return false;
75
+ }
76
+ if (getStaticPropertyName(parent.property, parent.computed) === "close") {
77
+ return false;
78
+ }
79
+ const callExpression = getParentNode(parent);
80
+ return (callExpression?.type === AST_NODE_TYPES.CallExpression &&
81
+ callExpression.callee === parent);
110
82
  };
111
83
  /** Rule implementation for `runtime-cleanup/no-floating-broadcast-channels`. */
112
84
  const noFloatingBroadcastChannels = createTypedRule({
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-broadcast-channels.js","sourceRoot":"","sources":["../../src/rules/no-floating-broadcast-channels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-floating-broadcast-channels.js","sourceRoot":"","sources":["../../src/rules/no-floating-broadcast-channels.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-child-processes.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-child-processes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAsWlC,6EAA6E;AAC7E,QAAA,MAAM,wBAAwB,EAAE,QAAQ,CAAC,UAAU,CAC/C,sBAAsB,EACtB,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"no-floating-child-processes.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-child-processes.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAmWlC,6EAA6E;AAC7E,QAAA,MAAM,wBAAwB,EAAE,QAAQ,CAAC,UAAU,CAC/C,sBAAsB,EACtB,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,wBAAwB,CAAC"}