polen 0.10.0-next.3 → 0.10.0-next.4

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 (268) hide show
  1. package/README.md +49 -376
  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/static/index.d.ts +2 -0
  7. package/build/api/static/index.d.ts.map +1 -0
  8. package/build/api/static/index.js +2 -0
  9. package/build/api/static/index.js.map +1 -0
  10. package/build/api/static/manifest.d.ts +18 -0
  11. package/build/api/static/manifest.d.ts.map +1 -0
  12. package/build/api/static/manifest.js +13 -0
  13. package/build/api/static/manifest.js.map +1 -0
  14. package/build/api/static/rebase.d.ts +14 -0
  15. package/build/api/static/rebase.d.ts.map +1 -0
  16. package/build/api/static/rebase.js +110 -0
  17. package/build/api/static/rebase.js.map +1 -0
  18. package/build/api/static/static.d.ts +3 -0
  19. package/build/api/static/static.d.ts.map +1 -0
  20. package/build/api/static/static.js +3 -0
  21. package/build/api/static/static.js.map +1 -0
  22. package/build/api/vite/plugins/build.d.ts.map +1 -1
  23. package/build/api/vite/plugins/build.js +22 -1
  24. package/build/api/vite/plugins/build.js.map +1 -1
  25. package/build/cli/commands/static/$default.d.ts +3 -0
  26. package/build/cli/commands/static/$default.d.ts.map +1 -0
  27. package/build/cli/commands/static/$default.js +38 -0
  28. package/build/cli/commands/static/$default.js.map +1 -0
  29. package/build/cli/commands/static/rebase.d.ts +2 -0
  30. package/build/cli/commands/static/rebase.d.ts.map +1 -0
  31. package/build/cli/commands/static/rebase.js +26 -0
  32. package/build/cli/commands/static/rebase.js.map +1 -0
  33. package/build/cli/commands/static.d.ts +3 -0
  34. package/build/cli/commands/static.d.ts.map +1 -0
  35. package/build/cli/commands/static.js +5 -0
  36. package/build/cli/commands/static.js.map +1 -0
  37. package/build/lib/demos/builder.d.ts +83 -0
  38. package/build/lib/demos/builder.d.ts.map +1 -0
  39. package/build/lib/demos/builder.js +237 -0
  40. package/build/lib/demos/builder.js.map +1 -0
  41. package/build/lib/demos/config-schema.d.ts +243 -0
  42. package/build/lib/demos/config-schema.d.ts.map +1 -0
  43. package/build/lib/demos/config-schema.js +52 -0
  44. package/build/lib/demos/config-schema.js.map +1 -0
  45. package/build/lib/demos/config.d.ts +40 -0
  46. package/build/lib/demos/config.d.ts.map +1 -0
  47. package/build/lib/demos/config.js +180 -0
  48. package/build/lib/demos/config.js.map +1 -0
  49. package/build/lib/demos/index.d.ts +9 -0
  50. package/build/lib/demos/index.d.ts.map +1 -0
  51. package/build/lib/demos/index.js +8 -0
  52. package/build/lib/demos/index.js.map +1 -0
  53. package/build/lib/demos/ui/components.d.ts +33 -0
  54. package/build/lib/demos/ui/components.d.ts.map +1 -0
  55. package/build/lib/demos/ui/components.js +699 -0
  56. package/build/lib/demos/ui/components.js.map +1 -0
  57. package/build/lib/demos/ui/data-collector.d.ts +88 -0
  58. package/build/lib/demos/ui/data-collector.d.ts.map +1 -0
  59. package/build/lib/demos/ui/data-collector.js +174 -0
  60. package/build/lib/demos/ui/data-collector.js.map +1 -0
  61. package/build/lib/demos/ui/landing-page-cli.d.ts +3 -0
  62. package/build/lib/demos/ui/landing-page-cli.d.ts.map +1 -0
  63. package/build/lib/demos/ui/landing-page-cli.js +21 -0
  64. package/build/lib/demos/ui/landing-page-cli.js.map +1 -0
  65. package/build/lib/demos/ui/landing-page.d.ts +32 -0
  66. package/build/lib/demos/ui/landing-page.d.ts.map +1 -0
  67. package/build/lib/demos/ui/landing-page.js +83 -0
  68. package/build/lib/demos/ui/landing-page.js.map +1 -0
  69. package/build/lib/demos/ui/page-renderer.d.ts +26 -0
  70. package/build/lib/demos/ui/page-renderer.d.ts.map +1 -0
  71. package/build/lib/demos/ui/page-renderer.js +104 -0
  72. package/build/lib/demos/ui/page-renderer.js.map +1 -0
  73. package/build/lib/demos/utils.d.ts +14 -0
  74. package/build/lib/demos/utils.d.ts.map +1 -0
  75. package/build/lib/demos/utils.js +37 -0
  76. package/build/lib/demos/utils.js.map +1 -0
  77. package/build/lib/deployment/$$.d.ts +3 -0
  78. package/build/lib/deployment/$$.d.ts.map +1 -0
  79. package/build/lib/deployment/$$.js +3 -0
  80. package/build/lib/deployment/$$.js.map +1 -0
  81. package/build/lib/deployment/$.d.ts +2 -0
  82. package/build/lib/deployment/$.d.ts.map +1 -0
  83. package/build/lib/deployment/$.js +2 -0
  84. package/build/lib/deployment/$.js.map +1 -0
  85. package/build/lib/deployment/metadata.d.ts +32 -0
  86. package/build/lib/deployment/metadata.d.ts.map +1 -0
  87. package/build/lib/deployment/metadata.js +37 -0
  88. package/build/lib/deployment/metadata.js.map +1 -0
  89. package/build/lib/deployment/path-manager.d.ts +41 -0
  90. package/build/lib/deployment/path-manager.d.ts.map +1 -0
  91. package/build/lib/deployment/path-manager.js +157 -0
  92. package/build/lib/deployment/path-manager.js.map +1 -0
  93. package/build/lib/github-actions/git-controller.d.ts +50 -0
  94. package/build/lib/github-actions/git-controller.d.ts.map +1 -0
  95. package/build/lib/github-actions/git-controller.js +90 -0
  96. package/build/lib/github-actions/git-controller.js.map +1 -0
  97. package/build/lib/github-actions/github-actions.d.ts +7 -0
  98. package/build/lib/github-actions/github-actions.d.ts.map +1 -0
  99. package/build/lib/github-actions/github-actions.js +7 -0
  100. package/build/lib/github-actions/github-actions.js.map +1 -0
  101. package/build/lib/github-actions/index.d.ts +2 -0
  102. package/build/lib/github-actions/index.d.ts.map +1 -0
  103. package/build/lib/github-actions/index.js +2 -0
  104. package/build/lib/github-actions/index.js.map +1 -0
  105. package/build/lib/github-actions/lib/get-pr-deployments.d.ts +12 -0
  106. package/build/lib/github-actions/lib/get-pr-deployments.d.ts.map +1 -0
  107. package/build/lib/github-actions/lib/get-pr-deployments.js +51 -0
  108. package/build/lib/github-actions/lib/get-pr-deployments.js.map +1 -0
  109. package/build/lib/github-actions/pr-controller.d.ts +39 -0
  110. package/build/lib/github-actions/pr-controller.d.ts.map +1 -0
  111. package/build/lib/github-actions/pr-controller.js +122 -0
  112. package/build/lib/github-actions/pr-controller.js.map +1 -0
  113. package/build/lib/github-actions/run-step-cli.d.ts +9 -0
  114. package/build/lib/github-actions/run-step-cli.d.ts.map +1 -0
  115. package/build/lib/github-actions/run-step-cli.js +71 -0
  116. package/build/lib/github-actions/run-step-cli.js.map +1 -0
  117. package/build/lib/github-actions/runner.d.ts +17 -0
  118. package/build/lib/github-actions/runner.d.ts.map +1 -0
  119. package/build/lib/github-actions/runner.js +195 -0
  120. package/build/lib/github-actions/runner.js.map +1 -0
  121. package/build/lib/github-actions/schemas/context.d.ts +933 -0
  122. package/build/lib/github-actions/schemas/context.d.ts.map +1 -0
  123. package/build/lib/github-actions/schemas/context.js +407 -0
  124. package/build/lib/github-actions/schemas/context.js.map +1 -0
  125. package/build/lib/github-actions/schemas/index.d.ts +5 -0
  126. package/build/lib/github-actions/schemas/index.d.ts.map +1 -0
  127. package/build/lib/github-actions/schemas/index.js +5 -0
  128. package/build/lib/github-actions/schemas/index.js.map +1 -0
  129. package/build/lib/github-actions/search-module.d.ts +38 -0
  130. package/build/lib/github-actions/search-module.d.ts.map +1 -0
  131. package/build/lib/github-actions/search-module.js +40 -0
  132. package/build/lib/github-actions/search-module.js.map +1 -0
  133. package/build/lib/github-actions/step.d.ts +163 -0
  134. package/build/lib/github-actions/step.d.ts.map +1 -0
  135. package/build/lib/github-actions/step.js +121 -0
  136. package/build/lib/github-actions/step.js.map +1 -0
  137. package/build/lib/helpers.d.ts.map +1 -1
  138. package/build/lib/helpers.js +5 -3
  139. package/build/lib/helpers.js.map +1 -1
  140. package/build/lib/kit-temp.d.ts +54 -0
  141. package/build/lib/kit-temp.d.ts.map +1 -1
  142. package/build/lib/kit-temp.js +80 -14
  143. package/build/lib/kit-temp.js.map +1 -1
  144. package/build/lib/kit-temp.test-d.d.ts +2 -0
  145. package/build/lib/kit-temp.test-d.d.ts.map +1 -0
  146. package/build/lib/kit-temp.test-d.js +75 -0
  147. package/build/lib/kit-temp.test-d.js.map +1 -0
  148. package/build/lib/mask/$$.d.ts +3 -0
  149. package/build/lib/mask/$$.d.ts.map +1 -0
  150. package/build/lib/mask/$$.js +3 -0
  151. package/build/lib/mask/$$.js.map +1 -0
  152. package/build/lib/mask/$.d.ts +2 -0
  153. package/build/lib/mask/$.d.ts.map +1 -0
  154. package/build/lib/mask/$.js +2 -0
  155. package/build/lib/mask/$.js.map +1 -0
  156. package/build/lib/mask/apply.d.ts +86 -0
  157. package/build/lib/mask/apply.d.ts.map +1 -0
  158. package/build/lib/mask/apply.js +86 -0
  159. package/build/lib/mask/apply.js.map +1 -0
  160. package/build/lib/mask/mask.d.ts +124 -0
  161. package/build/lib/mask/mask.d.ts.map +1 -0
  162. package/build/lib/mask/mask.js +137 -0
  163. package/build/lib/mask/mask.js.map +1 -0
  164. package/build/lib/mask/mask.test-d.d.ts +2 -0
  165. package/build/lib/mask/mask.test-d.d.ts.map +1 -0
  166. package/build/lib/mask/mask.test-d.js +102 -0
  167. package/build/lib/mask/mask.test-d.js.map +1 -0
  168. package/build/lib/task/$$.d.ts +3 -0
  169. package/build/lib/task/$$.d.ts.map +1 -0
  170. package/build/lib/task/$$.js +3 -0
  171. package/build/lib/task/$$.js.map +1 -0
  172. package/build/lib/task/$.d.ts +2 -0
  173. package/build/lib/task/$.d.ts.map +1 -0
  174. package/build/lib/task/$.js +2 -0
  175. package/build/lib/task/$.js.map +1 -0
  176. package/build/lib/task/report.d.ts +28 -0
  177. package/build/lib/task/report.d.ts.map +1 -0
  178. package/build/lib/task/report.js +33 -0
  179. package/build/lib/task/report.js.map +1 -0
  180. package/build/lib/task/task.d.ts +44 -0
  181. package/build/lib/task/task.d.ts.map +1 -0
  182. package/build/lib/task/task.js +63 -0
  183. package/build/lib/task/task.js.map +1 -0
  184. package/build/lib/version-history/index.d.ts +3 -0
  185. package/build/lib/version-history/index.d.ts.map +1 -0
  186. package/build/lib/version-history/index.js +2 -0
  187. package/build/lib/version-history/index.js.map +1 -0
  188. package/build/lib/version-history/types.d.ts +64 -0
  189. package/build/lib/version-history/types.d.ts.map +1 -0
  190. package/build/lib/version-history/types.js +5 -0
  191. package/build/lib/version-history/types.js.map +1 -0
  192. package/build/lib/version-history/version-history.d.ts +85 -0
  193. package/build/lib/version-history/version-history.d.ts.map +1 -0
  194. package/build/lib/version-history/version-history.js +248 -0
  195. package/build/lib/version-history/version-history.js.map +1 -0
  196. package/build/sandbox.d.ts +2 -0
  197. package/build/sandbox.d.ts.map +1 -0
  198. package/build/sandbox.js +3 -0
  199. package/build/sandbox.js.map +1 -0
  200. package/build/template/components/Link.jsx +1 -1
  201. package/package.json +16 -9
  202. package/src/api/api.ts +1 -0
  203. package/src/api/singletons/markdown/markdown.test.ts +1 -1
  204. package/src/api/static/index.ts +1 -0
  205. package/src/api/static/manifest.test.ts +106 -0
  206. package/src/api/static/manifest.ts +16 -0
  207. package/src/api/static/rebase.test.ts +229 -0
  208. package/src/api/static/rebase.ts +140 -0
  209. package/src/api/static/static.ts +2 -0
  210. package/src/api/utils/asset-url/asset-url.test.ts +4 -4
  211. package/src/api/vite/plugins/build.ts +25 -1
  212. package/src/api/vite/plugins/core.ts +1 -1
  213. package/src/cli/commands/static/$default.ts +43 -0
  214. package/src/cli/commands/static/rebase.ts +37 -0
  215. package/src/cli/commands/static.ts +6 -0
  216. package/src/lib/demos/builder.ts +298 -0
  217. package/src/lib/demos/config-schema.ts +56 -0
  218. package/src/lib/demos/config.test.ts +193 -0
  219. package/src/lib/demos/config.ts +205 -0
  220. package/src/lib/demos/index.ts +9 -0
  221. package/src/lib/demos/ui/components.ts +739 -0
  222. package/src/lib/demos/ui/data-collector.ts +246 -0
  223. package/src/lib/demos/ui/landing-page-cli.ts +23 -0
  224. package/src/lib/demos/ui/landing-page.ts +126 -0
  225. package/src/lib/demos/ui/page-renderer.ts +124 -0
  226. package/src/lib/demos/utils.ts +43 -0
  227. package/src/lib/deployment/$$.ts +2 -0
  228. package/src/lib/deployment/$.test.ts +53 -0
  229. package/src/lib/deployment/$.ts +1 -0
  230. package/src/lib/deployment/metadata.ts +40 -0
  231. package/src/lib/deployment/path-manager.ts +186 -0
  232. package/src/lib/github-actions/git-controller.ts +151 -0
  233. package/src/lib/github-actions/github-actions.ts +6 -0
  234. package/src/lib/github-actions/index.ts +1 -0
  235. package/src/lib/github-actions/lib/get-pr-deployments.ts +76 -0
  236. package/src/lib/github-actions/pr-controller.test.ts +172 -0
  237. package/src/lib/github-actions/pr-controller.ts +183 -0
  238. package/src/lib/github-actions/run-step-cli.ts +84 -0
  239. package/src/lib/github-actions/runner.test.ts +192 -0
  240. package/src/lib/github-actions/runner.ts +226 -0
  241. package/src/lib/github-actions/schemas/context.ts +424 -0
  242. package/src/lib/github-actions/schemas/index.ts +5 -0
  243. package/src/lib/github-actions/search-module.test.ts +110 -0
  244. package/src/lib/github-actions/search-module.ts +76 -0
  245. package/src/lib/github-actions/step.test.ts +149 -0
  246. package/src/lib/github-actions/step.ts +232 -0
  247. package/src/lib/helpers.ts +4 -3
  248. package/src/lib/kit-temp.test-d.ts +115 -0
  249. package/src/lib/kit-temp.test.ts +127 -0
  250. package/src/lib/kit-temp.ts +126 -14
  251. package/src/lib/mask/$$.ts +2 -0
  252. package/src/lib/mask/$.test.ts +248 -0
  253. package/src/lib/mask/$.ts +1 -0
  254. package/src/lib/mask/apply.ts +134 -0
  255. package/src/lib/mask/mask.test-d.ts +144 -0
  256. package/src/lib/mask/mask.ts +244 -0
  257. package/src/lib/shiki/shiki.test.ts +1 -1
  258. package/src/lib/task/$$.ts +2 -0
  259. package/src/lib/task/$.test.ts +209 -0
  260. package/src/lib/task/$.ts +1 -0
  261. package/src/lib/task/report.ts +72 -0
  262. package/src/lib/task/task.ts +112 -0
  263. package/src/lib/version-history/index.test.ts +188 -0
  264. package/src/lib/version-history/index.ts +4 -0
  265. package/src/lib/version-history/types.ts +68 -0
  266. package/src/lib/version-history/version-history.ts +293 -0
  267. package/src/sandbox.ts +1 -0
  268. package/src/template/components/Link.tsx +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/demos/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;IACnD,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,oCAAoC;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QACnE,MAAM,QAAQ,GAAG,IAAI;aAClB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aACtC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAE7B,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAG,CAAW,CAAC,OAAO,CAAC,CAAA;IAC1E,CAAC;IAED,8CAA8C;IAC9C,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,OAAO,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAU,EAAE;IACzD,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAU,EAAE;IACxD,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAA;AAC9B,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './metadata.ts';
