eslint-plugin-sdl-2 1.0.4 → 1.0.6

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 (222) hide show
  1. package/dist/_internal/ast-utils.d.ts +5 -7
  2. package/dist/_internal/ast-utils.d.ts.map +1 -1
  3. package/dist/_internal/ast-utils.js +20 -16
  4. package/dist/_internal/ast-utils.js.map +1 -1
  5. package/dist/_internal/script-element.js +0 -1
  6. package/dist/_internal/script-element.js.map +1 -1
  7. package/dist/plugin.cjs +133 -202
  8. package/dist/plugin.cjs.map +3 -3
  9. package/dist/rules/no-angular-bypass-sanitizer.d.ts.map +1 -1
  10. package/dist/rules/no-angular-bypass-sanitizer.js +0 -1
  11. package/dist/rules/no-angular-bypass-sanitizer.js.map +1 -1
  12. package/dist/rules/no-angular-bypass-security-trust-html.d.ts.map +1 -1
  13. package/dist/rules/no-angular-bypass-security-trust-html.js +0 -2
  14. package/dist/rules/no-angular-bypass-security-trust-html.js.map +1 -1
  15. package/dist/rules/no-angular-innerhtml-binding.d.ts.map +1 -1
  16. package/dist/rules/no-angular-innerhtml-binding.js +0 -1
  17. package/dist/rules/no-angular-innerhtml-binding.js.map +1 -1
  18. package/dist/rules/no-angular-sanitization-trusted-urls.d.ts.map +1 -1
  19. package/dist/rules/no-angular-sanitization-trusted-urls.js +0 -1
  20. package/dist/rules/no-angular-sanitization-trusted-urls.js.map +1 -1
  21. package/dist/rules/no-angularjs-bypass-sce.d.ts.map +1 -1
  22. package/dist/rules/no-angularjs-bypass-sce.js +0 -1
  23. package/dist/rules/no-angularjs-bypass-sce.js.map +1 -1
  24. package/dist/rules/no-angularjs-enable-svg.d.ts.map +1 -1
  25. package/dist/rules/no-angularjs-enable-svg.js +0 -1
  26. package/dist/rules/no-angularjs-enable-svg.js.map +1 -1
  27. package/dist/rules/no-angularjs-ng-bind-html-without-sanitize.d.ts.map +1 -1
  28. package/dist/rules/no-angularjs-ng-bind-html-without-sanitize.js +0 -1
  29. package/dist/rules/no-angularjs-ng-bind-html-without-sanitize.js.map +1 -1
  30. package/dist/rules/no-angularjs-sanitization-whitelist.d.ts.map +1 -1
  31. package/dist/rules/no-angularjs-sanitization-whitelist.js +0 -1
  32. package/dist/rules/no-angularjs-sanitization-whitelist.js.map +1 -1
  33. package/dist/rules/no-angularjs-sce-resource-url-wildcard.d.ts.map +1 -1
  34. package/dist/rules/no-angularjs-sce-resource-url-wildcard.js +0 -2
  35. package/dist/rules/no-angularjs-sce-resource-url-wildcard.js.map +1 -1
  36. package/dist/rules/no-child-process-exec.d.ts.map +1 -1
  37. package/dist/rules/no-child-process-exec.js +0 -1
  38. package/dist/rules/no-child-process-exec.js.map +1 -1
  39. package/dist/rules/no-child-process-shell-true.d.ts.map +1 -1
  40. package/dist/rules/no-child-process-shell-true.js +0 -1
  41. package/dist/rules/no-child-process-shell-true.js.map +1 -1
  42. package/dist/rules/no-cookies.d.ts.map +1 -1
  43. package/dist/rules/no-cookies.js +0 -2
  44. package/dist/rules/no-cookies.js.map +1 -1
  45. package/dist/rules/no-document-domain.d.ts.map +1 -1
  46. package/dist/rules/no-document-domain.js +0 -1
  47. package/dist/rules/no-document-domain.js.map +1 -1
  48. package/dist/rules/no-document-execcommand-insert-html.d.ts.map +1 -1
  49. package/dist/rules/no-document-execcommand-insert-html.js +0 -2
  50. package/dist/rules/no-document-execcommand-insert-html.js.map +1 -1
  51. package/dist/rules/no-document-parse-html-unsafe.d.ts.map +1 -1
  52. package/dist/rules/no-document-parse-html-unsafe.js +0 -2
  53. package/dist/rules/no-document-parse-html-unsafe.js.map +1 -1
  54. package/dist/rules/no-document-write.d.ts.map +1 -1
  55. package/dist/rules/no-document-write.js +0 -1
  56. package/dist/rules/no-document-write.js.map +1 -1
  57. package/dist/rules/no-domparser-html-without-sanitization.d.ts.map +1 -1
  58. package/dist/rules/no-domparser-html-without-sanitization.js +0 -1
  59. package/dist/rules/no-domparser-html-without-sanitization.js.map +1 -1
  60. package/dist/rules/no-domparser-svg-without-sanitization.d.ts.map +1 -1
  61. package/dist/rules/no-domparser-svg-without-sanitization.js +0 -1
  62. package/dist/rules/no-domparser-svg-without-sanitization.js.map +1 -1
  63. package/dist/rules/no-dynamic-import-unsafe-url.d.ts.map +1 -1
  64. package/dist/rules/no-dynamic-import-unsafe-url.js +0 -1
  65. package/dist/rules/no-dynamic-import-unsafe-url.js.map +1 -1
  66. package/dist/rules/no-electron-allow-running-insecure-content.d.ts.map +1 -1
  67. package/dist/rules/no-electron-allow-running-insecure-content.js +0 -1
  68. package/dist/rules/no-electron-allow-running-insecure-content.js.map +1 -1
  69. package/dist/rules/no-electron-dangerous-blink-features.d.ts.map +1 -1
  70. package/dist/rules/no-electron-dangerous-blink-features.js +0 -1
  71. package/dist/rules/no-electron-dangerous-blink-features.js.map +1 -1
  72. package/dist/rules/no-electron-disable-context-isolation.d.ts.map +1 -1
  73. package/dist/rules/no-electron-disable-context-isolation.js +0 -1
  74. package/dist/rules/no-electron-disable-context-isolation.js.map +1 -1
  75. package/dist/rules/no-electron-disable-sandbox.d.ts.map +1 -1
  76. package/dist/rules/no-electron-disable-sandbox.js +0 -1
  77. package/dist/rules/no-electron-disable-sandbox.js.map +1 -1
  78. package/dist/rules/no-electron-disable-web-security.d.ts.map +1 -1
  79. package/dist/rules/no-electron-disable-web-security.js +0 -1
  80. package/dist/rules/no-electron-disable-web-security.js.map +1 -1
  81. package/dist/rules/no-electron-enable-remote-module.d.ts.map +1 -1
  82. package/dist/rules/no-electron-enable-remote-module.js +0 -1
  83. package/dist/rules/no-electron-enable-remote-module.js.map +1 -1
  84. package/dist/rules/no-electron-enable-webview-tag.d.ts.map +1 -1
  85. package/dist/rules/no-electron-enable-webview-tag.js +0 -1
  86. package/dist/rules/no-electron-enable-webview-tag.js.map +1 -1
  87. package/dist/rules/no-electron-experimental-features.d.ts.map +1 -1
  88. package/dist/rules/no-electron-experimental-features.js +0 -1
  89. package/dist/rules/no-electron-experimental-features.js.map +1 -1
  90. package/dist/rules/no-electron-expose-raw-ipc-renderer.d.ts.map +1 -1
  91. package/dist/rules/no-electron-expose-raw-ipc-renderer.js +0 -2
  92. package/dist/rules/no-electron-expose-raw-ipc-renderer.js.map +1 -1
  93. package/dist/rules/no-electron-insecure-certificate-error-handler.d.ts.map +1 -1
  94. package/dist/rules/no-electron-insecure-certificate-error-handler.js +0 -1
  95. package/dist/rules/no-electron-insecure-certificate-error-handler.js.map +1 -1
  96. package/dist/rules/no-electron-insecure-certificate-verify-proc.d.ts.map +1 -1
  97. package/dist/rules/no-electron-insecure-certificate-verify-proc.js +0 -1
  98. package/dist/rules/no-electron-insecure-certificate-verify-proc.js.map +1 -1
  99. package/dist/rules/no-electron-insecure-permission-request-handler.d.ts.map +1 -1
  100. package/dist/rules/no-electron-insecure-permission-request-handler.js +0 -1
  101. package/dist/rules/no-electron-insecure-permission-request-handler.js.map +1 -1
  102. package/dist/rules/no-electron-node-integration.d.ts.map +1 -1
  103. package/dist/rules/no-electron-node-integration.js +0 -1
  104. package/dist/rules/no-electron-node-integration.js.map +1 -1
  105. package/dist/rules/no-electron-permission-check-handler-allow-all.d.ts.map +1 -1
  106. package/dist/rules/no-electron-permission-check-handler-allow-all.js +0 -1
  107. package/dist/rules/no-electron-permission-check-handler-allow-all.js.map +1 -1
  108. package/dist/rules/no-electron-unchecked-ipc-sender.d.ts.map +1 -1
  109. package/dist/rules/no-electron-unchecked-ipc-sender.js +0 -1
  110. package/dist/rules/no-electron-unchecked-ipc-sender.js.map +1 -1
  111. package/dist/rules/no-electron-unrestricted-navigation.d.ts.map +1 -1
  112. package/dist/rules/no-electron-unrestricted-navigation.js +0 -1
  113. package/dist/rules/no-electron-unrestricted-navigation.js.map +1 -1
  114. package/dist/rules/no-electron-untrusted-open-external.d.ts.map +1 -1
  115. package/dist/rules/no-electron-untrusted-open-external.js +0 -1
  116. package/dist/rules/no-electron-untrusted-open-external.js.map +1 -1
  117. package/dist/rules/no-electron-webview-allowpopups.d.ts.map +1 -1
  118. package/dist/rules/no-electron-webview-allowpopups.js +0 -1
  119. package/dist/rules/no-electron-webview-allowpopups.js.map +1 -1
  120. package/dist/rules/no-electron-webview-insecure-webpreferences.d.ts.map +1 -1
  121. package/dist/rules/no-electron-webview-insecure-webpreferences.js +0 -1
  122. package/dist/rules/no-electron-webview-insecure-webpreferences.js.map +1 -1
  123. package/dist/rules/no-electron-webview-node-integration.d.ts.map +1 -1
  124. package/dist/rules/no-electron-webview-node-integration.js +0 -1
  125. package/dist/rules/no-electron-webview-node-integration.js.map +1 -1
  126. package/dist/rules/no-html-method.d.ts.map +1 -1
  127. package/dist/rules/no-html-method.js +0 -2
  128. package/dist/rules/no-html-method.js.map +1 -1
  129. package/dist/rules/no-http-request-to-insecure-protocol.d.ts.map +1 -1
  130. package/dist/rules/no-http-request-to-insecure-protocol.js +0 -2
  131. package/dist/rules/no-http-request-to-insecure-protocol.js.map +1 -1
  132. package/dist/rules/no-iframe-srcdoc.d.ts.map +1 -1
  133. package/dist/rules/no-iframe-srcdoc.js +0 -1
  134. package/dist/rules/no-iframe-srcdoc.js.map +1 -1
  135. package/dist/rules/no-inner-html.d.ts.map +1 -1
  136. package/dist/rules/no-inner-html.js +0 -1
  137. package/dist/rules/no-inner-html.js.map +1 -1
  138. package/dist/rules/no-insecure-random.d.ts.map +1 -1
  139. package/dist/rules/no-insecure-random.js +0 -2
  140. package/dist/rules/no-insecure-random.js.map +1 -1
  141. package/dist/rules/no-insecure-tls-agent-options.d.ts.map +1 -1
  142. package/dist/rules/no-insecure-tls-agent-options.js +0 -1
  143. package/dist/rules/no-insecure-tls-agent-options.js.map +1 -1
  144. package/dist/rules/no-insecure-url.d.ts.map +1 -1
  145. package/dist/rules/no-insecure-url.js +0 -8
  146. package/dist/rules/no-insecure-url.js.map +1 -1
  147. package/dist/rules/no-location-javascript-url.d.ts.map +1 -1
  148. package/dist/rules/no-location-javascript-url.js +0 -1
  149. package/dist/rules/no-location-javascript-url.js.map +1 -1
  150. package/dist/rules/no-message-event-without-origin-check.d.ts.map +1 -1
  151. package/dist/rules/no-message-event-without-origin-check.js +0 -1
  152. package/dist/rules/no-message-event-without-origin-check.js.map +1 -1
  153. package/dist/rules/no-msapp-exec-unsafe.d.ts.map +1 -1
  154. package/dist/rules/no-msapp-exec-unsafe.js +0 -1
  155. package/dist/rules/no-msapp-exec-unsafe.js.map +1 -1
  156. package/dist/rules/no-node-tls-check-server-identity-bypass.d.ts.map +1 -1
  157. package/dist/rules/no-node-tls-check-server-identity-bypass.js +0 -1
  158. package/dist/rules/no-node-tls-check-server-identity-bypass.js.map +1 -1
  159. package/dist/rules/no-node-tls-legacy-protocol.d.ts.map +1 -1
  160. package/dist/rules/no-node-tls-legacy-protocol.js +0 -1
  161. package/dist/rules/no-node-tls-legacy-protocol.js.map +1 -1
  162. package/dist/rules/no-node-tls-reject-unauthorized-zero.d.ts.map +1 -1
  163. package/dist/rules/no-node-tls-reject-unauthorized-zero.js +0 -1
  164. package/dist/rules/no-node-tls-reject-unauthorized-zero.js.map +1 -1
  165. package/dist/rules/no-node-tls-security-level-zero.d.ts.map +1 -1
  166. package/dist/rules/no-node-tls-security-level-zero.js +0 -1
  167. package/dist/rules/no-node-tls-security-level-zero.js.map +1 -1
  168. package/dist/rules/no-node-vm-run-in-context.d.ts.map +1 -1
  169. package/dist/rules/no-node-vm-run-in-context.js +0 -1
  170. package/dist/rules/no-node-vm-run-in-context.js.map +1 -1
  171. package/dist/rules/no-node-vm-source-text-module.d.ts.map +1 -1
  172. package/dist/rules/no-node-vm-source-text-module.js +0 -1
  173. package/dist/rules/no-node-vm-source-text-module.js.map +1 -1
  174. package/dist/rules/no-node-worker-threads-eval.d.ts.map +1 -1
  175. package/dist/rules/no-node-worker-threads-eval.js +0 -1
  176. package/dist/rules/no-node-worker-threads-eval.js.map +1 -1
  177. package/dist/rules/no-nonnull-assertion-on-security-input.d.ts.map +1 -1
  178. package/dist/rules/no-nonnull-assertion-on-security-input.js +0 -1
  179. package/dist/rules/no-nonnull-assertion-on-security-input.js.map +1 -1
  180. package/dist/rules/no-postmessage-star-origin.d.ts.map +1 -1
  181. package/dist/rules/no-postmessage-star-origin.js +0 -1
  182. package/dist/rules/no-postmessage-star-origin.js.map +1 -1
  183. package/dist/rules/no-postmessage-without-origin-allowlist.d.ts.map +1 -1
  184. package/dist/rules/no-postmessage-without-origin-allowlist.js +0 -2
  185. package/dist/rules/no-postmessage-without-origin-allowlist.js.map +1 -1
  186. package/dist/rules/no-range-create-contextual-fragment.d.ts.map +1 -1
  187. package/dist/rules/no-range-create-contextual-fragment.js +0 -2
  188. package/dist/rules/no-range-create-contextual-fragment.js.map +1 -1
  189. package/dist/rules/no-script-src-data-url.d.ts.map +1 -1
  190. package/dist/rules/no-script-src-data-url.js +0 -1
  191. package/dist/rules/no-script-src-data-url.js.map +1 -1
  192. package/dist/rules/no-script-text.d.ts.map +1 -1
  193. package/dist/rules/no-script-text.js +0 -1
  194. package/dist/rules/no-script-text.js.map +1 -1
  195. package/dist/rules/no-service-worker-unsafe-script-url.d.ts.map +1 -1
  196. package/dist/rules/no-service-worker-unsafe-script-url.js +0 -1
  197. package/dist/rules/no-service-worker-unsafe-script-url.js.map +1 -1
  198. package/dist/rules/no-set-html-unsafe.d.ts.map +1 -1
  199. package/dist/rules/no-set-html-unsafe.js +0 -1
  200. package/dist/rules/no-set-html-unsafe.js.map +1 -1
  201. package/dist/rules/no-trusted-types-policy-pass-through.d.ts.map +1 -1
  202. package/dist/rules/no-trusted-types-policy-pass-through.js +0 -1
  203. package/dist/rules/no-trusted-types-policy-pass-through.js.map +1 -1
  204. package/dist/rules/no-unsafe-alloc.d.ts.map +1 -1
  205. package/dist/rules/no-unsafe-alloc.js +0 -2
  206. package/dist/rules/no-unsafe-alloc.js.map +1 -1
  207. package/dist/rules/no-unsafe-cast-to-trusted-types.d.ts.map +1 -1
  208. package/dist/rules/no-unsafe-cast-to-trusted-types.js +0 -1
  209. package/dist/rules/no-unsafe-cast-to-trusted-types.js.map +1 -1
  210. package/dist/rules/no-window-open-without-noopener.d.ts.map +1 -1
  211. package/dist/rules/no-window-open-without-noopener.js +0 -2
  212. package/dist/rules/no-window-open-without-noopener.js.map +1 -1
  213. package/dist/rules/no-winjs-html-unsafe.d.ts.map +1 -1
  214. package/dist/rules/no-winjs-html-unsafe.js +0 -1
  215. package/dist/rules/no-winjs-html-unsafe.js.map +1 -1
  216. package/dist/rules/no-worker-blob-url.d.ts.map +1 -1
  217. package/dist/rules/no-worker-blob-url.js +0 -1
  218. package/dist/rules/no-worker-blob-url.js.map +1 -1
  219. package/dist/rules/no-worker-data-url.d.ts.map +1 -1
  220. package/dist/rules/no-worker-data-url.js +0 -1
  221. package/dist/rules/no-worker-data-url.js.map +1 -1
  222. package/package.json +66 -66
