moonwall 1.0.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/LICENSE +681 -0
  2. package/README.md +54 -0
  3. package/config_schema.json +811 -0
  4. package/dist/api/constants/accounts.d.ts +36 -0
  5. package/dist/api/constants/accounts.d.ts.map +1 -0
  6. package/dist/api/constants/accounts.js +67 -0
  7. package/dist/api/constants/chain.d.ts +134 -0
  8. package/dist/api/constants/chain.d.ts.map +1 -0
  9. package/dist/api/constants/chain.js +149 -0
  10. package/dist/api/constants/index.d.ts +4 -0
  11. package/dist/api/constants/index.d.ts.map +1 -0
  12. package/dist/api/constants/index.js +3 -0
  13. package/dist/api/constants/smartContract.d.ts +29 -0
  14. package/dist/api/constants/smartContract.d.ts.map +1 -0
  15. package/dist/api/constants/smartContract.js +118 -0
  16. package/dist/api/testing/blocks.d.ts +59 -0
  17. package/dist/api/testing/blocks.d.ts.map +1 -0
  18. package/dist/api/testing/blocks.js +147 -0
  19. package/dist/api/testing/contracts.d.ts +5 -0
  20. package/dist/api/testing/contracts.d.ts.map +1 -0
  21. package/dist/api/testing/contracts.js +32 -0
  22. package/dist/api/testing/ethers.d.ts +3 -0
  23. package/dist/api/testing/ethers.d.ts.map +1 -0
  24. package/dist/api/testing/ethers.js +38 -0
  25. package/dist/api/testing/events.d.ts +12 -0
  26. package/dist/api/testing/events.d.ts.map +1 -0
  27. package/dist/api/testing/events.js +23 -0
  28. package/dist/api/testing/extrinsics.d.ts +5 -0
  29. package/dist/api/testing/extrinsics.d.ts.map +1 -0
  30. package/dist/api/testing/extrinsics.js +10 -0
  31. package/dist/api/testing/index.d.ts +9 -0
  32. package/dist/api/testing/index.d.ts.map +1 -0
  33. package/dist/api/testing/index.js +8 -0
  34. package/dist/api/testing/jumping.d.ts +8 -0
  35. package/dist/api/testing/jumping.d.ts.map +1 -0
  36. package/dist/api/testing/jumping.js +78 -0
  37. package/dist/api/testing/providers.d.ts +18 -0
  38. package/dist/api/testing/providers.d.ts.map +1 -0
  39. package/dist/api/testing/providers.js +34 -0
  40. package/dist/api/testing/viem.d.ts +139 -0
  41. package/dist/api/testing/viem.d.ts.map +1 -0
  42. package/dist/api/testing/viem.js +247 -0
  43. package/dist/api/types/config.d.ts +609 -0
  44. package/dist/api/types/config.d.ts.map +1 -0
  45. package/dist/api/types/config.js +1 -0
  46. package/dist/api/types/context.d.ts +125 -0
  47. package/dist/api/types/context.d.ts.map +1 -0
  48. package/dist/api/types/context.js +1 -0
  49. package/dist/api/types/contracts.d.ts +66 -0
  50. package/dist/api/types/contracts.d.ts.map +1 -0
  51. package/dist/api/types/contracts.js +1 -0
  52. package/dist/api/types/eth.d.ts +3 -0
  53. package/dist/api/types/eth.d.ts.map +1 -0
  54. package/dist/api/types/eth.js +1 -0
  55. package/dist/api/types/foundations.d.ts +11 -0
  56. package/dist/api/types/foundations.d.ts.map +1 -0
  57. package/dist/api/types/foundations.js +1 -0
  58. package/dist/api/types/helpers.d.ts +7 -0
  59. package/dist/api/types/helpers.d.ts.map +1 -0
  60. package/dist/api/types/helpers.js +1 -0
  61. package/dist/api/types/index.d.ts +8 -0
  62. package/dist/api/types/index.d.ts.map +1 -0
  63. package/dist/api/types/index.js +7 -0
  64. package/dist/api/types/runner.d.ts +490 -0
  65. package/dist/api/types/runner.d.ts.map +1 -0
  66. package/dist/api/types/runner.js +1 -0
  67. package/dist/cli/cmds/components/LogViewer.d.ts +17 -0
  68. package/dist/cli/cmds/components/LogViewer.d.ts.map +1 -0
  69. package/dist/cli/cmds/components/LogViewer.js +171 -0
  70. package/dist/cli/cmds/entrypoint.d.ts +6 -0
  71. package/dist/cli/cmds/entrypoint.d.ts.map +1 -0
  72. package/dist/cli/cmds/entrypoint.js +192 -0
  73. package/dist/cli/cmds/interactiveCmds/chopsticksIntCmds.d.ts +2 -0
  74. package/dist/cli/cmds/interactiveCmds/chopsticksIntCmds.d.ts.map +1 -0
  75. package/dist/cli/cmds/interactiveCmds/chopsticksIntCmds.js +117 -0
  76. package/dist/cli/cmds/interactiveCmds/devIntCmds.d.ts +2 -0
  77. package/dist/cli/cmds/interactiveCmds/devIntCmds.d.ts.map +1 -0
  78. package/dist/cli/cmds/interactiveCmds/devIntCmds.js +103 -0
  79. package/dist/cli/cmds/interactiveCmds/index.d.ts +4 -0
  80. package/dist/cli/cmds/interactiveCmds/index.d.ts.map +1 -0
  81. package/dist/cli/cmds/interactiveCmds/index.js +3 -0
  82. package/dist/cli/cmds/interactiveCmds/zombieIntCmds.d.ts +2 -0
  83. package/dist/cli/cmds/interactiveCmds/zombieIntCmds.d.ts.map +1 -0
  84. package/dist/cli/cmds/interactiveCmds/zombieIntCmds.js +32 -0
  85. package/dist/cli/cmds/main.d.ts +2 -0
  86. package/dist/cli/cmds/main.d.ts.map +1 -0
  87. package/dist/cli/cmds/main.js +336 -0
  88. package/dist/cli/cmds/runNetwork.d.ts +3 -0
  89. package/dist/cli/cmds/runNetwork.d.ts.map +1 -0
  90. package/dist/cli/cmds/runNetwork.js +292 -0
  91. package/dist/cli/cmds/runTests.d.ts +12 -0
  92. package/dist/cli/cmds/runTests.d.ts.map +1 -0
  93. package/dist/cli/cmds/runTests.js +257 -0
  94. package/dist/cli/internal/cmdFunctions/downloader.d.ts +4 -0
  95. package/dist/cli/internal/cmdFunctions/downloader.d.ts.map +1 -0
  96. package/dist/cli/internal/cmdFunctions/downloader.js +49 -0
  97. package/dist/cli/internal/cmdFunctions/fetchArtifact.d.ts +10 -0
  98. package/dist/cli/internal/cmdFunctions/fetchArtifact.d.ts.map +1 -0
  99. package/dist/cli/internal/cmdFunctions/fetchArtifact.js +145 -0
  100. package/dist/cli/internal/cmdFunctions/index.d.ts +5 -0
  101. package/dist/cli/internal/cmdFunctions/index.d.ts.map +1 -0
  102. package/dist/cli/internal/cmdFunctions/index.js +4 -0
  103. package/dist/cli/internal/cmdFunctions/initialisation.d.ts +20 -0
  104. package/dist/cli/internal/cmdFunctions/initialisation.d.ts.map +1 -0
  105. package/dist/cli/internal/cmdFunctions/initialisation.js +150 -0
  106. package/dist/cli/internal/cmdFunctions/tempLogs.d.ts +3 -0
  107. package/dist/cli/internal/cmdFunctions/tempLogs.d.ts.map +1 -0
  108. package/dist/cli/internal/cmdFunctions/tempLogs.js +37 -0
  109. package/dist/cli/internal/commandParsers.d.ts +59 -0
  110. package/dist/cli/internal/commandParsers.d.ts.map +1 -0
  111. package/dist/cli/internal/commandParsers.js +305 -0
  112. package/dist/cli/internal/deriveTestIds.d.ts +8 -0
  113. package/dist/cli/internal/deriveTestIds.d.ts.map +1 -0
  114. package/dist/cli/internal/deriveTestIds.js +123 -0
  115. package/dist/cli/internal/effect/index.d.ts +6 -0
  116. package/dist/cli/internal/effect/index.d.ts.map +1 -0
  117. package/dist/cli/internal/effect/index.js +5 -0
  118. package/dist/cli/internal/fileCheckers.d.ts +11 -0
  119. package/dist/cli/internal/fileCheckers.d.ts.map +1 -0
  120. package/dist/cli/internal/fileCheckers.js +165 -0
  121. package/dist/cli/internal/foundations/index.d.ts +4 -0
  122. package/dist/cli/internal/foundations/index.d.ts.map +1 -0
  123. package/dist/cli/internal/foundations/index.js +4 -0
  124. package/dist/cli/internal/index.d.ts +12 -0
  125. package/dist/cli/internal/index.d.ts.map +1 -0
  126. package/dist/cli/internal/index.js +11 -0
  127. package/dist/cli/internal/launcherCommon.d.ts +4 -0
  128. package/dist/cli/internal/launcherCommon.d.ts.map +1 -0
  129. package/dist/cli/internal/launcherCommon.js +130 -0
  130. package/dist/cli/internal/localNode.d.ts +16 -0
  131. package/dist/cli/internal/localNode.d.ts.map +1 -0
  132. package/dist/cli/internal/localNode.js +362 -0
  133. package/dist/cli/internal/logging.d.ts +2 -0
  134. package/dist/cli/internal/logging.d.ts.map +1 -0
  135. package/dist/cli/internal/logging.js +26 -0
  136. package/dist/cli/internal/node.d.ts +33 -0
  137. package/dist/cli/internal/node.d.ts.map +1 -0
  138. package/dist/cli/internal/node.js +228 -0
  139. package/dist/cli/internal/processHelpers.d.ts +17 -0
  140. package/dist/cli/internal/processHelpers.d.ts.map +1 -0
  141. package/dist/cli/internal/processHelpers.js +56 -0
  142. package/dist/cli/internal/providerFactories.d.ts +48 -0
  143. package/dist/cli/internal/providerFactories.d.ts.map +1 -0
  144. package/dist/cli/internal/providerFactories.js +442 -0
  145. package/dist/cli/internal/testIdParser.d.ts +34 -0
  146. package/dist/cli/internal/testIdParser.d.ts.map +1 -0
  147. package/dist/cli/internal/testIdParser.js +167 -0
  148. package/dist/cli/lib/binariesHelpers.d.ts +15 -0
  149. package/dist/cli/lib/binariesHelpers.d.ts.map +1 -0
  150. package/dist/cli/lib/binariesHelpers.js +99 -0
  151. package/dist/cli/lib/configReader.d.ts +8 -0
  152. package/dist/cli/lib/configReader.d.ts.map +1 -0
  153. package/dist/cli/lib/configReader.js +115 -0
  154. package/dist/cli/lib/contractFunctions.d.ts +2 -0
  155. package/dist/cli/lib/contractFunctions.d.ts.map +1 -0
  156. package/dist/cli/lib/contractFunctions.js +2 -0
  157. package/dist/cli/lib/globalContext.d.ts +46 -0
  158. package/dist/cli/lib/globalContext.d.ts.map +1 -0
  159. package/dist/cli/lib/globalContext.js +710 -0
  160. package/dist/cli/lib/governanceProcedures.d.ts +27 -0
  161. package/dist/cli/lib/governanceProcedures.d.ts.map +1 -0
  162. package/dist/cli/lib/governanceProcedures.js +458 -0
  163. package/dist/cli/lib/handlers/index.d.ts +5 -0
  164. package/dist/cli/lib/handlers/index.d.ts.map +1 -0
  165. package/dist/cli/lib/handlers/index.js +5 -0
  166. package/dist/cli/lib/repoDefinitions/index.d.ts +6 -0
  167. package/dist/cli/lib/repoDefinitions/index.d.ts.map +1 -0
  168. package/dist/cli/lib/repoDefinitions/index.js +21 -0
  169. package/dist/cli/lib/repoDefinitions/moonbeam.d.ts +4 -0
  170. package/dist/cli/lib/repoDefinitions/moonbeam.d.ts.map +1 -0
  171. package/dist/cli/lib/repoDefinitions/moonbeam.js +30 -0
  172. package/dist/cli/lib/repoDefinitions/polkadot.d.ts +4 -0
  173. package/dist/cli/lib/repoDefinitions/polkadot.d.ts.map +1 -0
  174. package/dist/cli/lib/repoDefinitions/polkadot.js +11 -0
  175. package/dist/cli/lib/repoDefinitions/tanssi.d.ts +4 -0
  176. package/dist/cli/lib/repoDefinitions/tanssi.d.ts.map +1 -0
  177. package/dist/cli/lib/repoDefinitions/tanssi.js +14 -0
  178. package/dist/cli/lib/rpcFunctions.d.ts +2 -0
  179. package/dist/cli/lib/rpcFunctions.d.ts.map +1 -0
  180. package/dist/cli/lib/rpcFunctions.js +26 -0
  181. package/dist/cli/lib/runnerContext.d.ts +32 -0
  182. package/dist/cli/lib/runnerContext.d.ts.map +1 -0
  183. package/dist/cli/lib/runnerContext.js +156 -0
  184. package/dist/cli/lib/shardManager.d.ts +40 -0
  185. package/dist/cli/lib/shardManager.d.ts.map +1 -0
  186. package/dist/cli/lib/shardManager.js +80 -0
  187. package/dist/cli/lib/upgradeProcedures.d.ts +5 -0
  188. package/dist/cli/lib/upgradeProcedures.d.ts.map +1 -0
  189. package/dist/cli/lib/upgradeProcedures.js +221 -0
  190. package/dist/cli.d.ts +4 -0
  191. package/dist/cli.d.ts.map +1 -0
  192. package/dist/cli.js +3 -0
  193. package/dist/contracts/contractInteraction.d.ts +17 -0
  194. package/dist/contracts/contractInteraction.d.ts.map +1 -0
  195. package/dist/contracts/contractInteraction.js +170 -0
  196. package/dist/contracts/index.d.ts +2 -0
  197. package/dist/contracts/index.d.ts.map +1 -0
  198. package/dist/contracts/index.js +1 -0
  199. package/dist/foundations/chopsticks/handler.d.ts +3 -0
  200. package/dist/foundations/chopsticks/handler.d.ts.map +1 -0
  201. package/dist/foundations/chopsticks/handler.js +93 -0
  202. package/dist/foundations/chopsticks/helpers.d.ts +27 -0
  203. package/dist/foundations/chopsticks/helpers.d.ts.map +1 -0
  204. package/dist/foundations/chopsticks/helpers.js +133 -0
  205. package/dist/foundations/dev/handler.d.ts +3 -0
  206. package/dist/foundations/dev/handler.d.ts.map +1 -0
  207. package/dist/foundations/dev/handler.js +136 -0
  208. package/dist/foundations/dev/helpers.d.ts +27 -0
  209. package/dist/foundations/dev/helpers.d.ts.map +1 -0
  210. package/dist/foundations/dev/helpers.js +161 -0
  211. package/dist/foundations/read-only/handler.d.ts +3 -0
  212. package/dist/foundations/read-only/handler.d.ts.map +1 -0
  213. package/dist/foundations/read-only/handler.js +32 -0
  214. package/dist/foundations/zombie/handler.d.ts +3 -0
  215. package/dist/foundations/zombie/handler.d.ts.map +1 -0
  216. package/dist/foundations/zombie/handler.js +92 -0
  217. package/dist/foundations/zombie/helpers.d.ts +16 -0
  218. package/dist/foundations/zombie/helpers.d.ts.map +1 -0
  219. package/dist/foundations/zombie/helpers.js +97 -0
  220. package/dist/index.d.ts +17 -0
  221. package/dist/index.d.ts.map +1 -0
  222. package/dist/index.js +47 -0
  223. package/dist/internal/common.d.ts +3 -0
  224. package/dist/internal/common.d.ts.map +1 -0
  225. package/dist/internal/common.js +41 -0
  226. package/dist/internal/index.d.ts +4 -0
  227. package/dist/internal/index.d.ts.map +1 -0
  228. package/dist/internal/index.js +3 -0
  229. package/dist/internal/logger.d.ts +24 -0
  230. package/dist/internal/logger.d.ts.map +1 -0
  231. package/dist/internal/logger.js +66 -0
  232. package/dist/internal/logging.d.ts +7 -0
  233. package/dist/internal/logging.d.ts.map +1 -0
  234. package/dist/internal/logging.js +36 -0
  235. package/dist/moondebug.d.ts +3 -0
  236. package/dist/moondebug.d.ts.map +1 -0
  237. package/dist/moondebug.js +2 -0
  238. package/dist/services/cache/FileLock.d.ts +11 -0
  239. package/dist/services/cache/FileLock.d.ts.map +1 -0
  240. package/dist/services/cache/FileLock.js +68 -0
  241. package/dist/services/cache/StartupCacheService.d.ts +23 -0
  242. package/dist/services/cache/StartupCacheService.d.ts.map +1 -0
  243. package/dist/services/cache/StartupCacheService.js +159 -0
  244. package/dist/services/cache/index.d.ts +3 -0
  245. package/dist/services/cache/index.d.ts.map +1 -0
  246. package/dist/services/cache/index.js +2 -0
  247. package/dist/services/chopsticks/ChopsticksMultiChain.d.ts +158 -0
  248. package/dist/services/chopsticks/ChopsticksMultiChain.d.ts.map +1 -0
  249. package/dist/services/chopsticks/ChopsticksMultiChain.js +282 -0
  250. package/dist/services/chopsticks/ChopsticksService.d.ts +313 -0
  251. package/dist/services/chopsticks/ChopsticksService.d.ts.map +1 -0
  252. package/dist/services/chopsticks/ChopsticksService.js +77 -0
  253. package/dist/services/chopsticks/chopsticksConfigParser.d.ts +40 -0
  254. package/dist/services/chopsticks/chopsticksConfigParser.d.ts.map +1 -0
  255. package/dist/services/chopsticks/chopsticksConfigParser.js +201 -0
  256. package/dist/services/chopsticks/index.d.ts +5 -0
  257. package/dist/services/chopsticks/index.d.ts.map +1 -0
  258. package/dist/services/chopsticks/index.js +4 -0
  259. package/dist/services/chopsticks/launchChopsticksEffect.d.ts +225 -0
  260. package/dist/services/chopsticks/launchChopsticksEffect.d.ts.map +1 -0
  261. package/dist/services/chopsticks/launchChopsticksEffect.js +623 -0
  262. package/dist/services/config/configAccessors.d.ts +41 -0
  263. package/dist/services/config/configAccessors.d.ts.map +1 -0
  264. package/dist/services/config/configAccessors.js +149 -0
  265. package/dist/services/config/index.d.ts +2 -0
  266. package/dist/services/config/index.d.ts.map +1 -0
  267. package/dist/services/config/index.js +1 -0
  268. package/dist/services/errors.d.ts +72 -0
  269. package/dist/services/errors.d.ts.map +1 -0
  270. package/dist/services/errors.js +31 -0
  271. package/dist/services/index.d.ts +7 -0
  272. package/dist/services/index.d.ts.map +1 -0
  273. package/dist/services/index.js +6 -0
  274. package/dist/services/network/NodeReadinessService.d.ts +35 -0
  275. package/dist/services/network/NodeReadinessService.d.ts.map +1 -0
  276. package/dist/services/network/NodeReadinessService.js +120 -0
  277. package/dist/services/network/PortDiscoveryService.d.ts +22 -0
  278. package/dist/services/network/PortDiscoveryService.d.ts.map +1 -0
  279. package/dist/services/network/PortDiscoveryService.js +77 -0
  280. package/dist/services/network/RpcPortDiscoveryService.d.ts +25 -0
  281. package/dist/services/network/RpcPortDiscoveryService.d.ts.map +1 -0
  282. package/dist/services/network/RpcPortDiscoveryService.js +136 -0
  283. package/dist/services/network/index.d.ts +4 -0
  284. package/dist/services/network/index.d.ts.map +1 -0
  285. package/dist/services/network/index.js +3 -0
  286. package/dist/services/process/ProcessManagerService.d.ts +49 -0
  287. package/dist/services/process/ProcessManagerService.d.ts.map +1 -0
  288. package/dist/services/process/ProcessManagerService.js +162 -0
  289. package/dist/services/process/index.d.ts +3 -0
  290. package/dist/services/process/index.d.ts.map +1 -0
  291. package/dist/services/process/index.js +2 -0
  292. package/dist/services/process/launchNodeEffect.d.ts +40 -0
  293. package/dist/services/process/launchNodeEffect.d.ts.map +1 -0
  294. package/dist/services/process/launchNodeEffect.js +86 -0
  295. package/dist/util/functions/index.d.ts +3 -0
  296. package/dist/util/functions/index.d.ts.map +1 -0
  297. package/dist/util/functions/index.js +4 -0
  298. package/dist/util/index.d.ts +4 -0
  299. package/dist/util/index.d.ts.map +1 -0
  300. package/dist/util/index.js +2 -0
  301. package/package.json +157 -0
