@codeperfect/eslint-plugin 2.0.0 → 2.2.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 (301) hide show
  1. package/README.md +3 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/application/custom-rules.d.ts +8 -8
  4. package/dist/application/custom-rules.js +14 -14
  5. package/dist/application/index.d.ts +1 -1
  6. package/dist/application/index.d.ts.map +1 -1
  7. package/dist/application/index.js +2 -2
  8. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  9. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +3 -4
  10. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -1
  11. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +5 -3
  12. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -1
  13. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +17 -7
  14. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
  15. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +36 -4
  16. package/dist/domain/architecture/consistent-barrel-files/index.d.ts +2 -0
  17. package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
  18. package/dist/domain/architecture/consistent-barrel-files/index.js +3 -1
  19. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts +5 -0
  20. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -0
  21. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +247 -0
  22. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts +5 -0
  23. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -0
  24. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +136 -0
  25. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
  26. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +8 -3
  27. package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
  28. package/dist/domain/architecture/consistent-barrel-files/rule.js +12 -5
  29. package/dist/domain/architecture/index.d.ts +2 -1
  30. package/dist/domain/architecture/index.d.ts.map +1 -1
  31. package/dist/domain/architecture/index.js +3 -2
  32. package/dist/domain/architecture/no-unused-exports/index.d.ts +3 -0
  33. package/dist/domain/architecture/no-unused-exports/index.d.ts.map +1 -0
  34. package/dist/domain/architecture/no-unused-exports/index.js +2 -0
  35. package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts +50 -0
  36. package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts.map +1 -0
  37. package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.js +141 -0
  38. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +49 -0
  39. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -0
  40. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +608 -0
  41. package/dist/domain/architecture/no-unused-exports/rule.d.ts +5 -0
  42. package/dist/domain/architecture/no-unused-exports/rule.d.ts.map +1 -0
  43. package/dist/domain/architecture/no-unused-exports/rule.js +82 -0
  44. package/dist/domain/architecture/no-unused-exports/types.d.ts +32 -0
  45. package/dist/domain/architecture/no-unused-exports/types.d.ts.map +1 -0
  46. package/dist/domain/architecture/no-unused-exports/types.js +2 -0
  47. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  48. package/dist/domain/core/no-multiple-declarators/rule.js +58 -6
  49. package/dist/domain/core/no-multiple-declarators/types.d.ts +3 -1
  50. package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -1
  51. package/dist/domain/core/no-multiple-declarators/types.js +5 -2
  52. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
  53. package/dist/domain/core/prefer-interface-types/rule.js +94 -23
  54. package/dist/domain/custom-rule-documentation.d.ts +3 -14
  55. package/dist/domain/custom-rule-documentation.d.ts.map +1 -1
  56. package/dist/domain/custom-rule-documentation.js +3 -2
  57. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
  58. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +11 -2
  59. package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -1
  60. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +1 -1
  61. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +1 -1
  62. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  63. package/dist/domain/docs/no-interface-member-docs/rule.js +12 -4
  64. package/dist/domain/docs/require-example-language/examples.d.ts +4 -15
  65. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  66. package/dist/domain/docs/require-example-language/examples.js +119 -26
  67. package/dist/domain/docs/require-example-language/fixes.d.ts +1 -21
  68. package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -1
  69. package/dist/domain/docs/require-example-language/fixes.js +5 -2
  70. package/dist/domain/docs/require-example-language/reporting.d.ts +2 -38
  71. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
  72. package/dist/domain/docs/require-example-language/reporting.js +2 -2
  73. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
  74. package/dist/domain/docs/require-example-language/rule.js +7 -3
  75. package/dist/domain/docs/require-example-language/types.d.ts +1 -1
  76. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
  77. package/dist/domain/docs/require-example-language/types.js +1 -1
  78. package/dist/domain/docs/single-line-jsdoc/rule.d.ts +1 -2
  79. package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -1
  80. package/dist/domain/docs/single-line-jsdoc/rule.js +18 -13
  81. package/dist/domain/index.d.ts +2 -3
  82. package/dist/domain/index.d.ts.map +1 -1
  83. package/dist/domain/index.js +3 -4
  84. package/dist/domain/testing/aaa/analyzer.analysis.d.ts +2 -78
  85. package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -1
  86. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +121 -3
  87. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
  88. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +199 -4
  89. package/dist/domain/testing/aaa/analyzer.analysis.js +30 -188
  90. package/dist/domain/testing/aaa/analyzer.assertions.d.ts +1 -92
  91. package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -1
  92. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +93 -0
  93. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -0
  94. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +184 -0
  95. package/dist/domain/testing/aaa/analyzer.assertions.js +5 -283
  96. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +62 -0
  97. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -0
  98. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +106 -0
  99. package/dist/domain/testing/aaa/analyzer.classification.d.ts +1 -74
  100. package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -1
  101. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +75 -0
  102. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -0
  103. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +202 -0
  104. package/dist/domain/testing/aaa/analyzer.classification.js +5 -201
  105. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +13 -0
  106. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -0
  107. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +32 -0
  108. package/dist/domain/testing/aaa/analyzer.super.d.ts +6 -13
  109. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
  110. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +14 -0
  111. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -0
  112. package/dist/domain/testing/aaa/analyzer.super.helpers.js +64 -0
  113. package/dist/domain/testing/aaa/analyzer.super.js +29 -61
  114. package/dist/domain/testing/aaa/index.d.ts +1 -2
  115. package/dist/domain/testing/aaa/index.d.ts.map +1 -1
  116. package/dist/domain/testing/aaa/index.js +2 -2
  117. package/dist/domain/testing/aaa/types.d.ts +1 -1
  118. package/dist/domain/testing/aaa/types.d.ts.map +1 -1
  119. package/dist/domain/testing/aaa/types.js +1 -1
  120. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
  121. package/dist/domain/testing/assert-actual-expected-names/rule.js +33 -5
  122. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -1
  123. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -1
  124. package/dist/domain/testing/enforce-aaa-phase-purity/index.js +3 -2
  125. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +1 -1
  126. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -1
  127. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +1 -1
  128. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +1 -1
  129. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
  130. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +78 -16
  131. package/dist/domain/testing/{require-aaa-sections → enforce-aaa-structure}/missing-section-fixes.d.ts +1 -1
  132. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -0
  133. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +150 -0
  134. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
  135. package/dist/domain/testing/enforce-aaa-structure/rule.js +165 -3
  136. package/dist/domain/testing/index.d.ts +0 -3
  137. package/dist/domain/testing/index.d.ts.map +1 -1
  138. package/dist/domain/testing/index.js +1 -4
  139. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +1 -15
  140. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -1
  141. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +2 -71
  142. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
  143. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +4 -2
  144. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +1 -13
  145. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -1
  146. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +3 -21
  147. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -1
  148. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +2 -1
  149. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -1
  150. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +1 -1
  151. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +6 -6
  152. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +1 -12
  153. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
  154. package/dist/domain/testing/prefer-vi-mocked-import/match.js +149 -15
  155. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
  156. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +6 -3
  157. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
  158. package/dist/domain/testing/require-act-result-capture/rule.js +42 -10
  159. package/dist/domain/testing/require-test-companion/index.d.ts +0 -1
  160. package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -1
  161. package/dist/domain/testing/require-test-companion/index.js +1 -2
  162. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts +2 -1
  163. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -1
  164. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +13 -58
  165. package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts +2 -1
  166. package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -1
  167. package/dist/domain/testing/require-test-companion/require-test-companion-options.js +6 -5
  168. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
  169. package/dist/domain/testing/require-test-companion/rule.js +34 -9
  170. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
  171. package/dist/domain/testing/single-act-statement/rule.js +11 -5
  172. package/dist/index.d.ts +1 -1
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +2 -2
  175. package/dist/infrastructure/codeperfect-plugin.d.ts +6 -6
  176. package/dist/infrastructure/codeperfect-plugin.js +5 -5
  177. package/dist/infrastructure/presets.d.ts.map +1 -1
  178. package/dist/infrastructure/presets.js +23 -7
  179. package/package.json +37 -38
  180. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +0 -41
  181. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
  182. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -87
  183. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +0 -40
  184. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
  185. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -91
  186. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +0 -4
  187. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +0 -1
  188. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +0 -4
  189. package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts +0 -141
  190. package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
  191. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +0 -20
  192. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +0 -1
  193. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +0 -25
  194. package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +0 -235
  195. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +0 -101
  196. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +0 -1
  197. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +0 -108
  198. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +0 -35
  199. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +0 -1
  200. package/dist/domain/core/no-multiple-declarators/rule.fixes.js +0 -95
  201. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +0 -4
  202. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +0 -1
  203. package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +0 -4
  204. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +0 -4
  205. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +0 -1
  206. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +0 -4
  207. package/dist/domain/core/prefer-interface-types/test-helpers.d.ts +0 -110
  208. package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
  209. package/dist/domain/core/prefer-interface-types/test-helpers.js +0 -116
  210. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -89
  211. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
  212. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
  213. package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts +0 -103
  214. package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
  215. package/dist/domain/docs/no-interface-member-docs/test-helpers.js +0 -157
  216. package/dist/domain/docs/require-example-language/create-fixer.d.ts +0 -5
  217. package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +0 -1
  218. package/dist/domain/docs/require-example-language/create-fixer.js +0 -5
  219. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +0 -4
  220. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +0 -1
  221. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +0 -5
  222. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +0 -4
  223. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +0 -1
  224. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +0 -5
  225. package/dist/domain/docs/test-helpers.d.ts +0 -50
  226. package/dist/domain/docs/test-helpers.d.ts.map +0 -1
  227. package/dist/domain/docs/test-helpers.js +0 -107
  228. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +0 -9
  229. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +0 -1
  230. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +0 -10
  231. package/dist/domain/testing/aaa/analyzer.d.ts +0 -46
  232. package/dist/domain/testing/aaa/analyzer.d.ts.map +0 -1
  233. package/dist/domain/testing/aaa/analyzer.js +0 -59
  234. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +0 -4
  235. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +0 -1
  236. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +0 -4
  237. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +0 -42
  238. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +0 -1
  239. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +0 -188
  240. package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts +0 -5
  241. package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
  242. package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +0 -34
  243. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +0 -20
  244. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +0 -1
  245. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +0 -39
  246. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +0 -86
  247. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +0 -1
  248. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +0 -150
  249. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +0 -2
  250. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +0 -1
  251. package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +0 -2
  252. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +0 -14
  253. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +0 -1
  254. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +0 -81
  255. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +0 -13
  256. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +0 -1
  257. package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +0 -189
  258. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +0 -25
  259. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +0 -1
  260. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +0 -92
  261. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +0 -32
  262. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +0 -1
  263. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +0 -164
  264. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +0 -5
  265. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +0 -1
  266. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +0 -4
  267. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +0 -1
  268. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +0 -4
  269. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +0 -4
  270. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +0 -1
  271. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +0 -4
  272. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +0 -62
  273. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +0 -4
  274. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +0 -1
  275. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +0 -4
  276. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +0 -24
  277. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +0 -1
  278. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +0 -113
  279. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +0 -36
  280. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +0 -1
  281. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +0 -138
  282. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +0 -203
  283. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +0 -1
  284. package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +0 -2
  285. package/dist/domain/testing/require-aaa-sections/index.d.ts +0 -2
  286. package/dist/domain/testing/require-aaa-sections/index.d.ts.map +0 -1
  287. package/dist/domain/testing/require-aaa-sections/index.js +0 -2
  288. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +0 -1
  289. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +0 -150
  290. package/dist/domain/testing/require-aaa-sections/rule.d.ts +0 -5
  291. package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +0 -1
  292. package/dist/domain/testing/require-aaa-sections/rule.js +0 -129
  293. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +0 -104
  294. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +0 -1
  295. package/dist/domain/testing/require-aaa-sections/rule.reporting.js +0 -217
  296. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts +0 -51
  297. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
  298. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +0 -184
  299. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts +0 -28
  300. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
  301. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +0 -26
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
@@ -1,2 +1,2 @@
1
- export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, } from "./analyzer.js";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGFBQWEsRUFDYixRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsVUFBVSxHQUNYLE1BQU0sWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgYWFhUGhhc2VPcmRlcixcbiAgYW5hbHl6ZVRlc3RCbG9jayxcbiAgY291bnRBY3RTdGF0ZW1lbnRzLFxuICBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzLFxuICBnZXRBc3NlcnRpb25JZGVudGlmaWVycyxcbiAgZ2V0RmxhdHRlbmVkU2VjdGlvbnMsXG4gIGdldEluZGVudGF0aW9uQXRPZmZzZXQsXG4gIGdldExpbmVTdGFydFJhbmdlLFxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMsXG4gIGdldFNlY3Rpb25QaGFzZXMsXG4gIGhhc0Fzc2VydGlvbixcbiAgaGFzQXN5bmNMb2dpYyxcbiAgaGFzQXdhaXQsXG4gIGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQsXG4gIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQsXG4gIGhhc011dGF0aW9uLFxuICBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQsXG4gIGlzU2V0dXBMaWtlU3RhdGVtZW50LFxuICBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50LFxuICB1c2VzUHJlZml4LFxufSBmcm9tIFwiLi9hbmFseXplclwiO1xuZXhwb3J0IHR5cGUge1xuICBBYWFQaGFzZSxcbiAgTG9jYXRlZENvbW1lbnQsXG4gIExvY2F0ZWROb2RlLFxuICBTZWN0aW9uQ29tbWVudCxcbiAgU291cmNlQ29tbWVudCxcbiAgU3RhdGVtZW50UGhhc2UsXG4gIFRlc3RCbG9ja0FuYWx5c2lzLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7XG4gIEFhYVBoYXNlLFxuICBMb2NhdGVkQ29tbWVudCxcbiAgTG9jYXRlZE5vZGUsXG4gIFNlY3Rpb25Db21tZW50LFxuICBTb3VyY2VDb21tZW50LFxuICBUZXN0QmxvY2tBbmFseXNpcyxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbiJdfQ==
@@ -54,5 +54,5 @@ interface TestBlockAnalysis {
54
54
  /** Statements paired with their resolved AAA phases. */
55
55
  statements: StatementPhase[];
56
56
  }
