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
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-geolocation-watches.js","sourceRoot":"","sources":["../../src/rules/no-floating-geolocation-watches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-floating-geolocation-watches.js","sourceRoot":"","sources":["../../src/rules/no-floating-geolocation-watches.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACH,eAAe,GAElB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,4BAA4B,GAAG,eAAe,CAAC;AACrD,MAAM,4BAA4B,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAU,CAAC;AAEvE,MAAM,8BAA8B,GAAwB,IAAI,GAAG,CAC/D,4BAA4B,CAC/B,CAAC;AAEF,MAAM,+BAA+B,GAAG,CACpC,IAA6B,EACM,EAAE;IACrC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,qBAAqB,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC1B,IAAqD,EACrD,QAAiB,EACC,EAAE;IACpB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IACI,QAAQ;QACR,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;QACpC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAChC,CAAC;QACC,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC5B,IAAmC,EACN,EAAE;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAClC,OAAyB,EACzB,UAAyC,EAClC,EAAE;IACT,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjE,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACtB,IAAmC,EACJ,EAAE;IACjC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;QAChD,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,CAAC,CAAC,SAAS,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC5B,OAAyB,EACzB,MAAmD,EAC5C,EAAE;IACT,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAExD,OAAO,CACH,cAAc,EAAE,IAAI,KAAK,WAAW;QACpC,6BAA6B,CAAC,OAAO,EAAE,cAAc,CAAC,CACzD,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,IAAuB,EAAW,EAAE,CAChE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;IACd,UAAU,CAAC,IAAI,CAAC,KAAK,WAAW;IAChC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa;IACzB,IAAI,CAAC,CAAC,CAAC,KAAK,4BAA4B,CAAC;IAC7C,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACd,MAAM,CAAC,8BAA8B,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW;QACvB,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa;QACzB,IAAI,CAAC,CAAC,CAAC,KAAK,4BAA4B,CAAC,CAAC;AAElD,MAAM,sBAAsB,GAAG,CAC3B,OAAyB,EACzB,MAAmD,EAC5C,EAAE;IACT,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;QAC/C,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,EAC1C,CAAC;QACC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACvB,IAAuC,EAChC,EAAE;IACT,IAAI,OAAO,GAA4B,IAAI,CAAC;IAC5C,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YAChC,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB;gBAClD,MAAM,CAAC,UAAU,KAAK,OAAO,EAC/B,CAAC;gBACC,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;gBAC9C,MAAM,CAAC,QAAQ,KAAK,MAAM;gBAC1B,MAAM,CAAC,QAAQ,KAAK,OAAO,EAC7B,CAAC;gBACC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBAE1C,OAAO,WAAW,EAAE,IAAI,KAAK,cAAc,CAAC,mBAAmB,CAAC;YACpE,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,iFAAiF;AACjF,MAAM,4BAA4B,GAG9B,eAAe,CAAC;IAChB,MAAM,CAAC,OAAO;QACV,OAAO;YACH,cAAc,CAAC,IAAuC;gBAClD,IACI,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;oBAC7C,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAC3B,CAAC;oBACC,OAAO;gBACX,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACX,SAAS,EAAE,0BAA0B;oBACrC,IAAI;iBACP,CAAC,CAAC;YACP,CAAC;SACJ,CAAC;IACN,CAAC;IACD,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,IAAI,EAAE;YACF,WAAW,EACP,sEAAsE;YAC1E,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,KAAK;YAC3B,qBAAqB,EAAE;gBACnB,qCAAqC;gBACrC,kDAAkD;gBAClD,gCAAgC;gBAChC,6BAA6B;aAChC;YACD,GAAG,EAAE,iBAAiB,CAAC,iCAAiC,CAAC;SAC5D;QACD,QAAQ,EAAE;YACN,wBAAwB,EACpB,gIAAgI;SACvI;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KAClB;IACD,IAAI,EAAE,iCAAiC;CAC1C,CAAC,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-infinite-animations.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-infinite-animations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA0JlC,iFAAiF;AACjF,QAAA,MAAM,4BAA4B,EAAE,QAAQ,CAAC,UAAU,CACnD,2BAA2B,EAC3B,SAAS,EAAE,CAmDb,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"no-floating-infinite-animations.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-infinite-animations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA2JlC,iFAAiF;AACjF,QAAA,MAAM,4BAA4B,EAAE,QAAQ,CAAC,UAAU,CACnD,2BAA2B,EAC3B,SAAS,EAAE,CAmDb,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Require infinite Web Animations to be retained so they can be canceled.
4
4
  */
