@inkbox/cli 0.4.23 → 0.4.24

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/README.md CHANGED
@@ -390,14 +390,27 @@ by `inkbox identity create` and removed by `inkbox identity delete`
390
390
  has moved to the identity; mailbox PATCH hard-rejects it with a 422.
391
391
 
392
392
  ```bash
393
- inkbox mailbox list # List all mailboxes
393
+ inkbox mailbox list # List all mailboxes (incl. a 'storage' column)
394
394
  inkbox mailbox get <email-address> # Get mailbox details
395
395
  inkbox mailbox update <email-address> # Update a mailbox
396
396
  --filter-mode <mode> # whitelist or blacklist (admin-only)
397
+ inkbox mailbox client-settings <email-address> # IMAP/SMTP settings for a mail client
397
398
  # To attach a webhook receiver, use `inkbox webhook subscription create
398
399
  # --mailbox-id <id> --url <url> --event-type message.received ...`.
399
400
  ```
400
401
 
402
+ `mailbox list` shows a `storage` column (`1.2 GiB / 2 GiB`) and `mailbox get`
403
+ adds `storageUsedBytes` / `storageLimitBytes` — raw byte counts under `--json`,
404
+ humanized in the table. The caps are **binary** (2 GiB is `2 * 1024³` bytes),
405
+ so the readouts are labeled GiB/MiB. A `-` limit means the server didn't
406
+ resolve a cap.
407
+
408
+ Sending from a mailbox that is at its cap fails with `HTTP 402` and a hint:
409
+ free space with `inkbox email delete <message-id> -i <handle>` / `inkbox email
410
+ delete-thread <thread-id> -i <handle>` (reclaim is immediate), or upgrade the
411
+ plan. All three send paths (`email send`, `email reply-all`, `email forward`)
412
+ are enforced.
413
+
401
414
  ### tunnel
402
415
 
403
416
  Tunnel read + update + sign-csr. Tunnels are provisioned atomically by
@@ -502,6 +515,46 @@ inkbox webhook subscription update <sub-id> # Update url, event_types, and/or c
502
515
  inkbox webhook subscription delete <sub-id> # Remove a subscription
503
516
  ```
504
517
 
518
+ ## Mail clients (IMAP/SMTP)
519
+
520
+ An Inkbox inbox can also be attached to a regular mail client (Thunderbird,
521
+ Apple Mail, mutt, …) with the API key you already have. There is no separate
522
+ credential to create. `inkbox mailbox client-settings <email-address>` prints
523
+ these:
524
+
525
+ | Setting | Value |
526
+ |---|---|
527
+ | IMAP host | `imap.inkboxmail.com` |
528
+ | IMAP port | `993` (IMAPS / implicit TLS) |
529
+ | SMTP host | `smtp.inkboxmail.com` |
530
+ | SMTP port | `465` (SMTPS / implicit TLS) or `587` (STARTTLS) |
531
+ | Username | the inbox address (e.g. `sales-bot@inkboxmail.com`) |
532
+ | Password | an **identity-scoped** API key (`ApiKey_...`) |
533
+
534
+ Mint the password with `inkbox api-keys create --label <name> --identity-id
535
+ <uuid>`. Admin-scoped keys are rejected: one key maps to exactly one mailbox.
536
+ Revoking the key revokes mail-client access.
537
+
538
+ Two constraints that bite in practice:
539
+
540
+ - **`From` must be the authenticated inbox address**, and exactly one address.
541
+ Aliases and "send as" identities are rejected.
542
+ - **On the Free plan, signed/encrypted mail (S/MIME, PGP) cannot be sent over
543
+ SMTP.** The required footer can't be injected without breaking the signature,
544
+ so the send is refused. Send unsigned, or upgrade the plan.
545
+
546
+ If your client saves its own copy of sent messages, leave that setting on:
547
+ Inkbox recognizes the copy as the message it already stored, so you get one
548
+ Sent entry, charged against your storage cap once.
549
+
550
+ `mailbox client-settings` derives the hosts from the configured API base URL.
551
+ When that URL isn't a recognized Inkbox API host, it errors instead of printing
552
+ hosts it would have to guess — a mail client pointed at guessed hosts would talk
553
+ to the wrong server.
554
+
555
+ Full setup walkthrough:
556
+ <https://inkbox.ai/docs/capabilities/email/mail-clients>
557
+
505
558
  ## Global options
