@stacksjs/ts-cloud 0.9.3 → 0.10.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 (255) hide show
  1. package/dist/aws/index.js +1 -269
  2. package/dist/bin/chunk-08c0pzkb.js +1 -0
  3. package/dist/bin/chunk-12210qvj.js +1 -0
  4. package/dist/bin/chunk-1v6bt68w.js +6 -0
  5. package/dist/bin/chunk-35ttwn26.js +70 -0
  6. package/dist/bin/chunk-3r3be05z.js +1 -0
  7. package/dist/bin/chunk-41yqpdv7.js +2 -0
  8. package/dist/bin/chunk-5rv31chh.js +1 -0
  9. package/dist/bin/chunk-6eat8ezk.js +2 -0
  10. package/dist/bin/chunk-6gktf2m2.js +1 -0
  11. package/dist/bin/chunk-6zjy949y.js +141 -0
  12. package/dist/bin/chunk-7wzdaqh6.js +2 -0
  13. package/dist/bin/chunk-80ar3aty.js +1 -0
  14. package/dist/bin/chunk-8rwhsp5b.js +2 -0
  15. package/dist/bin/chunk-936vp7dx.js +44 -0
  16. package/dist/bin/chunk-9px3rg4a.js +4 -0
  17. package/dist/bin/chunk-anm3ae6z.js +7364 -0
  18. package/dist/bin/{chunk-ynjvbphf.js → chunk-axvr7dwa.js} +6 -6
  19. package/dist/bin/chunk-b0hj9m5e.js +2 -0
  20. package/dist/bin/{chunk-mh0kdzqp.js → chunk-b2ymh8k0.js} +1 -1
  21. package/dist/bin/chunk-b35989e3.js +50 -0
  22. package/dist/bin/chunk-c2b6nk0q.js +37 -0
  23. package/dist/bin/chunk-ckxpgwxw.js +3 -0
  24. package/dist/bin/chunk-d6zzgvtn.js +92 -0
  25. package/dist/bin/chunk-da8zpf82.js +1 -0
  26. package/dist/bin/chunk-ddmjjstg.js +1 -0
  27. package/dist/bin/chunk-dhhz4zyj.js +1 -0
  28. package/dist/bin/chunk-dj9a67c3.js +9 -0
  29. package/dist/bin/chunk-ds1z880f.js +1 -0
  30. package/dist/bin/chunk-dvkj4k6h.js +111 -0
  31. package/dist/bin/chunk-eh40fpvj.js +1 -0
  32. package/dist/bin/chunk-ey9fagrr.js +6 -0
  33. package/dist/bin/chunk-ezftw2q4.js +1 -0
  34. package/dist/bin/chunk-g6a4n3rh.js +1 -0
  35. package/dist/bin/chunk-g90nqfgv.js +585 -0
  36. package/dist/bin/chunk-gs40j75w.js +1 -0
  37. package/dist/bin/chunk-jjjts1vt.js +1 -0
  38. package/dist/bin/{chunk-ry030a6b.js → chunk-jnsbzqzz.js} +30 -30
  39. package/dist/bin/chunk-jnx4jgw8.js +1 -0
  40. package/dist/bin/chunk-jt1tndm2.js +3 -0
  41. package/dist/bin/chunk-kybdb0ws.js +2 -0
  42. package/dist/bin/chunk-m3nqw76h.js +3 -0
  43. package/dist/bin/chunk-mn6j22zn.js +6 -0
  44. package/dist/bin/chunk-nb0yjkv5.js +2 -0
  45. package/dist/bin/chunk-pjpa4x52.js +2 -0
  46. package/dist/bin/chunk-pkgkfe6s.js +2 -0
  47. package/dist/bin/chunk-pnz5hk8n.js +60 -0
  48. package/dist/bin/chunk-q46zr2tv.js +1 -0
  49. package/dist/bin/chunk-qtdngvs8.js +1 -0
  50. package/dist/bin/chunk-sbejksrh.js +2 -0
  51. package/dist/bin/chunk-svyd4v6c.js +34 -0
  52. package/dist/bin/chunk-tna7ay8d.js +1 -0
  53. package/dist/bin/chunk-tp4c2mv1.js +1 -0
  54. package/dist/bin/chunk-w5d6tr2x.js +1 -0
  55. package/dist/bin/chunk-wewcjam5.js +1 -0
  56. package/dist/bin/chunk-xv4bscrm.js +1 -0
  57. package/dist/bin/chunk-y9eyc5pw.js +1 -0
  58. package/dist/bin/chunk-y9f8649w.js +512 -0
  59. package/dist/bin/cli.js +428 -418
  60. package/dist/bin/dashboard-server.js +1 -1
  61. package/dist/chunk-06jk7ba9.js +7355 -0
  62. package/dist/chunk-0e16qt6k.js +5 -0
  63. package/dist/chunk-13hxhzaz.js +34 -0
  64. package/dist/chunk-2p89vt3b.js +2 -0
  65. package/dist/chunk-77t2ctwn.js +2 -0
  66. package/dist/chunk-88z37ey4.js +114 -0
  67. package/dist/chunk-8c4715hz.js +2 -0
  68. package/dist/chunk-9a22225r.js +60 -0
  69. package/dist/chunk-as6by62d.js +1 -0
  70. package/dist/chunk-cd0zpxhf.js +44 -0
  71. package/dist/chunk-cp54a0qn.js +6 -0
  72. package/dist/chunk-d67xbk4v.js +141 -0
  73. package/dist/chunk-dckz9xve.js +2 -0
  74. package/dist/chunk-e1666vjv.js +2 -0
  75. package/dist/chunk-hhdx5k96.js +442 -0
  76. package/dist/chunk-kv2ztkp4.js +1617 -0
  77. package/dist/chunk-nrz6zypg.js +1 -0
  78. package/dist/chunk-q816js1y.js +1 -0
  79. package/dist/chunk-qh9ep11z.js +704 -0
  80. package/dist/chunk-rg720cqg.js +1 -0
  81. package/dist/chunk-snak8s7m.js +92 -0
  82. package/dist/chunk-vq737g82.js +1 -0
  83. package/dist/chunk-xd6w0c11.js +50 -0
  84. package/dist/chunk-xtwjt370.js +37 -0
  85. package/dist/chunk-y26yh5zp.js +1 -0
  86. package/dist/chunk-zmxffmmq.js +4 -0
  87. package/dist/deploy/attach-credentials.d.ts +4 -8
  88. package/dist/deploy/index.js +1 -168
  89. package/dist/dns/cloudflare.d.ts +27 -0
  90. package/dist/dns/godaddy.d.ts +18 -1
  91. package/dist/dns/index.d.ts +2 -0
  92. package/dist/dns/index.js +1 -41
  93. package/dist/dns/zone-migration.d.ts +92 -0
  94. package/dist/dns/zone-migration.test.d.ts +1 -0
  95. package/dist/drivers/hetzner/driver.d.ts +8 -1
  96. package/dist/drivers/index.js +1 -154
  97. package/dist/drivers/shared/compute-provision.d.ts +14 -2
  98. package/dist/drivers/shared/db-provision.d.ts +3 -2
  99. package/dist/drivers/shared/mail-provision.d.ts +116 -0
  100. package/dist/drivers/shared/mail-provision.test.d.ts +1 -0
  101. package/dist/drivers/shared/managed-services-probe.d.ts +47 -0
  102. package/dist/drivers/shared/managed-services-probe.test.d.ts +1 -0
  103. package/dist/drivers/shared/package-manager.d.ts +1 -0
  104. package/dist/drivers/shared/remote-failure.d.ts +21 -0
  105. package/dist/drivers/shared/remote-failure.test.d.ts +1 -0
  106. package/dist/drivers/shared/sqlite-shared-path.d.ts +50 -0
  107. package/dist/drivers/shared/sqlite-shared-path.test.d.ts +1 -0
  108. package/dist/index.d.ts +2 -0
  109. package/dist/index.js +100 -6129
  110. package/dist/operations/plan.d.ts +136 -0
  111. package/dist/operations/plan.test.d.ts +1 -0
  112. package/dist/operations/server-rename.d.ts +84 -0
  113. package/dist/operations/server-rename.test.d.ts +1 -0
  114. package/dist/operations/site-move.d.ts +263 -0
  115. package/dist/operations/site-move.test.d.ts +1 -0
  116. package/dist/protection/index.js +1 -89
  117. package/dist/push/index.js +1 -509
  118. package/dist/spend/index.js +1 -173
  119. package/dist/ui/404.html +1 -1
  120. package/dist/ui/accept-invitation.html +1 -1
  121. package/dist/ui/access-denied.html +1 -1
  122. package/dist/ui/account/automation.html +5 -5
  123. package/dist/ui/account/security.html +2 -2
  124. package/dist/ui/applications/compose.html +6 -6
  125. package/dist/ui/applications/new.html +2 -2
  126. package/dist/ui/data/backups.html +80 -80
  127. package/dist/ui/data/services.html +78 -78
  128. package/dist/ui/data/volumes.html +50 -50
  129. package/dist/ui/index.html +50 -50
  130. package/dist/ui/infrastructure/topology.html +118 -118
  131. package/dist/ui/integrations.html +1 -1
  132. package/dist/ui/operations/alerts.html +47 -47
  133. package/dist/ui/operations/configuration.html +5 -5
  134. package/dist/ui/operations/jobs.html +76 -76
  135. package/dist/ui/operations/maintenance.html +6 -6
  136. package/dist/ui/operations/observability.html +82 -82
  137. package/dist/ui/operations/previews.html +5 -5
  138. package/dist/ui/operations/queue.html +6 -6
  139. package/dist/ui/operations/regions.html +6 -6
  140. package/dist/ui/operations/releases.html +6 -6
  141. package/dist/ui/operations/spend.html +54 -54
  142. package/dist/ui/operations/workloads.html +104 -104
  143. package/dist/ui/security.html +2 -2
  144. package/dist/ui/server/actions.html +56 -56
  145. package/dist/ui/server/activity.html +1 -1
  146. package/dist/ui/server/capacity.html +6 -6
  147. package/dist/ui/server/database.html +106 -106
  148. package/dist/ui/server/deployments.html +50 -50
  149. package/dist/ui/server/diagnostics.html +2 -2
  150. package/dist/ui/server/firewall.html +76 -76
  151. package/dist/ui/server/fleet.html +34 -34
  152. package/dist/ui/server/logs.html +24 -24
  153. package/dist/ui/server/metrics.html +112 -112
  154. package/dist/ui/server/security.html +1 -1
  155. package/dist/ui/server/services.html +27 -27
  156. package/dist/ui/server/sites.html +120 -120
  157. package/dist/ui/server/ssh-keys.html +51 -51
  158. package/dist/ui/server/team.html +144 -144
  159. package/dist/ui/server/terminal.html +15 -15
  160. package/dist/ui/serverless/alarms.html +52 -52
  161. package/dist/ui/serverless/assets.html +27 -27
  162. package/dist/ui/serverless/cost.html +2 -2
  163. package/dist/ui/serverless/data.html +36 -36
  164. package/dist/ui/serverless/deployments.html +27 -27
  165. package/dist/ui/serverless/firewall.html +1 -1
  166. package/dist/ui/serverless/functions.html +40 -40
  167. package/dist/ui/serverless/logs.html +24 -24
  168. package/dist/ui/serverless/metrics.html +2 -2
  169. package/dist/ui/serverless/queues.html +47 -47
  170. package/dist/ui/serverless/secrets.html +52 -52
  171. package/dist/ui/serverless/traces.html +6 -6
  172. package/dist/ui/serverless.html +54 -54
  173. package/dist/ui-src/src/charts.ts +17499 -12662
  174. package/dist/ui-src/src/topology.ts +2 -2
  175. package/package.json +3 -3
  176. package/dist/bin/chunk-09nwf2gy.js +0 -34
  177. package/dist/bin/chunk-14cwr6eh.js +0 -70
  178. package/dist/bin/chunk-271gk1n2.js +0 -6
  179. package/dist/bin/chunk-38pq971s.js +0 -2
  180. package/dist/bin/chunk-3gykfyq4.js +0 -37
  181. package/dist/bin/chunk-3r4fb59r.js +0 -3
  182. package/dist/bin/chunk-41x17hw1.js +0 -1
  183. package/dist/bin/chunk-4vrqm9h0.js +0 -2
  184. package/dist/bin/chunk-57y1zxbf.js +0 -3
  185. package/dist/bin/chunk-598yf4bs.js +0 -1
  186. package/dist/bin/chunk-8v7ddyvf.js +0 -1
  187. package/dist/bin/chunk-92mea34a.js +0 -1
  188. package/dist/bin/chunk-9pvsff8g.js +0 -1
  189. package/dist/bin/chunk-9v39615t.js +0 -1
  190. package/dist/bin/chunk-avm7tnwe.js +0 -1
  191. package/dist/bin/chunk-ax9mr6wm.js +0 -44
  192. package/dist/bin/chunk-axhnkn5g.js +0 -2
  193. package/dist/bin/chunk-b5gd39s8.js +0 -512
  194. package/dist/bin/chunk-b9qbp8j1.js +0 -1
  195. package/dist/bin/chunk-bz828v8q.js +0 -3
  196. package/dist/bin/chunk-c1vcdgvr.js +0 -1
  197. package/dist/bin/chunk-ctd2vg9w.js +0 -2
  198. package/dist/bin/chunk-dbgffky8.js +0 -1
  199. package/dist/bin/chunk-dwr30vbv.js +0 -1
  200. package/dist/bin/chunk-e3xrwh9z.js +0 -1
  201. package/dist/bin/chunk-fhc6ntvd.js +0 -2
  202. package/dist/bin/chunk-fpm59y25.js +0 -6
  203. package/dist/bin/chunk-fvbxvq6b.js +0 -1
  204. package/dist/bin/chunk-fy8j3y8p.js +0 -92
  205. package/dist/bin/chunk-fz21b57w.js +0 -1
  206. package/dist/bin/chunk-gavvf0pg.js +0 -141
  207. package/dist/bin/chunk-ggn7ax8p.js +0 -4
  208. package/dist/bin/chunk-gpe2prkm.js +0 -1
  209. package/dist/bin/chunk-gqf6jsmy.js +0 -1
  210. package/dist/bin/chunk-h5pa5men.js +0 -2
  211. package/dist/bin/chunk-hm08xdxf.js +0 -2
  212. package/dist/bin/chunk-hzgz13nf.js +0 -1
  213. package/dist/bin/chunk-hzqw8xm5.js +0 -111
  214. package/dist/bin/chunk-j703btc5.js +0 -50
  215. package/dist/bin/chunk-jpjamjey.js +0 -6935
  216. package/dist/bin/chunk-m2zwtapr.js +0 -1
  217. package/dist/bin/chunk-m669wtgr.js +0 -1
  218. package/dist/bin/chunk-mr0atd2s.js +0 -2
  219. package/dist/bin/chunk-ngcyftm2.js +0 -1
  220. package/dist/bin/chunk-p66ptpmr.js +0 -2
  221. package/dist/bin/chunk-p8q9bq9g.js +0 -1
  222. package/dist/bin/chunk-r3kv0vm9.js +0 -6
  223. package/dist/bin/chunk-r9hjwcj9.js +0 -6
  224. package/dist/bin/chunk-rtczra13.js +0 -1
  225. package/dist/bin/chunk-rytk89az.js +0 -60
  226. package/dist/bin/chunk-sgyffpgm.js +0 -581
  227. package/dist/bin/chunk-vek8a0w6.js +0 -1
  228. package/dist/bin/chunk-waayf9ay.js +0 -2
  229. package/dist/bin/chunk-yv9sth30.js +0 -1
  230. package/dist/chunk-01d86gt1.js +0 -1324
  231. package/dist/chunk-050r7ycy.js +0 -46516
  232. package/dist/chunk-1c8dbv57.js +0 -7278
  233. package/dist/chunk-29rse4p1.js +0 -12203
  234. package/dist/chunk-32e7ya18.js +0 -642
  235. package/dist/chunk-4cjrg98a.js +0 -597
  236. package/dist/chunk-50jpda9q.js +0 -371
  237. package/dist/chunk-6a1t7fnq.js +0 -12121
  238. package/dist/chunk-728jvrr0.js +0 -1701
  239. package/dist/chunk-7m60qnc8.js +0 -1762
  240. package/dist/chunk-aa2dkn7b.js +0 -205
  241. package/dist/chunk-d48vtdj4.js +0 -433
  242. package/dist/chunk-f55nkpvb.js +0 -8
  243. package/dist/chunk-fgk8cqew.js +0 -152
  244. package/dist/chunk-he9a874b.js +0 -769
  245. package/dist/chunk-k2yyatfw.js +0 -10
  246. package/dist/chunk-k4px0bnv.js +0 -23
  247. package/dist/chunk-nsgqsmrh.js +0 -1779
  248. package/dist/chunk-q0st3se8.js +0 -42033
  249. package/dist/chunk-qr803fye.js +0 -2122
  250. package/dist/chunk-rds0sy87.js +0 -1771
  251. package/dist/chunk-ttz2ra5j.js +0 -12
  252. package/dist/chunk-v0bahtg2.js +0 -4
  253. package/dist/chunk-va2yd85b.js +0 -200
  254. package/dist/chunk-x9s0cqfx.js +0 -13
  255. package/dist/chunk-zqtpg06c.js +0 -1752
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en" data-theme="dark"><head><meta charset="UTF-8"><meta name="stx-build" content="mszgim4pl4u3mi"><meta name="title" content="stx Project"><meta name="description" content="A website built with stx templating engine"><meta property="og:title" content="stx Project"><meta property="og:description" content="A website built with stx templating engine"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="stx Project"><meta name="twitter:description" content="A website built with stx templating engine"> <script data-stx-runtime src="/_stx/runtime.c696d17a.js"></script> <script data-stx-composables>;(function(){
1
+ <!DOCTYPE html><html lang="en" data-theme="dark"><head><meta charset="UTF-8"><meta name="stx-build" content="mt3hwv4ydcyeyt"><meta name="title" content="stx Project"><meta name="description" content="A website built with stx templating engine"><meta property="og:title" content="stx Project"><meta property="og:description" content="A website built with stx templating engine"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="stx Project"><meta name="twitter:description" content="A website built with stx templating engine"> <script data-stx-runtime src="/_stx/runtime.c696d17a.js"></script> <script data-stx-composables>;(function(){
2
2
  window.__composables = window.__composables || {};
3
3
  var __c = window.__composables;
4
4
  var __stx = window.stx || {};
@@ -156,68 +156,68 @@ function usePolling(task, intervalMs, options = {}) {
156
156
  window[__n] = __c[__n];
157
157
  }
158
158
  })();</script> <meta name="viewport" content="width=device-width, initial-scale=1.0"><title>ts-cloud - Sites</title><link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='3' y='3' width='26' height='26' rx='8' fill='%235a8be0'/%3E%3C/svg%3E"><link rel="preconnect" href="https://fonts.googleapis.com"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet"><link rel="stylesheet" href="/_stx/style.448ab192.css"> <script data-stx-scoped>
