@firela/billclaw-core 0.2.0 → 0.3.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"billclaw.d.ts","sourceRoot":"","sources":["../src/billclaw.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAsBxD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,GAAE,MAAY,GAC1B,OAAO,CAWT;AAED;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,OAAO,EAAE,cAAc;IAInC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,cAAc,CAE3B;IAID;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAKnC;;OAEG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,EAAE,CAAC;IAKzB;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5D;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgCzD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAO9C;;OAEG;IACG,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAgClE;;OAEG;YACW,gBAAgB;IAe9B;;OAEG;IACG,SAAS,CACb,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,IAAI,GAAE,MAAW,GAChB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkF9B;;OAEG;YACW,gBAAgB;IAe9B;;OAEG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAWlB;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;CAInB"}
1
+ {"version":3,"file":"billclaw.d.ts","sourceRoot":"","sources":["../src/billclaw.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAuBxD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,GAAE,MAAY,GAC1B,OAAO,CAWT;AAED;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,OAAO,EAAE,cAAc;IAInC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,cAAc,CAE3B;IAID;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAKnC;;OAEG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,EAAE,CAAC;IAKzB;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5D;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiEzD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAO9C;;OAEG;IACG,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAgClE;;OAEG;YACW,gBAAgB;IAe9B;;OAEG;IACG,SAAS,CACb,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,IAAI,GAAE,MAAW,GAChB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgH9B;;OAEG;YACW,gBAAgB;IAe9B;;OAEG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAWlB;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;CAInB"}
package/dist/billclaw.js CHANGED
@@ -4,6 +4,7 @@
4
4
  * This class provides the primary API for interacting with BillClaw.
5
5
  * It is framework-agnostic and can be used by any adapter (CLI, OpenClaw, etc.).
6
6
  */
7
+ import { createUserError, ERROR_CODES, ErrorCategory } from "./errors/errors.js";
7
8
  // Storage
8
9
  import { readTransactions, readSyncStates, initializeStorage, } from "./storage/transaction-storage.js";
9
10
  // Sync
@@ -88,12 +89,21 @@ export class Billclaw {
88
89
  const config = await this.context.config.getConfig();
89
90
  const account = config.accounts.find((a) => a.id === accountId);
90
91
  if (!account) {
92
+ const notFoundError = createUserError(ERROR_CODES.CONFIG_INVALID, ErrorCategory.CONFIG, "error", false, {
93
+ title: "Account Not Found",
94
+ message: `Account with ID "${accountId}" was not found in the configuration.`,
95
+ suggestions: [
96
+ "Verify the account ID is correct",
97
+ "Check that the account exists in your configuration",
98
+ "Run setup to add the account if needed",
99
+ ],
100
+ }, [], { accountId });
91
101
  return {
92
102
  accountId,
93
103
  success: false,
94
104
  transactionsAdded: 0,
95
105
  transactionsUpdated: 0,
96
- errors: [`Account not found: ${accountId}`],
106
+ errors: [notFoundError],
97
107
  };
98
108
  }
99
109
  switch (account.type) {
@@ -102,12 +112,20 @@ export class Billclaw {
102
112
  case "gmail":
103
113
  return await this.syncGmailAccount(account);
104
114
  default:
115
+ const unsupportedTypeError = createUserError(ERROR_CODES.CONFIG_INVALID, ErrorCategory.CONFIG, "error", false, {
116
+ title: "Unsupported Account Type",
117
+ message: `Account type "${account.type}" is not supported.`,
118
+ suggestions: [
119
+ "Supported account types are: plaid, gmail",
120
+ "Update your configuration to use a supported account type",
121
+ ],
122
+ }, [], { accountId });
105
123
  return {
106
124
  accountId,
107
125
  success: false,
108
126
  transactionsAdded: 0,
109
127
  transactionsUpdated: 0,
110
- errors: [`Unsupported account type: ${account.type}`],
128
+ errors: [unsupportedTypeError],
111
129
  };
112
130
  }
113
131
  }
@@ -190,6 +208,14 @@ export class Billclaw {
190
208
  const tokenExpiry = accountConfig?.gmailTokenExpiry;
191
209
  if (!accessToken) {
192
210
  this.logger.warn?.(`No access token found for Gmail account ${account.id}. Please run OAuth setup first.`);
211
+ const noTokenError = createUserError(ERROR_CODES.GMAIL_AUTH_FAILED, ErrorCategory.GMAIL_AUTH, "error", true, {
212
+ title: "No OAuth Access Token Found",
213
+ message: `No OAuth access token was found for Gmail account ${account.id}.`,
214
+ suggestions: [
215
+ "Run OAuth setup first to authenticate with Gmail",
216
+ "Ensure the account is properly configured",
217
+ ],
218
+ }, [{ type: "oauth_reauth", tool: "gmail_oauth", params: { accountId: account.id } }], { accountId: account.id });
193
219
  results.push({
194
220
  accountId: account.id,
195
221
  success: false,
@@ -197,13 +223,21 @@ export class Billclaw {
197
223
  billsExtracted: 0,
198
224
  transactionsAdded: 0,
199
225
  transactionsUpdated: 0,
200
- errors: ["No OAuth access token found. Please run OAuth setup first."],
226
+ errors: [noTokenError],
201
227
  });
202
228
  continue;
203
229
  }
204
230
  // Check if token is expired (with 5 minute buffer)
205
231
  if (isTokenExpired(tokenExpiry, 300)) {
206
232
  this.logger.warn?.(`Access token expired for Gmail account ${account.id}. Please refresh the token.`);
233
+ const tokenExpiredError = createUserError(ERROR_CODES.GMAIL_AUTH_FAILED, ErrorCategory.GMAIL_AUTH, "error", true, {
234
+ title: "Gmail Access Token Expired",
235
+ message: `The access token for Gmail account ${account.id} has expired.`,
236
+ suggestions: [
237
+ "Refresh the token using OAuth refresh flow",
238
+ "Run setup again to re-authenticate with Gmail",
239
+ ],
240
+ }, [{ type: "oauth_reauth", tool: "gmail_oauth", params: { accountId: account.id } }], { accountId: account.id });
207
241
  results.push({
208
242
  accountId: account.id,
209
243
  success: false,
@@ -211,9 +245,7 @@ export class Billclaw {
211
245
  billsExtracted: 0,
212
246
  transactionsAdded: 0,
213
247
  transactionsUpdated: 0,
214
- errors: [
215
- "Access token expired. Please refresh the token using OAuth refresh flow.",
216
- ],
248
+ errors: [tokenExpiredError],
217
249
  });
218
250
  continue;
219
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"billclaw.js","sourceRoot":"","sources":["../src/billclaw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billclaw.js","sourceRoot":"","sources":["../src/billclaw.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * Error handling utilities for BillClaw
3
3
  *
4
- * Provides user-friendly error messages, recovery suggestions,
5
- * and troubleshooting guides.
4
+ * Provides dual-mode error handling:
5
+ * - Machine-readable: For AI agents (error codes, severity, executable actions)
6
+ * - Human-readable: For display (title, message, suggestions)
6
7
  *
7
8
  * Framework-agnostic: Logger is provided via runtime abstraction.
8
9
  */
@@ -23,16 +24,102 @@ export declare enum ErrorCategory {
23
24
  UNKNOWN = "unknown"
24
25
  }
25
26
  /**
26
- * User-friendly error with recovery suggestions
27
+ * Error codes for programmatic error handling
28
+ * Used by AI agents for switch/case logic and decision making
27
29
  */
28
- export interface UserError {
29
- type: "UserError";
30
- category: ErrorCategory;
30
+ export declare const ERROR_CODES: {
31
+ readonly LOCK_ACQUISITION_FAILED: "LOCK_ACQUISITION_FAILED";
32
+ readonly LOCK_TIMEOUT: "LOCK_TIMEOUT";
33
+ readonly LOCK_STALE: "LOCK_STALE";
34
+ readonly CREDENTIALS_NOT_FOUND: "CREDENTIALS_NOT_FOUND";
35
+ readonly CREDENTIALS_STORAGE_FAILED: "CREDENTIALS_STORAGE_FAILED";
36
+ readonly CREDENTIALS_KEYCHAIN_FAILED: "CREDENTIALS_KEYCHAIN_FAILED";
37
+ readonly NETWORK_CONNECTION_REFUSED: "NETWORK_CONNECTION_REFUSED";
38
+ readonly NETWORK_TIMEOUT: "NETWORK_TIMEOUT";
39
+ readonly NETWORK_DNS_FAILED: "NETWORK_DNS_FAILED";
40
+ readonly NETWORK_GENERIC: "NETWORK_GENERIC";
41
+ readonly PLAID_ITEM_LOGIN_REQUIRED: "PLAID_ITEM_LOGIN_REQUIRED";
42
+ readonly PLAID_INVALID_ACCESS_TOKEN: "PLAID_INVALID_ACCESS_TOKEN";
43
+ readonly PLAID_PRODUCT_NOT_READY: "PLAID_PRODUCT_NOT_READY";
44
+ readonly PLAID_RATE_LIMIT_EXCEEDED: "PLAID_RATE_LIMIT_EXCEEDED";
45
+ readonly PLAID_INSTITUTION_DOWN: "PLAID_INSTITUTION_DOWN";
46
+ readonly PLAID_INVALID_CREDENTIALS: "PLAID_INVALID_CREDENTIALS";
47
+ readonly PLAID_API_ERROR: "PLAID_API_ERROR";
48
+ readonly GMAIL_AUTH_FAILED: "GMAIL_AUTH_FAILED";
49
+ readonly GMAIL_ACCESS_DENIED: "GMAIL_ACCESS_DENIED";
50
+ readonly GMAIL_API_NOT_FOUND: "GMAIL_API_NOT_FOUND";
51
+ readonly GMAIL_RATE_LIMIT_EXCEEDED: "GMAIL_RATE_LIMIT_EXCEEDED";
52
+ readonly GMAIL_API_ERROR: "GMAIL_API_ERROR";
53
+ readonly STORAGE_DISK_FULL: "STORAGE_DISK_FULL";
54
+ readonly STORAGE_WRITE_FAILED: "STORAGE_WRITE_FAILED";
55
+ readonly STORAGE_READ_FAILED: "STORAGE_READ_FAILED";
56
+ readonly FS_PERMISSION_DENIED: "FS_PERMISSION_DENIED";
57
+ readonly FS_NOT_FOUND: "FS_NOT_FOUND";
58
+ readonly FS_GENERIC: "FS_GENERIC";
59
+ readonly CONFIG_INVALID: "CONFIG_INVALID";
60
+ readonly CONFIG_MISSING: "CONFIG_MISSING";
61
+ readonly CONFIG_PARSE_FAILED: "CONFIG_PARSE_FAILED";
62
+ readonly UNKNOWN_ERROR: "UNKNOWN_ERROR";
63
+ };
64
+ export type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
65
+ /**
66
+ * Severity levels for error prioritization
67
+ */
68
+ export type ErrorSeverity = "fatal" | "error" | "warning" | "info";
69
+ /**
70
+ * AI-executable action types
71
+ * These represent actions an AI agent can take to recover from errors
72
+ */
73
+ export type ActionType = "retry" | "oauth_reauth" | "config_change" | "abort" | "wait" | "manual_intervention" | "ignore";
74
+ /**
75
+ * AI-executable action for error recovery
76
+ */
77
+ export interface ErrorAction {
78
+ type: ActionType;
79
+ tool?: string;
80
+ params?: Record<string, unknown>;
81
+ delayMs?: number;
82
+ description?: string;
83
+ }
84
+ /**
85
+ * Structured entity references for error context
86
+ * Helps AI agents identify which entities are affected by the error
87
+ */
88
+ export interface ErrorEntities {
89
+ accountId?: string;
90
+ institutionId?: string;
91
+ itemId?: string;
92
+ filePath?: string;
93
+ configKey?: string;
94
+ [key: string]: string | undefined;
95
+ }
96
+ /**
97
+ * Human-readable error information
98
+ * Used for display to users
99
+ */
100
+ export interface HumanReadableError {
31
101
  title: string;
32
102
  message: string;
33
103
  suggestions: string[];
34
104
  docsLink?: string;
35
- error?: Error;
105
+ }
106
+ /**
107
+ * User-friendly error with dual-mode support
108
+ *
109
+ * - Machine-readable fields: errorCode, severity, recoverable, nextActions, entities
110
+ * - Human-readable fields: humanReadable (title, message, suggestions, docsLink)
111
+ */
112
+ export interface UserError {
113
+ type: "UserError";
114
+ errorCode: ErrorCode;
115
+ category: ErrorCategory;
116
+ severity: ErrorSeverity;
117
+ recoverable: boolean;
118
+ nextActions?: ErrorAction[];
119
+ entities?: ErrorEntities;
120
+ humanReadable: HumanReadableError;
121
+ originalError?: Error;
122
+ timestamp?: string;
36
123
  }
37
124
  /**
38
125
  * Logger interface for framework-agnostic logging
@@ -44,11 +131,21 @@ export interface Logger {
44
131
  debug(...args: unknown[]): void;
45
132
  }
46
133
  /**
47
- * Create a user-friendly error
134
+ * Create a user-friendly error with dual-mode support
135
+ *
136
+ * @param errorCode - Machine-readable error code
137
+ * @param category - Error category
138
+ * @param severity - Error severity level
139
+ * @param recoverable - Whether the error is recoverable
140
+ * @param humanReadable - Human-readable error information
141
+ * @param nextActions - AI-executable recovery actions
142
+ * @param entities - Structured entity references
143
+ * @param originalError - Original error for debugging
48
144
  */
49
- export declare function createUserError(category: ErrorCategory, title: string, message: string, suggestions: string[], docsLink?: string, originalError?: Error): UserError;
145
+ export declare function createUserError(errorCode: ErrorCode, category: ErrorCategory, severity: ErrorSeverity, recoverable: boolean, humanReadable: HumanReadableError, nextActions?: ErrorAction[], entities?: ErrorEntities, originalError?: Error): UserError;
50
146
  /**
51
147
  * Format error for display to user
148
+ * Uses the humanReadable field for user-friendly output
52
149
  */
53
150
  export declare function formatError(error: UserError): string;
54
151
  /**
@@ -60,7 +157,9 @@ export declare function parsePlaidError(error: {
60
157
  error_type?: string;
61
158
  display_message?: string;
62
159
  request_id?: string;
63
- }): UserError;
160
+ item_id?: string;
161
+ institution_id?: string;
162
+ }, accountId?: string): UserError;
64
163
  /**
65
164
  * Parse Gmail API errors and create user-friendly errors
66
165
  */
@@ -68,7 +167,7 @@ export declare function parseGmailError(error: {
68
167
  code?: number;
69
168
  message?: string;
70
169
  status?: number;
71
- }): UserError;
170
+ }, accountId?: string): UserError;
72
171
  /**
73
172
  * Parse network errors
74
173
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,oBAAY,aAAa;IAEvB,MAAM,kBAAkB;IACxB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IAGnB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,UAAU,eAAe;IAGzB,SAAS,cAAc;IACvB,UAAU,eAAe;IAGzB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAG3B,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,aAAa,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAChC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,KAAK,GACpB,SAAS,CAUX;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CA2BpD;AAsBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,SAAS,CA8GZ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,SAAS,CA4EZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAiEzD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,SAAS,CA0DX;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAO9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,SAAS,GAAG,KAAK,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAiBN;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAiBrE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"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"}