506
559
 
507
560
  ```
package/dist/client.js CHANGED
@@ -3,7 +3,7 @@ import * as os from "node:os";
3
3
  import * as path from "node:path";
4
4
  import { Inkbox } from "@inkbox/sdk";
5
5
  // Keep in sync with package.json "version".
6
- export const CLI_VERSION = "0.4.23";
6
+ export const CLI_VERSION = "0.4.24";
7
7
  export function getGlobalOpts(cmd) {
8
8
  let root = cmd;
9
9
  while (root.parent)
@@ -35,6 +35,10 @@ function readConfigFile() {
35
35
  return {};
36
36
  }
37
37
  }
38
+ /** Same precedence as createClient: flag, then env, then ~/.inkbox/config. */
39
+ export function resolveBaseUrl(opts) {
40
+ return (opts.baseUrl ?? process.env.INKBOX_BASE_URL ?? readConfigFile().base_url);
41
+ }
38
42
  export function createClient(opts) {
39
43
  const fileCfg = readConfigFile();
40
44
  const apiKey = opts.apiKey ?? process.env.INKBOX_API_KEY ?? fileCfg.api_key;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AASpC,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,OAAO,IAAI,CAAC,MAAM;QAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,OAAO,IAAI,CAAC,IAAI,EAAgB,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,+EAA+E;AAC/E,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI;iBACf,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;iBACb,IAAI,EAAE;iBACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CACX,sEAAsE;YACpE,sCAAsC,CACzC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,SAAS,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;IAChF,OAAO,IAAI,MAAM,CAAC;QAChB,MAAM;QACN,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,OAAO;QACP,eAAe,EAAE,cAAc,WAAW,EAAE;KAC7C,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AASpC,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,OAAO,IAAI,CAAC,MAAM;QAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,OAAO,IAAI,CAAC,IAAI,EAAgB,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,+EAA+E;AAC/E,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI;iBACf,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;iBACb,IAAI,EAAE;iBACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,OAAO,CACL,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,cAAc,EAAE,CAAC,QAAQ,CACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CACX,sEAAsE;YACpE,sCAAsC,CACzC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,SAAS,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;IAChF,OAAO,IAAI,MAAM,CAAC;QAChB,MAAM;QACN,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,OAAO;QACP,eAAe,EAAE,cAAc,WAAW,EAAE;KAC7C,CAAC,CAAC;AACL,CAAC"}
@@ -1,15 +1,104 @@
1
1
  import { FilterMode, } from "@inkbox/sdk";
2
- import { createClient, getGlobalOpts } from "../client.js";
2
+ import { createClient, getGlobalOpts, resolveBaseUrl } from "../client.js";
3
3
  import { output } from "../output.js";
4
4
  import { withErrorHandler } from "../errors.js";
5
5
  const MAILBOX_LIST_COLUMNS = [
6
6
  "emailAddress",
7
7
  "sendingDomain",
8
+ "storage",
8
9
  "id",
9
10
  "filterMode",
10
11
  "agentIdentityId",
11
12
  "createdAt",
12
13
  ];
14
+ const BYTE_UNITS = ["B", "KiB", "MiB", "GiB", "TiB"];
15
+ // Storage caps are binary (2 GiB = 2 * 1024 ** 3), so this divides by 1024 and
16
+ // labels GiB/MiB — never pair base-2 math with a decimal "GB".
17
+ export function formatBytes(bytes) {
18
+ if (!Number.isFinite(bytes) || bytes <= 0)
19
+ return "0 B";
20
+ let value = bytes;
21
+ let unit = 0;
22
+ while (value >= 1024 && unit < BYTE_UNITS.length - 1) {
23
+ value /= 1024;
24
+ unit += 1;
25
+ }
26
+ if (unit === 0)
27
+ return `${Math.round(value)} B`;
28
+ let rounded = Math.round(value * 10) / 10;
29
+ if (rounded >= 1024 && unit < BYTE_UNITS.length - 1) {
30
+ rounded = Math.round((rounded / 1024) * 10) / 10;
31
+ unit += 1;
32
+ }
33
+ return `${rounded} ${BYTE_UNITS[unit]}`;
34
+ }
35
+ /** "1.2 GiB / 4 GiB"; a null limit (unresolved cap) renders as a dash. */
36
+ export function formatStorage(used, limit) {
37
+ const usedText = formatBytes(used ?? 0);
38
+ return `${usedText} / ${limit === null || limit === undefined ? "-" : formatBytes(limit)}`;
39
+ }
40
+ export function mailboxListRow(mb) {
41
+ return {
42
+ ...mb,
43
+ storage: formatStorage(mb.storageUsedBytes, mb.storageLimitBytes),
44
+ };
45
+ }
46
+ /** `humanize` adds the readable `storage` line; --json gets raw bytes only. */
47
+ export function mailboxGetRecord(mb, opts) {
48
+ const record = {
49
+ emailAddress: mb.emailAddress,
50
+ sendingDomain: mb.sendingDomain,
51
+ id: mb.id,
52
+ filterMode: mb.filterMode,
53
+ agentIdentityId: mb.agentIdentityId,
54
+ createdAt: mb.createdAt,
55
+ storageUsedBytes: mb.storageUsedBytes,
56
+ storageLimitBytes: mb.storageLimitBytes,
57
+ };
58
+ if (opts.humanize) {
59
+ record.storage = formatStorage(mb.storageUsedBytes, mb.storageLimitBytes);
60
+ }
61
+ return record;
62
+ }
63
+ const MAIL_DOMAIN_BY_API_HOST = new Map([
64
+ ["inkbox.ai", "inkboxmail.com"],
65
+ ["api.inkbox.ai", "inkboxmail.com"],
66
+ ["beta.inkbox.ai", "beta.inkboxmail.com"],
67
+ ["api.beta.inkbox.ai", "beta.inkboxmail.com"],
68
+ ["development.inkbox.ai", "development.inkboxmail.com"],
69
+ ["api.development.inkbox.ai", "development.inkboxmail.com"],
70
+ ]);
71
+ export const UNRESOLVED_MAIL_HOSTS_ERROR = "Can't determine the mail hosts for this API base URL.";
72
+ /**
73
+ * The mail domain for the configured API base URL, or null when the URL isn't an
74
+ * Inkbox API host. Callers must print nothing on null — a mail client pointed at
75
+ * guessed hosts would talk to the wrong server.
76
+ */
77
+ export function resolveMailDomain(baseUrl) {
78
+ if (!baseUrl)
79
+ return "inkboxmail.com"; // unset = the SDK's default API host
80
+ let host;
81
+ try {
82
+ host = new URL(baseUrl).hostname.toLowerCase();
83
+ }
84
+ catch {
85
+ return null;
86
+ }
87
+ return MAIL_DOMAIN_BY_API_HOST.get(host) ?? null;
88
+ }
89
+ export function clientSettings(emailAddress, mailDomain) {
90
+ return {
91
+ imapHost: `imap.${mailDomain}`,
92
+ imapPort: 993,
93
+ imapSecurity: "IMAPS (implicit TLS)",
94
+ smtpHost: `smtp.${mailDomain}`,
95
+ smtpPort: 465,
96
+ smtpPortStarttls: 587,
97
+ username: emailAddress,
98
+ // Never printed: the caller supplies their own identity-scoped API key.
99
+ password: "<your identity-scoped API key (ApiKey_...)>",
100
+ };
101
+ }
13
102
  function renderFilterModeChangeNotice(mb) {
14
103
  const notice = mb.filterModeChangeNotice;
15
104
  if (!notice)
@@ -132,7 +221,8 @@ export function registerMailboxCommands(program) {
132
221
  const opts = getGlobalOpts(this);
133
222
  const inkbox = createClient(opts);
134
223
  const mailboxes = await inkbox.mailboxes.list();
135
- output(mailboxes, {
224
+ // --json keeps the raw byte counts; the table gets the humanized column.
225
+ output(opts.json ? mailboxes : mailboxes.map(mailboxListRow), {
136
226
  json: !!opts.json,
137
227
  columns: MAILBOX_LIST_COLUMNS,
138
228
  });
@@ -144,14 +234,9 @@ export function registerMailboxCommands(program) {
144
234
  const opts = getGlobalOpts(this);
145
235
  const inkbox = createClient(opts);
146
236
  const mb = await inkbox.mailboxes.get(emailAddress);
147
- output({
148
- emailAddress: mb.emailAddress,
149
- sendingDomain: mb.sendingDomain,
150
- id: mb.id,
151
- filterMode: mb.filterMode,
152
- agentIdentityId: mb.agentIdentityId,
153
- createdAt: mb.createdAt,
154
- }, { json: !!opts.json });
237
+ output(mailboxGetRecord(mb, { humanize: !opts.json }), {
238
+ json: !!opts.json,
239
+ });
155
240
  }));
156
241
  mailbox
157
242
  .command("update <email-address>")
@@ -174,6 +259,30 @@ export function registerMailboxCommands(program) {
174
259
  }, { json: !!opts.json });
175
260
  renderFilterModeChangeNotice(mb);
176
261
  }));
262
+ mailbox
263
+ .command("client-settings <email-address>")
264
+ .description("Print IMAP/SMTP settings for attaching this inbox to a mail client")
265
+ .action(withErrorHandler(async function (emailAddress) {
266
+ const opts = getGlobalOpts(this);
267
+ const inkbox = createClient(opts);
268
+ const mailDomain = resolveMailDomain(resolveBaseUrl(opts));
269
+ // Bail before printing anything rather than emit hosts we had to guess.
270
+ if (!mailDomain)
271
+ throw new Error(UNRESOLVED_MAIL_HOSTS_ERROR);
272
+ // Fetch so a typo'd / foreign address fails as a normal API error.
273
+ const mb = await inkbox.mailboxes.get(emailAddress);
274
+ const settings = clientSettings(mb.emailAddress, mailDomain);
275
+ output(settings, { json: !!opts.json });
276
+ if (opts.json)
277
+ return;
278
+ console.log("");
279
+ console.log("Password: use an identity-scoped API key — mint one with " +
280
+ "'inkbox api-keys create --label <name> --identity-id <uuid>'. " +
281
+ "Admin-scoped keys are rejected (one key maps to one mailbox).");
282
+ console.log(`The message From must be exactly ${mb.emailAddress}; aliases and ` +
283
+ "'send as' are rejected. On the Free plan, signed/encrypted mail " +
284
+ "(S/MIME, PGP) cannot be sent over SMTP.");
285
+ }));
177
286
  registerMailboxRulesCommands(mailbox);
178
287
  }
179
288
  //# sourceMappingURL=mailbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../src/commands/mailbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../src/commands/mailbox.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,GAIX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,oBAAoB,GAAG;IAC3B,cAAc;IACd,eAAe;IACf,SAAS;IACT,IAAI;IACJ,YAAY;IACZ,iBAAiB;IACjB,WAAW;CACZ,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAErD,+EAA+E;AAC/E,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,KAAK,IAAI,IAAI,CAAC;QACd,IAAI,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAChD,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1C,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAoB;IAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACxC,OAAO,GAAG,QAAQ,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAW;IACxC,OAAO;QACL,GAAG,EAAE;QACL,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAC9B,EAAW,EACX,IAA2B;IAE3B,MAAM,MAAM,GAA4B;QACtC,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,EAAE,CAAC,aAAa;QAC/B,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,eAAe,EAAE,EAAE,CAAC,eAAe;QACnC,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;QACrC,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;KACxC,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAC/B,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACzC,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IAC7C,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;IACvD,CAAC,2BAA2B,EAAE,4BAA4B,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GACtC,uDAAuD,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,gBAAgB,CAAC,CAAC,qCAAqC;IAC5E,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,YAAoB,EACpB,UAAkB;IAElB,OAAO;QACL,QAAQ,EAAE,QAAQ,UAAU,EAAE;QAC9B,QAAQ,EAAE,GAAG;QACb,YAAY,EAAE,sBAAsB;QACpC,QAAQ,EAAE,QAAQ,UAAU,EAAE;QAC9B,QAAQ,EAAE,GAAG;QACb,gBAAgB,EAAE,GAAG;QACrB,QAAQ,EAAE,YAAY;QACtB,wEAAwE;QACxE,QAAQ,EAAE,6CAA6C;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,EAA8E;IAE9E,MAAM,MAAM,GAAI,EAIL,CAAC,sBAAsB,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,OAAO,CAAC,KAAK,CACX,SAAS,MAAM,CAAC,kBAAkB,YAAY,MAAM,CAAC,mBAAmB,IAAI;QAC1E,oCAAoC,MAAM,CAAC,aAAa,KAAK;QAC7D,4DAA4D,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,GAAG,KAAK,UAAU,CAAC,SAAS,IAAI,GAAG,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,0DAA0D,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAe;IACnD,MAAM,KAAK,GAAG,MAAM;SACjB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,sDAAsD;QACpD,mEAAmE,CACtE,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SACpD,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;SAC/D,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC;SAC5E,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACzD,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACxD,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,OAQC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC;QACT,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBAC3C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAoC;gBACpD,SAAS,EAAE,OAAO,CAAC,SAA0C;gBAC7D,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACzD,MAAM,EAAE,OAAO,CAAC,MAAoC;gBACpD,SAAS,EAAE,OAAO,CAAC,SAA0C;gBAC7D,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAI,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,mBAAmB,CAAC;SAChC,cAAc,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SAC5D,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,MAAc,EACd,OAA4B;QAE5B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,CAAC,IAA0C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,cAAc,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SAC5D,cAAc,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SACrD,cAAc,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SAC9D,cAAc,CAAC,wBAAwB,EAAE,4BAA4B,CAAC;SACtE,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,OAKC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;YACjE,MAAM,EAAE,OAAO,CAAC,MAAwB;YACxC,SAAS,EAAE,OAAO,CAAC,SAA8B;YACjD,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,MAAM,CAAC,IAA0C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,oDAAoD,CAAC;SACjE,cAAc,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;SAC/C,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,MAAc,EACd,OAA8D;QAE9D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE;YACzE,MAAM,EAAE,OAAO,CAAC,MAAoC;YACpD,MAAM,EAAE,OAAO,CAAC,MAAuC;SACxD,CAAC,CAAC;QACH,MAAM,CAAC,IAA0C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,4BAA4B,CAAC;SACzC,cAAc,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SAC5D,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,MAAc,EACd,OAA4B;QAE5B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,QAAQ,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IAC9E,CAAC,CAAC,CACH,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAE/C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CACL,gBAAgB,CAAC,KAAK;QACpB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChD,yEAAyE;QACzE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC5D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,YAAoB;QAEpB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;YACrD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CACV,gEAAgE;QAC9D,yDAAyD,CAC5D;SACA,MAAM,CAAC,sBAAsB,EAAE,+DAA+D,CAAC;SAC/F,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,YAAoB,EACpB,OAAgC;QAEhC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAgC,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,UAAU,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,CACJ;YACE,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,eAAe,EAAE,EAAE,CAAC,eAAe;SACpC,EACD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CACtB,CAAC;QACF,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,iCAAiC,CAAC;SAC1C,WAAW,CACV,oEAAoE,CACrE;SACA,MAAM,CACL,gBAAgB,CAAC,KAAK,WAA0B,YAAoB;QAClE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,wEAAwE;QACxE,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9D,mEAAmE;QACnE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC7D,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,2DAA2D;YACzD,gEAAgE;YAChE,+DAA+D,CAClE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,oCAAoC,EAAE,CAAC,YAAY,gBAAgB;YACjE,kEAAkE;YAClE,yCAAyC,CAC5C,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEJ,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC"}
package/dist/errors.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DuplicateContactRuleError, InkboxAPIError, InkboxError, InkboxVaultKeyError, RedundantContactAccessGrantError, } from "@inkbox/sdk";
1
+ import { DuplicateContactRuleError, InkboxAPIError, InkboxError, InkboxVaultKeyError, RedundantContactAccessGrantError, StorageLimitExceededError, } from "@inkbox/sdk";
2
2
  function renderDetail(detail) {
3
3
  return typeof detail === "string" ? detail : JSON.stringify(detail);
4
4
  }
@@ -14,6 +14,13 @@ export function withErrorHandler(fn) {
14
14
  else if (err instanceof RedundantContactAccessGrantError) {
15
15
  console.error(`Error: HTTP ${err.statusCode}: redundant grant — ${err.detailMessage}`);
16
16
  }
17
+ else if (err instanceof StorageLimitExceededError) {
18
+ console.error(`Error: HTTP ${err.statusCode}: ${err.detailMessage || renderDetail(err.detail)}`);
19
+ console.error("Hint: Free space with 'inkbox email delete <message-id> -i <handle>' " +
20
+ "or 'inkbox email delete-thread <thread-id> -i <handle>' " +
21
+ "(reclaim is immediate), or upgrade the plan" +
22
+ (err.upgradeUrl ? `: ${err.upgradeUrl}` : "."));
23
+ }
17
24
  else if (err instanceof InkboxAPIError) {
18
25
  console.error(`Error: HTTP ${err.statusCode}: ${renderDetail(err.detail)}`);
19
26
  if (err.statusCode === 401) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,aAAa,CAAC;AAErB,SAAS,YAAY,CAAC,MAAwC;IAC5D,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,EAAiC;IAEjC,OAAO,KAAK,WAA0B,GAAG,IAAO;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,CACX,eAAe,GAAG,CAAC,UAAU,sCAAsC,GAAG,CAAC,cAAc,GAAG,CACzF,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,gCAAgC,EAAE,CAAC;gBAC3D,OAAO,CAAC,KAAK,CACX,eAAe,GAAG,CAAC,UAAU,uBAAuB,GAAG,CAAC,aAAa,EAAE,CACxE,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,UAAU,KAAK,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5E,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,KAAK,CACX,iDAAiD,CAClD,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,SAAS,YAAY,CAAC,MAAwC;IAC5D,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,EAAiC;IAEjC,OAAO,KAAK,WAA0B,GAAG,IAAO;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,CACX,eAAe,GAAG,CAAC,UAAU,sCAAsC,GAAG,CAAC,cAAc,GAAG,CACzF,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,gCAAgC,EAAE,CAAC;gBAC3D,OAAO,CAAC,KAAK,CACX,eAAe,GAAG,CAAC,UAAU,uBAAuB,GAAG,CAAC,aAAa,EAAE,CACxE,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBACpD,OAAO,CAAC,KAAK,CACX,eAAe,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,aAAa,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAClF,CAAC;gBACF,OAAO,CAAC,KAAK,CACX,uEAAuE;oBACrE,0DAA0D;oBAC1D,6CAA6C;oBAC7C,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACjD,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,UAAU,KAAK,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5E,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,KAAK,CACX,iDAAiD,CAClD,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkbox/cli",
3
- "version": "0.4.23",
3
+ "version": "0.4.24",
4
4
  "description": "CLI for the Inkbox API",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,7 +18,7 @@
18
18
  "prepublishOnly": "npm run build"
19
19
  },
20
20
  "dependencies": {
21
- "@inkbox/sdk": "^0.4.23",
21
+ "@inkbox/sdk": "^0.4.24",
22
22
  "commander": "^13.0.0"
23
23
  },
24
24
  "devDependencies": {