@noodleseed/one 0.22.0 → 0.24.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 (427) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +2 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/author-loop.d.ts +1 -0
  5. package/dist/commands/author-loop.d.ts.map +1 -1
  6. package/dist/commands/author-loop.js +6 -2
  7. package/dist/commands/author-loop.js.map +1 -1
  8. package/dist/commands/catalog-data-core.d.ts.map +1 -1
  9. package/dist/commands/catalog-data-core.js +17 -3
  10. package/dist/commands/catalog-data-core.js.map +1 -1
  11. package/dist/commands/catalog-data-resources.js +2 -2
  12. package/dist/commands/catalog-data-resources.js.map +1 -1
  13. package/dist/commands/catalog-dispatch.d.ts.map +1 -1
  14. package/dist/commands/catalog-dispatch.js +21 -2
  15. package/dist/commands/catalog-dispatch.js.map +1 -1
  16. package/dist/commands/catalog-render.d.ts.map +1 -1
  17. package/dist/commands/catalog-render.js +6 -0
  18. package/dist/commands/catalog-render.js.map +1 -1
  19. package/dist/commands/deploy-ops.d.ts.map +1 -1
  20. package/dist/commands/deploy-ops.js +30 -13
  21. package/dist/commands/deploy-ops.js.map +1 -1
  22. package/dist/commands/deploy-status-ops.d.ts +1 -1
  23. package/dist/commands/deploy-status-ops.d.ts.map +1 -1
  24. package/dist/commands/deploy-status-ops.js +8 -4
  25. package/dist/commands/deploy-status-ops.js.map +1 -1
  26. package/dist/commands/devtools.d.ts +11 -0
  27. package/dist/commands/devtools.d.ts.map +1 -0
  28. package/dist/commands/devtools.js +123 -0
  29. package/dist/commands/devtools.js.map +1 -0
  30. package/dist/commands/mcp-apps.d.ts +0 -1
  31. package/dist/commands/mcp-apps.d.ts.map +1 -1
  32. package/dist/commands/mcp-apps.js +71 -122
  33. package/dist/commands/mcp-apps.js.map +1 -1
  34. package/dist/commands/shared.d.ts +6 -0
  35. package/dist/commands/shared.d.ts.map +1 -1
  36. package/dist/commands/shared.js +19 -0
  37. package/dist/commands/shared.js.map +1 -1
  38. package/dist/deploy.d.ts +1 -1
  39. package/dist/deploy.d.ts.map +1 -1
  40. package/dist/deploy.js +5 -1
  41. package/dist/deploy.js.map +1 -1
  42. package/dist/dev.d.ts.map +1 -1
  43. package/dist/dev.js +13 -1
  44. package/dist/dev.js.map +1 -1
  45. package/dist/fire.js +1 -1
  46. package/dist/fire.js.map +1 -1
  47. package/dist/first-run.d.ts +11 -0
  48. package/dist/first-run.d.ts.map +1 -1
  49. package/dist/first-run.js +19 -4
  50. package/dist/first-run.js.map +1 -1
  51. package/dist/flavor.d.ts +1 -1
  52. package/dist/flavor.d.ts.map +1 -1
  53. package/dist/flavor.js +12 -2
  54. package/dist/flavor.js.map +1 -1
  55. package/dist/project-scaffold-templates.d.ts +11 -0
  56. package/dist/project-scaffold-templates.d.ts.map +1 -0
  57. package/dist/project-scaffold-templates.js +359 -0
  58. package/dist/project-scaffold-templates.js.map +1 -0
  59. package/dist/project.d.ts.map +1 -1
  60. package/dist/project.js +1 -323
  61. package/dist/project.js.map +1 -1
  62. package/dist/react.d.ts +2 -2
  63. package/dist/react.d.ts.map +1 -1
  64. package/dist/react.js +1 -1
  65. package/dist/react.js.map +1 -1
  66. package/dist/validate.d.ts +12 -0
  67. package/dist/validate.d.ts.map +1 -1
  68. package/dist/validate.js +11 -0
  69. package/dist/validate.js.map +1 -1
  70. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +4 -4
  71. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  72. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
  73. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +72 -13
  74. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
  75. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.d.ts.map +1 -1
  76. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +8 -3
  77. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  78. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  79. package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts +18 -1
  80. package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts.map +1 -1
  81. package/node_modules/@noodle-borg/authoring/dist/connectors.js +17 -4
  82. package/node_modules/@noodle-borg/authoring/dist/connectors.js.map +1 -1
  83. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +3 -3
  84. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  85. package/node_modules/@noodle-borg/authoring/dist/index.js +1 -1
  86. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  87. package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +302 -7
  88. package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts.map +1 -1
  89. package/node_modules/@noodle-borg/authoring/dist/react/components.js +39 -7
  90. package/node_modules/@noodle-borg/authoring/dist/react/components.js.map +1 -1
  91. package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts +4 -2
  92. package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts.map +1 -1
  93. package/node_modules/@noodle-borg/authoring/dist/react/index.js +2 -1
  94. package/node_modules/@noodle-borg/authoring/dist/react/index.js.map +1 -1
  95. package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.d.ts +2618 -0
  96. package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.d.ts.map +1 -0
  97. package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.js +110 -0
  98. package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.js.map +1 -0
  99. package/node_modules/@noodle-borg/authoring/dist/react.d.ts +2 -2
  100. package/node_modules/@noodle-borg/authoring/dist/react.d.ts.map +1 -1
  101. package/node_modules/@noodle-borg/authoring/dist/react.js +1 -1
  102. package/node_modules/@noodle-borg/authoring/dist/react.js.map +1 -1
  103. package/node_modules/@noodle-borg/authoring/dist/recording.d.ts +1 -1
  104. package/node_modules/@noodle-borg/authoring/dist/recording.d.ts.map +1 -1
  105. package/node_modules/@noodle-borg/authoring/dist/recording.js +38 -6
  106. package/node_modules/@noodle-borg/authoring/dist/recording.js.map +1 -1
  107. package/node_modules/@noodle-borg/authoring/dist/server.d.ts +25 -2
  108. package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
  109. package/node_modules/@noodle-borg/authoring/dist/server.js +64 -6
  110. package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
  111. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  112. package/node_modules/@noodle-borg/compiler/dist/compile.js +20 -8
  113. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  114. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +2 -0
  115. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  116. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +6 -0
  117. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  118. package/node_modules/@noodle-borg/connector-defs/dist/auth-variables.js +1 -1
  119. package/node_modules/@noodle-borg/connector-defs/dist/auth-variables.js.map +1 -1
  120. package/node_modules/@noodle-borg/connector-defs/dist/call-graph.d.ts +14 -0
  121. package/node_modules/@noodle-borg/connector-defs/dist/call-graph.d.ts.map +1 -0
  122. package/node_modules/@noodle-borg/connector-defs/dist/call-graph.js +66 -0
  123. package/node_modules/@noodle-borg/connector-defs/dist/call-graph.js.map +1 -0
  124. package/node_modules/@noodle-borg/connector-defs/dist/compile-auth.d.ts +21 -0
  125. package/node_modules/@noodle-borg/connector-defs/dist/compile-auth.d.ts.map +1 -0
  126. package/node_modules/@noodle-borg/connector-defs/dist/compile-auth.js +102 -0
  127. package/node_modules/@noodle-borg/connector-defs/dist/compile-auth.js.map +1 -0
  128. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts +19 -4
  129. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts.map +1 -1
  130. package/node_modules/@noodle-borg/connector-defs/dist/compile.js +67 -99
  131. package/node_modules/@noodle-borg/connector-defs/dist/compile.js.map +1 -1
  132. package/node_modules/@noodle-borg/connector-defs/dist/index.d.ts +1 -1
  133. package/node_modules/@noodle-borg/connector-defs/dist/index.d.ts.map +1 -1
  134. package/node_modules/@noodle-borg/connector-defs/dist/index.js.map +1 -1
  135. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +168 -10
  136. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts.map +1 -1
  137. package/node_modules/@noodle-borg/connector-defs/dist/schema.js +72 -5
  138. package/node_modules/@noodle-borg/connector-defs/dist/schema.js.map +1 -1
  139. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +6 -0
  140. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  141. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +2 -0
  142. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  143. package/node_modules/@noodle-borg/connector-http/package.json +1 -1
  144. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
  145. package/node_modules/@noodle-borg/protocol/dist/mapping.js +8 -0
  146. package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
  147. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts.map +1 -1
  148. package/node_modules/@noodle-borg/runtime/dist/execute.js +87 -62
  149. package/node_modules/@noodle-borg/runtime/dist/execute.js.map +1 -1
  150. package/node_modules/@noodle-borg/runtime/dist/result.d.ts +1 -1
  151. package/node_modules/@noodle-borg/runtime/dist/result.d.ts.map +1 -1
  152. package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts.map +1 -1
  153. package/node_modules/@noodle-borg/service/dist/credential-broker.js +113 -11
  154. package/node_modules/@noodle-borg/service/dist/credential-broker.js.map +1 -1
  155. package/node_modules/@noodle-borg/service/dist/github/app-client.d.ts +28 -5
  156. package/node_modules/@noodle-borg/service/dist/github/app-client.d.ts.map +1 -1
  157. package/node_modules/@noodle-borg/service/dist/github/app-client.js +116 -7
  158. package/node_modules/@noodle-borg/service/dist/github/app-client.js.map +1 -1
  159. package/node_modules/@noodle-borg/service/dist/github/builder-auth.d.ts +12 -0
  160. package/node_modules/@noodle-borg/service/dist/github/builder-auth.d.ts.map +1 -0
  161. package/node_modules/@noodle-borg/service/dist/github/builder-auth.js +15 -0
  162. package/node_modules/@noodle-borg/service/dist/github/builder-auth.js.map +1 -0
  163. package/node_modules/@noodle-borg/service/dist/github/builder-main.d.ts +3 -0
  164. package/node_modules/@noodle-borg/service/dist/github/builder-main.d.ts.map +1 -0
  165. package/node_modules/@noodle-borg/service/dist/github/builder-main.js +9 -0
  166. package/node_modules/@noodle-borg/service/dist/github/builder-main.js.map +1 -0
  167. package/node_modules/@noodle-borg/service/dist/github/builder-runner.d.ts +21 -0
  168. package/node_modules/@noodle-borg/service/dist/github/builder-runner.d.ts.map +1 -0
  169. package/node_modules/@noodle-borg/service/dist/github/builder-runner.js +192 -0
  170. package/node_modules/@noodle-borg/service/dist/github/builder-runner.js.map +1 -0
  171. package/node_modules/@noodle-borg/service/dist/github/cloud-run-job-executor.d.ts +45 -0
  172. package/node_modules/@noodle-borg/service/dist/github/cloud-run-job-executor.d.ts.map +1 -0
  173. package/node_modules/@noodle-borg/service/dist/github/cloud-run-job-executor.js +60 -0
  174. package/node_modules/@noodle-borg/service/dist/github/cloud-run-job-executor.js.map +1 -0
  175. package/node_modules/@noodle-borg/service/dist/github/deploy-pipeline.d.ts +64 -0
  176. package/node_modules/@noodle-borg/service/dist/github/deploy-pipeline.d.ts.map +1 -0
  177. package/node_modules/@noodle-borg/service/dist/github/deploy-pipeline.js +121 -0
  178. package/node_modules/@noodle-borg/service/dist/github/deploy-pipeline.js.map +1 -0
  179. package/node_modules/@noodle-borg/service/dist/github/deploy-run-executor.d.ts +33 -0
  180. package/node_modules/@noodle-borg/service/dist/github/deploy-run-executor.d.ts.map +1 -0
  181. package/node_modules/@noodle-borg/service/dist/github/deploy-run-executor.js +14 -0
  182. package/node_modules/@noodle-borg/service/dist/github/deploy-run-executor.js.map +1 -0
  183. package/node_modules/@noodle-borg/service/dist/github/deploy-run-reconciler.d.ts +36 -0
  184. package/node_modules/@noodle-borg/service/dist/github/deploy-run-reconciler.d.ts.map +1 -0
  185. package/node_modules/@noodle-borg/service/dist/github/deploy-run-reconciler.js +107 -0
  186. package/node_modules/@noodle-borg/service/dist/github/deploy-run-reconciler.js.map +1 -0
  187. package/node_modules/@noodle-borg/service/dist/github/fast-lane-classifier.d.ts +38 -0
  188. package/node_modules/@noodle-borg/service/dist/github/fast-lane-classifier.d.ts.map +1 -0
  189. package/node_modules/@noodle-borg/service/dist/github/fast-lane-classifier.js +60 -0
  190. package/node_modules/@noodle-borg/service/dist/github/fast-lane-classifier.js.map +1 -0
  191. package/node_modules/@noodle-borg/service/dist/github/local-compile.d.ts +24 -0
  192. package/node_modules/@noodle-borg/service/dist/github/local-compile.d.ts.map +1 -0
  193. package/node_modules/@noodle-borg/service/dist/github/local-compile.js +98 -0
  194. package/node_modules/@noodle-borg/service/dist/github/local-compile.js.map +1 -0
  195. package/node_modules/@noodle-borg/service/dist/github/local-process-executor.d.ts +39 -0
  196. package/node_modules/@noodle-borg/service/dist/github/local-process-executor.d.ts.map +1 -0
  197. package/node_modules/@noodle-borg/service/dist/github/local-process-executor.js +67 -0
  198. package/node_modules/@noodle-borg/service/dist/github/local-process-executor.js.map +1 -0
  199. package/node_modules/@noodle-borg/service/dist/github/run-access-mode.d.ts +18 -0
  200. package/node_modules/@noodle-borg/service/dist/github/run-access-mode.d.ts.map +1 -0
  201. package/node_modules/@noodle-borg/service/dist/github/run-access-mode.js +32 -0
  202. package/node_modules/@noodle-borg/service/dist/github/run-access-mode.js.map +1 -0
  203. package/node_modules/@noodle-borg/service/dist/github/run-token.d.ts +41 -0
  204. package/node_modules/@noodle-borg/service/dist/github/run-token.d.ts.map +1 -0
  205. package/node_modules/@noodle-borg/service/dist/github/run-token.js +59 -0
  206. package/node_modules/@noodle-borg/service/dist/github/run-token.js.map +1 -0
  207. package/node_modules/@noodle-borg/service/dist/http-util.d.ts +7 -1
  208. package/node_modules/@noodle-borg/service/dist/http-util.d.ts.map +1 -1
  209. package/node_modules/@noodle-borg/service/dist/http-util.js +14 -0
  210. package/node_modules/@noodle-borg/service/dist/http-util.js.map +1 -1
  211. package/node_modules/@noodle-borg/service/dist/index.d.ts +13 -2
  212. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  213. package/node_modules/@noodle-borg/service/dist/index.js +12 -1
  214. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  215. package/node_modules/@noodle-borg/service/dist/main.js +72 -0
  216. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  217. package/node_modules/@noodle-borg/service/dist/options.d.ts +26 -3
  218. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  219. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +12 -0
  220. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts.map +1 -1
  221. package/node_modules/@noodle-borg/service/dist/registry-helpers.js +3 -0
  222. package/node_modules/@noodle-borg/service/dist/registry-helpers.js.map +1 -1
  223. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +7 -0
  224. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
  225. package/node_modules/@noodle-borg/service/dist/registry.d.ts +7 -29
  226. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  227. package/node_modules/@noodle-borg/service/dist/registry.js +62 -57
  228. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  229. package/node_modules/@noodle-borg/service/dist/routes/asset-control-plane.d.ts +3 -2
  230. package/node_modules/@noodle-borg/service/dist/routes/asset-control-plane.d.ts.map +1 -1
  231. package/node_modules/@noodle-borg/service/dist/routes/asset-control-plane.js +36 -8
  232. package/node_modules/@noodle-borg/service/dist/routes/asset-control-plane.js.map +1 -1
  233. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +3 -2
  234. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  235. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +100 -12
  236. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  237. package/node_modules/@noodle-borg/service/dist/routes/github-dispatch.d.ts +7 -0
  238. package/node_modules/@noodle-borg/service/dist/routes/github-dispatch.d.ts.map +1 -1
  239. package/node_modules/@noodle-borg/service/dist/routes/github-dispatch.js +36 -1
  240. package/node_modules/@noodle-borg/service/dist/routes/github-dispatch.js.map +1 -1
  241. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.d.ts +13 -0
  242. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.d.ts.map +1 -0
  243. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.js +84 -0
  244. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.js.map +1 -0
  245. package/node_modules/@noodle-borg/service/dist/routes/github-run-status.d.ts +5 -0
  246. package/node_modules/@noodle-borg/service/dist/routes/github-run-status.d.ts.map +1 -0
  247. package/node_modules/@noodle-borg/service/dist/routes/github-run-status.js +73 -0
  248. package/node_modules/@noodle-borg/service/dist/routes/github-run-status.js.map +1 -0
  249. package/node_modules/@noodle-borg/service/dist/routes/github-webhook.d.ts +23 -1
  250. package/node_modules/@noodle-borg/service/dist/routes/github-webhook.d.ts.map +1 -1
  251. package/node_modules/@noodle-borg/service/dist/routes/github-webhook.js +41 -0
  252. package/node_modules/@noodle-borg/service/dist/routes/github-webhook.js.map +1 -1
  253. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +4 -0
  254. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  255. package/node_modules/@noodle-borg/service/dist/routes/paths.js +10 -0
  256. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  257. package/node_modules/@noodle-borg/service/dist/routes/run-deploy-auth.d.ts +85 -0
  258. package/node_modules/@noodle-borg/service/dist/routes/run-deploy-auth.d.ts.map +1 -0
  259. package/node_modules/@noodle-borg/service/dist/routes/run-deploy-auth.js +90 -0
  260. package/node_modules/@noodle-borg/service/dist/routes/run-deploy-auth.js.map +1 -0
  261. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  262. package/node_modules/@noodle-borg/service/dist/serve.js +31 -0
  263. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  264. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  265. package/node_modules/@noodle-borg/service/dist/service.js +8 -13
  266. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  267. package/node_modules/@noodle-borg/service/dist/store/github-connections-json-file.d.ts +1 -0
  268. package/node_modules/@noodle-borg/service/dist/store/github-connections-json-file.d.ts.map +1 -1
  269. package/node_modules/@noodle-borg/service/dist/store/github-connections-json-file.js +5 -0
  270. package/node_modules/@noodle-borg/service/dist/store/github-connections-json-file.js.map +1 -1
  271. package/node_modules/@noodle-borg/service/dist/store/github-connections.d.ts +1 -0
  272. package/node_modules/@noodle-borg/service/dist/store/github-connections.d.ts.map +1 -1
  273. package/node_modules/@noodle-borg/service/dist/store/github-connections.js +5 -0
  274. package/node_modules/@noodle-borg/service/dist/store/github-connections.js.map +1 -1
  275. package/node_modules/@noodle-borg/service/dist/store/github-deploy-run-contract.d.ts +120 -0
  276. package/node_modules/@noodle-borg/service/dist/store/github-deploy-run-contract.d.ts.map +1 -0
  277. package/node_modules/@noodle-borg/service/dist/store/github-deploy-run-contract.js +6 -0
  278. package/node_modules/@noodle-borg/service/dist/store/github-deploy-run-contract.js.map +1 -0
  279. package/node_modules/@noodle-borg/service/dist/store/github-runs-json-file.d.ts +6 -1
  280. package/node_modules/@noodle-borg/service/dist/store/github-runs-json-file.d.ts.map +1 -1
  281. package/node_modules/@noodle-borg/service/dist/store/github-runs-json-file.js +18 -1
  282. package/node_modules/@noodle-borg/service/dist/store/github-runs-json-file.js.map +1 -1
  283. package/node_modules/@noodle-borg/service/dist/store/github-runs.d.ts +22 -1
  284. package/node_modules/@noodle-borg/service/dist/store/github-runs.d.ts.map +1 -1
  285. package/node_modules/@noodle-borg/service/dist/store/github-runs.js +39 -2
  286. package/node_modules/@noodle-borg/service/dist/store/github-runs.js.map +1 -1
  287. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.d.ts +13 -1
  288. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.d.ts.map +1 -1
  289. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.js +115 -1
  290. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.js.map +1 -1
  291. package/node_modules/@noodle-borg/service/dist/store/postgres-github.d.ts +1 -0
  292. package/node_modules/@noodle-borg/service/dist/store/postgres-github.d.ts.map +1 -1
  293. package/node_modules/@noodle-borg/service/dist/store/postgres-github.js +6 -0
  294. package/node_modules/@noodle-borg/service/dist/store/postgres-github.js.map +1 -1
  295. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +15 -1
  296. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  297. package/node_modules/@noodle-borg/service/dist/store/postgres.js +22 -2
  298. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  299. package/node_modules/@noodle-borg/service/dist/store.d.ts +22 -99
  300. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  301. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  302. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +15 -21
  303. package/node_modules/hono/dist/adapter/bun/websocket.js +3 -1
  304. package/node_modules/hono/dist/adapter/lambda-edge/handler.js +8 -2
  305. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +15 -21
  306. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +3 -1
  307. package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +8 -2
  308. package/node_modules/hono/dist/cjs/helper/css/common.js +3 -1
  309. package/node_modules/hono/dist/cjs/helper/css/index.js +9 -1
  310. package/node_modules/hono/dist/cjs/jsx/base.js +8 -14
  311. package/node_modules/hono/dist/cjs/jsx/components.js +41 -21
  312. package/node_modules/hono/dist/cjs/jsx/context.js +131 -5
  313. package/node_modules/hono/dist/cjs/jsx/streaming.js +9 -7
  314. package/node_modules/hono/dist/cjs/middleware/cors/index.js +2 -5
  315. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +2 -2
  316. package/node_modules/hono/dist/cjs/utils/body.js +12 -4
  317. package/node_modules/hono/dist/cjs/utils/buffer.js +2 -1
  318. package/node_modules/hono/dist/cjs/validator/validator.js +3 -3
  319. package/node_modules/hono/dist/helper/css/common.js +3 -1
  320. package/node_modules/hono/dist/helper/css/index.js +9 -1
  321. package/node_modules/hono/dist/jsx/base.js +15 -15
  322. package/node_modules/hono/dist/jsx/components.js +42 -22
  323. package/node_modules/hono/dist/jsx/context.js +129 -5
  324. package/node_modules/hono/dist/jsx/streaming.js +10 -8
  325. package/node_modules/hono/dist/middleware/cors/index.js +2 -5
  326. package/node_modules/hono/dist/middleware/serve-static/index.js +2 -2
  327. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +1 -1
  328. package/node_modules/hono/dist/types/jsx/base.d.ts +1 -3
  329. package/node_modules/hono/dist/types/jsx/context.d.ts +39 -0
  330. package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +2 -2
  331. package/node_modules/hono/dist/types/utils/body.d.ts +1 -1
  332. package/node_modules/hono/dist/utils/body.js +12 -4
  333. package/node_modules/hono/dist/utils/buffer.js +2 -1
  334. package/node_modules/hono/dist/validator/validator.js +3 -3
  335. package/node_modules/hono/package.json +9 -10
  336. package/node_modules/tailwindcss/dist/chunk-HMCCH6MG.mjs +1 -0
  337. package/node_modules/tailwindcss/dist/default-theme.mjs +1 -1
  338. package/node_modules/tailwindcss/dist/lib.js +13 -13
  339. package/node_modules/tailwindcss/dist/lib.mjs +18 -18
  340. package/node_modules/tailwindcss/package.json +2 -2
  341. package/node_modules/undici/README.md +3 -2
  342. package/node_modules/undici/docs/docs/api/Agent.md +248 -44
  343. package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
  344. package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
  345. package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
  346. package/node_modules/undici/docs/docs/api/Client.md +365 -178
  347. package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
  348. package/node_modules/undici/docs/docs/api/Connector.md +118 -36
  349. package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
  350. package/node_modules/undici/docs/docs/api/Cookies.md +125 -47
  351. package/node_modules/undici/docs/docs/api/Debug.md +34 -18
  352. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
  353. package/node_modules/undici/docs/docs/api/Dispatcher.md +479 -1093
  354. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +101 -87
  355. package/node_modules/undici/docs/docs/api/Errors.md +503 -40
  356. package/node_modules/undici/docs/docs/api/EventSource.md +294 -32
  357. package/node_modules/undici/docs/docs/api/Fetch.md +680 -31
  358. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -98
  359. package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
  360. package/node_modules/undici/docs/docs/api/Interceptors.md +355 -0
  361. package/node_modules/undici/docs/docs/api/MockAgent.md +314 -322
  362. package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
  363. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
  364. package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
  365. package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
  366. package/node_modules/undici/docs/docs/api/MockPool.md +299 -263
  367. package/node_modules/undici/docs/docs/api/Pool.md +235 -43
  368. package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
  369. package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
  370. package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -63
  371. package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -26
  372. package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -77
  373. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
  374. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +264 -542
  375. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +162 -186
  376. package/node_modules/undici/docs/docs/api/Util.md +68 -11
  377. package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
  378. package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
  379. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
  380. package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
  381. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +6 -4
  382. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
  383. package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
  384. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
  385. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
  386. package/node_modules/undici/docs/docs/{GettingStarted.md → getting-started.md} +22 -19
  387. package/node_modules/undici/docs/docs/index.md +779 -0
  388. package/node_modules/undici/docs/docs/site.json +125 -0
  389. package/node_modules/undici/docs/docs/type-map.json +79 -0
  390. package/node_modules/undici/lib/api/api-request.js +7 -1
  391. package/node_modules/undici/lib/api/readable.js +47 -2
  392. package/node_modules/undici/lib/core/errors.js +20 -0
  393. package/node_modules/undici/lib/core/request.js +1 -1
  394. package/node_modules/undici/lib/core/util.js +24 -1
  395. package/node_modules/undici/lib/dispatcher/client-h1.js +92 -1
  396. package/node_modules/undici/lib/dispatcher/client-h2.js +322 -118
  397. package/node_modules/undici/lib/dispatcher/client.js +6 -2
  398. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +1 -0
  399. package/node_modules/undici/lib/dispatcher/proxy-agent.js +42 -7
  400. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +4 -2
  401. package/node_modules/undici/lib/handler/redirect-handler.js +1 -0
  402. package/node_modules/undici/lib/handler/retry-handler.js +57 -19
  403. package/node_modules/undici/lib/util/cache.js +8 -2
  404. package/node_modules/undici/lib/web/cookies/parse.js +20 -27
  405. package/node_modules/undici/lib/web/cookies/util.js +1 -1
  406. package/node_modules/undici/lib/web/eventsource/eventsource.js +7 -18
  407. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  408. package/node_modules/undici/lib/web/fetch/body.js +43 -0
  409. package/node_modules/undici/lib/web/fetch/constants.js +1 -1
  410. package/node_modules/undici/lib/web/fetch/index.js +11 -2
  411. package/node_modules/undici/lib/web/fetch/request.js +1 -0
  412. package/node_modules/undici/lib/web/fetch/util.js +4 -1
  413. package/node_modules/undici/lib/web/websocket/receiver.js +20 -3
  414. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -1
  415. package/node_modules/undici/lib/web/websocket/websocket.js +3 -1
  416. package/node_modules/undici/package.json +1 -1
  417. package/node_modules/undici/types/client.d.ts +6 -1
  418. package/node_modules/undici/types/cookies.d.ts +1 -1
  419. package/node_modules/undici/types/errors.d.ts +10 -0
  420. package/node_modules/undici/types/fetch.d.ts +1 -0
  421. package/node_modules/undici/types/handlers.d.ts +2 -0
  422. package/node_modules/undici/types/proxy-agent.d.ts +7 -0
  423. package/package.json +4 -4
  424. package/react/styles.css +510 -5
  425. package/react/styles.source.css +850 -0
  426. package/node_modules/hono/dist/tsconfig.build.tsbuildinfo +0 -1
  427. package/node_modules/tailwindcss/dist/chunk-XVOTX5KS.mjs +0 -1
