@braingrid/cli 0.2.0 → 0.2.2

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 (219) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +55 -39
  3. package/dist/chunk-KNVWIF3L.js +401 -0
  4. package/dist/chunk-KNVWIF3L.js.map +1 -0
  5. package/dist/cli.js +6236 -245
  6. package/dist/cli.js.map +1 -1
  7. package/dist/gh-installer-B65ZOOC4.js +13 -0
  8. package/dist/gh-installer-B65ZOOC4.js.map +1 -0
  9. package/package.json +19 -11
  10. package/dist/build-config.d.ts +0 -26
  11. package/dist/build-config.d.ts.map +0 -1
  12. package/dist/build-config.js +0 -45
  13. package/dist/build-config.js.map +0 -1
  14. package/dist/cli.d.ts +0 -3
  15. package/dist/cli.d.ts.map +0 -1
  16. package/dist/handlers/auth.handlers.d.ts +0 -13
  17. package/dist/handlers/auth.handlers.d.ts.map +0 -1
  18. package/dist/handlers/auth.handlers.js +0 -111
  19. package/dist/handlers/auth.handlers.js.map +0 -1
  20. package/dist/handlers/index.d.ts +0 -13
  21. package/dist/handlers/index.d.ts.map +0 -1
  22. package/dist/handlers/index.js +0 -13
  23. package/dist/handlers/index.js.map +0 -1
  24. package/dist/handlers/init.handlers.d.ts +0 -10
  25. package/dist/handlers/init.handlers.d.ts.map +0 -1
  26. package/dist/handlers/init.handlers.js +0 -638
  27. package/dist/handlers/init.handlers.js.map +0 -1
  28. package/dist/handlers/project.handlers.d.ts +0 -36
  29. package/dist/handlers/project.handlers.d.ts.map +0 -1
  30. package/dist/handlers/project.handlers.js +0 -309
  31. package/dist/handlers/project.handlers.js.map +0 -1
  32. package/dist/handlers/requirement.handlers.d.ts +0 -32
  33. package/dist/handlers/requirement.handlers.d.ts.map +0 -1
  34. package/dist/handlers/requirement.handlers.js +0 -264
  35. package/dist/handlers/requirement.handlers.js.map +0 -1
  36. package/dist/handlers/status.handlers.d.ts +0 -12
  37. package/dist/handlers/status.handlers.d.ts.map +0 -1
  38. package/dist/handlers/status.handlers.js +0 -212
  39. package/dist/handlers/status.handlers.js.map +0 -1
  40. package/dist/handlers/task.handlers.d.ts +0 -29
  41. package/dist/handlers/task.handlers.d.ts.map +0 -1
  42. package/dist/handlers/task.handlers.js +0 -326
  43. package/dist/handlers/task.handlers.js.map +0 -1
  44. package/dist/handlers/types.d.ts +0 -10
  45. package/dist/handlers/types.d.ts.map +0 -1
  46. package/dist/handlers/types.js +0 -5
  47. package/dist/handlers/types.js.map +0 -1
  48. package/dist/handlers/update.handlers.d.ts +0 -16
  49. package/dist/handlers/update.handlers.d.ts.map +0 -1
  50. package/dist/handlers/update.handlers.js +0 -119
  51. package/dist/handlers/update.handlers.js.map +0 -1
  52. package/dist/services/auth.d.ts +0 -59
  53. package/dist/services/auth.d.ts.map +0 -1
  54. package/dist/services/auth.js +0 -549
  55. package/dist/services/auth.js.map +0 -1
  56. package/dist/services/claude.d.ts +0 -18
  57. package/dist/services/claude.d.ts.map +0 -1
  58. package/dist/services/claude.js +0 -164
  59. package/dist/services/claude.js.map +0 -1
  60. package/dist/services/credential-store.d.ts +0 -47
  61. package/dist/services/credential-store.d.ts.map +0 -1
  62. package/dist/services/credential-store.js +0 -89
  63. package/dist/services/credential-store.js.map +0 -1
  64. package/dist/services/internal/github-service.d.ts +0 -67
  65. package/dist/services/internal/github-service.d.ts.map +0 -1
  66. package/dist/services/internal/github-service.js +0 -81
  67. package/dist/services/internal/github-service.js.map +0 -1
  68. package/dist/services/internal/repository-service.d.ts +0 -79
  69. package/dist/services/internal/repository-service.d.ts.map +0 -1
  70. package/dist/services/internal/repository-service.js +0 -88
  71. package/dist/services/internal/repository-service.js.map +0 -1
  72. package/dist/services/oauth2-auth.d.ts +0 -76
  73. package/dist/services/oauth2-auth.d.ts.map +0 -1
  74. package/dist/services/oauth2-auth.js +0 -451
  75. package/dist/services/oauth2-auth.js.map +0 -1
  76. package/dist/services/project-service.d.ts +0 -24
  77. package/dist/services/project-service.d.ts.map +0 -1
  78. package/dist/services/project-service.js +0 -60
  79. package/dist/services/project-service.js.map +0 -1
  80. package/dist/services/requirement-service.d.ts +0 -32
  81. package/dist/services/requirement-service.d.ts.map +0 -1
  82. package/dist/services/requirement-service.js +0 -91
  83. package/dist/services/requirement-service.js.map +0 -1
  84. package/dist/services/task-service.d.ts +0 -22
  85. package/dist/services/task-service.d.ts.map +0 -1
  86. package/dist/services/task-service.js +0 -52
  87. package/dist/services/task-service.js.map +0 -1
  88. package/dist/types/api.d.ts +0 -16
  89. package/dist/types/api.d.ts.map +0 -1
  90. package/dist/types/api.js +0 -5
  91. package/dist/types/api.js.map +0 -1
  92. package/dist/types/auth.d.ts +0 -73
  93. package/dist/types/auth.d.ts.map +0 -1
  94. package/dist/types/auth.js +0 -2
  95. package/dist/types/auth.js.map +0 -1
  96. package/dist/types/claude.d.ts +0 -22
  97. package/dist/types/claude.d.ts.map +0 -1
  98. package/dist/types/claude.js +0 -2
  99. package/dist/types/claude.js.map +0 -1
  100. package/dist/types/github.d.ts +0 -105
  101. package/dist/types/github.d.ts.map +0 -1
  102. package/dist/types/github.js +0 -6
  103. package/dist/types/github.js.map +0 -1
  104. package/dist/types/local-project.d.ts +0 -30
  105. package/dist/types/local-project.d.ts.map +0 -1
  106. package/dist/types/local-project.js +0 -24
  107. package/dist/types/local-project.js.map +0 -1
  108. package/dist/types/project.d.ts +0 -56
  109. package/dist/types/project.d.ts.map +0 -1
  110. package/dist/types/project.js +0 -5
  111. package/dist/types/project.js.map +0 -1
  112. package/dist/types/requirement.d.ts +0 -69
  113. package/dist/types/requirement.d.ts.map +0 -1
  114. package/dist/types/requirement.js +0 -5
  115. package/dist/types/requirement.js.map +0 -1
  116. package/dist/types/task.d.ts +0 -44
  117. package/dist/types/task.d.ts.map +0 -1
  118. package/dist/types/task.js +0 -5
  119. package/dist/types/task.js.map +0 -1
  120. package/dist/utils/axios-retry.d.ts +0 -25
  121. package/dist/utils/axios-retry.d.ts.map +0 -1
  122. package/dist/utils/axios-retry.js +0 -174
  123. package/dist/utils/axios-retry.js.map +0 -1
  124. package/dist/utils/axios-with-auth.d.ts +0 -10
  125. package/dist/utils/axios-with-auth.d.ts.map +0 -1
  126. package/dist/utils/axios-with-auth.js +0 -118
  127. package/dist/utils/axios-with-auth.js.map +0 -1
  128. package/dist/utils/cli-tools.d.ts +0 -30
  129. package/dist/utils/cli-tools.d.ts.map +0 -1
  130. package/dist/utils/cli-tools.js +0 -199
  131. package/dist/utils/cli-tools.js.map +0 -1
  132. package/dist/utils/command-execution.d.ts +0 -30
  133. package/dist/utils/command-execution.d.ts.map +0 -1
  134. package/dist/utils/command-execution.js +0 -264
  135. package/dist/utils/command-execution.js.map +0 -1
  136. package/dist/utils/command-parser.d.ts +0 -85
  137. package/dist/utils/command-parser.d.ts.map +0 -1
  138. package/dist/utils/command-parser.js +0 -287
  139. package/dist/utils/command-parser.js.map +0 -1
  140. package/dist/utils/config.d.ts +0 -10
  141. package/dist/utils/config.d.ts.map +0 -1
  142. package/dist/utils/config.js +0 -77
  143. package/dist/utils/config.js.map +0 -1
  144. package/dist/utils/error-formatter.d.ts +0 -17
  145. package/dist/utils/error-formatter.d.ts.map +0 -1
  146. package/dist/utils/error-formatter.js +0 -115
  147. package/dist/utils/error-formatter.js.map +0 -1
  148. package/dist/utils/formatting.d.ts +0 -10
  149. package/dist/utils/formatting.d.ts.map +0 -1
  150. package/dist/utils/formatting.js +0 -122
  151. package/dist/utils/formatting.js.map +0 -1
  152. package/dist/utils/gh-installer.d.ts +0 -31
  153. package/dist/utils/gh-installer.d.ts.map +0 -1
  154. package/dist/utils/gh-installer.js +0 -296
  155. package/dist/utils/gh-installer.js.map +0 -1
  156. package/dist/utils/git-installer.d.ts +0 -31
  157. package/dist/utils/git-installer.d.ts.map +0 -1
  158. package/dist/utils/git-installer.js +0 -290
  159. package/dist/utils/git-installer.js.map +0 -1
  160. package/dist/utils/git.d.ts +0 -60
  161. package/dist/utils/git.d.ts.map +0 -1
  162. package/dist/utils/git.js +0 -144
  163. package/dist/utils/git.js.map +0 -1
  164. package/dist/utils/github-repo.d.ts +0 -43
  165. package/dist/utils/github-repo.d.ts.map +0 -1
  166. package/dist/utils/github-repo.js +0 -113
  167. package/dist/utils/github-repo.js.map +0 -1
  168. package/dist/utils/id-normalization.d.ts +0 -26
  169. package/dist/utils/id-normalization.d.ts.map +0 -1
  170. package/dist/utils/id-normalization.js +0 -45
  171. package/dist/utils/id-normalization.js.map +0 -1
  172. package/dist/utils/jwt.d.ts +0 -45
  173. package/dist/utils/jwt.d.ts.map +0 -1
  174. package/dist/utils/jwt.js +0 -64
  175. package/dist/utils/jwt.js.map +0 -1
  176. package/dist/utils/local-store.d.ts +0 -36
  177. package/dist/utils/local-store.d.ts.map +0 -1
  178. package/dist/utils/local-store.js +0 -94
  179. package/dist/utils/local-store.js.map +0 -1
  180. package/dist/utils/logger.d.ts +0 -36
  181. package/dist/utils/logger.d.ts.map +0 -1
  182. package/dist/utils/logger.js +0 -176
  183. package/dist/utils/logger.js.map +0 -1
  184. package/dist/utils/package-manager-installer.d.ts +0 -36
  185. package/dist/utils/package-manager-installer.d.ts.map +0 -1
  186. package/dist/utils/package-manager-installer.js +0 -106
  187. package/dist/utils/package-manager-installer.js.map +0 -1
  188. package/dist/utils/package-manager.d.ts +0 -31
  189. package/dist/utils/package-manager.d.ts.map +0 -1
  190. package/dist/utils/package-manager.js +0 -133
  191. package/dist/utils/package-manager.js.map +0 -1
  192. package/dist/utils/projects.d.ts +0 -23
  193. package/dist/utils/projects.d.ts.map +0 -1
  194. package/dist/utils/projects.js +0 -36
  195. package/dist/utils/projects.js.map +0 -1
  196. package/dist/utils/repository-access.d.ts +0 -89
  197. package/dist/utils/repository-access.d.ts.map +0 -1
  198. package/dist/utils/repository-access.js +0 -132
  199. package/dist/utils/repository-access.js.map +0 -1
  200. package/dist/utils/requirements.d.ts +0 -43
  201. package/dist/utils/requirements.d.ts.map +0 -1
  202. package/dist/utils/requirements.js +0 -79
  203. package/dist/utils/requirements.js.map +0 -1
  204. package/dist/utils/spinner.d.ts +0 -47
  205. package/dist/utils/spinner.d.ts.map +0 -1
  206. package/dist/utils/spinner.js +0 -101
  207. package/dist/utils/spinner.js.map +0 -1
  208. package/dist/utils/status-parser.d.ts +0 -95
  209. package/dist/utils/status-parser.d.ts.map +0 -1
  210. package/dist/utils/status-parser.js +0 -205
  211. package/dist/utils/status-parser.js.map +0 -1
  212. package/dist/utils/tasks.d.ts +0 -21
  213. package/dist/utils/tasks.d.ts.map +0 -1
  214. package/dist/utils/tasks.js +0 -63
  215. package/dist/utils/tasks.js.map +0 -1
  216. package/dist/utils/workspace-manager.d.ts +0 -65
  217. package/dist/utils/workspace-manager.d.ts.map +0 -1
  218. package/dist/utils/workspace-manager.js +0 -98
  219. package/dist/utils/workspace-manager.js.map +0 -1
