@vibes.diy/api-svc 11.1.4 → 11.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { Result, Option, EventoResult } from "@adviser/cement";
1
+ import { Result, Option, EventoResult, exception2Result } from "@adviser/cement";
2
2
  import { reqSyncPull, reqSyncPush, isDirectChannel, } from "@vibes.diy/api-types";
3
3
  import { unwrapMsgBase } from "../unwrap-msg-base.js";
4
4
  import { optAuth } from "../check-auth.js";
@@ -27,6 +27,7 @@ import { purgeRootHtmlCacheSameColo } from "../intern/swr-purge.js";
27
27
  import { notifyDocChangedFanOut, notifyViewerGrantsChangedFanOut, emitDmWriteEffects, emitCommentPostedEvent, } from "./app-documents-broadcast.js";
28
28
  import { notifyViewerGrantDeltaIfChanged } from "./app-documents-grant-delta.js";
29
29
  import { computeSyncPull, hasColdDeliveryKeys, routesToSnapshot } from "./sync-pull-core.js";
30
+ import { beginPrefixRefresh, endPrefixRefresh, estimateGenerationBytes, joinablePrefixSweep, readSyncPrefix, trackPrefixSweep, storeSyncPrefix, syncPrefixCacheKey, syncPrefixCacheWindowMs, } from "./sync-prefix-cache.js";
30
31
  import { COLD_PULL_CPU_NOTE, coldPullEmitEnabled, emptyInheritStats, emptyStageMs, formatColdPullStart, formatColdPullTiming, nextColdPullCall, rejectedColdPullRecord, startClock, summarizeOutputs, } from "./cold-pull-timing.js";
31
32
  const BARE_DB_CHANNEL = "*";
32
33
  export const syncPullEvento = {
@@ -90,40 +91,73 @@ export const syncPullEvento = {
90
91
  }
91
92
  }
92
93
  const feedHeadElapsed = startClock();
93
- const maxSyncSeq = await loadFeedHead(vctx, req);
94
+ const freshMaxSyncSeq = await loadFeedHead(vctx, req);
94
95
  stageMs.feedHead = feedHeadElapsed();
95
- const tOutputs = vctx.sql.tables.accessFnOutputs;
96
- const headRowsQuery = loadHeadDocs(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, dbName: req.dbName });
97
- const outputsQuery = afbRow?.accessFnCid
98
- ? vctx.sql.db
99
- .select({ docId: tOutputs.docId, output: tOutputs.output, hasGrants: tOutputs.hasGrants })
100
- .from(tOutputs)
101
- .where(and(eq(tOutputs.ownerHandle, req.ownerHandle), eq(tOutputs.appSlug, req.appSlug), eq(tOutputs.dbName, req.dbName)))
102
- : Promise.resolve([]);
103
- const stateReadsElapsed = startClock();
104
- const [headRows, allOutputs] = await Promise.all([headRowsQuery, outputsQuery]);
105
- stageMs.stateReads = stateReadsElapsed();
106
- const outputSummary = emitTiming ? summarizeOutputs(allOutputs) : { rows: 0, bytes: 0, audienceRows: 0, inheritRows: 0 };
107
- let grantBearingOutputs = 0;
108
- if (emitTiming)
109
- for (const row of allOutputs)
110
- if (row.hasGrants === 1)
111
- grantBearingOutputs += 1;
96
+ const svcKey = syncPrefixSvcKey(vctx);
97
+ const prefixWindowMs = syncPrefixCacheWindowMs(vctx);
98
+ const prefixKey = syncPrefixCacheKey(req);
99
+ const cachedPrefix = readSyncPrefix(prefixKey, {
100
+ nowMs: Date.now(),
101
+ windowMs: prefixWindowMs,
102
+ accessFnCid: afbRow?.accessFnCid ?? null,
103
+ svcKey,
104
+ });
105
+ const owesThisClientNothing = (gen) => freshMaxSyncSeq !== gen.capturedMaxSyncSeq && clientCaughtUpTo(req.cursors, gen.capturedMaxSyncSeq);
106
+ const staleGenerationWouldBeEmpty = cachedPrefix !== undefined && owesThisClientNothing(cachedPrefix);
107
+ let prefix;
108
+ let prefixSource = "cache";
109
+ let staleDiscarded = staleGenerationWouldBeEmpty;
110
+ if (cachedPrefix !== undefined && !staleGenerationWouldBeEmpty) {
111
+ prefix = cachedPrefix;
112
+ }
113
+ else {
114
+ const joinable = prefixWindowMs > 0 ? joinablePrefixSweep(prefixKey) : undefined;
115
+ const joined = joinable === undefined ? undefined : await joinPrefixSweep(joinable, stageMs);
116
+ let joinedUsable;
117
+ if (joined !== undefined && joined.accessFnCid === (afbRow?.accessFnCid ?? null) && joined.svcKey === svcKey) {
118
+ if (owesThisClientNothing(joined))
119
+ staleDiscarded = true;
120
+ else
121
+ joinedUsable = joined;
122
+ }
123
+ if (joinedUsable !== undefined) {
124
+ prefix = joinedUsable;
125
+ prefixSource = "coalesced";
126
+ }
127
+ else {
128
+ const own = sweepSyncPrefix(vctx, {
129
+ req,
130
+ afbRow,
131
+ svcKey,
132
+ capturedMaxSyncSeq: freshMaxSyncSeq,
133
+ stageMs,
134
+ emitTiming,
135
+ });
136
+ if (prefixWindowMs > 0)
137
+ trackPrefixSweep(prefixKey, own);
138
+ prefix = await own;
139
+ prefixSource = "sweep";
140
+ if (prefixWindowMs > 0)
141
+ storeSyncPrefix(prefixKey, prefix, { windowMs: prefixWindowMs });
142
+ }
143
+ }
144
+ const maxSyncSeq = prefix.capturedMaxSyncSeq;
145
+ const outputSummary = prefix.outputSummary ?? {
146
+ rows: 0,
147
+ bytes: 0,
148
+ hasGrants: 0,
149
+ audienceRows: 0,
150
+ inheritRows: 0,
151
+ };
112
152
  const grantedChannels = [];