@@ -1,109 +1,209 @@
1
- # Class: MockPool
1
+ # MockPool
2
2
 
3
- Extends: `undici.Pool`
3
+ <!--introduced_in=v4.0.0-->
4
+ <!--type=module-->
5
+ <!-- source_link=lib/mock/mock-pool.js -->
4
6
 
5
- A mock Pool class that implements the Pool API and is used by MockAgent to intercept real requests and return mocked responses.
7
+ > Stability: 2 - Stable
6
8
 
7
- ## `new MockPool(origin, [options])`
9
+ A `MockPool` is a [`Pool`][] that intercepts requests matching registered routes
10
+ and replies with mocked responses instead of contacting the network. It is
11
+ created by a [`MockAgent`][] and exposes the same interception API as
12
+ [`MockClient`][].
8
13
 
9
- Arguments:
14
+ A `MockPool` is not constructed directly in most cases; instead it is obtained
15
+ through [`mockAgent.get(origin)`][]. Once registered as the global dispatcher,
16
+ any request whose origin matches the pool is matched against the mocks it holds.
10
17
 
11
- * **origin** `string` - It should only include the **protocol, hostname, and port**.
12
- * **options** `MockPoolOptions` - It extends the `Pool` options.
13
-
14
- Returns: `MockPool`
15
-
16
- ### Parameter: `MockPoolOptions`
17
-
18
- Extends: `PoolOptions`
19
-
20
- * **agent** `Agent` - the agent to associate this MockPool with.
21
-
22
- ### Example - Basic MockPool instantiation
23
-
24
- We can use MockAgent to instantiate a MockPool ready to be used to intercept specified requests. It will not do anything until registered as the agent to use and any mock request are registered.
25
-
26
- ```js
18
+ ```mjs
27
19
  import { MockAgent } from 'undici'
