@pmate/cli 0.12.6 → 0.12.8

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 (145) hide show
  1. package/dist/index.d.ts +346 -3
  2. package/dist/index.js +20884 -1474
  3. package/package.json +6 -5
  4. package/dist/agentCommandParser.d.ts +0 -2
  5. package/dist/agentCommandParser.js +0 -151
  6. package/dist/agentCommandParser.js.map +0 -1
  7. package/dist/alioss.d.ts +0 -21
  8. package/dist/alioss.js +0 -281
  9. package/dist/alioss.js.map +0 -1
  10. package/dist/appCommandParser.d.ts +0 -2
  11. package/dist/appCommandParser.js +0 -106
  12. package/dist/appCommandParser.js.map +0 -1
  13. package/dist/appDir.d.ts +0 -2
  14. package/dist/appDir.js +0 -33
  15. package/dist/appDir.js.map +0 -1
  16. package/dist/cli.d.ts +0 -8
  17. package/dist/cli.js +0 -43
  18. package/dist/cli.js.map +0 -1
  19. package/dist/commands/AddDnsCommandHandler.d.ts +0 -4
  20. package/dist/commands/AddDnsCommandHandler.js +0 -26
  21. package/dist/commands/AddDnsCommandHandler.js.map +0 -1
  22. package/dist/commands/AgentCommandHandler.d.ts +0 -11
  23. package/dist/commands/AgentCommandHandler.js +0 -146
  24. package/dist/commands/AgentCommandHandler.js.map +0 -1
  25. package/dist/commands/AppCommandHandler.d.ts +0 -10
  26. package/dist/commands/AppCommandHandler.js +0 -125
  27. package/dist/commands/AppCommandHandler.js.map +0 -1
  28. package/dist/commands/BucketCommandHandler.d.ts +0 -4
  29. package/dist/commands/BucketCommandHandler.js +0 -14
  30. package/dist/commands/BucketCommandHandler.js.map +0 -1
  31. package/dist/commands/CollectCommandHandler.d.ts +0 -20
  32. package/dist/commands/CollectCommandHandler.js +0 -470
  33. package/dist/commands/CollectCommandHandler.js.map +0 -1
  34. package/dist/commands/CommitCommandHandler.d.ts +0 -4
  35. package/dist/commands/CommitCommandHandler.js +0 -12
  36. package/dist/commands/CommitCommandHandler.js.map +0 -1
  37. package/dist/commands/DeployCommandHandler.d.ts +0 -20
  38. package/dist/commands/DeployCommandHandler.js +0 -297
  39. package/dist/commands/DeployCommandHandler.js.map +0 -1
  40. package/dist/commands/DevCommandHandler.d.ts +0 -8
  41. package/dist/commands/DevCommandHandler.js +0 -81
  42. package/dist/commands/DevCommandHandler.js.map +0 -1
  43. package/dist/commands/EnvCommandHandler.d.ts +0 -12
  44. package/dist/commands/EnvCommandHandler.js +0 -346
  45. package/dist/commands/EnvCommandHandler.js.map +0 -1
  46. package/dist/commands/InitCommandHandler.d.ts +0 -21
  47. package/dist/commands/InitCommandHandler.js +0 -468
  48. package/dist/commands/InitCommandHandler.js.map +0 -1
  49. package/dist/commands/LinearCommandHandler.d.ts +0 -52
  50. package/dist/commands/LinearCommandHandler.js +0 -1652
  51. package/dist/commands/LinearCommandHandler.js.map +0 -1
  52. package/dist/commands/ListCommandHandler.d.ts +0 -6
  53. package/dist/commands/ListCommandHandler.js +0 -43
  54. package/dist/commands/ListCommandHandler.js.map +0 -1
  55. package/dist/commands/LogCommandHandler.d.ts +0 -15
  56. package/dist/commands/LogCommandHandler.js +0 -201
  57. package/dist/commands/LogCommandHandler.js.map +0 -1
  58. package/dist/commands/LoginCommandHandler.d.ts +0 -11
  59. package/dist/commands/LoginCommandHandler.js +0 -178
  60. package/dist/commands/LoginCommandHandler.js.map +0 -1
  61. package/dist/commands/NotionCommandHandler.d.ts +0 -5
  62. package/dist/commands/NotionCommandHandler.js +0 -59
  63. package/dist/commands/NotionCommandHandler.js.map +0 -1
  64. package/dist/commands/OssCommandHandler.d.ts +0 -7
  65. package/dist/commands/OssCommandHandler.js +0 -82
  66. package/dist/commands/OssCommandHandler.js.map +0 -1
  67. package/dist/commands/PrCommandHandler.d.ts +0 -44
  68. package/dist/commands/PrCommandHandler.js +0 -639
  69. package/dist/commands/PrCommandHandler.js.map +0 -1
  70. package/dist/commands/QrcodeCommandHandler.d.ts +0 -9
  71. package/dist/commands/QrcodeCommandHandler.js +0 -135
  72. package/dist/commands/QrcodeCommandHandler.js.map +0 -1
  73. package/dist/commands/RandomCommandHandler.d.ts +0 -6
  74. package/dist/commands/RandomCommandHandler.js +0 -201
  75. package/dist/commands/RandomCommandHandler.js.map +0 -1
  76. package/dist/commands/StsCommandHandler.d.ts +0 -5
  77. package/dist/commands/StsCommandHandler.js +0 -45
  78. package/dist/commands/StsCommandHandler.js.map +0 -1
  79. package/dist/commands/SummaryCommandHandler.d.ts +0 -16
  80. package/dist/commands/SummaryCommandHandler.js +0 -190
  81. package/dist/commands/SummaryCommandHandler.js.map +0 -1
  82. package/dist/commands/VercelCommandHandler.d.ts +0 -38
  83. package/dist/commands/VercelCommandHandler.js +0 -126
  84. package/dist/commands/VercelCommandHandler.js.map +0 -1
  85. package/dist/config.d.ts +0 -62
  86. package/dist/config.js +0 -265
  87. package/dist/config.js.map +0 -1
  88. package/dist/index.js.map +0 -1
  89. package/dist/llm/AgentLlmClient.d.ts +0 -14
  90. package/dist/llm/AgentLlmClient.js +0 -81
  91. package/dist/llm/AgentLlmClient.js.map +0 -1
  92. package/dist/llm/types.d.ts +0 -37
  93. package/dist/llm/types.js +0 -3
  94. package/dist/llm/types.js.map +0 -1
  95. package/dist/serverAddress.d.ts +0 -2
  96. package/dist/serverAddress.js +0 -21
  97. package/dist/serverAddress.js.map +0 -1
  98. package/dist/services/AliyunService.d.ts +0 -68
  99. package/dist/services/AliyunService.js +0 -622
  100. package/dist/services/AliyunService.js.map +0 -1
  101. package/dist/services/NotionService.d.ts +0 -47
  102. package/dist/services/NotionService.js +0 -292
  103. package/dist/services/NotionService.js.map +0 -1
  104. package/dist/shell.d.ts +0 -2
  105. package/dist/shell.js +0 -11
  106. package/dist/shell.js.map +0 -1
  107. package/dist/tests/AgentCommandHandler.test.d.ts +0 -1
  108. package/dist/tests/AgentCommandHandler.test.js +0 -138
  109. package/dist/tests/AgentCommandHandler.test.js.map +0 -1
  110. package/dist/tests/AppCommandHandler.test.d.ts +0 -1
  111. package/dist/tests/AppCommandHandler.test.js +0 -94
  112. package/dist/tests/AppCommandHandler.test.js.map +0 -1
  113. package/dist/tests/LoginCommandHandler.test.d.ts +0 -1
  114. package/dist/tests/LoginCommandHandler.test.js +0 -13
  115. package/dist/tests/LoginCommandHandler.test.js.map +0 -1
  116. package/dist/tests/PrCommandHandler.test.d.ts +0 -1
  117. package/dist/tests/PrCommandHandler.test.js +0 -27
  118. package/dist/tests/PrCommandHandler.test.js.map +0 -1
  119. package/dist/tests/VercelCommandHandler.test.d.ts +0 -1
  120. package/dist/tests/VercelCommandHandler.test.js +0 -84
  121. package/dist/tests/VercelCommandHandler.test.js.map +0 -1
  122. package/dist/tests/agentCommandParser.test.d.ts +0 -1
  123. package/dist/tests/agentCommandParser.test.js +0 -75
  124. package/dist/tests/agentCommandParser.test.js.map +0 -1
  125. package/dist/tests/appCommandParser.test.d.ts +0 -1
  126. package/dist/tests/appCommandParser.test.js +0 -28
  127. package/dist/tests/appCommandParser.test.js.map +0 -1
  128. package/dist/tests/config.test.d.ts +0 -1
  129. package/dist/tests/config.test.js +0 -41
  130. package/dist/tests/config.test.js.map +0 -1
  131. package/dist/tests/pythonAppSupport.test.d.ts +0 -1
  132. package/dist/tests/pythonAppSupport.test.js +0 -47
  133. package/dist/tests/pythonAppSupport.test.js.map +0 -1
  134. package/dist/tests/serverAddress.test.d.ts +0 -1
  135. package/dist/tests/serverAddress.test.js +0 -14
  136. package/dist/tests/serverAddress.test.js.map +0 -1
  137. package/dist/tests/shell.test.d.ts +0 -1
  138. package/dist/tests/shell.test.js +0 -16
  139. package/dist/tests/shell.test.js.map +0 -1
  140. package/dist/tests/vercelParser.test.d.ts +0 -1
  141. package/dist/tests/vercelParser.test.js +0 -39
  142. package/dist/tests/vercelParser.test.js.map +0 -1
  143. package/dist/types.d.ts +0 -394
  144. package/dist/types.js +0 -30
  145. package/dist/types.js.map +0 -1