159
- function __stx_setup_1787105576668_28() {
159
+ function __stx_setup_1787349785784_27() {
160
160
  const { batch, computed, configureFetch, defineEmits, defineExpose, definePageMeta, defineProps, defineSlots, defineStore, derived, effect, goBack, goForward, inject, invalidateRoute, isDerived, isSignal, navigate, nextTick, onBeforeMount, onBeforeUnmount, onDestroy, onMount, onMounted, onUnmounted, peek, provide, reactive, ref, registerStoresClient, setRouteParams, state, untrack, useAsync, useClickOutside, useColorMode, useCookie, useCounter, useDark, useDebounce, useDebouncedValue, useEventListener, useFetch, useFocus, useHead, useId, useInterval, useLocalStorage, useMediaQuery, useMutation, useOptimistic, usePreferredContrast, usePreferredDark, usePreferredLight, usePreferredReducedMotion, useQuery, useReactiveProp, useRef, useRoute, useRouteParam, useRouteParams, useScrollLock, useSearchParams, useSeoMeta, useSessionStorage, useSlots, useStore, useThrottle, useTimeout, useToggle, useWebSocket, watch, watchEffect, watchMultiple, withDefaults } = window.stx;
161
161
 
162
162
  var initialSites = [{"name":"main","route":"stacksjs.com","href":"https://stacksjs.com","kind":"stacks","runtime":"bun","tls":"https","deploy":"service","root":"/var/www/main/current","branch":"main","status":"live"},{"name":"api","route":"internal","kind":"api","runtime":"bun","tls":"loopback","deploy":"service","root":"/var/www/api/current","branch":"main","status":"live"},{"name":"docs","route":"stacksjs.com/docs","href":"https://stacksjs.com/docs","kind":"bunpress","runtime":"static/bun","tls":"https","deploy":"server static","root":"/var/www/docs","branch":"build artifact","status":"live"}];
163
163
 
164
- var uptime = undefined;
165
- var typed = undefined;
166
- var toggleEdit = undefined;
167
- var tlsTone = undefined;
168
- var siteRows = undefined;
169
- var saveEdit = undefined;
170
- var runOp = undefined;
171
- var refresh = undefined;
172
- var pollingState = undefined;
173
- var pollingError = undefined;
174
- var pending = undefined;
175
- var opShown = undefined;
176
- var opOutput = undefined;
177
- var monitoredAt = undefined;
178
- var monitorSource = undefined;
179
- var monitorSeries = undefined;
180
- var monitorParams = undefined;
181
- var metricSeries = undefined;
182
- var metricPoints = undefined;
183
- var liveSites = undefined;
184
- var latestMetric = undefined;
185
- var lastUpdatedAt = undefined;
186
- var historyPath = undefined;
187
- var fmtUptime = undefined;
188
- var fmtMs = undefined;
189
- var failedSites = undefined;
190
- var editing = undefined;
191
- var editSsl = undefined;
192
- var editRedirects = undefined;
193
- var editPhp = undefined;
194
- var editPayload = undefined;
195
- var editEnv = undefined;
196
- var editDomain = undefined;
197
- var editAliases = undefined;
198
- var confirmVerb = undefined;
199
- var confirmTok = undefined;
200
- var confirmLabel = undefined;
201
- var confirmDanger = undefined;
202
- var cancelOp = undefined;
203
- var canRun = undefined;
204
- var busy = undefined;
205
- var attachedSites = undefined;
206
- var askRemove = undefined;
207
- var askOp = undefined;
208
- var askDeploy = undefined;
209
- var addStart = undefined;
210
- var addSite = undefined;
211
- var addRoot = undefined;
212
- var addPort = undefined;
213
- var addPath = undefined;
214
- var addName = undefined;
215
- var addMsgKind = undefined;
216
- var addMsg = undefined;
217
- var addDomain = undefined;
218
- var addDeploy = undefined;
219
- var addBusy = undefined;
220
164
  var addBuild = undefined;
165
+ var addBusy = undefined;
166
+ var addDeploy = undefined;
167
+ var addDomain = undefined;
168
+ var addMsg = undefined;
169
+ var addMsgKind = undefined;
170
+ var addName = undefined;
171
+ var addPath = undefined;
172
+ var addPort = undefined;
173
+ var addRoot = undefined;
174
+ var addSite = undefined;
175
+ var addStart = undefined;
176
+ var askDeploy = undefined;
177
+ var askOp = undefined;
178
+ var askRemove = undefined;
179
+ var attachedSites = undefined;
180
+ var busy = undefined;
181
+ var canRun = undefined;
182
+ var cancelOp = undefined;
183
+ var confirmDanger = undefined;
184
+ var confirmLabel = undefined;
185
+ var confirmTok = undefined;
186
+ var confirmVerb = undefined;
187
+ var editAliases = undefined;
188
+ var editDomain = undefined;
189
+ var editEnv = undefined;
190
+ var editPayload = undefined;
191
+ var editPhp = undefined;
192
+ var editRedirects = undefined;
193
+ var editSsl = undefined;
194
+ var editing = undefined;
195
+ var failedSites = undefined;
196
+ var fmtMs = undefined;
197
+ var fmtUptime = undefined;
198
+ var historyPath = undefined;
199
+ var lastUpdatedAt = undefined;
200
+ var latestMetric = undefined;
201
+ var liveSites = undefined;
202
+ var metricPoints = undefined;
203
+ var metricSeries = undefined;
204
+ var monitorParams = undefined;
205
+ var monitorSeries = undefined;
206
+ var monitorSource = undefined;
207
+ var monitoredAt = undefined;
208
+ var opOutput = undefined;
209
+ var opShown = undefined;
210
+ var pending = undefined;
211
+ var pollingError = undefined;
212
+ var pollingState = undefined;
213
+ var refresh = undefined;
214
+ var runOp = undefined;
215
+ var saveEdit = undefined;
216
+ var siteRows = undefined;
217
+ var tlsTone = undefined;
218
+ var toggleEdit = undefined;
219
+ var typed = undefined;
220
+ var uptime = undefined;
221
221
  var __stxBundle_8cd5b8618b91 = (function() {
222
222
 
223
223
  var DANGEROUS_OPERATION = /(?:^|:)(?:delete|disable|destroy|purge|remove|restore|rollback|stop)(?::|$)/i;
@@ -512,70 +512,70 @@ async function saveEdit(name) {
512
512
  const verb = payload.ssl === false ? "disable TLS for " + name : "save configuration changes for " + name;
513
513
  askOp("site:edit:" + name, name, verb, null, name, { name, payload, danger: payload.ssl === false });
514
514
  }
515
- return { "uptime": uptime, "typed": typed, "toggleEdit": toggleEdit, "tlsTone": tlsTone, "siteRows": siteRows, "saveEdit": saveEdit, "runOp": runOp, "refresh": refresh, "pollingState": pollingState, "pollingError": pollingError, "pending": pending, "opShown": opShown, "opOutput": opOutput, "monitoredAt": monitoredAt, "monitorSource": monitorSource, "monitorSeries": monitorSeries, "monitorParams": monitorParams, "metricSeries": metricSeries, "metricPoints": metricPoints, "liveSites": liveSites, "latestMetric": latestMetric, "lastUpdatedAt": lastUpdatedAt, "historyPath": historyPath, "fmtUptime": fmtUptime, "fmtMs": fmtMs, "failedSites": failedSites, "editing": editing, "editSsl": editSsl, "editRedirects": editRedirects, "editPhp": editPhp, "editPayload": editPayload, "editEnv": editEnv, "editDomain": editDomain, "editAliases": editAliases, "confirmVerb": confirmVerb, "confirmTok": confirmTok, "confirmLabel": confirmLabel, "confirmDanger": confirmDanger, "cancelOp": cancelOp, "canRun": canRun, "busy": busy, "attachedSites": attachedSites, "askRemove": askRemove, "askOp": askOp, "askDeploy": askDeploy, "addStart": addStart, "addSite": addSite, "addRoot": addRoot, "addPort": addPort, "addPath": addPath, "addName": addName, "addMsgKind": addMsgKind, "addMsg": addMsg, "addDomain": addDomain, "addDeploy": addDeploy, "addBusy": addBusy, "addBuild": addBuild };
515
+ return { "addBuild": addBuild, "addBusy": addBusy, "addDeploy": addDeploy, "addDomain": addDomain, "addMsg": addMsg, "addMsgKind": addMsgKind, "addName": addName, "addPath": addPath, "addPort": addPort, "addRoot": addRoot, "addSite": addSite, "addStart": addStart, "askDeploy": askDeploy, "askOp": askOp, "askRemove": askRemove, "attachedSites": attachedSites, "busy": busy, "canRun": canRun, "cancelOp": cancelOp, "confirmDanger": confirmDanger, "confirmLabel": confirmLabel, "confirmTok": confirmTok, "confirmVerb": confirmVerb, "editAliases": editAliases, "editDomain": editDomain, "editEnv": editEnv, "editPayload": editPayload, "editPhp": editPhp, "editRedirects": editRedirects, "editSsl": editSsl, "editing": editing, "failedSites": failedSites, "fmtMs": fmtMs, "fmtUptime": fmtUptime, "historyPath": historyPath, "lastUpdatedAt": lastUpdatedAt, "latestMetric": latestMetric, "liveSites": liveSites, "metricPoints": metricPoints, "metricSeries": metricSeries, "monitorParams": monitorParams, "monitorSeries": monitorSeries, "monitorSource": monitorSource, "monitoredAt": monitoredAt, "opOutput": opOutput, "opShown": opShown, "pending": pending, "pollingError": pollingError, "pollingState": pollingState, "refresh": refresh, "runOp": runOp, "saveEdit": saveEdit, "siteRows": siteRows, "tlsTone": tlsTone, "toggleEdit": toggleEdit, "typed": typed, "uptime": uptime };
516
516
  })();
517
- uptime = __stxBundle_8cd5b8618b91["uptime"];
518
- typed = __stxBundle_8cd5b8618b91["typed"];
519
- toggleEdit = __stxBundle_8cd5b8618b91["toggleEdit"];
520
- tlsTone = __stxBundle_8cd5b8618b91["tlsTone"];
521
- siteRows = __stxBundle_8cd5b8618b91["siteRows"];
522
- saveEdit = __stxBundle_8cd5b8618b91["saveEdit"];
523
- runOp = __stxBundle_8cd5b8618b91["runOp"];
524
- refresh = __stxBundle_8cd5b8618b91["refresh"];
525
- pollingState = __stxBundle_8cd5b8618b91["pollingState"];
526
- pollingError = __stxBundle_8cd5b8618b91["pollingError"];
527
- pending = __stxBundle_8cd5b8618b91["pending"];
528
- opShown = __stxBundle_8cd5b8618b91["opShown"];
529
- opOutput = __stxBundle_8cd5b8618b91["opOutput"];
530
- monitoredAt = __stxBundle_8cd5b8618b91["monitoredAt"];
531
- monitorSource = __stxBundle_8cd5b8618b91["monitorSource"];
532
- monitorSeries = __stxBundle_8cd5b8618b91["monitorSeries"];
533
- monitorParams = __stxBundle_8cd5b8618b91["monitorParams"];
534
- metricSeries = __stxBundle_8cd5b8618b91["metricSeries"];
535
- metricPoints = __stxBundle_8cd5b8618b91["metricPoints"];
536
- liveSites = __stxBundle_8cd5b8618b91["liveSites"];
537
- latestMetric = __stxBundle_8cd5b8618b91["latestMetric"];
538
- lastUpdatedAt = __stxBundle_8cd5b8618b91["lastUpdatedAt"];
539
- historyPath = __stxBundle_8cd5b8618b91["historyPath"];
540
- fmtUptime = __stxBundle_8cd5b8618b91["fmtUptime"];
541
- fmtMs = __stxBundle_8cd5b8618b91["fmtMs"];
542
- failedSites = __stxBundle_8cd5b8618b91["failedSites"];
543
- editing = __stxBundle_8cd5b8618b91["editing"];
544
- editSsl = __stxBundle_8cd5b8618b91["editSsl"];
545
- editRedirects = __stxBundle_8cd5b8618b91["editRedirects"];
546
- editPhp = __stxBundle_8cd5b8618b91["editPhp"];
547
- editPayload = __stxBundle_8cd5b8618b91["editPayload"];
548
- editEnv = __stxBundle_8cd5b8618b91["editEnv"];
549
- editDomain = __stxBundle_8cd5b8618b91["editDomain"];
550
- editAliases = __stxBundle_8cd5b8618b91["editAliases"];
551
- confirmVerb = __stxBundle_8cd5b8618b91["confirmVerb"];
552
- confirmTok = __stxBundle_8cd5b8618b91["confirmTok"];
553
- confirmLabel = __stxBundle_8cd5b8618b91["confirmLabel"];
554
- confirmDanger = __stxBundle_8cd5b8618b91["confirmDanger"];
555
- cancelOp = __stxBundle_8cd5b8618b91["cancelOp"];
556
- canRun = __stxBundle_8cd5b8618b91["canRun"];
557
- busy = __stxBundle_8cd5b8618b91["busy"];
558
- attachedSites = __stxBundle_8cd5b8618b91["attachedSites"];
559
- askRemove = __stxBundle_8cd5b8618b91["askRemove"];
560
- askOp = __stxBundle_8cd5b8618b91["askOp"];
561
- askDeploy = __stxBundle_8cd5b8618b91["askDeploy"];
562
- addStart = __stxBundle_8cd5b8618b91["addStart"];
563
- addSite = __stxBundle_8cd5b8618b91["addSite"];
564
- addRoot = __stxBundle_8cd5b8618b91["addRoot"];
565
- addPort = __stxBundle_8cd5b8618b91["addPort"];
566
- addPath = __stxBundle_8cd5b8618b91["addPath"];
567
- addName = __stxBundle_8cd5b8618b91["addName"];
568
- addMsgKind = __stxBundle_8cd5b8618b91["addMsgKind"];
569
- addMsg = __stxBundle_8cd5b8618b91["addMsg"];
570
- addDomain = __stxBundle_8cd5b8618b91["addDomain"];
571
- addDeploy = __stxBundle_8cd5b8618b91["addDeploy"];
572
- addBusy = __stxBundle_8cd5b8618b91["addBusy"];
573
517
  addBuild = __stxBundle_8cd5b8618b91["addBuild"];
574
- return { uptime, typed, toggleEdit, tlsTone, siteRows, saveEdit, runOp, refresh, pollingState, pollingError, pending, opShown, opOutput, monitoredAt, monitorSource, monitorSeries, monitorParams, metricSeries, metricPoints, liveSites, latestMetric, lastUpdatedAt, historyPath, fmtUptime, fmtMs, failedSites, editing, editSsl, editRedirects, editPhp, editPayload, editEnv, editDomain, editAliases, confirmVerb, confirmTok, confirmLabel, confirmDanger, cancelOp, canRun, busy, attachedSites, askRemove, askOp, askDeploy, addStart, addSite, addRoot, addPort, addPath, addName, addMsgKind, addMsg, addDomain, addDeploy, addBusy, addBuild, __stxBundle_8cd5b8618b91 };
518
+ addBusy = __stxBundle_8cd5b8618b91["addBusy"];
519
+ addDeploy = __stxBundle_8cd5b8618b91["addDeploy"];
520
+ addDomain = __stxBundle_8cd5b8618b91["addDomain"];
521
+ addMsg = __stxBundle_8cd5b8618b91["addMsg"];
522
+ addMsgKind = __stxBundle_8cd5b8618b91["addMsgKind"];
523
+ addName = __stxBundle_8cd5b8618b91["addName"];
524
+ addPath = __stxBundle_8cd5b8618b91["addPath"];
525
+ addPort = __stxBundle_8cd5b8618b91["addPort"];
526
+ addRoot = __stxBundle_8cd5b8618b91["addRoot"];
527
+ addSite = __stxBundle_8cd5b8618b91["addSite"];
528
+ addStart = __stxBundle_8cd5b8618b91["addStart"];
529
+ askDeploy = __stxBundle_8cd5b8618b91["askDeploy"];
530
+ askOp = __stxBundle_8cd5b8618b91["askOp"];
531
+ askRemove = __stxBundle_8cd5b8618b91["askRemove"];
532
+ attachedSites = __stxBundle_8cd5b8618b91["attachedSites"];
533
+ busy = __stxBundle_8cd5b8618b91["busy"];
534
+ canRun = __stxBundle_8cd5b8618b91["canRun"];
535
+ cancelOp = __stxBundle_8cd5b8618b91["cancelOp"];
536
+ confirmDanger = __stxBundle_8cd5b8618b91["confirmDanger"];
537
+ confirmLabel = __stxBundle_8cd5b8618b91["confirmLabel"];
538
+ confirmTok = __stxBundle_8cd5b8618b91["confirmTok"];
539
+ confirmVerb = __stxBundle_8cd5b8618b91["confirmVerb"];
540
+ editAliases = __stxBundle_8cd5b8618b91["editAliases"];
541
+ editDomain = __stxBundle_8cd5b8618b91["editDomain"];
542
+ editEnv = __stxBundle_8cd5b8618b91["editEnv"];
543
+ editPayload = __stxBundle_8cd5b8618b91["editPayload"];
544
+ editPhp = __stxBundle_8cd5b8618b91["editPhp"];
545
+ editRedirects = __stxBundle_8cd5b8618b91["editRedirects"];
546
+ editSsl = __stxBundle_8cd5b8618b91["editSsl"];
547
+ editing = __stxBundle_8cd5b8618b91["editing"];
548
+ failedSites = __stxBundle_8cd5b8618b91["failedSites"];
549
+ fmtMs = __stxBundle_8cd5b8618b91["fmtMs"];
550
+ fmtUptime = __stxBundle_8cd5b8618b91["fmtUptime"];
551
+ historyPath = __stxBundle_8cd5b8618b91["historyPath"];
552
+ lastUpdatedAt = __stxBundle_8cd5b8618b91["lastUpdatedAt"];
553
+ latestMetric = __stxBundle_8cd5b8618b91["latestMetric"];
554
+ liveSites = __stxBundle_8cd5b8618b91["liveSites"];
555
+ metricPoints = __stxBundle_8cd5b8618b91["metricPoints"];
556
+ metricSeries = __stxBundle_8cd5b8618b91["metricSeries"];
557
+ monitorParams = __stxBundle_8cd5b8618b91["monitorParams"];
558
+ monitorSeries = __stxBundle_8cd5b8618b91["monitorSeries"];
559
+ monitorSource = __stxBundle_8cd5b8618b91["monitorSource"];
560
+ monitoredAt = __stxBundle_8cd5b8618b91["monitoredAt"];
561
+ opOutput = __stxBundle_8cd5b8618b91["opOutput"];
562
+ opShown = __stxBundle_8cd5b8618b91["opShown"];
563
+ pending = __stxBundle_8cd5b8618b91["pending"];
564
+ pollingError = __stxBundle_8cd5b8618b91["pollingError"];
565
+ pollingState = __stxBundle_8cd5b8618b91["pollingState"];
566
+ refresh = __stxBundle_8cd5b8618b91["refresh"];
567
+ runOp = __stxBundle_8cd5b8618b91["runOp"];
568
+ saveEdit = __stxBundle_8cd5b8618b91["saveEdit"];
569
+ siteRows = __stxBundle_8cd5b8618b91["siteRows"];
570
+ tlsTone = __stxBundle_8cd5b8618b91["tlsTone"];
571
+ toggleEdit = __stxBundle_8cd5b8618b91["toggleEdit"];
572
+ typed = __stxBundle_8cd5b8618b91["typed"];
573
+ uptime = __stxBundle_8cd5b8618b91["uptime"];
574
+ return { addBuild, addBusy, addDeploy, addDomain, addMsg, addMsgKind, addName, addPath, addPort, addRoot, addSite, addStart, askDeploy, askOp, askRemove, attachedSites, busy, canRun, cancelOp, confirmDanger, confirmLabel, confirmTok, confirmVerb, editAliases, editDomain, editEnv, editPayload, editPhp, editRedirects, editSsl, editing, failedSites, fmtMs, fmtUptime, historyPath, lastUpdatedAt, latestMetric, liveSites, metricPoints, metricSeries, monitorParams, monitorSeries, monitorSource, monitoredAt, opOutput, opShown, pending, pollingError, pollingState, refresh, runOp, saveEdit, siteRows, tlsTone, toggleEdit, typed, uptime, __stxBundle_8cd5b8618b91 };
575
575
  }
576
- window.__stx_latestSetup=__stx_setup_1787105576668_28;
577
- if(window.stx)window.stx._latestSetup=__stx_setup_1787105576668_28;
578
- </script> <style data-stx-cloak>[x-cloak]{display:none !important}</style><link data-crosswind="generated" rel="stylesheet" href="/_stx/crosswind.906ee17c.css"></head><body data-stx="__stx_setup_1787105576668_28"><a data-stx-scope="stx_scope_nav_36" class="skip-link" href="#main-content">Skip to content</a><button class="nav-toggle-button" type="button" aria-label="Open navigation" aria-controls="primary-navigation" aria-expanded="false"><span></span><span></span><span></span></button><button class="nav-scrim" type="button" aria-label="Close navigation"></button><aside class="app-sidebar" id="primary-navigation" aria-label="Primary navigation"><a class="brand" href="/?env=production"><span class="dot"></span><span>ts-cloud</span></a><div class="sidebar-context"><span class="context-label">Project</span><strong>stacks-production-app</strong></div><div class="environment-picker" aria-label="Environment"><span class="context-label">Environment</span><details><summary class="environment-current production"><span>PROD</span><strong>production</strong></summary></details></div><button class="command-trigger" type="button" aria-keyshortcuts="Meta+K Control+K"><span>Search resources</span><kbd>⌘ K</kbd></button><div class="nav-groups"><section class="nav-group"><h2>Overview</h2><a class="active" href="/?env=production">Dashboard</a><a href="/server/activity?env=production">Activity</a></section><section class="nav-group"><h2>Applications</h2><a class="" href="/server/sites?env=production">Services</a><a class="" href="/server/deployments?env=production">Deployments</a><a class="" href="/server/logs?env=production">Logs</a><a class="" href="/integrations?env=production">Git integrations</a><a class="" href="/applications/new?env=production">Create application</a><a class="" href="/applications/compose?env=production">Compose applications</a></section><section class="nav-group"><h2>Operations</h2><a class="" href="/operations/queue?env=production">Deployment queue</a><a class="" href="/operations/previews?env=production">Preview environments</a><a class="" href="/operations/releases?env=production">Releases & promotion</a><a class="" href="/operations/regions?env=production">Regions & failover</a><a class="" href="/operations/maintenance?env=production">Maintenance & DR</a><a class="" href="/operations/workloads?env=production">Workloads</a><a class="" href="/operations/observability?env=production">Observability</a><a class="" href="/operations/alerts?env=production">Alerts & health</a><a class="" href="/operations/spend?env=production">Spend & budgets</a><a href="/server/metrics?env=production">Metrics</a><a href="/server/services?env=production">Runtime services</a><a class="" href="/operations/jobs?env=production">Workers & schedules</a><a class="" href="/operations/configuration?env=production">Environment &amp; secrets</a><a class="" href="/data/backups?env=production">Backups &amp; recovery</a><a class="" href="/data/volumes?env=production">Persistent volumes</a><a href="/server/actions?env=production">Run operations</a></section><section class="nav-group"><h2>Infrastructure</h2><a class="" href="/infrastructure/topology?env=production">Infrastructure map</a><a class="" href="/data/services?env=production">Data services</a><a class="" href="/data/volumes?env=production">Persistent volumes</a><a href="/server/firewall?env=production">Network & firewall</a><a href="/server/ssh-keys?env=production">SSH keys</a><a class="" href="/server/fleet?env=production">Fleet inventory</a><a class="" href="/server/capacity?env=production">Capacity & placement</a><a href="/security?env=production">Security posture</a><a href="/server/terminal?env=production">Terminal</a></section><section class="nav-group"><h2>Organization</h2><a class="" href="/server/team?env=production">People & access</a><a class="" href="/account/automation?env=production">API & automation</a></section><section class="nav-group"><h2>Account</h2><a class="" href="/account/security?env=production">Sign-in & security</a></section></div><form method="post" action="/api/logout" class="signout"><button type="submit">Sign out</button></form></aside><dialog class="command-palette" aria-labelledby="command-title"><div class="command-search"><span aria-hidden="true">⌕</span><input type="search" placeholder="Search services, domains, deployments…" aria-label="Search resources" autocomplete="off"><button type="button" class="command-close" aria-label="Close search">Esc</button></div><h2 id="command-title" class="sr-only">Search resources and navigation</h2><div class="command-status" role="status">Start typing to search this project.</div><section class="saved-views" aria-labelledby="saved-views-title"><div class="saved-views-heading"><h3 id="saved-views-title">Saved views</h3><form class="save-view-form"><label class="sr-only" for="save-view-name">Saved view name</label><input id="save-view-name" maxlength="64" placeholder="Name this view" autocomplete="off"><button type="submit">Save current filters</button></form></div><div class="saved-view-list"></div></section><form class="tag-result-form"><label for="tag-result-name">Tag selected resource</label><input id="tag-result-name" maxlength="32" placeholder="customer-facing" pattern="[A-Za-z0-9][A-Za-z0-9 -]{0,31}" autocomplete="off"><input class="tag-color" type="color" value="#5a8be0" aria-label="Tag color"><button type="submit">Add tag</button></form><div class="command-results" role="listbox" aria-label="Search results"></div><footer><span>↑ ↓ navigate</span><span>Enter open</span><span>Esc close</span></footer></dialog><div class="context-bar" aria-label="Current scope"><div class="context-path"><div class="context-breadcrumb"><span>stacks-production-app</span><i>/</i><strong>production</strong></div><div class="context-filters" aria-label="Active filters"></div></div><span class="scope-safety production">Production scope</span></div> <script data-stx-scoped data-stx-run="always">
576
+ window.__stx_latestSetup=__stx_setup_1787349785784_27;
577
+ if(window.stx)window.stx._latestSetup=__stx_setup_1787349785784_27;
578
+ </script> <style data-stx-cloak>[x-cloak]{display:none !important}</style><link data-crosswind="generated" rel="stylesheet" href="/_stx/crosswind.906ee17c.css"></head><body data-stx="__stx_setup_1787349785784_27"><a data-stx-scope="stx_scope_nav_37" class="skip-link" href="#main-content">Skip to content</a><button class="nav-toggle-button" type="button" aria-label="Open navigation" aria-controls="primary-navigation" aria-expanded="false"><span></span><span></span><span></span></button><button class="nav-scrim" type="button" aria-label="Close navigation"></button><aside class="app-sidebar" id="primary-navigation" aria-label="Primary navigation"><a class="brand" href="/?env=production"><span class="dot"></span><span>ts-cloud</span></a><div class="sidebar-context"><span class="context-label">Project</span><strong>stacks-production-app</strong></div><div class="environment-picker" aria-label="Environment"><span class="context-label">Environment</span><details><summary class="environment-current production"><span>PROD</span><strong>production</strong></summary></details></div><button class="command-trigger" type="button" aria-keyshortcuts="Meta+K Control+K"><span>Search resources</span><kbd>⌘ K</kbd></button><div class="nav-groups"><section class="nav-group"><h2>Overview</h2><a class="active" href="/?env=production">Dashboard</a><a href="/server/activity?env=production">Activity</a></section><section class="nav-group"><h2>Applications</h2><a class="" href="/server/sites?env=production">Services</a><a class="" href="/server/deployments?env=production">Deployments</a><a class="" href="/server/logs?env=production">Logs</a><a class="" href="/integrations?env=production">Git integrations</a><a class="" href="/applications/new?env=production">Create application</a><a class="" href="/applications/compose?env=production">Compose applications</a></section><section class="nav-group"><h2>Operations</h2><a class="" href="/operations/queue?env=production">Deployment queue</a><a class="" href="/operations/previews?env=production">Preview environments</a><a class="" href="/operations/releases?env=production">Releases & promotion</a><a class="" href="/operations/regions?env=production">Regions & failover</a><a class="" href="/operations/maintenance?env=production">Maintenance & DR</a><a class="" href="/operations/workloads?env=production">Workloads</a><a class="" href="/operations/observability?env=production">Observability</a><a class="" href="/operations/alerts?env=production">Alerts & health</a><a class="" href="/operations/spend?env=production">Spend & budgets</a><a href="/server/metrics?env=production">Metrics</a><a href="/server/services?env=production">Runtime services</a><a class="" href="/operations/jobs?env=production">Workers & schedules</a><a class="" href="/operations/configuration?env=production">Environment &amp; secrets</a><a class="" href="/data/backups?env=production">Backups &amp; recovery</a><a class="" href="/data/volumes?env=production">Persistent volumes</a><a href="/server/actions?env=production">Run operations</a></section><section class="nav-group"><h2>Infrastructure</h2><a class="" href="/infrastructure/topology?env=production">Infrastructure map</a><a class="" href="/data/services?env=production">Data services</a><a class="" href="/data/volumes?env=production">Persistent volumes</a><a href="/server/firewall?env=production">Network & firewall</a><a href="/server/ssh-keys?env=production">SSH keys</a><a class="" href="/server/fleet?env=production">Fleet inventory</a><a class="" href="/server/capacity?env=production">Capacity & placement</a><a href="/security?env=production">Security posture</a><a href="/server/terminal?env=production">Terminal</a></section><section class="nav-group"><h2>Organization</h2><a class="" href="/server/team?env=production">People & access</a><a class="" href="/account/automation?env=production">API & automation</a></section><section class="nav-group"><h2>Account</h2><a class="" href="/account/security?env=production">Sign-in & security</a></section></div><form method="post" action="/api/logout" class="signout"><button type="submit">Sign out</button></form></aside><dialog class="command-palette" aria-labelledby="command-title"><div class="command-search"><span aria-hidden="true">⌕</span><input type="search" placeholder="Search services, domains, deployments…" aria-label="Search resources" autocomplete="off"><button type="button" class="command-close" aria-label="Close search">Esc</button></div><h2 id="command-title" class="sr-only">Search resources and navigation</h2><div class="command-status" role="status">Start typing to search this project.</div><section class="saved-views" aria-labelledby="saved-views-title"><div class="saved-views-heading"><h3 id="saved-views-title">Saved views</h3><form class="save-view-form"><label class="sr-only" for="save-view-name">Saved view name</label><input id="save-view-name" maxlength="64" placeholder="Name this view" autocomplete="off"><button type="submit">Save current filters</button></form></div><div class="saved-view-list"></div></section><form class="tag-result-form"><label for="tag-result-name">Tag selected resource</label><input id="tag-result-name" maxlength="32" placeholder="customer-facing" pattern="[A-Za-z0-9][A-Za-z0-9 -]{0,31}" autocomplete="off"><input class="tag-color" type="color" value="#5a8be0" aria-label="Tag color"><button type="submit">Add tag</button></form><div class="command-results" role="listbox" aria-label="Search results"></div><footer><span>↑ ↓ navigate</span><span>Enter open</span><span>Esc close</span></footer></dialog><div class="context-bar" aria-label="Current scope"><div class="context-path"><div class="context-breadcrumb"><span>stacks-production-app</span><i>/</i><strong>production</strong></div><div class="context-filters" aria-label="Active filters"></div></div><span class="scope-safety production">Production scope</span></div> <script data-stx-scoped data-stx-run="always">
579
579
  (function() {
580
580
  var { batch, computed, configureFetch, defineEmits, defineExpose, definePageMeta, defineProps, defineSlots, defineStore, derived, effect, goBack, goForward, inject, invalidateRoute, isDerived, isSignal, navigate, nextTick, onBeforeMount, onBeforeUnmount, onDestroy, onMount, onMounted, onUnmounted, peek, provide, reactive, ref, refresh, registerStoresClient, setRouteParams, state, untrack, useAsync, useClickOutside, useColorMode, useCookie, useCounter, useDark, useDebounce, useDebouncedValue, useEventListener, useFetch, useFocus, useHead, useId, useInterval, useLocalStorage, useMediaQuery, useMutation, useOptimistic, usePreferredContrast, usePreferredDark, usePreferredLight, usePreferredReducedMotion, useQuery, useReactiveProp, useRef, useRoute, useRouteParam, useRouteParams, useScrollLock, useSearchParams, useSeoMeta, useSessionStorage, useSlots, useStore, useThrottle, useTimeout, useToggle, useWebSocket, watch, watchEffect, watchMultiple, withDefaults } = window.stx;
581
581
  var __destroyHooks = [];
@@ -926,6 +926,6 @@ if(window.stx)window.stx._latestSetup=__stx_setup_1787105576668_28;
926
926
 
927
927
 
928
928
  try { if (typeof __stxScopeRenames !== 'undefined' && __stxScopeRenames) { for (var __stxRK in __stxScopeRenames) __scopeRegistration[__stxRK] = __stxScopeRenames[__stxRK]; } } catch (e) { /* no renames */ }
929
- window.stx._scopes['stx_scope_nav_36'] = __scopeRegistration;
929
+ window.stx._scopes['stx_scope_nav_37'] = __scopeRegistration;
930
930
  })();
931
931
  </script> <div class="wrap"><div class="crumbs"><a href="/">Server</a><span class="sep">/</span> Sites</div><header class="page"><div><h1>Sites</h1><p>Every route discovered on this shared server, including attached projects.</p></div><div class="cmds header-actions" x-cloak><span class="pill" :class="pollingState() === 'live' ? 'ok' : 'warn'" x-cloak>{{ pollingState() }}</span><small x-cloak>{{ lastUpdatedAt()?.toLocaleTimeString() || 'connecting' }}</small><span class="accent cmd">cloud site:add &lt;name&gt;</span></div></header><p class="bad notice" role="status" @show="!!pollingError()" x-cloak>{{ pollingError() }}</p><div class="site-summary"><div class="panel"><span>Routes monitored</span><strong x-cloak>{{ siteRows().length }}</strong><small x-cloak>{{ monitoredAt() ? 'checked ' + new Date(monitoredAt()).toLocaleTimeString() : 'checking now' }}</small></div><div class="panel"><span>Healthy</span><strong class="ok-text" x-cloak>{{ liveSites() }}</strong><small>HTTP probe below 500</small></div><div class="panel"><span>Failed</span><strong :class="failedSites() ? 'bad-text' : ''" x-cloak>{{ failedSites() }}</strong><small>Timeouts and 5xx responses</small></div><div class="panel"><span>Attached projects</span><strong x-cloak>{{ attachedSites() }}</strong><small>Discovered from rpx registry</small></div></div><div class="section"><h2>Add site</h2><div class="panel"><form class="form-grid" @submit.prevent="addSite()"><div class="field-block"><label for="site-add-name">Name</label><input id="site-add-name" placeholder="docs" :value="addName()" @input="addName.set($event.target.value)"></div><div class="field-block"><label for="site-add-root">Root</label><input id="site-add-root" placeholder="dist/docs" :value="addRoot()" @input="addRoot.set($event.target.value)"></div><div class="field-block"><label for="site-add-domain">Domain</label><input id="site-add-domain" placeholder="example.com" :value="addDomain()" @input="addDomain.set($event.target.value)"></div><div class="field-block"><label for="site-add-path">Path</label><input id="site-add-path" placeholder="/docs" :value="addPath()" @input="addPath.set($event.target.value)"></div><div class="field-block"><label for="site-add-deploy">Deploy</label><input id="site-add-deploy" :value="addDeploy()" @input="addDeploy.set($event.target.value)"></div><div class="field-block"><label for="site-add-port">Port</label><input id="site-add-port" placeholder="3000" :value="addPort()" @input="addPort.set($event.target.value)"></div><div class="field-block wide"><label for="site-add-build">Build command</label><input id="site-add-build" placeholder="bun run build" :value="addBuild()" @input="addBuild.set($event.target.value)"></div><div class="field-block wide"><label for="site-add-start">Start command</label><input id="site-add-start" placeholder="bun run start" :value="addStart()" @input="addStart.set($event.target.value)"></div><div class="form-actions"><button class="btn" type="submit" :disabled="addBusy()">Add site</button><span class="msg" :class="addMsgKind()" role="status" x-cloak>{{ addMsg() }}</span></div></form></div></div><template :for="site in siteRows()"><div class="section" x-cloak><h2 x-cloak>{{ site.name }} <span class="more" x-cloak><span class="tag" @show="!!site.project" x-cloak>{{ site.project }}</span><span class="pill" :class="tone(site.status)" x-cloak>{{ site.status }}</span></span></h2><div class="panel site-health"><div><span>HTTP</span><strong x-cloak>{{ site.httpStatus || 'checking' }}</strong><small x-cloak>{{ site.checkedAt ? new Date(site.checkedAt).toLocaleTimeString() : 'probe pending' }}</small></div><div><span>Response time</span><strong x-cloak>{{ fmtMs(site.responseMs ?? latestMetric(site, 'site.response.time')) }}</strong><small>Latest endpoint probe</small></div><div><span>TLS expires</span><strong x-cloak>{{ site.tlsDaysRemaining != null ? site.tlsDaysRemaining + ' days' : 'checking' }}</strong><small x-cloak><span class="pill" :class="tlsTone(site.tlsDaysRemaining)" x-cloak>{{ site.tlsDaysRemaining == null ? 'unknown' : site.tlsDaysRemaining < 30 ? 'renew soon' : 'valid' }}</span></small></div><div><span>24h availability</span><strong x-cloak>{{ fmtUptime(uptime(site)) }}</strong><small x-cloak>{{ metricPoints(site, 'site.health.up').length }} samples</small></div><div class="latency-chart"><span>24h response history</span><svg viewBox="0 0 100 28" preserveAspectRatio="none" role="img" :aria-label="site.name + ' response time history'"><line x1="0" x2="100" y1="25" y2="25"></line><path :d="historyPath(site)"></path></svg><small x-cloak>{{ fmtMs(latestMetric(site, 'site.response.time')) }} latest</small></div></div><div class="cols"><div class="panel"><div class="kv"><span>route</span><b class="mono" x-cloak><a :href="site.href" @show="!!site.href" x-cloak>{{ site.route }}</a><span @show="!site.href" x-cloak>{{ site.route }}</span></b></div><div class="kv"><span>kind</span><b x-cloak><span class="tag" x-cloak>{{ site.kind ?? site.type }}</span></b></div><div class="kv"><span>runtime</span><b class="mono" x-cloak>{{ site.runtime }}</b></div><div class="kv"><span>tls</span><b x-cloak><span class="pill" :class="site.tls === 'https' ? 'ok' : 'warn'" x-cloak>{{ site.tls }}</span></b></div></div><div class="panel"><div class="kv"><span>web root</span><b class="mono" style="font-size:11px" x-cloak>{{ site.root }}</b></div><div class="kv"><span>source</span><b class="mono" x-cloak>{{ site.branch }}</b></div><div class="kv"><span>deploy</span><b x-cloak>{{ site.deploy }}</b></div><div class="kv"><span>ownership</span><b x-cloak>{{ site.managedBy === 'attached' ? 'attached project' : 'server owner' }}</b></div><div class="kv" @show="!!site.release" x-cloak><span>release</span><b class="mono" x-cloak>{{ site.release }}</b></div><div class="kv" @show="!!site.deployedAt" x-cloak><span>deployed</span><b x-cloak>{{ new Date(site.deployedAt).toLocaleString() }}</b></div><div class="kv" @show="site.envKeys && site.envKeys.length" x-cloak><span>env vars</span><b class="mono" x-cloak>{{ (site.envKeys || []).join(', ') }}</b></div><div class="kv" @show="site.aliases && site.aliases.length" x-cloak><span>aliases</span><b class="mono" x-cloak>{{ (site.aliases || []).join(', ') }}</b></div><div class="kv" @show="site.redirects && Object.keys(site.redirects).length" x-cloak><span>redirects</span><b class="mono" x-cloak>{{ Object.keys(site.redirects || {}).length }}</b></div><div class="kv" @show="!!site.shadowedBy" x-cloak><span>shadowed by</span><b class="mono" x-cloak>{{ site.shadowedBy }}</b></div></div></div><div class="row-actions" style="margin-top:12px;"><a class="btn ghost sm" :href="'/operations/workloads?service=' + encodeURIComponent(site.name)">Backing workloads</a><button class="btn sm" type="button" @show="site.managedBy !== 'attached'" @click="askDeploy(site.name)" x-cloak>Deploy</button><button class="btn ghost sm" type="button" @show="site.managedBy !== 'attached'" @click="toggleEdit(site.name)" x-cloak>Edit</button><button class="btn danger sm" type="button" @show="site.managedBy !== 'attached'" :aria-label="'Remove site ' + site.name" @click="askRemove(site.name)" x-cloak>Remove</button></div><p class="note" @show="site.managedBy === 'attached'" x-cloak>This route is managed by the {{ site.project }} project. Deploy and configuration actions belong in that project.</p><form class="form-grid" style="margin-top:14px;" @show="editing() === site.name" @submit.prevent="saveEdit(site.name)" x-cloak><div class="field-block"><label>TLS <select :value="editSsl()" @change="editSsl.set($event.target.value)"><option value="">(unchanged)</option><option value="letsencrypt">letsencrypt</option><option value="false">disable</option></select></label></div><div class="field-block"><label>Domain<input :placeholder="site.domain" :value="editDomain()" @input="editDomain.set($event.target.value)"></label></div><div class="field-block"><label>PHP version <select :value="editPhp()" @change="editPhp.set($event.target.value)"><option value="">(unchanged)</option><option value="8.1">8.1</option><option value="8.2">8.2</option><option value="8.3">8.3</option><option value="8.4">8.4</option></select></label></div><div class="field-block wide"><label>Domain aliases (space or comma separated)<input placeholder="www.example.com, cdn.example.com" :value="editAliases()" @input="editAliases.set($event.target.value)"></label></div><div class="field-block wide"><label>Redirects (from = to per line)<textarea rows="2" placeholder="/old = /new" :value="editRedirects()" @input="editRedirects.set($event.target.value)"></textarea></label></div><div class="field-block wide"><label>Env vars (KEY=value per line)<textarea rows="3" placeholder="NODE_ENV=production" :value="editEnv()" @input="editEnv.set($event.target.value)"></textarea></label></div><div class="form-actions"><button class="btn" type="submit">Save changes</button></div></form></div></template><div class="op-confirm panel" @show="pending() !== null" role="group" aria-labelledby="op-confirm-prompt" x-cloak><span id="op-confirm-prompt" x-cloak>Type <b class="mono" x-cloak>{{ confirmTok() }}</b> to {{ confirmVerb() }}:</span><input data-stx-ref="opConfirmInput" class="op-confirm-input" :value="typed()" @input="typed.set($event.target.value)" @keydown.enter="runOp()" placeholder="confirm" autocomplete="off" aria-labelledby="op-confirm-prompt"><button type="button" class="btn sm" :class="{ danger: confirmDanger() }" :disabled="!canRun()" @click="runOp()" x-cloak>{{ confirmLabel() }}</button><button type="button" class="btn ghost sm" :disabled="busy()" @click="cancelOp()">Cancel</button></div><pre class="action-output op-output" @show="opShown()" aria-live="polite" x-cloak>{{ opOutput() }}</pre></div><style> .site-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px} .site-summary .panel{display:grid;gap:5px;padding:14px 16px} .site-summary span,.site-health>div>span{color:var(--txt3);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:700} .site-summary strong{font-size:24px}.site-summary small{color:var(--txt3);font-size:11px} .ok-text{color:var(--ok)}.bad-text{color:var(--bad)} .site-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(220px,1.6fr);gap:0;padding:0;margin-bottom:14px;overflow:hidden} .site-health>div{display:grid;gap:5px;padding:15px 16px;border-right:1px solid var(--panel-br)} .site-health>div:last-child{border-right:0} .site-health strong{font-size:18px}.site-health small{color:var(--txt3);font-size:11px} .site-health .pill{font-size:10px;padding:2px 7px} .latency-chart svg{width:100%;height:36px}.latency-chart line{stroke:rgba(255,255,255,.08);vector-effect:non-scaling-stroke}.latency-chart path{fill:none;stroke:var(--accent);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke} @media(max-width:1000px){.site-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.site-health{grid-template-columns:repeat(2,minmax(0,1fr))}.site-health>div{border-bottom:1px solid var(--panel-br)}.latency-chart{grid-column:1/-1}} @media(max-width:600px){.site-summary,.site-health{grid-template-columns:1fr}.latency-chart{grid-column:auto}.site-health>div{border-right:0}} </style></body></html>
