alpic 0.0.0-dev.fa013bb → 0.0.0-dev.fa5d228

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 (115) hide show
  1. package/dist/__tests__/auth.e2e.test.js +22 -8
  2. package/dist/__tests__/auth.e2e.test.js.map +1 -1
  3. package/dist/__tests__/deploy-flags.e2e.test.js +31 -7
  4. package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -1
  5. package/dist/__tests__/deploy.e2e.test.js +2 -2
  6. package/dist/__tests__/deploy.e2e.test.js.map +1 -1
  7. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.d.ts +1 -0
  8. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +250 -0
  9. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -0
  10. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.d.ts +1 -0
  11. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +122 -0
  12. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -0
  13. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.d.ts +1 -0
  14. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +139 -0
  15. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -0
  16. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.d.ts +1 -0
  17. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +319 -0
  18. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -0
  19. package/dist/__tests__/environment-variable/environment-variable-validation.test.d.ts +1 -0
  20. package/dist/__tests__/environment-variable/environment-variable-validation.test.js +20 -0
  21. package/dist/__tests__/environment-variable/environment-variable-validation.test.js.map +1 -0
  22. package/dist/__tests__/fixtures/demo-project/index.js +1 -1
  23. package/dist/__tests__/fixtures/demo-project/index.js.map +1 -1
  24. package/dist/__tests__/git-flags.e2e.test.js +10 -8
  25. package/dist/__tests__/git-flags.e2e.test.js.map +1 -1
  26. package/dist/__tests__/git.e2e.test.js +4 -4
  27. package/dist/__tests__/git.e2e.test.js.map +1 -1
  28. package/dist/__tests__/logs.e2e.test.d.ts +1 -0
  29. package/dist/__tests__/logs.e2e.test.js +197 -0
  30. package/dist/__tests__/logs.e2e.test.js.map +1 -0
  31. package/dist/__tests__/mock-server.d.ts +4 -0
  32. package/dist/__tests__/mock-server.js +140 -5
  33. package/dist/__tests__/mock-server.js.map +1 -1
  34. package/dist/__tests__/publish.e2e.test.d.ts +1 -0
  35. package/dist/__tests__/publish.e2e.test.js +282 -0
  36. package/dist/__tests__/publish.e2e.test.js.map +1 -0
  37. package/dist/__tests__/utils.d.ts +4 -1
  38. package/dist/__tests__/utils.js +27 -15
  39. package/dist/__tests__/utils.js.map +1 -1
  40. package/dist/commands/deploy.d.ts +1 -4
  41. package/dist/commands/deploy.js +14 -24
  42. package/dist/commands/deploy.js.map +1 -1
  43. package/dist/commands/environment-variable/add.d.ts +14 -0
  44. package/dist/commands/environment-variable/add.js +46 -0
  45. package/dist/commands/environment-variable/add.js.map +1 -0
  46. package/dist/commands/environment-variable/list.d.ts +9 -0
  47. package/dist/commands/environment-variable/list.js +44 -0
  48. package/dist/commands/environment-variable/list.js.map +1 -0
  49. package/dist/commands/environment-variable/remove.d.ts +11 -0
  50. package/dist/commands/environment-variable/remove.js +32 -0
  51. package/dist/commands/environment-variable/remove.js.map +1 -0
  52. package/dist/commands/environment-variable/update.d.ts +13 -0
  53. package/dist/commands/environment-variable/update.js +40 -0
  54. package/dist/commands/environment-variable/update.js.map +1 -0
  55. package/dist/commands/git/connect.d.ts +1 -4
  56. package/dist/commands/git/connect.js +12 -24
  57. package/dist/commands/git/connect.js.map +1 -1
  58. package/dist/commands/git/disconnect.d.ts +1 -4
  59. package/dist/commands/git/disconnect.js +9 -25
  60. package/dist/commands/git/disconnect.js.map +1 -1
  61. package/dist/commands/git.js +2 -2
  62. package/dist/commands/git.js.map +1 -1
  63. package/dist/commands/login.js +5 -10
  64. package/dist/commands/login.js.map +1 -1
  65. package/dist/commands/logs.d.ts +16 -0
  66. package/dist/commands/logs.js +96 -0
  67. package/dist/commands/logs.js.map +1 -0
  68. package/dist/commands/publish.d.ts +14 -0
  69. package/dist/commands/publish.js +27 -0
  70. package/dist/commands/publish.js.map +1 -0
  71. package/dist/commands/whoami.js +2 -14
  72. package/dist/commands/whoami.js.map +1 -1
  73. package/dist/lib/archive.d.ts +3 -3
  74. package/dist/lib/archive.js +11 -15
  75. package/dist/lib/archive.js.map +1 -1
  76. package/dist/lib/auth/whoami.d.ts +1 -28
  77. package/dist/lib/auth/whoami.js +24 -18
  78. package/dist/lib/auth/whoami.js.map +1 -1
  79. package/dist/lib/base-workflow.d.ts +1 -1
  80. package/dist/lib/base-workflow.js +1 -1
  81. package/dist/lib/base-workflow.js.map +1 -1
  82. package/dist/lib/config.d.ts +2 -2
  83. package/dist/lib/config.js +7 -7
  84. package/dist/lib/config.js.map +1 -1
  85. package/dist/lib/deployment.d.ts +0 -1
  86. package/dist/lib/deployment.js +0 -12
  87. package/dist/lib/deployment.js.map +1 -1
  88. package/dist/lib/environment-variable.d.ts +41 -0
  89. package/dist/lib/environment-variable.js +304 -0
  90. package/dist/lib/environment-variable.js.map +1 -0
  91. package/dist/lib/git.d.ts +5 -5
  92. package/dist/lib/git.js +9 -12
  93. package/dist/lib/git.js.map +1 -1
  94. package/dist/lib/global-store.d.ts +1 -1
  95. package/dist/lib/global-store.js +4 -3
  96. package/dist/lib/global-store.js.map +1 -1
  97. package/dist/lib/logs.d.ts +19 -0
  98. package/dist/lib/logs.js +83 -0
  99. package/dist/lib/logs.js.map +1 -0
  100. package/dist/lib/project.d.ts +9 -4
  101. package/dist/lib/project.js +27 -31
  102. package/dist/lib/project.js.map +1 -1
  103. package/dist/lib/publish.d.ts +17 -0
  104. package/dist/lib/publish.js +167 -0
  105. package/dist/lib/publish.js.map +1 -0
  106. package/dist/lib/table.d.ts +8 -0
  107. package/dist/lib/table.js +27 -0
  108. package/dist/lib/table.js.map +1 -0
  109. package/dist/lib/utils.d.ts +1 -0
  110. package/dist/lib/utils.js +17 -0
  111. package/dist/lib/utils.js.map +1 -0
  112. package/dist/lib/utils.test.d.ts +1 -0
  113. package/dist/lib/utils.test.js +14 -0
  114. package/dist/lib/utils.test.js.map +1 -0
  115. package/package.json +20 -17
