@iann29/rastro 0.8.1 → 0.10.0
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 +641 -8
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +385 -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 +280 -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/ingest.d.ts.map +1 -1
- package/dist/component/ingest.js +5 -2
- package/dist/component/ingest.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 +352 -0
- package/dist/component/meta.d.ts.map +1 -0
- package/dist/component/meta.js +1239 -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 +98 -0
- package/dist/component/pipeline.d.ts.map +1 -0
- package/dist/component/pipeline.js +324 -0
- package/dist/component/pipeline.js.map +1 -0
- package/dist/component/sanitize.d.ts +8 -0
- package/dist/component/sanitize.d.ts.map +1 -1
- package/dist/component/sanitize.js +36 -0
- package/dist/component/sanitize.js.map +1 -1
- package/dist/component/schema.d.ts +407 -3
- 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/sites.d.ts +3 -0
- package/dist/component/sites.d.ts.map +1 -1
- package/dist/component/sites.js +7 -1
- package/dist/component/sites.js.map +1 -1
- package/dist/component/validators.d.ts +1060 -16
- package/dist/component/validators.d.ts.map +1 -1
- package/dist/component/validators.js +313 -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 +19 -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 +97 -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 +38 -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 +127 -0
- package/dist/ui/integrations/ClientsTable.js.map +1 -0
- package/dist/ui/integrations/Connect.d.ts +29 -0
- package/dist/ui/integrations/Connect.d.ts.map +1 -0
- package/dist/ui/integrations/Connect.js +49 -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 +94 -0
- package/dist/ui/integrations/Connection.js.map +1 -0
- package/dist/ui/integrations/Dialogs.d.ts +18 -0
- package/dist/ui/integrations/Dialogs.d.ts.map +1 -0
- package/dist/ui/integrations/Dialogs.js +25 -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 +57 -0
- package/dist/ui/integrations/EventsFeed.js.map +1 -0
- package/dist/ui/integrations/EventsSheet.d.ts +28 -0
- package/dist/ui/integrations/EventsSheet.d.ts.map +1 -0
- package/dist/ui/integrations/EventsSheet.js +121 -0
- package/dist/ui/integrations/EventsSheet.js.map +1 -0
- package/dist/ui/integrations/Icons.d.ts +36 -0
- package/dist/ui/integrations/Icons.d.ts.map +1 -0
- package/dist/ui/integrations/Icons.js +38 -0
- package/dist/ui/integrations/Icons.js.map +1 -0
- package/dist/ui/integrations/IntegrationsView.d.ts +14 -0
- package/dist/ui/integrations/IntegrationsView.d.ts.map +1 -0
- package/dist/ui/integrations/IntegrationsView.js +113 -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/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/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/model.d.ts +84 -0
- package/dist/ui/integrations/model.d.ts.map +1 -0
- package/dist/ui/integrations/model.js +131 -0
- package/dist/ui/integrations/model.js.map +1 -0
- package/dist/ui/integrations/overlay.d.ts +10 -0
- package/dist/ui/integrations/overlay.d.ts.map +1 -0
- package/dist/ui/integrations/overlay.js +77 -0
- package/dist/ui/integrations/overlay.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 +96 -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 +474 -0
- package/dist/ui/sample.d.ts.map +1 -0
- package/dist/ui/sample.js +553 -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 +3356 -0
- package/docs/federation.md +46 -1
- package/docs/meta-ads.md +746 -0
- package/docs/upgrading.md +110 -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 +326 -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/ingest.ts +5 -1
- package/src/component/leads.ts +517 -17
- package/src/component/meta.ts +1461 -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 +392 -0
- package/src/component/sanitize.ts +45 -0
- package/src/component/schema.ts +197 -1
- package/src/component/secrets.ts +98 -0
- package/src/component/sites.ts +8 -0
- package/src/component/validators.ts +382 -3
- package/src/tracker/generated.ts +1 -1
- package/src/ui/seed.ts +755 -0
package/dist/client/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export { localDayStart, nextLocalDayStart, previousLocalDayStart, } from "../com
|
|
|
15
15
|
export { HEAT_HOT_SCORE, HEAT_WARM_SCORE, visitorHeat } from "./heat.js";
|
|
16
16
|
export type { HeatInput, HeatLevel, HeatSignal, VisitorHeat } from "./heat.js";
|
|
17
17
|
export type { VitalMetric } from "../component/vitals.js";
|
|
18
|
-
export { effectiveFederatedPermissions, federatedPermissionSatisfies, isPublicFederatedAccess, FEDERATED_ANALYTICS_CLAIMS, FEDERATED_ANALYTICS_CONFIGURE_FUNCTIONS, FEDERATED_ANALYTICS_CONFIGURE_PERMISSION, FEDERATED_ANALYTICS_CONNECTOR_MANIFEST, FEDERATED_ANALYTICS_ERROR_CODES, FEDERATED_ANALYTICS_LEAD_FUNCTIONS, FEDERATED_ANALYTICS_PERMISSIONS, FEDERATED_ANALYTICS_PUBLIC_FUNCTIONS, FEDERATED_ANALYTICS_PUBLIC_PERMISSION, FEDERATED_ANALYTICS_READ_PERMISSION, FEDERATED_ANALYTICS_REQUIRED_CAPABILITIES, FEDERATED_ANALYTICS_REQUIRED_FUNCTIONS, federatedAnalyticsPermissionValidator, } from "./federation.js";
|
|
18
|
+
export { effectiveFederatedPermissions, federatedPermissionSatisfies, isPublicFederatedAccess, FEDERATED_ANALYTICS_CLAIMS, FEDERATED_ANALYTICS_CONFIGURE_FUNCTIONS, FEDERATED_ANALYTICS_CONFIGURE_PERMISSION, FEDERATED_ANALYTICS_CONNECTOR_MANIFEST, FEDERATED_ANALYTICS_ERROR_CODES, FEDERATED_ANALYTICS_LEAD_FUNCTIONS, FEDERATED_ANALYTICS_META_AUTHORIZER, FEDERATED_ANALYTICS_META_FUNCTIONS, FEDERATED_ANALYTICS_PERMISSIONS, federatedMetaOwnerKey, FEDERATED_ANALYTICS_PUBLIC_FUNCTIONS, FEDERATED_ANALYTICS_PUBLIC_PERMISSION, FEDERATED_ANALYTICS_READ_PERMISSION, FEDERATED_ANALYTICS_REQUIRED_CAPABILITIES, FEDERATED_ANALYTICS_REQUIRED_FUNCTIONS, federatedAnalyticsPermissionValidator, } from "./federation.js";
|
|
19
19
|
export type { FederatedAnalyticsCapability, FederatedAnalyticsAuthorizerOptions, FederatedAnalyticsConnection, FederatedAnalyticsConnectionStatus, FederatedAnalyticsErrorCode, FederatedAnalyticsIdentity, FederatedAnalyticsManifest, FederatedAnalyticsPermission, FederatedSiteSummary, ResolveFederatedAnalyticsConnection, } from "./federation.js";
|
|
20
20
|
export type CreateSiteInput = FunctionArgs<ComponentApi["sites"]["create"]>;
|
|
21
21
|
export type ListPeopleInput = FunctionArgs<ComponentApi["people"]["list"]>;
|
|
@@ -69,14 +69,68 @@ export type CreateTrackedLinkInput = FunctionArgs<ComponentApi["trackedLinks"]["
|
|
|
69
69
|
export type UpdateTrackedLinkInput = FunctionArgs<ComponentApi["trackedLinks"]["update"]>;
|
|
70
70
|
export type ListTrackedLinksInput = FunctionArgs<ComponentApi["trackedLinks"]["list"]>;
|
|
71
71
|
export type TrackedLink = FunctionReturnType<ComponentApi["trackedLinks"]["list"]>[number];
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
/**
|
|
73
|
+
* What the host knows of a lead's contact for the Meta pixel, every value
|
|
74
|
+
* already a SHA-256 hex digest: the phone numbers (digits with the country
|
|
75
|
+
* code) and the host's own contact id.
|
|
76
|
+
*/
|
|
77
|
+
export type MetaHashes = {
|
|
78
|
+
ph: string[];
|
|
79
|
+
externalId?: string;
|
|
80
|
+
};
|
|
81
|
+
export type RecordLeadInput = Omit<FunctionArgs<ComponentApi["leads"]["record"]>, "meta"> & {
|
|
82
|
+
meta?: MetaHashes;
|
|
83
|
+
};
|
|
84
|
+
export type SetLeadStageInput = Omit<FunctionArgs<ComponentApi["leads"]["setStage"]>, "meta"> & {
|
|
85
|
+
meta?: MetaHashes;
|
|
86
|
+
};
|
|
74
87
|
export type UpsertAdCatalogInput = FunctionArgs<ComponentApi["leads"]["upsertAdCatalog"]>;
|
|
75
88
|
export type LeadsReportInput = FunctionArgs<ComponentApi["leads"]["report"]>;
|
|
76
89
|
export type LeadsReport = FunctionReturnType<ComponentApi["leads"]["report"]>;
|
|
77
90
|
export type ListLeadsInput = FunctionArgs<ComponentApi["leads"]["list"]>;
|
|
78
91
|
export type LeadSummary = FunctionReturnType<ComponentApi["leads"]["list"]>[number];
|
|
79
92
|
export type LeadJourney = FunctionReturnType<ComponentApi["leads"]["journey"]>;
|
|
93
|
+
export type LeadsDailyInput = FunctionArgs<ComponentApi["leads"]["daily"]>;
|
|
94
|
+
export type LeadsDaily = FunctionReturnType<ComponentApi["leads"]["daily"]>;
|
|
95
|
+
export type MetaStatus = FunctionReturnType<ComponentApi["meta"]["status"]>;
|
|
96
|
+
export type MetaConversionsInput = FunctionArgs<ComponentApi["meta"]["conversions"]>;
|
|
97
|
+
export type MetaConversion = FunctionReturnType<ComponentApi["meta"]["conversions"]>[number];
|
|
98
|
+
export type MetaAdAccount = FunctionReturnType<ComponentApi["meta"]["listAdAccounts"]>[number];
|
|
99
|
+
export type SetMetaConnectionInput = FunctionArgs<ComponentApi["meta"]["connect"]>;
|
|
100
|
+
export type SetMetaConnectionOutput = FunctionReturnType<ComponentApi["meta"]["connect"]>;
|
|
101
|
+
export type LinkSiteAdAccountInput = FunctionArgs<ComponentApi["meta"]["linkAdAccount"]>;
|
|
102
|
+
/**
|
|
103
|
+
* The site's pixel, picked from an owner's connection (`ownerKey`: it sends
|
|
104
|
+
* with that connection's token) or set with its own Conversions API token
|
|
105
|
+
* (`accessToken`, plan B). Exactly one of the two.
|
|
106
|
+
*/
|
|
107
|
+
export type SetSitePixelInput = Omit<FunctionArgs<ComponentApi["meta"]["setPixel"]>, "accessToken" | "ownerKey"> & ({
|
|
108
|
+
ownerKey: string;
|
|
109
|
+
accessToken?: never;
|
|
110
|
+
} | {
|
|
111
|
+
accessToken: string;
|
|
112
|
+
ownerKey?: never;
|
|
113
|
+
});
|
|
114
|
+
export type ConnectMetaWithCodeInput = FunctionArgs<ComponentApi["meta"]["connectWithCode"]>;
|
|
115
|
+
export type ConnectMetaWithCodeOutput = FunctionReturnType<ComponentApi["meta"]["connectWithCode"]>;
|
|
116
|
+
/** An owner's Meta connection as a screen shows it (never a token). */
|
|
117
|
+
export type MetaConnection = NonNullable<FunctionReturnType<ComponentApi["meta"]["connection"]>>;
|
|
118
|
+
export type MetaConnectionAdAccount = MetaConnection["adAccounts"][number];
|
|
119
|
+
export type MetaPixel = MetaConnection["pixels"][number];
|
|
120
|
+
/** Where a site's pixel sends from: a connection's token, or its own. */
|
|
121
|
+
export type MetaPixelSource = "connection" | "token";
|
|
122
|
+
export type SetPipelineInput = FunctionArgs<ComponentApi["pipeline"]["setPipeline"]>;
|
|
123
|
+
export type PipelineColumn = SetPipelineInput["columns"][number];
|
|
124
|
+
export type SetEventMapInput = FunctionArgs<ComponentApi["pipeline"]["setEventMap"]>;
|
|
125
|
+
export type EventMapInput = FunctionArgs<ComponentApi["pipeline"]["eventMap"]>;
|
|
126
|
+
/** A site's columns, the Meta event each sends and its monthly entries. */
|
|
127
|
+
export type EventMap = FunctionReturnType<ComponentApi["pipeline"]["eventMap"]>;
|
|
128
|
+
export type EventMapColumn = EventMap["columns"][number];
|
|
129
|
+
/** The events a column may send; `Purchase` comes from the sale alone. */
|
|
130
|
+
export type MetaColumnEvent = NonNullable<EventMapColumn["event"]>;
|
|
131
|
+
export type UnlinkPreviewInput = FunctionArgs<ComponentApi["meta"]["unlinkPreview"]>;
|
|
132
|
+
/** What unlinking an ad account takes out of the site's reports. */
|
|
133
|
+
export type UnlinkPreview = FunctionReturnType<ComponentApi["meta"]["unlinkPreview"]>;
|
|
80
134
|
export type CleanupInput = {
|
|
81
135
|
siteId: string;
|
|
82
136
|
kind: RetentionKind;
|
|
@@ -154,6 +208,7 @@ export declare class Rastro {
|
|
|
154
208
|
ownerId: string;
|
|
155
209
|
routePatterns?: Array<string>;
|
|
156
210
|
timezone?: string;
|
|
211
|
+
trackedPaths?: Array<string>;
|
|
157
212
|
updatedAt: number;
|
|
158
213
|
} | null>;
|
|
159
214
|
/** The calendar days a site's daily overview answers in; see `sites.localDays`. */
|
|
@@ -173,6 +228,7 @@ export declare class Rastro {
|
|
|
173
228
|
ownerId: string;
|
|
174
229
|
routePatterns?: Array<string>;
|
|
175
230
|
timezone?: string;
|
|
231
|
+
trackedPaths?: Array<string>;
|
|
176
232
|
updatedAt: number;
|
|
177
233
|
}[]>;
|
|
178
234
|
ingest(ctx: MutationCtx, args: IngestInput): Promise<{
|
|
@@ -916,7 +972,9 @@ export declare class Rastro {
|
|
|
916
972
|
* Records a lead the host's server saw (a WhatsApp conversation), once per
|
|
917
973
|
* `leadKey`: pass the host's own opaque id for the conversation, never a
|
|
918
974
|
* phone number. The first touch wins; a repeat call only fills `label` or
|
|
919
|
-
* `visitorId`. Call it from the host's inbound handler.
|
|
975
|
+
* `visitorId`. Call it from the host's inbound handler. `meta` (SHA-256
|
|
976
|
+
* hashes of the phone and the contact id) lets the site's Meta pixel
|
|
977
|
+
* receive `Lead` when the pixel sends new leads.
|
|
920
978
|
*/
|
|
921
979
|
recordLead(ctx: MutationCtx, args: RecordLeadInput): Promise<{
|
|
922
980
|
created: boolean;
|
|
@@ -924,8 +982,11 @@ export declare class Rastro {
|
|
|
924
982
|
}>;
|
|
925
983
|
/**
|
|
926
984
|
* Moves a recorded lead to `qualified`, `won` (with the sale value in the
|
|
927
|
-
* site's currency), `lost`, or back `open
|
|
928
|
-
*
|
|
985
|
+
* site's currency), `lost`, or back `open`, and/or to the host's board
|
|
986
|
+
* `column` (see `setPipeline`). Idempotent by `eventId`; a lead never
|
|
987
|
+
* recorded returns `applied: false` instead of being invented. With `meta`
|
|
988
|
+
* (SHA-256 hashes) and an active pixel, a sale with a value is sent to Meta
|
|
989
|
+
* as `Purchase` and a mapped column's event goes out, once per lead each.
|
|
929
990
|
*/
|
|
930
991
|
setLeadStage(ctx: MutationCtx, args: SetLeadStageInput): Promise<{
|
|
931
992
|
applied: boolean;
|
|
@@ -939,48 +1000,85 @@ export declare class Rastro {
|
|
|
939
1000
|
upserted: number;
|
|
940
1001
|
}>;
|
|
941
1002
|
leadsReport(ctx: QueryCtx | MutationCtx | ActionCtx, args: LeadsReportInput): Promise<{
|
|
1003
|
+
bySite?: Array<{
|
|
1004
|
+
currencyMismatch?: boolean;
|
|
1005
|
+
leads: number;
|
|
1006
|
+
paid: {
|
|
1007
|
+
leads: number;
|
|
1008
|
+
qualified: number;
|
|
1009
|
+
revenueCents: number;
|
|
1010
|
+
won: number;
|
|
1011
|
+
};
|
|
1012
|
+
qualified: number;
|
|
1013
|
+
revenueCents: number;
|
|
1014
|
+
siteId: string;
|
|
1015
|
+
spendCents?: number | null;
|
|
1016
|
+
spendCurrency?: string | null;
|
|
1017
|
+
won: number;
|
|
1018
|
+
}>;
|
|
942
1019
|
campaigns: Array<{
|
|
943
1020
|
adsets: Array<{
|
|
944
1021
|
ads: Array<{
|
|
945
1022
|
adId: string;
|
|
946
1023
|
adName: string | null;
|
|
1024
|
+
adStatus?: string | null;
|
|
1025
|
+
clicks?: number | null;
|
|
1026
|
+
creativeType?: string | null;
|
|
1027
|
+
impressions?: number | null;
|
|
947
1028
|
leads: number;
|
|
948
1029
|
qualified: number;
|
|
949
1030
|
revenueCents: number;
|
|
1031
|
+
siteId?: string;
|
|
950
1032
|
sourceApp: string | null;
|
|
951
1033
|
sourceUrl: string | null;
|
|
1034
|
+
spendCents?: number | null;
|
|
952
1035
|
thumbnailUrl: string | null;
|
|
953
1036
|
title: string | null;
|
|
954
1037
|
won: number;
|
|
955
1038
|
}>;
|
|
956
1039
|
adsetId: string | null;
|
|
957
1040
|
adsetName: string | null;
|
|
1041
|
+
clicks?: number | null;
|
|
1042
|
+
impressions?: number | null;
|
|
958
1043
|
leads: number;
|
|
959
1044
|
qualified: number;
|
|
960
1045
|
revenueCents: number;
|
|
1046
|
+
spendCents?: number | null;
|
|
961
1047
|
won: number;
|
|
962
1048
|
}>;
|
|
963
1049
|
campaignId: string | null;
|
|
964
1050
|
campaignName: string | null;
|
|
1051
|
+
clicks?: number | null;
|
|
1052
|
+
impressions?: number | null;
|
|
965
1053
|
leads: number;
|
|
966
1054
|
qualified: number;
|
|
967
1055
|
revenueCents: number;
|
|
1056
|
+
spendCents?: number | null;
|
|
968
1057
|
won: number;
|
|
969
1058
|
}>;
|
|
970
1059
|
currency: string | null;
|
|
1060
|
+
currencyMismatch?: boolean;
|
|
971
1061
|
from: number;
|
|
972
1062
|
origins: Array<{
|
|
1063
|
+
clicks?: number | null;
|
|
1064
|
+
impressions?: number | null;
|
|
973
1065
|
key: string;
|
|
974
1066
|
leads: number;
|
|
975
1067
|
qualified: number;
|
|
976
1068
|
revenueCents: number;
|
|
1069
|
+
spendCents?: number | null;
|
|
977
1070
|
won: number;
|
|
978
1071
|
}>;
|
|
1072
|
+
spendCurrency?: string | null;
|
|
1073
|
+
spendIncomplete?: boolean;
|
|
979
1074
|
to: number;
|
|
980
1075
|
totals: {
|
|
1076
|
+
clicks?: number | null;
|
|
1077
|
+
impressions?: number | null;
|
|
981
1078
|
leads: number;
|
|
982
1079
|
qualified: number;
|
|
983
1080
|
revenueCents: number;
|
|
1081
|
+
spendCents?: number | null;
|
|
984
1082
|
won: number;
|
|
985
1083
|
};
|
|
986
1084
|
}>;
|
|
@@ -1034,6 +1132,184 @@ export declare class Rastro {
|
|
|
1034
1132
|
};
|
|
1035
1133
|
visitorId: string | null;
|
|
1036
1134
|
} | null>;
|
|
1135
|
+
/**
|
|
1136
|
+
* The lead funnel per cohort day (every UTC day in the range, empty days
|
|
1137
|
+
* included), optionally for one ad, with that day's Meta spend.
|
|
1138
|
+
*/
|
|
1139
|
+
leadsDaily(ctx: QueryCtx | MutationCtx | ActionCtx, args: LeadsDailyInput): Promise<{
|
|
1140
|
+
dayStart: number;
|
|
1141
|
+
leads: number;
|
|
1142
|
+
qualified: number;
|
|
1143
|
+
revenueCents: number;
|
|
1144
|
+
spendCents: number | null;
|
|
1145
|
+
won: number;
|
|
1146
|
+
}[]>;
|
|
1147
|
+
/**
|
|
1148
|
+
* Where each site stands with Meta: linked ad accounts, pixel, sends. With
|
|
1149
|
+
* `ownerKey`, each link and the pixel say whether that owner made them
|
|
1150
|
+
* (`own`).
|
|
1151
|
+
*/
|
|
1152
|
+
metaStatus(ctx: QueryCtx | MutationCtx | ActionCtx, args: {
|
|
1153
|
+
siteIds: string[];
|
|
1154
|
+
ownerKey?: string;
|
|
1155
|
+
now?: number;
|
|
1156
|
+
}): Promise<{
|
|
1157
|
+
adAccounts: Array<{
|
|
1158
|
+
adAccountId: string;
|
|
1159
|
+
backfill?: {
|
|
1160
|
+
done: number;
|
|
1161
|
+
total: number;
|
|
1162
|
+
} | null;
|
|
1163
|
+
currency: string;
|
|
1164
|
+
lastError: string | null;
|
|
1165
|
+
lastSyncAt: number | null;
|
|
1166
|
+
name: string;
|
|
1167
|
+
own?: boolean;
|
|
1168
|
+
syncState: "backfill" | "live" | "error";
|
|
1169
|
+
timezone: string;
|
|
1170
|
+
}>;
|
|
1171
|
+
conversions: {
|
|
1172
|
+
failed: number;
|
|
1173
|
+
last30d?: {
|
|
1174
|
+
Lead: number;
|
|
1175
|
+
Purchase: number;
|
|
1176
|
+
QualifiedLead: number;
|
|
1177
|
+
Schedule: number;
|
|
1178
|
+
} | null;
|
|
1179
|
+
pending: number;
|
|
1180
|
+
sent: number;
|
|
1181
|
+
sentToday?: number | null;
|
|
1182
|
+
};
|
|
1183
|
+
linked: boolean;
|
|
1184
|
+
pixel: {
|
|
1185
|
+
enabled: boolean;
|
|
1186
|
+
lastError?: string | null;
|
|
1187
|
+
name?: string | null;
|
|
1188
|
+
own?: boolean;
|
|
1189
|
+
pixelId: string | null;
|
|
1190
|
+
source?: "connection" | "token" | null;
|
|
1191
|
+
testMode?: boolean;
|
|
1192
|
+
};
|
|
1193
|
+
siteId: string;
|
|
1194
|
+
}[]>;
|
|
1195
|
+
/** The site's latest conversions for its Meta pixel, without user data. */
|
|
1196
|
+
metaConversions(ctx: QueryCtx | MutationCtx | ActionCtx, args: MetaConversionsInput): Promise<{
|
|
1197
|
+
adId: string | null;
|
|
1198
|
+
adName: string | null;
|
|
1199
|
+
createdAt: number;
|
|
1200
|
+
eventId: string;
|
|
1201
|
+
eventName: "Lead" | "QualifiedLead" | "Schedule" | "Purchase";
|
|
1202
|
+
leadId: string | null;
|
|
1203
|
+
leadLabel: string | null;
|
|
1204
|
+
sentAt: number | null;
|
|
1205
|
+
status: "pending" | "sent" | "failed";
|
|
1206
|
+
valueCents: number | null;
|
|
1207
|
+
}[]>;
|
|
1208
|
+
/**
|
|
1209
|
+
* Validates a Meta token (a system user token with `ads_read`) for the
|
|
1210
|
+
* host's opaque `ownerKey`, lists its ad accounts and stores the token
|
|
1211
|
+
* encrypted with RASTRO_SECRETS_KEY. Pasting a new token for the same owner
|
|
1212
|
+
* replaces the old one. Fails with `SECRETS_KEY_MISSING` without the key and
|
|
1213
|
+
* `META_TOKEN_INVALID` when Meta refuses the token.
|
|
1214
|
+
*/
|
|
1215
|
+
setMetaConnection(ctx: ActionCtx, args: SetMetaConnectionInput): Promise<SetMetaConnectionOutput>;
|
|
1216
|
+
/**
|
|
1217
|
+
* Facebook Login for Business: trades the `code` Meta sent to `redirectUri`
|
|
1218
|
+
* for the owner's token (with the component's RASTRO_META_APP_ID/SECRET),
|
|
1219
|
+
* then connects it like `setMetaConnection` and records who authorized it.
|
|
1220
|
+
* Fails with `META_LOGIN_UNAVAILABLE` without the app env and
|
|
1221
|
+
* `META_TOKEN_INVALID` when Meta refuses the code.
|
|
1222
|
+
*/
|
|
1223
|
+
connectMetaWithCode(ctx: ActionCtx, args: ConnectMetaWithCodeInput): Promise<ConnectMetaWithCodeOutput>;
|
|
1224
|
+
/**
|
|
1225
|
+
* The owner's connection for a screen: status, who authorized it, the
|
|
1226
|
+
* listed ad accounts with the site each feeds, the listed pixels. Null when
|
|
1227
|
+
* the owner never connected. Never a token.
|
|
1228
|
+
*/
|
|
1229
|
+
metaConnection(ctx: QueryCtx | MutationCtx | ActionCtx, args: {
|
|
1230
|
+
ownerKey: string;
|
|
1231
|
+
}): Promise<MetaConnection | null>;
|
|
1232
|
+
/** What unlinking the ad account takes out of the site's reports. */
|
|
1233
|
+
metaUnlinkPreview(ctx: QueryCtx | MutationCtx | ActionCtx, args: UnlinkPreviewInput): Promise<UnlinkPreview>;
|
|
1234
|
+
/**
|
|
1235
|
+
* Declares the host's board columns for the site, in order (at most 40).
|
|
1236
|
+
* Declaring again replaces names and order; a column that is gone leaves
|
|
1237
|
+
* the event map. Then pass `column` to `recordLead` / `setLeadStage`.
|
|
1238
|
+
*/
|
|
1239
|
+
setPipeline(ctx: MutationCtx, args: SetPipelineInput): Promise<null>;
|
|
1240
|
+
/**
|
|
1241
|
+
* Which Meta event each declared column sends (`Lead`, `QualifiedLead`,
|
|
1242
|
+
* `Schedule` or null), replacing the whole map, and whether a new lead is
|
|
1243
|
+
* sent as `Lead`. `Purchase` is never a column's: it goes with the sale.
|
|
1244
|
+
*/
|
|
1245
|
+
setEventMap(ctx: MutationCtx, args: SetEventMapInput): Promise<null>;
|
|
1246
|
+
/**
|
|
1247
|
+
* The site's columns with their events and the leads that entered each in
|
|
1248
|
+
* the 30 days up to `now` (pass the caller's clock; without it the counts
|
|
1249
|
+
* are null).
|
|
1250
|
+
*/
|
|
1251
|
+
eventMap(ctx: QueryCtx | MutationCtx | ActionCtx, args: EventMapInput): Promise<EventMap>;
|
|
1252
|
+
/**
|
|
1253
|
+
* Forgets the Meta owner a federated dashboard connection acted as on this
|
|
1254
|
+
* host (`rastro:connection:<connectionId>`): its token, links and pixels.
|
|
1255
|
+
* Call it when the host revokes or deletes that connection's grant.
|
|
1256
|
+
*/
|
|
1257
|
+
removeFederatedMetaConnection(ctx: MutationCtx | ActionCtx, args: {
|
|
1258
|
+
connectionId: string;
|
|
1259
|
+
}): Promise<{
|
|
1260
|
+
removed: boolean;
|
|
1261
|
+
}>;
|
|
1262
|
+
/** Forgets the owner's token and unlinks every ad account it fed. */
|
|
1263
|
+
removeMetaConnection(ctx: MutationCtx | ActionCtx, args: {
|
|
1264
|
+
ownerKey: string;
|
|
1265
|
+
}): Promise<{
|
|
1266
|
+
removed: boolean;
|
|
1267
|
+
}>;
|
|
1268
|
+
/** The owner's ad accounts (and their pixels), read again from Meta. */
|
|
1269
|
+
listMetaAdAccounts(ctx: ActionCtx, args: {
|
|
1270
|
+
ownerKey: string;
|
|
1271
|
+
}): Promise<MetaAdAccount[]>;
|
|
1272
|
+
/**
|
|
1273
|
+
* Makes one of the owner's ad accounts a spend source for the site: a
|
|
1274
|
+
* 90-day backfill with the catalog, then the live sync. The account must be
|
|
1275
|
+
* in the connection's last listing.
|
|
1276
|
+
*/
|
|
1277
|
+
linkSiteAdAccount(ctx: MutationCtx, args: LinkSiteAdAccountInput): Promise<{
|
|
1278
|
+
linked: boolean;
|
|
1279
|
+
}>;
|
|
1280
|
+
/**
|
|
1281
|
+
* Stops an ad account feeding the site; its spend leaves the reports. With
|
|
1282
|
+
* `ownerKey`, only that owner's link (another's is a `CONFLICT`).
|
|
1283
|
+
*/
|
|
1284
|
+
unlinkSiteAdAccount(ctx: MutationCtx, args: {
|
|
1285
|
+
siteId: string;
|
|
1286
|
+
adAccountId: string;
|
|
1287
|
+
ownerKey?: string;
|
|
1288
|
+
}): Promise<{
|
|
1289
|
+
unlinked: boolean;
|
|
1290
|
+
}>;
|
|
1291
|
+
/**
|
|
1292
|
+
* Sets the site's Meta pixel (dataset): with `ownerKey`, one from that
|
|
1293
|
+
* owner's connection listing, sending with the connection's token; with
|
|
1294
|
+
* `accessToken`, a Conversions API token from Events Manager, checked
|
|
1295
|
+
* against the pixel and encrypted like the connection's.
|
|
1296
|
+
*/
|
|
1297
|
+
setSitePixel(ctx: ActionCtx, args: SetSitePixelInput): Promise<{
|
|
1298
|
+
ok: true;
|
|
1299
|
+
}>;
|
|
1300
|
+
/** Forgets the site's pixel; with `ownerKey`, only if that owner set it. */
|
|
1301
|
+
removeSitePixel(ctx: MutationCtx, args: {
|
|
1302
|
+
siteId: string;
|
|
1303
|
+
ownerKey?: string;
|
|
1304
|
+
}): Promise<{
|
|
1305
|
+
removed: boolean;
|
|
1306
|
+
}>;
|
|
1307
|
+
/** Asks the Meta sync to read the site's ad accounts now. */
|
|
1308
|
+
syncMetaNow(ctx: MutationCtx | ActionCtx, args: {
|
|
1309
|
+
siteId: string;
|
|
1310
|
+
}): Promise<{
|
|
1311
|
+
scheduled: boolean;
|
|
1312
|
+
}>;
|
|
1037
1313
|
cleanup(ctx: MutationCtx, args: CleanupInput): Promise<{
|
|
1038
1314
|
before: number;
|
|
1039
1315
|
deleted: number;
|
|
@@ -1081,7 +1357,7 @@ export declare class Rastro {
|
|
|
1081
1357
|
hasMore: boolean;
|
|
1082
1358
|
}>;
|
|
1083
1359
|
}
|
|
1084
|
-
export type AnalyticsOperation = "site.create" | "site.update" | "site.get" | "site.list" | "ingest" | "conversion.track" | "visitor.link" | "visitor.identify" | "visitor.profile" | "visitor.list" | "visitor.index" | "report.overview" | "report.live" | "report.sessions" | "report.sessionJourney" | "report.conversions" | "report.visitorJourney" | "report.goals" | "report.funnels" | "report.affiliates" | "report.vitals" | "report.siteMap" | "goal.upsert" | "goal.list" | "goal.remove" | "funnel.upsert" | "funnel.list" | "funnel.remove" | "affiliate.upsert" | "affiliate.list" | "affiliate.remove" | "trackedLink.create" | "trackedLink.update" | "trackedLink.delete" | "trackedLink.list" | "lead.report" | "lead.list" | "lead.journey" | "retention.cleanup" | "retention.policy" | "retention.status" | "coverage.read";
|
|
1360
|
+
export type AnalyticsOperation = "site.create" | "site.update" | "site.get" | "site.list" | "ingest" | "conversion.track" | "visitor.link" | "visitor.identify" | "visitor.profile" | "visitor.list" | "visitor.index" | "report.overview" | "report.live" | "report.sessions" | "report.sessionJourney" | "report.conversions" | "report.visitorJourney" | "report.goals" | "report.funnels" | "report.affiliates" | "report.vitals" | "report.siteMap" | "goal.upsert" | "goal.list" | "goal.remove" | "funnel.upsert" | "funnel.list" | "funnel.remove" | "affiliate.upsert" | "affiliate.list" | "affiliate.remove" | "trackedLink.create" | "trackedLink.update" | "trackedLink.delete" | "trackedLink.list" | "lead.report" | "lead.list" | "lead.journey" | "lead.daily" | "meta.status" | "meta.conversions" | "retention.cleanup" | "retention.policy" | "retention.status" | "coverage.read";
|
|
1085
1361
|
export type AnalyticsAuthorizationRequest = {
|
|
1086
1362
|
operation: AnalyticsOperation;
|
|
1087
1363
|
siteIds: string[];
|
|
@@ -2501,6 +2777,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
2501
2777
|
ownerId: string;
|
|
2502
2778
|
routePatterns?: Array<string>;
|
|
2503
2779
|
timezone?: string;
|
|
2780
|
+
trackedPaths?: Array<string>;
|
|
2504
2781
|
updatedAt: number;
|
|
2505
2782
|
} | null>>;
|
|
2506
2783
|
listSites: import("convex/server").RegisteredQuery<"public", {
|
|
@@ -2518,6 +2795,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
2518
2795
|
ownerId: string;
|
|
2519
2796
|
routePatterns?: Array<string>;
|
|
2520
2797
|
timezone?: string;
|
|
2798
|
+
trackedPaths?: Array<string>;
|
|
2521
2799
|
updatedAt: number;
|
|
2522
2800
|
}[]>>;
|
|
2523
2801
|
ingest: import("convex/server").RegisteredMutation<"public", {
|
|
@@ -2892,48 +3170,85 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
2892
3170
|
siteIds: string[];
|
|
2893
3171
|
to: number;
|
|
2894
3172
|
}, Promise<{
|
|
3173
|
+
bySite?: Array<{
|
|
3174
|
+
currencyMismatch?: boolean;
|
|
3175
|
+
leads: number;
|
|
3176
|
+
paid: {
|
|
3177
|
+
leads: number;
|
|
3178
|
+
qualified: number;
|
|
3179
|
+
revenueCents: number;
|
|
3180
|
+
won: number;
|
|
3181
|
+
};
|
|
3182
|
+
qualified: number;
|
|
3183
|
+
revenueCents: number;
|
|
3184
|
+
siteId: string;
|
|
3185
|
+
spendCents?: number | null;
|
|
3186
|
+
spendCurrency?: string | null;
|
|
3187
|
+
won: number;
|
|
3188
|
+
}>;
|
|
2895
3189
|
campaigns: Array<{
|
|
2896
3190
|
adsets: Array<{
|
|
2897
3191
|
ads: Array<{
|
|
2898
3192
|
adId: string;
|
|
2899
3193
|
adName: string | null;
|
|
3194
|
+
adStatus?: string | null;
|
|
3195
|
+
clicks?: number | null;
|
|
3196
|
+
creativeType?: string | null;
|
|
3197
|
+
impressions?: number | null;
|
|
2900
3198
|
leads: number;
|
|
2901
3199
|
qualified: number;
|
|
2902
3200
|
revenueCents: number;
|
|
3201
|
+
siteId?: string;
|
|
2903
3202
|
sourceApp: string | null;
|
|
2904
3203
|
sourceUrl: string | null;
|
|
3204
|
+
spendCents?: number | null;
|
|
2905
3205
|
thumbnailUrl: string | null;
|
|
2906
3206
|
title: string | null;
|
|
2907
3207
|
won: number;
|
|
2908
3208
|
}>;
|
|
2909
3209
|
adsetId: string | null;
|
|
2910
3210
|
adsetName: string | null;
|
|
3211
|
+
clicks?: number | null;
|
|
3212
|
+
impressions?: number | null;
|
|
2911
3213
|
leads: number;
|
|
2912
3214
|
qualified: number;
|
|
2913
3215
|
revenueCents: number;
|
|
3216
|
+
spendCents?: number | null;
|
|
2914
3217
|
won: number;
|
|
2915
3218
|
}>;
|
|
2916
3219
|
campaignId: string | null;
|
|
2917
3220
|
campaignName: string | null;
|
|
3221
|
+
clicks?: number | null;
|
|
3222
|
+
impressions?: number | null;
|
|
2918
3223
|
leads: number;
|
|
2919
3224
|
qualified: number;
|
|
2920
3225
|
revenueCents: number;
|
|
3226
|
+
spendCents?: number | null;
|
|
2921
3227
|
won: number;
|
|
2922
3228
|
}>;
|
|
2923
3229
|
currency: string | null;
|
|
3230
|
+
currencyMismatch?: boolean;
|
|
2924
3231
|
from: number;
|
|
2925
3232
|
origins: Array<{
|
|
3233
|
+
clicks?: number | null;
|
|
3234
|
+
impressions?: number | null;
|
|
2926
3235
|
key: string;
|
|
2927
3236
|
leads: number;
|
|
2928
3237
|
qualified: number;
|
|
2929
3238
|
revenueCents: number;
|
|
3239
|
+
spendCents?: number | null;
|
|
2930
3240
|
won: number;
|
|
2931
3241
|
}>;
|
|
3242
|
+
spendCurrency?: string | null;
|
|
3243
|
+
spendIncomplete?: boolean;
|
|
2932
3244
|
to: number;
|
|
2933
3245
|
totals: {
|
|
3246
|
+
clicks?: number | null;
|
|
3247
|
+
impressions?: number | null;
|
|
2934
3248
|
leads: number;
|
|
2935
3249
|
qualified: number;
|
|
2936
3250
|
revenueCents: number;
|
|
3251
|
+
spendCents?: number | null;
|
|
2937
3252
|
won: number;
|
|
2938
3253
|
};
|
|
2939
3254
|
}>>;
|
|
@@ -2994,6 +3309,79 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
2994
3309
|
};
|
|
2995
3310
|
visitorId: string | null;
|
|
2996
3311
|
} | null>>;
|
|
3312
|
+
leadsDaily: import("convex/server").RegisteredQuery<"public", {
|
|
3313
|
+
adId?: string | undefined;
|
|
3314
|
+
from: number;
|
|
3315
|
+
origin?: string | undefined;
|
|
3316
|
+
siteIds: string[];
|
|
3317
|
+
to: number;
|
|
3318
|
+
}, Promise<{
|
|
3319
|
+
dayStart: number;
|
|
3320
|
+
leads: number;
|
|
3321
|
+
qualified: number;
|
|
3322
|
+
revenueCents: number;
|
|
3323
|
+
spendCents: number | null;
|
|
3324
|
+
won: number;
|
|
3325
|
+
}[]>>;
|
|
3326
|
+
metaStatus: import("convex/server").RegisteredQuery<"public", {
|
|
3327
|
+
now?: number | undefined;
|
|
3328
|
+
siteIds: string[];
|
|
3329
|
+
}, Promise<{
|
|
3330
|
+
adAccounts: Array<{
|
|
3331
|
+
adAccountId: string;
|
|
3332
|
+
backfill?: {
|
|
3333
|
+
done: number;
|
|
3334
|
+
total: number;
|
|
3335
|
+
} | null;
|
|
3336
|
+
currency: string;
|
|
3337
|
+
lastError: string | null;
|
|
3338
|
+
lastSyncAt: number | null;
|
|
3339
|
+
name: string;
|
|
3340
|
+
own?: boolean;
|
|
3341
|
+
syncState: "backfill" | "live" | "error";
|
|
3342
|
+
timezone: string;
|
|
3343
|
+
}>;
|
|
3344
|
+
conversions: {
|
|
3345
|
+
failed: number;
|
|
3346
|
+
last30d?: {
|
|
3347
|
+
Lead: number;
|
|
3348
|
+
Purchase: number;
|
|
3349
|
+
QualifiedLead: number;
|
|
3350
|
+
Schedule: number;
|
|
3351
|
+
} | null;
|
|
3352
|
+
pending: number;
|
|
3353
|
+
sent: number;
|
|
3354
|
+
sentToday?: number | null;
|
|
3355
|
+
};
|
|
3356
|
+
linked: boolean;
|
|
3357
|
+
pixel: {
|
|
3358
|
+
enabled: boolean;
|
|
3359
|
+
lastError?: string | null;
|
|
3360
|
+
name?: string | null;
|
|
3361
|
+
own?: boolean;
|
|
3362
|
+
pixelId: string | null;
|
|
3363
|
+
source?: "connection" | "token" | null;
|
|
3364
|
+
testMode?: boolean;
|
|
3365
|
+
};
|
|
3366
|
+
siteId: string;
|
|
3367
|
+
}[]>>;
|
|
3368
|
+
metaConversions: import("convex/server").RegisteredQuery<"public", {
|
|
3369
|
+
before?: number | undefined;
|
|
3370
|
+
beforeEventId?: string | undefined;
|
|
3371
|
+
limit?: number | undefined;
|
|
3372
|
+
siteId: string;
|
|
3373
|
+
}, Promise<{
|
|
3374
|
+
adId: string | null;
|
|
3375
|
+
adName: string | null;
|
|
3376
|
+
createdAt: number;
|
|
3377
|
+
eventId: string;
|
|
3378
|
+
eventName: "Lead" | "QualifiedLead" | "Schedule" | "Purchase";
|
|
3379
|
+
leadId: string | null;
|
|
3380
|
+
leadLabel: string | null;
|
|
3381
|
+
sentAt: number | null;
|
|
3382
|
+
status: "pending" | "sent" | "failed";
|
|
3383
|
+
valueCents: number | null;
|
|
3384
|
+
}[]>>;
|
|
2997
3385
|
revenueSummary: import("convex/server").RegisteredQuery<"public", {
|
|
2998
3386
|
from: number;
|
|
2999
3387
|
siteIds: string[];
|
|
@@ -3692,9 +4080,24 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
3692
4080
|
leadsReport?: "leadsReport" | undefined;
|
|
3693
4081
|
listLeads?: "listLeads" | undefined;
|
|
3694
4082
|
leadJourney?: "leadJourney" | undefined;
|
|
4083
|
+
leadsDaily?: "leadsDaily" | undefined;
|
|
4084
|
+
metaStatus?: "metaStatus" | undefined;
|
|
4085
|
+
metaConversions?: "metaConversions" | undefined;
|
|
4086
|
+
metaConnection?: "metaConnection" | undefined;
|
|
4087
|
+
metaEventMap?: "metaEventMap" | undefined;
|
|
4088
|
+
metaUnlinkPreview?: "metaUnlinkPreview" | undefined;
|
|
4089
|
+
connectMeta?: "connectMeta" | undefined;
|
|
4090
|
+
disconnectMeta?: "disconnectMeta" | undefined;
|
|
4091
|
+
refreshMetaAccounts?: "refreshMetaAccounts" | undefined;
|
|
4092
|
+
linkMetaAdAccount?: "linkMetaAdAccount" | undefined;
|
|
4093
|
+
unlinkMetaAdAccount?: "unlinkMetaAdAccount" | undefined;
|
|
4094
|
+
setMetaPixel?: "setMetaPixel" | undefined;
|
|
4095
|
+
removeMetaPixel?: "removeMetaPixel" | undefined;
|
|
4096
|
+
setMetaEventMap?: "setMetaEventMap" | undefined;
|
|
4097
|
+
syncMetaNow?: "syncMetaNow" | undefined;
|
|
3695
4098
|
transferConnection?: "transferConnection" | undefined;
|
|
3696
4099
|
};
|
|
3697
|
-
capabilities: ("affiliates" | "configure" | "conversions" | "dataCoverage" | "funnels" | "goals" | "leads" | "liveVisitors" | "localDays" | "overview" | "people" | "revenueSummary" | "sessionDetails" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "trackedLinks" | "transfer" | "visitorJourney" | "visitorProfiles" | "vitals")[];
|
|
4100
|
+
capabilities: ("affiliates" | "configure" | "conversions" | "dataCoverage" | "funnels" | "goals" | "leads" | "liveVisitors" | "localDays" | "metaAds" | "overview" | "people" | "revenueSummary" | "sessionDetails" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "trackedLinks" | "transfer" | "visitorJourney" | "visitorProfiles" | "vitals")[];
|
|
3698
4101
|
limits: {
|
|
3699
4102
|
maxSitesPerRequest: 10;
|
|
3700
4103
|
maxSitesPerConnection: 10;
|
|
@@ -4594,48 +4997,85 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
4594
4997
|
siteIds: string[];
|
|
4595
4998
|
to: number;
|
|
4596
4999
|
}, Promise<{
|
|
5000
|
+
bySite?: Array<{
|
|
5001
|
+
currencyMismatch?: boolean;
|
|
5002
|
+
leads: number;
|
|
5003
|
+
paid: {
|
|
5004
|
+
leads: number;
|
|
5005
|
+
qualified: number;
|
|
5006
|
+
revenueCents: number;
|
|
5007
|
+
won: number;
|
|
5008
|
+
};
|
|
5009
|
+
qualified: number;
|
|
5010
|
+
revenueCents: number;
|
|
5011
|
+
siteId: string;
|
|
5012
|
+
spendCents?: number | null;
|
|
5013
|
+
spendCurrency?: string | null;
|
|
5014
|
+
won: number;
|
|
5015
|
+
}>;
|
|
4597
5016
|
campaigns: Array<{
|
|
4598
5017
|
adsets: Array<{
|
|
4599
5018
|
ads: Array<{
|
|
4600
5019
|
adId: string;
|
|
4601
5020
|
adName: string | null;
|
|
5021
|
+
adStatus?: string | null;
|
|
5022
|
+
clicks?: number | null;
|
|
5023
|
+
creativeType?: string | null;
|
|
5024
|
+
impressions?: number | null;
|
|
4602
5025
|
leads: number;
|
|
4603
5026
|
qualified: number;
|
|
4604
5027
|
revenueCents: number;
|
|
5028
|
+
siteId?: string;
|
|
4605
5029
|
sourceApp: string | null;
|
|
4606
5030
|
sourceUrl: string | null;
|
|
5031
|
+
spendCents?: number | null;
|
|
4607
5032
|
thumbnailUrl: string | null;
|
|
4608
5033
|
title: string | null;
|
|
4609
5034
|
won: number;
|
|
4610
5035
|
}>;
|
|
4611
5036
|
adsetId: string | null;
|
|
4612
5037
|
adsetName: string | null;
|
|
5038
|
+
clicks?: number | null;
|
|
5039
|
+
impressions?: number | null;
|
|
4613
5040
|
leads: number;
|
|
4614
5041
|
qualified: number;
|
|
4615
5042
|
revenueCents: number;
|
|
5043
|
+
spendCents?: number | null;
|
|
4616
5044
|
won: number;
|
|
4617
5045
|
}>;
|
|
4618
5046
|
campaignId: string | null;
|
|
4619
5047
|
campaignName: string | null;
|
|
5048
|
+
clicks?: number | null;
|
|
5049
|
+
impressions?: number | null;
|
|
4620
5050
|
leads: number;
|
|
4621
5051
|
qualified: number;
|
|
4622
5052
|
revenueCents: number;
|
|
5053
|
+
spendCents?: number | null;
|
|
4623
5054
|
won: number;
|
|
4624
5055
|
}>;
|
|
4625
5056
|
currency: string | null;
|
|
5057
|
+
currencyMismatch?: boolean;
|
|
4626
5058
|
from: number;
|
|
4627
5059
|
origins: Array<{
|
|
5060
|
+
clicks?: number | null;
|
|
5061
|
+
impressions?: number | null;
|
|
4628
5062
|
key: string;
|
|
4629
5063
|
leads: number;
|
|
4630
5064
|
qualified: number;
|
|
4631
5065
|
revenueCents: number;
|
|
5066
|
+
spendCents?: number | null;
|
|
4632
5067
|
won: number;
|
|
4633
5068
|
}>;
|
|
5069
|
+
spendCurrency?: string | null;
|
|
5070
|
+
spendIncomplete?: boolean;
|
|
4634
5071
|
to: number;
|
|
4635
5072
|
totals: {
|
|
5073
|
+
clicks?: number | null;
|
|
5074
|
+
impressions?: number | null;
|
|
4636
5075
|
leads: number;
|
|
4637
5076
|
qualified: number;
|
|
4638
5077
|
revenueCents: number;
|
|
5078
|
+
spendCents?: number | null;
|
|
4639
5079
|
won: number;
|
|
4640
5080
|
};
|
|
4641
5081
|
}>>;
|
|
@@ -4696,6 +5136,199 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
4696
5136
|
};
|
|
4697
5137
|
visitorId: string | null;
|
|
4698
5138
|
} | null>>;
|
|
5139
|
+
leadsDaily: import("convex/server").RegisteredQuery<"public", {
|
|
5140
|
+
adId?: string | undefined;
|
|
5141
|
+
from: number;
|
|
5142
|
+
origin?: string | undefined;
|
|
5143
|
+
siteIds: string[];
|
|
5144
|
+
to: number;
|
|
5145
|
+
}, Promise<{
|
|
5146
|
+
dayStart: number;
|
|
5147
|
+
leads: number;
|
|
5148
|
+
qualified: number;
|
|
5149
|
+
revenueCents: number;
|
|
5150
|
+
spendCents: number | null;
|
|
5151
|
+
won: number;
|
|
5152
|
+
}[]>>;
|
|
5153
|
+
metaStatus: import("convex/server").RegisteredQuery<"public", {
|
|
5154
|
+
now?: number | undefined;
|
|
5155
|
+
siteIds: string[];
|
|
5156
|
+
}, Promise<{
|
|
5157
|
+
adAccounts: Array<{
|
|
5158
|
+
adAccountId: string;
|
|
5159
|
+
backfill?: {
|
|
5160
|
+
done: number;
|
|
5161
|
+
total: number;
|
|
5162
|
+
} | null;
|
|
5163
|
+
currency: string;
|
|
5164
|
+
lastError: string | null;
|
|
5165
|
+
lastSyncAt: number | null;
|
|
5166
|
+
name: string;
|
|
5167
|
+
own?: boolean;
|
|
5168
|
+
syncState: "backfill" | "live" | "error";
|
|
5169
|
+
timezone: string;
|
|
5170
|
+
}>;
|
|
5171
|
+
conversions: {
|
|
5172
|
+
failed: number;
|
|
5173
|
+
last30d?: {
|
|
5174
|
+
Lead: number;
|
|
5175
|
+
Purchase: number;
|
|
5176
|
+
QualifiedLead: number;
|
|
5177
|
+
Schedule: number;
|
|
5178
|
+
} | null;
|
|
5179
|
+
pending: number;
|
|
5180
|
+
sent: number;
|
|
5181
|
+
sentToday?: number | null;
|
|
5182
|
+
};
|
|
5183
|
+
linked: boolean;
|
|
5184
|
+
pixel: {
|
|
5185
|
+
enabled: boolean;
|
|
5186
|
+
lastError?: string | null;
|
|
5187
|
+
name?: string | null;
|
|
5188
|
+
own?: boolean;
|
|
5189
|
+
pixelId: string | null;
|
|
5190
|
+
source?: "connection" | "token" | null;
|
|
5191
|
+
testMode?: boolean;
|
|
5192
|
+
};
|
|
5193
|
+
siteId: string;
|
|
5194
|
+
}[]>>;
|
|
5195
|
+
metaConversions: import("convex/server").RegisteredQuery<"public", {
|
|
5196
|
+
before?: number | undefined;
|
|
5197
|
+
beforeEventId?: string | undefined;
|
|
5198
|
+
limit?: number | undefined;
|
|
5199
|
+
siteId: string;
|
|
5200
|
+
}, Promise<{
|
|
5201
|
+
adId: string | null;
|
|
5202
|
+
adName: string | null;
|
|
5203
|
+
createdAt: number;
|
|
5204
|
+
eventId: string;
|
|
5205
|
+
eventName: "Lead" | "QualifiedLead" | "Schedule" | "Purchase";
|
|
5206
|
+
leadId: string | null;
|
|
5207
|
+
leadLabel: string | null;
|
|
5208
|
+
sentAt: number | null;
|
|
5209
|
+
status: "pending" | "sent" | "failed";
|
|
5210
|
+
valueCents: number | null;
|
|
5211
|
+
}[]>>;
|
|
5212
|
+
metaConnection: import("convex/server").RegisteredQuery<"public", {}, Promise<{
|
|
5213
|
+
authorizedAt: number | null;
|
|
5214
|
+
authorizedBy: {
|
|
5215
|
+
name: string | null;
|
|
5216
|
+
} | null;
|
|
5217
|
+
businessName: string | null;
|
|
5218
|
+
expiresAt: number | null;
|
|
5219
|
+
expiringSoon: boolean;
|
|
5220
|
+
invalidSince: number | null;
|
|
5221
|
+
lastError: string | null;
|
|
5222
|
+
pixels: Array<{
|
|
5223
|
+
name: string;
|
|
5224
|
+
pixelId: string;
|
|
5225
|
+
}>;
|
|
5226
|
+
status: "active" | "invalid";
|
|
5227
|
+
adAccounts: {
|
|
5228
|
+
adAccountId: string;
|
|
5229
|
+
currency: string;
|
|
5230
|
+
linkedOutsideScope?: boolean;
|
|
5231
|
+
linkedSiteId: string | null;
|
|
5232
|
+
name: string;
|
|
5233
|
+
timezone: string;
|
|
5234
|
+
}[];
|
|
5235
|
+
} | null>>;
|
|
5236
|
+
metaEventMap: import("convex/server").RegisteredQuery<"public", {
|
|
5237
|
+
now?: number | undefined;
|
|
5238
|
+
siteId: string;
|
|
5239
|
+
}, Promise<{
|
|
5240
|
+
columns: Array<{
|
|
5241
|
+
color: string | null;
|
|
5242
|
+
event: "Lead" | "QualifiedLead" | "Schedule" | null;
|
|
5243
|
+
group: string | null;
|
|
5244
|
+
key: string;
|
|
5245
|
+
monthCount: number | null;
|
|
5246
|
+
name: string;
|
|
5247
|
+
}>;
|
|
5248
|
+
purchase: {
|
|
5249
|
+
enabled: boolean;
|
|
5250
|
+
};
|
|
5251
|
+
sendLeadEvent: boolean;
|
|
5252
|
+
}>>;
|
|
5253
|
+
metaUnlinkPreview: import("convex/server").RegisteredQuery<"public", {
|
|
5254
|
+
adAccountId: string;
|
|
5255
|
+
siteId: string;
|
|
5256
|
+
}, Promise<{
|
|
5257
|
+
campaigns: number;
|
|
5258
|
+
currency: string;
|
|
5259
|
+
days: number;
|
|
5260
|
+
partial: boolean;
|
|
5261
|
+
spendCents: number;
|
|
5262
|
+
}>>;
|
|
5263
|
+
authorizeMetaAction: import("convex/server").RegisteredQuery<"internal", {
|
|
5264
|
+
siteId?: string | undefined;
|
|
5265
|
+
wholeOwner?: boolean | undefined;
|
|
5266
|
+
}, Promise<{
|
|
5267
|
+
ownerKey: string;
|
|
5268
|
+
}>>;
|
|
5269
|
+
connectMeta: import("convex/server").RegisteredAction<"public", {
|
|
5270
|
+
code: string;
|
|
5271
|
+
redirectUri: string;
|
|
5272
|
+
}, Promise<{
|
|
5273
|
+
adAccounts: Array<{
|
|
5274
|
+
adAccountId: string;
|
|
5275
|
+
currency: string;
|
|
5276
|
+
name: string;
|
|
5277
|
+
timezone: string;
|
|
5278
|
+
}>;
|
|
5279
|
+
businessName: string | null;
|
|
5280
|
+
connectionId: string;
|
|
5281
|
+
pixels: Array<{
|
|
5282
|
+
name: string;
|
|
5283
|
+
pixelId: string;
|
|
5284
|
+
}>;
|
|
5285
|
+
}>>;
|
|
5286
|
+
refreshMetaAccounts: import("convex/server").RegisteredAction<"public", {}, Promise<{
|
|
5287
|
+
adAccountId: string;
|
|
5288
|
+
currency: string;
|
|
5289
|
+
name: string;
|
|
5290
|
+
timezone: string;
|
|
5291
|
+
}[]>>;
|
|
5292
|
+
setMetaPixel: import("convex/server").RegisteredAction<"public", {
|
|
5293
|
+
accessToken?: string | undefined;
|
|
5294
|
+
enabled?: boolean | undefined;
|
|
5295
|
+
pixelId: string;
|
|
5296
|
+
sendLeadEvent?: boolean | undefined;
|
|
5297
|
+
siteId: string;
|
|
5298
|
+
testEventCode?: string | undefined;
|
|
5299
|
+
}, Promise<{
|
|
5300
|
+
ok: true;
|
|
5301
|
+
}>>;
|
|
5302
|
+
disconnectMeta: import("convex/server").RegisteredMutation<"public", {}, Promise<{
|
|
5303
|
+
removed: boolean;
|
|
5304
|
+
}>>;
|
|
5305
|
+
linkMetaAdAccount: import("convex/server").RegisteredMutation<"public", {
|
|
5306
|
+
adAccountId: string;
|
|
5307
|
+
siteId: string;
|
|
5308
|
+
}, Promise<{
|
|
5309
|
+
linked: boolean;
|
|
5310
|
+
}>>;
|
|
5311
|
+
unlinkMetaAdAccount: import("convex/server").RegisteredMutation<"public", {
|
|
5312
|
+
adAccountId: string;
|
|
5313
|
+
siteId: string;
|
|
5314
|
+
}, Promise<{
|
|
5315
|
+
unlinked: boolean;
|
|
5316
|
+
}>>;
|
|
5317
|
+
removeMetaPixel: import("convex/server").RegisteredMutation<"public", {
|
|
5318
|
+
siteId: string;
|
|
5319
|
+
}, Promise<{
|
|
5320
|
+
removed: boolean;
|
|
5321
|
+
}>>;
|
|
5322
|
+
setMetaEventMap: import("convex/server").RegisteredMutation<"public", {
|
|
5323
|
+
columns: Record<string, "Lead" | "QualifiedLead" | "Schedule" | null>;
|
|
5324
|
+
sendLeadEvent: boolean;
|
|
5325
|
+
siteId: string;
|
|
5326
|
+
}, Promise<null>>;
|
|
5327
|
+
syncMetaNow: import("convex/server").RegisteredMutation<"public", {
|
|
5328
|
+
siteId: string;
|
|
5329
|
+
}, Promise<{
|
|
5330
|
+
scheduled: boolean;
|
|
5331
|
+
}>>;
|
|
4699
5332
|
retentionStatus: import("convex/server").RegisteredQuery<"public", {
|
|
4700
5333
|
siteId: string;
|
|
4701
5334
|
}, Promise<{
|