@gadgetinc/ggt 2.3.0 → 3.0.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 (224) hide show
  1. package/README.md +387 -327
  2. package/dist/action-CF6zatIh.js +64 -0
  3. package/dist/action-CF6zatIh.js.map +1 -0
  4. package/dist/action-CrDCeX3F.js +8 -0
  5. package/dist/action-CrDCeX3F.js.map +1 -0
  6. package/dist/add-Basu3Gyf.js +1 -0
  7. package/dist/agent-plugin-CqgwTOk-.js +15 -0
  8. package/dist/agent-plugin-CqgwTOk-.js.map +1 -0
  9. package/dist/agent-plugin-DU9G5B1d.js +9 -0
  10. package/dist/agent-plugin-DU9G5B1d.js.map +1 -0
  11. package/dist/assert-Bu1E126Z.js +2 -0
  12. package/dist/assert-Bu1E126Z.js.map +1 -0
  13. package/dist/chunk-BjEoQXZ0.js +1 -0
  14. package/dist/collection-C2TCeYqY.js +2 -0
  15. package/dist/collection-C2TCeYqY.js.map +1 -0
  16. package/dist/collection-aM0fpch0.js +1 -0
  17. package/dist/command-2iNTc5dV.js +118 -0
  18. package/dist/command-2iNTc5dV.js.map +1 -0
  19. package/dist/completion-D96nxD5n.js +37 -0
  20. package/dist/completion-D96nxD5n.js.map +1 -0
  21. package/dist/configure-C8ge-2cK.js +15 -0
  22. package/dist/configure-C8ge-2cK.js.map +1 -0
  23. package/dist/debugger-BkYgApKn.js +22 -0
  24. package/dist/debugger-BkYgApKn.js.map +1 -0
  25. package/dist/defaults-B_eD7Pia.js +2 -0
  26. package/dist/defaults-B_eD7Pia.js.map +1 -0
  27. package/dist/deploy-Da6P2HXS.js +15 -0
  28. package/dist/deploy-Da6P2HXS.js.map +1 -0
  29. package/dist/dev-DWMSNcLl.js +32 -0
  30. package/dist/dev-DWMSNcLl.js.map +1 -0
  31. package/dist/dev-lock-BFanZSu1.js +10 -0
  32. package/dist/dev-lock-BFanZSu1.js.map +1 -0
  33. package/dist/directory-CNL03L6c.js +9 -0
  34. package/dist/directory-CNL03L6c.js.map +1 -0
  35. package/dist/env-DoWNvHzW.js +62 -0
  36. package/dist/env-DoWNvHzW.js.map +1 -0
  37. package/dist/esm-B25i6Etq.js +12 -0
  38. package/dist/esm-B25i6Etq.js.map +1 -0
  39. package/dist/esm-CJocZrdd.js +2 -0
  40. package/dist/esm-CJocZrdd.js.map +1 -0
  41. package/dist/eval-BceZMSd5.js +27 -0
  42. package/dist/eval-BceZMSd5.js.map +1 -0
  43. package/dist/execAsync-DrhcEHLd.js +2 -0
  44. package/dist/execAsync-DrhcEHLd.js.map +1 -0
  45. package/dist/filesync-De6asZeR.js +61 -0
  46. package/dist/filesync-De6asZeR.js.map +1 -0
  47. package/dist/getMachineId-bsd-Cch8Z6pV.js +2 -0
  48. package/dist/getMachineId-bsd-Cch8Z6pV.js.map +1 -0
  49. package/dist/getMachineId-darwin-kbQWK54o.js +3 -0
  50. package/dist/getMachineId-darwin-kbQWK54o.js.map +1 -0
  51. package/dist/getMachineId-linux-DdIel6zr.js +2 -0
  52. package/dist/getMachineId-linux-DdIel6zr.js.map +1 -0
  53. package/dist/getMachineId-unsupported-Bvmsh30k.js +2 -0
  54. package/dist/getMachineId-unsupported-Bvmsh30k.js.map +1 -0
  55. package/dist/getMachineId-win-BteHZe8j.js +2 -0
  56. package/dist/getMachineId-win-BteHZe8j.js.map +1 -0
  57. package/dist/ggt-B3HQjQRM.js +3 -0
  58. package/dist/ggt-B3HQjQRM.js.map +1 -0
  59. package/dist/handler-DZyG8Sel.js +4 -0
  60. package/dist/handler-DZyG8Sel.js.map +1 -0
  61. package/dist/http-CY3lPMkt.js +320 -0
  62. package/dist/http-CY3lPMkt.js.map +1 -0
  63. package/dist/indent-string-BVm-4tyL.js +2 -0
  64. package/dist/indent-string-BVm-4tyL.js.map +1 -0
  65. package/dist/list-lQKWZ6ZI.js +10 -0
  66. package/dist/list-lQKWZ6ZI.js.map +1 -0
  67. package/dist/login-Ce0tByNd.js +1 -0
  68. package/dist/logout-_sTWeaiQ.js +5 -0
  69. package/dist/logout-_sTWeaiQ.js.map +1 -0
  70. package/dist/logs-DbhJzz4M.js +9 -0
  71. package/dist/logs-DbhJzz4M.js.map +1 -0
  72. package/dist/main.js +2 -2
  73. package/dist/main.js.map +1 -7
  74. package/dist/model-CBiMKY0P.js +11 -0
  75. package/dist/model-CBiMKY0P.js.map +1 -0
  76. package/dist/ms-B7sMc0pR.js +2 -0
  77. package/dist/ms-B7sMc0pR.js.map +1 -0
  78. package/dist/open-CSsA4B-l.js +38 -0
  79. package/dist/open-CSsA4B-l.js.map +1 -0
  80. package/dist/p-map-DE0acmRv.js +2 -0
  81. package/dist/p-map-DE0acmRv.js.map +1 -0
  82. package/dist/problems-BMLsmxd4.js +11 -0
  83. package/dist/problems-BMLsmxd4.js.map +1 -0
  84. package/dist/prompt-C9nwJW0G.js +2 -0
  85. package/dist/prompt-C9nwJW0G.js.map +1 -0
  86. package/dist/pull-DpizmJGk.js +12 -0
  87. package/dist/pull-DpizmJGk.js.map +1 -0
  88. package/dist/push-67KBCw6c.js +12 -0
  89. package/dist/push-67KBCw6c.js.map +1 -0
  90. package/dist/root-D_UnUsp7.js +28 -0
  91. package/dist/root-D_UnUsp7.js.map +1 -0
  92. package/dist/select-Dey_sjjd.js +4 -0
  93. package/dist/select-Dey_sjjd.js.map +1 -0
  94. package/dist/session-BmzGF1t7.js +2 -0
  95. package/dist/session-BmzGF1t7.js.map +1 -0
  96. package/dist/spinner-BVmbgIil.js +8 -0
  97. package/dist/spinner-BVmbgIil.js.map +1 -0
  98. package/dist/src-DxCC1MV4.js +6 -0
  99. package/dist/src-DxCC1MV4.js.map +1 -0
  100. package/dist/status-P_RFQ7J0.js +13 -0
  101. package/dist/status-P_RFQ7J0.js.map +1 -0
  102. package/dist/subscribeToEnvironmentLogs-CUicaiw_.js +2 -0
  103. package/dist/subscribeToEnvironmentLogs-CUicaiw_.js.map +1 -0
  104. package/dist/sync-json-V52OzeCz.js +112 -0
  105. package/dist/sync-json-V52OzeCz.js.map +1 -0
  106. package/dist/table-MrBbxMay.js +11 -0
  107. package/dist/table-MrBbxMay.js.map +1 -0
  108. package/dist/update-CfxiL08e.js +12 -0
  109. package/dist/update-CfxiL08e.js.map +1 -0
  110. package/dist/update-iyhnL9-M.js +1 -0
  111. package/dist/var-ByWcufFt.js +59 -0
  112. package/dist/var-ByWcufFt.js.map +1 -0
  113. package/dist/version-B_9GB4u3.js +9 -0
  114. package/dist/version-B_9GB4u3.js.map +1 -0
  115. package/dist/whoami-BNcXIfz7.js +5 -0
  116. package/dist/whoami-BNcXIfz7.js.map +1 -0
  117. package/package.json +18 -22
  118. package/assets/favicon-128@4x.png +0 -0
  119. package/dist/add-7MLI3TCY.js +0 -82
  120. package/dist/add-7MLI3TCY.js.map +0 -7
  121. package/dist/agent-plugin-543K6WBH.js +0 -11
  122. package/dist/agent-plugin-543K6WBH.js.map +0 -7
  123. package/dist/chunk-2HJS3KFB.js +0 -2
  124. package/dist/chunk-2HJS3KFB.js.map +0 -7
  125. package/dist/chunk-3WKH3DJL.js +0 -2
  126. package/dist/chunk-3WKH3DJL.js.map +0 -7
  127. package/dist/chunk-577KP32Z.js +0 -8
  128. package/dist/chunk-577KP32Z.js.map +0 -7
  129. package/dist/chunk-6FVHOLT7.js +0 -28
  130. package/dist/chunk-6FVHOLT7.js.map +0 -7
  131. package/dist/chunk-72J7X5LR.js +0 -2
  132. package/dist/chunk-72J7X5LR.js.map +0 -7
  133. package/dist/chunk-7DYQUG5M.js +0 -2
  134. package/dist/chunk-7DYQUG5M.js.map +0 -7
  135. package/dist/chunk-ALSXPCRD.js +0 -118
  136. package/dist/chunk-ALSXPCRD.js.map +0 -7
  137. package/dist/chunk-CNNOPE5K.js +0 -69
  138. package/dist/chunk-CNNOPE5K.js.map +0 -7
  139. package/dist/chunk-ETKWDO4V.js +0 -2
  140. package/dist/chunk-ETKWDO4V.js.map +0 -7
  141. package/dist/chunk-F6BGQ4LG.js +0 -11
  142. package/dist/chunk-F6BGQ4LG.js.map +0 -7
  143. package/dist/chunk-FE5O5VX4.js +0 -2
  144. package/dist/chunk-FE5O5VX4.js.map +0 -7
  145. package/dist/chunk-GFQYFEEH.js +0 -2
  146. package/dist/chunk-GFQYFEEH.js.map +0 -7
  147. package/dist/chunk-GJGBTM5Y.js +0 -2
  148. package/dist/chunk-GJGBTM5Y.js.map +0 -7
  149. package/dist/chunk-GZTHIOXS.js +0 -2
  150. package/dist/chunk-GZTHIOXS.js.map +0 -7
  151. package/dist/chunk-IQSZEOYY.js +0 -283
  152. package/dist/chunk-IQSZEOYY.js.map +0 -7
  153. package/dist/chunk-J232VCIM.js +0 -2
  154. package/dist/chunk-J232VCIM.js.map +0 -7
  155. package/dist/chunk-KKIL22RY.js +0 -2
  156. package/dist/chunk-KKIL22RY.js.map +0 -7
  157. package/dist/chunk-L2XBSR7G.js +0 -2
  158. package/dist/chunk-L2XBSR7G.js.map +0 -7
  159. package/dist/chunk-N5FFICAP.js +0 -9
  160. package/dist/chunk-N5FFICAP.js.map +0 -7
  161. package/dist/chunk-TGCJ6TMW.js +0 -10
  162. package/dist/chunk-TGCJ6TMW.js.map +0 -7
  163. package/dist/chunk-ULJYEUQG.js +0 -113
  164. package/dist/chunk-ULJYEUQG.js.map +0 -7
  165. package/dist/chunk-UVVKKUYG.js +0 -10
  166. package/dist/chunk-UVVKKUYG.js.map +0 -7
  167. package/dist/chunk-WZ2PO6H2.js +0 -11
  168. package/dist/chunk-WZ2PO6H2.js.map +0 -7
  169. package/dist/chunk-X4XSYLCE.js +0 -12
  170. package/dist/chunk-X4XSYLCE.js.map +0 -7
  171. package/dist/chunk-ZYDMXS5R.js +0 -6
  172. package/dist/chunk-ZYDMXS5R.js.map +0 -7
  173. package/dist/configure-PYRXYNGZ.js +0 -12
  174. package/dist/configure-PYRXYNGZ.js.map +0 -7
  175. package/dist/debugger-VKLUEWIN.js +0 -41
  176. package/dist/debugger-VKLUEWIN.js.map +0 -7
  177. package/dist/deploy-JCREEGBA.js +0 -25
  178. package/dist/deploy-JCREEGBA.js.map +0 -7
  179. package/dist/dev-Y2GLI7EH.js +0 -59
  180. package/dist/dev-Y2GLI7EH.js.map +0 -7
  181. package/dist/env-5OPHX3MC.js +0 -135
  182. package/dist/env-5OPHX3MC.js.map +0 -7
  183. package/dist/esm-3JVXH7DT.js +0 -37
  184. package/dist/esm-3JVXH7DT.js.map +0 -7
  185. package/dist/eval-LZPZ6PBQ.js +0 -54
  186. package/dist/eval-LZPZ6PBQ.js.map +0 -7
  187. package/dist/getMachineId-bsd-QUXN4NKS.js +0 -2
  188. package/dist/getMachineId-bsd-QUXN4NKS.js.map +0 -7
  189. package/dist/getMachineId-darwin-TCXBAX22.js +0 -3
  190. package/dist/getMachineId-darwin-TCXBAX22.js.map +0 -7
  191. package/dist/getMachineId-linux-IJ3LYIOX.js +0 -2
  192. package/dist/getMachineId-linux-IJ3LYIOX.js.map +0 -7
  193. package/dist/getMachineId-unsupported-IKXBUCYY.js +0 -2
  194. package/dist/getMachineId-unsupported-IKXBUCYY.js.map +0 -7
  195. package/dist/getMachineId-win-6CX7VSFF.js +0 -2
  196. package/dist/getMachineId-win-6CX7VSFF.js.map +0 -7
  197. package/dist/ggt-KUAF6WUA.js +0 -45
  198. package/dist/ggt-KUAF6WUA.js.map +0 -7
  199. package/dist/list-IANT7SNF.js +0 -11
  200. package/dist/list-IANT7SNF.js.map +0 -7
  201. package/dist/login-TYRZLN5S.js +0 -2
  202. package/dist/login-TYRZLN5S.js.map +0 -7
  203. package/dist/logout-P75XYYZ6.js +0 -7
  204. package/dist/logout-P75XYYZ6.js.map +0 -7
  205. package/dist/logs-SBMD6JSR.js +0 -28
  206. package/dist/logs-SBMD6JSR.js.map +0 -7
  207. package/dist/open-JPAMII4K.js +0 -74
  208. package/dist/open-JPAMII4K.js.map +0 -7
  209. package/dist/problems-EZRSHLZT.js +0 -14
  210. package/dist/problems-EZRSHLZT.js.map +0 -7
  211. package/dist/pull-R3PMBVOT.js +0 -28
  212. package/dist/pull-R3PMBVOT.js.map +0 -7
  213. package/dist/push-5XEEESQQ.js +0 -2
  214. package/dist/push-5XEEESQQ.js.map +0 -7
  215. package/dist/status-RJN5ES6S.js +0 -14
  216. package/dist/status-RJN5ES6S.js.map +0 -7
  217. package/dist/update-X7YS3MNH.js +0 -2
  218. package/dist/update-X7YS3MNH.js.map +0 -7
  219. package/dist/var-PC6KQUPF.js +0 -159
  220. package/dist/var-PC6KQUPF.js.map +0 -7
  221. package/dist/version-GZJOU2CV.js +0 -11
  222. package/dist/version-GZJOU2CV.js.map +0 -7
  223. package/dist/whoami-GKPGPZ3B.js +0 -7
  224. package/dist/whoami-GKPGPZ3B.js.map +0 -7
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js", "../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js", "../node_modules/.pnpm/has-flag@3.0.0/node_modules/has-flag/index.js", "../node_modules/.pnpm/supports-color@5.5.0/node_modules/supports-color/index.js", "../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js", "../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js"],
4
- "sourcesContent": ["\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\nmodule.exports = (flag, argv) => {\n\targv = argv || process.argv;\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst pos = argv.indexOf(prefix + flag);\n\tconst terminatorPos = argv.indexOf('--');\n\treturn pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n", "'use strict';\nconst os = require('os');\nconst hasFlag = require('has-flag');\n\nconst env = process.env;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false')) {\n\tforceColor = false;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n\tforceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(stream) {\n\tif (forceColor === false) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (stream && !stream.isTTY && forceColor !== true) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor ? 1 : 0;\n\n\tif (process.platform === 'win32') {\n\t\t// Node.js 7.5.0 is the first version of Node.js to include a patch to\n\t\t// libuv that enables 256 color output on Windows. Anything earlier and it\n\t\t// won't work. However, here we target Node.js 8 at minimum as it is an LTS\n\t\t// release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows\n\t\t// release that supports 256 colors. Windows 10 build 14931 is the first release\n\t\t// that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(process.versions.node.split('.')[0]) >= 8 &&\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel(process.stdout),\n\tstderr: getSupportLevel(process.stderr)\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n"],
5
- "mappings": "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",
6
- "names": ["require_common", "__commonJSMin", "exports", "module", "init_cjs", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "__name", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "ns", "matchesTemplate", "search", "template", "searchIndex", "templateIndex", "starIndex", "matchIndex", "name", "skip", "require_browser", "__commonJSMin", "exports", "module", "init_cjs", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "m", "__name", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "init_cjs", "flag", "argv", "prefix", "pos", "terminatorPos", "require_supports_color", "__commonJSMin", "exports", "module", "init_cjs", "os", "hasFlag", "env", "forceColor", "translateLevel", "level", "__name", "supportsColor", "stream", "min", "osRelease", "sign", "version", "getSupportLevel", "require_node", "__commonJSMin", "exports", "module", "init_cjs", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "__name", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "init_cjs"]
7
- }
@@ -1,12 +0,0 @@
1
- import{a as i,b as s,c as g}from"./chunk-FE5O5VX4.js";import{b as n}from"./chunk-WZ2PO6H2.js";import"./chunk-F6BGQ4LG.js";import"./chunk-72J7X5LR.js";import"./chunk-X4XSYLCE.js";import{ra as a,ta as r}from"./chunk-ALSXPCRD.js";import{a as o,h as t}from"./chunk-7DYQUG5M.js";t();var c=o(e=>{n({json:e,headers:["Option","Configured Value"],rows:[["telemetry",String(e.telemetry)],["json",String(e.json)]],borders:"thick"})},"printDefaultsConfig"),m=o(e=>a`
2
- Make changes to the configured defaults. This allows you to set an option on every ggt command by default without
3
- needing to set a flag on every command.
4
-
5
- {gray Usage}
6
- ggt configure show
7
-
8
- ggt configure change
9
-
10
- ggt configure clear
11
- `,"usage"),h=o(async(e,f)=>{switch(f._[0]){case"show":c(await s(e,!1));break;case"change":await i(e);break;case"clear":await g(e);break;default:r(m(e));return}},"run");export{h as run,m as usage};
12
- //# sourceMappingURL=configure-PYRXYNGZ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/commands/configure.ts"],
4
- "sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\nimport { clearDefaultsConfig, type DefaultsConfigData, loadDefaultsConfig, promptDefaultsConfig } from \"../services/config/defaults.js\";\nimport { println } from \"../services/output/print.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { printTable } from \"../services/output/table.js\";\n\nconst printDefaultsConfig = (defaults: DefaultsConfigData): void => {\n printTable({\n json: defaults,\n headers: [\"Option\", \"Configured Value\"],\n rows: [\n [\"telemetry\", String(defaults.telemetry)],\n [\"json\", String(defaults.json)],\n ],\n borders: \"thick\",\n });\n};\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n Make changes to the configured defaults. This allows you to set an option on every ggt command by default without\n needing to set a flag on every command.\n\n {gray Usage}\n ggt configure show\n \n ggt configure change\n \n ggt configure clear\n `;\n};\n\nexport const run: Run = async (ctx, args): Promise<void> => {\n switch (args._[0]) {\n case \"show\":\n printDefaultsConfig(await loadDefaultsConfig(ctx, false));\n break;\n case \"change\":\n await promptDefaultsConfig(ctx);\n break;\n case \"clear\":\n await clearDefaultsConfig(ctx);\n break;\n default:\n println(usage(ctx));\n return;\n }\n};\n"],
5
- "mappings": "kRAAAA,IAMA,IAAMC,EAAsBC,EAACC,GAAuC,CAClEC,EAAW,CACT,KAAMD,EACN,QAAS,CAAC,SAAU,kBAAkB,EACtC,KAAM,CACJ,CAAC,YAAa,OAAOA,EAAS,SAAS,CAAC,EACxC,CAAC,OAAQ,OAAOA,EAAS,IAAI,CAAC,CAChC,EACA,QAAS,OACX,CAAC,CACH,EAV4B,uBAYfE,EAAeH,EAACI,GACpBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADmB,SAcfC,EAAWN,EAAA,MAAOO,EAAKC,IAAwB,CAC1D,OAAQA,EAAK,EAAE,CAAC,EAAG,CACjB,IAAK,OACHT,EAAoB,MAAMU,EAAmBF,EAAK,EAAK,CAAC,EACxD,MACF,IAAK,SACH,MAAMG,EAAqBH,CAAG,EAC9B,MACF,IAAK,QACH,MAAMI,EAAoBJ,CAAG,EAC7B,MACF,QACEK,EAAQT,EAAMI,CAAG,CAAC,EAClB,MACJ,CACF,EAfwB",
6
- "names": ["init_cjs", "printDefaultsConfig", "__name", "defaults", "printTable", "usage", "_ctx", "sprint", "run", "ctx", "args", "loadDefaultsConfig", "promptDefaultsConfig", "clearDefaultsConfig", "println"]
7
- }
@@ -1,41 +0,0 @@
1
- import{b as H}from"./chunk-577KP32Z.js";import{p as U,q as T,u as E}from"./chunk-ULJYEUQG.js";import"./chunk-2HJS3KFB.js";import"./chunk-F6BGQ4LG.js";import"./chunk-ZYDMXS5R.js";import{$ as A,K as D,L as p,M as W,d as $,da as M}from"./chunk-IQSZEOYY.js";import"./chunk-GZTHIOXS.js";import{c as h}from"./chunk-72J7X5LR.js";import"./chunk-X4XSYLCE.js";import{b as u,ha as P,ra as f,ta as d}from"./chunk-ALSXPCRD.js";import"./chunk-GFQYFEEH.js";import{a as c,h as I}from"./chunk-7DYQUG5M.js";I();import{randomUUID as V}from"node:crypto";import{existsSync as l,mkdirSync as N,readFileSync as b,writeFileSync as J}from"node:fs";import{createServer as q}from"node:http";import y from"node:path";import B,{nextTick as G}from"node:process";var L="Starting ggt debugger",j="ggt debugger running on",ue={...U,...A,"--port":{type:Number,alias:["-p"]},"--configure":{type:String}},m=["vscode","cursor"],he=c(r=>f`
2
- Start a Chrome DevTools Protocol proxy server that connects to the Gadget debugger.
3
- This allows you to debug your Gadget app using VS Code, Chrome DevTools, or any other
4
- CDP-compatible debugger client.
5
-
6
- {gray Usage}
7
- $ ggt debugger [DIRECTORY] [options]
8
-
9
- DIRECTORY: The directory containing your Gadget app (default: current directory)
10
-
11
- {gray Options}
12
- -a, --app <app_name> Selects the app to debug. Defaults to the app synced to the current directory, if there is one.
13
- -e, --env <env_name> Selects the environment to debug. Defaults to the environment synced to the current directory, if there is one.
14
- -p, --port <port> Local port for the inspector proxy (default: 9229)
15
- --configure <editor> Configure debugger for ${m.join(", ")}
16
-
17
- {gray Examples}
18
- start debugger proxy for current environment
19
- {cyanBright $ ggt debugger}
20
-
21
- use a custom port
22
- {cyanBright $ ggt debugger --port 9230}
23
-
24
- debug a specific app and environment
25
- {cyanBright $ ggt debugger --app myApp --env development}
26
-
27
- configure VS Code debugger
28
- {cyanBright $ ggt debugger --configure vscode}
29
- `,"usage"),pe=c(async(r,e)=>{let t=await E(e._[0]||B.cwd()),n=await T.load(r,{command:"debugger",args:e,directory:t});if(e["--configure"]){let g=e["--configure"].toLowerCase();if(!m.includes(g))throw new Error(`Invalid editor "${e["--configure"]}". Supported editors: ${m.join(", ")}`);let _=new v(t.path),O=e["--port"]??9229;_.configure(O),d({ensureEmptyLineAbove:!0,content:u.green(`${h.tick} Configured ${g} debugger`)}),d({content:f`
30
- Added configuration to:
31
- • ${_.launchJsonPath}
32
- • ${_.tasksJsonPath}
33
-
34
- You can now start debugging by running the "Gadget debugger" launch configuration.
35
- `});return}let o=H(`${L} for ${n.environment.name} environment`);r.log.info("debugger command started"),r.log.trace("sync json loaded",{app:n.environment.application.slug,environment:n.environment.name});let i=D(r),s=e["--port"]??9229,a=V();new v(t.path).hasLaunchConfiguration()||(r.log.warn("vscode/cursor debugger configuration not found"),d({ensureEmptyLineAbove:!0,content:u.yellow(`\u26A0 Gadget debugger not configured. Run "${u.bold(`ggt debugger --configure ${m[0]}`)}" to set up.`)}));let R=new S(r,{appIdentity:n,authHeaders:i,sessionId:a,port:s});try{await R.start(),o.succeed(),d({ensureEmptyLineAbove:!0,content:u.green(`${h.tick} ${j} ws://localhost:${s}/${a}`)}),d({content:u.gray("Press Ctrl+C to stop")}),await new Promise(g=>{r.onAbort(()=>{r.log.info("abort signal received"),g()})}),R.stop(),d({ensureEmptyLineAbove:!0,content:`${h.tick} Proxy server stopped`})}catch(g){r.log.error("debugger command failed",{error:g}),await $(r,g)}},"run"),S=class{static{c(this,"DebuggerProxy")}_ctx;_appIdentity;_authHeaders;_sessionId;_port;_subdomain;_httpServer;_wsServer;_sessionManager;constructor(e,t){this._ctx=e,this._appIdentity=t.appIdentity,this._authHeaders=t.authHeaders,this._sessionId=t.sessionId,this._port=t.port,this._subdomain=this._buildSubdomain()}async start(){this._sessionManager=new C(this._ctx),this._httpServer=this._createHttpServer(),this._wsServer=new W.default({noServer:!0}),this._httpServer.on("upgrade",(e,t,n)=>{this._handleUpgrade(e,t,n)}),await this._listen()}stop(){this._ctx.log.debug("shutting down proxy server"),this._wsServer?.close(),this._httpServer?.close(),this._ctx.log.info("proxy server stopped")}_buildSubdomain(){let{application:e,name:t,type:n}=this._appIdentity.environment;return n==="production"?e.slug:`${e.slug}--${t}`}_createHttpServer(){return q((e,t)=>{let n=new URL(e.url??"/",`http://${e.headers.host}`);this._ctx.log.trace("debugger proxy http request received",{method:e.method,rUrl:e.url,urlPathname:n.pathname,url:n.toString()});try{n.pathname==="/json/version"?this._handleVersionRequest(t):n.pathname==="/json/list"?this._handleListRequest(t):this._handleNotFound(t,n)}catch(o){this._handleError(t,o)}})}_handleVersionRequest(e){let t={"Protocol-Version":"1.1",Browser:`node.js/${this._appIdentity.environment.nodeVersion}`};this._ctx.log.trace("debugger proxy http version request payload",{payload:t}),e.setHeader("Content-Type","application/json"),e.end(JSON.stringify(t))}_handleListRequest(e){let t=[{id:this._sessionId,type:"node",title:"ggt debugger",description:`authenticated CDP proxy to current sandbox process for ${this._appIdentity.environment.application.slug}@${this._appIdentity.environment.name}`,faviconUrl:"https://assets.gadget.dev/assets/environment/dev/favicon-32.png",webSocketDebuggerUrl:`ws://127.0.0.1:${this._port}/${this._sessionId}`}];this._ctx.log.trace("debugger proxy http list request payload",{payload:t}),e.setHeader("Content-Type","application/json"),e.end(JSON.stringify(t))}_handleNotFound(e,t){this._ctx.log.warn("debugger proxy http request not found",{url:t.toString()}),e.statusCode=404,e.end("Not Found")}_handleError(e,t){this._ctx.log.error("error handling debugger proxy http request",{error:t}),e.statusCode=500,e.end("Internal Server Error")}_handleUpgrade(e,t,n){if(!this._sessionManager||!this._wsServer){t.destroy();return}let o=new URL(e.url??"/",`http://${e.headers.host}`);if(this._ctx.log.trace("debugger proxy websocket upgrade request received",{url:e.url,isConnecting:this._sessionManager.isConnecting,hasActiveConnection:this._sessionManager.hasActiveConnection}),o.pathname!==`/${this._sessionId}`){t.destroy();return}if(this._sessionManager.hasActiveConnection||this._sessionManager.isConnecting){this._ctx.log.debug("rejecting upgrade request",{hasActiveConnection:this._sessionManager.hasActiveConnection,isConnecting:this._sessionManager.isConnecting}),this._rejectUpgrade(t);return}this._sessionManager.clearStaleConnection(),this._acceptUpgrade(e,t,n)}_rejectUpgrade(e){e.write(`HTTP/1.1 409 Another debugger session is already running for this environment\r
36
- Connection: close\r
37
- \r
38
- `),e.destroy()}_acceptUpgrade(e,t,n){!this._wsServer||!this._sessionManager||this._wsServer.handleUpgrade(e,t,n,o=>{this._ctx.log.info("client websocket upgraded, establishing remote connection"),this._handleClientConnection(o)})}async _handleClientConnection(e){if(!this._sessionManager)return;let t=new x(this._ctx,e,this._sessionManager);try{let n=await this._establishRemoteConnection();t.connectToRemote(n),this._sessionManager.setActiveConnection(e)}catch(n){this._ctx.log.error("error establishing remote debugger connection",{error:n}),t.closeWithError("Failed to establish remote debugger connection")}}async _establishRemoteConnection(){let e=await M({context:{ctx:this._ctx},method:"POST",url:`https://${this._subdomain}.${P.domains.app}/edit/api/debugger/start-session`,headers:{...this._authHeaders,"x-gadget-debugger-session-id":this._sessionId},responseType:"json",resolveBodyOnly:!0});return this._ctx.log.debug("debugger session created",{session:e}),await new w(this._ctx,{wsUrl:e.wsUrl,sessionId:this._sessionId,authHeaders:this._authHeaders}).connect()}async _listen(){this._httpServer&&await new Promise((e,t)=>{let n=this._httpServer;if(!n){t(new Error("HTTP server is not initialized"));return}n.listen(this._port,"127.0.0.1",()=>{this._ctx.log.info("debugger proxy server listening",{port:this._port}),e()}),n.on("error",t)})}},C=class{static{c(this,"DebuggerSessionManager")}_ctx;_activeConnection;_isConnecting=!1;constructor(e){this._ctx=e}get hasActiveConnection(){return!!this._activeConnection&&this._activeConnection.readyState===p.default.OPEN}get isConnecting(){return this._isConnecting}setActiveConnection(e){this._activeConnection=e,this._isConnecting=!1}clearActiveConnection(){this._activeConnection=void 0}clearStaleConnection(){this._activeConnection&&(this._ctx.log.debug("clearing stale connection reference"),this._activeConnection=void 0)}startConnecting(){this._isConnecting=!0}stopConnecting(){this._isConnecting=!1}},x=class{static{c(this,"ClientConnection")}_ctx;_clientWs;_sessionManager;_messageQueue=[];_remoteWs;_remoteReady=!1;constructor(e,t,n){this._ctx=e,this._clientWs=t,this._sessionManager=n,this._setupClientHandlers()}connectToRemote(e){this._remoteWs=e,this._setupRemoteHandlers(),this._flushMessageQueue()}closeWithError(e){this._sessionManager.stopConnecting(),this._clientWs.close(1011,e)}_setupClientHandlers(){this._clientWs.on("message",(e,t)=>{this._handleClientMessage(e,t)}),this._clientWs.on("error",e=>{this._ctx.log.error("client websocket error",{error:e.message,stack:e.stack}),this._remoteWs?.close()}),this._clientWs.on("close",()=>{this._ctx.log.info("client websocket closed"),this._sessionManager.clearActiveConnection(),this._remoteWs?.close()})}_handleClientMessage(e,t){let n=t?"<binary data>":String(e);this._ctx.log.trace("received message from client",{message:n}),this._remoteReady&&this._remoteWs?this._remoteWs.send(e,{binary:t}):this._messageQueue.push({data:e,isBinary:t})}_setupRemoteHandlers(){this._remoteWs&&(this._remoteWs.on("message",(e,t)=>{let n=t?"<binary data>":String(e);this._ctx.log.trace("received message from remote debugger",{message:n}),this._clientWs.send(e,{binary:t})}),this._remoteWs.on("error",e=>{this._ctx.log.error("remote debugger error",{error:e.message,stack:e.stack}),this._clientWs.close(1011,"Remote debugger connection error, please reconnect")}),this._remoteWs.on("close",()=>{this._ctx.log.info("remote debugger connection closed"),this._clientWs.close(1011,"Remote debugger connection closed by server, please reconnect")}),this._remoteReady=!0)}_flushMessageQueue(){if(this._remoteWs){this._ctx.log.debug("remote debugger connected, flushing message queue",{queueLength:this._messageQueue.length});for(let{data:e,isBinary:t}of this._messageQueue)this._remoteWs.send(e,{binary:t});this._messageQueue.length=0}}},w=class{static{c(this,"RemoteDebuggerConnection")}_ctx;_wsUrl;_sessionId;_authHeaders;constructor(e,t){this._ctx=e,this._wsUrl=t.wsUrl,this._sessionId=t.sessionId,this._authHeaders=t.authHeaders}async connect(){let e,t,n=!1,o=new Promise((s,a)=>{e=s,t=a}),i=new p.default(this._wsUrl,{headers:{...this._authHeaders,"x-gadget-debugger-session-id":this._sessionId}});return i.on("open",()=>{this._ctx.log.debug("connected to remote debugger"),!n&&(n=!0,e())}),i.on("error",s=>{this._ctx.log.error("remote debugger error",{error:s.message,stack:s.stack}),n||t(s)}),i.readyState===p.default.OPEN&&G(()=>{e()}),await o,i}},v=class{static{c(this,"DebuggerConfigurator")}_vscodeDir;constructor(e){this._vscodeDir=y.join(e,".vscode")}get launchJsonPath(){return y.join(this._vscodeDir,"launch.json")}get tasksJsonPath(){return y.join(this._vscodeDir,"tasks.json")}hasLaunchConfiguration(){if(!l(this.launchJsonPath))return!1;try{return(JSON.parse(b(this.launchJsonPath,"utf-8")).configurations??[]).some(n=>n.name==="Gadget debugger")}catch{return!1}}configure(e){l(this._vscodeDir)||N(this._vscodeDir,{recursive:!0}),this._configureLaunch(e),this._configureTasks()}_configureLaunch(e){let t={type:"node",request:"attach",name:"Gadget debugger",address:"127.0.0.1",port:e,localRoot:"${workspaceFolder}",remoteRoot:"/gadget/app",preLaunchTask:"ggt debugger",restart:!0,timeout:6e4},n;if(l(this.launchJsonPath)){let o=b(this.launchJsonPath,"utf-8"),i=JSON.parse(o),s=i.configurations??[],a=s.findIndex(k=>k.name==="Gadget debugger");a>=0?s[a]=t:s.push(t),n={version:i.version,configurations:s}}else n={version:"0.2.0",configurations:[t]};J(this.launchJsonPath,JSON.stringify(n,void 0,2)+`
39
- `,"utf-8")}_configureTasks(){let e={label:"ggt debugger",type:"shell",command:"ggt debugger",isBackground:!0,problemMatcher:{pattern:{regexp:"^$"},background:{activeOnStart:!0,beginsPattern:L,endsPattern:j}}},t;if(l(this.tasksJsonPath)){let n=b(this.tasksJsonPath,"utf-8"),o=JSON.parse(n),i=o.tasks??[],s=i.findIndex(a=>a.label==="ggt debugger");s>=0?i[s]=e:i.push(e),t={version:o.version,tasks:i}}else t={version:"2.0.0",tasks:[e]};J(this.tasksJsonPath,JSON.stringify(t,void 0,2)+`
40
- `,"utf-8")}};export{ue as args,pe as run,he as usage};
41
- //# sourceMappingURL=debugger-VKLUEWIN.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/commands/debugger.ts"],
4
- "sourcesContent": ["import { randomUUID } from \"node:crypto\";\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport type { Server as HttpServer, IncomingMessage, ServerResponse } from \"node:http\";\nimport { createServer } from \"node:http\";\nimport path from \"node:path\";\nimport process, { nextTick } from \"node:process\";\nimport type { Duplex } from \"node:stream\";\n\nimport chalk from \"chalk\";\nimport { WebSocket, WebSocketServer, type RawData } from \"ws\";\n\nimport { AppIdentity, AppIdentityArgs } from \"../services/command/app-identity.js\";\nimport type { ArgsDefinition } from \"../services/command/arg.js\";\nimport type { Run, Usage } from \"../services/command/command.js\";\nimport type { Context } from \"../services/command/context.js\";\nimport { config } from \"../services/config/config.js\";\nimport { loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { loadAuthHeaders } from \"../services/http/auth.js\";\nimport { http } from \"../services/http/http.js\";\nimport { LoggingArgs } from \"../services/output/log/structured.js\";\nimport { println } from \"../services/output/print.js\";\nimport { reportErrorAndExit } from \"../services/output/report.js\";\nimport { spin } from \"../services/output/spinner.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { symbol } from \"../services/output/symbols.js\";\n\nexport type DebuggerArgs = typeof args;\n\nconst StartingMessage = \"Starting ggt debugger\";\nconst RunningMessage = \"ggt debugger running on\";\n\nexport const args = {\n ...AppIdentityArgs,\n ...LoggingArgs,\n \"--port\": {\n type: Number,\n alias: [\"-p\"],\n },\n \"--configure\": {\n type: String,\n },\n} satisfies ArgsDefinition;\n\nconst SupportedEditors = [\"vscode\", \"cursor\"] as const;\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n Start a Chrome DevTools Protocol proxy server that connects to the Gadget debugger.\n This allows you to debug your Gadget app using VS Code, Chrome DevTools, or any other\n CDP-compatible debugger client.\n\n {gray Usage}\n $ ggt debugger [DIRECTORY] [options]\n\n DIRECTORY: The directory containing your Gadget app (default: current directory)\n\n {gray Options}\n -a, --app <app_name> Selects the app to debug. Defaults to the app synced to the current directory, if there is one.\n -e, --env <env_name> Selects the environment to debug. Defaults to the environment synced to the current directory, if there is one.\n -p, --port <port> Local port for the inspector proxy (default: 9229)\n --configure <editor> Configure debugger for ${SupportedEditors.join(\", \")}\n\n {gray Examples}\n start debugger proxy for current environment\n {cyanBright $ ggt debugger}\n\n use a custom port\n {cyanBright $ ggt debugger --port 9230}\n\n debug a specific app and environment\n {cyanBright $ ggt debugger --app myApp --env development}\n\n configure VS Code debugger\n {cyanBright $ ggt debugger --configure vscode}\n `;\n};\n\ntype DebuggerSessionResponse = {\n wsUrl: string;\n lease: {\n sessionId: string;\n startedAt: string;\n expiresAt: string;\n };\n};\n\nexport const run: Run<DebuggerArgs> = async (ctx, args) => {\n const directory = await loadSyncJsonDirectory(args._[0] || process.cwd());\n const appIdentity = await AppIdentity.load(ctx, { command: \"debugger\", args, directory });\n\n // Handle --configure option\n if (args[\"--configure\"]) {\n const editor = args[\"--configure\"].toLowerCase();\n if (!SupportedEditors.includes(editor as (typeof SupportedEditors)[number])) {\n throw new Error(`Invalid editor \"${args[\"--configure\"]}\". Supported editors: ${SupportedEditors.join(\", \")}`);\n }\n\n const configurator = new DebuggerConfigurator(directory.path);\n const port = args[\"--port\"] ?? 9229;\n configurator.configure(port);\n\n println({\n ensureEmptyLineAbove: true,\n content: chalk.green(`${symbol.tick} Configured ${editor} debugger`),\n });\n println({\n content: sprint`\n Added configuration to:\n \u2022 ${configurator.launchJsonPath}\n \u2022 ${configurator.tasksJsonPath}\n\n You can now start debugging by running the \"Gadget debugger\" launch configuration.\n `,\n });\n return;\n }\n\n const spinner = spin(`${StartingMessage} for ${appIdentity.environment.name} environment`);\n ctx.log.info(\"debugger command started\");\n\n ctx.log.trace(\"sync json loaded\", {\n app: appIdentity.environment.application.slug,\n environment: appIdentity.environment.name,\n });\n\n const authHeaders = loadAuthHeaders(ctx);\n const port = args[\"--port\"] ?? 9229;\n const sessionId = randomUUID();\n\n // Check if VS Code launch configuration exists\n const configurator = new DebuggerConfigurator(directory.path);\n if (!configurator.hasLaunchConfiguration()) {\n ctx.log.warn(\"vscode/cursor debugger configuration not found\");\n println({\n ensureEmptyLineAbove: true,\n content: chalk.yellow(\n `\u26A0 Gadget debugger not configured. Run \"${chalk.bold(`ggt debugger --configure ${SupportedEditors[0]}`)}\" to set up.`,\n ),\n });\n }\n\n const proxy = new DebuggerProxy(ctx, {\n appIdentity,\n authHeaders,\n sessionId,\n port,\n });\n\n try {\n await proxy.start();\n\n spinner.succeed();\n println({ ensureEmptyLineAbove: true, content: chalk.green(`${symbol.tick} ${RunningMessage} ws://localhost:${port}/${sessionId}`) });\n println({ content: chalk.gray(\"Press Ctrl+C to stop\") });\n\n await new Promise<void>((resolve) => {\n ctx.onAbort(() => {\n ctx.log.info(\"abort signal received\");\n resolve();\n });\n });\n\n proxy.stop();\n println({ ensureEmptyLineAbove: true, content: `${symbol.tick} Proxy server stopped` });\n } catch (error) {\n ctx.log.error(\"debugger command failed\", { error });\n await reportErrorAndExit(ctx, error);\n }\n};\n\ntype DebuggerProxyOptions = {\n appIdentity: AppIdentity;\n authHeaders: Record<string, string>;\n sessionId: string;\n port: number;\n};\n\n/**\n * Manages the local debugger proxy server that connects CDP clients to the remote Gadget debugger.\n */\nclass DebuggerProxy {\n private readonly _ctx: Context;\n private readonly _appIdentity: AppIdentity;\n private readonly _authHeaders: Record<string, string>;\n private readonly _sessionId: string;\n private readonly _port: number;\n private readonly _subdomain: string;\n\n private _httpServer?: HttpServer;\n private _wsServer?: WebSocketServer;\n private _sessionManager?: DebuggerSessionManager;\n\n constructor(ctx: Context, options: DebuggerProxyOptions) {\n this._ctx = ctx;\n this._appIdentity = options.appIdentity;\n this._authHeaders = options.authHeaders;\n this._sessionId = options.sessionId;\n this._port = options.port;\n this._subdomain = this._buildSubdomain();\n }\n\n async start(): Promise<void> {\n this._sessionManager = new DebuggerSessionManager(this._ctx);\n this._httpServer = this._createHttpServer();\n this._wsServer = new WebSocketServer({ noServer: true });\n\n this._httpServer.on(\"upgrade\", (request, socket, head) => {\n this._handleUpgrade(request, socket, head);\n });\n\n await this._listen();\n }\n\n stop(): void {\n this._ctx.log.debug(\"shutting down proxy server\");\n this._wsServer?.close();\n this._httpServer?.close();\n this._ctx.log.info(\"proxy server stopped\");\n }\n\n private _buildSubdomain(): string {\n const { application, name, type } = this._appIdentity.environment;\n return type === \"production\" ? application.slug : `${application.slug}--${name}`;\n }\n\n private _createHttpServer(): HttpServer {\n return createServer((req, res) => {\n const url = new URL(req.url ?? \"/\", `http://${req.headers.host}`);\n this._ctx.log.trace(\"debugger proxy http request received\", {\n method: req.method,\n rUrl: req.url,\n urlPathname: url.pathname,\n url: url.toString(),\n });\n\n try {\n if (url.pathname === \"/json/version\") {\n this._handleVersionRequest(res);\n } else if (url.pathname === \"/json/list\") {\n this._handleListRequest(res);\n } else {\n this._handleNotFound(res, url);\n }\n } catch (error) {\n this._handleError(res, error);\n }\n });\n }\n\n private _handleVersionRequest(res: ServerResponse): void {\n const versionPayload = {\n \"Protocol-Version\": \"1.1\",\n Browser: `node.js/${this._appIdentity.environment.nodeVersion}`,\n };\n this._ctx.log.trace(\"debugger proxy http version request payload\", { payload: versionPayload });\n res.setHeader(\"Content-Type\", \"application/json\");\n res.end(JSON.stringify(versionPayload));\n }\n\n private _handleListRequest(res: ServerResponse): void {\n const listPayload = [\n {\n id: this._sessionId,\n type: \"node\",\n title: \"ggt debugger\",\n description: `authenticated CDP proxy to current sandbox process for ${this._appIdentity.environment.application.slug}@${this._appIdentity.environment.name}`,\n faviconUrl: \"https://assets.gadget.dev/assets/environment/dev/favicon-32.png\",\n webSocketDebuggerUrl: `ws://127.0.0.1:${this._port}/${this._sessionId}`,\n },\n ];\n this._ctx.log.trace(\"debugger proxy http list request payload\", { payload: listPayload });\n res.setHeader(\"Content-Type\", \"application/json\");\n res.end(JSON.stringify(listPayload));\n }\n\n private _handleNotFound(res: ServerResponse, url: URL): void {\n this._ctx.log.warn(\"debugger proxy http request not found\", { url: url.toString() });\n res.statusCode = 404;\n res.end(\"Not Found\");\n }\n\n private _handleError(res: ServerResponse, error: unknown): void {\n this._ctx.log.error(\"error handling debugger proxy http request\", { error });\n res.statusCode = 500;\n res.end(\"Internal Server Error\");\n }\n\n private _handleUpgrade(request: IncomingMessage, socket: Duplex, head: Buffer): void {\n if (!this._sessionManager || !this._wsServer) {\n socket.destroy();\n return;\n }\n\n const url = new URL(request.url ?? \"/\", `http://${request.headers.host}`);\n this._ctx.log.trace(\"debugger proxy websocket upgrade request received\", {\n url: request.url,\n isConnecting: this._sessionManager.isConnecting,\n hasActiveConnection: this._sessionManager.hasActiveConnection,\n });\n\n if (url.pathname !== `/${this._sessionId}`) {\n socket.destroy();\n return;\n }\n\n if (this._sessionManager.hasActiveConnection || this._sessionManager.isConnecting) {\n this._ctx.log.debug(\"rejecting upgrade request\", {\n hasActiveConnection: this._sessionManager.hasActiveConnection,\n isConnecting: this._sessionManager.isConnecting,\n });\n this._rejectUpgrade(socket);\n return;\n }\n\n this._sessionManager.clearStaleConnection();\n this._acceptUpgrade(request, socket, head);\n }\n\n private _rejectUpgrade(socket: Duplex): void {\n const status = 409;\n const text = \"Another debugger session is already running for this environment\";\n socket.write(`HTTP/1.1 ${status} ${text}\\r\\nConnection: close\\r\\n\\r\\n`);\n socket.destroy();\n }\n\n private _acceptUpgrade(request: IncomingMessage, socket: Duplex, head: Buffer): void {\n if (!this._wsServer || !this._sessionManager) {\n return;\n }\n\n this._wsServer.handleUpgrade(request, socket, head, (clientWs) => {\n this._ctx.log.info(\"client websocket upgraded, establishing remote connection\");\n void this._handleClientConnection(clientWs);\n });\n }\n\n private async _handleClientConnection(clientWs: WebSocket): Promise<void> {\n if (!this._sessionManager) {\n return;\n }\n\n const connection = new ClientConnection(this._ctx, clientWs, this._sessionManager);\n\n try {\n const remoteWs = await this._establishRemoteConnection();\n connection.connectToRemote(remoteWs);\n this._sessionManager.setActiveConnection(clientWs);\n } catch (error) {\n this._ctx.log.error(\"error establishing remote debugger connection\", { error });\n connection.closeWithError(\"Failed to establish remote debugger connection\");\n }\n }\n\n private async _establishRemoteConnection(): Promise<WebSocket> {\n const session = await http<DebuggerSessionResponse>({\n context: { ctx: this._ctx },\n method: \"POST\",\n url: `https://${this._subdomain}.${config.domains.app}/edit/api/debugger/start-session`,\n headers: { ...this._authHeaders, \"x-gadget-debugger-session-id\": this._sessionId },\n responseType: \"json\",\n resolveBodyOnly: true,\n });\n\n this._ctx.log.debug(\"debugger session created\", { session });\n\n const remoteConnection = new RemoteDebuggerConnection(this._ctx, {\n wsUrl: session.wsUrl,\n sessionId: this._sessionId,\n authHeaders: this._authHeaders,\n });\n\n return await remoteConnection.connect();\n }\n\n private async _listen(): Promise<void> {\n if (!this._httpServer) {\n return;\n }\n\n await new Promise<void>((resolve, reject) => {\n const server = this._httpServer;\n if (!server) {\n reject(new Error(\"HTTP server is not initialized\"));\n return;\n }\n server.listen(this._port, \"127.0.0.1\", () => {\n this._ctx.log.info(\"debugger proxy server listening\", { port: this._port });\n resolve();\n });\n server.on(\"error\", reject);\n });\n }\n}\n\n/**\n * Manages the state of active debugger sessions and connections.\n */\nclass DebuggerSessionManager {\n private readonly _ctx: Context;\n private _activeConnection?: WebSocket;\n private _isConnecting = false;\n\n constructor(ctx: Context) {\n this._ctx = ctx;\n }\n\n get hasActiveConnection(): boolean {\n return !!this._activeConnection && this._activeConnection.readyState === WebSocket.OPEN;\n }\n\n get isConnecting(): boolean {\n return this._isConnecting;\n }\n\n setActiveConnection(ws: WebSocket): void {\n this._activeConnection = ws;\n this._isConnecting = false;\n }\n\n clearActiveConnection(): void {\n this._activeConnection = undefined;\n }\n\n clearStaleConnection(): void {\n if (this._activeConnection) {\n this._ctx.log.debug(\"clearing stale connection reference\");\n this._activeConnection = undefined;\n }\n }\n\n startConnecting(): void {\n this._isConnecting = true;\n }\n\n stopConnecting(): void {\n this._isConnecting = false;\n }\n}\n\n/**\n * Manages a client connection from a CDP debugger (VS Code, Chrome DevTools, etc).\n */\nclass ClientConnection {\n private readonly _ctx: Context;\n private readonly _clientWs: WebSocket;\n private readonly _sessionManager: DebuggerSessionManager;\n private readonly _messageQueue: { data: RawData; isBinary: boolean }[] = [];\n private _remoteWs?: WebSocket;\n private _remoteReady = false;\n\n constructor(ctx: Context, clientWs: WebSocket, sessionManager: DebuggerSessionManager) {\n this._ctx = ctx;\n this._clientWs = clientWs;\n this._sessionManager = sessionManager;\n this._setupClientHandlers();\n }\n\n connectToRemote(remoteWs: WebSocket): void {\n this._remoteWs = remoteWs;\n this._setupRemoteHandlers();\n this._flushMessageQueue();\n }\n\n closeWithError(reason: string): void {\n this._sessionManager.stopConnecting();\n this._clientWs.close(1011, reason);\n }\n\n private _setupClientHandlers(): void {\n this._clientWs.on(\"message\", (data: RawData, isBinary: boolean) => {\n this._handleClientMessage(data, isBinary);\n });\n\n this._clientWs.on(\"error\", (error: Error) => {\n this._ctx.log.error(\"client websocket error\", { error: error.message, stack: error.stack });\n this._remoteWs?.close();\n });\n\n this._clientWs.on(\"close\", () => {\n this._ctx.log.info(\"client websocket closed\");\n this._sessionManager.clearActiveConnection();\n this._remoteWs?.close();\n });\n }\n\n private _handleClientMessage(data: RawData, isBinary: boolean): void {\n // oxlint-disable-next-line no-base-to-string\n const messageString = isBinary ? \"<binary data>\" : String(data);\n this._ctx.log.trace(\"received message from client\", { message: messageString });\n\n if (this._remoteReady && this._remoteWs) {\n this._remoteWs.send(data, { binary: isBinary });\n } else {\n this._messageQueue.push({ data, isBinary });\n }\n }\n\n private _setupRemoteHandlers(): void {\n if (!this._remoteWs) {\n return;\n }\n\n this._remoteWs.on(\"message\", (data: RawData, isBinary: boolean) => {\n // oxlint-disable-next-line no-base-to-string\n const messageString = isBinary ? \"<binary data>\" : String(data);\n this._ctx.log.trace(\"received message from remote debugger\", { message: messageString });\n this._clientWs.send(data, { binary: isBinary });\n });\n\n this._remoteWs.on(\"error\", (error: Error) => {\n this._ctx.log.error(\"remote debugger error\", { error: error.message, stack: error.stack });\n this._clientWs.close(1011, \"Remote debugger connection error, please reconnect\");\n });\n\n this._remoteWs.on(\"close\", () => {\n this._ctx.log.info(\"remote debugger connection closed\");\n this._clientWs.close(1011, \"Remote debugger connection closed by server, please reconnect\");\n });\n\n this._remoteReady = true;\n }\n\n private _flushMessageQueue(): void {\n if (!this._remoteWs) {\n return;\n }\n\n this._ctx.log.debug(\"remote debugger connected, flushing message queue\", {\n queueLength: this._messageQueue.length,\n });\n\n for (const { data, isBinary } of this._messageQueue) {\n this._remoteWs.send(data, { binary: isBinary });\n }\n this._messageQueue.length = 0;\n }\n}\n\ntype RemoteDebuggerConnectionOptions = {\n wsUrl: string;\n sessionId: string;\n authHeaders: Record<string, string>;\n};\n\n/**\n * Manages a connection to the remote Gadget debugger WebSocket.\n */\nclass RemoteDebuggerConnection {\n private readonly _ctx: Context;\n private readonly _wsUrl: string;\n private readonly _sessionId: string;\n private readonly _authHeaders: Record<string, string>;\n\n constructor(ctx: Context, options: RemoteDebuggerConnectionOptions) {\n this._ctx = ctx;\n this._wsUrl = options.wsUrl;\n this._sessionId = options.sessionId;\n this._authHeaders = options.authHeaders;\n }\n\n async connect(): Promise<WebSocket> {\n let resolveConnection: () => void;\n let rejectConnection: (error: Error) => void;\n let connected = false;\n\n const connectionPromise = new Promise<void>((resolve, reject) => {\n resolveConnection = resolve;\n rejectConnection = reject;\n });\n\n const ws = new WebSocket(this._wsUrl, {\n headers: { ...this._authHeaders, \"x-gadget-debugger-session-id\": this._sessionId },\n });\n\n ws.on(\"open\", () => {\n this._ctx.log.debug(\"connected to remote debugger\");\n if (connected) {\n return;\n }\n connected = true;\n resolveConnection();\n });\n\n ws.on(\"error\", (error: Error) => {\n this._ctx.log.error(\"remote debugger error\", { error: error.message, stack: error.stack });\n if (!connected) {\n rejectConnection(error);\n }\n });\n\n if (ws.readyState === WebSocket.OPEN) {\n nextTick(() => {\n resolveConnection();\n });\n }\n\n await connectionPromise;\n\n return ws;\n }\n}\n\ntype VSCodeLaunchConfiguration = {\n type: string;\n request: string;\n name: string;\n address: string;\n port: number;\n localRoot: string;\n remoteRoot: string;\n preLaunchTask: string;\n restart: boolean;\n timeout: number;\n};\n\ntype VSCodeTask = {\n label: string;\n type: string;\n command: string;\n isBackground: boolean;\n problemMatcher: {\n pattern: { regexp: string };\n background: {\n activeOnStart: boolean;\n beginsPattern: string;\n endsPattern: string;\n };\n };\n};\n\n/**\n * Handles VS Code/Cursor debugger configuration setup.\n */\nclass DebuggerConfigurator {\n private readonly _vscodeDir: string;\n\n constructor(directory: string) {\n this._vscodeDir = path.join(directory, \".vscode\");\n }\n\n get launchJsonPath(): string {\n return path.join(this._vscodeDir, \"launch.json\");\n }\n\n get tasksJsonPath(): string {\n return path.join(this._vscodeDir, \"tasks.json\");\n }\n\n hasLaunchConfiguration(): boolean {\n if (!existsSync(this.launchJsonPath)) {\n return false;\n }\n\n try {\n const launchJson = JSON.parse(readFileSync(this.launchJsonPath, \"utf-8\")) as {\n configurations?: VSCodeLaunchConfiguration[];\n };\n const configurations = launchJson.configurations ?? [];\n return configurations.some((config) => config.name === \"Gadget debugger\");\n } catch {\n return false;\n }\n }\n\n configure(port: number): void {\n // Ensure .vscode directory exists\n if (!existsSync(this._vscodeDir)) {\n mkdirSync(this._vscodeDir, { recursive: true });\n }\n\n this._configureLaunch(port);\n this._configureTasks();\n }\n\n private _configureLaunch(port: number): void {\n const launchConfig: VSCodeLaunchConfiguration = {\n type: \"node\",\n request: \"attach\",\n name: \"Gadget debugger\",\n address: \"127.0.0.1\",\n port,\n localRoot: \"${workspaceFolder}\",\n remoteRoot: \"/gadget/app\",\n preLaunchTask: \"ggt debugger\",\n restart: true,\n timeout: 60000,\n };\n\n let launchJson: { version?: string; configurations: VSCodeLaunchConfiguration[] };\n\n if (existsSync(this.launchJsonPath)) {\n // Read existing launch.json\n const content = readFileSync(this.launchJsonPath, \"utf-8\");\n const parsed = JSON.parse(content) as { version?: string; configurations?: VSCodeLaunchConfiguration[] };\n\n // Ensure configurations array exists\n const configurations = parsed.configurations ?? [];\n\n // Check if configuration already exists\n const existingIndex = configurations.findIndex((config) => config.name === \"Gadget debugger\");\n\n if (existingIndex >= 0) {\n // Update existing configuration\n configurations[existingIndex] = launchConfig;\n } else {\n // Add new configuration\n configurations.push(launchConfig);\n }\n\n launchJson = {\n version: parsed.version,\n configurations,\n };\n } else {\n // Create new launch.json\n launchJson = {\n version: \"0.2.0\",\n configurations: [launchConfig],\n };\n }\n\n writeFileSync(this.launchJsonPath, JSON.stringify(launchJson, undefined, 2) + \"\\n\", \"utf-8\");\n }\n\n private _configureTasks(): void {\n const task: VSCodeTask = {\n label: \"ggt debugger\",\n type: \"shell\",\n command: \"ggt debugger\",\n isBackground: true,\n problemMatcher: {\n pattern: { regexp: \"^$\" },\n background: {\n activeOnStart: true,\n beginsPattern: StartingMessage,\n endsPattern: RunningMessage,\n },\n },\n };\n\n let tasksJson: { version?: string; tasks: VSCodeTask[] };\n\n if (existsSync(this.tasksJsonPath)) {\n // Read existing tasks.json\n const content = readFileSync(this.tasksJsonPath, \"utf-8\");\n const parsed = JSON.parse(content) as { version?: string; tasks?: VSCodeTask[] };\n\n // Ensure tasks array exists\n const tasks = parsed.tasks ?? [];\n\n // Check if task already exists\n const existingIndex = tasks.findIndex((t) => t.label === \"ggt debugger\");\n\n if (existingIndex >= 0) {\n // Update existing task\n tasks[existingIndex] = task;\n } else {\n // Add new task\n tasks.push(task);\n }\n\n tasksJson = {\n version: parsed.version,\n tasks,\n };\n } else {\n // Create new tasks.json\n tasksJson = {\n version: \"2.0.0\",\n tasks: [task],\n };\n }\n\n writeFileSync(this.tasksJsonPath, JSON.stringify(tasksJson, undefined, 2) + \"\\n\", \"utf-8\");\n }\n}\n"],
5
- "mappings": "yeAAAA,IAAA,OAAS,cAAAC,MAAkB,cAC3B,OAAS,cAAAC,EAAY,aAAAC,EAAW,gBAAAC,EAAc,iBAAAC,MAAqB,UAEnE,OAAS,gBAAAC,MAAoB,YAC7B,OAAOC,MAAU,YACjB,OAAOC,GAAW,YAAAC,MAAgB,eAuBlC,IAAMC,EAAkB,wBAClBC,EAAiB,0BAEVC,GAAO,CAClB,GAAGC,EACH,GAAGC,EACH,SAAU,CACR,KAAM,OACN,MAAO,CAAC,IAAI,CACd,EACA,cAAe,CACb,KAAM,MACR,CACF,EAEMC,EAAmB,CAAC,SAAU,QAAQ,EAE/BC,GAAeC,EAACC,GACpBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+DAcsDJ,EAAiB,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAf9D,SAyCfK,GAAyBH,EAAA,MAAOI,EAAKT,IAAS,CACzD,IAAMU,EAAY,MAAMC,EAAsBX,EAAK,EAAE,CAAC,GAAKY,EAAQ,IAAI,CAAC,EAClEC,EAAc,MAAMC,EAAY,KAAKL,EAAK,CAAE,QAAS,WAAY,KAAAT,EAAM,UAAAU,CAAU,CAAC,EAGxF,GAAIV,EAAK,aAAa,EAAG,CACvB,IAAMe,EAASf,EAAK,aAAa,EAAE,YAAY,EAC/C,GAAI,CAACG,EAAiB,SAASY,CAA2C,EACxE,MAAM,IAAI,MAAM,mBAAmBf,EAAK,aAAa,CAAC,yBAAyBG,EAAiB,KAAK,IAAI,CAAC,EAAE,EAG9G,IAAMa,EAAe,IAAIC,EAAqBP,EAAU,IAAI,EACtDQ,EAAOlB,EAAK,QAAQ,GAAK,KAC/BgB,EAAa,UAAUE,CAAI,EAE3BC,EAAQ,CACN,qBAAsB,GACtB,QAASC,EAAM,MAAM,GAAGC,EAAO,IAAI,eAAeN,CAAM,WAAW,CACrE,CAAC,EACDI,EAAQ,CACN,QAASZ;AAAA;AAAA,YAEHS,EAAa,cAAc;AAAA,YAC3BA,EAAa,aAAa;AAAA;AAAA;AAAA,OAIlC,CAAC,EACD,MACF,CAEA,IAAMM,EAAUC,EAAK,GAAGzB,CAAe,QAAQe,EAAY,YAAY,IAAI,cAAc,EACzFJ,EAAI,IAAI,KAAK,0BAA0B,EAEvCA,EAAI,IAAI,MAAM,mBAAoB,CAChC,IAAKI,EAAY,YAAY,YAAY,KACzC,YAAaA,EAAY,YAAY,IACvC,CAAC,EAED,IAAMW,EAAcC,EAAgBhB,CAAG,EACjCS,EAAOlB,EAAK,QAAQ,GAAK,KACzB0B,EAAYC,EAAW,EAGR,IAAIV,EAAqBP,EAAU,IAAI,EAC1C,uBAAuB,IACvCD,EAAI,IAAI,KAAK,gDAAgD,EAC7DU,EAAQ,CACN,qBAAsB,GACtB,QAASC,EAAM,OACb,+CAA0CA,EAAM,KAAK,4BAA4BjB,EAAiB,CAAC,CAAC,EAAE,CAAC,cACzG,CACF,CAAC,GAGH,IAAMyB,EAAQ,IAAIC,EAAcpB,EAAK,CACnC,YAAAI,EACA,YAAAW,EACA,UAAAE,EACA,KAAAR,CACF,CAAC,EAED,GAAI,CACF,MAAMU,EAAM,MAAM,EAElBN,EAAQ,QAAQ,EAChBH,EAAQ,CAAE,qBAAsB,GAAM,QAASC,EAAM,MAAM,GAAGC,EAAO,IAAI,IAAItB,CAAc,mBAAmBmB,CAAI,IAAIQ,CAAS,EAAE,CAAE,CAAC,EACpIP,EAAQ,CAAE,QAASC,EAAM,KAAK,sBAAsB,CAAE,CAAC,EAEvD,MAAM,IAAI,QAAeU,GAAY,CACnCrB,EAAI,QAAQ,IAAM,CAChBA,EAAI,IAAI,KAAK,uBAAuB,EACpCqB,EAAQ,CACV,CAAC,CACH,CAAC,EAEDF,EAAM,KAAK,EACXT,EAAQ,CAAE,qBAAsB,GAAM,QAAS,GAAGE,EAAO,IAAI,uBAAwB,CAAC,CACxF,OAASU,EAAO,CACdtB,EAAI,IAAI,MAAM,0BAA2B,CAAE,MAAAsB,CAAM,CAAC,EAClD,MAAMC,EAAmBvB,EAAKsB,CAAK,CACrC,CACF,EAlFsC,OA8FhCF,EAAN,KAAoB,CApLpB,MAoLoB,CAAAxB,EAAA,sBACD,KACA,aACA,aACA,WACA,MACA,WAET,YACA,UACA,gBAER,YAAYI,EAAcwB,EAA+B,CACvD,KAAK,KAAOxB,EACZ,KAAK,aAAewB,EAAQ,YAC5B,KAAK,aAAeA,EAAQ,YAC5B,KAAK,WAAaA,EAAQ,UAC1B,KAAK,MAAQA,EAAQ,KACrB,KAAK,WAAa,KAAK,gBAAgB,CACzC,CAEA,MAAM,OAAuB,CAC3B,KAAK,gBAAkB,IAAIC,EAAuB,KAAK,IAAI,EAC3D,KAAK,YAAc,KAAK,kBAAkB,EAC1C,KAAK,UAAY,IAAI,EAAAC,QAAgB,CAAE,SAAU,EAAK,CAAC,EAEvD,KAAK,YAAY,GAAG,UAAW,CAACC,EAASC,EAAQC,IAAS,CACxD,KAAK,eAAeF,EAASC,EAAQC,CAAI,CAC3C,CAAC,EAED,MAAM,KAAK,QAAQ,CACrB,CAEA,MAAa,CACX,KAAK,KAAK,IAAI,MAAM,4BAA4B,EAChD,KAAK,WAAW,MAAM,EACtB,KAAK,aAAa,MAAM,EACxB,KAAK,KAAK,IAAI,KAAK,sBAAsB,CAC3C,CAEQ,iBAA0B,CAChC,GAAM,CAAE,YAAAC,EAAa,KAAAC,EAAM,KAAAC,CAAK,EAAI,KAAK,aAAa,YACtD,OAAOA,IAAS,aAAeF,EAAY,KAAO,GAAGA,EAAY,IAAI,KAAKC,CAAI,EAChF,CAEQ,mBAAgC,CACtC,OAAOE,EAAa,CAACC,EAAKC,IAAQ,CAChC,IAAMC,EAAM,IAAI,IAAIF,EAAI,KAAO,IAAK,UAAUA,EAAI,QAAQ,IAAI,EAAE,EAChE,KAAK,KAAK,IAAI,MAAM,uCAAwC,CAC1D,OAAQA,EAAI,OACZ,KAAMA,EAAI,IACV,YAAaE,EAAI,SACjB,IAAKA,EAAI,SAAS,CACpB,CAAC,EAED,GAAI,CACEA,EAAI,WAAa,gBACnB,KAAK,sBAAsBD,CAAG,EACrBC,EAAI,WAAa,aAC1B,KAAK,mBAAmBD,CAAG,EAE3B,KAAK,gBAAgBA,EAAKC,CAAG,CAEjC,OAASd,EAAO,CACd,KAAK,aAAaa,EAAKb,CAAK,CAC9B,CACF,CAAC,CACH,CAEQ,sBAAsBa,EAA2B,CACvD,IAAME,EAAiB,CACrB,mBAAoB,MACpB,QAAS,WAAW,KAAK,aAAa,YAAY,WAAW,EAC/D,EACA,KAAK,KAAK,IAAI,MAAM,8CAA+C,CAAE,QAASA,CAAe,CAAC,EAC9FF,EAAI,UAAU,eAAgB,kBAAkB,EAChDA,EAAI,IAAI,KAAK,UAAUE,CAAc,CAAC,CACxC,CAEQ,mBAAmBF,EAA2B,CACpD,IAAMG,EAAc,CAClB,CACE,GAAI,KAAK,WACT,KAAM,OACN,MAAO,eACP,YAAa,0DAA0D,KAAK,aAAa,YAAY,YAAY,IAAI,IAAI,KAAK,aAAa,YAAY,IAAI,GAC3J,WAAY,kEACZ,qBAAsB,kBAAkB,KAAK,KAAK,IAAI,KAAK,UAAU,EACvE,CACF,EACA,KAAK,KAAK,IAAI,MAAM,2CAA4C,CAAE,QAASA,CAAY,CAAC,EACxFH,EAAI,UAAU,eAAgB,kBAAkB,EAChDA,EAAI,IAAI,KAAK,UAAUG,CAAW,CAAC,CACrC,CAEQ,gBAAgBH,EAAqBC,EAAgB,CAC3D,KAAK,KAAK,IAAI,KAAK,wCAAyC,CAAE,IAAKA,EAAI,SAAS,CAAE,CAAC,EACnFD,EAAI,WAAa,IACjBA,EAAI,IAAI,WAAW,CACrB,CAEQ,aAAaA,EAAqBb,EAAsB,CAC9D,KAAK,KAAK,IAAI,MAAM,6CAA8C,CAAE,MAAAA,CAAM,CAAC,EAC3Ea,EAAI,WAAa,IACjBA,EAAI,IAAI,uBAAuB,CACjC,CAEQ,eAAeR,EAA0BC,EAAgBC,EAAoB,CACnF,GAAI,CAAC,KAAK,iBAAmB,CAAC,KAAK,UAAW,CAC5CD,EAAO,QAAQ,EACf,MACF,CAEA,IAAMQ,EAAM,IAAI,IAAIT,EAAQ,KAAO,IAAK,UAAUA,EAAQ,QAAQ,IAAI,EAAE,EAOxE,GANA,KAAK,KAAK,IAAI,MAAM,oDAAqD,CACvE,IAAKA,EAAQ,IACb,aAAc,KAAK,gBAAgB,aACnC,oBAAqB,KAAK,gBAAgB,mBAC5C,CAAC,EAEGS,EAAI,WAAa,IAAI,KAAK,UAAU,GAAI,CAC1CR,EAAO,QAAQ,EACf,MACF,CAEA,GAAI,KAAK,gBAAgB,qBAAuB,KAAK,gBAAgB,aAAc,CACjF,KAAK,KAAK,IAAI,MAAM,4BAA6B,CAC/C,oBAAqB,KAAK,gBAAgB,oBAC1C,aAAc,KAAK,gBAAgB,YACrC,CAAC,EACD,KAAK,eAAeA,CAAM,EAC1B,MACF,CAEA,KAAK,gBAAgB,qBAAqB,EAC1C,KAAK,eAAeD,EAASC,EAAQC,CAAI,CAC3C,CAEQ,eAAeD,EAAsB,CAG3CA,EAAO,MAAM;AAAA;AAAA;AAAA,CAAyD,EACtEA,EAAO,QAAQ,CACjB,CAEQ,eAAeD,EAA0BC,EAAgBC,EAAoB,CAC/E,CAAC,KAAK,WAAa,CAAC,KAAK,iBAI7B,KAAK,UAAU,cAAcF,EAASC,EAAQC,EAAOU,GAAa,CAChE,KAAK,KAAK,IAAI,KAAK,2DAA2D,EACzE,KAAK,wBAAwBA,CAAQ,CAC5C,CAAC,CACH,CAEA,MAAc,wBAAwBA,EAAoC,CACxE,GAAI,CAAC,KAAK,gBACR,OAGF,IAAMC,EAAa,IAAIC,EAAiB,KAAK,KAAMF,EAAU,KAAK,eAAe,EAEjF,GAAI,CACF,IAAMG,EAAW,MAAM,KAAK,2BAA2B,EACvDF,EAAW,gBAAgBE,CAAQ,EACnC,KAAK,gBAAgB,oBAAoBH,CAAQ,CACnD,OAASjB,EAAO,CACd,KAAK,KAAK,IAAI,MAAM,gDAAiD,CAAE,MAAAA,CAAM,CAAC,EAC9EkB,EAAW,eAAe,gDAAgD,CAC5E,CACF,CAEA,MAAc,4BAAiD,CAC7D,IAAMG,EAAU,MAAMC,EAA8B,CAClD,QAAS,CAAE,IAAK,KAAK,IAAK,EAC1B,OAAQ,OACR,IAAK,WAAW,KAAK,UAAU,IAAIC,EAAO,QAAQ,GAAG,mCACrD,QAAS,CAAE,GAAG,KAAK,aAAc,+BAAgC,KAAK,UAAW,EACjF,aAAc,OACd,gBAAiB,EACnB,CAAC,EAED,YAAK,KAAK,IAAI,MAAM,2BAA4B,CAAE,QAAAF,CAAQ,CAAC,EAQpD,MANkB,IAAIG,EAAyB,KAAK,KAAM,CAC/D,MAAOH,EAAQ,MACf,UAAW,KAAK,WAChB,YAAa,KAAK,YACpB,CAAC,EAE6B,QAAQ,CACxC,CAEA,MAAc,SAAyB,CAChC,KAAK,aAIV,MAAM,IAAI,QAAc,CAACtB,EAAS0B,IAAW,CAC3C,IAAMC,EAAS,KAAK,YACpB,GAAI,CAACA,EAAQ,CACXD,EAAO,IAAI,MAAM,gCAAgC,CAAC,EAClD,MACF,CACAC,EAAO,OAAO,KAAK,MAAO,YAAa,IAAM,CAC3C,KAAK,KAAK,IAAI,KAAK,kCAAmC,CAAE,KAAM,KAAK,KAAM,CAAC,EAC1E3B,EAAQ,CACV,CAAC,EACD2B,EAAO,GAAG,QAASD,CAAM,CAC3B,CAAC,CACH,CACF,EAKMtB,EAAN,KAA6B,CA7Y7B,MA6Y6B,CAAA7B,EAAA,+BACV,KACT,kBACA,cAAgB,GAExB,YAAYI,EAAc,CACxB,KAAK,KAAOA,CACd,CAEA,IAAI,qBAA+B,CACjC,MAAO,CAAC,CAAC,KAAK,mBAAqB,KAAK,kBAAkB,aAAe,EAAAiD,QAAU,IACrF,CAEA,IAAI,cAAwB,CAC1B,OAAO,KAAK,aACd,CAEA,oBAAoBC,EAAqB,CACvC,KAAK,kBAAoBA,EACzB,KAAK,cAAgB,EACvB,CAEA,uBAA8B,CAC5B,KAAK,kBAAoB,MAC3B,CAEA,sBAA6B,CACvB,KAAK,oBACP,KAAK,KAAK,IAAI,MAAM,qCAAqC,EACzD,KAAK,kBAAoB,OAE7B,CAEA,iBAAwB,CACtB,KAAK,cAAgB,EACvB,CAEA,gBAAuB,CACrB,KAAK,cAAgB,EACvB,CACF,EAKMT,EAAN,KAAuB,CA1bvB,MA0buB,CAAA7C,EAAA,yBACJ,KACA,UACA,gBACA,cAAwD,CAAC,EAClE,UACA,aAAe,GAEvB,YAAYI,EAAcuC,EAAqBY,EAAwC,CACrF,KAAK,KAAOnD,EACZ,KAAK,UAAYuC,EACjB,KAAK,gBAAkBY,EACvB,KAAK,qBAAqB,CAC5B,CAEA,gBAAgBT,EAA2B,CACzC,KAAK,UAAYA,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,CAC1B,CAEA,eAAeU,EAAsB,CACnC,KAAK,gBAAgB,eAAe,EACpC,KAAK,UAAU,MAAM,KAAMA,CAAM,CACnC,CAEQ,sBAA6B,CACnC,KAAK,UAAU,GAAG,UAAW,CAACC,EAAeC,IAAsB,CACjE,KAAK,qBAAqBD,EAAMC,CAAQ,CAC1C,CAAC,EAED,KAAK,UAAU,GAAG,QAAUhC,GAAiB,CAC3C,KAAK,KAAK,IAAI,MAAM,yBAA0B,CAAE,MAAOA,EAAM,QAAS,MAAOA,EAAM,KAAM,CAAC,EAC1F,KAAK,WAAW,MAAM,CACxB,CAAC,EAED,KAAK,UAAU,GAAG,QAAS,IAAM,CAC/B,KAAK,KAAK,IAAI,KAAK,yBAAyB,EAC5C,KAAK,gBAAgB,sBAAsB,EAC3C,KAAK,WAAW,MAAM,CACxB,CAAC,CACH,CAEQ,qBAAqB+B,EAAeC,EAAyB,CAEnE,IAAMC,EAAgBD,EAAW,gBAAkB,OAAOD,CAAI,EAC9D,KAAK,KAAK,IAAI,MAAM,+BAAgC,CAAE,QAASE,CAAc,CAAC,EAE1E,KAAK,cAAgB,KAAK,UAC5B,KAAK,UAAU,KAAKF,EAAM,CAAE,OAAQC,CAAS,CAAC,EAE9C,KAAK,cAAc,KAAK,CAAE,KAAAD,EAAM,SAAAC,CAAS,CAAC,CAE9C,CAEQ,sBAA6B,CAC9B,KAAK,YAIV,KAAK,UAAU,GAAG,UAAW,CAACD,EAAeC,IAAsB,CAEjE,IAAMC,EAAgBD,EAAW,gBAAkB,OAAOD,CAAI,EAC9D,KAAK,KAAK,IAAI,MAAM,wCAAyC,CAAE,QAASE,CAAc,CAAC,EACvF,KAAK,UAAU,KAAKF,EAAM,CAAE,OAAQC,CAAS,CAAC,CAChD,CAAC,EAED,KAAK,UAAU,GAAG,QAAUhC,GAAiB,CAC3C,KAAK,KAAK,IAAI,MAAM,wBAAyB,CAAE,MAAOA,EAAM,QAAS,MAAOA,EAAM,KAAM,CAAC,EACzF,KAAK,UAAU,MAAM,KAAM,oDAAoD,CACjF,CAAC,EAED,KAAK,UAAU,GAAG,QAAS,IAAM,CAC/B,KAAK,KAAK,IAAI,KAAK,mCAAmC,EACtD,KAAK,UAAU,MAAM,KAAM,+DAA+D,CAC5F,CAAC,EAED,KAAK,aAAe,GACtB,CAEQ,oBAA2B,CACjC,GAAK,KAAK,UAIV,MAAK,KAAK,IAAI,MAAM,oDAAqD,CACvE,YAAa,KAAK,cAAc,MAClC,CAAC,EAED,OAAW,CAAE,KAAA+B,EAAM,SAAAC,CAAS,IAAK,KAAK,cACpC,KAAK,UAAU,KAAKD,EAAM,CAAE,OAAQC,CAAS,CAAC,EAEhD,KAAK,cAAc,OAAS,EAC9B,CACF,EAWMR,EAAN,KAA+B,CAniB/B,MAmiB+B,CAAAlD,EAAA,iCACZ,KACA,OACA,WACA,aAEjB,YAAYI,EAAcwB,EAA0C,CAClE,KAAK,KAAOxB,EACZ,KAAK,OAASwB,EAAQ,MACtB,KAAK,WAAaA,EAAQ,UAC1B,KAAK,aAAeA,EAAQ,WAC9B,CAEA,MAAM,SAA8B,CAClC,IAAIgC,EACAC,EACAC,EAAY,GAEVC,EAAoB,IAAI,QAAc,CAACtC,EAAS0B,IAAW,CAC/DS,EAAoBnC,EACpBoC,EAAmBV,CACrB,CAAC,EAEKG,EAAK,IAAI,EAAAD,QAAU,KAAK,OAAQ,CACpC,QAAS,CAAE,GAAG,KAAK,aAAc,+BAAgC,KAAK,UAAW,CACnF,CAAC,EAED,OAAAC,EAAG,GAAG,OAAQ,IAAM,CAClB,KAAK,KAAK,IAAI,MAAM,8BAA8B,EAC9C,CAAAQ,IAGJA,EAAY,GACZF,EAAkB,EACpB,CAAC,EAEDN,EAAG,GAAG,QAAU5B,GAAiB,CAC/B,KAAK,KAAK,IAAI,MAAM,wBAAyB,CAAE,MAAOA,EAAM,QAAS,MAAOA,EAAM,KAAM,CAAC,EACpFoC,GACHD,EAAiBnC,CAAK,CAE1B,CAAC,EAEG4B,EAAG,aAAe,EAAAD,QAAU,MAC9BW,EAAS,IAAM,CACbJ,EAAkB,CACpB,CAAC,EAGH,MAAMG,EAECT,CACT,CACF,EAiCM1C,EAAN,KAA2B,CAznB3B,MAynB2B,CAAAZ,EAAA,6BACR,WAEjB,YAAYK,EAAmB,CAC7B,KAAK,WAAa4D,EAAK,KAAK5D,EAAW,SAAS,CAClD,CAEA,IAAI,gBAAyB,CAC3B,OAAO4D,EAAK,KAAK,KAAK,WAAY,aAAa,CACjD,CAEA,IAAI,eAAwB,CAC1B,OAAOA,EAAK,KAAK,KAAK,WAAY,YAAY,CAChD,CAEA,wBAAkC,CAChC,GAAI,CAACC,EAAW,KAAK,cAAc,EACjC,MAAO,GAGT,GAAI,CAKF,OAJmB,KAAK,MAAMC,EAAa,KAAK,eAAgB,OAAO,CAAC,EAGtC,gBAAkB,CAAC,GAC/B,KAAMlB,GAAWA,EAAO,OAAS,iBAAiB,CAC1E,MAAQ,CACN,MAAO,EACT,CACF,CAEA,UAAUpC,EAAoB,CAEvBqD,EAAW,KAAK,UAAU,GAC7BE,EAAU,KAAK,WAAY,CAAE,UAAW,EAAK,CAAC,EAGhD,KAAK,iBAAiBvD,CAAI,EAC1B,KAAK,gBAAgB,CACvB,CAEQ,iBAAiBA,EAAoB,CAC3C,IAAMwD,EAA0C,CAC9C,KAAM,OACN,QAAS,SACT,KAAM,kBACN,QAAS,YACT,KAAAxD,EACA,UAAW,qBACX,WAAY,cACZ,cAAe,eACf,QAAS,GACT,QAAS,GACX,EAEIyD,EAEJ,GAAIJ,EAAW,KAAK,cAAc,EAAG,CAEnC,IAAMK,EAAUJ,EAAa,KAAK,eAAgB,OAAO,EACnDK,EAAS,KAAK,MAAMD,CAAO,EAG3BE,EAAiBD,EAAO,gBAAkB,CAAC,EAG3CE,EAAgBD,EAAe,UAAWxB,GAAWA,EAAO,OAAS,iBAAiB,EAExFyB,GAAiB,EAEnBD,EAAeC,CAAa,EAAIL,EAGhCI,EAAe,KAAKJ,CAAY,EAGlCC,EAAa,CACX,QAASE,EAAO,QAChB,eAAAC,CACF,CACF,MAEEH,EAAa,CACX,QAAS,QACT,eAAgB,CAACD,CAAY,CAC/B,EAGFM,EAAc,KAAK,eAAgB,KAAK,UAAUL,EAAY,OAAW,CAAC,EAAI;AAAA,EAAM,OAAO,CAC7F,CAEQ,iBAAwB,CAC9B,IAAMM,EAAmB,CACvB,MAAO,eACP,KAAM,QACN,QAAS,eACT,aAAc,GACd,eAAgB,CACd,QAAS,CAAE,OAAQ,IAAK,EACxB,WAAY,CACV,cAAe,GACf,cAAenF,EACf,YAAaC,CACf,CACF,CACF,EAEImF,EAEJ,GAAIX,EAAW,KAAK,aAAa,EAAG,CAElC,IAAMK,EAAUJ,EAAa,KAAK,cAAe,OAAO,EAClDK,EAAS,KAAK,MAAMD,CAAO,EAG3BO,EAAQN,EAAO,OAAS,CAAC,EAGzBE,EAAgBI,EAAM,UAAWC,GAAMA,EAAE,QAAU,cAAc,EAEnEL,GAAiB,EAEnBI,EAAMJ,CAAa,EAAIE,EAGvBE,EAAM,KAAKF,CAAI,EAGjBC,EAAY,CACV,QAASL,EAAO,QAChB,MAAAM,CACF,CACF,MAEED,EAAY,CACV,QAAS,QACT,MAAO,CAACD,CAAI,CACd,EAGFD,EAAc,KAAK,cAAe,KAAK,UAAUE,EAAW,OAAW,CAAC,EAAI;AAAA,EAAM,OAAO,CAC3F,CACF",
6
- "names": ["init_cjs", "randomUUID", "existsSync", "mkdirSync", "readFileSync", "writeFileSync", "createServer", "path", "process", "nextTick", "StartingMessage", "RunningMessage", "args", "AppIdentityArgs", "LoggingArgs", "SupportedEditors", "usage", "__name", "_ctx", "sprint", "run", "ctx", "directory", "loadSyncJsonDirectory", "process", "appIdentity", "AppIdentity", "editor", "configurator", "DebuggerConfigurator", "port", "println", "source_default", "symbol", "spinner", "spin", "authHeaders", "loadAuthHeaders", "sessionId", "randomUUID", "proxy", "DebuggerProxy", "resolve", "error", "reportErrorAndExit", "options", "DebuggerSessionManager", "WebSocketServer", "request", "socket", "head", "application", "name", "type", "createServer", "req", "res", "url", "versionPayload", "listPayload", "clientWs", "connection", "ClientConnection", "remoteWs", "session", "http", "config", "RemoteDebuggerConnection", "reject", "server", "WebSocket", "ws", "sessionManager", "reason", "data", "isBinary", "messageString", "resolveConnection", "rejectConnection", "connected", "connectionPromise", "nextTick", "path", "existsSync", "readFileSync", "mkdirSync", "launchConfig", "launchJson", "content", "parsed", "configurations", "existingIndex", "writeFileSync", "task", "tasksJson", "tasks", "t"]
7
- }
@@ -1,25 +0,0 @@
1
- import{a as ee}from"./chunk-KKIL22RY.js";import{a as te}from"./chunk-6FVHOLT7.js";import{b as H,c as R,e as y,j as Z}from"./chunk-CNNOPE5K.js";import"./chunk-L2XBSR7G.js";import{b as W}from"./chunk-577KP32Z.js";import"./chunk-WZ2PO6H2.js";import{a as X,c as Q,d as _,j as Y,t as j,u as K}from"./chunk-ULJYEUQG.js";import"./chunk-2HJS3KFB.js";import"./chunk-F6BGQ4LG.js";import"./chunk-ZYDMXS5R.js";import{R as w,a as A,d as O,h as z,v as J}from"./chunk-IQSZEOYY.js";import"./chunk-GZTHIOXS.js";import"./chunk-72J7X5LR.js";import"./chunk-X4XSYLCE.js";import{b as i,d as F,ma as G,p as V,pa as q,ra as p,ta as t}from"./chunk-ALSXPCRD.js";import"./chunk-GFQYFEEH.js";import{a as m,h as M}from"./chunk-7DYQUG5M.js";M();import le from"node:assert";var Re={...te,"--env":{type:String,alias:["-e","--environment","--from"]},"--allow-problems":{type:Boolean,alias:"--allow-issues"},"--allow-charges":{type:Boolean},"--allow-data-delete":{type:Boolean}},_e=m(n=>p`
2
- Deploys your app to production.
3
-
4
- This command first performs a sync to ensure that your local and environment directories
5
- match, changes are tracked since last sync. If any conflicts are detected, they must be
6
- resolved before deployment.
7
-
8
- {gray Usage}
9
- $ ggt deploy [options]
10
-
11
- {gray Options}
12
- -a, --app <app_name> Selects a specific app to deploy. Defaults to the app synced to the current directory, if there is one.
13
- --from, -e, --env <env_name> Selects a specific environment to sync and deploy from. Defaults to the environment synced to the current directory, if there is one.
14
- --force Deploys by discarding any changes made to the environment directory since last sync
15
- --allow-different-directory Deploys from any local directory with existing files, even if the directory hasn't been synced before
16
- --allow-different-app Deploys a different app using the --app command, instead of the most recently synced one in the current directory
17
- --allow-problems Deploys despite any existing issues found in the app (gelly errors, typescript errors etc.)
18
- --allow-data-delete Deploys even if it results in the deletion of data in production
19
- --allow-charges Deploys even if it results in additional charges to your plan
20
-
21
- {gray Examples}
22
- Deploys code from the staging environment of a myBlog
23
- {cyanBright $ ggt deploy -a myBlog -from staging}
24
- `,"usage"),Pe=m(async(n,r)=>{let ne=await K(process.cwd()),s=await j.loadOrAskAndInit(n,{command:"deploy",args:r,directory:ne});t({ensureEmptyLineAbove:!0,content:`Deploying ${s.environment.name} to ${A(s.environment.application.primaryDomain,`https://${s.environment.application.primaryDomain}/`)}`});let T=new Z(s),c=await T.hashes(n);if(!c.inSync&&(c.localChangesToPush.size>0||!c.onlyDotGadgetFilesChanged)){if(await T.print(n,{hashes:c}),!r["--force"])if(t({ensureEmptyLineAbove:!0,content:"Your environment's files must match your local files before you can deploy."}),G.isInteractive||F.testLike){let a;switch(!0){case c.bothChanged:a=p`Would you like to push your local changes and {underline discard your environment's} changes now?`;break;case c.localChangesToPush.size>0:a=p`Would you like to push your local changes now?`;break;case c.environmentChanges.size>0:a=p`Do you want to {underline discard your environment's} changes now?`;break;default:ee("no changes to push or discard")}await w(a)}else t({ensureEmptyLineAbove:!0,content:"Assuming you want to push your local files now."});await T.push(n,{command:"deploy",hashes:c})}let I={localFilesVersion:String(s.filesVersion),force:r["--allow-problems"],allowDeletedData:r["--allow-data-delete"],allowCharges:r["--allow-charges"]},E,f=e.NOT_STARTED,B=!1,v=s.edit.subscribe({subscription:J,variables:I,onError:m(async a=>{n.log.error("failed to deploy",{error:a}),E?.fail(P(s,f)+" "+y());let D=V(a.cause);if(D){let l=D[0];switch(le(l,"expected graphqlError to be defined"),!0){case l.extensions.requiresUpgrade:t({ensureEmptyLineAbove:!0,content:l.message.replace(/GGT_PAYMENT_REQUIRED:?\s*/,"")}),process.exit(1);case l.extensions.requiresAdditionalCharge:t({ensureEmptyLineAbove:!0,content:l.message.replace(/GGT_PAYMENT_REQUIRED:?\s*/,"")}),await w({ensureEmptyLineAbove:!0,content:"Do you want to continue?"}),v.resubscribe({...I,allowCharges:!0});return}}await O(n,a)},"onError"),onData:m(async({publishStatus:a})=>{if(!a){n.log.warn("received empty publish status");return}let{publishStarted:D,progress:l,issues:N,status:g,deletedModelsAndFields:re}=a,C=N.length>0,{deletedModels:U,deletedModelFields:$}=re??{deletedModels:[],deletedModelFields:[]},x=U.length>0||$.length>0;if(!B&&(C||x)){B=!0;let d=N.filter(u=>u.severity===X.Fatal);if(d.length>0&&await O(n,new Y(_(d))),C&&(t({ensureEmptyLineAbove:!0,content:p`{bold.yellow !} {bold Issues found in your development app}`}),Q({problems:_(N)})),x){t({ensureEmptyLineAbove:!0,content:p`{bold.yellow !} {bold Data deleted on deploy}`});let u=i.blueBright("updated"),b=i.redBright("deleted"),S=[];U.forEach(o=>{S.push({symbol:R,name:i.redBright(o),action:b,indent:0})}),$.forEach(({modelIdentifier:o,fields:h})=>{S.push({symbol:H,name:i.blueBright(o),action:u,indent:0}),h.forEach(L=>{S.push({symbol:R,name:i.redBright(L),action:b,indent:2})})});let se=S.reduce((o,h)=>Math.max(o,h.name.length),0),ae=S.reduce((o,h)=>Math.max(o,h.indent),0),k=2;t({ensureEmptyLineAbove:!0,content:i.gray("These changes will be applied to production based on the app you're deploying.")});for(let o of S){let h=" ".repeat(o.indent*k),L=" ".repeat(se-o.name.length+2),ie=" ".repeat((ae-o.indent)*k);t({ensureEmptyLineAbove:!1,content:q(`${h}${o.symbol} ${o.name}${L}${ie}${o.action}`,6)})}}if(!D)await w("Do you want to continue?"),v.resubscribe({...I,force:!0,allowDeletedData:!0});else{let u=r["--allow-data-delete"],b=r["--allow-problems"];if(!u&&!b)throw new z("expected --allow-data-delete or --allow-problems to be true");b&&t(p`Deploying regardless of problems because "${i.gray("--allow-problems")}" was passed.`),u&&t(p`Deploying regardless of deleted data because "${i.gray("--allow-data-delete")}" was passed.`)}return}if(g?.code==="Errored"){E?.fail(P(s,f)+" "+y()),g.message&&t({ensureEmptyLineAbove:!0,content:i.red(g.message)}),g.output&&t({ensureEmptyLineAbove:!0,content:p`${A("Check logs",g.output)}`});return}if(l===e.COMPLETED){E?.succeed(oe(s,f));let d=i.green("Deploy successful!");g?.output&&(d+=` ${A("Check logs",g.output)}.`),t({ensureEmptyLineAbove:!0,content:d});return}if(l!==f){let d=P(s,l);if(d!==E?.text){E?.succeed(oe(s,f));let u=f===e.NOT_STARTED||!G.isInteractive;E=W({ensureEmptyLineAbove:u,content:d})}f=l}},"onData"),onComplete:m(()=>{v.unsubscribe()},"onComplete")})},"run"),e=Object.freeze({NOT_STARTED:"NOT_STARTED",STARTING:"STARTING",BUILDING_ASSETS:"BUILDING_ASSETS",UPLOADING_ASSETS:"UPLOADING_ASSETS",CONVERGING_STORAGE:"CONVERGING_STORAGE",PUBLISHING_TREE:"PUBLISHING_TREE",RELOADING_SANDBOX:"RELOADING_SANDBOX",COMPLETED:"COMPLETED"}),P=m((n,r)=>{switch(r){case e.NOT_STARTED:case e.STARTING:case e.BUILDING_ASSETS:case e.UPLOADING_ASSETS:return"Building frontend assets.";case e.CONVERGING_STORAGE:return"Setting up database.";case e.PUBLISHING_TREE:return`Copying ${n.environment.name}.`;case e.RELOADING_SANDBOX:return"Restarting app.";case e.COMPLETED:return"Deploy complete!";default:return"Unknown step."}},"stepToSpinnerStart"),oe=m((n,r)=>{switch(r){case e.NOT_STARTED:case e.STARTING:case e.BUILDING_ASSETS:case e.UPLOADING_ASSETS:return`Built frontend assets. ${y()}`;case e.CONVERGING_STORAGE:return`Setup database. ${y()}`;case e.PUBLISHING_TREE:return`Copied ${n.environment.name}. ${y()}`;case e.RELOADING_SANDBOX:return`Restarted app. ${y()}`;case e.COMPLETED:return"Deploy successful!";default:return`Completed unknown step. ${y()}`}},"stepToSpinnerEnd");export{e as AppDeploymentSteps,Re as args,Pe as run,oe as stepToSpinnerEnd,P as stepToSpinnerStart,_e as usage};
25
- //# sourceMappingURL=deploy-JCREEGBA.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/commands/deploy.ts"],
4
- "sourcesContent": ["import assert from \"node:assert\";\n\nimport chalk from \"chalk\";\nimport indentString from \"indent-string\";\nimport terminalLink from \"terminal-link\";\n\nimport { PUBLISH_STATUS_SUBSCRIPTION } from \"../services/app/edit/operation.js\";\nimport { type Run, type Usage } from \"../services/command/command.js\";\nimport { env } from \"../services/config/env.js\";\nimport { deletedSymbol, updatedSymbol } from \"../services/filesync/changes.js\";\nimport { DeployDisallowedError } from \"../services/filesync/error.js\";\nimport { FileSync } from \"../services/filesync/filesync.js\";\nimport { SyncJson, loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { confirm } from \"../services/output/confirm.js\";\nimport { output } from \"../services/output/output.js\";\nimport { println } from \"../services/output/print.js\";\nimport { ProblemSeverity, printProblems, publishIssuesToProblems } from \"../services/output/problems.js\";\nimport { UnexpectedError, reportErrorAndExit } from \"../services/output/report.js\";\nimport { spin, type spinner } from \"../services/output/spinner.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { ts } from \"../services/output/timestamp.js\";\nimport { unreachable } from \"../services/util/assert.js\";\nimport { parseGraphQLErrors } from \"../services/util/is.js\";\nimport { args as PushArgs } from \"./push.js\";\n\nexport type DeployArgs = typeof args;\n\nexport const args = {\n ...PushArgs,\n \"--env\": { type: String, alias: [\"-e\", \"--environment\", \"--from\"] },\n \"--allow-problems\": { type: Boolean, alias: \"--allow-issues\" },\n \"--allow-charges\": { type: Boolean },\n \"--allow-data-delete\": { type: Boolean },\n};\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n Deploys your app to production.\n\n This command first performs a sync to ensure that your local and environment directories\n match, changes are tracked since last sync. If any conflicts are detected, they must be\n resolved before deployment.\n\n {gray Usage}\n $ ggt deploy [options]\n\n {gray Options}\n -a, --app <app_name> Selects a specific app to deploy. Defaults to the app synced to the current directory, if there is one.\n --from, -e, --env <env_name> Selects a specific environment to sync and deploy from. Defaults to the environment synced to the current directory, if there is one.\n --force Deploys by discarding any changes made to the environment directory since last sync\n --allow-different-directory Deploys from any local directory with existing files, even if the directory hasn't been synced before\n --allow-different-app Deploys a different app using the --app command, instead of the most recently synced one in the current directory\n --allow-problems Deploys despite any existing issues found in the app (gelly errors, typescript errors etc.)\n --allow-data-delete Deploys even if it results in the deletion of data in production\n --allow-charges Deploys even if it results in additional charges to your plan\n\n {gray Examples}\n Deploys code from the staging environment of a myBlog\n {cyanBright $ ggt deploy -a myBlog -from staging}\n`;\n};\n\nexport const run: Run<DeployArgs> = async (ctx, args) => {\n const directory = await loadSyncJsonDirectory(process.cwd());\n const syncJson = await SyncJson.loadOrAskAndInit(ctx, { command: \"deploy\", args, directory });\n\n println({\n ensureEmptyLineAbove: true,\n content: `Deploying ${syncJson.environment.name} to ${terminalLink(syncJson.environment.application.primaryDomain, `https://${syncJson.environment.application.primaryDomain}/`)}`,\n });\n\n const filesync = new FileSync(syncJson);\n const hashes = await filesync.hashes(ctx);\n if (!hashes.inSync && (hashes.localChangesToPush.size > 0 || !hashes.onlyDotGadgetFilesChanged)) {\n // the following is true:\n // 1. our local files don't match our environment's files\n // 2. we have local changes to push or non .gadget/ files have changed on our environment\n // therefore, we need to push before we can deploy\n await filesync.print(ctx, { hashes });\n\n if (!args[\"--force\"]) {\n // they didn't pass --force, so we need to ask them if they want to push\n println({\n ensureEmptyLineAbove: true,\n content: \"Your environment's files must match your local files before you can deploy.\",\n });\n\n if (output.isInteractive || env.testLike) {\n // we're interactive, so ask them what they want to do\n let content: string;\n switch (true) {\n case hashes.bothChanged:\n content = sprint`Would you like to push your local changes and {underline discard your environment's} changes now?`;\n break;\n case hashes.localChangesToPush.size > 0:\n content = sprint`Would you like to push your local changes now?`;\n break;\n case hashes.environmentChanges.size > 0:\n content = sprint`Do you want to {underline discard your environment's} changes now?`;\n break;\n default:\n unreachable(\"no changes to push or discard\");\n }\n\n await confirm(content);\n } else {\n // we're not interactive, so we're likely in a CI/CD environment\n // assume they want to push\n println({\n ensureEmptyLineAbove: true,\n content: \"Assuming you want to push your local files now.\",\n });\n }\n }\n\n await filesync.push(ctx, { command: \"deploy\", hashes });\n }\n\n const variables = {\n localFilesVersion: String(syncJson.filesVersion),\n force: args[\"--allow-problems\"],\n allowDeletedData: args[\"--allow-data-delete\"],\n allowCharges: args[\"--allow-charges\"],\n };\n\n let spinner: spinner | undefined;\n let currentStep: AppDeploymentSteps = AppDeploymentSteps.NOT_STARTED;\n let printedProblems = false;\n\n const subscription = syncJson.edit.subscribe({\n subscription: PUBLISH_STATUS_SUBSCRIPTION,\n variables,\n onError: async (error) => {\n ctx.log.error(\"failed to deploy\", { error });\n spinner?.fail(stepToSpinnerStart(syncJson, currentStep) + \" \" + ts());\n\n const graphqlErrors = parseGraphQLErrors(error.cause);\n if (graphqlErrors) {\n const graphqlError = graphqlErrors[0];\n assert(graphqlError, \"expected graphqlError to be defined\");\n\n switch (true) {\n case graphqlError.extensions[\"requiresUpgrade\"]:\n println({ ensureEmptyLineAbove: true, content: graphqlError.message.replace(/GGT_PAYMENT_REQUIRED:?\\s*/, \"\") });\n process.exit(1);\n // falls through\n case graphqlError.extensions[\"requiresAdditionalCharge\"]:\n println({ ensureEmptyLineAbove: true, content: graphqlError.message.replace(/GGT_PAYMENT_REQUIRED:?\\s*/, \"\") });\n await confirm({ ensureEmptyLineAbove: true, content: \"Do you want to continue?\" });\n subscription.resubscribe({ ...variables, allowCharges: true });\n return;\n }\n }\n\n await reportErrorAndExit(ctx, error);\n },\n onData: async ({ publishStatus }): Promise<void> => {\n if (!publishStatus) {\n ctx.log.warn(\"received empty publish status\");\n return;\n }\n\n const { publishStarted, progress: step, issues, status, deletedModelsAndFields } = publishStatus;\n const hasIssues = issues.length > 0;\n\n const { deletedModels, deletedModelFields } = deletedModelsAndFields ?? { deletedModels: [], deletedModelFields: [] };\n const hasDataLoss = deletedModels.length > 0 || deletedModelFields.length > 0;\n\n if (!printedProblems && (hasIssues || hasDataLoss)) {\n printedProblems = true;\n\n const fatalIssues = issues.filter((issue) => issue.severity === ProblemSeverity.Fatal);\n if (fatalIssues.length > 0) {\n await reportErrorAndExit(ctx, new DeployDisallowedError(publishIssuesToProblems(fatalIssues)));\n }\n\n if (hasIssues) {\n println({ ensureEmptyLineAbove: true, content: sprint`{bold.yellow !} {bold Issues found in your development app}` });\n printProblems({ problems: publishIssuesToProblems(issues) });\n }\n\n if (hasDataLoss) {\n println({\n ensureEmptyLineAbove: true,\n content: sprint`{bold.yellow !} {bold Data deleted on deploy}`,\n });\n\n const updated = chalk.blueBright(\"updated\");\n const deleted = chalk.redBright(\"deleted\");\n\n const rows: { symbol: string; name: string; action: string; indent: number }[] = [];\n\n deletedModels.forEach((model: string) => {\n rows.push({ symbol: deletedSymbol, name: chalk.redBright(model), action: deleted, indent: 0 });\n });\n\n deletedModelFields.forEach(({ modelIdentifier, fields }) => {\n rows.push({ symbol: updatedSymbol, name: chalk.blueBright(modelIdentifier), action: updated, indent: 0 });\n fields.forEach((field) => {\n rows.push({ symbol: deletedSymbol, name: chalk.redBright(field), action: deleted, indent: 2 });\n });\n });\n\n const longestNameLength = rows.reduce((longest, row) => Math.max(longest, row.name.length), 0);\n const longestIndent = rows.reduce((longest, row) => Math.max(longest, row.indent), 0);\n const indentSize = 2;\n\n println({\n ensureEmptyLineAbove: true,\n content: chalk.gray(\"These changes will be applied to production based on the app you're deploying.\"),\n });\n for (const row of rows) {\n const indentation = \" \".repeat(row.indent * indentSize);\n const namePadding = \" \".repeat(longestNameLength - row.name.length + 2);\n const actionPadding = \" \".repeat((longestIndent - row.indent) * indentSize);\n println({\n ensureEmptyLineAbove: false,\n content: indentString(`${indentation}${row.symbol} ${row.name}${namePadding}${actionPadding}${row.action}`, 6),\n });\n }\n }\n\n if (!publishStarted) {\n await confirm(\"Do you want to continue?\");\n subscription.resubscribe({ ...variables, force: true, allowDeletedData: true });\n } else {\n const allowDataDelete = args[\"--allow-data-delete\"];\n const allowProblems = args[\"--allow-problems\"];\n\n if (!allowDataDelete && !allowProblems) {\n throw new UnexpectedError(\"expected --allow-data-delete or --allow-problems to be true\");\n }\n\n if (allowProblems) {\n println(sprint`Deploying regardless of problems because \"${chalk.gray(\"--allow-problems\")}\" was passed.`);\n }\n\n if (allowDataDelete) {\n println(sprint`Deploying regardless of deleted data because \"${chalk.gray(\"--allow-data-delete\")}\" was passed.`);\n }\n }\n\n return;\n }\n\n if (status?.code === \"Errored\") {\n spinner?.fail(stepToSpinnerStart(syncJson, currentStep) + \" \" + ts());\n\n if (status.message) {\n println({ ensureEmptyLineAbove: true, content: chalk.red(status.message) });\n }\n if (status.output) {\n println({ ensureEmptyLineAbove: true, content: sprint`${terminalLink(\"Check logs\", status.output)}` });\n }\n return;\n }\n\n if (step === AppDeploymentSteps.COMPLETED) {\n spinner?.succeed(stepToSpinnerEnd(syncJson, currentStep));\n\n let content = chalk.green(\"Deploy successful!\");\n if (status?.output) {\n content += ` ${terminalLink(\"Check logs\", status.output)}.`;\n }\n\n println({ ensureEmptyLineAbove: true, content });\n return;\n }\n\n if (step !== currentStep) {\n const spinnerText = stepToSpinnerStart(syncJson, step);\n if (spinnerText !== spinner?.text) {\n // stop the current spinner, if any, and start a new one\n spinner?.succeed(stepToSpinnerEnd(syncJson, currentStep));\n\n const ensureEmptyLineAbove = currentStep === AppDeploymentSteps.NOT_STARTED || !output.isInteractive;\n spinner = spin({ ensureEmptyLineAbove, content: spinnerText });\n }\n\n currentStep = step as AppDeploymentSteps;\n }\n },\n onComplete: () => {\n subscription.unsubscribe();\n },\n });\n};\n\nexport const AppDeploymentSteps = Object.freeze({\n NOT_STARTED: \"NOT_STARTED\",\n STARTING: \"STARTING\",\n BUILDING_ASSETS: \"BUILDING_ASSETS\",\n UPLOADING_ASSETS: \"UPLOADING_ASSETS\",\n CONVERGING_STORAGE: \"CONVERGING_STORAGE\",\n PUBLISHING_TREE: \"PUBLISHING_TREE\",\n RELOADING_SANDBOX: \"RELOADING_SANDBOX\",\n COMPLETED: \"COMPLETED\",\n});\n\nexport type AppDeploymentSteps = (typeof AppDeploymentSteps)[keyof typeof AppDeploymentSteps];\n\nexport const stepToSpinnerStart = (syncJson: SyncJson, step: string): string => {\n switch (step) {\n case AppDeploymentSteps.NOT_STARTED:\n case AppDeploymentSteps.STARTING:\n case AppDeploymentSteps.BUILDING_ASSETS:\n case AppDeploymentSteps.UPLOADING_ASSETS:\n return \"Building frontend assets.\";\n case AppDeploymentSteps.CONVERGING_STORAGE:\n return \"Setting up database.\";\n case AppDeploymentSteps.PUBLISHING_TREE:\n return `Copying ${syncJson.environment.name}.`;\n case AppDeploymentSteps.RELOADING_SANDBOX:\n return \"Restarting app.\";\n case AppDeploymentSteps.COMPLETED:\n return \"Deploy complete!\";\n default:\n return \"Unknown step.\";\n }\n};\n\nexport const stepToSpinnerEnd = (syncJson: SyncJson, step: string): string => {\n switch (step) {\n case AppDeploymentSteps.NOT_STARTED:\n case AppDeploymentSteps.STARTING:\n case AppDeploymentSteps.BUILDING_ASSETS:\n case AppDeploymentSteps.UPLOADING_ASSETS:\n return `Built frontend assets. ${ts()}`;\n case AppDeploymentSteps.CONVERGING_STORAGE:\n return `Setup database. ${ts()}`;\n case AppDeploymentSteps.PUBLISHING_TREE:\n return `Copied ${syncJson.environment.name}. ${ts()}`;\n case AppDeploymentSteps.RELOADING_SANDBOX:\n return `Restarted app. ${ts()}`;\n case AppDeploymentSteps.COMPLETED:\n return \"Deploy successful!\";\n default:\n return `Completed unknown step. ${ts()}`;\n }\n};\n"],
5
- "mappings": "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",
6
- "names": ["init_cjs", "assert", "args", "usage", "__name", "_ctx", "sprint", "run", "ctx", "directory", "loadSyncJsonDirectory", "syncJson", "SyncJson", "println", "terminalLink", "filesync", "FileSync", "hashes", "output", "env", "content", "unreachable", "confirm", "variables", "spinner", "currentStep", "AppDeploymentSteps", "printedProblems", "subscription", "PUBLISH_STATUS_SUBSCRIPTION", "error", "stepToSpinnerStart", "ts", "graphqlErrors", "parseGraphQLErrors", "graphqlError", "assert", "reportErrorAndExit", "publishStatus", "publishStarted", "step", "issues", "status", "deletedModelsAndFields", "hasIssues", "deletedModels", "deletedModelFields", "hasDataLoss", "fatalIssues", "issue", "ProblemSeverity", "DeployDisallowedError", "publishIssuesToProblems", "printProblems", "updated", "source_default", "deleted", "rows", "model", "deletedSymbol", "modelIdentifier", "fields", "updatedSymbol", "field", "longestNameLength", "longest", "row", "longestIndent", "indentSize", "indentation", "namePadding", "actionPadding", "indentString", "allowDataDelete", "allowProblems", "UnexpectedError", "stepToSpinnerEnd", "spinnerText", "ensureEmptyLineAbove", "spin"]
7
- }