28
20
 
29
21
  const mockAgent = new MockAgent()
30
-
31
22
  const mockPool = mockAgent.get('http://localhost:3000')
32
23
  ```
33
24
 
34
- ## Instance Methods
35
-
36
- ### `MockPool.intercept(options)`
37
-
38
- This method defines the interception rules for matching against requests for a MockPool or MockPool. We can intercept multiple times on a single instance, but each intercept is only used once. For example if you expect to make 2 requests inside a test, you need to call `intercept()` twice. Assuming you use `disableNetConnect()` you will get `MockNotMatchedError` on the second request when you only call `intercept()` once.
39
-
40
- When defining interception rules, all the rules must pass for a request to be intercepted. If a request is not intercepted, a real request will be attempted.
41
-
42
- | Matcher type | Condition to pass |
43
- |:------------:| -------------------------- |
44
- | `string` | Exact match against string |
45
- | `RegExp` | Regex must pass |
46
- | `Function` | Function must return true |
47
-
48
- Arguments:
49
-
50
- * **options** `MockPoolInterceptOptions` - Interception options.
51
-
52
- Returns: `MockInterceptor` corresponding to the input options.
25
+ ```cjs
26
+ const { MockAgent } = require('undici')
53
27
 
54
- ### Parameter: `MockPoolInterceptOptions`
55
-
56
- * **path** `string | RegExp | (path: string) => boolean` - a matcher for the HTTP request path. When a `RegExp` or callback is used, it will match against the request path including all query parameters in alphabetical order. When a `string` is provided, the query parameters can be conveniently specified through the `MockPoolInterceptOptions.query` setting.
57
- * **method** `string | RegExp | (method: string) => boolean` - (optional) - a matcher for the HTTP request method. Defaults to `GET`.
58
- * **body** `string | RegExp | (body: string) => boolean` - (optional) - a matcher for the HTTP request body.
59
- * **headers** `Record<string, string | RegExp | (body: string) => boolean`> - (optional) - a matcher for the HTTP request headers. To be intercepted, a request must match all defined headers. Extra headers not defined here may (or may not) be included in the request and do not affect the interception in any way.
60
- * **query** `Record<string, any> | null` - (optional) - a matcher for the HTTP request query string params. Only applies when a `string` was provided for `MockPoolInterceptOptions.path`.
61
- * **ignoreTrailingSlash** `boolean` - (optional) - set to `true` if the matcher should also match by ignoring potential trailing slashes in `MockPoolInterceptOptions.path`.
62
-
63
- ### Return: `MockInterceptor`
28
+ const mockAgent = new MockAgent()
29
+ const mockPool = mockAgent.get('http://localhost:3000')
30
+ ```
64
31
 
65
- We can define the behaviour of an intercepted request with the following options.
32
+ ## Class: `MockPool`
66
33
 
67
- * **reply** `(statusCode: number, replyData: string | Buffer | object | MockInterceptor.MockResponseDataHandler, responseOptions?: MockResponseOptions) => MockScope` - define a reply for a matching request. You can define the replyData as a callback to read incoming request data. Default for `responseOptions` is `{}`.
68
- * **reply** `(callback: MockInterceptor.MockReplyOptionsCallback) => MockScope` - define a reply for a matching request, allowing dynamic mocking of all reply options rather than just the data.
69
- * **replyWithError** `(error: Error) => MockScope` - define an error for a matching request to throw.
70
- * **defaultReplyHeaders** `(headers: Record<string, string>) => MockInterceptor` - define default headers to be included in subsequent replies. These are in addition to headers on a specific reply.
71
- * **defaultReplyTrailers** `(trailers: Record<string, string>) => MockInterceptor` - define default trailers to be included in subsequent replies. These are in addition to trailers on a specific reply.
72
- * **replyContentLength** `() => MockInterceptor` - define automatically calculated `content-length` headers to be included in subsequent replies.
34
+ <!-- YAML
35
+ added: v4.0.0
36
+ -->
73
37
 
74
- The reply data of an intercepted request may either be a string, buffer, or JavaScript object. Objects are converted to JSON while strings and buffers are sent as-is.
38
+ * Extends: {Pool}
75
39
 
76
- By default, `reply` and `replyWithError` define the behaviour for the first matching request only. Subsequent requests will not be affected (this can be changed using the returned `MockScope`).
40
+ Extends [`Pool`][] and implements the `Interceptable` interface, allowing
41
+ requests made through it to be matched against registered mocks.
77
42
 
78
- ### Parameter: `MockResponseOptions`
43
+ ### `new MockPool(origin[, options])`
79
44
 
80
- * **headers** `Record<string, string>` - headers to be included on the mocked reply.
81
- * **trailers** `Record<string, string>` - trailers to be included on the mocked reply.
45
+ <!-- YAML
46
+ added: v4.0.0
47
+ -->
82
48
 
83
- ### Return: `MockScope`
49
+ * `origin` {string} The origin to associate this mock pool with. It should only
50
+ include the protocol, hostname, and port.
51
+ * `options` {MockPoolOptions} Extends the [`Pool`][] options.
52
+ * Returns: {MockPool}
84
53
 
85
- A `MockScope` is associated with a single `MockInterceptor`. With this, we can configure the default behaviour of an intercepted reply.
54
+ The `agent` option is required and must implement the `Agent` interface;
55
+ otherwise an `InvalidArgumentError` is thrown.
86
56
 
87
- * **delay** `(waitInMs: number) => MockScope` - delay the associated reply by a set amount in ms.
88
- * **persist** `() => MockScope` - any matching request will always reply with the defined response indefinitely.
89
- * **times** `(repeatTimes: number) => MockScope` - any matching request will reply with the defined response a fixed amount of times. This is overridden by **persist**.
57
+ #### Parameter: `MockPoolOptions`
90
58
 
91
- #### Example - Basic Mocked Request
59
+ Extends: `PoolOptions`
92
60
 
93
- ```js
61
+ * `agent` {MockAgent} The agent to associate this mock pool with.
62
+ * `ignoreTrailingSlash` {boolean} Whether trailing slashes should be ignored
63
+ when matching the path of intercepted requests. **Default:** `false`.
64
+
65
+ ### `mockPool.intercept(options)`
66
+
67
+ <!-- YAML
68
+ added: v4.0.0
69
+ -->
70
+
71
+ * `options` {MockPoolInterceptOptions} The matching criteria for the requests to
72
+ intercept.
73
+ * Returns: {MockInterceptor} The interceptor used to define the mocked reply.
74
+
75
+ Registers a route on the mock pool and returns a [`MockInterceptor`][] for any
76
+ matching request that uses the same origin as this mock pool. The interceptor is
77
+ then used to define the reply, for example with `reply()` or `replyWithError()`.
78
+
79
+ Each `intercept()` call is consumed by a single matching request. To match more
80
+ than one request, call `intercept()` once per expected request, or use
81
+ `persist()` or `times()` on the returned [`MockScope`][]. When no registered
82
+ mock matches a request, a real request is attempted unless network connections
83
+ have been disabled on the [`MockAgent`][], in which case a `MockNotMatchedError`
84
+ is thrown.
85
+
86
+ A request is intercepted only when every defined matcher passes. The accepted
87
+ matcher forms behave as follows:
88
+
89
+ | Matcher type | Condition to pass |
90
+ | :----------: | ---------------------------- |
91
+ | `string` | Exact match against the value |
92
+ | `RegExp` | The expression must match |
93
+ | `Function` | The function must return `true` |
94
+
95
+ #### Parameter: `MockPoolInterceptOptions`
96
+
97
+ * `path` {string|RegExp|Function} A matcher for the HTTP request path. The
98
+ function form has the signature `(path: string) => boolean`. When a `RegExp`
99
+ or function is used, it matches against the request path including all query
100
+ parameters in alphabetical order. When a `string` is used, query parameters
101
+ can instead be supplied through `query`.
102
+ * `method` {string|RegExp|Function} A matcher for the HTTP request method. The
103
+ function form has the signature `(method: string) => boolean`.
104
+ **Default:** `'GET'`.
105
+ * `body` {string|RegExp|Function} A matcher for the HTTP request body. The
106
+ function form has the signature `(body: string) => boolean`.
107
+ * `headers` {Object|Function} A matcher for the HTTP request headers, given
108
+ either as a map of header name to a `string`, `RegExp`, or
109
+ `(value: string) => boolean` matcher, or as a single function that receives
110
+ all headers and returns a `boolean`. When a map is used, the request must
111
+ match every defined header; extra headers not listed here do not affect
112
+ matching.
113
+ * `query` {Object} A matcher for the HTTP request query string parameters. Only
114
+ applies when a `string` was provided for `path`.
115
+ * `ignoreTrailingSlash` {boolean} Whether a trailing slash on `path` is ignored
116
+ when matching. Inherited from the mock pool's `ignoreTrailingSlash` option
117
+ when not set.
118
+
119
+ #### Return: `MockInterceptor`
120
+
121
+ The reply behaviour of a matching request is defined through the returned
122
+ `MockInterceptor`.
123
+
124
+ * `reply(statusCode[, data[, responseOptions]])` {Function} Defines the reply
125
+ for a matching request.
126
+ * `statusCode` {number} The status code of the mocked reply.
127
+ * `data` {string|Buffer|Object|Function} The body of the mocked reply.
128
+ Objects are serialized to JSON; strings and `Buffer`s are sent as-is. The
129
+ function form has the signature
130
+ `(opts: MockResponseCallbackOptions) => string | Buffer | Object` and is
131
+ invoked with the incoming request to compute the reply body.
132
+ * `responseOptions` {MockResponseOptions} Additional reply options.
133
+ **Default:** `{}`.
134
+ * Returns: {MockScope}
135
+ * `reply(callback)` {Function} Defines the reply for a matching request,
136
+ computing all reply options dynamically rather than just the body.
137
+ * `callback` {Function} A `(opts: MockResponseCallbackOptions) =>
138
+ { statusCode, data, responseOptions }` function invoked with the incoming
139
+ request.
140
+ * Returns: {MockScope}
141
+ * `replyWithError(error)` {Function} Defines an error for a matching request to
142
+ throw.
143
+ * `error` {Error} The error thrown when a request matches.
144
+ * Returns: {MockScope}
145
+ * `defaultReplyHeaders(headers)` {Function} Sets default headers included on
146
+ every subsequent reply defined on this interceptor, in addition to any headers
147
+ set on a specific reply.
148
+ * `headers` {Object} A map of header name to value.
149
+ * Returns: {MockInterceptor}
150
+ * `defaultReplyTrailers(trailers)` {Function} Sets default trailers included on
151
+ every subsequent reply defined on this interceptor, in addition to any
152
+ trailers set on a specific reply.
153
+ * `trailers` {Object} A map of trailer name to value.
154
+ * Returns: {MockInterceptor}
155
+ * `replyContentLength()` {Function} Sets an automatically calculated
156
+ `content-length` header on every subsequent reply defined on this interceptor.
157
+ * Returns: {MockInterceptor}
158
+
159
+ By default, `reply()` and `replyWithError()` define the behaviour for the first
160
+ matching request only; subsequent requests are not affected unless `persist()`
161
+ or `times()` is used on the returned [`MockScope`][].
162
+
163
+ #### Parameter: `MockResponseCallbackOptions`
164
+
165
+ The argument passed to the `reply()` data and options callbacks.
166
+
167
+ * `path` {string} The path of the intercepted request.
168
+ * `method` {string} The method of the intercepted request.
169
+ * `headers` {Object|Headers} The headers of the intercepted request.
170
+ * `origin` {string} The origin of the intercepted request.
171
+ * `body` {string|null} The body of the intercepted request.
172
+
173
+ #### Parameter: `MockResponseOptions`
174
+
175
+ * `headers` {Object} Headers to include on the mocked reply.
176
+ * `trailers` {Object} Trailers to include on the mocked reply.
177
+
178
+ #### Return: `MockScope`
179
+
180
+ A `MockScope` is associated with a single [`MockInterceptor`][] and configures
181
+ how many times the defined reply is used.
182
+
183
+ * `delay(waitInMs)` {Function} Delays the associated reply by a set amount of
184
+ time.
185
+ * `waitInMs` {number} The delay in milliseconds.
186
+ * Returns: {MockScope}
187
+ * `persist()` {Function} Makes the associated reply match indefinitely, so every
188
+ matching request receives the defined response.
189
+ * Returns: {MockScope}
190
+ * `times(repeatTimes)` {Function} Makes the associated reply match a fixed number
191
+ of times. This is overridden by `persist()`.
192
+ * `repeatTimes` {number} The number of matching requests the reply applies to.
193
+ * Returns: {MockScope}
194
+
195
+ The following examples show common interception patterns.
196
+
197
+ ```mjs displayName="Basic mocked request"
94
198
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
95
199
 
96
200
  const mockAgent = new MockAgent()
97
201
  setGlobalDispatcher(mockAgent)
98
202
 
99
- // MockPool
100
203
  const mockPool = mockAgent.get('http://localhost:3000')
101
204
  mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
102
205
 
103
- const {
104
- statusCode,
105
- body
106
- } = await request('http://localhost:3000/foo')
206
+ const { statusCode, body } = await request('http://localhost:3000/foo')
107
207
 
108
208
  console.log('response received', statusCode) // response received 200
109
209
 
@@ -112,9 +212,7 @@ for await (const data of body) {
112
212
  }
113
213
  ```
