trello-cli-unofficial 0.11.5 → 0.11.6
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
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [0.11.6](https://github.com/JaegerCaiser/trello-cli-unofficial/compare/v0.11.5...v0.11.6) (2025-11-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* Add debug logs to CommandController for Windows troubleshooting ([5c146a9](https://github.com/JaegerCaiser/trello-cli-unofficial/commit/5c146a9801502747c9eb1dee3f6db38fa9ad20ab))
|
|
7
|
+
* Implement lazy Commander initialization for Windows compatibility ([e08ca9f](https://github.com/JaegerCaiser/trello-cli-unofficial/commit/e08ca9f298fb15d9b29e4e3daa98584c5d6321ad))
|
|
8
|
+
* Improve Windows compatibility test script ([2b230d9](https://github.com/JaegerCaiser/trello-cli-unofficial/commit/2b230d9b36e0b0b4f2fec52bbd9200fd424b4de9))
|
|
9
|
+
|
|
1
10
|
## [0.11.5](https://github.com/JaegerCaiser/trello-cli-unofficial/compare/v0.11.4...v0.11.5) (2025-11-14)
|
|
2
11
|
|
|
3
12
|
|
package/dist/main.js
CHANGED
|
@@ -31138,13 +31138,18 @@ class CommandController {
|
|
|
31138
31138
|
authController;
|
|
31139
31139
|
boardController;
|
|
31140
31140
|
cardController;
|
|
31141
|
-
program;
|
|
31141
|
+
program = null;
|
|
31142
31142
|
outputFormatter;
|
|
31143
31143
|
constructor() {
|
|
31144
31144
|
const configRepository = new FileConfigRepository;
|
|
31145
31145
|
this.authController = new AuthController(configRepository);
|
|
31146
31146
|
this.outputFormatter = new OutputFormatter;
|
|
31147
|
-
|
|
31147
|
+
}
|
|
31148
|
+
getProgram() {
|
|
31149
|
+
if (!this.program) {
|
|
31150
|
+
this.program = new Command;
|
|
31151
|
+
}
|
|
31152
|
+
return this.program;
|
|
31148
31153
|
}
|
|
31149
31154
|
getVersion() {
|
|
31150
31155
|
const cwdPackageJson = join(process.cwd(), "package.json");
|
|
@@ -31174,11 +31179,8 @@ class CommandController {
|
|
|
31174
31179
|
this.cardController = new CardController(trelloRepository, this.boardController, this.outputFormatter);
|
|
31175
31180
|
}
|
|
31176
31181
|
async setupCommands() {
|
|
31177
|
-
if (!this.program) {
|
|
31178
|
-
throw new Error(t2("errors.programNotInitialized"));
|
|
31179
|
-
}
|
|
31180
31182
|
const version = this.getVersion();
|
|
31181
|
-
this.
|
|
31183
|
+
this.getProgram().name("trello-cli-unofficial").description(t2("commands.description")).version(version).option("-f, --format <format>", t2("commands.formatOption"), "table").option("-v", t2("commands.versionOption")).option("--verbose", t2("commands.verboseOption")).on("option:format", (format) => {
|
|
31182
31184
|
this.outputFormatter.setFormat(format);
|
|
31183
31185
|
}).on("option:v", () => {
|
|
31184
31186
|
console.log(version);
|
|
@@ -31186,15 +31188,15 @@ class CommandController {
|
|
|
31186
31188
|
}).on("option:verbose", () => {
|
|
31187
31189
|
process.env.VERBOSE_ERRORS = "true";
|
|
31188
31190
|
});
|
|
31189
|
-
this.
|
|
31191
|
+
this.getProgram().command("interactive").alias("i").description(t2("commands.interactive.description")).action(async () => {
|
|
31190
31192
|
const configRepository = new FileConfigRepository;
|
|
31191
31193
|
const cli = new (await Promise.resolve().then(() => (init_TrelloCliController(), exports_TrelloCliController))).TrelloCliController(configRepository, this.outputFormatter);
|
|
31192
31194
|
await cli.run();
|
|
31193
31195
|
});
|
|
31194
|
-
this.
|
|
31196
|
+
this.getProgram().command("setup").description(t2("commands.setup.description")).action(async () => {
|
|
31195
31197
|
await this.authController.setupToken();
|
|
31196
31198
|
});
|
|
31197
|
-
const boardsCmd = this.
|
|
31199
|
+
const boardsCmd = this.getProgram().command("boards").description(t2("commands.boards.manage"));
|
|
31198
31200
|
boardsCmd.command("list").description(t2("commands.boards.description")).option("-f, --format <format>", t2("commands.formatOption"), "table").action(async (options) => {
|
|
31199
31201
|
try {
|
|
31200
31202
|
await this.initializeTrelloControllers();
|
|
@@ -31225,7 +31227,7 @@ class CommandController {
|
|
|
31225
31227
|
console.error("\u274C Erro:", error.message);
|
|
31226
31228
|
}
|
|
31227
31229
|
});
|
|
31228
|
-
this.
|
|
31230
|
+
this.getProgram().command("boards-legacy").description(t2("commands.deprecated.boardsLegacyDescription")).action(async () => {
|
|
31229
31231
|
console.warn(t2("commands.deprecated.boardsLegacyWarning"));
|
|
31230
31232
|
try {
|
|
31231
31233
|
await this.initializeTrelloControllers();
|
|
@@ -31234,7 +31236,7 @@ class CommandController {
|
|
|
31234
31236
|
console.error(t2("commands.deprecated.boardsLegacyError"), error.message);
|
|
31235
31237
|
}
|
|
31236
31238
|
});
|
|
31237
|
-
const listsCmd = this.
|
|
31239
|
+
const listsCmd = this.getProgram().command("lists").description(t2("commands.lists.description"));
|
|
31238
31240
|
listsCmd.command("list <boardId>").description(t2("commands.lists.list.description")).option("-f, --format <format>", t2("commands.formatOption"), "table").action(async (boardId, options) => {
|
|
31239
31241
|
try {
|
|
31240
31242
|
await this.initializeTrelloControllers();
|
|
@@ -31270,7 +31272,7 @@ class CommandController {
|
|
|
31270
31272
|
console.error(t2("commands.commandErrors.genericError"), error.message);
|
|
31271
31273
|
}
|
|
31272
31274
|
});
|
|
31273
|
-
this.
|
|
31275
|
+
this.getProgram().command("lists-legacy <boardName>").description(t2("commands.deprecated.listsLegacyDescription")).action(async (boardName) => {
|
|
31274
31276
|
console.warn(t2("commands.deprecated.listsLegacyWarning"));
|
|
31275
31277
|
try {
|
|
31276
31278
|
await this.initializeTrelloControllers();
|
|
@@ -31279,7 +31281,7 @@ class CommandController {
|
|
|
31279
31281
|
console.error(t2("commands.deprecated.listsLegacyError"), error.message);
|
|
31280
31282
|
}
|
|
31281
31283
|
});
|
|
31282
|
-
const cardsCmd = this.
|
|
31284
|
+
const cardsCmd = this.getProgram().command("cards").description(t2("commands.cards.manage"));
|
|
31283
31285
|
cardsCmd.command("list <listId>").description(t2("commands.cards.list.description")).option("-f, --format <format>", t2("commands.formatOption"), "table").action(async (listId, options) => {
|
|
31284
31286
|
try {
|
|
31285
31287
|
await this.initializeTrelloControllers();
|
|
@@ -31323,7 +31325,7 @@ class CommandController {
|
|
|
31323
31325
|
console.error(t2("commands.commandErrors.genericError"), error.message);
|
|
31324
31326
|
}
|
|
31325
31327
|
});
|
|
31326
|
-
this.
|
|
31328
|
+
this.getProgram().command("cards-legacy <boardName> <listName>").description(t2("commands.deprecated.cardsLegacyDescription")).action(async (boardName, listName) => {
|
|
31327
31329
|
console.warn(t2("commands.deprecated.cardsLegacyWarning"));
|
|
31328
31330
|
try {
|
|
31329
31331
|
await this.initializeTrelloControllers();
|
|
@@ -31332,7 +31334,7 @@ class CommandController {
|
|
|
31332
31334
|
console.error(t2("commands.deprecated.cardsLegacyError"), error.message);
|
|
31333
31335
|
}
|
|
31334
31336
|
});
|
|
31335
|
-
this.
|
|
31337
|
+
this.getProgram().command("create-card-legacy <boardName> <listName> <cardName>").description(t2("commands.deprecated.createCardLegacyDescription")).option("-d, --desc <description>", t2("commands.options.cardDescription")).action(async (boardName, listName, cardName, options) => {
|
|
31336
31338
|
console.warn(t2("commands.deprecated.createCardLegacyWarning"));
|
|
31337
31339
|
try {
|
|
31338
31340
|
await this.initializeTrelloControllers();
|
|
@@ -31341,7 +31343,7 @@ class CommandController {
|
|
|
31341
31343
|
console.error(t2("commands.commandErrors.genericError"), error.message);
|
|
31342
31344
|
}
|
|
31343
31345
|
});
|
|
31344
|
-
this.
|
|
31346
|
+
this.getProgram().command("move-card-legacy <cardId> <listName>").description(t2("commands.deprecated.moveCardLegacyDescription")).action(async (cardId, listName) => {
|
|
31345
31347
|
console.warn(t2("commands.deprecated.moveCardLegacyWarning"));
|
|
31346
31348
|
try {
|
|
31347
31349
|
await this.initializeTrelloControllers();
|
|
@@ -31350,7 +31352,7 @@ class CommandController {
|
|
|
31350
31352
|
console.error(t2("commands.commandErrors.genericError"), error.message);
|
|
31351
31353
|
}
|
|
31352
31354
|
});
|
|
31353
|
-
this.
|
|
31355
|
+
this.getProgram().command("delete-card-legacy <cardId>").description(t2("commands.deprecated.deleteCardLegacyDescription")).action(async (cardId) => {
|
|
31354
31356
|
console.warn(t2("commands.deprecated.deleteCardLegacyWarning"));
|
|
31355
31357
|
try {
|
|
31356
31358
|
await this.initializeTrelloControllers();
|
|
@@ -31367,7 +31369,7 @@ class CommandController {
|
|
|
31367
31369
|
const cli = new (await Promise.resolve().then(() => (init_TrelloCliController(), exports_TrelloCliController))).TrelloCliController(configRepository, this.outputFormatter);
|
|
31368
31370
|
await cli.run();
|
|
31369
31371
|
} else {
|
|
31370
|
-
await this.
|
|
31372
|
+
await this.getProgram().parseAsync();
|
|
31371
31373
|
}
|
|
31372
31374
|
}
|
|
31373
31375
|
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trello-cli-unofficial",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.11.
|
|
4
|
+
"version": "0.11.6",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Unofficial Trello CLI using Power-Up authentication, built with Bun for maximum performance",
|
|
7
7
|
"author": "Matheus Caiser <matheus.kaiser@gmail.com> (https://www.mrdeveloper.com.br/)",
|
|
@@ -19,15 +19,20 @@ export class CommandController {
|
|
|
19
19
|
private authController: AuthController;
|
|
20
20
|
private boardController!: BoardController;
|
|
21
21
|
private cardController!: CardController;
|
|
22
|
-
private program: Command;
|
|
22
|
+
private program: Command | null = null;
|
|
23
23
|
private outputFormatter: OutputFormatter;
|
|
24
24
|
|
|
25
25
|
constructor() {
|
|
26
26
|
const configRepository = new FileConfigRepository();
|
|
27
27
|
this.authController = new AuthController(configRepository);
|
|
28
28
|
this.outputFormatter = new OutputFormatter();
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
private getProgram(): Command {
|
|
32
|
+
if (!this.program) {
|
|
33
|
+
this.program = new Command();
|
|
34
|
+
}
|
|
35
|
+
return this.program;
|
|
31
36
|
}
|
|
32
37
|
|
|
33
38
|
private getVersion(): string {
|
|
@@ -84,15 +89,10 @@ export class CommandController {
|
|
|
84
89
|
}
|
|
85
90
|
|
|
86
91
|
private async setupCommands(): Promise<void> {
|
|
87
|
-
// Program should be initialized by now
|
|
88
|
-
if (!this.program) {
|
|
89
|
-
throw new Error(t('errors.programNotInitialized'));
|
|
90
|
-
}
|
|
91
|
-
|
|
92
92
|
// Get version using robust method
|
|
93
93
|
const version = this.getVersion();
|
|
94
94
|
|
|
95
|
-
this.
|
|
95
|
+
this.getProgram()
|
|
96
96
|
.name('trello-cli-unofficial')
|
|
97
97
|
.description(t('commands.description'))
|
|
98
98
|
.version(version)
|
|
@@ -112,7 +112,7 @@ export class CommandController {
|
|
|
112
112
|
});
|
|
113
113
|
|
|
114
114
|
// Interactive mode
|
|
115
|
-
this.
|
|
115
|
+
this.getProgram()
|
|
116
116
|
.command('interactive')
|
|
117
117
|
.alias('i')
|
|
118
118
|
.description(t('commands.interactive.description'))
|
|
@@ -125,7 +125,7 @@ export class CommandController {
|
|
|
125
125
|
});
|
|
126
126
|
|
|
127
127
|
// Setup command
|
|
128
|
-
this.
|
|
128
|
+
this.getProgram()
|
|
129
129
|
.command('setup')
|
|
130
130
|
.description(t('commands.setup.description'))
|
|
131
131
|
.action(async () => {
|
|
@@ -133,7 +133,7 @@ export class CommandController {
|
|
|
133
133
|
});
|
|
134
134
|
|
|
135
135
|
// Boards subcommands
|
|
136
|
-
const boardsCmd = this.
|
|
136
|
+
const boardsCmd = this.getProgram()
|
|
137
137
|
.command('boards')
|
|
138
138
|
.description(t('commands.boards.manage'));
|
|
139
139
|
|
|
@@ -186,7 +186,7 @@ export class CommandController {
|
|
|
186
186
|
});
|
|
187
187
|
|
|
188
188
|
// Legacy boards command with deprecation warning
|
|
189
|
-
this.
|
|
189
|
+
this.getProgram()
|
|
190
190
|
.command('boards-legacy')
|
|
191
191
|
.description(t('commands.deprecated.boardsLegacyDescription'))
|
|
192
192
|
.action(async () => {
|
|
@@ -203,7 +203,7 @@ export class CommandController {
|
|
|
203
203
|
});
|
|
204
204
|
|
|
205
205
|
// Lists subcommands
|
|
206
|
-
const listsCmd = this.
|
|
206
|
+
const listsCmd = this.getProgram()
|
|
207
207
|
.command('lists')
|
|
208
208
|
.description(t('commands.lists.description'));
|
|
209
209
|
|
|
@@ -272,7 +272,7 @@ export class CommandController {
|
|
|
272
272
|
});
|
|
273
273
|
|
|
274
274
|
// Legacy lists command with deprecation warning
|
|
275
|
-
this.
|
|
275
|
+
this.getProgram()
|
|
276
276
|
.command('lists-legacy <boardName>')
|
|
277
277
|
.description(t('commands.deprecated.listsLegacyDescription'))
|
|
278
278
|
.action(async (boardName: string) => {
|
|
@@ -289,7 +289,7 @@ export class CommandController {
|
|
|
289
289
|
});
|
|
290
290
|
|
|
291
291
|
// Cards subcommands
|
|
292
|
-
const cardsCmd = this.
|
|
292
|
+
const cardsCmd = this.getProgram()
|
|
293
293
|
.command('cards')
|
|
294
294
|
.description(t('commands.cards.manage'));
|
|
295
295
|
|
|
@@ -389,7 +389,7 @@ export class CommandController {
|
|
|
389
389
|
);
|
|
390
390
|
|
|
391
391
|
// Legacy commands with deprecation warnings
|
|
392
|
-
this.
|
|
392
|
+
this.getProgram()
|
|
393
393
|
.command('cards-legacy <boardName> <listName>')
|
|
394
394
|
.description(t('commands.deprecated.cardsLegacyDescription'))
|
|
395
395
|
.action(async (boardName: string, listName: string) => {
|
|
@@ -405,7 +405,7 @@ export class CommandController {
|
|
|
405
405
|
}
|
|
406
406
|
});
|
|
407
407
|
|
|
408
|
-
this.
|
|
408
|
+
this.getProgram()
|
|
409
409
|
.command('create-card-legacy <boardName> <listName> <cardName>')
|
|
410
410
|
.description(t('commands.deprecated.createCardLegacyDescription'))
|
|
411
411
|
.option('-d, --desc <description>', t('commands.options.cardDescription'))
|
|
@@ -434,7 +434,7 @@ export class CommandController {
|
|
|
434
434
|
},
|
|
435
435
|
);
|
|
436
436
|
|
|
437
|
-
this.
|
|
437
|
+
this.getProgram()
|
|
438
438
|
.command('move-card-legacy <cardId> <listName>')
|
|
439
439
|
.description(t('commands.deprecated.moveCardLegacyDescription'))
|
|
440
440
|
.action(async (cardId: string, listName: string) => {
|
|
@@ -450,7 +450,7 @@ export class CommandController {
|
|
|
450
450
|
}
|
|
451
451
|
});
|
|
452
452
|
|
|
453
|
-
this.
|
|
453
|
+
this.getProgram()
|
|
454
454
|
.command('delete-card-legacy <cardId>')
|
|
455
455
|
.description(t('commands.deprecated.deleteCardLegacyDescription'))
|
|
456
456
|
.action(async (cardId: string) => {
|
|
@@ -478,7 +478,7 @@ export class CommandController {
|
|
|
478
478
|
).TrelloCliController(configRepository, this.outputFormatter);
|
|
479
479
|
await cli.run();
|
|
480
480
|
} else {
|
|
481
|
-
await this.
|
|
481
|
+
await this.getProgram().parseAsync();
|
|
482
482
|
}
|
|
483
483
|
}
|
|
484
484
|
}
|
|
Binary file
|