polen 0.10.0-next.3 → 0.10.0-next.5

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 (393) hide show
  1. package/README.md +49 -375
  2. package/build/api/api.d.ts +1 -0
  3. package/build/api/api.d.ts.map +1 -1
  4. package/build/api/api.js +1 -0
  5. package/build/api/api.js.map +1 -1
  6. package/build/api/config/load.js +5 -5
  7. package/build/api/config/load.js.map +1 -1
  8. package/build/api/config-resolver/resolve.js +2 -2
  9. package/build/api/config-resolver/resolve.js.map +1 -1
  10. package/build/api/content/$$.d.ts +5 -0
  11. package/build/api/content/$$.d.ts.map +1 -0
  12. package/build/api/content/$$.js +5 -0
  13. package/build/api/content/$$.js.map +1 -0
  14. package/build/api/content/$.d.ts +2 -0
  15. package/build/api/content/$.d.ts.map +1 -0
  16. package/build/api/content/$.js +2 -0
  17. package/build/api/content/$.js.map +1 -0
  18. package/build/api/content/metadata.d.ts +10 -0
  19. package/build/api/content/metadata.d.ts.map +1 -0
  20. package/build/api/content/metadata.js +9 -0
  21. package/build/api/content/metadata.js.map +1 -0
  22. package/build/api/content/page.d.ts +11 -0
  23. package/build/api/content/page.d.ts.map +1 -0
  24. package/build/api/content/page.js +2 -0
  25. package/build/api/content/page.js.map +1 -0
  26. package/build/api/content/scan.d.ts +19 -0
  27. package/build/api/content/scan.d.ts.map +1 -0
  28. package/build/api/content/scan.js +57 -0
  29. package/build/api/content/scan.js.map +1 -0
  30. package/build/{lib/file-router/sidebar/types.d.ts → api/content/sidebar.d.ts} +8 -1
  31. package/build/api/content/sidebar.d.ts.map +1 -0
  32. package/build/api/content/sidebar.js +90 -0
  33. package/build/api/content/sidebar.js.map +1 -0
  34. package/build/api/schema/data-sources/schema-directory/schema-directory.js +1 -1
  35. package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
  36. package/build/api/static/index.d.ts +2 -0
  37. package/build/api/static/index.d.ts.map +1 -0
  38. package/build/api/static/index.js +2 -0
  39. package/build/api/static/index.js.map +1 -0
  40. package/build/api/static/manifest.d.ts +18 -0
  41. package/build/api/static/manifest.d.ts.map +1 -0
  42. package/build/api/static/manifest.js +13 -0
  43. package/build/api/static/manifest.js.map +1 -0
  44. package/build/api/static/rebase.d.ts +14 -0
  45. package/build/api/static/rebase.d.ts.map +1 -0
  46. package/build/api/static/rebase.js +110 -0
  47. package/build/api/static/rebase.js.map +1 -0
  48. package/build/api/static/static.d.ts +3 -0
  49. package/build/api/static/static.d.ts.map +1 -0
  50. package/build/api/static/static.js +3 -0
  51. package/build/api/static/static.js.map +1 -0
  52. package/build/api/vite/plugins/branding/index.js +4 -4
  53. package/build/api/vite/plugins/branding/index.js.map +1 -1
  54. package/build/api/vite/plugins/build.d.ts.map +1 -1
  55. package/build/api/vite/plugins/build.js +22 -1
  56. package/build/api/vite/plugins/build.js.map +1 -1
  57. package/build/api/vite/plugins/core.js +4 -4
  58. package/build/api/vite/plugins/core.js.map +1 -1
  59. package/build/api/vite/plugins/pages.d.ts +6 -8
  60. package/build/api/vite/plugins/pages.d.ts.map +1 -1
  61. package/build/api/vite/plugins/pages.js +99 -155
  62. package/build/api/vite/plugins/pages.js.map +1 -1
  63. package/build/api/vite/plugins/serve.js +5 -5
  64. package/build/api/vite/plugins/serve.js.map +1 -1
  65. package/build/cli/_/self-contained-mode.js +5 -5
  66. package/build/cli/_/self-contained-mode.js.map +1 -1
  67. package/build/cli/commands/static/$default.d.ts +3 -0
  68. package/build/cli/commands/static/$default.d.ts.map +1 -0
  69. package/build/cli/commands/static/$default.js +38 -0
  70. package/build/cli/commands/static/$default.js.map +1 -0
  71. package/build/cli/commands/static/rebase.d.ts +2 -0
  72. package/build/cli/commands/static/rebase.d.ts.map +1 -0
  73. package/build/cli/commands/static/rebase.js +26 -0
  74. package/build/cli/commands/static/rebase.js.map +1 -0
  75. package/build/cli/commands/static.d.ts +3 -0
  76. package/build/cli/commands/static.d.ts.map +1 -0
  77. package/build/cli/commands/static.js +5 -0
  78. package/build/cli/commands/static.js.map +1 -0
  79. package/build/exports/components.d.ts +2 -0
  80. package/build/exports/components.d.ts.map +1 -0
  81. package/build/exports/components.js +2 -0
  82. package/build/exports/components.js.map +1 -0
  83. package/build/lib/demos/builder.d.ts +83 -0
  84. package/build/lib/demos/builder.d.ts.map +1 -0
  85. package/build/lib/demos/builder.js +237 -0
  86. package/build/lib/demos/builder.js.map +1 -0
  87. package/build/lib/demos/config-schema.d.ts +243 -0
  88. package/build/lib/demos/config-schema.d.ts.map +1 -0
  89. package/build/lib/demos/config-schema.js +52 -0
  90. package/build/lib/demos/config-schema.js.map +1 -0
  91. package/build/lib/demos/config.d.ts +40 -0
  92. package/build/lib/demos/config.d.ts.map +1 -0
  93. package/build/lib/demos/config.js +180 -0
  94. package/build/lib/demos/config.js.map +1 -0
  95. package/build/lib/demos/index.d.ts +9 -0
  96. package/build/lib/demos/index.d.ts.map +1 -0
  97. package/build/lib/demos/index.js +8 -0
  98. package/build/lib/demos/index.js.map +1 -0
  99. package/build/lib/demos/ui/components.d.ts +33 -0
  100. package/build/lib/demos/ui/components.d.ts.map +1 -0
  101. package/build/lib/demos/ui/components.js +699 -0
  102. package/build/lib/demos/ui/components.js.map +1 -0
  103. package/build/lib/demos/ui/data-collector.d.ts +88 -0
  104. package/build/lib/demos/ui/data-collector.d.ts.map +1 -0
  105. package/build/lib/demos/ui/data-collector.js +174 -0
  106. package/build/lib/demos/ui/data-collector.js.map +1 -0
  107. package/build/lib/demos/ui/landing-page-cli.d.ts +3 -0
  108. package/build/lib/demos/ui/landing-page-cli.d.ts.map +1 -0
  109. package/build/lib/demos/ui/landing-page-cli.js +21 -0
  110. package/build/lib/demos/ui/landing-page-cli.js.map +1 -0
  111. package/build/lib/demos/ui/landing-page.d.ts +32 -0
  112. package/build/lib/demos/ui/landing-page.d.ts.map +1 -0
  113. package/build/lib/demos/ui/landing-page.js +83 -0
  114. package/build/lib/demos/ui/landing-page.js.map +1 -0
  115. package/build/lib/demos/ui/page-renderer.d.ts +26 -0
  116. package/build/lib/demos/ui/page-renderer.d.ts.map +1 -0
  117. package/build/lib/demos/ui/page-renderer.js +104 -0
  118. package/build/lib/demos/ui/page-renderer.js.map +1 -0
  119. package/build/lib/demos/utils.d.ts +14 -0
  120. package/build/lib/demos/utils.d.ts.map +1 -0
  121. package/build/lib/demos/utils.js +37 -0
  122. package/build/lib/demos/utils.js.map +1 -0
  123. package/build/lib/deployment/$$.d.ts +3 -0
  124. package/build/lib/deployment/$$.d.ts.map +1 -0
  125. package/build/lib/deployment/$$.js +3 -0
  126. package/build/lib/deployment/$$.js.map +1 -0
  127. package/build/lib/deployment/$.d.ts +2 -0
  128. package/build/lib/deployment/$.d.ts.map +1 -0
  129. package/build/lib/deployment/$.js +2 -0
  130. package/build/lib/deployment/$.js.map +1 -0
  131. package/build/lib/deployment/metadata.d.ts +32 -0
  132. package/build/lib/deployment/metadata.d.ts.map +1 -0
  133. package/build/lib/deployment/metadata.js +37 -0
  134. package/build/lib/deployment/metadata.js.map +1 -0
  135. package/build/lib/deployment/path-manager.d.ts +41 -0
  136. package/build/lib/deployment/path-manager.d.ts.map +1 -0
  137. package/build/lib/deployment/path-manager.js +157 -0
  138. package/build/lib/deployment/path-manager.js.map +1 -0
  139. package/build/lib/file-router/file-router.d.ts +0 -2
  140. package/build/lib/file-router/file-router.d.ts.map +1 -1
  141. package/build/lib/file-router/file-router.js +0 -2
  142. package/build/lib/file-router/file-router.js.map +1 -1
  143. package/build/lib/file-router/route.d.ts +2 -0
  144. package/build/lib/file-router/route.d.ts.map +1 -1
  145. package/build/lib/file-router/route.js.map +1 -1
  146. package/build/lib/file-router/scan.d.ts.map +1 -1
  147. package/build/lib/file-router/scan.js +16 -12
  148. package/build/lib/file-router/scan.js.map +1 -1
  149. package/build/lib/github-actions/git-controller.d.ts +50 -0
  150. package/build/lib/github-actions/git-controller.d.ts.map +1 -0
  151. package/build/lib/github-actions/git-controller.js +90 -0
  152. package/build/lib/github-actions/git-controller.js.map +1 -0
  153. package/build/lib/github-actions/github-actions.d.ts +7 -0
  154. package/build/lib/github-actions/github-actions.d.ts.map +1 -0
  155. package/build/lib/github-actions/github-actions.js +7 -0
  156. package/build/lib/github-actions/github-actions.js.map +1 -0
  157. package/build/lib/github-actions/index.d.ts +2 -0
  158. package/build/lib/github-actions/index.d.ts.map +1 -0
  159. package/build/lib/github-actions/index.js +2 -0
  160. package/build/lib/github-actions/index.js.map +1 -0
  161. package/build/lib/github-actions/lib/get-pr-deployments.d.ts +12 -0
  162. package/build/lib/github-actions/lib/get-pr-deployments.d.ts.map +1 -0
  163. package/build/lib/github-actions/lib/get-pr-deployments.js +51 -0
  164. package/build/lib/github-actions/lib/get-pr-deployments.js.map +1 -0
  165. package/build/lib/github-actions/pr-controller.d.ts +39 -0
  166. package/build/lib/github-actions/pr-controller.d.ts.map +1 -0
  167. package/build/lib/github-actions/pr-controller.js +122 -0
  168. package/build/lib/github-actions/pr-controller.js.map +1 -0
  169. package/build/lib/github-actions/run-step-cli.d.ts +9 -0
  170. package/build/lib/github-actions/run-step-cli.d.ts.map +1 -0
  171. package/build/lib/github-actions/run-step-cli.js +71 -0
  172. package/build/lib/github-actions/run-step-cli.js.map +1 -0
  173. package/build/lib/github-actions/runner.d.ts +17 -0
  174. package/build/lib/github-actions/runner.d.ts.map +1 -0
  175. package/build/lib/github-actions/runner.js +195 -0
  176. package/build/lib/github-actions/runner.js.map +1 -0
  177. package/build/lib/github-actions/schemas/context.d.ts +933 -0
  178. package/build/lib/github-actions/schemas/context.d.ts.map +1 -0
  179. package/build/lib/github-actions/schemas/context.js +407 -0
  180. package/build/lib/github-actions/schemas/context.js.map +1 -0
  181. package/build/lib/github-actions/schemas/index.d.ts +5 -0
  182. package/build/lib/github-actions/schemas/index.d.ts.map +1 -0
  183. package/build/lib/github-actions/schemas/index.js +5 -0
  184. package/build/lib/github-actions/schemas/index.js.map +1 -0
  185. package/build/lib/github-actions/search-module.d.ts +38 -0
  186. package/build/lib/github-actions/search-module.d.ts.map +1 -0
  187. package/build/lib/github-actions/search-module.js +40 -0
  188. package/build/lib/github-actions/search-module.js.map +1 -0
  189. package/build/lib/github-actions/step.d.ts +163 -0
  190. package/build/lib/github-actions/step.d.ts.map +1 -0
  191. package/build/lib/github-actions/step.js +121 -0
  192. package/build/lib/github-actions/step.js.map +1 -0
  193. package/build/lib/helpers.d.ts.map +1 -1
  194. package/build/lib/helpers.js +5 -3
  195. package/build/lib/helpers.js.map +1 -1
  196. package/build/lib/kit-temp.d.ts +54 -0
  197. package/build/lib/kit-temp.d.ts.map +1 -1
  198. package/build/lib/kit-temp.js +80 -14
  199. package/build/lib/kit-temp.js.map +1 -1
  200. package/build/lib/kit-temp.test-d.d.ts +2 -0
  201. package/build/lib/kit-temp.test-d.d.ts.map +1 -0
  202. package/build/lib/kit-temp.test-d.js +75 -0
  203. package/build/lib/kit-temp.test-d.js.map +1 -0
  204. package/build/lib/mask/$$.d.ts +3 -0
  205. package/build/lib/mask/$$.d.ts.map +1 -0
  206. package/build/lib/mask/$$.js +3 -0
  207. package/build/lib/mask/$$.js.map +1 -0
  208. package/build/lib/mask/$.d.ts +2 -0
  209. package/build/lib/mask/$.d.ts.map +1 -0
  210. package/build/lib/mask/$.js +2 -0
  211. package/build/lib/mask/$.js.map +1 -0
  212. package/build/lib/mask/apply.d.ts +86 -0
  213. package/build/lib/mask/apply.d.ts.map +1 -0
  214. package/build/lib/mask/apply.js +86 -0
  215. package/build/lib/mask/apply.js.map +1 -0
  216. package/build/lib/mask/mask.d.ts +124 -0
  217. package/build/lib/mask/mask.d.ts.map +1 -0
  218. package/build/lib/mask/mask.js +137 -0
  219. package/build/lib/mask/mask.js.map +1 -0
  220. package/build/lib/mask/mask.test-d.d.ts +2 -0
  221. package/build/lib/mask/mask.test-d.d.ts.map +1 -0
  222. package/build/lib/mask/mask.test-d.js +102 -0
  223. package/build/lib/mask/mask.test-d.js.map +1 -0
  224. package/build/lib/task/$$.d.ts +3 -0
  225. package/build/lib/task/$$.d.ts.map +1 -0
  226. package/build/lib/task/$$.js +3 -0
  227. package/build/lib/task/$$.js.map +1 -0
  228. package/build/lib/task/$.d.ts +2 -0
  229. package/build/lib/task/$.d.ts.map +1 -0
  230. package/build/lib/task/$.js +2 -0
  231. package/build/lib/task/$.js.map +1 -0
  232. package/build/lib/task/report.d.ts +28 -0
  233. package/build/lib/task/report.d.ts.map +1 -0
  234. package/build/lib/task/report.js +33 -0
  235. package/build/lib/task/report.js.map +1 -0
  236. package/build/lib/task/task.d.ts +44 -0
  237. package/build/lib/task/task.d.ts.map +1 -0
  238. package/build/lib/task/task.js +63 -0
  239. package/build/lib/task/task.js.map +1 -0
  240. package/build/lib/version-history/index.d.ts +3 -0
  241. package/build/lib/version-history/index.d.ts.map +1 -0
  242. package/build/lib/version-history/index.js +2 -0
  243. package/build/lib/version-history/index.js.map +1 -0
  244. package/build/lib/version-history/types.d.ts +64 -0
  245. package/build/lib/version-history/types.d.ts.map +1 -0
  246. package/build/lib/version-history/types.js +5 -0
  247. package/build/lib/version-history/types.js.map +1 -0
  248. package/build/lib/version-history/version-history.d.ts +85 -0
  249. package/build/lib/version-history/version-history.d.ts.map +1 -0
  250. package/build/lib/version-history/version-history.js +248 -0
  251. package/build/lib/version-history/version-history.js.map +1 -0
  252. package/build/sandbox.d.ts +2 -0
  253. package/build/sandbox.d.ts.map +1 -0
  254. package/build/sandbox.js +3 -0
  255. package/build/sandbox.js.map +1 -0
  256. package/build/singletons/debug.d.ts +1 -1
  257. package/build/singletons/debug.d.ts.map +1 -1
  258. package/build/singletons/debug.js +1 -1
  259. package/build/singletons/debug.js.map +1 -1
  260. package/build/template/components/Link.jsx +1 -1
  261. package/build/template/components/content/$$.d.ts +2 -0
  262. package/build/template/components/content/$$.d.ts.map +1 -0
  263. package/build/template/components/content/$$.js +2 -0
  264. package/build/template/components/content/$$.js.map +1 -0
  265. package/build/template/components/sidebar/Sidebar.d.ts +2 -2
  266. package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
  267. package/build/template/components/sidebar/SidebarItem.d.ts +3 -3
  268. package/build/template/components/sidebar/SidebarItem.d.ts.map +1 -1
  269. package/build/template/components/sidebar/SidebarItem.jsx +1 -1
  270. package/build/template/components/sidebar/SidebarItem.jsx.map +1 -1
  271. package/package.json +23 -9
  272. package/src/api/api.ts +1 -0
  273. package/src/api/config/load.ts +5 -5
  274. package/src/api/config-resolver/resolve.ts +2 -2
  275. package/src/api/content/$$.ts +4 -0
  276. package/src/api/content/$.test.ts +72 -0
  277. package/src/api/content/$.ts +1 -0
  278. package/src/api/content/metadata.ts +11 -0
  279. package/src/api/content/page.ts +12 -0
  280. package/src/api/content/scan.ts +82 -0
  281. package/src/api/content/sidebar.ts +136 -0
  282. package/src/api/schema/data-sources/schema-directory/schema-directory.ts +1 -1
  283. package/src/api/singletons/markdown/markdown.test.ts +1 -1
  284. package/src/api/static/index.ts +1 -0
  285. package/src/api/static/manifest.test.ts +106 -0
  286. package/src/api/static/manifest.ts +16 -0
  287. package/src/api/static/rebase.test.ts +229 -0
  288. package/src/api/static/rebase.ts +140 -0
  289. package/src/api/static/static.ts +2 -0
  290. package/src/api/utils/asset-url/asset-url.test.ts +4 -4
  291. package/src/api/vite/plugins/branding/index.ts +4 -4
  292. package/src/api/vite/plugins/build.ts +25 -1
  293. package/src/api/vite/plugins/core.ts +5 -5
  294. package/src/api/vite/plugins/pages.ts +117 -171
  295. package/src/api/vite/plugins/serve.ts +5 -5
  296. package/src/cli/_/self-contained-mode.ts +5 -5
  297. package/src/cli/commands/static/$default.ts +43 -0
  298. package/src/cli/commands/static/rebase.ts +37 -0
  299. package/src/cli/commands/static.ts +6 -0
  300. package/src/exports/components.ts +1 -0
  301. package/src/lib/demos/builder.ts +298 -0
  302. package/src/lib/demos/config-schema.ts +56 -0
  303. package/src/lib/demos/config.test.ts +193 -0
  304. package/src/lib/demos/config.ts +205 -0
  305. package/src/lib/demos/index.ts +9 -0
  306. package/src/lib/demos/ui/components.ts +739 -0
  307. package/src/lib/demos/ui/data-collector.ts +246 -0
  308. package/src/lib/demos/ui/landing-page-cli.ts +23 -0
  309. package/src/lib/demos/ui/landing-page.ts +126 -0
  310. package/src/lib/demos/ui/page-renderer.ts +124 -0
  311. package/src/lib/demos/utils.ts +43 -0
  312. package/src/lib/deployment/$$.ts +2 -0
  313. package/src/lib/deployment/$.test.ts +53 -0
  314. package/src/lib/deployment/$.ts +1 -0
  315. package/src/lib/deployment/metadata.ts +40 -0
  316. package/src/lib/deployment/path-manager.ts +186 -0
  317. package/src/lib/file-router/file-router.ts +0 -2
  318. package/src/lib/file-router/linter.test.ts +2 -0
  319. package/src/lib/file-router/route.ts +2 -0
  320. package/src/lib/file-router/scan.ts +19 -13
  321. package/src/lib/github-actions/git-controller.ts +151 -0
  322. package/src/lib/github-actions/github-actions.ts +6 -0
  323. package/src/lib/github-actions/index.ts +1 -0
  324. package/src/lib/github-actions/lib/get-pr-deployments.ts +76 -0
  325. package/src/lib/github-actions/pr-controller.test.ts +172 -0
  326. package/src/lib/github-actions/pr-controller.ts +183 -0
  327. package/src/lib/github-actions/run-step-cli.ts +84 -0
  328. package/src/lib/github-actions/runner.test.ts +192 -0
  329. package/src/lib/github-actions/runner.ts +226 -0
  330. package/src/lib/github-actions/schemas/context.ts +424 -0
  331. package/src/lib/github-actions/schemas/index.ts +5 -0
  332. package/src/lib/github-actions/search-module.test.ts +110 -0
  333. package/src/lib/github-actions/search-module.ts +76 -0
  334. package/src/lib/github-actions/step.test.ts +149 -0
  335. package/src/lib/github-actions/step.ts +232 -0
  336. package/src/lib/helpers.ts +4 -3
  337. package/src/lib/kit-temp.test-d.ts +115 -0
  338. package/src/lib/kit-temp.test.ts +127 -0
  339. package/src/lib/kit-temp.ts +126 -14
  340. package/src/lib/mask/$$.ts +2 -0
  341. package/src/lib/mask/$.test.ts +248 -0
  342. package/src/lib/mask/$.ts +1 -0
  343. package/src/lib/mask/apply.ts +134 -0
  344. package/src/lib/mask/mask.test-d.ts +144 -0
  345. package/src/lib/mask/mask.ts +244 -0
  346. package/src/lib/shiki/shiki.test.ts +1 -1
  347. package/src/lib/task/$$.ts +2 -0
  348. package/src/lib/task/$.test.ts +209 -0
  349. package/src/lib/task/$.ts +1 -0
  350. package/src/lib/task/report.ts +72 -0
  351. package/src/lib/task/task.ts +112 -0
  352. package/src/lib/version-history/index.test.ts +188 -0
  353. package/src/lib/version-history/index.ts +4 -0
  354. package/src/lib/version-history/types.ts +68 -0
  355. package/src/lib/version-history/version-history.ts +293 -0
  356. package/src/sandbox.ts +1 -0
  357. package/src/singletons/debug.ts +1 -1
  358. package/src/template/components/Link.tsx +1 -1
  359. package/src/template/components/content/$$.ts +1 -0
  360. package/src/template/components/sidebar/Sidebar.tsx +2 -2
  361. package/src/template/components/sidebar/SidebarItem.tsx +8 -8
  362. package/build/lib/file-router/scan-tree.d.ts +0 -20
  363. package/build/lib/file-router/scan-tree.d.ts.map +0 -1
  364. package/build/lib/file-router/scan-tree.js +0 -158
  365. package/build/lib/file-router/scan-tree.js.map +0 -1
  366. package/build/lib/file-router/sidebar/index.d.ts +0 -3
  367. package/build/lib/file-router/sidebar/index.d.ts.map +0 -1
  368. package/build/lib/file-router/sidebar/index.js +0 -4
  369. package/build/lib/file-router/sidebar/index.js.map +0 -1
  370. package/build/lib/file-router/sidebar/sidebar-tree.d.ts +0 -9
  371. package/build/lib/file-router/sidebar/sidebar-tree.d.ts.map +0 -1
  372. package/build/lib/file-router/sidebar/sidebar-tree.js +0 -85
  373. package/build/lib/file-router/sidebar/sidebar-tree.js.map +0 -1
  374. package/build/lib/file-router/sidebar/types.d.ts.map +0 -1
  375. package/build/lib/file-router/sidebar/types.js +0 -2
  376. package/build/lib/file-router/sidebar/types.js.map +0 -1
  377. package/build/lib/tree/index.d.ts +0 -3
  378. package/build/lib/tree/index.d.ts.map +0 -1
  379. package/build/lib/tree/index.js +0 -2
  380. package/build/lib/tree/index.js.map +0 -1
  381. package/build/lib/tree/tree.d.ts +0 -62
  382. package/build/lib/tree/tree.d.ts.map +0 -1
  383. package/build/lib/tree/tree.js +0 -134
  384. package/build/lib/tree/tree.js.map +0 -1
  385. package/src/lib/file-router/scan-tree.test.ts +0 -189
  386. package/src/lib/file-router/scan-tree.ts +0 -205
  387. package/src/lib/file-router/sidebar/index.ts +0 -3
  388. package/src/lib/file-router/sidebar/sidebar-tree.test.ts +0 -123
  389. package/src/lib/file-router/sidebar/sidebar-tree.ts +0 -110
  390. package/src/lib/file-router/sidebar/types.ts +0 -19
  391. package/src/lib/tree/index.ts +0 -2
  392. package/src/lib/tree/tree.test.ts +0 -117
  393. package/src/lib/tree/tree.ts +0 -183
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-actions.js","sourceRoot":"","sources":["../../../src/lib/github-actions/github-actions.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as GitHubActions from './github-actions.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/github-actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as GitHubActions from "./github-actions.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/github-actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { GitHub } from '@actions/github/lib/utils.ts';
2
+ export interface Deployment {
3
+ sha: string;
4
+ shortSha: string;
5
+ createdAt: string;
6
+ status?: string;
7
+ }
8
+ /**
9
+ * Fetch deployments for a specific PR using GitHub API
10
+ */
11
+ export declare function fetchPullRequestDeployments(github: InstanceType<typeof GitHub>, owner: string, repo: string, prNumber: string | number): Promise<Deployment[]>;
12
+ //# sourceMappingURL=get-pr-deployments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-pr-deployments.d.ts","sourceRoot":"","sources":["../../../../src/lib/github-actions/lib/get-pr-deployments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAE1D,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,CAAC,OAAO,MAAM,CAAC,EACnC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,GACxB,OAAO,CAAC,UAAU,EAAE,CAAC,CA0DvB"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Fetch deployments for a specific PR using GitHub API
3
+ */
4
+ export async function fetchPullRequestDeployments(github, owner, repo, prNumber) {
5
+ const deployments = [];
6
+ try {
7
+ // Get all deployments for this PR's environment
8
+ const { data: ghDeployments } = await github.rest.repos.listDeployments({
9
+ owner,
10
+ repo,
11
+ environment: `pr-${prNumber}`,
12
+ per_page: 100,
13
+ });
14
+ // Debug logging
15
+ console.log(`Found ${ghDeployments.length} deployments for PR #${prNumber}`);
16
+ // Process each deployment
17
+ for (const deployment of ghDeployments) {
18
+ console.log(`Processing deployment: ${deployment.id}, SHA: ${deployment.sha.substring(0, 7)}, Ref: ${deployment.ref}`);
19
+ // Get the latest status for this deployment
20
+ const { data: statuses } = await github.rest.repos.listDeploymentStatuses({
21
+ owner,
22
+ repo,
23
+ deployment_id: deployment.id,
24
+ per_page: 1,
25
+ });
26
+ const latestStatus = statuses[0];
27
+ const state = latestStatus?.state;
28
+ console.log(` Status: ${state || 'no status'}`);
29
+ // Include successful and inactive deployments
30
+ if (state === 'success' || state === 'inactive') {
31
+ const shortSha = deployment.sha.substring(0, 7);
32
+ deployments.push({
33
+ sha: deployment.sha,
34
+ shortSha,
35
+ createdAt: deployment.created_at,
36
+ status: state,
37
+ });
38
+ console.log(` Added to deployments list`);
39
+ }
40
+ }
41
+ // Sort by creation date (newest first)
42
+ deployments.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
43
+ console.log(`Returning ${deployments.length} successful deployments for PR #${prNumber}`);
44
+ }
45
+ catch (error) {
46
+ console.error(`Error fetching deployments for PR #${prNumber}:`, error);
47
+ throw error;
48
+ }
49
+ return deployments;
50
+ }
51
+ //# sourceMappingURL=get-pr-deployments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-pr-deployments.js","sourceRoot":"","sources":["../../../../src/lib/github-actions/lib/get-pr-deployments.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAmC,EACnC,KAAa,EACb,IAAY,EACZ,QAAyB;IAEzB,MAAM,WAAW,GAAiB,EAAE,CAAA;IAEpC,IAAI,CAAC;QACH,gDAAgD;QAChD,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACtE,KAAK;YACL,IAAI;YACJ,WAAW,EAAE,MAAM,QAAQ,EAAE;YAC7B,QAAQ,EAAE,GAAG;SACd,CAAC,CAAA;QAEF,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,MAAM,wBAAwB,QAAQ,EAAE,CAAC,CAAA;QAE5E,0BAA0B;QAC1B,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CACT,0BAA0B,UAAU,CAAC,EAAE,UAAU,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,UAAU,CAAC,GAAG,EAAE,CAC1G,CAAA;YAED,4CAA4C;YAC5C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBACxE,KAAK;gBACL,IAAI;gBACJ,aAAa,EAAE,UAAU,CAAC,EAAE;gBAC5B,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAA;YAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAChC,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,CAAA;YAEjC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,IAAI,WAAW,EAAE,CAAC,CAAA;YAEhD,8CAA8C;YAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAE/C,WAAW,CAAC,IAAI,CAAC;oBACf,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,QAAQ;oBACR,SAAS,EAAE,UAAU,CAAC,UAAU;oBAChC,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAE7F,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,MAAM,mCAAmC,QAAQ,EAAE,CAAC,CAAA;IAC3F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAA;QACvE,MAAM,KAAK,CAAA;IACb,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { Context } from '@actions/github/lib/context.ts';
2
+ import type { GitHub } from '@actions/github/lib/utils.ts';
3
+ import { type Deployment } from './lib/get-pr-deployments.ts';
4
+ export interface CommentOptions {
5
+ /**
6
+ * Unique identifier for the comment. Used to find and update existing comments.
7
+ * If not provided, uses the current step name as the ID.
8
+ */
9
+ id?: string;
10
+ /**
11
+ * Markdown content of the comment
12
+ */
13
+ content: string;
14
+ /**
15
+ * Whether this comment is optional. If true, errors are logged but not thrown
16
+ * when not in a PR context. Defaults to false.
17
+ */
18
+ optional?: boolean;
19
+ }
20
+ /**
21
+ * Create a PR controller. Returns a no-op controller when not in PR context.
22
+ */
23
+ export declare function createPullRequestController(github: InstanceType<typeof GitHub>, context: Context, defaultCommentId?: string): PullRequestController;
24
+ /**
25
+ * PR Controller for GitHub Actions
26
+ * Provides easy-to-use methods for interacting with pull requests
27
+ */
28
+ export declare class PullRequestController {
29
+ private github;
30
+ private context;
31
+ private defaultCommentId?;
32
+ readonly isActive: boolean;
33
+ readonly number: number;
34
+ constructor(github: InstanceType<typeof GitHub>, context: Context, prNumber: number | null, defaultCommentId?: string | undefined);
35
+ comment(options: CommentOptions): Promise<void>;
36
+ fetchDeployments(): Promise<Deployment[]>;
37
+ deleteComment(id: string): Promise<void>;
38
+ }
39
+ //# sourceMappingURL=pr-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-controller.d.ts","sourceRoot":"","sources":["../../../src/lib/github-actions/pr-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,KAAK,UAAU,EAA+B,MAAM,6BAA6B,CAAA;AAI1F,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,CAAC,OAAO,MAAM,CAAC,EACnC,OAAO,EAAE,OAAO,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,qBAAqB,CAavB;AAkBD;;;GAGG;AACH,qBAAa,qBAAqB;IAK9B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,gBAAgB,CAAC;IAP3B,SAAgB,QAAQ,EAAE,OAAO,CAAA;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAA;gBAGpB,MAAM,EAAE,YAAY,CAAC,OAAO,MAAM,CAAC,EACnC,OAAO,EAAE,OAAO,EACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACf,gBAAgB,CAAC,EAAE,MAAM,YAAA;IAM7B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C/C,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAazC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA2C/C"}
@@ -0,0 +1,122 @@
1
+ import { fetchPullRequestDeployments } from "./lib/get-pr-deployments.js";
2
+ const createCommentMarker = (id) => `<!-- comment-id: ${id} -->`;
3
+ /**
4
+ * Create a PR controller. Returns a no-op controller when not in PR context.
5
+ */
6
+ export function createPullRequestController(github, context, defaultCommentId) {
7
+ // Check if this is a PR-related event
8
+ let prNumber = null;
9
+ if (context.payload.pull_request?.number) {
10
+ // Direct PR events
11
+ prNumber = context.payload.pull_request.number;
12
+ }
13
+ else if (context.eventName === 'issue_comment' && context.payload.issue?.['pull_request']) {
14
+ // Issue comment on a PR (not on a regular issue)
15
+ prNumber = context.payload.issue.number;
16
+ }
17
+ return new PullRequestController(github, context, prNumber, defaultCommentId);
18
+ }
19
+ // /**
20
+ // * Check if the current event is PR-related
21
+ // */
22
+ // function isPREvent(context: Context): boolean {
23
+ // const prEvents = [
24
+ // 'pull_request',
25
+ // 'pull_request_review',
26
+ // 'pull_request_review_comment',
27
+ // 'pull_request_target',
28
+ // 'issue_comment', // Can be on PRs too
29
+ // ]
30
+ // return prEvents.includes(context.eventName)
31
+ // || (context.eventName === 'issue_comment' && context.payload.issue?.['pull_request'])
32
+ // }
33
+ /**
34
+ * PR Controller for GitHub Actions
35
+ * Provides easy-to-use methods for interacting with pull requests
36
+ */
37
+ export class PullRequestController {
38
+ github;
39
+ context;
40
+ defaultCommentId;
41
+ isActive;
42
+ number;
43
+ constructor(github, context, prNumber, defaultCommentId) {
44
+ this.github = github;
45
+ this.context = context;
46
+ this.defaultCommentId = defaultCommentId;
47
+ this.isActive = prNumber !== null;
48
+ this.number = prNumber || 0;
49
+ }
50
+ async comment(options) {
51
+ if (!this.isActive) {
52
+ if (options.optional) {
53
+ console.log('[skip] Not in a PR context, cannot create comment');
54
+ return;
55
+ }
56
+ throw new Error('Not in a PR context, cannot create comment');
57
+ }
58
+ const { owner, repo } = this.context.repo;
59
+ // Use provided ID or fall back to default
60
+ const commentId = options.id || this.defaultCommentId || 'default';
61
+ // Search for existing comment with the ID in the body
62
+ const commentMarker = createCommentMarker(commentId);
63
+ const body = `${options.content}\n\n${commentMarker}`;
64
+ // Find existing comment
65
+ const { data: comments } = await this.github.rest.issues.listComments({
66
+ owner,
67
+ repo,
68
+ issue_number: this.number,
69
+ per_page: 100,
70
+ });
71
+ const existingComment = comments.find(comment => comment.body?.includes(commentMarker));
72
+ if (existingComment) {
73
+ // Update existing comment
74
+ await this.github.rest.issues.updateComment({
75
+ owner,
76
+ repo,
77
+ comment_id: existingComment.id,
78
+ body,
79
+ });
80
+ }
81
+ else {
82
+ // Create new comment
83
+ await this.github.rest.issues.createComment({
84
+ owner,
85
+ repo,
86
+ issue_number: this.number,
87
+ body,
88
+ });
89
+ }
90
+ }
91
+ async fetchDeployments() {
92
+ if (!this.isActive) {
93
+ console.log('[skip] Not in a PR context, cannot fetch deployments');
94
+ return [];
95
+ }
96
+ return await fetchPullRequestDeployments(this.github, this.context.repo.owner, this.context.repo.repo, this.number);
97
+ }
98
+ async deleteComment(id) {
99
+ if (!this.isActive) {
100
+ console.log('[skip] Not in a PR context, cannot delete comment');
101
+ return;
102
+ }
103
+ const { owner, repo } = this.context.repo;
104
+ const commentMarker = createCommentMarker(id);
105
+ // Find existing comment
106
+ const { data: comments } = await this.github.rest.issues.listComments({
107
+ owner,
108
+ repo,
109
+ issue_number: this.number,
110
+ per_page: 100,
111
+ });
112
+ const existingComment = comments.find(comment => comment.body?.includes(commentMarker));
113
+ if (existingComment) {
114
+ await this.github.rest.issues.deleteComment({
115
+ owner,
116
+ repo,
117
+ comment_id: existingComment.id,
118
+ });
119
+ }
120
+ }
121
+ }
122
+ //# sourceMappingURL=pr-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-controller.js","sourceRoot":"","sources":["../../../src/lib/github-actions/pr-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI for running workflow steps
4
+ *
5
+ * This is designed to be called from GitHub Actions workflows
6
+ * with our convention of steps being in .github/steps/<name>.ts
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=run-step-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-step-cli.d.ts","sourceRoot":"","sources":["../../../src/lib/github-actions/run-step-cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI for running workflow steps
4
+ *
5
+ * This is designed to be called from GitHub Actions workflows
6
+ * with our convention of steps being in .github/steps/<name>.ts
7
+ */
8
+ import * as core from '@actions/core';
9
+ import { runStep, runStepByName } from "./runner.js";
10
+ async function main() {
11
+ const stepName = process.argv[2];
12
+ const workflowName = process.argv[3];
13
+ const pathOverride = process.argv[4];
14
+ const inputsJson = process.argv[5] || '{}';
15
+ const previousJson = process.argv[7] || '{}';
16
+ if (!stepName) {
17
+ core.setFailed('Missing required step name parameter');
18
+ core.error('Usage: run-step-cli <step-name> <workflow-name> [path-override] [inputs-json] [previous-json]');
19
+ core.error('This runner expects steps to be in .github/steps/<name>.ts');
20
+ process.exit(1);
21
+ }
22
+ // Module discovery is now handled by the runner
23
+ try {
24
+ core.info(`Running workflow step: ${stepName}`);
25
+ // Parse all inputs
26
+ const inputs = JSON.parse(inputsJson);
27
+ const previous = JSON.parse(previousJson);
28
+ // Debug logging
29
+ core.debug(`Parsed inputs: ${JSON.stringify(inputs)}`);
30
+ core.debug(`Parsed previous: ${JSON.stringify(previous)}`);
31
+ const mergedInputs = {
32
+ ...inputs,
33
+ previous,
34
+ };
35
+ core.debug(`Merged inputs: ${JSON.stringify(mergedInputs)}`);
36
+ // If path override is provided and not empty, use it directly
37
+ if (pathOverride && pathOverride !== '') {
38
+ await runStep(pathOverride, JSON.stringify(mergedInputs));
39
+ }
40
+ else {
41
+ await runStepByName(stepName, workflowName, JSON.stringify(mergedInputs));
42
+ }
43
+ }
44
+ catch (error) {
45
+ const message = error instanceof Error ? error.message : String(error);
46
+ const stack = error instanceof Error ? error.stack : undefined;
47
+ core.error(`Failed to run step ${stepName}: ${message}`);
48
+ if (stack) {
49
+ core.error(`Stack trace:`);
50
+ core.error(stack);
51
+ }
52
+ core.error(`Step name: ${stepName}`);
53
+ core.error(`Workflow name: ${workflowName || 'none'}`);
54
+ core.error(`Path override: ${pathOverride || 'none'}`);
55
+ core.error(`Inputs: ${inputsJson}`);
56
+ core.error(`Previous: ${previousJson}`);
57
+ // Check for common issues
58
+ if (error instanceof Error) {
59
+ if (error.message.includes('Cannot find module')) {
60
+ core.error(`Module import error - check that all dependencies are installed`);
61
+ }
62
+ else if (error.message.includes('SyntaxError')) {
63
+ core.error(`Syntax error in step file - check TypeScript compilation`);
64
+ }
65
+ }
66
+ core.setFailed(`Step execution failed: ${message}`);
67
+ process.exit(1);
68
+ }
69
+ }
70
+ main();
71
+ //# sourceMappingURL=run-step-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-step-cli.js","sourceRoot":"","sources":["../../../src/lib/github-actions/run-step-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Runner utilities for executing workflow steps in GitHub Actions
3
+ */
4
+ import type { Args } from './step.ts';
5
+ /**
6
+ * Create a workflow context with all necessary tools
7
+ */
8
+ export declare function createArgs(stepName: string): Args;
9
+ /**
10
+ * Run a workflow step by name using discovery
11
+ */
12
+ export declare function runStepByName(stepName: string, workflowName?: string, inputsJson?: string): Promise<void>;
13
+ /**
14
+ * Run a workflow step by importing it from a path
15
+ */
16
+ export declare function runStep(stepPath: string, inputsJson?: string): Promise<void>;
17
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/lib/github-actions/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoBjD;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA6Jf"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Runner utilities for executing workflow steps in GitHub Actions
3
+ */
4
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
5
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
6
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
7
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
8
+ });
9
+ }
10
+ return path;
11
+ };
12
+ import * as core from '@actions/core';
13
+ import { context, getOctokit } from '@actions/github';
14
+ import { Obj, Path, Str } from '@wollybeard/kit';
15
+ import { promises as fs } from 'node:fs';
16
+ import { z } from 'zod/v4';
17
+ import { $ } from 'zx';
18
+ import { createGitController } from "./git-controller.js";
19
+ import { createPullRequestController } from "./pr-controller.js";
20
+ import { searchModule } from "./search-module.js";
21
+ /**
22
+ * Create a workflow context with all necessary tools
23
+ */
24
+ export function createArgs(stepName) {
25
+ const githubToken = process.env['GITHUB_TOKEN'];
26
+ if (!githubToken) {
27
+ throw new Error('GITHUB_TOKEN environment variable is required');
28
+ }
29
+ const github = getOctokit(githubToken);
30
+ const pr = createPullRequestController(github, context, stepName);
31
+ const git = createGitController($);
32
+ return {
33
+ core,
34
+ github,
35
+ context,
36
+ $,
37
+ fs,
38
+ pr,
39
+ git,
40
+ inputs: {},
41
+ };
42
+ }
43
+ /**
44
+ * Run a workflow step by name using discovery
45
+ */
46
+ export async function runStepByName(stepName, workflowName, inputsJson) {
47
+ // Discover the step module
48
+ const moduleLocation = searchModule({ stepName, workflowName });
49
+ if (!moduleLocation.found || !moduleLocation.path) {
50
+ core.error(`Step '${stepName}' not found`);
51
+ core.error(`Searched paths:`);
52
+ moduleLocation.searchedPaths.forEach(path => core.error(` - ${path}`));
53
+ throw new Error(`Step '${stepName}' not found`);
54
+ }
55
+ core.debug(`Found step at: ${moduleLocation.path}`);
56
+ await runStep(moduleLocation.path, inputsJson);
57
+ }
58
+ /**
59
+ * Run a workflow step by importing it from a path
60
+ */
61
+ export async function runStep(stepPath, inputsJson) {
62
+ const rawInputs = inputsJson ? JSON.parse(inputsJson) : {};
63
+ try {
64
+ // Dynamically import the step module
65
+ let stepModule;
66
+ // Check if this is a test scenario (mocked module)
67
+ if (process.env['NODE_ENV'] === 'test' && stepPath.startsWith('./test-')) {
68
+ // For tests, use direct import path
69
+ stepModule = await import(__rewriteRelativeImportExtension(stepPath, true));
70
+ }
71
+ else {
72
+ // For real usage, convert to absolute path
73
+ const { resolve } = await import('node:path');
74
+ const { pathToFileURL } = await import('node:url');
75
+ // Resolve to absolute path and convert to file URL for proper ESM import
76
+ const absolutePath = resolve(process.cwd(), stepPath);
77
+ const importUrl = pathToFileURL(absolutePath).href;
78
+ stepModule = await import(__rewriteRelativeImportExtension(importUrl, true));
79
+ }
80
+ const step = stepModule.default;
81
+ if (!step || !step.run || !step.definition) {
82
+ throw new Error(`Module at ${stepPath} does not export a valid workflow step as default export`);
83
+ }
84
+ //
85
+ //
86
+ //
87
+ //
88
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Process Step Definition
89
+ // Validate Inputs
90
+ // Warning about excess properties
91
+ // Validate expected GitHub event versus actual
92
+ //
93
+ //
94
+ const { definition } = step;
95
+ const stepName = definition.name ?? Path.parse(stepPath).name;
96
+ // todo: allow step definition to opt-out of runtime validation
97
+ // Validate context if schema is provided
98
+ let validatedContext = context;
99
+ if (definition.contextSchema) {
100
+ const contextValidation = definition.contextSchema.safeParse(context);
101
+ if (!contextValidation.success) {
102
+ const errorMessage = `Step '${stepName}' expects a different GitHub event context`;
103
+ core.error(errorMessage);
104
+ core.error(`Expected context: ${JSON.stringify(contextValidation.error.issues, null, 2)}`);
105
+ core.error(`Actual event: ${context.eventName}`);
106
+ // For now, default to hard error. We can make this configurable later
107
+ throw new Error(errorMessage);
108
+ }
109
+ validatedContext = contextValidation.data;
110
+ }
111
+ // Validate inputs
112
+ let inputs = {};
113
+ if (definition.inputsSchema) {
114
+ const parseResult = definition.inputsSchema.safeParse(rawInputs);
115
+ if (parseResult.success) {
116
+ inputs = parseResult.data;
117
+ }
118
+ else {
119
+ core.error(`Validation error in step ${stepName}: ${parseResult.error.message}`);
120
+ core.debug(`Validation issues: ${JSON.stringify(parseResult.error.issues, null, 2)}`);
121
+ core.debug(`Received data: ${JSON.stringify(rawInputs, null, 2)}`);
122
+ throw parseResult.error;
123
+ }
124
+ // todo: let step define if it wants to silence this warning
125
+ // Check for excess properties if using object schema
126
+ if (definition.inputsSchema instanceof z.ZodObject && typeof rawInputs === 'object' && rawInputs !== null) {
127
+ const knownKeys = Object.keys(definition.inputsSchema.shape);
128
+ const providedKeys = Object.keys(rawInputs);
129
+ const unknownKeys = providedKeys.filter(key => !knownKeys.includes(key));
130
+ if (unknownKeys.length > 0) {
131
+ core.warning(`Step '${stepName}' received unknown inputs: ${unknownKeys.join(', ')}. These inputs will be ignored.`);
132
+ core.debug(`Known inputs: ${knownKeys.join(', ')}`);
133
+ core.debug(`Provided inputs: ${JSON.stringify(rawInputs, null, 2)}`);
134
+ }
135
+ }
136
+ }
137
+ //
138
+ //
139
+ //
140
+ //
141
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Run Step
142
+ //
143
+ //
144
+ // Create context with validated inputs
145
+ const args = createArgs(stepName);
146
+ const stepArgs = {
147
+ ...args,
148
+ context: validatedContext,
149
+ inputs: inputs,
150
+ };
151
+ core.startGroup(`${definition.name}: ${definition.description}`);
152
+ core.debug(`Inputs: ${JSON.stringify(inputs)}`);
153
+ // Execute step
154
+ const outputRaw = await step.run(stepArgs);
155
+ //
156
+ //
157
+ //
158
+ //
159
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Handle Step Output
160
+ //
161
+ //
162
+ // Validate & Export outputs
163
+ // todo: allow step definition to opt-out of output validation
164
+ if (definition.outputsSchema) {
165
+ const outputs = definition.outputsSchema.parse(outputRaw);
166
+ const json = JSON.stringify(outputs);
167
+ core.setOutput('json', json);
168
+ for (const [key, value] of Obj.entries(outputs)) {
169
+ // todo: if key === json raise an error, it is a reserved name
170
+ core.setOutput(key, Str.is(value) ? value : JSON.stringify(value));
171
+ }
172
+ }
173
+ else if (outputRaw !== undefined && outputRaw !== null) {
174
+ core.warning(`Step did not define outputs schema, but returned outputs. These will not be validated or exported. Outputs were: ${JSON.stringify(outputRaw)}`);
175
+ }
176
+ core.endGroup();
177
+ }
178
+ catch (error) {
179
+ core.endGroup();
180
+ // Log error details once (if not already logged)
181
+ if (error instanceof Error && !(error instanceof z.ZodError)) {
182
+ core.error(`Step failed: ${error.message}`);
183
+ core.debug(`Stack: ${error.stack}`);
184
+ }
185
+ else if (!(error instanceof z.ZodError)) {
186
+ core.error(`Step failed: ${String(error)}`);
187
+ }
188
+ if (inputsJson) {
189
+ core.debug(`Step inputs: ${inputsJson}`);
190
+ }
191
+ // Re-throw to let CLI handle the error
192
+ throw error;
193
+ }
194
+ }
195
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/lib/github-actions/runner.ts"],"names":[],"mappings":"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"}