@@ -1,32 +1,32 @@
1
- <!DOCTYPE html><html lang="en" data-theme="dark"><head><meta charset="UTF-8"><meta name="stx-build" content="mszgim4pl4u3mi"><meta name="title" content="stx Project"><meta name="description" content="A website built with stx templating engine"><meta property="og:title" content="stx Project"><meta property="og:description" content="A website built with stx templating engine"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="stx Project"><meta name="twitter:description" content="A website built with stx templating engine"> <script data-stx-runtime src="/_stx/runtime.c696d17a.js"></script> <script data-stx-composables src="/_stx/chunk.d5301f79.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1.0"><title>ts-cloud - SSH Keys</title><link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='3' y='3' width='26' height='26' rx='8' fill='%235a8be0'/%3E%3C/svg%3E"><link rel="preconnect" href="https://fonts.googleapis.com"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet"><link rel="stylesheet" href="/_stx/style.448ab192.css"> <script data-stx-scoped>
2
- function __stx_setup_1787105576667_27() {
1
+ <!DOCTYPE html><html lang="en" data-theme="dark"><head><meta charset="UTF-8"><meta name="stx-build" content="mt3hwv4ydcyeyt"><meta name="title" content="stx Project"><meta name="description" content="A website built with stx templating engine"><meta property="og:title" content="stx Project"><meta property="og:description" content="A website built with stx templating engine"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="stx Project"><meta name="twitter:description" content="A website built with stx templating engine"> <script data-stx-runtime src="/_stx/runtime.c696d17a.js"></script> <script data-stx-composables src="/_stx/chunk.d5301f79.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1.0"><title>ts-cloud - SSH Keys</title><link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='3' y='3' width='26' height='26' rx='8' fill='%235a8be0'/%3E%3C/svg%3E"><link rel="preconnect" href="https://fonts.googleapis.com"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet"><link rel="stylesheet" href="/_stx/style.448ab192.css"> <script data-stx-scoped>
2
+ function __stx_setup_1787349785782_26() {
3
3
  const { batch, computed, configureFetch, defineEmits, defineExpose, definePageMeta, defineProps, defineSlots, defineStore, derived, effect, goBack, goForward, inject, invalidateRoute, isDerived, isSignal, navigate, nextTick, onBeforeMount, onBeforeUnmount, onDestroy, onMount, onMounted, onUnmounted, peek, provide, reactive, ref, refresh, registerStoresClient, setRouteParams, state, untrack, useAsync, useClickOutside, useColorMode, useCookie, useCounter, useDark, useDebounce, useDebouncedValue, useEventListener, useFetch, useFocus, useHead, useId, useInterval, useLocalStorage, useMediaQuery, useMutation, useOptimistic, usePreferredContrast, usePreferredDark, usePreferredLight, usePreferredReducedMotion, useQuery, useReactiveProp, useRef, useRoute, useRouteParam, useRouteParams, useScrollLock, useSearchParams, useSeoMeta, useSessionStorage, useSlots, useStore, useThrottle, useTimeout, useToggle, useWebSocket, watch, watchEffect, watchMultiple, withDefaults } = window.stx;
4
4
 
5
5
  var initialKeys = [];
6
6
 
7
- var typed = undefined;
8
- var setMessage = undefined;
9
- var runOp = undefined;
10
- var removeKey = undefined;
11
- var pub = undefined;
12
- var pending = undefined;
13
- var opShown = undefined;
14
- var opOutput = undefined;
15
- var name = undefined;
16
- var messageKind = undefined;
17
- var message = undefined;
18
- var load = undefined;
19
- var keys = undefined;
20
- var confirmVerb = undefined;
21
- var confirmTok = undefined;
22
- var confirmLabel = undefined;
23
- var confirmDanger = undefined;
24
- var cancelOp = undefined;
25
- var canRun = undefined;
26
- var busy = undefined;
27
- var askRemove = undefined;
28
- var askOp = undefined;
29
7
  var addKey = undefined;
8
+ var askOp = undefined;
9
+ var askRemove = undefined;
10
+ var busy = undefined;
11
+ var canRun = undefined;
12
+ var cancelOp = undefined;
13
+ var confirmDanger = undefined;
14
+ var confirmLabel = undefined;
15
+ var confirmTok = undefined;
16
+ var confirmVerb = undefined;
17
+ var keys = undefined;
18
+ var load = undefined;
19
+ var message = undefined;
20
+ var messageKind = undefined;
21
+ var name = undefined;
22
+ var opOutput = undefined;
23
+ var opShown = undefined;
24
+ var pending = undefined;
25
+ var pub = undefined;
26
+ var removeKey = undefined;
27
+ var runOp = undefined;
28
+ var setMessage = undefined;
29
+ var typed = undefined;
30
30
  var __stxBundle_fb974bd3e676 = (function() {
31
31
 
32
32
  var DANGEROUS_OPERATION = /(?:^|:)(?:delete|disable|destroy|purge|remove|restore|rollback|stop)(?::|$)/i;
@@ -183,36 +183,36 @@ function askRemove(key) {
183
183
  onMount(() => {
184
184
  load();
185
185
  });
186
- return { "typed": typed, "setMessage": setMessage, "runOp": runOp, "removeKey": removeKey, "pub": pub, "pending": pending, "opShown": opShown, "opOutput": opOutput, "name": name, "messageKind": messageKind, "message": message, "load": load, "keys": keys, "confirmVerb": confirmVerb, "confirmTok": confirmTok, "confirmLabel": confirmLabel, "confirmDanger": confirmDanger, "cancelOp": cancelOp, "canRun": canRun, "busy": busy, "askRemove": askRemove, "askOp": askOp, "addKey": addKey };
186
+ return { "addKey": addKey, "askOp": askOp, "askRemove": askRemove, "busy": busy, "canRun": canRun, "cancelOp": cancelOp, "confirmDanger": confirmDanger, "confirmLabel": confirmLabel, "confirmTok": confirmTok, "confirmVerb": confirmVerb, "keys": keys, "load": load, "message": message, "messageKind": messageKind, "name": name, "opOutput": opOutput, "opShown": opShown, "pending": pending, "pub": pub, "removeKey": removeKey, "runOp": runOp, "setMessage": setMessage, "typed": typed };
187
187
  })();
188
- typed = __stxBundle_fb974bd3e676["typed"];
189
- setMessage = __stxBundle_fb974bd3e676["setMessage"];
190
- runOp = __stxBundle_fb974bd3e676["runOp"];
191
- removeKey = __stxBundle_fb974bd3e676["removeKey"];
192
- pub = __stxBundle_fb974bd3e676["pub"];
193
- pending = __stxBundle_fb974bd3e676["pending"];
194
- opShown = __stxBundle_fb974bd3e676["opShown"];
195
- opOutput = __stxBundle_fb974bd3e676["opOutput"];
196
- name = __stxBundle_fb974bd3e676["name"];
197
- messageKind = __stxBundle_fb974bd3e676["messageKind"];
198
- message = __stxBundle_fb974bd3e676["message"];
199
- load = __stxBundle_fb974bd3e676["load"];
200
- keys = __stxBundle_fb974bd3e676["keys"];
201
- confirmVerb = __stxBundle_fb974bd3e676["confirmVerb"];
202
- confirmTok = __stxBundle_fb974bd3e676["confirmTok"];
203
- confirmLabel = __stxBundle_fb974bd3e676["confirmLabel"];
204
- confirmDanger = __stxBundle_fb974bd3e676["confirmDanger"];
205
- cancelOp = __stxBundle_fb974bd3e676["cancelOp"];
206
- canRun = __stxBundle_fb974bd3e676["canRun"];
207
- busy = __stxBundle_fb974bd3e676["busy"];
208
- askRemove = __stxBundle_fb974bd3e676["askRemove"];
209
- askOp = __stxBundle_fb974bd3e676["askOp"];
210
188
  addKey = __stxBundle_fb974bd3e676["addKey"];
211
- return { typed, setMessage, runOp, removeKey, pub, pending, opShown, opOutput, name, messageKind, message, load, keys, confirmVerb, confirmTok, confirmLabel, confirmDanger, cancelOp, canRun, busy, askRemove, askOp, addKey, __stxBundle_fb974bd3e676 };
189
+ askOp = __stxBundle_fb974bd3e676["askOp"];
190
+ askRemove = __stxBundle_fb974bd3e676["askRemove"];
191
+ busy = __stxBundle_fb974bd3e676["busy"];
192
+ canRun = __stxBundle_fb974bd3e676["canRun"];
193
+ cancelOp = __stxBundle_fb974bd3e676["cancelOp"];
194
+ confirmDanger = __stxBundle_fb974bd3e676["confirmDanger"];
195
+ confirmLabel = __stxBundle_fb974bd3e676["confirmLabel"];
196
+ confirmTok = __stxBundle_fb974bd3e676["confirmTok"];
197
+ confirmVerb = __stxBundle_fb974bd3e676["confirmVerb"];
198
+ keys = __stxBundle_fb974bd3e676["keys"];
199
+ load = __stxBundle_fb974bd3e676["load"];
200
+ message = __stxBundle_fb974bd3e676["message"];
201
+ messageKind = __stxBundle_fb974bd3e676["messageKind"];
202
+ name = __stxBundle_fb974bd3e676["name"];
203
+ opOutput = __stxBundle_fb974bd3e676["opOutput"];
204
+ opShown = __stxBundle_fb974bd3e676["opShown"];
205
+ pending = __stxBundle_fb974bd3e676["pending"];
206
+ pub = __stxBundle_fb974bd3e676["pub"];
207
+ removeKey = __stxBundle_fb974bd3e676["removeKey"];
208
+ runOp = __stxBundle_fb974bd3e676["runOp"];
209
+ setMessage = __stxBundle_fb974bd3e676["setMessage"];
210
+ typed = __stxBundle_fb974bd3e676["typed"];
211
+ return { addKey, askOp, askRemove, busy, canRun, cancelOp, confirmDanger, confirmLabel, confirmTok, confirmVerb, keys, load, message, messageKind, name, opOutput, opShown, pending, pub, removeKey, runOp, setMessage, typed, __stxBundle_fb974bd3e676 };
212
212
  }
213
- window.__stx_latestSetup=__stx_setup_1787105576667_27;
214
- if(window.stx)window.stx._latestSetup=__stx_setup_1787105576667_27;
215
- </script> <style data-stx-cloak>[x-cloak]{display:none !important}</style><link data-crosswind="generated" rel="stylesheet" href="/_stx/crosswind.906ee17c.css"></head><body data-stx="__stx_setup_1787105576667_27"><a data-stx-scope="stx_scope_nav_35" class="skip-link" href="#main-content">Skip to content</a><button class="nav-toggle-button" type="button" aria-label="Open navigation" aria-controls="primary-navigation" aria-expanded="false"><span></span><span></span><span></span></button><button class="nav-scrim" type="button" aria-label="Close navigation"></button><aside class="app-sidebar" id="primary-navigation" aria-label="Primary navigation"><a class="brand" href="/?env=production"><span class="dot"></span><span>ts-cloud</span></a><div class="sidebar-context"><span class="context-label">Project</span><strong>acme-production-app</strong></div><div class="environment-picker" aria-label="Environment"><span class="context-label">Environment</span><details><summary class="environment-current production"><span>PROD</span><strong>production</strong></summary></details></div><button class="command-trigger" type="button" aria-keyshortcuts="Meta+K Control+K"><span>Search resources</span><kbd>⌘ K</kbd></button><div class="nav-groups"><section class="nav-group"><h2>Overview</h2><a class="active" href="/?env=production">Dashboard</a><a href="/server/activity?env=production">Activity</a></section><section class="nav-group"><h2>Applications</h2><a class="" href="/server/sites?env=production">Services</a><a class="" href="/server/deployments?env=production">Deployments</a><a class="" href="/server/logs?env=production">Logs</a><a class="" href="/integrations?env=production">Git integrations</a><a class="" href="/applications/new?env=production">Create application</a><a class="" href="/applications/compose?env=production">Compose applications</a></section><section class="nav-group"><h2>Operations</h2><a class="" href="/operations/queue?env=production">Deployment queue</a><a class="" href="/operations/previews?env=production">Preview environments</a><a class="" href="/operations/releases?env=production">Releases & promotion</a><a class="" href="/operations/regions?env=production">Regions & failover</a><a class="" href="/operations/maintenance?env=production">Maintenance & DR</a><a class="" href="/operations/workloads?env=production">Workloads</a><a class="" href="/operations/observability?env=production">Observability</a><a class="" href="/operations/alerts?env=production">Alerts & health</a><a class="" href="/operations/spend?env=production">Spend & budgets</a><a href="/server/metrics?env=production">Metrics</a><a href="/server/services?env=production">Runtime services</a><a class="" href="/operations/jobs?env=production">Workers & schedules</a><a class="" href="/operations/configuration?env=production">Environment &amp; secrets</a><a class="" href="/data/backups?env=production">Backups &amp; recovery</a><a class="" href="/data/volumes?env=production">Persistent volumes</a><a href="/server/actions?env=production">Run operations</a></section><section class="nav-group"><h2>Infrastructure</h2><a class="" href="/infrastructure/topology?env=production">Infrastructure map</a><a class="" href="/data/services?env=production">Data services</a><a class="" href="/data/volumes?env=production">Persistent volumes</a><a href="/server/firewall?env=production">Network & firewall</a><a href="/server/ssh-keys?env=production">SSH keys</a><a class="" href="/server/fleet?env=production">Fleet inventory</a><a class="" href="/server/capacity?env=production">Capacity & placement</a><a href="/security?env=production">Security posture</a><a href="/server/terminal?env=production">Terminal</a></section><section class="nav-group"><h2>Organization</h2><a class="" href="/server/team?env=production">People & access</a><a class="" href="/account/automation?env=production">API & automation</a></section><section class="nav-group"><h2>Account</h2><a class="" href="/account/security?env=production">Sign-in & security</a></section></div><form method="post" action="/api/logout" class="signout"><button type="submit">Sign out</button></form></aside><dialog class="command-palette" aria-labelledby="command-title"><div class="command-search"><span aria-hidden="true">⌕</span><input type="search" placeholder="Search services, domains, deployments…" aria-label="Search resources" autocomplete="off"><button type="button" class="command-close" aria-label="Close search">Esc</button></div><h2 id="command-title" class="sr-only">Search resources and navigation</h2><div class="command-status" role="status">Start typing to search this project.</div><section class="saved-views" aria-labelledby="saved-views-title"><div class="saved-views-heading"><h3 id="saved-views-title">Saved views</h3><form class="save-view-form"><label class="sr-only" for="save-view-name">Saved view name</label><input id="save-view-name" maxlength="64" placeholder="Name this view" autocomplete="off"><button type="submit">Save current filters</button></form></div><div class="saved-view-list"></div></section><form class="tag-result-form"><label for="tag-result-name">Tag selected resource</label><input id="tag-result-name" maxlength="32" placeholder="customer-facing" pattern="[A-Za-z0-9][A-Za-z0-9 -]{0,31}" autocomplete="off"><input class="tag-color" type="color" value="#5a8be0" aria-label="Tag color"><button type="submit">Add tag</button></form><div class="command-results" role="listbox" aria-label="Search results"></div><footer><span>↑ ↓ navigate</span><span>Enter open</span><span>Esc close</span></footer></dialog><div class="context-bar" aria-label="Current scope"><div class="context-path"><div class="context-breadcrumb"><span>acme-production-app</span><i>/</i><strong>production</strong></div><div class="context-filters" aria-label="Active filters"></div></div><span class="scope-safety production">Production scope</span></div> <script data-stx-scoped data-stx-run="always">
213
+ window.__stx_latestSetup=__stx_setup_1787349785782_26;
214
+ if(window.stx)window.stx._latestSetup=__stx_setup_1787349785782_26;
215
+ </script> <style data-stx-cloak>[x-cloak]{display:none !important}</style><link data-crosswind="generated" rel="stylesheet" href="/_stx/crosswind.906ee17c.css"></head><body data-stx="__stx_setup_1787349785782_26"><a data-stx-scope="stx_scope_nav_35" class="skip-link" href="#main-content">Skip to content</a><button class="nav-toggle-button" type="button" aria-label="Open navigation" aria-controls="primary-navigation" aria-expanded="false"><span></span><span></span><span></span></button><button class="nav-scrim" type="button" aria-label="Close navigation"></button><aside class="app-sidebar" id="primary-navigation" aria-label="Primary navigation"><a class="brand" href="/?env=production"><span class="dot"></span><span>ts-cloud</span></a><div class="sidebar-context"><span class="context-label">Project</span><strong>acme-production-app</strong></div><div class="environment-picker" aria-label="Environment"><span class="context-label">Environment</span><details><summary class="environment-current production"><span>PROD</span><strong>production</strong></summary></details></div><button class="command-trigger" type="button" aria-keyshortcuts="Meta+K Control+K"><span>Search resources</span><kbd>⌘ K</kbd></button><div class="nav-groups"><section class="nav-group"><h2>Overview</h2><a class="active" href="/?env=production">Dashboard</a><a href="/server/activity?env=production">Activity</a></section><section class="nav-group"><h2>Applications</h2><a class="" href="/server/sites?env=production">Services</a><a class="" href="/server/deployments?env=production">Deployments</a><a class="" href="/server/logs?env=production">Logs</a><a class="" href="/integrations?env=production">Git integrations</a><a class="" href="/applications/new?env=production">Create application</a><a class="" href="/applications/compose?env=production">Compose applications</a></section><section class="nav-group"><h2>Operations</h2><a class="" href="/operations/queue?env=production">Deployment queue</a><a class="" href="/operations/previews?env=production">Preview environments</a><a class="" href="/operations/releases?env=production">Releases & promotion</a><a class="" href="/operations/regions?env=production">Regions & failover</a><a class="" href="/operations/maintenance?env=production">Maintenance & DR</a><a class="" href="/operations/workloads?env=production">Workloads</a><a class="" href="/operations/observability?env=production">Observability</a><a class="" href="/operations/alerts?env=production">Alerts & health</a><a class="" href="/operations/spend?env=production">Spend & budgets</a><a href="/server/metrics?env=production">Metrics</a><a href="/server/services?env=production">Runtime services</a><a class="" href="/operations/jobs?env=production">Workers & schedules</a><a class="" href="/operations/configuration?env=production">Environment &amp; secrets</a><a class="" href="/data/backups?env=production">Backups &amp; recovery</a><a class="" href="/data/volumes?env=production">Persistent volumes</a><a href="/server/actions?env=production">Run operations</a></section><section class="nav-group"><h2>Infrastructure</h2><a class="" href="/infrastructure/topology?env=production">Infrastructure map</a><a class="" href="/data/services?env=production">Data services</a><a class="" href="/data/volumes?env=production">Persistent volumes</a><a href="/server/firewall?env=production">Network & firewall</a><a href="/server/ssh-keys?env=production">SSH keys</a><a class="" href="/server/fleet?env=production">Fleet inventory</a><a class="" href="/server/capacity?env=production">Capacity & placement</a><a href="/security?env=production">Security posture</a><a href="/server/terminal?env=production">Terminal</a></section><section class="nav-group"><h2>Organization</h2><a class="" href="/server/team?env=production">People & access</a><a class="" href="/account/automation?env=production">API & automation</a></section><section class="nav-group"><h2>Account</h2><a class="" href="/account/security?env=production">Sign-in & security</a></section></div><form method="post" action="/api/logout" class="signout"><button type="submit">Sign out</button></form></aside><dialog class="command-palette" aria-labelledby="command-title"><div class="command-search"><span aria-hidden="true">⌕</span><input type="search" placeholder="Search services, domains, deployments…" aria-label="Search resources" autocomplete="off"><button type="button" class="command-close" aria-label="Close search">Esc</button></div><h2 id="command-title" class="sr-only">Search resources and navigation</h2><div class="command-status" role="status">Start typing to search this project.</div><section class="saved-views" aria-labelledby="saved-views-title"><div class="saved-views-heading"><h3 id="saved-views-title">Saved views</h3><form class="save-view-form"><label class="sr-only" for="save-view-name">Saved view name</label><input id="save-view-name" maxlength="64" placeholder="Name this view" autocomplete="off"><button type="submit">Save current filters</button></form></div><div class="saved-view-list"></div></section><form class="tag-result-form"><label for="tag-result-name">Tag selected resource</label><input id="tag-result-name" maxlength="32" placeholder="customer-facing" pattern="[A-Za-z0-9][A-Za-z0-9 -]{0,31}" autocomplete="off"><input class="tag-color" type="color" value="#5a8be0" aria-label="Tag color"><button type="submit">Add tag</button></form><div class="command-results" role="listbox" aria-label="Search results"></div><footer><span>↑ ↓ navigate</span><span>Enter open</span><span>Esc close</span></footer></dialog><div class="context-bar" aria-label="Current scope"><div class="context-path"><div class="context-breadcrumb"><span>acme-production-app</span><i>/</i><strong>production</strong></div><div class="context-filters" aria-label="Active filters"></div></div><span class="scope-safety production">Production scope</span></div> <script data-stx-scoped data-stx-run="always">
216
216
  (function() {
217
217
  var { batch, computed, configureFetch, defineEmits, defineExpose, definePageMeta, defineProps, defineSlots, defineStore, derived, effect, goBack, goForward, inject, invalidateRoute, isDerived, isSignal, navigate, nextTick, onBeforeMount, onBeforeUnmount, onDestroy, onMount, onMounted, onUnmounted, peek, provide, reactive, ref, refresh, registerStoresClient, setRouteParams, state, untrack, useAsync, useClickOutside, useColorMode, useCookie, useCounter, useDark, useDebounce, useDebouncedValue, useEventListener, useFetch, useFocus, useHead, useId, useInterval, useLocalStorage, useMediaQuery, useMutation, useOptimistic, usePreferredContrast, usePreferredDark, usePreferredLight, usePreferredReducedMotion, useQuery, useReactiveProp, useRef, useRoute, useRouteParam, useRouteParams, useScrollLock, useSearchParams, useSeoMeta, useSessionStorage, useSlots, useStore, useThrottle, useTimeout, useToggle, useWebSocket, watch, watchEffect, watchMultiple, withDefaults } = window.stx;
218
218
  var __destroyHooks = [];