113
153
  const interestChannels = [];
114
154
  let liveDocs;
115
155
  let adminOverride = false;
116
156
  if (!afbRow?.accessFnCid) {
117
157
  grantedChannels.push(BARE_DB_CHANNEL);
118
- liveDocs = headRows.map((row) => ({
119
- docId: row.docId,
120
- seq: row.seq,
121
- doc: mintDoc(vctx, req, row),
122
- channels: [BARE_DB_CHANNEL],
123
- }));
158
+ liveDocs = prefix.channelledLiveDocs;
124
159
  }
125
160
  else {
126
- const decodedOutputs = decodeAccessOutputRows(allOutputs);
127
161
  const viewerChannelsElapsed = startClock();
128
162
  const { userHandle, effectiveChannels, publicChannels } = await resolveViewerChannels(vctx, {
129
163
  ...(emitTiming ? { inheritStats } : {}),
@@ -132,18 +166,12 @@ export const syncPullEvento = {
132
166
  userId,
133
167
  isDm,
134
168
  access,
135
- decodedOutputs,
169
+ decodedOutputs: prefix.decodedOutputs,
136
170
  ...(req.actingHandle !== undefined && userId !== null ? { actingHandle: req.actingHandle } : {}),
137
171
  derivation: "pull",
138
172
  });
139
173
  stageMs.viewerChannels = viewerChannelsElapsed();
140
174
  stageMs.inheritRead = inheritStats.ms;
141
- const docChannels = new Map();
142
- for (const { row, descriptor } of decodedOutputs) {
143
- const channels = channelSetOfDescriptor(descriptor);
144
- if (channels.length > 0)
145
- docChannels.set(row.docId, channels);
146
- }
147
175
  const grantedSet = new Set([...effectiveChannels, ...publicChannels]);
148
176
  grantedChannels.push(...grantedSet);
149
177
  const interestsElapsed = startClock();
@@ -157,12 +185,7 @@ export const syncPullEvento = {
157
185
  for (const ch of admitted)
158
186
  interestChannels.push(ch);
159
187
  adminOverride = access === "override";
160
- liveDocs = (adminOverride ? headRows : headRows.filter((row) => docChannels.has(row.docId))).map((row) => ({
161
- docId: row.docId,
162
- seq: row.seq,
163
- doc: mintDoc(vctx, req, row),
164
- channels: docChannels.get(row.docId) ?? [],
165
- }));
188
+ liveDocs = adminOverride ? prefix.allLiveDocs : prefix.channelledLiveDocs;
166
189
  }
167
190
  const coldKeysPresent = hasColdDeliveryKeys({ grantedChannels, interestChannels, cursors: req.cursors });
168
191
  const feed = routesToSnapshot({
@@ -193,14 +216,26 @@ export const syncPullEvento = {
193
216
  interestChannels: result.interestChannels,
194
217
  });
195
218
  stageMs.total = totalElapsed();
219
+ const headMoved = freshMaxSyncSeq !== prefix.capturedMaxSyncSeq;
220
+ const refreshKicked = prefixSource === "cache" && headMoved && prefixWindowMs > 0
221
+ ? kickPrefixRefresh(vctx, { req, afbRow, svcKey, prefixKey, windowMs: prefixWindowMs })
222
+ : false;
196
223
  if (emitTiming)
197
224
  console.info(formatColdPullTiming({
198
225
  ...pullStart,
199
226
  outcome: "ok",
200
227
  mode: result.mode,
201
- outputs: { ...outputSummary, hasGrants: grantBearingOutputs },
228
+ outputs: outputSummary,
229
+ prefix: {
230
+ source: prefixSource,
231
+ ageMs: prefixSource === "cache" ? Math.max(0, Date.now() - prefix.at) : 0,
232
+ headMoved: prefixSource === "cache" ? headMoved : false,
233
+ refreshKicked,
234
+ staleDiscarded,
235
+ estimatedBytes: prefix.estimatedBytes,
236
+ },
202
237
  docs: {
203
- head: headRows.length,
238
+ head: prefix.headCount,
204
239
  live: liveDocs.length,
205
240
  entries: result.entries.length,
206
241
  responseBytes: wsSend.lastSentBytes,
@@ -213,6 +248,114 @@ export const syncPullEvento = {
213
248
  return Result.Ok(EventoResult.Continue);
214
249
  }),
215
250
  };
251
+ function clientCaughtUpTo(cursors, capturedMaxSyncSeq) {
252
+ let sawAny = false;
253
+ for (const raw of Object.values(cursors)) {
254
+ const v = Number.isFinite(raw) && raw >= 0 ? raw : 0;
255
+ if (v < capturedMaxSyncSeq)
256
+ return false;
257
+ sawAny = true;
258
+ }
259
+ return sawAny;
260
+ }
261
+ function syncPrefixSvcKey(vctx) {
262
+ const svc = vctx.params.vibes.svc;
263
+ return `${svc.protocol}://${svc.hostnameBase}:${svc.port ?? ""}`;
264
+ }
265
+ async function joinPrefixSweep(inFlight, stageMs) {
266
+ const elapsed = startClock();
267
+ try {
268
+ return await inFlight;
269
+ }
270
+ catch (err) {
271
+ console.warn("sync pull: joined prefix sweep failed, sweeping our own:", err);
272
+ return undefined;
273
+ }
274
+ finally {
275
+ stageMs.stateReads = elapsed();
276
+ }
277
+ }
278
+ async function sweepSyncPrefix(vctx, p) {
279
+ const { req, afbRow } = p;
280
+ const capturedMaxSyncSeq = p.capturedMaxSyncSeq ?? (await loadFeedHead(vctx, req));
281
+ const at = Date.now();
282
+ const tOutputs = vctx.sql.tables.accessFnOutputs;
283
+ const headRowsQuery = loadHeadDocs(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, dbName: req.dbName });
284
+ const outputsQuery = afbRow?.accessFnCid
285
+ ? vctx.sql.db
286
+ .select({ docId: tOutputs.docId, output: tOutputs.output, hasGrants: tOutputs.hasGrants })
287
+ .from(tOutputs)
288
+ .where(and(eq(tOutputs.ownerHandle, req.ownerHandle), eq(tOutputs.appSlug, req.appSlug), eq(tOutputs.dbName, req.dbName)))
289
+ : Promise.resolve([]);
290
+ const stateReadsElapsed = startClock();
291
+ const [headRows, allOutputs] = await Promise.all([headRowsQuery, outputsQuery]);
292
+ if (p.stageMs)
293
+ p.stageMs.stateReads = stateReadsElapsed();
294
+ const decodedOutputs = decodeAccessOutputRows(allOutputs);
295
+ const docChannels = new Map();
296
+ if (afbRow?.accessFnCid) {
297
+ for (const { row, descriptor } of decodedOutputs) {
298
+ const channels = channelSetOfDescriptor(descriptor);
299
+ if (channels.length > 0)
300
+ docChannels.set(row.docId, channels);
301
+ }
302
+ }
303
+ const bareDb = !afbRow?.accessFnCid;
304
+ const allLiveDocs = headRows.map((row) => ({
305
+ docId: row.docId,
306
+ seq: row.seq,
307
+ doc: mintDoc(vctx, req, row),
308
+ channels: bareDb ? [BARE_DB_CHANNEL] : (docChannels.get(row.docId) ?? []),
309
+ }));
310
+ const channelledLiveDocs = bareDb ? allLiveDocs : allLiveDocs.filter((d) => d.channels.length > 0);
311
+ return {
312
+ decodedOutputs,
313
+ outputRows: allOutputs,
314
+ allLiveDocs,
315
+ channelledLiveDocs,
316
+ headCount: headRows.length,
317
+ capturedMaxSyncSeq,
318
+ at,
319
+ estimatedBytes: estimateGenerationBytes(allOutputs, allLiveDocs),
320
+ accessFnCid: afbRow?.accessFnCid ?? null,
321
+ svcKey: p.svcKey,
322
+ ...(p.emitTiming
323
+ ? {
324
+ outputSummary: {
325
+ ...summarizeOutputs(allOutputs),
326
+ hasGrants: allOutputs.reduce((n, row) => n + (row.hasGrants === 1 ? 1 : 0), 0),
327
+ },
328
+ }
329
+ : {}),
330
+ };
331
+ }
332
+ function kickPrefixRefresh(vctx, p) {
333
+ if (!beginPrefixRefresh(p.prefixKey))
334
+ return false;
335
+ const task = sweepSyncPrefix(vctx, {
336
+ req: p.req,
337
+ afbRow: p.afbRow,
338
+ svcKey: p.svcKey,
339
+ emitTiming: coldPullEmitEnabled(p.req.ownerHandle, p.req.appSlug),
340
+ })
341
+ .then((gen) => {
342
+ storeSyncPrefix(p.prefixKey, gen, { windowMs: p.windowMs });
343
+ })
344
+ .catch((err) => {
345
+ console.warn("sync pull: prefix cache refresh failed (previous generation retained):", err);
346
+ })
347
+ .finally(() => endPrefixRefresh(p.prefixKey));
348
+ const waitUntil = vctx.waitUntil;
349
+ if (waitUntil !== undefined) {
350
+ const registered = exception2Result(() => waitUntil(task));
351
+ if (registered.isErr())
352
+ console.warn("sync pull: prefix cache refresh waitUntil registration failed:", registered.Err());
353
+ }
354
+ else {
355
+ void task;
356
+ }
357
+ return true;
358
+ }
216
359
  function mintDoc(vctx, req, row) {
217
360
  const doc = mintFilesUrls(row.data, {
218
361
  ownerHandle: req.ownerHandle,
@@ -1 +1 @@
1
- {"version":3,"file":"sync-eventos.js","sourceRoot":"","sources":["../../jsr/public/sync-eventos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-eventos.js","sourceRoot":"","sources":["../../jsr/public/sync-eventos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { DecodedAccessOutputRow } from "./access-output-decoder.js";
2
+ import type { LiveHeadDoc } from "./sync-pull-core.js";
3
+ import type { VibesApiSQLCtx } from "../types.js";
4
+ export interface PrefixOutputRow {
5
+ readonly docId: string;
6
+ readonly output: string;
7
+ readonly hasGrants: number;
8
+ }
9
+ export interface PrefixOutputSummary {
10
+ readonly rows: number;
11
+ readonly bytes: number;
12
+ readonly hasGrants: number;
13
+ readonly audienceRows: number;
14
+ readonly inheritRows: number;
15
+ }
16
+ export interface SyncPrefixGeneration {
17
+ readonly decodedOutputs: readonly DecodedAccessOutputRow<PrefixOutputRow>[];
18
+ readonly outputRows: readonly PrefixOutputRow[];
19
+ readonly allLiveDocs: readonly LiveHeadDoc[];
20
+ readonly channelledLiveDocs: readonly LiveHeadDoc[];
21
+ readonly headCount: number;
22
+ readonly capturedMaxSyncSeq: number;
23
+ readonly at: number;
24
+ readonly estimatedBytes: number;
25
+ readonly accessFnCid: string | null;
26
+ readonly svcKey: string;
27
+ readonly outputSummary?: PrefixOutputSummary;
28
+ }
29
+ export declare const MAX_GENERATION_BYTES = 8000000;
30
+ export declare const MAX_TOTAL_BYTES = 24000000;
31
+ export declare function syncPrefixCacheKey(part: {
32
+ ownerHandle: string;
33
+ appSlug: string;
34
+ dbName: string;
35
+ }): string;
36
+ export declare function syncPrefixCacheWindowMs(vctx: VibesApiSQLCtx): number;
37
+ export declare function readSyncPrefix(key: string, opts: {
38
+ nowMs: number;
39
+ windowMs: number;
40
+ accessFnCid: string | null;
41
+ svcKey: string;
42
+ }): SyncPrefixGeneration | undefined;
43
+ export declare function storeSyncPrefix(key: string, gen: SyncPrefixGeneration, opts: {
44
+ readonly windowMs: number;
45
+ }): void;
46
+ export declare function beginPrefixRefresh(key: string): boolean;
47
+ export declare function endPrefixRefresh(key: string): void;
48
+ export declare function joinablePrefixSweep(key: string): Promise<SyncPrefixGeneration> | undefined;
49
+ export declare function trackPrefixSweep(key: string, promise: Promise<SyncPrefixGeneration>): void;
50
+ export declare function __inFlightPrefixSweepCountForTests(): number;
51
+ export declare function estimateGenerationBytes(outputRows: readonly PrefixOutputRow[], liveDocs: readonly LiveHeadDoc[]): number;
52
+ export declare function __resetSyncPrefixCacheForTests(): void;
@@ -0,0 +1,119 @@
1
+ const cache = new Map();
2
+ const refreshing = new Set();
3
+ const inFlightSweeps = new Map();
4
+ const DEFAULT_WINDOW_MS = 60_000;
5
+ export const MAX_GENERATION_BYTES = 8_000_000;
6
+ export const MAX_TOTAL_BYTES = 24_000_000;
7
+ const PRUNE_AGE_MS = 60_000;
8
+ const DOC_SAMPLE_LIMIT = 64;
9
+ export function syncPrefixCacheKey(part) {
10
+ return JSON.stringify([part.ownerHandle, part.appSlug, part.dbName]);
11
+ }
12
+ export function syncPrefixCacheWindowMs(vctx) {
13
+ const raw = vctx.sthis.env.get("SYNC_PREFIX_CACHE_MS");
14
+ if (raw === undefined || raw === "")
15
+ return DEFAULT_WINDOW_MS;
16
+ const parsed = Number(raw);
17
+ if (!Number.isFinite(parsed) || parsed < 0)
18
+ return DEFAULT_WINDOW_MS;
19
+ return parsed;
20
+ }
21
+ export function readSyncPrefix(key, opts) {
22
+ if (opts.windowMs <= 0)
23
+ return undefined;
24
+ const entry = cache.get(key);
25
+ if (entry === undefined)
26
+ return undefined;
27
+ const gen = entry.gen;
28
+ if (gen.accessFnCid !== opts.accessFnCid || gen.svcKey !== opts.svcKey) {
29
+ cache.delete(key);
30
+ return undefined;
31
+ }
32
+ if (opts.nowMs - gen.at >= opts.windowMs)
33
+ return undefined;
34
+ return gen;
35
+ }
36
+ export function storeSyncPrefix(key, gen, opts) {
37
+ if (gen.estimatedBytes > MAX_GENERATION_BYTES) {
38
+ cache.delete(key);
39
+ return;
40
+ }
41
+ const pruneAgeMs = Math.max(opts.windowMs, PRUNE_AGE_MS);
42
+ for (const [k, entry] of cache) {
43
+ if (k !== key && gen.at - entry.gen.at >= pruneAgeMs)
44
+ cache.delete(k);
45
+ }
46
+ cache.delete(key);
47
+ let total = 0;
48
+ for (const entry of cache.values())
49
+ total += entry.gen.estimatedBytes;
50
+ while (total + gen.estimatedBytes > MAX_TOTAL_BYTES && cache.size > 0) {
51
+ let oldestKey;
52
+ let oldestAt = Number.POSITIVE_INFINITY;
53
+ for (const [k, entry] of cache) {
54
+ if (entry.gen.at < oldestAt) {
55
+ oldestAt = entry.gen.at;
56
+ oldestKey = k;
57
+ }
58
+ }
59
+ if (oldestKey === undefined)
60
+ break;
61
+ total -= cache.get(oldestKey)?.gen.estimatedBytes ?? 0;
62
+ cache.delete(oldestKey);
63
+ }
64
+ cache.set(key, { gen });
65
+ }
66
+ export function beginPrefixRefresh(key) {
67
+ if (refreshing.has(key))
68
+ return false;
69
+ refreshing.add(key);
70
+ return true;
71
+ }
72
+ export function endPrefixRefresh(key) {
73
+ refreshing.delete(key);
74
+ }
75
+ export function joinablePrefixSweep(key) {
76
+ return inFlightSweeps.get(key);
77
+ }
78
+ export function trackPrefixSweep(key, promise) {
79
+ inFlightSweeps.set(key, promise);
80
+ const clear = () => {
81
+ if (inFlightSweeps.get(key) === promise)
82
+ inFlightSweeps.delete(key);
83
+ };
84
+ promise.then(clear, clear);
85
+ }
86
+ export function __inFlightPrefixSweepCountForTests() {
87
+ return inFlightSweeps.size;
88
+ }
89
+ export function estimateGenerationBytes(outputRows, liveDocs) {
90
+ let bytes = 0;
91
+ for (const row of outputRows)
92
+ bytes += row.output.length;
93
+ if (liveDocs.length === 0)
94
+ return bytes;
95
+ const samples = Math.min(DOC_SAMPLE_LIMIT, liveDocs.length);
96
+ const stride = liveDocs.length / samples;
97
+ let sampled = 0;
98
+ let sampledBytes = 0;
99
+ for (let i = 0; i < samples; i++) {
100
+ const doc = liveDocs[Math.min(liveDocs.length - 1, Math.floor(i * stride))];
101
+ if (doc === undefined)
102
+ continue;
103
+ try {
104
+ sampledBytes += JSON.stringify(doc.doc).length;
105
+ }
106
+ catch {
107
+ }
108
+ sampled += 1;
109
+ }
110
+ if (sampled === 0)
111
+ return bytes;
112
+ return bytes + Math.round((sampledBytes / sampled) * liveDocs.length);
113
+ }
114
+ export function __resetSyncPrefixCacheForTests() {
115
+ cache.clear();
116
+ refreshing.clear();
117
+ inFlightSweeps.clear();
118
+ }
119
+ //# sourceMappingURL=sync-prefix-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-prefix-cache.js","sourceRoot":"","sources":["../../jsr/public/sync-prefix-cache.ts"],"names":[],"mappings":"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"}
package/types.d.ts CHANGED
@@ -50,6 +50,10 @@ export interface VibesApiSQLCtx {
50
50
  urlEgressFetch?: (request: Request) => Promise<Response>;
51
51
  billing: BillingIf;
52
52
  inferenceFetch: typeof fetch;
53
+ analyticsFetch: typeof fetch;
54
+ analyticsCountry?: string;
55
+ posthogKey?: string;
56
+ posthogHost?: string;
53
57
  prodiaToken?: string;
54
58
  metaAccessToken?: string;
55
59
  metaAdAccountId?: string;
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../jsr/types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAwL/B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAC;AAGH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,8BAA8B;IACpC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAC;AAGH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,OAAO,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAGH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../jsr/types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AA2M/B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAC;AAGH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,8BAA8B;IACpC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAC;AAGH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,OAAO,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAGH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC"}