driftdetect-detectors 0.1.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 (509) hide show
  1. package/dist/accessibility/alt-text.d.ts +63 -0
  2. package/dist/accessibility/alt-text.d.ts.map +1 -0
  3. package/dist/accessibility/alt-text.js +100 -0
  4. package/dist/accessibility/alt-text.js.map +1 -0
  5. package/dist/accessibility/aria-roles.d.ts +65 -0
  6. package/dist/accessibility/aria-roles.d.ts.map +1 -0
  7. package/dist/accessibility/aria-roles.js +87 -0
  8. package/dist/accessibility/aria-roles.js.map +1 -0
  9. package/dist/accessibility/focus-management.d.ts +62 -0
  10. package/dist/accessibility/focus-management.d.ts.map +1 -0
  11. package/dist/accessibility/focus-management.js +88 -0
  12. package/dist/accessibility/focus-management.js.map +1 -0
  13. package/dist/accessibility/heading-hierarchy.d.ts +66 -0
  14. package/dist/accessibility/heading-hierarchy.d.ts.map +1 -0
  15. package/dist/accessibility/heading-hierarchy.js +94 -0
  16. package/dist/accessibility/heading-hierarchy.js.map +1 -0
  17. package/dist/accessibility/index.d.ts +25 -0
  18. package/dist/accessibility/index.d.ts.map +1 -0
  19. package/dist/accessibility/index.js +21 -0
  20. package/dist/accessibility/index.js.map +1 -0
  21. package/dist/accessibility/keyboard-nav.d.ts +63 -0
  22. package/dist/accessibility/keyboard-nav.d.ts.map +1 -0
  23. package/dist/accessibility/keyboard-nav.js +86 -0
  24. package/dist/accessibility/keyboard-nav.js.map +1 -0
  25. package/dist/accessibility/semantic-html.d.ts +76 -0
  26. package/dist/accessibility/semantic-html.d.ts.map +1 -0
  27. package/dist/accessibility/semantic-html.js +204 -0
  28. package/dist/accessibility/semantic-html.js.map +1 -0
  29. package/dist/api/client-patterns.d.ts +121 -0
  30. package/dist/api/client-patterns.d.ts.map +1 -0
  31. package/dist/api/client-patterns.js +478 -0
  32. package/dist/api/client-patterns.js.map +1 -0
  33. package/dist/api/error-format.d.ts +140 -0
  34. package/dist/api/error-format.d.ts.map +1 -0
  35. package/dist/api/error-format.js +614 -0
  36. package/dist/api/error-format.js.map +1 -0
  37. package/dist/api/http-methods.d.ts +255 -0
  38. package/dist/api/http-methods.d.ts.map +1 -0
  39. package/dist/api/http-methods.js +890 -0
  40. package/dist/api/http-methods.js.map +1 -0
  41. package/dist/api/index.d.ts +16 -0
  42. package/dist/api/index.d.ts.map +1 -0
  43. package/dist/api/index.js +37 -0
  44. package/dist/api/index.js.map +1 -0
  45. package/dist/api/pagination.d.ts +133 -0
  46. package/dist/api/pagination.d.ts.map +1 -0
  47. package/dist/api/pagination.js +521 -0
  48. package/dist/api/pagination.js.map +1 -0
  49. package/dist/api/response-envelope.d.ts +261 -0
  50. package/dist/api/response-envelope.d.ts.map +1 -0
  51. package/dist/api/response-envelope.js +1050 -0
  52. package/dist/api/response-envelope.js.map +1 -0
  53. package/dist/api/retry-patterns.d.ts +117 -0
  54. package/dist/api/retry-patterns.d.ts.map +1 -0
  55. package/dist/api/retry-patterns.js +480 -0
  56. package/dist/api/retry-patterns.js.map +1 -0
  57. package/dist/api/route-structure.d.ts +128 -0
  58. package/dist/api/route-structure.d.ts.map +1 -0
  59. package/dist/api/route-structure.js +738 -0
  60. package/dist/api/route-structure.js.map +1 -0
  61. package/dist/auth/audit-logging.d.ts +80 -0
  62. package/dist/auth/audit-logging.d.ts.map +1 -0
  63. package/dist/auth/audit-logging.js +370 -0
  64. package/dist/auth/audit-logging.js.map +1 -0
  65. package/dist/auth/index.d.ts +33 -0
  66. package/dist/auth/index.d.ts.map +1 -0
  67. package/dist/auth/index.js +49 -0
  68. package/dist/auth/index.js.map +1 -0
  69. package/dist/auth/middleware-usage.d.ts +65 -0
  70. package/dist/auth/middleware-usage.d.ts.map +1 -0
  71. package/dist/auth/middleware-usage.js +192 -0
  72. package/dist/auth/middleware-usage.js.map +1 -0
  73. package/dist/auth/permission-checks.d.ts +60 -0
  74. package/dist/auth/permission-checks.d.ts.map +1 -0
  75. package/dist/auth/permission-checks.js +159 -0
  76. package/dist/auth/permission-checks.js.map +1 -0
  77. package/dist/auth/rbac-patterns.d.ts +68 -0
  78. package/dist/auth/rbac-patterns.d.ts.map +1 -0
  79. package/dist/auth/rbac-patterns.js +143 -0
  80. package/dist/auth/rbac-patterns.js.map +1 -0
  81. package/dist/auth/resource-ownership.d.ts +77 -0
  82. package/dist/auth/resource-ownership.d.ts.map +1 -0
  83. package/dist/auth/resource-ownership.js +324 -0
  84. package/dist/auth/resource-ownership.js.map +1 -0
  85. package/dist/auth/token-handling.d.ts +64 -0
  86. package/dist/auth/token-handling.d.ts.map +1 -0
  87. package/dist/auth/token-handling.js +151 -0
  88. package/dist/auth/token-handling.js.map +1 -0
  89. package/dist/base/ast-detector.d.ts +421 -0
  90. package/dist/base/ast-detector.d.ts.map +1 -0
  91. package/dist/base/ast-detector.js +699 -0
  92. package/dist/base/ast-detector.js.map +1 -0
  93. package/dist/base/base-detector.d.ts +366 -0
  94. package/dist/base/base-detector.d.ts.map +1 -0
  95. package/dist/base/base-detector.js +170 -0
  96. package/dist/base/base-detector.js.map +1 -0
  97. package/dist/base/index.d.ts +12 -0
  98. package/dist/base/index.d.ts.map +1 -0
  99. package/dist/base/index.js +17 -0
  100. package/dist/base/index.js.map +1 -0
  101. package/dist/base/regex-detector.d.ts +421 -0
  102. package/dist/base/regex-detector.d.ts.map +1 -0
  103. package/dist/base/regex-detector.js +537 -0
  104. package/dist/base/regex-detector.js.map +1 -0
  105. package/dist/base/structural-detector.d.ts +424 -0
  106. package/dist/base/structural-detector.d.ts.map +1 -0
  107. package/dist/base/structural-detector.js +731 -0
  108. package/dist/base/structural-detector.js.map +1 -0
  109. package/dist/base/types.d.ts +53 -0
  110. package/dist/base/types.d.ts.map +1 -0
  111. package/dist/base/types.js +5 -0
  112. package/dist/base/types.js.map +1 -0
  113. package/dist/components/component-structure.d.ts +163 -0
  114. package/dist/components/component-structure.d.ts.map +1 -0
  115. package/dist/components/component-structure.js +500 -0
  116. package/dist/components/component-structure.js.map +1 -0
  117. package/dist/components/composition.d.ts +287 -0
  118. package/dist/components/composition.d.ts.map +1 -0
  119. package/dist/components/composition.js +1123 -0
  120. package/dist/components/composition.js.map +1 -0
  121. package/dist/components/duplicate-detection.d.ts +251 -0
  122. package/dist/components/duplicate-detection.d.ts.map +1 -0
  123. package/dist/components/duplicate-detection.js +804 -0
  124. package/dist/components/duplicate-detection.js.map +1 -0
  125. package/dist/components/index.d.ts +16 -0
  126. package/dist/components/index.d.ts.map +1 -0
  127. package/dist/components/index.js +51 -0
  128. package/dist/components/index.js.map +1 -0
  129. package/dist/components/near-duplicate.d.ts +402 -0
  130. package/dist/components/near-duplicate.d.ts.map +1 -0
  131. package/dist/components/near-duplicate.js +1090 -0
  132. package/dist/components/near-duplicate.js.map +1 -0
  133. package/dist/components/props-patterns.d.ts +194 -0
  134. package/dist/components/props-patterns.d.ts.map +1 -0
  135. package/dist/components/props-patterns.js +795 -0
  136. package/dist/components/props-patterns.js.map +1 -0
  137. package/dist/components/ref-forwarding.d.ts +250 -0
  138. package/dist/components/ref-forwarding.d.ts.map +1 -0
  139. package/dist/components/ref-forwarding.js +832 -0
  140. package/dist/components/ref-forwarding.js.map +1 -0
  141. package/dist/components/state-patterns.d.ts +291 -0
  142. package/dist/components/state-patterns.d.ts.map +1 -0
  143. package/dist/components/state-patterns.js +970 -0
  144. package/dist/components/state-patterns.js.map +1 -0
  145. package/dist/config/config-validation.d.ts +74 -0
  146. package/dist/config/config-validation.d.ts.map +1 -0
  147. package/dist/config/config-validation.js +446 -0
  148. package/dist/config/config-validation.js.map +1 -0
  149. package/dist/config/default-values.d.ts +72 -0
  150. package/dist/config/default-values.d.ts.map +1 -0
  151. package/dist/config/default-values.js +386 -0
  152. package/dist/config/default-values.js.map +1 -0
  153. package/dist/config/env-naming.d.ts +73 -0
  154. package/dist/config/env-naming.d.ts.map +1 -0
  155. package/dist/config/env-naming.js +429 -0
  156. package/dist/config/env-naming.js.map +1 -0
  157. package/dist/config/environment-detection.d.ts +72 -0
  158. package/dist/config/environment-detection.d.ts.map +1 -0
  159. package/dist/config/environment-detection.js +400 -0
  160. package/dist/config/environment-detection.js.map +1 -0
  161. package/dist/config/feature-flags.d.ts +72 -0
  162. package/dist/config/feature-flags.d.ts.map +1 -0
  163. package/dist/config/feature-flags.js +384 -0
  164. package/dist/config/feature-flags.js.map +1 -0
  165. package/dist/config/index.d.ts +27 -0
  166. package/dist/config/index.d.ts.map +1 -0
  167. package/dist/config/index.js +43 -0
  168. package/dist/config/index.js.map +1 -0
  169. package/dist/config/required-optional.d.ts +71 -0
  170. package/dist/config/required-optional.d.ts.map +1 -0
  171. package/dist/config/required-optional.js +344 -0
  172. package/dist/config/required-optional.js.map +1 -0
  173. package/dist/data-access/connection-pooling.d.ts +63 -0
  174. package/dist/data-access/connection-pooling.d.ts.map +1 -0
  175. package/dist/data-access/connection-pooling.js +297 -0
  176. package/dist/data-access/connection-pooling.js.map +1 -0
  177. package/dist/data-access/dto-patterns.d.ts +64 -0
  178. package/dist/data-access/dto-patterns.d.ts.map +1 -0
  179. package/dist/data-access/dto-patterns.js +291 -0
  180. package/dist/data-access/dto-patterns.js.map +1 -0
  181. package/dist/data-access/index.d.ts +31 -0
  182. package/dist/data-access/index.d.ts.map +1 -0
  183. package/dist/data-access/index.js +49 -0
  184. package/dist/data-access/index.js.map +1 -0
  185. package/dist/data-access/n-plus-one.d.ts +60 -0
  186. package/dist/data-access/n-plus-one.d.ts.map +1 -0
  187. package/dist/data-access/n-plus-one.js +264 -0
  188. package/dist/data-access/n-plus-one.js.map +1 -0
  189. package/dist/data-access/query-patterns.d.ts +64 -0
  190. package/dist/data-access/query-patterns.d.ts.map +1 -0
  191. package/dist/data-access/query-patterns.js +314 -0
  192. package/dist/data-access/query-patterns.js.map +1 -0
  193. package/dist/data-access/repository-pattern.d.ts +62 -0
  194. package/dist/data-access/repository-pattern.d.ts.map +1 -0
  195. package/dist/data-access/repository-pattern.js +257 -0
  196. package/dist/data-access/repository-pattern.js.map +1 -0
  197. package/dist/data-access/transaction-patterns.d.ts +61 -0
  198. package/dist/data-access/transaction-patterns.d.ts.map +1 -0
  199. package/dist/data-access/transaction-patterns.js +277 -0
  200. package/dist/data-access/transaction-patterns.js.map +1 -0
  201. package/dist/data-access/validation-patterns.d.ts +62 -0
  202. package/dist/data-access/validation-patterns.d.ts.map +1 -0
  203. package/dist/data-access/validation-patterns.js +301 -0
  204. package/dist/data-access/validation-patterns.js.map +1 -0
  205. package/dist/documentation/deprecation.d.ts +62 -0
  206. package/dist/documentation/deprecation.d.ts.map +1 -0
  207. package/dist/documentation/deprecation.js +83 -0
  208. package/dist/documentation/deprecation.js.map +1 -0
  209. package/dist/documentation/example-code.d.ts +64 -0
  210. package/dist/documentation/example-code.d.ts.map +1 -0
  211. package/dist/documentation/example-code.js +79 -0
  212. package/dist/documentation/example-code.js.map +1 -0
  213. package/dist/documentation/index.d.ts +22 -0
  214. package/dist/documentation/index.d.ts.map +1 -0
  215. package/dist/documentation/index.js +19 -0
  216. package/dist/documentation/index.js.map +1 -0
  217. package/dist/documentation/jsdoc-patterns.d.ts +72 -0
  218. package/dist/documentation/jsdoc-patterns.d.ts.map +1 -0
  219. package/dist/documentation/jsdoc-patterns.js +92 -0
  220. package/dist/documentation/jsdoc-patterns.js.map +1 -0
  221. package/dist/documentation/readme-structure.d.ts +67 -0
  222. package/dist/documentation/readme-structure.d.ts.map +1 -0
  223. package/dist/documentation/readme-structure.js +76 -0
  224. package/dist/documentation/readme-structure.js.map +1 -0
  225. package/dist/documentation/todo-patterns.d.ts +67 -0
  226. package/dist/documentation/todo-patterns.d.ts.map +1 -0
  227. package/dist/documentation/todo-patterns.js +73 -0
  228. package/dist/documentation/todo-patterns.js.map +1 -0
  229. package/dist/errors/async-errors.d.ts +72 -0
  230. package/dist/errors/async-errors.d.ts.map +1 -0
  231. package/dist/errors/async-errors.js +214 -0
  232. package/dist/errors/async-errors.js.map +1 -0
  233. package/dist/errors/circuit-breaker.d.ts +53 -0
  234. package/dist/errors/circuit-breaker.d.ts.map +1 -0
  235. package/dist/errors/circuit-breaker.js +241 -0
  236. package/dist/errors/circuit-breaker.js.map +1 -0
  237. package/dist/errors/error-codes.d.ts +73 -0
  238. package/dist/errors/error-codes.d.ts.map +1 -0
  239. package/dist/errors/error-codes.js +211 -0
  240. package/dist/errors/error-codes.js.map +1 -0
  241. package/dist/errors/error-logging.d.ts +73 -0
  242. package/dist/errors/error-logging.d.ts.map +1 -0
  243. package/dist/errors/error-logging.js +256 -0
  244. package/dist/errors/error-logging.js.map +1 -0
  245. package/dist/errors/error-propagation.d.ts +73 -0
  246. package/dist/errors/error-propagation.d.ts.map +1 -0
  247. package/dist/errors/error-propagation.js +244 -0
  248. package/dist/errors/error-propagation.js.map +1 -0
  249. package/dist/errors/exception-hierarchy.d.ts +75 -0
  250. package/dist/errors/exception-hierarchy.d.ts.map +1 -0
  251. package/dist/errors/exception-hierarchy.js +259 -0
  252. package/dist/errors/exception-hierarchy.js.map +1 -0
  253. package/dist/errors/index.d.ts +31 -0
  254. package/dist/errors/index.d.ts.map +1 -0
  255. package/dist/errors/index.js +49 -0
  256. package/dist/errors/index.js.map +1 -0
  257. package/dist/errors/try-catch-placement.d.ts +73 -0
  258. package/dist/errors/try-catch-placement.d.ts.map +1 -0
  259. package/dist/errors/try-catch-placement.js +214 -0
  260. package/dist/errors/try-catch-placement.js.map +1 -0
  261. package/dist/index.d.ts +221 -0
  262. package/dist/index.d.ts.map +1 -0
  263. package/dist/index.js +245 -0
  264. package/dist/index.js.map +1 -0
  265. package/dist/logging/context-fields.d.ts +48 -0
  266. package/dist/logging/context-fields.d.ts.map +1 -0
  267. package/dist/logging/context-fields.js +160 -0
  268. package/dist/logging/context-fields.js.map +1 -0
  269. package/dist/logging/correlation-ids.d.ts +44 -0
  270. package/dist/logging/correlation-ids.d.ts.map +1 -0
  271. package/dist/logging/correlation-ids.js +144 -0
  272. package/dist/logging/correlation-ids.js.map +1 -0
  273. package/dist/logging/health-checks.d.ts +45 -0
  274. package/dist/logging/health-checks.d.ts.map +1 -0
  275. package/dist/logging/health-checks.js +165 -0
  276. package/dist/logging/health-checks.js.map +1 -0
  277. package/dist/logging/index.d.ts +31 -0
  278. package/dist/logging/index.d.ts.map +1 -0
  279. package/dist/logging/index.js +49 -0
  280. package/dist/logging/index.js.map +1 -0
  281. package/dist/logging/log-levels.d.ts +46 -0
  282. package/dist/logging/log-levels.d.ts.map +1 -0
  283. package/dist/logging/log-levels.js +178 -0
  284. package/dist/logging/log-levels.js.map +1 -0
  285. package/dist/logging/metric-naming.d.ts +46 -0
  286. package/dist/logging/metric-naming.d.ts.map +1 -0
  287. package/dist/logging/metric-naming.js +157 -0
  288. package/dist/logging/metric-naming.js.map +1 -0
  289. package/dist/logging/pii-redaction.d.ts +44 -0
  290. package/dist/logging/pii-redaction.d.ts.map +1 -0
  291. package/dist/logging/pii-redaction.js +166 -0
  292. package/dist/logging/pii-redaction.js.map +1 -0
  293. package/dist/logging/structured-format.d.ts +53 -0
  294. package/dist/logging/structured-format.d.ts.map +1 -0
  295. package/dist/logging/structured-format.js +235 -0
  296. package/dist/logging/structured-format.js.map +1 -0
  297. package/dist/performance/bundle-size.d.ts +79 -0
  298. package/dist/performance/bundle-size.d.ts.map +1 -0
  299. package/dist/performance/bundle-size.js +276 -0
  300. package/dist/performance/bundle-size.js.map +1 -0
  301. package/dist/performance/caching-patterns.d.ts +78 -0
  302. package/dist/performance/caching-patterns.d.ts.map +1 -0
  303. package/dist/performance/caching-patterns.js +257 -0
  304. package/dist/performance/caching-patterns.js.map +1 -0
  305. package/dist/performance/code-splitting.d.ts +86 -0
  306. package/dist/performance/code-splitting.d.ts.map +1 -0
  307. package/dist/performance/code-splitting.js +447 -0
  308. package/dist/performance/code-splitting.js.map +1 -0
  309. package/dist/performance/debounce-throttle.d.ts +75 -0
  310. package/dist/performance/debounce-throttle.d.ts.map +1 -0
  311. package/dist/performance/debounce-throttle.js +232 -0
  312. package/dist/performance/debounce-throttle.js.map +1 -0
  313. package/dist/performance/index.d.ts +28 -0
  314. package/dist/performance/index.d.ts.map +1 -0
  315. package/dist/performance/index.js +39 -0
  316. package/dist/performance/index.js.map +1 -0
  317. package/dist/performance/lazy-loading.d.ts +75 -0
  318. package/dist/performance/lazy-loading.d.ts.map +1 -0
  319. package/dist/performance/lazy-loading.js +233 -0
  320. package/dist/performance/lazy-loading.js.map +1 -0
  321. package/dist/performance/memoization.d.ts +75 -0
  322. package/dist/performance/memoization.d.ts.map +1 -0
  323. package/dist/performance/memoization.js +251 -0
  324. package/dist/performance/memoization.js.map +1 -0
  325. package/dist/registry/detector-registry.d.ts +266 -0
  326. package/dist/registry/detector-registry.d.ts.map +1 -0
  327. package/dist/registry/detector-registry.js +526 -0
  328. package/dist/registry/detector-registry.js.map +1 -0
  329. package/dist/registry/index.d.ts +10 -0
  330. package/dist/registry/index.d.ts.map +1 -0
  331. package/dist/registry/index.js +10 -0
  332. package/dist/registry/index.js.map +1 -0
  333. package/dist/registry/loader.d.ts +232 -0
  334. package/dist/registry/loader.d.ts.map +1 -0
  335. package/dist/registry/loader.js +419 -0
  336. package/dist/registry/loader.js.map +1 -0
  337. package/dist/registry/types.d.ts +111 -0
  338. package/dist/registry/types.d.ts.map +1 -0
  339. package/dist/registry/types.js +19 -0
  340. package/dist/registry/types.js.map +1 -0
  341. package/dist/security/csp-headers.d.ts +78 -0
  342. package/dist/security/csp-headers.d.ts.map +1 -0
  343. package/dist/security/csp-headers.js +401 -0
  344. package/dist/security/csp-headers.js.map +1 -0
  345. package/dist/security/csrf-protection.d.ts +72 -0
  346. package/dist/security/csrf-protection.d.ts.map +1 -0
  347. package/dist/security/csrf-protection.js +344 -0
  348. package/dist/security/csrf-protection.js.map +1 -0
  349. package/dist/security/index.d.ts +30 -0
  350. package/dist/security/index.d.ts.map +1 -0
  351. package/dist/security/index.js +48 -0
  352. package/dist/security/index.js.map +1 -0
  353. package/dist/security/input-sanitization.d.ts +74 -0
  354. package/dist/security/input-sanitization.d.ts.map +1 -0
  355. package/dist/security/input-sanitization.js +373 -0
  356. package/dist/security/input-sanitization.js.map +1 -0
  357. package/dist/security/rate-limiting.d.ts +81 -0
  358. package/dist/security/rate-limiting.d.ts.map +1 -0
  359. package/dist/security/rate-limiting.js +535 -0
  360. package/dist/security/rate-limiting.js.map +1 -0
  361. package/dist/security/secret-management.d.ts +83 -0
  362. package/dist/security/secret-management.d.ts.map +1 -0
  363. package/dist/security/secret-management.js +547 -0
  364. package/dist/security/secret-management.js.map +1 -0
  365. package/dist/security/sql-injection.d.ts +76 -0
  366. package/dist/security/sql-injection.d.ts.map +1 -0
  367. package/dist/security/sql-injection.js +383 -0
  368. package/dist/security/sql-injection.js.map +1 -0
  369. package/dist/security/xss-prevention.d.ts +80 -0
  370. package/dist/security/xss-prevention.d.ts.map +1 -0
  371. package/dist/security/xss-prevention.js +416 -0
  372. package/dist/security/xss-prevention.js.map +1 -0
  373. package/dist/structural/barrel-exports.d.ts +178 -0
  374. package/dist/structural/barrel-exports.d.ts.map +1 -0
  375. package/dist/structural/barrel-exports.js +553 -0
  376. package/dist/structural/barrel-exports.js.map +1 -0
  377. package/dist/structural/circular-deps.d.ts +140 -0
  378. package/dist/structural/circular-deps.d.ts.map +1 -0
  379. package/dist/structural/circular-deps.js +422 -0
  380. package/dist/structural/circular-deps.js.map +1 -0
  381. package/dist/structural/co-location.d.ts +202 -0
  382. package/dist/structural/co-location.d.ts.map +1 -0
  383. package/dist/structural/co-location.js +640 -0
  384. package/dist/structural/co-location.js.map +1 -0
  385. package/dist/structural/directory-structure.d.ts +151 -0
  386. package/dist/structural/directory-structure.d.ts.map +1 -0
  387. package/dist/structural/directory-structure.js +457 -0
  388. package/dist/structural/directory-structure.js.map +1 -0
  389. package/dist/structural/file-naming.d.ts +61 -0
  390. package/dist/structural/file-naming.d.ts.map +1 -0
  391. package/dist/structural/file-naming.js +231 -0
  392. package/dist/structural/file-naming.js.map +1 -0
  393. package/dist/structural/import-ordering.d.ts +212 -0
  394. package/dist/structural/import-ordering.d.ts.map +1 -0
  395. package/dist/structural/import-ordering.js +821 -0
  396. package/dist/structural/import-ordering.js.map +1 -0
  397. package/dist/structural/index.d.ts +23 -0
  398. package/dist/structural/index.d.ts.map +1 -0
  399. package/dist/structural/index.js +26 -0
  400. package/dist/structural/index.js.map +1 -0
  401. package/dist/structural/module-boundaries.d.ts +164 -0
  402. package/dist/structural/module-boundaries.d.ts.map +1 -0
  403. package/dist/structural/module-boundaries.js +616 -0
  404. package/dist/structural/module-boundaries.js.map +1 -0
  405. package/dist/structural/package-boundaries.d.ts +182 -0
  406. package/dist/structural/package-boundaries.d.ts.map +1 -0
  407. package/dist/structural/package-boundaries.js +602 -0
  408. package/dist/structural/package-boundaries.js.map +1 -0
  409. package/dist/styling/class-naming.d.ts +263 -0
  410. package/dist/styling/class-naming.d.ts.map +1 -0
  411. package/dist/styling/class-naming.js +892 -0
  412. package/dist/styling/class-naming.js.map +1 -0
  413. package/dist/styling/color-usage.d.ts +213 -0
  414. package/dist/styling/color-usage.d.ts.map +1 -0
  415. package/dist/styling/color-usage.js +732 -0
  416. package/dist/styling/color-usage.js.map +1 -0
  417. package/dist/styling/design-tokens.d.ts +212 -0
  418. package/dist/styling/design-tokens.d.ts.map +1 -0
  419. package/dist/styling/design-tokens.js +748 -0
  420. package/dist/styling/design-tokens.js.map +1 -0
  421. package/dist/styling/index.d.ts +16 -0
  422. package/dist/styling/index.d.ts.map +1 -0
  423. package/dist/styling/index.js +56 -0
  424. package/dist/styling/index.js.map +1 -0
  425. package/dist/styling/responsive.d.ts +304 -0
  426. package/dist/styling/responsive.d.ts.map +1 -0
  427. package/dist/styling/responsive.js +888 -0
  428. package/dist/styling/responsive.js.map +1 -0
  429. package/dist/styling/spacing-scale.d.ts +248 -0
  430. package/dist/styling/spacing-scale.d.ts.map +1 -0
  431. package/dist/styling/spacing-scale.js +865 -0
  432. package/dist/styling/spacing-scale.js.map +1 -0
  433. package/dist/styling/tailwind-patterns.d.ts +305 -0
  434. package/dist/styling/tailwind-patterns.d.ts.map +1 -0
  435. package/dist/styling/tailwind-patterns.js +1181 -0
  436. package/dist/styling/tailwind-patterns.js.map +1 -0
  437. package/dist/styling/typography.d.ts +281 -0
  438. package/dist/styling/typography.d.ts.map +1 -0
  439. package/dist/styling/typography.js +1004 -0
  440. package/dist/styling/typography.js.map +1 -0
  441. package/dist/styling/z-index-scale.d.ts +270 -0
  442. package/dist/styling/z-index-scale.d.ts.map +1 -0
  443. package/dist/styling/z-index-scale.js +714 -0
  444. package/dist/styling/z-index-scale.js.map +1 -0
  445. package/dist/testing/co-location.d.ts +42 -0
  446. package/dist/testing/co-location.d.ts.map +1 -0
  447. package/dist/testing/co-location.js +134 -0
  448. package/dist/testing/co-location.js.map +1 -0
  449. package/dist/testing/describe-naming.d.ts +47 -0
  450. package/dist/testing/describe-naming.d.ts.map +1 -0
  451. package/dist/testing/describe-naming.js +150 -0
  452. package/dist/testing/describe-naming.js.map +1 -0
  453. package/dist/testing/file-naming.d.ts +44 -0
  454. package/dist/testing/file-naming.d.ts.map +1 -0
  455. package/dist/testing/file-naming.js +131 -0
  456. package/dist/testing/file-naming.js.map +1 -0
  457. package/dist/testing/fixture-patterns.d.ts +52 -0
  458. package/dist/testing/fixture-patterns.d.ts.map +1 -0
  459. package/dist/testing/fixture-patterns.js +228 -0
  460. package/dist/testing/fixture-patterns.js.map +1 -0
  461. package/dist/testing/index.d.ts +31 -0
  462. package/dist/testing/index.d.ts.map +1 -0
  463. package/dist/testing/index.js +49 -0
  464. package/dist/testing/index.js.map +1 -0
  465. package/dist/testing/mock-patterns.d.ts +53 -0
  466. package/dist/testing/mock-patterns.d.ts.map +1 -0
  467. package/dist/testing/mock-patterns.js +264 -0
  468. package/dist/testing/mock-patterns.js.map +1 -0
  469. package/dist/testing/setup-teardown.d.ts +55 -0
  470. package/dist/testing/setup-teardown.d.ts.map +1 -0
  471. package/dist/testing/setup-teardown.js +262 -0
  472. package/dist/testing/setup-teardown.js.map +1 -0
  473. package/dist/testing/test-structure.d.ts +51 -0
  474. package/dist/testing/test-structure.d.ts.map +1 -0
  475. package/dist/testing/test-structure.js +225 -0
  476. package/dist/testing/test-structure.js.map +1 -0
  477. package/dist/types/any-usage.d.ts +99 -0
  478. package/dist/types/any-usage.d.ts.map +1 -0
  479. package/dist/types/any-usage.js +641 -0
  480. package/dist/types/any-usage.js.map +1 -0
  481. package/dist/types/file-location.d.ts +76 -0
  482. package/dist/types/file-location.d.ts.map +1 -0
  483. package/dist/types/file-location.js +395 -0
  484. package/dist/types/file-location.js.map +1 -0
  485. package/dist/types/generic-patterns.d.ts +97 -0
  486. package/dist/types/generic-patterns.d.ts.map +1 -0
  487. package/dist/types/generic-patterns.js +615 -0
  488. package/dist/types/generic-patterns.js.map +1 -0
  489. package/dist/types/index.d.ts +31 -0
  490. package/dist/types/index.d.ts.map +1 -0
  491. package/dist/types/index.js +43 -0
  492. package/dist/types/index.js.map +1 -0
  493. package/dist/types/interface-vs-type.d.ts +81 -0
  494. package/dist/types/interface-vs-type.d.ts.map +1 -0
  495. package/dist/types/interface-vs-type.js +440 -0
  496. package/dist/types/interface-vs-type.js.map +1 -0
  497. package/dist/types/naming-conventions.d.ts +84 -0
  498. package/dist/types/naming-conventions.d.ts.map +1 -0
  499. package/dist/types/naming-conventions.js +455 -0
  500. package/dist/types/naming-conventions.js.map +1 -0
  501. package/dist/types/type-assertions.d.ts +98 -0
  502. package/dist/types/type-assertions.d.ts.map +1 -0
  503. package/dist/types/type-assertions.js +639 -0
  504. package/dist/types/type-assertions.js.map +1 -0
  505. package/dist/types/utility-types.d.ts +110 -0
  506. package/dist/types/utility-types.d.ts.map +1 -0
  507. package/dist/types/utility-types.js +547 -0
  508. package/dist/types/utility-types.js.map +1 -0
  509. package/package.json +44 -0