5
5
  import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
6
+ import { arrayAt, isDefined } from "ts-extras";
6
7
  import { getStaticPropertyName, 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";
@@ -90,9 +91,9 @@ const noFloatingInfiniteAnimations = createTypedRule({
90
91
  return {
91
92
  CallExpression(node) {
92
93
  const receiver = getAnimationReceiver(node.callee);
93
- const timingOptions = node.arguments.at(1);
94
- if (receiver === undefined ||
95
- timingOptions === undefined ||
94
+ const timingOptions = arrayAt(node.arguments, 1);
95
+ if (!isDefined(receiver) ||
96
+ !isDefined(timingOptions) ||
96
97
  !hasInfiniteIterationsOption(context, timingOptions) ||
97
98
  !isReceiverElement(context, receiver) ||
98
99
  (!isDiscardedResourceExpression(node) &&
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-infinite-animations.js","sourceRoot":"","sources":["../../src/rules/no-floating-infinite-animations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-floating-infinite-animations.js","sourceRoot":"","sources":["../../src/rules/no-floating-infinite-animations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-media-streams.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-media-streams.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA2NlC,2EAA2E;AAC3E,QAAA,MAAM,sBAAsB,EAAE,QAAQ,CAAC,UAAU,CAC7C,qBAAqB,EACrB,SAAS,EAAE,CAgDb,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"no-floating-media-streams.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-media-streams.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA2NlC,2EAA2E;AAC3E,QAAA,MAAM,sBAAsB,EAAE,QAAQ,CAAC,UAAU,CAC7C,qBAAqB,EACrB,SAAS,EAAE,CAgDb,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Require captured MediaStream handles to be retained so their tracks can be stopped.
4
4
  */
5
5
  import { AST_NODE_TYPES, } from "@typescript-eslint/utils";
6
+ import { arrayAt, arrayFirst, isDefined, setHas } from "ts-extras";
6
7
  import { getParentNode } from "../_internal/ast-node.js";
7
8
  import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
8
9
  import { getVariableInScopeChain } from "../_internal/scope-variable.js";
@@ -14,7 +15,7 @@ const mediaCaptureFunctionNames = [
14
15
  const globalNavigatorReceiverNames = ["globalThis", "window"];
15
16
  const mediaCaptureFunctionNameSet = new Set(mediaCaptureFunctionNames);
16
17
  const globalNavigatorReceiverNameSet = new Set(globalNavigatorReceiverNames);
17
- const isMediaCaptureFunctionName = (name) => mediaCaptureFunctionNameSet.has(name);
18
+ const isMediaCaptureFunctionName = (name) => setHas(mediaCaptureFunctionNameSet, name);
18
19
  const getTransparentWrappedExpression = (node) => {
19
20
  if (node.type === AST_NODE_TYPES.AwaitExpression) {
20
21
  return node.argument;
@@ -56,7 +57,7 @@ const collectStaticMemberPath = (node) => {
56
57
  }
57
58
  const objectPath = collectStaticMemberPath(node.object);
58
59
  const propertyName = getStaticPropertyName(node.property, node.computed);
59
- return objectPath === undefined || propertyName === undefined
60
+ return !isDefined(objectPath) || !isDefined(propertyName)
60
61
  ? undefined
61
62
  : [...objectPath, propertyName];
62
63
  };
@@ -82,17 +83,17 @@ const isNavigatorPathShadowed = (context, callee) => {
82
83
  isShadowedNavigatorIdentifier(context, rootIdentifier));
83
84
  };
84
85
  const getMediaCaptureNameFromPath = (path) => {
85
- const captureName = path.at(-1);
86
- if (captureName === undefined || !isMediaCaptureFunctionName(captureName)) {
86
+ const captureName = arrayAt(path, -1);
87
+ if (!isDefined(captureName) || !isMediaCaptureFunctionName(captureName)) {
87
88
  return undefined;
88
89
  }
89
90
  if (path.length === 3 &&
90
- path[0] === "navigator" &&
91
+ arrayFirst(path) === "navigator" &&
91
92
  path[1] === "mediaDevices") {
92
93
  return captureName;
93
94
  }
94
95
  if (path.length === 4 &&
95
- globalNavigatorReceiverNameSet.has(path[0] ?? "") &&
96
+ setHas(globalNavigatorReceiverNameSet, arrayFirst(path) ?? "") &&
96
97
  path[1] === "navigator" &&
97
98
  path[2] === "mediaDevices") {
98
99
  return captureName;
@@ -105,29 +106,28 @@ const getMediaCaptureFunctionName = (context, callee) => {
105
106
  return undefined;
106
107
  }
107
108
  const path = collectStaticMemberPath(callee);
108
- return path === undefined ? undefined : getMediaCaptureNameFromPath(path);
109
+ return isDefined(path) ? getMediaCaptureNameFromPath(path) : undefined;
109
110
  };
110
111
  const isDiscardedMediaStreamRequest = (node) => {
111
112
  let current = node;
112
113
  let parent = getParentNode(current);
113
- while (parent !== undefined) {
114
+ while (isDefined(parent)) {
114
115
  const wrappedExpression = getTransparentWrappedExpression(parent);
115
- if (wrappedExpression === current) {
116
- current = parent;
117
- parent = getParentNode(current);
118
- continue;
116
+ if (wrappedExpression !== current) {
117
+ if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
118
+ parent.expression === current) {
119
+ return true;
120
+ }
121
+ if (parent.type === AST_NODE_TYPES.UnaryExpression &&
122
+ parent.operator === "void" &&
123
+ parent.argument === current) {
124
+ const unaryParent = getParentNode(parent);
125
+ return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
126
+ }
127
+ return false;
119
128
  }
120
- if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
121
- parent.expression === current) {
122
- return true;
123
- }
124
- if (parent.type === AST_NODE_TYPES.UnaryExpression &&
125
- parent.operator === "void" &&
126
- parent.argument === current) {
127
- const unaryParent = getParentNode(parent);
128
- return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
129
- }
130
- return false;
129
+ current = parent;
130
+ parent = getParentNode(current);
131
131
  }
132
132
  return false;
133
133
  };
@@ -137,7 +137,7 @@ const noFloatingMediaStreams = createTypedRule({
137
137
  return {
138
138
  CallExpression(node) {
139
139
  const captureName = getMediaCaptureFunctionName(context, node.callee);
140
- if (captureName === undefined ||
140
+ if (!isDefined(captureName) ||
141
141
  !isDiscardedMediaStreamRequest(node)) {
142
142
  return;
143
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-media-streams.js","sourceRoot":"","sources":["../../src/rules/no-floating-media-streams.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACH,eAAe,GAElB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,yBAAyB,GAAG;IAC9B,iBAAiB;IACjB,cAAc;CACR,CAAC;AACX,MAAM,4BAA4B,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAU,CAAC;AAIvE,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAC5D,yBAAyB,CAC5B,CAAC;AACF,MAAM,8BAA8B,GAAwB,IAAI,GAAG,CAC/D,4BAA4B,CAC/B,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAC/B,IAAY,EACoB,EAAE,CAClC,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE1C,MAAM,+BAA+B,GAAG,CACpC,IAA6B,EACM,EAAE;IACrC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,qBAAqB,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC1B,IAAqD,EACrD,QAAiB,EACC,EAAE;IACpB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IACI,QAAQ;QACR,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;QACpC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAChC,CAAC;QACC,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC5B,IAAmC,EACN,EAAE;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzE,OAAO,UAAU,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;QACzD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAClC,OAAyB,EACzB,UAAyC,EAClC,EAAE;IACT,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjE,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACtB,IAAmC,EACJ,EAAE;IACjC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;QAChD,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,CAAC,CAAC,SAAS,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC5B,OAAyB,EACzB,MAAmD,EAC5C,EAAE;IACT,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAExD,OAAO,CACH,cAAc,EAAE,IAAI,KAAK,WAAW;QACpC,6BAA6B,CAAC,OAAO,EAAE,cAAc,CAAC,CACzD,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAChC,IAAuB,EACa,EAAE;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IACI,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW;QACvB,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,EAC5B,CAAC;QACC,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,IACI,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW;QACvB,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,EAC5B,CAAC;QACC,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAChC,OAAyB,EACzB,MAAmD,EACf,EAAE;IACtC,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;QAC/C,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,EAC1C,CAAC;QACC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAClC,IAAuC,EAChC,EAAE;IACT,IAAI,OAAO,GAA4B,IAAI,CAAC;IAC5C,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,GAAG,MAAM,CAAC;YACjB,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS;QACb,CAAC;QAED,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB;YAClD,MAAM,CAAC,UAAU,KAAK,OAAO,EAC/B,CAAC;YACC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;YAC9C,MAAM,CAAC,QAAQ,KAAK,MAAM;YAC1B,MAAM,CAAC,QAAQ,KAAK,OAAO,EAC7B,CAAC;YACC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAE1C,OAAO,WAAW,EAAE,IAAI,KAAK,cAAc,CAAC,mBAAmB,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,sBAAsB,GAGxB,eAAe,CAAC;IAChB,MAAM,CAAC,OAAO;QACV,OAAO;YACH,cAAc,CAAC,IAAuC;gBAClD,MAAM,WAAW,GAAG,2BAA2B,CAC3C,OAAO,EACP,IAAI,CAAC,MAAM,CACd,CAAC;gBAEF,IACI,WAAW,KAAK,SAAS;oBACzB,CAAC,6BAA6B,CAAC,IAAI,CAAC,EACtC,CAAC;oBACC,OAAO;gBACX,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACX,IAAI,EAAE,EAAE,WAAW,EAAE;oBACrB,SAAS,EAAE,qBAAqB;oBAChC,IAAI;iBACP,CAAC,CAAC;YACP,CAAC;SACJ,CAAC;IACN,CAAC;IACD,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,IAAI,EAAE;YACF,WAAW,EACP,qFAAqF;YACzF,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,KAAK;YAC3B,qBAAqB,EAAE;gBACnB,qCAAqC;gBACrC,kDAAkD;gBAClD,gCAAgC;gBAChC,6BAA6B;aAChC;YACD,GAAG,EAAE,iBAAiB,CAAC,2BAA2B,CAAC;SACtD;QACD,QAAQ,EAAE;YACN,mBAAmB,EACf,mGAAmG;SAC1G;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KAClB;IACD,IAAI,EAAE,2BAA2B;CACpC,CAAC,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"no-floating-media-streams.js","sourceRoot":"","sources":["../../src/rules/no-floating-media-streams.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * Require MessageChannel ports 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";
7
8
  import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
8
9
  import { getVariableInScopeChain } from "../_internal/scope-variable.js";
@@ -16,8 +17,8 @@ const globalReceiverNames = [
16
17
  ];
17
18
  const globalReceiverNameSet = new Set(globalReceiverNames);
18
19
  const messagePortPropertyNameSet = new Set(messagePortPropertyNames);
19
- const isGlobalReceiverName = (name) => globalReceiverNameSet.has(name);
20
- const isMessagePortPropertyName = (name) => messagePortPropertyNameSet.has(name);
20
+ const isGlobalReceiverName = (name) => setHas(globalReceiverNameSet, name);
21
+ const isMessagePortPropertyName = (name) => setHas(messagePortPropertyNameSet, name);
21
22
  const getTransparentWrappedExpression = (node) => {
22
23
  if (node.type === AST_NODE_TYPES.ChainExpression) {
23
24
  return node.expression;
@@ -66,44 +67,43 @@ const isMessageChannelConstructor = (context, callee) => isDirectMessageChannelC
66
67
  const isDiscardedMessageChannel = (node) => {
67
68
  let current = node;
68
69
  let parent = getParentNode(current);
69
- while (parent !== undefined) {
70
+ while (isDefined(parent)) {
70
71
  const wrappedExpression = getTransparentWrappedExpression(parent);
71
- if (wrappedExpression === current) {
72
- current = parent;
73
- parent = getParentNode(current);
74
- continue;
75
- }
76
- if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
77
- parent.expression === current) {
78
- return true;
79
- }
80
- if (parent.type === AST_NODE_TYPES.UnaryExpression &&
81
- parent.operator === "void" &&
82
- parent.argument === current) {
83
- const unaryParent = getParentNode(parent);
84
- return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
72
+ if (wrappedExpression !== current) {
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
+ }
83
+ return false;
85
84
  }
86
- return false;
85
+ current = parent;
86
+ parent = getParentNode(current);
87
87
  }
88
88
  return false;
89
89
  };
90
90
  const isImmediateMessagePortAccess = (node) => {
91
91
  let current = node;
92
92
  let parent = getParentNode(current);
93
- while (parent !== undefined) {
93
+ while (isDefined(parent)) {
94
94
  const wrappedExpression = getTransparentWrappedExpression(parent);
95
- if (wrappedExpression === current) {
96
- current = parent;
97
- parent = getParentNode(current);
98
- continue;
99
- }
100
- if (parent.type !== AST_NODE_TYPES.MemberExpression ||
101
- parent.object !== current ||
102
- parent.optional) {
103
- return false;
95
+ if (wrappedExpression !== current) {
96
+ if (parent.type !== AST_NODE_TYPES.MemberExpression ||
97
+ parent.object !== current ||
98
+ parent.optional) {
99
+ return false;
100
+ }
101
+ const propertyName = getStaticPropertyName(parent.property, parent.computed);
102
+ return (isDefined(propertyName) &&
103
+ isMessagePortPropertyName(propertyName));
104
104
  }
105
- const propertyName = getStaticPropertyName(parent.property, parent.computed);
106
- return (propertyName !== undefined && isMessagePortPropertyName(propertyName));
105
+ current = parent;
106
+ parent = getParentNode(current);
107
107
  }
108
108
  return false;
109
109
  };
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-message-channels.js","sourceRoot":"","sources":["../../src/rules/no-floating-message-channels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACH,cAAc,GAGjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACH,eAAe,GAElB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,6BAA6B,GAAG,gBAAgB,CAAC;AACvD,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAC7D,MAAM,mBAAmB,GAAG;IACxB,YAAY;IACZ,MAAM;IACN,QAAQ;CACF,CAAC;AAEX,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CACtD,mBAAmB,CACtB,CAAC;AACF,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAC3D,wBAAwB,CAC3B,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAW,EAAE,CACnD,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEpC,MAAM,yBAAyB,GAAG,CAAC,IAAY,EAAW,EAAE,CACxD,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEzC,MAAM,+BAA+B,GAAG,CACpC,IAA6B,EACM,EAAE;IACrC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,qBAAqB,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC1B,IAAqD,EACrD,QAAiB,EACC,EAAE;IACpB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IACI,QAAQ;QACR,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;QACpC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAChC,CAAC;QACC,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,kCAAkC,GAAG,CACvC,OAAyB,EACzB,UAAyC,EAClC,EAAE;IACT,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjE,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,iCAAiC,GAAG,CACtC,OAAyB,EACzB,MAAkD,EAC3C,EAAE,CACT,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;IACzC,MAAM,CAAC,IAAI,KAAK,6BAA6B;IAC7C,CAAC,kCAAkC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,iCAAiC,GAAG,CACtC,MAAkD,EAC3C,EAAE,CACT,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;IAC/C,CAAC,MAAM,CAAC,QAAQ;IAChB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;IAChD,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IACxC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;QACnD,6BAA6B,CAAC;AAEtC,MAAM,2BAA2B,GAAG,CAChC,OAAyB,EACzB,MAAkD,EAC3C,EAAE,CACT,iCAAiC,CAAC,OAAO,EAAE,MAAM,CAAC;IAClD,iCAAiC,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,yBAAyB,GAAG,CAC9B,IAAsC,EAC/B,EAAE;IACT,IAAI,OAAO,GAA4B,IAAI,CAAC;IAC5C,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,GAAG,MAAM,CAAC;YACjB,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS;QACb,CAAC;QAED,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB;YAClD,MAAM,CAAC,UAAU,KAAK,OAAO,EAC/B,CAAC;YACC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;YAC9C,MAAM,CAAC,QAAQ,KAAK,MAAM;YAC1B,MAAM,CAAC,QAAQ,KAAK,OAAO,EAC7B,CAAC;YACC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAE1C,OAAO,WAAW,EAAE,IAAI,KAAK,cAAc,CAAC,mBAAmB,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CACjC,IAAsC,EAC/B,EAAE;IACT,IAAI,OAAO,GAA4B,IAAI,CAAC;IAC5C,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,GAAG,MAAM,CAAC;YACjB,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS;QACb,CAAC;QAED,IACI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;YAC/C,MAAM,CAAC,MAAM,KAAK,OAAO;YACzB,MAAM,CAAC,QAAQ,EACjB,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,YAAY,GAAG,qBAAqB,CACtC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,CAClB,CAAC;QAEF,OAAO,CACH,YAAY,KAAK,SAAS,IAAI,yBAAyB,CAAC,YAAY,CAAC,CACxE,CAAC;IACN,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,yBAAyB,GAG3B,eAAe,CAAC;IAChB,MAAM,CAAC,OAAO;QACV,OAAO;YACH,aAAa,CAAC,IAAsC;gBAChD,IACI,CAAC,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;oBAClD,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC;wBAC7B,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,EAC1C,CAAC;oBACC,OAAO;gBACX,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACX,SAAS,EAAE,wBAAwB;oBACnC,IAAI;iBACP,CAAC,CAAC;YACP,CAAC;SACJ,CAAC;IACN,CAAC;IACD,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,IAAI,EAAE;YACF,WAAW,EACP,oEAAoE;YACxE,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,KAAK;YAC3B,qBAAqB,EAAE;gBACnB,qCAAqC;gBACrC,kDAAkD;gBAClD,gCAAgC;gBAChC,6BAA6B;aAChC;YACD,GAAG,EAAE,iBAAiB,CAAC,8BAA8B,CAAC;SACzD;QACD,QAAQ,EAAE;YACN,sBAAsB,EAClB,kHAAkH;SACzH;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KAClB;IACD,IAAI,EAAE,8BAA8B;CACvC,CAAC,CAAC;AAEH,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"no-floating-message-channels.js","sourceRoot":"","sources":["../../src/rules/no-floating-message-channels.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-network-connections.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-network-connections.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAwNlC,iFAAiF;AACjF,QAAA,MAAM,4BAA4B,EAAE,QAAQ,CAAC,UAAU,CACnD,2BAA2B,EAC3B,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"no-floating-network-connections.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-network-connections.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAwNlC,iFAAiF;AACjF,QAAA,MAAM,4BAA4B,EAAE,QAAQ,CAAC,UAAU,CACnD,2BAA2B,EAC3B,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Require browser network connection 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";
7
8
  import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
8
9
  import { getVariableInScopeChain } from "../_internal/scope-variable.js";
@@ -18,8 +19,8 @@ const globalReceiverNames = [
18
19
  ];
19
20
  const networkConnectionConstructorNameSet = new Set(networkConnectionConstructorNames);
20
21
  const globalReceiverNameSet = new Set(globalReceiverNames);
21
- const isNetworkConnectionConstructorName = (name) => networkConnectionConstructorNameSet.has(name);
22
- const isGlobalReceiverName = (name) => globalReceiverNameSet.has(name);
22
+ const isNetworkConnectionConstructorName = (name) => setHas(networkConnectionConstructorNameSet, name);
23
+ const isGlobalReceiverName = (name) => setHas(globalReceiverNameSet, name);
23
24
  const getTransparentWrappedExpression = (node) => {
24
25
  if (node.type === AST_NODE_TYPES.ChainExpression) {
25
26
  return node.expression;
@@ -70,7 +71,7 @@ const getMemberNetworkConnectionConstructorName = (callee) => {
70
71
  return undefined;
71
72
  }
72
73
  const constructorName = getStaticPropertyName(callee.property, callee.computed);
73
- return constructorName !== undefined &&
74
+ return isDefined(constructorName) &&
74
75
  isNetworkConnectionConstructorName(constructorName)
75
76
  ? constructorName
76
77
  : undefined;
@@ -80,48 +81,47 @@ const getNetworkConnectionConstructorName = (context, callee) => getDirectNetwor
80
81
  const isDiscardedNetworkConnection = (node) => {
81
82
  let current = node;
82
83
  let parent = getParentNode(current);
83
- while (parent !== undefined) {
84
+ while (isDefined(parent)) {
84
85
  const wrappedExpression = getTransparentWrappedExpression(parent);
85
- if (wrappedExpression === current) {
86
- current = parent;
87
- parent = getParentNode(current);
88
- continue;
89
- }
90
- if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
91
- parent.expression === current) {
92
- return true;
93
- }
94
- if (parent.type === AST_NODE_TYPES.UnaryExpression &&
95
- parent.operator === "void" &&
96
- parent.argument === current) {
97
- const unaryParent = getParentNode(parent);
98
- return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
86
+ if (wrappedExpression !== current) {
87
+ if (parent.type === AST_NODE_TYPES.ExpressionStatement &&
88
+ parent.expression === current) {
89
+ return true;
90
+ }
91
+ if (parent.type === AST_NODE_TYPES.UnaryExpression &&
92
+ parent.operator === "void" &&
93
+ parent.argument === current) {
94
+ const unaryParent = getParentNode(parent);
95
+ return unaryParent?.type === AST_NODE_TYPES.ExpressionStatement;
96
+ }
97
+ return false;
99
98
  }
100
- return false;
99
+ current = parent;
100
+ parent = getParentNode(current);
101
101
  }
102
102
  return false;
103
103
  };
104
104
  const isImmediateNetworkConnectionMethodReceiver = (node) => {
105
105
  let current = node;
106
106
  let parent = getParentNode(current);
107
- while (parent !== undefined) {
107
+ while (isDefined(parent)) {
108
108
  const wrappedExpression = getTransparentWrappedExpression(parent);
109
- if (wrappedExpression === current) {
110
- current = parent;
111
- parent = getParentNode(current);
112
- continue;
113
- }
114
- if (parent.type !== AST_NODE_TYPES.MemberExpression ||
115
- parent.object !== current ||
116
- parent.optional) {
117
- return false;
118
- }
119
- if (getStaticPropertyName(parent.property, parent.computed) === "close") {
120
- return false;
109
+ if (wrappedExpression !== current) {
110
+ if (parent.type !== AST_NODE_TYPES.MemberExpression ||
111
+ parent.object !== current ||
112
+ parent.optional) {
113
+ return false;
114
+ }
115
+ if (getStaticPropertyName(parent.property, parent.computed) ===
116
+ "close") {
117
+ return false;
118
+ }
119
+ const callExpression = getParentNode(parent);
120
+ return (callExpression?.type === AST_NODE_TYPES.CallExpression &&
121
+ callExpression.callee === parent);
121
122
  }
122
- const callExpression = getParentNode(parent);
123
- return (callExpression?.type === AST_NODE_TYPES.CallExpression &&
124
- callExpression.callee === parent);
123
+ current = parent;
124
+ parent = getParentNode(current);
125
125
  }
126
126
  return false;
127
127
  };
@@ -131,7 +131,7 @@ const noFloatingNetworkConnections = createTypedRule({
131
131
  return {
132
132
  NewExpression(node) {
133
133
  const connectionName = getNetworkConnectionConstructorName(context, node.callee);
134
- if (connectionName === undefined ||
134
+ if (!isDefined(connectionName) ||
135
135
  (!isDiscardedNetworkConnection(node) &&
136
136
  !isImmediateNetworkConnectionMethodReceiver(node))) {
137
137
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-network-connections.js","sourceRoot":"","sources":["../../src/rules/no-floating-network-connections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-floating-network-connections.js","sourceRoot":"","sources":["../../src/rules/no-floating-network-connections.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-object-urls.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-object-urls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AAyElC,yEAAyE;AACzE,QAAA,MAAM,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAC3C,mBAAmB,EACnB,SAAS,EAAE,CA0Cb,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"no-floating-object-urls.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-object-urls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA0ElC,yEAAyE;AACzE,QAAA,MAAM,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAC3C,mBAAmB,EACnB,SAAS,EAAE,CA0Cb,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Require object URLs to be retained so they can be revoked.
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, } from "../_internal/floating-resource.js";
7
8
  import { createRuleDocsUrl } from "../_internal/rule-docs-url.js";
8
9
  import { getVariableInScopeChain } from "../_internal/scope-variable.js";
@@ -23,10 +24,10 @@ const isShadowedIdentifier = (context, identifier) => {
23
24
  return variable !== null && variable.defs.length > 0;
24
25
  };
25
26
  const isDirectUrlPath = (path) => path.length === 2 &&
26
- path[0] === "URL" &&
27
+ arrayFirst(path) === "URL" &&
27
28
  path[1] === "createObjectURL";
28
29
  const isGlobalUrlPath = (path) => path.length === 3 &&
29
- globalUrlReceiverNameSet.has(path[0] ?? "") &&
30
+ setHas(globalUrlReceiverNameSet, arrayFirst(path) ?? "") &&
30
31
  path[1] === "URL" &&
31
32
  path[2] === "createObjectURL";
32
33
  const isObjectUrlCreateCall = (context, callee) => {
@@ -34,7 +35,7 @@ const isObjectUrlCreateCall = (context, callee) => {
34
35
  return false;
35
36
  }
36
37
  const path = collectStaticMemberPath(callee);
37
- if (path === undefined || (!isDirectUrlPath(path) && !isGlobalUrlPath(path))) {
38
+ if (!isDefined(path) || (!isDirectUrlPath(path) && !isGlobalUrlPath(path))) {
38
39
  return false;
39
40
  }
40
41
  const rootIdentifier = getRootIdentifier(callee.object);
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-object-urls.js","sourceRoot":"","sources":["../../src/rules/no-floating-object-urls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-floating-object-urls.js","sourceRoot":"","sources":["../../src/rules/no-floating-object-urls.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-floating-observers.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-observers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA8LlC,uEAAuE;AACvE,QAAA,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAC1C,kBAAkB,EAClB,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"no-floating-observers.d.ts","sourceRoot":"","sources":["../../src/rules/no-floating-observers.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAEH,KAAK,QAAQ,EAEhB,MAAM,0BAA0B,CAAC;AA6LlC,uEAAuE;AACvE,QAAA,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAC1C,kBAAkB,EAClB,SAAS,EAAE,CAiDb,CAAC;AAEH,eAAe,mBAAmB,CAAC"}