@iann29/rastro 0.10.9 → 0.11.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 (180) hide show
  1. package/README.md +8 -0
  2. package/agent/integration.md +45 -0
  3. package/agent/manifest.json +4 -4
  4. package/dist/client/federation.d.ts +82 -9
  5. package/dist/client/federation.d.ts.map +1 -1
  6. package/dist/client/federation.js +40 -2
  7. package/dist/client/federation.js.map +1 -1
  8. package/dist/client/index.d.ts +465 -8
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +259 -7
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/component/_generated/api.d.ts +10 -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 +274 -21
  16. package/dist/component/_generated/component.d.ts.map +1 -1
  17. package/dist/component/_generated/server.d.ts +2 -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 +31 -0
  21. package/dist/component/constants.d.ts.map +1 -1
  22. package/dist/component/constants.js +31 -0
  23. package/dist/component/constants.js.map +1 -1
  24. package/dist/component/convex.config.d.ts +2 -0
  25. package/dist/component/convex.config.js +7 -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/http.d.ts.map +1 -1
  31. package/dist/component/http.js +64 -0
  32. package/dist/component/http.js.map +1 -1
  33. package/dist/component/leadAdsValidators.d.ts +1106 -0
  34. package/dist/component/leadAdsValidators.d.ts.map +1 -0
  35. package/dist/component/leadAdsValidators.js +311 -0
  36. package/dist/component/leadAdsValidators.js.map +1 -0
  37. package/dist/component/leadFormRules.d.ts +60 -0
  38. package/dist/component/leadFormRules.d.ts.map +1 -0
  39. package/dist/component/leadFormRules.js +140 -0
  40. package/dist/component/leadFormRules.js.map +1 -0
  41. package/dist/component/leadFormStore.d.ts +16 -0
  42. package/dist/component/leadFormStore.d.ts.map +1 -0
  43. package/dist/component/leadFormStore.js +92 -0
  44. package/dist/component/leadFormStore.js.map +1 -0
  45. package/dist/component/leadgenToken.d.ts +56 -0
  46. package/dist/component/leadgenToken.d.ts.map +1 -0
  47. package/dist/component/leadgenToken.js +262 -0
  48. package/dist/component/leadgenToken.js.map +1 -0
  49. package/dist/component/leads.d.ts +76 -7
  50. package/dist/component/leads.d.ts.map +1 -1
  51. package/dist/component/leads.js +112 -78
  52. package/dist/component/leads.js.map +1 -1
  53. package/dist/component/meta.d.ts.map +1 -1
  54. package/dist/component/meta.js +21 -1
  55. package/dist/component/meta.js.map +1 -1
  56. package/dist/component/metaFake.d.ts +44 -0
  57. package/dist/component/metaFake.d.ts.map +1 -1
  58. package/dist/component/metaFake.js +400 -1
  59. package/dist/component/metaFake.js.map +1 -1
  60. package/dist/component/metaGraph.d.ts +91 -0
  61. package/dist/component/metaGraph.d.ts.map +1 -1
  62. package/dist/component/metaGraph.js +217 -0
  63. package/dist/component/metaGraph.js.map +1 -1
  64. package/dist/component/metaLeads.d.ts +683 -0
  65. package/dist/component/metaLeads.d.ts.map +1 -0
  66. package/dist/component/metaLeads.js +2639 -0
  67. package/dist/component/metaLeads.js.map +1 -0
  68. package/dist/component/schema.d.ts +420 -5
  69. package/dist/component/schema.d.ts.map +1 -1
  70. package/dist/component/schema.js +176 -1
  71. package/dist/component/schema.js.map +1 -1
  72. package/dist/component/validators.d.ts +235 -11
  73. package/dist/component/validators.d.ts.map +1 -1
  74. package/dist/component/validators.js +14 -1
  75. package/dist/component/validators.js.map +1 -1
  76. package/dist/tracker/generated.d.ts +5 -5
  77. package/dist/tracker/generated.d.ts.map +1 -1
  78. package/dist/tracker/generated.js +5 -5
  79. package/dist/tracker/generated.js.map +1 -1
  80. package/dist/ui/campaigns/CampaignsView.d.ts +5 -1
  81. package/dist/ui/campaigns/CampaignsView.d.ts.map +1 -1
  82. package/dist/ui/campaigns/CampaignsView.js.map +1 -1
  83. package/dist/ui/campaigns/Drawer.d.ts.map +1 -1
  84. package/dist/ui/campaigns/Drawer.js +8 -26
  85. package/dist/ui/campaigns/Drawer.js.map +1 -1
  86. package/dist/ui/campaigns/labels.d.ts +29 -1
  87. package/dist/ui/campaigns/labels.d.ts.map +1 -1
  88. package/dist/ui/campaigns/labels.js +77 -2
  89. package/dist/ui/campaigns/labels.js.map +1 -1
  90. package/dist/ui/campaigns/model.js +2 -2
  91. package/dist/ui/campaigns/model.js.map +1 -1
  92. package/dist/ui/forms/FirstContact.d.ts +19 -0
  93. package/dist/ui/forms/FirstContact.d.ts.map +1 -0
  94. package/dist/ui/forms/FirstContact.js +81 -0
  95. package/dist/ui/forms/FirstContact.js.map +1 -0
  96. package/dist/ui/forms/FormLead.d.ts +28 -0
  97. package/dist/ui/forms/FormLead.d.ts.map +1 -0
  98. package/dist/ui/forms/FormLead.js +199 -0
  99. package/dist/ui/forms/FormLead.js.map +1 -0
  100. package/dist/ui/forms/FormRulesDrawer.d.ts +49 -0
  101. package/dist/ui/forms/FormRulesDrawer.d.ts.map +1 -0
  102. package/dist/ui/forms/FormRulesDrawer.js +149 -0
  103. package/dist/ui/forms/FormRulesDrawer.js.map +1 -0
  104. package/dist/ui/forms/FormsView.d.ts +10 -0
  105. package/dist/ui/forms/FormsView.d.ts.map +1 -0
  106. package/dist/ui/forms/FormsView.js +227 -0
  107. package/dist/ui/forms/FormsView.js.map +1 -0
  108. package/dist/ui/forms/Icons.d.ts +46 -0
  109. package/dist/ui/forms/Icons.d.ts.map +1 -0
  110. package/dist/ui/forms/Icons.js +45 -0
  111. package/dist/ui/forms/Icons.js.map +1 -0
  112. package/dist/ui/forms/RuleRow.d.ts +37 -0
  113. package/dist/ui/forms/RuleRow.d.ts.map +1 -0
  114. package/dist/ui/forms/RuleRow.js +80 -0
  115. package/dist/ui/forms/RuleRow.js.map +1 -0
  116. package/dist/ui/forms/WhatsAppButtonGuide.d.ts +33 -0
  117. package/dist/ui/forms/WhatsAppButtonGuide.d.ts.map +1 -0
  118. package/dist/ui/forms/WhatsAppButtonGuide.js +90 -0
  119. package/dist/ui/forms/WhatsAppButtonGuide.js.map +1 -0
  120. package/dist/ui/forms/index.d.ts +11 -0
  121. package/dist/ui/forms/index.d.ts.map +1 -0
  122. package/dist/ui/forms/index.js +7 -0
  123. package/dist/ui/forms/index.js.map +1 -0
  124. package/dist/ui/forms/journey.d.ts +19 -0
  125. package/dist/ui/forms/journey.d.ts.map +1 -0
  126. package/dist/ui/forms/journey.js +54 -0
  127. package/dist/ui/forms/journey.js.map +1 -0
  128. package/dist/ui/forms/model.d.ts +243 -0
  129. package/dist/ui/forms/model.d.ts.map +1 -0
  130. package/dist/ui/forms/model.js +564 -0
  131. package/dist/ui/forms/model.js.map +1 -0
  132. package/dist/ui/forms/sample.d.ts +36 -0
  133. package/dist/ui/forms/sample.d.ts.map +1 -0
  134. package/dist/ui/forms/sample.js +448 -0
  135. package/dist/ui/forms/sample.js.map +1 -0
  136. package/dist/ui/forms/types.d.ts +472 -0
  137. package/dist/ui/forms/types.d.ts.map +1 -0
  138. package/dist/ui/forms/types.js +2 -0
  139. package/dist/ui/forms/types.js.map +1 -0
  140. package/dist/ui/index.d.ts +2 -0
  141. package/dist/ui/index.d.ts.map +1 -1
  142. package/dist/ui/index.js +4 -0
  143. package/dist/ui/index.js.map +1 -1
  144. package/dist/ui/integrations/Overlay.d.ts +3 -1
  145. package/dist/ui/integrations/Overlay.d.ts.map +1 -1
  146. package/dist/ui/integrations/Overlay.js +2 -2
  147. package/dist/ui/integrations/Overlay.js.map +1 -1
  148. package/dist/ui/portfolio/PortfolioView.d.ts +4 -1
  149. package/dist/ui/portfolio/PortfolioView.d.ts.map +1 -1
  150. package/dist/ui/portfolio/PortfolioView.js.map +1 -1
  151. package/dist/ui/sample.d.ts +3 -1
  152. package/dist/ui/sample.d.ts.map +1 -1
  153. package/dist/ui/sample.js +2 -0
  154. package/dist/ui/sample.js.map +1 -1
  155. package/dist/ui/seed.d.ts +1 -1
  156. package/dist/ui/ui.css +2305 -0
  157. package/docs/federation.md +19 -0
  158. package/docs/meta-ads.md +723 -7
  159. package/docs/upgrading.md +70 -0
  160. package/llms.txt +1 -0
  161. package/package.json +1 -1
  162. package/src/component/_generated/api.ts +10 -0
  163. package/src/component/_generated/component.ts +290 -20
  164. package/src/component/_generated/server.ts +2 -0
  165. package/src/component/constants.ts +33 -0
  166. package/src/component/convex.config.ts +7 -0
  167. package/src/component/errors.ts +3 -1
  168. package/src/component/http.ts +75 -0
  169. package/src/component/leadAdsValidators.ts +376 -0
  170. package/src/component/leadFormRules.ts +202 -0
  171. package/src/component/leadFormStore.ts +129 -0
  172. package/src/component/leadgenToken.ts +348 -0
  173. package/src/component/leads.ts +136 -84
  174. package/src/component/meta.ts +21 -1
  175. package/src/component/metaFake.ts +485 -1
  176. package/src/component/metaGraph.ts +327 -0
  177. package/src/component/metaLeads.ts +3111 -0
  178. package/src/component/schema.ts +197 -1
  179. package/src/component/validators.ts +17 -1
  180. package/src/tracker/generated.ts +5 -5