@@ -0,0 +1,537 @@
1
+ /**
2
+ * Regex Detector - Regex-based detection base class
3
+ *
4
+ * Provides pattern matching helpers and utilities for regex-based pattern detection.
5
+ * Extends BaseDetector with specialized methods for matching patterns in source code.
6
+ *
7
+ * @requirements 6.4 - THE Detector_System SHALL support detection methods: ast, regex, semantic, structural, and custom
8
+ */
9
+ import { BaseDetector } from './base-detector.js';
10
+ // ============================================================================
11
+ // Regex Detector Abstract Class
12
+ // ============================================================================
13
+ /**
14
+ * Abstract base class for regex-based detectors
15
+ *
16
+ * Provides pattern matching helpers and utilities for detection
17
+ * that operates on source code using regular expressions.
18
+ *
19
+ * @requirements 6.4 - THE Detector_System SHALL support detection methods: regex
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * class TodoCommentDetector extends RegexDetector {
24
+ * readonly id = 'documentation/todo-patterns';
25
+ * readonly category = 'documentation';
26
+ * readonly subcategory = 'comments';
27
+ * readonly name = 'TODO Comment Detector';
28
+ * readonly description = 'Detects TODO/FIXME comment patterns';
29
+ * readonly supportedLanguages = ['typescript', 'javascript'];
30
+ *
31
+ * async detect(context: DetectionContext): Promise<DetectionResult> {
32
+ * const todoPattern = /\/\/\s*(TODO|FIXME):\s*(.+)/gi;
33
+ * const matches = this.matchLines(context.content, todoPattern);
34
+ * // Analyze TODO patterns...
35
+ * }
36
+ *
37
+ * generateQuickFix(violation: Violation): QuickFix | null {
38
+ * return null;
39
+ * }
40
+ * }
41
+ * ```
42
+ */
43
+ export class RegexDetector extends BaseDetector {
44
+ /**
45
+ * Detection method is always 'regex' for regex-based detectors
46
+ *
47
+ * @requirements 6.4 - Detector declares detection method as 'regex'
48
+ */
49
+ detectionMethod = 'regex';
50
+ // ============================================================================
51
+ // Core Pattern Matching Methods
52
+ // ============================================================================
53
+ /**
54
+ * Find all matches of a regex pattern in content
55
+ *
56
+ * Returns all matches with their positions and capture groups.
57
+ *
58
+ * @param content - The source content to search
59
+ * @param pattern - The regex pattern to match (will be made global if not already)
60
+ * @param options - Optional matching options
61
+ * @returns Array of match results
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * const matches = this.matchAll(content, /function\s+(\w+)/g);
66
+ * for (const match of matches) {
67
+ * console.log(`Found function: ${match.captures[1]}`);
68
+ * }
69
+ * ```
70
+ */
71
+ matchAll(content, pattern, options = {}) {
72
+ const regex = this.normalizePattern(pattern, { ...options, global: true });
73
+ const results = [];
74
+ let match;
75
+ while ((match = regex.exec(content)) !== null) {
76
+ results.push({
77
+ match: match[0],
78
+ index: match.index,
79
+ groups: match.groups ? { ...match.groups } : {},
80
+ captures: [...match],
81
+ });
82
+ if (options.maxMatches !== undefined && results.length >= options.maxMatches) {
83
+ break;
84
+ }
85
+ // Prevent infinite loops for zero-length matches
86
+ if (match[0].length === 0) {
87
+ regex.lastIndex++;
88
+ }
89
+ }
90
+ return results;
91
+ }
92
+ /**
93
+ * Find all matches with line and column information
94
+ *
95
+ * Returns matches with their line numbers, columns, and the full line content.
96
+ *
97
+ * @param content - The source content to search
98
+ * @param pattern - The regex pattern to match
99
+ * @param options - Optional matching options
100
+ * @returns Array of line match results
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const matches = this.matchLines(content, /console\.log\(/g);
105
+ * for (const match of matches) {
106
+ * console.log(`Found console.log at line ${match.line}, column ${match.column}`);
107
+ * }
108
+ * ```
109
+ */
110
+ matchLines(content, pattern, options = {}) {
111
+ const matches = this.matchAll(content, pattern, options);
112
+ const lineInfo = this.buildLineIndex(content);
113
+ return matches.map((match) => {
114
+ const startPos = this.indexToPosition(match.index, lineInfo);
115
+ const endPos = this.indexToPosition(match.index + match.match.length, lineInfo);
116
+ return {
117
+ match: match.match,
118
+ line: startPos.line,
119
+ column: startPos.column,
120
+ endLine: endPos.line,
121
+ endColumn: endPos.column,
122
+ index: match.index,
123
+ groups: match.groups,
124
+ captures: match.captures,
125
+ lineContent: this.getLineContent(content, startPos.line, endPos.line, lineInfo),
126
+ };
127
+ });
128
+ }
129
+ /**
130
+ * Extract named capture groups from all matches
131
+ *
132
+ * Useful for patterns with named groups like /(?<name>\w+)/
133
+ *
134
+ * @param content - The source content to search
135
+ * @param pattern - The regex pattern with named capture groups
136
+ * @param options - Optional matching options
137
+ * @returns Array of capture results with groups
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * const captures = this.extractCaptures(
142
+ * content,
143
+ * /function\s+(?<name>\w+)\s*\((?<params>[^)]*)\)/g
144
+ * );
145
+ * for (const capture of captures) {
146
+ * console.log(`Function ${capture.groups.name} with params: ${capture.groups.params}`);
147
+ * }
148
+ * ```
149
+ */
150
+ extractCaptures(content, pattern, options = {}) {
151
+ const matches = this.matchLines(content, pattern, options);
152
+ return matches.map((match) => ({
153
+ match: match.match,
154
+ groups: match.groups,
155
+ line: match.line,
156
+ column: match.column,
157
+ }));
158
+ }
159
+ /**
160
+ * Find locations of all pattern matches
161
+ *
162
+ * Returns Location objects compatible with the drift core types.
163
+ *
164
+ * @param content - The source content to search
165
+ * @param pattern - The regex pattern to match
166
+ * @param file - The file path for the locations
167
+ * @param options - Optional matching options
168
+ * @returns Array of pattern locations
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const locations = this.findPatternLocations(
173
+ * context.content,
174
+ * /import\s+.*\s+from\s+['"]([^'"]+)['"]/g,
175
+ * context.file
176
+ * );
177
+ * ```
178
+ */
179
+ findPatternLocations(content, pattern, file, options = {}) {
180
+ const matches = this.matchLines(content, pattern, options);
181
+ return matches.map((match) => ({
182
+ file,
183
+ line: match.line,
184
+ column: match.column,
185
+ endLine: match.endLine,
186
+ endColumn: match.endColumn,
187
+ matchedText: match.match,
188
+ groups: match.groups,
189
+ }));
190
+ }
191
+ // ============================================================================
192
+ // Utility Methods for Common Regex Operations
193
+ // ============================================================================
194
+ /**
195
+ * Test if a pattern matches anywhere in the content
196
+ *
197
+ * @param content - The source content to test
198
+ * @param pattern - The regex pattern to test
199
+ * @returns true if the pattern matches
200
+ *
201
+ * @example
202
+ * ```typescript
203
+ * if (this.hasMatch(content, /export\s+default/)) {
204
+ * // File has a default export
205
+ * }
206
+ * ```
207
+ */
208
+ hasMatch(content, pattern) {
209
+ const regex = this.normalizePattern(pattern, {});
210
+ return regex.test(content);
211
+ }
212
+ /**
213
+ * Count the number of matches in content
214
+ *
215
+ * @param content - The source content to search
216
+ * @param pattern - The regex pattern to count
217
+ * @returns Number of matches found
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * const importCount = this.countMatches(content, /^import\s+/gm);
222
+ * ```
223
+ */
224
+ countMatches(content, pattern) {
225
+ return this.matchAll(content, pattern).length;
226
+ }
227
+ /**
228
+ * Find the first match of a pattern
229
+ *
230
+ * @param content - The source content to search
231
+ * @param pattern - The regex pattern to match
232
+ * @returns The first match, or null if not found
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * const firstFunction = this.findFirst(content, /function\s+(\w+)/);
237
+ * if (firstFunction) {
238
+ * console.log(`First function: ${firstFunction.captures[1]}`);
239
+ * }
240
+ * ```
241
+ */
242
+ findFirst(content, pattern) {
243
+ const matches = this.matchLines(content, pattern, { maxMatches: 1 });
244
+ return matches.length > 0 ? matches[0] : null;
245
+ }
246
+ /**
247
+ * Find the last match of a pattern
248
+ *
249
+ * @param content - The source content to search
250
+ * @param pattern - The regex pattern to match
251
+ * @returns The last match, or null if not found
252
+ */
253
+ findLast(content, pattern) {
254
+ const matches = this.matchLines(content, pattern);
255
+ return matches.length > 0 ? matches[matches.length - 1] : null;
256
+ }
257
+ /**
258
+ * Find matches within a specific line range
259
+ *
260
+ * @param content - The source content to search
261
+ * @param pattern - The regex pattern to match
262
+ * @param startLine - Start line (1-indexed, inclusive)
263
+ * @param endLine - End line (1-indexed, inclusive)
264
+ * @returns Array of matches within the line range
265
+ */
266
+ matchInRange(content, pattern, startLine, endLine) {
267
+ const matches = this.matchLines(content, pattern);
268
+ return matches.filter((match) => match.line >= startLine && match.line <= endLine);
269
+ }
270
+ /**
271
+ * Replace all matches of a pattern
272
+ *
273
+ * @param content - The source content
274
+ * @param pattern - The regex pattern to replace
275
+ * @param replacement - The replacement string or function
276
+ * @returns The content with replacements applied
277
+ *
278
+ * @example
279
+ * ```typescript
280
+ * const fixed = this.replaceAll(content, /var\s+/g, 'const ');
281
+ * ```
282
+ */
283
+ replaceAll(content, pattern, replacement) {
284
+ const regex = this.normalizePattern(pattern, { global: true });
285
+ return content.replace(regex, replacement);
286
+ }
287
+ /**
288
+ * Split content by a pattern
289
+ *
290
+ * @param content - The source content to split
291
+ * @param pattern - The regex pattern to split by
292
+ * @param limit - Maximum number of splits
293
+ * @returns Array of split parts
294
+ */
295
+ splitByPattern(content, pattern, limit) {
296
+ return content.split(pattern, limit);
297
+ }
298
+ /**
299
+ * Get all lines matching a pattern
300
+ *
301
+ * Returns complete lines that contain a match.
302
+ *
303
+ * @param content - The source content to search
304
+ * @param pattern - The regex pattern to match
305
+ * @returns Array of objects with line number and content
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * const importLines = this.getMatchingLines(content, /^import\s+/);
310
+ * ```
311
+ */
312
+ getMatchingLines(content, pattern) {
313
+ const lines = content.split('\n');
314
+ const results = [];
315
+ for (let i = 0; i < lines.length; i++) {
316
+ const line = lines[i];
317
+ if (pattern.test(line)) {
318
+ results.push({ line: i + 1, content: line });
319
+ }
320
+ }
321
+ return results;
322
+ }
323
+ /**
324
+ * Get lines NOT matching a pattern
325
+ *
326
+ * @param content - The source content to search
327
+ * @param pattern - The regex pattern to exclude
328
+ * @returns Array of objects with line number and content
329
+ */
330
+ getNonMatchingLines(content, pattern) {
331
+ const lines = content.split('\n');
332
+ const results = [];
333
+ for (let i = 0; i < lines.length; i++) {
334
+ const line = lines[i];
335
+ if (!pattern.test(line)) {
336
+ results.push({ line: i + 1, content: line });
337
+ }
338
+ }
339
+ return results;
340
+ }
341
+ // ============================================================================
342
+ // Pattern Building Helpers
343
+ // ============================================================================
344
+ /**
345
+ * Create a pattern that matches any of the given strings
346
+ *
347
+ * @param strings - Strings to match (will be escaped)
348
+ * @param flags - Optional regex flags
349
+ * @returns A regex that matches any of the strings
350
+ *
351
+ * @example
352
+ * ```typescript
353
+ * const keywords = this.createAlternationPattern(['var', 'let', 'const'], 'g');
354
+ * // Creates: /var|let|const/g
355
+ * ```
356
+ */
357
+ createAlternationPattern(strings, flags) {
358
+ const escaped = strings.map((s) => this.escapeRegex(s));
359
+ return new RegExp(escaped.join('|'), flags);
360
+ }
361
+ /**
362
+ * Create a pattern that matches a word boundary version of strings
363
+ *
364
+ * @param strings - Strings to match as whole words
365
+ * @param flags - Optional regex flags
366
+ * @returns A regex that matches whole words only
367
+ *
368
+ * @example
369
+ * ```typescript
370
+ * const keywords = this.createWordBoundaryPattern(['var', 'let', 'const'], 'g');
371
+ * // Creates: /\b(?:var|let|const)\b/g
372
+ * ```
373
+ */
374
+ createWordBoundaryPattern(strings, flags) {
375
+ const escaped = strings.map((s) => this.escapeRegex(s));
376
+ return new RegExp(`\\b(?:${escaped.join('|')})\\b`, flags);
377
+ }
378
+ /**
379
+ * Escape special regex characters in a string
380
+ *
381
+ * @param str - String to escape
382
+ * @returns Escaped string safe for use in regex
383
+ *
384
+ * @example
385
+ * ```typescript
386
+ * const escaped = this.escapeRegex('file.ts'); // 'file\\.ts'
387
+ * ```
388
+ */
389
+ escapeRegex(str) {
390
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
391
+ }
392
+ /**
393
+ * Create a pattern from a template with placeholders
394
+ *
395
+ * @param template - Template string with {name} placeholders
396
+ * @param values - Values to substitute for placeholders
397
+ * @param flags - Optional regex flags
398
+ * @returns A regex with placeholders replaced
399
+ *
400
+ * @example
401
+ * ```typescript
402
+ * const pattern = this.createPatternFromTemplate(
403
+ * 'import\\s+{name}\\s+from\\s+[\'\"]{module}[\'\"]',
404
+ * { name: '\\w+', module: '[^\'\"]+' },
405
+ * 'g'
406
+ * );
407
+ * ```
408
+ */
409
+ createPatternFromTemplate(template, values, flags) {
410
+ let pattern = template;
411
+ for (const [key, value] of Object.entries(values)) {
412
+ pattern = pattern.replace(new RegExp(`\\{${key}\\}`, 'g'), value);
413
+ }
414
+ return new RegExp(pattern, flags);
415
+ }
416
+ // ============================================================================
417
+ // Location Conversion Helpers
418
+ // ============================================================================
419
+ /**
420
+ * Convert a LineMatch to a Location object
421
+ *
422
+ * @param match - The line match to convert
423
+ * @param file - The file path
424
+ * @returns A Location object
425
+ */
426
+ lineMatchToLocation(match, file) {
427
+ return {
428
+ file,
429
+ line: match.line,
430
+ column: match.column,
431
+ endLine: match.endLine,
432
+ endColumn: match.endColumn,
433
+ };
434
+ }
435
+ /**
436
+ * Convert a PatternLocation to a Location object
437
+ *
438
+ * @param patternLocation - The pattern location to convert
439
+ * @returns A Location object
440
+ */
441
+ patternLocationToLocation(patternLocation) {
442
+ return {
443
+ file: patternLocation.file,
444
+ line: patternLocation.line,
445
+ column: patternLocation.column,
446
+ endLine: patternLocation.endLine,
447
+ endColumn: patternLocation.endColumn,
448
+ };
449
+ }
450
+ // ============================================================================
451
+ // Private Helper Methods
452
+ // ============================================================================
453
+ /**
454
+ * Line index information for position calculations
455
+ */
456
+ buildLineIndex(content) {
457
+ const lineStarts = [0];
458
+ for (let i = 0; i < content.length; i++) {
459
+ if (content[i] === '\n') {
460
+ lineStarts.push(i + 1);
461
+ }
462
+ }
463
+ return lineStarts;
464
+ }
465
+ /**
466
+ * Convert a string index to line/column position
467
+ */
468
+ indexToPosition(index, lineStarts) {
469
+ // Binary search for the line
470
+ let low = 0;
471
+ let high = lineStarts.length - 1;
472
+ while (low < high) {
473
+ const mid = Math.floor((low + high + 1) / 2);
474
+ if (lineStarts[mid] <= index) {
475
+ low = mid;
476
+ }
477
+ else {
478
+ high = mid - 1;
479
+ }
480
+ }
481
+ return {
482
+ line: low + 1, // 1-indexed
483
+ column: index - lineStarts[low] + 1, // 1-indexed
484
+ };
485
+ }
486
+ /**
487
+ * Get the content of one or more lines
488
+ */
489
+ getLineContent(content, startLine, endLine, _lineStarts) {
490
+ const lines = content.split('\n');
491
+ const result = [];
492
+ for (let i = startLine - 1; i < endLine && i < lines.length; i++) {
493
+ result.push(lines[i]);
494
+ }
495
+ return result.join('\n');
496
+ }
497
+ /**
498
+ * Normalize a regex pattern with options
499
+ */
500
+ normalizePattern(pattern, options) {
501
+ let flags = pattern.flags;
502
+ // Add global flag if requested and not present
503
+ if (options.global && !flags.includes('g')) {
504
+ flags += 'g';
505
+ }
506
+ // Add case-insensitive flag if requested
507
+ if (options.caseInsensitive && !flags.includes('i')) {
508
+ flags += 'i';
509
+ }
510
+ // Add multiline flag if requested
511
+ if (options.multiline && !flags.includes('m')) {
512
+ flags += 'm';
513
+ }
514
+ // Add dotAll flag if requested
515
+ if (options.dotAll && !flags.includes('s')) {
516
+ flags += 's';
517
+ }
518
+ // Return original if flags haven't changed
519
+ if (flags === pattern.flags) {
520
+ return pattern;
521
+ }
522
+ return new RegExp(pattern.source, flags);
523
+ }
524
+ }
525
+ // ============================================================================
526
+ // Type Guards
527
+ // ============================================================================
528
+ /**
529
+ * Type guard to check if a detector is a regex detector
530
+ *
531
+ * @param detector - The detector to check
532
+ * @returns true if the detector is a RegexDetector
533
+ */
534
+ export function isRegexDetector(detector) {
535
+ return detector.detectionMethod === 'regex';
536
+ }
537
+ //# sourceMappingURL=regex-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-detector.js","sourceRoot":"","sources":["../../src/base/regex-detector.ts"],"names":[],"mappings":"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"}