@slorenzot/memento-core 2.0.6 → 2.0.7

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.
@@ -38,6 +38,11 @@ export declare class SyncClient {
38
38
  * GET /api/v1/sync/projects
39
39
  */
40
40
  projects(): Promise<SyncProjectsResponse>;
41
+ /**
42
+ * Extract detail message and raw body from a sync error response.
43
+ * The mementohub.xyz API returns { error: { code, message } } for validation errors.
44
+ */
45
+ private extractErrorDetail;
41
46
  /**
42
47
  * Make an authenticated request to the sync API.
43
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../src/sync/sync-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACvC,aAAa,CAAC,EAAE,OAAO,KAAK,CAAC;KAC9B;IAMD;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAa3G;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAU5D;;;OAGG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS5D;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAS/C;;OAEG;YACW,OAAO;CAgFtB"}
1
+ {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../src/sync/sync-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACvC,aAAa,CAAC,EAAE,OAAO,KAAK,CAAC;KAC9B;IAMD;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAa3G;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAU5D;;;OAGG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS5D;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAS/C;;;OAGG;YACW,kBAAkB;IAmBhC;;OAEG;YACW,OAAO;CAqEtB"}
@@ -54,6 +54,30 @@ class SyncClient {
54
54
  const response = await this.request('GET', '/api/v1/sync/projects');
55
55
  return response.data;
56
56
  }
57
+ /**
58
+ * Extract detail message and raw body from a sync error response.
59
+ * The mementohub.xyz API returns { error: { code, message } } for validation errors.
60
+ */
61
+ async extractErrorDetail(response) {
62
+ const text = await response.text().catch(() => 'Unknown error');
63
+ let detail = '';
64
+ try {
65
+ const parsed = JSON.parse(text);
66
+ if (parsed?.error?.message) {
67
+ detail = ` — ${parsed.error.message}`;
68
+ }
69
+ else if (parsed?.message) {
70
+ detail = ` — ${parsed.message}`;
71
+ }
72
+ }
73
+ catch {
74
+ // Not JSON — use raw text if it's short enough
75
+ if (text && text.length < 500) {
76
+ detail = ` — ${text}`;
77
+ }
78
+ }
79
+ return { detail, rawBody: text };
80
+ }
57
81
  /**
58
82
  * Make an authenticated request to the sync API.
59
83
  */
@@ -72,35 +96,20 @@ class SyncClient {
72
96
  body: body ? JSON.stringify(body) : undefined,
73
97
  });
74
98
  if (response.status === 401) {
75
- throw new types_js_1.SyncApiError('Authentication failed. Run `memento login` again.', 401, 'UNAUTHORIZED');
99
+ const { detail, rawBody } = await this.extractErrorDetail(response);
100
+ throw new types_js_1.SyncApiError(`Authentication failed. Run \`memento login\` again.${detail}`, 401, 'UNAUTHORIZED', rawBody);
76
101
  }
77
102
  if (response.status === 403) {
78
- throw new types_js_1.SyncApiError('Access denied. Check your project permissions.', 403, 'FORBIDDEN');
103
+ const { detail, rawBody } = await this.extractErrorDetail(response);
104
+ throw new types_js_1.SyncApiError(`Access denied. Check your project permissions.${detail}`, 403, 'FORBIDDEN', rawBody);
79
105
  }
80
106
  if (response.status === 429) {
81
- throw new types_js_1.SyncApiError('Rate limited. Please wait before retrying.', 429, 'RATE_LIMITED');
107
+ const { detail, rawBody } = await this.extractErrorDetail(response);
108
+ throw new types_js_1.SyncApiError(`Rate limited. Please wait before retrying.${detail}`, 429, 'RATE_LIMITED', rawBody);
82
109
  }
83
110
  if (!response.ok) {
84
- const text = await response.text().catch(() => 'Unknown error');
85
- // Try to extract a more specific error message from the response body.
86
- // The mementohub.xyz API returns { error: { code, message } } for validation errors.
87
- let detail = '';
88
- try {
89
- const parsed = JSON.parse(text);
90
- if (parsed?.error?.message) {
91
- detail = ` — ${parsed.error.message}`;
92
- }
93
- else if (parsed?.message) {
94
- detail = ` — ${parsed.message}`;
95
- }
96
- }
97
- catch {
98
- // Not JSON — use raw text if it's short enough
99
- if (text && text.length < 500) {
100
- detail = ` — ${text}`;
101
- }
102
- }
103
- throw new types_js_1.SyncApiError(`Sync API error: ${response.status} ${response.statusText}${detail}`, response.status, undefined, text);
111
+ const { detail, rawBody } = await this.extractErrorDetail(response);
112
+ throw new types_js_1.SyncApiError(`Sync API error: ${response.status} ${response.statusText}${detail}`, response.status, undefined, rawBody);
104
113
  }
105
114
  return response.json();
106
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client.js","sourceRoot":"","sources":["../../src/sync/sync-client.ts"],"names":[],"mappings":";;;AAOA,yCAA0C;AAE1C;;;;;GAKG;AACH,MAAa,UAAU;IACb,OAAO,CAAS;IAChB,QAAQ,CAA+B;IACvC,OAAO,CAAe;IAE9B,YAAY,OAIX;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,MAAoE;QAC7E,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,MAAM;YAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,qBAAqB,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrC,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,IAAqB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,MAAM,EACN,mBAAmB,EACnB,IAAI,CACL,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,iCAAiC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CACjE,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,KAAK,EACL,uBAAuB,CACxB,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,uBAAY,CACpB,+CAA+C,EAC/C,GAAG,EACH,cAAc,CACf,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAA2B;YACtC,eAAe,EAAE,UAAU,KAAK,EAAE;YAClC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YAC5D,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,uBAAY,CACpB,mDAAmD,EACnD,GAAG,EACH,cAAc,CACf,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,uBAAY,CACpB,gDAAgD,EAChD,GAAG,EACH,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,uBAAY,CACpB,4CAA4C,EAC5C,GAAG,EACH,cAAc,CACf,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;YAEhE,uEAAuE;YACvE,qFAAqF;YACrF,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;oBAC3B,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACxC,CAAC;qBAAM,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC3B,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;gBAC/C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAC9B,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,MAAM,IAAI,uBAAY,CACpB,mBAAmB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,MAAM,EAAE,EACpE,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,IAAI,CACL,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;CACF;AA3JD,gCA2JC"}
1
+ {"version":3,"file":"sync-client.js","sourceRoot":"","sources":["../../src/sync/sync-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slorenzot/memento-core",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "description": "Core memory engine for Memento with bun:sqlite, FTS5 search, semantic search, soft delete, merge, journal, and export",
5
5
  "keywords": [
6
6
  "memento",