@@ -1,17 +1,15 @@
1
- import type { TSESLint, TSESTree } from "@typescript-eslint/utils";
1
+ import type { TSESTree } from "@typescript-eslint/utils";
2
2
  import type ts from "typescript";
3
- type RuleContext = Readonly<TSESLint.RuleContext<string, unknown[]>>;
4
3
  /** Returns `true` when parser services expose complete TypeScript program data. */
5
- export declare const hasFullTypeInformation: (context: RuleContext) => boolean;
4
+ export declare const hasFullTypeInformation: (context: unknown) => boolean;
6
5
  /** Returns the TypeScript type checker when parser services are available. */
7
- export declare const getFullTypeChecker: (context: RuleContext) => ts.TypeChecker | undefined;
6
+ export declare const getFullTypeChecker: (context: unknown) => ts.TypeChecker | undefined;
8
7
  /** Resolve the textual type for an ESTree node via parser services. */
9
- export declare const getNodeTypeAsString: (fullTypeChecker: Readonly<ts.TypeChecker> | undefined, node: null | Readonly<TSESTree.Node> | undefined, context: RuleContext) => string;
8
+ export declare const getNodeTypeAsString: (fullTypeChecker: Readonly<ts.TypeChecker> | undefined, node: null | Readonly<TSESTree.Node> | undefined, context: unknown) => string;
10
9
  /**
11
10
  * Best-effort check for the browser `Document` object.
12
11
  *
13
12
  * Falls back to syntactic checks when parser services are unavailable.
14
13
  */