@@ -0,0 +1,304 @@
1
+ import * as p from "@clack/prompts";
2
+ import chalk from "chalk";
3
+ import { parse as parseEnvFile } from "envfile";
4
+ import { readFileSync } from "node:fs";
5
+ import { environmentVariableSchema } from "@alpic-ai/api";
6
+ import { api } from "../api.js";
7
+ import { BaseWorkflow } from "./base-workflow.js";
8
+ import { config } from "./config.js";
9
+ export const resolveEnvironmentId = (flags) => {
10
+ if (flags["environment-id"]) {
11
+ return flags["environment-id"];
12
+ }
13
+ const environmentId = config.load()?.environmentId;
14
+ if (environmentId !== undefined) {
15
+ p.log.info(`Using environment id from .alpic config: ${chalk.bold(environmentId)}`);
16
+ return environmentId;
17
+ }
18
+ throw new Error("No environment specified. Use --environment-id <environmentId> or run from a linked directory.");
19
+ };
20
+ export function isValidEnvironmentVariableKey(key) {
21
+ return environmentVariableSchema.shape.key.safeParse(key).success;
22
+ }
23
+ function pluralizeEnvVars(count) {
24
+ return `environment variable${count === 1 ? "" : "s"}`;
25
+ }
26
+ export async function fetchEnvironmentVariables(environmentId) {
27
+ const spinner = p.spinner();
28
+ spinner.start("Fetching environment variables...");
29
+ const environmentVariables = await api.environmentVariables.list.v1({ environmentId });
30
+ spinner.stop(`Found ${environmentVariables.length} ${pluralizeEnvVars(environmentVariables.length)}`);
31
+ return environmentVariables;
32
+ }
33
+ export class EnvironmentVariableWorkflow extends BaseWorkflow {
34
+ isNonInteractive() {
35
+ return this.flags["non-interactive"] || super.isNonInteractive();
36
+ }
37
+ async add(environmentId) {
38
+ const { "env-file": envFile, key, value } = this.flags;
39
+ if (envFile && (key || value)) {
40
+ throw new Error("--env-file cannot be used together with --key or --value.");
41
+ }
42
+ const environmentVariables = await this.resolveEnvironmentVariablesForAdd();
43
+ const spinner = p.spinner();
44
+ spinner.start(`Adding ${environmentVariables.length} ${pluralizeEnvVars(environmentVariables.length)}...`);
45
+ await api.environmentVariables.create.v1({ environmentId, environmentVariables });
46
+ const count = environmentVariables.length;
47
+ spinner.stop(`Successfully added ${count} ${pluralizeEnvVars(count)}. ✅`);
48
+ }
49
+ async update(environmentId) {
50
+ const environmentVariables = await fetchEnvironmentVariables(environmentId);
51
+ if (environmentVariables.length === 0) {
52
+ throw new Error("No environment variables found in this environment.");
53
+ }
54
+ const updateInput = await this.resolveUpdateInput(environmentVariables);
55
+ const variable = environmentVariables.find((v) => v.key === updateInput.key);
56
+ if (!variable) {
57
+ throw new Error(`Environment variable "${updateInput.key}" not found.`);
58
+ }
59
+ const spinner = p.spinner();
60
+ spinner.start("Updating environment variable...");
61
+ await api.environmentVariables.update.v1({
62
+ environmentVariableId: variable.id,
63
+ key: variable.key,
64
+ value: updateInput.value,
65
+ isSecret: updateInput.isSecret ?? variable.isSecret,
66
+ });
67
+ spinner.stop(`Successfully updated ${chalk.cyan(updateInput.key)}. ✅`);
68
+ }
69
+ async remove(environmentId) {
70
+ const environmentVariables = await fetchEnvironmentVariables(environmentId);
71
+ if (environmentVariables.length === 0) {
72
+ throw new Error("No environment variables found in this environment.");
73
+ }
74
+ const resolvedKey = await this.resolveRemoveKey(environmentVariables);
75
+ const variable = environmentVariables.find((v) => v.key === resolvedKey);
76
+ if (!variable) {
77
+ throw new Error(`Environment variable "${resolvedKey}" not found.`);
78
+ }
79
+ const spinner = p.spinner();
80
+ spinner.start("Removing environment variable...");
81
+ await api.environmentVariables.delete.v1({ environmentVariableId: variable.id });
82
+ spinner.stop(`Successfully removed ${chalk.cyan(resolvedKey)}. ✅`);
83
+ }
84
+ async resolveEnvironmentVariablesForAdd() {
85
+ const { "env-file": envFile, key, value, secret } = this.flags;
86
+ if (envFile) {
87
+ const parsed = parseEnvFile(readFileSync(envFile, "utf8"));
88
+ const environmentVariables = Object.entries(parsed).map(([key, value]) => {
89
+ if (!isValidEnvironmentVariableKey(key)) {
90
+ throw new Error(`Invalid key "${key}" in env file: must start with a letter and contain only letters, numbers, and underscores.`);
91
+ }
92
+ return {
93
+ key,
94
+ value,
95
+ isSecret: secret ?? true,
96
+ };
97
+ });
98
+ if (environmentVariables.length === 0) {
99
+ throw new Error("No valid environment variables found in the provided file.");
100
+ }
101
+ return environmentVariables;
102
+ }
103
+ if (this.isNonInteractive()) {
104
+ if (!key || value === undefined) {
105
+ throw new Error("--key and --value are required in non-interactive mode.");
106
+ }
107
+ if (value.trim() === "") {
108
+ throw new Error("Value cannot be empty.");
109
+ }
110
+ if (!isValidEnvironmentVariableKey(key)) {
111
+ throw new Error(`Invalid key "${key}": must start with a letter and contain only letters, numbers, and underscores.`);
112
+ }
113
+ return [{ key, value, isSecret: secret ?? true }];
114
+ }
115
+ const resolvedKey = await this.resolveAddKey(key);
116
+ const resolvedValue = await this.resolveAddValue(value);
117
+ const isSecret = await this.resolveAddSecret();
118
+ return [{ key: resolvedKey, value: resolvedValue, isSecret }];
119
+ }
120
+ async resolveAddKey(key) {
121
+ const trimmed = key?.trim();
122
+ if (trimmed !== undefined && trimmed !== "") {
123
+ if (!isValidEnvironmentVariableKey(trimmed)) {
124
+ throw new Error(`Invalid key "${trimmed}": must start with a letter and contain only letters, numbers, and underscores.`);
125
+ }
126
+ return trimmed;
127
+ }
128
+ const resolvedKey = await p.text({
129
+ message: "Variable key",
130
+ validate: (v) => {
131
+ const trimmed = v?.trim();
132
+ if (trimmed === undefined || trimmed === "") {
133
+ return "Key is required";
134
+ }
135
+ if (!isValidEnvironmentVariableKey(trimmed)) {
136
+ return "Key must start with a letter and contain only letters, numbers, and underscores";
137
+ }
138
+ return undefined;
139
+ },
140
+ });
141
+ if (p.isCancel(resolvedKey)) {
142
+ throw new Error("Cancelled.");
143
+ }
144
+ return resolvedKey.trim();
145
+ }
146
+ async resolveAddValue(value) {
147
+ const trimmed = value?.trim();
148
+ if (trimmed === "") {
149
+ throw new Error("Value cannot be empty.");
150
+ }
151
+ if (trimmed !== undefined) {
152
+ return trimmed;
153
+ }
154
+ const resolvedValue = await p.password({
155
+ message: "Variable value",
156
+ validate: (v) => (v === undefined || v.trim() === "" ? "Value is required" : undefined),
157
+ });
158
+ if (p.isCancel(resolvedValue)) {
159
+ throw new Error("Cancelled.");
160
+ }
161
+ return resolvedValue.trim();
162
+ }
163
+ async resolveAddSecret() {
164
+ if (this.flags.secret !== undefined) {
165
+ return this.flags.secret;
166
+ }
167
+ const secretAnswer = await p.confirm({
168
+ message: "Mark as secret?",
169
+ initialValue: true,
170
+ });
171
+ if (p.isCancel(secretAnswer)) {
172
+ throw new Error("Cancelled.");
173
+ }
174
+ return secretAnswer;
175
+ }
176
+ async resolveUpdateInput(environmentVariables) {
177
+ const { key, value, secret } = this.flags;
178
+ if (this.isNonInteractive()) {
179
+ if (key === undefined || (value === undefined && secret === undefined)) {
180
+ throw new Error("--key and one of --value or --secret/--no-secret are required in non-interactive mode.");
181
+ }
182
+ if (value !== undefined && value.trim() === "") {
183
+ throw new Error("Value cannot be empty.");
184
+ }
185
+ return { key, value, isSecret: secret };
186
+ }
187
+ const resolvedKey = await this.resolveUpdateKey(environmentVariables);
188
+ const resolvedValue = await this.resolveUpdateValue(resolvedKey);
189
+ const resolvedSecret = await this.resolveUpdateSecret(environmentVariables, resolvedKey);
190
+ return { key: resolvedKey, value: resolvedValue, isSecret: resolvedSecret };
191
+ }
192
+ async resolveUpdateKey(environmentVariables) {
193
+ const { key } = this.flags;
194
+ const trimmed = key?.trim();
195
+ if (trimmed !== undefined && trimmed !== "") {
196
+ return trimmed;
197
+ }
198
+ const selectedKey = await p.select({
199
+ message: "Select a variable to update",
200
+ options: environmentVariables.map((variable) => ({
201
+ value: variable.key,
202
+ label: variable.key,
203
+ hint: variable.isSecret ? "<secret>" : variable.value,
204
+ })),
205
+ });
206
+ if (p.isCancel(selectedKey)) {
207
+ throw new Error("Cancelled.");
208
+ }
209
+ return selectedKey;
210
+ }
211
+ async resolveUpdateValue(resolvedKey) {
212
+ const { value } = this.flags;
213
+ if (this.isNonInteractive()) {
214
+ if (value === undefined) {
215
+ p.log.info("No value provided, keeping the current value.");
216
+ return undefined;
217
+ }
218
+ const trimmed = value.trim();
219
+ if (trimmed === "") {
220
+ throw new Error("Value cannot be empty.");
221
+ }
222
+ return trimmed;
223
+ }
224
+ if (value !== undefined) {
225
+ const trimmed = value.trim();
226
+ if (trimmed === "") {
227
+ throw new Error("Value cannot be empty.");
228
+ }
229
+ return trimmed;
230
+ }
231
+ const resolvedValue = (await p.password({
232
+ message: `New value for ${chalk.cyan(resolvedKey)}`,
233
+ })); // When user doesn't provide a value, the prompt returns undefined.
234
+ if (p.isCancel(resolvedValue)) {
235
+ throw new Error("Cancelled.");
236
+ }
237
+ if (resolvedValue === undefined || resolvedValue.trim() === "") {
238
+ p.log.info("No value provided, keeping the current value.");
239
+ return undefined;
240
+ }
241
+ return resolvedValue.trim();
242
+ }
243
+ async resolveUpdateSecret(environmentVariables, key) {
244
+ const { secret } = this.flags;
245
+ if (this.isNonInteractive()) {
246
+ return secret;
247
+ }
248
+ const variable = environmentVariables.find((item) => item.key === key);
249
+ if (!variable) {
250
+ throw new Error(`Environment variable "${key}" not found.`);
251
+ }
252
+ const secretAnswer = await p.select({
253
+ message: "Mark as secret?",
254
+ initialValue: variable.isSecret,
255
+ options: [
256
+ {
257
+ value: true,
258
+ label: variable.isSecret ? "Yes (current)" : "Yes",
259
+ },
260
+ {
261
+ value: false,
262
+ label: variable.isSecret ? "No" : "No (current)",
263
+ },
264
+ ],
265
+ });
266
+ if (p.isCancel(secretAnswer)) {
267
+ throw new Error("Cancelled.");
268
+ }
269
+ return secretAnswer;
270
+ }
271
+ async resolveRemoveKey(environmentVariables) {
272
+ const { key } = this.flags;
273
+ if (this.isNonInteractive()) {
274
+ if (!key) {
275
+ throw new Error("--key is required in non-interactive mode.");
276
+ }
277
+ return key;
278
+ }
279
+ const selectedKey = key ?? (await this.promptRemoveKey(environmentVariables));
280
+ const confirmed = await p.confirm({
281
+ message: `Remove ${chalk.cyan(selectedKey)}?`,
282
+ initialValue: false,
283
+ });
284
+ if (p.isCancel(confirmed) || !confirmed) {
285
+ throw new Error("Cancelled.");
286
+ }
287
+ return selectedKey;
288
+ }
289
+ async promptRemoveKey(environmentVariables) {
290
+ const selectedKey = await p.select({
291
+ message: "Select a variable to remove",
292
+ options: environmentVariables.map((variable) => ({
293
+ value: variable.key,
294
+ label: variable.key,
295
+ hint: variable.isSecret ? "<secret>" : variable.value,
296
+ })),
297
+ });
298
+ if (p.isCancel(selectedKey)) {
299
+ throw new Error("Cancelled.");
300
+ }
301
+ return selectedKey;
302
+ }
303
+ }
304
+ //# sourceMappingURL=environment-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-variable.js","sourceRoot":"","sources":["../../src/lib/environment-variable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAMrC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAA+B,EAAE,EAAE;IACtE,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC;IACnD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;AACpH,CAAC,CAAC;AAkBF,MAAM,UAAU,6BAA6B,CAAC,GAAW;IACvD,OAAO,yBAAyB,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACpE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,uBAAuB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,aAAqB;IACnE,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACnD,MAAM,oBAAoB,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,IAAI,CAAC,SAAS,oBAAoB,CAAC,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtG,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,OAAO,2BAA4B,SAAQ,YAA8C;IAC1E,gBAAgB;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,aAAqB;QAC7B,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvD,IAAI,OAAO,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,iCAAiC,EAAE,CAAC;QAE5E,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,UAAU,oBAAoB,CAAC,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3G,MAAM,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAElF,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,MAAM,oBAAoB,GAAG,MAAM,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAE5E,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,CAAC,GAAG,cAAc,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAElD,MAAM,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,qBAAqB,EAAE,QAAQ,CAAC,EAAE;YAClC,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;SACpD,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,MAAM,oBAAoB,GAAG,MAAM,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAE5E,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,cAAc,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAElD,MAAM,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjF,OAAO,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,iCAAiC;QAC7C,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACvE,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CACb,gBAAgB,GAAG,6FAA6F,CACjH,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,GAAG;oBACH,KAAK;oBACL,QAAQ,EAAE,MAAM,IAAI,IAAI;iBACzB,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,gBAAgB,GAAG,iFAAiF,CACrG,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE/C,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAY;QACtC,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,gBAAgB,OAAO,iFAAiF,CACzG,CAAC;YACJ,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;YAC/B,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;gBAC1B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;oBAC5C,OAAO,iBAAiB,CAAC;gBAC3B,CAAC;gBACD,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5C,OAAO,iFAAiF,CAAC;gBAC3F,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAAc;QAC1C,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;QAE9B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC;YACrC,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;SACxF,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,iBAAiB;YAC1B,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,oBAA2C;QAC1E,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1C,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;gBACvE,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;YAC5G,CAAC;YACD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAEzF,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,oBAA2C;QACxE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;YACjC,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC/C,KAAK,EAAE,QAAQ,CAAC,GAAG;gBACnB,KAAK,EAAE,QAAQ,CAAC,GAAG;gBACnB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;aACtD,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAClD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBAC5D,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAE7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;YACtC,OAAO,EAAE,iBAAiB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;SACpD,CAAC,CAAuB,CAAC,CAAC,mEAAmE;QAC9F,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/D,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC5D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,oBAA2C,EAAE,GAAW;QACxF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE9B,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,cAAc,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,iBAAiB;YAC1B,YAAY,EAAE,QAAQ,CAAC,QAAQ;YAC/B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK;iBACnD;gBACD;oBACE,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc;iBACjD;aACF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,oBAA2C;QACxE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE3B,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE9E,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YAChC,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG;YAC7C,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,oBAA2C;QACvE,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;YACjC,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC/C,KAAK,EAAE,QAAQ,CAAC,GAAG;gBACnB,KAAK,EAAE,QAAQ,CAAC,GAAG;gBACnB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;aACtD,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
package/dist/lib/git.d.ts CHANGED
@@ -4,19 +4,19 @@ export type GitRemote = {
4
4
  url: string;
5
5
  sourceRepository: string;
6
6
  };