@@ -1186,12 +1186,16 @@ declare const _default: import("convex/server").SchemaDefinition<{
1186
1186
  sourceUrl?: string | undefined;
1187
1187
  title?: string | undefined;
1188
1188
  } | undefined;
1189
- channel: "whatsapp";
1189
+ channel: "form" | "whatsapp";
1190
1190
  column?: string | undefined;
1191
1191
  columnAt?: number | undefined;
1192
1192
  dayStart: number;
1193
1193
  entryPoint?: string | undefined;
1194
1194
  firstAt: number;
1195
+ form?: {
1196
+ formId: string;
1197
+ pageId: string;
1198
+ } | undefined;
1195
1199
  label?: string | undefined;
1196
1200
  leadKey: string;
1197
1201
  originKey: string;
@@ -1206,7 +1210,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
1206
1210
  }, {
1207
1211
  siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1208
1212
  leadKey: import("convex/values").VString<string, "required">;
1209
- channel: import("convex/values").VLiteral<"whatsapp", "required">;
1213
+ channel: import("convex/values").VUnion<"form" | "whatsapp", [import("convex/values").VLiteral<"whatsapp", "required">, import("convex/values").VLiteral<"form", "required">], "required", never>;
1210
1214
  entryPoint: import("convex/values").VString<string | undefined, "optional">;
1211
1215
  originKey: import("convex/values").VString<string, "required">;
1212
1216
  ad: import("convex/values").VObject<{
@@ -1233,8 +1237,15 @@ declare const _default: import("convex/server").SchemaDefinition<{
1233
1237
  wonAt: import("convex/values").VFloat64<number | undefined, "optional">;
1234
1238
  column: import("convex/values").VString<string | undefined, "optional">;
1235
1239
  columnAt: import("convex/values").VFloat64<number | undefined, "optional">;
1240
+ form: import("convex/values").VObject<{
1241
+ formId: string;
1242
+ pageId: string;
1243
+ } | undefined, {
1244
+ formId: import("convex/values").VString<string, "required">;
1245
+ pageId: import("convex/values").VString<string, "required">;
1246
+ }, "optional", "formId" | "pageId">;
1236
1247
  updatedAt: import("convex/values").VFloat64<number, "required">;
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">, {
1248
+ }, "required", "ad" | "ad.adId" | "ad.ctwaClid" | "ad.sourceApp" | "ad.sourceUrl" | "ad.title" | "channel" | "column" | "columnAt" | "dayStart" | "entryPoint" | "firstAt" | "form" | "form.formId" | "form.pageId" | "label" | "leadKey" | "originKey" | "qualifiedAt" | "revenueCents" | "siteId" | "stage" | "stageAt" | "updatedAt" | "visitorId" | "wonAt">, {
1238
1249
  by_siteId_and_ad_and_firstAt: ["siteId", "ad.adId", "firstAt", "_creationTime"];
1239
1250
  by_siteId_and_firstAt: ["siteId", "firstAt", "_creationTime"];
1240
1251
  by_siteId_and_leadKey: ["siteId", "leadKey", "_creationTime"];
@@ -1259,7 +1270,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
1259
1270
  }, {}, {}>;
1260
1271
  leadDailyRollups: import("convex/server").TableDefinition<import("convex/values").VObject<{
1261
1272
  dayStart: number;
1262
- dimension: "ad" | "origin";
1273
+ dimension: "ad" | "form" | "origin";
1263
1274
  key: string;
1264
1275
  leads: number;
1265
1276
  qualified: number;
@@ -1269,7 +1280,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
1269
1280
  }, {
1270
1281
  siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1271
1282
  dayStart: import("convex/values").VFloat64<number, "required">;
1272
- dimension: import("convex/values").VUnion<"ad" | "origin", [import("convex/values").VLiteral<"origin", "required">, import("convex/values").VLiteral<"ad", "required">], "required", never>;
1283
+ dimension: import("convex/values").VUnion<"ad" | "form" | "origin", [import("convex/values").VLiteral<"origin", "required">, import("convex/values").VLiteral<"ad", "required">, import("convex/values").VLiteral<"form", "required">], "required", never>;
1273
1284
  key: import("convex/values").VString<string, "required">;
1274
1285
  leads: import("convex/values").VFloat64<number, "required">;
1275
1286
  qualified: import("convex/values").VFloat64<number, "required">;
@@ -1876,6 +1887,410 @@ declare const _default: import("convex/server").SchemaDefinition<{
1876
1887
  }, "required", "Lead" | "Purchase" | "QualifiedLead" | "Schedule" | "dayStart" | "shard" | "siteId">, {
1877
1888
  by_siteId_and_dayStart_and_shard: ["siteId", "dayStart", "shard", "_creationTime"];
1878
1889
  }, {}, {}>;
1890
+ metaPages: import("convex/server").TableDefinition<import("convex/values").VObject<{
1891
+ connectionId: import("convex/values").GenericId<"metaConnections">;
1892
+ createdAt: number;
1893
+ invalidSince?: number | undefined;
1894
+ leadsAllowed: boolean;
1895
+ listed: boolean;
1896
+ name: string;
1897
+ ownerKey: string;
1898
+ pageId: string;
1899
+ tasks: string[];
1900
+ tokenCipher: string;
1901
+ tokenIv: string;
1902
+ updatedAt: number;
1903
+ }, {
1904
+ ownerKey: import("convex/values").VString<string, "required">;
1905
+ connectionId: import("convex/values").VId<import("convex/values").GenericId<"metaConnections">, "required">;
1906
+ pageId: import("convex/values").VString<string, "required">;
1907
+ name: import("convex/values").VString<string, "required">;
1908
+ tokenCipher: import("convex/values").VString<string, "required">;
1909
+ tokenIv: import("convex/values").VString<string, "required">;
1910
+ /** The Page tasks Meta granted the login: `ADVERTISE`, `MANAGE`… */
1911
+ tasks: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
1912
+ /** The login was granted `leads_retrieval` for this Page. */
1913
+ leadsAllowed: import("convex/values").VBoolean<boolean, "required">;
1914
+ /** False once a new listing left the Page out; kept while linked. */
1915
+ listed: import("convex/values").VBoolean<boolean, "required">;
1916
+ /** When Meta refused the Page's token; a new listing clears it. */
1917
+ invalidSince: import("convex/values").VFloat64<number | undefined, "optional">;
1918
+ createdAt: import("convex/values").VFloat64<number, "required">;
1919
+ updatedAt: import("convex/values").VFloat64<number, "required">;
1920
+ }, "required", "connectionId" | "createdAt" | "invalidSince" | "leadsAllowed" | "listed" | "name" | "ownerKey" | "pageId" | "tasks" | "tokenCipher" | "tokenIv" | "updatedAt">, {
1921
+ by_connectionId_and_pageId: ["connectionId", "pageId", "_creationTime"];
1922
+ by_pageId: ["pageId", "_creationTime"];
1923
+ }, {}, {}>;
1924
+ sitePages: import("convex/server").TableDefinition<import("convex/values").VObject<{
1925
+ connectionId: import("convex/values").GenericId<"metaConnections">;
1926
+ createdAt: number;
1927
+ failures?: number | undefined;
1928
+ lastError?: string | undefined;
1929
+ lastLeadAt?: number | undefined;
1930
+ lastReconcileAt?: number | undefined;
1931
+ name: string;
1932
+ nextReconcileAt: number;
1933
+ ownerKey: string;
1934
+ pageId: string;
1935
+ reconcileFrom: number;
1936
+ runId?: string | undefined;
1937
+ siteId: import("convex/values").GenericId<"sites">;
1938
+ subscribedAt?: number | undefined;
1939
+ subscriptionCheckedAt?: number | undefined;
1940
+ updatedAt: number;
1941
+ }, {
1942
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
1943
+ pageId: import("convex/values").VString<string, "required">;
1944
+ name: import("convex/values").VString<string, "required">;
1945
+ /** The owner whose connection (and Page token) the link reads with. */
1946
+ ownerKey: import("convex/values").VString<string, "required">;
1947
+ connectionId: import("convex/values").VId<import("convex/values").GenericId<"metaConnections">, "required">;
1948
+ /** When Meta confirmed the `leadgen` subscription. */
1949
+ subscribedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1950
+ /**
1951
+ * When the reconciliation last made sure the app is still subscribed to
1952
+ * the Page: the subscription is the Page's and the app's, shared by every
1953
+ * host, so another host unlinking the Page may have taken it off.
1954
+ */
1955
+ subscriptionCheckedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1956
+ /** Leads created from here on are the link's (ms). */
1957
+ reconcileFrom: import("convex/values").VFloat64<number, "required">;
1958
+ nextReconcileAt: import("convex/values").VFloat64<number, "required">;
1959
+ /** The run holding the link, as in the spend sync. */
1960
+ runId: import("convex/values").VString<string | undefined, "optional">;
1961
+ lastReconcileAt: import("convex/values").VFloat64<number | undefined, "optional">;
1962
+ lastLeadAt: import("convex/values").VFloat64<number | undefined, "optional">;
1963
+ failures: import("convex/values").VFloat64<number | undefined, "optional">;
1964
+ lastError: import("convex/values").VString<string | undefined, "optional">;
1965
+ createdAt: import("convex/values").VFloat64<number, "required">;
1966
+ updatedAt: import("convex/values").VFloat64<number, "required">;
1967
+ }, "required", "connectionId" | "createdAt" | "failures" | "lastError" | "lastLeadAt" | "lastReconcileAt" | "name" | "nextReconcileAt" | "ownerKey" | "pageId" | "reconcileFrom" | "runId" | "siteId" | "subscribedAt" | "subscriptionCheckedAt" | "updatedAt">, {
1968
+ by_connectionId: ["connectionId", "_creationTime"];
1969
+ by_nextReconcileAt: ["nextReconcileAt", "_creationTime"];
1970
+ by_pageId: ["pageId", "_creationTime"];
1971
+ by_siteId: ["siteId", "_creationTime"];
1972
+ }, {}, {}>;
1973
+ metaForms: import("convex/server").TableDefinition<import("convex/values").VObject<{
1974
+ createdTime?: number | undefined;
1975
+ cursor?: {
1976
+ linkId: import("convex/values").GenericId<"sitePages">;
1977
+ sec: number;
1978
+ } | undefined;
1979
+ formId: string;
1980
+ lastLead?: {
1981
+ at: number;
1982
+ siteId: import("convex/values").GenericId<"sites">;
1983
+ via?: "reconcile" | "webhook" | undefined;
1984
+ } | undefined;
1985
+ name: string;
1986
+ pageId: string;
1987
+ questions: {
1988
+ key: string;
1989
+ label: string;
1990
+ options?: {
1991
+ key: string;
1992
+ value: string;
1993
+ }[] | undefined;
1994
+ type: string;
1995
+ }[];
1996
+ status: string;
1997
+ syncedAt: number;
1998
+ whatsappButton?: boolean | undefined;
1999
+ }, {
2000
+ pageId: import("convex/values").VString<string, "required">;
2001
+ formId: import("convex/values").VString<string, "required">;
2002
+ name: import("convex/values").VString<string, "required">;
2003
+ status: import("convex/values").VString<string, "required">;
2004
+ questions: import("convex/values").VArray<{
2005
+ key: string;
2006
+ label: string;
2007
+ options?: {
2008
+ key: string;
2009
+ value: string;
2010
+ }[] | undefined;
2011
+ type: string;
2012
+ }[], import("convex/values").VObject<{
2013
+ key: string;
2014
+ label: string;
2015
+ options?: {
2016
+ key: string;
2017
+ value: string;
2018
+ }[] | undefined;
2019
+ type: string;
2020
+ }, {
2021
+ key: import("convex/values").VString<string, "required">;
2022
+ label: import("convex/values").VString<string, "required">;
2023
+ type: import("convex/values").VString<string, "required">;
2024
+ options: import("convex/values").VArray<{
2025
+ key: string;
2026
+ value: string;
2027
+ }[] | undefined, import("convex/values").VObject<{
2028
+ key: string;
2029
+ value: string;
2030
+ }, {
2031
+ key: import("convex/values").VString<string, "required">;
2032
+ value: import("convex/values").VString<string, "required">;
2033
+ }, "required", "key" | "value">, "optional">;
2034
+ }, "required", "key" | "label" | "options" | "type">, "required">;
2035
+ /** The end screen's WhatsApp button; absent when Meta does not say. */
2036
+ whatsappButton: import("convex/values").VBoolean<boolean | undefined, "optional">;
2037
+ createdTime: import("convex/values").VFloat64<number | undefined, "optional">;
2038
+ syncedAt: import("convex/values").VFloat64<number, "required">;
2039
+ /**
2040
+ * How far the reconciliation read this form's leads (Meta's seconds),
2041
+ * for the link it read them for: a new link starts from its own time.
2042
+ */
2043
+ cursor: import("convex/values").VObject<{
2044
+ linkId: import("convex/values").GenericId<"sitePages">;
2045
+ sec: number;
2046
+ } | undefined, {
2047
+ linkId: import("convex/values").VId<import("convex/values").GenericId<"sitePages">, "required">;
2048
+ sec: import("convex/values").VFloat64<number, "required">;
2049
+ }, "optional", "linkId" | "sec">;
2050
+ /**
2051
+ * The last lead that came in from the form, for the site it fed, and how
2052
+ * it came in (absent before 0.11.1).
2053
+ */
2054
+ lastLead: import("convex/values").VObject<{
2055
+ at: number;
2056
+ siteId: import("convex/values").GenericId<"sites">;
2057
+ via?: "reconcile" | "webhook" | undefined;
2058
+ } | undefined, {
2059
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
2060
+ at: import("convex/values").VFloat64<number, "required">;
2061
+ via: import("convex/values").VUnion<"reconcile" | "webhook" | undefined, [import("convex/values").VLiteral<"webhook", "required">, import("convex/values").VLiteral<"reconcile", "required">], "optional", never>;
2062
+ }, "optional", "at" | "siteId" | "via">;
2063
+ }, "required", "createdTime" | "cursor" | "cursor.linkId" | "cursor.sec" | "formId" | "lastLead" | "lastLead.at" | "lastLead.siteId" | "lastLead.via" | "name" | "pageId" | "questions" | "status" | "syncedAt" | "whatsappButton">, {
2064
+ by_formId: ["formId", "_creationTime"];
2065
+ by_pageId: ["pageId", "_creationTime"];
2066
+ by_pageId_and_status: ["pageId", "status", "_creationTime"];
2067
+ }, {}, {}>;
2068
+ formRules: import("convex/server").TableDefinition<import("convex/values").VObject<{
2069
+ entryColumn?: string | undefined;
2070
+ firstContact: {
2071
+ brakes?: {
2072
+ businessHoursOnly: boolean;
2073
+ maxPerHour: number;
2074
+ waitMinutes: number;
2075
+ } | undefined;
2076
+ mode: "automatic" | "lead_starts" | "one_click";
2077
+ text?: string | undefined;
2078
+ };
2079
+ formId: string;
2080
+ rules: {
2081
+ answers: string[];
2082
+ questionKey: string;
2083
+ to: {
2084
+ column: string;
2085
+ } | {
2086
+ discard: string;
2087
+ };
2088
+ }[];
2089
+ setBy?: string | undefined;
2090
+ signatures: string[];
2091
+ siteId: import("convex/values").GenericId<"sites">;
2092
+ updatedAt: number;
2093
+ whatsappButtonConfirmed?: boolean | undefined;
2094
+ }, {
2095
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
2096
+ formId: import("convex/values").VString<string, "required">;
2097
+ entryColumn: import("convex/values").VString<string | undefined, "optional">;
2098
+ rules: import("convex/values").VArray<{
2099
+ answers: string[];
2100
+ questionKey: string;
2101
+ to: {
2102
+ column: string;
2103
+ } | {
2104
+ discard: string;
2105
+ };
2106
+ }[], import("convex/values").VObject<{
2107
+ answers: string[];
2108
+ questionKey: string;
2109
+ to: {
2110
+ column: string;
2111
+ } | {
2112
+ discard: string;
2113
+ };
2114
+ }, {
2115
+ questionKey: import("convex/values").VString<string, "required">;
2116
+ answers: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
2117
+ to: import("convex/values").VUnion<{
2118
+ column: string;
2119
+ } | {
2120
+ discard: string;
2121
+ }, [import("convex/values").VObject<{
2122
+ column: string;
2123
+ }, {
2124
+ column: import("convex/values").VString<string, "required">;
2125
+ }, "required", "column">, import("convex/values").VObject<{
2126
+ discard: string;
2127
+ }, {
2128
+ discard: import("convex/values").VString<string, "required">;
2129
+ }, "required", "discard">], "required", "column" | "discard">;
2130
+ }, "required", "answers" | "questionKey" | "to" | "to.column" | "to.discard">, "required">;
2131
+ /** Each rule's identity, for its monthly count (see leadFormRules.ts). */
2132
+ signatures: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
2133
+ firstContact: import("convex/values").VObject<{
2134
+ brakes?: {
2135
+ businessHoursOnly: boolean;
2136
+ maxPerHour: number;
2137
+ waitMinutes: number;
2138
+ } | undefined;
2139
+ mode: "automatic" | "lead_starts" | "one_click";
2140
+ text?: string | undefined;
2141
+ }, {
2142
+ mode: import("convex/values").VUnion<"automatic" | "lead_starts" | "one_click", [import("convex/values").VLiteral<"lead_starts", "required">, import("convex/values").VLiteral<"one_click", "required">, import("convex/values").VLiteral<"automatic", "required">], "required", never>;
2143
+ text: import("convex/values").VString<string | undefined, "optional">;
2144
+ brakes: import("convex/values").VObject<{
2145
+ businessHoursOnly: boolean;
2146
+ maxPerHour: number;
2147
+ waitMinutes: number;
2148
+ } | undefined, {
2149
+ waitMinutes: import("convex/values").VFloat64<number, "required">;
2150
+ maxPerHour: import("convex/values").VFloat64<number, "required">;
2151
+ businessHoursOnly: import("convex/values").VBoolean<boolean, "required">;
2152
+ }, "optional", "businessHoursOnly" | "maxPerHour" | "waitMinutes">;
2153
+ }, "required", "brakes" | "brakes.businessHoursOnly" | "brakes.maxPerHour" | "brakes.waitMinutes" | "mode" | "text">;
2154
+ whatsappButtonConfirmed: import("convex/values").VBoolean<boolean | undefined, "optional">;
2155
+ /** The owner that saved them, when the host named one. */
2156
+ setBy: import("convex/values").VString<string | undefined, "optional">;
2157
+ updatedAt: import("convex/values").VFloat64<number, "required">;
2158
+ }, "required", "entryColumn" | "firstContact" | "firstContact.brakes" | "firstContact.brakes.businessHoursOnly" | "firstContact.brakes.maxPerHour" | "firstContact.brakes.waitMinutes" | "firstContact.mode" | "firstContact.text" | "formId" | "rules" | "setBy" | "signatures" | "siteId" | "updatedAt" | "whatsappButtonConfirmed">, {
2159
+ by_siteId_and_formId: ["siteId", "formId", "_creationTime"];
2160
+ }, {}, {}>;
2161
+ formLeads: import("convex/server").TableDefinition<import("convex/values").VObject<{
2162
+ adId?: string | undefined;
2163
+ adsetId?: string | undefined;
2164
+ answers: {
2165
+ answers: string[];
2166
+ questionKey: string;
2167
+ }[];
2168
+ campaignId?: string | undefined;
2169
+ createdAt: number;
2170
+ decision: {
2171
+ column: string | null;
2172
+ } | {
2173
+ discard: string;
2174
+ };
2175
+ formId: string;
2176
+ isOrganic: boolean;
2177
+ leadId: import("convex/values").GenericId<"leads">;
2178
+ leadgenId: string;
2179
+ pageId: string;
2180
+ platform?: string | undefined;
2181
+ receivedAt: number;
2182
+ returned?: {
2183
+ at: number;
2184
+ reason: string;
2185
+ } | undefined;
2186
+ ruleIndex?: number | undefined;
2187
+ rulePath: number[];
2188
+ ruleSignature?: string | undefined;
2189
+ siteId: import("convex/values").GenericId<"sites">;
2190
+ }, {
2191
+ siteId: import("convex/values").VId<import("convex/values").GenericId<"sites">, "required">;
2192
+ pageId: import("convex/values").VString<string, "required">;
2193
+ formId: import("convex/values").VString<string, "required">;
2194
+ leadgenId: import("convex/values").VString<string, "required">;
2195
+ leadId: import("convex/values").VId<import("convex/values").GenericId<"leads">, "required">;
2196
+ receivedAt: import("convex/values").VFloat64<number, "required">;
2197
+ adId: import("convex/values").VString<string | undefined, "optional">;
2198
+ adsetId: import("convex/values").VString<string | undefined, "optional">;
2199
+ campaignId: import("convex/values").VString<string | undefined, "optional">;
2200
+ platform: import("convex/values").VString<string | undefined, "optional">;
2201
+ isOrganic: import("convex/values").VBoolean<boolean, "required">;
2202
+ answers: import("convex/values").VArray<{
2203
+ answers: string[];
2204
+ questionKey: string;
2205
+ }[], import("convex/values").VObject<{
2206
+ answers: string[];
2207
+ questionKey: string;
2208
+ }, {
2209
+ questionKey: import("convex/values").VString<string, "required">;
2210
+ answers: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
2211
+ }, "required", "answers" | "questionKey">, "required">;
2212
+ decision: import("convex/values").VUnion<{
2213
+ column: string | null;
2214
+ } | {
2215
+ discard: string;
2216
+ }, [import("convex/values").VObject<{
2217
+ column: string | null;
2218
+ }, {
2219
+ column: import("convex/values").VUnion<string | null, [import("convex/values").VString<string, "required">, import("convex/values").VNull<null, "required">], "required", never>;
2220
+ }, "required", "column">, import("convex/values").VObject<{
2221
+ discard: string;
2222
+ }, {
2223
+ discard: import("convex/values").VString<string, "required">;
2224
+ }, "required", "discard">], "required", "column" | "discard">;
2225
+ rulePath: import("convex/values").VArray<number[], import("convex/values").VFloat64<number, "required">, "required">;
2226
+ ruleIndex: import("convex/values").VFloat64<number | undefined, "optional">;
2227
+ ruleSignature: import("convex/values").VString<string | undefined, "optional">;
2228
+ /** A discarded lead sent back to the funnel, and the reason it had. */
2229
+ returned: import("convex/values").VObject<{
2230
+ at: number;
2231
+ reason: string;
2232
+ } | undefined, {
2233
+ at: import("convex/values").VFloat64<number, "required">;
2234
+ reason: import("convex/values").VString<string, "required">;
2235
+ }, "optional", "at" | "reason">;
2236
+ createdAt: import("convex/values").VFloat64<number, "required">;
2237
+ }, "required", "adId" | "adsetId" | "answers" | "campaignId" | "createdAt" | "decision" | "decision.column" | "decision.discard" | "formId" | "isOrganic" | "leadId" | "leadgenId" | "pageId" | "platform" | "receivedAt" | "returned" | "returned.at" | "returned.reason" | "ruleIndex" | "rulePath" | "ruleSignature" | "siteId">, {
2238
+ by_leadId: ["leadId", "_creationTime"];
2239
+ by_leadgenId: ["leadgenId", "_creationTime"];
2240
+ by_siteId_and_formId_and_receivedAt: ["siteId", "formId", "receivedAt", "_creationTime"];
2241
+ by_siteId_and_formId_and_ruleSignature_and_receivedAt: ["siteId", "formId", "ruleSignature", "receivedAt", "_creationTime"];
2242
+ by_siteId_and_receivedAt: ["siteId", "receivedAt", "_creationTime"];
2243
+ }, {}, {}>;
2244
+ formLeadTombstones: import("convex/server").TableDefinition<import("convex/values").VObject<{
2245
+ leadgenId: string;
2246
+ removedAt: number;
2247
+ }, {
2248
+ leadgenId: import("convex/values").VString<string, "required">;
2249
+ removedAt: import("convex/values").VFloat64<number, "required">;
2250
+ }, "required", "leadgenId" | "removedAt">, {
2251
+ by_leadgenId: ["leadgenId", "_creationTime"];
2252
+ }, {}, {}>;
2253
+ formLeadFailures: import("convex/server").TableDefinition<import("convex/values").VObject<{
2254
+ attempts: number;
2255
+ formId: string;
2256
+ lastAt: number;
2257
+ lastCode: string;
2258
+ leadgenId: string;
2259
+ pageId: string;
2260
+ skippedAt?: number | undefined;
2261
+ }, {
2262
+ leadgenId: import("convex/values").VString<string, "required">;
2263
+ pageId: import("convex/values").VString<string, "required">;
2264
+ formId: import("convex/values").VString<string, "required">;
2265
+ attempts: import("convex/values").VFloat64<number, "required">;
2266
+ lastCode: import("convex/values").VString<string, "required">;
2267
+ lastAt: import("convex/values").VFloat64<number, "required">;
2268
+ skippedAt: import("convex/values").VFloat64<number | undefined, "optional">;
2269
+ }, "required", "attempts" | "formId" | "lastAt" | "lastCode" | "leadgenId" | "pageId" | "skippedAt">, {
2270
+ by_leadgenId: ["leadgenId", "_creationTime"];
2271
+ }, {}, {}>;
2272
+ metaFormLeadHandler: import("convex/server").TableDefinition<import("convex/values").VObject<{
2273
+ handle: string;
2274
+ key: "handler";
2275
+ updatedAt: number;
2276
+ }, {
2277
+ key: import("convex/values").VLiteral<"handler", "required">;
2278
+ handle: import("convex/values").VString<string, "required">;
2279
+ updatedAt: import("convex/values").VFloat64<number, "required">;
2280
+ }, "required", "handle" | "key" | "updatedAt">, {
2281
+ by_key: ["key", "_creationTime"];
2282
+ }, {}, {}>;
2283
+ metaLeadsLoop: import("convex/server").TableDefinition<import("convex/values").VObject<{
2284
+ jobId: import("convex/values").GenericId<"_scheduled_functions">;
2285
+ key: "loop";
2286
+ scheduledFor: number;
2287
+ }, {
2288
+ key: import("convex/values").VLiteral<"loop", "required">;
2289
+ scheduledFor: import("convex/values").VFloat64<number, "required">;
2290
+ jobId: import("convex/values").VId<import("convex/values").GenericId<"_scheduled_functions">, "required">;
2291
+ }, "required", "jobId" | "key" | "scheduledFor">, {
2292
+ by_key: ["key", "_creationTime"];
2293
+ }, {}, {}>;
1879
2294
  }, true>;
1880
2295
  export default _default;
1881
2296
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsgBI,oEAAoE;;QAEpE,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqMpE,0EAA0E;;QAE1E,sEAAsE"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+gBI,oEAAoE;;QAEpE,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqMpE,0EAA0E;;QAE1E,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+DtE,oEAAoE;;QAEpE,6DAA6D;;QAE7D,qEAAqE;;QAErE,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcnE,uEAAuE;;;QAGvE,sDAAsD;;QAEtD;;;;WAIG;;QAEH,sDAAsD;;;QAGtD,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqBtD,uEAAuE;;;;QAIvE;;;WAGG;;;;;;;;QAIH;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmBH,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;QAI1E,0DAA0D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwB1D,uEAAuE"}