15
- export declare const isDocumentObject: (node: Readonly<TSESTree.Node>, context: RuleContext, fullTypeChecker: Readonly<ts.TypeChecker> | undefined) => boolean;
16
- export {};
14
+ export declare const isDocumentObject: (node: Readonly<TSESTree.Node>, context: unknown, fullTypeChecker: Readonly<ts.TypeChecker> | undefined) => boolean;
17
15
  //# sourceMappingURL=ast-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-utils.d.ts","sourceRoot":"","sources":["../../src/_internal/ast-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAIjC,KAAK,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AA8CrE,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,GAAI,SAAS,WAAW,KAAG,OACrB,CAAC;AAE1C,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,GAC3B,SAAS,WAAW,KACrB,EAAE,CAAC,WAAW,GAAG,SACoC,CAAC;AAEzD,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC5B,iBAAiB,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,SAAS,EACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,EAChD,SAAS,WAAW,KACrB,MAwBF,CAAC;AAuDF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GACzB,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7B,SAAS,WAAW,EACpB,iBAAiB,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,SAAS,KACtD,OAgBF,CAAC"}
1
+ {"version":3,"file":"ast-utils.d.ts","sourceRoot":"","sources":["../../src/_internal/ast-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAgEjC,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,GAAI,SAAS,OAAO,KAAG,OACjB,CAAC;AAE1C,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,GAC3B,SAAS,OAAO,KACjB,EAAE,CAAC,WAAW,GAAG,SACoC,CAAC;AAEzD,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC5B,iBAAiB,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,SAAS,EACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,EAChD,SAAS,OAAO,KACjB,MAoBF,CAAC;AAuDF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GACzB,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7B,SAAS,OAAO,EAChB,iBAAiB,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,SAAS,KACtD,OAgBF,CAAC"}
@@ -1,22 +1,26 @@
1
- import { isDefined, safeCastTo } from "ts-extras";
2
- const isMapLike = (value) => typeof value === "object" &&
3
- value !== null &&
4
- typeof safeCastTo(value).get === "function";
5
- const isProgramLike = (value) => typeof value === "object" &&
6
- value !== null &&
7
- typeof safeCastTo(value).getTypeChecker ===
8
- "function";
1
+ import { isDefined } from "ts-extras";
2
+ const isUnknownRecord = (value) => typeof value === "object" && value !== null;
3
+ const isMapLike = (value) => isUnknownRecord(value) && typeof value["get"] === "function";
4
+ const isProgramLike = (value) => isUnknownRecord(value) && typeof value["getTypeChecker"] === "function";
9
5
  const isTypeScriptParserServices = (parserServices) => {
10
- if (typeof parserServices !== "object" || parserServices === null) {
6
+ if (!isUnknownRecord(parserServices)) {
11
7
  return false;
12
8
  }
13
- const candidate = safeCastTo(parserServices);
14
- return (isProgramLike(candidate.program) &&
15
- isMapLike(candidate.esTreeNodeToTSNodeMap) &&
16
- isMapLike(candidate.tsNodeToESTreeNodeMap));
9
+ const candidate = parserServices;
10
+ return (isProgramLike(candidate["program"]) &&
11
+ isMapLike(candidate["esTreeNodeToTSNodeMap"]) &&
12
+ isMapLike(candidate["tsNodeToESTreeNodeMap"]));
17
13
  };
14
+ const isRuleSourceCodeLike = (value) => isUnknownRecord(value);
18
15
  const getParserServices = (context) => {
19
- const parserServices = context.sourceCode.parserServices;
16
+ if (!isUnknownRecord(context)) {
17
+ return undefined;
18
+ }
19
+ const sourceCode = context["sourceCode"];
20
+ if (!isRuleSourceCodeLike(sourceCode)) {
21
+ return undefined;
22
+ }
23
+ const parserServices = sourceCode.parserServices;
20
24
  return isTypeScriptParserServices(parserServices)
21
25
  ? parserServices
22
26
  : undefined;
@@ -34,11 +38,11 @@ export const getNodeTypeAsString = (fullTypeChecker, node, context) => {
34
38
  if (!isDefined(parserServices)) {
35
39
  return "any";
36
40
  }
37
- const tsNode = parserServices.esTreeNodeToTSNodeMap.get(safeCastTo(node));
41
+ const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
38
42
  if (!isDefined(tsNode)) {
39
43
  return "any";
40
44
  }
41
- const tsType = fullTypeChecker.getTypeAtLocation(safeCastTo(tsNode));
45
+ const tsType = fullTypeChecker.getTypeAtLocation(tsNode);
42
46
  return fullTypeChecker.typeToString(tsType);
43
47
  };
44
48
  const isWindowIdentifierName = (name) => name.toLowerCase().endsWith("window");
@@ -1 +1 @@
1
- {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../src/_internal/ast-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../src/_internal/ast-utils.ts"],"names":[],"mappings":"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"}
@@ -42,5 +42,4 @@ export const isLikelyScriptElement = (node, context, fullTypeChecker) => {
42
42
  (propertyName === "currentScript" ||
43
43
  isLikelyScriptIdentifierName(propertyName)));
44
44
  };
45
- /* eslint-enable @typescript-eslint/prefer-readonly-parameter-types -- Restore linting after script element helper declarations. */
46
45
  //# sourceMappingURL=script-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"script-element.js","sourceRoot":"","sources":["../../src/_internal/script-element.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKhF,MAAM,4BAA4B,GAAG,CAAC,cAAsB,EAAW,EAAE,CACrE,cAAc,KAAK,eAAe;IAClC,cAAc,KAAK,QAAQ;IAC3B,cAAc,KAAK,eAAe;IAClC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACjC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC;IACxC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;IAClC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,yBAAyB,GAAG,CAAC,IAAmB,EAAW,EAAE;IAC/D,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB,EACzC,CAAC;QACC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,eAAe,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IAEvC,OAAO,CACH,aAAa,KAAK,SAAS;QAC3B,aAAa,CAAC,IAAI,KAAK,eAAe;QACtC,oBAAoB,CAAC,aAAa,CAAC,KAAK,QAAQ,CACnD,CAAC;AACN,CAAC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,IAAmB,EACnB,OAA4B,EAC5B,eAAsD,EAC/C,EAAE;IACT,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAEjD,OAAO,CACH,OAAO,YAAY,KAAK,QAAQ;QAChC,CAAC,YAAY,KAAK,eAAe;YAC7B,4BAA4B,CAAC,YAAY,CAAC,CAAC,CAClD,CAAC;AACN,CAAC,CAAC;AAEF,mIAAmI"}
1
+ {"version":3,"file":"script-element.js","sourceRoot":"","sources":["../../src/_internal/script-element.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKhF,MAAM,4BAA4B,GAAG,CAAC,cAAsB,EAAW,EAAE,CACrE,cAAc,KAAK,eAAe;IAClC,cAAc,KAAK,QAAQ;IAC3B,cAAc,KAAK,eAAe;IAClC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACjC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC;IACxC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;IAClC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,yBAAyB,GAAG,CAAC,IAAmB,EAAW,EAAE;IAC/D,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB,EACzC,CAAC;QACC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,eAAe,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IAEvC,OAAO,CACH,aAAa,KAAK,SAAS;QAC3B,aAAa,CAAC,IAAI,KAAK,eAAe;QACtC,oBAAoB,CAAC,aAAa,CAAC,KAAK,QAAQ,CACnD,CAAC;AACN,CAAC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,IAAmB,EACnB,OAA4B,EAC5B,eAAsD,EAC/C,EAAE;IACT,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAEjD,OAAO,CACH,OAAO,YAAY,KAAK,QAAQ;QAChC,CAAC,YAAY,KAAK,eAAe;YAC7B,4BAA4B,CAAC,YAAY,CAAC,CAAC,CAClD,CAAC;AACN,CAAC,CAAC"}