@doist/twist-cli 2.23.1 → 2.23.3
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.
- package/CHANGELOG.md +12 -0
- package/dist/commands/auth/login.d.ts.map +1 -1
- package/dist/commands/auth/login.js +8 -3
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/auth/status.d.ts.map +1 -1
- package/dist/commands/auth/status.js +28 -24
- package/dist/commands/auth/status.js.map +1 -1
- package/dist/commands/auth/token.d.ts.map +1 -1
- package/dist/commands/auth/token.js +8 -7
- package/dist/commands/auth/token.js.map +1 -1
- package/dist/commands/away/helpers.d.ts.map +1 -1
- package/dist/commands/away/helpers.js +2 -4
- package/dist/commands/away/helpers.js.map +1 -1
- package/dist/commands/away/set.d.ts.map +1 -1
- package/dist/commands/away/set.js +2 -2
- package/dist/commands/away/set.js.map +1 -1
- package/dist/commands/changelog.d.ts.map +1 -1
- package/dist/commands/changelog.js +3 -6
- package/dist/commands/changelog.js.map +1 -1
- package/dist/commands/channel.d.ts.map +1 -1
- package/dist/commands/channel.js +3 -2
- package/dist/commands/channel.js.map +1 -1
- package/dist/commands/comment/update.d.ts.map +1 -1
- package/dist/commands/comment/update.js +2 -3
- package/dist/commands/comment/update.js.map +1 -1
- package/dist/commands/completion/install.d.ts.map +1 -1
- package/dist/commands/completion/install.js +2 -3
- package/dist/commands/completion/install.js.map +1 -1
- package/dist/commands/conversation/helpers.d.ts.map +1 -1
- package/dist/commands/conversation/helpers.js +4 -3
- package/dist/commands/conversation/helpers.js.map +1 -1
- package/dist/commands/conversation/reply.d.ts.map +1 -1
- package/dist/commands/conversation/reply.js +2 -3
- package/dist/commands/conversation/reply.js.map +1 -1
- package/dist/commands/conversation/unread.d.ts.map +1 -1
- package/dist/commands/conversation/unread.js +4 -2
- package/dist/commands/conversation/unread.js.map +1 -1
- package/dist/commands/conversation/with.d.ts.map +1 -1
- package/dist/commands/conversation/with.js +36 -41
- package/dist/commands/conversation/with.js.map +1 -1
- package/dist/commands/inbox.d.ts.map +1 -1
- package/dist/commands/inbox.js +5 -3
- package/dist/commands/inbox.js.map +1 -1
- package/dist/commands/msg/update.d.ts.map +1 -1
- package/dist/commands/msg/update.js +2 -3
- package/dist/commands/msg/update.js.map +1 -1
- package/dist/commands/react.d.ts.map +1 -1
- package/dist/commands/react.js +3 -4
- package/dist/commands/react.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +18 -31
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/skill/install.d.ts.map +1 -1
- package/dist/commands/skill/install.js +8 -13
- package/dist/commands/skill/install.js.map +1 -1
- package/dist/commands/skill/uninstall.d.ts.map +1 -1
- package/dist/commands/skill/uninstall.js +7 -11
- package/dist/commands/skill/uninstall.js.map +1 -1
- package/dist/commands/skill/update.d.ts.map +1 -1
- package/dist/commands/skill/update.js +9 -14
- package/dist/commands/skill/update.js.map +1 -1
- package/dist/commands/thread/create.d.ts.map +1 -1
- package/dist/commands/thread/create.js +2 -3
- package/dist/commands/thread/create.js.map +1 -1
- package/dist/commands/thread/delete.d.ts.map +1 -1
- package/dist/commands/thread/delete.js +3 -6
- package/dist/commands/thread/delete.js.map +1 -1
- package/dist/commands/thread/helpers.d.ts.map +1 -1
- package/dist/commands/thread/helpers.js +2 -1
- package/dist/commands/thread/helpers.js.map +1 -1
- package/dist/commands/thread/mute.d.ts.map +1 -1
- package/dist/commands/thread/mute.js +2 -2
- package/dist/commands/thread/mute.js.map +1 -1
- package/dist/commands/thread/reply.d.ts.map +1 -1
- package/dist/commands/thread/reply.js +3 -6
- package/dist/commands/thread/reply.js.map +1 -1
- package/dist/commands/update/action.d.ts.map +1 -1
- package/dist/commands/update/action.js +13 -20
- package/dist/commands/update/action.js.map +1 -1
- package/dist/commands/update/switch.d.ts.map +1 -1
- package/dist/commands/update/switch.js +3 -6
- package/dist/commands/update/switch.js.map +1 -1
- package/dist/commands/user.d.ts.map +1 -1
- package/dist/commands/user.js +2 -1
- package/dist/commands/user.js.map +1 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +7 -2
- package/dist/commands/view.js.map +1 -1
- package/dist/index.js +19 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +5 -2
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/auth.d.ts +4 -0
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +13 -3
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/errors.d.ts +14 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +13 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/global-args.d.ts +38 -0
- package/dist/lib/global-args.d.ts.map +1 -0
- package/dist/lib/global-args.js +100 -0
- package/dist/lib/global-args.js.map +1 -0
- package/dist/lib/input.d.ts +0 -1
- package/dist/lib/input.d.ts.map +1 -1
- package/dist/lib/input.js +1 -8
- package/dist/lib/input.js.map +1 -1
- package/dist/lib/oauth.d.ts.map +1 -1
- package/dist/lib/oauth.js +15 -9
- package/dist/lib/oauth.js.map +1 -1
- package/dist/lib/output.d.ts +4 -1
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +23 -5
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/permissions.d.ts.map +1 -1
- package/dist/lib/permissions.js +4 -1
- package/dist/lib/permissions.js.map +1 -1
- package/dist/lib/progress.d.ts.map +1 -1
- package/dist/lib/progress.js +3 -18
- package/dist/lib/progress.js.map +1 -1
- package/dist/lib/public-channels.d.ts +0 -1
- package/dist/lib/public-channels.d.ts.map +1 -1
- package/dist/lib/public-channels.js +5 -8
- package/dist/lib/public-channels.js.map +1 -1
- package/dist/lib/refs.d.ts.map +1 -1
- package/dist/lib/refs.js +21 -18
- package/dist/lib/refs.js.map +1 -1
- package/dist/lib/search-api.d.ts.map +1 -1
- package/dist/lib/search-api.js +2 -1
- package/dist/lib/search-api.js.map +1 -1
- package/dist/lib/skills/create-installer.d.ts.map +1 -1
- package/dist/lib/skills/create-installer.js +9 -4
- package/dist/lib/skills/create-installer.js.map +1 -1
- package/dist/lib/spinner.d.ts.map +1 -1
- package/dist/lib/spinner.js +1 -22
- package/dist/lib/spinner.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/refs.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { fetchWorkspaces } from './api.js';
|
|
2
|
+
import { CliError } from './errors.js';
|
|
2
3
|
function normalizeRef(ref) {
|
|
3
4
|
return ref.trim();
|
|
4
5
|
}
|
|
@@ -9,7 +10,7 @@ export function extractId(ref) {
|
|
|
9
10
|
const normalized = normalizeRef(ref);
|
|
10
11
|
const idStr = isIdRef(normalized) ? normalized.slice(3).trim() : normalized;
|
|
11
12
|
if (!/^\d+$/.test(idStr)) {
|
|
12
|
-
throw new
|
|
13
|
+
throw new CliError('INVALID_ID', `Invalid ID: ${ref}`);
|
|
13
14
|
}
|
|
14
15
|
return Number(idStr);
|
|
15
16
|
}
|
|
@@ -81,14 +82,16 @@ export async function resolveWorkspaceRef(ref) {
|
|
|
81
82
|
if (parsed.type === 'id') {
|
|
82
83
|
const workspace = workspaces.find((w) => w.id === parsed.id);
|
|
83
84
|
if (!workspace) {
|
|
84
|
-
throw new
|
|
85
|
+
throw new CliError('WORKSPACE_NOT_FOUND', `Workspace with ID ${parsed.id} not found`, [
|
|
86
|
+
'Run: tw workspaces to list available workspaces',
|
|
87
|
+
]);
|
|
85
88
|
}
|
|
86
89
|
return workspace;
|
|
87
90
|
}
|
|
88
91
|
if (parsed.type === 'url' && parsed.parsed.workspaceId) {
|
|
89
92
|
const workspace = workspaces.find((w) => w.id === parsed.parsed.workspaceId);
|
|
90
93
|
if (!workspace) {
|
|
91
|
-
throw new
|
|
94
|
+
throw new CliError('WORKSPACE_NOT_FOUND', `Workspace with ID ${parsed.parsed.workspaceId} not found`, ['Run: tw workspaces to list available workspaces']);
|
|
92
95
|
}
|
|
93
96
|
return workspace;
|
|
94
97
|
}
|
|
@@ -105,10 +108,12 @@ export async function resolveWorkspaceRef(ref) {
|
|
|
105
108
|
.slice(0, 5)
|
|
106
109
|
.map((w) => `"${w.name}" (id:${w.id})`)
|
|
107
110
|
.join(', ');
|
|
108
|
-
throw new
|
|
111
|
+
throw new CliError('AMBIGUOUS_WORKSPACE', `Multiple workspaces match "${ref}": ${matches}`);
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
|
-
throw new
|
|
114
|
+
throw new CliError('WORKSPACE_NOT_FOUND', `Workspace "${ref}" not found`, [
|
|
115
|
+
'Run: tw workspaces to list available workspaces',
|
|
116
|
+
]);
|
|
112
117
|
}
|
|
113
118
|
export function resolveThreadId(ref) {
|
|
114
119
|
const parsed = parseRef(ref);
|
|
@@ -118,7 +123,7 @@ export function resolveThreadId(ref) {
|
|
|
118
123
|
if (parsed.type === 'url' && parsed.parsed.threadId) {
|
|
119
124
|
return parsed.parsed.threadId;
|
|
120
125
|
}
|
|
121
|
-
throw new
|
|
126
|
+
throw new CliError('INVALID_REF', `Invalid thread reference: ${ref}. Use 123, id:123, or a Twist URL.`);
|
|
122
127
|
}
|
|
123
128
|
export function resolveChannelId(ref) {
|
|
124
129
|
const parsed = parseRef(ref);
|
|
@@ -128,7 +133,7 @@ export function resolveChannelId(ref) {
|
|
|
128
133
|
if (parsed.type === 'url' && parsed.parsed.channelId) {
|
|
129
134
|
return parsed.parsed.channelId;
|
|
130
135
|
}
|
|
131
|
-
throw new
|
|
136
|
+
throw new CliError('INVALID_REF', `Invalid channel reference: ${ref}. Use 123, id:123, or a Twist URL.`);
|
|
132
137
|
}
|
|
133
138
|
export function resolveCommentId(ref) {
|
|
134
139
|
const parsed = parseRef(ref);
|
|
@@ -138,7 +143,7 @@ export function resolveCommentId(ref) {
|
|
|
138
143
|
if (parsed.type === 'url' && parsed.parsed.commentId) {
|
|
139
144
|
return parsed.parsed.commentId;
|
|
140
145
|
}
|
|
141
|
-
throw new
|
|
146
|
+
throw new CliError('INVALID_REF', `Invalid comment reference: ${ref}. Use 123, id:123, or a Twist URL.`);
|
|
142
147
|
}
|
|
143
148
|
export function resolveConversationId(ref) {
|
|
144
149
|
const parsed = parseRef(ref);
|
|
@@ -148,7 +153,7 @@ export function resolveConversationId(ref) {
|
|
|
148
153
|
if (parsed.type === 'url' && parsed.parsed.conversationId) {
|
|
149
154
|
return parsed.parsed.conversationId;
|
|
150
155
|
}
|
|
151
|
-
throw new
|
|
156
|
+
throw new CliError('INVALID_REF', `Invalid conversation reference: ${ref}. Use 123, id:123, or a Twist URL.`);
|
|
152
157
|
}
|
|
153
158
|
export function resolveMessageId(ref) {
|
|
154
159
|
const parsed = parseRef(ref);
|
|
@@ -158,7 +163,7 @@ export function resolveMessageId(ref) {
|
|
|
158
163
|
if (parsed.type === 'url' && parsed.parsed.messageId) {
|
|
159
164
|
return parsed.parsed.messageId;
|
|
160
165
|
}
|
|
161
|
-
throw new
|
|
166
|
+
throw new CliError('INVALID_REF', `Invalid message reference: ${ref}. Use 123, id:123, or a Twist URL.`);
|
|
162
167
|
}
|
|
163
168
|
export function classifyTwistUrl(url) {
|
|
164
169
|
const parsed = parseTwistUrl(url);
|
|
@@ -178,17 +183,13 @@ export function parseUserIdRefs(refs) {
|
|
|
178
183
|
return refs.split(',').map((userRef) => {
|
|
179
184
|
const trimmed = userRef.trim();
|
|
180
185
|
if (!trimmed) {
|
|
181
|
-
|
|
182
|
-
process.exit(1);
|
|
183
|
-
return 0;
|
|
186
|
+
throw new CliError('INVALID_REF', 'Invalid user reference list: found empty value');
|
|
184
187
|
}
|
|
185
188
|
try {
|
|
186
189
|
return extractId(trimmed);
|
|
187
190
|
}
|
|
188
191
|
catch {
|
|
189
|
-
|
|
190
|
-
process.exit(1);
|
|
191
|
-
return 0;
|
|
192
|
+
throw new CliError('INVALID_REF', `Invalid user reference: ${trimmed}. Use 123 or id:123`);
|
|
192
193
|
}
|
|
193
194
|
});
|
|
194
195
|
}
|
|
@@ -206,11 +207,13 @@ export async function resolveUserRefs(refs, workspaceId) {
|
|
|
206
207
|
const query = ref.toLowerCase();
|
|
207
208
|
const matches = users.filter((u) => u.name.toLowerCase().includes(query) || u.email?.toLowerCase().includes(query));
|
|
208
209
|
if (matches.length === 0) {
|
|
209
|
-
throw new
|
|
210
|
+
throw new CliError('USER_NOT_FOUND', `No user found matching "${ref}"`, [
|
|
211
|
+
'Run: tw users to list workspace members',
|
|
212
|
+
]);
|
|
210
213
|
}
|
|
211
214
|
if (matches.length > 1) {
|
|
212
215
|
const list = matches.map((u) => ` ${u.id} ${u.name} <${u.email ?? ''}>`).join('\n');
|
|
213
|
-
throw new
|
|
216
|
+
throw new CliError('AMBIGUOUS_USER', `Multiple users match "${ref}":\n${list}\n\nUse numeric ID to specify.`);
|
|
214
217
|
}
|
|
215
218
|
ids.push(matches[0].id);
|
|
216
219
|
}
|
package/dist/lib/refs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/lib/refs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/lib/refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-api.d.ts","sourceRoot":"","sources":["../../src/lib/search-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"search-api.d.ts","sourceRoot":"","sources":["../../src/lib/search-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAMpD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAA;AAEvD,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,OAAO,CAAA;CAC5B;AA8BD,wBAAsB,cAAc,CAChC,MAAM,EAAE,oBAAoB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAqDjC"}
|
package/dist/lib/search-api.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getApiToken } from './auth.js';
|
|
2
|
+
import { CliError } from './errors.js';
|
|
2
3
|
const BASE_URL = 'https://api.twist.com/api/v3';
|
|
3
4
|
function toCamelCase(str) {
|
|
4
5
|
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
@@ -71,7 +72,7 @@ export async function extendedSearch(params) {
|
|
|
71
72
|
});
|
|
72
73
|
if (!response.ok) {
|
|
73
74
|
const errorText = await response.text();
|
|
74
|
-
throw new
|
|
75
|
+
throw new CliError('API_ERROR', `Search API error (${response.status}): ${errorText}`);
|
|
75
76
|
}
|
|
76
77
|
const data = await response.json();
|
|
77
78
|
const items = (data.items || []).map((item) => transformSearchResult(item));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-api.js","sourceRoot":"","sources":["../../src/lib/search-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"search-api.js","sourceRoot":"","sources":["../../src/lib/search-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-installer.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-installer.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkB,cAAc,EAAmC,MAAM,YAAY,CAAA;AAEjG,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CA2EvE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdir, rm, stat, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
|
+
import { CliError } from '../errors.js';
|
|
4
5
|
import { SKILL_FILE_CONTENT, SKILL_NAME } from './content.js';
|
|
5
6
|
export function createInstaller(config) {
|
|
6
7
|
function getInstallPath(options) {
|
|
@@ -27,13 +28,13 @@ export function createInstaller(config) {
|
|
|
27
28
|
await stat(agentDir);
|
|
28
29
|
}
|
|
29
30
|
catch {
|
|
30
|
-
throw new
|
|
31
|
+
throw new CliError('NOT_INSTALLED', `${config.name} does not appear to be installed (${agentDir} not found)`);
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
const skillPath = getInstallPath(options);
|
|
34
35
|
const exists = await this.isInstalled(options);
|
|
35
36
|
if (exists && !options.force) {
|
|
36
|
-
throw new
|
|
37
|
+
throw new CliError('ALREADY_INSTALLED', `Skill already installed at ${skillPath}. Use --force to overwrite.`);
|
|
37
38
|
}
|
|
38
39
|
await mkdir(dirname(skillPath), { recursive: true });
|
|
39
40
|
await writeFile(skillPath, SKILL_FILE_CONTENT);
|
|
@@ -42,7 +43,9 @@ export function createInstaller(config) {
|
|
|
42
43
|
const skillPath = getInstallPath(options);
|
|
43
44
|
const exists = await this.isInstalled(options);
|
|
44
45
|
if (!exists) {
|
|
45
|
-
throw new
|
|
46
|
+
throw new CliError('NOT_INSTALLED', `Skill not installed at ${skillPath}`, [
|
|
47
|
+
`Run: tw skill install ${config.name}`,
|
|
48
|
+
]);
|
|
46
49
|
}
|
|
47
50
|
await writeFile(skillPath, SKILL_FILE_CONTENT);
|
|
48
51
|
},
|
|
@@ -50,7 +53,9 @@ export function createInstaller(config) {
|
|
|
50
53
|
const skillPath = getInstallPath(options);
|
|
51
54
|
const exists = await this.isInstalled(options);
|
|
52
55
|
if (!exists) {
|
|
53
|
-
throw new
|
|
56
|
+
throw new CliError('NOT_INSTALLED', `Skill not installed at ${skillPath}`, [
|
|
57
|
+
`Run: tw skill install ${config.name}`,
|
|
58
|
+
]);
|
|
54
59
|
}
|
|
55
60
|
const skillDir = dirname(skillPath);
|
|
56
61
|
await rm(skillDir, { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-installer.js","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAS7D,MAAM,UAAU,eAAe,CAAC,MAAuB;IACnD,SAAS,cAAc,CAAC,OAA4B;QAChD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;QACtD,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IACvE,CAAC;IAED,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAE/B,cAAc;QAEd,KAAK,CAAC,WAAW,CAAC,OAA4B;YAC1C,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;gBACnC,OAAO,IAAI,CAAA;YACf,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAA;YAChB,CAAC;QACL,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,OAAuB;YACjC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBAChD,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACL,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"create-installer.js","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACzE,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAOD,wBAAgB,iBAAiB,IAAI,IAAI,CAcxC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAID,cAAM,cAAc;IAChB,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,OAAO,CAAQ;IAEvB,KAAK,CAAC,OAAO,EAAE,cAAc;IAuB7B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM;IAcrB,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM;IASlB,IAAI;CAaP;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAC/B,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC,CAWZ;AAED,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,CAAA"}
|
package/dist/lib/spinner.js
CHANGED
|
@@ -1,27 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import yoctoSpinner from 'yocto-spinner';
|
|
3
|
-
|
|
4
|
-
// Check for environment variables that should disable spinners
|
|
5
|
-
if (process.env.TW_SPINNER === 'false') {
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
// Check if we're in CI environment
|
|
9
|
-
if (process.env.CI) {
|
|
10
|
-
return true;
|
|
11
|
-
}
|
|
12
|
-
// Check process arguments for flags that should disable spinner
|
|
13
|
-
const args = process.argv;
|
|
14
|
-
const spinnerDisablingFlags = [
|
|
15
|
-
'--json',
|
|
16
|
-
'--ndjson',
|
|
17
|
-
'--no-spinner',
|
|
18
|
-
'--progress-jsonl',
|
|
19
|
-
'--non-interactive',
|
|
20
|
-
];
|
|
21
|
-
// Check for both exact matches and prefix matches (to handle --flag=value variants)
|
|
22
|
-
return spinnerDisablingFlags.some((flag) => args.includes(flag) || // exact match
|
|
23
|
-
args.some((arg) => arg.startsWith(`${flag}=`)));
|
|
24
|
-
}
|
|
3
|
+
import { shouldDisableSpinner } from './global-args.js';
|
|
25
4
|
// ── Early spinner (shown before command module is loaded) ──────────────
|
|
26
5
|
let earlySpinnerInstance = null;
|
|
27
6
|
let originalStdoutWrite = null;
|
package/dist/lib/spinner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,YAAY,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"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"}
|