@@ -0,0 +1,811 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "definitions": {
4
+ "Bottleneck.IORedisConnection": {
5
+ "type": "object"
6
+ },
7
+ "Bottleneck.RedisConnection": {
8
+ "type": "object"
9
+ },
10
+ "Bottleneck.Strategy": {
11
+ "type": "object"
12
+ },
13
+ "ChopsticksLaunchSpec": {
14
+ "description": "A launch specification object for the \"chopsticks\" foundation type.",
15
+ "properties": {
16
+ "address": {
17
+ "description": "Server listening interface\nAdded in: https://github.com/AcalaNetwork/chopsticks/pull/826",
18
+ "type": "string"
19
+ },
20
+ "allowUnresolvedImports": {
21
+ "description": "An optional flag to NOT throw when the host fails to export a function expected by the runtime.",
22
+ "type": "boolean"
23
+ },
24
+ "buildBlockMode": {
25
+ "description": "An optional block building mode, can be \"batch\", \"manual\" or \"instant\".\nThis is only supported for single mode chopsticks.",
26
+ "enum": ["batch", "instant", "manual"],
27
+ "type": "string"
28
+ },
29
+ "configPath": {
30
+ "description": "The path to the config file.",
31
+ "type": "string"
32
+ },
33
+ "legacy": {
34
+ "description": "Whether to use the legacy way of launching nodes (directly via ChildProcess) or the new way (using Effect)\nDefault: false (use Effect)\nNOTE: This is a temporary flag to ease the transition to Effect-based node management.\nIt will be removed in a future release. This does not affect read-only foundations.",
35
+ "type": "boolean"
36
+ },
37
+ "name": {
38
+ "description": "The name of the launch spec.",
39
+ "type": "string"
40
+ },
41
+ "newBlockTimeout": {
42
+ "description": "Optional timeout in milliseconds for new block operations.\nDefaults to 60000ms (60 seconds) if not specified.\nIncrease this for chains with large storage migrations.",
43
+ "type": "number"
44
+ },
45
+ "options": {
46
+ "description": "An optional array of options for the launch spec.",
47
+ "items": {
48
+ "type": "string"
49
+ },
50
+ "type": "array"
51
+ },
52
+ "retainAllLogs": {
53
+ "description": "An optional flag to retain node logs from previous runs.",
54
+ "type": "boolean"
55
+ },
56
+ "running": {
57
+ "description": "UNUSED",
58
+ "type": "boolean"
59
+ },
60
+ "type": {
61
+ "description": "An optional type of either \"relaychain\" or \"parachain\".",
62
+ "enum": ["parachain", "relaychain"],
63
+ "type": "string"
64
+ },
65
+ "wasmOverride": {
66
+ "description": "An optional WebAssembly override.",
67
+ "type": "string"
68
+ },
69
+ "wsPort": {
70
+ "description": "An optional WebSocket port.\nQuirk of Chopsticks is that port option is only for single mode not xcm.",
71
+ "type": "number"
72
+ }
73
+ },
74
+ "type": "object"
75
+ },
76
+ "DevLaunchSpec": {
77
+ "description": "A launch specification object for the \"dev\" foundation type.",
78
+ "properties": {
79
+ "binPath": {
80
+ "description": "The path to the binary to execute OR the Docker image to use",
81
+ "type": "string"
82
+ },
83
+ "cacheStartupArtifacts": {
84
+ "default": false,
85
+ "description": "Cache startup artifacts for faster node launch (~10x improvement).\nWhen enabled, Moonwall will:\n1. Precompile the runtime WASM to native code using `precompile-wasm`\n2. Generate a raw chain spec to skip genesis WASM compilation\n\nBoth artifacts are cached by binary hash and reused on subsequent runs.\n\n- true: Enable caching (recommended for faster startup)\n- false: Disable caching (default)",
86
+ "type": "boolean"
87
+ },
88
+ "defaultForkConfig": {
89
+ "description": "BETA: Default Fork options for the node (overriden by per-test fork options)",
90
+ "properties": {
91
+ "blockHash": {
92
+ "description": "The block hash to fork from",
93
+ "type": "string"
94
+ },
95
+ "stateOverridePath": {
96
+ "description": "The state override path (optional)",
97
+ "type": "string"
98
+ },
99
+ "url": {
100
+ "description": "The URL to fork from",
101
+ "type": "string"
102
+ },
103
+ "verbose": {
104
+ "description": "Turns on trace logging for LazyLoading service (optional)",
105
+ "type": "boolean"
106
+ }
107
+ },
108
+ "type": "object"
109
+ },
110
+ "disableDefaultEthProviders": {
111
+ "description": "Determines if the default Ethereum provider connections should be disabled.\nWhen set to true, the framework will not automatically connect the Ethereum providers.\nDefault behavior (when unset or set to false) is to connect with Ethers, Viem & Web3 frameworks.\n\nNote: This also acts as a feature gate for context methods like createTxn and readPrecompile.",
112
+ "type": "boolean"
113
+ },
114
+ "dockerConfig": {
115
+ "description": "Docker-specific configuration",
116
+ "properties": {
117
+ "containerName": {
118
+ "description": "Docker container name. If not provided, one will be generated",
119
+ "type": "string"
120
+ },
121
+ "exposePorts": {
122
+ "description": "Port mappings from host to container",
123
+ "items": {
124
+ "properties": {
125
+ "hostPort": {
126
+ "type": "number"
127
+ },
128
+ "internalPort": {
129
+ "type": "number"
130
+ }
131
+ },
132
+ "type": "object"
133
+ },
134
+ "type": "array"
135
+ },
136
+ "network": {
137
+ "description": "Docker network to connect to. If not provided, the default network will be used",
138
+ "type": "string"
139
+ },
140
+ "runArgs": {
141
+ "description": "Additional Docker run arguments (e.g. environment variables, volumes)",
142
+ "items": {
143
+ "type": "string"
144
+ },
145
+ "type": "array"
146
+ }
147
+ },
148
+ "type": "object"
149
+ },
150
+ "legacy": {
151
+ "description": "Whether to use the legacy way of launching nodes (directly via ChildProcess) or the new way (using Effect)\nDefault: false (use Effect)\nNOTE: This is a temporary flag to ease the transition to Effect-based node management.\nIt will be removed in a future release. This does not affect read-only foundations.",
152
+ "type": "boolean"
153
+ },
154
+ "name": {
155
+ "description": "The name of the launch spec.",
156
+ "type": "string"
157
+ },
158
+ "newRpcBehaviour": {
159
+ "description": "Launch node using rpc-port parameter instead of ws-port.",
160
+ "type": "boolean"
161
+ },
162
+ "options": {
163
+ "description": "An optional array of options for the launch spec.",
164
+ "items": {
165
+ "type": "string"
166
+ },
167
+ "type": "array"
168
+ },
169
+ "ports": {
170
+ "description": "Port configuration",
171
+ "properties": {
172
+ "p2pPort": {
173
+ "description": "The port for peer-to-peer (P2P) communication.",
174
+ "type": "number"
175
+ },
176
+ "rpcPort": {
177
+ "description": "The port for remote procedure call (RPC).",
178
+ "type": "number"
179
+ },
180
+ "wsPort": {
181
+ "description": "The port for WebSocket communication (soon deprecated)",
182
+ "type": "number"
183
+ }
184
+ },
185
+ "type": "object"
186
+ },
187
+ "retainAllLogs": {
188
+ "description": "An optional flag to retain node logs from previous runs.",
189
+ "type": "boolean"
190
+ },
191
+ "running": {
192
+ "description": "UNUSED",
193
+ "type": "boolean"
194
+ },
195
+ "startupCacheDir": {
196
+ "description": "Directory to cache startup artifacts (precompiled WASM and raw chain spec).\nDefaults to \"./tmp/startup-cache\" relative to the config file.",
197
+ "type": "string"
198
+ },
199
+ "useDocker": {
200
+ "description": "If true, binPath will be treated as a Docker image instead of a local binary",
201
+ "type": "boolean"
202
+ }
203
+ },
204
+ "type": "object"
205
+ },
206
+ "IFoundation": {
207
+ "anyOf": [
208
+ {
209
+ "properties": {
210
+ "launchSpec": {
211
+ "items": {
212
+ "$ref": "#/definitions/DevLaunchSpec"
213
+ },
214
+ "type": "array"
215
+ },
216
+ "type": {
217
+ "const": "dev",
218
+ "type": "string"
219
+ }
220
+ },
221
+ "type": "object"
222
+ },
223
+ {
224
+ "properties": {
225
+ "launchSpec": {
226
+ "items": {
227
+ "$ref": "#/definitions/ChopsticksLaunchSpec"
228
+ },
229
+ "type": "array"
230
+ },
231
+ "rtUpgradePath": {
232
+ "type": "string"
233
+ },
234
+ "type": {
235
+ "const": "chopsticks",
236
+ "type": "string"
237
+ }
238
+ },
239
+ "type": "object"
240
+ },
241
+ {
242
+ "properties": {
243
+ "rtUpgradePath": {
244
+ "type": "string"
245
+ },
246
+ "type": {
247
+ "const": "zombie",
248
+ "type": "string"
249
+ },
250
+ "zombieSpec": {
251
+ "$ref": "#/definitions/ZombieLaunchSpec"
252
+ }
253
+ },
254
+ "type": "object"
255
+ },
256
+ {
257
+ "properties": {
258
+ "launchSpec": {
259
+ "$ref": "#/definitions/ReadOnlyLaunchSpec"
260
+ },
261
+ "type": {
262
+ "const": "read_only",
263
+ "type": "string"
264
+ }
265
+ },
266
+ "type": "object"
267
+ }
268
+ ],
269
+ "description": "The foundation configuration for the environment. It can be of several types including \"dev\", \"chopsticks\", \"zombie\", \"read_only\", or \"fork\"."
270
+ },
271
+ "IRpcBundle": {
272
+ "additionalProperties": {
273
+ "$ref": "#/definitions/IRpcModule"
274
+ },
275
+ "description": "Interface for defining RPC bundles.\nIt is a dictionary where each key is a module name and the value is an IRpcModule.",
276
+ "type": "object"
277
+ },
278
+ "IRpcMethod": {
279
+ "description": "Interface for defining RPC methods.",
280
+ "properties": {
281
+ "description": {
282
+ "type": "string"
283
+ },
284
+ "params": {
285
+ "items": {
286
+ "$ref": "#/definitions/IRpcParam"
287
+ },
288
+ "type": "array"
289
+ },
290
+ "type": {
291
+ "type": "string"
292
+ }
293
+ },
294
+ "type": "object"
295
+ },
296
+ "IRpcModule": {
297
+ "additionalProperties": {
298
+ "$ref": "#/definitions/IRpcMethod"
299
+ },
300
+ "description": "Interface for defining RPC modules.\nIt is a dictionary where each key is a method name and the value is an IRpcMethod.",
301
+ "type": "object"
302
+ },
303
+ "IRpcParam": {
304
+ "description": "Interface for defining RPC parameters.",
305
+ "properties": {
306
+ "isOptional": {
307
+ "type": "boolean"
308
+ },
309
+ "name": {
310
+ "type": "string"
311
+ },
312
+ "type": {
313
+ "type": "string"
314
+ }
315
+ },
316
+ "type": "object"
317
+ },
318
+ "LogType": {
319
+ "enum": ["silent", "table", "text"],
320
+ "type": "string"
321
+ },
322
+ "OrcOptionsInterface": {
323
+ "properties": {
324
+ "dir": {
325
+ "type": "string"
326
+ },
327
+ "force": {
328
+ "type": "boolean"
329
+ },
330
+ "inCI": {
331
+ "type": "boolean"
332
+ },
333
+ "logType": {
334
+ "$ref": "#/definitions/LogType"
335
+ },
336
+ "monitor": {
337
+ "type": "boolean"
338
+ },
339
+ "setGlobalNetwork": {
340
+ "type": "object"
341
+ },
342
+ "spawnConcurrency": {
343
+ "type": "number"
344
+ }
345
+ },
346
+ "type": "object"
347
+ },
348
+ "ProviderConfig": {
349
+ "description": "The configuration object for a provider.",
350
+ "properties": {
351
+ "additionalTypes": {
352
+ "additionalProperties": {
353
+ "additionalProperties": {
354
+ "type": "string"
355
+ },
356
+ "type": "object"
357
+ },
358
+ "description": "An optional collection of additional types.",
359
+ "type": "object"
360
+ },
361
+ "cacheMetadata": {
362
+ "default": true,
363
+ "description": "Cache runtime metadata for faster PolkadotJS API connections.\nWhen enabled, metadata is cached after first connection and reused,\nsignificantly reducing connection time for subsequent runs.\n\nOnly applies to \"polkadotJs\" provider type.",
364
+ "type": "boolean"
365
+ },
366
+ "endpoints": {
367
+ "description": "An array of endpoint URLs.",
368
+ "items": {
369
+ "type": "string"
370
+ },
371
+ "type": "array"
372
+ },
373
+ "name": {
374
+ "description": "The name of the provider.",
375
+ "type": "string"
376
+ },
377
+ "rpc": {
378
+ "$ref": "#/definitions/IRpcBundle",
379
+ "description": "An optional RPC bundle."
380
+ },
381
+ "type": {
382
+ "$ref": "#/definitions/ProviderType",
383
+ "description": "The type of the provider."
384
+ }
385
+ },
386
+ "type": "object"
387
+ },
388
+ "ProviderType": {
389
+ "description": "The type of provider. Can be \"polkadotJs\", \"ethers\", \"web3\", \"viem\", \"papi\"",
390
+ "enum": ["ethers", "papi", "polkadotJs", "viem", "web3"],
391
+ "type": "string"
392
+ },
393
+ "ReadOnlyLaunchSpec": {
394
+ "description": "A launch specification object for the \"read_only\" foundation type.",
395
+ "properties": {
396
+ "disableRuntimeVersionCheck": {
397
+ "description": "Disable runtime version check.\nRT Version check is enabled by default.",
398
+ "type": "boolean"
399
+ },
400
+ "legacy": {
401
+ "description": "Whether to use the legacy way of launching nodes (directly via ChildProcess) or the new way (using Effect)\nDefault: false (use Effect)\nNOTE: This is a temporary flag to ease the transition to Effect-based node management.\nIt will be removed in a future release. This does not affect read-only foundations.",
402
+ "type": "boolean"
403
+ },
404
+ "name": {
405
+ "description": "The name of the launch spec.",
406
+ "type": "string"
407
+ },
408
+ "options": {
409
+ "description": "An optional array of options for the launch spec.",
410
+ "items": {
411
+ "type": "string"
412
+ },
413
+ "type": "array"
414
+ },
415
+ "rateLimiter": {
416
+ "anyOf": [
417
+ {
418
+ "additionalProperties": {},
419
+ "properties": {
420
+ "Promise": {
421
+ "description": "Override the Promise library used by Bottleneck."
422
+ },
423
+ "Redis": {
424
+ "description": "Optional Redis/IORedis library from `require('ioredis')` or equivalent. If not, Bottleneck will attempt to require Redis/IORedis at runtime."
425
+ },
426
+ "clearDatastore": {
427
+ "description": "When set to `true`, on initial startup, the limiter will wipe any existing Bottleneck state data on the Redis db.",
428
+ "type": "boolean"
429
+ },
430
+ "clientOptions": {
431
+ "description": "This object is passed directly to the redis client library you've selected."
432
+ },
433
+ "clusterNodes": {
434
+ "description": "**ioredis only.** When `clusterNodes` is not null, the client will be instantiated by calling `new Redis.Cluster(clusterNodes, clientOptions)`."
435
+ },
436
+ "connection": {
437
+ "anyOf": [
438
+ {
439
+ "$ref": "#/definitions/Bottleneck.RedisConnection"
440
+ },
441
+ {
442
+ "$ref": "#/definitions/Bottleneck.IORedisConnection"
443
+ }
444
+ ],
445
+ "description": "Bottleneck connection object created from `new Bottleneck.RedisConnection` or `new Bottleneck.IORedisConnection`."
446
+ },
447
+ "datastore": {
448
+ "description": "Where the limiter stores its internal state. The default (`local`) keeps the state in the limiter itself. Set it to `redis` to enable Clustering.",
449
+ "type": "string"
450
+ },
451
+ "highWater": {
452
+ "description": "How long can the queue get? When the queue length exceeds that value, the selected `strategy` is executed to shed the load.",
453
+ "type": "number"
454
+ },
455
+ "id": {
456
+ "description": "Optional identifier",
457
+ "type": "string"
458
+ },
459
+ "maxConcurrent": {
460
+ "description": "How many jobs can be running at the same time.",
461
+ "type": "number"
462
+ },
463
+ "minTime": {
464
+ "description": "How long to wait after launching a job before launching another one.",
465
+ "type": "number"
466
+ },
467
+ "penalty": {
468
+ "description": "The `penalty` value used by the `Bottleneck.strategy.BLOCK` strategy.",
469
+ "type": "number"
470
+ },
471
+ "rejectOnDrop": {
472
+ "description": "Set to true to leave your failed jobs hanging instead of failing them.",
473
+ "type": "boolean"
474
+ },
475
+ "reservoir": {
476
+ "description": "How many jobs can be executed before the limiter stops executing jobs. If `reservoir` reaches `0`, no jobs will be executed until it is no longer `0`.",
477
+ "type": "number"
478
+ },
479
+ "reservoirIncreaseAmount": {
480
+ "description": "The increment applied to `reservoir` when `reservoirIncreaseInterval` is in use.",
481
+ "type": "number"
482
+ },
483
+ "reservoirIncreaseInterval": {
484
+ "description": "Every `reservoirIncreaseInterval` milliseconds, the `reservoir` value will be automatically incremented by `reservoirIncreaseAmount`.",
485
+ "type": "number"
486
+ },
487
+ "reservoirIncreaseMaximum": {
488
+ "description": "The maximum value that `reservoir` can reach when `reservoirIncreaseInterval` is in use.",
489
+ "type": "number"
490
+ },
491
+ "reservoirRefreshAmount": {
492
+ "description": "The value to reset `reservoir` to when `reservoirRefreshInterval` is in use.",
493
+ "type": "number"
494
+ },
495
+ "reservoirRefreshInterval": {
496
+ "description": "Every `reservoirRefreshInterval` milliseconds, the `reservoir` value will be automatically reset to `reservoirRefreshAmount`.",
497
+ "type": "number"
498
+ },
499
+ "strategy": {
500
+ "$ref": "#/definitions/Bottleneck.Strategy",
501
+ "description": "Which strategy to use if the queue gets longer than the high water mark."
502
+ },
503
+ "timeout": {
504
+ "description": "The Redis TTL in milliseconds for the keys created by the limiter. When `timeout` is set, the limiter's state will be automatically removed from Redis after timeout milliseconds of inactivity. Note: timeout is 300000 (5 minutes) by default when using a Group.",
505
+ "type": "number"
506
+ },
507
+ "trackDoneStatus": {
508
+ "description": "Set to true to keep track of done jobs with counts() and jobStatus(). Uses more memory.",
509
+ "type": "boolean"
510
+ }
511
+ },
512
+ "type": "object"
513
+ },
514
+ {
515
+ "type": "boolean"
516
+ }
517
+ ],
518
+ "description": "Rate limiter options, on by default.\nCan be set to false to disable."
519
+ },
520
+ "running": {
521
+ "description": "UNUSED",
522
+ "type": "boolean"
523
+ }
524
+ },
525
+ "type": "object"
526
+ },
527
+ "Record<string,any>": {
528
+ "type": "object"
529
+ },
530
+ "ZombieLaunchSpec": {
531
+ "description": "A launch specification object for the \"zombie\" foundation type.",
532
+ "properties": {
533
+ "additionalZombieConfig": {
534
+ "$ref": "#/definitions/OrcOptionsInterface",
535
+ "description": "Additional configuration for the zombie network"
536
+ },
537
+ "configPath": {
538
+ "description": "The path to the config file.",
539
+ "type": "string"
540
+ },
541
+ "disableDefaultEthProviders": {
542
+ "description": "Determines if the default Ethereum provider connections should be disabled.\nWhen set to true, the framework will not automatically connect the Ethereum providers.\nDefault behavior (when unset or set to false) is to connect with Ethers, Viem & Web3 frameworks.",
543
+ "type": "boolean"
544
+ },
545
+ "disableLogEavesdropping": {
546
+ "description": "Specifies whether the framework should eavesdrop and log WARN, ERROR from the node logs.\nIf set to true, the eavesdropping on node logs is disabled.\nDefault behavior (when unset or set to false) is to listen to the logs.",
547
+ "type": "boolean"
548
+ },
549
+ "legacy": {
550
+ "description": "Whether to use the legacy way of launching nodes (directly via ChildProcess) or the new way (using Effect)\nDefault: false (use Effect)\nNOTE: This is a temporary flag to ease the transition to Effect-based node management.\nIt will be removed in a future release. This does not affect read-only foundations.",
551
+ "type": "boolean"
552
+ },
553
+ "name": {
554
+ "description": "The name of the launch spec.",
555
+ "type": "string"
556
+ },
557
+ "options": {
558
+ "description": "An optional array of options for the launch spec.",
559
+ "items": {
560
+ "type": "string"
561
+ },
562
+ "type": "array"
563
+ },
564
+ "running": {
565
+ "description": "UNUSED",
566
+ "type": "boolean"
567
+ },
568
+ "skipBlockCheck": {
569
+ "description": "An optional array of blocks to skip checking.",
570
+ "items": {
571
+ "type": "string"
572
+ },
573
+ "type": "array"
574
+ }
575
+ },
576
+ "type": "object"
577
+ }
578
+ },
579
+ "description": "The main configuration object for Moonwall.",
580
+ "properties": {
581
+ "$schema": {
582
+ "description": "The schema for the config.\nBy default should use: \"https://raw.githubusercontent.com/Moonsong-Labs/moonwall/main/config_schema.json\"",
583
+ "type": "string"
584
+ },
585
+ "additionalRepos": {
586
+ "description": "Use this to specify additional repos to download binaries from.\nPolkadot, Tanssi and Moonbeam are available by default.",
587
+ "items": {
588
+ "description": "`RepoSpec` type represents the configuration required to download binaries\nfrom a project's GitHub repository.",
589
+ "properties": {
590
+ "binaries": {
591
+ "items": {
592
+ "description": "`Bin` type defines the binary configurations within a `RepoSpec`.",
593
+ "properties": {
594
+ "defaultArgs": {
595
+ "items": {
596
+ "type": "string"
597
+ },
598
+ "type": "array"
599
+ },
600
+ "name": {
601
+ "type": "string"
602
+ }
603
+ },
604
+ "type": "object"
605
+ },
606
+ "type": "array"
607
+ },
608
+ "ghAuthor": {
609
+ "type": "string"
610
+ },
611
+ "ghRepo": {
612
+ "type": "string"
613
+ },
614
+ "name": {
615
+ "type": "string"
616
+ }
617
+ },
618
+ "type": "object"
619
+ },
620
+ "type": "array"
621
+ },
622
+ "defaultTestTimeout": {
623
+ "description": "The default timeout for tests.",
624
+ "type": "number"
625
+ },
626
+ "environments": {
627
+ "description": "An array of Environment objects for testing.",
628
+ "items": {
629
+ "description": "The environment configuration for testing.",
630
+ "properties": {
631
+ "cacheImports": {
632
+ "default": false,
633
+ "description": "Enable Vitest's dependency optimizer to pre-bundle imports (viem, ethers).\nThis can reduce test collection time by ~10% by caching bundled dependencies.",
634
+ "type": "boolean"
635
+ },
636
+ "connections": {
637
+ "description": "An optional array of ProviderConfig objects.",
638
+ "items": {
639
+ "$ref": "#/definitions/ProviderConfig"
640
+ },
641
+ "type": "array"
642
+ },
643
+ "contracts": {
644
+ "description": "Path to directory containing smart contracts for testing against.",
645
+ "type": "string"
646
+ },
647
+ "defaultAllowFailures": {
648
+ "description": "Toggle whether createBlock() will throw when extrinsic errors inside.",
649
+ "type": "boolean"
650
+ },
651
+ "defaultFinalization": {
652
+ "description": "Toggle whether createBlock() will finalize blocks by default or not.",
653
+ "type": "boolean"
654
+ },
655
+ "defaultSigner": {
656
+ "description": "The privateKey with which to sign and send transactions in createBlock() function.",
657
+ "properties": {
658
+ "privateKey": {
659
+ "description": "Hex encoded private key to generate KeyringPair (\"0x..\")",
660
+ "type": "string"
661
+ },
662
+ "type": {
663
+ "description": "Substrate Keyring type",
664
+ "enum": ["ed25519", "ethereum", "sr25519"],
665
+ "type": "string"
666
+ }
667
+ },
668
+ "type": "object"
669
+ },
670
+ "description": {
671
+ "description": "Description of the environment to display in menus.",
672
+ "type": "string"
673
+ },
674
+ "envVars": {
675
+ "description": "An optional array of environment variable names.",
676
+ "items": {
677
+ "type": "string"
678
+ },
679
+ "type": "array"
680
+ },
681
+ "foundation": {
682
+ "$ref": "#/definitions/IFoundation",
683
+ "description": "The foundation configuration for the environment."
684
+ },
685
+ "include": {
686
+ "description": "An optional array of included files or directories.",
687
+ "items": {
688
+ "type": "string"
689
+ },
690
+ "type": "array"
691
+ },
692
+ "multiThreads": {
693
+ "anyOf": [
694
+ {
695
+ "description": "Vitest 4 pool configuration for multi-threaded test execution.\nPool-specific options are now top-level (no more nested poolOptions).",
696
+ "properties": {
697
+ "isolate": {
698
+ "default": true,
699
+ "description": "Isolate environment for each test file.",
700
+ "type": "boolean"
701
+ },
702
+ "maxWorkers": {
703
+ "description": "Maximum number of workers to run tests in parallel.\nUse `1` to run tests sequentially within the pool.",
704
+ "type": "number"
705
+ },
706
+ "memoryLimit": {
707
+ "description": "Memory limit per worker as fraction of total memory (vmThreads only).\nExample: 0.25 = 25% of available memory.\nMaps to Vitest's vmMemoryLimit option.",
708
+ "type": "number"
709
+ },
710
+ "pool": {
711
+ "description": "The pool type to use for test execution.\n- `threads`: Worker threads (default)\n- `forks`: Child processes\n- `vmThreads`: VM threads with isolated contexts\n- `typescript`: TypeScript worker threads",
712
+ "enum": ["forks", "threads", "typescript", "vmThreads"],
713
+ "type": "string"
714
+ }
715
+ },
716
+ "type": "object"
717
+ },
718
+ {
719
+ "type": ["number", "boolean"]
720
+ }
721
+ ],
722
+ "description": "Multi-threading configuration for test execution.\n- `false`: Sequential execution (default)\n- `true`: Enable parallel execution with defaults\n- `number`: Enable parallel with specific maxWorkers count\n- `object`: Full Vitest 4 pool configuration\n\nVisit https://vitest.dev/config/#pool for more info"
723
+ },
724
+ "name": {
725
+ "description": "The name of the environment.",
726
+ "type": "string"
727
+ },
728
+ "printVitestOptions": {
729
+ "description": "Print vitest options to the console.",
730
+ "type": "boolean"
731
+ },
732
+ "reportFile": {
733
+ "anyOf": [
734
+ {
735
+ "additionalProperties": {
736
+ "type": "string"
737
+ },
738
+ "type": "object"
739
+ },
740
+ {
741
+ "type": "string"
742
+ }
743
+ ],
744
+ "description": "Write test results to a file when the using JSON or HTML reporter.\nBy providing an object instead of a string you can define individual outputs when using multiple reporters."
745
+ },
746
+ "reporters": {
747
+ "description": "An optional array of reporter types e.g. html, basic, verbose, json etc",
748
+ "items": {
749
+ "type": "string"
750
+ },
751
+ "type": "array"
752
+ },
753
+ "runScripts": {
754
+ "description": "An optional array of scripts to run before testing.",
755
+ "items": {
756
+ "type": "string"
757
+ },
758
+ "type": "array"
759
+ },
760
+ "skipTests": {
761
+ "description": "A list of test to skip.",
762
+ "items": {
763
+ "properties": {
764
+ "name": {
765
+ "description": "The name of the test to skip. Eg. S22C500",
766
+ "type": "string"
767
+ },
768
+ "reason": {
769
+ "description": "The reason for skipping the test. Must be provided. Eg. https://github.com/org/repo/issues/123.",
770
+ "type": "string"
771
+ },
772
+ "since": {
773
+ "description": "The date when the test was skipped. Must be provided and be RFC3339 compliant. Eg. 2021-09-01T00:00:00Z",
774
+ "type": "string"
775
+ }
776
+ },
777
+ "type": "object"
778
+ },
779
+ "type": "array"
780
+ },
781
+ "testFileDir": {
782
+ "description": "An array of directories with test files.",
783
+ "items": {
784
+ "type": "string"
785
+ },
786
+ "type": "array"
787
+ },
788
+ "timeout": {
789
+ "description": "The default timeout for tests and hooks",
790
+ "type": "number"
791
+ },
792
+ "vitestArgs": {
793
+ "$ref": "#/definitions/Record%3Cstring%2Cany%3E",
794
+ "description": "An optional object to add extra arguments to the Vitest test runner.\n Use with caution as this will override the default arguments, which\nmay cause unexpected behaviour.\n\nVisit https://vitest.dev/config/ for more info"
795
+ }
796
+ },
797
+ "type": "object"
798
+ },
799
+ "type": "array"
800
+ },
801
+ "label": {
802
+ "description": "A label for the config.",
803
+ "type": "string"
804
+ },
805
+ "scriptsDir": {
806
+ "description": "Optional path to a directory containing scripts.",
807
+ "type": "string"
808
+ }
809
+ },
810
+ "type": "object"
811
+ }