7
- export declare function isGitRepository(cwd: string): boolean;
8
- export declare function listGithubRemotes(cwd: string): GitRemote[];
7
+ export declare function isGitRepository(): boolean;
8
+ export declare function listGithubRemotes(): GitRemote[];
9
9
  export type ProjectWithSourceRepository = {
10
10
  name: string;
11
11
  sourceRepository: string | null;
12
12
  };
13
- export declare function confirmLinkAnotherIfAlreadyConnected(project: ProjectWithSourceRepository): Promise<boolean>;
13
+ export declare function confirmLinkAnotherIfAlreadyConnected(project: ProjectWithSourceRepository): Promise<void>;
14
14
  export type GitFlags = {
15
- yes?: boolean;
15
+ "non-interactive"?: boolean;
16
16
  remoteName?: string;
17
17
  };
18
18
  export declare class GitWorkflow extends BaseWorkflow<GitFlags> {
19
19
  confirmDisconnect(sourceRepository: string, projectName: string): Promise<boolean>;
20
- selectRemoteSourceRepository(remotes: GitRemote[]): Promise<string | null>;
20
+ selectRemoteSourceRepository(remotes: GitRemote[]): Promise<string>;
21
21
  }
22
22
  export declare function showGitSetupInstructions(): void;
package/dist/lib/git.js CHANGED
@@ -2,25 +2,24 @@ import * as p from "@clack/prompts";
2
2
  import chalk from "chalk";
