@iann29/rastro 0.9.0 → 0.10.1
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/README.md +9 -1
- package/agent/integration.md +23 -1
- package/agent/manifest.json +4 -4
- package/dist/client/federation.d.ts +114 -9
- package/dist/client/federation.d.ts.map +1 -1
- package/dist/client/federation.js +54 -2
- package/dist/client/federation.js.map +1 -1
- package/dist/client/index.d.ts +642 -8
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +391 -9
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +14 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +278 -1
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/_generated/server.d.ts +4 -0
- package/dist/component/_generated/server.d.ts.map +1 -1
- package/dist/component/_generated/server.js.map +1 -1
- package/dist/component/constants.d.ts +5 -0
- package/dist/component/constants.d.ts.map +1 -1
- package/dist/component/constants.js +10 -0
- package/dist/component/constants.js.map +1 -1
- package/dist/component/convex.config.d.ts +4 -0
- package/dist/component/convex.config.js +9 -0
- package/dist/component/convex.config.js.map +1 -1
- package/dist/component/errors.d.ts +1 -1
- package/dist/component/errors.d.ts.map +1 -1
- package/dist/component/errors.js.map +1 -1
- package/dist/component/leads.d.ts +69 -3
- package/dist/component/leads.d.ts.map +1 -1
- package/dist/component/leads.js +419 -16
- package/dist/component/leads.js.map +1 -1
- package/dist/component/meta.d.ts +358 -0
- package/dist/component/meta.d.ts.map +1 -0
- package/dist/component/meta.js +1295 -0
- package/dist/component/meta.js.map +1 -0
- package/dist/component/metaCapi.d.ts +162 -0
- package/dist/component/metaCapi.d.ts.map +1 -0
- package/dist/component/metaCapi.js +754 -0
- package/dist/component/metaCapi.js.map +1 -0
- package/dist/component/metaFake.d.ts +5 -0
- package/dist/component/metaFake.d.ts.map +1 -0
- package/dist/component/metaFake.js +225 -0
- package/dist/component/metaFake.js.map +1 -0
- package/dist/component/metaGraph.d.ts +165 -0
- package/dist/component/metaGraph.d.ts.map +1 -0
- package/dist/component/metaGraph.js +507 -0
- package/dist/component/metaGraph.js.map +1 -0
- package/dist/component/metaSync.d.ts +186 -0
- package/dist/component/metaSync.d.ts.map +1 -0
- package/dist/component/metaSync.js +961 -0
- package/dist/component/metaSync.js.map +1 -0
- package/dist/component/pipeline.d.ts +99 -0
- package/dist/component/pipeline.d.ts.map +1 -0
- package/dist/component/pipeline.js +337 -0
- package/dist/component/pipeline.js.map +1 -0
- package/dist/component/schema.d.ts +404 -2
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +168 -2
- package/dist/component/schema.js.map +1 -1
- package/dist/component/secrets.d.ts +15 -0
- package/dist/component/secrets.d.ts.map +1 -0
- package/dist/component/secrets.js +67 -0
- package/dist/component/secrets.js.map +1 -0
- package/dist/component/validators.d.ts +1052 -15
- package/dist/component/validators.d.ts.map +1 -1
- package/dist/component/validators.js +307 -3
- package/dist/component/validators.js.map +1 -1
- package/dist/tracker/generated.d.ts +1 -1
- package/dist/tracker/generated.d.ts.map +1 -1
- package/dist/tracker/generated.js +1 -1
- package/dist/tracker/generated.js.map +1 -1
- package/dist/ui/campaigns/CampaignsView.d.ts +48 -0
- package/dist/ui/campaigns/CampaignsView.d.ts.map +1 -0
- package/dist/ui/campaigns/CampaignsView.js +47 -0
- package/dist/ui/campaigns/CampaignsView.js.map +1 -0
- package/dist/ui/campaigns/Conversions.d.ts +16 -0
- package/dist/ui/campaigns/Conversions.d.ts.map +1 -0
- package/dist/ui/campaigns/Conversions.js +40 -0
- package/dist/ui/campaigns/Conversions.js.map +1 -0
- package/dist/ui/campaigns/Drawer.d.ts +24 -0
- package/dist/ui/campaigns/Drawer.d.ts.map +1 -0
- package/dist/ui/campaigns/Drawer.js +120 -0
- package/dist/ui/campaigns/Drawer.js.map +1 -0
- package/dist/ui/campaigns/Icons.d.ts +35 -0
- package/dist/ui/campaigns/Icons.d.ts.map +1 -0
- package/dist/ui/campaigns/Icons.js +41 -0
- package/dist/ui/campaigns/Icons.js.map +1 -0
- package/dist/ui/campaigns/Summary.d.ts +21 -0
- package/dist/ui/campaigns/Summary.d.ts.map +1 -0
- package/dist/ui/campaigns/Summary.js +56 -0
- package/dist/ui/campaigns/Summary.js.map +1 -0
- package/dist/ui/campaigns/Thumbnail.d.ts +11 -0
- package/dist/ui/campaigns/Thumbnail.d.ts.map +1 -0
- package/dist/ui/campaigns/Thumbnail.js +23 -0
- package/dist/ui/campaigns/Thumbnail.js.map +1 -0
- package/dist/ui/campaigns/Tree.d.ts +12 -0
- package/dist/ui/campaigns/Tree.d.ts.map +1 -0
- package/dist/ui/campaigns/Tree.js +105 -0
- package/dist/ui/campaigns/Tree.js.map +1 -0
- package/dist/ui/campaigns/glyphs.d.ts +20 -0
- package/dist/ui/campaigns/glyphs.d.ts.map +1 -0
- package/dist/ui/campaigns/glyphs.js +19 -0
- package/dist/ui/campaigns/glyphs.js.map +1 -0
- package/dist/ui/campaigns/index.d.ts +4 -0
- package/dist/ui/campaigns/index.d.ts.map +1 -0
- package/dist/ui/campaigns/index.js +3 -0
- package/dist/ui/campaigns/index.js.map +1 -0
- package/dist/ui/campaigns/labels.d.ts +53 -0
- package/dist/ui/campaigns/labels.d.ts.map +1 -0
- package/dist/ui/campaigns/labels.js +169 -0
- package/dist/ui/campaigns/labels.js.map +1 -0
- package/dist/ui/campaigns/model.d.ts +99 -0
- package/dist/ui/campaigns/model.d.ts.map +1 -0
- package/dist/ui/campaigns/model.js +230 -0
- package/dist/ui/campaigns/model.js.map +1 -0
- package/dist/ui/campaigns/modes.d.ts +18 -0
- package/dist/ui/campaigns/modes.d.ts.map +1 -0
- package/dist/ui/campaigns/modes.js +7 -0
- package/dist/ui/campaigns/modes.js.map +1 -0
- package/dist/ui/index.d.ts +21 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +20 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/integrations/AccountPicker.d.ts +26 -0
- package/dist/ui/integrations/AccountPicker.d.ts.map +1 -0
- package/dist/ui/integrations/AccountPicker.js +101 -0
- package/dist/ui/integrations/AccountPicker.js.map +1 -0
- package/dist/ui/integrations/ClientCards.d.ts +17 -0
- package/dist/ui/integrations/ClientCards.d.ts.map +1 -0
- package/dist/ui/integrations/ClientCards.js +42 -0
- package/dist/ui/integrations/ClientCards.js.map +1 -0
- package/dist/ui/integrations/ClientsTable.d.ts +36 -0
- package/dist/ui/integrations/ClientsTable.d.ts.map +1 -0
- package/dist/ui/integrations/ClientsTable.js +143 -0
- package/dist/ui/integrations/ClientsTable.js.map +1 -0
- package/dist/ui/integrations/Connect.d.ts +35 -0
- package/dist/ui/integrations/Connect.d.ts.map +1 -0
- package/dist/ui/integrations/Connect.js +62 -0
- package/dist/ui/integrations/Connect.js.map +1 -0
- package/dist/ui/integrations/Connection.d.ts +37 -0
- package/dist/ui/integrations/Connection.d.ts.map +1 -0
- package/dist/ui/integrations/Connection.js +108 -0
- package/dist/ui/integrations/Connection.js.map +1 -0
- package/dist/ui/integrations/Dialogs.d.ts +21 -0
- package/dist/ui/integrations/Dialogs.d.ts.map +1 -0
- package/dist/ui/integrations/Dialogs.js +34 -0
- package/dist/ui/integrations/Dialogs.js.map +1 -0
- package/dist/ui/integrations/EventsFeed.d.ts +15 -0
- package/dist/ui/integrations/EventsFeed.d.ts.map +1 -0
- package/dist/ui/integrations/EventsFeed.js +61 -0
- package/dist/ui/integrations/EventsFeed.js.map +1 -0
- package/dist/ui/integrations/EventsSheet.d.ts +34 -0
- package/dist/ui/integrations/EventsSheet.d.ts.map +1 -0
- package/dist/ui/integrations/EventsSheet.js +136 -0
- package/dist/ui/integrations/EventsSheet.js.map +1 -0
- package/dist/ui/integrations/Icons.d.ts +38 -0
- package/dist/ui/integrations/Icons.d.ts.map +1 -0
- package/dist/ui/integrations/Icons.js +40 -0
- package/dist/ui/integrations/Icons.js.map +1 -0
- package/dist/ui/integrations/IntegrationsView.d.ts +15 -0
- package/dist/ui/integrations/IntegrationsView.d.ts.map +1 -0
- package/dist/ui/integrations/IntegrationsView.js +141 -0
- package/dist/ui/integrations/IntegrationsView.js.map +1 -0
- package/dist/ui/integrations/Overlay.d.ts +18 -0
- package/dist/ui/integrations/Overlay.d.ts.map +1 -0
- package/dist/ui/integrations/Overlay.js +36 -0
- package/dist/ui/integrations/Overlay.js.map +1 -0
- package/dist/ui/integrations/Partner.d.ts +14 -0
- package/dist/ui/integrations/Partner.d.ts.map +1 -0
- package/dist/ui/integrations/Partner.js +38 -0
- package/dist/ui/integrations/Partner.js.map +1 -0
- package/dist/ui/integrations/RowMenu.d.ts +15 -0
- package/dist/ui/integrations/RowMenu.d.ts.map +1 -0
- package/dist/ui/integrations/RowMenu.js +47 -0
- package/dist/ui/integrations/RowMenu.js.map +1 -0
- package/dist/ui/integrations/UnlinkDialog.d.ts +18 -0
- package/dist/ui/integrations/UnlinkDialog.d.ts.map +1 -0
- package/dist/ui/integrations/UnlinkDialog.js +29 -0
- package/dist/ui/integrations/UnlinkDialog.js.map +1 -0
- package/dist/ui/integrations/audience.d.ts +12 -0
- package/dist/ui/integrations/audience.d.ts.map +1 -0
- package/dist/ui/integrations/audience.js +12 -0
- package/dist/ui/integrations/audience.js.map +1 -0
- package/dist/ui/integrations/format.d.ts +28 -0
- package/dist/ui/integrations/format.d.ts.map +1 -0
- package/dist/ui/integrations/format.js +101 -0
- package/dist/ui/integrations/format.js.map +1 -0
- package/dist/ui/integrations/index.d.ts +5 -0
- package/dist/ui/integrations/index.d.ts.map +1 -0
- package/dist/ui/integrations/index.js +3 -0
- package/dist/ui/integrations/index.js.map +1 -0
- package/dist/ui/integrations/modal.d.ts +10 -0
- package/dist/ui/integrations/modal.d.ts.map +1 -0
- package/dist/ui/integrations/modal.js +77 -0
- package/dist/ui/integrations/modal.js.map +1 -0
- package/dist/ui/integrations/model.d.ts +99 -0
- package/dist/ui/integrations/model.d.ts.map +1 -0
- package/dist/ui/integrations/model.js +164 -0
- package/dist/ui/integrations/model.js.map +1 -0
- package/dist/ui/integrations/parts.d.ts +36 -0
- package/dist/ui/integrations/parts.d.ts.map +1 -0
- package/dist/ui/integrations/parts.js +85 -0
- package/dist/ui/integrations/parts.js.map +1 -0
- package/dist/ui/integrations/types.d.ts +146 -0
- package/dist/ui/integrations/types.d.ts.map +1 -0
- package/dist/ui/integrations/types.js +2 -0
- package/dist/ui/integrations/types.js.map +1 -0
- package/dist/ui/metrics.d.ts +106 -0
- package/dist/ui/metrics.d.ts.map +1 -0
- package/dist/ui/metrics.js +166 -0
- package/dist/ui/metrics.js.map +1 -0
- package/dist/ui/portfolio/PortfolioView.d.ts +26 -0
- package/dist/ui/portfolio/PortfolioView.d.ts.map +1 -0
- package/dist/ui/portfolio/PortfolioView.js +216 -0
- package/dist/ui/portfolio/PortfolioView.js.map +1 -0
- package/dist/ui/portfolio/SpendChart.d.ts +10 -0
- package/dist/ui/portfolio/SpendChart.d.ts.map +1 -0
- package/dist/ui/portfolio/SpendChart.js +196 -0
- package/dist/ui/portfolio/SpendChart.js.map +1 -0
- package/dist/ui/portfolio/alerts.d.ts +74 -0
- package/dist/ui/portfolio/alerts.d.ts.map +1 -0
- package/dist/ui/portfolio/alerts.js +291 -0
- package/dist/ui/portfolio/alerts.js.map +1 -0
- package/dist/ui/portfolio/figures.d.ts +79 -0
- package/dist/ui/portfolio/figures.d.ts.map +1 -0
- package/dist/ui/portfolio/figures.js +103 -0
- package/dist/ui/portfolio/figures.js.map +1 -0
- package/dist/ui/portfolio/format.d.ts +8 -0
- package/dist/ui/portfolio/format.d.ts.map +1 -0
- package/dist/ui/portfolio/format.js +28 -0
- package/dist/ui/portfolio/format.js.map +1 -0
- package/dist/ui/sample.d.ts +536 -0
- package/dist/ui/sample.d.ts.map +1 -0
- package/dist/ui/sample.js +574 -0
- package/dist/ui/sample.js.map +1 -0
- package/dist/ui/seed.d.ts +188 -0
- package/dist/ui/seed.d.ts.map +1 -0
- package/dist/ui/seed.js +563 -0
- package/dist/ui/seed.js.map +1 -0
- package/dist/ui/ui.css +3424 -0
- package/docs/federation.md +46 -1
- package/docs/meta-ads.md +795 -0
- package/docs/upgrading.md +116 -0
- package/llms.txt +3 -0
- package/package.json +15 -3
- package/src/component/_generated/api.ts +14 -0
- package/src/component/_generated/component.ts +324 -1
- package/src/component/_generated/server.ts +4 -0
- package/src/component/constants.ts +10 -0
- package/src/component/convex.config.ts +9 -0
- package/src/component/errors.ts +5 -1
- package/src/component/leads.ts +517 -17
- package/src/component/meta.ts +1525 -0
- package/src/component/metaCapi.ts +921 -0
- package/src/component/metaFake.ts +277 -0
- package/src/component/metaGraph.ts +722 -0
- package/src/component/metaSync.ts +1164 -0
- package/src/component/pipeline.ts +410 -0
- package/src/component/schema.ts +197 -1
- package/src/component/secrets.ts +98 -0
- package/src/component/validators.ts +376 -3
- package/src/tracker/generated.ts +1 -1
- package/src/ui/seed.ts +755 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { Doc } from "./_generated/dataModel.js";
|
|
2
|
+
import { type MutationCtx } from "./_generated/server.js";
|
|
3
|
+
export declare const SYNC_INTERVAL_MS: number;
|
|
4
|
+
/** `nextSyncAt` of an account the chain must not take: its token failed. */
|
|
5
|
+
export declare const PAUSED_AT: number;
|
|
6
|
+
/** A link to one connection at most; the chain pauses and resumes them all. */
|
|
7
|
+
export declare const MAX_LINKS_PER_CONNECTION = 500;
|
|
8
|
+
/** Above this share of any Meta rate limit, the next sync waits longer. */
|
|
9
|
+
export declare const USAGE_BACKOFF_PCT = 75;
|
|
10
|
+
/** The account-local calendar date of an instant, `YYYY-MM-DD`. */
|
|
11
|
+
export declare function localDate(timestamp: number, timeZone: string): string;
|
|
12
|
+
export declare function dateDayStart(date: string): number;
|
|
13
|
+
export type SyncRange = {
|
|
14
|
+
since: string;
|
|
15
|
+
until: string;
|
|
16
|
+
};
|
|
17
|
+
export type SyncPlan = {
|
|
18
|
+
kind: "backfill";
|
|
19
|
+
range: SyncRange;
|
|
20
|
+
/** The date the next block starts from, or null when this is the last. */
|
|
21
|
+
nextFrom: string | null;
|
|
22
|
+
fullCatalog: boolean;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "live";
|
|
25
|
+
range: SyncRange;
|
|
26
|
+
fullCatalog: boolean;
|
|
27
|
+
daily: boolean;
|
|
28
|
+
weekly: boolean;
|
|
29
|
+
};
|
|
30
|
+
/** What one run of an account reads from Meta, by its state and the time. */
|
|
31
|
+
export declare function planSync(account: Pick<Doc<"siteAdAccounts">, "timezone" | "lastSyncAt" | "lastDailyResyncAt" | "lastFullResyncAt" | "backfillFrom">, now: number): SyncPlan;
|
|
32
|
+
/** The wait after `failures` failed runs in a row: 15 min doubling to 6 h. */
|
|
33
|
+
export declare function retryDelay(failures: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Makes sure the chain runs by `at`: starts it, or pulls a later run earlier.
|
|
36
|
+
* Called by every write that gives the chain work.
|
|
37
|
+
*/
|
|
38
|
+
export declare function kickSyncLoop(ctx: MutationCtx, at: number): Promise<void>;
|
|
39
|
+
/** One link of the chain: hands the due accounts to fresh runs, moves on. */
|
|
40
|
+
export declare const loop: import("convex/server").RegisteredMutation<"internal", {}, Promise<null>>;
|
|
41
|
+
export declare const loadJob: import("convex/server").RegisteredQuery<"internal", {
|
|
42
|
+
runId: string;
|
|
43
|
+
siteAdAccountId: import("convex/values").GenericId<"siteAdAccounts">;
|
|
44
|
+
}, Promise<{
|
|
45
|
+
siteId: import("convex/values").GenericId<"sites">;
|
|
46
|
+
adAccountId: string;
|
|
47
|
+
timezone: string;
|
|
48
|
+
lastSyncAt: number | undefined;
|
|
49
|
+
lastDailyResyncAt: number | undefined;
|
|
50
|
+
lastFullResyncAt: number | undefined;
|
|
51
|
+
backfillFrom: string | undefined;
|
|
52
|
+
connectionActive: boolean;
|
|
53
|
+
tokenCipher: string;
|
|
54
|
+
tokenIv: string;
|
|
55
|
+
} | null>>;
|
|
56
|
+
/**
|
|
57
|
+
* Upserts one chunk of spend rows, stamping them with the run's start, and
|
|
58
|
+
* keeps the site-day aggregate in step. `stop` when the run lost the link.
|
|
59
|
+
*/
|
|
60
|
+
export declare const saveSpend: import("convex/server").RegisteredMutation<"internal", {
|
|
61
|
+
rows: {
|
|
62
|
+
adId: string;
|
|
63
|
+
clicks: number;
|
|
64
|
+
conversations: number;
|
|
65
|
+
dayStart: number;
|
|
66
|
+
impressions: number;
|
|
67
|
+
spendCents: number;
|
|
68
|
+
}[];
|
|
69
|
+
runId: string;
|
|
70
|
+
siteAdAccountId: import("convex/values").GenericId<"siteAdAccounts">;
|
|
71
|
+
syncedAt: number;
|
|
72
|
+
}, Promise<{
|
|
73
|
+
stop: boolean;
|
|
74
|
+
}>>;
|
|
75
|
+
/**
|
|
76
|
+
* After a complete range is saved, drops the account's rows in it that the
|
|
77
|
+
* run did not touch: Meta leaves out an ad-day with nothing, so a day
|
|
78
|
+
* corrected to zero disappears from its answer. Pages until done.
|
|
79
|
+
*/
|
|
80
|
+
export declare const dropStaleSpend: import("convex/server").RegisteredMutation<"internal", {
|
|
81
|
+
cursor: string | null;
|
|
82
|
+
firstDay: number;
|
|
83
|
+
lastDay: number;
|
|
84
|
+
runId: string;
|
|
85
|
+
siteAdAccountId: import("convex/values").GenericId<"siteAdAccounts">;
|
|
86
|
+
syncedAt: number;
|
|
87
|
+
}, Promise<{
|
|
88
|
+
stop: boolean;
|
|
89
|
+
done: boolean;
|
|
90
|
+
cursor: null;
|
|
91
|
+
} | {
|
|
92
|
+
stop: boolean;
|
|
93
|
+
done: boolean;
|
|
94
|
+
cursor: string;
|
|
95
|
+
}>>;
|
|
96
|
+
/**
|
|
97
|
+
* Names, status and creative for the account's ads. A missing field keeps the
|
|
98
|
+
* stored value. Returns the ads that have a thumbnail at Meta but none in
|
|
99
|
+
* storage yet; `stop` when the run lost the link.
|
|
100
|
+
*/
|
|
101
|
+
export declare const upsertCatalog: import("convex/server").RegisteredMutation<"internal", {
|
|
102
|
+
ads: {
|
|
103
|
+
adId: string;
|
|
104
|
+
adName?: string | undefined;
|
|
105
|
+
adStatus?: string | undefined;
|
|
106
|
+
adsetId?: string | undefined;
|
|
107
|
+
adsetName?: string | undefined;
|
|
108
|
+
campaignId?: string | undefined;
|
|
109
|
+
campaignName?: string | undefined;
|
|
110
|
+
creativeType?: "carousel" | "image" | "other" | "video" | undefined;
|
|
111
|
+
hasThumbnail?: boolean | undefined;
|
|
112
|
+
}[];
|
|
113
|
+
runId: string;
|
|
114
|
+
siteAdAccountId: import("convex/values").GenericId<"siteAdAccounts">;
|
|
115
|
+
}, Promise<{
|
|
116
|
+
stop: boolean;
|
|
117
|
+
needThumbnail: string[];
|
|
118
|
+
}>>;
|
|
119
|
+
export declare const setThumbnail: import("convex/server").RegisteredMutation<"internal", {
|
|
120
|
+
adId: string;
|
|
121
|
+
siteId: import("convex/values").GenericId<"sites">;
|
|
122
|
+
storageId: import("convex/values").GenericId<"_storage">;
|
|
123
|
+
}, Promise<null>>;
|
|
124
|
+
/**
|
|
125
|
+
* Ads that brought the site leads lately but have no name yet, to ask the
|
|
126
|
+
* account for. An ad the catalog already files under another account is not
|
|
127
|
+
* this account's to name.
|
|
128
|
+
*/
|
|
129
|
+
export declare const missingAdNames: import("convex/server").RegisteredQuery<"internal", {
|
|
130
|
+
adAccountId: string;
|
|
131
|
+
since: number;
|
|
132
|
+
siteId: import("convex/values").GenericId<"sites">;
|
|
133
|
+
}, Promise<string[]>>;
|
|
134
|
+
/** Records how a run ended and when the account syncs next. */
|
|
135
|
+
export declare const finishSync: import("convex/server").RegisteredMutation<"internal", {
|
|
136
|
+
adAccountId: string;
|
|
137
|
+
outcome: {
|
|
138
|
+
kind: "ok";
|
|
139
|
+
plan: {
|
|
140
|
+
kind: "backfill";
|
|
141
|
+
nextFrom: string | null;
|
|
142
|
+
} | {
|
|
143
|
+
daily: boolean;
|
|
144
|
+
kind: "live";
|
|
145
|
+
weekly: boolean;
|
|
146
|
+
};
|
|
147
|
+
regainMs: number | null;
|
|
148
|
+
truncated: boolean;
|
|
149
|
+
usagePct: number;
|
|
150
|
+
} | {
|
|
151
|
+
kind: "key" | "other" | "permission" | "throttled" | "token";
|
|
152
|
+
message: string;
|
|
153
|
+
regainMs: number | null;
|
|
154
|
+
};
|
|
155
|
+
runId: string;
|
|
156
|
+
siteAdAccountId: import("convex/values").GenericId<"siteAdAccounts">;
|
|
157
|
+
siteId: import("convex/values").GenericId<"sites">;
|
|
158
|
+
startedAt: number;
|
|
159
|
+
tokenIv: string;
|
|
160
|
+
}, Promise<null>>;
|
|
161
|
+
/** Reads one account from Meta and writes what it found, as run `runId`. */
|
|
162
|
+
export declare const syncAccount: import("convex/server").RegisteredAction<"internal", {
|
|
163
|
+
runId: string;
|
|
164
|
+
siteAdAccountId: import("convex/values").GenericId<"siteAdAccounts">;
|
|
165
|
+
}, Promise<null>>;
|
|
166
|
+
/**
|
|
167
|
+
* Deletes a site's spend from one ad account after it is unlinked, a batch
|
|
168
|
+
* per run, then its site-day aggregate. Stops if the account is linked to the
|
|
169
|
+
* site again meanwhile (its backfill rewrites the rows).
|
|
170
|
+
*/
|
|
171
|
+
export declare const purgeSpend: import("convex/server").RegisteredMutation<"internal", {
|
|
172
|
+
adAccountId: string;
|
|
173
|
+
cursor: string | null;
|
|
174
|
+
siteId: import("convex/values").GenericId<"sites">;
|
|
175
|
+
}, Promise<null>>;
|
|
176
|
+
/**
|
|
177
|
+
* How far the first backfill has read, from the cursor the chain keeps:
|
|
178
|
+
* whole 30-day blocks done of the 90 days' total. Null once the account has
|
|
179
|
+
* synced (a later gap fill runs under `live`). Reads no clock: the range is
|
|
180
|
+
* counted from the account-local date it was linked on.
|
|
181
|
+
*/
|
|
182
|
+
export declare function backfillProgress(link: Pick<Doc<"siteAdAccounts">, "lastSyncAt" | "backfillFrom" | "createdAt" | "timezone">): {
|
|
183
|
+
done: number;
|
|
184
|
+
total: number;
|
|
185
|
+
} | null;
|
|
186
|
+
//# sourceMappingURL=metaSync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metaSync.d.ts","sourceRoot":"","sources":["../../src/component/metaSync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAM,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AA+BhC,eAAO,MAAM,gBAAgB,QAAc,CAAC;AAC5C,4EAA4E;AAC5E,eAAO,MAAM,SAAS,QAA0B,CAAC;AACjD,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAO5C,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAuBpC,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAOD,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,QAAQ,GAChB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEN,6EAA6E;AAC7E,wBAAgB,QAAQ,CACtB,OAAO,EAAE,IAAI,CACX,GAAG,CAAC,gBAAgB,CAAC,EACnB,UAAU,GACV,YAAY,GACZ,mBAAmB,GACnB,kBAAkB,GAClB,cAAc,CACjB,EACD,GAAG,EAAE,MAAM,GACV,QAAQ,CA0CV;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAKD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,iBAsB9D;AAED,6EAA6E;AAC7E,eAAO,MAAM,IAAI,2EAyDf,CAAC;AAmBH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;UAsClB,CAAC;AAuDH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;GAqDpB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;GA0CzB,CAAC;AAsBH;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;GA2CxB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;iBA2BvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;qBAkCzB,CAAC;AAmCH,+DAA+D;AAC/D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;iBAsHrB,CAAC;AA2HH,4EAA4E;AAC5E,eAAO,MAAM,WAAW;;;iBA+LtB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;iBA0CrB,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CACR,GAAG,CAAC,gBAAgB,CAAC,EACrB,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,CACzD,GACA;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgBxC"}
|