@usemonoid/cli 0.2.7 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-program.js +1 -1
- package/dist/{chunk-5QRZVNM4.js → chunk-TOCX5G44.js} +2 -2
- package/dist/{generated-HPFU2SZR.js → generated-ZPJQJNLX.js} +9 -3
- package/dist/generated-ZPJQJNLX.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/generated-HPFU2SZR.js.map +0 -1
- /package/dist/{chunk-5QRZVNM4.js.map → chunk-TOCX5G44.js.map} +0 -0
package/dist/build-program.js
CHANGED
|
@@ -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-
|
|
1084
|
+
const mod = await import("./generated-ZPJQJNLX.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-
|
|
1223
|
+
//# sourceMappingURL=chunk-TOCX5G44.js.map
|
|
@@ -764,7 +764,7 @@ function register(program, helpers) {
|
|
|
764
764
|
const data = res.data?.data ?? res.data;
|
|
765
765
|
printOutput(getOutputFormat(), data ?? {}, false);
|
|
766
766
|
});
|
|
767
|
-
tasksCmd.command("create").description("Create tasks").option("--body <json>", "Request body JSON (merged with flags)").option("--title <value>", "title").option("--notes <value>", "notes").option("--done-at <value>", "doneAt").option("--project-id <value>", "projectId").option("--category-id <value>", "categoryId").option("--bucket <value>", "bucket").option("--routine-block-id <value>", "routineBlockId").option("--assignee-id <value>", "assigneeId").option("--is-starred <value>", "isStarred").option("--do-date <value>", "doDate").option("--do-end-date <value>", "doEndDate").option("--due-date <value>", "dueDate").option("--scheduled-at <value>", "scheduledAt").option("--if-not-exists", "Return existing if match found").hook("preAction", (thisCommand) => {
|
|
767
|
+
tasksCmd.command("create").description("Create tasks").option("--body <json>", "Request body JSON (merged with flags)").option("--title <value>", "title").option("--notes <value>", "notes").option("--done-at <value>", "doneAt").option("--project-id <value>", "projectId").option("--category-id <value>", "categoryId").option("--bucket <value>", "bucket").option("--inbox-triage <value>", "inboxTriage").option("--routine-block-id <value>", "routineBlockId").option("--assignee-id <value>", "assigneeId").option("--is-starred <value>", "isStarred").option("--do-date <value>", "doDate").option("--do-end-date <value>", "doEndDate").option("--due-date <value>", "dueDate").option("--scheduled-at <value>", "scheduledAt").option("--if-not-exists", "Return existing if match found").hook("preAction", (thisCommand) => {
|
|
768
768
|
syncRootOptsFromCommand(thisCommand);
|
|
769
769
|
}).action(async (opts) => {
|
|
770
770
|
const token = requireToken();
|
|
@@ -782,6 +782,8 @@ function register(program, helpers) {
|
|
|
782
782
|
if (parsedCategoryId !== void 0) bodyFromFlags.categoryId = parsedCategoryId;
|
|
783
783
|
const parsedBucket = coerceBodyFlag(opts.bucket, { field: "bucket", flag: "--bucket", kind: "string" }, exitWithError);
|
|
784
784
|
if (parsedBucket !== void 0) bodyFromFlags.bucket = parsedBucket;
|
|
785
|
+
const parsedInboxTriage = coerceBodyFlag(opts.inboxTriage, { field: "inboxTriage", flag: "--inbox-triage", kind: "string" }, exitWithError);
|
|
786
|
+
if (parsedInboxTriage !== void 0) bodyFromFlags.inboxTriage = parsedInboxTriage;
|
|
785
787
|
const parsedRoutineBlockId = coerceBodyFlag(opts.routineBlockId, { field: "routineBlockId", flag: "--routine-block-id", kind: "string" }, exitWithError);
|
|
786
788
|
if (parsedRoutineBlockId !== void 0) bodyFromFlags.routineBlockId = parsedRoutineBlockId;
|
|
787
789
|
const parsedAssigneeId = coerceBodyFlag(opts.assigneeId, { field: "assigneeId", flag: "--assignee-id", kind: "string" }, exitWithError);
|
|
@@ -804,7 +806,7 @@ function register(program, helpers) {
|
|
|
804
806
|
const data = res.data?.data ?? res.data;
|
|
805
807
|
printOutput(getOutputFormat(), data ?? {}, false);
|
|
806
808
|
});
|
|
807
|
-
tasksCmd.command("update <id>").description("Update tasks").option("--body <json>", "Request body JSON (merged with flags)").option("--ids <ids>", "Comma-separated IDs for bulk update (max 25)").option("--title <value>", "title").option("--notes <value>", "notes").option("--done-at <value>", "doneAt").option("--project-id <value>", "projectId").option("--category-id <value>", "categoryId").option("--container-id <value>", "containerId").option("--bucket <value>", "bucket").option("--routine-block-id <value>", "routineBlockId").option("--assignee-id <value>", "assigneeId").option("--is-starred <value>", "isStarred").option("--do-date <value>", "doDate").option("--do-end-date <value>", "doEndDate").option("--due-date <value>", "dueDate").option("--scheduled-at <value>", "scheduledAt").hook("preAction", (thisCommand) => {
|
|
809
|
+
tasksCmd.command("update <id>").description("Update tasks").option("--body <json>", "Request body JSON (merged with flags)").option("--ids <ids>", "Comma-separated IDs for bulk update (max 25)").option("--title <value>", "title").option("--notes <value>", "notes").option("--done-at <value>", "doneAt").option("--project-id <value>", "projectId").option("--category-id <value>", "categoryId").option("--container-id <value>", "containerId").option("--bucket <value>", "bucket").option("--inbox-triage <value>", "inboxTriage").option("--routine-block-id <value>", "routineBlockId").option("--assignee-id <value>", "assigneeId").option("--is-starred <value>", "isStarred").option("--do-date <value>", "doDate").option("--do-end-date <value>", "doEndDate").option("--due-date <value>", "dueDate").option("--scheduled-at <value>", "scheduledAt").hook("preAction", (thisCommand) => {
|
|
808
810
|
syncRootOptsFromCommand(thisCommand);
|
|
809
811
|
}).action(async (id, opts) => {
|
|
810
812
|
const token = requireToken();
|
|
@@ -830,6 +832,8 @@ function register(program, helpers) {
|
|
|
830
832
|
if (parsedContainerId2 !== void 0) bodyFromFlags2.containerId = parsedContainerId2;
|
|
831
833
|
const parsedBucket2 = coerceBodyFlag(opts.bucket, { field: "bucket", flag: "--bucket", kind: "string" }, exitWithError);
|
|
832
834
|
if (parsedBucket2 !== void 0) bodyFromFlags2.bucket = parsedBucket2;
|
|
835
|
+
const parsedInboxTriage2 = coerceBodyFlag(opts.inboxTriage, { field: "inboxTriage", flag: "--inbox-triage", kind: "string", allowNull: true }, exitWithError);
|
|
836
|
+
if (parsedInboxTriage2 !== void 0) bodyFromFlags2.inboxTriage = parsedInboxTriage2;
|
|
833
837
|
const parsedRoutineBlockId2 = coerceBodyFlag(opts.routineBlockId, { field: "routineBlockId", flag: "--routine-block-id", kind: "string" }, exitWithError);
|
|
834
838
|
if (parsedRoutineBlockId2 !== void 0) bodyFromFlags2.routineBlockId = parsedRoutineBlockId2;
|
|
835
839
|
const parsedAssigneeId2 = coerceBodyFlag(opts.assigneeId, { field: "assigneeId", flag: "--assignee-id", kind: "string" }, exitWithError);
|
|
@@ -868,6 +872,8 @@ function register(program, helpers) {
|
|
|
868
872
|
if (parsedContainerId !== void 0) bodyFromFlags.containerId = parsedContainerId;
|
|
869
873
|
const parsedBucket = coerceBodyFlag(opts.bucket, { field: "bucket", flag: "--bucket", kind: "string" }, exitWithError);
|
|
870
874
|
if (parsedBucket !== void 0) bodyFromFlags.bucket = parsedBucket;
|
|
875
|
+
const parsedInboxTriage = coerceBodyFlag(opts.inboxTriage, { field: "inboxTriage", flag: "--inbox-triage", kind: "string", allowNull: true }, exitWithError);
|
|
876
|
+
if (parsedInboxTriage !== void 0) bodyFromFlags.inboxTriage = parsedInboxTriage;
|
|
871
877
|
const parsedRoutineBlockId = coerceBodyFlag(opts.routineBlockId, { field: "routineBlockId", flag: "--routine-block-id", kind: "string" }, exitWithError);
|
|
872
878
|
if (parsedRoutineBlockId !== void 0) bodyFromFlags.routineBlockId = parsedRoutineBlockId;
|
|
873
879
|
const parsedAssigneeId = coerceBodyFlag(opts.assigneeId, { field: "assigneeId", flag: "--assignee-id", kind: "string" }, exitWithError);
|
|
@@ -1318,4 +1324,4 @@ function register(program, helpers) {
|
|
|
1318
1324
|
export {
|
|
1319
1325
|
register
|
|
1320
1326
|
};
|
|
1321
|
-
//# sourceMappingURL=generated-
|
|
1327
|
+
//# sourceMappingURL=generated-ZPJQJNLX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/merge-body.ts","../src/lib/flag-coercion.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","type ExitWithError = (status: number, message: string) => never;\n\ntype PrimitiveKind = \"string\" | \"number\" | \"boolean\";\n\ninterface CoerceConfig {\n field: string;\n flag: string;\n kind: PrimitiveKind;\n allowNull?: boolean;\n allowDateTime?: boolean;\n}\n\nfunction fail(exitWithError: ExitWithError, message: string): never {\n return exitWithError(400, message);\n}\n\nfunction parseBoolean(\n raw: string,\n config: CoerceConfig,\n exitWithError: ExitWithError,\n): boolean {\n const value = raw.trim().toLowerCase();\n if ([\"true\", \"1\", \"yes\", \"y\", \"on\"].includes(value)) return true;\n if ([\"false\", \"0\", \"no\", \"n\", \"off\"].includes(value)) return false;\n return fail(\n exitWithError,\n `Invalid value for ${config.flag} (${config.field}): expected boolean but got \"${raw}\"`,\n );\n}\n\nfunction parseNumber(\n raw: string,\n config: CoerceConfig,\n exitWithError: ExitWithError,\n): number {\n const trimmed = raw.trim();\n const asNumber = Number(trimmed);\n if (Number.isFinite(asNumber)) return asNumber;\n\n if (config.allowDateTime) {\n const asDate = Date.parse(trimmed);\n if (Number.isFinite(asDate)) return asDate;\n }\n\n return fail(\n exitWithError,\n `Invalid value for ${config.flag} (${config.field}): expected number${config.allowDateTime ? \" or ISO datetime\" : \"\"} but got \"${raw}\"`,\n );\n}\n\nexport function coerceBodyFlag(\n raw: unknown,\n config: CoerceConfig,\n exitWithError: ExitWithError,\n): unknown {\n if (raw == null) return undefined;\n const value = String(raw);\n const trimmed = value.trim();\n\n if (config.allowNull && trimmed.toLowerCase() === \"null\") {\n return null;\n }\n\n if (config.kind === \"string\") return value;\n if (config.kind === \"boolean\") return parseBoolean(value, config, exitWithError);\n return parseNumber(value, config, exitWithError);\n}\n\nexport function coerceQueryFlag(\n raw: unknown,\n config: CoerceConfig,\n exitWithError: ExitWithError,\n): string | number {\n if (raw == null) {\n return fail(\n exitWithError,\n `Missing value for ${config.flag} (${config.field})`,\n );\n }\n\n const value = String(raw);\n if (config.kind === \"string\") return value;\n if (config.kind === \"boolean\") {\n return parseBoolean(value, config, exitWithError) ? \"true\" : \"false\";\n }\n return parseNumber(value, config, exitWithError);\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 { coerceBodyFlag, coerceQueryFlag } from \"../../lib/flag-coercion.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) {\n query.includeMembers = coerceQueryFlag(opts.includeMembers, { field: \"includeMembers\", flag: \"--include-members\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includePlan != null) {\n query.includePlan = coerceQueryFlag(opts.includePlan, { field: \"includePlan\", flag: \"--include-plan\", kind: \"boolean\" }, exitWithError);\n }\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 const parsedId = coerceBodyFlag(opts.id, { field: \"id\", flag: \"--id\", kind: \"string\" }, exitWithError);\n if (parsedId !== undefined) bodyFromFlags.id = parsedId;\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\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) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.name != null) {\n query.name = coerceQueryFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n }\n if (opts.memberId != null) {\n query.memberId = coerceQueryFlag(opts.memberId, { field: \"memberId\", flag: \"--member-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.teamId != null) {\n query.teamId = coerceQueryFlag(opts.teamId, { field: \"teamId\", flag: \"--team-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.hasMembers != null) {\n query.hasMembers = coerceQueryFlag(opts.hasMembers, { field: \"hasMembers\", flag: \"--has-members\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.hasTeams != null) {\n query.hasTeams = coerceQueryFlag(opts.hasTeams, { field: \"hasTeams\", flag: \"--has-teams\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.hasExternalLink != null) {\n query.hasExternalLink = coerceQueryFlag(opts.hasExternalLink, { field: \"hasExternalLink\", flag: \"--has-external-link\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.externalLinkProvider != null) {\n query.externalLinkProvider = coerceQueryFlag(opts.externalLinkProvider, { field: \"externalLinkProvider\", flag: \"--external-link-provider\", kind: \"string\" }, exitWithError);\n }\n if (opts.createdAtEq != null) {\n query.createdAtEq = coerceQueryFlag(opts.createdAtEq, { field: \"createdAtEq\", flag: \"--created-at-eq\", kind: \"number\" }, exitWithError);\n }\n if (opts.createdAtGte != null) {\n query.createdAtGte = coerceQueryFlag(opts.createdAtGte, { field: \"createdAtGte\", flag: \"--created-at-gte\", kind: \"number\" }, exitWithError);\n }\n if (opts.createdAtLte != null) {\n query.createdAtLte = coerceQueryFlag(opts.createdAtLte, { field: \"createdAtLte\", flag: \"--created-at-lte\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtEq != null) {\n query.updatedAtEq = coerceQueryFlag(opts.updatedAtEq, { field: \"updatedAtEq\", flag: \"--updated-at-eq\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtGte != null) {\n query.updatedAtGte = coerceQueryFlag(opts.updatedAtGte, { field: \"updatedAtGte\", flag: \"--updated-at-gte\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtLte != null) {\n query.updatedAtLte = coerceQueryFlag(opts.updatedAtLte, { field: \"updatedAtLte\", flag: \"--updated-at-lte\", kind: \"number\" }, exitWithError);\n }\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) {\n query.includeLinks = coerceQueryFlag(opts.includeLinks, { field: \"includeLinks\", flag: \"--include-links\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.linkedProvider != null) {\n query.linkedProvider = coerceQueryFlag(opts.linkedProvider, { field: \"linkedProvider\", flag: \"--linked-provider\", kind: \"string\" }, exitWithError);\n }\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\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) {\n query.status = coerceQueryFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n }\n if (opts.containerId != null) {\n query.containerId = coerceQueryFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.organisationId != null) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.categoryId != null) {\n query.categoryId = coerceQueryFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.labelId != null) {\n query.labelId = coerceQueryFlag(opts.labelId, { field: \"labelId\", flag: \"--label-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.hasExternalLink != null) {\n query.hasExternalLink = coerceQueryFlag(opts.hasExternalLink, { field: \"hasExternalLink\", flag: \"--has-external-link\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.externalLinkProvider != null) {\n query.externalLinkProvider = coerceQueryFlag(opts.externalLinkProvider, { field: \"externalLinkProvider\", flag: \"--external-link-provider\", kind: \"string\" }, exitWithError);\n }\n if (opts.createdAtEq != null) {\n query.createdAtEq = coerceQueryFlag(opts.createdAtEq, { field: \"createdAtEq\", flag: \"--created-at-eq\", kind: \"number\" }, exitWithError);\n }\n if (opts.createdAtGte != null) {\n query.createdAtGte = coerceQueryFlag(opts.createdAtGte, { field: \"createdAtGte\", flag: \"--created-at-gte\", kind: \"number\" }, exitWithError);\n }\n if (opts.createdAtLte != null) {\n query.createdAtLte = coerceQueryFlag(opts.createdAtLte, { field: \"createdAtLte\", flag: \"--created-at-lte\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtEq != null) {\n query.updatedAtEq = coerceQueryFlag(opts.updatedAtEq, { field: \"updatedAtEq\", flag: \"--updated-at-eq\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtGte != null) {\n query.updatedAtGte = coerceQueryFlag(opts.updatedAtGte, { field: \"updatedAtGte\", flag: \"--updated-at-gte\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtLte != null) {\n query.updatedAtLte = coerceQueryFlag(opts.updatedAtLte, { field: \"updatedAtLte\", flag: \"--updated-at-lte\", kind: \"number\" }, exitWithError);\n }\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) {\n query.includeCategory = coerceQueryFlag(opts.includeCategory, { field: \"includeCategory\", flag: \"--include-category\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includeLabels != null) {\n query.includeLabels = coerceQueryFlag(opts.includeLabels, { field: \"includeLabels\", flag: \"--include-labels\", kind: \"boolean\" }, exitWithError);\n }\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\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) {\n query.entityType = coerceQueryFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n }\n if (opts.organisationId != null) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\n const parsedEntityType = coerceBodyFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n if (parsedEntityType !== undefined) bodyFromFlags.entityType = parsedEntityType;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\n const parsedEntityType = coerceBodyFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n if (parsedEntityType !== undefined) bodyFromFlags.entityType = parsedEntityType;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\n const parsedEntityType = coerceBodyFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n if (parsedEntityType !== undefined) bodyFromFlags.entityType = parsedEntityType;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\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) {\n query.bucket = coerceQueryFlag(opts.bucket, { field: \"bucket\", flag: \"--bucket\", kind: \"string\" }, exitWithError);\n }\n if (opts.inboxTriage != null) {\n query.inboxTriage = coerceQueryFlag(opts.inboxTriage, { field: \"inboxTriage\", flag: \"--inbox-triage\", kind: \"string\" }, exitWithError);\n }\n if (opts.projectId != null) {\n query.projectId = coerceQueryFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.categoryId != null) {\n query.categoryId = coerceQueryFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.containerId != null) {\n query.containerId = coerceQueryFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.organisationId != null) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.assigneeId != null) {\n query.assigneeId = coerceQueryFlag(opts.assigneeId, { field: \"assigneeId\", flag: \"--assignee-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.routineBlockId != null) {\n query.routineBlockId = coerceQueryFlag(opts.routineBlockId, { field: \"routineBlockId\", flag: \"--routine-block-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.doDateEq != null) {\n query.doDateEq = coerceQueryFlag(opts.doDateEq, { field: \"doDateEq\", flag: \"--do-date-eq\", kind: \"string\" }, exitWithError);\n }\n if (opts.doDateGte != null) {\n query.doDateGte = coerceQueryFlag(opts.doDateGte, { field: \"doDateGte\", flag: \"--do-date-gte\", kind: \"string\" }, exitWithError);\n }\n if (opts.doDateLte != null) {\n query.doDateLte = coerceQueryFlag(opts.doDateLte, { field: \"doDateLte\", flag: \"--do-date-lte\", kind: \"string\" }, exitWithError);\n }\n if (opts.dueDateEq != null) {\n query.dueDateEq = coerceQueryFlag(opts.dueDateEq, { field: \"dueDateEq\", flag: \"--due-date-eq\", kind: \"string\" }, exitWithError);\n }\n if (opts.dueDateGte != null) {\n query.dueDateGte = coerceQueryFlag(opts.dueDateGte, { field: \"dueDateGte\", flag: \"--due-date-gte\", kind: \"string\" }, exitWithError);\n }\n if (opts.dueDateLte != null) {\n query.dueDateLte = coerceQueryFlag(opts.dueDateLte, { field: \"dueDateLte\", flag: \"--due-date-lte\", kind: \"string\" }, exitWithError);\n }\n if (opts.doEndDateEq != null) {\n query.doEndDateEq = coerceQueryFlag(opts.doEndDateEq, { field: \"doEndDateEq\", flag: \"--do-end-date-eq\", kind: \"string\" }, exitWithError);\n }\n if (opts.doEndDateGte != null) {\n query.doEndDateGte = coerceQueryFlag(opts.doEndDateGte, { field: \"doEndDateGte\", flag: \"--do-end-date-gte\", kind: \"string\" }, exitWithError);\n }\n if (opts.doEndDateLte != null) {\n query.doEndDateLte = coerceQueryFlag(opts.doEndDateLte, { field: \"doEndDateLte\", flag: \"--do-end-date-lte\", kind: \"string\" }, exitWithError);\n }\n if (opts.scheduledAtEq != null) {\n query.scheduledAtEq = coerceQueryFlag(opts.scheduledAtEq, { field: \"scheduledAtEq\", flag: \"--scheduled-at-eq\", kind: \"number\", allowDateTime: true }, exitWithError);\n }\n if (opts.scheduledAtGte != null) {\n query.scheduledAtGte = coerceQueryFlag(opts.scheduledAtGte, { field: \"scheduledAtGte\", flag: \"--scheduled-at-gte\", kind: \"number\", allowDateTime: true }, exitWithError);\n }\n if (opts.scheduledAtLte != null) {\n query.scheduledAtLte = coerceQueryFlag(opts.scheduledAtLte, { field: \"scheduledAtLte\", flag: \"--scheduled-at-lte\", kind: \"number\", allowDateTime: true }, exitWithError);\n }\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) {\n query.includeLinks = coerceQueryFlag(opts.includeLinks, { field: \"includeLinks\", flag: \"--include-links\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.linkedProvider != null) {\n query.linkedProvider = coerceQueryFlag(opts.linkedProvider, { field: \"linkedProvider\", flag: \"--linked-provider\", kind: \"string\" }, exitWithError);\n }\n if (opts.includeCategory != null) {\n query.includeCategory = coerceQueryFlag(opts.includeCategory, { field: \"includeCategory\", flag: \"--include-category\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includeLabels != null) {\n query.includeLabels = coerceQueryFlag(opts.includeLabels, { field: \"includeLabels\", flag: \"--include-labels\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includeRelatedTasks != null) {\n query.includeRelatedTasks = coerceQueryFlag(opts.includeRelatedTasks, { field: \"includeRelatedTasks\", flag: \"--include-related-tasks\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includeNotes != null) {\n query.includeNotes = coerceQueryFlag(opts.includeNotes, { field: \"includeNotes\", flag: \"--include-notes\", kind: \"boolean\" }, exitWithError);\n }\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(\"--inbox-triage <value>\", \"inboxTriage\")\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedNotes = coerceBodyFlag(opts.notes, { field: \"notes\", flag: \"--notes\", kind: \"string\" }, exitWithError);\n if (parsedNotes !== undefined) bodyFromFlags.notes = parsedNotes;\n const parsedDoneAt = coerceBodyFlag(opts.doneAt, { field: \"doneAt\", flag: \"--done-at\", kind: \"number\" }, exitWithError);\n if (parsedDoneAt !== undefined) bodyFromFlags.doneAt = parsedDoneAt;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedBucket = coerceBodyFlag(opts.bucket, { field: \"bucket\", flag: \"--bucket\", kind: \"string\" }, exitWithError);\n if (parsedBucket !== undefined) bodyFromFlags.bucket = parsedBucket;\n const parsedInboxTriage = coerceBodyFlag(opts.inboxTriage, { field: \"inboxTriage\", flag: \"--inbox-triage\", kind: \"string\" }, exitWithError);\n if (parsedInboxTriage !== undefined) bodyFromFlags.inboxTriage = parsedInboxTriage;\n const parsedRoutineBlockId = coerceBodyFlag(opts.routineBlockId, { field: \"routineBlockId\", flag: \"--routine-block-id\", kind: \"string\" }, exitWithError);\n if (parsedRoutineBlockId !== undefined) bodyFromFlags.routineBlockId = parsedRoutineBlockId;\n const parsedAssigneeId = coerceBodyFlag(opts.assigneeId, { field: \"assigneeId\", flag: \"--assignee-id\", kind: \"string\" }, exitWithError);\n if (parsedAssigneeId !== undefined) bodyFromFlags.assigneeId = parsedAssigneeId;\n const parsedIsStarred = coerceBodyFlag(opts.isStarred, { field: \"isStarred\", flag: \"--is-starred\", kind: \"boolean\" }, exitWithError);\n if (parsedIsStarred !== undefined) bodyFromFlags.isStarred = parsedIsStarred;\n const parsedDoDate = coerceBodyFlag(opts.doDate, { field: \"doDate\", flag: \"--do-date\", kind: \"string\" }, exitWithError);\n if (parsedDoDate !== undefined) bodyFromFlags.doDate = parsedDoDate;\n const parsedDoEndDate = coerceBodyFlag(opts.doEndDate, { field: \"doEndDate\", flag: \"--do-end-date\", kind: \"string\" }, exitWithError);\n if (parsedDoEndDate !== undefined) bodyFromFlags.doEndDate = parsedDoEndDate;\n const parsedDueDate = coerceBodyFlag(opts.dueDate, { field: \"dueDate\", flag: \"--due-date\", kind: \"string\" }, exitWithError);\n if (parsedDueDate !== undefined) bodyFromFlags.dueDate = parsedDueDate;\n const parsedScheduledAt = coerceBodyFlag(opts.scheduledAt, { field: \"scheduledAt\", flag: \"--scheduled-at\", kind: \"number\", allowDateTime: true }, exitWithError);\n if (parsedScheduledAt !== undefined) bodyFromFlags.scheduledAt = parsedScheduledAt;\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(\"--inbox-triage <value>\", \"inboxTriage\")\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedNotes = coerceBodyFlag(opts.notes, { field: \"notes\", flag: \"--notes\", kind: \"string\" }, exitWithError);\n if (parsedNotes !== undefined) bodyFromFlags.notes = parsedNotes;\n const parsedDoneAt = coerceBodyFlag(opts.doneAt, { field: \"doneAt\", flag: \"--done-at\", kind: \"number\" }, exitWithError);\n if (parsedDoneAt !== undefined) bodyFromFlags.doneAt = parsedDoneAt;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\n const parsedBucket = coerceBodyFlag(opts.bucket, { field: \"bucket\", flag: \"--bucket\", kind: \"string\" }, exitWithError);\n if (parsedBucket !== undefined) bodyFromFlags.bucket = parsedBucket;\n const parsedInboxTriage = coerceBodyFlag(opts.inboxTriage, { field: \"inboxTriage\", flag: \"--inbox-triage\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedInboxTriage !== undefined) bodyFromFlags.inboxTriage = parsedInboxTriage;\n const parsedRoutineBlockId = coerceBodyFlag(opts.routineBlockId, { field: \"routineBlockId\", flag: \"--routine-block-id\", kind: \"string\" }, exitWithError);\n if (parsedRoutineBlockId !== undefined) bodyFromFlags.routineBlockId = parsedRoutineBlockId;\n const parsedAssigneeId = coerceBodyFlag(opts.assigneeId, { field: \"assigneeId\", flag: \"--assignee-id\", kind: \"string\" }, exitWithError);\n if (parsedAssigneeId !== undefined) bodyFromFlags.assigneeId = parsedAssigneeId;\n const parsedIsStarred = coerceBodyFlag(opts.isStarred, { field: \"isStarred\", flag: \"--is-starred\", kind: \"boolean\" }, exitWithError);\n if (parsedIsStarred !== undefined) bodyFromFlags.isStarred = parsedIsStarred;\n const parsedDoDate = coerceBodyFlag(opts.doDate, { field: \"doDate\", flag: \"--do-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDoDate !== undefined) bodyFromFlags.doDate = parsedDoDate;\n const parsedDoEndDate = coerceBodyFlag(opts.doEndDate, { field: \"doEndDate\", flag: \"--do-end-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDoEndDate !== undefined) bodyFromFlags.doEndDate = parsedDoEndDate;\n const parsedDueDate = coerceBodyFlag(opts.dueDate, { field: \"dueDate\", flag: \"--due-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDueDate !== undefined) bodyFromFlags.dueDate = parsedDueDate;\n const parsedScheduledAt = coerceBodyFlag(opts.scheduledAt, { field: \"scheduledAt\", flag: \"--scheduled-at\", kind: \"number\", allowNull: true, allowDateTime: true }, exitWithError);\n if (parsedScheduledAt !== undefined) bodyFromFlags.scheduledAt = parsedScheduledAt;\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedNotes = coerceBodyFlag(opts.notes, { field: \"notes\", flag: \"--notes\", kind: \"string\" }, exitWithError);\n if (parsedNotes !== undefined) bodyFromFlags.notes = parsedNotes;\n const parsedDoneAt = coerceBodyFlag(opts.doneAt, { field: \"doneAt\", flag: \"--done-at\", kind: \"number\" }, exitWithError);\n if (parsedDoneAt !== undefined) bodyFromFlags.doneAt = parsedDoneAt;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\n const parsedBucket = coerceBodyFlag(opts.bucket, { field: \"bucket\", flag: \"--bucket\", kind: \"string\" }, exitWithError);\n if (parsedBucket !== undefined) bodyFromFlags.bucket = parsedBucket;\n const parsedInboxTriage = coerceBodyFlag(opts.inboxTriage, { field: \"inboxTriage\", flag: \"--inbox-triage\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedInboxTriage !== undefined) bodyFromFlags.inboxTriage = parsedInboxTriage;\n const parsedRoutineBlockId = coerceBodyFlag(opts.routineBlockId, { field: \"routineBlockId\", flag: \"--routine-block-id\", kind: \"string\" }, exitWithError);\n if (parsedRoutineBlockId !== undefined) bodyFromFlags.routineBlockId = parsedRoutineBlockId;\n const parsedAssigneeId = coerceBodyFlag(opts.assigneeId, { field: \"assigneeId\", flag: \"--assignee-id\", kind: \"string\" }, exitWithError);\n if (parsedAssigneeId !== undefined) bodyFromFlags.assigneeId = parsedAssigneeId;\n const parsedIsStarred = coerceBodyFlag(opts.isStarred, { field: \"isStarred\", flag: \"--is-starred\", kind: \"boolean\" }, exitWithError);\n if (parsedIsStarred !== undefined) bodyFromFlags.isStarred = parsedIsStarred;\n const parsedDoDate = coerceBodyFlag(opts.doDate, { field: \"doDate\", flag: \"--do-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDoDate !== undefined) bodyFromFlags.doDate = parsedDoDate;\n const parsedDoEndDate = coerceBodyFlag(opts.doEndDate, { field: \"doEndDate\", flag: \"--do-end-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDoEndDate !== undefined) bodyFromFlags.doEndDate = parsedDoEndDate;\n const parsedDueDate = coerceBodyFlag(opts.dueDate, { field: \"dueDate\", flag: \"--due-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDueDate !== undefined) bodyFromFlags.dueDate = parsedDueDate;\n const parsedScheduledAt = coerceBodyFlag(opts.scheduledAt, { field: \"scheduledAt\", flag: \"--scheduled-at\", kind: \"number\", allowNull: true, allowDateTime: true }, exitWithError);\n if (parsedScheduledAt !== undefined) bodyFromFlags.scheduledAt = parsedScheduledAt;\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) {\n query.date = coerceQueryFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n }\n if (opts.templateId != null) {\n query.templateId = coerceQueryFlag(opts.templateId, { field: \"templateId\", flag: \"--template-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.categoryId != null) {\n query.categoryId = coerceQueryFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.containerId != null) {\n query.containerId = coerceQueryFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.projectId != null) {\n query.projectId = coerceQueryFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.organisationId != null) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.sharedWithUserId != null) {\n query.sharedWithUserId = coerceQueryFlag(opts.sharedWithUserId, { field: \"sharedWithUserId\", flag: \"--shared-with-user-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.isTemplate != null) {\n query.isTemplate = coerceQueryFlag(opts.isTemplate, { field: \"isTemplate\", flag: \"--is-template\", kind: \"boolean\" }, exitWithError);\n }\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedStartTime = coerceBodyFlag(opts.startTime, { field: \"startTime\", flag: \"--start-time\", kind: \"string\" }, exitWithError);\n if (parsedStartTime !== undefined) bodyFromFlags.startTime = parsedStartTime;\n const parsedEndTime = coerceBodyFlag(opts.endTime, { field: \"endTime\", flag: \"--end-time\", kind: \"string\" }, exitWithError);\n if (parsedEndTime !== undefined) bodyFromFlags.endTime = parsedEndTime;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\n const parsedTemplateId = coerceBodyFlag(opts.templateId, { field: \"templateId\", flag: \"--template-id\", kind: \"string\" }, exitWithError);\n if (parsedTemplateId !== undefined) bodyFromFlags.templateId = parsedTemplateId;\n const parsedDayOfWeek = coerceBodyFlag(opts.dayOfWeek, { field: \"dayOfWeek\", flag: \"--day-of-week\", kind: \"number\" }, exitWithError);\n if (parsedDayOfWeek !== undefined) bodyFromFlags.dayOfWeek = parsedDayOfWeek;\n const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\n const parsedBlockType = coerceBodyFlag(opts.blockType, { field: \"blockType\", flag: \"--block-type\", kind: \"string\" }, exitWithError);\n if (parsedBlockType !== undefined) bodyFromFlags.blockType = parsedBlockType;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedStartTime = coerceBodyFlag(opts.startTime, { field: \"startTime\", flag: \"--start-time\", kind: \"string\" }, exitWithError);\n if (parsedStartTime !== undefined) bodyFromFlags.startTime = parsedStartTime;\n const parsedEndTime = coerceBodyFlag(opts.endTime, { field: \"endTime\", flag: \"--end-time\", kind: \"string\" }, exitWithError);\n if (parsedEndTime !== undefined) bodyFromFlags.endTime = parsedEndTime;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\n const parsedTemplateId = coerceBodyFlag(opts.templateId, { field: \"templateId\", flag: \"--template-id\", kind: \"string\" }, exitWithError);\n if (parsedTemplateId !== undefined) bodyFromFlags.templateId = parsedTemplateId;\n const parsedDayOfWeek = coerceBodyFlag(opts.dayOfWeek, { field: \"dayOfWeek\", flag: \"--day-of-week\", kind: \"number\" }, exitWithError);\n if (parsedDayOfWeek !== undefined) bodyFromFlags.dayOfWeek = parsedDayOfWeek;\n const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\n const parsedBlockType = coerceBodyFlag(opts.blockType, { field: \"blockType\", flag: \"--block-type\", kind: \"string\" }, exitWithError);\n if (parsedBlockType !== undefined) bodyFromFlags.blockType = parsedBlockType;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedStartTime = coerceBodyFlag(opts.startTime, { field: \"startTime\", flag: \"--start-time\", kind: \"string\" }, exitWithError);\n if (parsedStartTime !== undefined) bodyFromFlags.startTime = parsedStartTime;\n const parsedEndTime = coerceBodyFlag(opts.endTime, { field: \"endTime\", flag: \"--end-time\", kind: \"string\" }, exitWithError);\n if (parsedEndTime !== undefined) bodyFromFlags.endTime = parsedEndTime;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\n const parsedTemplateId = coerceBodyFlag(opts.templateId, { field: \"templateId\", flag: \"--template-id\", kind: \"string\" }, exitWithError);\n if (parsedTemplateId !== undefined) bodyFromFlags.templateId = parsedTemplateId;\n const parsedDayOfWeek = coerceBodyFlag(opts.dayOfWeek, { field: \"dayOfWeek\", flag: \"--day-of-week\", kind: \"number\" }, exitWithError);\n if (parsedDayOfWeek !== undefined) bodyFromFlags.dayOfWeek = parsedDayOfWeek;\n const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\n const parsedBlockType = coerceBodyFlag(opts.blockType, { field: \"blockType\", flag: \"--block-type\", kind: \"string\" }, exitWithError);\n if (parsedBlockType !== undefined) bodyFromFlags.blockType = parsedBlockType;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\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) {\n query.date = coerceQueryFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n }\n if (opts.type != null) {\n query.type = coerceQueryFlag(opts.type, { field: \"type\", flag: \"--type\", kind: \"string\" }, exitWithError);\n }\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 const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedType = coerceBodyFlag(opts.type, { field: \"type\", flag: \"--type\", kind: \"string\" }, exitWithError);\n if (parsedType !== undefined) bodyFromFlags.type = parsedType;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedWakeTime = coerceBodyFlag(opts.wakeTime, { field: \"wakeTime\", flag: \"--wake-time\", kind: \"string\" }, exitWithError);\n if (parsedWakeTime !== undefined) bodyFromFlags.wakeTime = parsedWakeTime;\n const parsedSleepTime = coerceBodyFlag(opts.sleepTime, { field: \"sleepTime\", flag: \"--sleep-time\", kind: \"string\" }, exitWithError);\n if (parsedSleepTime !== undefined) bodyFromFlags.sleepTime = parsedSleepTime;\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 const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedWakeTime = coerceBodyFlag(opts.wakeTime, { field: \"wakeTime\", flag: \"--wake-time\", kind: \"string\" }, exitWithError);\n if (parsedWakeTime !== undefined) bodyFromFlags.wakeTime = parsedWakeTime;\n const parsedSleepTime = coerceBodyFlag(opts.sleepTime, { field: \"sleepTime\", flag: \"--sleep-time\", kind: \"string\" }, exitWithError);\n if (parsedSleepTime !== undefined) bodyFromFlags.sleepTime = parsedSleepTime;\n const parsedSteps = coerceBodyFlag(opts.steps, { field: \"steps\", flag: \"--steps\", kind: \"string\" }, exitWithError);\n if (parsedSteps !== undefined) bodyFromFlags.steps = parsedSteps;\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 const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedWakeTime = coerceBodyFlag(opts.wakeTime, { field: \"wakeTime\", flag: \"--wake-time\", kind: \"string\" }, exitWithError);\n if (parsedWakeTime !== undefined) bodyFromFlags.wakeTime = parsedWakeTime;\n const parsedSleepTime = coerceBodyFlag(opts.sleepTime, { field: \"sleepTime\", flag: \"--sleep-time\", kind: \"string\" }, exitWithError);\n if (parsedSleepTime !== undefined) bodyFromFlags.sleepTime = parsedSleepTime;\n const parsedSteps = coerceBodyFlag(opts.steps, { field: \"steps\", flag: \"--steps\", kind: \"string\" }, exitWithError);\n if (parsedSteps !== undefined) bodyFromFlags.steps = parsedSteps;\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) {\n query.dates = coerceQueryFlag(opts.dates, { field: \"dates\", flag: \"--dates\", kind: \"string\" }, exitWithError);\n }\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 const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\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 const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\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 const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\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","parsedName","body","res","parsedDescription","parsedTitle","parsedStatus","parsedContainerId","parsedColor","parsedEntityType","parsedOrganisationId","parsedNotes","parsedDoneAt","parsedProjectId","parsedCategoryId","parsedBucket","parsedInboxTriage","parsedRoutineBlockId","parsedAssigneeId","parsedIsStarred","parsedDoDate","parsedDoEndDate","parsedDueDate","parsedScheduledAt","parsedStartTime","parsedEndTime","parsedTemplateId","parsedDayOfWeek","parsedDate","parsedContent","parsedBlockType","parsedWakeTime","parsedSleepTime","parsedSteps","date"]}
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/merge-body.ts","../src/lib/flag-coercion.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","type ExitWithError = (status: number, message: string) => never;\n\ntype PrimitiveKind = \"string\" | \"number\" | \"boolean\";\n\ninterface CoerceConfig {\n field: string;\n flag: string;\n kind: PrimitiveKind;\n allowNull?: boolean;\n allowDateTime?: boolean;\n}\n\nfunction fail(exitWithError: ExitWithError, message: string): never {\n return exitWithError(400, message);\n}\n\nfunction parseBoolean(\n raw: string,\n config: CoerceConfig,\n exitWithError: ExitWithError,\n): boolean {\n const value = raw.trim().toLowerCase();\n if ([\"true\", \"1\", \"yes\", \"y\", \"on\"].includes(value)) return true;\n if ([\"false\", \"0\", \"no\", \"n\", \"off\"].includes(value)) return false;\n return fail(\n exitWithError,\n `Invalid value for ${config.flag} (${config.field}): expected boolean but got \"${raw}\"`,\n );\n}\n\nfunction parseNumber(\n raw: string,\n config: CoerceConfig,\n exitWithError: ExitWithError,\n): number {\n const trimmed = raw.trim();\n const asNumber = Number(trimmed);\n if (Number.isFinite(asNumber)) return asNumber;\n\n if (config.allowDateTime) {\n const asDate = Date.parse(trimmed);\n if (Number.isFinite(asDate)) return asDate;\n }\n\n return fail(\n exitWithError,\n `Invalid value for ${config.flag} (${config.field}): expected number${config.allowDateTime ? \" or ISO datetime\" : \"\"} but got \"${raw}\"`,\n );\n}\n\nexport function coerceBodyFlag(\n raw: unknown,\n config: CoerceConfig,\n exitWithError: ExitWithError,\n): unknown {\n if (raw == null) return undefined;\n const value = String(raw);\n const trimmed = value.trim();\n\n if (config.allowNull && trimmed.toLowerCase() === \"null\") {\n return null;\n }\n\n if (config.kind === \"string\") return value;\n if (config.kind === \"boolean\") return parseBoolean(value, config, exitWithError);\n return parseNumber(value, config, exitWithError);\n}\n\nexport function coerceQueryFlag(\n raw: unknown,\n config: CoerceConfig,\n exitWithError: ExitWithError,\n): string | number {\n if (raw == null) {\n return fail(\n exitWithError,\n `Missing value for ${config.flag} (${config.field})`,\n );\n }\n\n const value = String(raw);\n if (config.kind === \"string\") return value;\n if (config.kind === \"boolean\") {\n return parseBoolean(value, config, exitWithError) ? \"true\" : \"false\";\n }\n return parseNumber(value, config, exitWithError);\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 { coerceBodyFlag, coerceQueryFlag } from \"../../lib/flag-coercion.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) {\n query.includeMembers = coerceQueryFlag(opts.includeMembers, { field: \"includeMembers\", flag: \"--include-members\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includePlan != null) {\n query.includePlan = coerceQueryFlag(opts.includePlan, { field: \"includePlan\", flag: \"--include-plan\", kind: \"boolean\" }, exitWithError);\n }\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 const parsedId = coerceBodyFlag(opts.id, { field: \"id\", flag: \"--id\", kind: \"string\" }, exitWithError);\n if (parsedId !== undefined) bodyFromFlags.id = parsedId;\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\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) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.name != null) {\n query.name = coerceQueryFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n }\n if (opts.memberId != null) {\n query.memberId = coerceQueryFlag(opts.memberId, { field: \"memberId\", flag: \"--member-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.teamId != null) {\n query.teamId = coerceQueryFlag(opts.teamId, { field: \"teamId\", flag: \"--team-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.hasMembers != null) {\n query.hasMembers = coerceQueryFlag(opts.hasMembers, { field: \"hasMembers\", flag: \"--has-members\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.hasTeams != null) {\n query.hasTeams = coerceQueryFlag(opts.hasTeams, { field: \"hasTeams\", flag: \"--has-teams\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.hasExternalLink != null) {\n query.hasExternalLink = coerceQueryFlag(opts.hasExternalLink, { field: \"hasExternalLink\", flag: \"--has-external-link\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.externalLinkProvider != null) {\n query.externalLinkProvider = coerceQueryFlag(opts.externalLinkProvider, { field: \"externalLinkProvider\", flag: \"--external-link-provider\", kind: \"string\" }, exitWithError);\n }\n if (opts.createdAtEq != null) {\n query.createdAtEq = coerceQueryFlag(opts.createdAtEq, { field: \"createdAtEq\", flag: \"--created-at-eq\", kind: \"number\" }, exitWithError);\n }\n if (opts.createdAtGte != null) {\n query.createdAtGte = coerceQueryFlag(opts.createdAtGte, { field: \"createdAtGte\", flag: \"--created-at-gte\", kind: \"number\" }, exitWithError);\n }\n if (opts.createdAtLte != null) {\n query.createdAtLte = coerceQueryFlag(opts.createdAtLte, { field: \"createdAtLte\", flag: \"--created-at-lte\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtEq != null) {\n query.updatedAtEq = coerceQueryFlag(opts.updatedAtEq, { field: \"updatedAtEq\", flag: \"--updated-at-eq\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtGte != null) {\n query.updatedAtGte = coerceQueryFlag(opts.updatedAtGte, { field: \"updatedAtGte\", flag: \"--updated-at-gte\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtLte != null) {\n query.updatedAtLte = coerceQueryFlag(opts.updatedAtLte, { field: \"updatedAtLte\", flag: \"--updated-at-lte\", kind: \"number\" }, exitWithError);\n }\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) {\n query.includeLinks = coerceQueryFlag(opts.includeLinks, { field: \"includeLinks\", flag: \"--include-links\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.linkedProvider != null) {\n query.linkedProvider = coerceQueryFlag(opts.linkedProvider, { field: \"linkedProvider\", flag: \"--linked-provider\", kind: \"string\" }, exitWithError);\n }\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\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) {\n query.status = coerceQueryFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n }\n if (opts.containerId != null) {\n query.containerId = coerceQueryFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.organisationId != null) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.categoryId != null) {\n query.categoryId = coerceQueryFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.labelId != null) {\n query.labelId = coerceQueryFlag(opts.labelId, { field: \"labelId\", flag: \"--label-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.hasExternalLink != null) {\n query.hasExternalLink = coerceQueryFlag(opts.hasExternalLink, { field: \"hasExternalLink\", flag: \"--has-external-link\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.externalLinkProvider != null) {\n query.externalLinkProvider = coerceQueryFlag(opts.externalLinkProvider, { field: \"externalLinkProvider\", flag: \"--external-link-provider\", kind: \"string\" }, exitWithError);\n }\n if (opts.createdAtEq != null) {\n query.createdAtEq = coerceQueryFlag(opts.createdAtEq, { field: \"createdAtEq\", flag: \"--created-at-eq\", kind: \"number\" }, exitWithError);\n }\n if (opts.createdAtGte != null) {\n query.createdAtGte = coerceQueryFlag(opts.createdAtGte, { field: \"createdAtGte\", flag: \"--created-at-gte\", kind: \"number\" }, exitWithError);\n }\n if (opts.createdAtLte != null) {\n query.createdAtLte = coerceQueryFlag(opts.createdAtLte, { field: \"createdAtLte\", flag: \"--created-at-lte\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtEq != null) {\n query.updatedAtEq = coerceQueryFlag(opts.updatedAtEq, { field: \"updatedAtEq\", flag: \"--updated-at-eq\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtGte != null) {\n query.updatedAtGte = coerceQueryFlag(opts.updatedAtGte, { field: \"updatedAtGte\", flag: \"--updated-at-gte\", kind: \"number\" }, exitWithError);\n }\n if (opts.updatedAtLte != null) {\n query.updatedAtLte = coerceQueryFlag(opts.updatedAtLte, { field: \"updatedAtLte\", flag: \"--updated-at-lte\", kind: \"number\" }, exitWithError);\n }\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) {\n query.includeCategory = coerceQueryFlag(opts.includeCategory, { field: \"includeCategory\", flag: \"--include-category\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includeLabels != null) {\n query.includeLabels = coerceQueryFlag(opts.includeLabels, { field: \"includeLabels\", flag: \"--include-labels\", kind: \"boolean\" }, exitWithError);\n }\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\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) {\n query.entityType = coerceQueryFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n }\n if (opts.organisationId != null) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\n const parsedEntityType = coerceBodyFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n if (parsedEntityType !== undefined) bodyFromFlags.entityType = parsedEntityType;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\n const parsedEntityType = coerceBodyFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n if (parsedEntityType !== undefined) bodyFromFlags.entityType = parsedEntityType;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\n const parsedEntityType = coerceBodyFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n if (parsedEntityType !== undefined) bodyFromFlags.entityType = parsedEntityType;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\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) {\n query.bucket = coerceQueryFlag(opts.bucket, { field: \"bucket\", flag: \"--bucket\", kind: \"string\" }, exitWithError);\n }\n if (opts.inboxTriage != null) {\n query.inboxTriage = coerceQueryFlag(opts.inboxTriage, { field: \"inboxTriage\", flag: \"--inbox-triage\", kind: \"string\" }, exitWithError);\n }\n if (opts.projectId != null) {\n query.projectId = coerceQueryFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.categoryId != null) {\n query.categoryId = coerceQueryFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.containerId != null) {\n query.containerId = coerceQueryFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.organisationId != null) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.assigneeId != null) {\n query.assigneeId = coerceQueryFlag(opts.assigneeId, { field: \"assigneeId\", flag: \"--assignee-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.routineBlockId != null) {\n query.routineBlockId = coerceQueryFlag(opts.routineBlockId, { field: \"routineBlockId\", flag: \"--routine-block-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.doDateEq != null) {\n query.doDateEq = coerceQueryFlag(opts.doDateEq, { field: \"doDateEq\", flag: \"--do-date-eq\", kind: \"string\" }, exitWithError);\n }\n if (opts.doDateGte != null) {\n query.doDateGte = coerceQueryFlag(opts.doDateGte, { field: \"doDateGte\", flag: \"--do-date-gte\", kind: \"string\" }, exitWithError);\n }\n if (opts.doDateLte != null) {\n query.doDateLte = coerceQueryFlag(opts.doDateLte, { field: \"doDateLte\", flag: \"--do-date-lte\", kind: \"string\" }, exitWithError);\n }\n if (opts.dueDateEq != null) {\n query.dueDateEq = coerceQueryFlag(opts.dueDateEq, { field: \"dueDateEq\", flag: \"--due-date-eq\", kind: \"string\" }, exitWithError);\n }\n if (opts.dueDateGte != null) {\n query.dueDateGte = coerceQueryFlag(opts.dueDateGte, { field: \"dueDateGte\", flag: \"--due-date-gte\", kind: \"string\" }, exitWithError);\n }\n if (opts.dueDateLte != null) {\n query.dueDateLte = coerceQueryFlag(opts.dueDateLte, { field: \"dueDateLte\", flag: \"--due-date-lte\", kind: \"string\" }, exitWithError);\n }\n if (opts.doEndDateEq != null) {\n query.doEndDateEq = coerceQueryFlag(opts.doEndDateEq, { field: \"doEndDateEq\", flag: \"--do-end-date-eq\", kind: \"string\" }, exitWithError);\n }\n if (opts.doEndDateGte != null) {\n query.doEndDateGte = coerceQueryFlag(opts.doEndDateGte, { field: \"doEndDateGte\", flag: \"--do-end-date-gte\", kind: \"string\" }, exitWithError);\n }\n if (opts.doEndDateLte != null) {\n query.doEndDateLte = coerceQueryFlag(opts.doEndDateLte, { field: \"doEndDateLte\", flag: \"--do-end-date-lte\", kind: \"string\" }, exitWithError);\n }\n if (opts.scheduledAtEq != null) {\n query.scheduledAtEq = coerceQueryFlag(opts.scheduledAtEq, { field: \"scheduledAtEq\", flag: \"--scheduled-at-eq\", kind: \"number\", allowDateTime: true }, exitWithError);\n }\n if (opts.scheduledAtGte != null) {\n query.scheduledAtGte = coerceQueryFlag(opts.scheduledAtGte, { field: \"scheduledAtGte\", flag: \"--scheduled-at-gte\", kind: \"number\", allowDateTime: true }, exitWithError);\n }\n if (opts.scheduledAtLte != null) {\n query.scheduledAtLte = coerceQueryFlag(opts.scheduledAtLte, { field: \"scheduledAtLte\", flag: \"--scheduled-at-lte\", kind: \"number\", allowDateTime: true }, exitWithError);\n }\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) {\n query.includeLinks = coerceQueryFlag(opts.includeLinks, { field: \"includeLinks\", flag: \"--include-links\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.linkedProvider != null) {\n query.linkedProvider = coerceQueryFlag(opts.linkedProvider, { field: \"linkedProvider\", flag: \"--linked-provider\", kind: \"string\" }, exitWithError);\n }\n if (opts.includeCategory != null) {\n query.includeCategory = coerceQueryFlag(opts.includeCategory, { field: \"includeCategory\", flag: \"--include-category\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includeLabels != null) {\n query.includeLabels = coerceQueryFlag(opts.includeLabels, { field: \"includeLabels\", flag: \"--include-labels\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includeRelatedTasks != null) {\n query.includeRelatedTasks = coerceQueryFlag(opts.includeRelatedTasks, { field: \"includeRelatedTasks\", flag: \"--include-related-tasks\", kind: \"boolean\" }, exitWithError);\n }\n if (opts.includeNotes != null) {\n query.includeNotes = coerceQueryFlag(opts.includeNotes, { field: \"includeNotes\", flag: \"--include-notes\", kind: \"boolean\" }, exitWithError);\n }\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedNotes = coerceBodyFlag(opts.notes, { field: \"notes\", flag: \"--notes\", kind: \"string\" }, exitWithError);\n if (parsedNotes !== undefined) bodyFromFlags.notes = parsedNotes;\n const parsedDoneAt = coerceBodyFlag(opts.doneAt, { field: \"doneAt\", flag: \"--done-at\", kind: \"number\" }, exitWithError);\n if (parsedDoneAt !== undefined) bodyFromFlags.doneAt = parsedDoneAt;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedBucket = coerceBodyFlag(opts.bucket, { field: \"bucket\", flag: \"--bucket\", kind: \"string\" }, exitWithError);\n if (parsedBucket !== undefined) bodyFromFlags.bucket = parsedBucket;\n const parsedRoutineBlockId = coerceBodyFlag(opts.routineBlockId, { field: \"routineBlockId\", flag: \"--routine-block-id\", kind: \"string\" }, exitWithError);\n if (parsedRoutineBlockId !== undefined) bodyFromFlags.routineBlockId = parsedRoutineBlockId;\n const parsedAssigneeId = coerceBodyFlag(opts.assigneeId, { field: \"assigneeId\", flag: \"--assignee-id\", kind: \"string\" }, exitWithError);\n if (parsedAssigneeId !== undefined) bodyFromFlags.assigneeId = parsedAssigneeId;\n const parsedIsStarred = coerceBodyFlag(opts.isStarred, { field: \"isStarred\", flag: \"--is-starred\", kind: \"boolean\" }, exitWithError);\n if (parsedIsStarred !== undefined) bodyFromFlags.isStarred = parsedIsStarred;\n const parsedDoDate = coerceBodyFlag(opts.doDate, { field: \"doDate\", flag: \"--do-date\", kind: \"string\" }, exitWithError);\n if (parsedDoDate !== undefined) bodyFromFlags.doDate = parsedDoDate;\n const parsedDoEndDate = coerceBodyFlag(opts.doEndDate, { field: \"doEndDate\", flag: \"--do-end-date\", kind: \"string\" }, exitWithError);\n if (parsedDoEndDate !== undefined) bodyFromFlags.doEndDate = parsedDoEndDate;\n const parsedDueDate = coerceBodyFlag(opts.dueDate, { field: \"dueDate\", flag: \"--due-date\", kind: \"string\" }, exitWithError);\n if (parsedDueDate !== undefined) bodyFromFlags.dueDate = parsedDueDate;\n const parsedScheduledAt = coerceBodyFlag(opts.scheduledAt, { field: \"scheduledAt\", flag: \"--scheduled-at\", kind: \"number\", allowDateTime: true }, exitWithError);\n if (parsedScheduledAt !== undefined) bodyFromFlags.scheduledAt = parsedScheduledAt;\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedNotes = coerceBodyFlag(opts.notes, { field: \"notes\", flag: \"--notes\", kind: \"string\" }, exitWithError);\n if (parsedNotes !== undefined) bodyFromFlags.notes = parsedNotes;\n const parsedDoneAt = coerceBodyFlag(opts.doneAt, { field: \"doneAt\", flag: \"--done-at\", kind: \"number\" }, exitWithError);\n if (parsedDoneAt !== undefined) bodyFromFlags.doneAt = parsedDoneAt;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\n const parsedBucket = coerceBodyFlag(opts.bucket, { field: \"bucket\", flag: \"--bucket\", kind: \"string\" }, exitWithError);\n if (parsedBucket !== undefined) bodyFromFlags.bucket = parsedBucket;\n const parsedRoutineBlockId = coerceBodyFlag(opts.routineBlockId, { field: \"routineBlockId\", flag: \"--routine-block-id\", kind: \"string\" }, exitWithError);\n if (parsedRoutineBlockId !== undefined) bodyFromFlags.routineBlockId = parsedRoutineBlockId;\n const parsedAssigneeId = coerceBodyFlag(opts.assigneeId, { field: \"assigneeId\", flag: \"--assignee-id\", kind: \"string\" }, exitWithError);\n if (parsedAssigneeId !== undefined) bodyFromFlags.assigneeId = parsedAssigneeId;\n const parsedIsStarred = coerceBodyFlag(opts.isStarred, { field: \"isStarred\", flag: \"--is-starred\", kind: \"boolean\" }, exitWithError);\n if (parsedIsStarred !== undefined) bodyFromFlags.isStarred = parsedIsStarred;\n const parsedDoDate = coerceBodyFlag(opts.doDate, { field: \"doDate\", flag: \"--do-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDoDate !== undefined) bodyFromFlags.doDate = parsedDoDate;\n const parsedDoEndDate = coerceBodyFlag(opts.doEndDate, { field: \"doEndDate\", flag: \"--do-end-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDoEndDate !== undefined) bodyFromFlags.doEndDate = parsedDoEndDate;\n const parsedDueDate = coerceBodyFlag(opts.dueDate, { field: \"dueDate\", flag: \"--due-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDueDate !== undefined) bodyFromFlags.dueDate = parsedDueDate;\n const parsedScheduledAt = coerceBodyFlag(opts.scheduledAt, { field: \"scheduledAt\", flag: \"--scheduled-at\", kind: \"number\", allowNull: true, allowDateTime: true }, exitWithError);\n if (parsedScheduledAt !== undefined) bodyFromFlags.scheduledAt = parsedScheduledAt;\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 const parsedTitle = coerceBodyFlag(opts.title, { field: \"title\", flag: \"--title\", kind: \"string\" }, exitWithError);\n if (parsedTitle !== undefined) bodyFromFlags.title = parsedTitle;\n const parsedNotes = coerceBodyFlag(opts.notes, { field: \"notes\", flag: \"--notes\", kind: \"string\" }, exitWithError);\n if (parsedNotes !== undefined) bodyFromFlags.notes = parsedNotes;\n const parsedDoneAt = coerceBodyFlag(opts.doneAt, { field: \"doneAt\", flag: \"--done-at\", kind: \"number\" }, exitWithError);\n if (parsedDoneAt !== undefined) bodyFromFlags.doneAt = parsedDoneAt;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContainerId = coerceBodyFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n if (parsedContainerId !== undefined) bodyFromFlags.containerId = parsedContainerId;\n const parsedBucket = coerceBodyFlag(opts.bucket, { field: \"bucket\", flag: \"--bucket\", kind: \"string\" }, exitWithError);\n if (parsedBucket !== undefined) bodyFromFlags.bucket = parsedBucket;\n const parsedRoutineBlockId = coerceBodyFlag(opts.routineBlockId, { field: \"routineBlockId\", flag: \"--routine-block-id\", kind: \"string\" }, exitWithError);\n if (parsedRoutineBlockId !== undefined) bodyFromFlags.routineBlockId = parsedRoutineBlockId;\n const parsedAssigneeId = coerceBodyFlag(opts.assigneeId, { field: \"assigneeId\", flag: \"--assignee-id\", kind: \"string\" }, exitWithError);\n if (parsedAssigneeId !== undefined) bodyFromFlags.assigneeId = parsedAssigneeId;\n const parsedIsStarred = coerceBodyFlag(opts.isStarred, { field: \"isStarred\", flag: \"--is-starred\", kind: \"boolean\" }, exitWithError);\n if (parsedIsStarred !== undefined) bodyFromFlags.isStarred = parsedIsStarred;\n const parsedDoDate = coerceBodyFlag(opts.doDate, { field: \"doDate\", flag: \"--do-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDoDate !== undefined) bodyFromFlags.doDate = parsedDoDate;\n const parsedDoEndDate = coerceBodyFlag(opts.doEndDate, { field: \"doEndDate\", flag: \"--do-end-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDoEndDate !== undefined) bodyFromFlags.doEndDate = parsedDoEndDate;\n const parsedDueDate = coerceBodyFlag(opts.dueDate, { field: \"dueDate\", flag: \"--due-date\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedDueDate !== undefined) bodyFromFlags.dueDate = parsedDueDate;\n const parsedScheduledAt = coerceBodyFlag(opts.scheduledAt, { field: \"scheduledAt\", flag: \"--scheduled-at\", kind: \"number\", allowNull: true, allowDateTime: true }, exitWithError);\n if (parsedScheduledAt !== undefined) bodyFromFlags.scheduledAt = parsedScheduledAt;\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) {\n query.date = coerceQueryFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n }\n if (opts.templateId != null) {\n query.templateId = coerceQueryFlag(opts.templateId, { field: \"templateId\", flag: \"--template-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.categoryId != null) {\n query.categoryId = coerceQueryFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.containerId != null) {\n query.containerId = coerceQueryFlag(opts.containerId, { field: \"containerId\", flag: \"--container-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.projectId != null) {\n query.projectId = coerceQueryFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.organisationId != null) {\n query.organisationId = coerceQueryFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.sharedWithUserId != null) {\n query.sharedWithUserId = coerceQueryFlag(opts.sharedWithUserId, { field: \"sharedWithUserId\", flag: \"--shared-with-user-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.isTemplate != null) {\n query.isTemplate = coerceQueryFlag(opts.isTemplate, { field: \"isTemplate\", flag: \"--is-template\", kind: \"boolean\" }, exitWithError);\n }\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedStartTime = coerceBodyFlag(opts.startTime, { field: \"startTime\", flag: \"--start-time\", kind: \"string\" }, exitWithError);\n if (parsedStartTime !== undefined) bodyFromFlags.startTime = parsedStartTime;\n const parsedEndTime = coerceBodyFlag(opts.endTime, { field: \"endTime\", flag: \"--end-time\", kind: \"string\" }, exitWithError);\n if (parsedEndTime !== undefined) bodyFromFlags.endTime = parsedEndTime;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\n const parsedTemplateId = coerceBodyFlag(opts.templateId, { field: \"templateId\", flag: \"--template-id\", kind: \"string\" }, exitWithError);\n if (parsedTemplateId !== undefined) bodyFromFlags.templateId = parsedTemplateId;\n const parsedDayOfWeek = coerceBodyFlag(opts.dayOfWeek, { field: \"dayOfWeek\", flag: \"--day-of-week\", kind: \"number\" }, exitWithError);\n if (parsedDayOfWeek !== undefined) bodyFromFlags.dayOfWeek = parsedDayOfWeek;\n const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\n const parsedBlockType = coerceBodyFlag(opts.blockType, { field: \"blockType\", flag: \"--block-type\", kind: \"string\" }, exitWithError);\n if (parsedBlockType !== undefined) bodyFromFlags.blockType = parsedBlockType;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedStartTime = coerceBodyFlag(opts.startTime, { field: \"startTime\", flag: \"--start-time\", kind: \"string\" }, exitWithError);\n if (parsedStartTime !== undefined) bodyFromFlags.startTime = parsedStartTime;\n const parsedEndTime = coerceBodyFlag(opts.endTime, { field: \"endTime\", flag: \"--end-time\", kind: \"string\" }, exitWithError);\n if (parsedEndTime !== undefined) bodyFromFlags.endTime = parsedEndTime;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\n const parsedTemplateId = coerceBodyFlag(opts.templateId, { field: \"templateId\", flag: \"--template-id\", kind: \"string\" }, exitWithError);\n if (parsedTemplateId !== undefined) bodyFromFlags.templateId = parsedTemplateId;\n const parsedDayOfWeek = coerceBodyFlag(opts.dayOfWeek, { field: \"dayOfWeek\", flag: \"--day-of-week\", kind: \"number\" }, exitWithError);\n if (parsedDayOfWeek !== undefined) bodyFromFlags.dayOfWeek = parsedDayOfWeek;\n const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\n const parsedBlockType = coerceBodyFlag(opts.blockType, { field: \"blockType\", flag: \"--block-type\", kind: \"string\" }, exitWithError);\n if (parsedBlockType !== undefined) bodyFromFlags.blockType = parsedBlockType;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\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 const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedStartTime = coerceBodyFlag(opts.startTime, { field: \"startTime\", flag: \"--start-time\", kind: \"string\" }, exitWithError);\n if (parsedStartTime !== undefined) bodyFromFlags.startTime = parsedStartTime;\n const parsedEndTime = coerceBodyFlag(opts.endTime, { field: \"endTime\", flag: \"--end-time\", kind: \"string\" }, exitWithError);\n if (parsedEndTime !== undefined) bodyFromFlags.endTime = parsedEndTime;\n const parsedOrganisationId = coerceBodyFlag(opts.organisationId, { field: \"organisationId\", flag: \"--organisation-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganisationId !== undefined) bodyFromFlags.organisationId = parsedOrganisationId;\n const parsedTemplateId = coerceBodyFlag(opts.templateId, { field: \"templateId\", flag: \"--template-id\", kind: \"string\" }, exitWithError);\n if (parsedTemplateId !== undefined) bodyFromFlags.templateId = parsedTemplateId;\n const parsedDayOfWeek = coerceBodyFlag(opts.dayOfWeek, { field: \"dayOfWeek\", flag: \"--day-of-week\", kind: \"number\" }, exitWithError);\n if (parsedDayOfWeek !== undefined) bodyFromFlags.dayOfWeek = parsedDayOfWeek;\n const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\n const parsedBlockType = coerceBodyFlag(opts.blockType, { field: \"blockType\", flag: \"--block-type\", kind: \"string\" }, exitWithError);\n if (parsedBlockType !== undefined) bodyFromFlags.blockType = parsedBlockType;\n const parsedColor = coerceBodyFlag(opts.color, { field: \"color\", flag: \"--color\", kind: \"string\" }, exitWithError);\n if (parsedColor !== undefined) bodyFromFlags.color = parsedColor;\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) {\n query.date = coerceQueryFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n }\n if (opts.type != null) {\n query.type = coerceQueryFlag(opts.type, { field: \"type\", flag: \"--type\", kind: \"string\" }, exitWithError);\n }\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 const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedType = coerceBodyFlag(opts.type, { field: \"type\", flag: \"--type\", kind: \"string\" }, exitWithError);\n if (parsedType !== undefined) bodyFromFlags.type = parsedType;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedWakeTime = coerceBodyFlag(opts.wakeTime, { field: \"wakeTime\", flag: \"--wake-time\", kind: \"string\" }, exitWithError);\n if (parsedWakeTime !== undefined) bodyFromFlags.wakeTime = parsedWakeTime;\n const parsedSleepTime = coerceBodyFlag(opts.sleepTime, { field: \"sleepTime\", flag: \"--sleep-time\", kind: \"string\" }, exitWithError);\n if (parsedSleepTime !== undefined) bodyFromFlags.sleepTime = parsedSleepTime;\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 const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedWakeTime = coerceBodyFlag(opts.wakeTime, { field: \"wakeTime\", flag: \"--wake-time\", kind: \"string\" }, exitWithError);\n if (parsedWakeTime !== undefined) bodyFromFlags.wakeTime = parsedWakeTime;\n const parsedSleepTime = coerceBodyFlag(opts.sleepTime, { field: \"sleepTime\", flag: \"--sleep-time\", kind: \"string\" }, exitWithError);\n if (parsedSleepTime !== undefined) bodyFromFlags.sleepTime = parsedSleepTime;\n const parsedSteps = coerceBodyFlag(opts.steps, { field: \"steps\", flag: \"--steps\", kind: \"string\" }, exitWithError);\n if (parsedSteps !== undefined) bodyFromFlags.steps = parsedSteps;\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 const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedWakeTime = coerceBodyFlag(opts.wakeTime, { field: \"wakeTime\", flag: \"--wake-time\", kind: \"string\" }, exitWithError);\n if (parsedWakeTime !== undefined) bodyFromFlags.wakeTime = parsedWakeTime;\n const parsedSleepTime = coerceBodyFlag(opts.sleepTime, { field: \"sleepTime\", flag: \"--sleep-time\", kind: \"string\" }, exitWithError);\n if (parsedSleepTime !== undefined) bodyFromFlags.sleepTime = parsedSleepTime;\n const parsedSteps = coerceBodyFlag(opts.steps, { field: \"steps\", flag: \"--steps\", kind: \"string\" }, exitWithError);\n if (parsedSteps !== undefined) bodyFromFlags.steps = parsedSteps;\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) {\n query.dates = coerceQueryFlag(opts.dates, { field: \"dates\", flag: \"--dates\", kind: \"string\" }, exitWithError);\n }\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 const parsedDate = coerceBodyFlag(opts.date, { field: \"date\", flag: \"--date\", kind: \"string\" }, exitWithError);\n if (parsedDate !== undefined) bodyFromFlags.date = parsedDate;\n const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\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 const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\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 const parsedContent = coerceBodyFlag(opts.content, { field: \"content\", flag: \"--content\", kind: \"string\" }, exitWithError);\n if (parsedContent !== undefined) bodyFromFlags.content = parsedContent;\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","parsedName","body","res","parsedDescription","parsedTitle","parsedStatus","parsedContainerId","parsedColor","parsedEntityType","parsedOrganisationId","parsedNotes","parsedDoneAt","parsedProjectId","parsedCategoryId","parsedBucket","parsedRoutineBlockId","parsedAssigneeId","parsedIsStarred","parsedDoDate","parsedDoEndDate","parsedDueDate","parsedScheduledAt","parsedStartTime","parsedEndTime","parsedTemplateId","parsedDayOfWeek","parsedDate","parsedContent","parsedBlockType","parsedWakeTime","parsedSleepTime","parsedSteps","date"]}
|
|
File without changes
|