2
+ export * from './path-manager.ts';
3
+ //# sourceMappingURL=$$.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"$$.d.ts","sourceRoot":"","sources":["../../../src/lib/deployment/$$.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "./metadata.js";
2
+ export * from "./path-manager.js";
3
+ //# sourceMappingURL=$$.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"$$.js","sourceRoot":"","sources":["../../../src/lib/deployment/$$.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Deployment from './$$.ts';
2
+ //# sourceMappingURL=$.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"$.d.ts","sourceRoot":"","sources":["../../../src/lib/deployment/$.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Deployment from "./$$.js";
2
+ //# sourceMappingURL=$.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"$.js","sourceRoot":"","sources":["../../../src/lib/deployment/$.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,SAAS,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { Resource } from '@wollybeard/kit';
2
+ import { z } from 'zod/v4';
3
+ export declare const DeploymentMetadataSchema: z.ZodObject<{
4
+ timestamp: z.ZodISODateTime;
5
+ pullRequest: z.ZodObject<{
6
+ number: z.ZodNumber;
7
+ branch: z.ZodString;
8
+ commit: z.ZodString;
9
+ title: z.ZodOptional<z.ZodString>;
10
+ author: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ deployment: z.ZodObject<{
13
+ url: z.ZodURL;
14
+ environment: z.ZodString;
15
+ }, z.core.$strip>;
16
+ }, z.core.$strip>;
17
+ export type DeploymentMetadata = z.infer<typeof DeploymentMetadataSchema>;
18
+ export declare const metadata: Resource.Resource<"deployment-metadata", {
19
+ timestamp: string;
20
+ pullRequest: {
21
+ number: number;
22
+ branch: string;
23
+ commit: string;
24
+ title?: string | undefined;
25
+ author?: string | undefined;
26
+ };
27
+ deployment: {
28
+ url: string;
29
+ environment: string;
30
+ };
31
+ }>;
32
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/lib/deployment/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;iBAanC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;EAmBnB,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { Codec, Resource } from '@wollybeard/kit';
2
+ import { z } from 'zod/v4';
3
+ export const DeploymentMetadataSchema = z.object({
4
+ timestamp: z.iso.datetime(),
5
+ pullRequest: z.object({
6
+ number: z.number(),
7
+ branch: z.string(),
8
+ commit: z.string(),
9
+ title: z.string().optional(),
10
+ author: z.string().optional(),
11
+ }),
12
+ deployment: z.object({
13
+ url: z.url(),
14
+ environment: z.string(),
15
+ }),
16
+ });
17
+ export const metadata = Resource.create({
18
+ name: 'deployment-metadata',
19
+ path: '.deployment.json',
20
+ codec: Codec.fromZod(DeploymentMetadataSchema),
21
+ init: {
22
+ auto: true,
23
+ value: () => ({
24
+ timestamp: new Date().toISOString(),
25
+ pullRequest: {
26
+ number: 0,
27
+ branch: 'unknown',
28
+ commit: 'unknown',
29
+ },
30
+ deployment: {
31
+ url: '',
32
+ environment: 'unknown',
33
+ },
34
+ }),
35
+ },
36
+ });
37
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/lib/deployment/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;QACZ,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC;CACH,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE;gBACX,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;aAClB;YACD,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE;gBACP,WAAW,EAAE,SAAS;aACvB;SACF,CAAC;KACH;CACF,CAAC,CAAA"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Deployment path management for demos
3
+ */
4
+ export interface RedirectConfig {
5
+ from: string;
6
+ to: string;
7
+ type?: 'html' | 'meta';
8
+ }
9
+ /**
10
+ * Manages deployment paths and base path updates for demo files
11
+ */
12
+ export declare class PathManager {
13
+ constructor();
14
+ /**
15
+ * Generate HTML redirect pages
16
+ */
17
+ generateRedirects(redirects: RedirectConfig[], outputDir: string): Promise<void>;
18
+ /**
19
+ * Create convenience redirects for demo examples
20
+ */
21
+ createDemoRedirects(examples: string[], outputDir: string, targetBasePath?: string): Promise<void>;
22
+ /**
23
+ * Validate deployment structure
24
+ */
25
+ validateDeploymentStructure(deploymentDir: string): Promise<{
26
+ valid: boolean;
27
+ errors: string[];
28
+ warnings: string[];
29
+ }>;
30
+ /**
31
+ * Clean up old deployment directories
32
+ */
33
+ cleanupOldDeployments(parentDir: string, keepVersions: string[], dryRun?: boolean): Promise<{
34
+ removed: string[];
35
+ kept: string[];
36
+ errors: string[];
37
+ }>;
38
+ private createRedirectHtml;
39
+ private isSemverDirectory;
40
+ }
41
+ //# sourceMappingURL=path-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/deployment/path-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,WAAW;;IAGtB;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtF;;OAEG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAmB,GAClC,OAAO,CAAC,IAAI,CAAC;IAShB;;OAEG;IACG,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;QAChE,KAAK,EAAE,OAAO,CAAA;QACd,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC;IA2BF;;OAEG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAwCnE,OAAO,CAAC,kBAAkB;IA8C1B,OAAO,CAAC,iBAAiB;CAI1B"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Deployment path management for demos
3
+ */
4
+ import { promises as fs } from 'node:fs';
5
+ import { join } from 'node:path';
6
+ /**
7
+ * Manages deployment paths and base path updates for demo files
8
+ */
9
+ export class PathManager {
10
+ constructor() { }
11
+ /**
12
+ * Generate HTML redirect pages
13
+ */
14
+ async generateRedirects(redirects, outputDir) {
15
+ try {
16
+ for (const redirect of redirects) {
17
+ const redirectPath = join(outputDir, redirect.from, 'index.html');
18
+ const redirectDir = join(outputDir, redirect.from);
19
+ await fs.mkdir(redirectDir, { recursive: true });
20
+ const html = this.createRedirectHtml(redirect.to);
21
+ await fs.writeFile(redirectPath, html);
22
+ }
23
+ }
24
+ catch (error) {
25
+ throw new Error(`Failed to generate redirects: ${error instanceof Error ? error.message : String(error)}`);
26
+ }
27
+ }
28
+ /**
29
+ * Create convenience redirects for demo examples
30
+ */
31
+ async createDemoRedirects(examples, outputDir, targetBasePath = '/latest/') {
32
+ const redirects = examples.map(example => ({
33
+ from: example,
34
+ to: `${targetBasePath}${example}/`,
35
+ }));
36
+ await this.generateRedirects(redirects, outputDir);
37
+ }
38
+ /**
39
+ * Validate deployment structure
40
+ */
41
+ async validateDeploymentStructure(deploymentDir) {
42
+ const errors = [];
43
+ const warnings = [];
44
+ try {
45
+ // Check if deployment directory exists
46
+ await fs.access(deploymentDir);
47
+ }
48
+ catch {
49
+ errors.push(`Deployment directory does not exist: ${deploymentDir}`);
50
+ return { valid: false, errors, warnings };
51
+ }
52
+ try {
53
+ // Check for index.html
54
+ const indexPath = join(deploymentDir, 'index.html');
55
+ await fs.access(indexPath);
56
+ }
57
+ catch {
58
+ warnings.push('No index.html found in deployment root');
59
+ }
60
+ return {
61
+ valid: errors.length === 0,
62
+ errors,
63
+ warnings,
64
+ };
65
+ }
66
+ /**
67
+ * Clean up old deployment directories
68
+ */
69
+ async cleanupOldDeployments(parentDir, keepVersions, dryRun = false) {
70
+ const removed = [];
71
+ const kept = [];
72
+ const errors = [];
73
+ try {
74
+ const entries = await fs.readdir(parentDir, { withFileTypes: true });
75
+ const directories = entries
76
+ .filter(entry => entry.isDirectory())
77
+ .map(entry => entry.name);
78
+ for (const dir of directories) {
79
+ if (keepVersions.includes(dir)) {
80
+ kept.push(dir);
81
+ }
82
+ else if (this.isSemverDirectory(dir)) {
83
+ if (!dryRun) {
84
+ try {
85
+ await fs.rm(join(parentDir, dir), { recursive: true, force: true });
86
+ removed.push(dir);
87
+ }
88
+ catch (error) {
89
+ errors.push(`Failed to remove ${dir}: ${error}`);
90
+ }
91
+ }
92
+ else {
93
+ removed.push(dir); // Dry run - just track what would be removed
94
+ }
95
+ }
96
+ else {
97
+ kept.push(dir); // Keep non-semver directories
98
+ }
99
+ }
100
+ }
101
+ catch (error) {
102
+ throw new Error(`Failed to cleanup deployments in ${parentDir}: ${error instanceof Error ? error.message : String(error)}`);
103
+ }
104
+ return { removed, kept, errors };
105
+ }
106
+ // Private helper methods
107
+ createRedirectHtml(targetUrl) {
108
+ return `<!DOCTYPE html>
109
+ <html lang="en">
110
+ <head>
111
+ <meta charset="UTF-8">
112
+ <meta http-equiv="refresh" content="0; url=${targetUrl}">
113
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
114
+ <title>Redirecting...</title>
115
+ <style>
116
+ body {
117
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
118
+ display: flex;
119
+ align-items: center;
120
+ justify-content: center;
121
+ height: 100vh;
122
+ margin: 0;
123
+ background: #f5f5f5;
124
+ }
125
+ .redirect-message {
126
+ text-align: center;
127
+ padding: 2rem;
128
+ background: white;
129
+ border-radius: 8px;
130
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
131
+ }
132
+ .redirect-message a {
133
+ color: #0066cc;
134
+ text-decoration: none;
135
+ }
136
+ .redirect-message a:hover {
137
+ text-decoration: underline;
138
+ }
139
+ </style>
140
+ </head>
141
+ <body>
142
+ <div class="redirect-message">
143
+ <h1>Redirecting...</h1>
144
+ <p>If you are not redirected automatically, <a href="${targetUrl}">click here</a>.</p>
145
+ </div>
146
+ <script>
147
+ window.location.href = '${targetUrl}';
148
+ </script>
149
+ </body>
150
+ </html>`;
151
+ }
152
+ isSemverDirectory(name) {
153
+ // Check if directory name looks like a semver version
154
+ return /^\d+\.\d+\.\d+/.test(name);
155
+ }
156
+ }
157
+ //# sourceMappingURL=path-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-manager.js","sourceRoot":"","sources":["../../../src/lib/deployment/path-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Git controller for GitHub Actions
3
+ * Provides simple git operations without exposing subprocess details
4
+ */
5
+ import type { $ as ZxDollar } from 'zx';
6
+ export interface GitCommitOptions {
7
+ /**
8
+ * Commit message
9
+ */
10
+ message: string;
11
+ /**
12
+ * Optional commit body for additional details
13
+ */
14
+ body?: string;
15
+ /**
16
+ * Files or patterns to stage (defaults to '.')
17
+ */
18
+ add?: string | string[];
19
+ /**
20
+ * Working directory (defaults to current directory)
21
+ */
22
+ cwd?: string;
23
+ /**
24
+ * Whether to push after committing (defaults to true)
25
+ */
26
+ push?: boolean;
27
+ /**
28
+ * Whether to automatically configure the user to be GitHub (defaults to true)
29
+ */
30
+ autoConfigureUser?: boolean;
31
+ }
32
+ export interface GitController {
33
+ /**
34
+ * Create a commit with the staged changes
35
+ */
36
+ commit(options: GitCommitOptions): Promise<boolean>;
37
+ /**
38
+ * Check if there are any changes (staged or unstaged)
39
+ */
40
+ hasChanges(cwd?: string): Promise<boolean>;
41
+ /**
42
+ * Configure git user for commits
43
+ */
44
+ configureUser(name?: string, email?: string): Promise<void>;
45
+ }
46
+ /**
47
+ * Create a git controller instance
48
+ */
49
+ export declare function createGitController($: typeof ZxDollar): GitController;
50
+ //# sourceMappingURL=git-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-controller.d.ts","sourceRoot":"","sources":["../../../src/lib/github-actions/git-controller.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,CAAC,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAA;AAEvC,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnD;;OAEG;IACH,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C;;OAEG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,QAAQ,GAAG,aAAa,CAgGrE"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Git controller for GitHub Actions
3
+ * Provides simple git operations without exposing subprocess details
4
+ */
5
+ /**
6
+ * Create a git controller instance
7
+ */
8
+ export function createGitController($) {
9
+ const api = {
10
+ async commit(options) {
11
+ const { message, body, add = '.', cwd, push = true, autoConfigureUser = true, } = options;
12
+ const hasChanges = await api.hasChanges('gh-pages');
13
+ if (!hasChanges) {
14
+ console.log('No changes to commit');
15
+ return false;
16
+ }
17
+ if (autoConfigureUser) {
18
+ await api.configureUser();
19
+ }
20
+ try {
21
+ // Stage files
22
+ const filesToAdd = Array.isArray(add) ? add : [add];
23
+ for (const pattern of filesToAdd) {
24
+ if (cwd) {
25
+ await $ `cd ${cwd} && git add ${pattern}`;
26
+ }
27
+ else {
28
+ await $ `git add ${pattern}`;
29
+ }
30
+ }
31
+ // Check if there are changes to commit
32
+ const statusCmd = cwd ? $ `cd ${cwd} && git status --porcelain` : $ `git status --porcelain`;
33
+ const status = await statusCmd;
34
+ if (!status.stdout.trim()) {
35
+ return false; // No changes to commit
36
+ }
37
+ // Build commit message
38
+ let fullMessage = message;
39
+ if (body) {
40
+ fullMessage = `${message}\n\n${body}`;
41
+ }
42
+ // Commit
43
+ if (cwd) {
44
+ await $ `cd ${cwd} && git commit -m ${fullMessage}`;
45
+ }
46
+ else {
47
+ await $ `git commit -m ${fullMessage}`;
48
+ }
49
+ // Push if requested
50
+ if (push) {
51
+ if (cwd) {
52
+ await $ `cd ${cwd} && git push`;
53
+ }
54
+ else {
55
+ await $ `git push`;
56
+ }
57
+ }
58
+ return true;
59
+ }
60
+ catch (error) {
61
+ throw new Error(`Git commit failed: ${error}`);
62
+ }
63
+ },
64
+ async hasChanges(cwd) {
65
+ try {
66
+ const cmd = cwd
67
+ ? $ `cd ${cwd} && git status --porcelain`
68
+ : $ `git status --porcelain`;
69
+ const result = await cmd;
70
+ return result.stdout.trim().length > 0;
71
+ }
72
+ catch (error) {
73
+ throw new Error(`Failed to check git status: ${error}`);
74
+ }
75
+ },
76
+ async configureUser(name, email) {
77
+ try {
78
+ const userName = name || 'github-actions[bot]';
79
+ const userEmail = email || 'github-actions[bot]@users.noreply.github.com';
80
+ await $ `git config user.name ${userName}`;
81
+ await $ `git config user.email ${userEmail}`;
82
+ }
83
+ catch (error) {
84
+ throw new Error(`Failed to configure git user: ${error}`);
85
+ }
86
+ },
87
+ };
88
+ return api;
89
+ }
90
+ //# sourceMappingURL=git-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-controller.js","sourceRoot":"","sources":["../../../src/lib/github-actions/git-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './git-controller.ts';
2
+ export * from './pr-controller.ts';
3
+ export * from './runner.ts';
4
+ export * from './schemas/index.ts';
5
+ export * from './search-module.ts';
6
+ export * from './step.ts';
7
+ //# sourceMappingURL=github-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-actions.d.ts","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,7 @@
1
+ export * from "./git-controller.js";
2
+ export * from "./pr-controller.js";
3
+ export * from "./runner.js";
4
+ export * from "./schemas/index.js";
5
+ export * from "./search-module.js";
6
+ export * from "./step.js";
7
+ //# sourceMappingURL=github-actions.js.map
@@ -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"}