@dylanpiercey/work 0.0.11 → 0.0.13

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 (154) hide show
  1. package/bin/work.mjs +107 -0
  2. package/dist/index.mjs +3 -3
  3. package/dist/public/assets/{_CY9fvXvg.js → _-gyK8vJ-.js} +2 -2
  4. package/dist/public/assets/{_CY9fvXvg.js.map → _-gyK8vJ-.js.map} +1 -1
  5. package/dist/public/assets/{_BGcQuwom.js → _9XtunSg7.js} +2 -2
  6. package/dist/public/assets/{_BGcQuwom.js.map → _9XtunSg7.js.map} +1 -1
  7. package/dist/public/assets/{_COjvApw5.js → _B31BFjeo.js} +2 -2
  8. package/dist/public/assets/{_COjvApw5.js.map → _B31BFjeo.js.map} +1 -1
  9. package/dist/public/assets/{_BUNsdM7N.js → _B4U6RXlg.js} +2 -2
  10. package/dist/public/assets/{_BUNsdM7N.js.map → _B4U6RXlg.js.map} +1 -1
  11. package/dist/public/assets/{_DGzOveRF.js → _B6OKTJ3U.js} +2 -2
  12. package/dist/public/assets/{_DGzOveRF.js.map → _B6OKTJ3U.js.map} +1 -1
  13. package/dist/public/assets/{_CbL7aWfv.js → _B7X9man_.js} +2 -2
  14. package/dist/public/assets/{_CbL7aWfv.js.map → _B7X9man_.js.map} +1 -1
  15. package/dist/public/assets/{_C2iaQ953.js → _B8okAqG-.js} +2 -2
  16. package/dist/public/assets/{_C2iaQ953.js.map → _B8okAqG-.js.map} +1 -1
  17. package/dist/public/assets/{_Dp01MMO42.js → _BCDnEeXi2.js} +2 -2
  18. package/dist/public/assets/{_Dp01MMO42.js.map → _BCDnEeXi2.js.map} +1 -1
  19. package/dist/public/assets/{_AvFmZM6P.js → _BD3GuTLe.js} +2 -2
  20. package/dist/public/assets/{_AvFmZM6P.js.map → _BD3GuTLe.js.map} +1 -1
  21. package/dist/public/assets/{_CNDu3El-.js → _BH3qAqXE.js} +2 -2
  22. package/dist/public/assets/{_CNDu3El-.js.map → _BH3qAqXE.js.map} +1 -1
  23. package/dist/public/assets/{_Dou03otF.js → _BLA94hyL.js} +2 -2
  24. package/dist/public/assets/{_Dou03otF.js.map → _BLA94hyL.js.map} +1 -1
  25. package/dist/public/assets/{_B60B9ttT2.js → _BMK2JGG-2.js} +2 -2
  26. package/dist/public/assets/{_B60B9ttT2.js.map → _BMK2JGG-2.js.map} +1 -1
  27. package/dist/public/assets/{_CaEMsx56.js → _BOMR_lTT.js} +2 -2
  28. package/dist/public/assets/{_CaEMsx56.js.map → _BOMR_lTT.js.map} +1 -1
  29. package/dist/public/assets/{_CG7XKeSB.js → _BP3KIWZr.js} +2 -2
  30. package/dist/public/assets/{_CG7XKeSB.js.map → _BP3KIWZr.js.map} +1 -1
  31. package/dist/public/assets/{_DCcYmQ_s2.js → _BmaVzQYH2.js} +2 -2
  32. package/dist/public/assets/{_DCcYmQ_s2.js.map → _BmaVzQYH2.js.map} +1 -1
  33. package/dist/public/assets/{_DIBiig5O2.js → _BpWV4xDR2.js} +2 -2
  34. package/dist/public/assets/{_DIBiig5O2.js.map → _BpWV4xDR2.js.map} +1 -1
  35. package/dist/public/assets/{_DE0OXEWX.js → _Brh7taK_.js} +2 -2
  36. package/dist/public/assets/{_DE0OXEWX.js.map → _Brh7taK_.js.map} +1 -1
  37. package/dist/public/assets/{_CToEE4-R.js → _BsL8kuCs.js} +2 -2
  38. package/dist/public/assets/{_CToEE4-R.js.map → _BsL8kuCs.js.map} +1 -1
  39. package/dist/public/assets/{_CDE_l3Ah.js → _BtGc54QO.js} +2 -2
  40. package/dist/public/assets/{_CDE_l3Ah.js.map → _BtGc54QO.js.map} +1 -1
  41. package/dist/public/assets/{_K3UNrLtV.js → _BuU3dU-v.js} +2 -2
  42. package/dist/public/assets/{_K3UNrLtV.js.map → _BuU3dU-v.js.map} +1 -1
  43. package/dist/public/assets/{_isfb253p2.js → _Bw-xXnfr2.js} +2 -2
  44. package/dist/public/assets/{_isfb253p2.js.map → _Bw-xXnfr2.js.map} +1 -1
  45. package/dist/public/assets/{_r4jzjyPa2.js → _BzmURZrG2.js} +2 -2
  46. package/dist/public/assets/{_r4jzjyPa2.js.map → _BzmURZrG2.js.map} +1 -1
  47. package/dist/public/assets/{_CL0s7Kya.js → _C0VVn7_H.js} +2 -2
  48. package/dist/public/assets/{_CL0s7Kya.js.map → _C0VVn7_H.js.map} +1 -1
  49. package/dist/public/assets/{_CEW9INI2.js → _CCOa-67I.js} +2 -2
  50. package/dist/public/assets/{_CEW9INI2.js.map → _CCOa-67I.js.map} +1 -1
  51. package/dist/public/assets/{_DTYxR8JQ.js → _CCWd2cbl.js} +2 -2
  52. package/dist/public/assets/{_DTYxR8JQ.js.map → _CCWd2cbl.js.map} +1 -1
  53. package/dist/public/assets/{_DLrpVVOP.js → _CJfh1bA_.js} +2 -2
  54. package/dist/public/assets/{_DLrpVVOP.js.map → _CJfh1bA_.js.map} +1 -1
  55. package/dist/public/assets/{_77Fyk0IZ2.js → _CKHJpMi32.js} +2 -2
  56. package/dist/public/assets/{_77Fyk0IZ2.js.map → _CKHJpMi32.js.map} +1 -1
  57. package/dist/public/assets/{_tY5zLQZp.js → _CLa87tfT.js} +2 -2
  58. package/dist/public/assets/{_tY5zLQZp.js.map → _CLa87tfT.js.map} +1 -1
  59. package/dist/public/assets/{_D69Y468R2.js → _CNPd6AKz2.js} +2 -2
  60. package/dist/public/assets/{_D69Y468R2.js.map → _CNPd6AKz2.js.map} +1 -1
  61. package/dist/public/assets/{_YzHkI38Y2.js → _CTwY-w6f2.js} +2 -2
  62. package/dist/public/assets/{_YzHkI38Y2.js.map → _CTwY-w6f2.js.map} +1 -1
  63. package/dist/public/assets/{_CRfCwzvc.js → _CXQQiNs1.js} +2 -2
  64. package/dist/public/assets/{_CRfCwzvc.js.map → _CXQQiNs1.js.map} +1 -1
  65. package/dist/public/assets/{_BaqI91VC2.js → _Ca6yBPZK2.js} +2 -2
  66. package/dist/public/assets/{_BaqI91VC2.js.map → _Ca6yBPZK2.js.map} +1 -1
  67. package/dist/public/assets/{_ChU_0Gs7.js → _Cm86uuyb.js} +2 -2
  68. package/dist/public/assets/{_ChU_0Gs7.js.map → _Cm86uuyb.js.map} +1 -1
  69. package/dist/public/assets/{_DRFrNohk.js → _CnphyoYq.js} +2 -2
  70. package/dist/public/assets/{_DRFrNohk.js.map → _CnphyoYq.js.map} +1 -1
  71. package/dist/public/assets/{_VdtJ_5pb2.js → _CqX4LQGj2.js} +2 -2
  72. package/dist/public/assets/{_VdtJ_5pb2.js.map → _CqX4LQGj2.js.map} +1 -1
  73. package/dist/public/assets/{_N_MncSgy.js → _Cs2xR5zT.js} +2 -2
  74. package/dist/public/assets/{_N_MncSgy.js.map → _Cs2xR5zT.js.map} +1 -1
  75. package/dist/public/assets/{_BJO73Smt2.js → _Ct7oMGlY2.js} +2 -2
  76. package/dist/public/assets/{_BJO73Smt2.js.map → _Ct7oMGlY2.js.map} +1 -1
  77. package/dist/public/assets/{_DV3zDssv.js → _CvIA8snX.js} +2 -2
  78. package/dist/public/assets/{_DV3zDssv.js.map → _CvIA8snX.js.map} +1 -1
  79. package/dist/public/assets/{_CVbLeR5M.js → _CvPUh_B0.js} +2 -2
  80. package/dist/public/assets/{_CVbLeR5M.js.map → _CvPUh_B0.js.map} +1 -1
  81. package/dist/public/assets/{_DqMqiyah.js → _CxVlY1q1.js} +2 -2
  82. package/dist/public/assets/{_DqMqiyah.js.map → _CxVlY1q1.js.map} +1 -1
  83. package/dist/public/assets/{_Z_ClK8ZW.js → _CypNdMTQ.js} +2 -2
  84. package/dist/public/assets/{_Z_ClK8ZW.js.map → _CypNdMTQ.js.map} +1 -1
  85. package/dist/public/assets/{_CIBWjTJ8.js → _CzGoLHpy.js} +2 -2
  86. package/dist/public/assets/{_CIBWjTJ8.js.map → _CzGoLHpy.js.map} +1 -1
  87. package/dist/public/assets/{_CnYv5yOJ.js → _D0UH-qzF.js} +2 -2
  88. package/dist/public/assets/{_CnYv5yOJ.js.map → _D0UH-qzF.js.map} +1 -1
  89. package/dist/public/assets/{_Db3F1ZqM2.js → _D8DKeNtk2.js} +2 -2
  90. package/dist/public/assets/{_Db3F1ZqM2.js.map → _D8DKeNtk2.js.map} +1 -1
  91. package/dist/public/assets/{_BJIyZxK0.js → _DDtfsPTV.js} +2 -2
  92. package/dist/public/assets/{_BJIyZxK0.js.map → _DDtfsPTV.js.map} +1 -1
  93. package/dist/public/assets/{_BKAMvBgJ.js → _DH0HY4Nr.js} +2 -2
  94. package/dist/public/assets/{_BKAMvBgJ.js.map → _DH0HY4Nr.js.map} +1 -1
  95. package/dist/public/assets/{_BwTiY7vg2.js → _DQxqrF2p2.js} +2 -2
  96. package/dist/public/assets/{_BwTiY7vg2.js.map → _DQxqrF2p2.js.map} +1 -1
  97. package/dist/public/assets/{_BFytbAm5.js → _DU_7z2vs.js} +2 -2
  98. package/dist/public/assets/{_BFytbAm5.js.map → _DU_7z2vs.js.map} +1 -1
  99. package/dist/public/assets/{_CvNx2YfP2.js → _DXjhrVim2.js} +2 -2
  100. package/dist/public/assets/{_CvNx2YfP2.js.map → _DXjhrVim2.js.map} +1 -1
  101. package/dist/public/assets/{_zWA2RsS1.js → _DmaZeTni.js} +2 -2
  102. package/dist/public/assets/{_zWA2RsS1.js.map → _DmaZeTni.js.map} +1 -1
  103. package/dist/public/assets/{_7VADVuOA.js → _DoNipARR.js} +2 -2
  104. package/dist/public/assets/{_7VADVuOA.js.map → _DoNipARR.js.map} +1 -1
  105. package/dist/public/assets/{_YFy-LCwd.js → _Dp25UBl7.js} +2 -2
  106. package/dist/public/assets/{_YFy-LCwd.js.map → _Dp25UBl7.js.map} +1 -1
  107. package/dist/public/assets/{_CAf6rM7T.js → _DrB0wHeE.js} +2 -2
  108. package/dist/public/assets/{_CAf6rM7T.js.map → _DrB0wHeE.js.map} +1 -1
  109. package/dist/public/assets/{_C6p3UjM0.js → _DtW-KREB.js} +2 -2
  110. package/dist/public/assets/{_C6p3UjM0.js.map → _DtW-KREB.js.map} +1 -1
  111. package/dist/public/assets/{_Dy1d23fd2.js → _Dvy34Yg_2.js} +2 -2
  112. package/dist/public/assets/{_Dy1d23fd2.js.map → _Dvy34Yg_2.js.map} +1 -1
  113. package/dist/public/assets/{_tv3y18472.js → _GlOqBOcg2.js} +2 -2
  114. package/dist/public/assets/{_tv3y18472.js.map → _GlOqBOcg2.js.map} +1 -1
  115. package/dist/public/assets/{_C2Swe4f0.js → _Gpz7cA9P.js} +2 -2
  116. package/dist/public/assets/{_C2Swe4f0.js.map → _Gpz7cA9P.js.map} +1 -1
  117. package/dist/public/assets/{_BsE1kvV-2.js → _K6YjF5HA2.js} +2 -2
  118. package/dist/public/assets/{_BsE1kvV-2.js.map → _K6YjF5HA2.js.map} +1 -1
  119. package/dist/public/assets/{_kSqeI-Mv2.js → _LLhMP4fB2.js} +2 -2
  120. package/dist/public/assets/{_kSqeI-Mv2.js.map → _LLhMP4fB2.js.map} +1 -1
  121. package/dist/public/assets/{_DdoBNw7O2.js → _Ne8qEUH82.js} +2 -2
  122. package/dist/public/assets/{_DdoBNw7O2.js.map → _Ne8qEUH82.js.map} +1 -1
  123. package/dist/public/assets/{_Bit2YbJH.js → _RHQKbTNw.js} +2 -2
  124. package/dist/public/assets/{_Bit2YbJH.js.map → _RHQKbTNw.js.map} +1 -1
  125. package/dist/public/assets/{_Dnj_upFW.js → _UABdeDPG.js} +2 -2
  126. package/dist/public/assets/{_Dnj_upFW.js.map → _UABdeDPG.js.map} +1 -1
  127. package/dist/public/assets/{_DWZwPPmf.js → _VdrzhuKU.js} +2 -2
  128. package/dist/public/assets/{_DWZwPPmf.js.map → _VdrzhuKU.js.map} +1 -1
  129. package/dist/public/assets/{_DSiCqz1P2.js → _VpkJ9R4I2.js} +2 -2
  130. package/dist/public/assets/{_DSiCqz1P2.js.map → _VpkJ9R4I2.js.map} +1 -1
  131. package/dist/public/assets/{_DLs3aRaJ.js → __Q8ATTST.js} +2 -2
  132. package/dist/public/assets/{_DLs3aRaJ.js.map → __Q8ATTST.js.map} +1 -1
  133. package/dist/public/assets/{_vIlLN3ua.js → __WU9JTqk.js} +2 -2
  134. package/dist/public/assets/{_vIlLN3ua.js.map → __WU9JTqk.js.map} +1 -1
  135. package/dist/public/assets/{_BZ6_GIpc2.js → _ioxvNBlq2.js} +2 -2
  136. package/dist/public/assets/{_BZ6_GIpc2.js.map → _ioxvNBlq2.js.map} +1 -1
  137. package/dist/public/assets/{_Cay9-_-u.js → _l-4CNi-P.js} +2 -2
  138. package/dist/public/assets/{_Cay9-_-u.js.map → _l-4CNi-P.js.map} +1 -1
  139. package/dist/public/assets/{_HN4GzXai.js → _rdXXJ91o.js} +2 -2
  140. package/dist/public/assets/{_HN4GzXai.js.map → _rdXXJ91o.js.map} +1 -1
  141. package/dist/public/assets/{_CCC02X-42.js → _speyknRe2.js} +2 -2
  142. package/dist/public/assets/{_CCC02X-42.js.map → _speyknRe2.js.map} +1 -1
  143. package/dist/public/assets/{_CdQVpQAM.js → _v0CL1jTB.js} +2 -2
  144. package/dist/public/assets/{_CdQVpQAM.js.map → _v0CL1jTB.js.map} +1 -1
  145. package/dist/public/assets/{_DeeBFErP.js → _vvqUsxvZ.js} +2 -2
  146. package/dist/public/assets/{_DeeBFErP.js.map → _vvqUsxvZ.js.map} +1 -1
  147. package/dist/public/assets/{_BAif6Kkv.js → _wyUUoFip.js} +2 -2
  148. package/dist/public/assets/{_BAif6Kkv.js.map → _wyUUoFip.js.map} +1 -1
  149. package/dist/public/assets/{_JivX8J_W2.js → _xHfOHdoE2.js} +2 -2
  150. package/dist/public/assets/{_JivX8J_W2.js.map → _xHfOHdoE2.js.map} +1 -1
  151. package/dist/public/assets/{index-DW02FbhG.js → index-DMpI1yWM.js} +44 -44
  152. package/dist/public/assets/index-DMpI1yWM.js.map +1 -0
  153. package/package.json +1 -1
  154. package/dist/public/assets/index-DW02FbhG.js.map +0 -1
