doc-detective-common 3.6.1 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/.c8rc.json +8 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.claude/skills/tdd-coverage/SKILL.md +161 -0
  4. package/AGENTS.md +332 -285
  5. package/CLAUDE.md +38 -0
  6. package/LICENSE +661 -661
  7. package/README.md +78 -48
  8. package/coverage-thresholds.json +8 -0
  9. package/dist/detectTests.d.ts +106 -0
  10. package/dist/detectTests.d.ts.map +1 -0
  11. package/dist/detectTests.js +530 -0
  12. package/dist/detectTests.js.map +1 -0
  13. package/dist/files.d.ts +16 -0
  14. package/dist/files.d.ts.map +1 -0
  15. package/dist/files.js +123 -0
  16. package/dist/files.js.map +1 -0
  17. package/dist/index.cjs +122283 -0
  18. package/dist/index.d.cts +4 -0
  19. package/dist/index.d.ts +4 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +4 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/index.mjs +4 -0
  24. package/dist/resolvePaths.d.ts +28 -0
  25. package/dist/resolvePaths.d.ts.map +1 -0
  26. package/dist/resolvePaths.js +236 -0
  27. package/dist/resolvePaths.js.map +1 -0
  28. package/dist/schemas/index.d.ts +5 -0
  29. package/dist/schemas/index.d.ts.map +1 -0
  30. package/dist/schemas/index.js +3 -0
  31. package/dist/schemas/index.js.map +1 -0
  32. package/dist/schemas/schemas.json +121359 -0
  33. package/dist/types/generated/checkLink_v3.d.ts +27 -0
  34. package/dist/types/generated/checkLink_v3.d.ts.map +1 -0
  35. package/dist/types/generated/checkLink_v3.js +7 -0
  36. package/dist/types/generated/checkLink_v3.js.map +1 -0
  37. package/dist/types/generated/click_v3.d.ts +16 -0
  38. package/dist/types/generated/click_v3.d.ts.map +1 -0
  39. package/dist/types/generated/click_v3.js +7 -0
  40. package/dist/types/generated/click_v3.js.map +1 -0
  41. package/dist/types/generated/config_v3.d.ts +398 -0
  42. package/dist/types/generated/config_v3.d.ts.map +1 -0
  43. package/dist/types/generated/config_v3.js +7 -0
  44. package/dist/types/generated/config_v3.js.map +1 -0
  45. package/dist/types/generated/context_v3.d.ts +108 -0
  46. package/dist/types/generated/context_v3.d.ts.map +1 -0
  47. package/dist/types/generated/context_v3.js +7 -0
  48. package/dist/types/generated/context_v3.js.map +1 -0
  49. package/dist/types/generated/dragAndDrop_v3.d.ts +37 -0
  50. package/dist/types/generated/dragAndDrop_v3.d.ts.map +1 -0
  51. package/dist/types/generated/dragAndDrop_v3.js +7 -0
  52. package/dist/types/generated/dragAndDrop_v3.js.map +1 -0
  53. package/dist/types/generated/endRecord_v3.d.ts +9 -0
  54. package/dist/types/generated/endRecord_v3.d.ts.map +1 -0
  55. package/dist/types/generated/endRecord_v3.js +7 -0
  56. package/dist/types/generated/endRecord_v3.js.map +1 -0
  57. package/dist/types/generated/find_v3.d.ts +16 -0
  58. package/dist/types/generated/find_v3.d.ts.map +1 -0
  59. package/dist/types/generated/find_v3.js +7 -0
  60. package/dist/types/generated/find_v3.js.map +1 -0
  61. package/dist/types/generated/goTo_v3.d.ts +46 -0
  62. package/dist/types/generated/goTo_v3.d.ts.map +1 -0
  63. package/dist/types/generated/goTo_v3.js +7 -0
  64. package/dist/types/generated/goTo_v3.js.map +1 -0
  65. package/dist/types/generated/httpRequest_v3.d.ts +16 -0
  66. package/dist/types/generated/httpRequest_v3.d.ts.map +1 -0
  67. package/dist/types/generated/httpRequest_v3.js +7 -0
  68. package/dist/types/generated/httpRequest_v3.js.map +1 -0
  69. package/dist/types/generated/loadCookie_v3.d.ts +16 -0
  70. package/dist/types/generated/loadCookie_v3.d.ts.map +1 -0
  71. package/dist/types/generated/loadCookie_v3.js +7 -0
  72. package/dist/types/generated/loadCookie_v3.js.map +1 -0
  73. package/dist/types/generated/loadVariables_v3.d.ts +9 -0
  74. package/dist/types/generated/loadVariables_v3.d.ts.map +1 -0
  75. package/dist/types/generated/loadVariables_v3.js +7 -0
  76. package/dist/types/generated/loadVariables_v3.js.map +1 -0
  77. package/dist/types/generated/openApi_v3.d.ts +62 -0
  78. package/dist/types/generated/openApi_v3.d.ts.map +1 -0
  79. package/dist/types/generated/openApi_v3.js +7 -0
  80. package/dist/types/generated/openApi_v3.js.map +1 -0
  81. package/dist/types/generated/record_v3.d.ts +32 -0
  82. package/dist/types/generated/record_v3.d.ts.map +1 -0
  83. package/dist/types/generated/record_v3.js +7 -0
  84. package/dist/types/generated/record_v3.js.map +1 -0
  85. package/dist/types/generated/report_v3.d.ts +174 -0
  86. package/dist/types/generated/report_v3.d.ts.map +1 -0
  87. package/dist/types/generated/report_v3.js +7 -0
  88. package/dist/types/generated/report_v3.js.map +1 -0
  89. package/dist/types/generated/resolvedTests_v3.d.ts +571 -0
  90. package/dist/types/generated/resolvedTests_v3.d.ts.map +1 -0
  91. package/dist/types/generated/resolvedTests_v3.js +7 -0
  92. package/dist/types/generated/resolvedTests_v3.js.map +1 -0
  93. package/dist/types/generated/runCode_v3.d.ts +57 -0
  94. package/dist/types/generated/runCode_v3.d.ts.map +1 -0
  95. package/dist/types/generated/runCode_v3.js +7 -0
  96. package/dist/types/generated/runCode_v3.js.map +1 -0
  97. package/dist/types/generated/runShell_v3.d.ts +56 -0
  98. package/dist/types/generated/runShell_v3.d.ts.map +1 -0
  99. package/dist/types/generated/runShell_v3.js +7 -0
  100. package/dist/types/generated/runShell_v3.js.map +1 -0
  101. package/dist/types/generated/saveCookie_v3.d.ts +16 -0
  102. package/dist/types/generated/saveCookie_v3.d.ts.map +1 -0
  103. package/dist/types/generated/saveCookie_v3.js +7 -0
  104. package/dist/types/generated/saveCookie_v3.js.map +1 -0
  105. package/dist/types/generated/screenshot_v3.d.ts +74 -0
  106. package/dist/types/generated/screenshot_v3.d.ts.map +1 -0
  107. package/dist/types/generated/screenshot_v3.js +7 -0
  108. package/dist/types/generated/screenshot_v3.js.map +1 -0
  109. package/dist/types/generated/sourceIntegration_v3.d.ts +30 -0
  110. package/dist/types/generated/sourceIntegration_v3.d.ts.map +1 -0
  111. package/dist/types/generated/sourceIntegration_v3.js +7 -0
  112. package/dist/types/generated/sourceIntegration_v3.js.map +1 -0
  113. package/dist/types/generated/spec_v3.d.ts +159 -0
  114. package/dist/types/generated/spec_v3.d.ts.map +1 -0
  115. package/dist/types/generated/spec_v3.js +7 -0
  116. package/dist/types/generated/spec_v3.js.map +1 -0
  117. package/dist/types/generated/step_v3.d.ts +1270 -0
  118. package/dist/types/generated/step_v3.d.ts.map +1 -0
  119. package/dist/types/generated/step_v3.js +7 -0
  120. package/dist/types/generated/step_v3.js.map +1 -0
  121. package/dist/types/generated/stopRecord_v3.d.ts +9 -0
  122. package/dist/types/generated/stopRecord_v3.d.ts.map +1 -0
  123. package/dist/types/generated/stopRecord_v3.js +7 -0
  124. package/dist/types/generated/stopRecord_v3.js.map +1 -0
  125. package/dist/types/generated/test_v3.d.ts +2915 -0
  126. package/dist/types/generated/test_v3.d.ts.map +1 -0
  127. package/dist/types/generated/test_v3.js +7 -0
  128. package/dist/types/generated/test_v3.js.map +1 -0
  129. package/dist/types/generated/type_v3.d.ts +54 -0
  130. package/dist/types/generated/type_v3.d.ts.map +1 -0
  131. package/dist/types/generated/type_v3.js +7 -0
  132. package/dist/types/generated/type_v3.js.map +1 -0
  133. package/dist/types/generated/wait_v3.d.ts +12 -0
  134. package/dist/types/generated/wait_v3.d.ts.map +1 -0
  135. package/dist/types/generated/wait_v3.js +7 -0
  136. package/dist/types/generated/wait_v3.js.map +1 -0
  137. package/dist/validate.d.ts +41 -0
  138. package/dist/validate.d.ts.map +1 -0
  139. package/dist/validate.js +557 -0
  140. package/dist/validate.js.map +1 -0
  141. package/package.json +60 -36
  142. package/plans/plan-typescriptMigration.prompt.md +25 -0
  143. package/scripts/check-coverage-ratchet.cjs +118 -0
  144. package/scripts/createCjsWrapper.js +25 -0
  145. package/scripts/generateTypes.cjs +54 -0
  146. package/src/detectTests.ts +616 -0
  147. package/src/index.ts +3 -0
  148. package/src/schemas/build/arazzo_v2.schema.json +41 -0
  149. package/src/schemas/build/checkLink_v2.schema.json +1 -1
  150. package/src/schemas/build/checkLink_v3.schema.json +1 -1
  151. package/src/schemas/build/checkLink_v3.schema.yaml +83 -0
  152. package/src/schemas/build/click_v3.schema.json +1 -1
  153. package/src/schemas/build/config_v2.schema.json +14 -14
  154. package/src/schemas/build/config_v3.schema.json +6 -6
  155. package/src/schemas/build/context_v2.schema.json +1 -1
  156. package/src/schemas/build/context_v3.schema.json +1 -1
  157. package/src/schemas/build/dragAndDrop_v3.schema.json +1 -1
  158. package/src/schemas/build/find_v2.schema.json +3 -3
  159. package/src/schemas/build/find_v3.schema.json +4 -4
  160. package/src/schemas/build/goTo_v2.schema.json +1 -1
  161. package/src/schemas/build/goTo_v3.schema.json +1 -1
  162. package/src/schemas/build/httpRequest_v2.schema.json +2 -2
  163. package/src/schemas/build/httpRequest_v3.schema.json +3 -3
  164. package/src/schemas/build/loadCookie_v3.schema.json +1 -1
  165. package/src/schemas/build/loadVariables_v3.schema.json +1 -1
  166. package/src/schemas/build/moveTo_v2.schema.json +1 -1
  167. package/src/schemas/build/openApi_v2.schema.json +1 -1
  168. package/src/schemas/build/openApi_v3.schema.json +1 -1
  169. package/src/schemas/build/record_v3.schema.json +1 -1
  170. package/src/schemas/build/report_v3.schema.json +5 -5
  171. package/src/schemas/build/resolvedTests_v3.schema.json +3 -3
  172. package/src/schemas/build/runCode_v2.schema.json +1 -1
  173. package/src/schemas/build/runCode_v3.schema.json +1 -1
  174. package/src/schemas/build/runShell_v2.schema.json +1 -1
  175. package/src/schemas/build/runShell_v3.schema.json +1 -1
  176. package/src/schemas/build/saveCookie_v3.schema.json +1 -1
  177. package/src/schemas/build/saveScreenshot_v2.schema.json +1 -1
  178. package/src/schemas/build/screenshot_v3.schema.json +2 -2
  179. package/src/schemas/build/setVariables_v2.schema.json +1 -1
  180. package/src/schemas/build/sourceIntegration_v3.schema.json +1 -1
  181. package/src/schemas/build/spec_v2.schema.json +4 -4
  182. package/src/schemas/build/spec_v3.schema.json +4 -4
  183. package/src/schemas/build/startRecording_v2.schema.json +1 -1
  184. package/src/schemas/build/step_v3.schema.json +38 -38
  185. package/src/schemas/build/stopRecord_v3.schema.json +1 -1
  186. package/src/schemas/build/stopRecording_v2.schema.json +1 -1
  187. package/src/schemas/build/terminateScope_v3.schema.json +48 -0
  188. package/src/schemas/build/test_v2.schema.json +15 -15
  189. package/src/schemas/build/test_v3.schema.json +6 -6
  190. package/src/schemas/build/typeKeys_v2.schema.json +1 -1
  191. package/src/schemas/build/type_v3.schema.json +1 -1
  192. package/src/schemas/build/wait_v2.schema.json +1 -1
  193. package/src/schemas/build/wait_v3.schema.json +1 -1
  194. package/src/schemas/{dereferenceSchemas.js → dereferenceSchemas.cjs} +206 -206
  195. package/src/schemas/index.ts +6 -0
  196. package/src/schemas/output_schemas/endRecord_v3.schema.json +13 -13
  197. package/src/schemas/src_schemas/checkLink_v2.schema.json +65 -65
  198. package/src/schemas/src_schemas/checkLink_v3.schema.json +90 -90
  199. package/src/schemas/src_schemas/click_v3.schema.json +143 -143
  200. package/src/schemas/src_schemas/config_v2.schema.json +929 -929
  201. package/src/schemas/src_schemas/config_v3.schema.json +633 -633
  202. package/src/schemas/src_schemas/context_v2.schema.json +108 -108
  203. package/src/schemas/src_schemas/context_v3.schema.json +202 -202
  204. package/src/schemas/src_schemas/dragAndDrop_v3.schema.json +184 -184
  205. package/src/schemas/src_schemas/find_v2.schema.json +155 -155
  206. package/src/schemas/src_schemas/find_v3.schema.json +209 -209
  207. package/src/schemas/src_schemas/goTo_v2.schema.json +57 -57
  208. package/src/schemas/src_schemas/goTo_v3.schema.json +232 -232
  209. package/src/schemas/src_schemas/httpRequest_v2.schema.json +284 -284
  210. package/src/schemas/src_schemas/httpRequest_v3.schema.json +402 -402
  211. package/src/schemas/src_schemas/loadCookie_v3.schema.json +113 -113
  212. package/src/schemas/src_schemas/loadVariables_v3.schema.json +8 -8
  213. package/src/schemas/src_schemas/openApi_v2.schema.json +64 -64
  214. package/src/schemas/src_schemas/openApi_v3.schema.json +160 -160
  215. package/src/schemas/src_schemas/record_v3.schema.json +68 -68
  216. package/src/schemas/src_schemas/report_v3.schema.json +51 -51
  217. package/src/schemas/src_schemas/resolvedTests_v3.schema.json +236 -236
  218. package/src/schemas/src_schemas/runCode_v2.schema.json +181 -181
  219. package/src/schemas/src_schemas/runCode_v3.schema.json +136 -136
  220. package/src/schemas/src_schemas/runShell_v2.schema.json +166 -166
  221. package/src/schemas/src_schemas/runShell_v3.schema.json +154 -154
  222. package/src/schemas/src_schemas/saveCookie_v3.schema.json +124 -124
  223. package/src/schemas/src_schemas/saveScreenshot_v2.schema.json +129 -129
  224. package/src/schemas/src_schemas/screenshot_v3.schema.json +248 -248
  225. package/src/schemas/src_schemas/setVariables_v2.schema.json +37 -37
  226. package/src/schemas/src_schemas/sourceIntegration_v3.schema.json +45 -45
  227. package/src/schemas/src_schemas/spec_v2.schema.json +175 -175
  228. package/src/schemas/src_schemas/spec_v3.schema.json +211 -211
  229. package/src/schemas/src_schemas/startRecording_v2.schema.json +54 -54
  230. package/src/schemas/src_schemas/step_v3.schema.json +632 -632
  231. package/src/schemas/src_schemas/stopRecord_v3.schema.json +13 -13
  232. package/src/schemas/src_schemas/stopRecording_v2.schema.json +31 -31
  233. package/src/schemas/src_schemas/test_v2.schema.json +200 -200
  234. package/src/schemas/src_schemas/test_v3.schema.json +268 -268
  235. package/src/schemas/src_schemas/typeKeys_v2.schema.json +63 -63
  236. package/src/schemas/src_schemas/type_v3.schema.json +118 -118
  237. package/src/schemas/src_schemas/wait_v3.schema.json +35 -35
  238. package/src/types/generated/checkLink_v3.ts +29 -0
  239. package/src/types/generated/click_v3.ts +17 -0
  240. package/src/types/generated/config_v3.ts +405 -0
  241. package/src/types/generated/context_v3.ts +112 -0
  242. package/src/types/generated/dragAndDrop_v3.ts +39 -0
  243. package/src/types/generated/endRecord_v3.ts +10 -0
  244. package/src/types/generated/find_v3.ts +17 -0
  245. package/src/types/generated/goTo_v3.ts +48 -0
  246. package/src/types/generated/httpRequest_v3.ts +17 -0
  247. package/src/types/generated/loadCookie_v3.ts +17 -0
  248. package/src/types/generated/loadVariables_v3.ts +10 -0
  249. package/src/types/generated/openApi_v3.ts +64 -0
  250. package/src/types/generated/record_v3.ts +34 -0
  251. package/src/types/generated/report_v3.ts +183 -0
  252. package/src/types/generated/resolvedTests_v3.ts +585 -0
  253. package/src/types/generated/runCode_v3.ts +59 -0
  254. package/src/types/generated/runShell_v3.ts +58 -0
  255. package/src/types/generated/saveCookie_v3.ts +17 -0
  256. package/src/types/generated/screenshot_v3.ts +76 -0
  257. package/src/types/generated/sourceIntegration_v3.ts +31 -0
  258. package/src/types/generated/spec_v3.ts +166 -0
  259. package/src/types/generated/step_v3.ts +1288 -0
  260. package/src/types/generated/stopRecord_v3.ts +10 -0
  261. package/src/types/generated/test_v3.ts +3048 -0
  262. package/src/types/generated/type_v3.ts +56 -0
  263. package/src/types/generated/wait_v3.ts +13 -0
  264. package/src/{validate.js → validate.ts} +627 -587
  265. package/tsconfig.json +22 -0
  266. package/src/files.js +0 -84
  267. package/src/index.js +0 -12
  268. package/src/resolvePaths.js +0 -252
  269. package/src/schemas/index.js +0 -6
