@soulbatical/tetra-core 0.1.38 → 0.1.40
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/dualWriteProxy.d.ts +11 -0
- package/dist/core/dualWriteProxy.d.ts.map +1 -1
- package/dist/core/dualWriteProxy.js +133 -183
- package/dist/core/dualWriteProxy.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/email/EmailService.d.ts +9 -1
- package/dist/shared/email/EmailService.d.ts.map +1 -1
- package/dist/shared/email/EmailService.js +83 -7
- package/dist/shared/email/EmailService.js.map +1 -1
- package/dist/shared/email/mailgun.d.ts +4 -1
- package/dist/shared/email/mailgun.d.ts.map +1 -1
- package/dist/shared/email/mailgun.js +41 -10
- package/dist/shared/email/mailgun.js.map +1 -1
- package/dist/shared/email/smtp.d.ts +4 -1
- package/dist/shared/email/smtp.d.ts.map +1 -1
- package/dist/shared/email/smtp.js +14 -2
- package/dist/shared/email/smtp.js.map +1 -1
- package/dist/shared/email/types.d.ts +23 -1
- package/dist/shared/email/types.d.ts.map +1 -1
- package/dist/shared/email/webhookRoutes.d.ts +29 -0
- package/dist/shared/email/webhookRoutes.d.ts.map +1 -0
- package/dist/shared/email/webhookRoutes.js +125 -0
- package/dist/shared/email/webhookRoutes.js.map +1 -0
- package/dist/shared/planner/GoogleCalendarService.d.ts +103 -0
- package/dist/shared/planner/GoogleCalendarService.d.ts.map +1 -0
- package/dist/shared/planner/GoogleCalendarService.js +365 -0
- package/dist/shared/planner/GoogleCalendarService.js.map +1 -0
- package/dist/shared/planner/PlannerService.d.ts +170 -0
- package/dist/shared/planner/PlannerService.d.ts.map +1 -0
- package/dist/shared/planner/PlannerService.js +860 -0
- package/dist/shared/planner/PlannerService.js.map +1 -0
- package/dist/shared/planner/index.d.ts +35 -0
- package/dist/shared/planner/index.d.ts.map +1 -0
- package/dist/shared/planner/index.js +34 -0
- package/dist/shared/planner/index.js.map +1 -0
- package/dist/shared/planner/routes.d.ts +67 -0
- package/dist/shared/planner/routes.d.ts.map +1 -0
- package/dist/shared/planner/routes.js +524 -0
- package/dist/shared/planner/routes.js.map +1 -0
- package/dist/shared/planner/types.d.ts +262 -0
- package/dist/shared/planner/types.d.ts.map +1 -0
- package/dist/shared/planner/types.js +9 -0
- package/dist/shared/planner/types.js.map +1 -0
- package/package.json +1 -1
- package/src/shared/email/migrations/004_add_email_logs_tracking_columns.sql +15 -0
|
@@ -4,9 +4,20 @@
|
|
|
4
4
|
* Wraps a SupabaseClient so that every insert/update/upsert/delete on .from()
|
|
5
5
|
* also fires a fire-and-forget RPC to the Stella daemon's RuVectorStore.
|
|
6
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
|
+
*
|
|
7
10
|
* Activation: set DUAL_WRITE=1 or STELLA_STORES=supabase,ruvector
|
|
8
11
|
*/
|
|
9
12
|
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
13
|
+
/**
|
|
14
|
+
* Check if dual-write is enabled via environment.
|
|
15
|
+
*/
|
|
10
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
|
+
*/
|
|
11
22
|
export declare function withDualWrite(client: SupabaseClient): SupabaseClient;
|
|
12
23
|
//# sourceMappingURL=dualWriteProxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dualWriteProxy.d.ts","sourceRoot":"","sources":["../../src/core/dualWriteProxy.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
|
@@ -4,10 +4,14 @@
|
|
|
4
4
|
* Wraps a SupabaseClient so that every insert/update/upsert/delete on .from()
|
|
5
5
|
* also fires a fire-and-forget RPC to the Stella daemon's RuVectorStore.
|
|
6
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
|
+
*
|
|
7
10
|
* Activation: set DUAL_WRITE=1 or STELLA_STORES=supabase,ruvector
|
|
8
11
|
*/
|
|
9
12
|
import { connect } from 'node:net';
|
|
10
13
|
const SOCKET_PATH = '/tmp/stella-daemon.sock';
|
|
14
|
+
const RPC_TIMEOUT_MS = 5_000;
|
|
11
15
|
// ─── Daemon RPC (lightweight, no dependency on stella) ──────
|
|
12
16
|
let daemonSocket = null;
|
|
13
17
|
let daemonConnected = false;
|
|
@@ -24,7 +28,7 @@ function connectDaemon() {
|
|
|
24
28
|
const timeout = setTimeout(() => {
|
|
25
29
|
sock.destroy();
|
|
26
30
|
daemonConnecting = false;
|
|
27
|
-
resolve();
|
|
31
|
+
resolve(); // Don't throw — daemon unavailable is not fatal
|
|
28
32
|
}, 2000);
|
|
29
33
|
sock.on('connect', () => {
|
|
30
34
|
clearTimeout(timeout);
|
|
@@ -42,10 +46,11 @@ function connectDaemon() {
|
|
|
42
46
|
daemonConnected = false;
|
|
43
47
|
daemonSocket = null;
|
|
44
48
|
daemonConnecting = false;
|
|
45
|
-
resolve();
|
|
49
|
+
resolve(); // Silent fail
|
|
46
50
|
});
|
|
47
51
|
});
|
|
48
52
|
}
|
|
53
|
+
/** Fire-and-forget RPC to daemon. Never throws, never blocks. */
|
|
49
54
|
function daemonRpc(method, params) {
|
|
50
55
|
connectDaemon().then(() => {
|
|
51
56
|
if (!daemonSocket || !daemonConnected)
|
|
@@ -55,215 +60,160 @@ function daemonRpc(method, params) {
|
|
|
55
60
|
daemonSocket.write(JSON.stringify({ jsonrpc: '2.0', id, method, params }) + '\n');
|
|
56
61
|
}
|
|
57
62
|
catch {
|
|
63
|
+
// Socket write failed — daemon probably died, will reconnect next time
|
|
58
64
|
daemonConnected = false;
|
|
59
65
|
daemonSocket = null;
|
|
60
66
|
}
|
|
61
67
|
}).catch(() => { });
|
|
62
68
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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;
|
|
76
89
|
}
|
|
77
|
-
}
|
|
78
|
-
else if (data) {
|
|
79
|
-
daemonRpc('store.upsert', { table, record: data, onConflict });
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
function mirrorUpdate(table, changes, filters) {
|
|
83
|
-
if (filters.length && changes) {
|
|
84
|
-
daemonRpc('store.update', { table, filters, changes });
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
function mirrorDelete(table, filters) {
|
|
88
|
-
if (filters.length) {
|
|
89
|
-
daemonRpc('store.delete', { table, filters });
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
class DualWriteQueryBuilder {
|
|
93
|
-
original;
|
|
94
|
-
table;
|
|
95
|
-
constructor(original, table) {
|
|
96
|
-
this.original = original;
|
|
97
|
-
this.table = table;
|
|
98
|
-
}
|
|
99
|
-
// ─── Write methods with dual-write ───
|
|
100
|
-
insert(data, options) {
|
|
101
|
-
const result = this.original.insert(data, options);
|
|
102
|
-
return this.wrapResult(result, () => mirrorInsert(this.table, data));
|
|
103
|
-
}
|
|
104
|
-
upsert(data, options) {
|
|
105
|
-
const result = this.original.upsert(data, options);
|
|
106
|
-
const onConflict = options?.onConflict || 'id';
|
|
107
|
-
return this.wrapResult(result, () => mirrorUpsert(this.table, data, onConflict));
|
|
108
|
-
}
|
|
109
|
-
update(changes, options) {
|
|
110
|
-
const result = this.original.update(changes, options);
|
|
111
|
-
return this.wrapFilteredResult(result, (filters) => mirrorUpdate(this.table, changes, filters));
|
|
112
|
-
}
|
|
113
|
-
delete(options) {
|
|
114
|
-
const result = this.original.delete(options);
|
|
115
|
-
return this.wrapFilteredResult(result, (filters) => mirrorDelete(this.table, filters));
|
|
116
|
-
}
|
|
117
|
-
// ─── Read methods (pass-through) ───
|
|
118
|
-
select(...args) { return this.original.select(...args); }
|
|
119
|
-
// ─── Wrap a write result to trigger mirror on success ───
|
|
120
|
-
wrapResult(builder, onSuccess) {
|
|
121
|
-
return new DualWriteResultBuilder(builder, onSuccess);
|
|
122
|
-
}
|
|
123
|
-
wrapFilteredResult(builder, onSuccess) {
|
|
124
|
-
return new DualWriteFilterBuilder(builder, onSuccess);
|
|
125
|
-
}
|
|
90
|
+
});
|
|
126
91
|
}
|
|
127
92
|
/**
|
|
128
|
-
* Wraps
|
|
129
|
-
*
|
|
93
|
+
* Wraps the PostgREST filter builder result to intercept .then()
|
|
94
|
+
* so we can mirror the write after Supabase confirms success.
|
|
130
95
|
*/
|
|
131
|
-
|
|
132
|
-
builder
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
maybeSingle() {
|
|
148
|
-
this.builder = this.builder.maybeSingle();
|
|
149
|
-
return this;
|
|
150
|
-
}
|
|
151
|
-
order(...args) {
|
|
152
|
-
this.builder = this.builder.order(...args);
|
|
153
|
-
return this;
|
|
154
|
-
}
|
|
155
|
-
limit(...args) {
|
|
156
|
-
this.builder = this.builder.limit(...args);
|
|
157
|
-
return this;
|
|
158
|
-
}
|
|
159
|
-
eq(...args) {
|
|
160
|
-
this.builder = this.builder.eq(...args);
|
|
161
|
-
return this;
|
|
162
|
-
}
|
|
163
|
-
// Thenable — this is what await calls
|
|
164
|
-
then(onFulfilled, onRejected) {
|
|
165
|
-
return this.builder.then((result) => {
|
|
166
|
-
if (!result?.error) {
|
|
167
|
-
try {
|
|
168
|
-
this.onSuccess();
|
|
169
|
-
}
|
|
170
|
-
catch { /* never fail */ }
|
|
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
|
+
};
|
|
171
112
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
+
});
|
|
175
139
|
}
|
|
176
140
|
/**
|
|
177
|
-
*
|
|
178
|
-
* to pass to the daemon mirror.
|
|
141
|
+
* Mirror a Supabase write operation to the RuVector daemon.
|
|
179
142
|
*/
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
in(column, values) {
|
|
220
|
-
this.filters.push({ column, op: 'in', value: values });
|
|
221
|
-
this.builder = this.builder.in(column, values);
|
|
222
|
-
return this;
|
|
223
|
-
}
|
|
224
|
-
is(column, value) {
|
|
225
|
-
this.filters.push({ column, op: 'is', value });
|
|
226
|
-
this.builder = this.builder.is(column, value);
|
|
227
|
-
return this;
|
|
228
|
-
}
|
|
229
|
-
// Chain methods
|
|
230
|
-
select(...args) {
|
|
231
|
-
this.builder = this.builder.select(...args);
|
|
232
|
-
return this;
|
|
233
|
-
}
|
|
234
|
-
single() {
|
|
235
|
-
this.builder = this.builder.single();
|
|
236
|
-
return this;
|
|
237
|
-
}
|
|
238
|
-
maybeSingle() {
|
|
239
|
-
this.builder = this.builder.maybeSingle();
|
|
240
|
-
return this;
|
|
241
|
-
}
|
|
242
|
-
// Thenable
|
|
243
|
-
then(onFulfilled, onRejected) {
|
|
244
|
-
return this.builder.then((result) => {
|
|
245
|
-
if (!result?.error) {
|
|
246
|
-
try {
|
|
247
|
-
this.onSuccess(this.filters);
|
|
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 });
|
|
248
182
|
}
|
|
249
|
-
|
|
183
|
+
break;
|
|
250
184
|
}
|
|
251
|
-
|
|
252
|
-
|
|
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
|
|
253
195
|
}
|
|
254
196
|
}
|
|
255
197
|
// ─── Public API ─────────────────────────────────────────────
|
|
198
|
+
/**
|
|
199
|
+
* Check if dual-write is enabled via environment.
|
|
200
|
+
*/
|
|
256
201
|
export function isDualWriteEnabled() {
|
|
257
202
|
if (process.env.DUAL_WRITE === '1')
|
|
258
203
|
return true;
|
|
259
204
|
const stores = process.env.STELLA_STORES || '';
|
|
260
205
|
return stores.includes('ruvector');
|
|
261
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
|
+
*/
|
|
262
212
|
export function withDualWrite(client) {
|
|
263
213
|
const originalFrom = client.from.bind(client);
|
|
264
214
|
client.from = function proxiedFrom(table) {
|
|
265
215
|
const queryBuilder = originalFrom(table);
|
|
266
|
-
return
|
|
216
|
+
return proxyQueryBuilder(queryBuilder, table);
|
|
267
217
|
};
|
|
268
218
|
return client;
|
|
269
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dualWriteProxy.js","sourceRoot":"","sources":["../../src/core/dualWriteProxy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dualWriteProxy.js","sourceRoot":"","sources":["../../src/core/dualWriteProxy.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -102,6 +102,8 @@ export { addMcpRoutes, addMcpAuthRoutes, addMcpTokenRoutes, addMcpUsageRoutes, g
|
|
|
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';
|
|
104
104
|
export type { PlanConfig, BillingConfig, BillingCycle, BillingProvider, SubscriptionStatus, SubscriptionRecord, BillingStatusResponse, BillingRouteOptions } from './shared/billing/index.js';
|
|
105
|
+
export { PlannerService, GoogleCalendarService, addPlannerRoutes, addPlannerPublicRoutes, addPlannerCalendarRoutes, computeAvailableSlots, timeToMinutes, minutesToTime } from './shared/planner/index.js';
|
|
106
|
+
export type { PlannerConfig, PlannerCalendarConfig, PlannerRouteOptions, PlannerCallbackContext, AvailabilitySlotRecord, AvailabilitySlotInput, AppointmentRecord, AppointmentInput, SchedulerSettingsRecord, VacationRecord, CalendarTokenRecord, PublicBookingInput, PublicBookingVisitor, TimeSlot, DayAvailability, TeamAvailability, PublicSchedulerData } from './shared/planner/index.js';
|
|
105
107
|
export { createApp } from './core/createApp.js';
|
|
106
108
|
export type { CreateAppConfig } from './core/createApp.js';
|
|
107
109
|
//# sourceMappingURL=index.d.ts.map
|
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
|
@@ -97,6 +97,8 @@ export { GmailClient, getGmailClient, listGmailAccounts, clearGmailClientCache,
|
|
|
97
97
|
export { addMcpRoutes, addMcpAuthRoutes, addMcpTokenRoutes, addMcpUsageRoutes, getMcpOrganizationId, getMcpTenantContext, runWithMcpTenant, validateMcpApiToken, generateMcpApiToken } from './shared/mcp/index.js';
|
|
98
98
|
// ─── Billing Module ─────────────────────────────────────────
|
|
99
99
|
export { BillingService, addBillingRoutes, addBillingWebhookRoutes } from './shared/billing/index.js';
|
|
100
|
+
// ─── Planner Module ────────────────────────────────────────
|
|
101
|
+
export { PlannerService, GoogleCalendarService, addPlannerRoutes, addPlannerPublicRoutes, addPlannerCalendarRoutes, computeAvailableSlots, timeToMinutes, minutesToTime } from './shared/planner/index.js';
|
|
100
102
|
// ─── App Bootstrap ──────────────────────────────────────────
|
|
101
103
|
export { createApp } from './core/createApp.js';
|
|
102
104
|
//# sourceMappingURL=index.js.map
|
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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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* EmailService — Core service for sending templated emails.
|
|
3
3
|
*
|
|
4
4
|
* Template lookup with language + org fallback, Handlebars rendering,
|
|
5
|
-
* DB logging, and
|
|
5
|
+
* DB logging, and multi-transport delivery (Gmail, SMTP, Mailgun).
|
|
6
6
|
*
|
|
7
7
|
* @module @soulbatical/tetra-core/email
|
|
8
8
|
*/
|
|
@@ -11,6 +11,7 @@ import type { EmailConfig, SendEmailOpts } from './types.js';
|
|
|
11
11
|
export declare class EmailService {
|
|
12
12
|
private supabase;
|
|
13
13
|
private config;
|
|
14
|
+
private templateCache;
|
|
14
15
|
constructor(supabase: SupabaseClient, config: EmailConfig);
|
|
15
16
|
/**
|
|
16
17
|
* Send a templated email.
|
|
@@ -25,6 +26,10 @@ export declare class EmailService {
|
|
|
25
26
|
success: boolean;
|
|
26
27
|
logId?: string;
|
|
27
28
|
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Clear template cache. Call after template is updated via admin UI.
|
|
31
|
+
*/
|
|
32
|
+
clearCache(slug?: string): void;
|
|
28
33
|
/**
|
|
29
34
|
* Resolve transport and send email.
|
|
30
35
|
* Priority: explicit config.transport > auto-detect (gmail > smtp > mailgun).
|
|
@@ -37,8 +42,11 @@ export declare class EmailService {
|
|
|
37
42
|
private resolveTransport;
|
|
38
43
|
/**
|
|
39
44
|
* Template lookup with language + org fallback chain.
|
|
45
|
+
* Results are cached for 5 minutes.
|
|
40
46
|
*/
|
|
41
47
|
private loadTemplate;
|
|
48
|
+
private getCached;
|
|
49
|
+
private setCache;
|
|
42
50
|
/**
|
|
43
51
|
* Render a Handlebars template string with variables.
|
|
44
52
|
* Rejects templates with triple-brace {{{…}}} syntax to prevent escaping bypass.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailService.d.ts","sourceRoot":"","sources":["../../../src/shared/email/EmailService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"EmailService.d.ts","sourceRoot":"","sources":["../../../src/shared/email/EmailService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAqD,MAAM,YAAY,CAAC;AAahH,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,aAAa,CAAiC;gBAG5C,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,WAAW;IAG7B;;;;;;;;OAQG;IACG,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsD9E;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAa/B;;;OAGG;YACW,OAAO;IA6CrB;;OAEG;YACW,eAAe;IAmC7B,OAAO,CAAC,gBAAgB;IAOxB;;;OAGG;YACW,YAAY;IAqE1B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,QAAQ;IAIhB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAQd;;OAEG;YACW,SAAS;IA0CvB;;OAEG;YACW,SAAS;CAkBxB"}
|