@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.
Files changed (265) hide show
  1. package/README.md +9 -1
  2. package/agent/integration.md +23 -1
  3. package/agent/manifest.json +4 -4
  4. package/dist/client/federation.d.ts +114 -9
  5. package/dist/client/federation.d.ts.map +1 -1
  6. package/dist/client/federation.js +54 -2
  7. package/dist/client/federation.js.map +1 -1
  8. package/dist/client/index.d.ts +642 -8
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +391 -9
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/component/_generated/api.d.ts +14 -0
  13. package/dist/component/_generated/api.d.ts.map +1 -1
  14. package/dist/component/_generated/api.js.map +1 -1
  15. package/dist/component/_generated/component.d.ts +278 -1
  16. package/dist/component/_generated/component.d.ts.map +1 -1
  17. package/dist/component/_generated/server.d.ts +4 -0
  18. package/dist/component/_generated/server.d.ts.map +1 -1
  19. package/dist/component/_generated/server.js.map +1 -1
  20. package/dist/component/constants.d.ts +5 -0
  21. package/dist/component/constants.d.ts.map +1 -1
  22. package/dist/component/constants.js +10 -0
  23. package/dist/component/constants.js.map +1 -1
  24. package/dist/component/convex.config.d.ts +4 -0
  25. package/dist/component/convex.config.js +9 -0
  26. package/dist/component/convex.config.js.map +1 -1
  27. package/dist/component/errors.d.ts +1 -1
  28. package/dist/component/errors.d.ts.map +1 -1
  29. package/dist/component/errors.js.map +1 -1
  30. package/dist/component/leads.d.ts +69 -3
  31. package/dist/component/leads.d.ts.map +1 -1
  32. package/dist/component/leads.js +419 -16
  33. package/dist/component/leads.js.map +1 -1
  34. package/dist/component/meta.d.ts +358 -0
  35. package/dist/component/meta.d.ts.map +1 -0
  36. package/dist/component/meta.js +1295 -0
  37. package/dist/component/meta.js.map +1 -0
  38. package/dist/component/metaCapi.d.ts +162 -0
  39. package/dist/component/metaCapi.d.ts.map +1 -0
  40. package/dist/component/metaCapi.js +754 -0
  41. package/dist/component/metaCapi.js.map +1 -0
  42. package/dist/component/metaFake.d.ts +5 -0
  43. package/dist/component/metaFake.d.ts.map +1 -0
  44. package/dist/component/metaFake.js +225 -0
  45. package/dist/component/metaFake.js.map +1 -0
  46. package/dist/component/metaGraph.d.ts +165 -0
  47. package/dist/component/metaGraph.d.ts.map +1 -0
  48. package/dist/component/metaGraph.js +507 -0
  49. package/dist/component/metaGraph.js.map +1 -0
  50. package/dist/component/metaSync.d.ts +186 -0
  51. package/dist/component/metaSync.d.ts.map +1 -0
  52. package/dist/component/metaSync.js +961 -0
  53. package/dist/component/metaSync.js.map +1 -0
  54. package/dist/component/pipeline.d.ts +99 -0
  55. package/dist/component/pipeline.d.ts.map +1 -0
  56. package/dist/component/pipeline.js +337 -0
  57. package/dist/component/pipeline.js.map +1 -0
  58. package/dist/component/schema.d.ts +404 -2
  59. package/dist/component/schema.d.ts.map +1 -1
  60. package/dist/component/schema.js +168 -2
  61. package/dist/component/schema.js.map +1 -1
  62. package/dist/component/secrets.d.ts +15 -0
  63. package/dist/component/secrets.d.ts.map +1 -0
  64. package/dist/component/secrets.js +67 -0
  65. package/dist/component/secrets.js.map +1 -0
  66. package/dist/component/validators.d.ts +1052 -15
  67. package/dist/component/validators.d.ts.map +1 -1
  68. package/dist/component/validators.js +307 -3
  69. package/dist/component/validators.js.map +1 -1
  70. package/dist/tracker/generated.d.ts +1 -1
  71. package/dist/tracker/generated.d.ts.map +1 -1
  72. package/dist/tracker/generated.js +1 -1
  73. package/dist/tracker/generated.js.map +1 -1
  74. package/dist/ui/campaigns/CampaignsView.d.ts +48 -0
  75. package/dist/ui/campaigns/CampaignsView.d.ts.map +1 -0
  76. package/dist/ui/campaigns/CampaignsView.js +47 -0
  77. package/dist/ui/campaigns/CampaignsView.js.map +1 -0
  78. package/dist/ui/campaigns/Conversions.d.ts +16 -0
  79. package/dist/ui/campaigns/Conversions.d.ts.map +1 -0
  80. package/dist/ui/campaigns/Conversions.js +40 -0
  81. package/dist/ui/campaigns/Conversions.js.map +1 -0
  82. package/dist/ui/campaigns/Drawer.d.ts +24 -0
  83. package/dist/ui/campaigns/Drawer.d.ts.map +1 -0
  84. package/dist/ui/campaigns/Drawer.js +120 -0
  85. package/dist/ui/campaigns/Drawer.js.map +1 -0
  86. package/dist/ui/campaigns/Icons.d.ts +35 -0
  87. package/dist/ui/campaigns/Icons.d.ts.map +1 -0
  88. package/dist/ui/campaigns/Icons.js +41 -0
  89. package/dist/ui/campaigns/Icons.js.map +1 -0
  90. package/dist/ui/campaigns/Summary.d.ts +21 -0
  91. package/dist/ui/campaigns/Summary.d.ts.map +1 -0
  92. package/dist/ui/campaigns/Summary.js +56 -0
  93. package/dist/ui/campaigns/Summary.js.map +1 -0
  94. package/dist/ui/campaigns/Thumbnail.d.ts +11 -0
  95. package/dist/ui/campaigns/Thumbnail.d.ts.map +1 -0
  96. package/dist/ui/campaigns/Thumbnail.js +23 -0
  97. package/dist/ui/campaigns/Thumbnail.js.map +1 -0
  98. package/dist/ui/campaigns/Tree.d.ts +12 -0
  99. package/dist/ui/campaigns/Tree.d.ts.map +1 -0
  100. package/dist/ui/campaigns/Tree.js +105 -0
  101. package/dist/ui/campaigns/Tree.js.map +1 -0
  102. package/dist/ui/campaigns/glyphs.d.ts +20 -0
  103. package/dist/ui/campaigns/glyphs.d.ts.map +1 -0
  104. package/dist/ui/campaigns/glyphs.js +19 -0
  105. package/dist/ui/campaigns/glyphs.js.map +1 -0
  106. package/dist/ui/campaigns/index.d.ts +4 -0
  107. package/dist/ui/campaigns/index.d.ts.map +1 -0
  108. package/dist/ui/campaigns/index.js +3 -0
  109. package/dist/ui/campaigns/index.js.map +1 -0
  110. package/dist/ui/campaigns/labels.d.ts +53 -0
  111. package/dist/ui/campaigns/labels.d.ts.map +1 -0
  112. package/dist/ui/campaigns/labels.js +169 -0
  113. package/dist/ui/campaigns/labels.js.map +1 -0
  114. package/dist/ui/campaigns/model.d.ts +99 -0
  115. package/dist/ui/campaigns/model.d.ts.map +1 -0
  116. package/dist/ui/campaigns/model.js +230 -0
  117. package/dist/ui/campaigns/model.js.map +1 -0
  118. package/dist/ui/campaigns/modes.d.ts +18 -0
  119. package/dist/ui/campaigns/modes.d.ts.map +1 -0
  120. package/dist/ui/campaigns/modes.js +7 -0
  121. package/dist/ui/campaigns/modes.js.map +1 -0
  122. package/dist/ui/index.d.ts +21 -0
  123. package/dist/ui/index.d.ts.map +1 -0
  124. package/dist/ui/index.js +20 -0
  125. package/dist/ui/index.js.map +1 -0
  126. package/dist/ui/integrations/AccountPicker.d.ts +26 -0
  127. package/dist/ui/integrations/AccountPicker.d.ts.map +1 -0
  128. package/dist/ui/integrations/AccountPicker.js +101 -0
  129. package/dist/ui/integrations/AccountPicker.js.map +1 -0
  130. package/dist/ui/integrations/ClientCards.d.ts +17 -0
  131. package/dist/ui/integrations/ClientCards.d.ts.map +1 -0
  132. package/dist/ui/integrations/ClientCards.js +42 -0
  133. package/dist/ui/integrations/ClientCards.js.map +1 -0
  134. package/dist/ui/integrations/ClientsTable.d.ts +36 -0
  135. package/dist/ui/integrations/ClientsTable.d.ts.map +1 -0
  136. package/dist/ui/integrations/ClientsTable.js +143 -0
  137. package/dist/ui/integrations/ClientsTable.js.map +1 -0
  138. package/dist/ui/integrations/Connect.d.ts +35 -0
  139. package/dist/ui/integrations/Connect.d.ts.map +1 -0
  140. package/dist/ui/integrations/Connect.js +62 -0
  141. package/dist/ui/integrations/Connect.js.map +1 -0
  142. package/dist/ui/integrations/Connection.d.ts +37 -0
  143. package/dist/ui/integrations/Connection.d.ts.map +1 -0
  144. package/dist/ui/integrations/Connection.js +108 -0
  145. package/dist/ui/integrations/Connection.js.map +1 -0
  146. package/dist/ui/integrations/Dialogs.d.ts +21 -0
  147. package/dist/ui/integrations/Dialogs.d.ts.map +1 -0
  148. package/dist/ui/integrations/Dialogs.js +34 -0
  149. package/dist/ui/integrations/Dialogs.js.map +1 -0
  150. package/dist/ui/integrations/EventsFeed.d.ts +15 -0
  151. package/dist/ui/integrations/EventsFeed.d.ts.map +1 -0
  152. package/dist/ui/integrations/EventsFeed.js +61 -0
  153. package/dist/ui/integrations/EventsFeed.js.map +1 -0
  154. package/dist/ui/integrations/EventsSheet.d.ts +34 -0
  155. package/dist/ui/integrations/EventsSheet.d.ts.map +1 -0
  156. package/dist/ui/integrations/EventsSheet.js +136 -0
  157. package/dist/ui/integrations/EventsSheet.js.map +1 -0
  158. package/dist/ui/integrations/Icons.d.ts +38 -0
  159. package/dist/ui/integrations/Icons.d.ts.map +1 -0
  160. package/dist/ui/integrations/Icons.js +40 -0
  161. package/dist/ui/integrations/Icons.js.map +1 -0
  162. package/dist/ui/integrations/IntegrationsView.d.ts +15 -0
  163. package/dist/ui/integrations/IntegrationsView.d.ts.map +1 -0
  164. package/dist/ui/integrations/IntegrationsView.js +141 -0
  165. package/dist/ui/integrations/IntegrationsView.js.map +1 -0
  166. package/dist/ui/integrations/Overlay.d.ts +18 -0
  167. package/dist/ui/integrations/Overlay.d.ts.map +1 -0
  168. package/dist/ui/integrations/Overlay.js +36 -0
  169. package/dist/ui/integrations/Overlay.js.map +1 -0
  170. package/dist/ui/integrations/Partner.d.ts +14 -0
  171. package/dist/ui/integrations/Partner.d.ts.map +1 -0
  172. package/dist/ui/integrations/Partner.js +38 -0
  173. package/dist/ui/integrations/Partner.js.map +1 -0
  174. package/dist/ui/integrations/RowMenu.d.ts +15 -0
  175. package/dist/ui/integrations/RowMenu.d.ts.map +1 -0
  176. package/dist/ui/integrations/RowMenu.js +47 -0
  177. package/dist/ui/integrations/RowMenu.js.map +1 -0
  178. package/dist/ui/integrations/UnlinkDialog.d.ts +18 -0
  179. package/dist/ui/integrations/UnlinkDialog.d.ts.map +1 -0
  180. package/dist/ui/integrations/UnlinkDialog.js +29 -0
  181. package/dist/ui/integrations/UnlinkDialog.js.map +1 -0
  182. package/dist/ui/integrations/audience.d.ts +12 -0
  183. package/dist/ui/integrations/audience.d.ts.map +1 -0
  184. package/dist/ui/integrations/audience.js +12 -0
  185. package/dist/ui/integrations/audience.js.map +1 -0
  186. package/dist/ui/integrations/format.d.ts +28 -0
  187. package/dist/ui/integrations/format.d.ts.map +1 -0
  188. package/dist/ui/integrations/format.js +101 -0
  189. package/dist/ui/integrations/format.js.map +1 -0
  190. package/dist/ui/integrations/index.d.ts +5 -0
  191. package/dist/ui/integrations/index.d.ts.map +1 -0
  192. package/dist/ui/integrations/index.js +3 -0
  193. package/dist/ui/integrations/index.js.map +1 -0
  194. package/dist/ui/integrations/modal.d.ts +10 -0
  195. package/dist/ui/integrations/modal.d.ts.map +1 -0
  196. package/dist/ui/integrations/modal.js +77 -0
  197. package/dist/ui/integrations/modal.js.map +1 -0
  198. package/dist/ui/integrations/model.d.ts +99 -0
  199. package/dist/ui/integrations/model.d.ts.map +1 -0
  200. package/dist/ui/integrations/model.js +164 -0
  201. package/dist/ui/integrations/model.js.map +1 -0
  202. package/dist/ui/integrations/parts.d.ts +36 -0
  203. package/dist/ui/integrations/parts.d.ts.map +1 -0
  204. package/dist/ui/integrations/parts.js +85 -0
  205. package/dist/ui/integrations/parts.js.map +1 -0
  206. package/dist/ui/integrations/types.d.ts +146 -0
  207. package/dist/ui/integrations/types.d.ts.map +1 -0
  208. package/dist/ui/integrations/types.js +2 -0
  209. package/dist/ui/integrations/types.js.map +1 -0
  210. package/dist/ui/metrics.d.ts +106 -0
  211. package/dist/ui/metrics.d.ts.map +1 -0
  212. package/dist/ui/metrics.js +166 -0
  213. package/dist/ui/metrics.js.map +1 -0
  214. package/dist/ui/portfolio/PortfolioView.d.ts +26 -0
  215. package/dist/ui/portfolio/PortfolioView.d.ts.map +1 -0
  216. package/dist/ui/portfolio/PortfolioView.js +216 -0
  217. package/dist/ui/portfolio/PortfolioView.js.map +1 -0
  218. package/dist/ui/portfolio/SpendChart.d.ts +10 -0
  219. package/dist/ui/portfolio/SpendChart.d.ts.map +1 -0
  220. package/dist/ui/portfolio/SpendChart.js +196 -0
  221. package/dist/ui/portfolio/SpendChart.js.map +1 -0
  222. package/dist/ui/portfolio/alerts.d.ts +74 -0
  223. package/dist/ui/portfolio/alerts.d.ts.map +1 -0
  224. package/dist/ui/portfolio/alerts.js +291 -0
  225. package/dist/ui/portfolio/alerts.js.map +1 -0
  226. package/dist/ui/portfolio/figures.d.ts +79 -0
  227. package/dist/ui/portfolio/figures.d.ts.map +1 -0
  228. package/dist/ui/portfolio/figures.js +103 -0
  229. package/dist/ui/portfolio/figures.js.map +1 -0
  230. package/dist/ui/portfolio/format.d.ts +8 -0
  231. package/dist/ui/portfolio/format.d.ts.map +1 -0
  232. package/dist/ui/portfolio/format.js +28 -0
  233. package/dist/ui/portfolio/format.js.map +1 -0
  234. package/dist/ui/sample.d.ts +536 -0
  235. package/dist/ui/sample.d.ts.map +1 -0
  236. package/dist/ui/sample.js +574 -0
  237. package/dist/ui/sample.js.map +1 -0
  238. package/dist/ui/seed.d.ts +188 -0
  239. package/dist/ui/seed.d.ts.map +1 -0
  240. package/dist/ui/seed.js +563 -0
  241. package/dist/ui/seed.js.map +1 -0
  242. package/dist/ui/ui.css +3424 -0
  243. package/docs/federation.md +46 -1
  244. package/docs/meta-ads.md +795 -0
  245. package/docs/upgrading.md +116 -0
  246. package/llms.txt +3 -0
  247. package/package.json +15 -3
  248. package/src/component/_generated/api.ts +14 -0
  249. package/src/component/_generated/component.ts +324 -1
  250. package/src/component/_generated/server.ts +4 -0
  251. package/src/component/constants.ts +10 -0
  252. package/src/component/convex.config.ts +9 -0
  253. package/src/component/errors.ts +5 -1
  254. package/src/component/leads.ts +517 -17
  255. package/src/component/meta.ts +1525 -0
  256. package/src/component/metaCapi.ts +921 -0
  257. package/src/component/metaFake.ts +277 -0
  258. package/src/component/metaGraph.ts +722 -0
  259. package/src/component/metaSync.ts +1164 -0
  260. package/src/component/pipeline.ts +410 -0
  261. package/src/component/schema.ts +197 -1
  262. package/src/component/secrets.ts +98 -0
  263. package/src/component/validators.ts +376 -3
  264. package/src/tracker/generated.ts +1 -1
  265. package/src/ui/seed.ts +755 -0