@@ -1,468 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InitCommandHandler = void 0;
4
- const tslib_1 = require("tslib");
5
- const node_fs_1 = require("node:fs");
6
- const node_path_1 = tslib_1.__importDefault(require("node:path"));
7
- const node_child_process_1 = require("node:child_process");
8
- const promises_1 = require("node:readline/promises");
9
- const yaml_1 = tslib_1.__importDefault(require("yaml"));
10
- const AliyunService_1 = require("../services/AliyunService");
11
- const cli_1 = require("../cli");
12
- const appDir_1 = require("../appDir");
13
- const serverAddress_1 = require("../serverAddress");
14
- class InitCommandHandler {
15
- async handle(args) {
16
- const appName = args.initApp.trim();
17
- if (!appName) {
18
- throw new Error("Missing app name. Usage: init <app-name> [--cwd <dir>].");
19
- }
20
- const cwd = this.resolveCwd(args.initCwd);
21
- const config = this.loadConfig(cwd);
22
- let appConfig = config.apps.find((entry) => (entry === null || entry === void 0 ? void 0 : entry.app) === appName);
23
- if (!appConfig) {
24
- appConfig = await this.addAppConfig(config, appName, cwd);
25
- }
26
- if (appConfig.type !== "rust") {
27
- const appDir = (0, appDir_1.resolveLocalAppDir)(cwd, appName, appConfig.dir);
28
- if (!(0, node_fs_1.existsSync)(appDir)) {
29
- throw new Error(`No app folder found at ${appDir}`);
30
- }
31
- }
32
- switch (appConfig.type) {
33
- case "vite":
34
- await this.initOSSCDN(config, appConfig, cwd);
35
- break;
36
- case "node":
37
- await this.initNode(appConfig, cwd);
38
- break;
39
- case "rust":
40
- await this.initRust(appConfig, cwd);
41
- break;
42
- case "python":
43
- await this.initPython(appConfig, cwd);
44
- break;
45
- case "static":
46
- await this.initOSSCDN(config, appConfig, cwd);
47
- break;
48
- default:
49
- throw new Error("Init not implemented for this app type.");
50
- }
51
- }
52
- async initOSSCDN(config, appConfig, cwd) {
53
- var _a, _b, _c;
54
- const appName = appConfig.app;
55
- const bucketName = (_a = appConfig.bucket) === null || _a === void 0 ? void 0 : _a.trim();
56
- if (!bucketName) {
57
- throw new Error(`Missing bucket for ${appName} in ${node_path_1.default.join(cwd, ".pmate.yaml")}`);
58
- }
59
- const baseDomain = (_b = config.domain) === null || _b === void 0 ? void 0 : _b.trim();
60
- if (!baseDomain) {
61
- throw new Error(`Missing domain in ${node_path_1.default.join(cwd, ".pmate.yaml")}`);
62
- }
63
- const subdomain = (_c = appConfig.subdomain) === null || _c === void 0 ? void 0 : _c.trim();
64
- const dnsRr = subdomain || "@";
65
- const cdnDomain = subdomain ? `${subdomain}.${baseDomain}` : baseDomain;
66
- await AliyunService_1.AliyunService.ensureBucket(bucketName);
67
- await this.sleep(2000);
68
- await AliyunService_1.AliyunService.ensureCdnDomain(cdnDomain, bucketName);
69
- await this.sleep(2000);
70
- await AliyunService_1.AliyunService.enableOssPrivateBucketOrigin(cdnDomain);
71
- await this.sleep(2000);
72
- cli_1.ui.success(`Enabled OSS private bucket origin for ${cdnDomain}`);
73
- await AliyunService_1.AliyunService.setDefaultCacheRules(cdnDomain);
74
- await this.sleep(2000);
75
- cli_1.ui.success(`Set default cache rules for ${cdnDomain}`);
76
- const cname = await AliyunService_1.AliyunService.getCdnCname(cdnDomain);
77
- if (!cname) {
78
- throw new Error(`No CNAME found for ${cdnDomain}. Try again in a minute.`);
79
- }
80
- cli_1.ui.info(`CNAME for ${cdnDomain}:`, cname);
81
- const existingCname = await AliyunService_1.AliyunService.getCnameRecordValue(baseDomain, dnsRr);
82
- if (existingCname) {
83
- if (existingCname !== cname) {
84
- throw new Error(`Existing CNAME record for ${cdnDomain} points to ${existingCname}, not ${cname}.`);
85
- }
86
- cli_1.ui.success(`CNAME record already exists for ${cdnDomain}`);
87
- }
88
- else {
89
- await AliyunService_1.AliyunService.addRecord({
90
- domainName: baseDomain,
91
- rr: dnsRr,
92
- type: "CNAME",
93
- value: cname,
94
- ttl: 600,
95
- });
96
- await this.sleep(2000);
97
- cli_1.ui.success(`Added CNAME record ${cdnDomain} -> ${cname}`);
98
- }
99
- if (!subdomain) {
100
- const wwwCname = await AliyunService_1.AliyunService.getCnameRecordValue(baseDomain, "www");
101
- if (wwwCname) {
102
- if (wwwCname !== baseDomain) {
103
- throw new Error(`Existing CNAME record for www.${baseDomain} points to ${wwwCname}, not ${baseDomain}.`);
104
- }
105
- cli_1.ui.success(`CNAME record already exists for www.${baseDomain}`);
106
- }
107
- else {
108
- await AliyunService_1.AliyunService.addRecord({
109
- domainName: baseDomain,
110
- rr: "www",
111
- type: "CNAME",
112
- value: baseDomain,
113
- ttl: 600,
114
- });
115
- await this.sleep(2000);
116
- cli_1.ui.success(`Added CNAME record www.${baseDomain} -> ${baseDomain}`);
117
- }
118
- }
119
- await AliyunService_1.AliyunService.enableHttpsCertificate(cdnDomain);
120
- await this.sleep(2000);
121
- cli_1.ui.success(`Enabled HTTPS certificate for ${cdnDomain}`);
122
- // await AliyunService.enableSpa404Fallback(cdnDomain)
123
- // ui.success(`Enabled SPA 404 fallback for ${cdnDomain}`)
124
- if (appConfig.type === "vite" && appConfig.routeType === "ssg") {
125
- await AliyunService_1.AliyunService.enableSsgRewriteRule(cdnDomain);
126
- await this.sleep(2000);
127
- cli_1.ui.success(`Enabled SSG rewrite rule for ${cdnDomain}`);
128
- }
129
- else {
130
- await AliyunService_1.AliyunService.enableSpaRewriteRule(cdnDomain);
131
- await this.sleep(2000);
132
- cli_1.ui.success(`Enabled SPA rewrite rule for ${cdnDomain}`);
133
- }
134
- }
135
- async initNode(appConfig, cwd) {
136
- console.log("Initializing node app...");
137
- await this.initServerApp(appConfig, cwd, { ensurePackageJson: true });
138
- }
139
- async initRust(appConfig, cwd) {
140
- console.log("Initializing rust app...");
141
- await this.initServerApp(appConfig, cwd, { ensurePackageJson: false });
142
- }
143
- async initPython(appConfig, cwd) {
144
- console.log("Initializing python app...");
145
- await this.initServerApp(appConfig, cwd, { ensurePackageJson: false });
146
- }
147
- async initServerApp(appConfig, cwd, options) {
148
- var _a, _b, _c;
149
- const subdomain = (_a = appConfig.subdomain) === null || _a === void 0 ? void 0 : _a.trim();
150
- if (subdomain) {
151
- console.log(`Subdomain: ${subdomain}`);
152
- }
153
- else {
154
- cli_1.ui.warn(`No subdomain configured for ${appConfig.app}; skipping nginx and DNS setup.`);
155
- }
156
- const hasPort = appConfig.port !== undefined &&
157
- appConfig.port !== null &&
158
- String(appConfig.port).trim() !== "";
159
- const port = hasPort ? Number(appConfig.port) : undefined;
160
- if (port !== undefined &&
161
- (!Number.isFinite(port) || port <= 0)) {
162
- throw new Error(`Invalid port for ${appConfig.app} in .pmate.yaml`);
163
- }
164
- if (port !== undefined) {
165
- console.log(`Port: ${port}`);
166
- }
167
- else {
168
- console.log("Port: none");
169
- }
170
- if (subdomain && port === undefined) {
171
- throw new Error(`Missing port for ${appConfig.app} in .pmate.yaml (required when subdomain is set)`);
172
- }
173
- const server = (_b = appConfig.server) === null || _b === void 0 ? void 0 : _b.trim();
174
- if (server) {
175
- console.log(`Server: ${server}`);
176
- }
177
- else {
178
- console.log("Server: none");
179
- }
180
- if (subdomain && !server) {
181
- throw new Error(`Missing server for ${appConfig.app} in .pmate.yaml`);
182
- }
183
- const serviceType = (appConfig.serviceType || "rest").trim();
184
- if (serviceType !== "rest" && serviceType !== "ws") {
185
- throw new Error(`Invalid serviceType "${serviceType}" for ${appConfig.app} in .pmate.yaml`);
186
- }
187
- if (subdomain) {
188
- const serverAddress = await (0, serverAddress_1.resolveServerAddress)(server);
189
- const templateName = serviceType === "ws" ? "nginx.ws.template" : "nginx.rest.template";
190
- const templatePath = node_path_1.default.join(__dirname, "..", "templates", templateName);
191
- if (!(0, node_fs_1.existsSync)(templatePath)) {
192
- throw new Error(`Missing nginx template at ${templatePath}`);
193
- }
194
- const template = (0, node_fs_1.readFileSync)(templatePath, "utf8");
195
- const host = `${subdomain}.pmate.chat`;
196
- const rendered = template
197
- .replace(/\$\{\{PORT\}\}/g, String(port))
198
- .replace(/\$\{\{HOSTS\}\}/g, host)
199
- .replace(/\$\{\{HOST\}\}/g, host);
200
- const remotePath = `/etc/nginx/sites-enabled/${subdomain}.conf`;
201
- cli_1.ui.info(`Uploading nginx config to ${server}`);
202
- await this.writeRemoteConfig(server, rendered, remotePath);
203
- cli_1.ui.success(`Uploaded nginx config to ${server}`, remotePath);
204
- await this.reloadNginx(server);
205
- cli_1.ui.success(`Reloaded nginx on ${server}`);
206
- const baseDomain = "pmate.chat";
207
- const existingA = await AliyunService_1.AliyunService.getARecordValue(baseDomain, subdomain);
208
- if (existingA) {
209
- if (existingA !== serverAddress) {
210
- throw new Error(`Existing A record for ${subdomain}.${baseDomain} points to ${existingA}, not ${serverAddress}.`);
211
- }
212
- cli_1.ui.success(`A record already exists for ${subdomain}.${baseDomain}`);
213
- }
214
- else {
215
- await AliyunService_1.AliyunService.addRecord({
216
- domainName: baseDomain,
217
- rr: subdomain,
218
- type: "A",
219
- value: serverAddress,
220
- ttl: 600,
221
- });
222
- await this.sleep(2000);
223
- cli_1.ui.success(`Added A record ${subdomain}.${baseDomain} -> ${serverAddress}`);
224
- }
225
- }
226
- if (options.ensurePackageJson) {
227
- const appDir = (0, appDir_1.resolveLocalAppDir)(cwd, appConfig.app, appConfig.dir);
228
- cli_1.ui.info(`Resolved appDir: ${appDir}`);
229
- if (!(0, node_fs_1.existsSync)(appDir)) {
230
- throw new Error(`Missing app folder at ${appDir}`);
231
- }
232
- const packageJsonPath = node_path_1.default.join(appDir, "package.json");
233
- cli_1.ui.info(`Resolved package.json: ${packageJsonPath}`);
234
- if (!(0, node_fs_1.existsSync)(packageJsonPath)) {
235
- throw new Error(`Missing package.json at ${packageJsonPath}`);
236
- }
237
- const pkgStat = (0, node_fs_1.statSync)(packageJsonPath);
238
- cli_1.ui.info(`package.json stat: isFile=${pkgStat.isFile()} isDirectory=${pkgStat.isDirectory()}`);
239
- if (!pkgStat.isFile()) {
240
- throw new Error(`package.json is not a file at ${packageJsonPath}`);
241
- }
242
- const pkg = this.loadPackageJson(packageJsonPath);
243
- pkg.scripts = (_c = pkg.scripts) !== null && _c !== void 0 ? _c : {};
244
- if (!pkg.scripts.serve) {
245
- pkg.scripts.serve = "npm run start";
246
- this.writePackageJson(packageJsonPath, pkg);
247
- cli_1.ui.success(`Added serve script to ${packageJsonPath}`);
248
- }
249
- else {
250
- cli_1.ui.warn(`serve script already exists in ${packageJsonPath}`);
251
- }
252
- }
253
- }
254
- writeRemoteConfig(server, content, remotePath) {
255
- return new Promise((resolve, reject) => {
256
- const target = `pmate@${server}`;
257
- const child = (0, node_child_process_1.spawn)("ssh", [target, "sudo", "tee", remotePath], {
258
- stdio: ["pipe", "inherit", "inherit"],
259
- });
260
- child.on("error", (error) => {
261
- reject(error);
262
- });
263
- child.stdin.write(content);
264
- if (!content.endsWith("\n")) {
265
- child.stdin.write("\n");
266
- }
267
- child.stdin.end();
268
- child.on("close", (code) => {
269
- if (code === 0) {
270
- resolve();
271
- return;
272
- }
273
- reject(new Error(`ssh to ${server} exited with code ${code}`));
274
- });
275
- });
276
- }
277
- reloadNginx(server) {
278
- return new Promise((resolve, reject) => {
279
- const target = `pmate@${server}`;
280
- const child = (0, node_child_process_1.spawn)("ssh", [target, "sudo", "nginx", "-s", "reload"], {
281
- stdio: ["ignore", "inherit", "inherit"],
282
- });
283
- child.on("error", (error) => {
284
- reject(error);
285
- });
286
- child.on("close", (code) => {
287
- if (code === 0) {
288
- resolve();
289
- return;
290
- }
291
- reject(new Error(`nginx reload on ${server} exited with code ${code}`));
292
- });
293
- });
294
- }
295
- resolveCwd(target) {
296
- return target ? node_path_1.default.resolve(process.cwd(), target) : process.cwd();
297
- }
298
- sleep(ms) {
299
- return new Promise((resolve) => setTimeout(resolve, ms));
300
- }
301
- loadConfig(cwd) {
302
- const configPath = node_path_1.default.join(cwd, ".pmate.yaml");
303
- if (!(0, node_fs_1.existsSync)(configPath)) {
304
- throw new Error(`No .pmate.yaml found in ${cwd}`);
305
- }
306
- const raw = (0, node_fs_1.readFileSync)(configPath, "utf8");
307
- const parsed = yaml_1.default.parse(raw);
308
- if (!parsed || typeof parsed !== "object" || !Array.isArray(parsed.apps)) {
309
- throw new Error("Invalid .pmate.yaml: missing apps array");
310
- }
311
- return parsed;
312
- }
313
- async addAppConfig(config, appName, cwd) {
314
- cli_1.ui.title(`App ${appName} not found in .pmate.yaml.`);
315
- cli_1.ui.info("Let's add it now.");
316
- const rl = (0, promises_1.createInterface)({
317
- input: process.stdin,
318
- output: process.stdout,
319
- });
320
- try {
321
- const type = (await this.promptChoice(rl, "App type (vite/static/node/rust/python): ", ["vite", "static", "node", "rust", "python"]));
322
- if (type === "vite" || type === "static") {
323
- const bucket = await this.promptRequired(rl, "Bucket name: ");
324
- const subdomainInput = (await rl.question("Subdomain (optional): ")).trim();
325
- let baseEntry;
326
- if (type === "vite") {
327
- const routeTypeInput = (await rl.question("Route type (spa/ssg, default spa): "))
328
- .trim()
329
- .toLowerCase();
330
- if (routeTypeInput && routeTypeInput !== "spa" && routeTypeInput !== "ssg") {
331
- throw new Error("Invalid route type. Use spa or ssg.");
332
- }
333
- baseEntry = {
334
- type,
335
- app: appName,
336
- dir: `apps/${appName}`,
337
- bucket,
338
- routeType: (routeTypeInput || "spa"),
339
- };
340
- }
341
- else {
342
- baseEntry = {
343
- type,
344
- app: appName,
345
- dir: `apps/${appName}`,
346
- bucket,
347
- };
348
- }
349
- if (subdomainInput) {
350
- baseEntry.subdomain = subdomainInput;
351
- }
352
- config.apps.push(baseEntry);
353
- this.writeConfig(cwd, config);
354
- cli_1.ui.success(`Added ${appName} to .pmate.yaml`);
355
- return baseEntry;
356
- }
357
- else {
358
- const subdomainInput = (await rl.question("Subdomain (optional): ")).trim();
359
- const server = await this.promptRequired(rl, "Server IP/host: ");
360
- const portInput = (await rl.question("Port (optional): ")).trim();
361
- let port;
362
- if (portInput) {
363
- port = Number(portInput);
364
- if (!Number.isFinite(port) || port <= 0) {
365
- throw new Error("Invalid port. Use a positive number.");
366
- }
367
- }
368
- if (subdomainInput && port === undefined) {
369
- throw new Error("Port is required when subdomain is set.");
370
- }
371
- const serviceTypeInput = (await rl.question("Service type (rest/ws, default rest): "))
372
- .trim()
373
- .toLowerCase();
374
- const serviceType = serviceTypeInput || "rest";
375
- if (serviceType !== "rest" && serviceType !== "ws") {
376
- throw new Error("Invalid service type. Use rest or ws.");
377
- }
378
- const repositoryInput = (await rl.question("Repository (owner/name, optional): ")).trim();
379
- let baseEntry;
380
- if (type === "rust" || type === "python") {
381
- const script = await this.promptRequired(rl, "Manage script (relative to repo root): ");
382
- baseEntry = {
383
- type,
384
- app: appName,
385
- dir: `apps/${appName}`,
386
- server,
387
- script,
388
- serviceType,
389
- };
390
- }
391
- else {
392
- baseEntry = {
393
- type,
394
- app: appName,
395
- dir: `apps/${appName}`,
396
- server,
397
- serviceType,
398
- };
399
- }
400
- if (port !== undefined) {
401
- baseEntry.port = port;
402
- }
403
- if (subdomainInput) {
404
- baseEntry.subdomain = subdomainInput;
405
- }
406
- if (repositoryInput) {
407
- baseEntry.repository = repositoryInput;
408
- }
409
- config.apps.push(baseEntry);
410
- this.writeConfig(cwd, config);
411
- cli_1.ui.success(`Added ${appName} to .pmate.yaml`);
412
- return baseEntry;
413
- }
414
- }
415
- finally {
416
- rl.close();
417
- }
418
- }
419
- loadPackageJson(packageJsonPath) {
420
- const raw = (0, node_fs_1.readFileSync)(packageJsonPath, "utf8");
421
- const parsed = JSON.parse(raw);
422
- if (!parsed || typeof parsed !== "object") {
423
- throw new Error(`Invalid package.json at ${packageJsonPath}`);
424
- }
425
- return parsed;
426
- }
427
- writePackageJson(packageJsonPath, data) {
428
- const serialized = JSON.stringify(data, null, 2);
429
- (0, node_fs_1.writeFileSync)(packageJsonPath, `${serialized}\n`, "utf8");
430
- }
431
- writeConfig(cwd, config) {
432
- const configPath = node_path_1.default.join(cwd, ".pmate.yaml");
433
- const serialized = yaml_1.default.stringify(config).trimEnd();
434
- (0, node_fs_1.writeFileSync)(configPath, `${serialized}\n`, "utf8");
435
- }
436
- async promptRequired(rl, question) {
437
- while (true) {
438
- const answer = (await rl.question(question)).trim();
439
- if (answer) {
440
- return answer;
441
- }
442
- cli_1.ui.warn("Please enter a value.");
443
- }
444
- }
445
- async promptChoice(rl, question, choices) {
446
- const normalized = choices.map((choice) => choice.toLowerCase());
447
- while (true) {
448
- const answer = (await rl.question(question)).trim().toLowerCase();
449
- const index = normalized.indexOf(answer);
450
- if (index >= 0) {
451
- return choices[index];
452
- }
453
- cli_1.ui.warn(`Please choose one of: ${choices.join(", ")}`);
454
- }
455
- }
456
- async promptNumber(rl, question) {
457
- while (true) {
458
- const answer = (await rl.question(question)).trim();
459
- const value = Number(answer);
460
- if (Number.isFinite(value) && value > 0) {
461
- return value;
462
- }
463
- cli_1.ui.warn("Please enter a valid number.");
464
- }
465
- }
466
- }
467
- exports.InitCommandHandler = InitCommandHandler;
468
- //# sourceMappingURL=InitCommandHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InitCommandHandler.js","sourceRoot":"","sources":["../../src/commands/InitCommandHandler.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import { LinearCommandArgs } from "../types";
2
- export declare class LinearCommandHandler {
3
- handle(args: LinearCommandArgs): Promise<void>;
4
- private getCurrentPr;
5
- private getCurrentCycle;
6
- private buildDescription;
7
- private resolveTeamId;
8
- private resolveLinearAccount;
9
- private getLinearSelectionPath;
10
- private readCachedLinearSelection;
11
- private writeCachedLinearSelection;
12
- private lookupIssue;
13
- private lookupIssueId;
14
- private lookupLinearUser;
15
- private formatUserLabel;
16
- private extractIssueIdentifier;
17
- private fetchIssueByIdentifier;
18
- private fetchIssueById;
19
- private printIssueDetails;
20
- private collectReplInput;
21
- private collectScreenshotInput;
22
- private captureScreenshotImage;
23
- private readMultiline;
24
- private parseImageInput;
25
- private readClipboardImage;
26
- private captureClipboardImageAsPng;
27
- private isProbablyText;
28
- private isTiff;
29
- private isPdf;
30
- private getClipboardDebugInfo;
31
- private toPrintableSample;
32
- private convertToPng;
33
- private captureClipboard;
34
- private detectImageMime;
35
- private extensionFromMime;
36
- private getPrDiff;
37
- private getAiDescription;
38
- private getAiTicketFromNotes;
39
- private attachImages;
40
- private uploadToLinear;
41
- private ensureGitRepo;
42
- private ensureGhAuth;
43
- private ensureGhCli;
44
- private run;
45
- private runCapture;
46
- private getGhEnv;
47
- private runGh;
48
- private runCaptureGh;
49
- private resolveCwd;
50
- private createOpenAiClient;
51
- private getResponseText;
52
- }