testdriverai 7.1.0 → 7.1.2

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 (325) hide show
  1. package/.env.example +2 -0
  2. package/.github/workflows/linux-tests.yml +28 -0
  3. package/agent/index.js +18 -45
  4. package/agent/interface.js +13 -2
  5. package/agent/lib/commands.js +1 -1
  6. package/agent/lib/redraw.js +1 -1
  7. package/agent/lib/sandbox.js +30 -2
  8. package/agent/lib/valid-version.js +2 -2
  9. package/debugger/index.html +1 -1
  10. package/docs/docs.json +140 -131
  11. package/docs/v6/getting-started/self-hosting.mdx +3 -2
  12. package/docs/v7/_drafts/agents.mdx +852 -0
  13. package/docs/v7/_drafts/auto-cache-key.mdx +167 -0
  14. package/docs/v7/{guides → _drafts}/caching-selectors.mdx +125 -17
  15. package/docs/v7/_drafts/dashcam-title-feature.mdx +89 -0
  16. package/docs/v7/_drafts/error-handling.mdx +501 -0
  17. package/docs/v7/_drafts/implementation-plan.mdx +994 -0
  18. package/docs/v7/_drafts/init-command.mdx +95 -0
  19. package/docs/v7/_drafts/optimal-sdk-design.mdx +1348 -0
  20. package/docs/v7/_drafts/plugin-migration.mdx +222 -0
  21. package/docs/v7/_drafts/prompt-cache.mdx +200 -0
  22. package/docs/{QUICK_START_TEST_RECORDING.md → v7/_drafts/quick-start-test-recording.mdx} +3 -3
  23. package/docs/v7/_drafts/sdk-logging.mdx +222 -0
  24. package/docs/v7/_drafts/sdk-migration.mdx +474 -0
  25. package/docs/v7/_drafts/sdk-v7-complete.mdx +345 -0
  26. package/docs/v7/{guides → _drafts}/self-hosting.mdx +1 -1
  27. package/docs/v7/{guides → _drafts}/troubleshooting.mdx +2 -2
  28. package/docs/v7/{guides → _drafts}/vitest-plugin.mdx +4 -4
  29. package/docs/v7/api/{ai.mdx → act.mdx} +24 -24
  30. package/docs/v7/api/client.mdx +1 -1
  31. package/docs/v7/api/dashcam.mdx +2 -2
  32. package/docs/v7/api/elements.mdx +143 -41
  33. package/docs/v7/api/find.mdx +258 -0
  34. package/docs/v7/api/type.mdx +51 -7
  35. package/docs/v7/features/ai-native.mdx +427 -0
  36. package/docs/v7/features/easy-to-write.mdx +351 -0
  37. package/docs/v7/features/enterprise.mdx +540 -0
  38. package/docs/v7/features/fast.mdx +424 -0
  39. package/docs/v7/features/observable.mdx +623 -0
  40. package/docs/v7/features/powerful.mdx +531 -0
  41. package/docs/v7/features/scalable.mdx +417 -0
  42. package/docs/v7/features/stable.mdx +514 -0
  43. package/docs/v7/getting-started/configuration.mdx +1 -1
  44. package/docs/v7/getting-started/generating-tests.mdx +525 -0
  45. package/docs/v7/getting-started/installation.mdx +486 -0
  46. package/docs/v7/getting-started/quickstart.mdx +51 -5
  47. package/docs/v7/getting-started/running-and-debugging.mdx +511 -0
  48. package/docs/v7/getting-started/setting-up-in-ci.mdx +612 -0
  49. package/docs/v7/getting-started/writing-tests.mdx +535 -0
  50. package/docs/v7/overview/what-is-testdriver.mdx +398 -0
  51. package/docs/v7/playwright.mdx +3 -3
  52. package/docs/v7/presets/chrome.mdx +16 -0
  53. package/docs/v7/presets/electron.mdx +18 -0
  54. package/docs/v7/presets/vscode.mdx +19 -0
  55. package/examples/run-tests-with-recording.sh +70 -0
  56. package/examples/screenshot-example.js +63 -0
  57. package/examples/sdk-awesome-logs-demo.js +177 -0
  58. package/examples/sdk-cache-thresholds.js +96 -0
  59. package/examples/sdk-element-properties.js +155 -0
  60. package/examples/sdk-simple-example.js +65 -0
  61. package/examples/test-recording-example.test.js +166 -0
  62. package/interfaces/cli/commands/init.js +358 -0
  63. package/interfaces/vitest-plugin.mjs +214 -10
  64. package/{src → lib}/core/Dashcam.js +41 -4
  65. package/{src → lib}/vitest/hooks.mjs +118 -100
  66. package/lib/vitest/setup.mjs +44 -0
  67. package/package.json +9 -10
  68. package/sdk.d.ts +15 -2
  69. package/sdk.js +72 -17
  70. package/{self-hosted.yml → setup/aws/self-hosted.yml} +1 -1
  71. package/{testdriver/acceptance-sdk → test/manual}/test-console-logs.test.mjs +1 -1
  72. package/test/manual/test-find-api.js +73 -0
  73. package/test/manual/test-init.sh +54 -0
  74. package/test/manual/test-prompt-cache.js +96 -0
  75. package/test/manual/test-provision-auth.mjs +22 -0
  76. package/test/manual/test-sandbox-render.js +28 -0
  77. package/test/manual/test-sdk-methods.js +15 -0
  78. package/test/manual/test-sdk-refactor.js +53 -0
  79. package/test/manual/test-stack-trace.mjs +57 -0
  80. package/test/testdriver/assert.test.mjs +41 -0
  81. package/{testdriver/acceptance-sdk → test/testdriver}/auto-cache-key-demo.test.mjs +1 -1
  82. package/{testdriver/acceptance-sdk → test/testdriver}/drag-and-drop.test.mjs +1 -1
  83. package/{testdriver/acceptance-sdk → test/testdriver}/element-not-found.test.mjs +1 -1
  84. package/{testdriver/acceptance-sdk → test/testdriver}/exec-js.test.mjs +1 -1
  85. package/{testdriver/acceptance-sdk → test/testdriver}/exec-output.test.mjs +3 -3
  86. package/{testdriver/acceptance-sdk → test/testdriver}/exec-pwsh.test.mjs +3 -3
  87. package/{testdriver/acceptance-sdk → test/testdriver}/focus-window.test.mjs +1 -1
  88. package/{testdriver/acceptance-sdk → test/testdriver}/formatted-logging.test.mjs +1 -1
  89. package/{testdriver/acceptance-sdk → test/testdriver}/hover-image.test.mjs +1 -1
  90. package/{testdriver/acceptance-sdk → test/testdriver}/hover-text-with-description.test.mjs +1 -1
  91. package/{testdriver/acceptance-sdk → test/testdriver}/hover-text.test.mjs +1 -1
  92. package/{testdriver/acceptance-sdk → test/testdriver}/match-image.test.mjs +1 -1
  93. package/{testdriver/acceptance-sdk → test/testdriver}/press-keys.test.mjs +1 -1
  94. package/{testdriver/acceptance-sdk → test/testdriver}/prompt.test.mjs +2 -2
  95. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-keyboard.test.mjs +1 -1
  96. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-image.test.mjs +1 -1
  97. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-text.test.mjs +1 -1
  98. package/{testdriver/acceptance-sdk → test/testdriver}/scroll.test.mjs +1 -1
  99. package/{src/vitest/lifecycle.mjs → test/testdriver/setup/lifecycleHelpers.mjs} +84 -99
  100. package/test/testdriver/setup/testHelpers.mjs +653 -0
  101. package/{testdriver/acceptance-sdk → test/testdriver}/type.test.mjs +1 -1
  102. package/vitest.config.mjs +8 -59
  103. package/.github/dependabot.yml +0 -11
  104. package/.github/workflows/acceptance-linux.yml +0 -75
  105. package/.github/workflows/acceptance-sdk-tests.yml +0 -133
  106. package/.github/workflows/acceptance-tests.yml +0 -130
  107. package/.github/workflows/lint.yml +0 -27
  108. package/.github/workflows/publish-canary.yml +0 -40
  109. package/.github/workflows/publish-latest.yml +0 -61
  110. package/.github/workflows/test-install.yml +0 -29
  111. package/.vscode/extensions.json +0 -3
  112. package/.vscode/launch.json +0 -22
  113. package/.vscode/settings.json +0 -14
  114. package/AGENTS.md +0 -550
  115. package/CODEOWNERS +0 -2
  116. package/_testdriver/acceptance/assert.yaml +0 -7
  117. package/_testdriver/acceptance/dashcam.yaml +0 -9
  118. package/_testdriver/acceptance/drag-and-drop.yaml +0 -49
  119. package/_testdriver/acceptance/embed.yaml +0 -9
  120. package/_testdriver/acceptance/exec-js.yaml +0 -29
  121. package/_testdriver/acceptance/exec-output.yaml +0 -43
  122. package/_testdriver/acceptance/exec-shell.yaml +0 -40
  123. package/_testdriver/acceptance/focus-window.yaml +0 -16
  124. package/_testdriver/acceptance/hover-image.yaml +0 -18
  125. package/_testdriver/acceptance/hover-text-with-description.yaml +0 -29
  126. package/_testdriver/acceptance/hover-text.yaml +0 -14
  127. package/_testdriver/acceptance/if-else.yaml +0 -31
  128. package/_testdriver/acceptance/match-image.yaml +0 -15
  129. package/_testdriver/acceptance/press-keys.yaml +0 -35
  130. package/_testdriver/acceptance/prompt.yaml +0 -11
  131. package/_testdriver/acceptance/remember.yaml +0 -27
  132. package/_testdriver/acceptance/screenshots/cart.png +0 -0
  133. package/_testdriver/acceptance/scroll-keyboard.yaml +0 -34
  134. package/_testdriver/acceptance/scroll-until-image.yaml +0 -26
  135. package/_testdriver/acceptance/scroll-until-text.yaml +0 -20
  136. package/_testdriver/acceptance/scroll.yaml +0 -33
  137. package/_testdriver/acceptance/snippets/login.yaml +0 -29
  138. package/_testdriver/acceptance/snippets/match-cart.yaml +0 -8
  139. package/_testdriver/acceptance/type.yaml +0 -29
  140. package/_testdriver/behavior/failure.yaml +0 -7
  141. package/_testdriver/behavior/hover-text.yaml +0 -13
  142. package/_testdriver/behavior/lifecycle/postrun.yaml +0 -10
  143. package/_testdriver/behavior/lifecycle/prerun.yaml +0 -8
  144. package/_testdriver/behavior/lifecycle/provision.yaml +0 -8
  145. package/_testdriver/behavior/secrets.yaml +0 -7
  146. package/_testdriver/edge-cases/dashcam-chrome.yaml +0 -8
  147. package/_testdriver/edge-cases/exec-pwsh-multiline.yaml +0 -10
  148. package/_testdriver/edge-cases/js-exception.yaml +0 -8
  149. package/_testdriver/edge-cases/js-promise.yaml +0 -19
  150. package/_testdriver/edge-cases/lifecycle/postrun.yaml +0 -10
  151. package/_testdriver/edge-cases/prompt-in-middle.yaml +0 -23
  152. package/_testdriver/edge-cases/prompt-nested.yaml +0 -7
  153. package/_testdriver/edge-cases/success-test.yaml +0 -9
  154. package/_testdriver/examples/android/example.yaml +0 -12
  155. package/_testdriver/examples/android/lifecycle/postrun.yaml +0 -11
  156. package/_testdriver/examples/android/lifecycle/provision.yaml +0 -47
  157. package/_testdriver/examples/android/readme.md +0 -7
  158. package/_testdriver/examples/chrome-extension/lifecycle/provision.yaml +0 -74
  159. package/_testdriver/examples/desktop/lifecycle/prerun.yaml +0 -0
  160. package/_testdriver/examples/desktop/lifecycle/provision.yaml +0 -64
  161. package/_testdriver/examples/vscode-extension/lifecycle/provision.yaml +0 -73
  162. package/_testdriver/examples/web/lifecycle/postrun.yaml +0 -7
  163. package/_testdriver/examples/web/lifecycle/prerun.yaml +0 -22
  164. package/_testdriver/lifecycle/postrun.yaml +0 -8
  165. package/_testdriver/lifecycle/prerun.yaml +0 -15
  166. package/_testdriver/lifecycle/provision.yaml +0 -25
  167. package/docs/v7/guides/ci-cd/azure.mdx +0 -587
  168. package/docs/v7/guides/ci-cd/circleci.mdx +0 -523
  169. package/docs/v7/guides/ci-cd/github-actions.mdx +0 -457
  170. package/docs/v7/guides/ci-cd/gitlab.mdx +0 -498
  171. package/docs/v7/guides/ci-cd/jenkins.mdx +0 -664
  172. package/docs/v7/guides/ci-cd/travis.mdx +0 -438
  173. package/scripts/view-test-results.mjs +0 -96
  174. package/src/vitest/extended.mjs +0 -108
  175. package/src/vitest/index.mjs +0 -64
  176. package/src/vitest/utils.mjs +0 -150
  177. package/styles/.vale-config/2-MDX.ini +0 -5
  178. package/styles/Microsoft/AMPM.yml +0 -9
  179. package/styles/Microsoft/Accessibility.yml +0 -30
  180. package/styles/Microsoft/Acronyms.yml +0 -64
  181. package/styles/Microsoft/Adverbs.yml +0 -272
  182. package/styles/Microsoft/Auto.yml +0 -11
  183. package/styles/Microsoft/Avoid.yml +0 -14
  184. package/styles/Microsoft/Contractions.yml +0 -50
  185. package/styles/Microsoft/Dashes.yml +0 -13
  186. package/styles/Microsoft/DateFormat.yml +0 -8
  187. package/styles/Microsoft/DateNumbers.yml +0 -40
  188. package/styles/Microsoft/DateOrder.yml +0 -8
  189. package/styles/Microsoft/Ellipses.yml +0 -9
  190. package/styles/Microsoft/FirstPerson.yml +0 -16
  191. package/styles/Microsoft/Foreign.yml +0 -13
  192. package/styles/Microsoft/Gender.yml +0 -8
  193. package/styles/Microsoft/GenderBias.yml +0 -42
  194. package/styles/Microsoft/GeneralURL.yml +0 -11
  195. package/styles/Microsoft/HeadingAcronyms.yml +0 -7
  196. package/styles/Microsoft/HeadingColons.yml +0 -8
  197. package/styles/Microsoft/HeadingPunctuation.yml +0 -13
  198. package/styles/Microsoft/Headings.yml +0 -28
  199. package/styles/Microsoft/Hyphens.yml +0 -14
  200. package/styles/Microsoft/Negative.yml +0 -13
  201. package/styles/Microsoft/Ordinal.yml +0 -13
  202. package/styles/Microsoft/OxfordComma.yml +0 -8
  203. package/styles/Microsoft/Passive.yml +0 -183
  204. package/styles/Microsoft/Percentages.yml +0 -7
  205. package/styles/Microsoft/Plurals.yml +0 -7
  206. package/styles/Microsoft/Quotes.yml +0 -7
  207. package/styles/Microsoft/RangeTime.yml +0 -13
  208. package/styles/Microsoft/Semicolon.yml +0 -8
  209. package/styles/Microsoft/SentenceLength.yml +0 -6
  210. package/styles/Microsoft/Spacing.yml +0 -8
  211. package/styles/Microsoft/Suspended.yml +0 -7
  212. package/styles/Microsoft/Terms.yml +0 -42
  213. package/styles/Microsoft/URLFormat.yml +0 -9
  214. package/styles/Microsoft/Units.yml +0 -16
  215. package/styles/Microsoft/Vocab.yml +0 -25
  216. package/styles/Microsoft/We.yml +0 -11
  217. package/styles/Microsoft/Wordiness.yml +0 -127
  218. package/styles/Microsoft/meta.json +0 -4
  219. package/styles/alex/Ablist.yml +0 -274
  220. package/styles/alex/Condescending.yml +0 -16
  221. package/styles/alex/Gendered.yml +0 -110
  222. package/styles/alex/LGBTQ.yml +0 -55
  223. package/styles/alex/OCD.yml +0 -10
  224. package/styles/alex/Press.yml +0 -12
  225. package/styles/alex/ProfanityLikely.yml +0 -1289
  226. package/styles/alex/ProfanityMaybe.yml +0 -282
  227. package/styles/alex/ProfanityUnlikely.yml +0 -251
  228. package/styles/alex/README.md +0 -27
  229. package/styles/alex/Race.yml +0 -85
  230. package/styles/alex/Suicide.yml +0 -26
  231. package/styles/alex/meta.json +0 -4
  232. package/styles/config/vocabularies/Docs/accept.txt +0 -47
  233. package/styles/config/vocabularies/Docs/reject.txt +0 -4
  234. package/styles/proselint/Airlinese.yml +0 -8
  235. package/styles/proselint/AnimalLabels.yml +0 -48
  236. package/styles/proselint/Annotations.yml +0 -9
  237. package/styles/proselint/Apologizing.yml +0 -8
  238. package/styles/proselint/Archaisms.yml +0 -52
  239. package/styles/proselint/But.yml +0 -8
  240. package/styles/proselint/Cliches.yml +0 -782
  241. package/styles/proselint/CorporateSpeak.yml +0 -30
  242. package/styles/proselint/Currency.yml +0 -5
  243. package/styles/proselint/Cursing.yml +0 -15
  244. package/styles/proselint/DateCase.yml +0 -7
  245. package/styles/proselint/DateMidnight.yml +0 -7
  246. package/styles/proselint/DateRedundancy.yml +0 -10
  247. package/styles/proselint/DateSpacing.yml +0 -7
  248. package/styles/proselint/DenizenLabels.yml +0 -52
  249. package/styles/proselint/Diacritical.yml +0 -95
  250. package/styles/proselint/GenderBias.yml +0 -45
  251. package/styles/proselint/GroupTerms.yml +0 -39
  252. package/styles/proselint/Hedging.yml +0 -8
  253. package/styles/proselint/Hyperbole.yml +0 -6
  254. package/styles/proselint/Jargon.yml +0 -11
  255. package/styles/proselint/LGBTOffensive.yml +0 -13
  256. package/styles/proselint/LGBTTerms.yml +0 -15
  257. package/styles/proselint/Malapropisms.yml +0 -8
  258. package/styles/proselint/Needless.yml +0 -358
  259. package/styles/proselint/Nonwords.yml +0 -38
  260. package/styles/proselint/Oxymorons.yml +0 -22
  261. package/styles/proselint/P-Value.yml +0 -6
  262. package/styles/proselint/RASSyndrome.yml +0 -30
  263. package/styles/proselint/README.md +0 -12
  264. package/styles/proselint/Skunked.yml +0 -13
  265. package/styles/proselint/Spelling.yml +0 -17
  266. package/styles/proselint/Typography.yml +0 -11
  267. package/styles/proselint/Uncomparables.yml +0 -50
  268. package/styles/proselint/Very.yml +0 -6
  269. package/styles/proselint/meta.json +0 -15
  270. package/styles/write-good/Cliches.yml +0 -702
  271. package/styles/write-good/E-Prime.yml +0 -32
  272. package/styles/write-good/Illusions.yml +0 -11
  273. package/styles/write-good/Passive.yml +0 -183
  274. package/styles/write-good/README.md +0 -27
  275. package/styles/write-good/So.yml +0 -5
  276. package/styles/write-good/ThereIs.yml +0 -6
  277. package/styles/write-good/TooWordy.yml +0 -221
  278. package/styles/write-good/Weasel.yml +0 -29
  279. package/styles/write-good/meta.json +0 -4
  280. package/test/dashcam.test.js +0 -137
  281. package/test/mcp-example-test.yaml +0 -27
  282. package/test/test_parser.js +0 -47
  283. package/testdriver/acceptance-sdk/QUICK_REFERENCE.md +0 -61
  284. package/testdriver/acceptance-sdk/README.md +0 -128
  285. package/testdriver/acceptance-sdk/TEST_REPORTING.md +0 -245
  286. package/testdriver/acceptance-sdk/assert.test.mjs +0 -26
  287. package/testdriver/acceptance-sdk/hooks-example.test.mjs +0 -38
  288. package/testdriver/acceptance-sdk/presets-example.test.mjs +0 -87
  289. package/testdriver/acceptance-sdk/setup/testHelpers.mjs +0 -420
  290. package/testdriver/acceptance-sdk/sully-ai.test.mjs +0 -234
  291. package/testdriver/acceptance-sdk/type-checking-demo.js +0 -49
  292. package/vale.ini +0 -18
  293. package/vitest.config.example.js +0 -19
  294. package/vitest.config.mjs.bak +0 -44
  295. /package/docs/{ARCHITECTURE.md → v7/_drafts/architecture.mdx} +0 -0
  296. /package/docs/{AWESOME_LOGS_QUICK_REF.md → v7/_drafts/awesome-logs-quick-ref.mdx} +0 -0
  297. /package/docs/v7/{guides → _drafts}/best-practices.mdx +0 -0
  298. /package/docs/v7/{guides → _drafts}/caching-ai.mdx +0 -0
  299. /package/docs/v7/{guides → _drafts}/caching.mdx +0 -0
  300. /package/docs/{MIGRATION.md → v7/_drafts/cli-to-sdk-migration.mdx} +0 -0
  301. /package/{CONTRIBUTING.md → docs/v7/_drafts/contributing.mdx} +0 -0
  302. /package/docs/v7/{progressive-apis/CORE.md → _drafts/core.mdx} +0 -0
  303. /package/docs/v7/{guides → _drafts}/debugging.mdx +0 -0
  304. /package/docs/v7/{guides → _drafts}/faq.mdx +0 -0
  305. /package/docs/v7/{progressive-apis/HOOKS.md → _drafts/hooks.mdx} +0 -0
  306. /package/docs/v7/{guides → _drafts}/migration.mdx +0 -0
  307. /package/docs/v7/{guides → _drafts}/performance.mdx +0 -0
  308. /package/docs/{PRESETS.md → v7/_drafts/presets.mdx} +0 -0
  309. /package/docs/v7/{progressive-apis/PROGRESSIVE_DISCLOSURE.md → _drafts/progressive-disclosure.mdx} +0 -0
  310. /package/docs/v7/{progressive-apis/PROVISION.md → _drafts/provision.mdx} +0 -0
  311. /package/docs/{SDK_AWESOME_LOGS.md → v7/_drafts/sdk-awesome-logs.mdx} +0 -0
  312. /package/docs/{sdk-browser-rendering.md → v7/_drafts/sdk-browser-rendering.mdx} +0 -0
  313. /package/docs/{TEST_RECORDING.md → v7/_drafts/test-recording.mdx} +0 -0
  314. /package/docs/v7/{guides → _drafts}/vitest.mdx +0 -0
  315. /package/docs/v7/{README.md → overview/readme.mdx} +0 -0
  316. /package/{src → lib}/core/index.d.ts +0 -0
  317. /package/{src → lib}/core/index.js +0 -0
  318. /package/{src → lib}/presets/index.mjs +0 -0
  319. /package/{src → lib}/vitest/hooks.d.ts +0 -0
  320. /package/{debug-locate-response.js → test/manual/debug-locate-response.js} +0 -0
  321. /package/{verify-element-api.js → test/manual/verify-element-api.js} +0 -0
  322. /package/{verify-types.js → test/manual/verify-types.js} +0 -0
  323. /package/{testdriver/acceptance-sdk → test/testdriver}/chrome-extension.test.mjs +0 -0
  324. /package/{testdriver/acceptance-sdk → test/testdriver}/setup/globalTeardown.mjs +0 -0
  325. /package/{testdriver/acceptance-sdk → test/testdriver}/setup/vitestSetup.mjs +0 -0
