@prmichaelsen/agentbase-core 0.1.1 → 0.1.2

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.
Files changed (143) hide show
  1. package/README.md +204 -87
  2. package/dist/client/api-types.generated.d.ts +4024 -0
  3. package/dist/client/api-types.generated.d.ts.map +1 -0
  4. package/dist/client/api-types.generated.js +6 -0
  5. package/dist/client/api-types.generated.js.map +1 -0
  6. package/dist/client/app.d.ts +126 -0
  7. package/dist/client/app.d.ts.map +1 -0
  8. package/dist/client/app.js +107 -0
  9. package/dist/client/app.js.map +1 -0
  10. package/dist/client/http-transport.d.ts +42 -0
  11. package/dist/client/http-transport.d.ts.map +1 -0
  12. package/dist/client/http-transport.js +113 -0
  13. package/dist/client/http-transport.js.map +1 -0
  14. package/dist/client/index.d.ts +6 -0
  15. package/dist/client/index.d.ts.map +1 -0
  16. package/dist/client/index.js +9 -0
  17. package/dist/client/index.js.map +1 -0
  18. package/dist/client/oauth.d.ts +86 -0
  19. package/dist/client/oauth.d.ts.map +1 -0
  20. package/dist/client/oauth.js +148 -0
  21. package/dist/client/oauth.js.map +1 -0
  22. package/dist/client/svc.d.ts +511 -0
  23. package/dist/client/svc.d.ts.map +1 -0
  24. package/dist/client/svc.js +409 -0
  25. package/dist/client/svc.js.map +1 -0
  26. package/dist/config/index.d.ts +34 -0
  27. package/dist/config/index.d.ts.map +1 -0
  28. package/dist/config/index.js +50 -0
  29. package/dist/config/index.js.map +1 -0
  30. package/dist/errors/app-errors.d.ts +34 -0
  31. package/dist/errors/app-errors.d.ts.map +1 -0
  32. package/dist/errors/app-errors.js +34 -0
  33. package/dist/errors/app-errors.js.map +1 -0
  34. package/dist/errors/base.error.d.ts +8 -0
  35. package/dist/errors/base.error.d.ts.map +1 -0
  36. package/dist/errors/base.error.js +9 -0
  37. package/dist/errors/base.error.js.map +1 -0
  38. package/dist/errors/index.d.ts +6 -0
  39. package/dist/errors/index.d.ts.map +1 -0
  40. package/dist/errors/index.js +12 -0
  41. package/dist/errors/index.js.map +1 -0
  42. package/dist/index.d.ts +6 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +5 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/lib/auth/error-handler.d.ts +6 -0
  47. package/dist/lib/auth/error-handler.d.ts.map +1 -0
  48. package/dist/lib/auth/error-handler.js +18 -0
  49. package/dist/lib/auth/error-handler.js.map +1 -0
  50. package/dist/lib/auth/guards.d.ts +5 -6
  51. package/dist/lib/auth/guards.d.ts.map +1 -1
  52. package/dist/lib/auth/guards.js +7 -18
  53. package/dist/lib/auth/guards.js.map +1 -1
  54. package/dist/lib/auth/index.d.ts +1 -0
  55. package/dist/lib/auth/index.d.ts.map +1 -1
  56. package/dist/lib/auth/index.js +1 -0
  57. package/dist/lib/auth/index.js.map +1 -1
  58. package/dist/lib/auth/session.d.ts.map +1 -1
  59. package/dist/lib/auth/session.js +8 -7
  60. package/dist/lib/auth/session.js.map +1 -1
  61. package/dist/lib/rate-limiter.d.ts.map +1 -1
  62. package/dist/lib/rate-limiter.js +2 -1
  63. package/dist/lib/rate-limiter.js.map +1 -1
  64. package/dist/services/auth.interface.d.ts +15 -0
  65. package/dist/services/auth.interface.d.ts.map +1 -0
  66. package/dist/services/auth.interface.js +2 -0
  67. package/dist/services/auth.interface.js.map +1 -0
  68. package/dist/services/base.service.d.ts +17 -1
  69. package/dist/services/base.service.d.ts.map +1 -1
  70. package/dist/services/base.service.js +26 -3
  71. package/dist/services/base.service.js.map +1 -1
  72. package/dist/services/confirmation-token.service.d.ts +5 -1
  73. package/dist/services/confirmation-token.service.d.ts.map +1 -1
  74. package/dist/services/confirmation-token.service.js.map +1 -1
  75. package/dist/services/index.d.ts +3 -2
  76. package/dist/services/index.d.ts.map +1 -1
  77. package/dist/services/index.js +1 -1
  78. package/dist/services/index.js.map +1 -1
  79. package/dist/types/branded.d.ts +24 -0
  80. package/dist/types/branded.d.ts.map +1 -0
  81. package/dist/types/branded.js +9 -0
  82. package/dist/types/branded.js.map +1 -0
  83. package/dist/types/index.d.ts +4 -0
  84. package/dist/types/index.d.ts.map +1 -1
  85. package/dist/types/index.js +3 -1
  86. package/dist/types/index.js.map +1 -1
  87. package/dist/types/result.d.ts +20 -0
  88. package/dist/types/result.d.ts.map +1 -0
  89. package/dist/types/result.js +44 -0
  90. package/dist/types/result.js.map +1 -0
  91. package/package.json +16 -2
  92. package/dist/lib/auth/guards.test.d.ts +0 -2
  93. package/dist/lib/auth/guards.test.d.ts.map +0 -1
  94. package/dist/lib/auth/guards.test.js +0 -105
  95. package/dist/lib/auth/guards.test.js.map +0 -1
  96. package/dist/lib/auth/helpers.test.d.ts +0 -2
  97. package/dist/lib/auth/helpers.test.d.ts.map +0 -1
  98. package/dist/lib/auth/helpers.test.js +0 -43
  99. package/dist/lib/auth/helpers.test.js.map +0 -1
  100. package/dist/lib/auth/session.test.d.ts +0 -2
  101. package/dist/lib/auth/session.test.d.ts.map +0 -1
  102. package/dist/lib/auth/session.test.js +0 -114
  103. package/dist/lib/auth/session.test.js.map +0 -1
  104. package/dist/lib/firebase-admin.test.d.ts +0 -2
  105. package/dist/lib/firebase-admin.test.d.ts.map +0 -1
  106. package/dist/lib/firebase-admin.test.js +0 -36
  107. package/dist/lib/firebase-admin.test.js.map +0 -1
  108. package/dist/lib/firebase-client.test.d.ts +0 -2
  109. package/dist/lib/firebase-client.test.d.ts.map +0 -1
  110. package/dist/lib/firebase-client.test.js +0 -167
  111. package/dist/lib/firebase-client.test.js.map +0 -1
  112. package/dist/lib/format-time.test.d.ts +0 -2
  113. package/dist/lib/format-time.test.d.ts.map +0 -1
  114. package/dist/lib/format-time.test.js +0 -41
  115. package/dist/lib/format-time.test.js.map +0 -1
  116. package/dist/lib/linkify.test.d.ts +0 -2
  117. package/dist/lib/linkify.test.d.ts.map +0 -1
  118. package/dist/lib/linkify.test.js +0 -40
  119. package/dist/lib/linkify.test.js.map +0 -1
  120. package/dist/lib/logger.test.d.ts +0 -2
  121. package/dist/lib/logger.test.d.ts.map +0 -1
  122. package/dist/lib/logger.test.js +0 -167
  123. package/dist/lib/logger.test.js.map +0 -1
  124. package/dist/lib/rate-limiter.test.d.ts +0 -2
  125. package/dist/lib/rate-limiter.test.d.ts.map +0 -1
  126. package/dist/lib/rate-limiter.test.js +0 -70
  127. package/dist/lib/rate-limiter.test.js.map +0 -1
  128. package/dist/lib/uuid.test.d.ts +0 -2
  129. package/dist/lib/uuid.test.d.ts.map +0 -1
  130. package/dist/lib/uuid.test.js +0 -22
  131. package/dist/lib/uuid.test.js.map +0 -1
  132. package/dist/services/base.service.test.d.ts +0 -2
  133. package/dist/services/base.service.test.d.ts.map +0 -1
  134. package/dist/services/base.service.test.js +0 -62
  135. package/dist/services/base.service.test.js.map +0 -1
  136. package/dist/services/confirmation-token.service.test.d.ts +0 -2
  137. package/dist/services/confirmation-token.service.test.d.ts.map +0 -1
  138. package/dist/services/confirmation-token.service.test.js +0 -65
  139. package/dist/services/confirmation-token.service.test.js.map +0 -1
  140. package/dist/smoke.test.d.ts +0 -2
  141. package/dist/smoke.test.d.ts.map +0 -1
  142. package/dist/smoke.test.js +0 -7
  143. package/dist/smoke.test.js.map +0 -1