57
- export type { AaaPhase, LocatedComment, LocatedNode, SectionComment, SourceComment, StatementPhase, TestBlockAnalysis, };
57
+ export type { AaaPhase, LocatedComment, LocatedNode, SectionComment, SourceComment, TestBlockAnalysis, };
58
58
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,mDAAmD;AACnD,KAAK,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7C,kEAAkE;AAClE,KAAK,cAAc,GAAG,aAAa,GAAG;IACpC,2CAA2C;IAC3C,GAAG,EAAE,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvC,8CAA8C;IAC9C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,KAAK,WAAW,CAAC,KAAK,SAAS,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG;IAClE,wCAAwC;IACxC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAErC,2CAA2C;IAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,sDAAsD;AACtD,UAAU,cAAc;IACtB,uDAAuD;IACvD,OAAO,EAAE,cAAc,CAAC;IAExB,6CAA6C;IAC7C,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,mDAAmD;AACnD,KAAK,aAAa,GAAG,UAAU,CAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CACjD,CAAC,MAAM,CAAC,CAAC;AAEV,sDAAsD;AACtD,UAAU,cAAc;IACtB,6DAA6D;IAC7D,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpC,gEAAgE;IAChE,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE5B,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,sDAAsD;AACtD,UAAU,iBAAiB;IACzB,iDAAiD;IACjD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IAEtB,mDAAmD;IACnD,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEnD,6CAA6C;IAC7C,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC;IAEvB,6DAA6D;IAC7D,eAAe,EAAE,cAAc,EAAE,CAAC;IAElC,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,mDAAmD;AACnD,KAAK,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7C,kEAAkE;AAClE,KAAK,cAAc,GAAG,aAAa,GAAG;IACpC,2CAA2C;IAC3C,GAAG,EAAE,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvC,8CAA8C;IAC9C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,KAAK,WAAW,CAAC,KAAK,SAAS,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG;IAClE,wCAAwC;IACxC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAErC,2CAA2C;IAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,sDAAsD;AACtD,UAAU,cAAc;IACtB,uDAAuD;IACvD,OAAO,EAAE,cAAc,CAAC;IAExB,6CAA6C;IAC7C,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,mDAAmD;AACnD,KAAK,aAAa,GAAG,UAAU,CAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CACjD,CAAC,MAAM,CAAC,CAAC;AAEV,sDAAsD;AACtD,UAAU,cAAc;IACtB,6DAA6D;IAC7D,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpC,gEAAgE;IAChE,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE5B,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,sDAAsD;AACtD,UAAU,iBAAiB;IACzB,iDAAiD;IACjD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IAEtB,mDAAmD;IACnD,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEnD,6CAA6C;IAC7C,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC;IAEvB,6DAA6D;IAC7D,eAAe,EAAE,cAAc,EAAE,CAAC;IAElC,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,GAClB,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBOYW1lZCBBQUEgcGhhc2VzIHJlY29nbml6ZWQgYnkgdGhlIGFuYWx5emVyLiAqL1xudHlwZSBBYWFQaGFzZSA9IFwiQWN0XCIgfCBcIkFycmFuZ2VcIiB8IFwiQXNzZXJ0XCI7XG5cbi8qKiBTb3VyY2UgY29tbWVudCB3aXRoIGd1YXJhbnRlZWQgbG9jYXRpb24gYW5kIHJhbmdlIG1ldGFkYXRhLiAqL1xudHlwZSBMb2NhdGVkQ29tbWVudCA9IFNvdXJjZUNvbW1lbnQgJiB7XG4gIC8qKiBOb3JtYWxpemVkIGxvY2F0aW9uIGZvciB0aGUgY29tbWVudC4gKi9cbiAgbG9jOiBOb25OdWxsYWJsZTxTb3VyY2VDb21tZW50W1wibG9jXCJdPjtcblxuICAvKiogSW5jbHVzaXZlIHNvdXJjZSByYW5nZSBmb3IgdGhlIGNvbW1lbnQuICovXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xufTtcblxuLyoqXG4gKiBFU1RyZWUgbm9kZSB3aXRoIHJlcXVpcmVkIGxvY2F0aW9uIGFuZCByYW5nZSBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUTm9kZSBOb2RlIHN1YnR5cGUgY2FycmllZCBieSB0aGUgd3JhcHBlci5cbiAqL1xudHlwZSBMb2NhdGVkTm9kZTxUTm9kZSBleHRlbmRzIEVTVHJlZS5Ob2RlID0gRVNUcmVlLk5vZGU+ID0gVE5vZGUgJiB7XG4gIC8qKiBOb3JtYWxpemVkIGxvY2F0aW9uIGZvciB0aGUgbm9kZS4gKi9cbiAgbG9jOiBOb25OdWxsYWJsZTxFU1RyZWUuTm9kZVtcImxvY1wiXT47XG5cbiAgLyoqIEluY2x1c2l2ZSBzb3VyY2UgcmFuZ2UgZm9yIHRoZSBub2RlLiAqL1xuICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcbn07XG5cbi8qKiBTZWN0aW9uIGNvbW1lbnQgYW5kIHRoZSBBQUEgcGhhc2VzIGl0IGRlY2xhcmVzLiAqL1xuaW50ZXJmYWNlIFNlY3Rpb25Db21tZW50IHtcbiAgLyoqIExvY2F0ZWQgbGluZSBjb21tZW50IHVzZWQgYXMgdGhlIHNlY3Rpb24gbWFya2VyLiAqL1xuICBjb21tZW50OiBMb2NhdGVkQ29tbWVudDtcblxuICAvKiogUGhhc2VzIGRlY2xhcmVkIGJ5IHRoZSBzZWN0aW9uIG1hcmtlci4gKi9cbiAgcGhhc2VzOiBBYWFQaGFzZVtdO1xufVxuXG4vKiogUmF3IHNvdXJjZSBjb21tZW50IG5vZGVzIHJldHVybmVkIGJ5IEVTTGludC4gKi9cbnR5cGUgU291cmNlQ29tbWVudCA9IFJldHVyblR5cGU8XG4gIFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdW1wiZ2V0QWxsQ29tbWVudHNcIl1cbj5bbnVtYmVyXTtcblxuLyoqIFN0YXRlbWVudCBhbm5vdGF0ZWQgd2l0aCBpdHMgYWN0aXZlIEFBQSBwaGFzZXMuICovXG5pbnRlcmZhY2UgU3RhdGVtZW50UGhhc2Uge1xuICAvKiogU3RhdGVtZW50IG5vZGUgdGhhdCBiZWxvbmdzIHRvIHRoZSBhbmFseXplZCB0ZXN0IGJvZHkuICovXG4gIG5vZGU6IExvY2F0ZWROb2RlPEVTVHJlZS5TdGF0ZW1lbnQ+O1xuXG4gIC8qKiBMYXN0IGFjdGl2ZSBwaGFzZSBiZWZvcmUgdGhpcyBzdGF0ZW1lbnQsIHdoZW4gYW55IGV4aXN0cy4gKi9cbiAgcGhhc2U6IEFhYVBoYXNlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBBbGwgYWN0aXZlIHBoYXNlcyBpbmhlcml0ZWQgZnJvbSB0aGUgbmVhcmVzdCBzZWN0aW9uIG1hcmtlci4gKi9cbiAgcGhhc2VzOiBBYWFQaGFzZVtdO1xufVxuXG4vKiogRGVyaXZlZCBtZXRhZGF0YSBmb3IgYSBzdXBwb3J0ZWQgdGVzdCBjYWxsYmFjay4gKi9cbmludGVyZmFjZSBUZXN0QmxvY2tBbmFseXNpcyB7XG4gIC8qKiBCbG9jayBib2R5IGJlbG9uZ2luZyB0byB0aGUgdGVzdCBjYWxsYmFjay4gKi9cbiAgYm9keTogTG9jYXRlZE5vZGU8RVNUcmVlLkJsb2NrU3RhdGVtZW50PjtcblxuICAvKiogTnVtYmVyIG9mIGxpbmVzIGluc2lkZSB0aGUgY2FsbGJhY2sgYm9keS4gKi9cbiAgYm9keUxpbmVDb3VudDogbnVtYmVyO1xuXG4gIC8qKiBPcmlnaW5hbCBjYWxsIGV4cHJlc3Npb24gZm9yIGBpdGAgb3IgYHRlc3RgLiAqL1xuICBjYWxsRXhwcmVzc2lvbjogTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPjtcblxuICAvKiogTmV3bGluZSBzdHlsZSB1c2VkIGJ5IHRoZSBzb3VyY2UgdGV4dC4gKi9cbiAgbmV3bGluZTogXCJcXG5cIiB8IFwiXFxyXFxuXCI7XG5cbiAgLyoqIE9yZGVyZWQgQUFBIHNlY3Rpb24gY29tbWVudHMgd2l0aGluIHRoZSBjYWxsYmFjayBib2R5LiAqL1xuICBzZWN0aW9uQ29tbWVudHM6IFNlY3Rpb25Db21tZW50W107XG5cbiAgLyoqIEZ1bGwgc291cmNlIHRleHQgZm9yIHRoZSBhbmFseXplZCBmaWxlLiAqL1xuICBzb3VyY2VUZXh0OiBzdHJpbmc7XG5cbiAgLyoqIFN0YXRlbWVudHMgcGFpcmVkIHdpdGggdGhlaXIgcmVzb2x2ZWQgQUFBIHBoYXNlcy4gKi9cbiAgc3RhdGVtZW50czogU3RhdGVtZW50UGhhc2VbXTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICBBYWFQaGFzZSxcbiAgTG9jYXRlZENvbW1lbnQsXG4gIExvY2F0ZWROb2RlLFxuICBTZWN0aW9uQ29tbWVudCxcbiAgU291cmNlQ29tbWVudCxcbiAgU3RhdGVtZW50UGhhc2UsXG4gIFRlc3RCbG9ja0FuYWx5c2lzLFxufTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBOYW1lZCBBQUEgcGhhc2VzIHJlY29nbml6ZWQgYnkgdGhlIGFuYWx5emVyLiAqL1xudHlwZSBBYWFQaGFzZSA9IFwiQWN0XCIgfCBcIkFycmFuZ2VcIiB8IFwiQXNzZXJ0XCI7XG5cbi8qKiBTb3VyY2UgY29tbWVudCB3aXRoIGd1YXJhbnRlZWQgbG9jYXRpb24gYW5kIHJhbmdlIG1ldGFkYXRhLiAqL1xudHlwZSBMb2NhdGVkQ29tbWVudCA9IFNvdXJjZUNvbW1lbnQgJiB7XG4gIC8qKiBOb3JtYWxpemVkIGxvY2F0aW9uIGZvciB0aGUgY29tbWVudC4gKi9cbiAgbG9jOiBOb25OdWxsYWJsZTxTb3VyY2VDb21tZW50W1wibG9jXCJdPjtcblxuICAvKiogSW5jbHVzaXZlIHNvdXJjZSByYW5nZSBmb3IgdGhlIGNvbW1lbnQuICovXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xufTtcblxuLyoqXG4gKiBFU1RyZWUgbm9kZSB3aXRoIHJlcXVpcmVkIGxvY2F0aW9uIGFuZCByYW5nZSBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUTm9kZSBOb2RlIHN1YnR5cGUgY2FycmllZCBieSB0aGUgd3JhcHBlci5cbiAqL1xudHlwZSBMb2NhdGVkTm9kZTxUTm9kZSBleHRlbmRzIEVTVHJlZS5Ob2RlID0gRVNUcmVlLk5vZGU+ID0gVE5vZGUgJiB7XG4gIC8qKiBOb3JtYWxpemVkIGxvY2F0aW9uIGZvciB0aGUgbm9kZS4gKi9cbiAgbG9jOiBOb25OdWxsYWJsZTxFU1RyZWUuTm9kZVtcImxvY1wiXT47XG5cbiAgLyoqIEluY2x1c2l2ZSBzb3VyY2UgcmFuZ2UgZm9yIHRoZSBub2RlLiAqL1xuICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcbn07XG5cbi8qKiBTZWN0aW9uIGNvbW1lbnQgYW5kIHRoZSBBQUEgcGhhc2VzIGl0IGRlY2xhcmVzLiAqL1xuaW50ZXJmYWNlIFNlY3Rpb25Db21tZW50IHtcbiAgLyoqIExvY2F0ZWQgbGluZSBjb21tZW50IHVzZWQgYXMgdGhlIHNlY3Rpb24gbWFya2VyLiAqL1xuICBjb21tZW50OiBMb2NhdGVkQ29tbWVudDtcblxuICAvKiogUGhhc2VzIGRlY2xhcmVkIGJ5IHRoZSBzZWN0aW9uIG1hcmtlci4gKi9cbiAgcGhhc2VzOiBBYWFQaGFzZVtdO1xufVxuXG4vKiogUmF3IHNvdXJjZSBjb21tZW50IG5vZGVzIHJldHVybmVkIGJ5IEVTTGludC4gKi9cbnR5cGUgU291cmNlQ29tbWVudCA9IFJldHVyblR5cGU8XG4gIFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdW1wiZ2V0QWxsQ29tbWVudHNcIl1cbj5bbnVtYmVyXTtcblxuLyoqIFN0YXRlbWVudCBhbm5vdGF0ZWQgd2l0aCBpdHMgYWN0aXZlIEFBQSBwaGFzZXMuICovXG5pbnRlcmZhY2UgU3RhdGVtZW50UGhhc2Uge1xuICAvKiogU3RhdGVtZW50IG5vZGUgdGhhdCBiZWxvbmdzIHRvIHRoZSBhbmFseXplZCB0ZXN0IGJvZHkuICovXG4gIG5vZGU6IExvY2F0ZWROb2RlPEVTVHJlZS5TdGF0ZW1lbnQ+O1xuXG4gIC8qKiBMYXN0IGFjdGl2ZSBwaGFzZSBiZWZvcmUgdGhpcyBzdGF0ZW1lbnQsIHdoZW4gYW55IGV4aXN0cy4gKi9cbiAgcGhhc2U6IEFhYVBoYXNlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBBbGwgYWN0aXZlIHBoYXNlcyBpbmhlcml0ZWQgZnJvbSB0aGUgbmVhcmVzdCBzZWN0aW9uIG1hcmtlci4gKi9cbiAgcGhhc2VzOiBBYWFQaGFzZVtdO1xufVxuXG4vKiogRGVyaXZlZCBtZXRhZGF0YSBmb3IgYSBzdXBwb3J0ZWQgdGVzdCBjYWxsYmFjay4gKi9cbmludGVyZmFjZSBUZXN0QmxvY2tBbmFseXNpcyB7XG4gIC8qKiBCbG9jayBib2R5IGJlbG9uZ2luZyB0byB0aGUgdGVzdCBjYWxsYmFjay4gKi9cbiAgYm9keTogTG9jYXRlZE5vZGU8RVNUcmVlLkJsb2NrU3RhdGVtZW50PjtcblxuICAvKiogTnVtYmVyIG9mIGxpbmVzIGluc2lkZSB0aGUgY2FsbGJhY2sgYm9keS4gKi9cbiAgYm9keUxpbmVDb3VudDogbnVtYmVyO1xuXG4gIC8qKiBPcmlnaW5hbCBjYWxsIGV4cHJlc3Npb24gZm9yIGBpdGAgb3IgYHRlc3RgLiAqL1xuICBjYWxsRXhwcmVzc2lvbjogTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPjtcblxuICAvKiogTmV3bGluZSBzdHlsZSB1c2VkIGJ5IHRoZSBzb3VyY2UgdGV4dC4gKi9cbiAgbmV3bGluZTogXCJcXG5cIiB8IFwiXFxyXFxuXCI7XG5cbiAgLyoqIE9yZGVyZWQgQUFBIHNlY3Rpb24gY29tbWVudHMgd2l0aGluIHRoZSBjYWxsYmFjayBib2R5LiAqL1xuICBzZWN0aW9uQ29tbWVudHM6IFNlY3Rpb25Db21tZW50W107XG5cbiAgLyoqIEZ1bGwgc291cmNlIHRleHQgZm9yIHRoZSBhbmFseXplZCBmaWxlLiAqL1xuICBzb3VyY2VUZXh0OiBzdHJpbmc7XG5cbiAgLyoqIFN0YXRlbWVudHMgcGFpcmVkIHdpdGggdGhlaXIgcmVzb2x2ZWQgQUFBIHBoYXNlcy4gKi9cbiAgc3RhdGVtZW50czogU3RhdGVtZW50UGhhc2VbXTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICBBYWFQaGFzZSxcbiAgTG9jYXRlZENvbW1lbnQsXG4gIExvY2F0ZWROb2RlLFxuICBTZWN0aW9uQ29tbWVudCxcbiAgU291cmNlQ29tbWVudCxcbiAgVGVzdEJsb2NrQW5hbHlzaXMsXG59O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/assert-actual-expected-names/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAsInC,qFAAqF;AACrF,QAAA,MAAM,6BAA6B,EAAE,IAAI,CAAC,UAwCzC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/assert-actual-expected-names/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA4KnC,qFAAqF;AACrF,QAAA,MAAM,6BAA6B,EAAE,IAAI,CAAC,UA0CzC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
- import { createRuleDocumentation } from "../../custom-rule-documentation.js";
2
- import { analyzeTestBlock, getAssertDeclaredIdentifiers, getAssertionIdentifiers, hasAssertion, usesPrefix, } from "../aaa/index.js";
1
+ import { analyzeTestBlock } from "../aaa/analyzer.analysis.js";
2
+ import { getAssertDeclaredIdentifiers, getAssertionIdentifiers, hasAssertion, usesPrefix, } from "../aaa/analyzer.assertions.helpers.js";
3
3
  /**
4
4
  * Builds the de-duplication key for a reported assertion identifier.
5
5
  * @param prefix Prefix used for the assertion identifier.
@@ -75,6 +75,30 @@ const reportAssertionPrefixes = (input) => {
75
75
  reportedNames,
76
76
  });
77
77
  };
78
+ /**
79
+ * Collects declaration identifiers from Act and Assert phases.
80
+ * @param analysis Parsed AAA test-block analysis.
81
+ * @returns Declared identifiers available for assertion naming checks.
82
+ * @example
83
+ * ```typescript
84
+ * const identifiers = getComparisonDeclaredIdentifiers(analysis);
85
+ * ```
86
+ */
87
+ const getComparisonDeclaredIdentifiers = (analysis) => {
88
+ const declaredIdentifiers = new Map(getAssertDeclaredIdentifiers(analysis));
89
+ for (const statement of analysis.statements) {
90
+ if (!statement.phases.includes("Act") ||
91
+ statement.node.type !== "VariableDeclaration") {
92
+ continue;
93
+ }
94
+ for (const declaration of statement.node.declarations) {
95
+ if (declaration.id.type === "Identifier") {
96
+ declaredIdentifiers.set(declaration.id.name, declaration.id);
97
+ }
98
+ }
99
+ }
100
+ return declaredIdentifiers;
101
+ };
78
102
  /** Enforces actual/expected-style prefixes for assert-phase comparison variables. */
