mindheal 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/.env.example +48 -0
  2. package/CHANGELOG.md +27 -0
  3. package/LICENSE +21 -0
  4. package/README.md +481 -0
  5. package/dist/cjs/ai/ai-provider.js +46 -0
  6. package/dist/cjs/ai/ai-provider.js.map +1 -0
  7. package/dist/cjs/ai/anthropic-provider.js +106 -0
  8. package/dist/cjs/ai/anthropic-provider.js.map +1 -0
  9. package/dist/cjs/ai/azure-openai-provider.js +130 -0
  10. package/dist/cjs/ai/azure-openai-provider.js.map +1 -0
  11. package/dist/cjs/ai/bedrock-provider.js +183 -0
  12. package/dist/cjs/ai/bedrock-provider.js.map +1 -0
  13. package/dist/cjs/ai/deepseek-provider.js +118 -0
  14. package/dist/cjs/ai/deepseek-provider.js.map +1 -0
  15. package/dist/cjs/ai/gemini-provider.js +129 -0
  16. package/dist/cjs/ai/gemini-provider.js.map +1 -0
  17. package/dist/cjs/ai/groq-provider.js +118 -0
  18. package/dist/cjs/ai/groq-provider.js.map +1 -0
  19. package/dist/cjs/ai/meta-provider.js +118 -0
  20. package/dist/cjs/ai/meta-provider.js.map +1 -0
  21. package/dist/cjs/ai/ollama-provider.js +127 -0
  22. package/dist/cjs/ai/ollama-provider.js.map +1 -0
  23. package/dist/cjs/ai/openai-provider.js +117 -0
  24. package/dist/cjs/ai/openai-provider.js.map +1 -0
  25. package/dist/cjs/ai/perplexity-provider.js +118 -0
  26. package/dist/cjs/ai/perplexity-provider.js.map +1 -0
  27. package/dist/cjs/ai/prompt-templates.js +174 -0
  28. package/dist/cjs/ai/prompt-templates.js.map +1 -0
  29. package/dist/cjs/ai/qwen-provider.js +118 -0
  30. package/dist/cjs/ai/qwen-provider.js.map +1 -0
  31. package/dist/cjs/analytics/healing-analytics.js +263 -0
  32. package/dist/cjs/analytics/healing-analytics.js.map +1 -0
  33. package/dist/cjs/cli/init.js +517 -0
  34. package/dist/cjs/cli/init.js.map +1 -0
  35. package/dist/cjs/config/config-loader.js +135 -0
  36. package/dist/cjs/config/config-loader.js.map +1 -0
  37. package/dist/cjs/config/defaults.js +109 -0
  38. package/dist/cjs/config/defaults.js.map +1 -0
  39. package/dist/cjs/core/dom-snapshot.js +280 -0
  40. package/dist/cjs/core/dom-snapshot.js.map +1 -0
  41. package/dist/cjs/core/enterprise-strategy.js +702 -0
  42. package/dist/cjs/core/enterprise-strategy.js.map +1 -0
  43. package/dist/cjs/core/healer.js +283 -0
  44. package/dist/cjs/core/healer.js.map +1 -0
  45. package/dist/cjs/core/interceptor.js +945 -0
  46. package/dist/cjs/core/interceptor.js.map +1 -0
  47. package/dist/cjs/core/locator-analyzer.js +172 -0
  48. package/dist/cjs/core/locator-analyzer.js.map +1 -0
  49. package/dist/cjs/core/locator-strategies.js +891 -0
  50. package/dist/cjs/core/locator-strategies.js.map +1 -0
  51. package/dist/cjs/core/self-heal-cache.js +178 -0
  52. package/dist/cjs/core/self-heal-cache.js.map +1 -0
  53. package/dist/cjs/core/smart-retry.js +248 -0
  54. package/dist/cjs/core/smart-retry.js.map +1 -0
  55. package/dist/cjs/core/visual-verification.js +262 -0
  56. package/dist/cjs/core/visual-verification.js.map +1 -0
  57. package/dist/cjs/git/code-modifier.js +184 -0
  58. package/dist/cjs/git/code-modifier.js.map +1 -0
  59. package/dist/cjs/git/git-operations.js +145 -0
  60. package/dist/cjs/git/git-operations.js.map +1 -0
  61. package/dist/cjs/git/pr-creator.js +190 -0
  62. package/dist/cjs/git/pr-creator.js.map +1 -0
  63. package/dist/cjs/index.js +97 -0
  64. package/dist/cjs/index.js.map +1 -0
  65. package/dist/cjs/rag/context-retriever.js +289 -0
  66. package/dist/cjs/rag/context-retriever.js.map +1 -0
  67. package/dist/cjs/rag/embeddings.js +82 -0
  68. package/dist/cjs/rag/embeddings.js.map +1 -0
  69. package/dist/cjs/rag/knowledge-store.js +159 -0
  70. package/dist/cjs/rag/knowledge-store.js.map +1 -0
  71. package/dist/cjs/reporters/heal-report.js +279 -0
  72. package/dist/cjs/reporters/heal-report.js.map +1 -0
  73. package/dist/cjs/reporters/heal-reporter.js +294 -0
  74. package/dist/cjs/reporters/heal-reporter.js.map +1 -0
  75. package/dist/cjs/server/review-server.js +166 -0
  76. package/dist/cjs/server/review-server.js.map +1 -0
  77. package/dist/cjs/server/routes.js +92 -0
  78. package/dist/cjs/server/routes.js.map +1 -0
  79. package/dist/cjs/utils/environment.js +57 -0
  80. package/dist/cjs/utils/environment.js.map +1 -0
  81. package/dist/cjs/utils/file-lock.js +136 -0
  82. package/dist/cjs/utils/file-lock.js.map +1 -0
  83. package/dist/cjs/utils/file-utils.js +49 -0
  84. package/dist/cjs/utils/file-utils.js.map +1 -0
  85. package/dist/cjs/utils/logger.js +78 -0
  86. package/dist/cjs/utils/logger.js.map +1 -0
  87. package/dist/esm/ai/ai-provider.js +44 -0
  88. package/dist/esm/ai/ai-provider.js.map +1 -0
  89. package/dist/esm/ai/anthropic-provider.js +104 -0
  90. package/dist/esm/ai/anthropic-provider.js.map +1 -0
  91. package/dist/esm/ai/azure-openai-provider.js +128 -0
  92. package/dist/esm/ai/azure-openai-provider.js.map +1 -0
  93. package/dist/esm/ai/bedrock-provider.js +181 -0
  94. package/dist/esm/ai/bedrock-provider.js.map +1 -0
  95. package/dist/esm/ai/deepseek-provider.js +116 -0
  96. package/dist/esm/ai/deepseek-provider.js.map +1 -0
  97. package/dist/esm/ai/gemini-provider.js +127 -0
  98. package/dist/esm/ai/gemini-provider.js.map +1 -0
  99. package/dist/esm/ai/groq-provider.js +116 -0
  100. package/dist/esm/ai/groq-provider.js.map +1 -0
  101. package/dist/esm/ai/meta-provider.js +116 -0
  102. package/dist/esm/ai/meta-provider.js.map +1 -0
  103. package/dist/esm/ai/ollama-provider.js +125 -0
  104. package/dist/esm/ai/ollama-provider.js.map +1 -0
  105. package/dist/esm/ai/openai-provider.js +115 -0
  106. package/dist/esm/ai/openai-provider.js.map +1 -0
  107. package/dist/esm/ai/perplexity-provider.js +116 -0
  108. package/dist/esm/ai/perplexity-provider.js.map +1 -0
  109. package/dist/esm/ai/prompt-templates.js +171 -0
  110. package/dist/esm/ai/prompt-templates.js.map +1 -0
  111. package/dist/esm/ai/qwen-provider.js +116 -0
  112. package/dist/esm/ai/qwen-provider.js.map +1 -0
  113. package/dist/esm/analytics/healing-analytics.js +261 -0
  114. package/dist/esm/analytics/healing-analytics.js.map +1 -0
  115. package/dist/esm/cli/init.js +495 -0
  116. package/dist/esm/cli/init.js.map +1 -0
  117. package/dist/esm/config/config-loader.js +132 -0
  118. package/dist/esm/config/config-loader.js.map +1 -0
  119. package/dist/esm/config/defaults.js +107 -0
  120. package/dist/esm/config/defaults.js.map +1 -0
  121. package/dist/esm/core/dom-snapshot.js +278 -0
  122. package/dist/esm/core/dom-snapshot.js.map +1 -0
  123. package/dist/esm/core/enterprise-strategy.js +695 -0
  124. package/dist/esm/core/enterprise-strategy.js.map +1 -0
  125. package/dist/esm/core/healer.js +281 -0
  126. package/dist/esm/core/healer.js.map +1 -0
  127. package/dist/esm/core/interceptor.js +940 -0
  128. package/dist/esm/core/interceptor.js.map +1 -0
  129. package/dist/esm/core/locator-analyzer.js +169 -0
  130. package/dist/esm/core/locator-analyzer.js.map +1 -0
  131. package/dist/esm/core/locator-strategies.js +882 -0
  132. package/dist/esm/core/locator-strategies.js.map +1 -0
  133. package/dist/esm/core/self-heal-cache.js +176 -0
  134. package/dist/esm/core/self-heal-cache.js.map +1 -0
  135. package/dist/esm/core/smart-retry.js +246 -0
  136. package/dist/esm/core/smart-retry.js.map +1 -0
  137. package/dist/esm/core/visual-verification.js +260 -0
  138. package/dist/esm/core/visual-verification.js.map +1 -0
  139. package/dist/esm/git/code-modifier.js +182 -0
  140. package/dist/esm/git/code-modifier.js.map +1 -0
  141. package/dist/esm/git/git-operations.js +143 -0
  142. package/dist/esm/git/git-operations.js.map +1 -0
  143. package/dist/esm/git/pr-creator.js +188 -0
  144. package/dist/esm/git/pr-creator.js.map +1 -0
  145. package/dist/esm/index.js +37 -0
  146. package/dist/esm/index.js.map +1 -0
  147. package/dist/esm/rag/context-retriever.js +287 -0
  148. package/dist/esm/rag/context-retriever.js.map +1 -0
  149. package/dist/esm/rag/embeddings.js +77 -0
  150. package/dist/esm/rag/embeddings.js.map +1 -0
  151. package/dist/esm/rag/knowledge-store.js +157 -0
  152. package/dist/esm/rag/knowledge-store.js.map +1 -0
  153. package/dist/esm/reporters/heal-report.js +277 -0
  154. package/dist/esm/reporters/heal-report.js.map +1 -0
  155. package/dist/esm/reporters/heal-reporter.js +290 -0
  156. package/dist/esm/reporters/heal-reporter.js.map +1 -0
  157. package/dist/esm/server/review-server.js +164 -0
  158. package/dist/esm/server/review-server.js.map +1 -0
  159. package/dist/esm/server/routes.js +90 -0
  160. package/dist/esm/server/routes.js.map +1 -0
  161. package/dist/esm/utils/environment.js +53 -0
  162. package/dist/esm/utils/environment.js.map +1 -0
  163. package/dist/esm/utils/file-lock.js +134 -0
  164. package/dist/esm/utils/file-lock.js.map +1 -0
  165. package/dist/esm/utils/file-utils.js +43 -0
  166. package/dist/esm/utils/file-utils.js.map +1 -0
  167. package/dist/esm/utils/logger.js +75 -0
  168. package/dist/esm/utils/logger.js.map +1 -0
  169. package/dist/types/ai/ai-provider.d.ts +4 -0
  170. package/dist/types/ai/ai-provider.d.ts.map +1 -0
  171. package/dist/types/ai/anthropic-provider.d.ts +11 -0
  172. package/dist/types/ai/anthropic-provider.d.ts.map +1 -0
  173. package/dist/types/ai/azure-openai-provider.d.ts +13 -0
  174. package/dist/types/ai/azure-openai-provider.d.ts.map +1 -0
  175. package/dist/types/ai/bedrock-provider.d.ts +14 -0
  176. package/dist/types/ai/bedrock-provider.d.ts.map +1 -0
  177. package/dist/types/ai/deepseek-provider.d.ts +12 -0
  178. package/dist/types/ai/deepseek-provider.d.ts.map +1 -0
  179. package/dist/types/ai/gemini-provider.d.ts +12 -0
  180. package/dist/types/ai/gemini-provider.d.ts.map +1 -0
  181. package/dist/types/ai/groq-provider.d.ts +12 -0
  182. package/dist/types/ai/groq-provider.d.ts.map +1 -0
  183. package/dist/types/ai/meta-provider.d.ts +12 -0
  184. package/dist/types/ai/meta-provider.d.ts.map +1 -0
  185. package/dist/types/ai/ollama-provider.d.ts +10 -0
  186. package/dist/types/ai/ollama-provider.d.ts.map +1 -0
  187. package/dist/types/ai/openai-provider.d.ts +11 -0
  188. package/dist/types/ai/openai-provider.d.ts.map +1 -0
  189. package/dist/types/ai/perplexity-provider.d.ts +12 -0
  190. package/dist/types/ai/perplexity-provider.d.ts.map +1 -0
  191. package/dist/types/ai/prompt-templates.d.ts +11 -0
  192. package/dist/types/ai/prompt-templates.d.ts.map +1 -0
  193. package/dist/types/ai/qwen-provider.d.ts +12 -0
  194. package/dist/types/ai/qwen-provider.d.ts.map +1 -0
  195. package/dist/types/analytics/healing-analytics.d.ts +36 -0
  196. package/dist/types/analytics/healing-analytics.d.ts.map +1 -0
  197. package/dist/types/cli/init.d.ts +15 -0
  198. package/dist/types/cli/init.d.ts.map +1 -0
  199. package/dist/types/config/config-loader.d.ts +4 -0
  200. package/dist/types/config/config-loader.d.ts.map +1 -0
  201. package/dist/types/config/defaults.d.ts +3 -0
  202. package/dist/types/config/defaults.d.ts.map +1 -0
  203. package/dist/types/core/dom-snapshot.d.ts +12 -0
  204. package/dist/types/core/dom-snapshot.d.ts.map +1 -0
  205. package/dist/types/core/enterprise-strategy.d.ts +56 -0
  206. package/dist/types/core/enterprise-strategy.d.ts.map +1 -0
  207. package/dist/types/core/healer.d.ts +52 -0
  208. package/dist/types/core/healer.d.ts.map +1 -0
  209. package/dist/types/core/interceptor.d.ts +64 -0
  210. package/dist/types/core/interceptor.d.ts.map +1 -0
  211. package/dist/types/core/locator-analyzer.d.ts +31 -0
  212. package/dist/types/core/locator-analyzer.d.ts.map +1 -0
  213. package/dist/types/core/locator-strategies.d.ts +45 -0
  214. package/dist/types/core/locator-strategies.d.ts.map +1 -0
  215. package/dist/types/core/self-heal-cache.d.ts +51 -0
  216. package/dist/types/core/self-heal-cache.d.ts.map +1 -0
  217. package/dist/types/core/smart-retry.d.ts +64 -0
  218. package/dist/types/core/smart-retry.d.ts.map +1 -0
  219. package/dist/types/core/visual-verification.d.ts +46 -0
  220. package/dist/types/core/visual-verification.d.ts.map +1 -0
  221. package/dist/types/git/code-modifier.d.ts +51 -0
  222. package/dist/types/git/code-modifier.d.ts.map +1 -0
  223. package/dist/types/git/git-operations.d.ts +40 -0
  224. package/dist/types/git/git-operations.d.ts.map +1 -0
  225. package/dist/types/git/pr-creator.d.ts +27 -0
  226. package/dist/types/git/pr-creator.d.ts.map +1 -0
  227. package/dist/types/index.d.ts +40 -0
  228. package/dist/types/index.d.ts.map +1 -0
  229. package/dist/types/rag/context-retriever.d.ts +69 -0
  230. package/dist/types/rag/context-retriever.d.ts.map +1 -0
  231. package/dist/types/rag/embeddings.d.ts +32 -0
  232. package/dist/types/rag/embeddings.d.ts.map +1 -0
  233. package/dist/types/rag/index.d.ts +12 -0
  234. package/dist/types/rag/index.d.ts.map +1 -0
  235. package/dist/types/rag/knowledge-store.d.ts +38 -0
  236. package/dist/types/rag/knowledge-store.d.ts.map +1 -0
  237. package/dist/types/reporters/heal-report.d.ts +29 -0
  238. package/dist/types/reporters/heal-report.d.ts.map +1 -0
  239. package/dist/types/reporters/heal-reporter.d.ts +49 -0
  240. package/dist/types/reporters/heal-reporter.d.ts.map +1 -0
  241. package/dist/types/server/review-server.d.ts +20 -0
  242. package/dist/types/server/review-server.d.ts.map +1 -0
  243. package/dist/types/server/routes.d.ts +4 -0
  244. package/dist/types/server/routes.d.ts.map +1 -0
  245. package/dist/types/types/index.d.ts +433 -0
  246. package/dist/types/types/index.d.ts.map +1 -0
  247. package/dist/types/utils/environment.d.ts +10 -0
  248. package/dist/types/utils/environment.d.ts.map +1 -0
  249. package/dist/types/utils/file-lock.d.ts +37 -0
  250. package/dist/types/utils/file-lock.d.ts.map +1 -0
  251. package/dist/types/utils/file-utils.d.ts +7 -0
  252. package/dist/types/utils/file-utils.d.ts.map +1 -0
  253. package/dist/types/utils/logger.d.ts +9 -0
  254. package/dist/types/utils/logger.d.ts.map +1 -0
  255. package/package.json +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.js","sources":["../../../../src/core/interceptor.ts"],"sourcesContent":[null],"names":["logger","healer","baseTest","SelfHealCache","aiProvider","createAIProvider","contextRetriever","knowledgeStore","KnowledgeStore","ContextRetriever","smartRetry","SmartRetry","VisualVerifier","HealingAnalytics","Healer","fileLock","FileLock","loadConfig"],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('crypto');
