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,782 +0,0 @@
1
- extends: existence
2
- message: "'%s' is a cliche."
3
- level: error
4
- ignorecase: true
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 fate worse than death
11
- - a fine kettle of fish
12
- - a loose cannon
13
- - a penny saved is a penny earned
14
- - a tough row to hoe
15
- - a word to the wise
16
- - ace in the hole
17
- - acid test
18
- - add insult to injury
19
- - against all odds
20
- - air your dirty laundry
21
- - alas and alack
22
- - all fun and games
23
- - all hell broke loose
24
- - all in a day's work
25
- - all talk, no action
26
- - all thumbs
27
- - all your eggs in one basket
28
- - all's fair in love and war
29
- - all's well that ends well
30
- - almighty dollar
31
- - American as apple pie
32
- - an axe to grind
33
- - another day, another dollar
34
- - armed to the teeth
35
- - as luck would have it
36
- - as old as time
37
- - as the crow flies
38
- - at loose ends
39
- - at my wits end
40
- - at the end of the day
41
- - avoid like the plague
42
- - babe in the woods
43
- - back against the wall
44
- - back in the saddle
45
- - back to square one
46
- - back to the drawing board
47
- - bad to the bone
48
- - badge of honor
49
- - bald faced liar
50
- - bald-faced lie
51
- - ballpark figure
52
- - banging your head against a brick wall
53
- - baptism by fire
54
- - barking up the wrong tree
55
- - bat out of hell
56
- - be all and end all
57
- - beat a dead horse
58
- - beat around the bush
59
- - been there, done that
60
- - beggars can't be choosers
61
- - behind the eight ball
62
- - bend over backwards
63
- - benefit of the doubt
64
- - bent out of shape
65
- - best thing since sliced bread
66
- - bet your bottom dollar
67
- - better half
68
- - better late than never
69
- - better mousetrap
70
- - better safe than sorry
71
- - between a rock and a hard place
72
- - between a rock and a hard place
73
- - between Scylla and Charybdis
74
- - between the devil and the deep blue see
75
- - betwixt and between
76
- - beyond the pale
77
- - bide your time
78
- - big as life
79
- - big cheese
80
- - big fish in a small pond
81
- - big man on campus
82
- - bigger they are the harder they fall
83
- - bird in the hand
84
- - bird's eye view
85
- - birds and the bees
86
- - birds of a feather flock together
87
- - bit the hand that feeds you
88
- - bite the bullet
89
- - bite the dust
90
- - bitten off more than he can chew
91
- - black as coal
92
- - black as pitch
93
- - black as the ace of spades
94
- - blast from the past
95
- - bleeding heart
96
- - blessing in disguise
97
- - blind ambition
98
- - blind as a bat
99
- - blind leading the blind
100
- - blissful ignorance
101
- - blood is thicker than water
102
- - blood sweat and tears
103
- - blow a fuse
104
- - blow off steam
105
- - blow your own horn
106
- - blushing bride
107
- - boils down to
108
- - bolt from the blue
109
- - bone to pick
110
- - bored stiff
111
- - bored to tears
112
- - bottomless pit
113
- - boys will be boys
114
- - bright and early
115
- - brings home the bacon
116
- - broad across the beam
117
- - broken record
118
- - brought back to reality
119
- - bulk large
120
- - bull by the horns
121
- - bull in a china shop
122
- - burn the midnight oil
123
- - burning question
124
- - burning the candle at both ends
125
- - burst your bubble
126
- - bury the hatchet
127
- - busy as a bee
128
- - but that's another story
129
- - by hook or by crook
130
- - call a spade a spade
131
- - called onto the carpet
132
- - calm before the storm
133
- - can of worms
134
- - can't cut the mustard
135
- - can't hold a candle to
136
- - case of mistaken identity
137
- - cast aspersions
138
- - cat got your tongue
139
- - cat's meow
140
- - caught in the crossfire
141
- - caught red-handed
142
- - chase a red herring
143
- - checkered past
144
- - chomping at the bit
145
- - cleanliness is next to godliness
146
- - clear as a bell
147
- - clear as mud
148
- - close to the vest
149
- - cock and bull story
150
- - cold shoulder
151
- - come hell or high water
152
- - comparing apples and oranges
153
- - compleat
154
- - conspicuous by its absence
155
- - cool as a cucumber
156
- - cool, calm, and collected
157
- - cost a king's ransom
158
- - count your blessings
159
- - crack of dawn
160
- - crash course
161
- - creature comforts
162
- - cross that bridge when you come to it
163
- - crushing blow
164
- - cry like a baby
165
- - cry me a river
166
- - cry over spilt milk
167
- - crystal clear
168
- - crystal clear
169
- - curiosity killed the cat
170
- - cut and dried
171
- - cut through the red tape
172
- - cut to the chase
173
- - cute as a bugs ear
174
- - cute as a button
175
- - cute as a puppy
176
- - cuts to the quick
177
- - cutting edge
178
- - dark before the dawn
179
- - day in, day out
180
- - dead as a doornail
181
- - decision-making process
182
- - devil is in the details
183
- - dime a dozen
184
- - divide and conquer
185
- - dog and pony show
186
- - dog days
187
- - dog eat dog
188
- - dog tired
189
- - don't burn your bridges
190
- - don't count your chickens
191
- - don't look a gift horse in the mouth
192
- - don't rock the boat
193
- - don't step on anyone's toes
194
- - don't take any wooden nickels
195
- - down and out
196
- - down at the heels
197
- - down in the dumps
198
- - down the hatch
199
- - down to earth
200
- - draw the line
201
- - dressed to kill
202
- - dressed to the nines
203
- - drives me up the wall
204
- - dubious distinction
205
- - dull as dishwater
206
- - duly authorized
207
- - dyed in the wool
208
- - eagle eye
209
- - ear to the ground
210
- - early bird catches the worm
211
- - easier said than done
212
- - easy as pie
213
- - eat your heart out
214
- - eat your words
215
- - eleventh hour
216
- - even the playing field
217
- - every dog has its day
218
- - every fiber of my being
219
- - everything but the kitchen sink
220
- - eye for an eye
221
- - eyes peeled
222
- - face the music
223
- - facts of life
224
- - fair weather friend
225
- - fall by the wayside
226
- - fan the flames
227
- - far be it from me
228
- - fast and loose
229
- - feast or famine
230
- - feather your nest
231
- - feathered friends
232
- - few and far between
233
- - fifteen minutes of fame
234
- - fills the bill
235
- - filthy vermin
236
- - fine kettle of fish
237
- - first and foremost
238
- - fish out of water
239
- - fishing for a compliment
240
- - fit as a fiddle
241
- - fit the bill
242
- - fit to be tied
243
- - flash in the pan
244
- - flat as a pancake
245
- - flip your lid
246
- - flog a dead horse
247
- - fly by night
248
- - fly the coop
249
- - follow your heart
250
- - for all intents and purposes
251
- - for free
252
- - for the birds
253
- - for what it's worth
254
- - force of nature
255
- - force to be reckoned with
256
- - forgive and forget
257
- - fox in the henhouse
258
- - free and easy
259
- - free as a bird
260
- - fresh as a daisy
261
- - full steam ahead
262
- - fun in the sun
263
- - garbage in, garbage out
264
- - gentle as a lamb
265
- - get a kick out of
266
- - get a leg up
267
- - get down and dirty
268
- - get the lead out
269
- - get to the bottom of
270
- - get with the program
271
- - get your feet wet
272
- - gets my goat
273
- - gilding the lily
274
- - gilding the lily
275
- - give and take
276
- - go against the grain
277
- - go at it tooth and nail
278
- - go for broke
279
- - go him one better
280
- - go the extra mile
281
- - go with the flow
282
- - goes without saying
283
- - good as gold
284
- - good deed for the day
285
- - good things come to those who wait
286
- - good time was had by all
287
- - good times were had by all
288
- - greased lightning
289
- - greek to me
290
- - green thumb
291
- - green-eyed monster
292
- - grist for the mill
293
- - growing like a weed
294
- - hair of the dog
295
- - hand to mouth
296
- - happy as a clam
297
- - happy as a lark
298
- - hasn't a clue
299
- - have a nice day
300
- - have a short fuse
301
- - have high hopes
302
- - have the last laugh
303
- - haven't got a row to hoe
304
- - he's got his hands full
305
- - head honcho
306
- - head over heels
307
- - hear a pin drop
308
- - heard it through the grapevine
309
- - heart's content
310
- - heavy as lead
311
- - hem and haw
312
- - high and dry
313
- - high and mighty
314
- - high as a kite
315
- - his own worst enemy
316
- - his work cut out for him
317
- - hit paydirt
318
- - hither and yon
319
- - Hobson's choice
320
- - hold your head up high
321
- - hold your horses
322
- - hold your own
323
- - hold your tongue
324
- - honest as the day is long
325
- - horns of a dilemma
326
- - horns of a dilemma
327
- - horse of a different color
328
- - hot under the collar
329
- - hour of need
330
- - I beg to differ
331
- - icing on the cake
332
- - if the shoe fits
333
- - if the shoe were on the other foot
334
- - if you catch my drift
335
- - in a jam
336
- - in a jiffy
337
- - in a nutshell
338
- - in a pig's eye
339
- - in a pinch
340
- - in a word
341
- - in hot water
342
- - in light of
343
- - in the final analysis
344
- - in the gutter
345
- - in the last analysis
346
- - in the nick of time
347
- - in the thick of it
348
- - in your dreams
349
- - innocent bystander
350
- - it ain't over till the fat lady sings
351
- - it goes without saying
352
- - it takes all kinds
353
- - it takes one to know one
354
- - it's a small world
355
- - it's not what you know, it's who you know
356
- - it's only a matter of time
357
- - ivory tower
358
- - Jack of all trades
359
- - jockey for position
360
- - jog your memory
361
- - joined at the hip
362
- - judge a book by its cover
363
- - jump down your throat
364
- - jump in with both feet
365
- - jump on the bandwagon
366
- - jump the gun
367
- - jump to conclusions
368
- - just a hop, skip, and a jump
369
- - just the ticket
370
- - justice is blind
371
- - keep a stiff upper lip
372
- - keep an eye on
373
- - keep it simple, stupid
374
- - keep the home fires burning
375
- - keep up with the Joneses
376
- - keep your chin up
377
- - keep your fingers crossed
378
- - kick the bucket
379
- - kick up your heels
380
- - kick your feet up
381
- - kid in a candy store
382
- - kill two birds with one stone
383
- - kiss of death
384
- - knock it out of the park
385
- - knock on wood
386
- - knock your socks off
387
- - know him from Adam
388
- - know the ropes
389
- - know the score
390
- - knuckle down
391
- - knuckle sandwich
392
- - knuckle under
393
- - labor of love
394
- - ladder of success
395
- - land on your feet
396
- - lap of luxury
397
- - last but not least
398
- - last but not least
399
- - last hurrah
400
- - last-ditch effort
401
- - law of the jungle
402
- - law of the land
403
- - lay down the law
404
- - leaps and bounds
405
- - let sleeping dogs lie
406
- - let the cat out of the bag
407
- - let the good times roll
408
- - let your hair down
409
- - let's talk turkey
410
- - letter perfect
411
- - lick your wounds
412
- - lies like a rug
413
- - life's a bitch
414
- - life's a grind
415
- - light at the end of the tunnel
416
- - lighter than a feather
417
- - lighter than air
418
- - like clockwork
419
- - like father like son
420
- - like taking candy from a baby
421
- - like there's no tomorrow
422
- - lion's share
423
- - live and learn
424
- - live and let live
425
- - long and short of it
426
- - long lost love
427
- - look before you leap
428
- - look down your nose
429
- - look what the cat dragged in
430
- - looking a gift horse in the mouth
431
- - looks like death warmed over
432
- - loose cannon
433
- - lose your head
434
- - lose your temper
435
- - loud as a horn
436
- - lounge lizard
437
- - loved and lost
438
- - low man on the totem pole
439
- - luck of the draw
440
- - luck of the Irish
441
- - make a mockery of
442
- - make hay while the sun shines
443
- - make money hand over fist
444
- - make my day
445
- - make the best of a bad situation
446
- - make the best of it
447
- - make your blood boil
448
- - male chauvinism
449
- - man of few words
450
- - man's best friend
451
- - mark my words
452
- - meaningful dialogue
453
- - missed the boat on that one
454
- - moment in the sun
455
- - moment of glory
456
- - moment of truth
457
- - moment of truth
458
- - money to burn
459
- - more in sorrow than in anger
460
- - more power to you
461
- - more sinned against than sinning
462
- - more than one way to skin a cat
463
- - movers and shakers
464
- - moving experience
465
- - my better half
466
- - naked as a jaybird
467
- - naked truth
468
- - neat as a pin
469
- - needle in a haystack
470
- - needless to say
471
- - neither here nor there
472
- - never look back
473
- - never say never
474
- - nip and tuck
475
- - nip in the bud
476
- - nip it in the bud
477
- - no guts, no glory
478
- - no love lost
479
- - no pain, no gain
480
- - no skin off my back
481
- - no stone unturned
482
- - no time like the present
483
- - no use crying over spilled milk
484
- - nose to the grindstone
485
- - not a hope in hell
486
- - not a minute's peace
487
- - not in my backyard
488
- - not playing with a full deck
489
- - not the end of the world
490
- - not written in stone
491
- - nothing to sneeze at
492
- - nothing ventured nothing gained
493
- - now we're cooking
494
- - off the top of my head
495
- - off the wagon
496
- - off the wall
497
- - old hat
498
- - olden days
499
- - older and wiser
500
- - older than dirt
501
- - older than Methuselah
502
- - on a roll
503
- - on cloud nine
504
- - on pins and needles
505
- - on the bandwagon
506
- - on the money
507
- - on the nose
508
- - on the rocks
509
- - on the same page
510
- - on the spot
511
- - on the tip of my tongue
512
- - on the wagon
513
- - on thin ice
514
- - once bitten, twice shy
515
- - one bad apple doesn't spoil the bushel
516
- - one born every minute
517
- - one brick short
518
- - one foot in the grave
519
- - one in a million
520
- - one red cent
521
- - only game in town
522
- - open a can of worms
523
- - open and shut case
524
- - open the flood gates
525
- - opportunity doesn't knock twice
526
- - out of pocket
527
- - out of sight, out of mind
528
- - out of the frying pan into the fire
529
- - out of the woods
530
- - out on a limb
531
- - over a barrel
532
- - over the hump
533
- - pain and suffering
534
- - pain in the
535
- - panic button
536
- - par for the course
537
- - part and parcel
538
- - party pooper
539
- - pass the buck
540
- - patience is a virtue
541
- - pay through the nose
542
- - penny pincher
543
- - perfect storm
544
- - pig in a poke
545
- - pile it on
546
- - pillar of the community
547
- - pin your hopes on
548
- - pitter patter of little feet
549
- - plain as day
550
- - plain as the nose on your face
551
- - play by the rules
552
- - play your cards right
553
- - playing the field
554
- - playing with fire
555
- - pleased as punch
556
- - plenty of fish in the sea
557
- - point with pride
558
- - poor as a church mouse
559
- - pot calling the kettle black
560
- - presidential timber
561
- - pretty as a picture
562
- - pull a fast one
563
- - pull your punches
564
- - pulled no punches
565
- - pulling your leg
566
- - pure as the driven snow
567
- - put it in a nutshell
568
- - put one over on you
569
- - put the cart before the horse
570
- - put the pedal to the metal
571
- - put your best foot forward
572
- - put your foot down
573
- - quantum jump
574
- - quantum leap
575
- - quick as a bunny
576
- - quick as a lick
577
- - quick as a wink
578
- - quick as lightning
579
- - quiet as a dormouse
580
- - rags to riches
581
- - raining buckets
582
- - raining cats and dogs
583
- - rank and file
584
- - rat race
585
- - reap what you sow
586
- - red as a beet
587
- - red herring
588
- - redound to one's credit
589
- - redound to the benefit of
590
- - reinvent the wheel
591
- - rich and famous
592
- - rings a bell
593
- - ripe old age
594
- - ripped me off
595
- - rise and shine
596
- - road to hell is paved with good intentions
597
- - rob Peter to pay Paul
598
- - roll over in the grave
599
- - rub the wrong way
600
- - ruled the roost
601
- - running in circles
602
- - sad but true
603
- - sadder but wiser
604
- - salt of the earth
605
- - scared stiff
606
- - scared to death
607
- - sea change
608
- - sealed with a kiss
609
- - second to none
610
- - see eye to eye
611
- - seen the light
612
- - seize the day
613
- - set the record straight
614
- - set the world on fire
615
- - set your teeth on edge
616
- - sharp as a tack
617
- - shirked his duties
618
- - shoot for the moon
619
- - shoot the breeze
620
- - shot in the dark
621
- - shoulder to the wheel
622
- - sick as a dog
623
- - sigh of relief
624
- - signed, sealed, and delivered
625
- - sink or swim
626
- - six of one, half a dozen of another
627
- - six of one, half a dozen of the other
628
- - skating on thin ice
629
- - slept like a log
630
- - slinging mud
631
- - slippery as an eel
632
- - slow as molasses
633
- - smart as a whip
634
- - smooth as a baby's bottom
635
- - sneaking suspicion
636
- - snug as a bug in a rug
637
- - sow wild oats
638
- - spare the rod, spoil the child
639
- - speak of the devil
640
- - spilled the beans
641
- - spinning your wheels
642
- - spitting image of
643
- - spoke with relish
644
- - spread like wildfire
645
- - spring to life
646
- - squeaky wheel gets the grease
647
- - stands out like a sore thumb
648
- - start from scratch
649
- - stick in the mud
650
- - still waters run deep
651
- - stitch in time
652
- - stop and smell the roses
653
- - straight as an arrow
654
- - straw that broke the camel's back
655
- - stretched to the breaking point
656
- - strong as an ox
657
- - stubborn as a mule
658
- - stuff that dreams are made of
659
- - stuffed shirt
660
- - sweating blood
661
- - sweating bullets
662
- - take a load off
663
- - take one for the team
664
- - take the bait
665
- - take the bull by the horns
666
- - take the plunge
667
- - takes one to know one
668
- - takes two to tango
669
- - than you can shake a stick at
670
- - the cream of the crop
671
- - the cream rises to the top
672
- - the more the merrier
673
- - the real deal
674
- - the real McCoy
675
- - the red carpet treatment
676
- - the same old story
677
- - the straw that broke the camel's back
678
- - there is no accounting for taste
679
- - thick as a brick
680
- - thick as thieves
681
- - thick as thieves
682
- - thin as a rail
683
- - think outside of the box
684
- - thinking outside the box
685
- - third time's the charm
686
- - this day and age
687
- - this hurts me worse than it hurts you
688
- - this point in time
689
- - thought leaders?
690
- - three sheets to the wind
691
- - through thick and thin
692
- - throw in the towel
693
- - throw the baby out with the bathwater
694
- - tie one on
695
- - tighter than a drum
696
- - time and time again
697
- - time is of the essence
698
- - tip of the iceberg
699
- - tired but happy
700
- - to coin a phrase
701
- - to each his own
702
- - to make a long story short
703
- - to the best of my knowledge
704
- - toe the line
705
- - tongue in cheek
706
- - too good to be true
707
- - too hot to handle
708
- - too numerous to mention
709
- - touch with a ten foot pole
710
- - tough as nails
711
- - trial and error
712
- - trials and tribulations
713
- - tried and true
714
- - trip down memory lane
715
- - twist of fate
716
- - two cents worth
717
- - two peas in a pod
718
- - ugly as sin
719
- - under the counter
720
- - under the gun
721
- - under the same roof
722
- - under the weather
723
- - until the cows come home
724
- - unvarnished truth
725
- - up the creek
726
- - uphill battle
727
- - upper crust
728
- - upset the applecart
729
- - vain attempt
730
- - vain effort
731
- - vanquish the enemy
732
- - various and sundry
733
- - vested interest
734
- - viable alternative
735
- - waiting for the other shoe to drop
736
- - wakeup call
737
- - warm welcome
738
- - watch your p's and q's
739
- - watch your tongue
740
- - watching the clock
741
- - water under the bridge
742
- - wax eloquent
743
- - wax poetic
744
- - we've got a situation here
745
- - weather the storm
746
- - weed them out
747
- - week of Sundays
748
- - went belly up
749
- - wet behind the ears
750
- - what goes around comes around
751
- - what you see is what you get
752
- - when it rains, it pours
753
- - when push comes to shove
754
- - when the cat's away
755
- - when the going gets tough, the tough get going
756
- - whet (?:the|your) appetite
757
- - white as a sheet
758
- - whole ball of wax
759
- - whole hog
760
- - whole nine yards
761
- - wild goose chase
762
- - will wonders never cease?
763
- - wisdom of the ages
764
- - wise as an owl
765
- - wolf at the door
766
- - wool pulled over our eyes
767
- - words fail me
768
- - work like a dog
769
- - world weary
770
- - worst nightmare
771
- - worth its weight in gold
772
- - writ large
773
- - wrong side of the bed
774
- - yanking your chain
775
- - yappy as a dog
776
- - years young
777
- - you are what you eat
778
- - you can run but you can't hide
779
- - you only live once
780
- - you're the boss
781
- - young and foolish
782
- - young and vibrant