@@ -1,287 +0,0 @@
1
- import { parseAndValidateStatus } from './status-parser.js';
2
- /**
3
- * Commands that can work with context (no requirement ID needed when context is active)
4
- */
5
- const CONTEXTUAL_COMMANDS = new Set([
6
- 'show',
7
- 'task',
8
- 'tasks',
9
- 'build',
10
- 'assign',
11
- 'unassign',
12
- 'close',
13
- 'reopen',
14
- ]);
15
- /**
16
- * Commands that are always global (never use context)
17
- */
18
- const GLOBAL_COMMANDS = new Set([
19
- 'help',
20
- 'version',
21
- 'login',
22
- 'logout',
23
- 'whoami',
24
- 'status',
25
- 'clear',
26
- 'exit',
27
- 'quit',
28
- 'use',
29
- 'context',
30
- 'list',
31
- 'my',
32
- 'mine',
33
- 'assigned',
34
- 'req',
35
- 'requirements',
36
- 'github',
37
- 'claude',
38
- 'logs',
39
- 'log',
40
- 'debug:assigned',
41
- ]);
42
- /**
43
- * Validates and normalizes a requirement ID
44
- * Accepts formats: REQ-123, req-123, 123, or UUID format
45
- *
46
- * @param id - The requirement ID to validate
47
- * @returns Normalized requirement ID or null if invalid
48
- */
49
- export function validateRequirementId(id) {
50
- if (!id || typeof id !== 'string') {
51
- return null;
52
- }
53
- const trimmedId = id.trim();
54
- // Handle REQ-XXX format
55
- const reqMatch = trimmedId.match(/^req[-_]?(\d+)$/i);
56
- if (reqMatch) {
57
- return `req_${reqMatch[1]}`;
58
- }
59
- // Handle numeric ID only
60
- const numMatch = trimmedId.match(/^(\d+)$/);
61
- if (numMatch) {
62
- return `req_${numMatch[1]}`;
63
- }
64
- // Handle UUID format (req_abc123 style)
65
- const uuidMatch = trimmedId.match(/^req_[a-zA-Z0-9]+$/);
66
- if (uuidMatch) {
67
- return trimmedId;
68
- }
69
- // Handle UUID without req_ prefix (must contain numbers to be valid)
70
- const bareUuidMatch = trimmedId.match(/^[a-zA-Z]*[0-9]+[a-zA-Z0-9]*$/);
71
- if (bareUuidMatch && trimmedId.length >= 6) {
72
- return `req_${trimmedId}`;
73
- }
74
- return null;
75
- }
76
- /**
77
- * Extracts status filters from command arguments
78
- *
79
- * @param args - Command arguments
80
- * @returns Object with filtered args and extracted status filters
81
- */
82
- export function extractStatusFilters(args) {
83
- const filteredArgs = [];
84
- let statusArg = null;
85
- let skipNext = false;
86
- for (let i = 0; i < args.length; i++) {
87
- if (skipNext) {
88
- skipNext = false;
89
- continue;
90
- }
91
- const arg = args[i];
92
- // Check for --status flag
93
- if (arg === '--status' || arg === '-s') {
94
- if (i + 1 < args.length) {
95
- statusArg = args[i + 1];
96
- skipNext = true;
97
- }
98
- else {
99
- return {
100
- filteredArgs: args,
101
- statusError: 'Status flag requires a value (e.g., --status todo,doing)',
102
- };
103
- }
104
- }
105
- else if (arg.startsWith('--status=')) {
106
- statusArg = arg.substring('--status='.length);
107
- }
108
- else {
109
- filteredArgs.push(arg);
110
- }
111
- }
112
- // Parse status if found
113
- if (statusArg) {
114
- const statusResult = parseAndValidateStatus(statusArg);
115
- if (statusResult.hasErrors) {
116
- return {
117
- filteredArgs: args,
118
- statusError: statusResult.errorMessage,
119
- };
120
- }
121
- return {
122
- filteredArgs,
123
- statusFilters: statusResult.statuses,
124
- };
125
- }
126
- return { filteredArgs };
127
- }
128
- /**
129
- * Parses a command string into its components
130
- *
131
- * @param input - The raw command input
132
- * @param hasContext - Whether there's an active requirement context
133
- * @returns ParsedCommand object
134
- */
135
- export function parseCommand(input, hasContext = false) {
136
- const trimmedInput = input.trim();
137
- const parts = trimmedInput.split(/\s+/).filter(p => p.length > 0);
138
- if (parts.length === 0) {
139
- return {
140
- type: 'global',
141
- command: '',
142
- args: [],
143
- rawInput: input,
144
- };
145
- }
146
- const [firstPart, ...restParts] = parts;
147
- const command = firstPart.toLowerCase();
148
- // Check if it's a global command
149
- if (GLOBAL_COMMANDS.has(command)) {
150
- // Special handling for 'use' command
151
- if (command === 'use' && restParts.length > 0) {
152
- const reqId = validateRequirementId(restParts[0]);
153
- if (!reqId) {
154
- return {
155
- type: 'global',
156
- command,
157
- args: restParts,
158
- rawInput: input,
159
- errors: [`Invalid requirement ID: ${restParts[0]}`],
160
- };
161
- }
162
- return {
163
- type: 'global',
164
- command,
165
- requirementId: reqId,
166
- args: restParts.slice(1),
167
- rawInput: input,
168
- };
169
- }
170
- // Extract status filters for list commands
171
- const { filteredArgs, statusFilters, statusError } = extractStatusFilters(restParts);
172
- const result = {
173
- type: 'global',
174
- command,
175
- args: filteredArgs,
176
- rawInput: input,
177
- };
178
- if (statusFilters) {
179
- result.statusFilters = statusFilters;
180
- }
181
- if (statusError) {
182
- result.errors = [statusError];
183
- }
184
- return result;
185
- }
186
- // Check if it's a contextual command
187
- if (CONTEXTUAL_COMMANDS.has(command)) {
188
- // Determine if this is contextual or direct based on arguments
189
- let requirementId = null;
190
- let subcommand;
191
- let remainingArgs = restParts;
192
- // Check if first argument could be a subcommand
193
- if (restParts.length > 0) {
194
- const possibleSubcommand = restParts[0].toLowerCase();
195
- // For task/tasks command, check for subcommands
196
- if ((command === 'task' || command === 'tasks') &&
197
- ['list', 'show', 'update', 'complete', 'search', 'for', 'assigned'].includes(possibleSubcommand)) {
198
- subcommand = possibleSubcommand;
199
- remainingArgs = restParts.slice(1);
200
- }
201
- // Check if next argument is a requirement ID
202
- if (remainingArgs.length > 0) {
203
- const possibleReqId = validateRequirementId(remainingArgs[0]);
204
- if (possibleReqId) {
205
- requirementId = possibleReqId;
206
- remainingArgs = remainingArgs.slice(1);
207
- }
208
- }
209
- }
210
- // Determine command type
211
- const isContextual = hasContext && !requirementId;
212
- const isDirect = !hasContext || requirementId !== null;
213
- // Extract status filters
214
- const { filteredArgs, statusFilters, statusError } = extractStatusFilters(remainingArgs);
215
- const result = {
216
- type: isContextual ? 'contextual' : 'direct',
217
- command,
218
- subcommand,
219
- requirementId: requirementId || undefined,
220
- args: filteredArgs,
221
- rawInput: input,
222
- };
223
- if (statusFilters) {
224
- result.statusFilters = statusFilters;
225
- }
226
- if (statusError) {
227
- result.errors = result.errors || [];
228
- result.errors.push(statusError);
229
- }
230
- // Add error if direct command without requirement ID and no context
231
- if (isDirect && !requirementId && !hasContext) {
232
- result.errors = result.errors || [];
233
- result.errors.push(`Command '${command}' requires a requirement ID or active context`);
234
- }
235
- return result;
236
- }
237
- // Unknown command - treat as global
238
- return {
239
- type: 'global',
240
- command,
241
- args: restParts,
242
- rawInput: input,
243
- errors: [`Unknown command: ${command}`],
244
- };
245
- }
246
- /**
247
- * Formats a requirement ID for display (e.g., req_123 -> REQ-123)
248
- *
249
- * @param requirementId - Internal requirement ID
250
- * @returns Formatted ID for display
251
- */
252
- export function formatRequirementIdForDisplay(requirementId) {
253
- const match = requirementId.match(/^req_(\d+)$/);
254
- if (match) {
255
- return `REQ-${match[1]}`;
256
- }
257
- return requirementId;
258
- }
259
- /**
260
- * Suggests commands based on partial input
261
- *
262
- * @param partial - Partial command input
263
- * @param hasContext - Whether there's an active context
264
- * @returns Array of suggested commands
265
- */
266
- export function suggestCommands(partial, hasContext = false) {
267
- const allCommands = new Set([...GLOBAL_COMMANDS, ...CONTEXTUAL_COMMANDS]);
268
- const normalizedPartial = partial.toLowerCase();
269
- if (!normalizedPartial) {
270
- return Array.from(allCommands).sort();
271
- }
272
- const suggestions = Array.from(allCommands)
273
- .filter(cmd => cmd.startsWith(normalizedPartial))
274
- .sort();
275
- // Add context-specific suggestions
276
- if (hasContext && suggestions.length === 0) {
277
- // Suggest contextual commands if user might be trying to use them
278
- const contextualSuggestions = Array.from(CONTEXTUAL_COMMANDS)
279
- .filter(cmd => cmd.includes(normalizedPartial))
280
- .sort();
281
- if (contextualSuggestions.length > 0) {
282
- return contextualSuggestions;
283
- }
284
- }
285
- return suggestions;
286
- }
287
- //# sourceMappingURL=command-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../../src/utils/command-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAe,MAAM,oBAAoB,CAAC;AAoDzE;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACnC,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,UAAU;IACV,OAAO;IACP,QAAQ;CACR,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC/B,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,SAAS;IACT,MAAM;IACN,IAAI;IACJ,MAAM;IACN,UAAU;IACV,KAAK;IACL,cAAc;IACd,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,KAAK;IACL,gBAAgB;CAChB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC/C,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAE5B,wBAAwB;IACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACrD,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,yBAAyB;IACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxD,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACvE,IAAI,aAAa,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAO,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAc;IAKlD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,KAAK,CAAC;YACjB,SAAS;QACV,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,0BAA0B;QAC1B,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,SAAS,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxB,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACP,OAAO;oBACN,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,0DAA0D;iBACvE,CAAC;YACH,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACP,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;IAED,wBAAwB;IACxB,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO;gBACN,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,YAAY,CAAC,YAAY;aACtC,CAAC;QACH,CAAC;QAED,OAAO;YACN,YAAY;YACZ,aAAa,EAAE,YAAY,CAAC,QAAQ;SACpC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,aAAsB,KAAK;IACtE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAElE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,KAAK;SACf,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAExC,iCAAiC;IACjC,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,qCAAqC;QACrC,IAAI,OAAO,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,OAAO;oBACN,IAAI,EAAE,QAAQ;oBACd,OAAO;oBACP,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,CAAC,2BAA2B,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnD,CAAC;YACH,CAAC;YACD,OAAO;gBACN,IAAI,EAAE,QAAQ;gBACd,OAAO;gBACP,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,QAAQ,EAAE,KAAK;aACf,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAErF,MAAM,MAAM,GAAkB;YAC7B,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;QACtC,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED,qCAAqC;IACrC,IAAI,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,+DAA+D;QAC/D,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,UAA8B,CAAC;QACnC,IAAI,aAAa,GAAa,SAAS,CAAC;QAExC,gDAAgD;QAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,kBAAkB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtD,gDAAgD;YAChD,IACC,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,OAAO,CAAC;gBAC3C,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,CAC3E,kBAAkB,CAClB,EACA,CAAC;gBACF,UAAU,GAAG,kBAAkB,CAAC;gBAChC,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;YAED,6CAA6C;YAC7C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,aAAa,EAAE,CAAC;oBACnB,aAAa,GAAG,aAAa,CAAC;oBAC9B,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;YACF,CAAC;QACF,CAAC;QAED,yBAAyB;QACzB,MAAM,YAAY,GAAG,UAAU,IAAI,CAAC,aAAa,CAAC;QAClD,MAAM,QAAQ,GAAG,CAAC,UAAU,IAAI,aAAa,KAAK,IAAI,CAAC;QAEvD,yBAAyB;QACzB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAEzF,MAAM,MAAM,GAAkB;YAC7B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;YAC5C,OAAO;YACP,UAAU;YACV,aAAa,EAAE,aAAa,IAAI,SAAS;YACzC,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;QACtC,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,oEAAoE;QACpE,IAAI,QAAQ,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,+CAA+C,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED,oCAAoC;IACpC,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,CAAC,oBAAoB,OAAO,EAAE,CAAC;KACvC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,aAAqB;IAClE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACjD,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,aAAa,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,aAAsB,KAAK;IAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAC1E,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEhD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;SACzC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;SAChD,IAAI,EAAE,CAAC;IAET,mCAAmC;IACnC,IAAI,UAAU,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,kEAAkE;QAClE,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;aAC3D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;aAC9C,IAAI,EAAE,CAAC;QAET,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,qBAAqB,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,OAAO,WAAW,CAAC;AACpB,CAAC"}
@@ -1,10 +0,0 @@
1
- export interface BrainGridConfig {
2
- apiUrl: string;
3
- organizationId?: string;
4
- clientId?: string;
5
- oauthClientId?: string;
6
- getWorkOSAuthUrl(): string;
7
- getWebAppUrl(): string;
8
- }
9
- export declare function getConfig(): BrainGridConfig;
10
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,IAAI,MAAM,CAAC;IAC3B,YAAY,IAAI,MAAM,CAAC;CACvB;AAED,wBAAgB,SAAS,IAAI,eAAe,CAoF3C"}
@@ -1,77 +0,0 @@
1
- import { BUILD_ENV, PRODUCTION_CONFIG, DEVELOPMENT_CONFIG } from '../build-config.js';
2
- export function getConfig() {
3
- // Determine base config based on BUILD_ENV
4
- const baseConfig = BUILD_ENV === 'production' ? PRODUCTION_CONFIG : DEVELOPMENT_CONFIG;
5
- // In development builds, allow NODE_ENV to override
6
- let apiUrl = baseConfig.apiUrl;
7
- if (BUILD_ENV === 'development') {
8
- if (process.env.NODE_ENV === 'local' || process.env.NODE_ENV === 'test') {
9
- // In local/test environment, use localhost
10
- apiUrl = 'http://localhost:3377';
11
- }
12
- else if (process.env.NODE_ENV === 'development') {
13
- // In development, use dev server
14
- apiUrl = DEVELOPMENT_CONFIG.apiUrl;
15
- }
16
- }
17
- // Determine WorkOS AuthKit URL based on environment
18
- const getWorkOSAuthUrl = () => {
19
- // Allow override via environment variable
20
- if (process.env.WORKOS_AUTH_URL) {
21
- return process.env.WORKOS_AUTH_URL;
22
- }
23
- // In production builds, always use production URL
24
- if (BUILD_ENV === 'production') {
25
- return PRODUCTION_CONFIG.workosAuthUrl;
26
- }
27
- // In development builds, respect NODE_ENV
28
- const env = process.env.NODE_ENV || 'development';
29
- if (env === 'local' || env === 'test' || env === 'development' || env === 'staging') {
30
- return DEVELOPMENT_CONFIG.workosAuthUrl;
31
- }
32
- return PRODUCTION_CONFIG.workosAuthUrl;
33
- };
34
- // Determine WorkOS OAuth client ID based on environment
35
- const getOAuthClientId = () => {
36
- // Allow override via environment variable
37
- if (process.env.WORKOS_CLIENT_ID) {
38
- return process.env.WORKOS_CLIENT_ID;
39
- }
40
- // In production builds, always use production client ID
41
- if (BUILD_ENV === 'production') {
42
- return PRODUCTION_CONFIG.workosClientId;
43
- }
44
- // In development builds, respect NODE_ENV
45
- const env = process.env.NODE_ENV || 'development';
46
- if (env === 'local' || env === 'test' || env === 'development' || env === 'staging') {
47
- return DEVELOPMENT_CONFIG.workosClientId;
48
- }
49
- return PRODUCTION_CONFIG.workosClientId;
50
- };
51
- // Determine web app URL based on environment
52
- const getWebAppUrl = () => {
53
- // Allow override via environment variable
54
- if (process.env.BRAINGRID_WEB_URL) {
55
- return process.env.BRAINGRID_WEB_URL;
56
- }
57
- // In production builds, always use production URL
58
- if (BUILD_ENV === 'production') {
59
- return PRODUCTION_CONFIG.apiUrl;
60
- }
61
- // In development builds, respect NODE_ENV
62
- const env = process.env.NODE_ENV || 'development';
63
- if (env === 'local' || env === 'test') {
64
- return 'http://localhost:3377';
65
- }
66
- return DEVELOPMENT_CONFIG.apiUrl;
67
- };
68
- return {
69
- apiUrl: process.env.BRAINGRID_API_URL || apiUrl,
70
- organizationId: process.env.BRAINGRID_ORG_ID,
71
- clientId: process.env.BRAINGRID_CLIENT_ID || 'braingrid-cli',
72
- oauthClientId: getOAuthClientId(),
73
- getWorkOSAuthUrl,
74
- getWebAppUrl,
75
- };
76
- }
77
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Error Formatter Utility
3
- *
4
- * Extracts user-friendly error messages from API errors (AxiosError)
5
- * and provides context-aware error messages for common scenarios.
6
- */
7
- /**
8
- * Format an error for display to the user
9
- * Extracts API error details from AxiosError responses
10
- */
11
- export declare function formatError(error: unknown, context?: string): string;
12
- /**
13
- * Format context string for error messages
14
- * Converts resource names to user-friendly format
15
- */
16
- export declare function getResourceContext(resourceType: string, id?: string): string;
17
- //# sourceMappingURL=error-formatter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/error-formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAapE;AAyGD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5E"}
@@ -1,115 +0,0 @@
1
- /**
2
- * Error Formatter Utility
3
- *
4
- * Extracts user-friendly error messages from API errors (AxiosError)
5
- * and provides context-aware error messages for common scenarios.
6
- */
7
- /**
8
- * Format an error for display to the user
9
- * Extracts API error details from AxiosError responses
10
- */
11
- export function formatError(error, context) {
12
- // Handle AxiosError specifically
13
- if (isAxiosError(error)) {
14
- return formatAxiosError(error, context);
15
- }
16
- // Handle regular Error objects
17
- if (error instanceof Error) {
18
- return error.message;
19
- }
20
- // Fallback for unknown error types
21
- return String(error);
22
- }
23
- /**
24
- * Type guard to check if error is an AxiosError
25
- */
26
- function isAxiosError(error) {
27
- return (typeof error === 'object' &&
28
- error !== null &&
29
- 'isAxiosError' in error &&
30
- error.isAxiosError === true);
31
- }
32
- /**
33
- * Format AxiosError with API response details
34
- */
35
- function formatAxiosError(error, context) {
36
- const status = error.response?.status;
37
- const data = error.response?.data;
38
- // Try to extract structured error from API response
39
- if (data && typeof data === 'object' && 'error' in data) {
40
- const errorResponse = data;
41
- if (errorResponse.error?.message) {
42
- // Use API error message if available
43
- return errorResponse.error.message;
44
- }
45
- }
46
- // Handle specific HTTP status codes with context-aware messages
47
- if (status) {
48
- return getStatusMessage(status, context, error);
49
- }
50
- // Handle network errors (no response)
51
- if (error.code === 'ECONNREFUSED') {
52
- return 'Could not connect to BrainGrid API. Please check your network connection.';
53
- }
54
- if (error.code === 'ETIMEDOUT') {
55
- return 'Request timed out. Please try again.';
56
- }
57
- // Fallback to error message
58
- return error.message;
59
- }
60
- /**
61
- * Get user-friendly message for HTTP status codes
62
- */
63
- function getStatusMessage(status, context, error) {
64
- switch (status) {
65
- case 400: {
66
- // Bad Request - try to extract details from response
67
- const data = error?.response?.data;
68
- if (data && typeof data === 'object') {
69
- // Check for validation errors or detailed message
70
- if ('message' in data && typeof data.message === 'string') {
71
- return data.message;
72
- }
73
- if ('detail' in data && typeof data.detail === 'string') {
74
- return data.detail;
75
- }
76
- }
77
- return context
78
- ? `Invalid ${context} - please check your input and try again`
79
- : 'Invalid request - please check your input and try again';
80
- }
81
- case 401:
82
- return 'Authentication required. Please run "braingrid login" to authenticate.';
83
- case 403:
84
- return context
85
- ? `You don't have permission to access this ${context}`
86
- : "You don't have permission to perform this action";
87
- case 404:
88
- return context ? `${context} not found` : 'Resource not found';
89
- case 409:
90
- return context
91
- ? `${context} already exists or conflicts with existing data`
92
- : 'Resource already exists or conflicts with existing data';
93
- case 422:
94
- return 'Validation failed - please check your input';
95
- case 429:
96
- return 'Too many requests. Please wait a moment and try again.';
97
- case 500:
98
- return 'Server error. Please try again later.';
99
- case 502:
100
- case 503:
101
- case 504:
102
- return 'BrainGrid service is temporarily unavailable. Please try again later.';
103
- default:
104
- return `Request failed with status ${status}`;
105
- }
106
- }
107
- /**
108
- * Format context string for error messages
109
- * Converts resource names to user-friendly format
110
- */
111
- export function getResourceContext(resourceType, id) {
112
- const formatted = resourceType.charAt(0).toUpperCase() + resourceType.slice(1);
113
- return id ? `${formatted} '${id}'` : formatted;
114
- }
115
- //# sourceMappingURL=error-formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-formatter.js","sourceRoot":"","sources":["../../src/utils/error-formatter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { Requirement, RequirementTask as Task } from '../types/requirement.js';
2
- export declare function formatRequirementsList(requirements: Requirement[], total: number): string;
3
- export declare function formatRequirementDetail(requirement: Requirement): string;
4
- export declare function formatTasksList(tasks: Task[], total?: number): string;
5
- export declare function formatTaskDetail(task: Task): string;
6
- export declare function formatErrorMessage(message: string): string;
7
- export declare function formatSuccessMessage(message: string): string;
8
- export declare function formatInfoMessage(message: string): string;
9
- export declare function formatWarningMessage(message: string): string;
10
- //# sourceMappingURL=formatting.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,eAAe,IAAI,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAI/E,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAyBzF;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAuBxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BrE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAwBnD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D"}