79
103
  const assertActualExpectedNamesRule = {
80
104
  create(context) {
@@ -84,7 +108,7 @@ const assertActualExpectedNamesRule = {
84
108
  if (analysis === void 0) {
85
109
  return;
86
110
  }
87
- const declaredIdentifiers = getAssertDeclaredIdentifiers(analysis);
111
+ const declaredIdentifiers = getComparisonDeclaredIdentifiers(analysis);
88
112
  const reportedNames = new Set();
89
113
  for (const statement of analysis.statements) {
90
114
  if (statement.phases.includes("Assert") &&
@@ -101,7 +125,11 @@ const assertActualExpectedNamesRule = {
101
125
  };
102
126
  },
103
127
  meta: {
104
- docs: createRuleDocumentation("assert-actual-expected-names", "Require Assert-phase comparison variables to use actual*/expected* prefixes."),
128
+ docs: {
129
+ description: "Require Assert-phase comparison variables to use actual*/expected* prefixes.",
130
+ recommended: false,
131
+ url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/assert-actual-expected-names.md",
132
+ },
105
133
  messages: {
106
134
  missingPrefix: "Rename '{{name}}' to use the '{{prefix}}' prefix when comparing values inside // Assert.",
107
135
  },
@@ -110,4 +138,4 @@ const assertActualExpectedNamesRule = {
110
138
  },
111
139
  };
112
140
  export { assertActualExpectedNamesRule };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxRQUFRLENBQUM7QUFzQ2hCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUF1QixFQUFFLElBQVksRUFBVSxFQUFFLENBQzNFLEdBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO0FBRXRCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLHlCQUF5QixHQUFHLENBQ2hDLEtBQXFDLEVBQy9CLEVBQUU7SUFDUixNQUFNLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRTVFLE1BQU0sa0JBQWtCLEdBQ3RCLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUN6QyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxJQUFJLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JELE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU87SUFDVCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2IsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUN0QixTQUFTLEVBQUUsZUFBZTtRQUMxQixJQUFJLEVBQUUsa0JBQWtCO0tBQ3pCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFtQyxFQUFRLEVBQUU7SUFDNUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQzdFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFcEUseUJBQXlCLENBQUM7UUFDeEIsT0FBTztRQUNQLG1CQUFtQjtRQUNuQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLGFBQWE7S0FDZCxDQUFDLENBQUM7SUFDSCx5QkFBeUIsQ0FBQztRQUN4QixPQUFPO1FBQ1AsbUJBQW1CO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsTUFBTSxFQUFFLFVBQVU7UUFDbEIsYUFBYTtLQUNkLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLHFGQUFxRjtBQUNyRixNQUFNLDZCQUE2QixHQUFvQjtJQUNyRCxNQUFNLENBQUMsT0FBeUI7UUFDOUIsT0FBTztZQUNMLGNBQWMsQ0FBQyxJQUFJO2dCQUNqQixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2pELElBQUksUUFBUSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxNQUFNLG1CQUFtQixHQUFHLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO2dCQUV4QyxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDNUMsSUFDRSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7d0JBQ25DLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQzVCLENBQUM7d0JBQ0QsdUJBQXVCLENBQUM7NEJBQ3RCLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSTs0QkFDN0IsT0FBTzs0QkFDUCxtQkFBbUI7NEJBQ25CLGFBQWE7eUJBQ2QsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7U0FDMEIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLHVCQUF1QixDQUMzQiw4QkFBOEIsRUFDOUIsOEVBQThFLENBQy9FO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsYUFBYSxFQUNYLDBGQUEwRjtTQUM3RjtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB7IGNyZWF0ZVJ1bGVEb2N1bWVudGF0aW9uIH0gZnJvbSBcIi4uLy4uL2N1c3RvbS1ydWxlLWRvY3VtZW50YXRpb25cIjtcbmltcG9ydCB7XG4gIGFuYWx5emVUZXN0QmxvY2ssXG4gIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMsXG4gIGdldEFzc2VydGlvbklkZW50aWZpZXJzLFxuICBoYXNBc3NlcnRpb24sXG4gIHVzZXNQcmVmaXgsXG59IGZyb20gXCIuLi9hYWFcIjtcblxuLyoqIFN1cHBvcnRlZCBhc3NlcnRpb24gdmFyaWFibGUgcHJlZml4ZXMgZW5mb3JjZWQgYnkgdGhpcyBydWxlLiAqL1xudHlwZSBBc3NlcnRpb25QcmVmaXggPSBcImFjdHVhbFwiIHwgXCJleHBlY3RlZFwiO1xuXG4vKiogQ29tcG9zaXRlIGlucHV0IGZvciByZXBvcnRpbmcgb25lIG1pc3NpbmcgYXNzZXJ0aW9uIHByZWZpeC4gKi9cbmludGVyZmFjZSBSZXBvcnRBc3NlcnRpb25JZGVudGlmaWVySW5wdXQge1xuICAvKiogQWN0aXZlIEVTTGludCBydWxlIGNvbnRleHQuICovXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQ7XG5cbiAgLyoqIERlY2xhcmVkIGlkZW50aWZpZXJzIGNvbGxlY3RlZCBmcm9tIHRoZSBhc3NlcnQgcGhhc2UuICovXG4gIGRlY2xhcmVkSWRlbnRpZmllcnM6IFJldHVyblR5cGU8dHlwZW9mIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnM+O1xuXG4gIC8qKiBJZGVudGlmaWVyIG5hbWUgZXh0cmFjdGVkIGZyb20gdGhlIGFzc2VydGlvbi4gKi9cbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBSZXF1aXJlZCBwcmVmaXggZm9yIHRoZSBpZGVudGlmaWVyLiAqL1xuICBwcmVmaXg6IEFzc2VydGlvblByZWZpeDtcblxuICAvKiogU2V0IG9mIGFscmVhZHkgcmVwb3J0ZWQgaWRlbnRpZmllciBrZXlzLiAqL1xuICByZXBvcnRlZE5hbWVzOiBTZXQ8c3RyaW5nPjtcbn1cblxuLyoqIENvbXBvc2l0ZSBpbnB1dCBmb3IgcmVwb3J0aW5nIG1pc3NpbmcgcHJlZml4ZXMgaW4gb25lIGFzc2VydGlvbi4gKi9cbmludGVyZmFjZSBSZXBvcnRBc3NlcnRpb25QcmVmaXhlc0lucHV0IHtcbiAgLyoqIEFzc2VydGlvbiBub2RlIHdob3NlIGlkZW50aWZpZXJzIHNob3VsZCBiZSBpbnNwZWN0ZWQuICovXG4gIGFzc2VydGlvbk5vZGU6IEVTVHJlZS5TdGF0ZW1lbnQ7XG5cbiAgLyoqIEFjdGl2ZSBFU0xpbnQgcnVsZSBjb250ZXh0LiAqL1xuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0O1xuXG4gIC8qKiBEZWNsYXJlZCBpZGVudGlmaWVycyBjb2xsZWN0ZWQgZnJvbSB0aGUgYXNzZXJ0IHBoYXNlLiAqL1xuICBkZWNsYXJlZElkZW50aWZpZXJzOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzPjtcblxuICAvKiogU2V0IG9mIGFscmVhZHkgcmVwb3J0ZWQgaWRlbnRpZmllciBrZXlzLiAqL1xuICByZXBvcnRlZE5hbWVzOiBTZXQ8c3RyaW5nPjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGRlLWR1cGxpY2F0aW9uIGtleSBmb3IgYSByZXBvcnRlZCBhc3NlcnRpb24gaWRlbnRpZmllci5cbiAqIEBwYXJhbSBwcmVmaXggUHJlZml4IHVzZWQgZm9yIHRoZSBhc3NlcnRpb24gaWRlbnRpZmllci5cbiAqIEBwYXJhbSBuYW1lIElkZW50aWZpZXIgbmFtZSByZXBvcnRlZCBieSB0aGUgcnVsZS5cbiAqIEByZXR1cm5zIFN0YWJsZSBkZS1kdXBsaWNhdGlvbiBrZXkgZm9yIHRoZSBpZGVudGlmaWVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGtleSA9IGdldFJlcG9ydGVkTmFtZUtleShcImFjdHVhbFwiLCBcInZhbHVlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFJlcG9ydGVkTmFtZUtleSA9IChwcmVmaXg6IEFzc2VydGlvblByZWZpeCwgbmFtZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIGAke3ByZWZpeH06JHtuYW1lfWA7XG5cbi8qKlxuICogUmVwb3J0cyBhIG1pc3NpbmcgYXNzZXJ0aW9uIHByZWZpeCB3aGVuIHRoZSBkZWNsYXJlZCBpZGVudGlmaWVyIGlzIGVsaWdpYmxlLlxuICogQHBhcmFtIGlucHV0IENvbXBvc2l0ZSByZXBvcnRpbmcgaW5wdXQgZm9yIG9uZSBpZGVudGlmaWVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydEFzc2VydGlvbklkZW50aWZpZXIoe1xuICogICBjb250ZXh0OiB7fSBhcyBSdWxlLlJ1bGVDb250ZXh0LFxuICogICBkZWNsYXJlZElkZW50aWZpZXJzOiBuZXcgTWFwKCksXG4gKiAgIG5hbWU6IFwidmFsdWVcIixcbiAqICAgcHJlZml4OiBcImFjdHVhbFwiLFxuICogICByZXBvcnRlZE5hbWVzOiBuZXcgU2V0KCksXG4gKiB9KTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRBc3NlcnRpb25JZGVudGlmaWVyID0gKFxuICBpbnB1dDogUmVwb3J0QXNzZXJ0aW9uSWRlbnRpZmllcklucHV0LFxuKTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgY29udGV4dCwgZGVjbGFyZWRJZGVudGlmaWVycywgbmFtZSwgcHJlZml4LCByZXBvcnRlZE5hbWVzIH0gPSBpbnB1dDtcblxuICBjb25zdCBkZWNsYXJlZElkZW50aWZpZXIgPVxuICAgIG5hbWUgPT09IHZvaWQgMCB8fCB1c2VzUHJlZml4KG5hbWUsIHByZWZpeClcbiAgICAgID8gdm9pZCAwXG4gICAgICA6IGRlY2xhcmVkSWRlbnRpZmllcnMuZ2V0KG5hbWUpO1xuICBpZiAoZGVjbGFyZWRJZGVudGlmaWVyID09PSB2b2lkIDAgfHwgbmFtZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVwb3J0ZWROYW1lS2V5ID0gZ2V0UmVwb3J0ZWROYW1lS2V5KHByZWZpeCwgbmFtZSk7XG4gIGlmIChyZXBvcnRlZE5hbWVzLmhhcyhyZXBvcnRlZE5hbWVLZXkpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwb3J0ZWROYW1lcy5hZGQocmVwb3J0ZWROYW1lS2V5KTtcbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIGRhdGE6IHsgbmFtZSwgcHJlZml4IH0sXG4gICAgbWVzc2FnZUlkOiBcIm1pc3NpbmdQcmVmaXhcIixcbiAgICBub2RlOiBkZWNsYXJlZElkZW50aWZpZXIsXG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXBvcnRzIG1pc3NpbmcgcHJlZml4ZXMgZm9yIHRoZSBhY3R1YWwgYW5kIGV4cGVjdGVkIGlkZW50aWZpZXJzIGluIG9uZSBhc3NlcnRpb24uXG4gKiBAcGFyYW0gaW5wdXQgQ29tcG9zaXRlIHJlcG9ydGluZyBpbnB1dCBmb3Igb25lIGFzc2VydGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRBc3NlcnRpb25QcmVmaXhlcyh7XG4gKiAgIGFzc2VydGlvbk5vZGU6IHt9IGFzIEVTVHJlZS5TdGF0ZW1lbnQsXG4gKiAgIGNvbnRleHQ6IHt9IGFzIFJ1bGUuUnVsZUNvbnRleHQsXG4gKiAgIGRlY2xhcmVkSWRlbnRpZmllcnM6IG5ldyBNYXAoKSxcbiAqICAgcmVwb3J0ZWROYW1lczogbmV3IFNldCgpLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0QXNzZXJ0aW9uUHJlZml4ZXMgPSAoaW5wdXQ6IFJlcG9ydEFzc2VydGlvblByZWZpeGVzSW5wdXQpOiB2b2lkID0+IHtcbiAgY29uc3QgeyBhc3NlcnRpb25Ob2RlLCBjb250ZXh0LCBkZWNsYXJlZElkZW50aWZpZXJzLCByZXBvcnRlZE5hbWVzIH0gPSBpbnB1dDtcbiAgY29uc3QgeyBhY3R1YWwsIGV4cGVjdGVkIH0gPSBnZXRBc3NlcnRpb25JZGVudGlmaWVycyhhc3NlcnRpb25Ob2RlKTtcblxuICByZXBvcnRBc3NlcnRpb25JZGVudGlmaWVyKHtcbiAgICBjb250ZXh0LFxuICAgIGRlY2xhcmVkSWRlbnRpZmllcnMsXG4gICAgbmFtZTogYWN0dWFsLFxuICAgIHByZWZpeDogXCJhY3R1YWxcIixcbiAgICByZXBvcnRlZE5hbWVzLFxuICB9KTtcbiAgcmVwb3J0QXNzZXJ0aW9uSWRlbnRpZmllcih7XG4gICAgY29udGV4dCxcbiAgICBkZWNsYXJlZElkZW50aWZpZXJzLFxuICAgIG5hbWU6IGV4cGVjdGVkLFxuICAgIHByZWZpeDogXCJleHBlY3RlZFwiLFxuICAgIHJlcG9ydGVkTmFtZXMsXG4gIH0pO1xufTtcblxuLyoqIEVuZm9yY2VzIGFjdHVhbC9leHBlY3RlZC1zdHlsZSBwcmVmaXhlcyBmb3IgYXNzZXJ0LXBoYXNlIGNvbXBhcmlzb24gdmFyaWFibGVzLiAqL1xuY29uc3QgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYW5hbHlzaXMgPSBhbmFseXplVGVzdEJsb2NrKGNvbnRleHQsIG5vZGUpO1xuICAgICAgICBpZiAoYW5hbHlzaXMgPT09IHZvaWQgMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllcnMgPSBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzKGFuYWx5c2lzKTtcbiAgICAgICAgY29uc3QgcmVwb3J0ZWROYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIGFuYWx5c2lzLnN0YXRlbWVudHMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQXNzZXJ0XCIpICYmXG4gICAgICAgICAgICBoYXNBc3NlcnRpb24oc3RhdGVtZW50Lm5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXBvcnRBc3NlcnRpb25QcmVmaXhlcyh7XG4gICAgICAgICAgICAgIGFzc2VydGlvbk5vZGU6IHN0YXRlbWVudC5ub2RlLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBkZWNsYXJlZElkZW50aWZpZXJzLFxuICAgICAgICAgICAgICByZXBvcnRlZE5hbWVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFJ1bGUuUnVsZUxpc3RlbmVyO1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczogY3JlYXRlUnVsZURvY3VtZW50YXRpb24oXG4gICAgICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIixcbiAgICAgIFwiUmVxdWlyZSBBc3NlcnQtcGhhc2UgY29tcGFyaXNvbiB2YXJpYWJsZXMgdG8gdXNlIGFjdHVhbCovZXhwZWN0ZWQqIHByZWZpeGVzLlwiLFxuICAgICksXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIG1pc3NpbmdQcmVmaXg6XG4gICAgICAgIFwiUmVuYW1lICd7e25hbWV9fScgdG8gdXNlIHRoZSAne3twcmVmaXh9fScgcHJlZml4IHdoZW4gY29tcGFyaW5nIHZhbHVlcyBpbnNpZGUgLy8gQXNzZXJ0LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInN1Z2dlc3Rpb25cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlIH07XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLFVBQVUsR0FDWCxNQUFNLG9DQUFvQyxDQUFDO0FBc0M1Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBdUIsRUFBRSxJQUFZLEVBQVUsRUFBRSxDQUMzRSxHQUFHLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUV0Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxDQUNoQyxLQUFxQyxFQUMvQixFQUFFO0lBQ1IsTUFBTSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUU1RSxNQUFNLGtCQUFrQixHQUN0QixJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDekMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNSLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxrQkFBa0IsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPO0lB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QzBCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCw4RUFBOEU7WUFDaEYsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLCtGQUErRjtTQUNyRztRQUNELFFBQVEsRUFBRTtZQUNSLGFBQWEsRUFDWCwwRkFBMEY7U0FDN0Y7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO0tBQ25CO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgeyBhbmFseXplVGVzdEJsb2NrIH0gZnJvbSBcIi4uL2FhYS9hbmFseXplci5hbmFseXNpc1wiO1xuaW1wb3J0IHtcbiAgZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyxcbiAgZ2V0QXNzZXJ0aW9uSWRlbnRpZmllcnMsXG4gIGhhc0Fzc2VydGlvbixcbiAgdXNlc1ByZWZpeCxcbn0gZnJvbSBcIi4uL2FhYS9hbmFseXplci5hc3NlcnRpb25zLmhlbHBlcnNcIjtcblxuLyoqIFN1cHBvcnRlZCBhc3NlcnRpb24gdmFyaWFibGUgcHJlZml4ZXMgZW5mb3JjZWQgYnkgdGhpcyBydWxlLiAqL1xudHlwZSBBc3NlcnRpb25QcmVmaXggPSBcImFjdHVhbFwiIHwgXCJleHBlY3RlZFwiO1xuXG4vKiogQ29tcG9zaXRlIGlucHV0IGZvciByZXBvcnRpbmcgb25lIG1pc3NpbmcgYXNzZXJ0aW9uIHByZWZpeC4gKi9cbmludGVyZmFjZSBSZXBvcnRBc3NlcnRpb25JZGVudGlmaWVySW5wdXQge1xuICAvKiogQWN0aXZlIEVTTGludCBydWxlIGNvbnRleHQuICovXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQ7XG5cbiAgLyoqIERlY2xhcmVkIGlkZW50aWZpZXJzIGNvbGxlY3RlZCBmcm9tIEFjdC9Bc3NlcnQgcGhhc2VzLiAqL1xuICBkZWNsYXJlZElkZW50aWZpZXJzOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzPjtcblxuICAvKiogSWRlbnRpZmllciBuYW1lIGV4dHJhY3RlZCBmcm9tIHRoZSBhc3NlcnRpb24uICovXG4gIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogUmVxdWlyZWQgcHJlZml4IGZvciB0aGUgaWRlbnRpZmllci4gKi9cbiAgcHJlZml4OiBBc3NlcnRpb25QcmVmaXg7XG5cbiAgLyoqIFNldCBvZiBhbHJlYWR5IHJlcG9ydGVkIGlkZW50aWZpZXIga2V5cy4gKi9cbiAgcmVwb3J0ZWROYW1lczogU2V0PHN0cmluZz47XG59XG5cbi8qKiBDb21wb3NpdGUgaW5wdXQgZm9yIHJlcG9ydGluZyBtaXNzaW5nIHByZWZpeGVzIGluIG9uZSBhc3NlcnRpb24uICovXG5pbnRlcmZhY2UgUmVwb3J0QXNzZXJ0aW9uUHJlZml4ZXNJbnB1dCB7XG4gIC8qKiBBc3NlcnRpb24gbm9kZSB3aG9zZSBpZGVudGlmaWVycyBzaG91bGQgYmUgaW5zcGVjdGVkLiAqL1xuICBhc3NlcnRpb25Ob2RlOiBFU1RyZWUuU3RhdGVtZW50O1xuXG4gIC8qKiBBY3RpdmUgRVNMaW50IHJ1bGUgY29udGV4dC4gKi9cbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKiogRGVjbGFyZWQgaWRlbnRpZmllcnMgY29sbGVjdGVkIGZyb20gQWN0L0Fzc2VydCBwaGFzZXMuICovXG4gIGRlY2xhcmVkSWRlbnRpZmllcnM6IFJldHVyblR5cGU8dHlwZW9mIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnM+O1xuXG4gIC8qKiBTZXQgb2YgYWxyZWFkeSByZXBvcnRlZCBpZGVudGlmaWVyIGtleXMuICovXG4gIHJlcG9ydGVkTmFtZXM6IFNldDxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgZGUtZHVwbGljYXRpb24ga2V5IGZvciBhIHJlcG9ydGVkIGFzc2VydGlvbiBpZGVudGlmaWVyLlxuICogQHBhcmFtIHByZWZpeCBQcmVmaXggdXNlZCBmb3IgdGhlIGFzc2VydGlvbiBpZGVudGlmaWVyLlxuICogQHBhcmFtIG5hbWUgSWRlbnRpZmllciBuYW1lIHJlcG9ydGVkIGJ5IHRoZSBydWxlLlxuICogQHJldHVybnMgU3RhYmxlIGRlLWR1cGxpY2F0aW9uIGtleSBmb3IgdGhlIGlkZW50aWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qga2V5ID0gZ2V0UmVwb3J0ZWROYW1lS2V5KFwiYWN0dWFsXCIsIFwidmFsdWVcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UmVwb3J0ZWROYW1lS2V5ID0gKHByZWZpeDogQXNzZXJ0aW9uUHJlZml4LCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgYCR7cHJlZml4fToke25hbWV9YDtcblxuLyoqXG4gKiBSZXBvcnRzIGEgbWlzc2luZyBhc3NlcnRpb24gcHJlZml4IHdoZW4gdGhlIGRlY2xhcmVkIGlkZW50aWZpZXIgaXMgZWxpZ2libGUuXG4gKiBAcGFyYW0gaW5wdXQgQ29tcG9zaXRlIHJlcG9ydGluZyBpbnB1dCBmb3Igb25lIGlkZW50aWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0QXNzZXJ0aW9uSWRlbnRpZmllcih7XG4gKiAgIGNvbnRleHQ6IHt9IGFzIFJ1bGUuUnVsZUNvbnRleHQsXG4gKiAgIGRlY2xhcmVkSWRlbnRpZmllcnM6IG5ldyBNYXAoKSxcbiAqICAgbmFtZTogXCJ2YWx1ZVwiLFxuICogICBwcmVmaXg6IFwiYWN0dWFsXCIsXG4gKiAgIHJlcG9ydGVkTmFtZXM6IG5ldyBTZXQoKSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydEFzc2VydGlvbklkZW50aWZpZXIgPSAoXG4gIGlucHV0OiBSZXBvcnRBc3NlcnRpb25JZGVudGlmaWVySW5wdXQsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgeyBjb250ZXh0LCBkZWNsYXJlZElkZW50aWZpZXJzLCBuYW1lLCBwcmVmaXgsIHJlcG9ydGVkTmFtZXMgfSA9IGlucHV0O1xuXG4gIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllciA9XG4gICAgbmFtZSA9PT0gdm9pZCAwIHx8IHVzZXNQcmVmaXgobmFtZSwgcHJlZml4KVxuICAgICAgPyB2b2lkIDBcbiAgICAgIDogZGVjbGFyZWRJZGVudGlmaWVycy5nZXQobmFtZSk7XG4gIGlmIChkZWNsYXJlZElkZW50aWZpZXIgPT09IHZvaWQgMCB8fCBuYW1lID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZXBvcnRlZE5hbWVLZXkgPSBnZXRSZXBvcnRlZE5hbWVLZXkocHJlZml4LCBuYW1lKTtcbiAgaWYgKHJlcG9ydGVkTmFtZXMuaGFzKHJlcG9ydGVkTmFtZUtleSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICByZXBvcnRlZE5hbWVzLmFkZChyZXBvcnRlZE5hbWVLZXkpO1xuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgZGF0YTogeyBuYW1lLCBwcmVmaXggfSxcbiAgICBtZXNzYWdlSWQ6IFwibWlzc2luZ1ByZWZpeFwiLFxuICAgIG5vZGU6IGRlY2xhcmVkSWRlbnRpZmllcixcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlcG9ydHMgbWlzc2luZyBwcmVmaXhlcyBmb3IgdGhlIGFjdHVhbCBhbmQgZXhwZWN0ZWQgaWRlbnRpZmllcnMgaW4gb25lIGFzc2VydGlvbi5cbiAqIEBwYXJhbSBpbnB1dCBDb21wb3NpdGUgcmVwb3J0aW5nIGlucHV0IGZvciBvbmUgYXNzZXJ0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydEFzc2VydGlvblByZWZpeGVzKHtcbiAqICAgYXNzZXJ0aW9uTm9kZToge30gYXMgRVNUcmVlLlN0YXRlbWVudCxcbiAqICAgY29udGV4dDoge30gYXMgUnVsZS5SdWxlQ29udGV4dCxcbiAqICAgZGVjbGFyZWRJZGVudGlmaWVyczogbmV3IE1hcCgpLFxuICogICByZXBvcnRlZE5hbWVzOiBuZXcgU2V0KCksXG4gKiB9KTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRBc3NlcnRpb25QcmVmaXhlcyA9IChpbnB1dDogUmVwb3J0QXNzZXJ0aW9uUHJlZml4ZXNJbnB1dCk6IHZvaWQgPT4ge1xuICBjb25zdCB7IGFzc2VydGlvbk5vZGUsIGNvbnRleHQsIGRlY2xhcmVkSWRlbnRpZmllcnMsIHJlcG9ydGVkTmFtZXMgfSA9IGlucHV0O1xuICBjb25zdCB7IGFjdHVhbCwgZXhwZWN0ZWQgfSA9IGdldEFzc2VydGlvbklkZW50aWZpZXJzKGFzc2VydGlvbk5vZGUpO1xuXG4gIHJlcG9ydEFzc2VydGlvbklkZW50aWZpZXIoe1xuICAgIGNvbnRleHQsXG4gICAgZGVjbGFyZWRJZGVudGlmaWVycyxcbiAgICBuYW1lOiBhY3R1YWwsXG4gICAgcHJlZml4OiBcImFjdHVhbFwiLFxuICAgIHJlcG9ydGVkTmFtZXMsXG4gIH0pO1xuICByZXBvcnRBc3NlcnRpb25JZGVudGlmaWVyKHtcbiAgICBjb250ZXh0LFxuICAgIGRlY2xhcmVkSWRlbnRpZmllcnMsXG4gICAgbmFtZTogZXhwZWN0ZWQsXG4gICAgcHJlZml4OiBcImV4cGVjdGVkXCIsXG4gICAgcmVwb3J0ZWROYW1lcyxcbiAgfSk7XG59O1xuXG4vKipcbiAqIENvbGxlY3RzIGRlY2xhcmF0aW9uIGlkZW50aWZpZXJzIGZyb20gQWN0IGFuZCBBc3NlcnQgcGhhc2VzLlxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCBBQUEgdGVzdC1ibG9jayBhbmFseXNpcy5cbiAqIEByZXR1cm5zIERlY2xhcmVkIGlkZW50aWZpZXJzIGF2YWlsYWJsZSBmb3IgYXNzZXJ0aW9uIG5hbWluZyBjaGVja3MuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaWRlbnRpZmllcnMgPSBnZXRDb21wYXJpc29uRGVjbGFyZWRJZGVudGlmaWVycyhhbmFseXNpcyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0Q29tcGFyaXNvbkRlY2xhcmVkSWRlbnRpZmllcnMgPSAoXG4gIGFuYWx5c2lzOiBOb25OdWxsYWJsZTxSZXR1cm5UeXBlPHR5cGVvZiBhbmFseXplVGVzdEJsb2NrPj4sXG4pOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzPiA9PiB7XG4gIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllcnMgPSBuZXcgTWFwKGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMoYW5hbHlzaXMpKTtcblxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XG4gICAgaWYgKFxuICAgICAgIXN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBY3RcIikgfHxcbiAgICAgIHN0YXRlbWVudC5ub2RlLnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHN0YXRlbWVudC5ub2RlLmRlY2xhcmF0aW9ucykge1xuICAgICAgaWYgKGRlY2xhcmF0aW9uLmlkLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XG4gICAgICAgIGRlY2xhcmVkSWRlbnRpZmllcnMuc2V0KFxuICAgICAgICAgIGRlY2xhcmF0aW9uLmlkLm5hbWUsXG4gICAgICAgICAgZGVjbGFyYXRpb24uaWQgYXMgdW5rbm93biBhcyBSZXR1cm5UeXBlPFxuICAgICAgICAgICAgdHlwZW9mIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnNcbiAgICAgICAgICA+IGV4dGVuZHMgTWFwPHN0cmluZywgaW5mZXIgVD5cbiAgICAgICAgICAgID8gVFxuICAgICAgICAgICAgOiBuZXZlcixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVjbGFyZWRJZGVudGlmaWVycztcbn07XG5cbi8qKiBFbmZvcmNlcyBhY3R1YWwvZXhwZWN0ZWQtc3R5bGUgcHJlZml4ZXMgZm9yIGFzc2VydC1waGFzZSBjb21wYXJpc29uIHZhcmlhYmxlcy4gKi9cbmNvbnN0IGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFuYWx5c2lzID0gYW5hbHl6ZVRlc3RCbG9jayhjb250ZXh0LCBub2RlKTtcbiAgICAgICAgaWYgKGFuYWx5c2lzID09PSB2b2lkIDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNsYXJlZElkZW50aWZpZXJzID0gZ2V0Q29tcGFyaXNvbkRlY2xhcmVkSWRlbnRpZmllcnMoYW5hbHlzaXMpO1xuICAgICAgICBjb25zdCByZXBvcnRlZE5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgYW5hbHlzaXMuc3RhdGVtZW50cykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBc3NlcnRcIikgJiZcbiAgICAgICAgICAgIGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQubm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJlcG9ydEFzc2VydGlvblByZWZpeGVzKHtcbiAgICAgICAgICAgICAgYXNzZXJ0aW9uTm9kZTogc3RhdGVtZW50Lm5vZGUsXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIGRlY2xhcmVkSWRlbnRpZmllcnMsXG4gICAgICAgICAgICAgIHJlcG9ydGVkTmFtZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgUnVsZS5SdWxlTGlzdGVuZXI7XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZXF1aXJlIEFzc2VydC1waGFzZSBjb21wYXJpc29uIHZhcmlhYmxlcyB0byB1c2UgYWN0dWFsKi9leHBlY3RlZCogcHJlZml4ZXMuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9hc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzLm1kXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbWlzc2luZ1ByZWZpeDpcbiAgICAgICAgXCJSZW5hbWUgJ3t7bmFtZX19JyB0byB1c2UgdGhlICd7e3ByZWZpeH19JyBwcmVmaXggd2hlbiBjb21wYXJpbmcgdmFsdWVzIGluc2lkZSAvLyBBc3NlcnQuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUgfTtcbiJdfQ==
@@ -1,2 +1,3 @@
1
- export { enforceAaaPhasePurityRule } from "./rule.js";
1
+ export { getAssertReferencedIdentifiers, isActResultAsserted, } from "./phase-purity-identifiers.js";
2
+ export { reportPhasePurityViolations } from "./phase-purity-reporting.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,2 +1,3 @@
1
- export { enforceAaaPhasePurityRule } from "./rule.js";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvZW5mb3JjZS1hYWEtcGhhc2UtcHVyaXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGVuZm9yY2VBYWFQaGFzZVB1cml0eVJ1bGUgfSBmcm9tIFwiLi9ydWxlXCI7XG4iXX0=
1
+ export { getAssertReferencedIdentifiers, isActResultAsserted, } from "./phase-purity-identifiers.js";
2
+ export { reportPhasePurityViolations } from "./phase-purity-reporting.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvZW5mb3JjZS1hYWEtcGhhc2UtcHVyaXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3BCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBnZXRBc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMsXG4gIGlzQWN0UmVzdWx0QXNzZXJ0ZWQsXG59IGZyb20gXCIuL3BoYXNlLXB1cml0eS1pZGVudGlmaWVyc1wiO1xuZXhwb3J0IHsgcmVwb3J0UGhhc2VQdXJpdHlWaW9sYXRpb25zIH0gZnJvbSBcIi4vcGhhc2UtcHVyaXR5LXJlcG9ydGluZ1wiO1xuIl19
@@ -1,5 +1,5 @@
1
1
  import type * as ESTree from "estree";
2
- import type { TestBlockAnalysis } from "../aaa/index.js";
2
+ import type { TestBlockAnalysis } from "../aaa/types.js";
3
3
  /**
4
4
  * Collects all identifiers referenced from the Assert phase.
5
5
  * @param analysis Parsed test-block analysis.
@@ -1 +1 @@
1
- {"version":3,"file":"phase-purity-identifiers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAsHhD;;;;;;;;GAQG;AACH,iBAAS,8BAA8B,CACrC,QAAQ,EAAE,iBAAiB,GAC1B,GAAG,CAAC,MAAM,CAAC,CAQb;AAED;;;;;;;;;GASG;AACH,iBAAS,mBAAmB,CAC1B,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,EACxC,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,OAAO,CAQT;AAoBD,OAAO,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"phase-purity-identifiers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAsHtD;;;;;;;;GAQG;AACH,iBAAS,8BAA8B,CACrC,QAAQ,EAAE,iBAAiB,GAC1B,GAAG,CAAC,MAAM,CAAC,CAQb;AAED;;;;;;;;;GASG;AACH,iBAAS,mBAAmB,CAC1B,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,EACxC,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,OAAO,CAQT;AAoBD,OAAO,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,CAAC"}
@@ -135,4 +135,4 @@ function isNode(value) {
135
135
  typeof value.type === "string");
136
136
  }
137
137
  export { getAssertReferencedIdentifiers, isActResultAsserted };
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2UtcHVyaXR5LWlkZW50aWZpZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2VuZm9yY2UtYWFhLXBoYXNlLXB1cml0eS9waGFzZS1wdXJpdHktaWRlbnRpZmllcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRbEU7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlDQUFpQyxDQUN4QyxTQUFrRCxFQUNsRCxXQUF3QjtJQUV4QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztRQUNsRCw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzFELE9BQU87SUFDVCxDQUFDO0lBRUQsS0FBSyxNQUFNLFdBQVcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdELDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDRCQUE0QixDQUNuQyxJQUFpQixFQUNqQixXQUF3QjtJQUV4QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDL0IsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsT0FBTztJQUNULENBQUM7SUFFRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hELHNCQUFzQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHNCQUFzQixDQUM3QixHQUFXLEVBQ1gsS0FBYyxFQUNkLFdBQXdCO0lBRXhCLElBQUksR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JCLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNqQiw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsNEJBQTRCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHlCQUF5QixDQUFDLFNBQTJCO0lBQzVELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFdEMsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFLENBQUM7UUFDN0MsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUssTUFBTSxXQUFXLElBQUksU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2pELHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsOEJBQThCLENBQ3JDLFFBQTJCO0lBRTNCLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFdEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUMsaUNBQWlDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsMkJBQXdDLEVBQ3hDLFNBQTJCO0lBRTNCLEtBQUssTUFBTSxVQUFVLElBQUkseUJBQXlCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxJQUFJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2hELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxNQUFNLElBQUksS0FBSztRQUNmLE9BQVEsS0FBdUIsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUNsRCxDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBUZXN0QmxvY2tBbmFseXNpcyB9IGZyb20gXCIuLi9hYWFcIjtcclxuXHJcbmltcG9ydCB7IGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMgfSBmcm9tIFwiLi9wYXR0ZXJuLWlkZW50aWZpZXJzXCI7XHJcblxyXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXHJcbmludGVyZmFjZSBOb2RlQ2FuZGlkYXRlIHtcclxuICAvKiogT3B0aW9uYWwgRVNUcmVlIG5vZGUgdHlwZSBtYXJrZXIuICovXHJcbiAgdHlwZT86IHVua25vd247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0cyByZWZlcmVuY2VkIGlkZW50aWZpZXJzIGZyb20gb25lIEFzc2VydC1waGFzZSBzdGF0ZW1lbnQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RBc3NlcnRTdGF0ZW1lbnRJZGVudGlmaWVycyh7IHR5cGU6IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiIH0gYXMgbmV2ZXIsIG5ldyBTZXQ8c3RyaW5nPigpKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjb2xsZWN0QXNzZXJ0U3RhdGVtZW50SWRlbnRpZmllcnMoXHJcbiAgc3RhdGVtZW50OiBUZXN0QmxvY2tBbmFseXNpc1tcInN0YXRlbWVudHNcIl1bbnVtYmVyXSxcclxuICBpZGVudGlmaWVyczogU2V0PHN0cmluZz4sXHJcbik6IHZvaWQge1xyXG4gIGlmICghc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFzc2VydFwiKSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKHN0YXRlbWVudC5ub2RlLnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XHJcbiAgICBjb2xsZWN0UmVmZXJlbmNlZElkZW50aWZpZXJzKHN0YXRlbWVudC5ub2RlLCBpZGVudGlmaWVycyk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHN0YXRlbWVudC5ub2RlLmRlY2xhcmF0aW9ucykge1xyXG4gICAgaWYgKGRlY2xhcmF0aW9uLmluaXQgIT09IG51bGwgJiYgZGVjbGFyYXRpb24uaW5pdCAhPT0gdm9pZCAwKSB7XHJcbiAgICAgIGNvbGxlY3RSZWZlcmVuY2VkSWRlbnRpZmllcnMoZGVjbGFyYXRpb24uaW5pdCwgaWRlbnRpZmllcnMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIHJlZmVyZW5jZWQgaWRlbnRpZmllciBuYW1lcyBmcm9tIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RSZWZlcmVuY2VkSWRlbnRpZmllcnMoeyBuYW1lOiBcInZhbHVlXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0sIG5ldyBTZXQ8c3RyaW5nPigpKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjb2xsZWN0UmVmZXJlbmNlZElkZW50aWZpZXJzKFxyXG4gIG5vZGU6IEVTVHJlZS5Ob2RlLFxyXG4gIGlkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuKTogdm9pZCB7XHJcbiAgaWYgKG5vZGUudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcclxuICAgIGlkZW50aWZpZXJzLmFkZChub2RlLm5hbWUpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobm9kZSkpIHtcclxuICAgIGNvbGxlY3RSZWZlcmVuY2VkVmFsdWUoa2V5LCB2YWx1ZSwgaWRlbnRpZmllcnMpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIHJlZmVyZW5jZWQgaWRlbnRpZmllcnMgZnJvbSBvbmUgb2JqZWN0IGVudHJ5IG9uIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAcGFyYW0ga2V5IEVudHJ5IGtleSBiZWluZyBpbnNwZWN0ZWQuXHJcbiAqIEBwYXJhbSB2YWx1ZSBFbnRyeSB2YWx1ZSBiZWluZyBpbnNwZWN0ZWQuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RSZWZlcmVuY2VkVmFsdWUoXCJ0eXBlXCIsIFwiSWRlbnRpZmllclwiLCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdFJlZmVyZW5jZWRWYWx1ZShcclxuICBrZXk6IHN0cmluZyxcclxuICB2YWx1ZTogdW5rbm93bixcclxuICBpZGVudGlmaWVyczogU2V0PHN0cmluZz4sXHJcbik6IHZvaWQge1xyXG4gIGlmIChrZXkgPT09IFwicGFyZW50XCIpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XHJcbiAgICAgIGlmIChpc05vZGUoaXRlbSkpIHtcclxuICAgICAgICBjb2xsZWN0UmVmZXJlbmNlZElkZW50aWZpZXJzKGl0ZW0sIGlkZW50aWZpZXJzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKGlzTm9kZSh2YWx1ZSkpIHtcclxuICAgIGNvbGxlY3RSZWZlcmVuY2VkSWRlbnRpZmllcnModmFsdWUsIGlkZW50aWZpZXJzKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGlkZW50aWZpZXJzIGRlY2xhcmVkIGJ5IGFuIEFjdC1waGFzZSB2YXJpYWJsZSBkZWNsYXJhdGlvbi5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgRGVjbGFyZWQgaWRlbnRpZmllciBuYW1lcy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRBY3REZWNsYXJlZElkZW50aWZpZXJzKHsgZGVjbGFyYXRpb25zOiBbXSwga2luZDogXCJjb25zdFwiLCB0eXBlOiBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIiB9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRBY3REZWNsYXJlZElkZW50aWZpZXJzKHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IFNldDxzdHJpbmc+IHtcclxuICBjb25zdCBpZGVudGlmaWVycyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICBpZiAoc3RhdGVtZW50LnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gaWRlbnRpZmllcnM7XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHN0YXRlbWVudC5kZWNsYXJhdGlvbnMpIHtcclxuICAgIGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMoZGVjbGFyYXRpb24uaWQsIGlkZW50aWZpZXJzKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpZGVudGlmaWVycztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIGFsbCBpZGVudGlmaWVycyByZWZlcmVuY2VkIGZyb20gdGhlIEFzc2VydCBwaGFzZS5cclxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCB0ZXN0LWJsb2NrIGFuYWx5c2lzLlxyXG4gKiBAcmV0dXJucyBSZWZlcmVuY2VkIGlkZW50aWZpZXIgbmFtZXMgZnJvbSBBc3NlcnQgc3RhdGVtZW50cy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRBc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMoeyBzdGF0ZW1lbnRzOiBbXSB9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRBc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMoXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxyXG4pOiBTZXQ8c3RyaW5nPiB7XHJcbiAgY29uc3QgaWRlbnRpZmllcnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgYW5hbHlzaXMuc3RhdGVtZW50cykge1xyXG4gICAgY29sbGVjdEFzc2VydFN0YXRlbWVudElkZW50aWZpZXJzKHN0YXRlbWVudCwgaWRlbnRpZmllcnMpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gQWN0LXBoYXNlIGRlY2xhcmF0aW9uIGlzIGxhdGVyIHJlZmVyZW5jZWQgZnJvbSBBc3NlcnQuXHJcbiAqIEBwYXJhbSBhc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMgUmVmZXJlbmNlZCBpZGVudGlmaWVycyBjb2xsZWN0ZWQgZnJvbSBBc3NlcnQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IHRvIGluc3BlY3QuXHJcbiAqIEByZXR1cm5zIFRydWUgd2hlbiBvbmUgZGVjbGFyZWQgaWRlbnRpZmllciBpcyBhc3NlcnRlZCBsYXRlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0FjdFJlc3VsdEFzc2VydGVkKG5ldyBTZXQ8c3RyaW5nPigpLCB7IHR5cGU6IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiIH0gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzQWN0UmVzdWx0QXNzZXJ0ZWQoXHJcbiAgYXNzZXJ0UmVmZXJlbmNlZElkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQsXHJcbik6IGJvb2xlYW4ge1xyXG4gIGZvciAoY29uc3QgaWRlbnRpZmllciBvZiBnZXRBY3REZWNsYXJlZElkZW50aWZpZXJzKHN0YXRlbWVudCkpIHtcclxuICAgIGlmIChhc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMuaGFzKGlkZW50aWZpZXIpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gdW5rbm93biB2YWx1ZSBpcyBhbiBFU1RyZWUgbm9kZS5cclxuICogQHBhcmFtIHZhbHVlIFVua25vd24gdmFsdWUgdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSB2YWx1ZSBoYXMgdGhlIHNoYXBlIG9mIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzTm9kZSh7IHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzTm9kZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEVTVHJlZS5Ob2RlIHtcclxuICByZXR1cm4gKFxyXG4gICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXHJcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgXCJ0eXBlXCIgaW4gdmFsdWUgJiZcclxuICAgIHR5cGVvZiAodmFsdWUgYXMgTm9kZUNhbmRpZGF0ZSkudHlwZSA9PT0gXCJzdHJpbmdcIlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGdldEFzc2VydFJlZmVyZW5jZWRJZGVudGlmaWVycywgaXNBY3RSZXN1bHRBc3NlcnRlZCB9O1xyXG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2UtcHVyaXR5LWlkZW50aWZpZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2VuZm9yY2UtYWFhLXBoYXNlLXB1cml0eS9waGFzZS1wdXJpdHktaWRlbnRpZmllcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRbEU7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlDQUFpQyxDQUN4QyxTQUFrRCxFQUNsRCxXQUF3QjtJQUV4QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztRQUNsRCw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzFELE9BQU87SUFDVCxDQUFDO0lBRUQsS0FBSyxNQUFNLFdBQVcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdELDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDRCQUE0QixDQUNuQyxJQUFpQixFQUNqQixXQUF3QjtJQUV4QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDL0IsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsT0FBTztJQUNULENBQUM7SUFFRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hELHNCQUFzQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHNCQUFzQixDQUM3QixHQUFXLEVBQ1gsS0FBYyxFQUNkLFdBQXdCO0lBRXhCLElBQUksR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JCLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNqQiw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsNEJBQTRCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHlCQUF5QixDQUFDLFNBQTJCO0lBQzVELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFdEMsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFLENBQUM7UUFDN0MsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUssTUFBTSxXQUFXLElBQUksU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2pELHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsOEJBQThCLENBQ3JDLFFBQTJCO0lBRTNCLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFdEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUMsaUNBQWlDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsMkJBQXdDLEVBQ3hDLFNBQTJCO0lBRTNCLEtBQUssTUFBTSxVQUFVLElBQUkseUJBQXlCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxJQUFJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2hELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxNQUFNLElBQUksS0FBSztRQUNmLE9BQVEsS0FBdUIsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUNsRCxDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBUZXN0QmxvY2tBbmFseXNpcyB9IGZyb20gXCIuLi9hYWEvdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7IGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMgfSBmcm9tIFwiLi9wYXR0ZXJuLWlkZW50aWZpZXJzXCI7XHJcblxyXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXHJcbmludGVyZmFjZSBOb2RlQ2FuZGlkYXRlIHtcclxuICAvKiogT3B0aW9uYWwgRVNUcmVlIG5vZGUgdHlwZSBtYXJrZXIuICovXHJcbiAgdHlwZT86IHVua25vd247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0cyByZWZlcmVuY2VkIGlkZW50aWZpZXJzIGZyb20gb25lIEFzc2VydC1waGFzZSBzdGF0ZW1lbnQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RBc3NlcnRTdGF0ZW1lbnRJZGVudGlmaWVycyh7IHR5cGU6IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiIH0gYXMgbmV2ZXIsIG5ldyBTZXQ8c3RyaW5nPigpKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjb2xsZWN0QXNzZXJ0U3RhdGVtZW50SWRlbnRpZmllcnMoXHJcbiAgc3RhdGVtZW50OiBUZXN0QmxvY2tBbmFseXNpc1tcInN0YXRlbWVudHNcIl1bbnVtYmVyXSxcclxuICBpZGVudGlmaWVyczogU2V0PHN0cmluZz4sXHJcbik6IHZvaWQge1xyXG4gIGlmICghc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFzc2VydFwiKSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKHN0YXRlbWVudC5ub2RlLnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XHJcbiAgICBjb2xsZWN0UmVmZXJlbmNlZElkZW50aWZpZXJzKHN0YXRlbWVudC5ub2RlLCBpZGVudGlmaWVycyk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHN0YXRlbWVudC5ub2RlLmRlY2xhcmF0aW9ucykge1xyXG4gICAgaWYgKGRlY2xhcmF0aW9uLmluaXQgIT09IG51bGwgJiYgZGVjbGFyYXRpb24uaW5pdCAhPT0gdm9pZCAwKSB7XHJcbiAgICAgIGNvbGxlY3RSZWZlcmVuY2VkSWRlbnRpZmllcnMoZGVjbGFyYXRpb24uaW5pdCwgaWRlbnRpZmllcnMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIHJlZmVyZW5jZWQgaWRlbnRpZmllciBuYW1lcyBmcm9tIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RSZWZlcmVuY2VkSWRlbnRpZmllcnMoeyBuYW1lOiBcInZhbHVlXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0sIG5ldyBTZXQ8c3RyaW5nPigpKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjb2xsZWN0UmVmZXJlbmNlZElkZW50aWZpZXJzKFxyXG4gIG5vZGU6IEVTVHJlZS5Ob2RlLFxyXG4gIGlkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuKTogdm9pZCB7XHJcbiAgaWYgKG5vZGUudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcclxuICAgIGlkZW50aWZpZXJzLmFkZChub2RlLm5hbWUpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobm9kZSkpIHtcclxuICAgIGNvbGxlY3RSZWZlcmVuY2VkVmFsdWUoa2V5LCB2YWx1ZSwgaWRlbnRpZmllcnMpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIHJlZmVyZW5jZWQgaWRlbnRpZmllcnMgZnJvbSBvbmUgb2JqZWN0IGVudHJ5IG9uIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAcGFyYW0ga2V5IEVudHJ5IGtleSBiZWluZyBpbnNwZWN0ZWQuXHJcbiAqIEBwYXJhbSB2YWx1ZSBFbnRyeSB2YWx1ZSBiZWluZyBpbnNwZWN0ZWQuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RSZWZlcmVuY2VkVmFsdWUoXCJ0eXBlXCIsIFwiSWRlbnRpZmllclwiLCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdFJlZmVyZW5jZWRWYWx1ZShcclxuICBrZXk6IHN0cmluZyxcclxuICB2YWx1ZTogdW5rbm93bixcclxuICBpZGVudGlmaWVyczogU2V0PHN0cmluZz4sXHJcbik6IHZvaWQge1xyXG4gIGlmIChrZXkgPT09IFwicGFyZW50XCIpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XHJcbiAgICAgIGlmIChpc05vZGUoaXRlbSkpIHtcclxuICAgICAgICBjb2xsZWN0UmVmZXJlbmNlZElkZW50aWZpZXJzKGl0ZW0sIGlkZW50aWZpZXJzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKGlzTm9kZSh2YWx1ZSkpIHtcclxuICAgIGNvbGxlY3RSZWZlcmVuY2VkSWRlbnRpZmllcnModmFsdWUsIGlkZW50aWZpZXJzKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGlkZW50aWZpZXJzIGRlY2xhcmVkIGJ5IGFuIEFjdC1waGFzZSB2YXJpYWJsZSBkZWNsYXJhdGlvbi5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgRGVjbGFyZWQgaWRlbnRpZmllciBuYW1lcy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRBY3REZWNsYXJlZElkZW50aWZpZXJzKHsgZGVjbGFyYXRpb25zOiBbXSwga2luZDogXCJjb25zdFwiLCB0eXBlOiBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIiB9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRBY3REZWNsYXJlZElkZW50aWZpZXJzKHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IFNldDxzdHJpbmc+IHtcclxuICBjb25zdCBpZGVudGlmaWVycyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICBpZiAoc3RhdGVtZW50LnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gaWRlbnRpZmllcnM7XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHN0YXRlbWVudC5kZWNsYXJhdGlvbnMpIHtcclxuICAgIGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMoZGVjbGFyYXRpb24uaWQsIGlkZW50aWZpZXJzKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpZGVudGlmaWVycztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIGFsbCBpZGVudGlmaWVycyByZWZlcmVuY2VkIGZyb20gdGhlIEFzc2VydCBwaGFzZS5cclxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCB0ZXN0LWJsb2NrIGFuYWx5c2lzLlxyXG4gKiBAcmV0dXJucyBSZWZlcmVuY2VkIGlkZW50aWZpZXIgbmFtZXMgZnJvbSBBc3NlcnQgc3RhdGVtZW50cy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRBc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMoeyBzdGF0ZW1lbnRzOiBbXSB9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRBc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMoXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxyXG4pOiBTZXQ8c3RyaW5nPiB7XHJcbiAgY29uc3QgaWRlbnRpZmllcnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgYW5hbHlzaXMuc3RhdGVtZW50cykge1xyXG4gICAgY29sbGVjdEFzc2VydFN0YXRlbWVudElkZW50aWZpZXJzKHN0YXRlbWVudCwgaWRlbnRpZmllcnMpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gQWN0LXBoYXNlIGRlY2xhcmF0aW9uIGlzIGxhdGVyIHJlZmVyZW5jZWQgZnJvbSBBc3NlcnQuXHJcbiAqIEBwYXJhbSBhc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMgUmVmZXJlbmNlZCBpZGVudGlmaWVycyBjb2xsZWN0ZWQgZnJvbSBBc3NlcnQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IHRvIGluc3BlY3QuXHJcbiAqIEByZXR1cm5zIFRydWUgd2hlbiBvbmUgZGVjbGFyZWQgaWRlbnRpZmllciBpcyBhc3NlcnRlZCBsYXRlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0FjdFJlc3VsdEFzc2VydGVkKG5ldyBTZXQ8c3RyaW5nPigpLCB7IHR5cGU6IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiIH0gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzQWN0UmVzdWx0QXNzZXJ0ZWQoXHJcbiAgYXNzZXJ0UmVmZXJlbmNlZElkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQsXHJcbik6IGJvb2xlYW4ge1xyXG4gIGZvciAoY29uc3QgaWRlbnRpZmllciBvZiBnZXRBY3REZWNsYXJlZElkZW50aWZpZXJzKHN0YXRlbWVudCkpIHtcclxuICAgIGlmIChhc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMuaGFzKGlkZW50aWZpZXIpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gdW5rbm93biB2YWx1ZSBpcyBhbiBFU1RyZWUgbm9kZS5cclxuICogQHBhcmFtIHZhbHVlIFVua25vd24gdmFsdWUgdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSB2YWx1ZSBoYXMgdGhlIHNoYXBlIG9mIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzTm9kZSh7IHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzTm9kZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEVTVHJlZS5Ob2RlIHtcclxuICByZXR1cm4gKFxyXG4gICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXHJcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgXCJ0eXBlXCIgaW4gdmFsdWUgJiZcclxuICAgIHR5cGVvZiAodmFsdWUgYXMgTm9kZUNhbmRpZGF0ZSkudHlwZSA9PT0gXCJzdHJpbmdcIlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGdldEFzc2VydFJlZmVyZW5jZWRJZGVudGlmaWVycywgaXNBY3RSZXN1bHRBc3NlcnRlZCB9O1xyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import type { Rule } from "eslint";
2
- import type { TestBlockAnalysis } from "../aaa/index.js";
2
+ import type { TestBlockAnalysis } from "../aaa/types.js";
3
3
  /**
4
4
  * Reports all enforce-aaa-phase-purity violations for one test block.
5
5
  * @param context ESLint rule context.
@@ -1 +1 @@
1
- {"version":3,"file":"phase-purity-reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAqNhD;;;;;;;;GAQG;AACH,iBAAS,2BAA2B,CAClC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI,CAyBN;AAgCD,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"phase-purity-reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAmQtD;;;;;;;;GAQG;AACH,iBAAS,2BAA2B,CAClC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI,CAyBN;AAyED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
- import { hasAssertion, hasAsyncLogic, hasAwait, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, } from "../aaa/index.js";
1
+ import { hasAssertion, isValidAssertStatement, } from "../aaa/analyzer.assertions.helpers.js";
2
+ import { hasAsyncLogic, hasAwait, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, } from "../aaa/analyzer.classification.helpers.js";
2
3
  import { getAssertReferencedIdentifiers, isActResultAsserted, } from "./phase-purity-identifiers.js";
3
4
  /**
4
5
  * Collects the phase-purity state for one analyzed statement.
@@ -38,17 +39,39 @@ function getStatementPurityState(assertReferencedIdentifiers, statement) {
38
39
  };
39
40
  }
40
41
  /**
41
- * Checks whether the analyzed test block declares all AAA section comments.
42
+ * Checks whether the analyzed test block declares the Act and Assert sections.
42
43
  * @param analysis Parsed test-block analysis.
43
- * @returns True when Arrange, Act, and Assert are all present.
44
+ * @returns True when Act and Assert are both present.
44
45
  * @example
45
46
  * ```typescript
46
- * const complete = hasAllAaaSections({ sectionComments: [] } as never);
47
+ * const complete = hasRequiredAaaSections({ sectionComments: [] } as never);
47
48
  * void complete;
48
49
  * ```
49
50
  */
50
- function hasAllAaaSections(analysis) {
51
- return ["Arrange", "Act", "Assert"].every((phase) => analysis.sectionComments.some((sectionComment) => sectionComment.phases.includes(phase)));
51
+ function hasRequiredAaaSections(analysis) {
52
+ return ["Act", "Assert"].every((phase) => analysis.sectionComments.some((sectionComment) => sectionComment.phases.includes(phase)));
53
+ }
54
+ /**
55
+ * Reports violations for statements that belong to both Act and Assert.
56
+ * @param context ESLint rule context.
57
+ * @param statement Statement entry to report against.
58
+ * @param purityState Phase-purity state for the statement.
59
+ * @example
60
+ * ```typescript
61
+ * reportActAndAssertStatement({ report() {} } as never, { node: {} as never, phases: [] }, {} as never);
62
+ * ```
63
+ */
64
+ function reportActAndAssertStatement(context, statement, purityState) {
65
+ if (purityState.containsMutation) {
66
+ context.report({ messageId: "mutationAfterAct", node: statement.node });
67
+ return;
68
+ }
69
+ if (purityState.isSetupLike && !purityState.isMeaningfulActContent) {
70
+ context.report({ messageId: "setupAfterAct", node: statement.node });
71
+ }
72
+ if (purityState.containsAssertion && !purityState.isValidAssert) {
73
+ context.report({ messageId: "nonAssertionInAssert", node: statement.node });
74
+ }
52
75
  }
53
76
  /**
54
77
  * Reports Act-only phase violations for one statement.
@@ -67,15 +90,28 @@ function reportActOnlyStatement(context, statement, purityState) {
67
90
  node: statement.node,
68
91
  });
69
92
  }
70
- if (purityState.allowsAssert &&
71
- purityState.containsAssertion &&
72
- !purityState.isValidAssert) {
73
- context.report({ messageId: "nonAssertionInAssert", node: statement.node });
74
- }
75
93
  if (purityState.isSetupLike && !purityState.isMeaningfulActContent) {
76
94
  context.report({ messageId: "setupAfterAct", node: statement.node });
77
95
  }
78
96
  }
97
+ /**
98
+ * Reports violations for statements that belong to both Arrange and Act.
99
+ * @param context ESLint rule context.
100
+ * @param statement Statement entry to report against.
101
+ * @param purityState Phase-purity state for the statement.
102
+ * @example
103
+ * ```typescript
104
+ * reportArrangeAndActStatement({ report() {} } as never, { node: {} as never, phases: [] }, {} as never);
105
+ * ```
106
+ */
107
+ function reportArrangeAndActStatement(context, statement, purityState) {
108
+ if (purityState.containsAssertion) {
109
+ context.report({
110
+ messageId: "assertionOutsideAssert",
111
+ node: statement.node,
112
+ });
113
+ }
114
+ }
79
115
  /**
80
116
  * Reports Arrange-only phase violations for one statement.
81
117
  * @param context ESLint rule context.
@@ -135,7 +171,7 @@ function reportAssertOnlyStatement(context, statement, purityState) {
135
171
  * ```
136
172
  */
137
173
  function reportPhasePurityViolations(context, analysis) {
138
- if (!hasAllAaaSections(analysis)) {
174
+ if (!hasRequiredAaaSections(analysis)) {
139
175
  return;
140
176
  }
141
177
  let hasMeaningfulAct = false;
@@ -164,17 +200,43 @@ function reportPhasePurityViolations(context, analysis) {
164
200
  * ```
165
201
  */
166
202
  function reportStatementViolations(context, statement, purityState) {
167
- if (purityState.allowsArrange && !purityState.allowsAct) {
203
+ if (purityState.allowsArrange &&
204
+ !purityState.allowsAct &&
205
+ !purityState.allowsAssert) {
168
206
  reportArrangeOnlyStatement(context, statement, purityState);
169
207
  return;
170
208
  }
171
- if (purityState.allowsAct && !purityState.allowsArrange) {
209
+ if (purityState.allowsAct &&
210
+ !purityState.allowsArrange &&
211
+ !purityState.allowsAssert) {
172
212
  reportActOnlyStatement(context, statement, purityState);
173
213
  return;
174
214
  }
175
- if (purityState.allowsAssert && !purityState.allowsAct) {
215
+ if (purityState.allowsAssert &&
216
+ !purityState.allowsAct &&
217
+ !purityState.allowsArrange) {
176
218
  reportAssertOnlyStatement(context, statement, purityState);
219
+ return;
220
+ }
221
+ if (purityState.allowsArrange &&
222
+ purityState.allowsAct &&
223
+ !purityState.allowsAssert) {
224
+ reportArrangeAndActStatement(context, statement, purityState);
225
+ return;
226
+ }
227
+ if (purityState.allowsAct &&
228
+ purityState.allowsAssert &&
229
+ !purityState.allowsArrange) {
230
+ reportActAndAssertStatement(context, statement, purityState);
231
+ return;
232
+ }
233
+ if (purityState.allowsArrange &&
234
+ purityState.allowsAct &&
235
+ purityState.allowsAssert &&
236
+ purityState.containsAssertion &&
237
+ !purityState.isValidAssert) {
238
+ context.report({ messageId: "nonAssertionInAssert", node: statement.node });
177
239
  }
178
240
  }
179
241
  export { reportPhasePurityViolations };
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2UtcHVyaXR5LXJlcG9ydGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9lbmZvcmNlLWFhYS1waGFzZS1wdXJpdHkvcGhhc2UtcHVyaXR5LXJlcG9ydGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixHQUN2QixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLG1CQUFtQixHQUNwQixNQUFNLDRCQUE0QixDQUFDO0FBc0NwQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FDOUIsMkJBQXdDLEVBQ3hDLFNBQWtEO0lBRWxELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsTUFBTSxlQUFlLEdBQUcsd0JBQXdCLENBQUMsU0FBUyxDQUFDLElB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QTJCLEVBQzNCLFNBQVMsQ0FDVixDQUFDO1FBRUYsZ0JBQWdCO1lBQ2QsV0FBVyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsc0JBQXNCLENBQUM7UUFDOUQseUJBQXlCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNiLFNBQVMsRUFBRSxzQkFBc0I7WUFDakMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxjQUFjO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FDaEMsT0FBeUIsRUFDekIsU0FBa0QsRUFDbEQsV0FBaUM7SUFFakMsSUFBSSxXQUFXLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hELDBCQUEwQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUQsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxTQUFTLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEQsc0JBQXNCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFlBQVksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2RCx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFRlc3RCbG9ja0FuYWx5c2lzIH0gZnJvbSBcIi4uL2FhYVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBoYXNBc3NlcnRpb24sXHJcbiAgaGFzQXN5bmNMb2dpYyxcclxuICBoYXNBd2FpdCxcclxuICBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0LFxyXG4gIGhhc011dGF0aW9uLFxyXG4gIGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudCxcclxuICBpc1NldHVwTGlrZVN0YXRlbWVudCxcclxuICBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50LFxyXG59IGZyb20gXCIuLi9hYWFcIjtcclxuaW1wb3J0IHtcclxuICBnZXRBc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMsXHJcbiAgaXNBY3RSZXN1bHRBc3NlcnRlZCxcclxufSBmcm9tIFwiLi9waGFzZS1wdXJpdHktaWRlbnRpZmllcnNcIjtcclxuXHJcbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cclxuaW50ZXJmYWNlIFN0YXRlbWVudFB1cml0eVN0YXRlIHtcclxuICAvKiogV2hldGhlciB0aGUgc3RhdGVtZW50IGJlbG9uZ3MgdG8gQWN0LiAqL1xyXG4gIGFsbG93c0FjdDogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBiZWxvbmdzIHRvIEFycmFuZ2UuICovXHJcbiAgYWxsb3dzQXJyYW5nZTogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBiZWxvbmdzIHRvIEFzc2VydC4gKi9cclxuICBhbGxvd3NBc3NlcnQ6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzdGF0ZW1lbnQgY29udGFpbnMgYW4gYXNzZXJ0aW9uLiAqL1xyXG4gIGNvbnRhaW5zQXNzZXJ0aW9uOiBib29sZWFuO1xyXG5cclxuICAvKiogV2hldGhlciB0aGUgc3RhdGVtZW50IGNvbnRhaW5zIGFzeW5jIGxvZ2ljLiAqL1xyXG4gIGNvbnRhaW5zQXN5bmNMb2dpYzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBjb250YWlucyBhbiBhd2FpdCBleHByZXNzaW9uLiAqL1xyXG4gIGNvbnRhaW5zQXdhaXQ6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzdGF0ZW1lbnQgbXV0YXRlcyBzdGF0ZS4gKi9cclxuICBjb250YWluc011dGF0aW9uOiBib29sZWFuO1xyXG5cclxuICAvKiogV2hldGhlciB0aGUgc3RhdGVtZW50IHBlcmZvcm1zIG1lYW5pbmdmdWwgQWN0IHdvcmsuICovXHJcbiAgaXNNZWFuaW5nZnVsQWN0OiBib29sZWFuO1xyXG5cclxuICAvKiogV2hldGhlciB0aGUgc3RhdGVtZW50IGNvdW50cyBhcyBtZWFuaW5nZnVsIEFjdCBjb250ZW50IG92ZXJhbGwuICovXHJcbiAgaXNNZWFuaW5nZnVsQWN0Q29udGVudDogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBsb29rcyBsaWtlIHNldHVwLiAqL1xyXG4gIGlzU2V0dXBMaWtlOiBib29sZWFuO1xyXG5cclxuICAvKiogV2hldGhlciB0aGUgc3RhdGVtZW50IGlzIGEgdmFsaWQgYXNzZXJ0LXBoYXNlIHN0YXRlbWVudC4gKi9cclxuICBpc1ZhbGlkQXNzZXJ0OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgdGhlIHBoYXNlLXB1cml0eSBzdGF0ZSBmb3Igb25lIGFuYWx5emVkIHN0YXRlbWVudC5cclxuICogQHBhcmFtIGFzc2VydFJlZmVyZW5jZWRJZGVudGlmaWVycyBSZWZlcmVuY2VkIGlkZW50aWZpZXJzIGNvbGxlY3RlZCBmcm9tIEFzc2VydC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgZW50cnkgdG8gY2xhc3NpZnkuXHJcbiAqIEByZXR1cm5zIFBoYXNlLXB1cml0eSBzdGF0ZSBmb3IgdGhlIHN0YXRlbWVudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBzdGF0ZSA9IGdldFN0YXRlbWVudFB1cml0eVN0YXRlKG5ldyBTZXQ8c3RyaW5nPigpLCB7IG5vZGU6IHsgdHlwZTogXCJFeHByZXNzaW9uU3RhdGVtZW50XCIgfSBhcyBuZXZlciwgcGhhc2VzOiBbXSB9KTtcclxuICogdm9pZCBzdGF0ZTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTdGF0ZW1lbnRQdXJpdHlTdGF0ZShcclxuICBhc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnM6IFNldDxzdHJpbmc+LFxyXG4gIHN0YXRlbWVudDogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdW251bWJlcl0sXHJcbik6IFN0YXRlbWVudFB1cml0eVN0YXRlIHtcclxuICBjb25zdCBhbGxvd3NBcnJhbmdlID0gc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFycmFuZ2VcIik7XHJcbiAgY29uc3QgYWxsb3dzQWN0ID0gc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFjdFwiKTtcclxuICBjb25zdCBhbGxvd3NBc3NlcnQgPSBzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQXNzZXJ0XCIpO1xyXG4gIGNvbnN0IGNvbnRhaW5zQXNzZXJ0aW9uID0gaGFzQXNzZXJ0aW9uKHN0YXRlbWVudC5ub2RlKTtcclxuICBjb25zdCBjb250YWluc0FzeW5jTG9naWMgPSBoYXNBc3luY0xvZ2ljKHN0YXRlbWVudC5ub2RlKTtcclxuICBjb25zdCBjb250YWluc0F3YWl0ID0gaGFzQXdhaXQoc3RhdGVtZW50Lm5vZGUpO1xyXG4gIGNvbnN0IGNvbnRhaW5zTXV0YXRpb24gPSBoYXNNdXRhdGlvbihzdGF0ZW1lbnQubm9kZSk7XHJcbiAgY29uc3QgaXNNZWFuaW5nZnVsQWN0ID0gaXNNZWFuaW5nZnVsQWN0U3RhdGVtZW50KHN0YXRlbWVudC5ub2RlKTtcclxuICBjb25zdCBpc01lYW5pbmdmdWxBY3RDb250ZW50ID1cclxuICAgIGlzTWVhbmluZ2Z1bEFjdCB8fFxyXG4gICAgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdChzdGF0ZW1lbnQubm9kZSkgfHxcclxuICAgIGlzQWN0UmVzdWx0QXNzZXJ0ZWQoYXNzZXJ0UmVmZXJlbmNlZElkZW50aWZpZXJzLCBzdGF0ZW1lbnQubm9kZSk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBhbGxvd3NBY3QsXHJcbiAgICBhbGxvd3NBcnJhbmdlLFxyXG4gICAgYWxsb3dzQXNzZXJ0LFxyXG4gICAgY29udGFpbnNBc3NlcnRpb24sXHJcbiAgICBjb250YWluc0FzeW5jTG9naWMsXHJcbiAgICBjb250YWluc0F3YWl0LFxyXG4gICAgY29udGFpbnNNdXRhdGlvbixcclxuICAgIGlzTWVhbmluZ2Z1bEFjdCxcclxuICAgIGlzTWVhbmluZ2Z1bEFjdENvbnRlbnQsXHJcbiAgICBpc1NldHVwTGlrZTogaXNTZXR1cExpa2VTdGF0ZW1lbnQoc3RhdGVtZW50Lm5vZGUpLFxyXG4gICAgaXNWYWxpZEFzc2VydDogaXNWYWxpZEFzc2VydFN0YXRlbWVudChzdGF0ZW1lbnQubm9kZSksXHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhbmFseXplZCB0ZXN0IGJsb2NrIGRlY2xhcmVzIGFsbCBBQUEgc2VjdGlvbiBjb21tZW50cy5cclxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCB0ZXN0LWJsb2NrIGFuYWx5c2lzLlxyXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gQXJyYW5nZSwgQWN0LCBhbmQgQXNzZXJ0IGFyZSBhbGwgcHJlc2VudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBjb21wbGV0ZSA9IGhhc0FsbEFhYVNlY3Rpb25zKHsgc2VjdGlvbkNvbW1lbnRzOiBbXSB9IGFzIG5ldmVyKTtcclxuICogdm9pZCBjb21wbGV0ZTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNBbGxBYWFTZWN0aW9ucyhhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMpOiBib29sZWFuIHtcclxuICByZXR1cm4gW1wiQXJyYW5nZVwiLCBcIkFjdFwiLCBcIkFzc2VydFwiXS5ldmVyeSgocGhhc2UpID0+XHJcbiAgICBhbmFseXNpcy5zZWN0aW9uQ29tbWVudHMuc29tZSgoc2VjdGlvbkNvbW1lbnQpID0+XHJcbiAgICAgIHNlY3Rpb25Db21tZW50LnBoYXNlcy5pbmNsdWRlcyhwaGFzZSBhcyBuZXZlciksXHJcbiAgICApLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXBvcnRzIEFjdC1vbmx5IHBoYXNlIHZpb2xhdGlvbnMgZm9yIG9uZSBzdGF0ZW1lbnQuXHJcbiAqIEBwYXJhbSBjb250ZXh0IEVTTGludCBydWxlIGNvbnRleHQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IGVudHJ5IHRvIHJlcG9ydCBhZ2FpbnN0LlxyXG4gKiBAcGFyYW0gcHVyaXR5U3RhdGUgUGhhc2UtcHVyaXR5IHN0YXRlIGZvciB0aGUgc3RhdGVtZW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHJlcG9ydEFjdE9ubHlTdGF0ZW1lbnQoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IG5vZGU6IHt9IGFzIG5ldmVyLCBwaGFzZXM6IFtdIH0sIHt9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiByZXBvcnRBY3RPbmx5U3RhdGVtZW50KFxyXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXHJcbiAgc3RhdGVtZW50OiBUZXN0QmxvY2tBbmFseXNpc1tcInN0YXRlbWVudHNcIl1bbnVtYmVyXSxcclxuICBwdXJpdHlTdGF0ZTogU3RhdGVtZW50UHVyaXR5U3RhdGUsXHJcbik6IHZvaWQge1xyXG4gIGlmIChwdXJpdHlTdGF0ZS5jb250YWluc0Fzc2VydGlvbiAmJiAhcHVyaXR5U3RhdGUuYWxsb3dzQXNzZXJ0KSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7XHJcbiAgICAgIG1lc3NhZ2VJZDogXCJhc3NlcnRpb25PdXRzaWRlQXNzZXJ0XCIsXHJcbiAgICAgIG5vZGU6IHN0YXRlbWVudC5ub2RlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpZiAoXHJcbiAgICBwdXJpdHlTdGF0ZS5hbGxvd3NBc3NlcnQgJiZcclxuICAgIHB1cml0eVN0YXRlLmNvbnRhaW5zQXNzZXJ0aW9uICYmXHJcbiAgICAhcHVyaXR5U3RhdGUuaXNWYWxpZEFzc2VydFxyXG4gICkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoeyBtZXNzYWdlSWQ6IFwibm9uQXNzZXJ0aW9uSW5Bc3NlcnRcIiwgbm9kZTogc3RhdGVtZW50Lm5vZGUgfSk7XHJcbiAgfVxyXG5cclxuICBpZiAocHVyaXR5U3RhdGUuaXNTZXR1cExpa2UgJiYgIXB1cml0eVN0YXRlLmlzTWVhbmluZ2Z1bEFjdENvbnRlbnQpIHtcclxuICAgIGNvbnRleHQucmVwb3J0KHsgbWVzc2FnZUlkOiBcInNldHVwQWZ0ZXJBY3RcIiwgbm9kZTogc3RhdGVtZW50Lm5vZGUgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVwb3J0cyBBcnJhbmdlLW9ubHkgcGhhc2UgdmlvbGF0aW9ucyBmb3Igb25lIHN0YXRlbWVudC5cclxuICogQHBhcmFtIGNvbnRleHQgRVNMaW50IHJ1bGUgY29udGV4dC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgZW50cnkgdG8gcmVwb3J0IGFnYWluc3QuXHJcbiAqIEBwYXJhbSBwdXJpdHlTdGF0ZSBQaGFzZS1wdXJpdHkgc3RhdGUgZm9yIHRoZSBzdGF0ZW1lbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVwb3J0QXJyYW5nZU9ubHlTdGF0ZW1lbnQoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IG5vZGU6IHt9IGFzIG5ldmVyLCBwaGFzZXM6IFtdIH0sIHt9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiByZXBvcnRBcnJhbmdlT25seVN0YXRlbWVudChcclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxyXG4gIHN0YXRlbWVudDogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdW251bWJlcl0sXHJcbiAgcHVyaXR5U3RhdGU6IFN0YXRlbWVudFB1cml0eVN0YXRlLFxyXG4pOiB2b2lkIHtcclxuICBpZiAocHVyaXR5U3RhdGUuY29udGFpbnNBc3NlcnRpb24gJiYgIXB1cml0eVN0YXRlLmFsbG93c0Fzc2VydCkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoe1xyXG4gICAgICBtZXNzYWdlSWQ6IFwiYXNzZXJ0aW9uT3V0c2lkZUFzc2VydFwiLFxyXG4gICAgICBub2RlOiBzdGF0ZW1lbnQubm9kZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaWYgKHB1cml0eVN0YXRlLmNvbnRhaW5zQXdhaXQpIHtcclxuICAgIGNvbnRleHQucmVwb3J0KHsgbWVzc2FnZUlkOiBcImF3YWl0T3V0c2lkZUFjdFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICB9XHJcblxyXG4gIGlmIChwdXJpdHlTdGF0ZS5jb250YWluc0FzeW5jTG9naWMpIHtcclxuICAgIGNvbnRleHQucmVwb3J0KHsgbWVzc2FnZUlkOiBcImFzeW5jSW5BcnJhbmdlXCIsIG5vZGU6IHN0YXRlbWVudC5ub2RlIH0pO1xyXG4gIH1cclxuXHJcbiAgaWYgKHB1cml0eVN0YXRlLmlzTWVhbmluZ2Z1bEFjdCkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoeyBtZXNzYWdlSWQ6IFwiYWN0aW9uSW5BcnJhbmdlXCIsIG5vZGU6IHN0YXRlbWVudC5ub2RlIH0pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcG9ydHMgQXNzZXJ0LW9ubHkgcGhhc2UgdmlvbGF0aW9ucyBmb3Igb25lIHN0YXRlbWVudC5cclxuICogQHBhcmFtIGNvbnRleHQgRVNMaW50IHJ1bGUgY29udGV4dC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgZW50cnkgdG8gcmVwb3J0IGFnYWluc3QuXHJcbiAqIEBwYXJhbSBwdXJpdHlTdGF0ZSBQaGFzZS1wdXJpdHkgc3RhdGUgZm9yIHRoZSBzdGF0ZW1lbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVwb3J0QXNzZXJ0T25seVN0YXRlbWVudCh7IHJlcG9ydCgpIHt9IH0gYXMgbmV2ZXIsIHsgbm9kZToge30gYXMgbmV2ZXIsIHBoYXNlczogW10gfSwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlcG9ydEFzc2VydE9ubHlTdGF0ZW1lbnQoXHJcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcclxuICBzdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdLFxyXG4gIHB1cml0eVN0YXRlOiBTdGF0ZW1lbnRQdXJpdHlTdGF0ZSxcclxuKTogdm9pZCB7XHJcbiAgaWYgKHB1cml0eVN0YXRlLmNvbnRhaW5zQXdhaXQpIHtcclxuICAgIGNvbnRleHQucmVwb3J0KHsgbWVzc2FnZUlkOiBcImF3YWl0T3V0c2lkZUFjdFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICB9XHJcblxyXG4gIGlmIChwdXJpdHlTdGF0ZS5jb250YWluc011dGF0aW9uKSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7IG1lc3NhZ2VJZDogXCJtdXRhdGlvbkFmdGVyQWN0XCIsIG5vZGU6IHN0YXRlbWVudC5ub2RlIH0pO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFwdXJpdHlTdGF0ZS5pc1ZhbGlkQXNzZXJ0KSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7IG1lc3NhZ2VJZDogXCJub25Bc3NlcnRpb25JbkFzc2VydFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXBvcnRzIGFsbCBlbmZvcmNlLWFhYS1waGFzZS1wdXJpdHkgdmlvbGF0aW9ucyBmb3Igb25lIHRlc3QgYmxvY2suXHJcbiAqIEBwYXJhbSBjb250ZXh0IEVTTGludCBydWxlIGNvbnRleHQuXHJcbiAqIEBwYXJhbSBhbmFseXNpcyBQYXJzZWQgdGVzdC1ibG9jayBhbmFseXNpcy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiByZXBvcnRQaGFzZVB1cml0eVZpb2xhdGlvbnMoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IHNlY3Rpb25Db21tZW50czogW10sIHN0YXRlbWVudHM6IFtdIH0gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlcG9ydFBoYXNlUHVyaXR5VmlvbGF0aW9ucyhcclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxyXG4gIGFuYWx5c2lzOiBUZXN0QmxvY2tBbmFseXNpcyxcclxuKTogdm9pZCB7XHJcbiAgaWYgKCFoYXNBbGxBYWFTZWN0aW9ucyhhbmFseXNpcykpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGxldCBoYXNNZWFuaW5nZnVsQWN0ID0gZmFsc2U7XHJcbiAgY29uc3QgYXNzZXJ0UmVmZXJlbmNlZElkZW50aWZpZXJzID0gZ2V0QXNzZXJ0UmVmZXJlbmNlZElkZW50aWZpZXJzKGFuYWx5c2lzKTtcclxuXHJcbiAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgYW5hbHlzaXMuc3RhdGVtZW50cykge1xyXG4gICAgY29uc3QgcHVyaXR5U3RhdGUgPSBnZXRTdGF0ZW1lbnRQdXJpdHlTdGF0ZShcclxuICAgICAgYXNzZXJ0UmVmZXJlbmNlZElkZW50aWZpZXJzLFxyXG4gICAgICBzdGF0ZW1lbnQsXHJcbiAgICApO1xyXG5cclxuICAgIGhhc01lYW5pbmdmdWxBY3QgfHw9XHJcbiAgICAgIHB1cml0eVN0YXRlLmFsbG93c0FjdCAmJiBwdXJpdHlTdGF0ZS5pc01lYW5pbmdmdWxBY3RDb250ZW50O1xyXG4gICAgcmVwb3J0U3RhdGVtZW50VmlvbGF0aW9ucyhjb250ZXh0LCBzdGF0ZW1lbnQsIHB1cml0eVN0YXRlKTtcclxuICB9XHJcblxyXG4gIGlmICghaGFzTWVhbmluZ2Z1bEFjdCkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoe1xyXG4gICAgICBtZXNzYWdlSWQ6IFwibWlzc2luZ01lYW5pbmdmdWxBY3RcIixcclxuICAgICAgbm9kZTogYW5hbHlzaXMuY2FsbEV4cHJlc3Npb24sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXBvcnRzIGFueSBwaGFzZS1wdXJpdHkgdmlvbGF0aW9ucyBmb3Igb25lIHN0YXRlbWVudC5cclxuICogQHBhcmFtIGNvbnRleHQgRVNMaW50IHJ1bGUgY29udGV4dC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgZW50cnkgdG8gcmVwb3J0IGFnYWluc3QuXHJcbiAqIEBwYXJhbSBwdXJpdHlTdGF0ZSBQaGFzZS1wdXJpdHkgc3RhdGUgZm9yIHRoZSBzdGF0ZW1lbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVwb3J0U3RhdGVtZW50VmlvbGF0aW9ucyh7IHJlcG9ydCgpIHt9IH0gYXMgbmV2ZXIsIHsgbm9kZToge30gYXMgbmV2ZXIsIHBoYXNlczogW10gfSwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlcG9ydFN0YXRlbWVudFZpb2xhdGlvbnMoXHJcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcclxuICBzdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdLFxyXG4gIHB1cml0eVN0YXRlOiBTdGF0ZW1lbnRQdXJpdHlTdGF0ZSxcclxuKTogdm9pZCB7XHJcbiAgaWYgKHB1cml0eVN0YXRlLmFsbG93c0FycmFuZ2UgJiYgIXB1cml0eVN0YXRlLmFsbG93c0FjdCkge1xyXG4gICAgcmVwb3J0QXJyYW5nZU9ubHlTdGF0ZW1lbnQoY29udGV4dCwgc3RhdGVtZW50LCBwdXJpdHlTdGF0ZSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpZiAocHVyaXR5U3RhdGUuYWxsb3dzQWN0ICYmICFwdXJpdHlTdGF0ZS5hbGxvd3NBcnJhbmdlKSB7XHJcbiAgICByZXBvcnRBY3RPbmx5U3RhdGVtZW50KGNvbnRleHQsIHN0YXRlbWVudCwgcHVyaXR5U3RhdGUpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKHB1cml0eVN0YXRlLmFsbG93c0Fzc2VydCAmJiAhcHVyaXR5U3RhdGUuYWxsb3dzQWN0KSB7XHJcbiAgICByZXBvcnRBc3NlcnRPbmx5U3RhdGVtZW50KGNvbnRleHQsIHN0YXRlbWVudCwgcHVyaXR5U3RhdGUpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHsgcmVwb3J0UGhhc2VQdXJpdHlWaW9sYXRpb25zIH07XHJcbiJdfQ==
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2UtcHVyaXR5LXJlcG9ydGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9lbmZvcmNlLWFhYS1waGFzZS1wdXJpdHkvcGhhc2UtcHVyaXR5LXJlcG9ydGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLHNCQUFzQixHQUN2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLG9CQUFvQixHQUNyQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3BCLE1BQU0sNEJBQTRCLENBQUM7QUFzQ3BDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLHVCQUF1QixDQUM5QiwyQkFBd0MsRUFDeEMsU0FBa0Q7SUFFbEQsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0QsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxNQUFN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LENBQUMsYUFBYTtRQUN6QixXQUFXLENBQUMsU0FBUztRQUNyQixXQUFXLENBQUMsWUFBWTtRQUN4QixXQUFXLENBQUMsaUJBQWlCO1FBQzdCLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDMUIsQ0FBQztRQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFRlc3RCbG9ja0FuYWx5c2lzIH0gZnJvbSBcIi4uL2FhYS90eXBlc1wiO1xyXG5cclxuaW1wb3J0IHtcclxuICBoYXNBc3NlcnRpb24sXHJcbiAgaXNWYWxpZEFzc2VydFN0YXRlbWVudCxcclxufSBmcm9tIFwiLi4vYWFhL2FuYWx5emVyLmFzc2VydGlvbnMuaGVscGVyc1wiO1xyXG5pbXBvcnQge1xyXG4gIGhhc0FzeW5jTG9naWMsXHJcbiAgaGFzQXdhaXQsXHJcbiAgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdCxcclxuICBoYXNNdXRhdGlvbixcclxuICBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQsXHJcbiAgaXNTZXR1cExpa2VTdGF0ZW1lbnQsXHJcbn0gZnJvbSBcIi4uL2FhYS9hbmFseXplci5jbGFzc2lmaWNhdGlvbi5oZWxwZXJzXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0QXNzZXJ0UmVmZXJlbmNlZElkZW50aWZpZXJzLFxyXG4gIGlzQWN0UmVzdWx0QXNzZXJ0ZWQsXHJcbn0gZnJvbSBcIi4vcGhhc2UtcHVyaXR5LWlkZW50aWZpZXJzXCI7XHJcblxyXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXHJcbmludGVyZmFjZSBTdGF0ZW1lbnRQdXJpdHlTdGF0ZSB7XHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBiZWxvbmdzIHRvIEFjdC4gKi9cclxuICBhbGxvd3NBY3Q6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzdGF0ZW1lbnQgYmVsb25ncyB0byBBcnJhbmdlLiAqL1xyXG4gIGFsbG93c0FycmFuZ2U6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzdGF0ZW1lbnQgYmVsb25ncyB0byBBc3NlcnQuICovXHJcbiAgYWxsb3dzQXNzZXJ0OiBib29sZWFuO1xyXG5cclxuICAvKiogV2hldGhlciB0aGUgc3RhdGVtZW50IGNvbnRhaW5zIGFuIGFzc2VydGlvbi4gKi9cclxuICBjb250YWluc0Fzc2VydGlvbjogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBjb250YWlucyBhc3luYyBsb2dpYy4gKi9cclxuICBjb250YWluc0FzeW5jTG9naWM6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzdGF0ZW1lbnQgY29udGFpbnMgYW4gYXdhaXQgZXhwcmVzc2lvbi4gKi9cclxuICBjb250YWluc0F3YWl0OiBib29sZWFuO1xyXG5cclxuICAvKiogV2hldGhlciB0aGUgc3RhdGVtZW50IG11dGF0ZXMgc3RhdGUuICovXHJcbiAgY29udGFpbnNNdXRhdGlvbjogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBwZXJmb3JtcyBtZWFuaW5nZnVsIEFjdCB3b3JrLiAqL1xyXG4gIGlzTWVhbmluZ2Z1bEFjdDogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBjb3VudHMgYXMgbWVhbmluZ2Z1bCBBY3QgY29udGVudCBvdmVyYWxsLiAqL1xyXG4gIGlzTWVhbmluZ2Z1bEFjdENvbnRlbnQ6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzdGF0ZW1lbnQgbG9va3MgbGlrZSBzZXR1cC4gKi9cclxuICBpc1NldHVwTGlrZTogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHN0YXRlbWVudCBpcyBhIHZhbGlkIGFzc2VydC1waGFzZSBzdGF0ZW1lbnQuICovXHJcbiAgaXNWYWxpZEFzc2VydDogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIHRoZSBwaGFzZS1wdXJpdHkgc3RhdGUgZm9yIG9uZSBhbmFseXplZCBzdGF0ZW1lbnQuXHJcbiAqIEBwYXJhbSBhc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMgUmVmZXJlbmNlZCBpZGVudGlmaWVycyBjb2xsZWN0ZWQgZnJvbSBBc3NlcnQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IGVudHJ5IHRvIGNsYXNzaWZ5LlxyXG4gKiBAcmV0dXJucyBQaGFzZS1wdXJpdHkgc3RhdGUgZm9yIHRoZSBzdGF0ZW1lbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qgc3RhdGUgPSBnZXRTdGF0ZW1lbnRQdXJpdHlTdGF0ZShuZXcgU2V0PHN0cmluZz4oKSwgeyBub2RlOiB7IHR5cGU6IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiIH0gYXMgbmV2ZXIsIHBoYXNlczogW10gfSk7XHJcbiAqIHZvaWQgc3RhdGU7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0U3RhdGVtZW50UHVyaXR5U3RhdGUoXHJcbiAgYXNzZXJ0UmVmZXJlbmNlZElkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuICBzdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdLFxyXG4pOiBTdGF0ZW1lbnRQdXJpdHlTdGF0ZSB7XHJcbiAgY29uc3QgYWxsb3dzQXJyYW5nZSA9IHN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBcnJhbmdlXCIpO1xyXG4gIGNvbnN0IGFsbG93c0FjdCA9IHN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBY3RcIik7XHJcbiAgY29uc3QgYWxsb3dzQXNzZXJ0ID0gc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFzc2VydFwiKTtcclxuICBjb25zdCBjb250YWluc0Fzc2VydGlvbiA9IGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQubm9kZSk7XHJcbiAgY29uc3QgY29udGFpbnNBc3luY0xvZ2ljID0gaGFzQXN5bmNMb2dpYyhzdGF0ZW1lbnQubm9kZSk7XHJcbiAgY29uc3QgY29udGFpbnNBd2FpdCA9IGhhc0F3YWl0KHN0YXRlbWVudC5ub2RlKTtcclxuICBjb25zdCBjb250YWluc011dGF0aW9uID0gaGFzTXV0YXRpb24oc3RhdGVtZW50Lm5vZGUpO1xyXG4gIGNvbnN0IGlzTWVhbmluZ2Z1bEFjdCA9IGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudChzdGF0ZW1lbnQubm9kZSk7XHJcbiAgY29uc3QgaXNNZWFuaW5nZnVsQWN0Q29udGVudCA9XHJcbiAgICBpc01lYW5pbmdmdWxBY3QgfHxcclxuICAgIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQoc3RhdGVtZW50Lm5vZGUpIHx8XHJcbiAgICBpc0FjdFJlc3VsdEFzc2VydGVkKGFzc2VydFJlZmVyZW5jZWRJZGVudGlmaWVycywgc3RhdGVtZW50Lm5vZGUpO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgYWxsb3dzQWN0LFxyXG4gICAgYWxsb3dzQXJyYW5nZSxcclxuICAgIGFsbG93c0Fzc2VydCxcclxuICAgIGNvbnRhaW5zQXNzZXJ0aW9uLFxyXG4gICAgY29udGFpbnNBc3luY0xvZ2ljLFxyXG4gICAgY29udGFpbnNBd2FpdCxcclxuICAgIGNvbnRhaW5zTXV0YXRpb24sXHJcbiAgICBpc01lYW5pbmdmdWxBY3QsXHJcbiAgICBpc01lYW5pbmdmdWxBY3RDb250ZW50LFxyXG4gICAgaXNTZXR1cExpa2U6IGlzU2V0dXBMaWtlU3RhdGVtZW50KHN0YXRlbWVudC5ub2RlKSxcclxuICAgIGlzVmFsaWRBc3NlcnQ6IGlzVmFsaWRBc3NlcnRTdGF0ZW1lbnQoc3RhdGVtZW50Lm5vZGUpLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYW5hbHl6ZWQgdGVzdCBibG9jayBkZWNsYXJlcyB0aGUgQWN0IGFuZCBBc3NlcnQgc2VjdGlvbnMuXHJcbiAqIEBwYXJhbSBhbmFseXNpcyBQYXJzZWQgdGVzdC1ibG9jayBhbmFseXNpcy5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIEFjdCBhbmQgQXNzZXJ0IGFyZSBib3RoIHByZXNlbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgY29tcGxldGUgPSBoYXNSZXF1aXJlZEFhYVNlY3Rpb25zKHsgc2VjdGlvbkNvbW1lbnRzOiBbXSB9IGFzIG5ldmVyKTtcclxuICogdm9pZCBjb21wbGV0ZTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNSZXF1aXJlZEFhYVNlY3Rpb25zKGFuYWx5c2lzOiBUZXN0QmxvY2tBbmFseXNpcyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBbXCJBY3RcIiwgXCJBc3NlcnRcIl0uZXZlcnkoKHBoYXNlKSA9PlxyXG4gICAgYW5hbHlzaXMuc2VjdGlvbkNvbW1lbnRzLnNvbWUoKHNlY3Rpb25Db21tZW50KSA9PlxyXG4gICAgICBzZWN0aW9uQ29tbWVudC5waGFzZXMuaW5jbHVkZXMocGhhc2UgYXMgbmV2ZXIpLFxyXG4gICAgKSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwb3J0cyB2aW9sYXRpb25zIGZvciBzdGF0ZW1lbnRzIHRoYXQgYmVsb25nIHRvIGJvdGggQWN0IGFuZCBBc3NlcnQuXHJcbiAqIEBwYXJhbSBjb250ZXh0IEVTTGludCBydWxlIGNvbnRleHQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IGVudHJ5IHRvIHJlcG9ydCBhZ2FpbnN0LlxyXG4gKiBAcGFyYW0gcHVyaXR5U3RhdGUgUGhhc2UtcHVyaXR5IHN0YXRlIGZvciB0aGUgc3RhdGVtZW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHJlcG9ydEFjdEFuZEFzc2VydFN0YXRlbWVudCh7IHJlcG9ydCgpIHt9IH0gYXMgbmV2ZXIsIHsgbm9kZToge30gYXMgbmV2ZXIsIHBoYXNlczogW10gfSwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlcG9ydEFjdEFuZEFzc2VydFN0YXRlbWVudChcclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxyXG4gIHN0YXRlbWVudDogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdW251bWJlcl0sXHJcbiAgcHVyaXR5U3RhdGU6IFN0YXRlbWVudFB1cml0eVN0YXRlLFxyXG4pOiB2b2lkIHtcclxuICBpZiAocHVyaXR5U3RhdGUuY29udGFpbnNNdXRhdGlvbikge1xyXG4gICAgY29udGV4dC5yZXBvcnQoeyBtZXNzYWdlSWQ6IFwibXV0YXRpb25BZnRlckFjdFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChwdXJpdHlTdGF0ZS5pc1NldHVwTGlrZSAmJiAhcHVyaXR5U3RhdGUuaXNNZWFuaW5nZnVsQWN0Q29udGVudCkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoeyBtZXNzYWdlSWQ6IFwic2V0dXBBZnRlckFjdFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICB9XHJcblxyXG4gIGlmIChwdXJpdHlTdGF0ZS5jb250YWluc0Fzc2VydGlvbiAmJiAhcHVyaXR5U3RhdGUuaXNWYWxpZEFzc2VydCkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoeyBtZXNzYWdlSWQ6IFwibm9uQXNzZXJ0aW9uSW5Bc3NlcnRcIiwgbm9kZTogc3RhdGVtZW50Lm5vZGUgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVwb3J0cyBBY3Qtb25seSBwaGFzZSB2aW9sYXRpb25zIGZvciBvbmUgc3RhdGVtZW50LlxyXG4gKiBAcGFyYW0gY29udGV4dCBFU0xpbnQgcnVsZSBjb250ZXh0LlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IFN0YXRlbWVudCBlbnRyeSB0byByZXBvcnQgYWdhaW5zdC5cclxuICogQHBhcmFtIHB1cml0eVN0YXRlIFBoYXNlLXB1cml0eSBzdGF0ZSBmb3IgdGhlIHN0YXRlbWVudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiByZXBvcnRBY3RPbmx5U3RhdGVtZW50KHsgcmVwb3J0KCkge30gfSBhcyBuZXZlciwgeyBub2RlOiB7fSBhcyBuZXZlciwgcGhhc2VzOiBbXSB9LCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gcmVwb3J0QWN0T25seVN0YXRlbWVudChcclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxyXG4gIHN0YXRlbWVudDogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdW251bWJlcl0sXHJcbiAgcHVyaXR5U3RhdGU6IFN0YXRlbWVudFB1cml0eVN0YXRlLFxyXG4pOiB2b2lkIHtcclxuICBpZiAocHVyaXR5U3RhdGUuY29udGFpbnNBc3NlcnRpb24gJiYgIXB1cml0eVN0YXRlLmFsbG93c0Fzc2VydCkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoe1xyXG4gICAgICBtZXNzYWdlSWQ6IFwiYXNzZXJ0aW9uT3V0c2lkZUFzc2VydFwiLFxyXG4gICAgICBub2RlOiBzdGF0ZW1lbnQubm9kZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaWYgKHB1cml0eVN0YXRlLmlzU2V0dXBMaWtlICYmICFwdXJpdHlTdGF0ZS5pc01lYW5pbmdmdWxBY3RDb250ZW50KSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7IG1lc3NhZ2VJZDogXCJzZXR1cEFmdGVyQWN0XCIsIG5vZGU6IHN0YXRlbWVudC5ub2RlIH0pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcG9ydHMgdmlvbGF0aW9ucyBmb3Igc3RhdGVtZW50cyB0aGF0IGJlbG9uZyB0byBib3RoIEFycmFuZ2UgYW5kIEFjdC5cclxuICogQHBhcmFtIGNvbnRleHQgRVNMaW50IHJ1bGUgY29udGV4dC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgZW50cnkgdG8gcmVwb3J0IGFnYWluc3QuXHJcbiAqIEBwYXJhbSBwdXJpdHlTdGF0ZSBQaGFzZS1wdXJpdHkgc3RhdGUgZm9yIHRoZSBzdGF0ZW1lbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVwb3J0QXJyYW5nZUFuZEFjdFN0YXRlbWVudCh7IHJlcG9ydCgpIHt9IH0gYXMgbmV2ZXIsIHsgbm9kZToge30gYXMgbmV2ZXIsIHBoYXNlczogW10gfSwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlcG9ydEFycmFuZ2VBbmRBY3RTdGF0ZW1lbnQoXHJcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcclxuICBzdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdLFxyXG4gIHB1cml0eVN0YXRlOiBTdGF0ZW1lbnRQdXJpdHlTdGF0ZSxcclxuKTogdm9pZCB7XHJcbiAgaWYgKHB1cml0eVN0YXRlLmNvbnRhaW5zQXNzZXJ0aW9uKSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7XHJcbiAgICAgIG1lc3NhZ2VJZDogXCJhc3NlcnRpb25PdXRzaWRlQXNzZXJ0XCIsXHJcbiAgICAgIG5vZGU6IHN0YXRlbWVudC5ub2RlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVwb3J0cyBBcnJhbmdlLW9ubHkgcGhhc2UgdmlvbGF0aW9ucyBmb3Igb25lIHN0YXRlbWVudC5cclxuICogQHBhcmFtIGNvbnRleHQgRVNMaW50IHJ1bGUgY29udGV4dC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgZW50cnkgdG8gcmVwb3J0IGFnYWluc3QuXHJcbiAqIEBwYXJhbSBwdXJpdHlTdGF0ZSBQaGFzZS1wdXJpdHkgc3RhdGUgZm9yIHRoZSBzdGF0ZW1lbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVwb3J0QXJyYW5nZU9ubHlTdGF0ZW1lbnQoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IG5vZGU6IHt9IGFzIG5ldmVyLCBwaGFzZXM6IFtdIH0sIHt9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiByZXBvcnRBcnJhbmdlT25seVN0YXRlbWVudChcclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxyXG4gIHN0YXRlbWVudDogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdW251bWJlcl0sXHJcbiAgcHVyaXR5U3RhdGU6IFN0YXRlbWVudFB1cml0eVN0YXRlLFxyXG4pOiB2b2lkIHtcclxuICBpZiAocHVyaXR5U3RhdGUuY29udGFpbnNBc3NlcnRpb24gJiYgIXB1cml0eVN0YXRlLmFsbG93c0Fzc2VydCkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoe1xyXG4gICAgICBtZXNzYWdlSWQ6IFwiYXNzZXJ0aW9uT3V0c2lkZUFzc2VydFwiLFxyXG4gICAgICBub2RlOiBzdGF0ZW1lbnQubm9kZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaWYgKHB1cml0eVN0YXRlLmNvbnRhaW5zQXdhaXQpIHtcclxuICAgIGNvbnRleHQucmVwb3J0KHsgbWVzc2FnZUlkOiBcImF3YWl0T3V0c2lkZUFjdFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICB9XHJcblxyXG4gIGlmIChwdXJpdHlTdGF0ZS5jb250YWluc0FzeW5jTG9naWMpIHtcclxuICAgIGNvbnRleHQucmVwb3J0KHsgbWVzc2FnZUlkOiBcImFzeW5jSW5BcnJhbmdlXCIsIG5vZGU6IHN0YXRlbWVudC5ub2RlIH0pO1xyXG4gIH1cclxuXHJcbiAgaWYgKHB1cml0eVN0YXRlLmlzTWVhbmluZ2Z1bEFjdCkge1xyXG4gICAgY29udGV4dC5yZXBvcnQoeyBtZXNzYWdlSWQ6IFwiYWN0aW9uSW5BcnJhbmdlXCIsIG5vZGU6IHN0YXRlbWVudC5ub2RlIH0pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcG9ydHMgQXNzZXJ0LW9ubHkgcGhhc2UgdmlvbGF0aW9ucyBmb3Igb25lIHN0YXRlbWVudC5cclxuICogQHBhcmFtIGNvbnRleHQgRVNMaW50IHJ1bGUgY29udGV4dC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgZW50cnkgdG8gcmVwb3J0IGFnYWluc3QuXHJcbiAqIEBwYXJhbSBwdXJpdHlTdGF0ZSBQaGFzZS1wdXJpdHkgc3RhdGUgZm9yIHRoZSBzdGF0ZW1lbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVwb3J0QXNzZXJ0T25seVN0YXRlbWVudCh7IHJlcG9ydCgpIHt9IH0gYXMgbmV2ZXIsIHsgbm9kZToge30gYXMgbmV2ZXIsIHBoYXNlczogW10gfSwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlcG9ydEFzc2VydE9ubHlTdGF0ZW1lbnQoXHJcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcclxuICBzdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdLFxyXG4gIHB1cml0eVN0YXRlOiBTdGF0ZW1lbnRQdXJpdHlTdGF0ZSxcclxuKTogdm9pZCB7XHJcbiAgaWYgKHB1cml0eVN0YXRlLmNvbnRhaW5zQXdhaXQpIHtcclxuICAgIGNvbnRleHQucmVwb3J0KHsgbWVzc2FnZUlkOiBcImF3YWl0T3V0c2lkZUFjdFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICB9XHJcblxyXG4gIGlmIChwdXJpdHlTdGF0ZS5jb250YWluc011dGF0aW9uKSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7IG1lc3NhZ2VJZDogXCJtdXRhdGlvbkFmdGVyQWN0XCIsIG5vZGU6IHN0YXRlbWVudC5ub2RlIH0pO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFwdXJpdHlTdGF0ZS5pc1ZhbGlkQXNzZXJ0KSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7IG1lc3NhZ2VJZDogXCJub25Bc3NlcnRpb25JbkFzc2VydFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXBvcnRzIGFsbCBlbmZvcmNlLWFhYS1waGFzZS1wdXJpdHkgdmlvbGF0aW9ucyBmb3Igb25lIHRlc3QgYmxvY2suXHJcbiAqIEBwYXJhbSBjb250ZXh0IEVTTGludCBydWxlIGNvbnRleHQuXHJcbiAqIEBwYXJhbSBhbmFseXNpcyBQYXJzZWQgdGVzdC1ibG9jayBhbmFseXNpcy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiByZXBvcnRQaGFzZVB1cml0eVZpb2xhdGlvbnMoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IHNlY3Rpb25Db21tZW50czogW10sIHN0YXRlbWVudHM6IFtdIH0gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlcG9ydFBoYXNlUHVyaXR5VmlvbGF0aW9ucyhcclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxyXG4gIGFuYWx5c2lzOiBUZXN0QmxvY2tBbmFseXNpcyxcclxuKTogdm9pZCB7XHJcbiAgaWYgKCFoYXNSZXF1aXJlZEFhYVNlY3Rpb25zKGFuYWx5c2lzKSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgbGV0IGhhc01lYW5pbmdmdWxBY3QgPSBmYWxzZTtcclxuICBjb25zdCBhc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMgPSBnZXRBc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMoYW5hbHlzaXMpO1xyXG5cclxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XHJcbiAgICBjb25zdCBwdXJpdHlTdGF0ZSA9IGdldFN0YXRlbWVudFB1cml0eVN0YXRlKFxyXG4gICAgICBhc3NlcnRSZWZlcmVuY2VkSWRlbnRpZmllcnMsXHJcbiAgICAgIHN0YXRlbWVudCxcclxuICAgICk7XHJcblxyXG4gICAgaGFzTWVhbmluZ2Z1bEFjdCB8fD1cclxuICAgICAgcHVyaXR5U3RhdGUuYWxsb3dzQWN0ICYmIHB1cml0eVN0YXRlLmlzTWVhbmluZ2Z1bEFjdENvbnRlbnQ7XHJcbiAgICByZXBvcnRTdGF0ZW1lbnRWaW9sYXRpb25zKGNvbnRleHQsIHN0YXRlbWVudCwgcHVyaXR5U3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFoYXNNZWFuaW5nZnVsQWN0KSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7XHJcbiAgICAgIG1lc3NhZ2VJZDogXCJtaXNzaW5nTWVhbmluZ2Z1bEFjdFwiLFxyXG4gICAgICBub2RlOiBhbmFseXNpcy5jYWxsRXhwcmVzc2lvbixcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcG9ydHMgYW55IHBoYXNlLXB1cml0eSB2aW9sYXRpb25zIGZvciBvbmUgc3RhdGVtZW50LlxyXG4gKiBAcGFyYW0gY29udGV4dCBFU0xpbnQgcnVsZSBjb250ZXh0LlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IFN0YXRlbWVudCBlbnRyeSB0byByZXBvcnQgYWdhaW5zdC5cclxuICogQHBhcmFtIHB1cml0eVN0YXRlIFBoYXNlLXB1cml0eSBzdGF0ZSBmb3IgdGhlIHN0YXRlbWVudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiByZXBvcnRTdGF0ZW1lbnRWaW9sYXRpb25zKHsgcmVwb3J0KCkge30gfSBhcyBuZXZlciwgeyBub2RlOiB7fSBhcyBuZXZlciwgcGhhc2VzOiBbXSB9LCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gcmVwb3J0U3RhdGVtZW50VmlvbGF0aW9ucyhcclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxyXG4gIHN0YXRlbWVudDogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdW251bWJlcl0sXHJcbiAgcHVyaXR5U3RhdGU6IFN0YXRlbWVudFB1cml0eVN0YXRlLFxyXG4pOiB2b2lkIHtcclxuICBpZiAoXHJcbiAgICBwdXJpdHlTdGF0ZS5hbGxvd3NBcnJhbmdlICYmXHJcbiAgICAhcHVyaXR5U3RhdGUuYWxsb3dzQWN0ICYmXHJcbiAgICAhcHVyaXR5U3RhdGUuYWxsb3dzQXNzZXJ0XHJcbiAgKSB7XHJcbiAgICByZXBvcnRBcnJhbmdlT25seVN0YXRlbWVudChjb250ZXh0LCBzdGF0ZW1lbnQsIHB1cml0eVN0YXRlKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChcclxuICAgIHB1cml0eVN0YXRlLmFsbG93c0FjdCAmJlxyXG4gICAgIXB1cml0eVN0YXRlLmFsbG93c0FycmFuZ2UgJiZcclxuICAgICFwdXJpdHlTdGF0ZS5hbGxvd3NBc3NlcnRcclxuICApIHtcclxuICAgIHJlcG9ydEFjdE9ubHlTdGF0ZW1lbnQoY29udGV4dCwgc3RhdGVtZW50LCBwdXJpdHlTdGF0ZSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpZiAoXHJcbiAgICBwdXJpdHlTdGF0ZS5hbGxvd3NBc3NlcnQgJiZcclxuICAgICFwdXJpdHlTdGF0ZS5hbGxvd3NBY3QgJiZcclxuICAgICFwdXJpdHlTdGF0ZS5hbGxvd3NBcnJhbmdlXHJcbiAgKSB7XHJcbiAgICByZXBvcnRBc3NlcnRPbmx5U3RhdGVtZW50KGNvbnRleHQsIHN0YXRlbWVudCwgcHVyaXR5U3RhdGUpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgcHVyaXR5U3RhdGUuYWxsb3dzQXJyYW5nZSAmJlxyXG4gICAgcHVyaXR5U3RhdGUuYWxsb3dzQWN0ICYmXHJcbiAgICAhcHVyaXR5U3RhdGUuYWxsb3dzQXNzZXJ0XHJcbiAgKSB7XHJcbiAgICByZXBvcnRBcnJhbmdlQW5kQWN0U3RhdGVtZW50KGNvbnRleHQsIHN0YXRlbWVudCwgcHVyaXR5U3RhdGUpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgcHVyaXR5U3RhdGUuYWxsb3dzQWN0ICYmXHJcbiAgICBwdXJpdHlTdGF0ZS5hbGxvd3NBc3NlcnQgJiZcclxuICAgICFwdXJpdHlTdGF0ZS5hbGxvd3NBcnJhbmdlXHJcbiAgKSB7XHJcbiAgICByZXBvcnRBY3RBbmRBc3NlcnRTdGF0ZW1lbnQoY29udGV4dCwgc3RhdGVtZW50LCBwdXJpdHlTdGF0ZSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpZiAoXHJcbiAgICBwdXJpdHlTdGF0ZS5hbGxvd3NBcnJhbmdlICYmXHJcbiAgICBwdXJpdHlTdGF0ZS5hbGxvd3NBY3QgJiZcclxuICAgIHB1cml0eVN0YXRlLmFsbG93c0Fzc2VydCAmJlxyXG4gICAgcHVyaXR5U3RhdGUuY29udGFpbnNBc3NlcnRpb24gJiZcclxuICAgICFwdXJpdHlTdGF0ZS5pc1ZhbGlkQXNzZXJ0XHJcbiAgKSB7XHJcbiAgICBjb250ZXh0LnJlcG9ydCh7IG1lc3NhZ2VJZDogXCJub25Bc3NlcnRpb25JbkFzc2VydFwiLCBub2RlOiBzdGF0ZW1lbnQubm9kZSB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IHJlcG9ydFBoYXNlUHVyaXR5VmlvbGF0aW9ucyB9O1xyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import type { Rule } from "eslint";
2
- import type { AaaPhase, TestBlockAnalysis } from "../aaa/index.js";
2
+ import type { AaaPhase, TestBlockAnalysis } from "../aaa/types.js";
3
3
  /**
4
4
  * Builds autofix edits for each missing AAA section marker.
5
5
  * @param analysis Parsed test-block analysis.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"missing-section-fixes.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-structure/missing-section-fixes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAsGhE;;;;;;;;;;;GAWG;AACH,iBAAS,wBAAwB,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,EAAE,SAAS,QAAQ,EAAE,EACpC,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CAWZ;AA4GD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}