4
+
5
+ /**
6
+ * Mapping from Playwright method names to LocatorType values.
7
+ */
8
+ const METHOD_TO_TYPE = {
9
+ 'locator': 'css',
10
+ 'getByRole': 'role',
11
+ 'getByText': 'text',
12
+ 'getByLabel': 'label',
13
+ 'getByPlaceholder': 'placeholder',
14
+ 'getByAltText': 'alttext',
15
+ 'getByTitle': 'title',
16
+ 'getByTestId': 'testid',
17
+ };
18
+ /**
19
+ * Regex patterns for parsing Playwright locator expressions.
20
+ * Each pattern captures the method name and arguments.
21
+ */
22
+ const EXPRESSION_PATTERNS = [
23
+ { pattern: /\.getByRole\(\s*(['"])(.+?)\1(?:\s*,\s*(\{.*?\}))?\s*\)/, method: 'getByRole' },
24
+ { pattern: /\.getByText\(\s*(?:(['"])(.+?)\1|\/(.+?)\/([gimsuy]*))\s*(?:,\s*(\{.*?\}))?\s*\)/, method: 'getByText' },
25
+ { pattern: /\.getByLabel\(\s*(?:(['"])(.+?)\1|\/(.+?)\/([gimsuy]*))\s*(?:,\s*(\{.*?\}))?\s*\)/, method: 'getByLabel' },
26
+ { pattern: /\.getByPlaceholder\(\s*(?:(['"])(.+?)\1|\/(.+?)\/([gimsuy]*))\s*(?:,\s*(\{.*?\}))?\s*\)/, method: 'getByPlaceholder' },
27
+ { pattern: /\.getByAltText\(\s*(?:(['"])(.+?)\1|\/(.+?)\/([gimsuy]*))\s*(?:,\s*(\{.*?\}))?\s*\)/, method: 'getByAltText' },
28
+ { pattern: /\.getByTitle\(\s*(?:(['"])(.+?)\1|\/(.+?)\/([gimsuy]*))\s*(?:,\s*(\{.*?\}))?\s*\)/, method: 'getByTitle' },
29
+ { pattern: /\.getByTestId\(\s*(['"])(.+?)\1\s*\)/, method: 'getByTestId' },
30
+ { pattern: /\.locator\(\s*(['"])(.+?)\1\s*(?:,\s*(\{.*?\}))?\s*\)/, method: 'locator' },
31
+ ];
32
+ /**
33
+ * Determines the LocatorType from a raw selector string (not a Playwright expression).
34
+ */
35
+ function inferLocatorType(selector) {
36
+ const trimmed = selector.trim();
37
+ if (trimmed.startsWith('//') || trimmed.startsWith('(//') || trimmed.startsWith('xpath=')) {
38
+ return 'xpath';
39
+ }
40
+ if (trimmed.startsWith('role='))
41
+ return 'role';
42
+ if (trimmed.startsWith('text=') || trimmed.startsWith('"') || trimmed.startsWith("'"))
43
+ return 'text';
44
+ if (trimmed.startsWith('data-testid=') || trimmed.startsWith('[data-testid'))
45
+ return 'testid';
46
+ if (trimmed.startsWith('label='))
47
+ return 'label';
48
+ if (trimmed.startsWith('placeholder='))
49
+ return 'placeholder';
50
+ // Default to CSS selector
51
+ return 'css';
52
+ }
53
+ /**
54
+ * Attempts to parse a JSON-like options string (e.g., `{ name: 'Submit', exact: true }`).
55
+ * Returns an empty object if parsing fails.
56
+ */
57
+ function parseOptionsString(optionsStr) {
58
+ if (!optionsStr)
59
+ return {};
60
+ try {
61
+ // Normalize JS object notation to JSON:
62
+ // - Add quotes around unquoted keys
63
+ // - Convert single quotes to double quotes
64
+ const normalized = optionsStr
65
+ .replace(/(\w+)\s*:/g, '"$1":')
66
+ .replace(/'/g, '"')
67
+ .replace(/,\s*}/g, '}');
68
+ return JSON.parse(normalized);
69
+ }
70
+ catch {
71
+ return {};
72
+ }
73
+ }
74
+ /**
75
+ * Analyzes a Playwright locator expression and extracts structured information.
76
+ *
77
+ * Handles both full Playwright expressions (e.g., `page.getByRole('button', { name: 'Submit' })`)
78
+ * and raw selectors (e.g., `#submit-btn`, `//button[@type="submit"]`).
79
+ *
80
+ * @param expression - The locator expression string to analyze.
81
+ * @returns Structured LocatorInfo with type, selector, options, and the original expression.
82
+ */
83
+ function analyzeLocator(expression) {
84
+ const trimmed = expression.trim();
85
+ // Try to match Playwright method expressions
86
+ for (const { pattern, method } of EXPRESSION_PATTERNS) {
87
+ const match = trimmed.match(pattern);
88
+ if (!match)
89
+ continue;
90
+ const locatorType = METHOD_TO_TYPE[method] ?? 'css';
91
+ switch (method) {
92
+ case 'getByRole': {
93
+ const role = match[2];
94
+ const options = parseOptionsString(match[3]);
95
+ return {
96
+ type: locatorType,
97
+ selector: role,
98
+ options: Object.keys(options).length > 0 ? options : undefined,
99
+ playwrightExpression: trimmed,
100
+ };
101
+ }
102
+ case 'getByText':
103
+ case 'getByLabel':
104
+ case 'getByPlaceholder':
105
+ case 'getByAltText':
106
+ case 'getByTitle': {
107
+ // Either a quoted string (match[2]) or a regex (match[3])
108
+ const selector = match[2] ?? `/${match[3]}/${match[4] ?? ''}`;
109
+ const options = parseOptionsString(match[5]);
110
+ return {
111
+ type: locatorType,
112
+ selector,
113
+ options: Object.keys(options).length > 0 ? options : undefined,
114
+ playwrightExpression: trimmed,
115
+ };
116
+ }
117
+ case 'getByTestId': {
118
+ return {
119
+ type: 'testid',
120
+ selector: match[2],
121
+ playwrightExpression: trimmed,
122
+ };
123
+ }
124
+ case 'locator': {
125
+ const rawSelector = match[2];
126
+ const options = parseOptionsString(match[3]);
127
+ return {
128
+ type: inferLocatorType(rawSelector),
129
+ selector: rawSelector,
130
+ options: Object.keys(options).length > 0 ? options : undefined,
131
+ playwrightExpression: trimmed,
132
+ };
133
+ }
134
+ }
135
+ }
136
+ // Fallback: treat the entire expression as a raw selector
137
+ return {
138
+ type: inferLocatorType(trimmed),
139
+ selector: trimmed,
140
+ playwrightExpression: trimmed,
141
+ };
142
+ }
143
+ /**
144
+ * Generates a stable hash key for a locator + page URL combination.
145
+ * Used as the cache key in the self-heal cache.
146
+ *
147
+ * @param locator - The parsed locator information.
148
+ * @param pageUrl - The page URL (the path portion is used, query params stripped).
149
+ * @returns A hex string hash.
150
+ */
151
+ function getLocatorHash(locator, pageUrl) {
152
+ // Normalize URL to path only (strip query params and fragment for stability)
153
+ let urlPattern;
154
+ try {
155
+ const parsed = new URL(pageUrl);
156
+ urlPattern = `${parsed.origin}${parsed.pathname}`;
157
+ }
158
+ catch {
159
+ urlPattern = pageUrl;
160
+ }
161
+ const input = JSON.stringify({
162
+ type: locator.type,
163
+ selector: locator.selector,
164
+ options: locator.options,
165
+ url: urlPattern,
166
+ });
167
+ return crypto.createHash('sha256').update(input).digest('hex').substring(0, 16);
168
+ }
169
+
170
+ exports.analyzeLocator = analyzeLocator;
171
+ exports.getLocatorHash = getLocatorHash;
172
+ //# sourceMappingURL=locator-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locator-analyzer.js","sources":["../../../../src/core/locator-analyzer.ts"],"sourcesContent":[null],"names":["createHash"],"mappings":"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"}