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,13 +0,0 @@
1
- extends: substitution
2
- message: "Use '%s' instead of '%s'."
3
- link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words
4
- ignorecase: true
5
- level: error
6
- nonword: true
7
- action:
8
- name: replace
9
- swap:
10
- '\b(?:eg|e\.g\.)[\s,]': for example
11
- '\b(?:ie|i\.e\.)[\s,]': that is
12
- '\b(?:viz\.)[\s,]': namely
13
- '\b(?:ergo)[\s,]': therefore
@@ -1,8 +0,0 @@
1
- extends: existence
2
- message: "Don't use '%s'."
3
- link: https://github.com/MicrosoftDocs/microsoft-style-guide/blob/master/styleguide/grammar/nouns-pronouns.md#pronouns-and-gender
4
- level: error
5
- ignorecase: true
6
- tokens:
7
- - he/she
8
- - s/he
@@ -1,42 +0,0 @@
1
- extends: substitution
2
- message: "Consider using '%s' instead of '%s'."
3
- ignorecase: true
4
- level: error
5
- action:
6
- name: replace
7
- swap:
8
- (?:alumna|alumnus): graduate
9
- (?:alumnae|alumni): graduates
10
- air(?:m[ae]n|wom[ae]n): pilot(s)
11
- anchor(?:m[ae]n|wom[ae]n): anchor(s)
12
- authoress: author
13
- camera(?:m[ae]n|wom[ae]n): camera operator(s)
14
- door(?:m[ae]|wom[ae]n): concierge(s)
15
- draft(?:m[ae]n|wom[ae]n): drafter(s)
16
- fire(?:m[ae]n|wom[ae]n): firefighter(s)
17
- fisher(?:m[ae]n|wom[ae]n): fisher(s)
18
- fresh(?:m[ae]n|wom[ae]n): first-year student(s)
19
- garbage(?:m[ae]n|wom[ae]n): waste collector(s)
20
- lady lawyer: lawyer
21
- ladylike: courteous
22
- mail(?:m[ae]n|wom[ae]n): mail carriers
23
- man and wife: husband and wife
24
- man enough: strong enough
25
- mankind: human kind
26
- manmade: manufactured
27
- manpower: personnel
28
- middle(?:m[ae]n|wom[ae]n): intermediary
29
- news(?:m[ae]n|wom[ae]n): journalist(s)
30
- ombuds(?:man|woman): ombuds
31
- oneupmanship: upstaging
32
- poetess: poet
33
- police(?:m[ae]n|wom[ae]n): police officer(s)
34
- repair(?:m[ae]n|wom[ae]n): technician(s)
35
- sales(?:m[ae]n|wom[ae]n): salesperson or sales people
36
- service(?:m[ae]n|wom[ae]n): soldier(s)
37
- steward(?:ess)?: flight attendant
38
- tribes(?:m[ae]n|wom[ae]n): tribe member(s)
39
- waitress: waiter
40
- woman doctor: doctor
41
- woman scientist[s]?: scientist(s)
42
- work(?:m[ae]n|wom[ae]n): worker(s)
@@ -1,11 +0,0 @@
1
- extends: existence
2
- message: "For a general audience, use 'address' rather than 'URL'."
3
- link: https://docs.microsoft.com/en-us/style-guide/urls-web-addresses
4
- level: warning
5
- action:
6
- name: replace
7
- params:
8
- - URL
9
- - address
10
- tokens:
11
- - URL
@@ -1,7 +0,0 @@
1
- extends: existence
2
- message: "Avoid using acronyms in a title or heading."
3
- link: https://docs.microsoft.com/en-us/style-guide/acronyms#be-careful-with-acronyms-in-titles-and-headings
4
- level: warning
5
- scope: heading
6
- tokens:
7
- - "[A-Z]{2,4}"
@@ -1,8 +0,0 @@
1
- extends: existence
2
- message: "Capitalize '%s'."
3
- link: https://docs.microsoft.com/en-us/style-guide/punctuation/colons
4
- nonword: true
5
- level: error
6
- scope: heading
7
- tokens:
8
- - ':\s[a-z]'
@@ -1,13 +0,0 @@
1
- extends: existence
2
- message: "Don't use end punctuation in headings."
3
- link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods
4
- nonword: true
5
- level: warning
6
- scope: heading
7
- action:
8
- name: edit
9
- params:
10
- - trim_right
11
- - ".?!"
12
- tokens:
13
- - "[a-z][.?!]$"
@@ -1,28 +0,0 @@
1
- extends: capitalization
2
- message: "'%s' should use sentence-style capitalization."
3
- link: https://docs.microsoft.com/en-us/style-guide/capitalization
4
- level: suggestion
5
- scope: heading
6
- match: $sentence
7
- indicators:
8
- - ":"
9
- exceptions:
10
- - Azure
11
- - CLI
12
- - Code
13
- - Cosmos
14
- - Docker
15
- - Emmet
16
- - I
17
- - Kubernetes
18
- - Linux
19
- - macOS
20
- - Marketplace
21
- - MongoDB
22
- - REPL
23
- - Studio
24
- - TypeScript
25
- - URLs
26
- - Visual
27
- - VS
28
- - Windows
@@ -1,14 +0,0 @@
1
- extends: existence
2
- message: "'%s' doesn't need a hyphen."
3
- link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens
4
- level: warning
5
- ignorecase: false
6
- nonword: true
7
- action:
8
- name: edit
9
- params:
10
- - regex
11
- - "-"
12
- - " "
13
- tokens:
14
- - '\b[^\s-]+ly-\w+\b'
@@ -1,13 +0,0 @@
1
- extends: existence
2
- message: "Form a negative number with an en dash, not a hyphen."
3
- link: https://docs.microsoft.com/en-us/style-guide/numbers
4
- nonword: true
5
- level: error
6
- action:
7
- name: edit
8
- params:
9
- - regex
10
- - "-"
11
- - "–"
12
- tokens:
13
- - '(?<=\s)-\d+(?:\.\d+)?\b'
@@ -1,13 +0,0 @@
1
- extends: existence
2
- message: "Don't add -ly to an ordinal number."
3
- link: https://docs.microsoft.com/en-us/style-guide/numbers
4
- level: error
5
- action:
6
- name: edit
7
- params:
8
- - trim
9
- - ly
10
- tokens:
11
- - firstly
12
- - secondly
13
- - thirdly
@@ -1,8 +0,0 @@
1
- extends: existence
2
- message: "Use the Oxford comma in '%s'."
3
- link: https://docs.microsoft.com/en-us/style-guide/punctuation/commas
4
- scope: sentence
5
- level: suggestion
6
- nonword: true
7
- tokens:
8
- - '(?:[^\s,]+,){1,} \w+ (?:and|or) \w+[.?!]'
@@ -1,183 +0,0 @@
1
- extends: existence
2
- message: "'%s' looks like passive voice."
3
- ignorecase: true
4
- level: suggestion
5
- raw:
6
- - \b(am|are|were|being|is|been|was|be)\b\s*
7
- tokens:
8
- - '[\w]+ed'
9
- - awoken
10
- - beat
11
- - become
12
- - been
13
- - begun
14
- - bent
15
- - beset
16
- - bet
17
- - bid
18
- - bidden
19
- - bitten
20
- - bled
21
- - blown
22
- - born
23
- - bought
24
- - bound
25
- - bred
26
- - broadcast
27
- - broken
28
- - brought
29
- - built
30
- - burnt
31
- - burst
32
- - cast
33
- - caught
34
- - chosen
35
- - clung
36
- - come
37
- - cost
38
- - crept
39
- - cut
40
- - dealt
41
- - dived
42
- - done
43
- - drawn
44
- - dreamt
45
- - driven
46
- - drunk
47
- - dug
48
- - eaten
49
- - fallen
50
- - fed
51
- - felt
52
- - fit
53
- - fled
54
- - flown
55
- - flung
56
- - forbidden
57
- - foregone
58
- - forgiven
59
- - forgotten
60
- - forsaken
61
- - fought
62
- - found
63
- - frozen
64
- - given
65
- - gone
66
- - gotten
67
- - ground
68
- - grown
69
- - heard
70
- - held
71
- - hidden
72
- - hit
73
- - hung
74
- - hurt
75
- - kept
76
- - knelt
77
- - knit
78
- - known
79
- - laid
80
- - lain
81
- - leapt
82
- - learnt
83
- - led
84
- - left
85
- - lent
86
- - let
87
- - lighted
88
- - lost
89
- - made
90
- - meant
91
- - met
92
- - misspelt
93
- - mistaken
94
- - mown
95
- - overcome
96
- - overdone
97
- - overtaken
98
- - overthrown
99
- - paid
100
- - pled
101
- - proven
102
- - put
103
- - quit
104
- - read
105
- - rid
106
- - ridden
107
- - risen
108
- - run
109
- - rung
110
- - said
111
- - sat
112
- - sawn
113
- - seen
114
- - sent
115
- - set
116
- - sewn
117
- - shaken
118
- - shaven
119
- - shed
120
- - shod
121
- - shone
122
- - shorn
123
- - shot
124
- - shown
125
- - shrunk
126
- - shut
127
- - slain
128
- - slept
129
- - slid
130
- - slit
131
- - slung
132
- - smitten
133
- - sold
134
- - sought
135
- - sown
136
- - sped
137
- - spent
138
- - spilt
139
- - spit
140
- - split
141
- - spoken
142
- - spread
143
- - sprung
144
- - spun
145
- - stolen
146
- - stood
147
- - stridden
148
- - striven
149
- - struck
150
- - strung
151
- - stuck
152
- - stung
153
- - stunk
154
- - sung
155
- - sunk
156
- - swept
157
- - swollen
158
- - sworn
159
- - swum
160
- - swung
161
- - taken
162
- - taught
163
- - thought
164
- - thrived
165
- - thrown
166
- - thrust
167
- - told
168
- - torn
169
- - trodden
170
- - understood
171
- - upheld
172
- - upset
173
- - wed
174
- - wept
175
- - withheld
176
- - withstood
177
- - woken
178
- - won
179
- - worn
180
- - wound
181
- - woven
182
- - written
183
- - wrung
@@ -1,7 +0,0 @@
1
- extends: existence
2
- message: "Use a numeral plus the units."
3
- link: https://docs.microsoft.com/en-us/style-guide/numbers
4
- nonword: true
5
- level: error
6
- tokens:
7
- - '\b[a-zA-z]+\spercent\b'
@@ -1,7 +0,0 @@
1
- extends: existence
2
- message: "Don't add '%s' to a singular noun. Use plural instead."
3
- ignorecase: true
4
- level: error
5
- link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/s/s-es
6
- raw:
7
- - '\(s\)|\(es\)'
@@ -1,7 +0,0 @@
1
- extends: existence
2
- message: "Punctuation should be inside the quotes."
3
- link: https://docs.microsoft.com/en-us/style-guide/punctuation/quotation-marks
4
- level: error
5
- nonword: true
6
- tokens:
7
- - '["“][^"”“]+["”][.,]'
@@ -1,13 +0,0 @@
1
- extends: existence
2
- message: "Use 'to' instead of a dash in '%s'."
3
- link: https://docs.microsoft.com/en-us/style-guide/numbers
4
- nonword: true
5
- level: error
6
- action:
7
- name: edit
8
- params:
9
- - regex
10
- - "[-–]"
11
- - "to"
12
- tokens:
13
- - '\b(?:AM|PM)\s?[-–]\s?.+(?:AM|PM)\b'
@@ -1,8 +0,0 @@
1
- extends: existence
2
- message: "Try to simplify this sentence."
3
- link: https://docs.microsoft.com/en-us/style-guide/punctuation/semicolons
4
- nonword: true
5
- scope: sentence
6
- level: suggestion
7
- tokens:
8
- - ";"
@@ -1,6 +0,0 @@
1
- extends: occurrence
2
- message: "Try to keep sentences short (< 30 words)."
3
- scope: sentence
4
- level: suggestion
5
- max: 30
6
- token: \b(\w+)\b
@@ -1,8 +0,0 @@
1
- extends: existence
2
- message: "'%s' should have one space."
3
- link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods
4
- level: error
5
- nonword: true
6
- tokens:
7
- - "[a-z][.?!] {2,}[A-Z]"
8
- - "[a-z][.?!][A-Z]"
@@ -1,7 +0,0 @@
1
- extends: existence
2
- message: "Don't use '%s' unless space is limited."
3
- link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens
4
- ignorecase: true
5
- level: warning
6
- tokens:
7
- - '\w+- and \w+-'
@@ -1,42 +0,0 @@
1
- extends: substitution
2
- message: "Prefer '%s' over '%s'."
3
- # term preference should be based on microsoft style guide, such as
4
- link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/adapter
5
- level: warning
6
- ignorecase: true
7
- action:
8
- name: replace
9
- swap:
10
- "(?:agent|virtual assistant|intelligent personal assistant)": personal digital assistant
11
- "(?:assembler|machine language)": assembly language
12
- "(?:drive C:|drive C>|C: drive)": drive C
13
- "(?:internet bot|web robot)s?": bot(s)
14
- "(?:microsoft cloud|the cloud)": cloud
15
- "(?:mobile|smart) ?phone": phone
16
- "24/7": every day
17
- "audio(?:-| )book": audiobook
18
- "back(?:-| )light": backlight
19
- "chat ?bots?": chatbot(s)
20
- adaptor: adapter
21
- administrate: administer
22
- afterwards: afterward
23
- alphabetic: alphabetical
24
- alphanumerical: alphanumeric
25
- an URL: a URL
26
- anti-aliasing: antialiasing
27
- anti-malware: antimalware
28
- anti-spyware: antispyware
29
- anti-virus: antivirus
30
- appendixes: appendices
31
- artificial intelligence: AI
32
- caap: CaaP
33
- conversation-as-a-platform: conversation as a platform
34
- eb: EB
35
- gb: GB
36
- gbps: Gbps
37
- kb: KB
38
- keypress: keystroke
39
- mb: MB
40
- pb: PB
41
- tb: TB
42
- zb: ZB
@@ -1,9 +0,0 @@
1
- extends: substitution
2
- message: Use 'of' (not 'for') to describe the relationship of the word URL to a resource.
3
- ignorecase: true
4
- link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/u/url
5
- level: suggestion
6
- action:
7
- name: replace
8
- swap:
9
- URL for: URL of
@@ -1,16 +0,0 @@
1
- extends: existence
2
- message: "Don't spell out the number in '%s'."
3
- link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/units-of-measure-terms
4
- level: error
5
- raw:
6
- - '[a-zA-Z]+\s'
7
- tokens:
8
- - "(?:centi|milli)?meters"
9
- - "(?:kilo)?grams"
10
- - "(?:kilo)?meters"
11
- - "(?:mega)?pixels"
12
- - cm
13
- - inches
14
- - lb
15
- - miles
16
- - pounds
@@ -1,25 +0,0 @@
1
- extends: existence
2
- message: "Verify your use of '%s' with the A-Z word list."
3
- link: "https://docs.microsoft.com/en-us/style-guide"
4
- level: suggestion
5
- ignorecase: true
6
- tokens:
7
- - above
8
- - accessible
9
- - actionable
10
- - against
11
- - alarm
12
- - alert
13
- - alias
14
- - allows?
15
- - and/or
16
- - as well as
17
- - assure
18
- - author
19
- - avg
20
- - beta
21
- - ensure
22
- - he
23
- - insure
24
- - sample
25
- - she
@@ -1,11 +0,0 @@
1
- extends: existence
2
- message: "Try to avoid using first-person plural like '%s'."
3
- link: https://docs.microsoft.com/en-us/style-guide/grammar/person#avoid-first-person-plural
4
- level: warning
5
- ignorecase: true
6
- tokens:
7
- - we
8
- - we'(?:ve|re)
9
- - ours?
10
- - us
11
- - let's
@@ -1,127 +0,0 @@
1
- extends: substitution
2
- message: "Consider using '%s' instead of '%s'."
3
- link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences
4
- ignorecase: true
5
- level: suggestion
6
- action:
7
- name: replace
8
- swap:
9
- "sufficient number(?: of)?": enough
10
- (?:extract|take away|eliminate): remove
11
- (?:in order to|as a means to): to
12
- (?:inform|let me know): tell
13
- (?:previous|prior) to: before
14
- (?:utilize|make use of): use
15
- a (?:large)? majority of: most
16
- a (?:large)? number of: many
17
- a myriad of: myriad
18
- adversely impact: hurt
19
- all across: across
20
- all of a sudden: suddenly
21
- all of these: these
22
- all of(?! a sudden| these): all
23
- all-time record: record
24
- almost all: most
25
- almost never: seldom
26
- along the lines of: similar to
27
- an adequate number of: enough
28
- an appreciable number of: many
29
- an estimated: about
30
- any and all: all
31
- are in agreement: agree
32
- as a matter of fact: in fact
33
- as a means of: to
34
- as a result of: because of
35
- as of yet: yet
36
- as per: per
37
- at a later date: later
38
- at all times: always
39
- at the present time: now
40
- at this point in time: at this point
41
- based in large part on: based on
42
- based on the fact that: because
43
- basic necessity: necessity
44
- because of the fact that: because
45
- came to a realization: realized
46
- came to an abrupt end: ended abruptly
47
- carry out an evaluation of: evaluate
48
- close down: close
49
- closed down: closed
50
- complete stranger: stranger
51
- completely separate: separate
52
- concerning the matter of: regarding
53
- conduct a review of: review
54
- conduct an investigation: investigate
55
- conduct experiments: experiment
56
- continue on: continue
57
- despite the fact that: although
58
- disappear from sight: disappear
59
- doomed to fail: doomed
60
- drag and drop: drag
61
- drag-and-drop: drag
62
- due to the fact that: because
63
- during the period of: during
64
- during the time that: while
65
- emergency situation: emergency
66
- establish connectivity: connect
67
- except when: unless
68
- excessive number: too many
69
- extend an invitation: invite
70
- fall down: fall
71
- fell down: fell
72
- for the duration of: during
73
- gather together: gather
74
- has the ability to: can
75
- has the capacity to: can
76
- has the opportunity to: could
77
- hold a meeting: meet
78
- if this is not the case: if not
79
- in a careful manner: carefully
80
- in a thoughtful manner: thoughtfully
81
- in a timely manner: timely
82
- in addition: also
83
- in an effort to: to
84
- in between: between
85
- in lieu of: instead of
86
- in many cases: often
87
- in most cases: usually
88
- in order to: to
89
- in some cases: sometimes
90
- in spite of the fact that: although
91
- in spite of: despite
92
- in the (?:very)? near future: soon
93
- in the event that: if
94
- in the neighborhood of: roughly
95
- in the vicinity of: close to
96
- it would appear that: apparently
97
- lift up: lift
98
- made reference to: referred to
99
- make reference to: refer to
100
- mix together: mix
101
- none at all: none
102
- not in a position to: unable
103
- not possible: impossible
104
- of major importance: important
105
- perform an assessment of: assess
106
- pertaining to: about
107
- place an order: order
108
- plays a key role in: is essential to
109
- present time: now
110
- readily apparent: apparent
111
- some of the: some
112
- span across: span
113
- subsequent to: after
114
- successfully complete: complete
115
- take action: act
116
- take into account: consider
117
- the question as to whether: whether
118
- there is no doubt but that: doubtless
119
- this day and age: this age
120
- this is a subject that: this subject
121
- time (?:frame|period): time
122
- under the provisions of: under
123
- until such time as: until
124
- used for fuel purposes: used for fuel
125
- whether or not: whether
126
- with regard to: regarding
127
- with the exception of: except for