@@ -1,702 +0,0 @@
1
- extends: existence
2
- message: "Try to avoid using clichés like '%s'."
3
- ignorecase: true
4
- level: warning
5
- tokens:
6
- - a chip off the old block
7
- - a clean slate
8
- - a dark and stormy night
9
- - a far cry
10
- - a fine kettle of fish
11
- - a loose cannon
12
- - a penny saved is a penny earned
13
- - a tough row to hoe
14
- - a word to the wise
15
- - ace in the hole
16
- - acid test
17
- - add insult to injury
18
- - against all odds
19
- - air your dirty laundry
20
- - all fun and games
21
- - all in a day's work
22
- - all talk, no action
23
- - all thumbs
24
- - all your eggs in one basket
25
- - all's fair in love and war
26
- - all's well that ends well
27
- - almighty dollar
28
- - American as apple pie
29
- - an axe to grind
30
- - another day, another dollar
31
- - armed to the teeth
32
- - as luck would have it
33
- - as old as time
34
- - as the crow flies
35
- - at loose ends
36
- - at my wits end
37
- - avoid like the plague
38
- - babe in the woods
39
- - back against the wall
40
- - back in the saddle
41
- - back to square one
42
- - back to the drawing board
43
- - bad to the bone
44
- - badge of honor
45
- - bald faced liar
46
- - ballpark figure
47
- - banging your head against a brick wall
48
- - baptism by fire
49
- - barking up the wrong tree
50
- - bat out of hell
51
- - be all and end all
52
- - beat a dead horse
53
- - beat around the bush
54
- - been there, done that
55
- - beggars can't be choosers
56
- - behind the eight ball
57
- - bend over backwards
58
- - benefit of the doubt
59
- - bent out of shape
60
- - best thing since sliced bread
61
- - bet your bottom dollar
62
- - better half
63
- - better late than never
64
- - better mousetrap
65
- - better safe than sorry
66
- - between a rock and a hard place
67
- - beyond the pale
68
- - bide your time
69
- - big as life
70
- - big cheese
71
- - big fish in a small pond
72
- - big man on campus
73
- - bigger they are the harder they fall
74
- - bird in the hand
75
- - bird's eye view
76
- - birds and the bees
77
- - birds of a feather flock together
78
- - bit the hand that feeds you
79
- - bite the bullet
80
- - bite the dust
81
- - bitten off more than he can chew
82
- - black as coal
83
- - black as pitch
84
- - black as the ace of spades
85
- - blast from the past
86
- - bleeding heart
87
- - blessing in disguise
88
- - blind ambition
89
- - blind as a bat
90
- - blind leading the blind
91
- - blood is thicker than water
92
- - blood sweat and tears
93
- - blow off steam
94
- - blow your own horn
95
- - blushing bride
96
- - boils down to
97
- - bolt from the blue
98
- - bone to pick
99
- - bored stiff
100
- - bored to tears
101
- - bottomless pit
102
- - boys will be boys
103
- - bright and early
104
- - brings home the bacon
105
- - broad across the beam
106
- - broken record
107
- - brought back to reality
108
- - bull by the horns
109
- - bull in a china shop
110
- - burn the midnight oil
111
- - burning question
112
- - burning the candle at both ends
113
- - burst your bubble
114
- - bury the hatchet
115
- - busy as a bee
116
- - by hook or by crook
117
- - call a spade a spade
118
- - called onto the carpet
119
- - calm before the storm
120
- - can of worms
121
- - can't cut the mustard
122
- - can't hold a candle to
123
- - case of mistaken identity
124
- - cat got your tongue
125
- - cat's meow
126
- - caught in the crossfire
127
- - caught red-handed
128
- - checkered past
129
- - chomping at the bit
130
- - cleanliness is next to godliness
131
- - clear as a bell
132
- - clear as mud
133
- - close to the vest
134
- - cock and bull story
135
- - cold shoulder
136
- - come hell or high water
137
- - cool as a cucumber
138
- - cool, calm, and collected
139
- - cost a king's ransom
140
- - count your blessings
141
- - crack of dawn
142
- - crash course
143
- - creature comforts
144
- - cross that bridge when you come to it
145
- - crushing blow
146
- - cry like a baby
147
- - cry me a river
148
- - cry over spilt milk
149
- - crystal clear
150
- - curiosity killed the cat
151
- - cut and dried
152
- - cut through the red tape
153
- - cut to the chase
154
- - cute as a bugs ear
155
- - cute as a button
156
- - cute as a puppy
157
- - cuts to the quick
158
- - dark before the dawn
159
- - day in, day out
160
- - dead as a doornail
161
- - devil is in the details
162
- - dime a dozen
163
- - divide and conquer
164
- - dog and pony show
165
- - dog days
166
- - dog eat dog
167
- - dog tired
168
- - don't burn your bridges
169
- - don't count your chickens
170
- - don't look a gift horse in the mouth
171
- - don't rock the boat
172
- - don't step on anyone's toes
173
- - don't take any wooden nickels
174
- - down and out
175
- - down at the heels
176
- - down in the dumps
177
- - down the hatch
178
- - down to earth
179
- - draw the line
180
- - dressed to kill
181
- - dressed to the nines
182
- - drives me up the wall
183
- - dull as dishwater
184
- - dyed in the wool
185
- - eagle eye
186
- - ear to the ground
187
- - early bird catches the worm
188
- - easier said than done
189
- - easy as pie
190
- - eat your heart out
191
- - eat your words
192
- - eleventh hour
193
- - even the playing field
194
- - every dog has its day
195
- - every fiber of my being
196
- - everything but the kitchen sink
197
- - eye for an eye
198
- - face the music
199
- - facts of life
200
- - fair weather friend
201
- - fall by the wayside
202
- - fan the flames
203
- - feast or famine
204
- - feather your nest
205
- - feathered friends
206
- - few and far between
207
- - fifteen minutes of fame
208
- - filthy vermin
209
- - fine kettle of fish
210
- - fish out of water
211
- - fishing for a compliment
212
- - fit as a fiddle
213
- - fit the bill
214
- - fit to be tied
215
- - flash in the pan
216
- - flat as a pancake
217
- - flip your lid
218
- - flog a dead horse
219
- - fly by night
220
- - fly the coop
221
- - follow your heart
222
- - for all intents and purposes
223
- - for the birds
224
- - for what it's worth
225
- - force of nature
226
- - force to be reckoned with
227
- - forgive and forget
228
- - fox in the henhouse
229
- - free and easy
230
- - free as a bird
231
- - fresh as a daisy
232
- - full steam ahead
233
- - fun in the sun
234
- - garbage in, garbage out
235
- - gentle as a lamb
236
- - get a kick out of
237
- - get a leg up
238
- - get down and dirty
239
- - get the lead out
240
- - get to the bottom of
241
- - get your feet wet
242
- - gets my goat
243
- - gilding the lily
244
- - give and take
245
- - go against the grain
246
- - go at it tooth and nail
247
- - go for broke
248
- - go him one better
249
- - go the extra mile
250
- - go with the flow
251
- - goes without saying
252
- - good as gold
253
- - good deed for the day
254
- - good things come to those who wait
255
- - good time was had by all
256
- - good times were had by all
257
- - greased lightning
258
- - greek to me
259
- - green thumb
260
- - green-eyed monster
261
- - grist for the mill
262
- - growing like a weed
263
- - hair of the dog
264
- - hand to mouth
265
- - happy as a clam
266
- - happy as a lark
267
- - hasn't a clue
268
- - have a nice day
269
- - have high hopes
270
- - have the last laugh
271
- - haven't got a row to hoe
272
- - head honcho
273
- - head over heels
274
- - hear a pin drop
275
- - heard it through the grapevine
276
- - heart's content
277
- - heavy as lead
278
- - hem and haw
279
- - high and dry
280
- - high and mighty
281
- - high as a kite
282
- - hit paydirt
283
- - hold your head up high
284
- - hold your horses
285
- - hold your own
286
- - hold your tongue
287
- - honest as the day is long
288
- - horns of a dilemma
289
- - horse of a different color
290
- - hot under the collar
291
- - hour of need
292
- - I beg to differ
293
- - icing on the cake
294
- - if the shoe fits
295
- - if the shoe were on the other foot
296
- - in a jam
297
- - in a jiffy
298
- - in a nutshell
299
- - in a pig's eye
300
- - in a pinch
301
- - in a word
302
- - in hot water
303
- - in the gutter
304
- - in the nick of time
305
- - in the thick of it
306
- - in your dreams
307
- - it ain't over till the fat lady sings
308
- - it goes without saying
309
- - it takes all kinds
310
- - it takes one to know one
311
- - it's a small world
312
- - it's only a matter of time
313
- - ivory tower
314
- - Jack of all trades
315
- - jockey for position
316
- - jog your memory
317
- - joined at the hip
318
- - judge a book by its cover
319
- - jump down your throat
320
- - jump in with both feet
321
- - jump on the bandwagon
322
- - jump the gun
323
- - jump to conclusions
324
- - just a hop, skip, and a jump
325
- - just the ticket
326
- - justice is blind
327
- - keep a stiff upper lip
328
- - keep an eye on
329
- - keep it simple, stupid
330
- - keep the home fires burning
331
- - keep up with the Joneses
332
- - keep your chin up
333
- - keep your fingers crossed
334
- - kick the bucket
335
- - kick up your heels
336
- - kick your feet up
337
- - kid in a candy store
338
- - kill two birds with one stone
339
- - kiss of death
340
- - knock it out of the park
341
- - knock on wood
342
- - knock your socks off
343
- - know him from Adam
344
- - know the ropes
345
- - know the score
346
- - knuckle down
347
- - knuckle sandwich
348
- - knuckle under
349
- - labor of love
350
- - ladder of success
351
- - land on your feet
352
- - lap of luxury
353
- - last but not least
354
- - last hurrah
355
- - last-ditch effort
356
- - law of the jungle
357
- - law of the land
358
- - lay down the law
359
- - leaps and bounds
360
- - let sleeping dogs lie
361
- - let the cat out of the bag
362
- - let the good times roll
363
- - let your hair down
364
- - let's talk turkey
365
- - letter perfect
366
- - lick your wounds
367
- - lies like a rug
368
- - life's a bitch
369
- - life's a grind
370
- - light at the end of the tunnel
371
- - lighter than a feather
372
- - lighter than air
373
- - like clockwork
374
- - like father like son
375
- - like taking candy from a baby
376
- - like there's no tomorrow
377
- - lion's share
378
- - live and learn
379
- - live and let live
380
- - long and short of it
381
- - long lost love
382
- - look before you leap
383
- - look down your nose
384
- - look what the cat dragged in
385
- - looking a gift horse in the mouth
386
- - looks like death warmed over
387
- - loose cannon
388
- - lose your head
389
- - lose your temper
390
- - loud as a horn
391
- - lounge lizard
392
- - loved and lost
393
- - low man on the totem pole
394
- - luck of the draw
395
- - luck of the Irish
396
- - make hay while the sun shines
397
- - make money hand over fist
398
- - make my day
399
- - make the best of a bad situation
400
- - make the best of it
401
- - make your blood boil
402
- - man of few words
403
- - man's best friend
404
- - mark my words
405
- - meaningful dialogue
406
- - missed the boat on that one
407
- - moment in the sun
408
- - moment of glory
409
- - moment of truth
410
- - money to burn
411
- - more power to you
412
- - more than one way to skin a cat
413
- - movers and shakers
414
- - moving experience
415
- - naked as a jaybird
416
- - naked truth
417
- - neat as a pin
418
- - needle in a haystack
419
- - needless to say
420
- - neither here nor there
421
- - never look back
422
- - never say never
423
- - nip and tuck
424
- - nip it in the bud
425
- - no guts, no glory
426
- - no love lost
427
- - no pain, no gain
428
- - no skin off my back
429
- - no stone unturned
430
- - no time like the present
431
- - no use crying over spilled milk
432
- - nose to the grindstone
433
- - not a hope in hell
434
- - not a minute's peace
435
- - not in my backyard
436
- - not playing with a full deck
437
- - not the end of the world
438
- - not written in stone
439
- - nothing to sneeze at
440
- - nothing ventured nothing gained
441
- - now we're cooking
442
- - off the top of my head
443
- - off the wagon
444
- - off the wall
445
- - old hat
446
- - older and wiser
447
- - older than dirt
448
- - older than Methuselah
449
- - on a roll
450
- - on cloud nine
451
- - on pins and needles
452
- - on the bandwagon
453
- - on the money
454
- - on the nose
455
- - on the rocks
456
- - on the spot
457
- - on the tip of my tongue
458
- - on the wagon
459
- - on thin ice
460
- - once bitten, twice shy
461
- - one bad apple doesn't spoil the bushel
462
- - one born every minute
463
- - one brick short
464
- - one foot in the grave
465
- - one in a million
466
- - one red cent
467
- - only game in town
468
- - open a can of worms
469
- - open and shut case
470
- - open the flood gates
471
- - opportunity doesn't knock twice
472
- - out of pocket
473
- - out of sight, out of mind
474
- - out of the frying pan into the fire
475
- - out of the woods
476
- - out on a limb
477
- - over a barrel
478
- - over the hump
479
- - pain and suffering
480
- - pain in the
481
- - panic button
482
- - par for the course
483
- - part and parcel
484
- - party pooper
485
- - pass the buck
486
- - patience is a virtue
487
- - pay through the nose
488
- - penny pincher
489
- - perfect storm
490
- - pig in a poke
491
- - pile it on
492
- - pillar of the community
493
- - pin your hopes on
494
- - pitter patter of little feet
495
- - plain as day
496
- - plain as the nose on your face
497
- - play by the rules
498
- - play your cards right
499
- - playing the field
500
- - playing with fire
501
- - pleased as punch
502
- - plenty of fish in the sea
503
- - point with pride
504
- - poor as a church mouse
505
- - pot calling the kettle black
506
- - pretty as a picture
507
- - pull a fast one
508
- - pull your punches
509
- - pulling your leg
510
- - pure as the driven snow
511
- - put it in a nutshell
512
- - put one over on you
513
- - put the cart before the horse
514
- - put the pedal to the metal
515
- - put your best foot forward
516
- - put your foot down
517
- - quick as a bunny
518
- - quick as a lick
519
- - quick as a wink
520
- - quick as lightning
521
- - quiet as a dormouse
522
- - rags to riches
523
- - raining buckets
524
- - raining cats and dogs
525
- - rank and file
526
- - rat race
527
- - reap what you sow
528
- - red as a beet
529
- - red herring
530
- - reinvent the wheel
531
- - rich and famous
532
- - rings a bell
533
- - ripe old age
534
- - ripped me off
535
- - rise and shine
536
- - road to hell is paved with good intentions
537
- - rob Peter to pay Paul
538
- - roll over in the grave
539
- - rub the wrong way
540
- - ruled the roost
541
- - running in circles
542
- - sad but true
543
- - sadder but wiser
544
- - salt of the earth
545
- - scared stiff
546
- - scared to death
547
- - sealed with a kiss
548
- - second to none
549
- - see eye to eye
550
- - seen the light
551
- - seize the day
552
- - set the record straight
553
- - set the world on fire
554
- - set your teeth on edge
555
- - sharp as a tack
556
- - shoot for the moon
557
- - shoot the breeze
558
- - shot in the dark
559
- - shoulder to the wheel
560
- - sick as a dog
561
- - sigh of relief
562
- - signed, sealed, and delivered
563
- - sink or swim
564
- - six of one, half a dozen of another
565
- - skating on thin ice
566
- - slept like a log
567
- - slinging mud
568
- - slippery as an eel
569
- - slow as molasses
570
- - smart as a whip
571
- - smooth as a baby's bottom
572
- - sneaking suspicion
573
- - snug as a bug in a rug
574
- - sow wild oats
575
- - spare the rod, spoil the child
576
- - speak of the devil
577
- - spilled the beans
578
- - spinning your wheels
579
- - spitting image of
580
- - spoke with relish
581
- - spread like wildfire
582
- - spring to life
583
- - squeaky wheel gets the grease
584
- - stands out like a sore thumb
585
- - start from scratch
586
- - stick in the mud
587
- - still waters run deep
588
- - stitch in time
589
- - stop and smell the roses
590
- - straight as an arrow
591
- - straw that broke the camel's back
592
- - strong as an ox
593
- - stubborn as a mule
594
- - stuff that dreams are made of
595
- - stuffed shirt
596
- - sweating blood
597
- - sweating bullets
598
- - take a load off
599
- - take one for the team
600
- - take the bait
601
- - take the bull by the horns
602
- - take the plunge
603
- - takes one to know one
604
- - takes two to tango
605
- - the more the merrier
606
- - the real deal
607
- - the real McCoy
608
- - the red carpet treatment
609
- - the same old story
610
- - there is no accounting for taste
611
- - thick as a brick
612
- - thick as thieves
613
- - thin as a rail
614
- - think outside of the box
615
- - third time's the charm
616
- - this day and age
617
- - this hurts me worse than it hurts you
618
- - this point in time
619
- - three sheets to the wind
620
- - through thick and thin
621
- - throw in the towel
622
- - tie one on
623
- - tighter than a drum
624
- - time and time again
625
- - time is of the essence
626
- - tip of the iceberg
627
- - tired but happy
628
- - to coin a phrase
629
- - to each his own
630
- - to make a long story short
631
- - to the best of my knowledge
632
- - toe the line
633
- - tongue in cheek
634
- - too good to be true
635
- - too hot to handle
636
- - too numerous to mention
637
- - touch with a ten foot pole
638
- - tough as nails
639
- - trial and error
640
- - trials and tribulations
641
- - tried and true
642
- - trip down memory lane
643
- - twist of fate
644
- - two cents worth
645
- - two peas in a pod
646
- - ugly as sin
647
- - under the counter
648
- - under the gun
649
- - under the same roof
650
- - under the weather
651
- - until the cows come home
652
- - unvarnished truth
653
- - up the creek
654
- - uphill battle
655
- - upper crust
656
- - upset the applecart
657
- - vain attempt
658
- - vain effort
659
- - vanquish the enemy
660
- - vested interest
661
- - waiting for the other shoe to drop
662
- - wakeup call
663
- - warm welcome
664
- - watch your p's and q's
665
- - watch your tongue
666
- - watching the clock
667
- - water under the bridge
668
- - weather the storm
669
- - weed them out
670
- - week of Sundays
671
- - went belly up
672
- - wet behind the ears
673
- - what goes around comes around
674
- - what you see is what you get
675
- - when it rains, it pours
676
- - when push comes to shove
677
- - when the cat's away
678
- - when the going gets tough, the tough get going
679
- - white as a sheet
680
- - whole ball of wax
681
- - whole hog
682
- - whole nine yards
683
- - wild goose chase
684
- - will wonders never cease?
685
- - wisdom of the ages
686
- - wise as an owl
687
- - wolf at the door
688
- - words fail me
689
- - work like a dog
690
- - world weary
691
- - worst nightmare
692
- - worth its weight in gold
693
- - wrong side of the bed
694
- - yanking your chain
695
- - yappy as a dog
696
- - years young
697
- - you are what you eat
698
- - you can run but you can't hide
699
- - you only live once
700
- - you're the boss
701
- - young and foolish
702
- - young and vibrant
@@ -1,32 +0,0 @@
1
- extends: existence
2
- message: "Try to avoid using '%s'."
3
- ignorecase: true
4
- level: suggestion
5
- tokens:
6
- - am
7
- - are
8
- - aren't
9
- - be
10
- - been
11
- - being
12
- - he's
13
- - here's
14
- - here's
15
- - how's
16
- - i'm
17
- - is
18
- - isn't
19
- - it's
20
- - she's
21
- - that's
22
- - there's
23
- - they're
24
- - was
25
- - wasn't
26
- - we're
27
- - were
28
- - weren't
29
- - what's
30
- - where's
31
- - who's
32
- - you're