114
214
 
115
- #### Example - Mocked request using reply data callbacks
116
-
117
- ```js
215
+ ```mjs displayName="Reply with a data callback"
118
216
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
119
217
 
120
218
  const mockAgent = new MockAgent()
@@ -124,30 +222,21 @@ const mockPool = mockAgent.get('http://localhost:3000')
124
222
 
125
223
  mockPool.intercept({
126
224
  path: '/echo',
127
- method: 'GET',
128
- headers: {
129
- 'User-Agent': 'undici',
130
- Host: 'example.com'
131
- }
132
- }).reply(200, ({ headers }) => ({ message: headers.get('message') }))
225
+ method: 'GET'
226
+ }).reply(200, ({ headers }) => ({ message: headers.message }))
133
227
 
134
- const { statusCode, body, headers } = await request('http://localhost:3000', {
135
- headers: {
136
- message: 'hello world!'
137
- }
228
+ const { statusCode, body } = await request('http://localhost:3000/echo', {
229
+ headers: { message: 'hello world!' }
138
230
  })
139
231
 
140
232
  console.log('response received', statusCode) // response received 200
141
- console.log('headers', headers) // { 'content-type': 'application/json' }
142
233
 
143
234
  for await (const data of body) {
144
- console.log('data', data.toString('utf8')) // { "message":"hello world!" }
235
+ console.log('data', data.toString('utf8')) // {"message":"hello world!"}
145
236
  }
146
237
  ```
147
238
 
148
- #### Example - Mocked request using reply options callback
149
-
150
- ```js
239
+ ```mjs displayName="Reply with an options callback"
151
240
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
152
241
 
153
242
  const mockAgent = new MockAgent()
@@ -157,30 +246,24 @@ const mockPool = mockAgent.get('http://localhost:3000')
157
246
 
158
247
  mockPool.intercept({
159
248
  path: '/echo',
160
- method: 'GET',
161
- headers: {
162
- 'User-Agent': 'undici',
163
- Host: 'example.com'
164
- }
165
- }).reply(({ headers }) => ({ statusCode: 200, data: { message: headers.get('message') }})))
249
+ method: 'GET'
250
+ }).reply(({ headers }) => ({
251
+ statusCode: 200,
252
+ data: { message: headers.message }
253
+ }))
166
254
 
167
- const { statusCode, body, headers } = await request('http://localhost:3000', {
168
- headers: {
169
- message: 'hello world!'
170
- }
255
+ const { statusCode, body } = await request('http://localhost:3000/echo', {
256
+ headers: { message: 'hello world!' }
171
257
  })
172
258
 
173
259
  console.log('response received', statusCode) // response received 200
174
- console.log('headers', headers) // { 'content-type': 'application/json' }
175
260
 
176
261
  for await (const data of body) {
177
- console.log('data', data.toString('utf8')) // { "message":"hello world!" }
262
+ console.log('data', data.toString('utf8')) // {"message":"hello world!"}
178
263
  }
179
264
  ```
180
265
 
181
- #### Example - Basic Mocked requests with multiple intercepts
182
-
183
- ```js
266
+ ```mjs displayName="Multiple intercepts"
184
267
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
185
268
 
186
269
  const mockAgent = new MockAgent()
@@ -188,36 +271,21 @@ setGlobalDispatcher(mockAgent)
188
271
 
189
272
  const mockPool = mockAgent.get('http://localhost:3000')
190
273
 
191
- mockPool.intercept({
192
- path: '/foo',
193
- method: 'GET'
194
- }).reply(200, 'foo')
274
+ mockPool.intercept({ path: '/foo', method: 'GET' }).reply(200, 'foo')
275
+ mockPool.intercept({ path: '/hello', method: 'GET' }).reply(200, 'hello')
195
276
 
196
- mockPool.intercept({
197
- path: '/hello',
198
- method: 'GET',
199
- }).reply(200, 'hello')
200
-
201
- const result1 = await request('http://localhost:3000/foo')
202
-
203
- console.log('response received', result1.statusCode) // response received 200
204
-
205
- for await (const data of result1.body) {
277
+ const fooResult = await request('http://localhost:3000/foo')
278
+ for await (const data of fooResult.body) {
206
279
  console.log('data', data.toString('utf8')) // data foo
207
280
  }
208
281
 
209
- const result2 = await request('http://localhost:3000/hello')
210
-
211
- console.log('response received', result2.statusCode) // response received 200
212
-
213
- for await (const data of result2.body) {
282
+ const helloResult = await request('http://localhost:3000/hello')
283
+ for await (const data of helloResult.body) {
214
284
  console.log('data', data.toString('utf8')) // data hello
215
285
  }
216
286
  ```
217
287
 
218
- #### Example - Mocked request with query body, request headers and response headers and trailers
219
-
220
- ```js
288
+ ```mjs displayName="Match query, body, request headers; reply with headers and trailers"
221
289
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
222
290
 
223
291
  const mockAgent = new MockAgent()
@@ -238,12 +306,9 @@ mockPool.intercept({
238
306
  trailers: { 'Content-MD5': 'test' }
239
307
  })
240
308
 
241
- const {
242
- statusCode,
243
- headers,
244
- trailers,
245
- body
246
- } = await request('http://localhost:3000/foo?hello=there&see=ya', {
309
+ const { statusCode, headers, trailers, body } = await request(
310
+ 'http://localhost:3000/foo?hello=there&see=ya',
311
+ {
247
312
  method: 'POST',
248
313
  body: 'form1=data1&form2=data2',
249
314
  headers: {
@@ -251,21 +316,20 @@ const {
251
316
  'User-Agent': 'undici',
252
317
  Host: 'example.com'
253
318
  }
254
- })
319
+ }
320
+ )
255
321
 
256
322
  console.log('response received', statusCode) // response received 200
257
323
  console.log('headers', headers) // { 'content-type': 'application/json' }
258
324
 
259
325
  for await (const data of body) {
260
- console.log('data', data.toString('utf8')) // '{"foo":"bar"}'
326
+ console.log('data', data.toString('utf8')) // {"foo":"bar"}
261
327
  }
262
328
 
263
329
  console.log('trailers', trailers) // { 'content-md5': 'test' }
264
330
  ```
265
331
 
266
- #### Example - Mocked request using different matchers
267
-
268
- ```js
332
+ ```mjs displayName="Different matcher forms"
269
333
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
270
334
 
271
335
  const mockAgent = new MockAgent()
@@ -279,14 +343,11 @@ mockPool.intercept({
279
343
  body: (value) => value === 'form=data',
280
344
  headers: {
281
345
  'User-Agent': 'undici',
282
- Host: /^example.com$/
346
+ Host: /^example\.com$/
283
347
  }
284
348
  }).reply(200, 'foo')
285
349
 
286
- const {
287
- statusCode,
288
- body
289
- } = await request('http://localhost:3000/foo', {
350
+ const { statusCode, body } = await request('http://localhost:3000/foo', {
290
351
  method: 'GET',
291
352
  body: 'form=data',
292
353
  headers: {
@@ -303,9 +364,7 @@ for await (const data of body) {
303
364
  }
304
365
  ```
305
366
 
306
- #### Example - Mocked request with reply with a defined error
307
-
308
- ```js
367
+ ```mjs displayName="Reply with an error"
309
368
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
310
369
 
311
370
  const mockAgent = new MockAgent()
@@ -319,18 +378,13 @@ mockPool.intercept({
319
378
  }).replyWithError(new Error('kaboom'))
320
379
 
321
380
  try {
322
- await request('http://localhost:3000/foo', {
323
- method: 'GET'
324
- })
381
+ await request('http://localhost:3000/foo', { method: 'GET' })
325
382
  } catch (error) {
326
- console.error(error) // TypeError: fetch failed
327
- console.error(error.cause) // Error: kaboom
383
+ console.error(error.message) // kaboom
328
384
  }
329
385
  ```
330
386
 
331
- #### Example - Mocked request with defaultReplyHeaders
332
-
333
- ```js
387
+ ```mjs displayName="Default reply headers"
334
388
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
335
389
 
336
390
  const mockAgent = new MockAgent()
@@ -338,10 +392,8 @@ setGlobalDispatcher(mockAgent)
338
392
 
339
393
  const mockPool = mockAgent.get('http://localhost:3000')
340
394
 
341
- mockPool.intercept({
342
- path: '/foo',
343
- method: 'GET'
344
- }).defaultReplyHeaders({ foo: 'bar' })
395
+ mockPool.intercept({ path: '/foo', method: 'GET' })
396
+ .defaultReplyHeaders({ foo: 'bar' })
345
397
  .reply(200, 'foo')
346
398
 
347
399
  const { headers } = await request('http://localhost:3000/foo')
@@ -349,9 +401,7 @@ const { headers } = await request('http://localhost:3000/foo')
349
401
  console.log('headers', headers) // headers { foo: 'bar' }
350
402
  ```
351
403
 
352
- #### Example - Mocked request with defaultReplyTrailers
353
-
354
- ```js
404
+ ```mjs displayName="Default reply trailers"
355
405
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
356
406
 
357
407
  const mockAgent = new MockAgent()
@@ -359,10 +409,8 @@ setGlobalDispatcher(mockAgent)
359
409
 
360
410
  const mockPool = mockAgent.get('http://localhost:3000')
361
411
 
362
- mockPool.intercept({
363
- path: '/foo',
364
- method: 'GET'
365
- }).defaultReplyTrailers({ foo: 'bar' })
412
+ mockPool.intercept({ path: '/foo', method: 'GET' })
413
+ .defaultReplyTrailers({ foo: 'bar' })
366
414
  .reply(200, 'foo')
367
415
 
368
416
  const { trailers } = await request('http://localhost:3000/foo')
@@ -370,9 +418,7 @@ const { trailers } = await request('http://localhost:3000/foo')
370
418
  console.log('trailers', trailers) // trailers { foo: 'bar' }
371
419
  ```
372
420
 
373
- #### Example - Mocked request with automatic content-length calculation
374
-
375
- ```js
421
+ ```mjs displayName="Automatic content-length"
376
422
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
377
423
 
378
424
  const mockAgent = new MockAgent()
@@ -380,19 +426,16 @@ setGlobalDispatcher(mockAgent)
380
426
 
381
427
  const mockPool = mockAgent.get('http://localhost:3000')
382
428
 
383
- mockPool.intercept({
384
- path: '/foo',
385
- method: 'GET'
386
- }).replyContentLength().reply(200, 'foo')
429
+ mockPool.intercept({ path: '/foo', method: 'GET' })
430
+ .replyContentLength()
431
+ .reply(200, 'foo')
387
432
 
388
433
  const { headers } = await request('http://localhost:3000/foo')
389
434
 
390
435
  console.log('headers', headers) // headers { 'content-length': '3' }
391
436
  ```
392
437
 
393
- #### Example - Mocked request with automatic content-length calculation on an object
394
-
395
- ```js
438
+ ```mjs displayName="Persisted reply"
396
439
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
397
440
 
398
441
  const mockAgent = new MockAgent()
@@ -400,43 +443,13 @@ setGlobalDispatcher(mockAgent)
400
443
 
401
444
  const mockPool = mockAgent.get('http://localhost:3000')
402
445
 
403
- mockPool.intercept({
404
- path: '/foo',
405
- method: 'GET'
406
- }).replyContentLength().reply(200, { foo: 'bar' })
407
-
408
- const { headers } = await request('http://localhost:3000/foo')
409
-
410
- console.log('headers', headers) // headers { 'content-length': '13' }
411
- ```
412
-
413
- #### Example - Mocked request with persist enabled
414
-
415
- ```js
416
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
417
-
418
- const mockAgent = new MockAgent()
419
- setGlobalDispatcher(mockAgent)
420
-
421
- const mockPool = mockAgent.get('http://localhost:3000')
422
-
423
- mockPool.intercept({
424
- path: '/foo',
425
- method: 'GET'
426
- }).reply(200, 'foo').persist()
427
-
428
- const result1 = await request('http://localhost:3000/foo')
429
- // Will match and return mocked data
430
-
431
- const result2 = await request('http://localhost:3000/foo')
432
- // Will match and return mocked data
446
+ mockPool.intercept({ path: '/foo', method: 'GET' }).reply(200, 'foo').persist()
433
447
 
434
- // Etc
448
+ await request('http://localhost:3000/foo') // Matches and returns the mock
449
+ await request('http://localhost:3000/foo') // Matches again, indefinitely
435
450
  ```
436
451
 
437
- #### Example - Mocked request with times enabled
438
-
439
- ```js
452
+ ```mjs displayName="Reply a fixed number of times"
440
453
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
441
454
 
442
455
  const mockAgent = new MockAgent()
@@ -444,33 +457,23 @@ setGlobalDispatcher(mockAgent)
444
457
 
445
458
  const mockPool = mockAgent.get('http://localhost:3000')
446
459
 
447
- mockPool.intercept({
448
- path: '/foo',
449
- method: 'GET'
450
- }).reply(200, 'foo').times(2)
451
-
452
- const result1 = await request('http://localhost:3000/foo')
453
- // Will match and return mocked data
454
-
455
- const result2 = await request('http://localhost:3000/foo')
456
- // Will match and return mocked data
460
+ mockPool.intercept({ path: '/foo', method: 'GET' }).reply(200, 'foo').times(2)
457
461
 
458
- const result3 = await request('http://localhost:3000/foo')
459
- // Will not match and make attempt a real request
462
+ await request('http://localhost:3000/foo') // Matches and returns the mock
463
+ await request('http://localhost:3000/foo') // Matches and returns the mock
464
+ await request('http://localhost:3000/foo') // No match; a real request is attempted
460
465
  ```
461
466
 
462
- #### Example - Mocked request with path callback
463
-
464
- ```js
467
+ ```mjs displayName="Match the path with a function"
465
468
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
466
- import querystring from 'querystring'
469
+ import querystring from 'node:querystring'
467
470
 
468
471
  const mockAgent = new MockAgent()
469
472
  setGlobalDispatcher(mockAgent)
470
473
 
471
474
  const mockPool = mockAgent.get('http://localhost:3000')
472
475
 
473
- const matchPath = requestPath => {
476
+ const matchPath = (requestPath) => {
474
477
  const [pathname, search] = requestPath.split('?')
475
478
  const requestQuery = querystring.parse(search)
476
479
 
@@ -478,31 +481,26 @@ const matchPath = requestPath => {
478
481
  return false
479
482
  }
480
483
 
481
- if (!Object.keys(requestQuery).includes('foo') || requestQuery.foo !== 'bar') {
482
- return false
483
- }
484
-
485
- return true
484
+ return requestQuery.foo === 'bar'
486
485
  }
487
486
 
488
- mockPool.intercept({
489
- path: matchPath,
490
- method: 'GET'
491
- }).reply(200, 'foo')
487
+ mockPool.intercept({ path: matchPath, method: 'GET' }).reply(200, 'foo')
492
488
 
493
- const result = await request('http://localhost:3000/foo?foo=bar')
494
- // Will match and return mocked data
489
+ await request('http://localhost:3000/foo?foo=bar') // Matches and returns the mock
495
490
  ```
496
491
 
497
- ### `MockPool.close()`
492
+ ### `mockPool.close()`
498
493
 
499
- Closes the mock pool and de-registers from associated MockAgent.
494
+ <!-- YAML
495
+ added: v4.0.0
496
+ -->
500
497
 
501
- Returns: `Promise<void>`
498
+ * Returns: {Promise} Fulfills with `undefined` once the mock pool is closed.
502
499
 
503
- #### Example - clean up after tests are complete
500
+ Closes the mock pool, gracefully waiting for any enqueued requests to complete,
501
+ and removes it from the associated [`MockAgent`][].
504
502
 
505
- ```js
503
+ ```mjs
506
504
  import { MockAgent } from 'undici'
507
505
 
508
506
  const mockAgent = new MockAgent()
@@ -511,31 +509,45 @@ const mockPool = mockAgent.get('http://localhost:3000')
511
509
  await mockPool.close()
512
510
  ```
513
511
 
514
- ### `MockPool.dispatch(options, handlers)`
512
+ ### `mockPool.dispatch(options, handlers)`
513
+
514
+ <!-- YAML
515
+ added: v4.0.0
516
+ -->
517
+
518
+ * `options` {DispatchOptions} The request options.
519
+ * `handlers` {DispatchHandler} The handlers invoked over the request lifecycle.
520
+ * Returns: {boolean} `false` if the dispatcher is busy and the caller should
521
+ wait before dispatching further requests, otherwise `true`.
522
+
523
+ Dispatches a request, matching it against the registered mocks. This override of
524
+ [`dispatcher.dispatch(options, handlers)`][] is what drives the mocking
525
+ behaviour for every higher-level method such as `request`.
515
526
 
516
- Implements [`Dispatcher.dispatch(options, handlers)`](/docs/docs/api/Dispatcher.md#dispatcherdispatchoptions-handler).
527
+ ### `mockPool.request(options[, callback])`
517
528
 
518
- ### `MockPool.request(options[, callback])`
529
+ <!-- YAML
530
+ added: v4.0.0
531
+ -->
519
532
 
520
- See [`Dispatcher.request(options [, callback])`](/docs/docs/api/Dispatcher.md#dispatcherrequestoptions-callback).
533
+ * `options` {DispatchOptions}
534
+ * `callback` {Function} (optional) Invoked with the response when no `Promise`
535
+ is requested.
536
+ * Returns: {Promise} Fulfills with the mocked response when no `callback` is
537
+ provided.
521
538
 
522
- #### Example - MockPool request
539
+ Performs a request and resolves it against the registered mocks. Inherited from
540
+ [`Pool`][]; see [`dispatcher.request(options[, callback])`][] for the full
541
+ parameter and return value documentation.
523
542
 
524
- ```js
543
+ ```mjs
525
544
  import { MockAgent } from 'undici'
526
545
 
527
546
  const mockAgent = new MockAgent()
528
-
529
547
  const mockPool = mockAgent.get('http://localhost:3000')
530
- mockPool.intercept({
531
- path: '/foo',
532
- method: 'GET',
533
- }).reply(200, 'foo')
548
+ mockPool.intercept({ path: '/foo', method: 'GET' }).reply(200, 'foo')
534
549
 
535
- const {
536
- statusCode,
537
- body
538
- } = await mockPool.request({
550
+ const { statusCode, body } = await mockPool.request({
539
551
  origin: 'http://localhost:3000',
540
552
  path: '/foo',
541
553
  method: 'GET'
@@ -548,8 +560,32 @@ for await (const data of body) {
548
560
  }
549
561
  ```
550
562
 
551
- ### `MockPool.cleanMocks()`
563
+ ### `mockPool.cleanMocks()`
564
+
565
+ <!-- YAML
566
+ added: v7.11.0
567
+ -->
568
+
569
+ * Returns: {undefined}
570
+
571
+ Removes all registered interceptors from the mock pool. Pending mocks defined
572
+ before this call no longer match incoming requests.
552
573
 
553
- This method cleans up all the prepared mocks.
574
+ ```mjs
575
+ import { MockAgent } from 'undici'
576
+
577
+ const mockAgent = new MockAgent()
578
+ const mockPool = mockAgent.get('http://localhost:3000')
579
+
580
+ mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
581
+ mockPool.cleanMocks()
582
+ ```
554
583
 
555
- Returns: `void`
584
+ [`MockAgent`]: MockAgent.md#class-mockagent
585
+ [`MockClient`]: MockClient.md#class-mockclient
586
+ [`MockInterceptor`]: MockPool.md#return-mockinterceptor
587
+ [`MockScope`]: MockPool.md#return-mockscope
588
+ [`Pool`]: Pool.md#class-pool
589
+ [`dispatcher.dispatch(options, handlers)`]: Dispatcher.md#dispatcherdispatchoptions-handler
590
+ [`dispatcher.request(options[, callback])`]: Dispatcher.md#dispatcherrequestoptions-callback
591
+ [`mockAgent.get(origin)`]: MockAgent.md#mockagentgetorigin