@@ -0,0 +1,409 @@
1
+ // ─── Auth ───────────────────────────────────────────
2
+ export class AuthSvc {
3
+ http;
4
+ constructor(http) {
5
+ this.http = http;
6
+ }
7
+ login(body) {
8
+ return this.http.post('/api/auth/login', body);
9
+ }
10
+ logout() {
11
+ return this.http.post('/api/auth/logout');
12
+ }
13
+ getSession() {
14
+ return this.http.get('/api/auth/session');
15
+ }
16
+ connectAcp() {
17
+ return this.http.post('/api/auth/acp/connect');
18
+ }
19
+ disconnectAcp() {
20
+ return this.http.post('/api/auth/acp/disconnect');
21
+ }
22
+ githubCallback(body) {
23
+ return this.http.post('/api/auth/github/callback', body);
24
+ }
25
+ instagramCallback(body) {
26
+ return this.http.post('/api/auth/instagram/callback', body);
27
+ }
28
+ youtubeCallback(body) {
29
+ return this.http.post('/api/auth/youtube/callback', body);
30
+ }
31
+ eventbriteConnect() {
32
+ return this.http.post('/api/auth/eventbrite/connect');
33
+ }
34
+ eventbriteCallback(body) {
35
+ return this.http.post('/api/auth/eventbrite/callback', body);
36
+ }
37
+ googleCalendarConnect() {
38
+ return this.http.post('/api/auth/google-calendar/connect');
39
+ }
40
+ }
41
+ // ─── OAuth ──────────────────────────────────────────
42
+ export class OAuthSvc {
43
+ http;
44
+ constructor(http) {
45
+ this.http = http;
46
+ }
47
+ getMetadata() {
48
+ return this.http.get('/.well-known/oauth-authorization-server');
49
+ }
50
+ authorize(body) {
51
+ return this.http.post('/oauth/authorize', body);
52
+ }
53
+ token(body) {
54
+ return this.http.post('/api/oauth/token', body);
55
+ }
56
+ }
57
+ // ─── Memories ───────────────────────────────────────
58
+ export class MemoriesSvc {
59
+ http;
60
+ constructor(http) {
61
+ this.http = http;
62
+ }
63
+ feed(params) {
64
+ return this.http.get('/api/memories/feed', params);
65
+ }
66
+ search(body) {
67
+ return this.http.post('/api/memories/search', body);
68
+ }
69
+ get(memoryId) {
70
+ return this.http.get(`/api/memories/${memoryId}`);
71
+ }
72
+ getSimilar(memoryId, params) {
73
+ return this.http.get(`/api/memories/${memoryId}/similar`, params);
74
+ }
75
+ batch(ids) {
76
+ return this.http.post('/api/memories/batch', { ids });
77
+ }
78
+ addComment(memoryId, body) {
79
+ return this.http.post(`/api/memories/${memoryId}/comments`, body);
80
+ }
81
+ rate(memoryId, rating) {
82
+ return this.http.post(`/api/memories/${memoryId}/rate`, { rating });
83
+ }
84
+ publish(memoryId) {
85
+ return this.http.post(`/api/memories/${memoryId}/publish`);
86
+ }
87
+ retract(memoryId) {
88
+ return this.http.post(`/api/memories/${memoryId}/retract`);
89
+ }
90
+ delete(memoryId) {
91
+ return this.http.post(`/api/memories/${memoryId}/delete`);
92
+ }
93
+ restore(memoryId) {
94
+ return this.http.post(`/api/memories/${memoryId}/restore`);
95
+ }
96
+ organize(memoryId, body) {
97
+ return this.http.post(`/api/memories/${memoryId}/organize`, body);
98
+ }
99
+ confirm(memoryId) {
100
+ return this.http.post(`/api/memories/${memoryId}/confirm`);
101
+ }
102
+ getConversations(memoryId) {
103
+ return this.http.get(`/api/memory-conversations/${memoryId}`);
104
+ }
105
+ }
106
+ // ─── Conversations ──────────────────────────────────
107
+ export class ConversationsSvc {
108
+ http;
109
+ constructor(http) {
110
+ this.http = http;
111
+ }
112
+ list() {
113
+ return this.http.get('/api/conversations');
114
+ }
115
+ create(body) {
116
+ return this.http.post('/api/conversations/create', body);
117
+ }
118
+ get(conversationId) {
119
+ return this.http.get(`/api/conversations/${conversationId}`);
120
+ }
121
+ addMessage(conversationId, body) {
122
+ return this.http.post(`/api/conversations/${conversationId}/messages`, body);
123
+ }
124
+ bulkImport(conversationId, messages) {
125
+ return this.http.post(`/api/conversations/${conversationId}/bulk-import`, { messages });
126
+ }
127
+ }
128
+ // ─── Profiles ───────────────────────────────────────
129
+ export class ProfilesSvc {
130
+ http;
131
+ constructor(http) {
132
+ this.http = http;
133
+ }
134
+ get(userId) {
135
+ return this.http.get(`/api/profile/${userId}`);
136
+ }
137
+ feed(userId, params) {
138
+ return this.http.get(`/api/profile/${userId}/feed`, params);
139
+ }
140
+ memoriesCount(userId) {
141
+ return this.http.get(`/api/profile/${userId}/memories/count`);
142
+ }
143
+ checkUsername(username) {
144
+ return this.http.post('/api/profile/username-check', { username });
145
+ }
146
+ list() {
147
+ return this.http.get('/api/profiles');
148
+ }
149
+ }
150
+ // ─── Groups ─────────────────────────────────────────
151
+ export class GroupsSvc {
152
+ http;
153
+ constructor(http) {
154
+ this.http = http;
155
+ }
156
+ list() {
157
+ return this.http.get('/api/groups');
158
+ }
159
+ create(body) {
160
+ return this.http.post('/api/groups/create', body);
161
+ }
162
+ batch(ids) {
163
+ return this.http.post('/api/groups/batch', { ids });
164
+ }
165
+ get(groupId) {
166
+ return this.http.get(`/api/groups/${groupId}`);
167
+ }
168
+ update(groupId, body) {
169
+ return this.http.patch(`/api/groups/${groupId}`, body);
170
+ }
171
+ delete(groupId) {
172
+ return this.http.delete(`/api/groups/${groupId}`);
173
+ }
174
+ listMembers(groupId) {
175
+ return this.http.get(`/api/groups/${groupId}/members`);
176
+ }
177
+ addMember(groupId, userId) {
178
+ return this.http.post(`/api/groups/${groupId}/members/${userId}`);
179
+ }
180
+ removeMember(groupId, userId) {
181
+ return this.http.delete(`/api/groups/${groupId}/members/${userId}`);
182
+ }
183
+ ban(groupId, userId) {
184
+ return this.http.post(`/api/groups/${groupId}/ban`, { userId });
185
+ }
186
+ unban(groupId, userId) {
187
+ return this.http.post(`/api/groups/${groupId}/unban`, { userId });
188
+ }
189
+ mute(groupId, userId) {
190
+ return this.http.post(`/api/groups/${groupId}/mute`, { userId });
191
+ }
192
+ unmute(groupId, userId) {
193
+ return this.http.post(`/api/groups/${groupId}/unmute`, { userId });
194
+ }
195
+ getLinks(groupId) {
196
+ return this.http.post(`/api/groups/${groupId}/links`);
197
+ }
198
+ redeemLink(code) {
199
+ return this.http.post(`/api/group-links/${code}/redeem`);
200
+ }
201
+ }
202
+ // ─── DMs ────────────────────────────────────────────
203
+ export class DmsSvc {
204
+ http;
205
+ constructor(http) {
206
+ this.http = http;
207
+ }
208
+ list() {
209
+ return this.http.get('/api/dm');
210
+ }
211
+ create(participantId) {
212
+ return this.http.post('/api/dm/create', { participantId });
213
+ }
214
+ get(conversationId) {
215
+ return this.http.get(`/api/dm/${conversationId}`);
216
+ }
217
+ createLink() {
218
+ return this.http.post('/api/dm-links');
219
+ }
220
+ redeemLink(code) {
221
+ return this.http.post(`/api/dm-links/${code}/redeem`);
222
+ }
223
+ }
224
+ // ─── Search ─────────────────────────────────────────
225
+ export class SearchSvc {
226
+ http;
227
+ constructor(http) {
228
+ this.http = http;
229
+ }
230
+ users(query) {
231
+ return this.http.post('/api/search/users', { query });
232
+ }
233
+ conversations(query) {
234
+ return this.http.post('/api/search/conversations', { query });
235
+ }
236
+ groups(query) {
237
+ return this.http.post('/api/search/groups', { query });
238
+ }
239
+ messages(query) {
240
+ return this.http.post('/api/search/messages', { query });
241
+ }
242
+ }
243
+ // ─── Notifications ──────────────────────────────────
244
+ export class NotificationsSvc {
245
+ http;
246
+ constructor(http) {
247
+ this.http = http;
248
+ }
249
+ list() {
250
+ return this.http.get('/api/notifications');
251
+ }
252
+ get(notificationId) {
253
+ return this.http.get(`/api/notifications/${notificationId}`);
254
+ }
255
+ delete(notificationId) {
256
+ return this.http.delete(`/api/notifications/${notificationId}`);
257
+ }
258
+ markAllRead() {
259
+ return this.http.post('/api/notifications', { action: 'mark_all_read' });
260
+ }
261
+ unreadCount() {
262
+ return this.http.get('/api/notifications/unread-count');
263
+ }
264
+ registerFcmToken(token) {
265
+ return this.http.post('/api/notifications/fcm-token', { token });
266
+ }
267
+ }
268
+ // ─── Relationships ──────────────────────────────────
269
+ export class RelationshipsSvc {
270
+ http;
271
+ constructor(http) {
272
+ this.http = http;
273
+ }
274
+ list() {
275
+ return this.http.get('/api/relationships');
276
+ }
277
+ create(relatedUserId) {
278
+ return this.http.post('/api/relationships', { relatedUserId });
279
+ }
280
+ }
281
+ // ─── Boards ─────────────────────────────────────────
282
+ export class BoardsSvc {
283
+ http;
284
+ constructor(http) {
285
+ this.http = http;
286
+ }
287
+ list() {
288
+ return this.http.get('/api/boards');
289
+ }
290
+ create(name) {
291
+ return this.http.post('/api/boards', { name });
292
+ }
293
+ get(boardId) {
294
+ return this.http.get(`/api/boards/${boardId}`);
295
+ }
296
+ update(boardId, body) {
297
+ return this.http.patch(`/api/boards/${boardId}`, body);
298
+ }
299
+ delete(boardId) {
300
+ return this.http.delete(`/api/boards/${boardId}`);
301
+ }
302
+ listWidgets(boardId) {
303
+ return this.http.get(`/api/boards/${boardId}/widgets`);
304
+ }
305
+ addWidget(boardId, body) {
306
+ return this.http.post(`/api/boards/${boardId}/widgets`, body);
307
+ }
308
+ }
309
+ // ─── Tokens ─────────────────────────────────────────
310
+ export class TokensSvc {
311
+ http;
312
+ constructor(http) {
313
+ this.http = http;
314
+ }
315
+ list() {
316
+ return this.http.get('/api/tokens');
317
+ }
318
+ create(name) {
319
+ return this.http.post('/api/tokens', { name });
320
+ }
321
+ update(tokenId, body) {
322
+ return this.http.patch(`/api/tokens/${tokenId}`, body);
323
+ }
324
+ delete(tokenId) {
325
+ return this.http.delete(`/api/tokens/${tokenId}`);
326
+ }
327
+ }
328
+ // ─── Integrations ───────────────────────────────────
329
+ export class IntegrationsSvc {
330
+ http;
331
+ constructor(http) {
332
+ this.http = http;
333
+ }
334
+ list() {
335
+ return this.http.get('/api/integrations');
336
+ }
337
+ disconnect(provider) {
338
+ return this.http.post(`/api/integrations/${provider}/disconnect`);
339
+ }
340
+ }
341
+ // ─── Settings ───────────────────────────────────────
342
+ export class SettingsSvc {
343
+ http;
344
+ constructor(http) {
345
+ this.http = http;
346
+ }
347
+ deleteAccount() {
348
+ return this.http.post('/api/settings/delete-account');
349
+ }
350
+ toggleGhost() {
351
+ return this.http.post('/api/settings/ghost');
352
+ }
353
+ updateVisibility(visibility) {
354
+ return this.http.post('/api/settings/visibility', { visibility });
355
+ }
356
+ acceptAiConsent() {
357
+ return this.http.post('/api/consent/ai');
358
+ }
359
+ acceptTos() {
360
+ return this.http.post('/api/consent/tos');
361
+ }
362
+ }
363
+ // ─── Payments ───────────────────────────────────────
364
+ export class PaymentsSvc {
365
+ http;
366
+ constructor(http) {
367
+ this.http = http;
368
+ }
369
+ createCheckout() {
370
+ return this.http.post('/api/stripe/checkout');
371
+ }
372
+ getBillingPortal() {
373
+ return this.http.post('/api/stripe/portal');
374
+ }
375
+ syncSubscription() {
376
+ return this.http.post('/api/stripe/sync');
377
+ }
378
+ getSubscription() {
379
+ return this.http.get('/api/subscription');
380
+ }
381
+ }
382
+ // ─── Usage ──────────────────────────────────────────
383
+ export class UsageSvc {
384
+ http;
385
+ constructor(http) {
386
+ this.http = http;
387
+ }
388
+ get() {
389
+ return this.http.get('/api/usage');
390
+ }
391
+ }
392
+ // ─── Storage ────────────────────────────────────────
393
+ // NOTE: File uploads use a WebSocket-based signed URL flow (GET /api/storage/ws),
394
+ // not a simple REST POST. This is out of scope for the REST client SDK.
395
+ // Implement upload flows directly using the WebSocket endpoint in your application.
396
+ // ─── Jobs ───────────────────────────────────────────
397
+ export class JobsSvc {
398
+ http;
399
+ constructor(http) {
400
+ this.http = http;
401
+ }
402
+ get(jobId) {
403
+ return this.http.get(`/api/jobs/${jobId}`);
404
+ }
405
+ cancel(jobId) {
406
+ return this.http.post(`/api/jobs/${jobId}/cancel`);
407
+ }
408
+ }
409
+ //# sourceMappingURL=svc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svc.js","sourceRoot":"","sources":["../../src/client/svc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export interface FirebaseAdminConfig {
2
+ serviceAccountKey?: string;
3
+ projectId?: string;
4
+ }
5
+ export interface FirebaseClientConfig {
6
+ apiKey?: string;
7
+ authDomain?: string;
8
+ projectId?: string;
9
+ storageBucket?: string;
10
+ messagingSenderId?: string;
11
+ appId?: string;
12
+ measurementId?: string;
13
+ }
14
+ export interface AuthConfig {
15
+ ownerEmails: string[];
16
+ }
17
+ export interface AgentbaseConfig {
18
+ firebaseAdmin: FirebaseAdminConfig;
19
+ firebaseClient: FirebaseClientConfig;
20
+ auth: AuthConfig;
21
+ }
22
+ /**
23
+ * Load config from environment variables (or a passed env object).
24
+ */
25
+ export declare function loadConfig(env?: Record<string, string | undefined>): AgentbaseConfig;
26
+ /**
27
+ * Validate that required config fields are present.
28
+ * Throws ValidationError listing all missing fields.
29
+ */
30
+ export declare function validateConfig(config: AgentbaseConfig, options?: {
31
+ requireFirebaseAdmin?: boolean;
32
+ requireFirebaseClient?: boolean;
33
+ }): void;
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,mBAAmB,CAAA;IAClC,cAAc,EAAE,oBAAoB,CAAA;IACpC,IAAI,EAAE,UAAU,CAAA;CACjB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,eAAe,CAmBjG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5E,IAAI,CAmBN"}
@@ -0,0 +1,50 @@
1
+ // src/config/index.ts
2
+ // Pattern: Config Environment (core-sdk.config-environment.md)
3
+ // Ported from remember-core
4
+ import { ValidationError } from '../errors/index.js';
5
+ /**
6
+ * Load config from environment variables (or a passed env object).
7
+ */
8
+ export function loadConfig(env = process.env) {
9
+ return {
10
+ firebaseAdmin: {
11
+ serviceAccountKey: env.FIREBASE_ADMIN_SERVICE_ACCOUNT_KEY,
12
+ projectId: env.FIREBASE_PROJECT_ID,
13
+ },
14
+ firebaseClient: {
15
+ apiKey: env.VITE_FIREBASE_API_KEY ?? env.FIREBASE_API_KEY,
16
+ authDomain: env.VITE_FIREBASE_AUTH_DOMAIN ?? env.FIREBASE_AUTH_DOMAIN,
17
+ projectId: env.VITE_FIREBASE_PROJECT_ID ?? env.FIREBASE_PROJECT_ID,
18
+ storageBucket: env.VITE_FIREBASE_STORAGE_BUCKET ?? env.FIREBASE_STORAGE_BUCKET,
19
+ messagingSenderId: env.VITE_FIREBASE_MESSAGING_SENDER_ID ?? env.FIREBASE_MESSAGING_SENDER_ID,
20
+ appId: env.VITE_FIREBASE_APP_ID ?? env.FIREBASE_APP_ID,
21
+ measurementId: env.VITE_FIREBASE_MEASUREMENT_ID ?? env.FIREBASE_MEASUREMENT_ID,
22
+ },
23
+ auth: {
24
+ ownerEmails: (env.OWNER_EMAILS ?? '').split(',').map(e => e.trim()).filter(Boolean),
25
+ },
26
+ };
27
+ }
28
+ /**
29
+ * Validate that required config fields are present.
30
+ * Throws ValidationError listing all missing fields.
31
+ */
32
+ export function validateConfig(config, options) {
33
+ const missing = [];
34
+ if (options?.requireFirebaseAdmin) {
35
+ if (!config.firebaseAdmin.serviceAccountKey)
36
+ missing.push('FIREBASE_ADMIN_SERVICE_ACCOUNT_KEY');
37
+ if (!config.firebaseAdmin.projectId)
38
+ missing.push('FIREBASE_PROJECT_ID');
39
+ }
40
+ if (options?.requireFirebaseClient) {
41
+ if (!config.firebaseClient.apiKey)
42
+ missing.push('FIREBASE_API_KEY');
43
+ if (!config.firebaseClient.projectId)
44
+ missing.push('FIREBASE_PROJECT_ID');
45
+ }
46
+ if (missing.length > 0) {
47
+ throw new ValidationError(`Missing required config: ${missing.join(', ')}`, { missing });
48
+ }
49
+ }
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,+DAA+D;AAC/D,4BAA4B;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AA2BpD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAA0C,OAAO,CAAC,GAAG;IAC9E,OAAO;QACL,aAAa,EAAE;YACb,iBAAiB,EAAE,GAAG,CAAC,kCAAkC;YACzD,SAAS,EAAE,GAAG,CAAC,mBAAmB;SACnC;QACD,cAAc,EAAE;YACd,MAAM,EAAE,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,gBAAgB;YACzD,UAAU,EAAE,GAAG,CAAC,yBAAyB,IAAI,GAAG,CAAC,oBAAoB;YACrE,SAAS,EAAE,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,mBAAmB;YAClE,aAAa,EAAE,GAAG,CAAC,4BAA4B,IAAI,GAAG,CAAC,uBAAuB;YAC9E,iBAAiB,EAAE,GAAG,CAAC,iCAAiC,IAAI,GAAG,CAAC,4BAA4B;YAC5F,KAAK,EAAE,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC,eAAe;YACtD,aAAa,EAAE,GAAG,CAAC,4BAA4B,IAAI,GAAG,CAAC,uBAAuB;SAC/E;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;SACpF;KACF,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAuB,EACvB,OAA6E;IAE7E,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,IAAI,OAAO,EAAE,oBAAoB,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB;YAAE,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;QAC/F,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACnE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAChD,EAAE,OAAO,EAAE,CACZ,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { AppError, type ErrorKind } from './base.error.js';
2
+ export declare class ValidationError extends AppError {
3
+ readonly kind: ErrorKind;
4
+ readonly statusCode = 400;
5
+ }
6
+ export declare class NotFoundError extends AppError {
7
+ readonly kind: ErrorKind;
8
+ readonly statusCode = 404;
9
+ }
10
+ export declare class UnauthorizedError extends AppError {
11
+ readonly kind: ErrorKind;
12
+ readonly statusCode = 401;
13
+ }
14
+ export declare class ForbiddenError extends AppError {
15
+ readonly kind: ErrorKind;
16
+ readonly statusCode = 403;
17
+ }
18
+ export declare class ConflictError extends AppError {
19
+ readonly kind: ErrorKind;
20
+ readonly statusCode = 409;
21
+ }
22
+ export declare class RateLimitError extends AppError {
23
+ readonly kind: ErrorKind;
24
+ readonly statusCode = 429;
25
+ }
26
+ export declare class ExternalError extends AppError {
27
+ readonly kind: ErrorKind;
28
+ readonly statusCode = 502;
29
+ }
30
+ export declare class InternalError extends AppError {
31
+ readonly kind: ErrorKind;
32
+ readonly statusCode = 500;
33
+ }
34
+ //# sourceMappingURL=app-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-errors.d.ts","sourceRoot":"","sources":["../../src/errors/app-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE1D,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAe;IACvC,QAAQ,CAAC,UAAU,OAAM;CAC1B;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAc;IACtC,QAAQ,CAAC,UAAU,OAAM;CAC1B;AAED,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAiB;IACzC,QAAQ,CAAC,UAAU,OAAM;CAC1B;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAc;IACtC,QAAQ,CAAC,UAAU,OAAM;CAC1B;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAa;IACrC,QAAQ,CAAC,UAAU,OAAM;CAC1B;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAe;IACvC,QAAQ,CAAC,UAAU,OAAM;CAC1B;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAa;IACrC,QAAQ,CAAC,UAAU,OAAM;CAC1B;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAa;IACrC,QAAQ,CAAC,UAAU,OAAM;CAC1B"}
@@ -0,0 +1,34 @@
1
+ import { AppError } from './base.error.js';
2
+ export class ValidationError extends AppError {
3
+ kind = 'VALIDATION';
4
+ statusCode = 400;
5
+ }
6
+ export class NotFoundError extends AppError {
7
+ kind = 'NOT_FOUND';
8
+ statusCode = 404;
9
+ }
10
+ export class UnauthorizedError extends AppError {
11
+ kind = 'UNAUTHORIZED';
12
+ statusCode = 401;
13
+ }
14
+ export class ForbiddenError extends AppError {
15
+ kind = 'FORBIDDEN';
16
+ statusCode = 403;
17
+ }
18
+ export class ConflictError extends AppError {
19
+ kind = 'CONFLICT';
20
+ statusCode = 409;
21
+ }
22
+ export class RateLimitError extends AppError {
23
+ kind = 'RATE_LIMIT';
24
+ statusCode = 429;
25
+ }
26
+ export class ExternalError extends AppError {
27
+ kind = 'EXTERNAL';
28
+ statusCode = 502;
29
+ }
30
+ export class InternalError extends AppError {
31
+ kind = 'INTERNAL';
32
+ statusCode = 500;
33
+ }
34
+ //# sourceMappingURL=app-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-errors.js","sourceRoot":"","sources":["../../src/errors/app-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,iBAAiB,CAAA;AAE1D,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAClC,IAAI,GAAc,YAAY,CAAA;IAC9B,UAAU,GAAG,GAAG,CAAA;CAC1B;AAED,MAAM,OAAO,aAAc,SAAQ,QAAQ;IAChC,IAAI,GAAc,WAAW,CAAA;IAC7B,UAAU,GAAG,GAAG,CAAA;CAC1B;AAED,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IACpC,IAAI,GAAc,cAAc,CAAA;IAChC,UAAU,GAAG,GAAG,CAAA;CAC1B;AAED,MAAM,OAAO,cAAe,SAAQ,QAAQ;IACjC,IAAI,GAAc,WAAW,CAAA;IAC7B,UAAU,GAAG,GAAG,CAAA;CAC1B;AAED,MAAM,OAAO,aAAc,SAAQ,QAAQ;IAChC,IAAI,GAAc,UAAU,CAAA;IAC5B,UAAU,GAAG,GAAG,CAAA;CAC1B;AAED,MAAM,OAAO,cAAe,SAAQ,QAAQ;IACjC,IAAI,GAAc,YAAY,CAAA;IAC9B,UAAU,GAAG,GAAG,CAAA;CAC1B;AAED,MAAM,OAAO,aAAc,SAAQ,QAAQ;IAChC,IAAI,GAAc,UAAU,CAAA;IAC5B,UAAU,GAAG,GAAG,CAAA;CAC1B;AAED,MAAM,OAAO,aAAc,SAAQ,QAAQ;IAChC,IAAI,GAAc,UAAU,CAAA;IAC5B,UAAU,GAAG,GAAG,CAAA;CAC1B"}
@@ -0,0 +1,8 @@
1
+ export type ErrorKind = 'VALIDATION' | 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'RATE_LIMIT' | 'EXTERNAL' | 'INTERNAL';
2
+ export declare abstract class AppError extends Error {
3
+ abstract readonly kind: ErrorKind;
4
+ abstract readonly statusCode: number;
5
+ readonly context?: Record<string, unknown>;
6
+ constructor(message: string, context?: Record<string, unknown>);
7
+ }
8
+ //# sourceMappingURL=base.error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.error.d.ts","sourceRoot":"","sources":["../../src/errors/base.error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,WAAW,GACX,cAAc,GACd,WAAW,GACX,UAAU,GACV,YAAY,GACZ,UAAU,GACV,UAAU,CAAA;AAEd,8BAAsB,QAAS,SAAQ,KAAK;IAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAE9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAK/D"}
@@ -0,0 +1,9 @@
1
+ export class AppError extends Error {
2
+ context;
3
+ constructor(message, context) {
4
+ super(message);
5
+ this.name = this.constructor.name;
6
+ this.context = context;
7
+ }
8
+ }
9
+ //# sourceMappingURL=base.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.error.js","sourceRoot":"","sources":["../../src/errors/base.error.ts"],"names":[],"mappings":"AAUA,MAAM,OAAgB,QAAS,SAAQ,KAAK;IAGjC,OAAO,CAA0B;IAE1C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export { AppError, type ErrorKind } from './base.error.js';
2
+ export { ValidationError, NotFoundError, UnauthorizedError, ForbiddenError, ConflictError, RateLimitError, ExternalError, InternalError, } from './app-errors.js';
3
+ import { AppError } from './base.error.js';
4
+ export declare function isAppError(err: unknown): err is AppError;
5
+ export declare function errorToStatusCode(err: unknown): number;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAExD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGtD"}
@@ -0,0 +1,12 @@
1
+ export { AppError } from './base.error.js';
2
+ export { ValidationError, NotFoundError, UnauthorizedError, ForbiddenError, ConflictError, RateLimitError, ExternalError, InternalError, } from './app-errors.js';
3
+ import { AppError } from './base.error.js';
4
+ export function isAppError(err) {
5
+ return err instanceof AppError;
6
+ }
7
+ export function errorToStatusCode(err) {
8
+ if (err instanceof AppError)
9
+ return err.statusCode;
10
+ return 500;
11
+ }
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,OAAO,GAAG,YAAY,QAAQ,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,GAAG,CAAC,UAAU,CAAA;IAClD,OAAO,GAAG,CAAA;AACZ,CAAC"}