@usemonoid/cli 0.2.4 → 0.2.5

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.
@@ -4,7 +4,7 @@ import {
4
4
  createProgramForCLI,
5
5
  getProgramForDocs,
6
6
  syncRootOptsFromCommand
7
- } from "./chunk-S6A25RUL.js";
7
+ } from "./chunk-RYRGM7VH.js";
8
8
  import "./chunk-XAVGPPYF.js";
9
9
  import "./chunk-JXB3ZJ2U.js";
10
10
  export {
@@ -1081,7 +1081,7 @@ To use the MONOid CLI from an AI agent or script:
1081
1081
  });
1082
1082
  }
1083
1083
  async function registerGeneratedCommands(program, helpers) {
1084
- const mod = await import("./generated-D63AKUXJ.js").catch(() => null);
1084
+ const mod = await import("./generated-5NCK6WE3.js").catch(() => null);
1085
1085
  if (mod?.register) {
1086
1086
  mod.register(program, helpers);
1087
1087
  }
@@ -1220,4 +1220,4 @@ export {
1220
1220
  createProgramForCLI,
1221
1221
  getProgramForDocs
1222
1222
  };
1223
- //# sourceMappingURL=chunk-S6A25RUL.js.map
1223
+ //# sourceMappingURL=chunk-RYRGM7VH.js.map
@@ -74,7 +74,6 @@ async function runBulk(options) {
74
74
  // src/commands/generated/index.ts
75
75
  function register(program, helpers) {
76
76
  const { getOutputFormat, requireToken, exitWithError, getBaseUrl, syncRootOptsFromCommand } = helpers;
77
- const baseUrl = getBaseUrl();
78
77
  const organisationsCmd = program.command("organisations").description("organisations resource");
79
78
  organisationsCmd.command("list").description("List organisations").option("--limit <n>", "Max results").option("--offset <n>", "Skip n results").hook("preAction", (thisCommand) => {
80
79
  syncRootOptsFromCommand(thisCommand);
@@ -84,7 +83,7 @@ function register(program, helpers) {
84
83
  const query = {};
85
84
  if (opts.limit != null) query.limit = opts.limit;
86
85
  if (opts.offset != null) query.offset = opts.offset;
87
- const res = await apiRequest({ method: "GET", path: "organisations", token, baseUrl, query });
86
+ const res = await apiRequest({ method: "GET", path: "organisations", token, baseUrl: getBaseUrl(), query });
88
87
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
89
88
  const data = res.data?.data ?? [];
90
89
  printOutput(getOutputFormat(), data, false);
@@ -97,7 +96,7 @@ function register(program, helpers) {
97
96
  const query = {};
98
97
  if (opts.includeMembers != null) query.includeMembers = opts.includeMembers;
99
98
  if (opts.includePlan != null) query.includePlan = opts.includePlan;
100
- const res = await apiRequest({ method: "GET", path: "organisations/" + encodeURIComponent(id), token, baseUrl, query });
99
+ const res = await apiRequest({ method: "GET", path: "organisations/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });
101
100
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
102
101
  const data = res.data?.data ?? res.data;
103
102
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -113,7 +112,7 @@ function register(program, helpers) {
113
112
  const body = mergeBody(bodyFromFlags, opts.body);
114
113
  if (opts.ifNotExists) {
115
114
  }
116
- const res = await apiRequest({ method: "POST", path: "organisations", token, baseUrl, body });
115
+ const res = await apiRequest({ method: "POST", path: "organisations", token, baseUrl: getBaseUrl(), body });
117
116
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
118
117
  const data = res.data?.data ?? res.data;
119
118
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -132,7 +131,7 @@ function register(program, helpers) {
132
131
  const bodyFromFlags2 = {};
133
132
  if (opts.name != null) bodyFromFlags2.name = opts.name;
134
133
  const body2 = mergeBody(bodyFromFlags2, opts.body);
135
- const res2 = await apiRequest({ method: "PATCH", path: "organisations/" + encodeURIComponent(id2), token, baseUrl, body: body2 });
134
+ const res2 = await apiRequest({ method: "PATCH", path: "organisations/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl(), body: body2 });
136
135
  return { ok: res2.ok, status: res2.status || 0, data: res2.data, error: res2.error };
137
136
  },
138
137
  toResult: (id2, ok, status, data3, err) => ok ? { _id: id2, status: "updated" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -143,7 +142,7 @@ function register(program, helpers) {
143
142
  const bodyFromFlags = {};
144
143
  if (opts.name != null) bodyFromFlags.name = opts.name;
145
144
  const body = mergeBody(bodyFromFlags, opts.body);
146
- const res = await apiRequest({ method: "PATCH", path: "organisations/" + encodeURIComponent(id), token, baseUrl, body });
145
+ const res = await apiRequest({ method: "PATCH", path: "organisations/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });
147
146
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
148
147
  const data = res.data?.data ?? res.data;
149
148
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -159,7 +158,7 @@ function register(program, helpers) {
159
158
  const { data, summary } = await runBulk({
160
159
  items: ids,
161
160
  runOne: async (id2) => {
162
- const res2 = await apiRequest({ method: "DELETE", path: "organisations/" + encodeURIComponent(id2), token, baseUrl });
161
+ const res2 = await apiRequest({ method: "DELETE", path: "organisations/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl() });
163
162
  return { ok: res2.ok, status: res2.status || 0, error: res2.error };
164
163
  },
165
164
  toResult: (id2, ok, status, _d, err) => ok ? { _id: id2, status: "deleted" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -167,7 +166,7 @@ function register(program, helpers) {
167
166
  printOutput(getOutputFormat(), { data, summary }, false);
168
167
  return;
169
168
  }
170
- const res = await apiRequest({ method: "DELETE", path: "organisations/" + encodeURIComponent(id), token, baseUrl });
169
+ const res = await apiRequest({ method: "DELETE", path: "organisations/" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });
171
170
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
172
171
  if (getOutputFormat() === "json") console.log(JSON.stringify({ data: null, deleted: true }));
173
172
  });
@@ -194,7 +193,7 @@ function register(program, helpers) {
194
193
  if (opts.updatedAtEq != null) query.updatedAtEq = opts.updatedAtEq;
195
194
  if (opts.updatedAtGte != null) query.updatedAtGte = opts.updatedAtGte;
196
195
  if (opts.updatedAtLte != null) query.updatedAtLte = opts.updatedAtLte;
197
- const res = await apiRequest({ method: "GET", path: "containers", token, baseUrl, query });
196
+ const res = await apiRequest({ method: "GET", path: "containers", token, baseUrl: getBaseUrl(), query });
198
197
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
199
198
  const data = res.data?.data ?? [];
200
199
  printOutput(getOutputFormat(), data, false);
@@ -207,7 +206,7 @@ function register(program, helpers) {
207
206
  const query = {};
208
207
  if (opts.includeLinks != null) query.includeLinks = opts.includeLinks;
209
208
  if (opts.linkedProvider != null) query.linkedProvider = opts.linkedProvider;
210
- const res = await apiRequest({ method: "GET", path: "containers/" + encodeURIComponent(id), token, baseUrl, query });
209
+ const res = await apiRequest({ method: "GET", path: "containers/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });
211
210
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
212
211
  const data = res.data?.data ?? res.data;
213
212
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -224,7 +223,7 @@ function register(program, helpers) {
224
223
  const body = mergeBody(bodyFromFlags, opts.body);
225
224
  if (opts.ifNotExists) {
226
225
  }
227
- const res = await apiRequest({ method: "POST", path: "containers", token, baseUrl, body });
226
+ const res = await apiRequest({ method: "POST", path: "containers", token, baseUrl: getBaseUrl(), body });
228
227
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
229
228
  const data = res.data?.data ?? res.data;
230
229
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -244,7 +243,7 @@ function register(program, helpers) {
244
243
  if (opts.name != null) bodyFromFlags2.name = opts.name;
245
244
  if (opts.description != null) bodyFromFlags2.description = opts.description;
246
245
  const body2 = mergeBody(bodyFromFlags2, opts.body);
247
- const res2 = await apiRequest({ method: "PATCH", path: "containers/" + encodeURIComponent(id2), token, baseUrl, body: body2 });
246
+ const res2 = await apiRequest({ method: "PATCH", path: "containers/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl(), body: body2 });
248
247
  return { ok: res2.ok, status: res2.status || 0, data: res2.data, error: res2.error };
249
248
  },
250
249
  toResult: (id2, ok, status, data3, err) => ok ? { _id: id2, status: "updated" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -256,7 +255,7 @@ function register(program, helpers) {
256
255
  if (opts.name != null) bodyFromFlags.name = opts.name;
257
256
  if (opts.description != null) bodyFromFlags.description = opts.description;
258
257
  const body = mergeBody(bodyFromFlags, opts.body);
259
- const res = await apiRequest({ method: "PATCH", path: "containers/" + encodeURIComponent(id), token, baseUrl, body });
258
+ const res = await apiRequest({ method: "PATCH", path: "containers/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });
260
259
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
261
260
  const data = res.data?.data ?? res.data;
262
261
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -272,7 +271,7 @@ function register(program, helpers) {
272
271
  const { data, summary } = await runBulk({
273
272
  items: ids,
274
273
  runOne: async (id2) => {
275
- const res2 = await apiRequest({ method: "DELETE", path: "containers/" + encodeURIComponent(id2), token, baseUrl });
274
+ const res2 = await apiRequest({ method: "DELETE", path: "containers/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl() });
276
275
  return { ok: res2.ok, status: res2.status || 0, error: res2.error };
277
276
  },
278
277
  toResult: (id2, ok, status, _d, err) => ok ? { _id: id2, status: "deleted" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -280,7 +279,7 @@ function register(program, helpers) {
280
279
  printOutput(getOutputFormat(), { data, summary }, false);
281
280
  return;
282
281
  }
283
- const res = await apiRequest({ method: "DELETE", path: "containers/" + encodeURIComponent(id), token, baseUrl });
282
+ const res = await apiRequest({ method: "DELETE", path: "containers/" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });
284
283
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
285
284
  if (getOutputFormat() === "json") console.log(JSON.stringify({ data: null, deleted: true }));
286
285
  });
@@ -306,7 +305,7 @@ function register(program, helpers) {
306
305
  if (opts.updatedAtEq != null) query.updatedAtEq = opts.updatedAtEq;
307
306
  if (opts.updatedAtGte != null) query.updatedAtGte = opts.updatedAtGte;
308
307
  if (opts.updatedAtLte != null) query.updatedAtLte = opts.updatedAtLte;
309
- const res = await apiRequest({ method: "GET", path: "projects", token, baseUrl, query });
308
+ const res = await apiRequest({ method: "GET", path: "projects", token, baseUrl: getBaseUrl(), query });
310
309
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
311
310
  const data = res.data?.data ?? [];
312
311
  printOutput(getOutputFormat(), data, false);
@@ -319,7 +318,7 @@ function register(program, helpers) {
319
318
  const query = {};
320
319
  if (opts.includeCategory != null) query.includeCategory = opts.includeCategory;
321
320
  if (opts.includeLabels != null) query.includeLabels = opts.includeLabels;
322
- const res = await apiRequest({ method: "GET", path: "projects/" + encodeURIComponent(id), token, baseUrl, query });
321
+ const res = await apiRequest({ method: "GET", path: "projects/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });
323
322
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
324
323
  const data = res.data?.data ?? res.data;
325
324
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -337,7 +336,7 @@ function register(program, helpers) {
337
336
  const body = mergeBody(bodyFromFlags, opts.body);
338
337
  if (opts.ifNotExists) {
339
338
  }
340
- const res = await apiRequest({ method: "POST", path: "projects", token, baseUrl, body });
339
+ const res = await apiRequest({ method: "POST", path: "projects", token, baseUrl: getBaseUrl(), body });
341
340
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
342
341
  const data = res.data?.data ?? res.data;
343
342
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -359,7 +358,7 @@ function register(program, helpers) {
359
358
  if (opts.status != null) bodyFromFlags2.status = opts.status;
360
359
  if (opts.containerId != null) bodyFromFlags2.containerId = opts.containerId;
361
360
  const body2 = mergeBody(bodyFromFlags2, opts.body);
362
- const res2 = await apiRequest({ method: "PATCH", path: "projects/" + encodeURIComponent(id2), token, baseUrl, body: body2 });
361
+ const res2 = await apiRequest({ method: "PATCH", path: "projects/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl(), body: body2 });
363
362
  return { ok: res2.ok, status: res2.status || 0, data: res2.data, error: res2.error };
364
363
  },
365
364
  toResult: (id2, ok, status, data3, err) => ok ? { _id: id2, status: "updated" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -373,7 +372,7 @@ function register(program, helpers) {
373
372
  if (opts.status != null) bodyFromFlags.status = opts.status;
374
373
  if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;
375
374
  const body = mergeBody(bodyFromFlags, opts.body);
376
- const res = await apiRequest({ method: "PATCH", path: "projects/" + encodeURIComponent(id), token, baseUrl, body });
375
+ const res = await apiRequest({ method: "PATCH", path: "projects/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });
377
376
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
378
377
  const data = res.data?.data ?? res.data;
379
378
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -389,7 +388,7 @@ function register(program, helpers) {
389
388
  const { data, summary } = await runBulk({
390
389
  items: ids,
391
390
  runOne: async (id2) => {
392
- const res2 = await apiRequest({ method: "DELETE", path: "projects/" + encodeURIComponent(id2), token, baseUrl });
391
+ const res2 = await apiRequest({ method: "DELETE", path: "projects/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl() });
393
392
  return { ok: res2.ok, status: res2.status || 0, error: res2.error };
394
393
  },
395
394
  toResult: (id2, ok, status, _d, err) => ok ? { _id: id2, status: "deleted" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -397,7 +396,7 @@ function register(program, helpers) {
397
396
  printOutput(getOutputFormat(), { data, summary }, false);
398
397
  return;
399
398
  }
400
- const res = await apiRequest({ method: "DELETE", path: "projects/" + encodeURIComponent(id), token, baseUrl });
399
+ const res = await apiRequest({ method: "DELETE", path: "projects/" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });
401
400
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
402
401
  if (getOutputFormat() === "json") console.log(JSON.stringify({ data: null, deleted: true }));
403
402
  });
@@ -412,7 +411,7 @@ function register(program, helpers) {
412
411
  if (opts.offset != null) query.offset = opts.offset;
413
412
  if (opts.entityType != null) query.entityType = opts.entityType;
414
413
  if (opts.organisationId != null) query.organisationId = opts.organisationId;
415
- const res = await apiRequest({ method: "GET", path: "categories", token, baseUrl, query });
414
+ const res = await apiRequest({ method: "GET", path: "categories", token, baseUrl: getBaseUrl(), query });
416
415
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
417
416
  const data = res.data?.data ?? [];
418
417
  printOutput(getOutputFormat(), data, false);
@@ -423,7 +422,7 @@ function register(program, helpers) {
423
422
  const token = requireToken();
424
423
  if (!token) exitWithError(401, "Missing or invalid token");
425
424
  const query = {};
426
- const res = await apiRequest({ method: "GET", path: "categories/" + encodeURIComponent(id), token, baseUrl, query });
425
+ const res = await apiRequest({ method: "GET", path: "categories/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });
427
426
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
428
427
  const data = res.data?.data ?? res.data;
429
428
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -441,7 +440,7 @@ function register(program, helpers) {
441
440
  const body = mergeBody(bodyFromFlags, opts.body);
442
441
  if (opts.ifNotExists) {
443
442
  }
444
- const res = await apiRequest({ method: "POST", path: "categories", token, baseUrl, body });
443
+ const res = await apiRequest({ method: "POST", path: "categories", token, baseUrl: getBaseUrl(), body });
445
444
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
446
445
  const data = res.data?.data ?? res.data;
447
446
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -463,7 +462,7 @@ function register(program, helpers) {
463
462
  if (opts.entityType != null) bodyFromFlags2.entityType = opts.entityType;
464
463
  if (opts.organisationId != null) bodyFromFlags2.organisationId = opts.organisationId;
465
464
  const body2 = mergeBody(bodyFromFlags2, opts.body);
466
- const res2 = await apiRequest({ method: "PATCH", path: "categories/" + encodeURIComponent(id2), token, baseUrl, body: body2 });
465
+ const res2 = await apiRequest({ method: "PATCH", path: "categories/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl(), body: body2 });
467
466
  return { ok: res2.ok, status: res2.status || 0, data: res2.data, error: res2.error };
468
467
  },
469
468
  toResult: (id2, ok, status, data3, err) => ok ? { _id: id2, status: "updated" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -477,7 +476,7 @@ function register(program, helpers) {
477
476
  if (opts.entityType != null) bodyFromFlags.entityType = opts.entityType;
478
477
  if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;
479
478
  const body = mergeBody(bodyFromFlags, opts.body);
480
- const res = await apiRequest({ method: "PATCH", path: "categories/" + encodeURIComponent(id), token, baseUrl, body });
479
+ const res = await apiRequest({ method: "PATCH", path: "categories/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });
481
480
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
482
481
  const data = res.data?.data ?? res.data;
483
482
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -493,7 +492,7 @@ function register(program, helpers) {
493
492
  const { data, summary } = await runBulk({
494
493
  items: ids,
495
494
  runOne: async (id2) => {
496
- const res2 = await apiRequest({ method: "DELETE", path: "categories/" + encodeURIComponent(id2), token, baseUrl });
495
+ const res2 = await apiRequest({ method: "DELETE", path: "categories/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl() });
497
496
  return { ok: res2.ok, status: res2.status || 0, error: res2.error };
498
497
  },
499
498
  toResult: (id2, ok, status, _d, err) => ok ? { _id: id2, status: "deleted" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -501,7 +500,7 @@ function register(program, helpers) {
501
500
  printOutput(getOutputFormat(), { data, summary }, false);
502
501
  return;
503
502
  }
504
- const res = await apiRequest({ method: "DELETE", path: "categories/" + encodeURIComponent(id), token, baseUrl });
503
+ const res = await apiRequest({ method: "DELETE", path: "categories/" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });
505
504
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
506
505
  if (getOutputFormat() === "json") console.log(JSON.stringify({ data: null, deleted: true }));
507
506
  });
@@ -534,7 +533,7 @@ function register(program, helpers) {
534
533
  if (opts.scheduledAtEq != null) query.scheduledAtEq = opts.scheduledAtEq;
535
534
  if (opts.scheduledAtGte != null) query.scheduledAtGte = opts.scheduledAtGte;
536
535
  if (opts.scheduledAtLte != null) query.scheduledAtLte = opts.scheduledAtLte;
537
- const res = await apiRequest({ method: "GET", path: "tasks", token, baseUrl, query });
536
+ const res = await apiRequest({ method: "GET", path: "tasks", token, baseUrl: getBaseUrl(), query });
538
537
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
539
538
  const data = res.data?.data ?? [];
540
539
  printOutput(getOutputFormat(), data, false);
@@ -551,7 +550,7 @@ function register(program, helpers) {
551
550
  if (opts.includeLabels != null) query.includeLabels = opts.includeLabels;
552
551
  if (opts.includeRelatedTasks != null) query.includeRelatedTasks = opts.includeRelatedTasks;
553
552
  if (opts.includeNotes != null) query.includeNotes = opts.includeNotes;
554
- const res = await apiRequest({ method: "GET", path: "tasks/" + encodeURIComponent(id), token, baseUrl, query });
553
+ const res = await apiRequest({ method: "GET", path: "tasks/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });
555
554
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
556
555
  const data = res.data?.data ?? res.data;
557
556
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -578,7 +577,7 @@ function register(program, helpers) {
578
577
  const body = mergeBody(bodyFromFlags, opts.body);
579
578
  if (opts.ifNotExists) {
580
579
  }
581
- const res = await apiRequest({ method: "POST", path: "tasks", token, baseUrl, body });
580
+ const res = await apiRequest({ method: "POST", path: "tasks", token, baseUrl: getBaseUrl(), body });
582
581
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
583
582
  const data = res.data?.data ?? res.data;
584
583
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -610,7 +609,7 @@ function register(program, helpers) {
610
609
  if (opts.dueDate != null) bodyFromFlags2.dueDate = opts.dueDate;
611
610
  if (opts.scheduledAt != null) bodyFromFlags2.scheduledAt = opts.scheduledAt;
612
611
  const body2 = mergeBody(bodyFromFlags2, opts.body);
613
- const res2 = await apiRequest({ method: "PATCH", path: "tasks/" + encodeURIComponent(id2), token, baseUrl, body: body2 });
612
+ const res2 = await apiRequest({ method: "PATCH", path: "tasks/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl(), body: body2 });
614
613
  return { ok: res2.ok, status: res2.status || 0, data: res2.data, error: res2.error };
615
614
  },
616
615
  toResult: (id2, ok, status, data3, err) => ok ? { _id: id2, status: "updated" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -634,7 +633,7 @@ function register(program, helpers) {
634
633
  if (opts.dueDate != null) bodyFromFlags.dueDate = opts.dueDate;
635
634
  if (opts.scheduledAt != null) bodyFromFlags.scheduledAt = opts.scheduledAt;
636
635
  const body = mergeBody(bodyFromFlags, opts.body);
637
- const res = await apiRequest({ method: "PATCH", path: "tasks/" + encodeURIComponent(id), token, baseUrl, body });
636
+ const res = await apiRequest({ method: "PATCH", path: "tasks/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });
638
637
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
639
638
  const data = res.data?.data ?? res.data;
640
639
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -650,7 +649,7 @@ function register(program, helpers) {
650
649
  const { data, summary } = await runBulk({
651
650
  items: ids,
652
651
  runOne: async (id2) => {
653
- const res2 = await apiRequest({ method: "DELETE", path: "tasks/" + encodeURIComponent(id2), token, baseUrl });
652
+ const res2 = await apiRequest({ method: "DELETE", path: "tasks/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl() });
654
653
  return { ok: res2.ok, status: res2.status || 0, error: res2.error };
655
654
  },
656
655
  toResult: (id2, ok, status, _d, err) => ok ? { _id: id2, status: "deleted" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -658,7 +657,7 @@ function register(program, helpers) {
658
657
  printOutput(getOutputFormat(), { data, summary }, false);
659
658
  return;
660
659
  }
661
- const res = await apiRequest({ method: "DELETE", path: "tasks/" + encodeURIComponent(id), token, baseUrl });
660
+ const res = await apiRequest({ method: "DELETE", path: "tasks/" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });
662
661
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
663
662
  if (getOutputFormat() === "json") console.log(JSON.stringify({ data: null, deleted: true }));
664
663
  });
@@ -679,7 +678,7 @@ function register(program, helpers) {
679
678
  if (opts.organisationId != null) query.organisationId = opts.organisationId;
680
679
  if (opts.sharedWithUserId != null) query.sharedWithUserId = opts.sharedWithUserId;
681
680
  if (opts.isTemplate != null) query.isTemplate = opts.isTemplate;
682
- const res = await apiRequest({ method: "GET", path: "routine_blocks", token, baseUrl, query });
681
+ const res = await apiRequest({ method: "GET", path: "routine_blocks", token, baseUrl: getBaseUrl(), query });
683
682
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
684
683
  const data = res.data?.data ?? [];
685
684
  printOutput(getOutputFormat(), data, false);
@@ -690,7 +689,7 @@ function register(program, helpers) {
690
689
  const token = requireToken();
691
690
  if (!token) exitWithError(401, "Missing or invalid token");
692
691
  const query = {};
693
- const res = await apiRequest({ method: "GET", path: "routine_blocks/" + encodeURIComponent(id), token, baseUrl, query });
692
+ const res = await apiRequest({ method: "GET", path: "routine_blocks/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });
694
693
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
695
694
  const data = res.data?.data ?? res.data;
696
695
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -715,7 +714,7 @@ function register(program, helpers) {
715
714
  const body = mergeBody(bodyFromFlags, opts.body);
716
715
  if (opts.ifNotExists) {
717
716
  }
718
- const res = await apiRequest({ method: "POST", path: "routine_blocks", token, baseUrl, body });
717
+ const res = await apiRequest({ method: "POST", path: "routine_blocks", token, baseUrl: getBaseUrl(), body });
719
718
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
720
719
  const data = res.data?.data ?? res.data;
721
720
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -744,7 +743,7 @@ function register(program, helpers) {
744
743
  if (opts.blockType != null) bodyFromFlags2.blockType = opts.blockType;
745
744
  if (opts.color != null) bodyFromFlags2.color = opts.color;
746
745
  const body2 = mergeBody(bodyFromFlags2, opts.body);
747
- const res2 = await apiRequest({ method: "PATCH", path: "routine_blocks/" + encodeURIComponent(id2), token, baseUrl, body: body2 });
746
+ const res2 = await apiRequest({ method: "PATCH", path: "routine_blocks/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl(), body: body2 });
748
747
  return { ok: res2.ok, status: res2.status || 0, data: res2.data, error: res2.error };
749
748
  },
750
749
  toResult: (id2, ok, status, data3, err) => ok ? { _id: id2, status: "updated" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -765,7 +764,7 @@ function register(program, helpers) {
765
764
  if (opts.blockType != null) bodyFromFlags.blockType = opts.blockType;
766
765
  if (opts.color != null) bodyFromFlags.color = opts.color;
767
766
  const body = mergeBody(bodyFromFlags, opts.body);
768
- const res = await apiRequest({ method: "PATCH", path: "routine_blocks/" + encodeURIComponent(id), token, baseUrl, body });
767
+ const res = await apiRequest({ method: "PATCH", path: "routine_blocks/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });
769
768
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
770
769
  const data = res.data?.data ?? res.data;
771
770
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -781,7 +780,7 @@ function register(program, helpers) {
781
780
  const { data, summary } = await runBulk({
782
781
  items: ids,
783
782
  runOne: async (id2) => {
784
- const res2 = await apiRequest({ method: "DELETE", path: "routine_blocks/" + encodeURIComponent(id2), token, baseUrl });
783
+ const res2 = await apiRequest({ method: "DELETE", path: "routine_blocks/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl() });
785
784
  return { ok: res2.ok, status: res2.status || 0, error: res2.error };
786
785
  },
787
786
  toResult: (id2, ok, status, _d, err) => ok ? { _id: id2, status: "deleted" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -789,7 +788,7 @@ function register(program, helpers) {
789
788
  printOutput(getOutputFormat(), { data, summary }, false);
790
789
  return;
791
790
  }
792
- const res = await apiRequest({ method: "DELETE", path: "routine_blocks/" + encodeURIComponent(id), token, baseUrl });
791
+ const res = await apiRequest({ method: "DELETE", path: "routine_blocks/" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });
793
792
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
794
793
  if (getOutputFormat() === "json") console.log(JSON.stringify({ data: null, deleted: true }));
795
794
  });
@@ -804,7 +803,7 @@ function register(program, helpers) {
804
803
  if (opts.offset != null) query.offset = opts.offset;
805
804
  if (opts.date != null) query.date = opts.date;
806
805
  if (opts.type != null) query.type = opts.type;
807
- const res = await apiRequest({ method: "GET", path: "reviews", token, baseUrl, query });
806
+ const res = await apiRequest({ method: "GET", path: "reviews", token, baseUrl: getBaseUrl(), query });
808
807
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
809
808
  const data = res.data?.data ?? [];
810
809
  printOutput(getOutputFormat(), data, false);
@@ -815,7 +814,7 @@ function register(program, helpers) {
815
814
  const token = requireToken();
816
815
  if (!token) exitWithError(401, "Missing or invalid token");
817
816
  const query = {};
818
- const res = await apiRequest({ method: "GET", path: "reviews/" + encodeURIComponent(id), token, baseUrl, query });
817
+ const res = await apiRequest({ method: "GET", path: "reviews/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });
819
818
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
820
819
  const data = res.data?.data ?? res.data;
821
820
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -834,7 +833,7 @@ function register(program, helpers) {
834
833
  const body = mergeBody(bodyFromFlags, opts.body);
835
834
  if (opts.ifNotExists) {
836
835
  }
837
- const res = await apiRequest({ method: "POST", path: "reviews", token, baseUrl, body });
836
+ const res = await apiRequest({ method: "POST", path: "reviews", token, baseUrl: getBaseUrl(), body });
838
837
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
839
838
  const data = res.data?.data ?? res.data;
840
839
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -856,7 +855,7 @@ function register(program, helpers) {
856
855
  if (opts.sleepTime != null) bodyFromFlags2.sleepTime = opts.sleepTime;
857
856
  if (opts.steps != null) bodyFromFlags2.steps = opts.steps;
858
857
  const body2 = mergeBody(bodyFromFlags2, opts.body);
859
- const res2 = await apiRequest({ method: "PATCH", path: "reviews/" + encodeURIComponent(id2), token, baseUrl, body: body2 });
858
+ const res2 = await apiRequest({ method: "PATCH", path: "reviews/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl(), body: body2 });
860
859
  return { ok: res2.ok, status: res2.status || 0, data: res2.data, error: res2.error };
861
860
  },
862
861
  toResult: (id2, ok, status, data3, err) => ok ? { _id: id2, status: "updated" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -870,7 +869,7 @@ function register(program, helpers) {
870
869
  if (opts.sleepTime != null) bodyFromFlags.sleepTime = opts.sleepTime;
871
870
  if (opts.steps != null) bodyFromFlags.steps = opts.steps;
872
871
  const body = mergeBody(bodyFromFlags, opts.body);
873
- const res = await apiRequest({ method: "PATCH", path: "reviews/" + encodeURIComponent(id), token, baseUrl, body });
872
+ const res = await apiRequest({ method: "PATCH", path: "reviews/" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });
874
873
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
875
874
  const data = res.data?.data ?? res.data;
876
875
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -886,7 +885,7 @@ function register(program, helpers) {
886
885
  const { data, summary } = await runBulk({
887
886
  items: ids,
888
887
  runOne: async (id2) => {
889
- const res2 = await apiRequest({ method: "DELETE", path: "reviews/" + encodeURIComponent(id2), token, baseUrl });
888
+ const res2 = await apiRequest({ method: "DELETE", path: "reviews/" + encodeURIComponent(id2), token, baseUrl: getBaseUrl() });
890
889
  return { ok: res2.ok, status: res2.status || 0, error: res2.error };
891
890
  },
892
891
  toResult: (id2, ok, status, _d, err) => ok ? { _id: id2, status: "deleted" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -894,7 +893,7 @@ function register(program, helpers) {
894
893
  printOutput(getOutputFormat(), { data, summary }, false);
895
894
  return;
896
895
  }
897
- const res = await apiRequest({ method: "DELETE", path: "reviews/" + encodeURIComponent(id), token, baseUrl });
896
+ const res = await apiRequest({ method: "DELETE", path: "reviews/" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });
898
897
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
899
898
  if (getOutputFormat() === "json") console.log(JSON.stringify({ data: null, deleted: true }));
900
899
  });
@@ -908,7 +907,7 @@ function register(program, helpers) {
908
907
  if (opts.limit != null) query.limit = opts.limit;
909
908
  if (opts.offset != null) query.offset = opts.offset;
910
909
  if (opts.dates != null) query.dates = opts.dates;
911
- const res = await apiRequest({ method: "GET", path: "daily_notes", token, baseUrl, query });
910
+ const res = await apiRequest({ method: "GET", path: "daily_notes", token, baseUrl: getBaseUrl(), query });
912
911
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
913
912
  const data = res.data?.data ?? [];
914
913
  printOutput(getOutputFormat(), data, false);
@@ -919,7 +918,7 @@ function register(program, helpers) {
919
918
  const token = requireToken();
920
919
  if (!token) exitWithError(401, "Missing or invalid token");
921
920
  const query = {};
922
- const res = await apiRequest({ method: "GET", path: "daily_notes/" + encodeURIComponent(date), token, baseUrl, query });
921
+ const res = await apiRequest({ method: "GET", path: "daily_notes/" + encodeURIComponent(date), token, baseUrl: getBaseUrl(), query });
923
922
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
924
923
  const data = res.data?.data ?? res.data;
925
924
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -935,7 +934,7 @@ function register(program, helpers) {
935
934
  const body = mergeBody(bodyFromFlags, opts.body);
936
935
  if (opts.ifNotExists) {
937
936
  }
938
- const res = await apiRequest({ method: "POST", path: "daily_notes", token, baseUrl, body });
937
+ const res = await apiRequest({ method: "POST", path: "daily_notes", token, baseUrl: getBaseUrl(), body });
939
938
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
940
939
  const data = res.data?.data ?? res.data;
941
940
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -954,7 +953,7 @@ function register(program, helpers) {
954
953
  const bodyFromFlags2 = {};
955
954
  if (opts.content != null) bodyFromFlags2.content = opts.content;
956
955
  const body2 = mergeBody(bodyFromFlags2, opts.body);
957
- const res2 = await apiRequest({ method: "PATCH", path: "daily_notes/" + encodeURIComponent(date2), token, baseUrl, body: body2 });
956
+ const res2 = await apiRequest({ method: "PATCH", path: "daily_notes/" + encodeURIComponent(date2), token, baseUrl: getBaseUrl(), body: body2 });
958
957
  return { ok: res2.ok, status: res2.status || 0, data: res2.data, error: res2.error };
959
958
  },
960
959
  toResult: (date2, ok, status, data3, err) => ok ? { _id: date2, status: "updated" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -965,7 +964,7 @@ function register(program, helpers) {
965
964
  const bodyFromFlags = {};
966
965
  if (opts.content != null) bodyFromFlags.content = opts.content;
967
966
  const body = mergeBody(bodyFromFlags, opts.body);
968
- const res = await apiRequest({ method: "PATCH", path: "daily_notes/" + encodeURIComponent(date), token, baseUrl, body });
967
+ const res = await apiRequest({ method: "PATCH", path: "daily_notes/" + encodeURIComponent(date), token, baseUrl: getBaseUrl(), body });
969
968
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
970
969
  const data = res.data?.data ?? res.data;
971
970
  printOutput(getOutputFormat(), data ?? {}, false);
@@ -981,7 +980,7 @@ function register(program, helpers) {
981
980
  const { data, summary } = await runBulk({
982
981
  items: dates,
983
982
  runOne: async (date2) => {
984
- const res2 = await apiRequest({ method: "DELETE", path: "daily_notes/" + encodeURIComponent(date2), token, baseUrl });
983
+ const res2 = await apiRequest({ method: "DELETE", path: "daily_notes/" + encodeURIComponent(date2), token, baseUrl: getBaseUrl() });
985
984
  return { ok: res2.ok, status: res2.status || 0, error: res2.error };
986
985
  },
987
986
  toResult: (date2, ok, status, _d, err) => ok ? { _id: date2, status: "deleted" } : { error: true, statusCode: status, message: err ?? "Failed" }
@@ -989,7 +988,7 @@ function register(program, helpers) {
989
988
  printOutput(getOutputFormat(), { data, summary }, false);
990
989
  return;
991
990
  }
992
- const res = await apiRequest({ method: "DELETE", path: "daily_notes/" + encodeURIComponent(date), token, baseUrl });
991
+ const res = await apiRequest({ method: "DELETE", path: "daily_notes/" + encodeURIComponent(date), token, baseUrl: getBaseUrl() });
993
992
  if (!res.ok) exitWithError(res.status || 500, res.error ?? "Request failed");
994
993
  if (getOutputFormat() === "json") console.log(JSON.stringify({ data: null, deleted: true }));
995
994
  });
@@ -997,4 +996,4 @@ function register(program, helpers) {
997
996
  export {
998
997
  register
999
998
  };
1000
- //# sourceMappingURL=generated-D63AKUXJ.js.map
999
+ //# sourceMappingURL=generated-5NCK6WE3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/merge-body.ts","../src/lib/bulk.ts","../src/commands/generated/index.ts"],"sourcesContent":["/**\n * Merge optional JSON body (from --body) with object built from flags.\n * Flags override keys in body when both are provided.\n */\nexport function mergeBody(\n bodyFromFlags: Record<string, unknown>,\n bodyOption: string | undefined,\n): Record<string, unknown> {\n let base: Record<string, unknown> = {};\n if (bodyOption?.trim()) {\n try {\n base = JSON.parse(bodyOption) as Record<string, unknown>;\n } catch {\n // ignore invalid JSON\n }\n }\n return { ...base, ...bodyFromFlags };\n}\n","const MAX_IDS = 25;\nconst CONCURRENCY = 5;\nconst MAX_RETRIES = 3;\n\nexport function parseIds(idsFlag: string | undefined): string[] {\n if (!idsFlag?.trim()) return [];\n return idsFlag.split(\",\").map((s) => s.trim()).filter(Boolean);\n}\n\nexport function parseDates(datesFlag: string | undefined): string[] {\n return parseIds(datesFlag);\n}\n\nexport function validateBulkIds(ids: string[], resourceLabel: string): void {\n if (ids.length > MAX_IDS) {\n throw new Error(\n `${resourceLabel}: max ${MAX_IDS} IDs per invocation (got ${ids.length}). Use multiple invocations for more.`,\n );\n }\n}\n\nexport interface BulkTaskResult {\n _id?: string;\n status?: \"updated\" | \"deleted\";\n error?: boolean;\n statusCode?: number;\n message?: string;\n}\n\nexport interface BulkRunOptions<T> {\n items: string[];\n concurrency?: number;\n runOne: (id: string) => Promise<{ ok: boolean; status: number; data?: T; error?: string }>;\n toResult: (id: string, ok: boolean, status: number, data?: T, error?: string) => BulkTaskResult;\n}\n\n/**\n * Run up to CONCURRENCY operations in parallel, with 429 retry (Retry-After or exponential backoff).\n */\nexport async function runBulk<T>(options: BulkRunOptions<T>): Promise<{\n data: BulkTaskResult[];\n summary: { total: number; succeeded: number; failed: number };\n}> {\n const { items, runOne, toResult } = options;\n const concurrency = Math.min(options.concurrency ?? CONCURRENCY, items.length);\n const results: BulkTaskResult[] = [];\n let succeeded = 0;\n let failed = 0;\n\n async function runWithRetry(id: string): Promise<BulkTaskResult> {\n let lastRes: { ok: boolean; status: number; data?: T; error?: string } | null = null;\n for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {\n const res = await runOne(id);\n lastRes = res;\n if (res.status !== 429) break;\n const retryAfter = 2 ** attempt;\n await new Promise((r) => setTimeout(r, retryAfter * 1000));\n }\n const r = lastRes!;\n const result = toResult(id, r.ok, r.status, r.data, r.error);\n if (r.ok) succeeded++;\n else failed++;\n return result;\n }\n\n const queue = [...items];\n const workers = Array.from({ length: concurrency }, async () => {\n while (queue.length > 0) {\n const id = queue.shift()!;\n const result = await runWithRetry(id);\n results.push(result);\n }\n });\n await Promise.all(workers);\n\n return {\n data: results,\n summary: { total: items.length, succeeded, failed },\n };\n}\n","/** Generated by scripts/generate-from-openapi.ts - do not edit by hand */\nimport type { Command } from \"commander\";\nimport { apiRequest } from \"../../lib/client.js\";\nimport { printOutput } from \"../../lib/output.js\";\nimport { mergeBody } from \"../../lib/merge-body.js\";\nimport { parseIds, parseDates, validateBulkIds, runBulk } from \"../../lib/bulk.js\";\n\nexport interface CommandHelpers {\n getOutputFormat: () => \"json\" | \"table\" | \"csv\";\n requireToken: () => string | null;\n exitWithError: (status: number, message: string) => never;\n getBaseUrl: () => string;\n syncRootOptsFromCommand: (cmd: Command) => void;\n}\n\nexport function register(program: Command, helpers: CommandHelpers): void {\n const { getOutputFormat, requireToken, exitWithError, getBaseUrl, syncRootOptsFromCommand } = helpers;\n\n // --- organisations ---\n const organisationsCmd = program.command(\"organisations\").description(\"organisations resource\");\n organisationsCmd.command(\"list\").description(\"List organisations\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n const res = await apiRequest({ method: \"GET\", path: \"organisations\", token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n organisationsCmd.command(\"get <id>\").description(\"Get one organisations by id\")\n .option(\"--include-members <value>\", \"Include/filter by includeMembers\")\n .option(\"--include-plan <value>\", \"Include/filter by includePlan\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.includeMembers != null) query.includeMembers = opts.includeMembers;\n if (opts.includePlan != null) query.includePlan = opts.includePlan;\n const res = await apiRequest({ method: \"GET\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n organisationsCmd.command(\"create\").description(\"Create organisations\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--id <value>\", \"id\")\n .option(\"--name <value>\", \"name\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.id != null) bodyFromFlags.id = opts.id;\n if (opts.name != null) bodyFromFlags.name = opts.name;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"organisations\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n organisationsCmd.command(\"update <id>\").description(\"Update organisations\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--name <value>\", \"name\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"organisations\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n organisationsCmd.command(\"delete <id>\").description(\"Delete organisations\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"organisations\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- containers ---\n const containersCmd = program.command(\"containers\").description(\"containers resource\");\n containersCmd.command(\"list\").description(\"List containers\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .option(\"--name <value>\", \"Filter by name\")\n .option(\"--member-id <value>\", \"Filter by memberId\")\n .option(\"--team-id <value>\", \"Filter by teamId\")\n .option(\"--has-members <value>\", \"Filter by hasMembers\")\n .option(\"--has-teams <value>\", \"Filter by hasTeams\")\n .option(\"--has-external-link <value>\", \"Filter by hasExternalLink\")\n .option(\"--external-link-provider <value>\", \"Filter by externalLinkProvider\")\n .option(\"--created-at-eq <value>\", \"Filter by createdAtEq\")\n .option(\"--created-at-gte <value>\", \"Filter by createdAtGte\")\n .option(\"--created-at-lte <value>\", \"Filter by createdAtLte\")\n .option(\"--updated-at-eq <value>\", \"Filter by updatedAtEq\")\n .option(\"--updated-at-gte <value>\", \"Filter by updatedAtGte\")\n .option(\"--updated-at-lte <value>\", \"Filter by updatedAtLte\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n if (opts.name != null) query.name = opts.name;\n if (opts.memberId != null) query.memberId = opts.memberId;\n if (opts.teamId != null) query.teamId = opts.teamId;\n if (opts.hasMembers != null) query.hasMembers = opts.hasMembers;\n if (opts.hasTeams != null) query.hasTeams = opts.hasTeams;\n if (opts.hasExternalLink != null) query.hasExternalLink = opts.hasExternalLink;\n if (opts.externalLinkProvider != null) query.externalLinkProvider = opts.externalLinkProvider;\n if (opts.createdAtEq != null) query.createdAtEq = opts.createdAtEq;\n if (opts.createdAtGte != null) query.createdAtGte = opts.createdAtGte;\n if (opts.createdAtLte != null) query.createdAtLte = opts.createdAtLte;\n if (opts.updatedAtEq != null) query.updatedAtEq = opts.updatedAtEq;\n if (opts.updatedAtGte != null) query.updatedAtGte = opts.updatedAtGte;\n if (opts.updatedAtLte != null) query.updatedAtLte = opts.updatedAtLte;\n const res = await apiRequest({ method: \"GET\", path: \"containers\", token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n containersCmd.command(\"get <id>\").description(\"Get one containers by id\")\n .option(\"--include-links <value>\", \"Include/filter by includeLinks\")\n .option(\"--linked-provider <value>\", \"Include/filter by linkedProvider\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.includeLinks != null) query.includeLinks = opts.includeLinks;\n if (opts.linkedProvider != null) query.linkedProvider = opts.linkedProvider;\n const res = await apiRequest({ method: \"GET\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n containersCmd.command(\"create\").description(\"Create containers\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"containers\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n containersCmd.command(\"update <id>\").description(\"Update containers\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"containers\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n containersCmd.command(\"delete <id>\").description(\"Delete containers\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"containers\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- projects ---\n const projectsCmd = program.command(\"projects\").description(\"projects resource\");\n projectsCmd.command(\"list\").description(\"List projects\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--status <value>\", \"Filter by status\")\n .option(\"--container-id <value>\", \"Filter by containerId\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .option(\"--category-id <value>\", \"Filter by categoryId\")\n .option(\"--label-id <value>\", \"Filter by labelId\")\n .option(\"--has-external-link <value>\", \"Filter by hasExternalLink\")\n .option(\"--external-link-provider <value>\", \"Filter by externalLinkProvider\")\n .option(\"--created-at-eq <value>\", \"Filter by createdAtEq\")\n .option(\"--created-at-gte <value>\", \"Filter by createdAtGte\")\n .option(\"--created-at-lte <value>\", \"Filter by createdAtLte\")\n .option(\"--updated-at-eq <value>\", \"Filter by updatedAtEq\")\n .option(\"--updated-at-gte <value>\", \"Filter by updatedAtGte\")\n .option(\"--updated-at-lte <value>\", \"Filter by updatedAtLte\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.status != null) query.status = opts.status;\n if (opts.containerId != null) query.containerId = opts.containerId;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n if (opts.categoryId != null) query.categoryId = opts.categoryId;\n if (opts.labelId != null) query.labelId = opts.labelId;\n if (opts.hasExternalLink != null) query.hasExternalLink = opts.hasExternalLink;\n if (opts.externalLinkProvider != null) query.externalLinkProvider = opts.externalLinkProvider;\n if (opts.createdAtEq != null) query.createdAtEq = opts.createdAtEq;\n if (opts.createdAtGte != null) query.createdAtGte = opts.createdAtGte;\n if (opts.createdAtLte != null) query.createdAtLte = opts.createdAtLte;\n if (opts.updatedAtEq != null) query.updatedAtEq = opts.updatedAtEq;\n if (opts.updatedAtGte != null) query.updatedAtGte = opts.updatedAtGte;\n if (opts.updatedAtLte != null) query.updatedAtLte = opts.updatedAtLte;\n const res = await apiRequest({ method: \"GET\", path: \"projects\", token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n projectsCmd.command(\"get <id>\").description(\"Get one projects by id\")\n .option(\"--include-category <value>\", \"Include/filter by includeCategory\")\n .option(\"--include-labels <value>\", \"Include/filter by includeLabels\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.includeCategory != null) query.includeCategory = opts.includeCategory;\n if (opts.includeLabels != null) query.includeLabels = opts.includeLabels;\n const res = await apiRequest({ method: \"GET\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"create\").description(\"Create projects\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--title <value>\", \"title\")\n .option(\"--description <value>\", \"description\")\n .option(\"--status <value>\", \"status\")\n .option(\"--container-id <value>\", \"containerId\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.status != null) bodyFromFlags.status = opts.status;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"projects\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"update <id>\").description(\"Update projects\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--title <value>\", \"title\")\n .option(\"--description <value>\", \"description\")\n .option(\"--status <value>\", \"status\")\n .option(\"--container-id <value>\", \"containerId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"projects\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.status != null) bodyFromFlags.status = opts.status;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.status != null) bodyFromFlags.status = opts.status;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"delete <id>\").description(\"Delete projects\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"projects\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- categories ---\n const categoriesCmd = program.command(\"categories\").description(\"categories resource\");\n categoriesCmd.command(\"list\").description(\"List categories\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--entity-type <value>\", \"Filter by entityType\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.entityType != null) query.entityType = opts.entityType;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n const res = await apiRequest({ method: \"GET\", path: \"categories\", token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n categoriesCmd.command(\"get <id>\").description(\"Get one categories by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"create\").description(\"Create categories\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--color <value>\", \"color\")\n .option(\"--entity-type <value>\", \"entityType\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n if (opts.entityType != null) bodyFromFlags.entityType = opts.entityType;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"categories\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"update <id>\").description(\"Update categories\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--color <value>\", \"color\")\n .option(\"--entity-type <value>\", \"entityType\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"categories\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n if (opts.entityType != null) bodyFromFlags.entityType = opts.entityType;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n if (opts.entityType != null) bodyFromFlags.entityType = opts.entityType;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"delete <id>\").description(\"Delete categories\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"categories\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- tasks ---\n const tasksCmd = program.command(\"tasks\").description(\"tasks resource\");\n tasksCmd.command(\"list\").description(\"List tasks\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--bucket <value>\", \"Filter by bucket\")\n .option(\"--inbox-triage <value>\", \"Filter by inboxTriage\")\n .option(\"--project-id <value>\", \"Filter by projectId\")\n .option(\"--category-id <value>\", \"Filter by categoryId\")\n .option(\"--container-id <value>\", \"Filter by containerId\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .option(\"--assignee-id <value>\", \"Filter by assigneeId\")\n .option(\"--routine-block-id <value>\", \"Filter by routineBlockId\")\n .option(\"--do-date-eq <value>\", \"Filter by doDateEq\")\n .option(\"--do-date-gte <value>\", \"Filter by doDateGte\")\n .option(\"--do-date-lte <value>\", \"Filter by doDateLte\")\n .option(\"--due-date-eq <value>\", \"Filter by dueDateEq\")\n .option(\"--due-date-gte <value>\", \"Filter by dueDateGte\")\n .option(\"--due-date-lte <value>\", \"Filter by dueDateLte\")\n .option(\"--do-end-date-eq <value>\", \"Filter by doEndDateEq\")\n .option(\"--do-end-date-gte <value>\", \"Filter by doEndDateGte\")\n .option(\"--do-end-date-lte <value>\", \"Filter by doEndDateLte\")\n .option(\"--scheduled-at-eq <value>\", \"Filter by scheduledAtEq\")\n .option(\"--scheduled-at-gte <value>\", \"Filter by scheduledAtGte\")\n .option(\"--scheduled-at-lte <value>\", \"Filter by scheduledAtLte\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.bucket != null) query.bucket = opts.bucket;\n if (opts.inboxTriage != null) query.inboxTriage = opts.inboxTriage;\n if (opts.projectId != null) query.projectId = opts.projectId;\n if (opts.categoryId != null) query.categoryId = opts.categoryId;\n if (opts.containerId != null) query.containerId = opts.containerId;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n if (opts.assigneeId != null) query.assigneeId = opts.assigneeId;\n if (opts.routineBlockId != null) query.routineBlockId = opts.routineBlockId;\n if (opts.doDateEq != null) query.doDateEq = opts.doDateEq;\n if (opts.doDateGte != null) query.doDateGte = opts.doDateGte;\n if (opts.doDateLte != null) query.doDateLte = opts.doDateLte;\n if (opts.dueDateEq != null) query.dueDateEq = opts.dueDateEq;\n if (opts.dueDateGte != null) query.dueDateGte = opts.dueDateGte;\n if (opts.dueDateLte != null) query.dueDateLte = opts.dueDateLte;\n if (opts.doEndDateEq != null) query.doEndDateEq = opts.doEndDateEq;\n if (opts.doEndDateGte != null) query.doEndDateGte = opts.doEndDateGte;\n if (opts.doEndDateLte != null) query.doEndDateLte = opts.doEndDateLte;\n if (opts.scheduledAtEq != null) query.scheduledAtEq = opts.scheduledAtEq;\n if (opts.scheduledAtGte != null) query.scheduledAtGte = opts.scheduledAtGte;\n if (opts.scheduledAtLte != null) query.scheduledAtLte = opts.scheduledAtLte;\n const res = await apiRequest({ method: \"GET\", path: \"tasks\", token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n tasksCmd.command(\"get <id>\").description(\"Get one tasks by id\")\n .option(\"--include-links <value>\", \"Include/filter by includeLinks\")\n .option(\"--linked-provider <value>\", \"Include/filter by linkedProvider\")\n .option(\"--include-category <value>\", \"Include/filter by includeCategory\")\n .option(\"--include-labels <value>\", \"Include/filter by includeLabels\")\n .option(\"--include-related-tasks <value>\", \"Include/filter by includeRelatedTasks\")\n .option(\"--include-notes <value>\", \"Include/filter by includeNotes\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.includeLinks != null) query.includeLinks = opts.includeLinks;\n if (opts.linkedProvider != null) query.linkedProvider = opts.linkedProvider;\n if (opts.includeCategory != null) query.includeCategory = opts.includeCategory;\n if (opts.includeLabels != null) query.includeLabels = opts.includeLabels;\n if (opts.includeRelatedTasks != null) query.includeRelatedTasks = opts.includeRelatedTasks;\n if (opts.includeNotes != null) query.includeNotes = opts.includeNotes;\n const res = await apiRequest({ method: \"GET\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n tasksCmd.command(\"create\").description(\"Create tasks\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--title <value>\", \"title\")\n .option(\"--notes <value>\", \"notes\")\n .option(\"--done-at <value>\", \"doneAt\")\n .option(\"--project-id <value>\", \"projectId\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--bucket <value>\", \"bucket\")\n .option(\"--routine-block-id <value>\", \"routineBlockId\")\n .option(\"--assignee-id <value>\", \"assigneeId\")\n .option(\"--is-starred <value>\", \"isStarred\")\n .option(\"--do-date <value>\", \"doDate\")\n .option(\"--do-end-date <value>\", \"doEndDate\")\n .option(\"--due-date <value>\", \"dueDate\")\n .option(\"--scheduled-at <value>\", \"scheduledAt\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.notes != null) bodyFromFlags.notes = opts.notes;\n if (opts.doneAt != null) bodyFromFlags.doneAt = opts.doneAt;\n if (opts.projectId != null) bodyFromFlags.projectId = opts.projectId;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.bucket != null) bodyFromFlags.bucket = opts.bucket;\n if (opts.routineBlockId != null) bodyFromFlags.routineBlockId = opts.routineBlockId;\n if (opts.assigneeId != null) bodyFromFlags.assigneeId = opts.assigneeId;\n if (opts.isStarred != null) bodyFromFlags.isStarred = opts.isStarred;\n if (opts.doDate != null) bodyFromFlags.doDate = opts.doDate;\n if (opts.doEndDate != null) bodyFromFlags.doEndDate = opts.doEndDate;\n if (opts.dueDate != null) bodyFromFlags.dueDate = opts.dueDate;\n if (opts.scheduledAt != null) bodyFromFlags.scheduledAt = opts.scheduledAt;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"tasks\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n tasksCmd.command(\"update <id>\").description(\"Update tasks\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--title <value>\", \"title\")\n .option(\"--notes <value>\", \"notes\")\n .option(\"--done-at <value>\", \"doneAt\")\n .option(\"--project-id <value>\", \"projectId\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--container-id <value>\", \"containerId\")\n .option(\"--bucket <value>\", \"bucket\")\n .option(\"--routine-block-id <value>\", \"routineBlockId\")\n .option(\"--assignee-id <value>\", \"assigneeId\")\n .option(\"--is-starred <value>\", \"isStarred\")\n .option(\"--do-date <value>\", \"doDate\")\n .option(\"--do-end-date <value>\", \"doEndDate\")\n .option(\"--due-date <value>\", \"dueDate\")\n .option(\"--scheduled-at <value>\", \"scheduledAt\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"tasks\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.notes != null) bodyFromFlags.notes = opts.notes;\n if (opts.doneAt != null) bodyFromFlags.doneAt = opts.doneAt;\n if (opts.projectId != null) bodyFromFlags.projectId = opts.projectId;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n if (opts.bucket != null) bodyFromFlags.bucket = opts.bucket;\n if (opts.routineBlockId != null) bodyFromFlags.routineBlockId = opts.routineBlockId;\n if (opts.assigneeId != null) bodyFromFlags.assigneeId = opts.assigneeId;\n if (opts.isStarred != null) bodyFromFlags.isStarred = opts.isStarred;\n if (opts.doDate != null) bodyFromFlags.doDate = opts.doDate;\n if (opts.doEndDate != null) bodyFromFlags.doEndDate = opts.doEndDate;\n if (opts.dueDate != null) bodyFromFlags.dueDate = opts.dueDate;\n if (opts.scheduledAt != null) bodyFromFlags.scheduledAt = opts.scheduledAt;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.notes != null) bodyFromFlags.notes = opts.notes;\n if (opts.doneAt != null) bodyFromFlags.doneAt = opts.doneAt;\n if (opts.projectId != null) bodyFromFlags.projectId = opts.projectId;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n if (opts.bucket != null) bodyFromFlags.bucket = opts.bucket;\n if (opts.routineBlockId != null) bodyFromFlags.routineBlockId = opts.routineBlockId;\n if (opts.assigneeId != null) bodyFromFlags.assigneeId = opts.assigneeId;\n if (opts.isStarred != null) bodyFromFlags.isStarred = opts.isStarred;\n if (opts.doDate != null) bodyFromFlags.doDate = opts.doDate;\n if (opts.doEndDate != null) bodyFromFlags.doEndDate = opts.doEndDate;\n if (opts.dueDate != null) bodyFromFlags.dueDate = opts.dueDate;\n if (opts.scheduledAt != null) bodyFromFlags.scheduledAt = opts.scheduledAt;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n tasksCmd.command(\"delete <id>\").description(\"Delete tasks\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"tasks\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- routine-blocks ---\n const routineblocksCmd = program.command(\"routine-blocks\").description(\"routine_blocks resource\");\n routineblocksCmd.command(\"list\").description(\"List routine-blocks\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--date <value>\", \"Filter by date\")\n .option(\"--template-id <value>\", \"Filter by templateId\")\n .option(\"--category-id <value>\", \"Filter by categoryId\")\n .option(\"--container-id <value>\", \"Filter by containerId\")\n .option(\"--project-id <value>\", \"Filter by projectId\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .option(\"--shared-with-user-id <value>\", \"Filter by sharedWithUserId\")\n .option(\"--is-template <value>\", \"Filter by isTemplate\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.date != null) query.date = opts.date;\n if (opts.templateId != null) query.templateId = opts.templateId;\n if (opts.categoryId != null) query.categoryId = opts.categoryId;\n if (opts.containerId != null) query.containerId = opts.containerId;\n if (opts.projectId != null) query.projectId = opts.projectId;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n if (opts.sharedWithUserId != null) query.sharedWithUserId = opts.sharedWithUserId;\n if (opts.isTemplate != null) query.isTemplate = opts.isTemplate;\n const res = await apiRequest({ method: \"GET\", path: \"routine_blocks\", token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n routineblocksCmd.command(\"get <id>\").description(\"Get one routine-blocks by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n routineblocksCmd.command(\"create\").description(\"Create routine-blocks\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--start-time <value>\", \"startTime\")\n .option(\"--end-time <value>\", \"endTime\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .option(\"--template-id <value>\", \"templateId\")\n .option(\"--day-of-week <value>\", \"dayOfWeek\")\n .option(\"--date <value>\", \"date\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--content <value>\", \"content\")\n .option(\"--block-type <value>\", \"blockType\")\n .option(\"--color <value>\", \"color\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.startTime != null) bodyFromFlags.startTime = opts.startTime;\n if (opts.endTime != null) bodyFromFlags.endTime = opts.endTime;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n if (opts.templateId != null) bodyFromFlags.templateId = opts.templateId;\n if (opts.dayOfWeek != null) bodyFromFlags.dayOfWeek = opts.dayOfWeek;\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.content != null) bodyFromFlags.content = opts.content;\n if (opts.blockType != null) bodyFromFlags.blockType = opts.blockType;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"routine_blocks\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n routineblocksCmd.command(\"update <id>\").description(\"Update routine-blocks\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--start-time <value>\", \"startTime\")\n .option(\"--end-time <value>\", \"endTime\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .option(\"--template-id <value>\", \"templateId\")\n .option(\"--day-of-week <value>\", \"dayOfWeek\")\n .option(\"--date <value>\", \"date\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--content <value>\", \"content\")\n .option(\"--block-type <value>\", \"blockType\")\n .option(\"--color <value>\", \"color\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"routine-blocks\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.startTime != null) bodyFromFlags.startTime = opts.startTime;\n if (opts.endTime != null) bodyFromFlags.endTime = opts.endTime;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n if (opts.templateId != null) bodyFromFlags.templateId = opts.templateId;\n if (opts.dayOfWeek != null) bodyFromFlags.dayOfWeek = opts.dayOfWeek;\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.content != null) bodyFromFlags.content = opts.content;\n if (opts.blockType != null) bodyFromFlags.blockType = opts.blockType;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.startTime != null) bodyFromFlags.startTime = opts.startTime;\n if (opts.endTime != null) bodyFromFlags.endTime = opts.endTime;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n if (opts.templateId != null) bodyFromFlags.templateId = opts.templateId;\n if (opts.dayOfWeek != null) bodyFromFlags.dayOfWeek = opts.dayOfWeek;\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.content != null) bodyFromFlags.content = opts.content;\n if (opts.blockType != null) bodyFromFlags.blockType = opts.blockType;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n routineblocksCmd.command(\"delete <id>\").description(\"Delete routine-blocks\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"routine-blocks\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- reviews ---\n const reviewsCmd = program.command(\"reviews\").description(\"reviews resource\");\n reviewsCmd.command(\"list\").description(\"List reviews\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--date <value>\", \"Filter by date\")\n .option(\"--type <value>\", \"Filter by type\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.date != null) query.date = opts.date;\n if (opts.type != null) query.type = opts.type;\n const res = await apiRequest({ method: \"GET\", path: \"reviews\", token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n reviewsCmd.command(\"get <id>\").description(\"Get one reviews by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n reviewsCmd.command(\"create\").description(\"Create reviews\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--date <value>\", \"date\")\n .option(\"--type <value>\", \"type\")\n .option(\"--description <value>\", \"description\")\n .option(\"--wake-time <value>\", \"wakeTime\")\n .option(\"--sleep-time <value>\", \"sleepTime\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.type != null) bodyFromFlags.type = opts.type;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.wakeTime != null) bodyFromFlags.wakeTime = opts.wakeTime;\n if (opts.sleepTime != null) bodyFromFlags.sleepTime = opts.sleepTime;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"reviews\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n reviewsCmd.command(\"update <id>\").description(\"Update reviews\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--description <value>\", \"description\")\n .option(\"--wake-time <value>\", \"wakeTime\")\n .option(\"--sleep-time <value>\", \"sleepTime\")\n .option(\"--steps <value>\", \"steps\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"reviews\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.wakeTime != null) bodyFromFlags.wakeTime = opts.wakeTime;\n if (opts.sleepTime != null) bodyFromFlags.sleepTime = opts.sleepTime;\n if (opts.steps != null) bodyFromFlags.steps = opts.steps;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.wakeTime != null) bodyFromFlags.wakeTime = opts.wakeTime;\n if (opts.sleepTime != null) bodyFromFlags.sleepTime = opts.sleepTime;\n if (opts.steps != null) bodyFromFlags.steps = opts.steps;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n reviewsCmd.command(\"delete <id>\").description(\"Delete reviews\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"reviews\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- daily-notes ---\n const dailynotesCmd = program.command(\"daily-notes\").description(\"daily_notes resource\");\n dailynotesCmd.command(\"list\").description(\"List daily-notes\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--dates <value>\", \"Filter by dates\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.dates != null) query.dates = opts.dates;\n const res = await apiRequest({ method: \"GET\", path: \"daily_notes\", token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n dailynotesCmd.command(\"get <date>\").description(\"Get one daily-notes by date\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (date, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n dailynotesCmd.command(\"create\").description(\"Create daily-notes\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--date <value>\", \"date\")\n .option(\"--content <value>\", \"content\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.content != null) bodyFromFlags.content = opts.content;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"daily_notes\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n dailynotesCmd.command(\"update <date>\").description(\"Update daily-notes\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--dates <dates>\", \"Comma-separated dates for bulk update (max 25)\")\n .option(\"--content <value>\", \"content\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (date, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const dates = parseDates(opts.dates);\n if (dates.length > 0) {\n validateBulkIds(dates, \"daily-notes\");\n const { data, summary } = await runBulk({\n items: dates,\n runOne: async (date) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.content != null) bodyFromFlags.content = opts.content;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (date, ok, status, data, err) => ok ? { _id: date, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.content != null) bodyFromFlags.content = opts.content;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n dailynotesCmd.command(\"delete <date>\").description(\"Delete daily-notes\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--dates <dates>\", \"Comma-separated dates for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (date, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const dates = parseDates(opts.dates);\n if (dates.length > 0) {\n validateBulkIds(dates, \"daily-notes\");\n const { data, summary } = await runBulk({\n items: dates,\n runOne: async (date) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (date, ok, status, _d, err) => ok ? { _id: date, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n}"],"mappings":"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","names":["r","data","id","bodyFromFlags","body","res","date"]}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  createProgramForCLI,
4
4
  syncRootOptsFromCommand
5
- } from "./chunk-S6A25RUL.js";
5
+ } from "./chunk-RYRGM7VH.js";
6
6
  import "./chunk-XAVGPPYF.js";
7
7
  import {
8
8
  resolveToken
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usemonoid/cli",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "repository": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/merge-body.ts","../src/lib/bulk.ts","../src/commands/generated/index.ts"],"sourcesContent":["/**\n * Merge optional JSON body (from --body) with object built from flags.\n * Flags override keys in body when both are provided.\n */\nexport function mergeBody(\n bodyFromFlags: Record<string, unknown>,\n bodyOption: string | undefined,\n): Record<string, unknown> {\n let base: Record<string, unknown> = {};\n if (bodyOption?.trim()) {\n try {\n base = JSON.parse(bodyOption) as Record<string, unknown>;\n } catch {\n // ignore invalid JSON\n }\n }\n return { ...base, ...bodyFromFlags };\n}\n","const MAX_IDS = 25;\nconst CONCURRENCY = 5;\nconst MAX_RETRIES = 3;\n\nexport function parseIds(idsFlag: string | undefined): string[] {\n if (!idsFlag?.trim()) return [];\n return idsFlag.split(\",\").map((s) => s.trim()).filter(Boolean);\n}\n\nexport function parseDates(datesFlag: string | undefined): string[] {\n return parseIds(datesFlag);\n}\n\nexport function validateBulkIds(ids: string[], resourceLabel: string): void {\n if (ids.length > MAX_IDS) {\n throw new Error(\n `${resourceLabel}: max ${MAX_IDS} IDs per invocation (got ${ids.length}). Use multiple invocations for more.`,\n );\n }\n}\n\nexport interface BulkTaskResult {\n _id?: string;\n status?: \"updated\" | \"deleted\";\n error?: boolean;\n statusCode?: number;\n message?: string;\n}\n\nexport interface BulkRunOptions<T> {\n items: string[];\n concurrency?: number;\n runOne: (id: string) => Promise<{ ok: boolean; status: number; data?: T; error?: string }>;\n toResult: (id: string, ok: boolean, status: number, data?: T, error?: string) => BulkTaskResult;\n}\n\n/**\n * Run up to CONCURRENCY operations in parallel, with 429 retry (Retry-After or exponential backoff).\n */\nexport async function runBulk<T>(options: BulkRunOptions<T>): Promise<{\n data: BulkTaskResult[];\n summary: { total: number; succeeded: number; failed: number };\n}> {\n const { items, runOne, toResult } = options;\n const concurrency = Math.min(options.concurrency ?? CONCURRENCY, items.length);\n const results: BulkTaskResult[] = [];\n let succeeded = 0;\n let failed = 0;\n\n async function runWithRetry(id: string): Promise<BulkTaskResult> {\n let lastRes: { ok: boolean; status: number; data?: T; error?: string } | null = null;\n for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {\n const res = await runOne(id);\n lastRes = res;\n if (res.status !== 429) break;\n const retryAfter = 2 ** attempt;\n await new Promise((r) => setTimeout(r, retryAfter * 1000));\n }\n const r = lastRes!;\n const result = toResult(id, r.ok, r.status, r.data, r.error);\n if (r.ok) succeeded++;\n else failed++;\n return result;\n }\n\n const queue = [...items];\n const workers = Array.from({ length: concurrency }, async () => {\n while (queue.length > 0) {\n const id = queue.shift()!;\n const result = await runWithRetry(id);\n results.push(result);\n }\n });\n await Promise.all(workers);\n\n return {\n data: results,\n summary: { total: items.length, succeeded, failed },\n };\n}\n","/** Generated by scripts/generate-from-openapi.ts - do not edit by hand */\nimport type { Command } from \"commander\";\nimport { apiRequest } from \"../../lib/client.js\";\nimport { printOutput } from \"../../lib/output.js\";\nimport { mergeBody } from \"../../lib/merge-body.js\";\nimport { parseIds, parseDates, validateBulkIds, runBulk } from \"../../lib/bulk.js\";\n\nexport interface CommandHelpers {\n getOutputFormat: () => \"json\" | \"table\" | \"csv\";\n requireToken: () => string | null;\n exitWithError: (status: number, message: string) => never;\n getBaseUrl: () => string;\n syncRootOptsFromCommand: (cmd: Command) => void;\n}\n\nexport function register(program: Command, helpers: CommandHelpers): void {\n const { getOutputFormat, requireToken, exitWithError, getBaseUrl, syncRootOptsFromCommand } = helpers;\n const baseUrl = getBaseUrl();\n\n // --- organisations ---\n const organisationsCmd = program.command(\"organisations\").description(\"organisations resource\");\n organisationsCmd.command(\"list\").description(\"List organisations\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n const res = await apiRequest({ method: \"GET\", path: \"organisations\", token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n organisationsCmd.command(\"get <id>\").description(\"Get one organisations by id\")\n .option(\"--include-members <value>\", \"Include/filter by includeMembers\")\n .option(\"--include-plan <value>\", \"Include/filter by includePlan\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.includeMembers != null) query.includeMembers = opts.includeMembers;\n if (opts.includePlan != null) query.includePlan = opts.includePlan;\n const res = await apiRequest({ method: \"GET\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n organisationsCmd.command(\"create\").description(\"Create organisations\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--id <value>\", \"id\")\n .option(\"--name <value>\", \"name\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.id != null) bodyFromFlags.id = opts.id;\n if (opts.name != null) bodyFromFlags.name = opts.name;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"organisations\", token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n organisationsCmd.command(\"update <id>\").description(\"Update organisations\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--name <value>\", \"name\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"organisations\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl, body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n organisationsCmd.command(\"delete <id>\").description(\"Delete organisations\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"organisations\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"organisations/\" + encodeURIComponent(id), token, baseUrl });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- containers ---\n const containersCmd = program.command(\"containers\").description(\"containers resource\");\n containersCmd.command(\"list\").description(\"List containers\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .option(\"--name <value>\", \"Filter by name\")\n .option(\"--member-id <value>\", \"Filter by memberId\")\n .option(\"--team-id <value>\", \"Filter by teamId\")\n .option(\"--has-members <value>\", \"Filter by hasMembers\")\n .option(\"--has-teams <value>\", \"Filter by hasTeams\")\n .option(\"--has-external-link <value>\", \"Filter by hasExternalLink\")\n .option(\"--external-link-provider <value>\", \"Filter by externalLinkProvider\")\n .option(\"--created-at-eq <value>\", \"Filter by createdAtEq\")\n .option(\"--created-at-gte <value>\", \"Filter by createdAtGte\")\n .option(\"--created-at-lte <value>\", \"Filter by createdAtLte\")\n .option(\"--updated-at-eq <value>\", \"Filter by updatedAtEq\")\n .option(\"--updated-at-gte <value>\", \"Filter by updatedAtGte\")\n .option(\"--updated-at-lte <value>\", \"Filter by updatedAtLte\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n if (opts.name != null) query.name = opts.name;\n if (opts.memberId != null) query.memberId = opts.memberId;\n if (opts.teamId != null) query.teamId = opts.teamId;\n if (opts.hasMembers != null) query.hasMembers = opts.hasMembers;\n if (opts.hasTeams != null) query.hasTeams = opts.hasTeams;\n if (opts.hasExternalLink != null) query.hasExternalLink = opts.hasExternalLink;\n if (opts.externalLinkProvider != null) query.externalLinkProvider = opts.externalLinkProvider;\n if (opts.createdAtEq != null) query.createdAtEq = opts.createdAtEq;\n if (opts.createdAtGte != null) query.createdAtGte = opts.createdAtGte;\n if (opts.createdAtLte != null) query.createdAtLte = opts.createdAtLte;\n if (opts.updatedAtEq != null) query.updatedAtEq = opts.updatedAtEq;\n if (opts.updatedAtGte != null) query.updatedAtGte = opts.updatedAtGte;\n if (opts.updatedAtLte != null) query.updatedAtLte = opts.updatedAtLte;\n const res = await apiRequest({ method: \"GET\", path: \"containers\", token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n containersCmd.command(\"get <id>\").description(\"Get one containers by id\")\n .option(\"--include-links <value>\", \"Include/filter by includeLinks\")\n .option(\"--linked-provider <value>\", \"Include/filter by linkedProvider\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.includeLinks != null) query.includeLinks = opts.includeLinks;\n if (opts.linkedProvider != null) query.linkedProvider = opts.linkedProvider;\n const res = await apiRequest({ method: \"GET\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n containersCmd.command(\"create\").description(\"Create containers\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"containers\", token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n containersCmd.command(\"update <id>\").description(\"Update containers\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"containers\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl, body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n containersCmd.command(\"delete <id>\").description(\"Delete containers\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"containers\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"containers/\" + encodeURIComponent(id), token, baseUrl });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- projects ---\n const projectsCmd = program.command(\"projects\").description(\"projects resource\");\n projectsCmd.command(\"list\").description(\"List projects\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--status <value>\", \"Filter by status\")\n .option(\"--container-id <value>\", \"Filter by containerId\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .option(\"--category-id <value>\", \"Filter by categoryId\")\n .option(\"--label-id <value>\", \"Filter by labelId\")\n .option(\"--has-external-link <value>\", \"Filter by hasExternalLink\")\n .option(\"--external-link-provider <value>\", \"Filter by externalLinkProvider\")\n .option(\"--created-at-eq <value>\", \"Filter by createdAtEq\")\n .option(\"--created-at-gte <value>\", \"Filter by createdAtGte\")\n .option(\"--created-at-lte <value>\", \"Filter by createdAtLte\")\n .option(\"--updated-at-eq <value>\", \"Filter by updatedAtEq\")\n .option(\"--updated-at-gte <value>\", \"Filter by updatedAtGte\")\n .option(\"--updated-at-lte <value>\", \"Filter by updatedAtLte\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.status != null) query.status = opts.status;\n if (opts.containerId != null) query.containerId = opts.containerId;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n if (opts.categoryId != null) query.categoryId = opts.categoryId;\n if (opts.labelId != null) query.labelId = opts.labelId;\n if (opts.hasExternalLink != null) query.hasExternalLink = opts.hasExternalLink;\n if (opts.externalLinkProvider != null) query.externalLinkProvider = opts.externalLinkProvider;\n if (opts.createdAtEq != null) query.createdAtEq = opts.createdAtEq;\n if (opts.createdAtGte != null) query.createdAtGte = opts.createdAtGte;\n if (opts.createdAtLte != null) query.createdAtLte = opts.createdAtLte;\n if (opts.updatedAtEq != null) query.updatedAtEq = opts.updatedAtEq;\n if (opts.updatedAtGte != null) query.updatedAtGte = opts.updatedAtGte;\n if (opts.updatedAtLte != null) query.updatedAtLte = opts.updatedAtLte;\n const res = await apiRequest({ method: \"GET\", path: \"projects\", token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n projectsCmd.command(\"get <id>\").description(\"Get one projects by id\")\n .option(\"--include-category <value>\", \"Include/filter by includeCategory\")\n .option(\"--include-labels <value>\", \"Include/filter by includeLabels\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.includeCategory != null) query.includeCategory = opts.includeCategory;\n if (opts.includeLabels != null) query.includeLabels = opts.includeLabels;\n const res = await apiRequest({ method: \"GET\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"create\").description(\"Create projects\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--title <value>\", \"title\")\n .option(\"--description <value>\", \"description\")\n .option(\"--status <value>\", \"status\")\n .option(\"--container-id <value>\", \"containerId\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.status != null) bodyFromFlags.status = opts.status;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"projects\", token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"update <id>\").description(\"Update projects\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--title <value>\", \"title\")\n .option(\"--description <value>\", \"description\")\n .option(\"--status <value>\", \"status\")\n .option(\"--container-id <value>\", \"containerId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"projects\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.status != null) bodyFromFlags.status = opts.status;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl, body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.status != null) bodyFromFlags.status = opts.status;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"delete <id>\").description(\"Delete projects\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"projects\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- categories ---\n const categoriesCmd = program.command(\"categories\").description(\"categories resource\");\n categoriesCmd.command(\"list\").description(\"List categories\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--entity-type <value>\", \"Filter by entityType\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.entityType != null) query.entityType = opts.entityType;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n const res = await apiRequest({ method: \"GET\", path: \"categories\", token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n categoriesCmd.command(\"get <id>\").description(\"Get one categories by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"create\").description(\"Create categories\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--color <value>\", \"color\")\n .option(\"--entity-type <value>\", \"entityType\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n if (opts.entityType != null) bodyFromFlags.entityType = opts.entityType;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"categories\", token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"update <id>\").description(\"Update categories\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--color <value>\", \"color\")\n .option(\"--entity-type <value>\", \"entityType\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"categories\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n if (opts.entityType != null) bodyFromFlags.entityType = opts.entityType;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl, body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n if (opts.entityType != null) bodyFromFlags.entityType = opts.entityType;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"delete <id>\").description(\"Delete categories\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"categories\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- tasks ---\n const tasksCmd = program.command(\"tasks\").description(\"tasks resource\");\n tasksCmd.command(\"list\").description(\"List tasks\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--bucket <value>\", \"Filter by bucket\")\n .option(\"--inbox-triage <value>\", \"Filter by inboxTriage\")\n .option(\"--project-id <value>\", \"Filter by projectId\")\n .option(\"--category-id <value>\", \"Filter by categoryId\")\n .option(\"--container-id <value>\", \"Filter by containerId\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .option(\"--assignee-id <value>\", \"Filter by assigneeId\")\n .option(\"--routine-block-id <value>\", \"Filter by routineBlockId\")\n .option(\"--do-date-eq <value>\", \"Filter by doDateEq\")\n .option(\"--do-date-gte <value>\", \"Filter by doDateGte\")\n .option(\"--do-date-lte <value>\", \"Filter by doDateLte\")\n .option(\"--due-date-eq <value>\", \"Filter by dueDateEq\")\n .option(\"--due-date-gte <value>\", \"Filter by dueDateGte\")\n .option(\"--due-date-lte <value>\", \"Filter by dueDateLte\")\n .option(\"--do-end-date-eq <value>\", \"Filter by doEndDateEq\")\n .option(\"--do-end-date-gte <value>\", \"Filter by doEndDateGte\")\n .option(\"--do-end-date-lte <value>\", \"Filter by doEndDateLte\")\n .option(\"--scheduled-at-eq <value>\", \"Filter by scheduledAtEq\")\n .option(\"--scheduled-at-gte <value>\", \"Filter by scheduledAtGte\")\n .option(\"--scheduled-at-lte <value>\", \"Filter by scheduledAtLte\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.bucket != null) query.bucket = opts.bucket;\n if (opts.inboxTriage != null) query.inboxTriage = opts.inboxTriage;\n if (opts.projectId != null) query.projectId = opts.projectId;\n if (opts.categoryId != null) query.categoryId = opts.categoryId;\n if (opts.containerId != null) query.containerId = opts.containerId;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n if (opts.assigneeId != null) query.assigneeId = opts.assigneeId;\n if (opts.routineBlockId != null) query.routineBlockId = opts.routineBlockId;\n if (opts.doDateEq != null) query.doDateEq = opts.doDateEq;\n if (opts.doDateGte != null) query.doDateGte = opts.doDateGte;\n if (opts.doDateLte != null) query.doDateLte = opts.doDateLte;\n if (opts.dueDateEq != null) query.dueDateEq = opts.dueDateEq;\n if (opts.dueDateGte != null) query.dueDateGte = opts.dueDateGte;\n if (opts.dueDateLte != null) query.dueDateLte = opts.dueDateLte;\n if (opts.doEndDateEq != null) query.doEndDateEq = opts.doEndDateEq;\n if (opts.doEndDateGte != null) query.doEndDateGte = opts.doEndDateGte;\n if (opts.doEndDateLte != null) query.doEndDateLte = opts.doEndDateLte;\n if (opts.scheduledAtEq != null) query.scheduledAtEq = opts.scheduledAtEq;\n if (opts.scheduledAtGte != null) query.scheduledAtGte = opts.scheduledAtGte;\n if (opts.scheduledAtLte != null) query.scheduledAtLte = opts.scheduledAtLte;\n const res = await apiRequest({ method: \"GET\", path: \"tasks\", token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n tasksCmd.command(\"get <id>\").description(\"Get one tasks by id\")\n .option(\"--include-links <value>\", \"Include/filter by includeLinks\")\n .option(\"--linked-provider <value>\", \"Include/filter by linkedProvider\")\n .option(\"--include-category <value>\", \"Include/filter by includeCategory\")\n .option(\"--include-labels <value>\", \"Include/filter by includeLabels\")\n .option(\"--include-related-tasks <value>\", \"Include/filter by includeRelatedTasks\")\n .option(\"--include-notes <value>\", \"Include/filter by includeNotes\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.includeLinks != null) query.includeLinks = opts.includeLinks;\n if (opts.linkedProvider != null) query.linkedProvider = opts.linkedProvider;\n if (opts.includeCategory != null) query.includeCategory = opts.includeCategory;\n if (opts.includeLabels != null) query.includeLabels = opts.includeLabels;\n if (opts.includeRelatedTasks != null) query.includeRelatedTasks = opts.includeRelatedTasks;\n if (opts.includeNotes != null) query.includeNotes = opts.includeNotes;\n const res = await apiRequest({ method: \"GET\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n tasksCmd.command(\"create\").description(\"Create tasks\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--title <value>\", \"title\")\n .option(\"--notes <value>\", \"notes\")\n .option(\"--done-at <value>\", \"doneAt\")\n .option(\"--project-id <value>\", \"projectId\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--bucket <value>\", \"bucket\")\n .option(\"--routine-block-id <value>\", \"routineBlockId\")\n .option(\"--assignee-id <value>\", \"assigneeId\")\n .option(\"--is-starred <value>\", \"isStarred\")\n .option(\"--do-date <value>\", \"doDate\")\n .option(\"--do-end-date <value>\", \"doEndDate\")\n .option(\"--due-date <value>\", \"dueDate\")\n .option(\"--scheduled-at <value>\", \"scheduledAt\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.notes != null) bodyFromFlags.notes = opts.notes;\n if (opts.doneAt != null) bodyFromFlags.doneAt = opts.doneAt;\n if (opts.projectId != null) bodyFromFlags.projectId = opts.projectId;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.bucket != null) bodyFromFlags.bucket = opts.bucket;\n if (opts.routineBlockId != null) bodyFromFlags.routineBlockId = opts.routineBlockId;\n if (opts.assigneeId != null) bodyFromFlags.assigneeId = opts.assigneeId;\n if (opts.isStarred != null) bodyFromFlags.isStarred = opts.isStarred;\n if (opts.doDate != null) bodyFromFlags.doDate = opts.doDate;\n if (opts.doEndDate != null) bodyFromFlags.doEndDate = opts.doEndDate;\n if (opts.dueDate != null) bodyFromFlags.dueDate = opts.dueDate;\n if (opts.scheduledAt != null) bodyFromFlags.scheduledAt = opts.scheduledAt;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"tasks\", token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n tasksCmd.command(\"update <id>\").description(\"Update tasks\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--title <value>\", \"title\")\n .option(\"--notes <value>\", \"notes\")\n .option(\"--done-at <value>\", \"doneAt\")\n .option(\"--project-id <value>\", \"projectId\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--container-id <value>\", \"containerId\")\n .option(\"--bucket <value>\", \"bucket\")\n .option(\"--routine-block-id <value>\", \"routineBlockId\")\n .option(\"--assignee-id <value>\", \"assigneeId\")\n .option(\"--is-starred <value>\", \"isStarred\")\n .option(\"--do-date <value>\", \"doDate\")\n .option(\"--do-end-date <value>\", \"doEndDate\")\n .option(\"--due-date <value>\", \"dueDate\")\n .option(\"--scheduled-at <value>\", \"scheduledAt\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"tasks\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.notes != null) bodyFromFlags.notes = opts.notes;\n if (opts.doneAt != null) bodyFromFlags.doneAt = opts.doneAt;\n if (opts.projectId != null) bodyFromFlags.projectId = opts.projectId;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n if (opts.bucket != null) bodyFromFlags.bucket = opts.bucket;\n if (opts.routineBlockId != null) bodyFromFlags.routineBlockId = opts.routineBlockId;\n if (opts.assigneeId != null) bodyFromFlags.assigneeId = opts.assigneeId;\n if (opts.isStarred != null) bodyFromFlags.isStarred = opts.isStarred;\n if (opts.doDate != null) bodyFromFlags.doDate = opts.doDate;\n if (opts.doEndDate != null) bodyFromFlags.doEndDate = opts.doEndDate;\n if (opts.dueDate != null) bodyFromFlags.dueDate = opts.dueDate;\n if (opts.scheduledAt != null) bodyFromFlags.scheduledAt = opts.scheduledAt;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl, body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.title != null) bodyFromFlags.title = opts.title;\n if (opts.notes != null) bodyFromFlags.notes = opts.notes;\n if (opts.doneAt != null) bodyFromFlags.doneAt = opts.doneAt;\n if (opts.projectId != null) bodyFromFlags.projectId = opts.projectId;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.containerId != null) bodyFromFlags.containerId = opts.containerId;\n if (opts.bucket != null) bodyFromFlags.bucket = opts.bucket;\n if (opts.routineBlockId != null) bodyFromFlags.routineBlockId = opts.routineBlockId;\n if (opts.assigneeId != null) bodyFromFlags.assigneeId = opts.assigneeId;\n if (opts.isStarred != null) bodyFromFlags.isStarred = opts.isStarred;\n if (opts.doDate != null) bodyFromFlags.doDate = opts.doDate;\n if (opts.doEndDate != null) bodyFromFlags.doEndDate = opts.doEndDate;\n if (opts.dueDate != null) bodyFromFlags.dueDate = opts.dueDate;\n if (opts.scheduledAt != null) bodyFromFlags.scheduledAt = opts.scheduledAt;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n tasksCmd.command(\"delete <id>\").description(\"Delete tasks\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"tasks\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"tasks/\" + encodeURIComponent(id), token, baseUrl });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- routine-blocks ---\n const routineblocksCmd = program.command(\"routine-blocks\").description(\"routine_blocks resource\");\n routineblocksCmd.command(\"list\").description(\"List routine-blocks\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--date <value>\", \"Filter by date\")\n .option(\"--template-id <value>\", \"Filter by templateId\")\n .option(\"--category-id <value>\", \"Filter by categoryId\")\n .option(\"--container-id <value>\", \"Filter by containerId\")\n .option(\"--project-id <value>\", \"Filter by projectId\")\n .option(\"--organisation-id <value>\", \"Filter by organisationId\")\n .option(\"--shared-with-user-id <value>\", \"Filter by sharedWithUserId\")\n .option(\"--is-template <value>\", \"Filter by isTemplate\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.date != null) query.date = opts.date;\n if (opts.templateId != null) query.templateId = opts.templateId;\n if (opts.categoryId != null) query.categoryId = opts.categoryId;\n if (opts.containerId != null) query.containerId = opts.containerId;\n if (opts.projectId != null) query.projectId = opts.projectId;\n if (opts.organisationId != null) query.organisationId = opts.organisationId;\n if (opts.sharedWithUserId != null) query.sharedWithUserId = opts.sharedWithUserId;\n if (opts.isTemplate != null) query.isTemplate = opts.isTemplate;\n const res = await apiRequest({ method: \"GET\", path: \"routine_blocks\", token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n routineblocksCmd.command(\"get <id>\").description(\"Get one routine-blocks by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n routineblocksCmd.command(\"create\").description(\"Create routine-blocks\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--start-time <value>\", \"startTime\")\n .option(\"--end-time <value>\", \"endTime\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .option(\"--template-id <value>\", \"templateId\")\n .option(\"--day-of-week <value>\", \"dayOfWeek\")\n .option(\"--date <value>\", \"date\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--content <value>\", \"content\")\n .option(\"--block-type <value>\", \"blockType\")\n .option(\"--color <value>\", \"color\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.startTime != null) bodyFromFlags.startTime = opts.startTime;\n if (opts.endTime != null) bodyFromFlags.endTime = opts.endTime;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n if (opts.templateId != null) bodyFromFlags.templateId = opts.templateId;\n if (opts.dayOfWeek != null) bodyFromFlags.dayOfWeek = opts.dayOfWeek;\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.content != null) bodyFromFlags.content = opts.content;\n if (opts.blockType != null) bodyFromFlags.blockType = opts.blockType;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"routine_blocks\", token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n routineblocksCmd.command(\"update <id>\").description(\"Update routine-blocks\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--start-time <value>\", \"startTime\")\n .option(\"--end-time <value>\", \"endTime\")\n .option(\"--organisation-id <value>\", \"organisationId\")\n .option(\"--template-id <value>\", \"templateId\")\n .option(\"--day-of-week <value>\", \"dayOfWeek\")\n .option(\"--date <value>\", \"date\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--content <value>\", \"content\")\n .option(\"--block-type <value>\", \"blockType\")\n .option(\"--color <value>\", \"color\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"routine-blocks\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.startTime != null) bodyFromFlags.startTime = opts.startTime;\n if (opts.endTime != null) bodyFromFlags.endTime = opts.endTime;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n if (opts.templateId != null) bodyFromFlags.templateId = opts.templateId;\n if (opts.dayOfWeek != null) bodyFromFlags.dayOfWeek = opts.dayOfWeek;\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.content != null) bodyFromFlags.content = opts.content;\n if (opts.blockType != null) bodyFromFlags.blockType = opts.blockType;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl, body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.name != null) bodyFromFlags.name = opts.name;\n if (opts.startTime != null) bodyFromFlags.startTime = opts.startTime;\n if (opts.endTime != null) bodyFromFlags.endTime = opts.endTime;\n if (opts.organisationId != null) bodyFromFlags.organisationId = opts.organisationId;\n if (opts.templateId != null) bodyFromFlags.templateId = opts.templateId;\n if (opts.dayOfWeek != null) bodyFromFlags.dayOfWeek = opts.dayOfWeek;\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.categoryId != null) bodyFromFlags.categoryId = opts.categoryId;\n if (opts.content != null) bodyFromFlags.content = opts.content;\n if (opts.blockType != null) bodyFromFlags.blockType = opts.blockType;\n if (opts.color != null) bodyFromFlags.color = opts.color;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n routineblocksCmd.command(\"delete <id>\").description(\"Delete routine-blocks\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"routine-blocks\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"routine_blocks/\" + encodeURIComponent(id), token, baseUrl });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- reviews ---\n const reviewsCmd = program.command(\"reviews\").description(\"reviews resource\");\n reviewsCmd.command(\"list\").description(\"List reviews\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--date <value>\", \"Filter by date\")\n .option(\"--type <value>\", \"Filter by type\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.date != null) query.date = opts.date;\n if (opts.type != null) query.type = opts.type;\n const res = await apiRequest({ method: \"GET\", path: \"reviews\", token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n reviewsCmd.command(\"get <id>\").description(\"Get one reviews by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n reviewsCmd.command(\"create\").description(\"Create reviews\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--date <value>\", \"date\")\n .option(\"--type <value>\", \"type\")\n .option(\"--description <value>\", \"description\")\n .option(\"--wake-time <value>\", \"wakeTime\")\n .option(\"--sleep-time <value>\", \"sleepTime\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.type != null) bodyFromFlags.type = opts.type;\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.wakeTime != null) bodyFromFlags.wakeTime = opts.wakeTime;\n if (opts.sleepTime != null) bodyFromFlags.sleepTime = opts.sleepTime;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"reviews\", token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n reviewsCmd.command(\"update <id>\").description(\"Update reviews\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--description <value>\", \"description\")\n .option(\"--wake-time <value>\", \"wakeTime\")\n .option(\"--sleep-time <value>\", \"sleepTime\")\n .option(\"--steps <value>\", \"steps\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"reviews\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.wakeTime != null) bodyFromFlags.wakeTime = opts.wakeTime;\n if (opts.sleepTime != null) bodyFromFlags.sleepTime = opts.sleepTime;\n if (opts.steps != null) bodyFromFlags.steps = opts.steps;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl, body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (id, ok, status, data, err) => ok ? { _id: id, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.description != null) bodyFromFlags.description = opts.description;\n if (opts.wakeTime != null) bodyFromFlags.wakeTime = opts.wakeTime;\n if (opts.sleepTime != null) bodyFromFlags.sleepTime = opts.sleepTime;\n if (opts.steps != null) bodyFromFlags.steps = opts.steps;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n reviewsCmd.command(\"delete <id>\").description(\"Delete reviews\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = parseIds(opts.ids);\n if (ids.length > 0) {\n validateBulkIds(ids, \"reviews\");\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (id) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (id, ok, status, _d, err) => ok ? { _id: id, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"reviews/\" + encodeURIComponent(id), token, baseUrl });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- daily-notes ---\n const dailynotesCmd = program.command(\"daily-notes\").description(\"daily_notes resource\");\n dailynotesCmd.command(\"list\").description(\"List daily-notes\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--dates <value>\", \"Filter by dates\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.dates != null) query.dates = opts.dates;\n const res = await apiRequest({ method: \"GET\", path: \"daily_notes\", token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printOutput(getOutputFormat(), data, false);\n });\n dailynotesCmd.command(\"get <date>\").description(\"Get one daily-notes by date\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (date, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl, query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n dailynotesCmd.command(\"create\").description(\"Create daily-notes\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--date <value>\", \"date\")\n .option(\"--content <value>\", \"content\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.date != null) bodyFromFlags.date = opts.date;\n if (opts.content != null) bodyFromFlags.content = opts.content;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) { /* TODO: find existing then return or create */ }\n const res = await apiRequest({ method: \"POST\", path: \"daily_notes\", token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n dailynotesCmd.command(\"update <date>\").description(\"Update daily-notes\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--dates <dates>\", \"Comma-separated dates for bulk update (max 25)\")\n .option(\"--content <value>\", \"content\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (date, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const dates = parseDates(opts.dates);\n if (dates.length > 0) {\n validateBulkIds(dates, \"daily-notes\");\n const { data, summary } = await runBulk({\n items: dates,\n runOne: async (date) => {\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.content != null) bodyFromFlags.content = opts.content;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl, body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (date, ok, status, data, err) => ok ? { _id: date, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const bodyFromFlags: Record<string, unknown> = {};\n if (opts.content != null) bodyFromFlags.content = opts.content;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl, body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n dailynotesCmd.command(\"delete <date>\").description(\"Delete daily-notes\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--dates <dates>\", \"Comma-separated dates for bulk delete (max 25)\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (date, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const dates = parseDates(opts.dates);\n if (dates.length > 0) {\n validateBulkIds(dates, \"daily-notes\");\n const { data, summary } = await runBulk({\n items: dates,\n runOne: async (date) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (date, ok, status, _d, err) => ok ? { _id: date, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"daily_notes/\" + encodeURIComponent(date), token, baseUrl });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n}"],"mappings":"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","names":["r","data","id","bodyFromFlags","body","res","date"]}