@@ -1,166 +1,166 @@
1
- {
2
- "title": "runShell",
3
- "type": "object",
4
- "description": "Perform a native shell command.",
5
- "properties": {
6
- "id": {
7
- "type": "string",
8
- "description": "ID of the step."
9
- },
10
- "description": {
11
- "type": "string",
12
- "description": "Description of the step."
13
- },
14
- "action": {
15
- "type": "string",
16
- "const": "runShell",
17
- "description": "The action to perform."
18
- },
19
- "command": {
20
- "type": "string",
21
- "description": "Command to perform in the machine's default shell."
22
- },
23
- "args": {
24
- "type": "array",
25
- "description": "Arguments for the command.",
26
- "items": {
27
- "oneOf": [
28
- {
29
- "type": "string"
30
- }
31
- ]
32
- },
33
- "default": []
34
- },
35
- "workingDirectory": {
36
- "type": "string",
37
- "description": "Working directory for the command.",
38
- "default": "."
39
- },
40
- "exitCodes": {
41
- "type": "array",
42
- "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
43
- "items": {
44
- "oneOf": [
45
- {
46
- "type": "integer"
47
- }
48
- ]
49
- },
50
- "default": [0]
51
- },
52
- "output": {
53
- "type": "string",
54
- "description": "Content expected in the command's output. If the expected content can't be found in the command's output (either stdout or stderr), the step fails. Supports strings and regular expressions. To use a regular expression, the string must start and end with a forward slash, like in `/^hello-world.*/`."
55
- },
56
- "savePath": {
57
- "type": "string",
58
- "description": "File path to save the command's output, relative to `saveDirectory`."
59
- },
60
- "saveDirectory": {
61
- "type": "string",
62
- "description": "Directory to save the command's output. If the directory doesn't exist, creates the directory. If not specified, the directory is your media directory."
63
- },
64
- "maxVariation": {
65
- "type": "integer",
66
- "description": "Allowed variation in percentage of text different between the current output and previously saved output. If the difference between the current output and the previous output is greater than `maxVariation`, the step fails. If output doesn't exist at `savePath`, this value is ignored.",
67
- "default": 0,
68
- "minimum": 0,
69
- "maximum": 100
70
- },
71
- "overwrite": {
72
- "type": "string",
73
- "description": "If `true`, overwrites the existing output at `savePath` if it exists.\nIf `byVariation`, overwrites the existing output at `savePath` if the difference between the new output and the existing output is greater than `maxVariation`.",
74
- "enum": [
75
- "true",
76
- "false",
77
- "byVariation"
78
- ],
79
- "default": "false"
80
- },
81
- "timeout": {
82
- "type": "integer",
83
- "description": "Max time in milliseconds the command is allowed to run. If the command runs longer than this, the step fails.",
84
- "default": 60000
85
- },
86
- "setVariables": {
87
- "type": "array",
88
- "description": "Extract environment variables from the command's output.",
89
- "items": {
90
- "oneOf": [
91
- {
92
- "description": "",
93
- "type": "object",
94
- "properties": {
95
- "name": {
96
- "description": "Name of the environment variable to set.",
97
- "type": "string"
98
- },
99
- "regex": {
100
- "description": "Regex to extract the environment variable from the command's output.",
101
- "type": "string"
102
- }
103
- },
104
- "required": ["name", "regex"]
105
- }
106
- ]
107
- },
108
- "default": []
109
- }
110
- },
111
- "dynamicDefaults": {
112
- "id": "uuid"
113
- },
114
- "additionalProperties": false,
115
- "required": ["action", "command"],
116
- "examples": [
117
- {
118
- "action": "runShell",
119
- "command": "echo",
120
- "args": ["$USER"]
121
- },
122
- {
123
- "action": "runShell",
124
- "command": "echo",
125
- "args": ["hello-world"],
126
- "id": "ddec5e20-2e81-4f38-867c-92c8d9516755",
127
- "description": "This is a test!"
128
- },
129
- {
130
- "action": "runShell",
131
- "command": "docker run hello-world",
132
- "timeout": 20000,
133
- "exitCodes": [0],
134
- "output": "Hello from Docker!"
135
- },
136
- {
137
- "action": "runShell",
138
- "command": "false",
139
- "exitCodes": [1]
140
- },
141
- {
142
- "action": "runShell",
143
- "command": "echo",
144
- "args": ["setup"],
145
- "exitCodes": [0],
146
- "output": "/.*?/",
147
- "setVariables": [
148
- {
149
- "name": "TEST",
150
- "regex": ".*"
151
- }
152
- ]
153
- },
154
- {
155
- "action": "runShell",
156
- "command": "docker run hello-world",
157
- "workingDirectory": ".",
158
- "exitCodes": [0],
159
- "output": "Hello from Docker!",
160
- "savePath": "docker-output.txt",
161
- "saveDirectory": "output",
162
- "maxVariation": 10,
163
- "overwrite": "byVariation"
164
- }
165
- ]
166
- }
1
+ {
2
+ "title": "runShell",
3
+ "type": "object",
4
+ "description": "Perform a native shell command.",
5
+ "properties": {
6
+ "id": {
7
+ "type": "string",
8
+ "description": "ID of the step."
9
+ },
10
+ "description": {
11
+ "type": "string",
12
+ "description": "Description of the step."
13
+ },
14
+ "action": {
15
+ "type": "string",
16
+ "const": "runShell",
17
+ "description": "The action to perform."
18
+ },
19
+ "command": {
20
+ "type": "string",
21
+ "description": "Command to perform in the machine's default shell."
22
+ },
23
+ "args": {
24
+ "type": "array",
25
+ "description": "Arguments for the command.",
26
+ "items": {
27
+ "oneOf": [
28
+ {
29
+ "type": "string"
30
+ }
31
+ ]
32
+ },
33
+ "default": []
34
+ },
35
+ "workingDirectory": {
36
+ "type": "string",
37
+ "description": "Working directory for the command.",
38
+ "default": "."
39
+ },
40
+ "exitCodes": {
41
+ "type": "array",
42
+ "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
43
+ "items": {
44
+ "oneOf": [
45
+ {
46
+ "type": "integer"
47
+ }
48
+ ]
49
+ },
50
+ "default": [0]
51
+ },
52
+ "output": {
53
+ "type": "string",
54
+ "description": "Content expected in the command's output. If the expected content can't be found in the command's output (either stdout or stderr), the step fails. Supports strings and regular expressions. To use a regular expression, the string must start and end with a forward slash, like in `/^hello-world.*/`."
55
+ },
56
+ "savePath": {
57
+ "type": "string",
58
+ "description": "File path to save the command's output, relative to `saveDirectory`."
59
+ },
60
+ "saveDirectory": {
61
+ "type": "string",
62
+ "description": "Directory to save the command's output. If the directory doesn't exist, creates the directory. If not specified, the directory is your media directory."
63
+ },
64
+ "maxVariation": {
65
+ "type": "integer",
66
+ "description": "Allowed variation in percentage of text different between the current output and previously saved output. If the difference between the current output and the previous output is greater than `maxVariation`, the step fails. If output doesn't exist at `savePath`, this value is ignored.",
67
+ "default": 0,
68
+ "minimum": 0,
69
+ "maximum": 100
70
+ },
71
+ "overwrite": {
72
+ "type": "string",
73
+ "description": "If `true`, overwrites the existing output at `savePath` if it exists.\nIf `byVariation`, overwrites the existing output at `savePath` if the difference between the new output and the existing output is greater than `maxVariation`.",
74
+ "enum": [
75
+ "true",
76
+ "false",
77
+ "byVariation"
78
+ ],
79
+ "default": "false"
80
+ },
81
+ "timeout": {
82
+ "type": "integer",
83
+ "description": "Max time in milliseconds the command is allowed to run. If the command runs longer than this, the step fails.",
84
+ "default": 60000
85
+ },
86
+ "setVariables": {
87
+ "type": "array",
88
+ "description": "Extract environment variables from the command's output.",
89
+ "items": {
90
+ "oneOf": [
91
+ {
92
+ "description": "",
93
+ "type": "object",
94
+ "properties": {
95
+ "name": {
96
+ "description": "Name of the environment variable to set.",
97
+ "type": "string"
98
+ },
99
+ "regex": {
100
+ "description": "Regex to extract the environment variable from the command's output.",
101
+ "type": "string"
102
+ }
103
+ },
104
+ "required": ["name", "regex"]
105
+ }
106
+ ]
107
+ },
108
+ "default": []
109
+ }
110
+ },
111
+ "dynamicDefaults": {
112
+ "id": "uuid"
113
+ },
114
+ "additionalProperties": false,
115
+ "required": ["action", "command"],
116
+ "examples": [
117
+ {
118
+ "action": "runShell",
119
+ "command": "echo",
120
+ "args": ["$USER"]
121
+ },
122
+ {
123
+ "action": "runShell",
124
+ "command": "echo",
125
+ "args": ["hello-world"],
126
+ "id": "ddec5e20-2e81-4f38-867c-92c8d9516755",
127
+ "description": "This is a test!"
128
+ },
129
+ {
130
+ "action": "runShell",
131
+ "command": "docker run hello-world",
132
+ "timeout": 20000,
133
+ "exitCodes": [0],
134
+ "output": "Hello from Docker!"
135
+ },
136
+ {
137
+ "action": "runShell",
138
+ "command": "false",
139
+ "exitCodes": [1]
140
+ },
141
+ {
142
+ "action": "runShell",
143
+ "command": "echo",
144
+ "args": ["setup"],
145
+ "exitCodes": [0],
146
+ "output": "/.*?/",
147
+ "setVariables": [
148
+ {
149
+ "name": "TEST",
150
+ "regex": ".*"
151
+ }
152
+ ]
153
+ },
154
+ {
155
+ "action": "runShell",
156
+ "command": "docker run hello-world",
157
+ "workingDirectory": ".",
158
+ "exitCodes": [0],
159
+ "output": "Hello from Docker!",
160
+ "savePath": "docker-output.txt",
161
+ "saveDirectory": "output",
162
+ "maxVariation": 10,
163
+ "overwrite": "byVariation"
164
+ }
165
+ ]
166
+ }
@@ -1,155 +1,155 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "runShell",
4
- "description": "Perform a native shell command.",
5
- "anyOf": [
6
- {
7
- "$ref": "#/components/schemas/string"
8
- },
9
- {
10
- "$ref": "#/components/schemas/object"
11
- }
12
- ],
13
- "components": {
14
- "schemas": {
15
- "string": {
16
- "title": "Run shell command (simple)",
17
- "description": "Command to perform in the machine's default shell.",
18
- "type": "string",
19
- "transform": [
20
- "trim"
21
- ]
22
- },
23
- "object": {
24
- "type": "object",
25
- "required": [
26
- "command"
27
- ],
28
- "additionalProperties": false,
29
- "properties": {
30
- "command": {
31
- "type": "string",
32
- "description": "Command to perform in the machine's default shell."
33
- },
34
- "args": {
35
- "type": "array",
36
- "description": "Arguments for the command.",
37
- "items": {
38
- "anyOf": [
39
- {
40
- "type": "string"
41
- }
42
- ]
43
- },
44
- "default": []
45
- },
46
- "workingDirectory": {
47
- "type": "string",
48
- "description": "Working directory for the command.",
49
- "default": "."
50
- },
51
- "exitCodes": {
52
- "type": "array",
53
- "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
54
- "items": {
55
- "anyOf": [
56
- {
57
- "type": "integer"
58
- }
59
- ]
60
- },
61
- "default": [
62
- 0
63
- ]
64
- },
65
- "stdio": {
66
- "type": "string",
67
- "description": "Content expected in the command's stdout or stderr. If the expected content can't be found in the command's stdout or stderr, the step fails. Supports strings and regular expressions. To use a regular expression, the string must start and end with a forward slash, like in `/^hello-world.*/`."
68
- },
69
- "path": {
70
- "type": "string",
71
- "description": "File path to save the command's output, relative to `directory`."
72
- },
73
- "directory": {
74
- "type": "string",
75
- "description": "Directory to save the command's output. If the directory doesn't exist, creates the directory. If not specified, the directory is your media directory."
76
- },
77
- "maxVariation": {
78
- "type": "number",
79
- "description": "Allowed variation in percentage of text different between the current output and previously saved output. If the difference between the current output and the previous output is greater than `maxVariation`, the step fails. If output doesn't exist at `path`, this value is ignored.",
80
- "default": 0,
81
- "minimum": 0,
82
- "maximum": 1
83
- },
84
- "overwrite": {
85
- "type": "string",
86
- "description": "If `true`, overwrites the existing output at `path` if it exists.\nIf `aboveVariation`, overwrites the existing output at `path` if the difference between the new output and the existing output is greater than `maxVariation`.",
87
- "enum": [
88
- "true",
89
- "false",
90
- "aboveVariation"
91
- ],
92
- "default": "aboveVariation"
93
- },
94
- "timeout": {
95
- "type": "integer",
96
- "description": "Max time in milliseconds the command is allowed to run. If the command runs longer than this, the step fails.",
97
- "default": 60000
98
- }
99
- },
100
- "title": "Run shell command (detailed)"
101
- }
102
- }
103
- },
104
- "examples": [
105
- "docker run hello-world",
106
- {
107
- "command": "echo",
108
- "args": [
109
- "$USER"
110
- ]
111
- },
112
- {
113
- "command": "echo",
114
- "args": [
115
- "hello-world"
116
- ]
117
- },
118
- {
119
- "command": "docker run hello-world",
120
- "timeout": 20000,
121
- "exitCodes": [
122
- 0
123
- ],
124
- "stdio": "Hello from Docker!"
125
- },
126
- {
127
- "command": "false",
128
- "exitCodes": [
129
- 1
130
- ]
131
- },
132
- {
133
- "command": "echo",
134
- "args": [
135
- "setup"
136
- ],
137
- "exitCodes": [
138
- 0
139
- ],
140
- "stdio": "/.*?/"
141
- },
142
- {
143
- "command": "docker run hello-world",
144
- "workingDirectory": ".",
145
- "exitCodes": [
146
- 0
147
- ],
148
- "stdio": "Hello from Docker!",
149
- "path": "docker-output.txt",
150
- "directory": "output",
151
- "maxVariation": 0.1,
152
- "overwrite": "aboveVariation"
153
- }
154
- ]
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "runShell",
4
+ "description": "Perform a native shell command.",
5
+ "anyOf": [
6
+ {
7
+ "$ref": "#/components/schemas/string"
8
+ },
9
+ {
10
+ "$ref": "#/components/schemas/object"
11
+ }
12
+ ],
13
+ "components": {
14
+ "schemas": {
15
+ "string": {
16
+ "title": "Run shell command (simple)",
17
+ "description": "Command to perform in the machine's default shell.",
18
+ "type": "string",
19
+ "transform": [
20
+ "trim"
21
+ ]
22
+ },
23
+ "object": {
24
+ "type": "object",
25
+ "required": [
26
+ "command"
27
+ ],
28
+ "additionalProperties": false,
29
+ "properties": {
30
+ "command": {
31
+ "type": "string",
32
+ "description": "Command to perform in the machine's default shell."
33
+ },
34
+ "args": {
35
+ "type": "array",
36
+ "description": "Arguments for the command.",
37
+ "items": {
38
+ "anyOf": [
39
+ {
40
+ "type": "string"
41
+ }
42
+ ]
43
+ },
44
+ "default": []
45
+ },
46
+ "workingDirectory": {
47
+ "type": "string",
48
+ "description": "Working directory for the command.",
49
+ "default": "."
50
+ },
51
+ "exitCodes": {
52
+ "type": "array",
53
+ "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
54
+ "items": {
55
+ "anyOf": [
56
+ {
57
+ "type": "integer"
58
+ }
59
+ ]
60
+ },
61
+ "default": [
62
+ 0
63
+ ]
64
+ },
65
+ "stdio": {
66
+ "type": "string",
67
+ "description": "Content expected in the command's stdout or stderr. If the expected content can't be found in the command's stdout or stderr, the step fails. Supports strings and regular expressions. To use a regular expression, the string must start and end with a forward slash, like in `/^hello-world.*/`."
68
+ },
69
+ "path": {
70
+ "type": "string",
71
+ "description": "File path to save the command's output, relative to `directory`."
72
+ },
73
+ "directory": {
74
+ "type": "string",
75
+ "description": "Directory to save the command's output. If the directory doesn't exist, creates the directory. If not specified, the directory is your media directory."
76
+ },
77
+ "maxVariation": {
78
+ "type": "number",
79
+ "description": "Allowed variation in percentage of text different between the current output and previously saved output. If the difference between the current output and the previous output is greater than `maxVariation`, the step fails. If output doesn't exist at `path`, this value is ignored.",
80
+ "default": 0,
81
+ "minimum": 0,
82
+ "maximum": 1
83
+ },
84
+ "overwrite": {
85
+ "type": "string",
86
+ "description": "If `true`, overwrites the existing output at `path` if it exists.\nIf `aboveVariation`, overwrites the existing output at `path` if the difference between the new output and the existing output is greater than `maxVariation`.",
87
+ "enum": [
88
+ "true",
89
+ "false",
90
+ "aboveVariation"
91
+ ],
92
+ "default": "aboveVariation"
93
+ },
94
+ "timeout": {
95
+ "type": "integer",
96
+ "description": "Max time in milliseconds the command is allowed to run. If the command runs longer than this, the step fails.",
97
+ "default": 60000
98
+ }
99
+ },
100
+ "title": "Run shell command (detailed)"
101
+ }
102
+ }
103
+ },
104
+ "examples": [
105
+ "docker run hello-world",
106
+ {
107
+ "command": "echo",
108
+ "args": [
109
+ "$USER"
110
+ ]
111
+ },
112
+ {
113
+ "command": "echo",
114
+ "args": [
115
+ "hello-world"
116
+ ]
117
+ },
118
+ {
119
+ "command": "docker run hello-world",
120
+ "timeout": 20000,
121
+ "exitCodes": [
122
+ 0
123
+ ],
124
+ "stdio": "Hello from Docker!"
125
+ },
126
+ {
127
+ "command": "false",
128
+ "exitCodes": [
129
+ 1
130
+ ]
131
+ },
132
+ {
133
+ "command": "echo",
134
+ "args": [
135
+ "setup"
136
+ ],
137
+ "exitCodes": [
138
+ 0
139
+ ],
140
+ "stdio": "/.*?/"
141
+ },
142
+ {
143
+ "command": "docker run hello-world",
144
+ "workingDirectory": ".",
145
+ "exitCodes": [
146
+ 0
147
+ ],
148
+ "stdio": "Hello from Docker!",
149
+ "path": "docker-output.txt",
150
+ "directory": "output",
151
+ "maxVariation": 0.1,
152
+ "overwrite": "aboveVariation"
153
+ }
154
+ ]
155
155
  }