@@ -1187,6 +1187,8 @@ declare const _default: import("convex/server").SchemaDefinition<{
1187
1187
  title?: string | undefined;
1188
1188
  } | undefined;
1189
1189
  channel: "whatsapp";
1190
+ column?: string | undefined;
1191
+ columnAt?: number | undefined;
1190
1192
  dayStart: number;
1191
1193
  entryPoint?: string | undefined;
1192
1194
  firstAt: number;
@@ -1229,8 +1231,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
1229
1231
  stageAt: import("convex/values").VFloat64<number, "required">;
1230
1232
  qualifiedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1231
1233
  wonAt: import("convex/values").VFloat64<number | undefined, "optional">;
1234
+ column: import("convex/values").VString<string | undefined, "optional">;
1235
+ columnAt: import("convex/values").VFloat64<number | undefined, "optional">;
1232
1236
  updatedAt: import("convex/values").VFloat64<number, "required">;
1233
- }, "required", "ad" | "ad.adId" | "ad.ctwaClid" | "ad.sourceApp" | "ad.sourceUrl" | "ad.title" | "channel" | "dayStart" | "entryPoint" | "firstAt" | "label" | "leadKey" | "originKey" | "qualifiedAt" | "revenueCents" | "siteId" | "stage" | "stageAt" | "updatedAt" | "visitorId" | "wonAt">, {
1237
+ }, "required", "ad" | "ad.adId" | "ad.ctwaClid" | "ad.sourceApp" | "ad.sourceUrl" | "ad.title" | "channel" | "column" | "columnAt" | "dayStart" | "entryPoint" | "firstAt" | "label" | "leadKey" | "originKey" | "qualifiedAt" | "revenueCents" | "siteId" | "stage" | "stageAt" | "updatedAt" | "visitorId" | "wonAt">, {
1234
1238
  by_siteId_and_ad_and_firstAt: ["siteId", "ad.adId", "firstAt", "_creationTime"];
1235
1239
  by_siteId_and_firstAt: ["siteId", "firstAt", "_creationTime"];
1236
1240
  by_siteId_and_leadKey: ["siteId", "leadKey", "_creationTime"];
@@ -1275,13 +1279,17 @@ declare const _default: import("convex/server").SchemaDefinition<{
1275
1279
  by_siteId_and_dimension_and_dayStart_and_key: ["siteId", "dimension", "dayStart", "key", "_creationTime"];
1276
1280
  }, {}, {}>;
1277
1281
  adCatalog: import("convex/server").TableDefinition<import("convex/values").VObject<{
1282
+ adAccountId?: string | undefined;
1278
1283
  adId: string;
1279
1284
  adName?: string | undefined;
1285
+ adStatus?: string | undefined;
1280
1286
  adsetId?: string | undefined;
1281
1287
  adsetName?: string | undefined;
1282
1288
  campaignId?: string | undefined;
1283
1289
  campaignName?: string | undefined;
1290
+ creativeType?: "carousel" | "image" | "other" | "video" | undefined;
1284
1291
  siteId: import("convex/values").GenericId<"sites">;
1292
+ thumbnailStorageId?: import("convex/values").GenericId<"_storage"> | undefined;
1285
1293
  thumbnailUrl?: string | undefined;
1286
1294
  updatedAt: number;
1287
1295
  }, {
@@ -1293,10 +1301,307 @@ declare const _default: import("convex/server").SchemaDefinition<{
1293
1301
  campaignId: import("convex/values").VString<string | undefined, "optional">;
1294
1302
  campaignName: import("convex/values").VString<string | undefined, "optional">;
1295
1303
  thumbnailUrl: import("convex/values").VString<string | undefined, "optional">;
1304
+ adAccountId: import("convex/values").VString<string | undefined, "optional">;
1305
+ adStatus: import("convex/values").VString<string | undefined, "optional">;
1306
+ creativeType: import("convex/values").VUnion<"carousel" | "image" | "other" | "video" | undefined, [import("convex/values").VLiteral<"video", "required">, import("convex/values").VLiteral<"image", "required">, import("convex/values").VLiteral<"carousel", "required">, import("convex/values").VLiteral<"other", "required">], "optional", never>;
1307
+ thumbnailStorageId: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
1296
1308
  updatedAt: import("convex/values").VFloat64<number, "required">;
1297
- }, "required", "adId" | "adName" | "adsetId" | "adsetName" | "campaignId" | "campaignName" | "siteId" | "thumbnailUrl" | "updatedAt">, {
1309
+ }, "required", "adAccountId" | "adId" | "adName" | "adStatus" | "adsetId" | "adsetName" | "campaignId" | "campaignName" | "creativeType" | "siteId" | "thumbnailStorageId" | "thumbnailUrl" | "updatedAt">, {
1298
1310
  by_siteId_and_adId: ["siteId", "adId", "_creationTime"];
1299
1311
  }, {}, {}>;
1312
+ metaConnections: import("convex/server").TableDefinition<import("convex/values").VObject<{
1313
+ adAccounts: {
1314
+ adAccountId: string;
1315
+ currency: string;
1316
+ name: string;
1317
+ timezone: string;
1318
+ }[];
1319
+ authorizedAt?: number | undefined;
1320
+ authorizedBy?: {
1321
+ id: string;
1322
+ name: string | null;
1323
+ } | undefined;
1324
+ businessName?: string | undefined;
1325
+ createdAt: number;
1326
+ expiringSoon?: boolean | undefined;
1327
+ invalidSince?: number | undefined;
1328
+ lastCheckedAt: number;
1329
+ lastError?: string | undefined;
1330
+ ownerKey: string;
1331
+ pixels?: {
1332
+ name: string;
1333
+ pixelId: string;
1334
+ }[] | undefined;
1335
+ status: "active" | "invalid";
1336
+ tokenCipher: string;
1337
+ tokenExpiresAt?: number | undefined;
1338
+ tokenIv: string;
1339
+ updatedAt: number;
1340
+ }, {
1341
+ ownerKey: import("convex/values").VString<string, "required">;
1342
+ tokenCipher: import("convex/values").VString<string, "required">;
1343
+ tokenIv: import("convex/values").VString<string, "required">;
1344
+ businessName: import("convex/values").VString<string | undefined, "optional">;
1345
+ status: import("convex/values").VUnion<"active" | "invalid", [import("convex/values").VLiteral<"active", "required">, import("convex/values").VLiteral<"invalid", "required">], "required", never>;
1346
+ adAccounts: import("convex/values").VArray<{
1347
+ adAccountId: string;
1348
+ currency: string;
1349
+ name: string;
1350
+ timezone: string;
1351
+ }[], import("convex/values").VObject<{
1352
+ adAccountId: string;
1353
+ currency: string;
1354
+ name: string;
1355
+ timezone: string;
1356
+ }, {
1357
+ adAccountId: import("convex/values").VString<string, "required">;
1358
+ name: import("convex/values").VString<string, "required">;
1359
+ currency: import("convex/values").VString<string, "required">;
1360
+ timezone: import("convex/values").VString<string, "required">;
1361
+ }, "required", "adAccountId" | "currency" | "name" | "timezone">, "required">;
1362
+ pixels: import("convex/values").VArray<{
1363
+ name: string;
1364
+ pixelId: string;
1365
+ }[] | undefined, import("convex/values").VObject<{
1366
+ name: string;
1367
+ pixelId: string;
1368
+ }, {
1369
+ pixelId: import("convex/values").VString<string, "required">;
1370
+ name: import("convex/values").VString<string, "required">;
1371
+ }, "required", "name" | "pixelId">, "optional">;
1372
+ authorizedBy: import("convex/values").VObject<{
1373
+ id: string;
1374
+ name: string | null;
1375
+ } | undefined, {
1376
+ id: import("convex/values").VString<string, "required">;
1377
+ name: import("convex/values").VUnion<string | null, [import("convex/values").VString<string, "required">, import("convex/values").VNull<null, "required">], "required", never>;
1378
+ }, "optional", "id" | "name">;
1379
+ authorizedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1380
+ invalidSince: import("convex/values").VFloat64<number | undefined, "optional">;
1381
+ tokenExpiresAt: import("convex/values").VFloat64<number | undefined, "optional">;
1382
+ expiringSoon: import("convex/values").VBoolean<boolean | undefined, "optional">;
1383
+ lastCheckedAt: import("convex/values").VFloat64<number, "required">;
1384
+ lastError: import("convex/values").VString<string | undefined, "optional">;
1385
+ createdAt: import("convex/values").VFloat64<number, "required">;
1386
+ updatedAt: import("convex/values").VFloat64<number, "required">;
1387
+ }, "required", "adAccounts" | "authorizedAt" | "authorizedBy" | "authorizedBy.id" | "authorizedBy.name" | "businessName" | "createdAt" | "expiringSoon" | "invalidSince" | "lastCheckedAt" | "lastError" | "ownerKey" | "pixels" | "status" | "tokenCipher" | "tokenExpiresAt" | "tokenIv" | "updatedAt">, {
1388
+ by_ownerKey: ["ownerKey", "_creationTime"];
1389
+ }, {}, {}>;
1390
+ siteAdAccounts: import("convex/server").TableDefinition<import("convex/values").VObject<{
1391
+ adAccountId: string;
1392
+ backfillFrom?: string | undefined;
1393
+ connectionId: import("convex/values").GenericId<"metaConnections">;
1394
+ createdAt: number;
1395
+ currency: string;
1396
+ failures?: number | undefined;
1397
+ lastDailyResyncAt?: number | undefined;
1398
+ lastError?: string | undefined;
1399
+ lastFullResyncAt?: number | undefined;
1400
+ lastSyncAt?: number | undefined;
1401
+ name: string;
1402
+ nextSyncAt: number;
1403
+ runId?: string | undefined;
1404
+ siteId: import("convex/values").GenericId<"sites">;
1405
+ syncRequested?: boolean | undefined;
1406
+ syncState: "backfill" | "error" | "live";
1407
+ timezone: string;
1408
+ }, {
1409
+ adAccountId: import("convex/values").VString<string, "required">;
1410
+ name: import("convex/values").VString<string, "required">;
1411
+ currency: import("convex/values").VString<string, "required">;
1412
+ timezone: import("convex/values").VString<string, "required">;
1413
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1414
+ connectionId: import("convex/values").VId<import("convex/values").GenericId<"metaConnections">, "required">;
1415
+ syncState: import("convex/values").VUnion<"backfill" | "error" | "live", [import("convex/values").VLiteral<"backfill", "required">, import("convex/values").VLiteral<"live", "required">, import("convex/values").VLiteral<"error", "required">], "required", never>;
1416
+ lastSyncAt: import("convex/values").VFloat64<number | undefined, "optional">;
1417
+ lastDailyResyncAt: import("convex/values").VFloat64<number | undefined, "optional">;
1418
+ lastFullResyncAt: import("convex/values").VFloat64<number | undefined, "optional">;
1419
+ lastError: import("convex/values").VString<string | undefined, "optional">;
1420
+ nextSyncAt: import("convex/values").VFloat64<number, "required">;
1421
+ runId: import("convex/values").VString<string | undefined, "optional">;
1422
+ syncRequested: import("convex/values").VBoolean<boolean | undefined, "optional">;
1423
+ backfillFrom: import("convex/values").VString<string | undefined, "optional">;
1424
+ failures: import("convex/values").VFloat64<number | undefined, "optional">;
1425
+ createdAt: import("convex/values").VFloat64<number, "required">;
1426
+ }, "required", "adAccountId" | "backfillFrom" | "connectionId" | "createdAt" | "currency" | "failures" | "lastDailyResyncAt" | "lastError" | "lastFullResyncAt" | "lastSyncAt" | "name" | "nextSyncAt" | "runId" | "siteId" | "syncRequested" | "syncState" | "timezone">, {
1427
+ by_adAccountId: ["adAccountId", "_creationTime"];
1428
+ by_connectionId: ["connectionId", "_creationTime"];
1429
+ by_nextSyncAt: ["nextSyncAt", "_creationTime"];
1430
+ by_siteId: ["siteId", "_creationTime"];
1431
+ by_siteId_and_adAccountId: ["siteId", "adAccountId", "_creationTime"];
1432
+ }, {}, {}>;
1433
+ adSpendDaily: import("convex/server").TableDefinition<import("convex/values").VObject<{
1434
+ adAccountId: string;
1435
+ adId: string;
1436
+ clicks: number;
1437
+ dayStart: number;
1438
+ impressions: number;
1439
+ metaConversations?: number | undefined;
1440
+ siteId: import("convex/values").GenericId<"sites">;
1441
+ spendCents: number;
1442
+ updatedAt: number;
1443
+ }, {
1444
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1445
+ adAccountId: import("convex/values").VString<string, "required">;
1446
+ adId: import("convex/values").VString<string, "required">;
1447
+ dayStart: import("convex/values").VFloat64<number, "required">;
1448
+ spendCents: import("convex/values").VFloat64<number, "required">;
1449
+ impressions: import("convex/values").VFloat64<number, "required">;
1450
+ clicks: import("convex/values").VFloat64<number, "required">;
1451
+ metaConversations: import("convex/values").VFloat64<number | undefined, "optional">;
1452
+ updatedAt: import("convex/values").VFloat64<number, "required">;
1453
+ }, "required", "adAccountId" | "adId" | "clicks" | "dayStart" | "impressions" | "metaConversations" | "siteId" | "spendCents" | "updatedAt">, {
1454
+ by_siteId_and_adAccountId_and_dayStart: ["siteId", "adAccountId", "dayStart", "_creationTime"];
1455
+ by_siteId_and_adId_and_dayStart: ["siteId", "adId", "dayStart", "_creationTime"];
1456
+ by_siteId_and_dayStart: ["siteId", "dayStart", "_creationTime"];
1457
+ }, {}, {}>;
1458
+ siteSpendDaily: import("convex/server").TableDefinition<import("convex/values").VObject<{
1459
+ adAccountId: string;
1460
+ clicks: number;
1461
+ dayStart: number;
1462
+ impressions: number;
1463
+ siteId: import("convex/values").GenericId<"sites">;
1464
+ spendCents: number;
1465
+ }, {
1466
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1467
+ adAccountId: import("convex/values").VString<string, "required">;
1468
+ dayStart: import("convex/values").VFloat64<number, "required">;
1469
+ spendCents: import("convex/values").VFloat64<number, "required">;
1470
+ impressions: import("convex/values").VFloat64<number, "required">;
1471
+ clicks: import("convex/values").VFloat64<number, "required">;
1472
+ }, "required", "adAccountId" | "clicks" | "dayStart" | "impressions" | "siteId" | "spendCents">, {
1473
+ by_siteId_and_adAccountId_and_dayStart: ["siteId", "adAccountId", "dayStart", "_creationTime"];
1474
+ by_siteId_and_dayStart: ["siteId", "dayStart", "_creationTime"];
1475
+ }, {}, {}>;
1476
+ sitePixels: import("convex/server").TableDefinition<import("convex/values").VObject<{
1477
+ connectionId?: import("convex/values").GenericId<"metaConnections"> | undefined;
1478
+ enabled: boolean;
1479
+ invalidSince?: number | undefined;
1480
+ lastError?: string | undefined;
1481
+ name?: string | undefined;
1482
+ pixelId: string;
1483
+ sendLeadEvent?: boolean | undefined;
1484
+ setBy?: string | undefined;
1485
+ siteId: import("convex/values").GenericId<"sites">;
1486
+ source?: "connection" | "token" | undefined;
1487
+ testEventCode?: string | undefined;
1488
+ tokenCipher?: string | undefined;
1489
+ tokenIv?: string | undefined;
1490
+ updatedAt: number;
1491
+ }, {
1492
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1493
+ pixelId: import("convex/values").VString<string, "required">;
1494
+ source: import("convex/values").VUnion<"connection" | "token" | undefined, [import("convex/values").VLiteral<"connection", "required">, import("convex/values").VLiteral<"token", "required">], "optional", never>;
1495
+ connectionId: import("convex/values").VId<import("convex/values").GenericId<"metaConnections"> | undefined, "optional">;
1496
+ name: import("convex/values").VString<string | undefined, "optional">;
1497
+ setBy: import("convex/values").VString<string | undefined, "optional">;
1498
+ tokenCipher: import("convex/values").VString<string | undefined, "optional">;
1499
+ tokenIv: import("convex/values").VString<string | undefined, "optional">;
1500
+ enabled: import("convex/values").VBoolean<boolean, "required">;
1501
+ testEventCode: import("convex/values").VString<string | undefined, "optional">;
1502
+ sendLeadEvent: import("convex/values").VBoolean<boolean | undefined, "optional">;
1503
+ updatedAt: import("convex/values").VFloat64<number, "required">;
1504
+ invalidSince: import("convex/values").VFloat64<number | undefined, "optional">;
1505
+ lastError: import("convex/values").VString<string | undefined, "optional">;
1506
+ }, "required", "connectionId" | "enabled" | "invalidSince" | "lastError" | "name" | "pixelId" | "sendLeadEvent" | "setBy" | "siteId" | "source" | "testEventCode" | "tokenCipher" | "tokenIv" | "updatedAt">, {
1507
+ by_connectionId: ["connectionId", "_creationTime"];
1508
+ by_setBy: ["setBy", "_creationTime"];
1509
+ by_siteId: ["siteId", "_creationTime"];
1510
+ }, {}, {}>;
1511
+ sitePipelines: import("convex/server").TableDefinition<import("convex/values").VObject<{
1512
+ columns: {
1513
+ color?: string | undefined;
1514
+ event?: "Lead" | "QualifiedLead" | "Schedule" | undefined;
1515
+ group?: string | undefined;
1516
+ key: string;
1517
+ name: string;
1518
+ }[];
1519
+ columnsSince?: number | undefined;
1520
+ sendLeadEvent: boolean;
1521
+ siteId: import("convex/values").GenericId<"sites">;
1522
+ updatedAt: number;
1523
+ }, {
1524
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1525
+ columns: import("convex/values").VArray<{
1526
+ color?: string | undefined;
1527
+ event?: "Lead" | "QualifiedLead" | "Schedule" | undefined;
1528
+ group?: string | undefined;
1529
+ key: string;
1530
+ name: string;
1531
+ }[], import("convex/values").VObject<{
1532
+ color?: string | undefined;
1533
+ event?: "Lead" | "QualifiedLead" | "Schedule" | undefined;
1534
+ group?: string | undefined;
1535
+ key: string;
1536
+ name: string;
1537
+ }, {
1538
+ key: import("convex/values").VString<string, "required">;
1539
+ name: import("convex/values").VString<string, "required">;
1540
+ color: import("convex/values").VString<string | undefined, "optional">;
1541
+ group: import("convex/values").VString<string | undefined, "optional">;
1542
+ event: import("convex/values").VUnion<"Lead" | "QualifiedLead" | "Schedule" | undefined, [import("convex/values").VLiteral<"Lead", "required">, import("convex/values").VLiteral<"QualifiedLead", "required">, import("convex/values").VLiteral<"Schedule", "required">], "optional", never>;
1543
+ }, "required", "color" | "event" | "group" | "key" | "name">, "required">;
1544
+ /** Whether a new lead is sent as `Lead` (mirrored on the pixel). */
1545
+ sendLeadEvent: import("convex/values").VBoolean<boolean, "required">;
1546
+ /** When the host first sent a lead's column: counts start there. */
1547
+ columnsSince: import("convex/values").VFloat64<number | undefined, "optional">;
1548
+ updatedAt: import("convex/values").VFloat64<number, "required">;
1549
+ }, "required", "columns" | "columnsSince" | "sendLeadEvent" | "siteId" | "updatedAt">, {
1550
+ by_siteId: ["siteId", "_creationTime"];
1551
+ }, {}, {}>;
1552
+ leadColumnDaily: import("convex/server").TableDefinition<import("convex/values").VObject<{
1553
+ column: string;
1554
+ dayStart: number;
1555
+ entries: number;
1556
+ siteId: import("convex/values").GenericId<"sites">;
1557
+ }, {
1558
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1559
+ column: import("convex/values").VString<string, "required">;
1560
+ dayStart: import("convex/values").VFloat64<number, "required">;
1561
+ entries: import("convex/values").VFloat64<number, "required">;
1562
+ }, "required", "column" | "dayStart" | "entries" | "siteId">, {
1563
+ by_siteId_and_column_and_dayStart: ["siteId", "column", "dayStart", "_creationTime"];
1564
+ }, {}, {}>;
1565
+ leadColumnMarks: import("convex/server").TableDefinition<import("convex/values").VObject<{
1566
+ column: string;
1567
+ dayStart: number;
1568
+ leadId: import("convex/values").GenericId<"leads">;
1569
+ siteId: import("convex/values").GenericId<"sites">;
1570
+ }, {
1571
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1572
+ leadId: import("convex/values").VId<import("convex/values").GenericId<"leads">, "required">;
1573
+ column: import("convex/values").VString<string, "required">;
1574
+ dayStart: import("convex/values").VFloat64<number, "required">;
1575
+ }, "required", "column" | "dayStart" | "leadId" | "siteId">, {
1576
+ by_leadId_and_column: ["leadId", "column", "_creationTime"];
1577
+ }, {}, {}>;
1578
+ leadColumnMoves: import("convex/server").TableDefinition<import("convex/values").VObject<{
1579
+ at: number;
1580
+ column: string;
1581
+ eventId: string;
1582
+ leadId: import("convex/values").GenericId<"leads">;
1583
+ siteId: import("convex/values").GenericId<"sites">;
1584
+ }, {
1585
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1586
+ leadId: import("convex/values").VId<import("convex/values").GenericId<"leads">, "required">;
1587
+ eventId: import("convex/values").VString<string, "required">;
1588
+ column: import("convex/values").VString<string, "required">;
1589
+ at: import("convex/values").VFloat64<number, "required">;
1590
+ }, "required", "at" | "column" | "eventId" | "leadId" | "siteId">, {
1591
+ by_leadId: ["leadId", "_creationTime"];
1592
+ by_siteId_and_eventId: ["siteId", "eventId", "_creationTime"];
1593
+ }, {}, {}>;
1594
+ metaSyncLoop: import("convex/server").TableDefinition<import("convex/values").VObject<{
1595
+ jobId: import("convex/values").GenericId<"_scheduled_functions">;
1596
+ key: "loop";
1597
+ scheduledFor: number;
1598
+ }, {
1599
+ key: import("convex/values").VLiteral<"loop", "required">;
1600
+ scheduledFor: import("convex/values").VFloat64<number, "required">;
1601
+ jobId: import("convex/values").VId<import("convex/values").GenericId<"_scheduled_functions">, "required">;
1602
+ }, "required", "jobId" | "key" | "scheduledFor">, {
1603
+ by_key: ["key", "_creationTime"];
1604
+ }, {}, {}>;
1300
1605
  visitorSecrets: import("convex/server").TableDefinition<import("convex/values").VObject<{
1301
1606
  createdAt: number;
1302
1607
  key: "current";
@@ -1474,6 +1779,103 @@ declare const _default: import("convex/server").SchemaDefinition<{
1474
1779
  by_siteId_and_shard_and_windowStart: ["siteId", "shard", "windowStart", "_creationTime"];
1475
1780
  by_siteId_and_updatedAt: ["siteId", "updatedAt", "_creationTime"];
1476
1781
  }, {}, {}>;
1782
+ metaConversionOutbox: import("convex/server").TableDefinition<import("convex/values").VObject<{
1783
+ attemptStartedAt?: number | undefined;
1784
+ attempts: number;
1785
+ createdAt: number;
1786
+ currency?: string | undefined;
1787
+ eventId: string;
1788
+ eventName: "Lead" | "Purchase" | "QualifiedLead" | "Schedule";
1789
+ eventTime: number;
1790
+ fbtraceId?: string | undefined;
1791
+ lastError?: string | undefined;
1792
+ leadId: import("convex/values").GenericId<"leads">;
1793
+ nextAttemptAt: number;
1794
+ sentAt?: number | undefined;
1795
+ siteId: import("convex/values").GenericId<"sites">;
1796
+ status: "failed" | "pending" | "sent";
1797
+ userData?: {
1798
+ externalId?: string | undefined;
1799
+ ph: string[];
1800
+ } | undefined;
1801
+ valueCents?: number | undefined;
1802
+ }, {
1803
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1804
+ leadId: import("convex/values").VId<import("convex/values").GenericId<"leads">, "required">;
1805
+ eventId: import("convex/values").VString<string, "required">;
1806
+ eventName: import("convex/values").VUnion<"Lead" | "Purchase" | "QualifiedLead" | "Schedule", [import("convex/values").VLiteral<"Lead", "required">, import("convex/values").VLiteral<"QualifiedLead", "required">, import("convex/values").VLiteral<"Schedule", "required">, import("convex/values").VLiteral<"Purchase", "required">], "required", never>;
1807
+ eventTime: import("convex/values").VFloat64<number, "required">;
1808
+ valueCents: import("convex/values").VFloat64<number | undefined, "optional">;
1809
+ currency: import("convex/values").VString<string | undefined, "optional">;
1810
+ userData: import("convex/values").VObject<{
1811
+ externalId?: string | undefined;
1812
+ ph: string[];
1813
+ } | undefined, {
1814
+ ph: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
1815
+ externalId: import("convex/values").VString<string | undefined, "optional">;
1816
+ }, "optional", "externalId" | "ph">;
1817
+ status: import("convex/values").VUnion<"failed" | "pending" | "sent", [import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"sent", "required">, import("convex/values").VLiteral<"failed", "required">], "required", never>;
1818
+ attempts: import("convex/values").VFloat64<number, "required">;
1819
+ /** When the current attempt is due; the sweep reads it to find stalls. */
1820
+ nextAttemptAt: import("convex/values").VFloat64<number, "required">;
1821
+ /** When a send took the current attempt: its lease, for the sweep. */
1822
+ attemptStartedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1823
+ lastError: import("convex/values").VString<string | undefined, "optional">;
1824
+ fbtraceId: import("convex/values").VString<string | undefined, "optional">;
1825
+ sentAt: import("convex/values").VFloat64<number | undefined, "optional">;
1826
+ createdAt: import("convex/values").VFloat64<number, "required">;
1827
+ }, "required", "attemptStartedAt" | "attempts" | "createdAt" | "currency" | "eventId" | "eventName" | "eventTime" | "fbtraceId" | "lastError" | "leadId" | "nextAttemptAt" | "sentAt" | "siteId" | "status" | "userData" | "userData.externalId" | "userData.ph" | "valueCents">, {
1828
+ by_leadId: ["leadId", "_creationTime"];
1829
+ by_siteId_and_createdAt: ["siteId", "createdAt", "_creationTime"];
1830
+ by_siteId_and_eventId: ["siteId", "eventId", "_creationTime"];
1831
+ by_siteId_and_status_and_createdAt: ["siteId", "status", "createdAt", "_creationTime"];
1832
+ by_status_and_nextAttemptAt: ["status", "nextAttemptAt", "_creationTime"];
1833
+ }, {}, {}>;
1834
+ metaCapiSweep: import("convex/server").TableDefinition<import("convex/values").VObject<{
1835
+ jobId: import("convex/values").GenericId<"_scheduled_functions">;
1836
+ key: "sweep";
1837
+ scheduledFor: number;
1838
+ }, {
1839
+ key: import("convex/values").VLiteral<"sweep", "required">;
1840
+ scheduledFor: import("convex/values").VFloat64<number, "required">;
1841
+ jobId: import("convex/values").VId<import("convex/values").GenericId<"_scheduled_functions">, "required">;
1842
+ }, "required", "jobId" | "key" | "scheduledFor">, {
1843
+ by_key: ["key", "_creationTime"];
1844
+ }, {}, {}>;
1845
+ metaConversionCounts: import("convex/server").TableDefinition<import("convex/values").VObject<{
1846
+ failed: number;
1847
+ pending: number;
1848
+ sent: number;
1849
+ shard: number;
1850
+ siteId: import("convex/values").GenericId<"sites">;
1851
+ }, {
1852
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1853
+ shard: import("convex/values").VFloat64<number, "required">;
1854
+ pending: import("convex/values").VFloat64<number, "required">;
1855
+ sent: import("convex/values").VFloat64<number, "required">;
1856
+ failed: import("convex/values").VFloat64<number, "required">;
1857
+ }, "required", "failed" | "pending" | "sent" | "shard" | "siteId">, {
1858
+ by_siteId_and_shard: ["siteId", "shard", "_creationTime"];
1859
+ }, {}, {}>;
1860
+ metaConversionDaily: import("convex/server").TableDefinition<import("convex/values").VObject<{
1861
+ Lead: number;
1862
+ Purchase: number;
1863
+ QualifiedLead: number;
1864
+ Schedule: number;
1865
+ dayStart: number;
1866
+ shard: number;
1867
+ siteId: import("convex/values").GenericId<"sites">;
1868
+ }, {
1869
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1870
+ dayStart: import("convex/values").VFloat64<number, "required">;
1871
+ shard: import("convex/values").VFloat64<number, "required">;
1872
+ Purchase: import("convex/values").VFloat64<number, "required">;
1873
+ QualifiedLead: import("convex/values").VFloat64<number, "required">;
1874
+ Lead: import("convex/values").VFloat64<number, "required">;
1875
+ Schedule: import("convex/values").VFloat64<number, "required">;
1876
+ }, "required", "Lead" | "Purchase" | "QualifiedLead" | "Schedule" | "dayStart" | "shard" | "siteId">, {
1877
+ by_siteId_and_dayStart_and_shard: ["siteId", "dayStart", "shard", "_creationTime"];
1878
+ }, {}, {}>;
1477
1879
  }, true>;
1478
1880
  export default _default;
1479
1881
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsgBI,oEAAoE;;QAEpE,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqMpE,0EAA0E;;QAE1E,sEAAsE"}