3
3
  import { execFileSync } from "node:child_process";
4
4
  import { BaseWorkflow } from "./base-workflow.js";
5
- function runGit(args, cwd) {
5
+ function runGit(args) {
6
6
  return execFileSync("git", args, {
7
- cwd,
8
7
  encoding: "utf8",
9
8
  stdio: ["ignore", "pipe", "pipe"],
10
9
  }).trim();
11
10
  }
12
- export function isGitRepository(cwd) {
11
+ export function isGitRepository() {
13
12
  try {
14
- return runGit(["rev-parse", "--is-inside-work-tree"], cwd) === "true";
13
+ return runGit(["rev-parse", "--is-inside-work-tree"]) === "true";
15
14
  }
16
15
  catch {
17
16
  return false;
18
17
  }
19
18
  }
20
- export function listGithubRemotes(cwd) {
19
+ export function listGithubRemotes() {
21
20
  let output;
22
21
  try {
23
- output = runGit(["remote", "-v"], cwd);
22
+ output = runGit(["remote", "-v"]);
24
23
  }
25
24
  catch {
26
25
  return [];
@@ -51,7 +50,7 @@ export function listGithubRemotes(cwd) {
51
50
  }
52
51
  export async function confirmLinkAnotherIfAlreadyConnected(project) {
53
52
  if (!project.sourceRepository) {
54
- return true;
53
+ return;
55
54
  }
56
55
  p.log.info(`Project "${project.name}" is already connected to "${project.sourceRepository}".`);
57
56
  const confirm = await p.confirm({
@@ -59,10 +58,8 @@ export async function confirmLinkAnotherIfAlreadyConnected(project) {
59
58
  initialValue: false,
60
59
  });
61
60
  if (p.isCancel(confirm) || !confirm) {
62
- p.cancel("Git connect cancelled");
63
- return false;
61
+ throw new Error("Git connect cancelled");
64
62
  }
65
- return true;
66
63
  }
67
64
  export class GitWorkflow extends BaseWorkflow {
68
65
  async confirmDisconnect(sourceRepository, projectName) {
@@ -76,7 +73,7 @@ export class GitWorkflow extends BaseWorkflow {
76
73
  }
77
74
  async selectRemoteSourceRepository(remotes) {
78
75
  if (remotes.length === 0) {
79
- return null;
76
+ throw new Error("No remotes found. Add a remote first.");
80
77
  }
81
78
  if (this.flags.remoteName) {
82
79
  const remote = remotes.find((remote) => remote.name === this.flags.remoteName);
@@ -105,7 +102,7 @@ export class GitWorkflow extends BaseWorkflow {
105
102
  })),
106
103
  });
107
104
  if (p.isCancel(selected)) {
108
- return null;
105
+ throw new Error("No remote source repository selected.");
109
106
  }
110
107
  return selected;
111
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export interface Config {
12
12
  }
13
13
  export declare class GlobalStore {
14
14
  private readonly configDir;
15
- constructor(configDir?: string);
15
+ constructor();
16
16
  getCredentials(): Credentials | null;
17
17
  saveCredentials(credentials: Credentials): void;
18
18
  clearCredentials(): void;
@@ -1,11 +1,12 @@
1
+ import envPaths from "env-paths";
1
2
  import crypto from "node:crypto";
2
3
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
3
4
  import { join } from "node:path";
4
- import XDGAppPaths from "xdg-app-paths";
5
5
  export class GlobalStore {
6
6
  configDir;
7
- constructor(configDir) {
8
- this.configDir = configDir ?? XDGAppPaths({ name: "alpic" }).config();
7
+ constructor() {
8
+ const configDirOverride = process.env["ALPIC_GLOBAL_CONFIG_DIR"];
9
+ this.configDir = configDirOverride ?? envPaths("alpic", { suffix: "" }).config;
9
10
  }
10
11
  getCredentials() {
11
12
  const token = this.parseJsonFile(this.getCredentialsFilePath());
@@ -1 +1 @@
1
- {"version":3,"file":"global-store.js","sourceRoot":"","sources":["../../src/lib/global-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-store.js","sourceRoot":"","sources":["../../src/lib/global-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { RouterOutput } from "@alpic-ai/api";
2
+ export type RuntimeLogEntry = RouterOutput["environments"]["getLogs"]["v1"]["logs"][number];
3
+ type LogLevel = "INFO" | "ERROR" | "WARNING" | "DEBUG";
4
+ type FollowEnvironmentLogsParams = {
5
+ environmentId: string;
6
+ limit?: number;
7
+ level?: LogLevel[];
8
+ search?: string;
9
+ nextToken?: string | null;
10
+ initialLogs?: RuntimeLogEntry[];
11
+ pollIntervalMs?: number;
12
+ onLog: (log: RuntimeLogEntry) => void;
13
+ };
14
+ export declare function printLog(log: RuntimeLogEntry, { noColor }?: {
15
+ noColor?: boolean;
16
+ }): void;
17
+ export declare function followEnvironmentLogs({ environmentId, limit, level, search, nextToken, initialLogs, pollIntervalMs, onLog, }: FollowEnvironmentLogsParams): Promise<never>;
18
+ export declare function parseLevel(values: string[]): LogLevel[];
19
+ export {};
@@ -0,0 +1,83 @@
1
+ import chalk from "chalk";
2
+ import { api } from "../api.js";
3
+ const LOG_TYPE_COLORS = {
4
+ ERROR: chalk.red,
5
+ WARNING: chalk.yellow,
6
+ DEBUG: chalk.gray,
7
+ INFO: chalk.white,
8
+ START: chalk.dim,
9
+ END: chalk.dim,
10
+ };
11
+ const LOG_TYPE_LABELS = {
12
+ START: "START",
13
+ END: "END",
14
+ INFO: "INFO",
15
+ ERROR: "ERROR",
16
+ WARNING: "WARN",
17
+ DEBUG: "DEBUG",
18
+ };
19
+ const LOG_LEVEL_WIDTH = 5;
20
+ function formatTimestamp(date) {
21
+ return date.toISOString().replace("T", " ").slice(0, 23);
22
+ }
23
+ export function printLog(log, { noColor = false } = {}) {
24
+ const colorize = noColor ? (s) => s : (LOG_TYPE_COLORS[log.type] ?? chalk.white);
25
+ const ts = noColor ? formatTimestamp(log.timestamp) : chalk.gray(formatTimestamp(log.timestamp));
26
+ const shortRequestId = log.requestId.split("-")[0] ?? log.requestId;
27
+ const levelPrefix = `${LOG_TYPE_LABELS[log.type].padEnd(LOG_LEVEL_WIDTH, " ")} `;
28
+ let message;
29
+ if (log.type === "START") {
30
+ const methodPrefix = log.method ? `method: ${log.method}, ` : "";
31
+ const startMessage = `--- MCP REQUEST START --- (${methodPrefix}requestId: ${shortRequestId})`;
32
+ message = noColor ? startMessage : chalk.dim(startMessage);
33
+ process.stdout.write(`${ts} ${levelPrefix}${message}\n`);
34
+ return;
35
+ }
36
+ else if (log.type === "END") {
37
+ const durationSuffix = log.durationInMs !== undefined ? ` (duration: ${log.durationInMs}ms)` : "";
38
+ const endMessage = `--- MCP REQUEST END -----${durationSuffix}`;
39
+ message = noColor ? endMessage : chalk.dim(endMessage);
40
+ process.stdout.write(`${ts} ${levelPrefix}${message}\n`);
41
+ return;
42
+ }
43
+ else {
44
+ message = colorize(log.content ?? "");
45
+ }
46
+ process.stdout.write(`${ts} ${levelPrefix}${message}\n`);
47
+ }
48
+ export async function followEnvironmentLogs({ environmentId, limit, level, search, nextToken, initialLogs = [], pollIntervalMs = 3_000, onLog, }) {
49
+ const lastInitialLog = initialLogs.at(-1);
50
+ let lastTimestamp = lastInitialLog === undefined
51
+ ? new Date().toISOString()
52
+ : new Date(lastInitialLog.timestamp.getTime() + 1).toISOString();
53
+ let cursor = nextToken ?? null;
54
+ while (true) {
55
+ const options = {
56
+ environmentId,
57
+ since: lastTimestamp,
58
+ limit,
59
+ level,
60
+ search,
61
+ nextToken: cursor ?? undefined,
62
+ };
63
+ const response = await api.environments.getLogs.v1(options);
64
+ for (const log of response.logs) {
65
+ onLog(log);
66
+ lastTimestamp = new Date(log.timestamp.getTime() + 1).toISOString();
67
+ }
68
+ cursor = response.nextToken;
69
+ if (cursor === null) {
70
+ await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
71
+ }
72
+ }
73
+ }
74
+ export function parseLevel(values) {
75
+ return values.map((value) => {
76
+ const normalized = value.toUpperCase();
77
+ if (!["INFO", "ERROR", "WARNING", "DEBUG"].includes(normalized)) {
78
+ throw new Error(`Invalid log level: "${value}". Valid values: info, error, warning, debug`);
79
+ }
80
+ return normalized;
81
+ });
82
+ }
83
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/lib/logs.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { RouterOutput, Runtime } from "@alpic-ai/api";
2
2
  import type { ProjectConfig } from "../types.js";
3
3
  import { BaseWorkflow } from "./base-workflow.js";
4
4
  export type ProjectFlags = {
5
- yes?: boolean;
5
+ "non-interactive"?: boolean;
6
6
  projectName?: string;
7
7
  runtime?: Runtime;
8
8
  rootDir?: string;
@@ -26,6 +26,11 @@ export declare class ProjectWorkflow extends BaseWorkflow<ProjectFlags> {
26
26
  id: string;
27
27
  name: string;
28
28
  mcpServerUrl: string;
29
+ domains: {
30
+ domain: string;
31
+ status: "ongoing" | "deployed" | "failed";
32
+ createdAt: Date;
33
+ }[];
29
34
  latestDeployment: {
30
35
  id: string;
31
36
  status: "ongoing" | "deployed" | "failed" | "canceled";
@@ -50,14 +55,14 @@ export declare class ProjectWorkflow extends BaseWorkflow<ProjectFlags> {
50
55
  } | null;
51
56
  }[];
52
57
  } | null>;
53
- promptRootDirectory(deployDir: string): Promise<string | null>;
58
+ promptRootDirectory(): Promise<string | null>;
54
59
  private directoryExists;
55
60
  private detectRuntime;
56
61
  confirmDeployWithExistingConfig(existingConfig: ProjectConfig): Promise<boolean | null>;
57
- confirmDeployDirectory(deployDir: string): Promise<boolean>;
62
+ confirmDeployDirectory(): Promise<boolean>;
58
63
  confirmLinkExisting(): Promise<boolean>;
59
64
  confirmLinkToAnotherProject(): Promise<boolean>;
60
- resolveProjectForDeploy(deployDir: string): Promise<(ProjectConfig & {
65
+ resolveProjectForDeploy(): Promise<(ProjectConfig & {
61
66
  environmentId: string;
62
67
  }) | null>;
63
68
  private resolveEnvironmentForProject;