@soulbatical/tetra-core 0.1.33 → 0.1.35
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/core/createApp.d.ts +11 -0
- package/dist/core/createApp.d.ts.map +1 -1
- package/dist/core/createApp.js +131 -3
- package/dist/core/createApp.js.map +1 -1
- package/dist/core/dualWriteProxy.d.ts +23 -0
- package/dist/core/dualWriteProxy.d.ts.map +1 -0
- package/dist/core/dualWriteProxy.js +220 -0
- package/dist/core/dualWriteProxy.js.map +1 -0
- package/dist/core/systemDb.d.ts +3 -0
- package/dist/core/systemDb.d.ts.map +1 -1
- package/dist/core/systemDb.js +9 -1
- package/dist/core/systemDb.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/email/gmail.d.ts +23 -1
- package/dist/shared/email/gmail.d.ts.map +1 -1
- package/dist/shared/email/gmail.js +129 -5
- package/dist/shared/email/gmail.js.map +1 -1
- package/dist/shared/email/index.d.ts +2 -2
- package/dist/shared/email/index.d.ts.map +1 -1
- package/dist/shared/email/index.js +1 -1
- package/dist/shared/email/index.js.map +1 -1
- package/package.json +1 -1
package/dist/core/createApp.d.ts
CHANGED
|
@@ -24,6 +24,15 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import express, { Express, Request, Response, NextFunction } from 'express';
|
|
26
26
|
import { SecurityConfig } from '../middleware/securityMiddleware.js';
|
|
27
|
+
export interface HealthCheckConfig {
|
|
28
|
+
/** Enable database connectivity check on ?deep=true (default: true if SUPABASE_URL is set) */
|
|
29
|
+
database?: boolean;
|
|
30
|
+
/** Custom health checks: name → async function returning boolean */
|
|
31
|
+
custom?: Array<{
|
|
32
|
+
name: string;
|
|
33
|
+
check: () => Promise<boolean>;
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
27
36
|
export interface CreateAppConfig {
|
|
28
37
|
/** Project name for logging */
|
|
29
38
|
projectName: string;
|
|
@@ -53,6 +62,8 @@ export interface CreateAppConfig {
|
|
|
53
62
|
requiredEnvVars?: string[];
|
|
54
63
|
/** Skip environment validation (default: false) */
|
|
55
64
|
skipValidation?: boolean;
|
|
65
|
+
/** Health check configuration for /api/health?deep=true */
|
|
66
|
+
healthChecks?: HealthCheckConfig;
|
|
56
67
|
}
|
|
57
68
|
export declare function createApp(config: CreateAppConfig): {
|
|
58
69
|
app: import("express-serve-static-core").Express;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../src/core/createApp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5E,OAAO,EAAqB,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAIxF,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,2CAA2C;IAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACrF,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../src/core/createApp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5E,OAAO,EAAqB,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAIxF,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,2CAA2C;IAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACrF,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAmCD,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe;;;;;;6GAkEjC,CAAC;;;;;;;6CAyDf,YAEG,EAAC,aACE,EAAC,kBAET;;;;EAuGC"}
|
package/dist/core/createApp.js
CHANGED
|
@@ -29,6 +29,35 @@ import { createLogger } from '../utils/logger.js';
|
|
|
29
29
|
import { configureSecurity } from '../middleware/securityMiddleware.js';
|
|
30
30
|
import { validateEnvironment } from '../utils/validateEnvironment.js';
|
|
31
31
|
import { RFC7807ErrorResponse } from '../shared/rfc7807ErrorResponse.js';
|
|
32
|
+
/**
|
|
33
|
+
* Convert Express route regexp back to a path string.
|
|
34
|
+
* Express 4/5 stores route patterns as RegExp — this reverses common patterns.
|
|
35
|
+
*/
|
|
36
|
+
function regexpToPath(regexp, keys = []) {
|
|
37
|
+
let path = regexp.source;
|
|
38
|
+
// Remove Express wrapper patterns
|
|
39
|
+
path = path.replace(/^\^\\\//, '/'); // ^\/
|
|
40
|
+
path = path.replace(/\\\/\?\(\?=\\\/\|\$\)$/, ''); // \/?(?=\/|$)
|
|
41
|
+
path = path.replace(/\(\?:\(\[\^\\\/\]\+\?\)\)/, (_, offset) => {
|
|
42
|
+
const key = keys.shift();
|
|
43
|
+
return key ? `:${key.name}` : ':param';
|
|
44
|
+
});
|
|
45
|
+
// Clean up remaining escapes
|
|
46
|
+
path = path.replace(/\\\//g, '/');
|
|
47
|
+
path = path.replace(/\(\?:\(\[\^\\\/\]\+\?\)\)/g, () => {
|
|
48
|
+
const key = keys.shift();
|
|
49
|
+
return key ? `:${key.name}` : ':param';
|
|
50
|
+
});
|
|
51
|
+
// If we couldn't parse it, return empty
|
|
52
|
+
if (path.includes('(?') || path.includes('\\')) {
|
|
53
|
+
// Fallback: extract the literal prefix
|
|
54
|
+
const match = regexp.source.match(/^\^\\\/([\w\-\/]+)/);
|
|
55
|
+
if (match)
|
|
56
|
+
return '/' + match[1];
|
|
57
|
+
return '';
|
|
58
|
+
}
|
|
59
|
+
return path;
|
|
60
|
+
}
|
|
32
61
|
export function createApp(config) {
|
|
33
62
|
const logger = createLogger(`system:app:${config.projectName}`);
|
|
34
63
|
// Validate environment before anything else
|
|
@@ -79,12 +108,111 @@ export function createApp(config) {
|
|
|
79
108
|
if (config.initAuth) {
|
|
80
109
|
config.initAuth();
|
|
81
110
|
}
|
|
82
|
-
// Health check
|
|
83
|
-
app.get('/api/health', (
|
|
84
|
-
|
|
111
|
+
// Health check (supports ?deep=true for database + custom checks)
|
|
112
|
+
app.get('/api/health', async (req, res) => {
|
|
113
|
+
const isDeep = req.query.deep === 'true';
|
|
114
|
+
if (!isDeep) {
|
|
115
|
+
return res.json({ status: 'ok', project: config.projectName });
|
|
116
|
+
}
|
|
117
|
+
// Deep health check: database, uptime, memory, custom checks
|
|
118
|
+
const checks = {};
|
|
119
|
+
let allOk = true;
|
|
120
|
+
// Database check (if Supabase is configured)
|
|
121
|
+
const dbEnabled = config.healthChecks?.database ?? !!process.env.SUPABASE_URL;
|
|
122
|
+
if (dbEnabled && process.env.SUPABASE_URL && process.env.SUPABASE_SERVICE_ROLE_KEY) {
|
|
123
|
+
try {
|
|
124
|
+
const { createClient } = await import('@supabase/supabase-js');
|
|
125
|
+
const client = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_SERVICE_ROLE_KEY);
|
|
126
|
+
const { error } = await Promise.race([
|
|
127
|
+
client.from('_health_check_nonexistent').select('1').limit(0),
|
|
128
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 5000)),
|
|
129
|
+
]);
|
|
130
|
+
// PGRST116 (relation not found) is fine — it means the DB responded
|
|
131
|
+
checks.database = 'ok';
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
checks.database = 'error';
|
|
135
|
+
allOk = false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Custom checks
|
|
139
|
+
if (config.healthChecks?.custom) {
|
|
140
|
+
for (const { name, check } of config.healthChecks.custom) {
|
|
141
|
+
try {
|
|
142
|
+
const ok = await Promise.race([
|
|
143
|
+
check(),
|
|
144
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 5000)),
|
|
145
|
+
]);
|
|
146
|
+
checks[name] = ok ? 'ok' : 'error';
|
|
147
|
+
if (!ok)
|
|
148
|
+
allOk = false;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
checks[name] = 'error';
|
|
152
|
+
allOk = false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const statusCode = allOk ? 200 : 503;
|
|
157
|
+
res.status(statusCode).json({
|
|
158
|
+
status: allOk ? 'ok' : 'degraded',
|
|
159
|
+
project: config.projectName,
|
|
160
|
+
checks,
|
|
161
|
+
uptime: Math.floor(process.uptime()),
|
|
162
|
+
memory: {
|
|
163
|
+
rss: Math.round(process.memoryUsage().rss / 1024 / 1024),
|
|
164
|
+
heap: Math.round(process.memoryUsage().heapUsed / 1024 / 1024),
|
|
165
|
+
},
|
|
166
|
+
});
|
|
85
167
|
});
|
|
86
168
|
// Routes
|
|
87
169
|
config.setupRoutes(app);
|
|
170
|
+
// Route manifest — lists all registered routes for smoke testing
|
|
171
|
+
// GET /api/health/routes returns every Express route with method, path, and expected auth level
|
|
172
|
+
app.get('/api/health/routes', (_req, res) => {
|
|
173
|
+
const routes = [];
|
|
174
|
+
function extractRoutes(stack, prefix = '') {
|
|
175
|
+
for (const layer of stack) {
|
|
176
|
+
if (layer.route) {
|
|
177
|
+
// Direct route
|
|
178
|
+
const routePath = prefix + (layer.route.path === '/' ? '' : layer.route.path);
|
|
179
|
+
for (const method of Object.keys(layer.route.methods)) {
|
|
180
|
+
if (!layer.route.methods[method])
|
|
181
|
+
continue;
|
|
182
|
+
let auth = 'public';
|
|
183
|
+
if (routePath.startsWith('/api/admin'))
|
|
184
|
+
auth = 'admin';
|
|
185
|
+
else if (routePath.startsWith('/api/superadmin'))
|
|
186
|
+
auth = 'superadmin';
|
|
187
|
+
else if (routePath.startsWith('/api/user'))
|
|
188
|
+
auth = 'user';
|
|
189
|
+
routes.push({
|
|
190
|
+
method: method.toUpperCase(),
|
|
191
|
+
path: routePath || '/',
|
|
192
|
+
auth,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else if (layer.name === 'router' && layer.handle?.stack) {
|
|
197
|
+
// Nested router
|
|
198
|
+
const layerPrefix = layer.regexp?.source
|
|
199
|
+
? prefix + regexpToPath(layer.regexp, layer.keys)
|
|
200
|
+
: prefix;
|
|
201
|
+
extractRoutes(layer.handle.stack, layerPrefix);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
extractRoutes(app._router?.stack || []);
|
|
206
|
+
// Filter to API routes only, deduplicate
|
|
207
|
+
const apiRoutes = routes
|
|
208
|
+
.filter(r => r.path.startsWith('/api/'))
|
|
209
|
+
.filter(r => !r.path.includes('*') && !r.path.includes('health/routes'));
|
|
210
|
+
res.json({
|
|
211
|
+
project: config.projectName,
|
|
212
|
+
total: apiRoutes.length,
|
|
213
|
+
routes: apiRoutes,
|
|
214
|
+
});
|
|
215
|
+
});
|
|
88
216
|
// Error handler (RFC7807 compliant via RFC7807ErrorResponse)
|
|
89
217
|
// Hint: Custom errorHandler in CreateAppConfig overschrijft dit. Anders gebruikt Tetra RFC7807.
|
|
90
218
|
const errorHandler = config.errorHandler || ((err, _req, res, _next) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApp.js","sourceRoot":"","sources":["../../src/core/createApp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAqD,MAAM,SAAS,CAAC;AAC5E,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAkB,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"createApp.js","sourceRoot":"","sources":["../../src/core/createApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dual-Write Proxy — Intercepts Supabase writes and mirrors to RuVector daemon.
|
|
3
|
+
*
|
|
4
|
+
* Wraps a SupabaseClient so that every insert/update/upsert/delete on .from()
|
|
5
|
+
* also fires a fire-and-forget RPC to the Stella daemon's RuVectorStore.
|
|
6
|
+
*
|
|
7
|
+
* The proxy is transparent: it returns the same SupabaseClient interface,
|
|
8
|
+
* same return types, same behavior. RuVector sync failures are silently logged.
|
|
9
|
+
*
|
|
10
|
+
* Activation: set DUAL_WRITE=1 or STELLA_STORES=supabase,ruvector
|
|
11
|
+
*/
|
|
12
|
+
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
13
|
+
/**
|
|
14
|
+
* Check if dual-write is enabled via environment.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isDualWriteEnabled(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Wrap a SupabaseClient with dual-write proxy.
|
|
19
|
+
* Returns the same interface — all reads go to Supabase only,
|
|
20
|
+
* all writes go to both Supabase and RuVector daemon.
|
|
21
|
+
*/
|
|
22
|
+
export declare function withDualWrite(client: SupabaseClient): SupabaseClient;
|
|
23
|
+
//# sourceMappingURL=dualWriteProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dualWriteProxy.d.ts","sourceRoot":"","sources":["../../src/core/dualWriteProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AA0N3D;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CASpE"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dual-Write Proxy — Intercepts Supabase writes and mirrors to RuVector daemon.
|
|
3
|
+
*
|
|
4
|
+
* Wraps a SupabaseClient so that every insert/update/upsert/delete on .from()
|
|
5
|
+
* also fires a fire-and-forget RPC to the Stella daemon's RuVectorStore.
|
|
6
|
+
*
|
|
7
|
+
* The proxy is transparent: it returns the same SupabaseClient interface,
|
|
8
|
+
* same return types, same behavior. RuVector sync failures are silently logged.
|
|
9
|
+
*
|
|
10
|
+
* Activation: set DUAL_WRITE=1 or STELLA_STORES=supabase,ruvector
|
|
11
|
+
*/
|
|
12
|
+
import { connect } from 'node:net';
|
|
13
|
+
const SOCKET_PATH = '/tmp/stella-daemon.sock';
|
|
14
|
+
const RPC_TIMEOUT_MS = 5_000;
|
|
15
|
+
// ─── Daemon RPC (lightweight, no dependency on stella) ──────
|
|
16
|
+
let daemonSocket = null;
|
|
17
|
+
let daemonConnected = false;
|
|
18
|
+
let daemonConnecting = false;
|
|
19
|
+
let rpcId = 0;
|
|
20
|
+
function connectDaemon() {
|
|
21
|
+
if (daemonConnected)
|
|
22
|
+
return Promise.resolve();
|
|
23
|
+
if (daemonConnecting)
|
|
24
|
+
return new Promise(r => setTimeout(r, 500));
|
|
25
|
+
daemonConnecting = true;
|
|
26
|
+
return new Promise((resolve) => {
|
|
27
|
+
const sock = connect(SOCKET_PATH);
|
|
28
|
+
const timeout = setTimeout(() => {
|
|
29
|
+
sock.destroy();
|
|
30
|
+
daemonConnecting = false;
|
|
31
|
+
resolve(); // Don't throw — daemon unavailable is not fatal
|
|
32
|
+
}, 2000);
|
|
33
|
+
sock.on('connect', () => {
|
|
34
|
+
clearTimeout(timeout);
|
|
35
|
+
daemonSocket = sock;
|
|
36
|
+
daemonConnected = true;
|
|
37
|
+
daemonConnecting = false;
|
|
38
|
+
resolve();
|
|
39
|
+
});
|
|
40
|
+
sock.on('close', () => {
|
|
41
|
+
daemonConnected = false;
|
|
42
|
+
daemonSocket = null;
|
|
43
|
+
});
|
|
44
|
+
sock.on('error', () => {
|
|
45
|
+
clearTimeout(timeout);
|
|
46
|
+
daemonConnected = false;
|
|
47
|
+
daemonSocket = null;
|
|
48
|
+
daemonConnecting = false;
|
|
49
|
+
resolve(); // Silent fail
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/** Fire-and-forget RPC to daemon. Never throws, never blocks. */
|
|
54
|
+
function daemonRpc(method, params) {
|
|
55
|
+
connectDaemon().then(() => {
|
|
56
|
+
if (!daemonSocket || !daemonConnected)
|
|
57
|
+
return;
|
|
58
|
+
const id = ++rpcId;
|
|
59
|
+
try {
|
|
60
|
+
daemonSocket.write(JSON.stringify({ jsonrpc: '2.0', id, method, params }) + '\n');
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Socket write failed — daemon probably died, will reconnect next time
|
|
64
|
+
daemonConnected = false;
|
|
65
|
+
daemonSocket = null;
|
|
66
|
+
}
|
|
67
|
+
}).catch(() => { });
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Wraps a Supabase `.from(table)` query builder to intercept write operations.
|
|
71
|
+
* After the original Supabase call resolves, mirrors the write to RuVector.
|
|
72
|
+
*/
|
|
73
|
+
function proxyQueryBuilder(original, table) {
|
|
74
|
+
return new Proxy(original, {
|
|
75
|
+
get(target, prop) {
|
|
76
|
+
const value = target[prop];
|
|
77
|
+
// Intercept write methods
|
|
78
|
+
if (['insert', 'update', 'upsert', 'delete'].includes(prop)) {
|
|
79
|
+
return function proxiedWrite(...args) {
|
|
80
|
+
const result = value.apply(target, args);
|
|
81
|
+
return proxyWriteResult(result, table, prop, args);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// Pass through everything else (select, rpc, etc.)
|
|
85
|
+
if (typeof value === 'function') {
|
|
86
|
+
return value.bind(target);
|
|
87
|
+
}
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Wraps the PostgREST filter builder result to intercept .then()
|
|
94
|
+
* so we can mirror the write after Supabase confirms success.
|
|
95
|
+
*/
|
|
96
|
+
function proxyWriteResult(builder, table, op, args) {
|
|
97
|
+
// The builder is a thenable (PostgREST chain). We need to intercept
|
|
98
|
+
// the final .then() to know when Supabase has processed the write.
|
|
99
|
+
// But we also need to preserve the full chain (.select(), .eq(), .single(), etc.)
|
|
100
|
+
// Track filter state for update/delete
|
|
101
|
+
const filters = [];
|
|
102
|
+
return new Proxy(builder, {
|
|
103
|
+
get(target, prop) {
|
|
104
|
+
const value = target[prop];
|
|
105
|
+
// Capture filter calls for update/delete mirroring
|
|
106
|
+
if (['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'in', 'is'].includes(prop) && typeof value === 'function') {
|
|
107
|
+
return function (...filterArgs) {
|
|
108
|
+
filters.push({ column: filterArgs[0], op: prop, value: filterArgs[1] });
|
|
109
|
+
const result = value.apply(target, filterArgs);
|
|
110
|
+
return proxyWriteResult(result, table, op, args);
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Intercept .then() to mirror after Supabase success
|
|
114
|
+
if (prop === 'then' && typeof value === 'function') {
|
|
115
|
+
return function (onFulfilled, onRejected) {
|
|
116
|
+
return value.call(target, (result) => {
|
|
117
|
+
// Only mirror if Supabase write succeeded
|
|
118
|
+
if (!result.error) {
|
|
119
|
+
mirrorToDaemon(table, op, args, filters);
|
|
120
|
+
}
|
|
121
|
+
return onFulfilled ? onFulfilled(result) : result;
|
|
122
|
+
}, onRejected);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
// Preserve chain methods (select, single, maybeSingle, etc.)
|
|
126
|
+
if (typeof value === 'function') {
|
|
127
|
+
return function (...chainArgs) {
|
|
128
|
+
const result = value.apply(target, chainArgs);
|
|
129
|
+
// If result is still a thenable builder, keep proxying
|
|
130
|
+
if (result && typeof result.then === 'function') {
|
|
131
|
+
return proxyWriteResult(result, table, op, args);
|
|
132
|
+
}
|
|
133
|
+
return result;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return value;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Mirror a Supabase write operation to the RuVector daemon.
|
|
142
|
+
*/
|
|
143
|
+
function mirrorToDaemon(table, op, args, filters) {
|
|
144
|
+
try {
|
|
145
|
+
switch (op) {
|
|
146
|
+
case 'insert': {
|
|
147
|
+
const records = args[0];
|
|
148
|
+
if (Array.isArray(records)) {
|
|
149
|
+
daemonRpc('store.seed', { table, records });
|
|
150
|
+
}
|
|
151
|
+
else if (records) {
|
|
152
|
+
daemonRpc('store.insert', { table, record: records });
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
case 'upsert': {
|
|
157
|
+
const record = args[0];
|
|
158
|
+
const options = args[1];
|
|
159
|
+
if (record && !Array.isArray(record)) {
|
|
160
|
+
daemonRpc('store.upsert', {
|
|
161
|
+
table,
|
|
162
|
+
record,
|
|
163
|
+
onConflict: options?.onConflict || 'id',
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
else if (Array.isArray(record)) {
|
|
167
|
+
// Bulk upsert — send as individual upserts
|
|
168
|
+
for (const r of record) {
|
|
169
|
+
daemonRpc('store.upsert', {
|
|
170
|
+
table,
|
|
171
|
+
record: r,
|
|
172
|
+
onConflict: options?.onConflict || 'id',
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case 'update': {
|
|
179
|
+
const changes = args[0];
|
|
180
|
+
if (changes && filters.length) {
|
|
181
|
+
daemonRpc('store.update', { table, filters, changes });
|
|
182
|
+
}
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
case 'delete': {
|
|
186
|
+
if (filters.length) {
|
|
187
|
+
daemonRpc('store.delete', { table, filters });
|
|
188
|
+
}
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// Never let daemon sync errors affect the main flow
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// ─── Public API ─────────────────────────────────────────────
|
|
198
|
+
/**
|
|
199
|
+
* Check if dual-write is enabled via environment.
|
|
200
|
+
*/
|
|
201
|
+
export function isDualWriteEnabled() {
|
|
202
|
+
if (process.env.DUAL_WRITE === '1')
|
|
203
|
+
return true;
|
|
204
|
+
const stores = process.env.STELLA_STORES || '';
|
|
205
|
+
return stores.includes('ruvector');
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Wrap a SupabaseClient with dual-write proxy.
|
|
209
|
+
* Returns the same interface — all reads go to Supabase only,
|
|
210
|
+
* all writes go to both Supabase and RuVector daemon.
|
|
211
|
+
*/
|
|
212
|
+
export function withDualWrite(client) {
|
|
213
|
+
const originalFrom = client.from.bind(client);
|
|
214
|
+
client.from = function proxiedFrom(table) {
|
|
215
|
+
const queryBuilder = originalFrom(table);
|
|
216
|
+
return proxyQueryBuilder(queryBuilder, table);
|
|
217
|
+
};
|
|
218
|
+
return client;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=dualWriteProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dualWriteProxy.js","sourceRoot":"","sources":["../../src/core/dualWriteProxy.ts"],"names":[],"mappings":"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"}
|
package/dist/core/systemDb.d.ts
CHANGED
|
@@ -34,6 +34,9 @@ import { SupabaseClient } from '@supabase/supabase-js';
|
|
|
34
34
|
/**
|
|
35
35
|
* Create a system-level Supabase client (service role key, bypasses RLS).
|
|
36
36
|
*
|
|
37
|
+
* When DUAL_WRITE=1 or STELLA_STORES contains 'ruvector', all writes are
|
|
38
|
+
* automatically mirrored to the RuVector daemon (fire-and-forget).
|
|
39
|
+
*
|
|
37
40
|
* @param context - WHY system access is needed (e.g., 'stripe-webhook', 'token-refresh-cron')
|
|
38
41
|
*/
|
|
39
42
|
export declare function systemDB(context: string): SupabaseClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemDb.d.ts","sourceRoot":"","sources":["../../src/core/systemDb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"systemDb.d.ts","sourceRoot":"","sources":["../../src/core/systemDb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMrE;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAmBxD"}
|
package/dist/core/systemDb.js
CHANGED
|
@@ -32,10 +32,14 @@
|
|
|
32
32
|
*/
|
|
33
33
|
import { createClient } from '@supabase/supabase-js';
|
|
34
34
|
import { createLogger } from '../utils/logger.js';
|
|
35
|
+
import { isDualWriteEnabled, withDualWrite } from './dualWriteProxy.js';
|
|
35
36
|
const logger = createLogger('security:db:system');
|
|
36
37
|
/**
|
|
37
38
|
* Create a system-level Supabase client (service role key, bypasses RLS).
|
|
38
39
|
*
|
|
40
|
+
* When DUAL_WRITE=1 or STELLA_STORES contains 'ruvector', all writes are
|
|
41
|
+
* automatically mirrored to the RuVector daemon (fire-and-forget).
|
|
42
|
+
*
|
|
39
43
|
* @param context - WHY system access is needed (e.g., 'stripe-webhook', 'token-refresh-cron')
|
|
40
44
|
*/
|
|
41
45
|
export function systemDB(context) {
|
|
@@ -45,8 +49,12 @@ export function systemDB(context) {
|
|
|
45
49
|
throw new Error('Missing SUPABASE_URL or SUPABASE_SERVICE_ROLE_KEY environment variables');
|
|
46
50
|
}
|
|
47
51
|
logger.debug({ context }, 'systemDB access');
|
|
48
|
-
|
|
52
|
+
const client = createClient(url, serviceKey, {
|
|
49
53
|
auth: { persistSession: false }
|
|
50
54
|
});
|
|
55
|
+
if (isDualWriteEnabled()) {
|
|
56
|
+
return withDualWrite(client);
|
|
57
|
+
}
|
|
58
|
+
return client;
|
|
51
59
|
}
|
|
52
60
|
//# sourceMappingURL=systemDb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemDb.js","sourceRoot":"","sources":["../../src/core/systemDb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"systemDb.js","sourceRoot":"","sources":["../../src/core/systemDb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAEzD,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE;QAC3C,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;KAChC,CAAC,CAAC;IAEH,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -96,8 +96,8 @@ export { RPCGenerator, DetailRPCGenerator, validateConfig as validateRPCConfig,
|
|
|
96
96
|
export type { GeneratedSQL, FilterDefinition, RPCGeneratorOptions, DetailRPCGeneratorOptions, ValidationResult as RPCValidationResult, ValidationError as RPCValidationError, AccessLevel, CreatorVisibilityConfig as RPCCreatorVisibilityConfig } from './generators/rpc/index.js';
|
|
97
97
|
export { encryptCredential, decryptCredential, generateMasterKey, hashValue, generateSecureToken } from './shared/crypto/index.js';
|
|
98
98
|
export { EmailService, sendMailgunEmail, sendSmtpEmail, escapeHtml } from './shared/email/index.js';
|
|
99
|
-
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode } from './shared/email/index.js';
|
|
100
|
-
export type { EmailConfig, SendEmailOpts, EmailTemplate, EmailLogEntry, MailgunResponse, SmtpResponse, EmailSendResponse, GmailOAuthConfig, GmailAuthServerStatus, GmailSendResult, GmailSearchResult, GmailMessage, GmailAttachmentInfo, GmailProfile } from './shared/email/index.js';
|
|
99
|
+
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode, addGmailOAuthRoutes } from './shared/email/index.js';
|
|
100
|
+
export type { EmailConfig, SendEmailOpts, EmailTemplate, EmailLogEntry, MailgunResponse, SmtpResponse, EmailSendResponse, GmailOAuthConfig, GmailAuthServerStatus, GmailOAuthRoutesConfig, GmailSendResult, GmailSearchResult, GmailMessage, GmailAttachmentInfo, GmailProfile } from './shared/email/index.js';
|
|
101
101
|
export { addMcpRoutes, addMcpAuthRoutes, addMcpTokenRoutes, addMcpUsageRoutes, getMcpOrganizationId, getMcpTenantContext, runWithMcpTenant, validateMcpApiToken, generateMcpApiToken } from './shared/mcp/index.js';
|
|
102
102
|
export type { McpRoutesConfig, McpAuthRoutesConfig, McpToolDefinition, McpToolResult, McpToolHandler, TenantContext as McpTenantContext } from './shared/mcp/index.js';
|
|
103
103
|
export { BillingService, addBillingRoutes, addBillingWebhookRoutes } from './shared/billing/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -92,7 +92,7 @@ export { RPCGenerator, DetailRPCGenerator, validateConfig as validateRPCConfig,
|
|
|
92
92
|
export { encryptCredential, decryptCredential, generateMasterKey, hashValue, generateSecureToken } from './shared/crypto/index.js';
|
|
93
93
|
// ─── Email Module ───────────────────────────────────────────
|
|
94
94
|
export { EmailService, sendMailgunEmail, sendSmtpEmail, escapeHtml } from './shared/email/index.js';
|
|
95
|
-
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode } from './shared/email/index.js';
|
|
95
|
+
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode, addGmailOAuthRoutes } from './shared/email/index.js';
|
|
96
96
|
// ─── MCP Online Module ──────────────────────────────────────
|
|
97
97
|
export { addMcpRoutes, addMcpAuthRoutes, addMcpTokenRoutes, addMcpUsageRoutes, getMcpOrganizationId, getMcpTenantContext, runWithMcpTenant, validateMcpApiToken, generateMcpApiToken } from './shared/mcp/index.js';
|
|
98
98
|
// ─── Billing Module ─────────────────────────────────────────
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* @module @soulbatical/tetra-core/email/gmail
|
|
11
11
|
*/
|
|
12
12
|
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
13
|
+
import { Router } from 'express';
|
|
13
14
|
export interface GmailTokens {
|
|
14
15
|
access_token: string;
|
|
15
16
|
refresh_token: string;
|
|
@@ -77,6 +78,16 @@ export interface GmailOAuthConfig {
|
|
|
77
78
|
loopbackPort?: number;
|
|
78
79
|
/** Additional scopes beyond send + readonly */
|
|
79
80
|
additionalScopes?: string[];
|
|
81
|
+
/** Web-based redirect URI (overrides loopback). Use for deployed backends. */
|
|
82
|
+
redirectUri?: string;
|
|
83
|
+
}
|
|
84
|
+
export interface GmailOAuthRoutesConfig {
|
|
85
|
+
/** Frontend URL to redirect to after OAuth completes */
|
|
86
|
+
frontendUrl?: string;
|
|
87
|
+
/** Path on frontend to redirect to after success. Default: /settings */
|
|
88
|
+
frontendSuccessPath?: string;
|
|
89
|
+
/** Path on frontend to redirect to after error. Default: /settings */
|
|
90
|
+
frontendErrorPath?: string;
|
|
80
91
|
}
|
|
81
92
|
export interface GmailAuthServerStatus {
|
|
82
93
|
running: boolean;
|
|
@@ -109,7 +120,7 @@ export declare function disconnectGmail(supabase: SupabaseClient, userId: string
|
|
|
109
120
|
/**
|
|
110
121
|
* Generate the OAuth2 authorization URL.
|
|
111
122
|
*/
|
|
112
|
-
export declare function getGmailAuthUrl(config: GmailOAuthConfig): string;
|
|
123
|
+
export declare function getGmailAuthUrl(config: GmailOAuthConfig, state?: string): string;
|
|
113
124
|
/**
|
|
114
125
|
* Start a loopback OAuth server that handles the callback.
|
|
115
126
|
* Auto-closes after handling or after 5 minutes.
|
|
@@ -183,4 +194,15 @@ export declare class GmailClient {
|
|
|
183
194
|
private buildMimeHeaders;
|
|
184
195
|
private sendRaw;
|
|
185
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Add Gmail OAuth routes to an Express router.
|
|
199
|
+
* Requires authenticateToken middleware to be applied before mounting.
|
|
200
|
+
*
|
|
201
|
+
* Routes:
|
|
202
|
+
* - POST /connect — Start OAuth flow (returns auth_url to redirect user to)
|
|
203
|
+
* - GET /callback — Google redirects here after authorization
|
|
204
|
+
* - GET /status — Check connection status
|
|
205
|
+
* - POST /disconnect — Disconnect Gmail account
|
|
206
|
+
*/
|
|
207
|
+
export declare function addGmailOAuthRoutes(router: Router, getSystemDB: () => SupabaseClient, routesConfig?: GmailOAuthRoutesConfig): void;
|
|
186
208
|
//# sourceMappingURL=gmail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../../src/shared/email/gmail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../../src/shared/email/gmail.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,9 +119,8 @@ let authServerError = null;
|
|
|
119
119
|
/**
|
|
120
120
|
* Generate the OAuth2 authorization URL.
|
|
121
121
|
*/
|
|
122
|
-
export function getGmailAuthUrl(config) {
|
|
123
|
-
const
|
|
124
|
-
const redirectUri = `http://localhost:${port}/callback`;
|
|
122
|
+
export function getGmailAuthUrl(config, state) {
|
|
123
|
+
const redirectUri = config.redirectUri ?? `http://localhost:${config.loopbackPort ?? DEFAULT_LOOPBACK_PORT}/callback`;
|
|
125
124
|
const scopes = [...DEFAULT_SCOPES, ...(config.additionalScopes ?? [])];
|
|
126
125
|
const params = new URLSearchParams({
|
|
127
126
|
client_id: config.clientId,
|
|
@@ -131,6 +130,9 @@ export function getGmailAuthUrl(config) {
|
|
|
131
130
|
access_type: 'offline',
|
|
132
131
|
prompt: 'consent',
|
|
133
132
|
});
|
|
133
|
+
if (state) {
|
|
134
|
+
params.set('state', state);
|
|
135
|
+
}
|
|
134
136
|
return `${GOOGLE_AUTH_URL}?${params.toString()}`;
|
|
135
137
|
}
|
|
136
138
|
/**
|
|
@@ -219,8 +221,7 @@ export function resetGmailAuthServerState() {
|
|
|
219
221
|
* Exchange authorization code for tokens and store encrypted in DB.
|
|
220
222
|
*/
|
|
221
223
|
export async function exchangeGmailCode(supabase, config, code, organizationId, userId) {
|
|
222
|
-
const
|
|
223
|
-
const redirectUri = `http://localhost:${port}/callback`;
|
|
224
|
+
const redirectUri = config.redirectUri ?? `http://localhost:${config.loopbackPort ?? DEFAULT_LOOPBACK_PORT}/callback`;
|
|
224
225
|
const tokenResponse = await fetch(GOOGLE_TOKEN_URL, {
|
|
225
226
|
method: 'POST',
|
|
226
227
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
@@ -499,4 +500,127 @@ export class GmailClient {
|
|
|
499
500
|
});
|
|
500
501
|
}
|
|
501
502
|
}
|
|
503
|
+
// ============================================
|
|
504
|
+
// EXPRESS ROUTES FACTORY
|
|
505
|
+
// ============================================
|
|
506
|
+
/**
|
|
507
|
+
* Add Gmail OAuth routes to an Express router.
|
|
508
|
+
* Requires authenticateToken middleware to be applied before mounting.
|
|
509
|
+
*
|
|
510
|
+
* Routes:
|
|
511
|
+
* - POST /connect — Start OAuth flow (returns auth_url to redirect user to)
|
|
512
|
+
* - GET /callback — Google redirects here after authorization
|
|
513
|
+
* - GET /status — Check connection status
|
|
514
|
+
* - POST /disconnect — Disconnect Gmail account
|
|
515
|
+
*/
|
|
516
|
+
export function addGmailOAuthRoutes(router, getSystemDB, routesConfig) {
|
|
517
|
+
const frontendUrl = routesConfig?.frontendUrl || process.env.FRONTEND_URL || 'http://localhost:3000';
|
|
518
|
+
const successPath = routesConfig?.frontendSuccessPath || '/settings';
|
|
519
|
+
const errorPath = routesConfig?.frontendErrorPath || '/settings';
|
|
520
|
+
function getOAuthConfig(callbackUrl) {
|
|
521
|
+
const clientId = process.env.GOOGLE_CLIENT_ID;
|
|
522
|
+
const clientSecret = process.env.GOOGLE_CLIENT_SECRET;
|
|
523
|
+
if (!clientId || !clientSecret) {
|
|
524
|
+
throw new Error('GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET are required');
|
|
525
|
+
}
|
|
526
|
+
return { clientId, clientSecret, redirectUri: callbackUrl };
|
|
527
|
+
}
|
|
528
|
+
// POST /connect — Start OAuth flow
|
|
529
|
+
router.post('/connect', async (req, res) => {
|
|
530
|
+
const user = req.user;
|
|
531
|
+
const supabase = getSystemDB();
|
|
532
|
+
const { data: membership } = await supabase
|
|
533
|
+
.from('organization_members')
|
|
534
|
+
.select('organization_id')
|
|
535
|
+
.eq('user_id', user.id)
|
|
536
|
+
.eq('status', 'active')
|
|
537
|
+
.limit(1)
|
|
538
|
+
.single();
|
|
539
|
+
if (!membership) {
|
|
540
|
+
res.status(400).json({ success: false, error: 'No organization found' });
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
543
|
+
try {
|
|
544
|
+
// Build callback URL based on the request origin
|
|
545
|
+
const protocol = req.headers['x-forwarded-proto'] || req.protocol;
|
|
546
|
+
const host = req.headers['x-forwarded-host'] || req.headers.host;
|
|
547
|
+
const basePath = req.baseUrl; // e.g. /api/gmail
|
|
548
|
+
const callbackUrl = `${protocol}://${host}${basePath}/callback`;
|
|
549
|
+
const config = getOAuthConfig(callbackUrl);
|
|
550
|
+
// Encode state with user info for the callback
|
|
551
|
+
const state = Buffer.from(JSON.stringify({
|
|
552
|
+
userId: user.id,
|
|
553
|
+
organizationId: membership.organization_id,
|
|
554
|
+
})).toString('base64url');
|
|
555
|
+
const authUrl = getGmailAuthUrl(config, state);
|
|
556
|
+
res.json({
|
|
557
|
+
success: true,
|
|
558
|
+
status: 'redirect',
|
|
559
|
+
auth_url: authUrl,
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
catch (err) {
|
|
563
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
564
|
+
res.status(500).json({ success: false, error: msg });
|
|
565
|
+
}
|
|
566
|
+
});
|
|
567
|
+
// GET /callback — Google redirects here after authorization
|
|
568
|
+
router.get('/callback', async (req, res) => {
|
|
569
|
+
const code = req.query.code;
|
|
570
|
+
const error = req.query.error;
|
|
571
|
+
const stateParam = req.query.state;
|
|
572
|
+
if (error) {
|
|
573
|
+
res.redirect(`${frontendUrl}${errorPath}?gmail_error=${encodeURIComponent(error)}`);
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
if (!code || !stateParam) {
|
|
577
|
+
res.redirect(`${frontendUrl}${errorPath}?gmail_error=missing_code`);
|
|
578
|
+
return;
|
|
579
|
+
}
|
|
580
|
+
try {
|
|
581
|
+
const state = JSON.parse(Buffer.from(stateParam, 'base64url').toString());
|
|
582
|
+
const protocol = req.headers['x-forwarded-proto'] || req.protocol;
|
|
583
|
+
const host = req.headers['x-forwarded-host'] || req.headers.host;
|
|
584
|
+
const basePath = req.baseUrl;
|
|
585
|
+
const callbackUrl = `${protocol}://${host}${basePath}/callback`;
|
|
586
|
+
const config = getOAuthConfig(callbackUrl);
|
|
587
|
+
const supabase = getSystemDB();
|
|
588
|
+
const result = await exchangeGmailCode(supabase, config, code, state.organizationId, state.userId);
|
|
589
|
+
res.redirect(`${frontendUrl}${successPath}?gmail_connected=${encodeURIComponent(result.email)}`);
|
|
590
|
+
}
|
|
591
|
+
catch (err) {
|
|
592
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
593
|
+
console.error('[gmail] OAuth callback error:', msg);
|
|
594
|
+
res.redirect(`${frontendUrl}${errorPath}?gmail_error=${encodeURIComponent(msg)}`);
|
|
595
|
+
}
|
|
596
|
+
});
|
|
597
|
+
// GET /status — Check Gmail connection status
|
|
598
|
+
router.get('/status', async (req, res) => {
|
|
599
|
+
const user = req.user;
|
|
600
|
+
const supabase = getSystemDB();
|
|
601
|
+
const accounts = await listGmailAccounts(supabase, user.id);
|
|
602
|
+
res.json({
|
|
603
|
+
success: true,
|
|
604
|
+
connected: accounts.length > 0,
|
|
605
|
+
accounts: accounts.map((a) => ({
|
|
606
|
+
email: a.email,
|
|
607
|
+
connected_since: a.created_at,
|
|
608
|
+
})),
|
|
609
|
+
});
|
|
610
|
+
});
|
|
611
|
+
// POST /disconnect — Disconnect Gmail account
|
|
612
|
+
router.post('/disconnect', async (req, res) => {
|
|
613
|
+
const user = req.user;
|
|
614
|
+
const email = req.body?.email;
|
|
615
|
+
const supabase = getSystemDB();
|
|
616
|
+
const disconnected = await disconnectGmail(supabase, user.id, email);
|
|
617
|
+
res.json({
|
|
618
|
+
success: true,
|
|
619
|
+
disconnected,
|
|
620
|
+
message: disconnected.length > 0
|
|
621
|
+
? `Disconnected: ${disconnected.join(', ')}`
|
|
622
|
+
: 'No active accounts found',
|
|
623
|
+
});
|
|
624
|
+
});
|
|
625
|
+
}
|
|
502
626
|
//# sourceMappingURL=gmail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gmail.js","sourceRoot":"","sources":["../../../src/shared/email/gmail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AA2F/B,+CAA+C;AAC/C,YAAY;AACZ,+CAA+C;AAE/C,MAAM,cAAc,GAAG,8CAA8C,CAAC;AACtE,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAC/D,MAAM,eAAe,GAAG,8CAA8C,CAAC;AAEvE,MAAM,cAAc,GAAG;IACrB,4CAA4C;IAC5C,gDAAgD;CACjD,CAAC;AAEF,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEnD,SAAS,QAAQ,CAAC,MAAc,EAAE,KAAa;IAC7C,OAAO,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,MAAc,EACd,KAAc;IAEd,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,GAAG,QAAQ;SACjB,IAAI,CAAC,gBAAgB,CAAC;SACtB,MAAM,CAAC,GAAG,CAAC;SACX,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;SACrB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAEzB,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAEtD,IAAI,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;QACpE,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE,YAAY;QAC3B,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;KAC5C,CAAC,CAAC;IAEH,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,MAAc;IAEd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;SACnC,IAAI,CAAC,gBAAgB,CAAC;SACtB,MAAM,CAAC,uBAAuB,CAAC;SAC/B,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;SACrB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;SACrB,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,IAAI,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,KAAc;IAClE,IAAI,KAAK,EAAE,CAAC;QACV,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAwB,EACxB,MAAc,EACd,KAAc;IAEd,IAAI,KAAK,GAAG,QAAQ;SACjB,IAAI,CAAC,gBAAgB,CAAC;SACtB,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;SAC5B,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;SACrB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAEzB,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C,IAAI,UAAU,GAAuB,IAAI,CAAC;AAC1C,IAAI,gBAAgB,GAA6B,IAAI,CAAC;AACtD,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAwB;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAC1D,MAAM,WAAW,GAAG,oBAAoB,IAAI,WAAW,CAAC;IACxD,MAAM,MAAM,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IAEH,OAAO,GAAG,eAAe,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAwB,EACxB,MAAwB,EACxB,cAAsB,EACtB,MAAc;IAEd,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAC1D,gBAAgB,GAAG,IAAI,CAAC;IACxB,eAAe,GAAG,IAAI,CAAC;IAEvB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;QAC9B,mBAAmB,EAAE,CAAC;QACtB,eAAe,GAAG,sCAAsC,CAAC;IAC3D,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAElB,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,yCAAyC,KAAK,mDAAmD,CAAC,CAAC;YAC3G,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,eAAe,GAAG,+BAA+B,KAAK,EAAE,CAAC;YACzD,mBAAmB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;QACpD,GAAG,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QAE7F,YAAY,CAAC,OAAO,CAAC,CAAC;QAEtB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC;aAC9D,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,gBAAgB,GAAG,MAAM,CAAC;YAC1B,mBAAmB,EAAE,CAAC;QACxB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,eAAe,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnE,mBAAmB,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,mDAAmD,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC7B,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,eAAe,GAAG,wCAAwC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QACjF,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,OAAO,EAAE,UAAU,KAAK,IAAI;QAC5B,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,eAAe;KACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,gBAAgB,GAAG,IAAI,CAAC;IACxB,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,MAAwB,EACxB,IAAY,EACZ,cAAsB,EACtB,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAC1D,MAAM,WAAW,GAAG,oBAAoB,IAAI,WAAW,CAAC;IAExD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,IAAI;YACJ,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,oBAAoB;SACjC,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAI5C,CAAC;IAEF,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IAED,mBAAmB;IACnB,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,UAAU,EAAE;QAC/D,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,SAAS,CAAC,YAAY,EAAE,EAAE;KAC/D,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,CAAiB,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAErE,iBAAiB;IACjB,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC7E,MAAM,qBAAqB,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE/E,eAAe;IACf,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAC5D;QACE,eAAe,EAAE,cAAc;QAC/B,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,OAAO,CAAC,YAAY;QAC3B,sBAAsB,EAAE,oBAAoB;QAC5C,uBAAuB,EAAE,qBAAqB;QAC9C,gBAAgB,EAAE,SAAS,CAAC,WAAW,EAAE;QACzC,MAAM,EAAE,CAAC,GAAG,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAC/D,SAAS,EAAE,IAAI;KAChB,EACD,EAAE,UAAU,EAAE,eAAe,EAAE,CAChC,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAElE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;AACzC,CAAC;AAED,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,MAAM,OAAO,WAAW;IACd,QAAQ,CAAiB;IACzB,SAAS,CAAS;IAClB,KAAK,CAAS;IACd,MAAM,CAAc;IAE5B,YACE,QAAwB,EACxB,OAAe,EACf,SAAiB,EACjB,KAAa,EACb,MAAmB;QAEnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc;QAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YAChF,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,IAAI,eAAe,CAAC;gBACxB,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;gBACxC,UAAU,EAAE,eAAe;aAC5B,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,2BAA2B,SAAS,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGlC,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;QAEnC,0BAA0B;QAC1B,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,QAAQ;aAChB,IAAI,CAAC,gBAAgB,CAAC;aACtB,MAAM,CAAC;YACN,sBAAsB,EAAE,oBAAoB;YAC5C,gBAAgB,EAAE,SAAS,CAAC,WAAW,EAAE;SAC1C,CAAC;aACD,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,OAAqB;QAC1D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,GAAG,IAAI,EAAE,EAAE;YACvD,GAAG,OAAO;YACV,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;gBACtC,GAAG,OAAO,EAAE,OAAO;aACpB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,EAAU,EACV,OAAe,EACf,IAAY,EACZ,OAA0B;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAElD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,EAAU,EACV,OAAe,EACf,IAAY,EACZ,OAA0B;QAE1B,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,kDAAkD,QAAQ,GAAG,CAAC,CAAC;QAE5E,wCAAwC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3E,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;QAEpD,kBAAkB;QAClB,WAAW,IAAI,KAAK,QAAQ,MAAM,CAAC;QACnC,WAAW,IAAI,6CAA6C,CAAC;QAC7D,WAAW,IAAI,2CAA2C,CAAC;QAC3D,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QAElE,YAAY;QACZ,WAAW,IAAI,KAAK,QAAQ,MAAM,CAAC;QACnC,WAAW,IAAI,4CAA4C,CAAC;QAC5D,WAAW,IAAI,2CAA2C,CAAC;QAC3D,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QAE7D,WAAW,IAAI,KAAK,QAAQ,IAAI,CAAC;QAEjC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,aAAqB,EAAE;QACjD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,CAAC,EAAE,KAAK;YACR,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAG9B,aAAa,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAErC,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YAC/B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;SAC9C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAe,aAAa,SAAS,cAAc,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,OAAqB;QACtC,MAAM,WAAW,GAA0B,EAAE,CAAC;QAE9C,SAAS,IAAI,CAAC,KAAqC;YACjD,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC5C,WAAW,CAAC,IAAI,CAAC;wBACf,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;wBACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;qBACrB,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClE,WAAW,CAAC,IAAI,CAAC;gBACf,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY;gBAC/C,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;gBAClC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;gBAClC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;aAChC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,YAAoB;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,aAAa,SAAS,gBAAgB,YAAY,EAAE,CACrD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAe,UAAU,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAAqB;QACnC,SAAS,QAAQ,CAAC,IAAsB;YACtC,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACpE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC;IACvD,CAAC;IAED,wBAAwB;IAEhB,gBAAgB,CAAC,EAAU,EAAE,OAAe,EAAE,OAA0B;QAC9E,MAAM,OAAO,GAAa;YACxB,SAAS,IAAI,CAAC,KAAK,EAAE;YACrB,OAAO,EAAE,EAAE;YACX,sBAAsB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACjE,mBAAmB;SACpB,CAAC;QAEF,IAAI,OAAO,EAAE,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAErE,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,WAAmB;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;aACjC,QAAQ,CAAC,QAAQ,CAAC;aAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEtB,OAAO,IAAI,CAAC,OAAO,CAAkB,gBAAgB,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"gmail.js","sourceRoot":"","sources":["../../../src/shared/email/gmail.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
export { EmailService } from './EmailService.js';
|
|
7
7
|
export { sendMailgunEmail } from './mailgun.js';
|
|
8
8
|
export { sendSmtpEmail } from './smtp.js';
|
|
9
|
-
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode, } from './gmail.js';
|
|
10
|
-
export type { GmailTokens, GmailSendOptions, GmailSendResult, GmailSearchResult, GmailMessageSummary, GmailMessage, GmailMessagePart, GmailMessageHeader, GmailAttachmentInfo, GmailProfile, GmailOAuthConfig, GmailAuthServerStatus, } from './gmail.js';
|
|
9
|
+
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode, addGmailOAuthRoutes, } from './gmail.js';
|
|
10
|
+
export type { GmailTokens, GmailSendOptions, GmailSendResult, GmailSearchResult, GmailMessageSummary, GmailMessage, GmailMessagePart, GmailMessageHeader, GmailAttachmentInfo, GmailProfile, GmailOAuthConfig, GmailAuthServerStatus, GmailOAuthRoutesConfig, } from './gmail.js';
|
|
11
11
|
export { escapeHtml } from './sanitize.js';
|
|
12
12
|
export type { EmailConfig, SendEmailOpts, EmailTemplate, EmailLogEntry, MailgunResponse, SmtpResponse, EmailSendResponse, } from './types.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/email/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/email/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,YAAY,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
@@ -9,7 +9,7 @@ export { EmailService } from './EmailService.js';
|
|
|
9
9
|
export { sendMailgunEmail } from './mailgun.js';
|
|
10
10
|
export { sendSmtpEmail } from './smtp.js';
|
|
11
11
|
// Gmail (OAuth2 API transport + client for read/search/attachments)
|
|
12
|
-
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode, } from './gmail.js';
|
|
12
|
+
export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache, disconnectGmail, getGmailAuthUrl, startGmailOAuth, getGmailAuthServerStatus, resetGmailAuthServerState, exchangeGmailCode, addGmailOAuthRoutes, } from './gmail.js';
|
|
13
13
|
// Sanitization
|
|
14
14
|
export { escapeHtml } from './sanitize.js';
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/email/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,oEAAoE;AACpE,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/email/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,oEAAoE;AACpE,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAiBpB,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
|