package/bin/work.mjs CHANGED
@@ -208,7 +208,114 @@ function serviceEnv() {
208
208
  return env;
209
209
  }
210
210
 
211
+ /** True when `cmd` is a work *server* (not `work setup` / `work update`). */
212
+ function isWorkServerCmd(cmd) {
213
+ if (/\bwork(\.mjs)?\s+(setup|update|version)\b/.test(cmd)) return false;
214
+ return (
215
+ /\bwork\.mjs\s+start\b/.test(cmd) ||
216
+ /\bwork\s+start\b/.test(cmd) ||
217
+ /run-prod\.sh/.test(cmd) ||
218
+ /work server is running/.test(cmd) ||
219
+ (/@dylanpiercey\/work\//.test(cmd) && !/\bnpm\b/.test(cmd)) ||
220
+ /\/work\/\S*\/dist\/index\.mjs/.test(cmd)
221
+ );
222
+ }
223
+
224
+ function pidsListening(port) {
225
+ const lsof = spawnSync(
226
+ "lsof",
227
+ ["-nP", `-iTCP:${port}`, "-sTCP:LISTEN", "-t"],
228
+ { encoding: "utf8" },
229
+ );
230
+ if (lsof.stdout) {
231
+ return [
232
+ ...new Set(
233
+ lsof.stdout
234
+ .trim()
235
+ .split(/\s+/)
236
+ .map(Number)
237
+ .filter((n) => n > 1 && n !== process.pid),
238
+ ),
239
+ ];
240
+ }
241
+ const ss = spawnSync("ss", ["-ltnp", `sport = :${port}`], { encoding: "utf8" });
242
+ const pids = [];
243
+ for (const m of (ss.stdout || "").matchAll(/pid=(\d+)/g)) {
244
+ const pid = Number(m[1]);
245
+ if (pid > 1 && pid !== process.pid) pids.push(pid);
246
+ }
247
+ return [...new Set(pids)];
248
+ }
249
+
250
+ function workServerPids() {
251
+ const out = spawnSync("ps", ["-ax", "-o", "pid=,command="], {
252
+ encoding: "utf8",
253
+ });
254
+ const pids = [];
255
+ for (const line of (out.stdout || "").split("\n")) {
256
+ const m = line.trim().match(/^(\d+)\s+(.*)$/);
257
+ if (!m) continue;
258
+ const pid = Number(m[1]);
259
+ if (pid === process.pid || pid === process.ppid) continue;
260
+ if (isWorkServerCmd(m[2])) pids.push(pid);
261
+ }
262
+ return pids;
263
+ }
264
+
265
+ function killPids(pids, signal) {
266
+ for (const pid of pids) {
267
+ try {
268
+ process.kill(pid, signal);
269
+ } catch {}
270
+ }
271
+ }
272
+
273
+ /** Stop the managed service *and* any leftover checkout / `work start`
274
+ * process still bound to the port. A pre-npm install often wasn't the
275
+ * current unit (or was a bare node), so restarting work.service left it
276
+ * sitting in front of the new one. */
277
+ function stopOldCopies(port) {
278
+ log("stopping any previous work server");
279
+ if (process.platform === "darwin") {
280
+ const uid = process.getuid();
281
+ spawnSync("launchctl", ["bootout", `gui/${uid}/dev.work.app`], {
282
+ stdio: "ignore",
283
+ });
284
+ const agents = path.join(os.homedir(), "Library/LaunchAgents");
285
+ try {
286
+ for (const name of fs.readdirSync(agents)) {
287
+ if (!name.endsWith(".plist")) continue;
288
+ const file = path.join(agents, name);
289
+ const text = fs.readFileSync(file, "utf8");
290
+ if (!/dev\.work\.app|work\.mjs|run-prod\.sh|@dylanpiercey\/work/.test(text))
291
+ continue;
292
+ const label = text.match(
293
+ /<key>Label<\/key>\s*<string>([^<]+)<\/string>/,
294
+ )?.[1];
295
+ if (label) {
296
+ spawnSync("launchctl", ["bootout", `gui/${uid}/${label}`], {
297
+ stdio: "ignore",
298
+ });
299
+ }
300
+ }
301
+ } catch {}
302
+ } else if (have("systemctl")) {
303
+ spawnSync("systemctl", ["--user", "stop", "work.service"], {
304
+ stdio: "ignore",
305
+ });
306
+ }
307
+ const seen = new Set([...pidsListening(port), ...workServerPids()]);
308
+ if (seen.size) {
309
+ log(`stopping ${seen.size} leftover work process(es)`);
310
+ killPids(seen, "SIGTERM");
311
+ spawnSync("sleep", ["0.4"], { stdio: "ignore" });
312
+ }
313
+ killPids(pidsListening(port), "SIGKILL");
314
+ }
315
+
211
316
  function installService() {
317
+ const port = serviceEnv().PORT;
318
+ stopOldCopies(port);
212
319
  const cliPath = fileURLToPath(import.meta.url);
213
320
  if (process.platform === "darwin") {
214
321
  const plist = serviceFile();
package/dist/index.mjs CHANGED
@@ -6660,8 +6660,8 @@ var term_default = _template("o", (input) => {
6660
6660
  af: startHold,
6661
6661
  ag: stopHold,
6662
6662
  ah: uploadAsset,
6663
- ak: handlePasted,
6664
- al: pasteClipboard,
6663
+ aj: handlePasted,
6664
+ ak: pasteClipboard,
6665
6665
  ar: $si__input_sessionId && $input_sessionId__closures,
6666
6666
  as: $si__input_onRenameSession && $input_onRenameSession__closures,
6667
6667
  at: $si__input_onCloseSession && $input_onCloseSession__closures,
@@ -21697,4 +21697,4 @@ server.listen(port, () => {
21697
21697
  //#endregion
21698
21698
  export {};
21699
21699
 
21700
- ;var __MARKO_MANIFEST__={"esfPH6H":{"block":[2,"stylesheet#/assets/index-CExZozP4.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/index-CExZozP4.css\"",">"],"defer":[2,"/assets/index-DW02FbhG.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/index-DW02FbhG.js\"","></script>"]}};
21700
+ ;var __MARKO_MANIFEST__={"esfPH6H":{"block":[2,"stylesheet#/assets/index-CExZozP4.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/index-CExZozP4.css\"",">"],"defer":[2,"/assets/index-DMpI1yWM.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/index-DMpI1yWM.js\"","></script>"]}};