@happyvertical/smrt-planner 0.0.2 → 0.1.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 (752) hide show
  1. package/README.md +81 -8
  2. package/app/404.html +42 -49
  3. package/app/_app/immutable/assets/0.DUow1OzM.css +1 -0
  4. package/app/_app/immutable/assets/10.CdYxvH4G.css +1 -0
  5. package/app/_app/immutable/assets/11.nOT5Z4Fv.css +1 -0
  6. package/app/_app/immutable/assets/12.F7A7zP4J.css +1 -0
  7. package/app/_app/immutable/assets/13.JoySu8W5.css +1 -0
  8. package/app/_app/immutable/assets/14.nsp62-4b.css +1 -0
  9. package/app/_app/immutable/assets/2.CbPiqdz5.css +1 -0
  10. package/app/_app/immutable/assets/3.D518dbB5.css +1 -0
  11. package/app/_app/immutable/assets/4.B3vt1gMJ.css +1 -0
  12. package/app/_app/immutable/assets/AiSetup.4fXjMpTZ.css +1 -0
  13. package/app/_app/immutable/assets/AppShell.DOvXbUZo.css +1 -0
  14. package/app/_app/immutable/assets/ConnectTools.DTleL8YA.css +1 -0
  15. package/app/_app/immutable/assets/FieldMapForm.C8SZ3t4N.css +1 -0
  16. package/app/_app/immutable/assets/ModelPage.DbXvPbHE.css +1 -0
  17. package/app/_app/immutable/assets/SectionActions.BE1CPmxk.css +1 -0
  18. package/app/_app/immutable/assets/SectionIcons.BGFcFuOf.css +1 -0
  19. package/app/_app/immutable/assets/SegmentedControl.BkyuoCEJ.css +1 -0
  20. package/app/_app/immutable/assets/app.eM0k786r.css +1 -0
  21. package/app/_app/immutable/assets/currency-metadata.DDyu8_ub.css +1 -0
  22. package/app/_app/immutable/assets/data.bGq43K60.css +1 -0
  23. package/app/_app/immutable/assets/feedback.xBpOq9ef.css +1 -0
  24. package/app/_app/immutable/assets/forms.B3_bbIMe.css +1 -0
  25. package/app/_app/immutable/assets/labels.BiuUjqHs.css +1 -0
  26. package/app/_app/immutable/assets/percent.DbwvwMhf.css +1 -0
  27. package/app/_app/immutable/assets/state.CJipYvSU.css +1 -0
  28. package/app/_app/immutable/assets/webmcp-ui-context.BnR-DUfO.css +1 -0
  29. package/app/_app/immutable/assets/workspace.B5Xq-5pJ.css +1 -0
  30. package/app/_app/immutable/chunks/1ElZWh_R.js +10 -0
  31. package/app/_app/immutable/chunks/B-CpwO-j.js +1 -0
  32. package/app/_app/immutable/chunks/{BnRri03M.js → B7KB-rhH.js} +1 -1
  33. package/app/_app/immutable/chunks/BUhghcIm.js +1 -0
  34. package/app/_app/immutable/chunks/BV3NwM01.js +1 -0
  35. package/app/_app/immutable/chunks/BZVZZ6VY.js +1 -0
  36. package/app/_app/immutable/chunks/Ba1g71Sq.js +1 -0
  37. package/app/_app/immutable/chunks/BeJD7_hy.js +1 -0
  38. package/app/_app/immutable/chunks/BiO_bqNH.js +2 -0
  39. package/app/_app/immutable/chunks/{DkR8_Ws6.js → BqBuCJB_.js} +2 -2
  40. package/app/_app/immutable/chunks/BsJoBmTA.js +1 -0
  41. package/app/_app/immutable/chunks/Bxbz6_Mb.js +1 -0
  42. package/app/_app/immutable/chunks/Bz5uCkjV.js +2 -0
  43. package/app/_app/immutable/chunks/BzMfoxBk.js +1 -0
  44. package/app/_app/immutable/chunks/CF6zSg_o.js +2 -0
  45. package/app/_app/immutable/chunks/CFL0B6dk.js +1 -0
  46. package/app/_app/immutable/chunks/CRu55ZTy.js +4 -0
  47. package/app/_app/immutable/chunks/{CyUMm_Wp.js → Cv2EcCr0.js} +1 -1
  48. package/app/_app/immutable/chunks/D-3Ri0zJ.js +1 -0
  49. package/app/_app/immutable/chunks/{BWPhGFHl.js → D0FW0z6R.js} +1 -1
  50. package/app/_app/immutable/chunks/D7d5GssF.js +1 -0
  51. package/app/_app/immutable/chunks/DCsSRJsN.js +1 -0
  52. package/app/_app/immutable/chunks/DGqV6_5v.js +1 -0
  53. package/app/_app/immutable/chunks/DNSRTkf6.js +11 -0
  54. package/app/_app/immutable/chunks/DQNX_XPY.js +1 -0
  55. package/app/_app/immutable/chunks/DSyIMN4M.js +1 -0
  56. package/app/_app/immutable/chunks/DUTtmM1Y.js +1 -0
  57. package/app/_app/immutable/chunks/DYuawOB3.js +980 -0
  58. package/app/_app/immutable/chunks/DfCLzLZc.js +1 -0
  59. package/app/_app/immutable/chunks/Dh5fne6n.js +1 -0
  60. package/app/_app/immutable/chunks/LruoUXGC.js +1 -0
  61. package/app/_app/immutable/chunks/ZLqixH7j.js +9 -0
  62. package/app/_app/immutable/chunks/_pYwB_Eb.js +4 -0
  63. package/app/_app/immutable/chunks/aoU3lIZI.js +1 -0
  64. package/app/_app/immutable/chunks/c57ZlocB.js +24 -0
  65. package/app/_app/immutable/chunks/h8ppmjOm.js +1 -0
  66. package/app/_app/immutable/chunks/jhcy_jeO.js +1 -0
  67. package/app/_app/immutable/chunks/vNEnXNLV.js +3 -0
  68. package/app/_app/immutable/chunks/vwntRvfV.js +1 -0
  69. package/app/_app/immutable/entry/app.D5LoTsNA.js +2 -0
  70. package/app/_app/immutable/entry/start.Sb_s0NGC.js +1 -0
  71. package/app/_app/immutable/nodes/0.Cuo9-RQc.js +9 -0
  72. package/app/_app/immutable/nodes/1.BW8Ar5T3.js +1 -0
  73. package/app/_app/immutable/nodes/10.CpLYjN7r.js +3 -0
  74. package/app/_app/immutable/nodes/11.BMPKD4M3.js +1 -0
  75. package/app/_app/immutable/nodes/12.WYpy0AHE.js +4 -0
  76. package/app/_app/immutable/nodes/13.BYo05X9B.js +1 -0
  77. package/app/_app/immutable/nodes/14.DN0MT3KB.js +1 -0
  78. package/app/_app/immutable/nodes/2.DM6k_pqu.js +24 -0
  79. package/app/_app/immutable/nodes/3.YgEwJ-vF.js +1 -0
  80. package/app/_app/immutable/nodes/4.A3Y6Lax0.js +1 -0
  81. package/app/_app/immutable/nodes/5.D9Vd85hG.js +1 -0
  82. package/app/_app/immutable/nodes/6.C5c56bSW.js +1 -0
  83. package/app/_app/immutable/nodes/7.CDBMbYlD.js +1 -0
  84. package/app/_app/immutable/nodes/8.8olDkDou.js +1 -0
  85. package/app/_app/immutable/nodes/9.CWgx__8Z.js +1 -0
  86. package/app/_app/version.json +1 -1
  87. package/app/advanced-styles/index.html +84 -0
  88. package/app/ai/index.html +60 -52
  89. package/app/blueprint/index.html +46 -53
  90. package/app/cookbook/index.html +46 -53
  91. package/app/index.html +92 -64
  92. package/app/m/ads/AdDeliveryTier/index.html +52 -59
  93. package/app/m/ads/AdEvent/index.html +52 -59
  94. package/app/m/ads/AdFormat/index.html +52 -59
  95. package/app/m/ads/AdGroup/index.html +52 -59
  96. package/app/m/ads/AdVariation/index.html +52 -59
  97. package/app/m/analytics/AnalyticsDataStream/index.html +52 -59
  98. package/app/m/analytics/AnalyticsEvent/index.html +52 -59
  99. package/app/m/analytics/AnalyticsProperty/index.html +52 -59
  100. package/app/m/analytics/AnalyticsReport/index.html +52 -59
  101. package/app/m/approvals/ApprovalEvent/index.html +52 -59
  102. package/app/m/approvals/ApprovalPolicy/index.html +52 -59
  103. package/app/m/approvals/ApprovalRequest/index.html +52 -59
  104. package/app/m/assets/Asset/attachments/index.html +91 -0
  105. package/app/m/assets/Asset/index.html +52 -59
  106. package/app/m/assets/AssetAssociation/index.html +53 -60
  107. package/app/m/assets/AssetMetafield/index.html +52 -59
  108. package/app/m/assets/AssetStatus/index.html +52 -59
  109. package/app/m/assets/AssetType/index.html +52 -59
  110. package/app/m/assets/Folder/index.html +52 -59
  111. package/app/m/chat/AgentSession/index.html +52 -59
  112. package/app/m/chat/ChatMessage/index.html +53 -60
  113. package/app/m/chat/ChatParticipant/index.html +53 -60
  114. package/app/m/chat/ChatReaction/index.html +52 -59
  115. package/app/m/chat/ChatRoom/index.html +52 -59
  116. package/app/m/chat/ChatThread/index.html +53 -60
  117. package/app/m/chat/VoiceGatewayTurn/index.html +52 -59
  118. package/app/m/chat/VoiceSession/index.html +52 -59
  119. package/app/m/commerce/Agreement/index.html +52 -59
  120. package/app/m/commerce/Cart/index.html +52 -59
  121. package/app/m/commerce/Contract/index.html +52 -59
  122. package/app/m/commerce/ContractLineItem/index.html +53 -60
  123. package/app/m/commerce/Customer/index.html +52 -59
  124. package/app/m/commerce/DocumentTax/index.html +89 -0
  125. package/app/m/commerce/Estimate/index.html +52 -59
  126. package/app/m/commerce/Fulfillment/index.html +52 -59
  127. package/app/m/commerce/FulfillmentLineItem/index.html +53 -60
  128. package/app/m/commerce/Invoice/index.html +52 -59
  129. package/app/m/commerce/InvoiceLineItem/index.html +53 -60
  130. package/app/m/commerce/Lease/index.html +52 -59
  131. package/app/m/commerce/LicenseSale/index.html +52 -59
  132. package/app/m/commerce/Order/index.html +52 -59
  133. package/app/m/commerce/Payment/index.html +52 -59
  134. package/app/m/commerce/PaymentAllocation/index.html +53 -60
  135. package/app/m/commerce/PaymentInstrument/index.html +52 -59
  136. package/app/m/commerce/PaymentIntent/index.html +52 -59
  137. package/app/m/commerce/Payout/index.html +52 -59
  138. package/app/m/commerce/ProductionOrder/index.html +52 -59
  139. package/app/m/commerce/PurchaseContract/index.html +89 -0
  140. package/app/m/commerce/PurchaseOrder/index.html +52 -59
  141. package/app/m/commerce/SalesContract/index.html +89 -0
  142. package/app/m/commerce/SupplierQuote/index.html +89 -0
  143. package/app/m/commerce/TaxCode/index.html +89 -0
  144. package/app/m/commerce/TaxComponent/index.html +89 -0
  145. package/app/m/commerce/TaxSettings/index.html +89 -0
  146. package/app/m/commerce/TaxSummaryReport/index.html +89 -0
  147. package/app/m/commerce/Vendor/index.html +52 -59
  148. package/app/m/commerce/WholesaleOrder/index.html +52 -59
  149. package/app/m/content/Content/index.html +52 -59
  150. package/app/m/content/ContentContribution/index.html +52 -59
  151. package/app/m/content/ContentContributionAttachment/index.html +52 -59
  152. package/app/m/content/ContentContributionRevision/index.html +52 -59
  153. package/app/m/content/ContentContributionType/index.html +52 -59
  154. package/app/m/content/ContentContributor/index.html +52 -59
  155. package/app/m/content/ContentCorrection/index.html +52 -59
  156. package/app/m/content/ContentFeedSource/index.html +52 -59
  157. package/app/m/content/ContentGovernanceAssignment/index.html +52 -59
  158. package/app/m/content/ContentGovernancePolicy/index.html +52 -59
  159. package/app/m/content/ContentGovernanceProfile/index.html +52 -59
  160. package/app/m/content/ContentReference/index.html +52 -59
  161. package/app/m/content/ContentReview/index.html +52 -59
  162. package/app/m/content/ContentVersion/index.html +52 -59
  163. package/app/m/events/Event/index.html +52 -59
  164. package/app/m/events/EventParticipant/index.html +53 -60
  165. package/app/m/events/EventSeries/index.html +52 -59
  166. package/app/m/events/EventType/index.html +52 -59
  167. package/app/m/expenses/Expense/index.html +89 -0
  168. package/app/m/facts/Fact/index.html +52 -59
  169. package/app/m/facts/FactContent/index.html +52 -59
  170. package/app/m/facts/FactEvidence/index.html +52 -59
  171. package/app/m/facts/FactSource/index.html +52 -59
  172. package/app/m/facts/FactSubject/index.html +52 -59
  173. package/app/m/facts/FactTag/index.html +52 -59
  174. package/app/m/fields/FieldPolicy/index.html +52 -59
  175. package/app/m/fields/FieldPolicySuggestion/index.html +52 -59
  176. package/app/m/fields/FieldUsageCounter/index.html +52 -59
  177. package/app/m/images/Image/index.html +52 -59
  178. package/app/m/inventory/InventoryLocation/index.html +52 -59
  179. package/app/m/inventory/StockLevel/index.html +52 -59
  180. package/app/m/inventory/StockMovement/index.html +52 -59
  181. package/app/m/ledgers/Account/index.html +52 -59
  182. package/app/m/ledgers/Journal/index.html +52 -59
  183. package/app/m/ledgers/JournalEntry/index.html +53 -60
  184. package/app/m/manufacturing/Assembly/index.html +52 -59
  185. package/app/m/manufacturing/BillOfMaterials/index.html +52 -59
  186. package/app/m/manufacturing/BomLine/index.html +52 -59
  187. package/app/m/manufacturing/Operation/index.html +52 -59
  188. package/app/m/manufacturing/ProductionRun/index.html +52 -59
  189. package/app/m/manufacturing/ProductionRunCompletion/index.html +52 -59
  190. package/app/m/manufacturing/RoutingStep/index.html +52 -59
  191. package/app/m/marketing/Campaign/index.html +52 -59
  192. package/app/m/marketing/CampaignChannel/index.html +52 -59
  193. package/app/m/marketing/CampaignMetricSnapshot/index.html +52 -59
  194. package/app/m/messages/Account/index.html +52 -59
  195. package/app/m/messages/Attachment/index.html +52 -59
  196. package/app/m/messages/Blacklist/index.html +52 -59
  197. package/app/m/messages/Email/failed-sends/index.html +54 -59
  198. package/app/m/messages/Email/index.html +52 -59
  199. package/app/m/messages/Email/mailbox/index.html +54 -59
  200. package/app/m/messages/EmailAccount/index.html +52 -59
  201. package/app/m/messages/EmailAttachment/index.html +89 -0
  202. package/app/m/messages/EmailFolder/index.html +52 -59
  203. package/app/m/messages/Message/index.html +52 -59
  204. package/app/m/messages/MessagingEndpoint/index.html +52 -59
  205. package/app/m/messages/PersonaMessageRoute/index.html +52 -59
  206. package/app/m/messages/SlackAccount/index.html +52 -59
  207. package/app/m/messages/SlackMessage/index.html +52 -59
  208. package/app/m/messages/TelegramAccount/index.html +52 -59
  209. package/app/m/messages/Tweet/index.html +52 -59
  210. package/app/m/messages/TwitterAccount/index.html +52 -59
  211. package/app/m/messages/Whitelist/index.html +52 -59
  212. package/app/m/messages/ZulipAccount/index.html +52 -59
  213. package/app/m/places/Place/index.html +52 -59
  214. package/app/m/places/PlaceType/index.html +52 -59
  215. package/app/m/products/Category/index.html +52 -59
  216. package/app/m/products/Material/index.html +52 -59
  217. package/app/m/products/Product/index.html +52 -59
  218. package/app/m/products/Product/ingredients/index.html +54 -59
  219. package/app/m/products/ProductVariant/index.html +53 -60
  220. package/app/m/products/Sku/index.html +53 -60
  221. package/app/m/profiles/ApiKey/index.html +52 -59
  222. package/app/m/profiles/Bot/index.html +52 -59
  223. package/app/m/profiles/MagicLinkToken/index.html +52 -59
  224. package/app/m/profiles/NostrIdentity/index.html +52 -59
  225. package/app/m/profiles/OidcIdentity/index.html +52 -59
  226. package/app/m/profiles/Organization/index.html +52 -59
  227. package/app/m/profiles/Person/index.html +52 -59
  228. package/app/m/profiles/Profile/index.html +52 -59
  229. package/app/m/profiles/ProfileMetadata/index.html +52 -59
  230. package/app/m/profiles/ProfileMetafield/index.html +52 -59
  231. package/app/m/profiles/ProfileRelationship/index.html +52 -59
  232. package/app/m/profiles/ProfileRelationshipTerm/index.html +52 -59
  233. package/app/m/profiles/ProfileRelationshipType/index.html +52 -59
  234. package/app/m/profiles/ProfileType/index.html +52 -59
  235. package/app/m/projects/Comment/index.html +53 -60
  236. package/app/m/projects/Issue/index.html +52 -59
  237. package/app/m/projects/Label/index.html +52 -59
  238. package/app/m/projects/Project/index.html +52 -59
  239. package/app/m/projects/ProjectIntegration/index.html +52 -59
  240. package/app/m/projects/PullRequest/index.html +52 -59
  241. package/app/m/projects/Repository/index.html +52 -59
  242. package/app/m/properties/Property/index.html +52 -59
  243. package/app/m/properties/Zone/index.html +52 -59
  244. package/app/m/reports/RuntimeReport/index.html +52 -59
  245. package/app/m/reports/SmrtPrincipalReportRefreshTask/index.html +52 -59
  246. package/app/m/reports/SmrtReportLock/index.html +52 -59
  247. package/app/m/reports/SmrtReportRefreshTask/index.html +52 -59
  248. package/app/m/reports/SmrtReportRun/index.html +52 -59
  249. package/app/m/reports/SmrtReportSchedule/index.html +52 -59
  250. package/app/m/reports/SmrtReportWatermark/index.html +52 -59
  251. package/app/m/sales/AttributionException/index.html +52 -59
  252. package/app/m/sales/AttributionPolicy/index.html +52 -59
  253. package/app/m/sales/Commission/index.html +52 -59
  254. package/app/m/sales/CommissionAdjustment/index.html +52 -59
  255. package/app/m/sales/CommissionPayout/index.html +52 -59
  256. package/app/m/sales/CommissionPlan/index.html +52 -59
  257. package/app/m/sales/Earner/index.html +52 -59
  258. package/app/m/sales/EarnerSourceAttribution/index.html +52 -59
  259. package/app/m/sales/EarningEvent/index.html +52 -59
  260. package/app/m/sales/ExecutedAgreement/index.html +52 -59
  261. package/app/m/sales/Lead/index.html +52 -59
  262. package/app/m/sales/Opportunity/index.html +52 -59
  263. package/app/m/sales/OpportunityConversion/index.html +52 -59
  264. package/app/m/sales/PipelineDefinition/index.html +52 -59
  265. package/app/m/sales/PipelineStage/index.html +53 -60
  266. package/app/m/sales/Referral/index.html +52 -59
  267. package/app/m/sales/ReferralAgreement/index.html +52 -59
  268. package/app/m/sales/ReferralLink/index.html +52 -59
  269. package/app/m/sales/ReferralProgram/index.html +52 -59
  270. package/app/m/sales/ReferralTermSnapshot/index.html +52 -59
  271. package/app/m/sales/ReferralTouch/index.html +52 -59
  272. package/app/m/sales/Referrer/index.html +52 -59
  273. package/app/m/sales/SalesActivity/index.html +52 -59
  274. package/app/m/sales/SalesRepresentative/index.html +52 -59
  275. package/app/m/sites/Site/index.html +52 -59
  276. package/app/m/sites/SiteAgentBinding/index.html +52 -59
  277. package/app/m/social/OAuthState/index.html +52 -59
  278. package/app/m/social/SocialAccount/index.html +52 -59
  279. package/app/m/social/SocialPost/index.html +52 -59
  280. package/app/m/social/SocialPostAnalyticsSnapshot/index.html +52 -59
  281. package/app/m/subscriptions/BillingAdjustment/index.html +52 -59
  282. package/app/m/subscriptions/ClientCharge/index.html +52 -59
  283. package/app/m/subscriptions/CreditGrant/index.html +52 -59
  284. package/app/m/subscriptions/PricingRule/index.html +52 -59
  285. package/app/m/subscriptions/RetailCharge/index.html +52 -59
  286. package/app/m/subscriptions/SpendingPolicy/index.html +52 -59
  287. package/app/m/subscriptions/SubscriptionPlan/index.html +52 -59
  288. package/app/m/subscriptions/TenantSubscription/index.html +52 -59
  289. package/app/m/subscriptions/TenantUsageMetric/index.html +52 -59
  290. package/app/m/support/ServiceTimeEntry/index.html +52 -59
  291. package/app/m/support/SupportAiRun/index.html +52 -59
  292. package/app/m/support/SupportAvailability/index.html +52 -59
  293. package/app/m/support/SupportCase/index.html +52 -59
  294. package/app/m/support/SupportCaseEvent/index.html +52 -59
  295. package/app/m/support/SupportChannelBinding/index.html +52 -59
  296. package/app/m/support/SupportCharge/index.html +52 -59
  297. package/app/m/support/SupportCompensation/index.html +52 -59
  298. package/app/m/support/SupportCompensationPlan/index.html +52 -59
  299. package/app/m/support/SupportEscalation/index.html +52 -59
  300. package/app/m/support/SupportInteraction/index.html +52 -59
  301. package/app/m/support/SupportPlan/index.html +52 -59
  302. package/app/m/support/SupportPolicy/index.html +52 -59
  303. package/app/m/support/SupportQualification/index.html +52 -59
  304. package/app/m/support/SupportServiceTarget/index.html +52 -59
  305. package/app/m/support/SupportSpecialist/index.html +52 -59
  306. package/app/m/support/SupportWorkLink/index.html +52 -59
  307. package/app/m/tags/Tag/index.html +52 -59
  308. package/app/m/tags/TagAlias/index.html +52 -59
  309. package/app/m/timesheets/AttendanceBreak/index.html +52 -59
  310. package/app/m/timesheets/AttendancePunch/index.html +52 -59
  311. package/app/m/timesheets/AttendanceSegment/index.html +89 -0
  312. package/app/m/timesheets/ServiceChargeSnapshot/index.html +52 -59
  313. package/app/m/timesheets/ServiceCompensationSnapshot/index.html +52 -59
  314. package/app/m/timesheets/ServiceTimeEntry/index.html +52 -59
  315. package/app/m/users/Group/index.html +52 -59
  316. package/app/m/users/GroupMember/index.html +52 -59
  317. package/app/m/users/GroupRole/index.html +52 -59
  318. package/app/m/users/Membership/index.html +53 -60
  319. package/app/m/users/MembershipOverride/index.html +52 -59
  320. package/app/m/users/Permission/index.html +52 -59
  321. package/app/m/users/Role/index.html +52 -59
  322. package/app/m/users/RolePermission/index.html +52 -59
  323. package/app/m/users/Session/index.html +52 -59
  324. package/app/m/users/Tenant/index.html +52 -59
  325. package/app/m/users/TenantIntegration/index.html +52 -59
  326. package/app/m/users/TenantPermissionOverride/index.html +52 -59
  327. package/app/m/users/User/index.html +52 -59
  328. package/app/m/video/Character/index.html +52 -59
  329. package/app/m/video/CharacterAsset/index.html +52 -59
  330. package/app/m/video/CompositeJob/index.html +52 -59
  331. package/app/m/video/Performer/index.html +52 -59
  332. package/app/m/video/PerformerAsset/index.html +52 -59
  333. package/app/m/video/Scene/index.html +52 -59
  334. package/app/m/video/SceneAsset/index.html +52 -59
  335. package/app/m/video/VideoComposition/index.html +52 -59
  336. package/app/m/video/VideoCompositionAsset/index.html +52 -59
  337. package/app/m/video/VideoSequence/index.html +52 -59
  338. package/app/m/video/VideoSequenceAsset/index.html +52 -59
  339. package/app/m/video/VideoShot/index.html +52 -59
  340. package/app/m/video/VideoShotAsset/index.html +52 -59
  341. package/app/m/video/VideoShotCharacter/index.html +52 -59
  342. package/app/m/video/VideoWorkflow/index.html +52 -59
  343. package/app/m/voice/VoiceOutput/index.html +52 -59
  344. package/app/m/voice/VoiceProfile/index.html +52 -59
  345. package/app/m/voice/VoiceSample/index.html +52 -59
  346. package/app/packages/ads/index.html +50 -57
  347. package/app/packages/analytics/index.html +50 -57
  348. package/app/packages/approvals/index.html +50 -57
  349. package/app/packages/assets/index.html +50 -57
  350. package/app/packages/chat/index.html +50 -57
  351. package/app/packages/comments/index.html +50 -57
  352. package/app/packages/commerce/index.html +50 -57
  353. package/app/packages/content/index.html +50 -57
  354. package/app/packages/events/index.html +50 -57
  355. package/app/packages/expenses/index.html +50 -57
  356. package/app/packages/facts/index.html +50 -57
  357. package/app/packages/fields/index.html +50 -57
  358. package/app/packages/human-resources/index.html +50 -57
  359. package/app/packages/images/index.html +50 -57
  360. package/app/packages/index.html +49 -55
  361. package/app/packages/ingestion/index.html +85 -0
  362. package/app/packages/inventory/index.html +50 -57
  363. package/app/packages/ledgers/index.html +50 -57
  364. package/app/packages/manufacturing/index.html +50 -57
  365. package/app/packages/marketing/index.html +50 -57
  366. package/app/packages/messages/index.html +50 -57
  367. package/app/packages/places/index.html +50 -57
  368. package/app/packages/preferences/index.html +50 -57
  369. package/app/packages/products/index.html +50 -57
  370. package/app/packages/profiles/index.html +50 -57
  371. package/app/packages/projects/index.html +50 -57
  372. package/app/packages/properties/index.html +50 -57
  373. package/app/packages/reports/index.html +50 -57
  374. package/app/packages/sales/index.html +50 -57
  375. package/app/packages/sites/index.html +50 -57
  376. package/app/packages/social/index.html +50 -57
  377. package/app/packages/subscriptions/index.html +50 -57
  378. package/app/packages/support/index.html +50 -57
  379. package/app/packages/tags/index.html +50 -57
  380. package/app/packages/timesheets/index.html +50 -57
  381. package/app/packages/users/index.html +50 -57
  382. package/app/packages/video/index.html +50 -57
  383. package/app/packages/voice/index.html +50 -57
  384. package/app/packages/webhooks/index.html +85 -0
  385. package/app/recipes/account-access/help/index.html +52 -57
  386. package/app/recipes/account-access/index.html +57 -59
  387. package/app/recipes/activity/help/index.html +52 -57
  388. package/app/recipes/activity/index.html +57 -59
  389. package/app/recipes/agreements/help/index.html +52 -57
  390. package/app/recipes/agreements/index.html +57 -59
  391. package/app/recipes/analytics.reports/help/index.html +52 -57
  392. package/app/recipes/analytics.reports/index.html +57 -59
  393. package/app/recipes/assets/help/index.html +52 -57
  394. package/app/recipes/assets/index.html +57 -59
  395. package/app/recipes/billing/help/index.html +52 -57
  396. package/app/recipes/billing/index.html +57 -59
  397. package/app/recipes/chat.assistant/help/index.html +52 -57
  398. package/app/recipes/chat.assistant/index.html +57 -59
  399. package/app/recipes/comments/help/index.html +52 -57
  400. package/app/recipes/comments/index.html +57 -59
  401. package/app/recipes/commerce.customers/help/index.html +52 -57
  402. package/app/recipes/commerce.customers/index.html +57 -59
  403. package/app/recipes/commerce.estimates/help/index.html +52 -57
  404. package/app/recipes/commerce.estimates/index.html +57 -59
  405. package/app/recipes/commerce.purchases/help/index.html +52 -57
  406. package/app/recipes/commerce.purchases/index.html +57 -59
  407. package/app/recipes/commerce.sales/help/index.html +52 -57
  408. package/app/recipes/commerce.sales/index.html +57 -59
  409. package/app/recipes/commerce.vendors/help/index.html +52 -57
  410. package/app/recipes/commerce.vendors/index.html +57 -59
  411. package/app/recipes/commerce.wholesale/help/index.html +52 -57
  412. package/app/recipes/commerce.wholesale/index.html +57 -59
  413. package/app/recipes/events.calendar/help/index.html +52 -57
  414. package/app/recipes/events.calendar/index.html +57 -59
  415. package/app/recipes/expenses.tracking/help/index.html +88 -0
  416. package/app/recipes/expenses.tracking/index.html +92 -0
  417. package/app/recipes/fields.form-customization/help/index.html +52 -57
  418. package/app/recipes/fields.form-customization/index.html +57 -59
  419. package/app/recipes/ingestion/help/index.html +88 -0
  420. package/app/recipes/ingestion/index.html +93 -0
  421. package/app/recipes/integrations/help/index.html +88 -0
  422. package/app/recipes/integrations/index.html +92 -0
  423. package/app/recipes/inventory.stock/help/index.html +52 -57
  424. package/app/recipes/inventory.stock/index.html +57 -59
  425. package/app/recipes/ledgers.bookkeeping/help/index.html +52 -57
  426. package/app/recipes/ledgers.bookkeeping/index.html +57 -59
  427. package/app/recipes/messages/help/index.html +52 -57
  428. package/app/recipes/messages/index.html +57 -59
  429. package/app/recipes/products/help/index.html +52 -57
  430. package/app/recipes/products/index.html +57 -59
  431. package/app/recipes/projects.tracker/help/index.html +52 -57
  432. package/app/recipes/projects.tracker/index.html +57 -59
  433. package/app/recipes/reports.materialized/help/index.html +52 -57
  434. package/app/recipes/reports.materialized/index.html +57 -59
  435. package/app/recipes/reports.runtime/help/index.html +88 -0
  436. package/app/recipes/reports.runtime/index.html +92 -0
  437. package/app/recipes/sales.pipeline/help/index.html +52 -57
  438. package/app/recipes/sales.pipeline/index.html +57 -59
  439. package/app/recipes/tags.taxonomy/help/index.html +52 -57
  440. package/app/recipes/tags.taxonomy/index.html +57 -59
  441. package/app/recipes/team-collaboration/help/index.html +52 -57
  442. package/app/recipes/team-collaboration/index.html +57 -59
  443. package/app/recipes/timesheets.time-entries/help/index.html +88 -0
  444. package/app/recipes/timesheets.time-entries/index.html +92 -0
  445. package/app/s/custom-accounts/index.html +82 -0
  446. package/app/s/custom-appointments/index.html +82 -0
  447. package/app/s/custom-billing/index.html +47 -54
  448. package/app/s/custom-buying/index.html +47 -54
  449. package/app/s/custom-checkout/index.html +82 -0
  450. package/app/s/custom-classes/index.html +47 -54
  451. package/app/s/custom-clients/index.html +82 -0
  452. package/app/s/custom-events/index.html +82 -0
  453. package/app/s/custom-fleet/index.html +82 -0
  454. package/app/s/custom-giving/index.html +82 -0
  455. package/app/s/custom-jobs/index.html +47 -54
  456. package/app/s/custom-kitchen/index.html +47 -54
  457. package/app/s/custom-material/index.html +47 -54
  458. package/app/s/custom-meetings/index.html +82 -0
  459. package/app/s/custom-members/index.html +47 -54
  460. package/app/s/custom-parts/index.html +47 -54
  461. package/app/s/custom-rentals/index.html +82 -0
  462. package/app/s/custom-roastery/index.html +82 -0
  463. package/app/s/custom-schedule/index.html +47 -54
  464. package/app/s/custom-shelf/index.html +82 -0
  465. package/app/s/custom-shop/index.html +47 -54
  466. package/app/s/custom-wholesale/index.html +47 -54
  467. package/app/s/custom-work/index.html +82 -0
  468. package/app/s/custom-yard/index.html +82 -0
  469. package/app/s/section-access-control/index.html +47 -54
  470. package/app/s/section-account-security/index.html +47 -54
  471. package/app/s/section-accounting/index.html +47 -54
  472. package/app/s/section-activity/index.html +47 -54
  473. package/app/s/section-agreements/index.html +47 -54
  474. package/app/s/section-analytics/index.html +47 -54
  475. package/app/s/section-assets/index.html +47 -54
  476. package/app/s/section-billing/index.html +47 -54
  477. package/app/s/section-calendar/index.html +47 -54
  478. package/app/s/section-catalog/index.html +47 -54
  479. package/app/s/section-chat.assistant/index.html +47 -54
  480. package/app/s/section-comments/index.html +47 -54
  481. package/app/s/section-fields.form-customization/index.html +47 -54
  482. package/app/s/section-ingestion/index.html +82 -0
  483. package/app/s/section-integrations/index.html +82 -0
  484. package/app/s/section-messages/index.html +47 -54
  485. package/app/s/section-more/index.html +47 -54
  486. package/app/s/section-operations/index.html +47 -54
  487. package/app/s/section-projects/index.html +47 -54
  488. package/app/s/section-purchasing/index.html +47 -54
  489. package/app/s/section-reports.materialized/index.html +47 -54
  490. package/app/s/section-reports.runtime/index.html +82 -0
  491. package/app/s/section-sales/index.html +47 -54
  492. package/app/s/section-taxonomy/index.html +47 -54
  493. package/app/s/section-team/index.html +47 -54
  494. package/app/s/section-work/index.html +82 -0
  495. package/dist/ai/state.svelte.d.ts +13 -0
  496. package/dist/ai/state.svelte.js +33 -0
  497. package/dist/assistant/change.d.ts +14 -3
  498. package/dist/assistant/change.js +26 -3
  499. package/dist/assistant/engine.js +5 -1
  500. package/dist/assistant/prompt.js +7 -3
  501. package/dist/catalog/catalog.json +11263 -14455
  502. package/dist/catalog/generate/exclusions.d.ts +2 -0
  503. package/dist/catalog/generate/exclusions.js +14 -0
  504. package/dist/catalog/generate/extract.js +28 -7
  505. package/dist/catalog/types.d.ts +7 -0
  506. package/dist/components/AdvancedStyles.svelte +138 -0
  507. package/dist/components/AdvancedStyles.svelte.d.ts +6 -0
  508. package/dist/components/AiModelsPage.svelte +40 -0
  509. package/dist/components/AiModelsPage.svelte.d.ts +7 -0
  510. package/dist/components/AiSetup.svelte +9 -6
  511. package/dist/components/AiStatusIcons.svelte +8 -5
  512. package/dist/components/AppSettings.svelte +105 -1
  513. package/dist/components/BrowserAssistant.svelte +16 -17
  514. package/dist/components/BrowserAssistant.svelte.d.ts +2 -0
  515. package/dist/components/ChildRecords.svelte +61 -14
  516. package/dist/components/ChildRecords.svelte.d.ts +1 -0
  517. package/dist/components/ConnectTools.svelte +5 -2
  518. package/dist/components/CookbooksPanel.svelte +56 -33
  519. package/dist/components/CopyButton.svelte +65 -0
  520. package/dist/components/CopyButton.svelte.d.ts +24 -0
  521. package/dist/components/ExportPanel.svelte +292 -57
  522. package/dist/components/ExportPanel.svelte.d.ts +10 -1
  523. package/dist/components/FeatureCard.svelte +21 -10
  524. package/dist/components/FeaturesPanel.svelte +4 -1
  525. package/dist/components/FieldInput.svelte +6 -3
  526. package/dist/components/FieldMapForm.svelte +6 -10
  527. package/dist/components/FieldMapForm.svelte.d.ts +1 -0
  528. package/dist/components/FormWorkspace.svelte +80 -9
  529. package/dist/components/FormWorkspace.svelte.d.ts +1 -0
  530. package/dist/components/HeaderIconLink.svelte +86 -0
  531. package/dist/components/HeaderIconLink.svelte.d.ts +14 -0
  532. package/dist/components/HelpView.svelte +3 -0
  533. package/dist/components/ModelOptions.svelte +13 -2
  534. package/dist/components/ModelPage.svelte +33 -5
  535. package/dist/components/ModelPage.svelte.d.ts +4 -0
  536. package/dist/components/ModelWorkspace.svelte +148 -50
  537. package/dist/components/ModelWorkspace.svelte.d.ts +4 -0
  538. package/dist/components/PackagePage.svelte +96 -0
  539. package/dist/components/PackagePage.svelte.d.ts +9 -0
  540. package/dist/components/ProductMedia.svelte +95 -0
  541. package/dist/components/ProductMedia.svelte.d.ts +10 -0
  542. package/dist/components/RecipeCards.svelte +13 -1
  543. package/dist/components/RecipeHelp.svelte +3 -0
  544. package/dist/components/RecipeOptions.svelte +13 -1
  545. package/dist/components/RecordFeatures.svelte +22 -8
  546. package/dist/components/RecordView.svelte +354 -0
  547. package/dist/components/RecordView.svelte.d.ts +14 -0
  548. package/dist/components/RelationField.svelte +5 -2
  549. package/dist/components/SectionActions.svelte +8 -5
  550. package/dist/components/SectionHeading.svelte +63 -0
  551. package/dist/components/SectionHeading.svelte.d.ts +11 -0
  552. package/dist/components/SectionIcons.svelte +15 -3
  553. package/dist/components/SectionOverview.svelte +33 -3
  554. package/dist/components/SectionOverview.svelte.d.ts +4 -0
  555. package/dist/components/SectionPage.svelte +25 -165
  556. package/dist/components/SectionView.svelte +172 -0
  557. package/dist/components/SectionView.svelte.d.ts +18 -0
  558. package/dist/components/SettingsPanel.svelte +3 -9
  559. package/dist/components/SettingsPanel.svelte.d.ts +1 -5
  560. package/dist/components/ThemeBridge.svelte +80 -4
  561. package/dist/components/ThemeBridge.svelte.d.ts +5 -1
  562. package/dist/components/ThemeSection.svelte +208 -117
  563. package/dist/components/ThemeSection.svelte.d.ts +3 -7
  564. package/dist/components/VariantGridForm.svelte +9 -13
  565. package/dist/components/VariantGridForm.svelte.d.ts +1 -0
  566. package/dist/components/VoiceTyping.svelte +3 -0
  567. package/dist/cookbook/describe.d.ts +29 -0
  568. package/dist/cookbook/describe.js +164 -0
  569. package/dist/cookbook/file.d.ts +6 -0
  570. package/dist/cookbook/file.js +18 -4
  571. package/dist/cookbook/prompt.d.ts +49 -0
  572. package/dist/cookbook/prompt.js +96 -0
  573. package/dist/cookbook/store.svelte.d.ts +13 -0
  574. package/dist/cookbook/store.svelte.js +36 -8
  575. package/dist/core/prompt.js +10 -1
  576. package/dist/core/reply.d.ts +6 -1
  577. package/dist/data/children.d.ts +50 -6
  578. package/dist/data/children.js +146 -16
  579. package/dist/data/derived.d.ts +37 -29
  580. package/dist/data/derived.js +49 -30
  581. package/dist/data/display.d.ts +21 -8
  582. package/dist/data/display.js +74 -11
  583. package/dist/data/fakes.d.ts +48 -9
  584. package/dist/data/fakes.js +146 -22
  585. package/dist/data/labels.d.ts +7 -2
  586. package/dist/data/labels.js +12 -2
  587. package/dist/data/list-sort.d.ts +8 -0
  588. package/dist/data/list-sort.js +45 -0
  589. package/dist/data/money.d.ts +225 -0
  590. package/dist/data/money.js +411 -0
  591. package/dist/data/packs.d.ts +13 -0
  592. package/dist/data/packs.js +1224 -0
  593. package/dist/data/planner-source.js +120 -3
  594. package/dist/data/source.d.ts +13 -2
  595. package/dist/data/source.js +274 -40
  596. package/dist/features/palette.d.ts +2 -0
  597. package/dist/features/palette.js +1 -1
  598. package/dist/forms/stock.d.ts +1 -1
  599. package/dist/forms/stock.js +3 -1
  600. package/dist/index.d.ts +7 -2
  601. package/dist/index.js +6 -1
  602. package/dist/kitchen/LiveKitchenBridge.svelte +73 -0
  603. package/dist/kitchen/LiveKitchenBridge.svelte.d.ts +8 -0
  604. package/dist/kitchen/live.d.ts +7 -0
  605. package/dist/kitchen/live.js +51 -0
  606. package/dist/library/icons.js +34 -0
  607. package/dist/library/library.json +1546 -15
  608. package/dist/library/pending.json +5 -0
  609. package/dist/library/types.d.ts +4 -0
  610. package/dist/motion/tokens.d.ts +6 -0
  611. package/dist/motion/tokens.js +32 -0
  612. package/dist/motion/view-transition.d.ts +13 -0
  613. package/dist/motion/view-transition.js +17 -0
  614. package/dist/overviews/definitions.d.ts +41 -2
  615. package/dist/overviews/definitions.js +111 -4
  616. package/dist/overviews/models.d.ts +10 -0
  617. package/dist/overviews/models.js +19 -0
  618. package/dist/overviews/registry.d.ts +92 -5
  619. package/dist/overviews/registry.js +468 -58
  620. package/dist/overviews/validate.js +2 -2
  621. package/dist/planner/Planner.svelte +374 -166
  622. package/dist/planner/PlannerControls.svelte +255 -0
  623. package/dist/planner/PlannerControls.svelte.d.ts +17 -0
  624. package/dist/planner/PlannerLifecycle.svelte +73 -0
  625. package/dist/planner/PlannerLifecycle.svelte.d.ts +9 -0
  626. package/dist/planner/app.svelte.d.ts +12 -2
  627. package/dist/planner/app.svelte.js +13 -3
  628. package/dist/planner/assistant.js +20 -2
  629. package/dist/planner/commands/adapter.js +9 -2
  630. package/dist/planner/commands/types.d.ts +1 -1
  631. package/dist/planner/commands/types.js +1 -0
  632. package/dist/planner/header-icons.d.ts +12 -0
  633. package/dist/planner/header-icons.js +12 -0
  634. package/dist/planner/host/HostPlanner.svelte +70 -0
  635. package/dist/planner/host/HostPlanner.svelte.d.ts +17 -0
  636. package/dist/planner/host/session.svelte.d.ts +28 -0
  637. package/dist/planner/host/session.svelte.js +186 -0
  638. package/dist/planner/routes.d.ts +49 -0
  639. package/dist/planner/routes.js +64 -0
  640. package/dist/planner/shell.d.ts +40 -0
  641. package/dist/planner/shell.js +56 -0
  642. package/dist/planner/tab.svelte.d.ts +6 -3
  643. package/dist/planner/tab.svelte.js +11 -4
  644. package/dist/planner/title.d.ts +15 -0
  645. package/dist/planner/title.js +21 -0
  646. package/dist/planner/title.svelte.d.ts +6 -0
  647. package/dist/planner/title.svelte.js +11 -0
  648. package/dist/planner/types.d.ts +39 -7
  649. package/dist/products/media.d.ts +20 -0
  650. package/dist/products/media.js +65 -0
  651. package/dist/recipes/help/descriptions.json +1 -3
  652. package/dist/recipes/index.d.ts +2 -0
  653. package/dist/recipes/index.js +6 -0
  654. package/dist/recipes/plumbing.d.ts +35 -1
  655. package/dist/recipes/plumbing.js +74 -0
  656. package/dist/screens/definition.d.ts +35 -0
  657. package/dist/screens/definition.js +132 -0
  658. package/dist/screens/relations.d.ts +17 -0
  659. package/dist/screens/relations.js +98 -0
  660. package/dist/screens/totals.d.ts +37 -0
  661. package/dist/screens/totals.js +65 -0
  662. package/dist/sections/info.d.ts +1 -1
  663. package/dist/sections/info.js +2 -2
  664. package/dist/settings/app-settings.d.ts +17 -1
  665. package/dist/settings/app-settings.js +40 -3
  666. package/dist/smrt-version.d.ts +2 -0
  667. package/dist/smrt-version.js +4 -0
  668. package/dist/styles/planner-forms.css +53 -0
  669. package/dist/styles/planner-lists.css +43 -0
  670. package/dist/theme/css-highlight.d.ts +6 -0
  671. package/dist/theme/css-highlight.js +34 -0
  672. package/dist/theme/custom-css.svelte.d.ts +34 -0
  673. package/dist/theme/custom-css.svelte.js +246 -0
  674. package/dist/theme/runtime.js +25 -5
  675. package/dist/theme/theme.d.ts +26 -3
  676. package/dist/theme/theme.js +70 -2
  677. package/dist/upstream/overlay.d.ts +14 -5
  678. package/dist/upstream/overlay.js +20 -2
  679. package/package.json +12 -6
  680. package/app/_app/immutable/assets/0.B5zXkXe_.css +0 -1
  681. package/app/_app/immutable/assets/10.hpcnxvK1.css +0 -1
  682. package/app/_app/immutable/assets/11.D7zoXfVV.css +0 -1
  683. package/app/_app/immutable/assets/12.CPobm1ED.css +0 -1
  684. package/app/_app/immutable/assets/2.CyaWdRdI.css +0 -1
  685. package/app/_app/immutable/assets/3.BlPQOes8.css +0 -1
  686. package/app/_app/immutable/assets/8.2gQeKBp_.css +0 -1
  687. package/app/_app/immutable/assets/9.HOPT4xtg.css +0 -1
  688. package/app/_app/immutable/assets/AiSetup.Cb22AigN.css +0 -1
  689. package/app/_app/immutable/assets/Button.DkP0qkG9.css +0 -1
  690. package/app/_app/immutable/assets/ConnectTools.BgIJOOGW.css +0 -1
  691. package/app/_app/immutable/assets/FieldMapForm.BCU-4pO4.css +0 -1
  692. package/app/_app/immutable/assets/ModelPage.Dd3LcMta.css +0 -1
  693. package/app/_app/immutable/assets/SectionActions.CTkVuNMF.css +0 -1
  694. package/app/_app/immutable/assets/SectionIcons.5Udq9vN-.css +0 -1
  695. package/app/_app/immutable/assets/SegmentedControl.B8SrQacd.css +0 -1
  696. package/app/_app/immutable/assets/dist.C5nHBk_O.css +0 -1
  697. package/app/_app/immutable/assets/feedback.BVKAwFck.css +0 -1
  698. package/app/_app/immutable/assets/forms.BChZ2RWM.css +0 -1
  699. package/app/_app/immutable/assets/percent.LH0z-ozZ.css +0 -1
  700. package/app/_app/immutable/assets/store.CGDwHkkF.css +0 -1
  701. package/app/_app/immutable/assets/ui.B1A1Zl2p.css +0 -1
  702. package/app/_app/immutable/assets/workspace.BIMkuZDb.css +0 -1
  703. package/app/_app/immutable/chunks/1okeBSoq.js +0 -1
  704. package/app/_app/immutable/chunks/2jFBkS1C.js +0 -1
  705. package/app/_app/immutable/chunks/6P9zxrzU.js +0 -1
  706. package/app/_app/immutable/chunks/B32EWqI8.js +0 -9
  707. package/app/_app/immutable/chunks/B4Kevpe0.js +0 -1
  708. package/app/_app/immutable/chunks/BKwRT_1p.js +0 -1
  709. package/app/_app/immutable/chunks/BS4h9ES-.js +0 -1
  710. package/app/_app/immutable/chunks/CMhpRMKg.js +0 -1
  711. package/app/_app/immutable/chunks/CPRHZZeW.js +0 -1
  712. package/app/_app/immutable/chunks/CRQ1Pmzr.js +0 -1
  713. package/app/_app/immutable/chunks/CWtfVMDz.js +0 -1
  714. package/app/_app/immutable/chunks/Chyo8rdT.js +0 -3
  715. package/app/_app/immutable/chunks/Ci0DUht6.js +0 -34
  716. package/app/_app/immutable/chunks/CmmuWmp6.js +0 -2
  717. package/app/_app/immutable/chunks/CrFNLK0f.js +0 -1
  718. package/app/_app/immutable/chunks/CsprTb3f.js +0 -2
  719. package/app/_app/immutable/chunks/CygC84VT.js +0 -2
  720. package/app/_app/immutable/chunks/D0VgZnk1.js +0 -1
  721. package/app/_app/immutable/chunks/DD7gpKb2.js +0 -1
  722. package/app/_app/immutable/chunks/DNRgqfTx.js +0 -1
  723. package/app/_app/immutable/chunks/DVRKjN-E.js +0 -1
  724. package/app/_app/immutable/chunks/D_J_XtJy.js +0 -846
  725. package/app/_app/immutable/chunks/Dp9GVO-9.js +0 -1
  726. package/app/_app/immutable/chunks/DqcD-WtP.js +0 -1
  727. package/app/_app/immutable/chunks/QukgIHDX.js +0 -1
  728. package/app/_app/immutable/chunks/WxSPP8QW.js +0 -4
  729. package/app/_app/immutable/chunks/Xp1g1t4n.js +0 -3
  730. package/app/_app/immutable/chunks/leQCwW2d.js +0 -1
  731. package/app/_app/immutable/chunks/p6bgzXiY.js +0 -1
  732. package/app/_app/immutable/entry/app.IZIJXhgq.js +0 -2
  733. package/app/_app/immutable/entry/start.BuaYHD1N.js +0 -1
  734. package/app/_app/immutable/nodes/0.m_U8WC7E.js +0 -10
  735. package/app/_app/immutable/nodes/1.Crw8ULhB.js +0 -1
  736. package/app/_app/immutable/nodes/10.1nQxyH9H.js +0 -4
  737. package/app/_app/immutable/nodes/11.Cw0JnQF3.js +0 -1
  738. package/app/_app/immutable/nodes/12.BIocA1aI.js +0 -1
  739. package/app/_app/immutable/nodes/2.CR5BwGnt.js +0 -17
  740. package/app/_app/immutable/nodes/3.1B56hgAG.js +0 -1
  741. package/app/_app/immutable/nodes/4.SSIC7sUh.js +0 -1
  742. package/app/_app/immutable/nodes/5.DgdwleDQ.js +0 -1
  743. package/app/_app/immutable/nodes/6.DmD9rqLU.js +0 -1
  744. package/app/_app/immutable/nodes/7.DdngsBmo.js +0 -1
  745. package/app/_app/immutable/nodes/8.D2Mszsua.js +0 -3
  746. package/app/_app/immutable/nodes/9.CLYsywul.js +0 -1
  747. package/app/m/content/Contents/index.html +0 -96
  748. package/app/m/preferences/UiPreferenceRecord/index.html +0 -96
  749. package/app/m/users/AccessRequest/index.html +0 -96
  750. package/app/m/users/ResourceGrant/index.html +0 -96
  751. package/app/m/users/UsersCliAuthRequest/index.html +0 -96
  752. package/app/m/users/UsersMagicLinkToken/index.html +0 -96
@@ -0,0 +1,9 @@
1
+ import{n as e}from"./Dd_uD5pT.js";import{a as t,i as n,n as r,o as i,r as a,t as o}from"./BYcBM-fh.js";var s=[`read`,`write`,`destructive`];function c(e){let t=s.includes(e.effect)?e.effect:`destructive`;return{effect:t,destructive:t!==`read`,idempotent:e.idempotent??!1,openWorld:e.openWorld??!0}}function l(e){return{readOnlyHint:e.effect===`read`,destructiveHint:e.destructive,idempotentHint:e.idempotent,openWorldHint:e.openWorld,untrustedContentHint:!0}}function u(e){return{readOnlyHint:e.effect===`read`,destructiveHint:e.effect===`destructive`,idempotentHint:e.idempotent,openWorldHint:e.openWorld,untrustedContentHint:!0}}function d(e){throw Error(`[smrt-web] invalid view intent declaration: ${e}`)}function f(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function p(e,t,n=0){if(n>32&&d(`${t} nests deeper than 32 levels`),e===null)return null;if(typeof e==`function`&&d(`${t} is a function. A view intent declaration carries no code: its execute is constructed by the registry from 'target', so an intent has no path to REST.`),typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`number`)return Number.isFinite(e)||d(`${t} must be a finite number`),e;if(Array.isArray(e))return e.map((e,r)=>p(e,`${t}[${r}]`,n+1));if(f(e)){let r={};for(let[i,a]of Object.entries(e)){let e=p(a,`${t}.${i}`,n+1);Object.defineProperty(r,i,{value:e,enumerable:!0,writable:!0,configurable:!0})}return r}d(`${t} must be JSON data (got ${Object.prototype.toString.call(e)})`)}function m(e){return e.replace(/[.-]/g,`_`)}var h=new Set([`not_found`,`unsupported`,`consent_required`,`human_confirmation_required`,`sensitive_control`,`control_not_writable`,`control_not_editable`,`nothing_to_undo`,`stale_revision`,`idempotency_conflict`,`non_monotonic_revision`,`invalid_request`,`denied`]);function g(e){return typeof e==`string`&&h.has(e)?e:`denied`}function _(e){return JSON.stringify({ok:!0,...e})}function v(e){return JSON.stringify({ok:!1,reason:e})}function y(e){return f(e)?e:{}}var b=0;function x(){let e=globalThis.crypto;return typeof e?.randomUUID==`function`?e.randomUUID():(b+=1,`intent-${Date.now().toString(36)}-${b}`)}var S=class extends Error{};function C(e,t){try{return p(e[t],t)}catch{throw new S(t)}}function w(e){let t=e.revision;return typeof t==`number`&&Number.isFinite(t)?{revision:t}:{}}function ee(e){return e instanceof S?`invalid_request`:`denied`}function T(e,t,n){let r={action:e.action,identity:t};switch(e.action){case`highlight`:{let e=n.durationMs;if(e!==void 0){if(typeof e!=`number`||!Number.isFinite(e))throw new S(`durationMs`);return{...r,durationMs:e}}return r}case`stage`:if(!(`value`in n))throw new S(`value`);return{...r,value:C(n,`value`)};case`apply`:return{...r,...`value`in n?{value:C(n,`value`)}:{},...w(n)};case`discard`:return{...r,...w(n)};default:return r}}function te(e,t){if(t.registry!==e.target.registry)throw Error(`[smrt-web] intent '${e.id}' targets the ${e.target.registry} registry but was bound to ${t.registry}`);let r={name:m(e.id),description:e.description,inputSchema:e.inputSchema,annotations:u(e.classification)};if(t.registry===`control`&&e.target.registry===`control`){let i=e.target,a=t.identity;E(e.id,`formId`,i.formId,a.formId),E(e.id,`controlId`,i.controlId,a.controlId);let o=t.registryPort;return{...r,execute:n(async e=>{try{let t=T(i,a,y(e)),n=await o.execute(t,{source:`agent`});return n.ok?_({action:i.action,identity:a}):v(g(n.reason))}catch(e){return v(ee(e))}})}}if(t.registry===`dataSurface`&&e.target.registry===`dataSurface`){let i=e.target,a=t.identity;E(e.id,`surfaceId`,i.surfaceId,a.surfaceId),E(e.id,`kind`,i.kind,a.kind);let o=t.registryPort;return{...r,execute:n(async e=>{try{let t=y(e),n=`payload`in t?C(t,`payload`):void 0,r=o.inspect(a);if(!r)return v(`not_found`);let s=await o.execute({version:1,commandId:x(),identity:a,expectedRevision:r.revision,controlId:i.controlId,...n===void 0?{}:{payload:n}});return s.ok?_({controlId:i.controlId,identity:a,...s.revision===void 0?{}:{revision:s.revision}}):v(g(s.reason))}catch(e){return v(ee(e))}})}}throw Error(`[smrt-web] intent '${e.id}' could not be compiled for its binding`)}function E(e,t,n,r){if(n!==void 0&&n!==r)throw Error(`[smrt-web] intent '${e}' declares ${t} '${n}' but was bound to '${r}'`)}var D=class{},O=class extends D{constructor(e){super(),this.path=e,this.type=`ref`}},k=class extends D{constructor(e){super(),this.value=e,this.type=`val`}},ne=class extends D{constructor(e,t){super(),this.name=e,this.args=t,this.type=`func`}};function re(){let e=typeof globalThis<`u`?globalThis.crypto:void 0;if(e&&typeof e.randomUUID==`function`)return e.randomUUID();if(e&&typeof e.getRandomValues==`function`){let t=e.getRandomValues(new Uint8Array(16));t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=[];for(let e=0;e<16;e++)n.push(t[e].toString(16).padStart(2,`0`));return n.slice(0,4).join(``)+`-`+n.slice(4,6).join(``)+`-`+n.slice(6,8).join(``)+`-`+n.slice(8,10).join(``)+`-`+n.slice(10,16).join(``)}throw Error(`No secure random number generator available: neither crypto.randomUUID nor crypto.getRandomValues is defined in this environment.`)}var A=class extends Error{constructor(e){super(e),this.name=`TanStackDBError`}},ie=class extends A{constructor(e,t,n){let r=`${e===`insert`?`Insert`:`Update`} validation failed: ${t.map(e=>`
2
+ - ${e.message} - path: ${e.path}`).join(``)}`;super(n||r),this.name=`SchemaValidationError`,this.type=e,this.issues=t}},ae=class extends A{constructor(e){super(e),this.name=`CollectionConfigurationError`}},oe=class extends ae{constructor(){super(`Collection requires a config`)}},se=class extends ae{constructor(){super(`Collection requires a sync config`)}},ce=class extends ae{constructor(){super(`Schema must implement the standard-schema interface`)}},le=class extends ae{constructor(){super(`Schema validation must be synchronous`)}},ue=class extends A{constructor(e){super(e),this.name=`CollectionStateError`}},j=class extends ue{constructor(e,t){super(`Cannot perform ${e} on collection "${t}" - collection is in error state. Try calling cleanup() and restarting the collection.`)}},de=class extends ue{constructor(e,t,n){super(`Invalid collection status transition from "${e}" to "${t}" for collection "${n}"`)}},fe=class extends ue{constructor(){super(`Collection is in error state`)}},pe=class extends ue{constructor(){super(`Active subscribers count is negative - this should never happen`)}},M=class extends A{constructor(e){super(e),this.name=`CollectionOperationError`}},me=class extends M{constructor(e){super(`An object was created without a defined key: ${JSON.stringify(e)}`)}},he=class extends M{constructor(e,t){super(`getKey returned an invalid key type. Expected string or number, but got ${e===null?`null`:typeof e}: ${JSON.stringify(e)}. Item: ${JSON.stringify(t)}`)}},ge=class extends M{constructor(e){super(`Cannot insert document with ID "${e}" because it already exists in the collection`)}},_e=class extends M{constructor(e,t,n){let r=`Cannot insert document with key "${e}" from sync because it already exists in the collection "${t}"`;n?.hasCustomGetKey&&n.hasDistinct?super(`${r}. This collection uses a custom getKey with .distinct(). The .distinct() operator deduplicates by the ENTIRE selected object (standard SQL behavior), but your custom getKey extracts only a subset of fields. This causes multiple distinct rows (with different values in non-key fields) to receive the same key. To fix this, either: (1) ensure your SELECT only includes fields that uniquely identify each row, (2) use .groupBy() with min()/max() aggregates to select one value per group, or (3) remove the custom getKey to use the default key behavior.`):n?.hasCustomGetKey&&n.hasJoins?super(`${r}. This collection uses a custom getKey with joined queries. Joined queries can produce multiple rows with the same key when relationships are not 1:1. Consider: (1) using a composite key in your getKey function (e.g., \`\${item.key1}-\${item.key2}\`), (2) ensuring your join produces unique rows per key, or (3) removing the custom getKey to use the default composite key behavior.`):super(r)}},N=class extends M{constructor(){super(`The first argument to update is missing`)}},P=class extends M{constructor(){super(`No keys were passed to update`)}},F=class extends M{constructor(e){super(`The key "${e}" was passed to update but an object for this key was not found in the collection`)}},ve=class extends M{constructor(e,t){super(`Updating the key of an item is not allowed. Original key: "${e}", Attempted new key: "${t}". Please delete the old item and create a new one if a key change is necessary.`)}},ye=class extends M{constructor(){super(`No keys were passed to delete`)}},be=class extends M{constructor(e){super(`Collection.delete was called with key '${e}' but there is no item in the collection with this key`)}},xe=class extends A{constructor(e){super(e),this.name=`MissingHandlerError`}},Se=class extends xe{constructor(){super(`Collection.insert called directly (not within an explicit transaction) but no 'onInsert' handler is configured.`)}},Ce=class extends xe{constructor(){super(`Collection.update called directly (not within an explicit transaction) but no 'onUpdate' handler is configured.`)}},we=class extends xe{constructor(){super(`Collection.delete called directly (not within an explicit transaction) but no 'onDelete' handler is configured.`)}},Te=class extends A{constructor(e){super(e),this.name=`TransactionError`}},I=class extends Te{constructor(){super(`mutationFn is required when creating a transaction`)}},Ee=class extends Te{constructor(){super(`You can no longer call .mutate() as the transaction is no longer pending`)}},De=class extends Te{constructor(){super(`You can no longer call .rollback() as the transaction is already completed`)}},Oe=class extends Te{constructor(){super(`You can no longer call .commit() as the transaction is no longer pending`)}},ke=class extends Te{constructor(){super(`No pending sync transaction to write to`)}},Ae=class extends Te{constructor(){super(`The pending sync transaction is already committed, you can't still write to it.`)}},je=class extends Te{constructor(){super(`No pending sync transaction to commit`)}},Me=class extends Te{constructor(){super(`The pending sync transaction is already committed, you can't commit it again.`)}},Ne=class extends A{constructor(e){super(e),this.name=`QueryCompilationError`}},Pe=class extends Ne{constructor(e){super(`Unknown expression type: ${e}`)}},Fe=class extends Ne{constructor(){super(`Reference path cannot be empty`)}},Ie=class extends Ne{constructor(e){super(`Unknown function: ${e}`)}},Le=class extends A{constructor(e,t){let n=t instanceof Error?t.message:String(t);super(`Collection "${e}" sync cleanup function threw an error: ${n}`),this.name=`SyncCleanupError`}};function L(e,t){return Re(e,t,new Map)}function Re(e,t,n){if(e===t)return!0;if(e==null||t==null||typeof e!=typeof t)return!1;if(e instanceof Date)return t instanceof Date&&e.getTime()===t.getTime();if(t instanceof Date)return!1;if(e instanceof RegExp)return t instanceof RegExp&&e.source===t.source&&e.flags===t.flags;if(t instanceof RegExp)return!1;if(e instanceof Map){if(!(t instanceof Map)||e.size!==t.size)return!1;if(n.has(e))return n.get(e)===t;n.set(e,t);let r=Array.from(e.entries()).every(([e,r])=>t.has(e)&&Re(r,t.get(e),n));return n.delete(e),r}if(t instanceof Map)return!1;if(e instanceof Set){if(!(t instanceof Set)||e.size!==t.size)return!1;if(n.has(e))return n.get(e)===t;n.set(e,t);let r=Array.from(e),i=Array.from(t);if(r.every(e=>typeof e!=`object`))return n.delete(e),r.every(e=>t.has(e));let a=r.length===i.length;return n.delete(e),a}if(t instanceof Set)return!1;if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)&&!(e instanceof DataView)&&!(t instanceof DataView)){let n=e,r=t;if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}if(ArrayBuffer.isView(t)&&!(t instanceof DataView)&&!ArrayBuffer.isView(e))return!1;if(R(e)&&R(t))return e[Symbol.toStringTag]===t[Symbol.toStringTag]?typeof e.equals==`function`?e.equals(t):e.toString()===t.toString():!1;if(R(t))return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;if(n.has(e))return n.get(e)===t;n.set(e,t);let r=e.every((e,r)=>Re(e,t[r],n));return n.delete(e),r}if(Array.isArray(t))return!1;if(typeof e==`object`){if(n.has(e))return n.get(e)===t;n.set(e,t);let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return n.delete(e),!1;let a=r.every(r=>r in t&&Re(e[r],t[r],n));return n.delete(e),a}return!1}var ze=new Set([`Temporal.Duration`,`Temporal.Instant`,`Temporal.PlainDate`,`Temporal.PlainDateTime`,`Temporal.PlainMonthDay`,`Temporal.PlainTime`,`Temporal.PlainYearMonth`,`Temporal.ZonedDateTime`]);function R(e){if(typeof e!=`object`||!e)return!1;let t=e[Symbol.toStringTag];return typeof t==`string`&&ze.has(t)}var Be={direction:`asc`,nulls:`first`,stringSort:`locale`},Ve=new WeakMap,z=1;function He(e){if(Ve.has(e))return Ve.get(e);let t=z++;return Ve.set(e,t),t}function B(e){return typeof e==`number`&&Number.isNaN(e)||e instanceof Date&&Number.isNaN(e.getTime())}var Ue=(e,t,n)=>{let{nulls:r}=n;if(e==null&&t==null)return 0;if(e==null)return r===`first`?-1:1;if(t==null)return r===`first`?1:-1;let i=B(e),a=B(t);if(i&&a)return 0;if(i)return 1;if(a)return-1;if(typeof e==`string`&&typeof t==`string`&&n.stringSort===`locale`)return e.localeCompare(t,n.locale,n.localeOptions);if(Array.isArray(e)&&Array.isArray(t)){for(let r=0;r<Math.min(e.length,t.length);r++){let i=Ue(e[r],t[r],n);if(i!==0)return i}return e.length-t.length}if(e instanceof Date&&t instanceof Date)return e.getTime()-t.getTime();if(R(e)&&R(t)){let n=e.toString(),r=t.toString();return n<r?-1:+(n>r)}let o=typeof e==`object`,s=typeof t==`object`;if(o||s){if(o&&s)return He(e)-He(t);if(o)return 1;if(s)return-1}return e<t?-1:+(e>t)},We=(e,t,n)=>Ue(t,e,{...n,nulls:n.nulls===`first`?`last`:`first`});function Ge(e){return(t,n)=>e.direction===`asc`?Ue(t,n,e):We(t,n,e)}function Ke(e,t){if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}var qe=128;function Je(e){return typeof e!=`object`||!e?e:e instanceof Date?e.getTime():R(e)?`__temporal__${e[Symbol.toStringTag]}__${e.toString()}`:(typeof Buffer<`u`&&e instanceof Buffer||e instanceof Uint8Array)&&e.byteLength<=qe?`__u8__${Array.from(e).join(`,`)}`:e}function Ye(e,t){if(e===t)return!0;let n=typeof Buffer<`u`&&e instanceof Buffer||e instanceof Uint8Array,r=typeof Buffer<`u`&&t instanceof Buffer||t instanceof Uint8Array;return n&&r?Ke(e,t):!1}function V(e){return e==null}function Xe(e,t){return B(e)||B(t)?B(e)&&B(t):Ye(e,t)}function Ze(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e==`string`||typeof e==`number`){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function Qe(e,t){return e===`%Y-%m-%d`?t.toISOString().slice(0,10):t.toISOString()}function $e(e){return e===!0}function et(e,t=!1){return nt(e,t)}function tt(e){return nt(e,!0)}function nt(e,t){switch(e.type){case`val`:{let t=e.value;return()=>t}case`ref`:return t?it(e):rt(e);case`func`:return at(e,t);default:throw new Pe(e.type)}}function rt(e){let[t,...n]=e.path;if(!t)throw new Fe;if(t===`$selected`){if(n.length===0)return e=>e.$selected;if(n.length===1){let e=n[0];return t=>t.$selected?.[e]}return e=>{let t=e.$selected;if(t===void 0)return;let r=t;for(let e of n){if(r==null)return r;r=r[e]}return r}}let r=t;if(n.length===0)return e=>e[r];if(n.length===1){let e=n[0];return t=>t[r]?.[e]}return e=>{let t=e[r];if(t===void 0)return;let i=t;for(let e of n){if(i==null)return i;i=i[e]}return i}}function it(e){let t=e.path;return e=>{let n=e;for(let e of t){if(n==null)return n;n=n[e]}return n}}function at(e,t){let n=e.args.map(e=>nt(e,t));switch(e.name){case`eq`:{let e=n[0],t=n[1];return n=>{let r=Je(e(n)),i=Je(t(n));return V(r)||V(i)?null:Xe(r,i)}}case`gt`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return V(r)||V(i)?null:B(r)||B(i)?B(r)&&!B(i):r>i}}case`gte`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return V(r)||V(i)?null:B(r)||B(i)?B(r):r>=i}}case`lt`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return V(r)||V(i)?null:B(r)||B(i)?B(i)&&!B(r):r<i}}case`lte`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return V(r)||V(i)?null:B(r)||B(i)?B(i):r<=i}}case`and`:return e=>{let t=!1;for(let r of n){let n=r(e);if(n===!1)return!1;V(n)&&(t=!0)}return!t||null};case`or`:return e=>{let t=!1;for(let r of n){let n=r(e);if(n===!0)return!0;V(n)&&(t=!0)}return t?null:!1};case`not`:{let e=n[0];return t=>{let n=e(t);return V(n)?null:!n}}case`in`:{let e=n[0],t=n[1];return n=>{let r=Je(e(n)),i=t(n);return V(r)?null:Array.isArray(i)?i.some(e=>Xe(Je(e),r)):!1}}case`like`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return V(r)||V(i)?null:st(r,i,!1)}}case`ilike`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return V(r)||V(i)?null:st(r,i,!0)}}case`upper`:{let e=n[0];return t=>{let n=e(t);return typeof n==`string`?n.toUpperCase():n}}case`lower`:{let e=n[0];return t=>{let n=e(t);return typeof n==`string`?n.toLowerCase():n}}case`length`:{let e=n[0];return t=>{let n=e(t);return typeof n==`string`||Array.isArray(n)?n.length:0}}case`concat`:return e=>n.map(t=>{let n=t(e);try{return String(n??``)}catch{try{return JSON.stringify(n)||``}catch{return`[object]`}}}).join(``);case`coalesce`:return e=>{for(let t of n){let n=t(e);if(n!=null)return n}return null};case`caseWhen`:{let e=n.length%2==1,t=Math.floor(n.length/2);if(n.length<2)throw Error(`caseWhen() requires at least two arguments`);return r=>{for(let e=0;e<t;e++){let t=n[e*2];if(ot(t(r))){let t=n[e*2+1];return t(r)}}return e?n[n.length-1](r):null}}case`add`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return(r??0)+(i??0)}}case`subtract`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return(r??0)-(i??0)}}case`multiply`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n);return(r??0)*(i??0)}}case`divide`:{let e=n[0],t=n[1];return n=>{let r=e(n),i=t(n)??0;return i===0?null:(r??0)/i}}case`date`:{let e=n[0];return t=>{let n=Ze(e(t));return n?n.toISOString().slice(0,10):null}}case`datetime`:{let e=n[0];return t=>{let n=Ze(e(t));return n?n.toISOString():null}}case`strftime`:{let e=n[0],t=n[1];return n=>{let r=e(n);if(typeof r!=`string`)return null;let i=Ze(t(n));return i?Qe(r,i):null}}case`isUndefined`:{let e=n[0];return t=>e(t)===void 0}case`isNull`:{let e=n[0];return t=>e(t)===null}default:throw new Ie(e.name)}}function ot(e){return e==null||e===!1?!1:e===!0?!0:typeof e==`number`?e!==0&&!Number.isNaN(e):typeof e==`bigint`?e!==0n:!!e}function st(e,t,n){if(typeof e!=`string`||typeof t!=`string`)return!1;let r=n?e.toLowerCase():e,i=(n?t.toLowerCase():t).replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return i=i.replace(/%/g,`.*`),i=i.replace(/_/g,`.`),RegExp(`^${i}$`,`s`).test(r)}var ct=class{constructor(e){this.originalIndex=e}lookup(e,t){let n=e===`gt`?`lt`:e===`gte`?`lte`:e===`lt`?`gt`:e===`lte`?`gte`:e;return this.originalIndex.lookup(n,t)}rangeQuery(e={}){return this.originalIndex.rangeQueryReversed(e)}rangeQueryReversed(e={}){return this.originalIndex.rangeQuery(e)}take(e,t,n){return this.originalIndex.takeReversed(e,t,n)}takeFromStart(e,t){return this.originalIndex.takeReversedFromEnd(e,t)}takeReversed(e,t,n){return this.originalIndex.take(e,t,n)}takeReversedFromEnd(e,t){return this.originalIndex.takeFromStart(e,t)}get orderedEntriesArray(){return this.originalIndex.orderedEntriesArrayReversed}get orderedEntriesArrayReversed(){return this.originalIndex.orderedEntriesArray}supports(e){return this.originalIndex.supports(e)}get supportsRangeOptimization(){return this.originalIndex.supportsRangeOptimization}matchesField(e){return this.originalIndex.matchesField(e)}matchesCompareOptions(e){return this.originalIndex.matchesCompareOptions(e)}matchesDirection(e){return this.originalIndex.matchesDirection(e)}getStats(){return this.originalIndex.getStats()}add(e,t){this.originalIndex.add(e,t)}remove(e,t){this.originalIndex.remove(e,t)}update(e,t,n){this.originalIndex.update(e,t,n)}build(e){this.originalIndex.build(e)}clear(){this.originalIndex.clear()}get keyCount(){return this.originalIndex.keyCount}equalityLookup(e){return this.originalIndex.equalityLookup(e)}inArrayLookup(e){return this.originalIndex.inArrayLookup(e)}get indexedKeysSet(){return this.originalIndex.indexedKeysSet}get valueMapData(){return this.originalIndex.valueMapData}};function lt(e,t,n,r,i){let a=e;return{...e,$synced:a.$synced??r(),$origin:a.$origin??i(),$key:a.$key??t,$collectionId:a.$collectionId??n}}var ut=[`$synced`,`$origin`,`$key`,`$collectionId`];function dt(e){return ut.includes(e)}function ft(e){return e.some(e=>dt(e))}function pt(e,t,n){if(ft(t))return;let r=n??{...Be,...e.compareOptions};for(let n of e.indexes.values())if(n.matchesField(t)&&n.matchesCompareOptions(r))return n.matchesDirection(r.direction)?n:new ct(n)}function mt(e){if(e.length===0)return new Set;if(e.length===1)return new Set(e[0]);let t=new Set(e[0]);for(let n=1;n<e.length;n++){let r=new Set;for(let i of t)e[n].has(i)&&r.add(i);t=r}return t}function ht(e){let t=new Set;for(let n of e)for(let e of n)t.add(e);return t}function gt(e){return e!=null}function _t(e){return{...Be,...e.compareOptions}.stringSort===`locale`}function vt(e,t){switch(typeof e){case`number`:case`bigint`:case`boolean`:return!1;case`string`:return _t(t);case`object`:return e!==null&&!(e instanceof Date);default:return!1}}function yt(e,t,n){return!vt(e,n)&&t.supportsRangeOptimization}function bt(e,t){return xt(e,t)}function xt(e,t){if(e.type===`func`)switch(e.name){case`eq`:case`gt`:case`gte`:case`lt`:case`lte`:return Ct(e,t);case`and`:return wt(e,t);case`or`:return Tt(e,t);case`in`:return Et(e,t)}return{canOptimize:!1,matchingKeys:new Set,isExact:!1}}function St(e,t){if(e.type!==`func`||e.args.length<2)return{canOptimize:!1,matchingKeys:new Set,isExact:!1,coveredArgIndices:new Set};let n=new Map;for(let[t,r]of e.args.entries())if(r.type===`func`&&[`gt`,`gte`,`lt`,`lte`].includes(r.name)){let e=r;if(e.args.length===2){let r=e.args[0],i=e.args[1],a=null,o=null,s=e.name;if(r.type===`ref`&&i.type===`val`)a=r,o=i;else if(r.type===`val`&&i.type===`ref`)switch(a=i,o=r,s){case`gt`:s=`lt`;break;case`gte`:s=`lte`;break;case`lt`:s=`gt`;break;case`lte`:s=`gte`}if(a&&o){let e=a.path.join(`.`),r=o.value;n.has(e)||n.set(e,[]),n.get(e).push({operation:s,value:r,argIndex:t})}}}for(let[e,r]of n)if(r.length>=2){let n=pt(t,e.split(`.`));if(n&&r.some(e=>!yt(e.value,n,t)))continue;if(n&&n.supports(`gt`)&&n.supports(`lt`)){let e=Ge({...Be,...t.compareOptions,direction:`asc`}),i,a,o=!1,s=!1,c=!0,l=!0,u=!1;for(let{operation:t,value:n}of r){if(!gt(n)){u=!0;continue}switch(t){case`gt`:case`gte`:{let r=o?e(n,i):1;r>0?(i=n,o=!0,c=t===`gte`):r===0&&t===`gt`&&(c=!1);break}case`lt`:case`lte`:{let r=s?e(n,a):-1;r<0?(a=n,s=!0,l=t===`lte`):r===0&&t===`lt`&&(l=!1);break}}}let d={};return o&&(d.from=i,d.fromInclusive=c),s&&(d.to=a,d.toInclusive=l),{canOptimize:!0,matchingKeys:n.rangeQuery(d),isExact:o&&!u,coveredArgIndices:new Set(r.map(e=>e.argIndex))}}}return{canOptimize:!1,matchingKeys:new Set,isExact:!1,coveredArgIndices:new Set}}function Ct(e,t){if(e.type!==`func`||e.args.length!==2)return{canOptimize:!1,matchingKeys:new Set,isExact:!1};let n=e.args[0],r=e.args[1],i=null,a=null,o=e.name;if(n.type===`ref`&&r.type===`val`)i=n,a=r;else if(n.type===`val`&&r.type===`ref`)switch(i=r,a=n,o){case`gt`:o=`lt`;break;case`gte`:o=`lte`;break;case`lt`:o=`gt`;break;case`lte`:o=`gte`}if(i&&a){let e=i.path,n=pt(t,e);if(n){let e=a.value,r=o;return!n.supports(r)||(o===`gt`||o===`gte`||o===`lt`||o===`lte`)&&!yt(e,n,t)?{canOptimize:!1,matchingKeys:new Set,isExact:!1}:{canOptimize:!0,matchingKeys:n.lookup(r,e),isExact:o===`lt`||o===`lte`?!1:gt(e)}}}return{canOptimize:!1,matchingKeys:new Set,isExact:!1}}function wt(e,t){if(e.type!==`func`||e.args.length<2)return{canOptimize:!1,matchingKeys:new Set,isExact:!1};let n=St(e,t),r=n.canOptimize?n.coveredArgIndices:new Set,i=[];n.canOptimize&&i.push(n);let a=!n.canOptimize||n.isExact;for(let[n,o]of e.args.entries()){if(r.has(n))continue;let e=xt(o,t);e.canOptimize?(i.push(e),e.isExact||(a=!1)):a=!1}return i.length>0?{canOptimize:!0,matchingKeys:mt(i.map(e=>e.matchingKeys)),isExact:a}:{canOptimize:!1,matchingKeys:new Set,isExact:!1}}function Tt(e,t){if(e.type!==`func`||e.args.length<2)return{canOptimize:!1,matchingKeys:new Set,isExact:!1};let n=[];for(let r of e.args){let e=xt(r,t);if(!e.canOptimize)return{canOptimize:!1,matchingKeys:new Set,isExact:!1};n.push(e)}return{canOptimize:!0,matchingKeys:ht(n.map(e=>e.matchingKeys)),isExact:n.every(e=>e.isExact)}}function Et(e,t){if(e.type!==`func`||e.args.length!==2)return{canOptimize:!1,matchingKeys:new Set,isExact:!1};let n=e.args[0],r=e.args[1];if(n.type===`ref`&&r.type===`val`&&Array.isArray(r.value)){let e=n.path,i=r.value,a=pt(t,e),o=i.every(e=>gt(e));if(a){if(a.supports(`in`))return{canOptimize:!0,matchingKeys:a.lookup(`in`,i),isExact:o};if(a.supports(`eq`)){let e=new Set;for(let t of i){let n=a.lookup(`eq`,t);for(let t of n)e.add(t)}return{canOptimize:!0,matchingKeys:e,isExact:o}}}}return{canOptimize:!1,matchingKeys:new Set,isExact:!1}}var Dt={enabled:!0,collectionSizeThreshold:1e3,slowQueryThresholdMs:10,onSuggestion:null};function Ot(){return Dt.enabled&&!1}function kt(e){if(Ot()){if(Dt.onSuggestion)try{Dt.onSuggestion(e)}catch{}else console.warn(`[TanStack DB] Index suggestion for "${e.collectionId}":
3
+ ${e.message}
4
+ Field: ${e.fieldPath.join(`.`)}
5
+ Add index: collection.createIndex((row) => row.${e.fieldPath.join(`.`)})`)}}function At(e,t,n){Ot()&&t>Dt.collectionSizeThreshold&&kt({type:`collection-size`,collectionId:e,fieldPath:n,message:`Collection has ${t} items. Queries on "${n.join(`.`)}" may benefit from an index.`,collectionSize:t})}function jt(e){return e.config.autoIndex===`eager`}function Mt(e,t,n,r,i){if(ft(t)||!jt(n))return;let a=r??{...Be,...n.compareOptions};if(!Array.from(n.indexes.values()).find(e=>e.matchesField(t)&&e.matchesCompareOptions(a))){Ot()&&At(n.id||`unknown`,n.size,t);try{n.createIndex(e=>{let n=e;for(let e of t)n=n[e];return n},{name:`auto:${t.join(`.`)}`,options:i?{compareFn:i,compareOptions:a}:{}})}catch(e){console.warn(`${n.id?`[${n.id}] `:``}Failed to create auto-index for field path "${t.join(`.`)}":`,e)}}}function Nt(e,t){if(!jt(t))return;let n=Pt(e);for(let{fieldName:e,fieldPath:r}of n)Mt(e,r,t)}function Pt(e){let t=[];function n(e){if(e.type!==`func`)return;let r=e;if(r.name===`and`){for(let e of r.args)n(e);return}if(![`eq`,`gt`,`gte`,`lt`,`lte`,`in`].includes(r.name)||r.args.length<1||r.args[0].type!==`ref`)return;let i=r.args[0].path;if(i.length===0)return;let a=i.join(`_`);t.push({fieldName:a,fieldPath:i})}return n(e),t}new class{constructor(){this.objectIds=new WeakMap,this.nextId=0}getId(e){if(typeof e!=`object`||!e){let t=String(e),n=0;for(let e=0;e<t.length;e++){let r=t.charCodeAt(e);n=(n<<5)-n+r,n&=n}return n}return this.objectIds.has(e)||this.objectIds.set(e,this.nextId++),this.objectIds.get(e)}getStringId(e){return e===null?`null`:e===void 0?`undefined`:typeof e==`object`?`obj_${this.getId(e)}`:`str_${String(e)}`}};function Ft(e,t){return typeof e==typeof t?e<t?-1:+(e>t):typeof e==`string`?-1:1}function It(e,t){return e.compareOptions.stringSort===void 0?{...t.compareOptions,direction:e.compareOptions.direction,nulls:e.compareOptions.nulls}:e.compareOptions}function Lt(e,t={}){let n=t=>{let n=[];for(let[r,i]of e.entries())(t?.(i)??!0)&&n.push({type:`insert`,key:r,value:i});return n};if(t.limit!==void 0&&!t.orderBy)throw Error(`limit cannot be used without orderBy`);if(t.orderBy){let n=t.where?Rt(t.where):void 0,r=Bt(e,t.orderBy,t.limit,n,t.optimizedOnly);if(r===void 0)return;let i=[];for(let t of r){let n=e.get(t);n!==void 0&&i.push({type:`insert`,key:t,value:n})}return i}if(!t.where)return n();try{let r=t.where,i=bt(r,e);if(i.canOptimize){let t=i.isExact?void 0:Rt(r),n=[];for(let r of i.matchingKeys){let i=e.get(r);i!==void 0&&(t?.(i)??!0)&&n.push({type:`insert`,key:r,value:i})}return n}return t.optimizedOnly?void 0:n(Rt(r))}catch(r){console.warn(`${e.id?`[${e.id}] `:``}Error processing where clause, falling back to full scan:`,r);let i=Rt(t.where);return t.optimizedOnly?void 0:n(i)}}function Rt(e){let t=tt(e);return e=>{try{return $e(t(e))}catch{return!1}}}function zt(e,t){let n=Rt(t.whereExpression);return t=>{let r=[];for(let e of t)if(e.type===`insert`)n(e.value)&&r.push(e);else if(e.type===`update`){let t=n(e.value),i=e.previousValue?n(e.previousValue):!1;t&&i?r.push(e):t&&!i?r.push({...e,type:`insert`}):!t&&i&&r.push({...e,type:`delete`,value:e.previousValue})}else n(e.value)&&r.push(e);(r.length>0||t.length===0)&&e(r)}}function Bt(e,t,n,r,i){if(t.length===1){let i=t[0],a=i.expression;if(a.type===`ref`){let t=a.path,o=It(i,e);Mt(t[0],t,e,o);let s=pt(e,t,o);if(s&&s.supports(`gt`))return s.takeFromStart(n??s.keyCount,t=>{let n=e.get(t);return n===void 0?!1:r?.(n)??!0})}}if(i)return;let a=[];for(let[t,n]of e.entries())(r?.(n)??!0)&&a.push({key:t,value:n});a.sort((e,n)=>{for(let r of t){let t=Ge(r.compareOptions)(Vt(e.value,r.expression),Vt(n.value,r.expression));if(t!==0)return t}return 0});let o=a.map(e=>e.key);return n===void 0?o:o.slice(0,n)}function Vt(e,t){if(t.type===`ref`){let n=t,r=e;for(let e of n.path)r=r?.[e];return r}return t.type===`val`?t.value:tt(t)(e)}var Ht=class{constructor(e){this.map=new Map,this.sortedKeys=[],this.comparator=e}indexOf(e,t){let n=0,r=this.sortedKeys.length;if(!this.comparator){for(;n<r;){let t=Math.floor((n+r)/2),i=this.sortedKeys[t],a=Ft(e,i);if(a<0)r=t;else if(a>0)n=t+1;else return t}return n}for(;n<r;){let i=Math.floor((n+r)/2),a=this.sortedKeys[i],o=this.map.get(a),s=this.comparator(t,o);if(s<0)r=i;else if(s>0)n=i+1;else{let t=Ft(e,a);if(t<0)r=i;else if(t>0)n=i+1;else return i}}return n}set(e,t){if(this.map.has(e)){let t=this.map.get(e),n=this.indexOf(e,t);this.sortedKeys.splice(n,1)}let n=this.indexOf(e,t);return this.sortedKeys.splice(n,0,e),this.map.set(e,t),this}get(e){return this.map.get(e)}delete(e){if(this.map.has(e)){let t=this.map.get(e),n=this.indexOf(e,t);return this.sortedKeys.splice(n,1),this.map.delete(e)}return!1}has(e){return this.map.has(e)}clear(){this.map.clear(),this.sortedKeys=[]}get size(){return this.map.size}*[Symbol.iterator](){for(let e of this.sortedKeys)yield[e,this.map.get(e)]}entries(){return this[Symbol.iterator]()}keys(){return this.sortedKeys[Symbol.iterator]()}values(){return(function*(){for(let e of this.sortedKeys)yield this.map.get(e)}).call(this)}forEach(e){for(let t of this.sortedKeys)e(this.map.get(t),t,this.map)}},Ut=`__tanstack_db_direct`,Wt=class{constructor(e){this.pendingSyncedTransactions=[],this.syncedMetadata=new Map,this.syncedCollectionMetadata=new Map,this.optimisticUpserts=new Map,this.optimisticDeletes=new Set,this.pendingOptimisticUpserts=new Map,this.pendingOptimisticDeletes=new Set,this.pendingOptimisticDirectUpserts=new Set,this.pendingOptimisticDirectDeletes=new Set,this.rowOrigins=new Map,this.pendingLocalChanges=new Set,this.pendingLocalOrigins=new Set,this.virtualPropsCache=new WeakMap,this.size=0,this.syncedKeys=new Set,this.preSyncVisibleState=new Map,this.recentlySyncedKeys=new Set,this.hasReceivedFirstCommit=!1,this.isCommittingSyncTransactions=!1,this.isLocalOnly=!1,this.commitPendingTransactions=()=>{let e=!1;for(let t of this.transactions.values())if(t.state===`persisting`){e=!0;break}let{committedSyncedTransactions:t,uncommittedSyncedTransactions:n,hasTruncateSync:r,hasImmediateSync:i}=this.pendingSyncedTransactions.reduce((e,t)=>(t.committed?(e.committedSyncedTransactions.push(t),t.truncate&&(e.hasTruncateSync=!0),t.immediate&&(e.hasImmediateSync=!0)):e.uncommittedSyncedTransactions.push(t),e),{committedSyncedTransactions:[],uncommittedSyncedTransactions:[],hasTruncateSync:!1,hasImmediateSync:!1});if(!e||r||i){this.isCommittingSyncTransactions=!0;let e=r?t.find(e=>e.truncate)?.optimisticSnapshot:null,i,a,o=new Set;for(let e of t){for(let t of e.operations)o.add(t.key);for(let[t]of e.rowMetadataWrites)o.add(t)}let s=new Set(o);for(let e of this.pendingOptimisticDirectUpserts)s.add(e);for(let e of this.pendingOptimisticDirectDeletes)s.add(e);let c=this.snapshotRowOriginsForKeys(s),l=new Map(this.optimisticUpserts),u=new Set(this.optimisticDeletes),d=this.preSyncVisibleState;if(d.size===0){d=new Map;for(let e of o){let t=this.get(e);t!==void 0&&d.set(e,t)}}let f=[],p=this.config.sync.rowUpdateMode||`partial`,m=new Map;for(let e of this.transactions.values())if(e.state===`completed`)for(let t of e.mutations)this.isThisCollection(t.collection)&&t.optimistic&&m.set(t.key,{type:t.type,value:t.modified});for(let n of t){if(n.truncate){let t=new Set([...this.syncedData.keys(),...e?.upserts.keys()||[]]);for(let n of t){if(e?.deletes.has(n))continue;let t=e?.upserts.get(n)||this.syncedData.get(n);t!==void 0&&f.push({type:`delete`,key:n,value:t})}i=new Set(this.pendingLocalChanges),a=new Set(this.pendingLocalOrigins),this.syncedData.clear(),this.syncedMetadata.clear(),this.syncedKeys.clear(),this.clearOriginTrackingState();for(let e of o)d.delete(e);this._events.emit(`truncate`,{type:`truncate`,collection:this.collection})}for(let e of n.operations){let t=e.key;this.syncedKeys.add(t);let n=this.isLocalOnly||this.pendingLocalChanges.has(t)||this.pendingLocalOrigins.has(t)||i?.has(t)===!0||a?.has(t)===!0?`local`:`remote`;switch(e.type){case`insert`:this.syncedData.set(t,e.value),this.rowOrigins.set(t,n),this.pendingLocalChanges.delete(t),this.pendingLocalOrigins.delete(t),this.pendingOptimisticUpserts.delete(t),this.pendingOptimisticDeletes.delete(t),this.pendingOptimisticDirectUpserts.delete(t),this.pendingOptimisticDirectDeletes.delete(t);break;case`update`:if(p===`partial`){let n=Object.assign({},this.syncedData.get(t),e.value);this.syncedData.set(t,n)}else this.syncedData.set(t,e.value);this.rowOrigins.set(t,n),this.pendingLocalChanges.delete(t),this.pendingLocalOrigins.delete(t),this.pendingOptimisticUpserts.delete(t),this.pendingOptimisticDeletes.delete(t),this.pendingOptimisticDirectUpserts.delete(t),this.pendingOptimisticDirectDeletes.delete(t);break;case`delete`:this.syncedData.delete(t),this.syncedMetadata.delete(t),this.rowOrigins.delete(t),this.pendingLocalChanges.delete(t),this.pendingLocalOrigins.delete(t),this.pendingOptimisticUpserts.delete(t),this.pendingOptimisticDeletes.delete(t),this.pendingOptimisticDirectUpserts.delete(t),this.pendingOptimisticDirectDeletes.delete(t)}}for(let[e,t]of n.rowMetadataWrites){if(t.type===`delete`){this.syncedMetadata.delete(e);continue}this.syncedMetadata.set(e,t.value)}for(let[e,t]of n.collectionMetadataWrites){if(t.type===`delete`){this.syncedCollectionMetadata.delete(e);continue}this.syncedCollectionMetadata.set(e,t.value)}}if(r){let n=new Set;for(let e of t)for(let t of e.operations)(t.type===`insert`||t.type===`update`)&&n.add(t.key);let r=new Map(e.upserts),i=new Set(e.deletes);for(let[e,t]of r)if(!i.has(e)){if(n.has(e)){let n=!1;for(let r=f.length-1;r>=0;r--){let i=f[r];if(i.key===e&&i.type===`insert`){i.value=t,n=!0;break}}n||f.push({type:`insert`,key:e,value:t})}else f.push({type:`insert`,key:e,value:t})}if(f.length>0&&i.size>0){let e=[];for(let t of f)t.type===`insert`&&i.has(t.key)||e.push(t);f.length=0,f.push(...e)}this.lifecycle.status!==`ready`&&this.lifecycle.markReady()}if(this.optimisticUpserts.clear(),this.optimisticDeletes.clear(),this.isCommittingSyncTransactions=!1,r&&e){for(let[t,n]of e.upserts)this.optimisticUpserts.set(t,n);for(let t of e.deletes)this.optimisticDeletes.add(t)}for(let e of this.transactions.values())if(![`completed`,`failed`].includes(e.state)){for(let t of e.mutations)if(this.isThisCollection(t.collection)&&t.optimistic)switch(t.type){case`insert`:case`update`:this.optimisticUpserts.set(t.key,t.modified),this.optimisticDeletes.delete(t.key);break;case`delete`:this.optimisticUpserts.delete(t.key),this.optimisticDeletes.add(t.key)}}for(let e of this.pendingOptimisticDirectUpserts)if(!o.has(e)){if(o.add(e),!d.has(e)){let t=l.get(e);t!==void 0&&d.set(e,t)}this.pendingOptimisticUpserts.delete(e),this.pendingLocalOrigins.delete(e)}for(let e of this.pendingOptimisticDirectDeletes)o.has(e)||o.add(e),this.pendingOptimisticDeletes.delete(e),this.pendingLocalOrigins.delete(e);this.pendingOptimisticDirectUpserts.clear(),this.pendingOptimisticDirectDeletes.clear();for(let e of o){let t=d.get(e),n=this.get(e),r=this.getVirtualPropsSnapshotForState(e,{rowOrigins:c,optimisticUpserts:l,optimisticDeletes:u,completedOptimisticKeys:m}),i=this.getVirtualPropsSnapshotForState(e),a=r.$synced!==i.$synced||r.$origin!==i.$origin,o=t===void 0?void 0:lt(t,e,this.collection.id,()=>r.$synced,()=>r.$origin),s=m.get(e),p=!1;s&&(s.type===`delete`&&t!==void 0&&n===void 0&&L(s.value,t)||n!==void 0&&L(s.value,n))&&(p=!0);let h=a&&t!==void 0&&n!==void 0&&L(t,n);if(!p||h){if(t===void 0&&n!==void 0){let t=m.get(e);if(t){let i=t.value,a=lt(i,e,this.collection.id,()=>r.$synced,()=>r.$origin);f.push({type:`update`,key:e,value:n,previousValue:a})}else f.push({type:`insert`,key:e,value:n})}else t!==void 0&&n===void 0?f.push({type:`delete`,key:e,value:o??t}):t!==void 0&&n!==void 0&&(!L(t,n)||h)&&f.push({type:`update`,key:e,value:n,previousValue:o??t})}}this.size=this.calculateSize(),f.length>0&&this.indexes.updateIndexes(f),this.changes.emitEvents(f,!0),this.pendingSyncedTransactions=n,this.preSyncVisibleState.clear(),Promise.resolve().then(()=>{this.recentlySyncedKeys.clear()}),this.hasReceivedFirstCommit||=!0}},this.config=e,this.transactions=new Ht((e,t)=>e.compareCreatedAt(t)),this.syncedData=new Ht(e.compare)}setDeps(e){this.collection=e.collection,this.lifecycle=e.lifecycle,this.changes=e.changes,this.indexes=e.indexes,this._events=e.events}isRowSynced(e){return this.isLocalOnly?!0:!this.optimisticUpserts.has(e)&&!this.optimisticDeletes.has(e)}getRowOrigin(e){return this.isLocalOnly||this.optimisticUpserts.has(e)||this.optimisticDeletes.has(e)?`local`:this.rowOrigins.get(e)??`remote`}createVirtualPropsSnapshot(e,t){return{$synced:t?.$synced??this.isRowSynced(e),$origin:t?.$origin??this.getRowOrigin(e),$key:t?.$key??e,$collectionId:t?.$collectionId??this.collection.id}}getVirtualPropsSnapshotForState(e,t){if(this.isLocalOnly)return this.createVirtualPropsSnapshot(e,{$synced:!0,$origin:`local`});let n=t?.optimisticUpserts??this.optimisticUpserts,r=t?.optimisticDeletes??this.optimisticDeletes,i=n.has(e)||r.has(e)||t?.completedOptimisticKeys?.has(e)===!0;return this.createVirtualPropsSnapshot(e,{$synced:!i,$origin:i?`local`:(t?.rowOrigins??this.rowOrigins).get(e)??`remote`})}snapshotRowOriginsForKeys(e){let t=new Map;for(let n of e){let e=this.rowOrigins.get(n);e!==void 0&&t.set(n,e)}return t}enrichWithVirtualPropsSnapshot(e,t){let n=e,r=n.$synced??t.$synced,i=n.$origin??t.$origin,a=n.$key??t.$key,o=n.$collectionId??t.$collectionId,s=this.virtualPropsCache.get(e);if(s&&s.synced===r&&s.origin===i&&s.key===a&&s.collectionId===o)return s.enriched;let c={...e,$synced:r,$origin:i,$key:a,$collectionId:o};return this.virtualPropsCache.set(e,{synced:r,origin:i,key:a,collectionId:o,enriched:c}),c}clearOriginTrackingState(){this.rowOrigins.clear(),this.pendingLocalChanges.clear(),this.pendingLocalOrigins.clear()}enrichWithVirtualProps(e,t){return this.enrichWithVirtualPropsSnapshot(e,this.createVirtualPropsSnapshot(t))}enrichChangeMessage(e){let{__virtualProps:t}=e,n=t?.value?this.enrichWithVirtualPropsSnapshot(e.value,t.value):this.enrichWithVirtualProps(e.value,e.key),r=e.previousValue?t?.previousValue?this.enrichWithVirtualPropsSnapshot(e.previousValue,t.previousValue):this.enrichWithVirtualProps(e.previousValue,e.key):void 0;return{key:e.key,type:e.type,value:n,previousValue:r,metadata:e.metadata}}getWithVirtualProps(e){let t=this.get(e);if(t!==void 0)return this.enrichWithVirtualProps(t,e)}get(e){let{optimisticDeletes:t,optimisticUpserts:n,syncedData:r}=this;if(!t.has(e))return n.has(e)?n.get(e):r.get(e)}has(e){let{optimisticDeletes:t,optimisticUpserts:n,syncedData:r}=this;return t.has(e)?!1:n.has(e)?!0:r.has(e)}*keys(){let{syncedData:e,optimisticDeletes:t,optimisticUpserts:n}=this;for(let n of e.keys())t.has(n)||(yield n);for(let r of n.keys())!e.has(r)&&!t.has(r)&&(yield r)}*values(){for(let e of this.keys()){let t=this.get(e);t!==void 0&&(yield t)}}*entries(){for(let e of this.keys()){let t=this.get(e);t!==void 0&&(yield[e,t])}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}forEach(e){let t=0;for(let[n,r]of this.entries())e(r,n,t++)}map(e){let t=[],n=0;for(let[r,i]of this.entries())t.push(e(i,r,n++));return t}isThisCollection(e){return e===this.collection}recomputeOptimisticState(e=!1){if(this.isCommittingSyncTransactions&&!e)return;let t=new Map(this.optimisticUpserts),n=new Set(this.optimisticDeletes),r=this.rowOrigins;for(let e of this.transactions.values()){let t=e.metadata[Ut]===!0;if(e.state===`completed`){for(let n of e.mutations)if(this.isThisCollection(n.collection)&&(this.pendingLocalOrigins.add(n.key),n.optimistic))switch(n.type){case`insert`:case`update`:this.pendingOptimisticUpserts.set(n.key,n.modified),this.pendingOptimisticDeletes.delete(n.key),t?(this.pendingOptimisticDirectUpserts.add(n.key),this.pendingOptimisticDirectDeletes.delete(n.key)):(this.pendingOptimisticDirectUpserts.delete(n.key),this.pendingOptimisticDirectDeletes.delete(n.key));break;case`delete`:this.pendingOptimisticUpserts.delete(n.key),this.pendingOptimisticDeletes.add(n.key),t?(this.pendingOptimisticDirectUpserts.delete(n.key),this.pendingOptimisticDirectDeletes.add(n.key)):(this.pendingOptimisticDirectUpserts.delete(n.key),this.pendingOptimisticDirectDeletes.delete(n.key))}}else if(e.state===`failed`)for(let t of e.mutations)this.isThisCollection(t.collection)&&(this.pendingLocalOrigins.delete(t.key),t.optimistic&&(this.pendingOptimisticUpserts.delete(t.key),this.pendingOptimisticDeletes.delete(t.key),this.pendingOptimisticDirectUpserts.delete(t.key),this.pendingOptimisticDirectDeletes.delete(t.key)))}this.optimisticUpserts.clear(),this.optimisticDeletes.clear(),this.pendingLocalChanges.clear();let i=new Set;for(let e of this.pendingSyncedTransactions)for(let t of e.operations)i.add(t.key);let a=[];for(let[e,t]of this.pendingOptimisticUpserts)i.has(e)||this.pendingOptimisticDirectUpserts.has(e)?this.optimisticUpserts.set(e,t):a.push(e);for(let e of a)this.pendingOptimisticUpserts.delete(e),this.pendingLocalOrigins.delete(e);let o=[];for(let e of this.pendingOptimisticDeletes)i.has(e)||this.pendingOptimisticDirectDeletes.has(e)?this.optimisticDeletes.add(e):o.push(e);for(let e of o)this.pendingOptimisticDeletes.delete(e),this.pendingLocalOrigins.delete(e);let s=[];for(let e of this.transactions.values())[`completed`,`failed`].includes(e.state)||s.push(e);for(let e of s)for(let t of e.mutations)if(this.isThisCollection(t.collection)&&(this.pendingLocalChanges.add(t.key),t.optimistic))switch(t.type){case`insert`:case`update`:this.optimisticUpserts.set(t.key,t.modified),this.optimisticDeletes.delete(t.key);break;case`delete`:this.optimisticUpserts.delete(t.key),this.optimisticDeletes.add(t.key)}this.size=this.calculateSize();let c=[];this.collectOptimisticChanges(t,n,r,c);let l=c.filter(t=>!(this.recentlySyncedKeys.has(t.key)&&!e));if(this.pendingSyncedTransactions.length>0&&!e){let t=new Set;for(let e of this.pendingSyncedTransactions)for(let n of e.operations)t.add(n.key);let n=l.filter(e=>!(e.type===`delete`&&t.has(e.key)&&!s.some(t=>t.mutations.some(t=>this.isThisCollection(t.collection)&&t.key===e.key))));n.length>0&&this.indexes.updateIndexes(n),this.changes.emitEvents(n,e)}else l.length>0&&this.indexes.updateIndexes(l),this.changes.emitEvents(l,e)}calculateSize(){let e=this.syncedData.size,t=Array.from(this.optimisticDeletes).filter(e=>this.syncedData.has(e)&&!this.optimisticUpserts.has(e)).length,n=Array.from(this.optimisticUpserts.keys()).filter(e=>!this.syncedData.has(e)).length;return e-t+n}collectOptimisticChanges(e,t,n,r){let i=new Set([...e.keys(),...this.optimisticUpserts.keys(),...t,...this.optimisticDeletes]);for(let a of i){let i=this.get(a),o=this.getPreviousValue(a,e,t),s=this.getVirtualPropsSnapshotForState(a,{rowOrigins:n,optimisticUpserts:e,optimisticDeletes:t}),c=this.getVirtualPropsSnapshotForState(a);o!==void 0&&i===void 0?r.push({type:`delete`,key:a,value:o,__virtualProps:{value:s}}):o===void 0&&i!==void 0?r.push({type:`insert`,key:a,value:i,__virtualProps:{value:c}}):o!==void 0&&i!==void 0&&o!==i&&r.push({type:`update`,key:a,value:i,previousValue:o,__virtualProps:{value:c,previousValue:s}})}}getPreviousValue(e,t,n){if(!n.has(e))return t.has(e)?t.get(e):this.syncedData.get(e)}scheduleTransactionCleanup(e){if(e.state===`completed`){this.transactions.delete(e.id);return}e.isPersisted.promise.then(()=>{this.transactions.delete(e.id)}).catch(()=>{})}capturePreSyncVisibleState(){if(this.pendingSyncedTransactions.length===0)return;let e=new Set;for(let t of this.pendingSyncedTransactions)for(let n of t.operations)e.add(n.key);for(let t of e)this.recentlySyncedKeys.add(t);for(let t of e)if(!this.preSyncVisibleState.has(t)){let e=this.get(t);e!==void 0&&this.preSyncVisibleState.set(t,e)}}onTransactionStateChange(){this.changes.shouldBatchEvents=this.pendingSyncedTransactions.length>0,this.capturePreSyncVisibleState(),this.recomputeOptimisticState(!1)}cleanup(){this.syncedData.clear(),this.syncedMetadata.clear(),this.syncedCollectionMetadata.clear(),this.optimisticUpserts.clear(),this.optimisticDeletes.clear(),this.pendingOptimisticUpserts.clear(),this.pendingOptimisticDeletes.clear(),this.pendingOptimisticDirectUpserts.clear(),this.pendingOptimisticDirectDeletes.clear(),this.clearOriginTrackingState(),this.isLocalOnly=!1,this.size=0,this.pendingSyncedTransactions=[],this.syncedKeys.clear(),this.hasReceivedFirstCommit=!1}};function Gt(){let e=new Map;function t(n){let r=n.join(`.`);if(e.has(r))return e.get(r);let i=new Proxy({},{get(e,r,i){if(r===`__refProxy`)return!0;if(r===`__path`)return n;if(r!==`__type`)return typeof r==`symbol`?Reflect.get(e,r,i):t([...n,String(r)])},has(e,t){return t===`__refProxy`||t===`__path`||t===`__type`||Reflect.has(e,t)},ownKeys(e){return Reflect.ownKeys(e)},getOwnPropertyDescriptor(e,t){return t===`__refProxy`||t===`__path`||t===`__type`?{enumerable:!1,configurable:!0}:Reflect.getOwnPropertyDescriptor(e,t)}});return e.set(r,i),i}return t([])}function H(e){if(Kt(e))return new O(e.__path);if(e&&typeof e==`object`&&(e.__brand===`ToArrayWrapper`||e.__brand===`ConcatToArrayWrapper`||e.__brand===`CaseWhenWrapper`||e.__brand===`MaterializeWrapper`)){let t=e.__brand===`ToArrayWrapper`?`toArray()`:e.__brand===`ConcatToArrayWrapper`?`concat(toArray())`:e.__brand===`CaseWhenWrapper`?`caseWhen()`:`materialize()`;throw Error(`${t} cannot be used inside expressions (e.g., coalesce(), eq(), not()). Use ${t} directly as a select field value instead.`)}return e&&typeof e==`object`&&`type`in e&&(e.type===`func`||e.type===`ref`||e.type===`val`||e.type===`agg`)?e:new k(e)}function Kt(e){return e&&typeof e==`object`&&e.__refProxy===!0}function qt(e,t){return new ne(`eq`,[H(e),H(t)])}function Jt(e,t){return new ne(`gt`,[H(e),H(t)])}function Yt(e,t){return new ne(`gte`,[H(e),H(t)])}function Xt(e,t){return new ne(`lt`,[H(e),H(t)])}function Zt(e,t,...n){return new ne(`and`,[e,t,...n].map(e=>H(e)))}function Qt(e,t,...n){return new ne(`or`,[e,t,...n].map(e=>H(e)))}var $t=class{constructor(){this.listeners=new Map}on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),()=>{this.listeners.get(e)?.delete(t)}}once(e,t){let n=this.on(e,e=>{t(e),n()});return n}off(e,t){this.listeners.get(e)?.delete(t)}waitFor(e,t){return new Promise((n,r)=>{let i,a=this.on(e,e=>{i&&=(clearTimeout(i),void 0),n(e),a()});t&&(i=setTimeout(()=>{i=void 0,a(),r(Error(`Timeout waiting for event ${String(e)}`))},t))})}emitInner(e,t){this.listeners.get(e)?.forEach(e=>{try{e(t)}catch(e){queueMicrotask(()=>{throw e})}})}clearListeners(){this.listeners.clear()}};function en(e,t){if(t.length===0||e.length===0)return;if(e.length===1){let{expression:n,compareOptions:r}=e[0];return(r.direction===`asc`?Jt:Xt)(n,new k(t[0]))}let n=[];for(let r=0;r<e.length&&r<t.length;r++){let i=e[r],a=t[r],o=[];for(let n=0;n<r;n++){let r=e[n],i=t[n];o.push(qt(r.expression,new k(i)))}let s=(i.compareOptions.direction===`asc`?Jt:Xt)(i.expression,new k(a));if(o.length===0)n.push(s);else{let e=[...o,s];n.push(e.reduce((e,t)=>Zt(e,t)))}}return n.length===1?n[0]:n.reduce((e,t)=>Qt(e,t))}var tn=class extends $t{constructor(e,t,n){super(),this.collection=e,this.callback=t,this.options=n,this.loadedInitialState=!1,this.skipFiltering=!1,this.snapshotSent=!1,this.loadedSubsets=[],this.sentKeys=new Set,this.limitedSnapshotRowCount=0,this._status=`ready`,this.pendingLoadSubsetPromises=new Set,this.isBufferingForTruncate=!1,this.truncateBuffer=[],this.pendingTruncateRefetches=new Set,n.onUnsubscribe&&this.on(`unsubscribed`,e=>n.onUnsubscribe(e)),n.whereExpression&&Nt(n.whereExpression,this.collection);let r=e=>{t(e),this.trackSentKeys(e)};this.callback=r,this.filteredCallback=n.whereExpression?zt(this.callback,n):this.callback,this.truncateCleanup=this.collection.on(`truncate`,()=>{this.handleTruncate()})}get status(){return this._status}handleTruncate(){let e=[...this.loadedSubsets],t=this.collection._sync.syncLoadSubsetFn!==null;if(e.length===0||!t){this.snapshotSent=!1,this.loadedInitialState=!1,this.limitedSnapshotRowCount=0,this.lastSentKey=void 0,this.loadedSubsets=[];return}this.isBufferingForTruncate=!0,this.truncateBuffer=[],this.pendingTruncateRefetches.clear(),this.snapshotSent=!1,this.loadedInitialState=!1,this.limitedSnapshotRowCount=0,this.lastSentKey=void 0,this.loadedSubsets=[],queueMicrotask(()=>{if(this.isBufferingForTruncate){for(let t of e){let e=this.collection._sync.loadSubset(t);this.loadedSubsets.push(t),this.trackLoadSubsetPromise(e),e instanceof Promise&&(this.pendingTruncateRefetches.add(e),e.catch(()=>{}).finally(()=>{this.pendingTruncateRefetches.delete(e),this.checkTruncateRefetchComplete()}))}this.pendingTruncateRefetches.size===0&&this.flushTruncateBuffer()}})}checkTruncateRefetchComplete(){this.pendingTruncateRefetches.size===0&&this.isBufferingForTruncate&&this.flushTruncateBuffer()}flushTruncateBuffer(){this.isBufferingForTruncate=!1;let e=this.truncateBuffer.flat();e.length>0&&this.filteredCallback(e),this.truncateBuffer=[]}setOrderByIndex(e){this.orderByIndex=e}hasOrderByIndex(){return this.orderByIndex!==void 0}setStatus(e){if(this._status===e)return;let t=this._status;this._status=e,this.emitInner(`status:change`,{type:`status:change`,subscription:this,previousStatus:t,status:e});let n=`status:${e}`;this.emitInner(n,{type:n,subscription:this,previousStatus:t,status:e})}trackLoadSubsetPromise(e){e instanceof Promise&&(this.pendingLoadSubsetPromises.add(e),this.setStatus(`loadingSubset`),e.finally(()=>{this.pendingLoadSubsetPromises.delete(e),this.pendingLoadSubsetPromises.size===0&&this.setStatus(`ready`)}))}hasLoadedInitialState(){return this.loadedInitialState}hasSentAtLeastOneSnapshot(){return this.snapshotSent}emitEvents(e){let t=this.filterAndFlipChanges(e);this.isBufferingForTruncate?t.length>0&&this.truncateBuffer.push(t):this.filteredCallback(t)}requestSnapshot(e){if(this.loadedInitialState)return!1;let t={where:this.options.whereExpression,optimizedOnly:e?.optimizedOnly??!1};if(e){if(`where`in e){let n=e.where;if(t.where){let e=t.where;t.where=Zt(e,n)}else t.where=n}}else this.loadedInitialState=!0;let n={where:t.where,subscription:this,orderBy:e?.orderBy,limit:e?.limit},r=this.collection._sync.loadSubset(n);e?.onLoadSubsetResult?.(r),this.loadedSubsets.push(n),(e?.trackLoadSubsetPromise??!0)&&this.trackLoadSubsetPromise(r);let i=this.collection.currentStateAsChanges(t);if(i===void 0)return!1;let a=i.filter(e=>!this.sentKeys.has(e.key));for(let e of a)this.sentKeys.add(e.key);return this.snapshotSent=!0,this.callback(a),!0}requestLimitedSnapshot({orderBy:e,limit:t,minValues:n,offset:r,trackLoadSubsetPromise:i=!0,onLoadSubsetResult:a}){if(!t)throw Error(`limit is required`);if(!this.orderByIndex)throw Error(`Ordered snapshot was requested but no index was found. You have to call setOrderByIndex before requesting an ordered snapshot.`);let o=n!==void 0&&n.length>0,s=n?.[0],c=this.orderByIndex,l=this.options.whereExpression,u=l?Rt(l):void 0,d=e=>{if(e!==void 0&&this.sentKeys.has(e))return!1;let t=this.collection.get(e);return t===void 0?!1:u?.(t)??!0},f=s,p=[],m=[];if(o){let{expression:n}=e[0],r=this.collection.currentStateAsChanges({where:qt(n,new k(s))});if(r){let e=r.map(e=>e.key).filter(e=>!this.sentKeys.has(e)&&d(e));m.push(...e);let n=c.take(t-m.length,s,d);m.push(...n)}else m=c.take(t,s,d)}else m=c.takeFromStart(t,d);let h=()=>Math.max(t-p.length,0),g=()=>m.length===0,_=e[0].expression,v=_.type===`ref`?et(new O(_.path),!0):null;for(;h()>0&&!g();){let e=new Set;for(let t of m){let n=this.collection.get(t);p.push({type:`insert`,key:t,value:n}),f=v?v(n):n,e.add(t)}m=c.take(h(),f,d)}let y=this.limitedSnapshotRowCount;for(let e of p)this.sentKeys.add(e.key);this.callback(p),this.limitedSnapshotRowCount+=p.length,p.length>0&&(this.lastSentKey=p[p.length-1].key);let b;if(n!==void 0&&n.length>0){let t=en(e,n);if(t){let{expression:r}=e[0],i=n[0],a;if(i instanceof Date){let e=new Date(i.getTime()+1);a=Zt(Yt(r,new k(i)),Xt(r,new k(e)))}else a=qt(r,new k(i));b={whereFrom:t,whereCurrent:a,lastKey:this.lastSentKey}}}let x={where:l,limit:t,orderBy:e,cursor:b,offset:r??y,subscription:this},S=this.collection._sync.loadSubset(x);a?.(S),this.loadedSubsets.push(x),i&&this.trackLoadSubsetPromise(S)}filterAndFlipChanges(e){if(this.loadedInitialState||this.skipFiltering)return e;let t=this.isBufferingForTruncate,n=[];for(let r of e){let e=r;if(!this.sentKeys.has(r.key)){if(r.type===`update`)e={...r,type:`insert`,previousValue:void 0};else if(r.type===`delete`&&!t)continue;this.sentKeys.add(r.key)}else if(r.type===`insert`)continue;else r.type===`delete`&&this.sentKeys.delete(r.key);n.push(e)}return n}trackSentKeys(e){if(!(this.loadedInitialState||this.skipFiltering)){for(let t of e)t.type===`delete`?this.sentKeys.delete(t.key):this.sentKeys.add(t.key);this.orderByIndex&&(this.limitedSnapshotRowCount=Math.max(this.limitedSnapshotRowCount,this.sentKeys.size))}}markAllStateAsSeen(){this.skipFiltering=!0}unsubscribe(){this.truncateCleanup?.(),this.truncateCleanup=void 0,this.isBufferingForTruncate=!1,this.truncateBuffer=[],this.pendingTruncateRefetches.clear();for(let e of this.loadedSubsets)this.collection._sync.unloadSubset(e);this.loadedSubsets=[],this.emitInner(`unsubscribed`,{type:`unsubscribed`,subscription:this}),this.clearListeners()}},nn=class{constructor(){this.activeSubscribersCount=0,this.changeSubscriptions=new Set,this.batchedEvents=[],this.shouldBatchEvents=!1}setDeps(e){this.lifecycle=e.lifecycle,this.sync=e.sync,this.events=e.events,this.collection=e.collection,this.state=e.state}emitEmptyReadyEvent(){for(let e of this.changeSubscriptions)e.emitEvents([])}enrichChangeWithVirtualProps(e){return this.state.enrichChangeMessage(e)}emitEvents(e,t=!1){if(this.shouldBatchEvents&&!t){this.batchedEvents.push(...e);return}let n=e;if(t&&(this.batchedEvents.length>0&&(n=[...this.batchedEvents,...e]),this.batchedEvents=[],this.shouldBatchEvents=!1),n.length===0)return;let r=n.map(e=>this.enrichChangeWithVirtualProps(e));for(let e of this.changeSubscriptions)e.emitEvents(r)}subscribeChanges(e,t={}){if(this.addSubscriber(),t.where&&t.whereExpression)throw Error(`Cannot specify both 'where' and 'whereExpression' options. Use one or the other.`);let{where:n,...r}=t,i=r.whereExpression;n&&(i=H(n(Gt())));let a=new tn(this.collection,e,{...r,whereExpression:i,onUnsubscribe:()=>{this.removeSubscriber(),this.changeSubscriptions.delete(a)}});return t.onStatusChange&&a.on(`status:change`,t.onStatusChange),t.includeInitialState?a.requestSnapshot({trackLoadSubsetPromise:!1,orderBy:t.orderBy,limit:t.limit,onLoadSubsetResult:t.onLoadSubsetResult}):t.includeInitialState===!1&&a.markAllStateAsSeen(),this.changeSubscriptions.add(a),a}addSubscriber(){let e=this.activeSubscribersCount;this.activeSubscribersCount++,this.lifecycle.cancelGCTimer(),(this.lifecycle.status===`cleaned-up`||this.lifecycle.status===`idle`)&&this.sync.startSync(),this.events.emitSubscribersChange(this.activeSubscribersCount,e)}removeSubscriber(){let e=this.activeSubscribersCount;if(this.activeSubscribersCount--,this.activeSubscribersCount===0)this.lifecycle.startGCTimer();else if(this.activeSubscribersCount<0)throw new pe;this.events.emitSubscribersChange(this.activeSubscribersCount,e)}cleanup(){this.batchedEvents=[],this.shouldBatchEvents=!1}},rn=e=>setTimeout(()=>{e({didTimeout:!0,timeRemaining:()=>50})},0),an=e=>{clearTimeout(e)},on=typeof window<`u`&&`requestIdleCallback`in window?(e,t)=>window.requestIdleCallback(e,t):(e,t)=>rn(e),sn=typeof window<`u`&&`cancelIdleCallback`in window?e=>window.cancelIdleCallback(e):an,cn=class e{constructor(){this.tasks=new Map,this.timeoutId=null,this.microtaskScheduled=!1}static getInstance(){return e.instance||=new e,e.instance}schedule(e,t,n){let r=Date.now()+t;this.tasks.set(e,{executeAt:r,callback:n}),this.microtaskScheduled||(this.microtaskScheduled=!0,Promise.resolve().then(()=>{this.microtaskScheduled=!1,this.updateTimeout()}))}cancel(e){this.tasks.delete(e)}updateTimeout(){if(this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null),this.tasks.size===0)return;let e=1/0;for(let t of this.tasks.values())t.executeAt<e&&(e=t.executeAt);let t=Math.max(0,e-Date.now());this.timeoutId=setTimeout(()=>this.process(),t)}process(){this.timeoutId=null;let e=Date.now();for(let[t,n]of this.tasks.entries())if(e>=n.executeAt){this.tasks.delete(t);try{n.callback()}catch(e){console.error(`Error in CleanupQueue task:`,e)}}this.tasks.size>0&&this.updateTimeout()}static resetInstance(){e.instance&&=(e.instance.timeoutId!==null&&clearTimeout(e.instance.timeoutId),null)}};cn.instance=null;var ln=cn,un=class{constructor(e,t){this.status=`idle`,this.hasBeenReady=!1,this.hasReceivedFirstCommit=!1,this.onFirstReadyCallbacks=[],this.idleCallbackId=null,this.config=e,this.id=t}setDeps(e){this.indexes=e.indexes,this.events=e.events,this.changes=e.changes,this.sync=e.sync,this.state=e.state}validateStatusTransition(e,t){if(e!==t&&!{idle:[`loading`,`error`,`cleaned-up`],loading:[`ready`,`error`,`cleaned-up`],ready:[`cleaned-up`,`error`],error:[`cleaned-up`,`idle`],"cleaned-up":[`loading`,`error`]}[e].includes(t))throw new de(e,t,this.id)}setStatus(e,t=!1){if(e===`ready`&&!t)throw new ue(`You can't directly call "setStatus('ready'). You must use markReady instead.`);this.validateStatusTransition(this.status,e);let n=this.status;this.status=e,this.events.emitStatusChange(e,n)}validateCollectionUsable(e){switch(this.status){case`error`:throw new j(e,this.id);case`cleaned-up`:this.sync.startSync()}}markReady(){if(this.validateStatusTransition(this.status,`ready`),this.status===`loading`){if(this.setStatus(`ready`,!0),!this.hasBeenReady){this.hasBeenReady=!0,this.hasReceivedFirstCommit||=!0;let e=[...this.onFirstReadyCallbacks];this.onFirstReadyCallbacks=[],e.forEach(e=>e())}this.changes.changeSubscriptions.size>0&&this.changes.emitEmptyReadyEvent()}}startGCTimer(){let e=this.config.gcTime??3e5;e<=0||!Number.isFinite(e)||ln.getInstance().schedule(this,e,()=>{this.changes.activeSubscribersCount===0&&this.scheduleIdleCleanup()})}cancelGCTimer(){ln.getInstance().cancel(this),this.idleCallbackId!==null&&(sn(this.idleCallbackId),this.idleCallbackId=null)}scheduleIdleCleanup(){this.idleCallbackId!==null&&sn(this.idleCallbackId),this.idleCallbackId=on(e=>{this.changes.activeSubscribersCount===0?this.performCleanup(e)&&(this.idleCallbackId=null):this.idleCallbackId=null},{timeout:1e3})}performCleanup(e){if(!e||e.timeRemaining()>0||e.didTimeout){this.sync.cleanup(),this.state.cleanup(),this.changes.cleanup(),this.indexes.cleanup(),ln.getInstance().cancel(this),this.hasBeenReady=!1;let e=[...this.onFirstReadyCallbacks];return this.onFirstReadyCallbacks=[],e.forEach(e=>{try{e()}catch(e){console.error(`${this.config.id?`[${this.config.id}] `:``}Error in onFirstReady callback during cleanup:`,e)}}),this.setStatus(`cleaned-up`),this.events.cleanup(),!0}return this.scheduleIdleCleanup(),!1}onFirstReady(e){if(this.hasBeenReady){e();return}this.onFirstReadyCallbacks.push(e)}cleanup(){this.idleCallbackId!==null&&(sn(this.idleCallbackId),this.idleCallbackId=null),this.performCleanup()}},dn=Symbol(`liveQueryInternal`),fn=class{constructor(e,t){this.preloadPromise=null,this.syncCleanupFn=null,this.syncLoadSubsetFn=null,this.syncUnloadSubsetFn=null,this.pendingLoadSubsetPromises=new Set,this.config=e,this.id=t,this.syncMode=e.syncMode??`eager`}setDeps(e){this.collection=e.collection,this.state=e.state,this.lifecycle=e.lifecycle,this._events=e.events}startSync(){if(this.lifecycle.status===`idle`||this.lifecycle.status===`cleaned-up`){this.lifecycle.setStatus(`loading`);try{let e=pn(this.config.sync.sync({collection:this.collection,begin:e=>{this.state.pendingSyncedTransactions.push({committed:!1,operations:[],deletedKeys:new Set,rowMetadataWrites:new Map,collectionMetadataWrites:new Map,immediate:e?.immediate})},write:e=>{let t=this.state.pendingSyncedTransactions[this.state.pendingSyncedTransactions.length-1];if(!t)throw new ke;if(t.committed)throw new Ae;let n;n=`key`in e?e.key:this.config.getKey(e.value),this.state.pendingLocalChanges.has(n)&&this.state.pendingLocalOrigins.add(n);let r=e.type;if(e.type===`insert`){let i=this.state.syncedData.has(n),a=t.deletedKeys.has(n),o=t.truncate===!0;if(i&&!a&&!o){let t=this.state.syncedData.get(n);if(t!==void 0&&L(t,e.value))r=`update`;else{let e=this.config.utils?.[dn];throw new _e(n,this.id,{hasCustomGetKey:e?.hasCustomGetKey??!1,hasJoins:e?.hasJoins??!1,hasDistinct:e?.hasDistinct??!1})}}}let i={...e,type:r,key:n};t.operations.push(i),r===`delete`?(t.deletedKeys.add(n),t.rowMetadataWrites.set(n,{type:`delete`})):r===`insert`?i.metadata===void 0?t.rowMetadataWrites.set(n,{type:`delete`}):t.rowMetadataWrites.set(n,{type:`set`,value:i.metadata}):i.metadata!==void 0&&t.rowMetadataWrites.set(n,{type:`set`,value:i.metadata})},commit:()=>{let e=this.state.pendingSyncedTransactions[this.state.pendingSyncedTransactions.length-1];if(!e)throw new je;if(e.committed)throw new Me;e.committed=!0,this.state.commitPendingTransactions()},markReady:()=>{this.lifecycle.markReady()},truncate:()=>{let e=this.state.pendingSyncedTransactions[this.state.pendingSyncedTransactions.length-1];if(!e)throw new ke;if(e.committed)throw new Ae;e.operations=[],e.deletedKeys.clear(),e.rowMetadataWrites.clear(),e.truncate=!0,e.optimisticSnapshot={upserts:new Map(this.state.optimisticUpserts),deletes:new Set(this.state.optimisticDeletes)}},metadata:this.createSyncMetadataApi()}));if(this.syncCleanupFn=e?.cleanup??null,this.syncLoadSubsetFn=e?.loadSubset??null,this.syncUnloadSubsetFn=e?.unloadSubset??null,this.syncMode===`on-demand`&&!this.syncLoadSubsetFn)throw new ae(`Collection "${this.id}" is configured with syncMode "on-demand" but the sync function did not return a loadSubset handler. Either provide a loadSubset handler or use syncMode "eager".`)}catch(e){throw this.lifecycle.setStatus(`error`),e}}}getActivePendingSyncTransaction(){let e=this.state.pendingSyncedTransactions[this.state.pendingSyncedTransactions.length-1];if(!e)throw new ke;if(e.committed)throw new Ae;return e}createSyncMetadataApi(){return{row:{get:e=>{let t=this.state.pendingSyncedTransactions[this.state.pendingSyncedTransactions.length-1],n=t?.rowMetadataWrites.get(e);if(n)return n.type===`delete`?void 0:n.value;if(!t?.truncate)return this.state.syncedMetadata.get(e)},set:(e,t)=>{this.getActivePendingSyncTransaction().rowMetadataWrites.set(e,{type:`set`,value:t})},delete:e=>{this.getActivePendingSyncTransaction().rowMetadataWrites.set(e,{type:`delete`})}},collection:{get:e=>{let t=this.state.pendingSyncedTransactions[this.state.pendingSyncedTransactions.length-1]?.collectionMetadataWrites.get(e);return t?t.type===`delete`?void 0:t.value:this.state.syncedCollectionMetadata.get(e)},set:(e,t)=>{this.getActivePendingSyncTransaction().collectionMetadataWrites.set(e,{type:`set`,value:t})},delete:e=>{this.getActivePendingSyncTransaction().collectionMetadataWrites.set(e,{type:`delete`})},list:e=>{let t=new Map(this.state.syncedCollectionMetadata),n=this.state.pendingSyncedTransactions[this.state.pendingSyncedTransactions.length-1];if(n)for(let[e,r]of n.collectionMetadataWrites)r.type===`delete`?t.delete(e):t.set(e,r.value);return Array.from(t.entries()).filter(([t])=>!e||t.startsWith(e)).map(([e,t])=>({key:e,value:t}))}}}}preload(){return this.preloadPromise?this.preloadPromise:(this.syncMode===`on-demand`&&console.warn(`${this.id?`[${this.id}] `:``}Calling .preload() on a collection with syncMode "on-demand" is a no-op. In on-demand mode, data is only loaded when queries request it. Instead, create a live query and call .preload() on that to load the specific data you need. See https://tanstack.com/blog/tanstack-db-0.5-query-driven-sync for more details.`),this.preloadPromise=new Promise((e,t)=>{if(this.lifecycle.status===`ready`){e();return}if(this.lifecycle.status===`error`){t(new fe);return}if(this.lifecycle.onFirstReady(()=>{e()}),this.lifecycle.status===`idle`||this.lifecycle.status===`cleaned-up`)try{this.startSync()}catch(e){t(e);return}}),this.preloadPromise)}get isLoadingSubset(){return this.pendingLoadSubsetPromises.size>0}trackLoadPromise(e){let t=!this.isLoadingSubset;this.pendingLoadSubsetPromises.add(e),t&&this._events.emit(`loadingSubset:change`,{type:`loadingSubset:change`,collection:this.collection,isLoadingSubset:!0,previousIsLoadingSubset:!1,loadingSubsetTransition:`start`}),e.finally(()=>{let t=this.pendingLoadSubsetPromises.size===1&&this.pendingLoadSubsetPromises.has(e);this.pendingLoadSubsetPromises.delete(e),t&&this._events.emit(`loadingSubset:change`,{type:`loadingSubset:change`,collection:this.collection,isLoadingSubset:!1,previousIsLoadingSubset:!0,loadingSubsetTransition:`end`})})}loadSubset(e){if(this.syncMode===`eager`)return!0;if(this.syncLoadSubsetFn){let t=this.syncLoadSubsetFn(e);if(t instanceof Promise)return this.trackLoadPromise(t),t}return!0}unloadSubset(e){this.syncUnloadSubsetFn&&this.syncUnloadSubsetFn(e)}cleanup(){try{this.syncCleanupFn&&=(this.syncCleanupFn(),null)}catch(e){queueMicrotask(()=>{if(e instanceof Error){let t=new Le(this.id,e);throw t.cause=e,t.stack=e.stack,t}throw new Le(this.id,e)})}this.preloadPromise=null}};function pn(e){if(typeof e==`function`)return{cleanup:e};if(typeof e==`object`)return e}var mn=1;function hn(e,t){return e===t?0:e<t?-1:1}function gn(e){return{kind:`constructor`,...e.name?{name:e.name}:{}}}function _n(e){if(e==null)return e;switch(typeof e){case`string`:case`boolean`:return e;case`number`:return Number.isFinite(e)?e:null;case`bigint`:return{__type:`bigint`,value:e.toString()};case`function`:case`symbol`:return;case`undefined`:return}if(Array.isArray(e))return e.map(e=>_n(e)??null);if(e instanceof Date)return{__type:`date`,value:e.toISOString()};if(e instanceof Set)return{__type:`set`,values:Array.from(e).map(e=>_n(e)??null).sort((e,t)=>hn(vn(e),vn(t)))};if(e instanceof Map)return{__type:`map`,entries:Array.from(e.entries()).map(([e,t])=>({key:_n(e)??null,value:_n(t)??null})).sort((e,t)=>hn(vn(e.key),vn(t.key)))};if(e instanceof RegExp)return{__type:`regexp`,value:e.toString()};let t={},n=Object.entries(e).sort(([e],[t])=>hn(e,t));for(let[e,r]of n){let n=_n(r);n!==void 0&&(t[e]=n)}return t}function vn(e){return e===null?`null`:Array.isArray(e)?`[${e.map(vn).join(`,`)}]`:typeof e==`object`?`{${Object.keys(e).sort((e,t)=>hn(e,t)).map(t=>`${JSON.stringify(t)}:${vn(e[t])}`).join(`,`)}}`:JSON.stringify(e)}function yn(e,t,n,r,i){let a=gn(r),o=_n(t)??null,s=_n(i);return{signatureVersion:mn,signature:vn(_n({signatureVersion:mn,expression:o,options:s??null})??null),indexId:e,name:n,expression:t,resolver:a,...s===void 0?{}:{options:s}}}function bn(e){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(e=>bn(e));let t={};for(let[n,r]of Object.entries(e))t[n]=bn(r);return t}function xn(e){return JSON.parse(JSON.stringify(e))}var Sn=class{constructor(){this.indexes=new Map,this.indexMetadata=new Map,this.indexCounter=0}setDeps(e){this.state=e.state,this.lifecycle=e.lifecycle,this.defaultIndexType=e.defaultIndexType,this.events=e.events}createIndex(e,t={}){this.lifecycle.validateCollectionUsable(`createIndex`);let n=++this.indexCounter,r=H(e(Gt())),i=t.indexType??this.defaultIndexType;if(!i)throw new ae(`No index type specified and no defaultIndexType set on collection. Either pass indexType in config, or set defaultIndexType on the collection:
6
+ import { BasicIndex } from '@tanstack/db'
7
+ createCollection({ defaultIndexType: BasicIndex, ... })`);let a=new i(n,r,t.name,t.options);a.build(this.state.entries()),this.indexes.set(n,a);let o=yn(n,r,t.name,i,t.options);return this.indexMetadata.set(n,o),this.events.emitIndexAdded(o),a}removeIndex(e){this.lifecycle.validateCollectionUsable(`removeIndex`);let t=typeof e==`number`?e:e.id,n=this.indexes.get(t);if(!n||typeof e!=`number`&&n!==e)return!1;this.indexes.delete(t);let r=this.indexMetadata.get(t);return this.indexMetadata.delete(t),r&&this.events.emitIndexRemoved(r),!0}getIndexMetadataSnapshot(){return Array.from(this.indexMetadata.values()).sort((e,t)=>e.indexId-t.indexId).map(e=>({...e,expression:xn(e.expression),resolver:{...e.resolver},...e.options===void 0?{}:{options:bn(e.options)}}))}updateIndexes(e){for(let t of this.indexes.values())for(let n of e)switch(n.type){case`insert`:t.add(n.key,n.value);break;case`update`:n.previousValue?t.update(n.key,n.previousValue,n.value):t.add(n.key,n.value);break;case`delete`:t.remove(n.key,n.value)}}cleanup(){this.indexes.clear(),this.indexMetadata.clear()}},Cn=new Set([`find`,`findLast`,`findIndex`,`findLastIndex`,`filter`,`map`,`flatMap`,`forEach`,`some`,`every`,`reduce`,`reduceRight`]),wn=new Set([`pop`,`push`,`shift`,`unshift`,`splice`,`sort`,`reverse`,`fill`,`copyWithin`]),Tn=new Set([`set`,`delete`,`clear`,`add`]),En=new Set([`entries`,`keys`,`values`,`forEach`]);function Dn(e){return typeof e==`object`&&!!e&&!(e instanceof Date)&&!(e instanceof RegExp)&&!R(e)}function On(e,t,n,r){if(Cn.has(e))return function(...i){let a=i[0];if(typeof a!=`function`)return t.apply(n.copy_,i);let o=(e,t)=>{if(Dn(e)){let{proxy:i}=r(e,{tracker:n,prop:String(t)});return i}return e},s=function(e,t,n){let r=o(e,t);return a.call(this,r,t,n)};if(e===`reduce`||e===`reduceRight`)return t.apply(n.copy_,[function(e,t,n,r){let i=o(t,n);return a.call(this,e,i,n,r)},...i.slice(1)]);let c=t.apply(n.copy_,[s,...i.slice(1)]);if((e===`find`||e===`findLast`)&&c&&typeof c==`object`){let e=n.copy_.indexOf(c);if(e!==-1)return o(c,e)}return e===`filter`&&Array.isArray(c)?c.map(e=>{let t=n.copy_.indexOf(e);return t===-1?e:o(e,t)}):c}}function kn(e,t){return function(){let n=e.copy_,r=0;return{next(){if(r>=n.length)return{done:!0,value:void 0};let i=n[r],a=i;if(Dn(i)){let{proxy:n}=t(i,{tracker:e,prop:String(r)});a=n}return r++,{done:!1,value:a}},[Symbol.iterator](){return this}}}}function An(e,t,n){return function(...r){let i=e.apply(t.copy_,r);return n(t),i}}function jn(e,t,n,r,i,a,o){if(En.has(e)||t===Symbol.iterator)return function(...s){let c=n.apply(i.copy_,s);if(e===`forEach`){let e=s[0];if(typeof e==`function`)return n.apply(r,[function(t,n,r){let a=e.call(this,t,n,r);return o(i),a},...s.slice(1)])}if(e===`entries`||e===`values`||e===Symbol.iterator.toString()||t===Symbol.iterator){let n=c,o=new Map;if(e===`values`&&r instanceof Map)for(let[e,t]of i.copy_.entries())o.set(t,e);let s=new Map;if(r instanceof Set)for(let e of i.copy_.values())s.set(e,e);return{next(){let c=n.next();if(!c.done&&c.value&&typeof c.value==`object`){if(e===`entries`&&Array.isArray(c.value)&&c.value.length===2){if(c.value[1]&&typeof c.value[1]==`object`){let e=c.value[0],t={tracker:i,prop:e,updateMap:t=>{i.copy_ instanceof Map&&i.copy_.set(e,t)}},{proxy:n}=a(c.value[1],t);c.value[1]=n}}else if(e===`values`||e===Symbol.iterator.toString()||t===Symbol.iterator){if(e===`values`&&r instanceof Map){let e=o.get(c.value);if(e!==void 0){let t={tracker:i,prop:e,updateMap:t=>{i.copy_ instanceof Map&&i.copy_.set(e,t)}},{proxy:n}=a(c.value,t);c.value=n}}else if(r instanceof Set){let e=c.value,t={tracker:i,prop:e,updateSet:t=>{i.copy_ instanceof Set&&(i.copy_.delete(e),i.copy_.add(t),s.set(e,t))}},{proxy:n}=a(c.value,t);c.value=n}else{let e=Symbol(`iterator-value`),{proxy:t}=a(c.value,{tracker:i,prop:e});c.value=t}}}return c},[Symbol.iterator](){return this}}}return c}}function U(...e){let t=typeof window<`u`&&typeof localStorage<`u`;(t&&localStorage.getItem(`DEBUG`)===`true`||!t&&typeof process<`u`&&{}.DEBUG===`true`)&&console.log(`[proxy]`,...e)}function Mn(e,t=new WeakMap){if(typeof e!=`object`||!e)return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(Array.isArray(e)){let n=[];return t.set(e,n),e.forEach((e,r)=>{n[r]=Mn(e,t)}),n}if(ArrayBuffer.isView(e)&&!(e instanceof DataView)){let n=Object.getPrototypeOf(e).constructor,r=new n(e.length);t.set(e,r);for(let t=0;t<e.length;t++)r[t]=e[t];return r}if(e instanceof Map){let n=new Map;return t.set(e,n),e.forEach((e,r)=>{n.set(r,Mn(e,t))}),n}if(e instanceof Set){let n=new Set;return t.set(e,n),e.forEach(e=>{n.add(Mn(e,t))}),n}if(R(e))return e;let n={};t.set(e,n);for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=Mn(e[r],t));let r=Object.getOwnPropertySymbols(e);for(let i of r)n[i]=Mn(e[i],t);return n}var Nn=0;function Pn(){return Nn+=1,Nn}function Fn(e,t){let n=new Map;function r(e,t){if(U(`Object ID:`,e.constructor.name),n.has(e))return n.get(e);{let r=Fn(e,t);return n.set(e,r),r}}let i=new Map,a={copy_:Mn(e),originalObject:Mn(e),proxyCount:Pn(),modified:!1,assigned_:{},parent:t,target:e};U(`createChangeProxy called for target`,e,a.proxyCount);function o(e){e.modified||=!0,e.parent&&(U(`propagating change to parent`),`updateMap`in e.parent?e.parent.updateMap(e.copy_):`updateSet`in e.parent?e.parent.updateSet(e.copy_):(e.parent.tracker.copy_[e.parent.prop]=e.copy_,e.parent.tracker.assigned_[e.parent.prop]=!0),o(e.parent.tracker))}function s(e){if(U(`checkIfReverted called with assigned keys:`,Object.keys(e.assigned_)),Object.keys(e.assigned_).length===0&&Object.getOwnPropertySymbols(e.assigned_).length===0)return U(`No assigned properties, returning true`),!0;for(let t in e.assigned_)if(e.assigned_[t]===!0){let n=e.copy_[t],r=e.originalObject[t];if(U(`Checking property ${String(t)}, current:`,n,`original:`,r),!L(n,r))return U(`Property ${String(t)} is different, returning false`),!1}else if(e.assigned_[t]===!1)return U(`Property ${String(t)} was deleted, returning false`),!1;let t=Object.getOwnPropertySymbols(e.assigned_);for(let n of t)if(e.assigned_[n]===!0){let t=e.copy_[n],r=e.originalObject[n];if(!L(t,r))return U(`Symbol property is different, returning false`),!1}else if(e.assigned_[n]===!1)return U(`Symbol property was deleted, returning false`),!1;return U(`All properties match original values, returning true`),!0}function c(e,t){U(`checkParentStatus called for child prop:`,t);let n=s(e);U(`Parent checkIfReverted returned:`,n),n&&(U(`Parent is fully reverted, clearing tracking`),e.modified=!1,e.assigned_={},e.parent&&(U(`Continuing up the parent chain`),c(e.parent.tracker,e.parent.prop)))}function l(e){if(U(`createObjectProxy`,e),i.has(e))return U(`proxyCache found match`),i.get(e);let n=new Proxy(e,{get(e,t){U(`get`,e,t);let n=a.copy_[t]??a.originalObject[t],s=a.originalObject[t];if(U(`value (at top of proxy get)`,n),Object.getOwnPropertyDescriptor(e,t)?.get)return n;if(typeof n==`function`){if(Array.isArray(e)){let e=t.toString();if(wn.has(e))return An(n,a,o);let i=On(e,n,a,r);if(i)return i;if(t===Symbol.iterator)return kn(a,r)}if(e instanceof Map||e instanceof Set){let i=t.toString();if(Tn.has(i))return An(n,a,o);let s=jn(i,t,n,e,a,r,o);if(s)return s}return n.bind(e)}if(Dn(n)){let{proxy:e}=r(s,{tracker:a,prop:String(t)});return i.set(n,e),e}return n},set(e,n,r){let i=a.copy_[n];if(U(`set called for property ${String(n)}, current:`,i,`new:`,r),L(i,r))U(`Value unchanged, not tracking`);else{let e=a.originalObject[n],i=L(r,e);if(U(`value:`,r,`original:`,e,`isRevertToOriginal:`,i),i){U(`Reverting property ${String(n)} to original value`),delete a.assigned_[n.toString()],U(`Updating copy with original value for ${String(n)}`),a.copy_[n]=Mn(e),U(`Checking if all properties reverted`);let r=s(a);U(`All reverted:`,r),r?(U(`All properties reverted, clearing tracking`),a.modified=!1,a.assigned_={},t&&(U(`Updating parent for property:`,t.prop),c(t.tracker,t.prop))):(U(`Some properties still changed, keeping modified flag`),a.modified=!0)}else U(`Setting new value for property ${String(n)}`),a.copy_[n]=r,a.assigned_[n.toString()]=!0,U(`Marking object and ancestors as modified`,a),o(a)}return!0},defineProperty(e,t,n){let r=Reflect.defineProperty(e,t,n);return r&&`value`in n&&(a.copy_[t]=Mn(n.value),a.assigned_[t.toString()]=!0,o(a)),r},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e,t)},preventExtensions(e){return Reflect.preventExtensions(e)},isExtensible(e){return Reflect.isExtensible(e)},deleteProperty(e,t){U(`deleteProperty`,e,t);let n=typeof t==`symbol`?t.toString():t;if(n in e){let r=n in a.originalObject,i=Reflect.deleteProperty(e,t);return i&&(r?(a.assigned_[n]=!1,o(a)):(delete a.assigned_[n],Object.keys(a.assigned_).length===0&&Object.getOwnPropertySymbols(a.assigned_).length===0?a.modified=!1:a.modified=!0)),i}return!0}});return i.set(e,n),n}return{proxy:l(a.copy_),getChanges:()=>{if(U(`getChanges called, modified:`,a.modified),U(a),!a.modified)return U(`Object not modified, returning empty object`),{};if(typeof a.copy_!=`object`||Array.isArray(a.copy_)||Object.keys(a.assigned_).length===0)return a.copy_;let e={};for(let t in a.copy_)a.assigned_[t]===!0&&t in a.copy_&&(e[t]=a.copy_[t]);return U(`Returning copy:`,e),e}}}function In(e){let t=e.map(e=>Fn(e));return{proxies:t.map(e=>e.proxy),getChanges:()=>t.map(e=>e.getChanges())}}function Ln(e,t){let{proxy:n,getChanges:r}=Fn(e);return t(n),r()}function Rn(e,t){let{proxies:n,getChanges:r}=In(e);return t(n),r()}function zn(){let e,t,n=!0;return{promise:new Promise((r,i)=>{e=e=>{n=!1,r(e)},t=e=>{n=!1,i(e)}}),resolve:e,reject:t,isPending:()=>n}}function Bn(e){return typeof e==`object`&&!!e&&typeof e.hasPendingGraphRun==`function`}var Vn=new class{constructor(){this.contexts=new Map,this.clearListeners=new Set}getOrCreateContext(e){let t=this.contexts.get(e);return t||(t={queue:[],jobs:new Map,dependencies:new Map,completed:new Set},this.contexts.set(e,t)),t}schedule({contextId:e,jobId:t,dependencies:n,run:r}){if(e===void 0){r();return}let i=this.getOrCreateContext(e);if(i.jobs.has(t)||i.queue.push(t),i.jobs.set(t,r),n){let e=new Set(n);e.delete(t),i.dependencies.set(t,e)}else i.dependencies.has(t)||i.dependencies.set(t,new Set);i.completed.delete(t)}flush(e){let t=this.contexts.get(e);if(!t)return;let{queue:n,jobs:r,dependencies:i,completed:a}=t;for(;n.length>0;){let t=!1,o=n.length;for(let s=0;s<o;s++){let o=n.shift(),s=r.get(o);if(!s){i.delete(o),a.delete(o);continue}let c=i.get(o),l=!c;if(c){l=!0;for(let t of c){if(t===o)continue;let n=Bn(t)&&t.hasPendingGraphRun(e);if(r.has(t)&&!a.has(t)||!r.has(t)&&n){l=!1;break}}}l?(r.delete(o),i.delete(o),s(),a.add(o),t=!0):n.push(o)}if(!t)throw Error(`Scheduler detected unresolved dependencies for context ${String(e)}.`)}this.contexts.delete(e)}flushAll(){for(let e of Array.from(this.contexts.keys()))this.flush(e)}clear(e){this.contexts.delete(e),this.clearListeners.forEach(t=>t(e))}onClear(e){return this.clearListeners.add(e),()=>this.clearListeners.delete(e)}hasPendingJobs(e){let t=this.contexts.get(e);return!!t&&t.jobs.size>0}clearJob(e,t){let n=this.contexts.get(e);n&&(n.jobs.delete(t),n.dependencies.delete(t),n.completed.delete(t),n.queue=n.queue.filter(e=>e!==t),n.jobs.size===0&&this.contexts.delete(e))}},Hn=[],Un=[],Wn=0;function Gn(e,t){switch(`${e.type}-${t.type}`){case`insert-update`:return{...e,type:`insert`,original:{},modified:t.modified,changes:{...e.changes,...t.changes},key:e.key,globalKey:e.globalKey,metadata:t.metadata??e.metadata,syncMetadata:{...e.syncMetadata,...t.syncMetadata},mutationId:t.mutationId,updatedAt:t.updatedAt};case`insert-delete`:return null;case`update-delete`:return t;case`update-update`:return{...t,original:e.original,changes:{...e.changes,...t.changes},metadata:t.metadata??e.metadata,syncMetadata:{...e.syncMetadata,...t.syncMetadata}};case`delete-delete`:case`insert-insert`:return t;default:{let n=`${e.type}-${t.type}`;throw Error(`Unhandled mutation combination: ${n}`)}}}function Kn(e){let t=new Zn(e);return Hn.push(t),t}function qn(){if(Un.length>0)return Un.slice(-1)[0]}function Jn(e){Vn.clear(e.id),Un.push(e)}function Yn(e){try{Vn.flush(e.id)}finally{Un=Un.filter(t=>t.id!==e.id)}}function Xn(e){let t=Hn.findIndex(t=>t.id===e.id);t!==-1&&Hn.splice(t,1)}var Zn=class{constructor(e){if(e.mutationFn===void 0)throw new I;this.id=e.id??re(),this.mutationFn=e.mutationFn,this.state=`pending`,this.mutations=[],this.isPersisted=zn(),this.autoCommit=e.autoCommit??!0,this.createdAt=new Date,this.sequenceNumber=Wn++,this.metadata=e.metadata??{}}setState(e){this.state=e,(e===`completed`||e===`failed`)&&Xn(this)}mutate(e){if(this.state!==`pending`)throw new Ee;Jn(this);try{e()}finally{Yn(this)}return this.autoCommit&&this.commit().catch(()=>{}),this}applyMutations(e){let t=new Map;for(let e of this.mutations)t.set(e.globalKey,e);for(let n of e){let e=t.get(n.globalKey);if(e){let r=Gn(e,n);r===null?t.delete(n.globalKey):t.set(n.globalKey,r)}else t.set(n.globalKey,n)}this.mutations.length=0;for(let e of t.values())this.mutations.push(e)}rollback(e){let t=e?.isSecondaryRollback??!1;if(this.state===`completed`)throw new De;if(this.setState(`failed`),!t){let e=new Set;this.mutations.forEach(t=>e.add(t.globalKey));for(let t of Hn)t.state===`pending`&&t.mutations.some(t=>e.has(t.globalKey))&&t.rollback({isSecondaryRollback:!0})}return this.isPersisted.reject(this.error?.error),this.touchCollection(),this}touchCollection(){let e=new Set;for(let t of this.mutations)e.has(t.collection.id)||(t.collection._state.onTransactionStateChange(),t.collection._state.pendingSyncedTransactions.length>0&&t.collection._state.commitPendingTransactions(),e.add(t.collection.id))}async commit(){if(this.state!==`pending`)throw new Oe;if(this.setState(`persisting`),this.mutations.length===0)return this.setState(`completed`),this.isPersisted.resolve(this),this;try{await this.mutationFn({transaction:this}),this.setState(`completed`),this.touchCollection(),this.isPersisted.resolve(this)}catch(e){let t=e instanceof Error?e:Error(String(e));throw this.error={message:t.message,error:t},this.rollback(),t}return this}compareCreatedAt(e){let t=this.createdAt.getTime()-e.createdAt.getTime();return t===0?this.sequenceNumber-e.sequenceNumber:t}},Qn=class{constructor(e,t){this.insert=(e,t)=>{this.lifecycle.validateCollectionUsable(`insert`);let n=this.state,r=qn();if(!r&&!this.config.onInsert)throw new Se;let i=Array.isArray(e)?e:[e],a=[],o=new Set;if(i.forEach(e=>{let n=this.validateData(e,`insert`),r=this.config.getKey(n);if(this.state.has(r)||o.has(r))throw new ge(r);o.add(r);let i=this.generateGlobalKey(r,e),s={mutationId:re(),original:{},modified:n,changes:Object.fromEntries(Object.keys(e).map(e=>[e,n[e]])),globalKey:i,key:r,metadata:t?.metadata,syncMetadata:this.config.sync.getSyncMetadata?.()||{},optimistic:t?.optimistic??!0,type:`insert`,createdAt:new Date,updatedAt:new Date,collection:this.collection};a.push(s)}),r)return r.applyMutations(a),n.transactions.set(r.id,r),n.scheduleTransactionCleanup(r),n.recomputeOptimisticState(!0),r;{let e=Kn({metadata:{[Ut]:!0},mutationFn:async e=>await this.config.onInsert({transaction:e.transaction,collection:this.collection})});return e.applyMutations(a),this.markPendingLocalOrigins(a),e.commit().catch(()=>void 0),n.transactions.set(e.id,e),n.scheduleTransactionCleanup(e),n.recomputeOptimisticState(!0),e}},this.delete=(e,t)=>{let n=this.state;this.lifecycle.validateCollectionUsable(`delete`);let r=qn();if(!r&&!this.config.onDelete)throw new we;if(Array.isArray(e)&&e.length===0)throw new ye;let i=Array.isArray(e)?e:[e],a=[];for(let e of i){if(!this.state.has(e))throw new be(e);let r=this.generateGlobalKey(e,this.state.get(e)),i={mutationId:re(),original:this.state.get(e),modified:this.state.get(e),changes:this.state.get(e),globalKey:r,key:e,metadata:t?.metadata,syncMetadata:n.syncedMetadata.get(e)||{},optimistic:t?.optimistic??!0,type:`delete`,createdAt:new Date,updatedAt:new Date,collection:this.collection};a.push(i)}if(r)return r.applyMutations(a),n.transactions.set(r.id,r),n.scheduleTransactionCleanup(r),n.recomputeOptimisticState(!0),r;let o=Kn({autoCommit:!0,metadata:{[Ut]:!0},mutationFn:async e=>this.config.onDelete({transaction:e.transaction,collection:this.collection})});return o.applyMutations(a),this.markPendingLocalOrigins(a),o.commit().catch(()=>void 0),n.transactions.set(o.id,o),n.scheduleTransactionCleanup(o),n.recomputeOptimisticState(!0),o},this.id=t,this.config=e}setDeps(e){this.lifecycle=e.lifecycle,this.state=e.state,this.collection=e.collection}ensureStandardSchema(e){if(e&&`~standard`in e)return e;throw new ce}validateData(e,t,n){if(!this.config.schema)return e;let r=this.ensureStandardSchema(this.config.schema);if(t===`update`&&n){let i=this.state.get(n);if(i&&e&&typeof e==`object`&&typeof i==`object`){let n=Object.assign({},i,e),a=r[`~standard`].validate(n);if(a instanceof Promise)throw new le;if(`issues`in a&&a.issues)throw new ie(t,a.issues.map(e=>({message:e.message,path:e.path?.map(e=>String(e))})));let o=a.value,s=Object.keys(e);return Object.fromEntries(s.map(e=>[e,o[e]]))}}let i=r[`~standard`].validate(e);if(i instanceof Promise)throw new le;if(`issues`in i&&i.issues)throw new ie(t,i.issues.map(e=>({message:e.message,path:e.path?.map(e=>String(e))})));return i.value}generateGlobalKey(e,t){if(typeof e!=`string`&&typeof e!=`number`)throw e===void 0?new me(t):new he(e,t);return`KEY::${this.id}/${e}`}markPendingLocalOrigins(e){for(let t of e)this.state.pendingLocalOrigins.add(t.key)}update(e,t,n){if(e===void 0)throw new N;let r=this.state;this.lifecycle.validateCollectionUsable(`update`);let i=qn();if(!i&&!this.config.onUpdate)throw new Ce;let a=Array.isArray(e),o=a?e:[e];if(a&&o.length===0)throw new P;let s=typeof t==`function`?t:n,c=typeof t==`function`?{}:t,l=o.map(e=>{let t=this.state.get(e);if(!t)throw new F(e);return t}),u;u=a?Rn(l,s):[Ln(l[0],s)];let d=o.map((e,t)=>{let n=u[t];if(!n||Object.keys(n).length===0)return null;let i=l[t],a=this.validateData(n,`update`,e),o=Object.assign({},i,a),s=this.config.getKey(i),d=this.config.getKey(o);if(s!==d)throw new ve(s,d);let f=this.generateGlobalKey(d,o);return{mutationId:re(),original:i,modified:o,changes:Object.fromEntries(Object.keys(n).map(e=>[e,o[e]])),globalKey:f,key:e,metadata:c.metadata,syncMetadata:r.syncedMetadata.get(e)||{},optimistic:c.optimistic??!0,type:`update`,createdAt:new Date,updatedAt:new Date,collection:this.collection}}).filter(Boolean);if(d.length===0){let e=Kn({mutationFn:async()=>{}});return e.commit().catch(()=>void 0),r.scheduleTransactionCleanup(e),e}if(i)return i.applyMutations(d),r.transactions.set(i.id,i),r.scheduleTransactionCleanup(i),r.recomputeOptimisticState(!0),i;let f=Kn({metadata:{[Ut]:!0},mutationFn:async e=>this.config.onUpdate({transaction:e.transaction,collection:this.collection})});return f.applyMutations(d),this.markPendingLocalOrigins(d),f.commit().catch(()=>void 0),r.transactions.set(f.id,f),r.scheduleTransactionCleanup(f),r.recomputeOptimisticState(!0),f}},$n=class extends $t{constructor(){super()}setDeps(e){this.collection=e.collection}emit(e,t){this.emitInner(e,t)}emitStatusChange(e,t){this.emit(`status:change`,{type:`status:change`,collection:this.collection,previousStatus:t,status:e});let n=`status:${e}`;this.emit(n,{type:n,collection:this.collection,previousStatus:t,status:e})}emitSubscribersChange(e,t){this.emit(`subscribers:change`,{type:`subscribers:change`,collection:this.collection,previousSubscriberCount:t,subscriberCount:e})}emitIndexAdded(e){this.emit(`index:added`,{type:`index:added`,collection:this.collection,index:e})}emitIndexRemoved(e){this.emit(`index:removed`,{type:`index:removed`,collection:this.collection,index:e})}cleanup(){this.clearListeners()}};function er(e){let t=new tr(e);return t.utils=e.utils?e.utils:{},t}var tr=class{constructor(e){if(this.utils={},this.deferDataRefresh=null,this.insert=(e,t)=>this._mutations.insert(e,t),this.delete=(e,t)=>this._mutations.delete(e,t),!e)throw new oe;if(!e.sync)throw new se;if(this.id=e.id?e.id:re(),this.config={...e,autoIndex:e.autoIndex??`off`},this.config.autoIndex===`eager`&&!e.defaultIndexType)throw new ae(`autoIndex: 'eager' requires defaultIndexType to be set. Import an index type and set it:
8
+ import { BasicIndex } from '@tanstack/db'
9
+ createCollection({ defaultIndexType: BasicIndex, autoIndex: 'eager', ... })`);this._changes=new nn,this._events=new $n,this._indexes=new Sn,this._lifecycle=new un(e,this.id),this._mutations=new Qn(e,this.id),this._state=new Wt(e),this._sync=new fn(e,this.id),this.comparisonOpts=nr(e),this._changes.setDeps({collection:this,lifecycle:this._lifecycle,sync:this._sync,events:this._events,state:this._state}),this._events.setDeps({collection:this}),this._indexes.setDeps({state:this._state,lifecycle:this._lifecycle,defaultIndexType:e.defaultIndexType,events:this._events}),this._lifecycle.setDeps({changes:this._changes,events:this._events,indexes:this._indexes,state:this._state,sync:this._sync}),this._mutations.setDeps({collection:this,lifecycle:this._lifecycle,state:this._state}),this._state.setDeps({collection:this,lifecycle:this._lifecycle,changes:this._changes,indexes:this._indexes,events:this._events}),this._sync.setDeps({collection:this,state:this._state,lifecycle:this._lifecycle,events:this._events}),e.startSync===!0&&this._sync.startSync()}get status(){return this._lifecycle.status}get subscriberCount(){return this._changes.activeSubscribersCount}onFirstReady(e){return this._lifecycle.onFirstReady(e)}isReady(){return this._lifecycle.status===`ready`}get isLoadingSubset(){return this._sync.isLoadingSubset}startSyncImmediate(){this._sync.startSync()}preload(){return this._sync.preload()}get(e){return this._state.getWithVirtualProps(e)}has(e){return this._state.has(e)}get size(){return this._state.size}*keys(){yield*this._state.keys()}*values(){for(let e of this._state.keys()){let t=this.get(e);t!==void 0&&(yield t)}}*entries(){for(let e of this._state.keys()){let t=this.get(e);t!==void 0&&(yield[e,t])}}*[Symbol.iterator](){yield*this.entries()}forEach(e){let t=0;for(let[n,r]of this.entries())e(r,n,t++)}map(e){let t=[],n=0;for(let[r,i]of this.entries())t.push(e(i,r,n++));return t}getKeyFromItem(e){return this.config.getKey(e)}createIndex(e,t={}){return this._indexes.createIndex(e,t)}removeIndex(e){return this._indexes.removeIndex(e)}getIndexMetadata(){return this._indexes.getIndexMetadataSnapshot()}get indexes(){return this._indexes.indexes}validateData(e,t,n){return this._mutations.validateData(e,t,n)}get compareOptions(){return{...this.comparisonOpts}}update(e,t,n){return this._mutations.update(e,t,n)}get state(){let e=new Map;for(let[t,n]of this.entries())e.set(t,n);return e}stateWhenReady(){return this.size>0||this.isReady()?Promise.resolve(this.state):this.preload().then(()=>this.state)}get toArray(){return Array.from(this.values())}toArrayWhenReady(){return this.size>0||this.isReady()?Promise.resolve(this.toArray):this.preload().then(()=>this.toArray)}currentStateAsChanges(e={}){return Lt(this,e)}subscribeChanges(e,t={}){return this._changes.subscribeChanges(e,t)}on(e,t){return this._events.on(e,t)}once(e,t){return this._events.once(e,t)}off(e,t){this._events.off(e,t)}waitFor(e,t){return this._events.waitFor(e,t)}async cleanup(){return this._lifecycle.cleanup(),Promise.resolve()}};function nr(e){if(e.defaultStringCollation){let t=e.defaultStringCollation;return{stringSort:t.stringSort??`locale`,locale:t.stringSort===`locale`?t.locale:void 0,localeOptions:t.stringSort===`locale`?t.localeOptions:void 0}}return{stringSort:`locale`}}var rr={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},ir=new class{#e=rr;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function ar(e){setTimeout(e,0)}var or=typeof window>`u`||`Deno`in globalThis;function W(){}function sr(e,t){return typeof e==`function`?e(t):e}function cr(e){return typeof e==`number`&&e>=0&&e!==1/0}function lr(e,t){return Math.max(e+(t||0)-Date.now(),0)}function G(e,t){return typeof e==`function`?e(t):e}function ur(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==fr(o,t.options))return!1}else if(!pr(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function dr(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(K(t.options.mutationKey)!==K(a))return!1}else if(!pr(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function fr(e,t){return(t?.queryKeyHashFn||K)(e)}function K(e){return JSON.stringify(e,(e,t)=>vr(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function pr(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){if(t.length>e.length)return!1;for(let n=0;n<t.length;n++)if(!pr(e[n],t[n]))return!1;return!0}let n=Object.keys(t);for(let r of n)if(!pr(e[r],t[r]))return!1;return!0}return!1}var mr=Object.prototype.hasOwnProperty;function hr(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=_r(e)&&_r(t);if(!r&&!(vr(e)&&vr(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:mr.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=hr(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function gr(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function _r(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function vr(e){if(!yr(e))return!1;let t=Object.getPrototypeOf(e),n=t?.constructor;if(n===void 0)return!0;if(typeof n!=`function`)return!1;let r=n.prototype;return!(!yr(r)||!r.hasOwnProperty(`isPrototypeOf`)||t!==Object.prototype)}function yr(e){return Object.prototype.toString.call(e)===`[object Object]`}function br(e){return new Promise(t=>{ir.setTimeout(t,e)})}function xr(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:hr(e,t)}function Sr(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function Cr(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var wr=Symbol();function Tr(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===wr?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Er(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var Dr=()=>or,Or=()=>Dr(),kr=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ar=new class extends kr{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},jr=ar;function Mr(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=jr,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var q=Mr(),Nr=new class extends kr{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function Pr(e){return Math.min(1e3*2**e,3e4)}function Fr(e){return(e??`online`)!==`online`||Nr.isOnline()}var Ir=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function Lr(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(W);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new Ir(t);h(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>Ar.isFocused()&&(e.networkMode===`always`||Nr.isOnline())&&e.canRun(),p=()=>Fr(e.networkMode)&&e.canRun(),m=e=>{c()||(r?.(),i=`resolved`,a(e))},h=e=>{c()||(r?.(),i=`rejected`,o(e))},g=t=>new Promise(n=>{r=e=>{(c()||t())&&n(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),_=()=>{if(c())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(m).catch(r=>{if(c())return;let i=e.retry??(Or()?0:3),a=e.retryDelay??Pr,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!s){h(r);return}n++,e.onFail?.(n,r),br(o).then(()=>f()?void 0:g(f)).then(()=>{t?h(r):_()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:p,start:()=>(p()?_():g(p).then(_),s)}}var Rr=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),cr(this.gcTime)&&(this.#e=ir.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Or()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(ir.clearTimeout(this.#e),this.#e=void 0)}};function zr(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{Er(e,()=>t.signal,()=>n=!0)},u=Tr(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?Cr:Sr;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?Vr:Br,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Br(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.fetchFn=t.options.persister?()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function Br(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Vr(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var Hr=class extends Rr{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Gr(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Gr(this.options);e.data!==void 0&&(this.setState(Wr(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=xr(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#c({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(W).catch(W):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>G(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===wr||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>G(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!lr(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){let t=this.observers.indexOf(e);t!==-1&&(this.observers.splice(t,1),this.observers.length||(this.#a&&(this.#s||this.state.fetchStatus===`paused`&&this.state.status===`pending`?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=Tr(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?zr(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta});let o=this.#a=Lr({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof Ir&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await o.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof Ir){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.#a===o&&(this.#a=void 0),this.scheduleGc()}}#c(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Ur(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Wr(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),q.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Ur(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Fr(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Wr(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Gr(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var Kr=class extends kr{#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p=new Set;constructor(e,t){super(),this.options=t,this.#e=e,this.#o=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Jr(this.#t,this.options)?this.#m():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Yr(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Yr(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof G(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!gr(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&Xr(this.#t,n,this.options,t)&&this.#m(),this.updateResult(),r&&(this.#t!==n||G(this.options.enabled,this.#t)!==G(t.enabled,this.#t)||G(this.options.staleTime,this.#t)!==G(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||G(this.options.enabled,this.#t)!==G(t.enabled,this.#t)||i!==this.#f)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return gr(this.getCurrentResult(),n)||(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),Reflect.get(e,n))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t),r=()=>{},i,a=new Promise(e=>{i=e,r=this.#e.getQueryCache().subscribe(i=>{i.type===`updated`&&i.query.queryHash===n.queryHash&&n.state.data!==void 0&&(r(),e(this.createResult(n,t)))})});return Promise.race([n.fetch().then(()=>{let e=this.createResult(n,t);return i?.(e),e}).finally(()=>{r()}),a])}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#m(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(W)),t}#h(e){return!Or()&&G(this.options.enabled,this.#t)!==!1&&cr(e)}#g(){this.#b();let e=G(this.options.staleTime,this.#t);if(this.#r.isStale||!this.#h(e))return;let t=lr(this.#r.dataUpdatedAt,e)+1;this.#u=ir.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return G(this.options.refetchInterval,this.#t)??!1}#v(e){this.#x(),this.#f=e,this.#f!==0&&this.#h(this.#f)&&(this.#d=ir.setInterval(()=>{(this.options.refetchIntervalInBackground||Ar.isFocused())&&this.#m()},this.#f))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#u!==void 0&&(ir.clearTimeout(this.#u),this.#u=void 0)}#x(){this.#d!==void 0&&(ir.clearInterval(this.#d),this.#d=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&Jr(e,t),o=i&&Xr(e,n,t,r);(a||o)&&(l={...l,...Ur(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#l?.state.data,this.#l):t.placeholderData,e!==void 0&&(m=`success`,d=xr(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h){if(i&&d===a?.data&&t.select===this.#s)d=this.#c;else try{this.#s=t.select,d=t.select(d),d=xr(i?.data,d,t),this.#c=d,this.#o=null}catch(e){this.#o=e}}else d===void 0&&(this.#o=null);this.#o&&(f=this.#o,d=this.#c,p=Date.now(),m=`error`,u=!1);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0;return{status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:Zr(e,t),refetch:this.refetch,isEnabled:G(t.enabled,e)!==!1}}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#l=this.#t),gr(t,e))return;this.#r=t;let n=(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#p.size)return!0;let r=new Set(n??this.#p);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})();q.batch(()=>{n&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}};function qr(e,t){return G(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||G(t.retryOnMount,e)!==!1)}function Jr(e,t){return qr(e,t)||e.state.data!==void 0&&Yr(e,t,t.refetchOnMount)}function Yr(e,t,n){if(G(t.enabled,e)!==!1&&G(t.staleTime,e)!==`static`){let r=G(n,e);return r===`always`||r!==!1&&Zr(e,t)}return!1}function Xr(e,t,n,r){return(e!==t||G(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Zr(e,n)}function Zr(e,t){return G(t.enabled,e)!==!1&&e.isStaleByTime(G(t.staleTime,e))}var Qr=class extends Rr{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||$r(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},r=this.#r=Lr({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),i=this.state.status===`pending`,a=!r.canStart();try{if(i)t();else{this.#i({type:`pending`,variables:e,isPaused:a}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:a})}let o=await r.start();return await this.#n.config.onSuccess?.(o,e,this.state.context,this,n),await this.options.onSuccess?.(o,e,this.state.context,n),await this.#n.config.onSettled?.(o,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(o,null,e,this.state.context,n),this.#i({type:`success`,data:o}),o}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#r===r&&(this.#r=void 0),this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),q.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function $r(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var ei=class extends kr{#e;#t;#n;constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}build(e,t,n){let r=new Qr({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=ti(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=ti(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=ti(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=ti(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){q.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>dr(t,e))}findAll(e={}){return this.getAll().filter(t=>dr(e,t))}notify(e){q.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return q.batch(()=>Promise.all(e.map(e=>e.continue().catch(W))))}};function ti(e){return e.options.scope?.id}var ni=class extends kr{#e;constructor(e={}){super(),this.config=e,this.#e=new Map}build(e,t,n){let r=t.queryKey,i=t.queryHash??fr(r,t),a=this.get(i);return a||(a=new Hr({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){this.#e.get(e.queryHash)===e&&(e.destroy(),this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){q.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ur(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ur(e,t)):t}notify(e){q.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){q.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){q.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ri=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new ni,this.#t=e.mutationCache||new ei,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=Ar.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Nr.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(G(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=sr(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return q.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;q.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return q.batch(()=>{let r=n.findAll(e),i=new Set(r);return r.forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,predicate:e=>i.has(e)},t)})}cancelQueries(e,t={}){let n={revert:!0,...t},r=q.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(W).catch(W)}invalidateQueries(e,t={}){return q.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=q.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(W)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(W)}async query(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t),r=n.isStaleByTime(G(t.staleTime,n))?await n.fetch(t):n.state.data,i=t.select;return i?i(r):r}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(G(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(W).catch(W)}infiniteQuery(e){return e._type=`infinite`,this.query(e)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(W).catch(W)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return Nr.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(K(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{pr(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(K(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{pr(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=fr(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===wr&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},ii=Symbol(`refProxy`);function ai(e){if(e&&typeof e==`object`)try{let t=e[ii];return t===!0||Array.isArray(t)?t:void 0}catch{return}}function oi(e){return e&&typeof e==`object`&&ai(e)!==void 0}var si=class{},ci=class extends si{constructor(e,t,n){super(),this.path=e,this.type=`ref`,t!==void 0&&(this.sourceAlias=t),n!==void 0&&Object.defineProperty(this,"bindingId",{value:n,enumerable:!1})}};function li(e){return e.sourceAlias!==void 0&&e.path[0]===e.sourceAlias?e.sourceAlias:void 0}function ui(e){return li(e)===void 0?e.path:e.path.slice(1)}var di=class extends si{constructor(e){super(),this.value=e,this.type=`val`}},fi=class extends si{constructor(e,t){super(),this.name=e,this.args=t,this.type=`func`}},pi=class extends si{constructor(e,t){super(),this.name=e,this.args=t,this.type=`agg`}};function mi(e){return e instanceof pi||e instanceof fi||e instanceof ci||e instanceof di}function hi(e,t){return Array.isArray(e)?`[${e.map(e=>hi(e,!0)??`"[object]"`).join(`,`)}]`:e instanceof Error?t?void 0:JSON.stringify(e.message):typeof e==`symbol`||typeof e==`bigint`||t&&(e===void 0||typeof e==`number`&&!Number.isFinite(e))?JSON.stringify(String(e)):e===void 0||typeof e==`number`&&!Number.isFinite(e)?String(e):typeof e!=`object`||!e?JSON.stringify(e):void 0}function gi(e,t={},n=`error`){let r=Object.entries(t).flatMap(([e,t])=>{try{let n=hi(t,!1);return n===void 0?[]:[`${e}=${n}`]}catch{return[]}}).join(`, `).replace(/[\u2028\u2029]/g,e=>`\\u${e.charCodeAt(0).toString(16)}`);return`TanStack DB ${n} ${e}${r&&` (${r})`}: https://tanstack.com/db/latest/docs/errors#${n}-${e}`}var _i=class extends Error{constructor(e){super(e),this.name=`TanStackDBError`}},vi=class extends _i{constructor(e){super(e),this.name=`CollectionConfigurationError`}},yi=class extends vi{constructor(e){super(gi(3,{reason:e})),this.name=`InvalidSyncPersistenceCapabilityError`}},bi=class extends _i{constructor(e){super(e),this.name=`CollectionOperationError`}},xi=class extends bi{constructor(e,t,n){super(gi(17,{key:e,collectionId:t,...n}))}},Si=class extends Error{constructor(){super(gi(79)),this.name=`AbortError`}},Ci=class extends Error{constructor(){super(gi(81)),this.name=`AbortError`}},wi=class extends Error{constructor(e,t){super(gi(87,{path:e,reason:t})),this.path=e,this.reason=t,this.name=`UnhashableQueryIRError`}};function Ti(e,t){return Oi(e,t,void 0)}function Ei(e){return e===null||Object.getPrototypeOf(e)===null}function Di(e){let t=Object.keys(e);for(let n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&t.push(n);return t}function Oi(e,t,n,r=!1,i=!1){if(e===t||Object.is(e,t))return!0;if(e==null||t==null||typeof e!=typeof t||i&&typeof e==`object`&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;if(e instanceof Date)return t instanceof Date&&Object.is(e.getTime(),t.getTime());if(t instanceof Date)return!1;if(e instanceof RegExp)return t instanceof RegExp&&e.source===t.source&&e.flags===t.flags&&(!r||e.lastIndex===t.lastIndex);if(t instanceof RegExp)return!1;if(e instanceof Map){if(!(t instanceof Map)||e.size!==t.size)return!1;if(n?.has(e))return n.get(e)===t;n??=new Map,n.set(e,t);let a=r&&Array.from(t.entries()),o=Array.from(e.entries()).every(([e,o],s)=>a?Object.is(e,a[s][0])&&Oi(o,a[s][1],n,!0,i):t.has(e)&&Oi(o,t.get(e),n,r,i));return n.delete(e),o}if(t instanceof Map)return!1;if(e instanceof Set){if(!(t instanceof Set)||e.size!==t.size)return!1;if(n?.has(e))return n.get(e)===t;n??=new Map,n.set(e,t);let a=Array.from(e),o=Array.from(t);if(r){let t=a.every((e,t)=>Oi(e,o[t],n,r,i));return n.delete(e),t}if(a.every(e=>typeof e!=`object`))return n.delete(e),a.every(e=>t.has(e));let s=(e,t,n)=>{if(e===a.length)return!0;let c=a[e];for(let[a,l]of t.entries()){let u=new Map(n);if(Oi(c,o[l],u,r,i)&&s(e+1,t.filter((e,t)=>t!==a),u))return!0}return!1},c=s(0,o.map((e,t)=>t),n);return n.delete(e),c}if(t instanceof Set)return!1;if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)&&!(e instanceof DataView)&&!(t instanceof DataView)){let n=e,i=t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)||n.length!==i.length)return!1;for(let e=0;e<n.length;e++){let t=n[e],r=i[e];if(t!==r&&(t===t||r===r))return!1}return!0}if(ArrayBuffer.isView(t)&&!(t instanceof DataView)&&!ArrayBuffer.isView(e))return!1;if(Ai(e)&&Ai(t))return e[Symbol.toStringTag]===t[Symbol.toStringTag]?typeof e.equals==`function`?e.equals(t):e.toString()===t.toString():!1;if(Ai(t)||Array.isArray(e)!==Array.isArray(t)||Array.isArray(e)&&e.length!==t.length)return!1;if(Array.isArray(e)&&!r){if(n?.has(e))return n.get(e)===t;n??=new Map,n.set(e,t);let a=e.every((e,a)=>Oi(e,t[a],n,r,i));return n.delete(e),a}if(typeof e==`object`){let a=Object.getPrototypeOf(e),o=Object.getPrototypeOf(t),s=Ei(a),c=Ei(o);if(a!==o&&!s&&!c)return!1;if(n?.has(e))return n.get(e)===t;let l=Di(e),u=Di(t);if(l.length!==u.length)return!1;if(l.length===0&&!Array.isArray(e)&&!(s&&c))return e instanceof URL&&e.href===t.href;let d=!1,f=!0;for(let a of l){let o=e[a];if(!d&&typeof o==`object`&&o&&(n??=new Map,n.set(e,t),d=!0),!Object.prototype.propertyIsEnumerable.call(t,a)||!Oi(o,t[a],n,r,i)){f=!1;break}}return d&&n.delete(e),f}return!1}var ki=new Set([`Temporal.Duration`,`Temporal.Instant`,`Temporal.PlainDate`,`Temporal.PlainDateTime`,`Temporal.PlainMonthDay`,`Temporal.PlainTime`,`Temporal.PlainYearMonth`,`Temporal.ZonedDateTime`]);function Ai(e){if(typeof e!=`object`||!e)return!1;let t=e[Symbol.toStringTag];return typeof t==`string`&&ki.has(t)}var ji=new Set;function Mi(e,t){ji.has(e)||(ji.add(e),console.warn(t))}function Ni(){let e=new WeakMap,t,n,r,i=0,a=(e,t)=>{let n=e.get(t);return n===void 0&&(n=++i,e.set(t,n)),n};return i=>{r??=Ri();let o;if(typeof i==`symbol`){let e=Symbol.keyFor(i);e===void 0?(t??=Pi(),o=a(t,i)):(n??=new Map,o=a(n,e))}else o=a(e,i);return[`runtimeReference`,r,o]}}function Pi(){let e=new WeakMap,t=Symbol();try{if(e.set(t,0),e.get(t)===0)return e}catch{}return new Map}var Fi;function Ii(e){return Fi??=Ni(),Fi(e)}function Li(e){return e?.stringSort===`custom`?{...e,compare:Ii(e.compare)}:e}function Ri(){let e=new Uint32Array(4),t=Reflect.get(globalThis,`crypto`);return typeof t?.getRandomValues==`function`?(t.getRandomValues(e),Array.from(e,e=>e.toString(36)).join(`-`)):`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`}function zi(e){return e instanceof Uint8Array||typeof Buffer<`u`&&e instanceof Buffer}var Bi=`\0tanstack-db:`;function Vi(e,t){return`${Bi}${e}:${t}`}function Hi(e){let t=``;for(let n=0;n<e.byteLength;n++)t+=String.fromCharCode(e[n]);return Vi(`binary`,t)}Vi(`undefined`,``);function Ui(e){return typeof e==`string`?e.startsWith(Bi)?Vi(`string`,e):e:typeof e!=`object`||!e?e:e instanceof Date?e.getTime():Ai(e)?Vi(`temporal`,`${e[Symbol.toStringTag]}:${e.toString()}`):zi(e)?Hi(e):e}function Wi(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}var Gi=new WeakMap;function Ki(e){return typeof e==`object`&&e?Gi.get(e):void 0}function qi(e){if(e===null||typeof e!=`object`&&typeof e!=`function`)return new di(e);let t=ai(e);if(t!==void 0)return Array.isArray(t)?new ci(t,t[0],e.__bindingId):new ci(e.__path,e.__sourceAlias,e.__bindingId);let n=Ki(e);if(n)throw Error(gi(126,{name:n}));return mi(e)?e:new di(e)}var Ji=Symbol(`tanstack-db.sync-receipt.accepted`);function Yi(e){return e===!0?!0:e[Ji]??e}var Xi=Symbol.for(`@tanstack/db.collectionSyncConfig.factory`);function Zi(e,t){return Object.defineProperty(e,Xi,{value:t,enumerable:!0}),e}function Qi(e){if(e.where===void 0&&!e.orderBy?.length&&e.limit===void 0&&(e.offset===void 0||e.offset===0)&&e.cursor===void 0)return;let t=new WeakSet,n={type:`loadSubsetDemand`,query:ia(e,`loadSubset`,t)};if(e.limit!==void 0&&(n.limit=Y(e.limit,`loadSubset.limit`,t)),e.offset!==void 0&&e.offset!==0&&(n.offset=Y(e.offset,`loadSubset.offset`,t)),e.cursor!==void 0){let r={whereFrom:J(e.cursor.whereFrom,`loadSubset.cursor.whereFrom`,t,`exact-output`),whereCurrent:J(e.cursor.whereCurrent,`loadSubset.cursor.whereCurrent`,t,`exact-output`)};e.cursor.lastKey!==void 0&&(r.lastKey=Y(e.cursor.lastKey,`loadSubset.cursor.lastKey`,t)),n.cursor=r}return JSON.stringify(n)}function $i(e,t){let n=new Map,r=new Map,i=e=>{if(e.type===`unionFrom`){e.sources.forEach(i);return}e.type!==`unionAll`&&(n.has(e.alias)||n.set(e.alias,n.size),r.set(e.bindingId,n.get(e.alias)))};return i(e.from),e.join?.forEach(({from:e})=>i(e)),{bindings:n,bindingIds:r,hasUnqualifiedOutput:e.from.type===`unionAll`,parent:t}}function ea(e,t,n){let r=e,i=0;for(;r;){let e=n===void 0?r.bindings.get(t):r.bindingIds.get(n);if(e!==void 0)return[i,e];if(r.hasUnqualifiedOutput)return;r=r.parent,i++}}function ta(e,t,n,r){return na(e,t,n,$i(e,r))}function na(e,t,n,r){if(e.fnSelect)throw new wi(`${t}.fnSelect`,`function select`);if(e.fnWhere?.length)throw new wi(`${t}.fnWhere`,`function where`);if(e.fnHaving?.length)throw new wi(`${t}.fnHaving`,`function having`);let i={type:`query`,from:oa(e.from,`${t}.from`,n,r)};return e.select&&(i.select=sa(e.select,`${t}.select`,n,r)),!e.select&&(e.from.type===`unionFrom`||e.join!==void 0||e.groupBy!==void 0)&&(i.implicitOutput={type:`namespaced`,aliases:Array.from(r.bindings.keys())}),e.join&&(i.join=e.join.map((e,i)=>aa(e,`${t}.join[${i}]`,n,r))),e.where&&(i.where=ra(e.where,`${t}.where`,n,r)),e.groupBy&&(i.groupBy=e.groupBy.map((e,i)=>J(e,`${t}.groupBy[${i}]`,n,`exact-output`,r))),e.having&&(i.having=ra(e.having,`${t}.having`,n,r)),e.orderBy&&(i.orderBy=e.orderBy.map((e,i)=>ua(e,`${t}.orderBy[${i}]`,n,`ordering-operand`,r))),e.limit!==void 0&&(i.limit=Y(e.limit,`${t}.limit`,n)),e.offset!==void 0&&e.offset!==0&&(i.offset=Y(e.offset,`${t}.offset`,n)),e.distinct&&(i.distinct=!0),e.singleResult&&(i.singleResult=!0),i}function ra(e,t,n,r){let i=e.map((e,i)=>la(e,`${t}[${i}]`,n,r));return i.sort(ya),i.filter((e,t)=>t===0||ya(e,i[t-1])!==0)}function ia(e,t,n){let r={type:`loadSubsetQuery`};return e.where!==void 0&&(r.where=J(e.where,`${t}.where`,n,`exact-output`)),e.orderBy?.length&&(r.orderBy=e.orderBy.map((e,r)=>ua(e,`${t}.orderBy[${r}]`,n,`ordering-operand`))),r}function aa(e,t,n,r){return{type:e.type,from:oa(e.from,`${t}.from`,n,r),on:J(e.on,`${t}.on`,n,`exact-output`,r)}}function oa(e,t,n,r){return e.type===`collectionRef`?{type:`collectionRef`,collectionId:Y(e.collection.id,`${t}.collection.id`,n)}:e.type===`unionFrom`?{type:`unionFrom`,sources:e.sources.map((e,i)=>oa(e,`${t}.sources[${i}]`,n,r))}:e.type===`unionAll`?{type:`unionAll`,queries:e.queries.map((e,i)=>ta(e,`${t}.queries[${i}]`,n,r.parent))}:{type:`queryRef`,query:ta(e.query,`${t}.query`,n,r)}}function sa(e,t,n,r){return{type:`select`,fields:Object.keys(e).sort().map(i=>[i,ca(e[i],`${t}.${i}`,n,r)])}}function ca(e,t,n,r){return oi(e)?J(qi(e),t,n,`exact-output`,r):Ca(e)?J(e,t,n,`exact-output`,r):Wi(e)?sa(e,t,n,r):ga(e,t,n)}function la(e,t,n,r){if(Sa(e)){let i={type:`where`,expression:J(e.expression,`${t}.expression`,n,`exact-output`,r)};return e.residual===!0&&(i.residual=!0),i}return J(e,t,n,`exact-output`,r)}function ua(e,t,n,r=`exact-output`,i){return{expression:J(e.expression,`${t}.expression`,n,r,i),compareOptions:da(e.compareOptions,`${t}.compareOptions`,n)}}function da(e,t,n){return Y(Li(e),t,n)}function J(e,t,n,r=`exact-output`,i){if(e.type===`ref`){let r=li(e);if(r!==void 0){let a=ea(i,r,e.bindingId);return a===void 0?{type:`ref`,path:e.path.map((e,r)=>Y(e,`${t}.path[${r}]`,n)),sourceAlias:Y(r,`${t}.sourceAlias`,n)}:{type:`ref`,path:[[`binding`,...a],...ui(e).map((e,r)=>Y(e,`${t}.path[${r+1}]`,n))]}}let a=ea(i,e.path[0]??``,e.bindingId);return{type:`ref`,path:a===void 0?e.path.map((e,r)=>Y(e,`${t}.path[${r}]`,n)):[[`binding`,...a],...e.path.slice(1).map((e,r)=>Y(e,`${t}.path[${r+1}]`,n))]}}if(e.type===`val`)return{type:`val`,value:r===`equality-operand`?_a(e.value,`${t}.value`,n,i):r===`ordering-operand`?va(e.value,`${t}.value`,n):ga(e.value,`${t}.value`,n)};if(e.type===`func`){if(e.name===`in`&&e.args.length===2&&e.args[1]?.type===`val`&&Array.isArray(e.args[1].value)){let r=e.args[1].value.map((e,r)=>_a(e,`${t}.args[1].value[${r}]`,n,i));return fa(e.name,[J(e.args[0],`${t}.args[0]`,n,`equality-operand`,i),{type:`val`,value:[`set`,pa(r)]}])}let r=e.name===`eq`?`equality-operand`:e.name===`gt`||e.name===`gte`||e.name===`lt`||e.name===`lte`?`ordering-operand`:`exact-output`,a=e.args.map((e,a)=>J(e,`${t}.args[${a}]`,n,r,i));return fa(e.name,a)}if(e.type===`agg`)return{type:`agg`,name:e.name,args:e.args.map((e,r)=>J(e,`${t}.args[${r}]`,n,`exact-output`,i))};if(e.type===`conditionalSelect`){let r={type:`conditionalSelect`,branches:e.branches.map((e,r)=>({condition:J(e.condition,`${t}.branches[${r}].condition`,n,`exact-output`,i),value:ca(e.value,`${t}.branches[${r}].value`,n,i)}))};return e.defaultValue!==void 0&&(r.defaultValue=ca(e.defaultValue,`${t}.defaultValue`,n,i)),r}let a=$i(e.query,i),o={type:`includesSubquery`,query:na(e.query,`${t}.query`,n,a),correlationField:J(e.correlationField,`${t}.correlationField`,n,`equality-operand`,i),childCorrelationField:J(e.childCorrelationField,`${t}.childCorrelationField`,n,`equality-operand`,a),fieldName:e.fieldName,materialization:e.materialization};return e.parentFilters&&(o.parentFilters=e.parentFilters.map((e,r)=>la(e,`${t}.parentFilters[${r}]`,n,i))),e.parentProjection&&(o.parentProjection=e.parentProjection.map((e,r)=>J(e,`${t}.parentProjection[${r}]`,n,`exact-output`,i))),e.scalarField!==void 0&&(o.scalarField=e.scalarField),o}function fa(e,t){return(e===`and`||e===`or`)&&t.length>0?{type:`func`,name:e,args:pa(t.flatMap(t=>ma(t,e)?t.args:[t]))}:e===`eq`&&t.length===2?(t.sort(ya),{type:`func`,name:e,args:t}):(e===`gt`||e===`gte`||e===`lt`||e===`lte`)&&t.length===2&&ya(t[0],t[1])>0?{type:`func`,name:ha(e),args:[t[1],t[0]]}:{type:`func`,name:e,args:t}}function pa(e){let t=e.map(e=>({key:JSON.stringify(e),value:e}));return t.sort((e,t)=>e.key<t.key?-1:+(e.key>t.key)),t.filter((e,n)=>n===0||e.key!==t[n-1].key).map(e=>e.value)}function ma(e,t){return typeof e==`object`&&!!e&&!Array.isArray(e)&&e.type===`func`&&e.name===t&&Array.isArray(e.args)}function ha(e){switch(e){case`gt`:return`lt`;case`gte`:return`lte`;case`lt`:return`gt`;case`lte`:return`gte`}}function Y(e,t,n){if(e===null)return[`null`];if(typeof e==`string`)return[`string`,e];if(typeof e==`boolean`)return[`boolean`,e];if(typeof e==`number`)return Number.isNaN(e)?[`number`,`NaN`]:e===1/0?[`number`,`Infinity`]:e===-1/0?[`number`,`-Infinity`]:Object.is(e,-0)?[`number`,`-0`]:[`number`,e];if(e===void 0)return[`undefined`];if(typeof e==`bigint`)return[`bigint`,e.toString()];if(typeof e==`function`)throw new wi(t,`function value`);if(typeof e==`symbol`)throw new wi(t,`symbol value`);if(oi(e))return J(qi(e),t,n);if(Array.isArray(e))return xa(e,t,n,()=>[`array`,e.map((e,r)=>Y(e,`${t}[${r}]`,n))]);if(e instanceof Date){let n=e.getTime();if(Number.isNaN(n))throw new wi(t,`invalid Date`);return[`Date`,e.toISOString()]}if(e instanceof ArrayBuffer)return[`binary`,`ArrayBuffer`,Array.from(new Uint8Array(e))];if(ArrayBuffer.isView(e))return[`binary`,e.constructor.name,Array.from(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))];if(e instanceof Map)return xa(e,t,n,()=>{let r=Array.from(e.entries(),([e,r],i)=>[Y(e,`${t}.key[${i}]`,n),Y(r,`${t}.value[${i}]`,n)]);return r.sort(ya),[`Map`,r]});if(e instanceof Set)return xa(e,t,n,()=>{let r=Array.from(e,(e,r)=>Y(e,`${t}[${r}]`,n));return r.sort(ya),[`Set`,r]});if(Wi(e))return ba(e,t,n);throw new wi(t,`non-plain object value`)}function ga(e,t,n){return typeof e==`object`&&e||typeof e==`function`||typeof e==`symbol`?Ii(e):Y(e,t,n)}function _a(e,t,n,r){if(oi(e))return J(qi(e),t,n,`equality-operand`,r);if(typeof e==`number`&&Object.is(e,-0))return Y(0,t,n);if(typeof Buffer<`u`&&e instanceof Buffer||e instanceof Uint8Array)return[`binary`,`Uint8Array`,Array.from(e)];let i=Ui(e);return i===e?typeof e==`object`&&e||typeof e==`function`||typeof e==`symbol`?Ii(e):Y(e,t,n):Y(i,t,n)}function va(e,t,n){if(typeof e==`number`&&Object.is(e,-0))return Y(0,t,n);if(e instanceof Date&&Number.isNaN(e.getTime()))return Y(NaN,t,n);let r=Ui(e);if(r!==e&&!(e instanceof Uint8Array))return Y(r,t,n);try{return Y(e,t,n)}catch(t){if(t instanceof wi&&typeof e==`object`&&e)return Ii(e);throw t}}function ya(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return n<r?-1:+(n>r)}function ba(e,t,n){return xa(e,t,n,()=>[`object`,Object.keys(e).sort().map(r=>[r,Y(e[r],`${t}.${r}`,n)])])}function xa(e,t,n,r){if(n.has(e))throw new wi(t,`circular value`);n.add(e);try{return r()}finally{n.delete(e)}}function Sa(e){return`expression`in e}function Ca(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`agg`||t===`conditionalSelect`||t===`func`||t===`ref`||t===`val`||t===`includesSubquery`}var wa=Symbol.for(`@tanstack/db.collectionConfig.factory`);function Ta(e,t){return Object.defineProperty(e,wa,{value:t,enumerable:!1}),e}var Ea=`@tanstack/db/sync-persistence`;function Da(e){return typeof e==`object`&&!!e}function Oa(e,t,n=t){if(typeof e[t]!=`function`)throw new yi(`${n} must be a function`)}function ka(e){if(e===null)return null;if(!Da(e))throw new yi(`expected null or a complete capability object`);if(e.protocol!==Ea)throw new yi(`protocol must be "${Ea}"`);if(e.version!==1)throw new yi(`version must be 1`);Oa(e,`hydrateBaseline`),Oa(e,`reserveCommitTurn`),Oa(e,`scanPersistedRows`);let t=e.resumeSnapshot;if(!Da(t))throw new yi(`resumeSnapshot must be an object`);return Oa(t,`certify`,`resumeSnapshot.certify`),Oa(t,`getKeySetEvidence`,`resumeSnapshot.getKeySetEvidence`),Oa(t,`expectCurrentCommit`,`resumeSnapshot.expectCurrentCommit`),e}var Aa=class extends _i{constructor(e){super(e),this.name=`QueryCollectionError`}},ja=class extends Aa{constructor(){super(`[QueryCollection] queryKey must be provided.`),this.name=`QueryKeyRequiredError`}},Ma=class extends Aa{constructor(){super(`[QueryCollection] queryFn must be provided.`),this.name=`QueryFnRequiredError`}},Na=class extends Aa{constructor(){super(`[QueryCollection] queryClient must be provided.`),this.name=`QueryClientRequiredError`}},Pa=class extends Aa{constructor(){super(`[QueryCollection] getKey must be provided.`),this.name=`GetKeyRequiredError`}},Fa=class extends Aa{constructor(){super(`[QueryCollection] initialData and initialDataUpdatedAt are only supported when syncMode is 'eager'. Seed or hydrate the exact Query cache key for on-demand subsets instead.`),this.name=`InitialDataInOnDemandModeError`}},Ia=class extends Aa{constructor(e){super(e),this.name=`InvalidQueryResultError`}},La=class extends Aa{constructor(){super(`Collection must be in 'ready' state for manual sync operations. Sync not initialized yet.`),this.name=`SyncNotInitializedError`}},Ra=class extends Aa{constructor(e){super(`Duplicate key '${e}' found within batch operations`),this.name=`DuplicateKeyInBatchError`}},za=class extends Aa{constructor(e){super(`Update operation: Item with key '${e}' does not exist`),this.name=`UpdateOperationItemNotFoundError`}},Ba=class extends Aa{constructor(e){super(`Delete operation: Item with key '${e}' does not exist`),this.name=`DeleteOperationItemNotFoundError`}},Va=new WeakMap,Ha=new WeakSet;function Ua(e,t){let n=Array.isArray(e)?e:[e],r=[];for(let e of n)if(e.type===`delete`){let t=Array.isArray(e.key)?e.key:[e.key];for(let e of t)r.push({type:`delete`,key:e})}else{let n=Array.isArray(e.data)?e.data:[e.data];for(let i of n){let n;if(e.type===`update`)n=t.getKey(i);else{let r=t.collection.validateData(i,e.type===`upsert`?`insert`:e.type);n=t.getKey(r)}r.push({type:e.type,key:n,data:i})}}return r}function Wa(e,t){let n=new Set;for(let r of e){if(n.has(r.key))throw new Ra(r.key);if(n.add(r.key),r.type===`insert`){if(t.collection._state.getAcceptedSyncedRow(r.key))throw new xi(r.key,t.collection.id)}else if(r.type===`update`){if(!t.collection._state.getAcceptedSyncedRow(r.key))throw new za(r.key)}else if(r.type===`delete`&&!t.collection._state.getAcceptedSyncedRow(r.key))throw new Ba(r.key)}}function Ga(e,t,n){let r;try{r=Ua(e,t)}catch(e){return Promise.reject(e)}let i=t.reserveDirectWrite?.()??0,a=t.earlierCommits?.();if(!a)try{return Ka(r,t,i)}catch(e){return Promise.reject(e)}let o=a.then(()=>{if(!n())throw new Si;return Ka(r,t,i)});return t.noteWaitingDirectWrite?.(o.then(()=>void 0,()=>void 0)),o}function Ka(e,t,n){Wa(e,t),t.claimDirectWriteKeys?.(e.map(e=>e.key),n),t.begin();for(let n of e)switch(n.type){case`insert`:{let e=t.collection.validateData(n.data,`insert`);t.write({type:`insert`,value:e});break}case`update`:{let e={...t.collection._state.getAcceptedSyncedRow(n.key),...n.data},r=t.collection.validateData(e,`update`,n.key);t.write({type:`update`,value:r});break}case`delete`:{let e=t.collection._state.getAcceptedSyncedRow(n.key);t.write({type:`delete`,value:e});break}case`upsert`:{let e=t.collection._state.getAcceptedSyncedRow(n.key)!==void 0,r=t.collection.validateData(n.data,e?`update`:`insert`,n.key);e?t.write({type:`update`,value:r}):t.write({type:`insert`,value:r});break}}let r=Yi(t.commit()),i=()=>{let e=()=>Array.from(t.collection._state.acceptedSyncedEntries(),([,e])=>e);t.updateCacheData?t.updateCacheData(e):t.queryClient.setQueryData(t.queryKey,e())};r===!0&&i();let a=Promise.resolve(r).then(()=>{r!==!0&&i()});return a.catch(()=>void 0),a}function qa(e){function t(){let t=e();if(!t)throw new La;return t}function n(n){let r=t(),i=Va.get(r);if(i)return i.operations.push(n),i.completion;let a=Ga(n,r,()=>e()===r);return Ha.add(a),a}return{writeInsert(e){return n({type:`insert`,data:e})},writeUpdate(e){return n({type:`update`,data:e})},writeDelete(e){return n({type:`delete`,key:e})},writeUpsert(e){return n({type:`upsert`,data:e})},writeBatch(n){let r=t();if(Va.get(r))throw Error(`Cannot nest writeBatch calls. Complete the current batch before starting a new one.`);let i,a,o=new Promise((e,t)=>{i=e,a=t});Ha.add(o),o.catch(()=>void 0);let s={operations:[],completion:o};Va.set(r,s);try{let t=n();if(typeof t==`object`&&t&&`then`in t&&typeof t.then==`function`&&!Ha.has(t))throw Promise.resolve(t).catch(()=>void 0),Error(`writeBatch does not support async callbacks. The callback must be synchronous.`);return Va.delete(r),i(s.operations.length>0?Ga(s.operations,r,()=>e()===r):Promise.resolve()),o}catch(e){throw a(e),e}finally{Va.get(r)===s&&Va.delete(r)}}}}function Ja(e,t){let n;try{n=e?.()}catch(e){try{t()}catch(t){throw Xa(e,t)}throw e}try{t()}catch(e){if(!Ya(n))throw e;return Promise.resolve(n).then(()=>{throw e},t=>{throw Xa(t,e)})}return Ya(n)?Promise.resolve(n):void 0}function Ya(e){return!!e&&(typeof e==`object`||typeof e==`function`)&&typeof e.then==`function`}function Xa(e,t){return AggregateError([e,t],`Adapter cleanup and local teardown both failed`,{cause:e})}var Za=[`enabled`,`refetchInterval`,`retry`,`retryDelay`,`staleTime`,`gcTime`,`refetchOnWindowFocus`,`refetchOnReconnect`,`refetchOnMount`,`networkMode`];function Qa(e){let t={};for(let n of Za)e[n]!==void 0&&(t[n]=e[n]);return t}var $a=`queryCollection:gc:`,eo=0,to=new WeakMap,no=new WeakMap,ro=new WeakMap,io=new WeakMap,ao=new WeakMap,oo=class{constructor(e,t,n){this.state=e,this.refetch=t,this.writeInsert=n.writeInsert,this.writeUpdate=n.writeUpdate,this.writeDelete=n.writeDelete,this.writeUpsert=n.writeUpsert,this.writeBatch=n.writeBatch}async clearError(){await this.refetch({throwOnError:!0})}get lastError(){return this.state.lastError}get isError(){return!!this.state.lastError}get errorCount(){return this.state.errorCount}get isFetching(){return Array.from(this.state.observers.values()).some(e=>e.getCurrentResult().isFetching)}get isRefetching(){return Array.from(this.state.observers.values()).some(e=>e.getCurrentResult().isRefetching)}get isLoading(){return Array.from(this.state.observers.values()).some(e=>e.getCurrentResult().isLoading)}get dataUpdatedAt(){return Math.max(0,...Array.from(this.state.observers.values()).map(e=>e.getCurrentResult().dataUpdatedAt))}get fetchStatus(){let e=`idle`;for(let t of this.state.observers.values()){let n=t.getCurrentResult().fetchStatus;if(n===`fetching`)return`fetching`;n===`paused`&&(e=`paused`)}return e}};function so(e){let{queryKey:t,queryFn:n,select:r,queryClient:i,enabled:a,refetchInterval:o,retry:s,retryDelay:c,staleTime:l,gcTime:u,refetchOnWindowFocus:d,refetchOnReconnect:f,refetchOnMount:p,networkMode:m,initialData:h,initialDataUpdatedAt:g,persistedGcTime:_,getKey:v,onInsert:y,onUpdate:b,onDelete:x,meta:S,...C}=e,w=C.syncMode??`eager`;if(w===`on-demand`&&(h!==void 0||g!==void 0))throw new Fa;let ee=w===`eager`?{...h!==void 0&&{initialData:h},...g!==void 0&&{initialDataUpdatedAt:g},placeholderData:void 0}:{initialData:()=>void 0,initialDataUpdatedAt:void 0,placeholderData:void 0},T=typeof t==`function`?t({}):t,te=e=>{typeof t==`function`&&(e.length>=T.length&&T.every((t,n)=>Ti(t,e[n]))||console.warn(`[QueryCollection] queryKey function must return keys that extend the base key prefix. Base: ${JSON.stringify(T)}, Got: ${JSON.stringify(e)}. This can cause stale cache issues.`))};if(!t)throw new ja;if(!n)throw new Ma;if(!i)throw new Na;if(!v)throw new Pa;let E={lastError:void 0,errorCount:0,observers:new Map},D=0,O=new WeakMap,k=new WeakMap,ne=new WeakSet,re={},A,ie=new WeakMap,ae=new Map,oe=new Map,se=(e,t)=>{if(A.add(e),t!==void 0){let n=ie.get(e)??new Set;n.add(t),ie.set(e,n)}},ce=(e,t)=>{ne.add(e),se(e,t);let n=ao.get(e)??new Set;n.add(re),ao.set(e,n)},le=e=>ie.get(e)??new Set([K(e.queryKey)]),ue=(e,t,n)=>{let r=k.get(e)??new Map;k.set(e,r);let i=r.get(t)??new Map;r.set(t,i);let a=i.get(n)??{};return i.set(n,a),a},j=(e,t)=>O.get(t)?.get(e),de=(e,t,n)=>{let r=O.get(t)??new Map;r.set(e,n),O.set(t,r)},fe=(e,t)=>{for(let n of le(e)){let r=E.observers.get(n);if(!r||r.getCurrentQuery()!==e)continue;let i=r.getCurrentResult(),a=ue(e,t,n);a.result=i;let o=j(n,i);o&&(a.settlement=o)}},pe=(e,t)=>{let n=k.get(e)?.get(t);if(n)for(let[e,t]of n){if(!t.result)continue;let n=j(e,t.result);n&&(t.settlement=n)}},M=(e,t)=>{let n=k.get(e);if(n){for(let e of t)n.delete(e);n.size===0&&k.delete(e)}},me=(e,t)=>{let n=ae.get(e),r=io.get(t),i=Math.max(n??0,r??0);return n===void 0&&r===void 0||(ro.get(t)??0)>i},he=(e,t)=>{ae.set(e,eo),io.set(t,Math.max(io.get(t)??0,eo));let n=(oe.get(e)??0)+1;return oe.set(e,n),n},ge=e=>{let t=e.options.enabled;return typeof t==`function`?t(e.getCurrentQuery())!==!1:t!==!1},_e=new Map,N=new Map,P=new Map,F=new Map,ve=new Map,ye=new Map,be=0,xe=new Map,Se=new Map,Ce,we=!1,Te=0,I=new Map,Ee=()=>{},De=(e,t)=>!1,Oe=e=>void 0,ke,Ae=(e,t)=>{let n=P.get(e)||new Set;n.add(t),P.set(e,n);let r=N.get(t)||new Set;r.add(e),N.set(t,r)},je=(e,t)=>{if(t.size===0){P.delete(e);return}P.set(e,new Set(t)),t.forEach(t=>{let n=N.get(t)||new Set;n.add(e),N.set(t,n)})},Me=(e,t)=>{let n=P.get(e);return n?.delete(t),n?.size||P.delete(e),N.get(t)?.delete(e),!n?.size},Ne=e=>{let t=new Map;return(N.get(e)??new Set).forEach(n=>{let r=P.get(n);if(!r)return;let i=new Set(r);i.delete(e),t.set(n,i)}),t},Pe=e=>{let h={};ke=h,A=new Set(i.getQueryCache().findAll({queryKey:T}));let{begin:g,write:y,commit:b,markReady:x,markError:C,collection:D,metadata:O}=e,ie=O===void 0?null:ka(O.persistence),oe=!1,ue=!1,j=new Map,he=new Set,ge=new Map,Pe=new WeakMap,Fe=0,Le=new Map,Re=new WeakMap,ze=new Set,R=new Map,Be=e=>Re.get(e),Ve=(e,t)=>{Re.set(e,t)};Oe=Be;let z=new Map,He=new Map,B=new Map,Ue=Promise.resolve(),We=e=>{let t=z.get(e);t?.rollback?.(),ge.delete(e),Le.delete(e),z.delete(e),t?.abort()},Ge=async e=>{for(;;){let t=ge.get(e);if(!t)return;try{await t}catch(n){if(ge.get(e)===t||Le.has(e)&&Le.get(e)===n)throw n}}},Ke=(e,t,n)=>new Promise((r,i)=>{let a=!0,o=()=>{},s=ve.get(t)??new Set,c=e=>{a&&(a=!1,o(),s.delete(l),s.size===0&&ve.delete(t),e())},l=()=>{c(()=>i(n()))};s.add(l),ve.set(t,s),o=e.subscribe(n=>{queueMicrotask(()=>{let i=e.getCurrentQuery();(n.isSuccess&&me(t,i)&&!D.deferDataRefresh||n.isError&&!n.isFetching)&&c(()=>r(n))})})}),qe=(e,t)=>{let n=R.get(t)??new Map,r=n.get(e);if(r)return r;let i=t.then(async()=>{let t=E.observers.get(e);if(!t)throw new Ir;let n=await t.refetch();for(;;){if(!n.isSuccess)return n;if(await new Promise(e=>queueMicrotask(e)),!me(e,t.getCurrentQuery())||D.deferDataRefresh){n=await Ke(t,e,()=>new Ir);continue}let r=Be(n);if(r?.type===`rejected`)throw r.error;if(r?.type===`pending`)return r.promise;let i=Ye(e);return i!==!0&&await i,n}});n.set(e,i),R.set(t,n);let a=()=>{n.get(e)===i&&(n.delete(e),n.size===0&&R.delete(t))};return i.then(a,a),i},Je=(e,t,n)=>{let r=Be(t);if(r?.type===`pending`)return r;let i,a=new Promise((e,t)=>{i=t,n.then(e,t)});a.catch(()=>{});let o={type:`pending`,promise:a,reject:i};return Ve(t,o),ze.add(o),a.then(()=>{ze.delete(o)},()=>{ze.delete(o)}),o},Ye=e=>ge.get(e)?Ge(e):!Le.has(e)||Promise.reject(Le.get(e)),V=e=>O?.row.get(e)??D._state.syncedMetadata.get(e),Xe=e=>{if(!e||typeof e!=`object`)return new Set;let t=e.queryCollection;if(!t||typeof t!=`object`)return new Set;let n=t.owners;return!n||typeof n!=`object`?new Set:new Set(Object.keys(n))},Ze=e=>Xe(V(e)),Qe=(e,t)=>{if(!O)return;let n={...V(e)??{}};if(t.size===0){delete n.queryCollection,Object.keys(n).length===0?O.row.delete(e):O.row.set(e,n);return}O.row.set(e,{...n,queryCollection:{owners:Object.fromEntries(Array.from(t.values()).map(e=>[e,!0]))}})},$e=(e,t)=>{if(!e||typeof e!=`object`)return;let n=e;if(n.queryHash===t){if(n.mode===`until-revalidated`)return{queryHash:t,mode:`until-revalidated`};if(n.mode===`ttl`&&typeof n.expiresAt==`number`&&Number.isFinite(n.expiresAt))return{queryHash:t,mode:`ttl`,expiresAt:n.expiresAt}}},et=e=>(Ue=Ue.then(e,e),Ue),tt=e=>{let t=B.get(e);t&&(clearTimeout(t),B.delete(e))},nt=e=>{let t=N.get(e);if(t)return new Set(t);let n=new Set;for(let[t]of D._state.syncedData.entries()){let r=Ze(t);r.size!==0&&(je(t,r),r.has(e)&&n.add(t))}return n},rt=async e=>{let t=N.get(e);if(t&&Array.from(t).every(e=>D.has(e))){let e=new Map;return t.forEach(t=>{let n=D.get(t),r=P.get(t);n&&r&&e.set(t,{value:n,owners:new Set(r)})}),e}let n=ie?.scanPersistedRows;if(!n){let t=new Map;return nt(e).forEach(e=>{let n=D.get(e),r=P.get(e);n&&r&&t.set(e,{value:n,owners:new Set(r)})}),t}let r=new Map;return(await n()).forEach(t=>{let n=t.metadata?.queryCollection;if(!n||typeof n!=`object`)return;let i=n.owners;if(!i||typeof i!=`object`)return;let a=new Set(Object.keys(i));a.size!==0&&(je(t.key,a),a.has(e)&&r.set(t.key,{value:t.value,owners:a}))}),r},it=async e=>{if(!O)return;let t=await rt(e),n=[];g(),t.forEach(({value:t,owners:r},i)=>{r.delete(e),Qe(i,r),Me(i,e)&&n.push(t)}),n.forEach(e=>{y({type:`delete`,value:e})}),O.collection.delete(`${$a}${e}`),b(),N.delete(e)},at=e=>{if(e.mode!==`ttl`)return;tt(e.queryHash);let t=Math.max(0,e.expiresAt-Date.now()),n=setTimeout(()=>{B.delete(e.queryHash),et(async()=>{let t=O?.collection.get(`${$a}${e.queryHash}`),n=$e(t,e.queryHash);!n||n.mode!==`ttl`||n.expiresAt>Date.now()||await it(e.queryHash)})},t);B.set(e.queryHash,n)},ot=async()=>{if(!O)return;let e=O.collection.list($a),t=Date.now();for(let{key:n,value:r}of e){let e=n.slice($a.length),i=$e(r,e);i&&(i.mode===`ttl`&&i.expiresAt<=t?await it(i.queryHash):i.mode===`ttl`&&at(i))}},st=e=>{if(typeof t==`function`){let{refetch:n,...r}=e;return t(r)}if(w===`on-demand`){let n=Qi(e);return n===void 0?t:[...t,n]}return t},ct=O?.collection.list($a),lt=!ct||ct.length===0?(ue=!0,Promise.resolve()):et(async()=>{try{await ot()}finally{ue=!0}}),ut=(e,t)=>Ke(e,t,()=>new Ci).then(e=>{if(e.isError)throw e.error}),dt=(e,t)=>ut(e,t).then(()=>{let e=Ye(t);return e===!0?void 0:e}),ft=async(e,t)=>new Promise((n,r)=>{let i=!0,a=ve.get(t)??new Set,o=e=>{i&&(i=!1,a.delete(s),a.size===0&&ve.delete(t),e())},s=()=>{o(()=>r(new Ci))};a.add(s),ve.set(t,a),(async()=>{let n=!!D.deferDataRefresh;if(await e.refetch({throwOnError:!0}),n||!me(t,e.getCurrentQuery())){await dt(e,t);return}let r=Ye(t);r!==!0&&await r})().then(()=>o(n),e=>o(()=>r(e)))}),pt=(e={},t=n)=>{if(!ue){let n={},r=j.get(e)??new Set;return r.add(n),j.set(e,r),lt.then(()=>{if(!j.get(e)?.delete(n))throw new Ci;r.size===0&&j.delete(e);let i=pt(e,t);return i===!0?void 0:i})}let r=st(e),h=K(r),{subscription:g,refetch:v,...y}=e,b={...S};Object.defineProperty(b,"loadSubsetOptions",{value:y,enumerable:!1,configurable:!0,writable:!0});let x=O?.collection.get(`${$a}${h}`);if($e(x,h)!==void 0&&he.add(h),tt(h),te(r),E.observers.has(h)){I.set(h,(I.get(h)||0)+1);let t=E.observers.get(h),n=t.getCurrentResult();return e.refetch?ft(t,h):n.isSuccess&&me(h,t.getCurrentQuery())?D.deferDataRefresh?dt(t,h):Ye(h):n.isError&&!n.isFetching?Promise.reject(n.error):dt(t,h)}let C={...Qa({enabled:a,refetchInterval:o,retry:s,retryDelay:c,staleTime:l,gcTime:u,refetchOnWindowFocus:d,refetchOnReconnect:f,refetchOnMount:p,networkMode:m}),...ee,queryKey:r,queryFn:w===`on-demand`?t:e=>(xe.set(K(e.queryKey),be),t(e)),meta:b,structuralSharing:!0,notifyOnChangeProps:`all`},T=new Kr(i,C),k=T.getCurrentQuery();ce(k,h);let ne=i.getQueryCache().find({queryKey:r,exact:!0})?.gcTime,re=_??ne;if(_e.set(h,r),E.observers.set(h,T),re===void 0?He.delete(h):He.set(h,re),I.set(h,(I.get(h)||0)+1),i.getQueryData(r)!==void 0){(oe||D.subscriberCount>0)&&wt(T,h);let t=T.getCurrentResult();return e.refetch?ft(T,h):t.isError&&!t.isFetching?Promise.reject(t.error):!t.isSuccess||!me(h,T.getCurrentQuery())||D.deferDataRefresh?dt(T,h):Ye(h)}let A=dt(T,h);return(oe||D.subscriberCount>0)&&wt(T,h),A},mt=(e,t)=>{let n=t.data,i=r?r(n):n,a=r?`select()`:`queryFn`;if(!Array.isArray(i))return{error:new Ia(`@tanstack/query-db-collection: ${a} must return an array of objects. Got: ${typeof i} for queryKey ${JSON.stringify(e)}`)};let o=i.findIndex(e=>typeof e!=`object`||!e);if(o!==-1){let t=i[o];return{error:new Ia(`@tanstack/query-db-collection: ${a} must return an array of objects. Invalid item at index ${o}: ${t===null?`null`:typeof t} for queryKey ${JSON.stringify(e)}`)}}return{items:i}},ht=(e,t)=>{let n=new Map(e.map(e=>[v(e),e]));for(let[e,r]of Se){if(r<=t)continue;let i=D._state.getAcceptedSyncedRow(e);i===void 0?n.delete(e):n.set(e,i)}return Array.from(n.values())},gt=async()=>{for(;Ce;)await Ce},_t=(e,t)=>{let n=mt(e,t);if(`error`in n)throw Ve(t,{type:`rejected`,error:n.error}),n.error;return n.items},vt=(e,t,n,r,i,a)=>{let o=K(e);if(D.status===`cleaned-up`||i?.aborted)throw new Ci;Ie()&&n.settleRefetchAtFetchBoundary?.();let s=a??_t(e,t),c=new Map(D._state.acceptedSyncedEntries()),l=r!==void 0,u=l?new Set(r.keys()):nt(o),d=new Map;s.forEach(e=>{let t=v(e);d.set(t,e)});let f=N.has(o)?new Set(N.get(o)):void 0,p=new Set([...u,...d.keys()]),m=new Map;p.forEach(e=>{let t=P.get(e);m.set(e,t?new Set(t):void 0)});let h=!1,_,S=()=>{_?.applicationStarted||_===void 0&&Array.from(p).every(e=>{let t=P.get(e)??new Set,n=Xe(D._state.syncedMetadata.get(e));return t.size===n.size&&Array.from(t).every(e=>n.has(e))})||E.observers.has(o)&&z.get(o)===n&&(f===void 0?N.delete(o):N.set(o,f),m.forEach((e,t)=>{e===void 0?P.delete(t):P.set(t,e)}))};n.rollback=S;let C=e=>{if(S(),h){let e=new AbortController;e.abort();try{b(e.signal)}catch{}}throw e};try{N.set(o,N.get(o)??new Set),g(),h=!0,O&&O.collection.delete(`${$a}${o}`),u.forEach(e=>{let t=l?r.get(e)?.value:c.get(e),n=d.get(e);if(n)t&&!Ti(t,n)&&y({type:`update`,value:n});else{let t=Ze(e);t.delete(o),Qe(e,t),Me(e,o)&&y({type:`delete`,key:e})}}),d.forEach((e,t)=>{let n=Ze(t),r=!n.has(o),i=!c.has(t);r&&n.add(o),Ae(t,o),i&&y({type:`insert`,value:e}),(r||i)&&Qe(t,n)}),_=D._state.pendingSyncedTransactions.at(-1),Ie()&&n.settleRefetchAtFetchBoundary?.();let e=b();n.rollback=void 0,h=!1,he.delete(o),tt(o);let t=()=>{i?.aborted||x()},a=Yi(e);return a===!0?t():a.then(t,()=>void 0),e===!0||e.then(()=>void 0,C)}catch(e){return C(e)}},yt=async(e,t,n,r)=>{let i=K(e),a=_t(e,t),o=await rt(i);if(D.status===`cleaned-up`||z.get(i)!==n)throw new Ci;await vt(e,t,n,o,r,a)},bt=(e,t,n,r)=>{ge.set(e,t);let i=()=>ge.get(e)===t&&(ge.delete(e),!0);t.then(()=>{i()&&(Le.delete(e),!n&&r===Fe&&(E.lastError=void 0,E.errorCount=0))},t=>{i()&&(Le.set(e,t),E.lastError=t,E.errorCount++,Fe++,console.error(`[QueryCollection] Error applying query ${String(_e.get(e))}:`,t),D.status===`loading`&&C(t))})},xt=(e,t,n)=>{We(e);let r=Fe,i=new AbortController,a=()=>{},o=new Promise(e=>{a=e});i.settleRefetchAtFetchBoundary=a,z.set(e,i);let s;try{s=n(i.signal,i)}catch(e){s=Promise.reject(e)}if(s===!0){z.get(e)===i&&(de(e,t,Promise.resolve()),z.delete(e),Le.delete(e),!t.isFetching&&r===Fe&&(E.lastError=void 0,E.errorCount=0));return}let c=Promise.race([s,o]);c.catch(()=>void 0),de(e,t,c);let l=()=>{z.get(e)===i&&z.delete(e)};s.then(l,l),z.get(e)===i&&bt(e,s,t.isFetching,r)},St=e=>{let t=K(e),n=r=>{let a=E.observers.get(t),o=a?.getCurrentQuery();if(a&&o&&(ce(o,t),r.isSuccess)){if(!me(t,o)){queueMicrotask(()=>{let e=E.observers.get(t);e===a&&me(t,e.getCurrentQuery())&&n(e.getCurrentResult())});return}ae.delete(t)}if(w!==`on-demand`&&r.isSuccess&&!r.isFetching&&!we&&(Ce!==void 0||(xe.get(t)??be)<be)){let i=a?.getCurrentQuery(),o=xe.get(t)??0;if(Be(r)?.type===`pending`)return;let s=mt(e,r);if(i&&`items`in s){Te++;let a=(async()=>{await gt();let r=E.observers.get(t);if(r?.getCurrentQuery()!==i)throw new Ir;let a=()=>{},c=new Promise(e=>{a=r.subscribe(()=>e())}),l=r.getCurrentResult();try{xe.set(t,be),L(e,ht(s.items,o)),r.getCurrentResult()===l?n(l):await c}finally{a()}await new Promise(e=>queueMicrotask(e));let u=Ye(t);return u!==!0&&await u,r.getCurrentResult()})(),c=()=>{Te--};a.then(c,c),Je(t,r,a);return}}if(r.isSuccess){if(D.deferDataRefresh){if(r.isFetching){qe(t,D.deferDataRefresh);return}Je(t,r,qe(t,D.deferDataRefresh));return}let n=ye.get(t);if(n){let e=E.observers.get(t)?.getCurrentQuery();if(e?.state.dataUpdateCount===n.dataUpdateCount&&e.state.data===n.data)return;ye.delete(t)}if(he.has(t)){if(i.getQueryCache().find({queryKey:e,exact:!0})?.state.dataUpdateCount===0){r.isFetching||E.observers.get(t)?.refetch().catch(()=>{});return}if(r.isFetching)return;xt(t,r,(t,n)=>yt(e,r,n,t))}else xt(t,r,(t,n)=>vt(e,r,n,void 0,t))}else ye.delete(t);o&&r.errorUpdateCount<(Pe.get(o)??0)&&Pe.delete(o),r.isError&&r.fetchStatus===`idle`&&((!o||r.errorUpdateCount!==Pe.get(o))&&(o&&Pe.set(o,r.errorUpdateCount),E.lastError=r.error,E.errorCount++,Fe++),console.error(`[QueryCollection] Error observing query ${String(e)}:`,r.error),D.status===`loading`&&C(r.error))};return n},Ct=e=>F.has(e);De=(e,t)=>{if(Ct(e))return!1;let n=_e.get(e);return n?(St(n)(t),!0):!1};let wt=(e,t)=>{if(!Ct(t)){w===`eager`&&e.setOptions(e.options);let n=_e.get(t),r=St(n),i=e.subscribe(r);F.set(t,i);let a=e.getCurrentResult();(a.isSuccess||a.isError)&&r(a)}},Tt=()=>{E.observers.forEach(wt)},Et=()=>{F.forEach(e=>{e()}),F.clear()};Ee=()=>{w===`eager`&&E.observers.forEach((e,t)=>{let n=e.getCurrentQuery();i.getQueryCache().get(n.queryHash)!==n&&wt(e,t)})},oe=!0;let Dt=D.on(`subscribers:change`,({subscriberCount:e})=>{e>0?Tt():e===0&&Et()});if(w===`eager`){let e=pt({});e instanceof Promise&&e.catch(()=>{})}else ue?x():lt.then(()=>{D.status===`loading`&&x()});Tt(),E.observers.forEach((e,t)=>{let n=_e.get(t);St(n)(e.getCurrentResult())});let Ot=e=>{ve.get(e)?.forEach(e=>{e()}),ve.delete(e)},kt=e=>{F.get(e)?.(),F.delete(e),Ot(e),tt(e),he.delete(e),We(e),ye.delete(e);let t=Ne(e),n=[];t.forEach((e,t)=>{let r=D._state.getAcceptedSyncedRow(t);e.size===0&&r&&n.push(r)});let r=O!==void 0&&t.size>0,i=`${$a}${e}`,a=O?.collection.get(i)!==void 0,o=r||n.length>0||a;o&&g(),t.forEach((e,t)=>{e.size===0?P.delete(t):P.set(t,e),r&&Qe(t,e)}),n.length>0&&n.forEach(e=>{y({type:`delete`,value:e})}),a&&O.collection.delete(i),o&&b(),E.observers.delete(e),N.delete(e),_e.delete(e),I.delete(e),He.delete(e)},At=e=>{let t=I.get(e)||0,n=E.observers.get(e),r=He.get(e);if(t<=0&&(F.get(e)?.(),F.delete(e),Ot(e)),!(t>0)){if(n?.hasListeners()??!1){I.set(e,0);return}if(r!==void 0&&O&&ie?.scanPersistedRows){We(e),ye.delete(e),g(),O.collection.set(`${$a}${e}`,{queryHash:e,mode:r===1/0?`until-revalidated`:`ttl`,...r===1/0?{}:{expiresAt:Date.now()+r}}),b(),r!==1/0&&at({queryHash:e,mode:`ttl`,expiresAt:Date.now()+r}),F.get(e)?.(),F.delete(e),E.observers.delete(e),_e.delete(e),I.set(e,0);return}kt(e)}},jt=e=>{kt(e)},Mt=i.getQueryCache().subscribe(e=>{if(e.type===`added`&&pr(e.query.queryKey,T)&&se(e.query),!A.has(e.query))return;if(e.type===`updated`){if(e.action.type===`fetch`){let t=to.get(e.action);t===void 0&&(t=++eo,to.set(e.action,t)),no.set(e.query,t);let n=[...k.get(e.query)?.keys()??[]].filter(e=>e!==t);n.length>0&&queueMicrotask(()=>M(e.query,n)),fe(e.query,t)}else if(e.action.type===`success`&&!e.action.manual){let t=no.get(e.query);t!==void 0&&(ro.set(e.query,t),fe(e.query,t),queueMicrotask(()=>{pe(e.query,t),M(e.query,[t])}))}else if(e.action.type===`error`){let t=no.get(e.query);t!==void 0&&(fe(e.query,t),queueMicrotask(()=>M(e.query,[t])))}else if(e.action.type===`setState`&&e.action.state.fetchStatus===`idle`){let t=no.get(e.query);t!==void 0&&queueMicrotask(()=>M(e.query,[t]))}}let t=K(e.query.queryKey);if(e.type===`removed`&&(A.delete(e.query),_e.has(t))){if(w===`eager`){F.get(t)?.(),F.delete(t),Ot(t),D.subscriberCount>0&&Ee();return}At(t)}});return{loadSubset:w===`eager`?void 0:pt,unloadSubset:w===`eager`?void 0:e=>{let t=j.get(e);if(t){t.delete(t.values().next().value),t.size===0&&j.delete(e);return}let n=K(st(e)),r=(I.get(n)||0)-1;r<=0?(I.set(n,0),At(n)):I.set(n,r)},cleanup:()=>{ke===h&&(ke=void 0),j.clear(),Ee=()=>{},De=()=>!1,Dt(),Et(),B.forEach(e=>{clearTimeout(e)}),B.clear(),ze.forEach(e=>{e.reject(new Ir)}),ze.clear(),R.clear(),Oe===Be&&(Oe=()=>void 0);let e=new Set([...E.observers.keys(),...N.keys()]);for(let t of e)jt(t);Mt();for(let t of[...A])[...le(t)].some(t=>e.has(t))&&(w===`eager`||ne.has(t)&&t.getObserversCount()===0)&&i.getQueryCache().remove(t);for(let e of A)ao.get(e)?.delete(re);A.clear(),ne=new WeakSet}}},Fe=async(e,t)=>{let n=[..._e.values()];Ee();let r=ke,i=n.map(async n=>{let i=K(n),a=E.observers.get(i);if(!a)return;let o=Oe,s=a.getCurrentQuery(),c,l,u;try{let t=a.refetch({throwOnError:e?.throwOnError});s=a.getCurrentQuery(),c=a.getCurrentResult();let n=no.get(s);n!==void 0&&(l=ue(s,n,i)),u=await t}catch(e){let t=a.getCurrentResult(),n=De(i,t)?t:l?.result??t;throw l&&(l.result=n,l.settlement??=j(i,n)),e}let d=De(i,u)?u:l?.result??u;l&&(l.result=d,l.settlement??=j(i,d)),await new Promise(e=>queueMicrotask(e));let f=o(d)??o(u),p=l?.settlement??j(i,u)??j(i,c);if(ke!==r&&f===void 0&&p===void 0)throw new Ir;if(t){if(f?.type===`rejected`)throw f.error;if(f?.type===`pending`){let t=await f.promise;if(!t.isSuccess&&e?.throwOnError)throw t.error;return t}}return t&&!Ie()&&p&&(e?.throwOnError?await p:await p.catch(()=>void 0)),d});return await Promise.all(i)},Ie=()=>{if(D>0)return!0;for(let e of z?.collection._state.transactions.values()??[])if(e.state===`persisting`)return!0;return!1},Le=e=>Fe(e,!Ie()),L=(e,t)=>{if(r)i.setQueryData(e,e=>{if(!e||typeof e!=`object`)return e;if(Array.isArray(e))return t;let n=r(e);if(Array.isArray(n)){for(let r of Object.keys(e))if(e[r]===n)return{...e,[r]:t}}if(Array.isArray(e.data))return{...e,data:t};if(Array.isArray(e.items))return{...e,items:t};if(Array.isArray(e.results))return{...e,results:t};for(let n of Object.keys(e))if(Array.isArray(e[n]))return{...e,[n]:t};return e});else{let n=i.getQueryData(e);(n===void 0||Array.isArray(n))&&i.setQueryData(e,t)}},Re=()=>{be++;for(let[e,t]of E.observers)t.getCurrentQuery().state.fetchStatus!==`fetching`&&xe.set(e,be);return be},ze=(e,t)=>{let n=Te>0||Ce!==void 0;for(let e of E.observers.values())e.getCurrentQuery().state.fetchStatus===`fetching`&&(n=!0);if(!n)Se.clear();else for(let n of e)Se.set(n,t)},R=e=>{let t=Promise.all([Ce,e]).then(()=>{Ce===t&&(Ce=void 0)},()=>{Ce===t&&(Ce=void 0)});Ce=t},Be=e=>{we=!0;try{Ve(e)}finally{we=!1}},Ve=e=>{if(w===`on-demand`){let e=z?.collection.deferDataRefresh,t=new Set,n=new Map;for(let e of E.observers.values()){let t=e.getCurrentQuery();n.set(t,(n.get(t)??0)+1)}let r=async(e,t,n)=>{try{await e.fetch(void 0,{cancelRefetch:!1})}catch{return}if([...t].some(t=>oe.get(t)===n.get(t)&&!me(t,e))&&i.getQueryCache().get(e.queryHash)===e&&!e.isDisabled())try{await e.fetch(void 0,{cancelRefetch:!1})}catch{}};for(let[n,a]of E.observers){if((I.get(n)??0)<=0)continue;let o=a.getCurrentQuery();if(!ge(a))continue;let s=he(n,o);t.add(o);let c=ne.has(o);o.invalidate(),ye.set(n,{data:o.state.data,dataUpdateCount:o.state.dataUpdateCount});let l=()=>{c&&i.getQueryCache().get(o.queryHash)===o&&(o.getObserversCount()>0?(o.invalidate(),o.isDisabled()||r(o,new Set([n]),new Map([[n,s]]))):i.getQueryCache().remove(o))},u=async()=>{if(E.observers.get(n)!==a||(I.get(n)??0)<=0){l();return}if(me(n,a.getCurrentQuery())||(await a.refetch().catch(()=>void 0))?.isError||oe.get(n)!==s)return;let e=a.getCurrentQuery();me(n,e)||(E.observers.get(n)===a&&(I.get(n)??0)>0&&ge(a)?await a.refetch().catch(()=>void 0):l())};e?e.then(u,u):u()}for(let e of[...A]){if(t.has(e)||[...ao.get(e)??[]].some(e=>e!==re))continue;let a=n.get(e)??0;if(e.getObserversCount()>a){if(a>0)continue;let t=le(e),n=new Map;for(let r of t)n.set(r,he(r,e));e.invalidate(),e.isDisabled()||r(e,t,n);continue}i.getQueryCache().remove(e)}return}let t=e(),n=[...A];if(n.length>0)for(let e of n)L(e.queryKey,t);else L(T,t)},z=null,He=e=>{let n,r=t=>{let r=e.commit(t),i=Yi(r);if(i!==!0){let e=i.then(()=>{n===e&&(n=void 0)},()=>{n===e&&(n=void 0)});n=e}return r},a={...e,commit:r},{begin:o,write:s,collection:c}=a,l=!1,u=()=>{l||=(i.mount(),!0)},d=()=>{l&&=(i.unmount(),!1)};u();let f=typeof t==`function`?t({}):t,p={collection:c,queryClient:i,queryKey:f,getKey:v,begin:o,write:s,commit:r,updateCacheData:Be,reserveDirectWrite:Re,claimDirectWriteKeys:ze,noteWaitingDirectWrite:R,earlierCommits:()=>n};z=p;let m=Pe(a),h=typeof m==`function`?{cleanup:m}:typeof m==`object`?m:{};return{...h,cleanup:()=>(z===p&&(z=null),Ja(h.cleanup,d))}},B=qa(()=>z);async function Ue(e){(typeof e==`object`&&e||typeof e==`function`)&&`refetch`in e&&e.refetch===!1||(Mi(`query-collection-auto-refetch`,"[TanStack DB] DEPRECATED: QueryCollection handlers currently auto-refetch after completion. This behavior will be removed in v1.0. To prepare: (1) Add `await collection.utils.refetch()` and temporarily return `{ refetch: false }` to avoid a second refetch, or (2) Return `{ refetch: false }` to opt out now if you don't need it. See: https://tanstack.com/db/latest/docs/collections/query-collection#controlling-refetch-behavior"),await Fe(void 0,!1))}let We=async(e,t)=>{D++;try{return await e(t)}finally{D--}},Ge=y?async e=>{await Ue(await We(y,e)??{})}:void 0,Ke=b?async e=>{await Ue(await We(b,e)??{})}:void 0,qe=x?async e=>{await Ue(await We(x,e)??{})}:void 0,Je=new oo(E,Le,B),Ye=Zi({sync:He},(e,t,n)=>{let r=t;for(let e of Object.keys(B)){let t=r[e];r[e]=(...e)=>(n(),t(...e))}return e}),V={...C,getKey:v,syncMode:w,sync:Ye,onInsert:Ge,onUpdate:Ke,onDelete:qe,utils:Je};return Ta(V,t=>so({...e,queryClient:t.getDependency(`queryClient`)??e.queryClient,id:V.id}))}async function co(e,t,n){for(let r of e){if(!r.wrapMutation)continue;let e=await r.wrapMutation(t,n);if(e?.handled)return{handled:!0,result:e.result}}return{handled:!1}}var lo=new WeakMap,uo=new WeakMap,fo=new Set([`__proto__`,`constructor`,`prototype`]),po=1e7,mo=1e3,ho=1e3,go=1e3,_o=1e6,vo=1e3,yo=65536;function X(e,t,n){let r=new TextEncoder().encode(t).byteLength;if(r>e.remaining)throw TypeError(`${n} exceeds the maximum byte limit`);e.remaining-=r}function bo(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`${t} must be a plain object`);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`${t} must be a plain object`);for(let n of Object.keys(e))if(fo.has(n))throw TypeError(`${t} contains a forbidden key`);return e}function xo(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw TypeError(`${n} contains ${t}`)}function So(e,t,n=2048){if(typeof e!=`string`||e.length===0||e.length>n)throw TypeError(`${t} must be a bounded non-empty string`);return e}function Co(e,t){if(!Number.isSafeInteger(e)||e<0)throw TypeError(`${t} must be a non-negative safe integer`);return e}function wo(e,t,n){if(typeof e==`string`){if(e.length>65536)throw TypeError(`${t} exceeds the string limit`);return X(n,JSON.stringify(e),t),e}if(e===null||typeof e==`boolean`||typeof e==`number`&&Number.isFinite(e))return X(n,JSON.stringify(e),t),e;throw TypeError(`${t} must be a JSON scalar`)}function To(e,t,n,r=0){if(r>16)throw TypeError(`${t} exceeds JSON depth`);if(typeof e==`string`){if(e.length>65536)throw TypeError(`${t} exceeds the string limit`);return X(n,JSON.stringify(e),t),e}if(e===null||typeof e==`boolean`||typeof e==`number`&&Number.isFinite(e))return X(n,JSON.stringify(e),t),e;if(Array.isArray(e)){if(e.length>1e3)throw TypeError(`${t} exceeds the container-item limit`);X(n,`[`,t);let i=[];for(let[a,o]of e.entries())a>0&&X(n,`,`,t),i.push(To(o,`${t}[${a}]`,n,r+1));return X(n,`]`,t),i}let i=bo(e,t);if(Object.keys(i).length>1e3)throw TypeError(`${t} exceeds the container-item limit`);let a=Object.create(null);X(n,`{`,t);for(let[e,o]of Object.keys(i).sort().entries()){if(o.length>65536)throw TypeError(`${t}.${o} exceeds the string limit`);e>0&&X(n,`,`,t),X(n,JSON.stringify(o),`${t}.${o}`),X(n,`:`,t),a[o]=To(i[o],`${t}.${o}`,n,r+1)}return X(n,`}`,t),a}function Eo(e){let t=bo(e,`Data query total`),n=So(t.kind,`Data query total kind`);if(n===`unavailable`)return xo(t,[`kind`,`reason`],`Data query unavailable total`),{kind:n,...t.reason===void 0?{}:{reason:So(t.reason,`Data query total reason`)}};if(n!==`exact`&&n!==`estimated`)throw TypeError(`Data query total kind is invalid`);return xo(t,[`kind`,`value`,`asOf`],`Data query total`),{kind:n,value:Co(t.value,`Data query total value`),...t.asOf===void 0?{}:{asOf:So(t.asOf,`Data query total asOf`,128)}}}function Do(e,t){if(e===void 0)return;if(!Array.isArray(e))throw TypeError(`Data query facets must be an array`);if(e.length>20)throw TypeError(`Data query facets exceed the maximum`);let n=new Set;return e.map((e,r)=>{let i=bo(e,`Data query facet ${r}`);xo(i,[`field`,`values`,`truncated`],`Data query facet`);let a=So(i.field,`Data query facet field`);if(n.has(a))throw TypeError(`Data query facet fields must be unique`);if(n.add(a),!Array.isArray(i.values))throw TypeError(`Data query facet values must be an array`);if(i.values.length>1e3)throw TypeError(`Data query facet values exceed the maximum`);if(typeof i.truncated!=`boolean`)throw TypeError(`Data query facet truncated must be boolean`);return{field:a,values:i.values.map((e,n)=>{let i=bo(e,`Data query facet ${r} value ${n}`);return xo(i,[`value`,`count`],`Data query facet value`),{value:wo(i.value,`Data query facet value`,t),count:Co(i.count,`Data query facet count`)}}),truncated:i.truncated}})}function Oo(e){let t=bo(e,`Data query result`);if(xo(t,[`version`,`requestId`,`queryFingerprint`,`identityField`,`rows`,`page`,`total`,`facets`,`freshness`,`warnings`,`truncated`],`Data query result`),t.version!==1)throw TypeError(`Unsupported data query version`);let n=So(t.identityField,`Data query identity field`);if(!Array.isArray(t.rows))throw TypeError(`Data query rows must be an array`);if(t.rows.length>1e3)throw TypeError(`Data query rows exceed the maximum`);let r={remaining:po},i=t.rows.map((e,t)=>{let i=bo(To(e,`Data query row ${t}`,r),`Data query row ${t}`),a=i[n];if(typeof a!=`string`&&typeof a!=`number`||a===``)throw TypeError(`Data query row is missing its stable identity`);return i}),a;if(t.page!==void 0){let e=bo(t.page,`Data query page`);xo(e,[`kind`,`limit`,`offset`,`nextCursor`,`hasMore`],`Data query page`);let n=So(e.kind,`Data query page kind`);if(n!==`offset`&&n!==`cursor`)throw TypeError(`Data query page kind is invalid`);if(typeof e.hasMore!=`boolean`)throw TypeError(`Data query page hasMore must be boolean`);let r=Co(e.limit,`Data query page limit`);if(r===0)throw TypeError(`Data query page limit must be positive`);if(r>1e3)throw TypeError(`Data query page limit exceeds the maximum`);if(n===`offset`){if(e.nextCursor!==void 0||e.offset===void 0)throw TypeError(`Offset data query page must carry only an offset`);let t=Co(e.offset,`Data query offset`);if(t>1e6)throw TypeError(`Data query offset exceeds the maximum`);a={kind:n,limit:r,offset:t,hasMore:e.hasMore}}else{if(e.offset!==void 0)throw TypeError(`Cursor data query page cannot carry an offset`);let t=e.nextCursor===void 0?void 0:So(e.nextCursor,`Data query next cursor`);if(e.hasMore!==!!t)throw TypeError(`Cursor data query page hasMore must match nextCursor`);a={kind:n,limit:r,hasMore:e.hasMore,...t===void 0?{}:{nextCursor:t}}}}if(a&&i.length>a.limit)throw TypeError(`Data query rows exceed the declared page limit`);let o=bo(t.freshness,`Data query freshness`);xo(o,[`state`,`asOf`],`Data query freshness`);let s=So(o.state,`Data query freshness state`);if(s!==`fresh`&&s!==`stale`&&s!==`unknown`)throw TypeError(`Data query freshness state is invalid`);if(!Array.isArray(t.warnings)||t.warnings.length>100||t.warnings.some(e=>typeof e!=`string`))throw TypeError(`Data query warnings must be strings`);if(typeof t.truncated!=`boolean`)throw TypeError(`Data query truncated must be boolean`);let c=Do(t.facets,r),l=t.warnings.map(e=>So(e,`Data query warning`,512)),u={version:1,requestId:So(t.requestId,`Data query request id`),queryFingerprint:So(t.queryFingerprint,`Data query fingerprint`),identityField:n,rows:i,...a===void 0?{}:{page:a},total:Eo(t.total),...c===void 0?{}:{facets:c},freshness:{state:s,...o.asOf===void 0?{}:{asOf:So(o.asOf,`Data query freshness asOf`,128)}},warnings:[...new Set(l)].sort(),truncated:t.truncated};if(new TextEncoder().encode(JSON.stringify(u)).byteLength>1e7)throw TypeError(`Data query result exceeds the maximum byte limit`);return u}async function ko(e,t,n){let r=Oo(await e.query(t,n));if(r.requestId!==t.requestId)throw TypeError(`Data query result request id does not match its request`);return r}var Ao=1e6,jo=1e3,Mo=new Set([`__proto__`,`constructor`,`prototype`]);function No(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`${t} must be a plain object`);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`${t} must be a plain object`);for(let n of Object.keys(e))if(Mo.has(n))throw TypeError(`${t} contains a forbidden key`);return e}function Po(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw TypeError(`${n} contains ${t}`)}function Fo(e,t){if(typeof e!=`string`||e.length===0||e.length>256)throw TypeError(`${t} must be a bounded non-empty string`);return e}function Io(e,t,n=0){if(n>16)throw TypeError(`${t} exceeds JSON depth`);if(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`&&Number.isFinite(e))return e;if(Array.isArray(e)){if(e.length>1e3)throw TypeError(`${t} exceeds the container-item limit`);return e.map((e,r)=>Io(e,`${t}[${r}]`,n+1))}let r=No(e,t);if(Object.keys(r).length>1e3)throw TypeError(`${t} exceeds the container-item limit`);let i=Object.create(null);for(let[e,a]of Object.entries(r))i[e]=Io(a,`${t}.${e}`,n+1);return i}function Lo(e){let t=No(e,`Data surface identity`);Po(t,[`surfaceId`,`kind`,`subject`],`Data surface identity`);let n=t.kind;if(![`table`,`list`,`report`,`custom`].includes(n))throw TypeError(`Data surface identity kind is invalid`);let r={surfaceId:Fo(t.surfaceId,`Data surface identity surfaceId`),kind:n};if(t.subject!==void 0){let e=No(t.subject,`Data surface identity subject`);Po(e,[`type`,`id`,`label`],`Data surface identity subject`),r.subject={type:Fo(e.type,`Data surface identity subject type`),id:Fo(e.id,`Data surface identity subject id`),...e.label===void 0?{}:{label:Fo(e.label,`Data surface identity subject label`)}}}return r}function Ro(e,t){return e.surfaceId===t.surfaceId&&e.kind===t.kind&&e.subject?.type===t.subject?.type&&e.subject?.id===t.subject?.id}function zo(e){let t=JSON.stringify(e);if(t===void 0||new TextEncoder().encode(t).byteLength>1e6)throw TypeError(`Data surface action result exceeds the maximum byte limit`);let n=No(e,`Data surface action result`);if(Po(n,[`version`,`requestId`,`identity`,`actionId`,`phase`,`ok`,`reason`,`confirmationToken`,`details`],`Data surface action result`),n.version!==1||n.phase!==`preview`&&n.phase!==`apply`)throw TypeError(`Data surface action result has an invalid version or phase`);if(typeof n.ok!=`boolean`)throw TypeError(`Data surface action result ok must be boolean`);let r={version:1,requestId:Fo(n.requestId,`Data surface action result requestId`),identity:Lo(n.identity),actionId:Fo(n.actionId,`Data surface action result actionId`),phase:n.phase,ok:n.ok};if(n.reason!==void 0&&(r.reason=Fo(n.reason,`Data surface action result reason`)),n.confirmationToken!==void 0&&(r.confirmationToken=Fo(n.confirmationToken,`Data surface action result confirmationToken`)),n.details!==void 0){let e=Io(n.details,`Data surface action result details`);if(Array.isArray(e)||typeof e!=`object`||!e)throw TypeError(`Data surface action result details must be an object`);r.details=e}return r}async function Bo(e,t,n){let r=zo(await e.action(t,n));if(r.requestId!==t.requestId||r.actionId!==t.actionId||r.phase!==t.phase||!Ro(r.identity,t.identity))throw TypeError(`Data surface action result does not match its request`);return r}var Vo=new Set([`idempotency_in_progress`,`background_unavailable`,`execution_failed`]),Ho=new Set([`auth_required`,`unauthenticated`,`unauthorized`]),Uo=new Set([`stale_revision`,`stale_preview`]),Wo=new Set([`invalid_or_expired_confirmation`,`confirmation_mismatch`,`confirmation_replayed`,`confirmation_required`,`stale_preview`]);function Go(e){if(e.ok)return{status:`applied`};let t=e.reason??`rejected`;return Vo.has(t)?{status:`rejected`,reason:`write_failed`}:Ho.has(t)?{status:`rejected`,reason:`auth_required`}:Uo.has(t)?{status:`conflict`,reason:`stale_write`}:{status:`rejected`,reason:t}}function Ko(e){let t=e.classify??Go;return async n=>{let r=n.pinned;r===void 0&&(r={request:await e.request(n)},await n.pin(r));let i=r.request,a=e=>`${n.idempotencyKey}:${n.attempt}:${e}`,o=t=>Bo(e.transport,{...i,version:1,phase:`apply`,requestId:a(`apply`),idempotencyKey:n.idempotencyKey,...t===void 0?{}:{confirmationToken:t}});if(!e.preview)return t(await o(void 0));if(r.confirmationToken!==void 0){let e=await o(r.confirmationToken);if(e.ok||!Wo.has(e.reason??``))return t(e)}let s=await Bo(e.transport,{...i,version:1,phase:`preview`,requestId:a(`preview`)});return s.ok?(r={request:i,...s.confirmationToken===void 0?{}:{confirmationToken:s.confirmationToken}},await n.pin(r),t(await o(s.confirmationToken))):t(s)}}function qo(e){let t=e=>e===void 0?``:`_${encodeURIComponent(e)}`;return`smrt-web:${encodeURIComponent(e.apiBase)}:${t(e.tenantId)}:${t(e.identityId)}:${encodeURIComponent(e.manifestHash)}`}var Jo=new Map;function Yo(e,t){let n=Jo.get(e);return n||(n=new Set,Jo.set(e,n)),n.add(t),()=>{let n=Jo.get(e);n&&(n.delete(t),n.size===0&&Jo.delete(e))}}async function Xo(e){let t=Jo.get(e);if(!t||t.size===0){Jo.delete(e);return}let n=[...t];Jo.delete(e),await Promise.allSettled(n.map(e=>e.clear()))}function Zo(e,t){let n=Jo.get(e);if(!n)return!1;for(let e of n)if(e.kind===t)return!0;return!1}function Qo(){return[...Jo.keys()]}var Z=`outbox`,$o=`state`;function es(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB request failed`))})}function ts(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB transaction failed`)),e.onabort=()=>n(e.error??Error(`[smrt-web] IndexedDB transaction aborted`))})}async function ns(){let e=globalThis.indexedDB;if(!e)return!1;let t=`__smrt_web_outbox_probe__`;try{(await new Promise((n,r)=>{let i=e.open(t,1);i.onsuccess=()=>n(i.result),i.onerror=()=>r(i.error??Error(`probe failed`)),i.onblocked=()=>r(Error(`probe blocked`))})).close();try{e.deleteDatabase(t)}catch{}return!0}catch{return!1}}var rs=class{db;dbName;constructor(e,t){this.db=e,this.dbName=t}async enqueue(e){let t=Date.now(),n={itemId:e.itemId,object:e.object,op:e.op,id:e.id,payload:e.payload,baseUpdatedAt:e.baseUpdatedAt,...e.transport===void 0?{}:{transport:e.transport},state:`pending`,attempts:0,nextAttemptAt:0,enqueuedAt:t},r=this.db.transaction(Z,`readwrite`),i=await es(r.objectStore(Z).add(n));return await ts(r),i}async markState(e,t){let n=this.db.transaction(Z,`readwrite`),r=n.objectStore(Z),i=await es(r.get(e));if(!i){await ts(n);return}let a={...i,...t,seq:e};await es(r.put(a)),await ts(n)}async listPending(e){let t=this.db.transaction(Z,`readonly`),n=await es(t.objectStore(Z).index($o).getAll(IDBKeyRange.only(`pending`)));return await ts(t),n.filter(t=>t.nextAttemptAt<=e).sort((e,t)=>(e.seq??0)-(t.seq??0))}async remove(e){let t=this.db.transaction(Z,`readwrite`);await es(t.objectStore(Z).delete(e)),await ts(t)}async all(){let e=this.db.transaction(Z,`readonly`),t=await es(e.objectStore(Z).getAll());return await ts(e),t.sort((e,t)=>(e.seq??0)-(t.seq??0))}async clear(){let e=this.db.transaction(Z,`readwrite`);await es(e.objectStore(Z).clear()),await ts(e)}close(){this.db.close()}};function is(e){let t=globalThis.indexedDB;return t?new Promise((n,r)=>{let i=t.open(e,1);i.onupgradeneeded=()=>{let e=i.result;e.objectStoreNames.contains(`outbox`)||e.createObjectStore(Z,{keyPath:`seq`,autoIncrement:!0}).createIndex($o,`state`,{unique:!1})},i.onsuccess=()=>n(new rs(i.result,e)),i.onerror=()=>r(i.error??Error(`[smrt-web] failed to open outbox database "${e}"`)),i.onblocked=()=>r(Error(`[smrt-web] opening outbox database "${e}" was blocked`))}):Promise.reject(Error(`[smrt-web] IndexedDB is unavailable in this environment`))}function as(){let e=globalThis.navigator?.locks;if(e&&typeof e.request==`function`)return e}var os=!1;function ss(e,t,n){let r=as();if(!r){os||(os=!0,console.warn(`[smrt-web] Web Locks API unavailable — the offline outbox falls back to single-tab leadership; the multi-tab exactly-one-replayer guarantee does not hold across tabs.`));let e=!1;return queueMicrotask(()=>{e||t()}),()=>{e||(e=!0,n())}}let i=new AbortController,a,o=!1,s=!1;return r.request(e,{signal:i.signal,mode:`exclusive`},()=>(s=!0,o?Promise.resolve():(t(),new Promise(e=>{a=e})))).catch(e=>{e?.name!==`AbortError`&&console.warn(`[smrt-web] outbox leader lock request failed`,e),o||(o=!0,n())}),()=>{o||(o=!0,s&&a?a():i.abort(),n())}}var cs=1e3,ls=[`sync`,`apply`],us={initialDelayMs:1e3,multiplier:2,maxDelayMs:6e4};function ds(e,t,n=Math.random){let r=Math.max(0,e-1),i=t.initialDelayMs*t.multiplier**r,a=Math.min(t.maxDelayMs,i),o=.5+n()*.5;return Math.round(a*o)}function fs(e){return e===`insert`?`create`:e}var ps=`sync-apply`;function ms(e){return e.transport===void 0?ps:`transport:${e.transport}`}function hs(e,t){let n=`smrt-web-outbox-leader:${e}`;return t===ps?n:`${n}:${t}`}function gs(){let e=globalThis.crypto;return e?.randomUUID?e.randomUUID():`item-${Date.now()}-${Math.random().toString(36).slice(2)}`}function _s(){return globalThis.navigator?.onLine===!1}var vs=class{config;listenersByObject=new Map;syncApply;refCount=0;queue;ready;degraded=!1;leaders=new Map;unregisterResource;disposed=!1;paused=!1;wipesPending=0;pendingWipes=new Set;draining=!1;activeDrain;drainQueued=!1;backoffTimer;onlineListener;constructor(e){this.config=e,this.ready=this.open(),this.registerForWipe(),this.wireOnlineListener(),this.ready.then(()=>{this.disposed||this.drain()})}async open(){if(!await ns()){this.degraded=!0,console.warn(`[smrt-web] IndexedDB unavailable — the offline outbox is disabled; offline writes will not be durable.`);return}try{this.queue=await is(this.config.namespace)}catch(e){this.degraded=!0,console.warn(`[smrt-web] failed to open the offline outbox`,e)}}registerForWipe(){this.unregisterResource||this.disposed||(this.unregisterResource=this.config.registerResource(async()=>{this.unregisterResource=void 0,this.wipesPending+=1;let e=(async()=>{try{await this.ready,await this.queue?.clear()}finally{--this.wipesPending,this.disposed||this.drain()}})();this.pendingWipes.add(e);try{await e}finally{this.pendingWipes.delete(e)}}))}wireOnlineListener(){let e=globalThis;if(typeof e.addEventListener!=`function`)return;let t=()=>{this.drain()};e.addEventListener(`online`,t),this.onlineListener=t}acquireRoute(e){let t=this.leaders.get(e);if(t){t.refs+=1;return}let n=hs(this.config.namespace,e),r={release:()=>{},isLeader:!1,refs:1};this.leaders.set(e,r),r.release=ss(n,()=>{r.isLeader=!0,this.drain()},()=>{r.isLeader=!1})}releaseRoute(e){let t=this.leaders.get(e);t&&(--t.refs,!(t.refs>0)&&(this.leaders.delete(e),this.settled().then(()=>t.release())))}leads(e){return this.leaders.get(e)?.isLeader===!0}registerCollection(e){this.refCount+=1;let t=e.transport?ms({transport:e.object}):e.syncApply?ps:void 0,n={onSyncStateChange:e.onSyncStateChange,onConflict:e.onConflict,transport:e.transport,route:t},r=this.listenersByObject.get(e.object);return r||(r=new Set,this.listenersByObject.set(e.object,r)),r.add(n),e.syncApply&&!this.syncApply&&(this.syncApply=e.syncApply),t&&!this.disposed&&this.acquireRoute(t),n}transportFor(e){let t=this.listenersByObject.get(e);if(t){for(let e of t)if(e.transport)return e.transport}}async unregisterCollection(e,t){let n=this.listenersByObject.get(e);if(n?.delete(t)){n.size===0&&this.listenersByObject.delete(e);let r=t.route;r&&this.releaseRoute(r)}return this.refCount=Math.max(0,this.refCount-1),this.refCount>0?!1:(await this.dispose(),!0)}get referenceCount(){return this.refCount}async enqueue(e){if(await this.ready,!this.queue||this.degraded)return;this.registerForWipe();let t=gs(),n=fs(e.kind),r=e.rowId||t,i=n===`delete`&&e.transport===void 0?void 0:e.data;return await this.queue.enqueue({itemId:t,object:e.object,op:n,id:r,payload:i,baseUpdatedAt:e.baseUpdatedAt,transport:e.transport}),this.emit({itemId:t,rowId:r,object:e.object,state:`pending`,attempts:0}),this.paused=!1,this.drain(),t}async retry(e){if(await this.ready,!this.queue)return;let t=(await this.queue.all()).find(t=>t.itemId===e&&t.state===`pending`);t&&t.seq!==void 0&&(await this.queue.markState(t.seq,{nextAttemptAt:0}),this.paused=!1,this.drain())}async snapshot(){return await this.ready,this.queue?(await this.queue.all()).map(e=>({itemId:e.itemId,object:e.object,op:e.op,rowId:e.id,state:e.state,attempts:e.attempts,nextAttemptAt:e.nextAttemptAt,lastError:e.lastError,...e.transport===void 0?{}:{transport:e.transport}})):[]}emit(e){let t=this.listenersByObject.get(e.object);if(t)for(let n of t)try{n.onSyncStateChange?.(e)}catch(e){console.warn(`[smrt-web] onSyncStateChange callback threw`,e)}}emitConflict(e){let t=this.listenersByObject.get(e.object);if(t)for(let n of t)try{n.onConflict?.(e)}catch(e){console.warn(`[smrt-web] onConflict callback threw`,e)}}drain(){return this.draining?(this.drainQueued=!0,this.activeDrain??Promise.resolve()):(this.draining=!0,this.activeDrain=(async()=>{try{for(;this.drainQueued=!1,await this.drainOnce(),this.drainQueued;);}finally{this.draining=!1,this.activeDrain=void 0}})(),this.activeDrain)}settled(){return(this.activeDrain??Promise.resolve()).catch(()=>void 0)}async drainOnce(){if(this.disposed||this.wipesPending>0||this.paused||this.degraded||!this.queue||_s())return;let e=new Map;for(let t of await this.queue.all()){if(t.state!==`pending`)continue;let n=ms(t);if(!this.leads(n))continue;let r=e.get(n);r?r.push(t):e.set(n,[t])}let t=Date.now();for(let[n,r]of e){let e=r.findIndex(e=>e.nextAttemptAt>t),i=e===-1?r:r.slice(0,e);if(n===ps){let e=this.syncApply;if(!e)continue;for(let t=0;t<i.length&&!(this.disposed||this.paused||!this.leads(n));t+=cs){let n=i.slice(t,t+cs);if(!await this.sendBatch(n,e))break}}else for(let e of i){if(this.disposed||this.paused||!this.leads(n))break;let t=this.transportFor(e.transport??e.object);if(!t||!await this.sendCommand(e,t))break}if(this.disposed||this.paused)return}await this.scheduleNextBackoff()}async sendCommand(e,t){this.emit({itemId:e.itemId,rowId:e.id,object:e.object,state:`uploading`,attempts:e.attempts});let n;try{n=await t({idempotencyKey:e.itemId,name:e.transport??e.object,op:e.op,rowId:e.id,...e.payload===void 0?{}:{payload:e.payload},...e.baseUpdatedAt===void 0?{}:{baseUpdatedAt:e.baseUpdatedAt},attempt:e.attempts+1,...e.pinned===void 0?{}:{pinned:e.pinned},pin:async t=>{if(e.seq===void 0||!this.queue)throw Error(`[smrt-web] outbox row is no longer queued`);await this.queue.markState(e.seq,{pinned:t}),e.pinned=t}})}catch{return await this.requeueRow(e,`network error during command replay`),!1}let r=xs(e,n);return r?this.applyResult(e,r):(await this.requeueRow(e,`unexpected command result shape`),!1)}async sendBatch(e,t){for(let t of e)this.emit({itemId:t.itemId,rowId:t.id,object:t.object,state:`uploading`,attempts:t.attempts});let n=e.map(e=>({itemId:e.itemId,object:e.object,op:e.op,id:e.id,payload:e.payload,baseUpdatedAt:e.baseUpdatedAt})),r;try{r=await this.postBatch(n,t)}catch{return await this.requeueBatch(e,`network error during sync`),!1}if(!r)return await this.requeueBatch(e,`unexpected sync response shape`),!1;let i=!0;for(let t=0;t<e.length;t+=1){let n=e[t],a=r[t];if(!a){await this.requeueRow(n,`missing result for item`),i=!1;continue}let o=await this.applyResult(n,a);i&&=o}return i}async postBatch(e,t){let n=`${t.basePath}/${ls.join(`/`)}`,r=await t.fetchFn(n,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({items:e})});if(!r.ok)throw Error(`[smrt-web] sync/apply returned HTTP ${r.status}`);let i=await r.json().catch(()=>null);if(i&&Array.isArray(i.results))return i.results}async applyResult(e,t){if(e.seq===void 0)return!0;if(t.status===`applied`)return await this.finishSynced(e),!0;if(t.status===`conflict`){let n=t.reason===`create_conflict`?`create_conflict`:`stale_write`;return this.emitConflict({itemId:e.itemId,object:e.object,rowId:e.id,reason:n,serverUpdatedAt:t.updatedAt}),await this.finishSynced(e),!0}let n=t.reason;return n===`auth_required`||n===`forbidden`?(this.paused=!0,await this.queue?.markState(e.seq,{state:`pending`,lastError:`sync ${n}`}),this.emit({itemId:e.itemId,rowId:e.id,object:e.object,state:`pending`,attempts:e.attempts,error:`sync ${n}`}),!1):n===`write_failed`?(await this.requeueRow(e,`sync write_failed`),!1):(await this.queue?.remove(e.seq),this.emit({itemId:e.itemId,rowId:e.id,object:e.object,state:`failed`,attempts:e.attempts,error:n?`sync ${n}`:`sync rejected`}),!0)}async finishSynced(e){e.seq!==void 0&&await this.queue?.remove(e.seq),this.emit({itemId:e.itemId,rowId:e.id,object:e.object,state:`synced`,attempts:e.attempts})}async requeueBatch(e,t){for(let n of e)await this.requeueRow(n,t)}async requeueRow(e,t){if(e.seq===void 0)return;let n=e.attempts+1,r=ds(n,this.config.backoff,this.config.random),i=Date.now()+r;await this.queue?.markState(e.seq,{state:`pending`,attempts:n,nextAttemptAt:i,lastError:t}),this.emit({itemId:e.itemId,rowId:e.id,object:e.object,state:`pending`,attempts:n,error:t})}async scheduleNextBackoff(){if(this.disposed||this.paused||!this.queue)return;let e,t=new Set;for(let n of await this.queue.all()){if(n.state!==`pending`)continue;let r=ms(n);t.has(r)||(t.add(r),this.leads(r)&&(e=e===void 0?n.nextAttemptAt:Math.min(e,n.nextAttemptAt)))}if(e===void 0)return;let n=Math.max(0,e-Date.now());this.backoffTimer&&clearTimeout(this.backoffTimer);let r=globalThis;typeof r.setTimeout==`function`&&(this.backoffTimer=r.setTimeout(()=>{this.backoffTimer=void 0,this.drain()},n),this.backoffTimer.unref?.())}async dispose(){if(this.disposed)return;this.disposed=!0,this.backoffTimer&&=(clearTimeout(this.backoffTimer),void 0);let e=globalThis;this.onlineListener&&typeof e.removeEventListener==`function`&&(e.removeEventListener(`online`,this.onlineListener),this.onlineListener=void 0);let t=[...this.leaders.values()];this.leaders.clear(),await this.settled();for(let e of t)e.release();this.unregisterResource?.(),this.unregisterResource=void 0,await this.ready.catch(()=>void 0),await Promise.allSettled([...this.pendingWipes]),this.queue?.close(),this.queue=void 0,this.listenersByObject.clear()}},ys=new Map;function bs(e){let t=ys.get(e.namespace);return t||(t=new vs(e),ys.set(e.namespace,t)),t}function xs(e,t){if(!t||typeof t!=`object`)return;let{status:n,reason:r,updatedAt:i}=t,a={itemId:e.itemId,id:e.id,...typeof i==`string`?{updatedAt:i}:{}};if(n===`applied`)return{...a,status:n};if(n===`conflict`)return{...a,status:n,reason:r===`create_conflict`?`create_conflict`:`stale_write`};if(n===`rejected`&&typeof r==`string`&&r)return{...a,status:n,reason:r}}function Ss(e,t){let n=bs(e);return{engine:n,record:n.registerCollection(t)}}async function Cs(e,t,n,r){await t.unregisterCollection(n,r)&&ys.get(e)===t&&ys.delete(e)}var ws=`snapshots`,Ts=`::snapshots`;function Es(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB request failed`))})}function Ds(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB transaction failed`)),e.onabort=()=>n(e.error??Error(`[smrt-web] IndexedDB transaction aborted`))})}async function Os(){let e=globalThis.indexedDB;if(!e)return!1;let t=`__smrt_web_snapshot_probe__`;try{(await new Promise((n,r)=>{let i=e.open(t,1);i.onsuccess=()=>n(i.result),i.onerror=()=>r(i.error??Error(`probe failed`)),i.onblocked=()=>r(Error(`probe blocked`))})).close();try{e.deleteDatabase(t)}catch{}return!0}catch{return!1}}var ks=class{db;dbName;constructor(e,t){this.db=e,this.dbName=t}async load(e){let t=this.db.transaction(ws,`readonly`),n=await Es(t.objectStore(ws).get(e));if(await Ds(t),n&&Array.isArray(n.rows))return n.rows}async save(e,t){let n=this.db.transaction(ws,`readwrite`),r=n.objectStore(ws),i={collection:e,rows:t};await Es(r.put(i)),await Ds(n)}async remove(e){let t=this.db.transaction(ws,`readwrite`);await Es(t.objectStore(ws).delete(e)),await Ds(t)}async clear(){let e=this.db.transaction(ws,`readwrite`);await Es(e.objectStore(ws).clear()),await Ds(e)}close(){this.db.close()}};function As(e){let t=globalThis.indexedDB;if(!t)return Promise.reject(Error(`[smrt-web] IndexedDB is unavailable in this environment`));let n=`${e}${Ts}`;return new Promise((e,r)=>{let i=t.open(n,1);i.onupgradeneeded=()=>{let e=i.result;e.objectStoreNames.contains(`snapshots`)||e.createObjectStore(ws,{keyPath:`collection`})},i.onsuccess=()=>e(new ks(i.result,n)),i.onerror=()=>r(i.error??Error(`[smrt-web] failed to open snapshot database "${n}"`)),i.onblocked=()=>r(Error(`[smrt-web] opening snapshot database "${n}" was blocked`))})}var js=`meta`,Ms=`::meta`,Ns=`lastSeenManifestHash`;function Ps(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB request failed`))})}function Fs(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB transaction failed`)),e.onabort=()=>n(e.error??Error(`[smrt-web] IndexedDB transaction aborted`))})}var Is=class{db;dbName;constructor(e,t){this.db=e,this.dbName=t}async get(e){let t=this.db.transaction(js,`readonly`),n=await Ps(t.objectStore(js).get(e));return await Fs(t),n&&typeof n.value==`string`?n.value:void 0}async set(e,t){let n=this.db.transaction(js,`readwrite`),r={key:e,value:t};await Ps(n.objectStore(js).put(r)),await Fs(n)}async clear(){let e=this.db.transaction(js,`readwrite`);await Ps(e.objectStore(js).clear()),await Fs(e)}close(){this.db.close()}};function Ls(e){let t=globalThis.indexedDB;if(!t)return Promise.reject(Error(`[smrt-web] IndexedDB is unavailable in this environment`));let n=`${e}${Ms}`;return new Promise((e,r)=>{let i=t.open(n,1);i.onupgradeneeded=()=>{let e=i.result;e.objectStoreNames.contains(`meta`)||e.createObjectStore(js,{keyPath:`key`})},i.onsuccess=()=>e(new Is(i.result,n)),i.onerror=()=>r(i.error??Error(`[smrt-web] failed to open meta database "${n}"`)),i.onblocked=()=>r(Error(`[smrt-web] opening meta database "${n}" was blocked`))})}var Rs=/^smrt-web:[^:]*:(?:_[^:]*)?:(?:_[^:]*)?:[^:]*$/;function zs(e){return typeof e==`string`&&Rs.test(e)}function Bs(e){if(e!==void 0){for(let t of[Ts,Ms])if(e.endsWith(t)){let n=e.slice(0,-t.length);return zs(n)?n:void 0}return zs(e)?e:void 0}}function Vs(){return globalThis.indexedDB}async function Hs(){let e=new Set(Qo()),t=Vs();if(t&&typeof t.databases==`function`)for(let n of await t.databases()){let t=Bs(n.name);t!==void 0&&e.add(t)}return[...e].sort()}function Us(e){let t=e instanceof Date?e.getTime():typeof e==`number`?e:NaN;if(!Number.isFinite(t))throw TypeError(`pruneDurableNamespace requires olderThan as a valid Date or epoch milliseconds`);return t}function Ws(e,t){return new Promise((n,r)=>{let i=!1,a=e.open(t);a.onupgradeneeded=()=>{i=!0,a.transaction?.abort()},a.onsuccess=()=>{let e=a.result;if(i){e.close(),n(void 0);return}e.onversionchange=()=>e.close(),n(e)},a.onerror=e=>{if(i){e.preventDefault(),n(void 0);return}r(a.error??Error(`[smrt-web] failed to open durable database "${t}"`))},a.onblocked=()=>r(Error(`[smrt-web] opening durable database "${t}" was blocked`))})}function Gs(e,t){return typeof e.enqueuedAt==`number`&&e.enqueuedAt<t}function Ks(e,t){return new Promise((n,r)=>{let i=new Map,a=e.transaction(Z,`readonly`),o=a.objectStore(Z).openCursor();o.onsuccess=()=>{let e=o.result;if(!e)return;let n=e.value;if(Gs(n,t)){let e=ms(n);i.set(e,(i.get(e)??0)+1)}e.continue()},a.oncomplete=()=>n(i),a.onerror=()=>r(a.error??Error(`[smrt-web] IndexedDB transaction failed`)),a.onabort=()=>r(a.error??Error(`[smrt-web] IndexedDB transaction aborted`))})}function qs(e,t,n){return new Promise((r,i)=>{let a=0,o=e.transaction(Z,`readwrite`),s=o.objectStore(Z).openCursor();s.onsuccess=()=>{let e=s.result;if(!e)return;let r=e.value;ms(r)===n&&Gs(r,t)&&(e.delete(),a+=1),e.continue()},o.oncomplete=()=>r(a),o.onerror=()=>i(o.error??Error(`[smrt-web] IndexedDB transaction failed`)),o.onabort=()=>i(o.error??Error(`[smrt-web] IndexedDB transaction aborted`))})}function Js(){let e=globalThis.navigator?.locks;return e&&typeof e.request==`function`?e:void 0}async function Ys(e,t,n){let r=Js();return r?r.request(hs(e,t),{mode:`exclusive`,ifAvailable:!0},async e=>e===null?void 0:n()):Zo(e,`outbox`)?void 0:n()}async function Xs(e,t){if(!zs(e))throw TypeError(`pruneDurableNamespace requires a durableStoreNamespace() string`);let n=Us(t?.olderThan),r={removed:0,skipped:0},i=Vs();if(!i)return r;let a=await Ws(i,e);if(!a)return r;try{if(!a.objectStoreNames.contains(`outbox`))return r;let t=await Ks(a,n);for(let[i,o]of t){let t=await Ys(e,i,()=>qs(a,n,i));t===void 0?r.skipped+=o:r.removed+=t}return r}finally{a.close()}}function Zs(e){return{initialDelayMs:e?.initialDelayMs??us.initialDelayMs,multiplier:e?.multiplier??us.multiplier,maxDelayMs:e?.maxDelayMs??us.maxDelayMs}}var Qs=new Map;async function $s(e,t,n,r){let i=t.referenceCount;await Cs(e,t,n,r),i<=1&&Qs.get(e)===t&&Qs.delete(e)}function ec(e){let t=e.updatedAt??e.updated_at;if(typeof t==`string`)return t;if(t instanceof Date)return t.toISOString()}function tc(e){let t=qo(e.namespace),n=e.syncApplyBasePath??`/api/v1`,r=e.fetchFn??((...e)=>globalThis.fetch(...e)),i=Zs(e.backoff),a=e.transport,o=e.object.name,s,c;return{name:`offline-outbox`,onAttach(){let l=Ss({namespace:t,backoff:i,random:e.random,registerResource:e=>Yo(t,{kind:`outbox`,clear:e})},{object:o,onSyncStateChange:e.onSyncStateChange,onConflict:e.onConflict,...a?{transport:a}:{syncApply:{basePath:n,fetchFn:r}}});s=l.engine,c=l.record,Qs.set(t,s)},async wrapMutation(e){return!s||!await s.enqueue({kind:e.kind,object:o,rowId:e.key,data:e.data,baseUpdatedAt:e.baseUpdatedAt??ec(e.data),...a?{transport:o}:{}})?{handled:!1}:{handled:!0,result:e.data}},async teardown(){if(!s||!c)return;let e=s,n=c;s=void 0,c=void 0,await $s(t,e,o,n)}}}function nc(e){if(typeof e.name!=`string`||e.name.length===0)throw TypeError(`offlineCommandQueue requires a non-empty name`);if(typeof e.transport!=`function`)throw TypeError(`offlineCommandQueue requires a transport function`);let t=qo(e.namespace),n=e.name,r=Ss({namespace:t,backoff:Zs(e.backoff),random:e.random,registerResource:e=>Yo(t,{kind:`outbox`,clear:e})},{object:n,transport:e.transport,onSyncStateChange:e.onSyncStateChange,onConflict:e.onConflict}),i=r.engine,a=r.record;return Qs.set(t,i),{async enqueue(e){if(i)return i.enqueue({kind:e.op===`create`||e.op===void 0?`insert`:e.op,object:n,rowId:e.rowId??``,data:e.payload??{},baseUpdatedAt:e.baseUpdatedAt,transport:n})},snapshot:async()=>i?i.snapshot():[],retry:async e=>{await i?.retry(e)},async dispose(){let e=i;e&&(i=void 0,await $s(t,e,n,a))}}}function rc(e){let t=Qs.get(e);if(t)return{snapshot:()=>t.snapshot(),retry:e=>t.retry(e)}}function ic(e,t){e.unregister||=Yo(t,{kind:`persisted-collection`,clear:async()=>{e.wipeEpoch+=1,e.unregister=void 0,await(await e.ready)?.clear()}})}var ac=new Map,oc=!1;function sc(){oc||(oc=!0,console.warn(`[smrt-web] IndexedDB is unavailable; persistence is disabled (collections behave as non-persistent).`))}function cc(e){let t=ac.get(e);if(t)return t.refCount+=1,ic(t,e),t;let n={store:void 0,refCount:1,unregister:void 0,ready:Promise.resolve(void 0),wipeEpoch:0};return n.ready=(async()=>{if(!await Os()){sc();return}try{let t=await As(e);return n.store=t,t}catch{sc();return}})(),ac.set(e,n),ic(n,e),n}async function lc(e){let t=ac.get(e);t&&(--t.refCount,!(t.refCount>0)&&(ac.delete(e),await t.ready,t.unregister?.(),t.unregister=void 0,t.store?.close(),t.store=void 0))}function uc(e){let t=qo(e.namespace),n=e.collection,r=e.debounceMs??250,i,a,o,s,c=!1,l,u=!1,d=async()=>{for(;u&&!c;){if(u=!1,!i||!s)return;let e=await i.ready;if(c||!e)return;let t=s().map(e=>({...e}));try{await e.save(n,t)}catch{}}},f=()=>{u=!0,!l&&(l=d().finally(()=>{l=void 0,u&&!c&&f()}))},p=()=>{c||(o&&clearTimeout(o),o=setTimeout(()=>{o=void 0,f()},Math.max(0,r)),o.unref?.())};return{name:`persistence`,async warmStart(e){let r=cc(t);i=r,s=e.snapshot?()=>e.snapshot?.()??[]:void 0;let a=await r.ready;if(!a)return;let o=await a.load(n);if(o&&o.length!==0)return o},onAttach(e){i||=cc(t),!s&&e.snapshot&&(s=()=>e.snapshot?.()??[]),e.snapshot&&e.subscribe&&s&&(a=e.subscribe(()=>p()),p())},async teardown(){c=!0,o&&=(clearTimeout(o),void 0),a?.unsubscribe(),a=void 0,s=void 0,l&&await l;let e=i;i=void 0,e&&await lc(t)}}}function dc(e){if(!e||typeof e.surfaceId!=`string`||e.surfaceId.length===0||typeof e.kind!=`string`)throw TypeError(`persistDataSurface requires an identity with a surfaceId and kind`);return`data-surface:${JSON.stringify([e.kind,e.surfaceId,e.subject?.type??null,e.subject?.id??null])}`}function fc(e){let t=qo(e.namespace),n=dc(e.identity),r=e.debounceMs??250,i=cc(t),a=i.wipeEpoch,o=e=>e.wipeEpoch!==a,s,c,l=Promise.resolve(),u=()=>{c&&=(clearTimeout(c),void 0);let e=s;s=void 0;let t=i;return!e||!t||(l=l.then(async()=>{let r=await t.ready;if(r&&!o(t))try{await r.save(n,e)}catch{}})),l};return{async load(){let e=i;if(!e)return;let t=await e.ready;if(!t||o(e))return;let r=await t.load(n);if(r&&r.length!==0)return r},save(e){if(i){if(!Array.isArray(e))throw TypeError(`persistDataSurface.save requires an array of rows`);o(i)||(s=e.map(e=>({...e})),c&&clearTimeout(c),c=setTimeout(()=>{c=void 0,u()},Math.max(0,r)),c.unref?.())}},flush:()=>u(),async dispose(){i&&(await u(),i=void 0,await lc(t))}}}function pc(e){if(Array.isArray(e))return e.map(pc);if(e&&typeof e==`object`){let t=e;return Object.fromEntries(Object.keys(t).sort().map(e=>[e,pc(t[e])]))}return e}function Q(e){let{requestId:t,...n}=e;return JSON.stringify(pc(n))}function mc(e,t){return e.requestId===t.requestId?e:{...e,requestId:t.requestId}}function $(){if(typeof DOMException<`u`)return new DOMException(`The operation was aborted`,`AbortError`);let e=Error(`The operation was aborted`);return e.name=`AbortError`,e}function hc(e){return!!e&&typeof e==`object`&&e.name===`AbortError`}function gc(e){if(e.page)return e.page.kind,{...e.page}}function _c(e,t,n={}){let r=n.staleTimeMs??3e4,i=new Map,a=new Map,o=new Map,s=0,c=new Set,l,u,d=new Set,f=0,p,m,h=0,g=!1,_={rows:[],page:void 0,total:void 0,loading:!1,refreshing:!1,stale:!1,error:null,lastUpdated:void 0,result:void 0},v=e=>{_=e;for(let e of c)e(_)},y=e=>i.get(e),b=(e,t,n,r=Date.now())=>{if(g)return!1;let a=o.get(e);return a===void 0||n>a?(o.set(e,n),i.set(e,{result:t,updatedAt:r}),!0):!1},x=(e,t,n=Date.now(),r)=>{(r===void 0||b(Q(t),e,r,n))&&v({rows:e.rows,page:gc(e),total:e.total,loading:!1,refreshing:!1,stale:e.freshness.state===`stale`,error:null,lastUpdated:n,result:e})},S=async(e,n)=>{d.add(n);try{let r=await ko(t,e,{signal:n.signal});if(n.signal.aborted)throw $();return r}catch(e){throw n.signal.aborted?$():e}finally{d.delete(n)}},C=async(e,t={})=>{if(g)throw $();let n=t.mode??`visible`,i=Q(e);if(t.signal?.aborted||(t.deadlineMs??1)<=0)throw $();let a=n===`visible`&&m?.active&&(!p||l!==void 0&&Q(l)!==i)?m:void 0,o=y(i),s=o!==void 0&&Date.now()-o.updatedAt<r;if(n!==`visible`&&!t.force&&s)return mc(o.result,e);if(n===`visible`&&!t.force&&s){if(f+=1,u?.abort($()),g)throw $();u=void 0,l=e,a&&p?.disconnect();let t=mc(o.result,e);if(x(t,e,o.updatedAt),g)throw $();return a?.active&&!p&&D(a),t}if(n===`visible`){if(f+=1,u?.abort($()),g)throw $();let n=new AbortController;u=n,l=e,a&&p?.disconnect();let r=f,s=t.signal,c;if(s?.aborted)n.abort(s.reason);else if(s){let e=()=>n.abort(s.reason);s.addEventListener(`abort`,e,{once:!0}),c=()=>s.removeEventListener(`abort`,e)}if(o){let t=mc(o.result,e);v({rows:t.rows,page:gc(t),total:t.total,loading:!1,refreshing:!0,stale:!0,error:null,lastUpdated:o.updatedAt,result:t})}else v({..._,loading:!0,refreshing:!1,stale:!1,error:null});t={...t,signal:n.signal,force:!0};try{if(g)throw $();let n=await ee(e,i,t);return r===f&&(y(i)?.result===n?x(n,e):v({..._,loading:!1,refreshing:!1}),a?.active&&!p&&D(a)),n}catch(e){throw r===f&&(hc(e)?v({..._,loading:!1,refreshing:!1}):v({..._,loading:!1,refreshing:!1,stale:o!==void 0,error:e})),e}finally{c?.(),u===n&&(u=void 0)}}return ee(e,i,t)},w=(e,t,n,r)=>r.signal?.aborted||(r.deadlineMs??1)<=0?Promise.reject($()):new Promise((i,o)=>{let s=!1,c=()=>{s||(s=!0,--e.waiters,u&&clearTimeout(u),r.signal?.removeEventListener(`abort`,l))},l=()=>{s||(c(),e.waiters===0&&!e.settled&&(e.controller.abort($()),a.get(t)===e&&a.delete(t)),o($()))},u=r.deadlineMs===void 0?void 0:setTimeout(l,r.deadlineMs);e.waiters+=1,r.signal?.addEventListener(`abort`,l,{once:!0}),e.promise.then(e=>{s||(c(),i(mc(e,n)))},e=>{s||(c(),o(e))})}),ee=async(e,t,n)=>{if(n.signal?.aborted||(n.deadlineMs??1)<=0)throw $();if(!n.force){let r=a.get(t);if(r)return w(r,t,e,n)}let r=++s,i=new AbortController,o=S(e,i).then(e=>{if(i.signal.aborted)throw $();return b(t,e,r),e}),c={controller:i,promise:o,waiters:0,settled:!1};return a.set(t,c),o.then(()=>{c.settled=!0,a.get(t)===c&&a.delete(t)},()=>{c.settled=!0,a.get(t)===c&&a.delete(t)}),w(c,t,e,n)},T=(e={})=>l?C(l,{...e,mode:`visible`,force:!0}):Promise.resolve(void 0),te=e=>{if(g||!e.active||!l||!t.subscribe)return;let n=l,r=++h,i=new AbortController,a=!0,c,u,d=()=>{a&&(a=!1,i.abort(),c.unsubscribe(),p===u&&(p=void 0))};if(u={intent:e,disconnect:d,unsubscribe:()=>{e.active&&(e.active=!1,d(),m===e&&(m=void 0),p?.intent===e&&p.disconnect())},reconnect:()=>{if(!e.active||g)return;if(!a){p?.intent===e&&p.reconnect();return}if(r!==h)return;d();let t=l;t&&Q(t)===Q(n)&&C(t,{mode:`visible`,force:!0}).catch(()=>void 0).finally(()=>{e.active&&!g&&m===e&&!p&&l&&Q(l)===Q(n)&&D(e)})}},c=t.subscribe(n,t=>{if(!a||!e.active||g||r!==h||i.signal.aborted)return;let c=++s;(async()=>{let i=await ko({query:async()=>t},n);a&&e.active&&!g&&r===h&&l&&Q(l)===Q(n)&&x(mc(i,l),l,Date.now(),c)})().catch(t=>{let i=o.get(Q(n));!hc(t)&&a&&e.active&&!g&&r===h&&l&&Q(l)===Q(n)&&(i===void 0||c>i)&&v({..._,error:t})})},{signal:i.signal}),g||!e.active){d();return}return p=u,u},E=e=>{e.active=!1,m===e&&(m=void 0)},D=e=>{try{te(e)}catch(t){E(e),g||v({..._,error:t})}};return{get state(){return _},get request(){return l},execute:C,refresh:T,retry:()=>T(),subscribe(e){return c.add(e),e(_),()=>c.delete(e)},subscribeLive:()=>{if(g||!l||!t.subscribe)return;m&&(m.active=!1,p?.disconnect());let e={active:!0};m=e;try{return te(e)}catch(t){throw E(e),t}},invalidate(){if(!l)return;let e=Q(l),t=i.get(e);o.set(e,++s),t&&i.set(e,{...t,updatedAt:0}),v({..._,loading:!1,refreshing:!1,stale:!0})},dispose(){g=!0,f+=1,h+=1,u?.abort($());for(let e of d)e.abort($());m&&(m.active=!1),p?.disconnect(),p=void 0,m=void 0,l=void 0,c.clear(),i.clear(),o.clear(),a.clear()}}}var vc=2;function yc(e,t){let n=globalThis.EventSource;if(typeof n==`function`)return new n(e,t)}function bc(e){let{eventsUrl:t,changesUrl:n,fetchFn:r=(...e)=>globalThis.fetch(...e),eventSourceFactory:i=yc,pollIntervalMs:a=5e3,withCredentials:o=!0,manifestHash:s,updateState:c}=e,l=new Map,u=null,d=`idle`,f=null,p=null,m=!1,h=()=>[...l.keys()].sort((e,t)=>e.localeCompare(t)),g=(e,t)=>{let r=new URL(n,`http://smrt.local/`);if(r.searchParams.set(`since`,String(e)),r.searchParams.set(`tables`,t.join(`,`)),/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(n))return r.href;let i=`${r.pathname}${r.search}${r.hash}`;return n.startsWith(`//`)?`//${r.host}${i}`:n.startsWith(`/`)?i:i.startsWith(`/`)?i.slice(1):i},_=e=>typeof e==`number`&&Number.isFinite(e),v=(e,t)=>{console.warn(`[smrt-web] live subscriber: ${e}`,t)},y=e=>{if(e&&e.size!==0)for(let t of[...e])try{t()}catch(e){v(`an invalidator threw; ignoring`,e)}},b=e=>{y(l.get(e))},x=()=>{for(let e of l.values())y(e)},S=e=>{let t=Number(e);Number.isFinite(t)&&(u=t)},C=e=>{if(m)return;let t;try{let n=JSON.parse(e.data);typeof n.table==`string`&&(t=n.table)}catch(e){v(`dropping malformed change frame`,e);return}if(t===void 0){v(`dropping change frame with no table`,e.data);return}S(e.lastEventId),b(t)},w=e=>{m||(S(e.lastEventId),x())},ee=e=>{if(!m&&s!==void 0&&c)try{let t=JSON.parse(e.data).manifestHash;if(typeof t!=`string`||t.length===0){v(`dropping manifest frame with no manifestHash`,e.data);return}t!==s&&c.notifyContractUpdated()}catch(e){v(`dropping malformed manifest frame`,e)}},T=async()=>{if(m)return;let e=h();if(e.length!==0)try{let t=u??0,n=g(t,e),i=await r(n,{credentials:`include`});if(m)return;let a=await i.json();if(m)return;if(a.resyncRequired){x(),u=_(a.resyncCursor)?a.resyncCursor:_(a.cursor)&&a.cursor>t?a.cursor:null;return}for(let e of a.changes??[])typeof e.table==`string`&&b(e.table);typeof a.cursor==`number`&&(u=a.cursor)}catch(e){v(`poll failed; will retry on the next interval`,e)}},te=()=>{m||d===`polling`||(d=`polling`,p=setInterval(()=>{T()},a),p.unref?.())},E=e=>{d=`sse`,f=e,e.addEventListener(`change`,C),e.addEventListener(`resync`,w),e.addEventListener(`manifest`,ee),e.onerror=()=>{if(!m&&e.readyState===vc){try{e.close()}catch{}f=null,te()}}},D=i(t,{withCredentials:o});return D?E(D):te(),{get transport(){return d},registerTable(e,t){let n=l.get(e);return n||(n=new Set,l.set(e,n)),n.add(t),()=>{let n=l.get(e);n&&(n.delete(t),n.size===0&&l.delete(e))}},invalidateAll:x,close(){if(!m){if(m=!0,f){try{f.close()}catch{}f=null}p&&=(clearInterval(p),null),l.clear(),d=`idle`}}}}function xc(e){let{subscriber:t,tableName:n}=e,r;return{name:`live-invalidation`,onAttach(e){r=t.registerTable(n,()=>e.invalidate())},teardown(){r?.(),r=void 0}}}function Sc(e){let t=qo(e.namespace),n=!1,r=!1,i=new Set,a,o,s=!1,c=()=>({bundle:n,contract:r,updateAvailable:n||r}),l=()=>{let e=c();for(let t of[...i])try{t(e)}catch(e){console.warn(`[smrt-web] updateAvailable subscriber threw`,e)}},u=()=>{n||(n=!0,l())},d=()=>{r||(r=!0,l())};return{get:c,subscribe(e){i.add(e);try{e(c())}catch(e){console.warn(`[smrt-web] updateAvailable subscriber threw`,e)}return()=>{i.delete(e)}},notifyBundleUpdated:u,notifyContractUpdated:d,ready:(async()=>{let n=e.manifestHash;if(n===void 0)return;let r;try{r=await Ls(t)}catch{return}if(s){r.close();return}a=r,o=Yo(t,{kind:`persisted-collection`,clear:()=>r.clear()});let i;try{i=await r.get(Ns)}catch{i=void 0}if(!s&&(i!==void 0&&i!==n&&d(),i!==n))try{await r.set(Ns,n)}catch{}})(),dispose(){s=!0,o?.(),o=void 0,a?.close(),a=void 0,i.clear()}}}function Cc(){let e=globalThis.document?.modelContext;if(e&&typeof e.registerTool==`function`)return e}function wc(e,n={}){let r=jc(n),i=Cc();if(!i)return Tc(()=>{},Promise.resolve());let a=n.basePath??`/api/v1`,s=n.client,{tools:c,allowedEffects:l}=Mc(e,n,r);s&&c.some(e=>e.kind===`canonical`&&e.effect!==`read`)&&pl(s);let u=new AbortController,d=new Map,f=new Map,p=t(c.map(e=>e.name),`generated`),m=!1,h=()=>{if(!m){m=!0,u.abort(),p.release();for(let e of d.values())e.cleanup().catch(()=>void 0)}},g=[];try{for(let e of c){if(e.kind===`legacy`){let{definition:t,descriptor:r}=e,c=f.get(t),p=d.get(t);(!c||!p)&&(c=n.resolveFetchers?n.resolveFetchers(zc(t)):cl(t,a,n.fetchFn),p=Sl(t,{fetchers:c,basePath:a,fetchFn:n.fetchFn,...s?{client:s}:{},...n.scope?{scope:n.scope}:{}}),f.set(t,c),d.set(t,p)),g.push(Promise.resolve(i.registerTool({[o]:e.effect,name:e.name,description:r.description,inputSchema:r.inputSchema,annotations:Hc(e),execute:Wc(e,l,()=>m,e=>Yc(c,p,t,r.action,r.route,e))},{signal:u.signal})));continue}let{definition:t}=e,r=n.resolveToolFetchers?n.resolveToolFetchers(Bc(t,{effect:e.effect,destructive:e.destructive,idempotent:e.idempotent,openWorld:e.openWorld})):cl({name:t.collection,endpoint:t.endpoint},a,n.fetchFn);g.push(Promise.resolve(i.registerTool({[o]:e.effect,name:e.name,description:t.description,inputSchema:t.inputSchema,annotations:Hc(e),execute:Wc(e,l,()=>m,e=>Xc(r,t,e,s))},{signal:u.signal})))}}catch(e){throw Promise.all(g).catch(()=>void 0),h(),e}let _=Promise.all(g).then(()=>void 0).catch(e=>{throw h(),e});return _.catch(()=>void 0),Tc(h,_)}function Tc(e,t){return Object.assign(e,{ready:t})}function Ec(e,t={}){return Dc(e,t,t.owner??`bespoke`)}function Dc(e,n,r){let{allowedEffects:i}=jc(n),a=Cc();if(!a)return Tc(()=>{},Promise.resolve());let s=Pc(`bespoke`,Fc(e.annotations));if(!i.has(s.effect))return Tc(()=>{},Promise.resolve());let c=t([e.name],r),l=new AbortController,u=!1,d=()=>{u||(u=!0,l.abort(),c.release())},f;try{f=a.registerTool({[o]:s.effect,name:e.name,description:e.description,inputSchema:e.inputSchema,annotations:Hc(s),execute:Uc(e.execute,Wc({name:e.name,effect:s.effect},i,()=>u,e.execute))},{signal:l.signal})}catch(e){throw d(),e}let p=Promise.resolve(f).catch(e=>{throw d(),e});return p.catch(()=>void 0),Tc(d,p)}function Oc(e,t,n={}){return Dc(te(e,t),n,`intent`)}var kc=s,Ac=/^[A-Za-z0-9][A-Za-z0-9_-]*$/;function jc(e){let t=e.effects??[`read`];for(let e of t)if(!kc.includes(e))throw Error(`Invalid WebMCP effect: ${String(e)}`);let n=e.maxTools;if(n!==void 0&&(!Number.isSafeInteger(n)||n<0))throw Error(`WebMCP maxTools must be a non-negative safe integer`);let r=e.namespace;if(r!==void 0&&!Ac.test(r))throw Error(`WebMCP namespace must start with an alphanumeric character and contain only letters, numbers, underscores, or hyphens`);return{allowedEffects:new Set(t),...n===void 0?{}:{maxTools:n},...r===void 0?{}:{namespace:r}}}function Mc(e,t,n){let{allowedEffects:r,maxTools:i,namespace:a}=n,o=e.map(e=>Lc(e)),s=[];for(let e of o){if(Gc(e)){let n=c(e);if(!r.has(n.effect))continue;if(t.filter&&!t.filterTool)throw Error(`[smrt-web] canonical WebMCP definitions require filterTool when filter is configured`);let i=Bc(e,n);if(t.filterTool&&!t.filterTool(Bc(i,n)))continue;s.push({kind:`canonical`,definition:i,descriptor:i,name:Nc(i.name,a),identity:`${i.collection}#${i.action}`,...n});continue}let n=zc(e);for(let e of n.toolDescriptors??[]){if(!n.actions.includes(e.action))throw Error(`WebMCP tool ${e.name} exposes action ${e.action} outside ${n.name}'s allowed actions`);let i=Pc(e.action,e);if(!r.has(i.effect))continue;if(t.filterTool&&!t.filter)throw Error(`[smrt-web] legacy WebMCP definitions require filter when filterTool is configured`);let o=Rc(e,i);(!t.filter||t.filter(zc(n),Rc(o,i)))&&s.push({kind:`legacy`,definition:n,descriptor:o,name:Nc(o.name,a),identity:`${n.name}#${o.action}`,...i})}}return Vc(s,i),{tools:s,allowedEffects:r}}function Nc(e,t){return t?`${t}_${e}`:e}function Pc(e,t){switch(e){case`list`:case`get`:return{effect:`read`,destructive:!1,idempotent:!0,openWorld:!1};case`create`:return{effect:`write`,destructive:!0,idempotent:!1,openWorld:!1};case`update`:return{effect:`write`,destructive:!0,idempotent:!0,openWorld:!1};case`delete`:return{effect:`destructive`,destructive:!0,idempotent:!0,openWorld:!1};default:return c(t)}}function Fc(e){if(!e)return{};let t=e.destructiveHint===!0?`destructive`:e.readOnlyHint===!0?`read`:e.destructiveHint===!1?`write`:void 0;return{...t?{effect:t}:{},...e.idempotentHint===void 0?{}:{idempotent:e.idempotentHint},...e.openWorldHint===void 0?{}:{openWorld:e.openWorldHint}}}function Ic(e){return e?Lc(e):void 0}function Lc(e,t=new WeakSet,n=`$`){if(e&&typeof e==`object`){if(t.has(e))throw Error(`[smrt-web] WebMCP definitions must be acyclic (cycle at ${n})`);t.add(e)}try{if(Array.isArray(e))return e.map((e,r)=>Lc(e,t,`${n}[${r}]`));if(e&&typeof e==`object`){let r={};for(let[i,a]of Object.entries(e))r[i]=Lc(a,t,`${n}.${i}`);return r}return e}finally{e&&typeof e==`object`&&t.delete(e)}}function Rc(e,t){return Lc({...e,effect:t.effect,idempotent:t.idempotent,openWorld:t.openWorld,readOnly:t.effect===`read`,route:Ic(e.route)})}function zc(e){let t=Lc({...e,actions:[...e.actions]});return t.toolDescriptors=t.toolDescriptors?.map(e=>Rc(e,Pc(e.action,e))),t}function Bc(e,t){return Lc({...e,effect:t.effect,idempotent:t.idempotent,openWorld:t.openWorld,readOnly:t.effect===`read`,route:Ic(e.route)})}function Vc(e,t){if(t!==void 0&&e.length>t)throw Error(`WebMCP tool budget exceeded: ${e.length} tools selected, maximum is ${t}`);let n=new Set,r=new Set;for(let t of e){if(n.has(t.name))throw Error(`Duplicate WebMCP tool name: ${t.name}`);if(n.add(t.name),r.has(t.identity))throw Error(`Duplicate WebMCP tool identity: ${t.identity}`);r.add(t.identity)}}function Hc(e){return l(e)}function Uc(e,t){return a(e)?n(t):t}function Wc(e,t,n,r){return(i,a)=>{if(n())throw Error(`WebMCP tool ${e.name} is no longer registered`);if(!t.has(e.effect))throw Error(`WebMCP policy no longer allows ${e.effect} tool ${e.name}`);return a===void 0?r(i??{}):r(i??{},a)}}function Gc(e){return`collection`in e&&`readOnly`in e}function Kc(e,t){let n=e.id;if(typeof n!=`string`||n.length===0)throw Error(`WebMCP ${t} requires a string 'id' argument`);return n}function qc(e){let t=e.id??e.slug;if(typeof t!=`string`||t.length===0)throw Error(`WebMCP get requires a string 'id' or 'slug' argument`);return t}function Jc(e){let t={};return e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.orderBy!==void 0&&(t.orderBy=e.orderBy),e.where!==void 0&&(t.where=e.where),t}async function Yc(e,t,n,r,i,a){switch(r){case`list`:{let t=rl(await e.list(Jc(a)),n.name);return JSON.stringify(t)}case`get`:{if(!e.get)throw Error(`${n.name} has no get action`);let t=il(await e.get(qc(a)),`get(${n.name})`);return JSON.stringify(t)}case`create`:{let e=ll(),r=il(await Zc(t.insert({...a,id:e}),t,e,a),`create(${n.name})`);return JSON.stringify(r)}case`update`:{if(!e.update)throw Error(`${n.name} has no update action`);let{id:r,...i}=a;await Qc(e,t,n,Kc(a,`update`));let o=il(await Zc(t.update(Kc(a,`update`),i),t,Kc(a,`update`),i),`update(${n.name})`);return JSON.stringify(o)}case`delete`:{if(!e.delete)throw Error(`${n.name} has no delete action`);let r=Kc(a,`delete`);return await Qc(e,t,n,r),await Zc(t.delete(r),t,r,{}),JSON.stringify({success:!0,id:r})}default:if(!e.custom)throw Error(`${n.name} has no custom action fetcher`);return JSON.stringify(await t.action(r,a,i))}}async function Xc(e,t,n,r){let i;switch(t.action){case`list`:if(!e.list)throw Error(`${t.collection} has no list action`);i=rl(await e.list(Jc(n)),t.collection);break;case`get`:if(!e.get)throw Error(`${t.collection} has no get action`);i=il(await e.get(qc(n)),`get(${t.collection})`);break;case`create`:if(!e.create)throw Error(`${t.collection} has no create action`);i=il(await e.create(n),`create(${t.collection})`);break;case`update`:{if(!e.update)throw Error(`${t.collection} has no update action`);let r=Kc(n,`update`),{id:a,...o}=n;i=il(await e.update(r,o),`update(${t.collection})`);break}case`delete`:{if(!e.delete)throw Error(`${t.collection} has no delete action`);let r=Kc(n,`delete`);al(await e.delete(r),`delete(${t.collection})`),i={success:!0,id:r};break}default:if(!e.custom)throw Error(`${t.collection} has no custom action fetcher`);i=al(await e.custom(t.action,n,t.route),`${t.action}(${t.collection})`)}return!t.readOnly&&r&&hl(r,[t.collection,...t.relationships.map(e=>e.relatedCollection)]),JSON.stringify(i)}async function Zc(e,t,n,r){await e.isPersisted.promise;let i=lo.get(t)?.get(n);return i===void 0?t.get(n)??{...r,id:n}:i}async function Qc(e,t,n,r){if(!e.get)throw Error(`${n.name} has no get action; cannot hydrate mutation target '${r}'`);let i=il(await e.get(r),`get(${n.name})`),a=uo.get(t);if(!a)throw Error(`${n.name} cannot hydrate mutation target '${r}'`);await a(i)}var $c=`__smrt_options`,el=class extends Error{payload;status;code;constructor(e,t,n,r){super(e),this.name=`SmrtWebRequestError`,this.payload=t,n!==void 0&&(this.status=n),r!==void 0&&(this.code=r)}};function tl(e){if(!e||typeof e!=`object`)return{};let t=e.error;if(typeof t==`string`)return{message:t};if(!t||typeof t!=`object`||Array.isArray(t))return{};let n=t;return{message:typeof n.message==`string`?n.message:void 0,code:typeof n.code==`string`?n.code:void 0}}function nl(e,t,n){if(t>=500)return new el(`[smrt-web] ${e} request failed: server error`,void 0,t);let r=tl(n);return new el(`[smrt-web] ${e} request failed: ${r.message??`HTTP ${t}`}`,n,t,r.code)}function rl(e,t){if(al(e,`list(${t})`),Array.isArray(e))return e;if(e&&typeof e==`object`){let t=e;if(Array.isArray(t.items))return t.items;if(Array.isArray(t.data))return t.data}throw new el(`[smrt-web] list(${t}) returned an unexpected payload shape`,e)}function il(e,t){if(al(e,t),e&&typeof e==`object`&&!Array.isArray(e)){let t=e;return t.data&&typeof t.data==`object`&&!Array.isArray(t.data)?t.data:t}throw new el(`[smrt-web] ${t} returned an unexpected payload shape`,e)}function al(e,t){if(!e||typeof e!=`object`||Array.isArray(e))return e;let n=e.error;if(typeof n==`string`)throw new el(`[smrt-web] ${t} failed: ${n}`,e);if(!n||typeof n!=`object`||Array.isArray(n))return e;let r=n;if(r.ok!==!1||typeof r.code!=`string`||typeof r.message!=`string`)return e;let i=typeof r.status==`number`&&Number.isInteger(r.status)&&r.status>=400&&r.status<=599?r.status:void 0;throw i!==void 0&&i>=500?new el(`[smrt-web] ${t} failed: server error`,void 0,i):new el(`[smrt-web] ${t} failed: ${r.message}`,e,i,r.code)}var ol={">":`gt`,">=":`gte`,"<":`lt`,"<=":`lte`,"!=":`ne`,in:`in`,like:`like`};function sl(e){if(!e)return``;let t=new URLSearchParams,{limit:n,offset:r,orderBy:i,where:a}=e;if(n!==void 0&&t.set(`limit`,String(n)),r!==void 0&&t.set(`offset`,String(r)),i!==void 0&&t.set(`orderBy`,Array.isArray(i)?i.join(`, `):String(i)),a&&typeof a==`object`)for(let[e,n]of Object.entries(a))if(n&&typeof n==`object`&&!Array.isArray(n)&&`op`in n&&`value`in n){let{op:r,value:i}=n,a=ol[r],o=Array.isArray(i)?i.join(`,`):String(i);t.set(a?`${e}[${a}]`:e,o)}else n!=null&&t.set(e,String(n));let o=t.toString();return o?`?${o}`:``}function cl(e,t=`/api/v1`,n=(...e)=>globalThis.fetch(...e)){let r=`${t}${e.endpoint}`,i={"Content-Type":`application/json`},a=async t=>{if(!t.ok){if(t.status>=500)throw nl(e.name,t.status);let n=await t.json().catch(()=>null);throw nl(e.name,t.status,n)}return t.json().catch(()=>null)};return{list:async e=>a(await n(`${r}${sl(e)}`,{headers:i})),get:async e=>a(await n(`${r}/${e}`,{headers:i})),create:async e=>a(await n(r,{method:`POST`,headers:i,body:JSON.stringify(e)})),update:async(e,t)=>a(await n(`${r}/${e}`,{method:`PUT`,headers:i,body:JSON.stringify(t)})),delete:async t=>{let a=await n(`${r}/${t}`,{method:`DELETE`,headers:i});if(!a.ok){if(a.status>=500)throw nl(e.name,a.status);let t=await a.json().catch(()=>null);throw nl(e.name,a.status,t)}return!0},custom:async(t,o,s)=>{let c=s??{method:`POST`,scope:typeof o.id==`string`?`item`:`collection`,path:[t]},l=c.optionsBag===!0,u=l?o.options:void 0,d=l&&typeof u==`object`&&u?u:o,f=new Set(c.path.filter(e=>/^\[[^\]]+\]$/.test(e)).map(e=>e.slice(1,-1))),p=c.parameterAliases??{},m=e=>Object.entries(p).find(([,t])=>t===e)?.[0]??e,h=e=>o[m(e)]??o[e],g=c.scope===`item`?o.id:void 0;if(c.scope===`item`&&typeof g!=`string`)throw Error(`${e.name} custom action '${t}' requires an id`);for(let n of f)if(h(n)===void 0||h(n)===null)throw Error(`${e.name} custom action '${t}' requires '${n}'`);let _=new Set([...f].map(e=>m(e))),v=new Set(Object.keys(p)),y=l?u:Object.fromEntries(Object.entries(d).filter(([e])=>e!==`id`&&!f.has(e)&&!_.has(e)&&!v.has(e)));if(!l)for(let[e,t]of Object.entries(p))!_.has(e)&&d[e]!==void 0&&t!==`id`&&(y[t]=d[e]);let b=Object.entries(p).find(([,e])=>e===`id`)?.[0];!l&&b&&!_.has(b)&&d[b]!==void 0&&(y.id=d[b]);let x=`${[r,...c.scope===`item`?[encodeURIComponent(String(g))]:[],...c.path.map(e=>/^\[[^\]]+\]$/.test(e)?encodeURIComponent(String(h(e.slice(1,-1))??``)):e)].join(`/`)}`,S={method:c.method,headers:i};if(c.method!==`GET`)S.body=JSON.stringify(y);else{let e=new URLSearchParams;if(l){if(u===void 0&&f.size===0)e.set($c,`undefined`);else if(u===null&&f.size===0)e.set($c,`null`);else{let t=Object.entries(typeof u==`object`&&u&&!Array.isArray(u)?u:{}).filter(([,e])=>e!=null);for(let[n,r]of t)e.set(n,typeof r==`object`?JSON.stringify(r):String(r));t.length===0&&f.size===0&&e.set($c,`object`)}}else{let t=typeof y==`object`&&y&&!Array.isArray(y)?y:{};for(let[n,r]of Object.entries(t))r!=null&&e.set(n,typeof r==`object`?JSON.stringify(r):String(r))}let t=e.toString()?`?${e.toString()}`:``;return a(await n(`${x}${t}`,{...S}))}return a(await n(x,S))}}}function ll(){let e=globalThis.crypto;return e?.randomUUID?e.randomUUID():`local-${Date.now()}-${Math.random().toString(36).slice(2)}`}var ul=new WeakSet;function dl(){let e={__smrtWebClient:`SmrtWebClient`,queryClient:new ri};return ul.add(e),e}function fl(e){if(!e)return new ri;let t=e;if(!ul.has(t)||t.__smrtWebClient!==`SmrtWebClient`||!t.queryClient)throw new el(`[smrt-web] options.client must be a handle from createSmrtWebClient()`);return t.queryClient}function pl(e){fl(e)}function ml(e,t){t.size!==0&&e.invalidateQueries({predicate:e=>{let n=e.queryKey;if(!Array.isArray(n)||n.length===0)return!1;let r=n[n.length-1];return typeof r==`string`&&t.has(r)}})}function hl(e,t){ml(fl(e),new Set(t))}function gl(e){let t={};for(let[n,r]of Object.entries(e))n.charCodeAt(0)!==36&&(t[n]=r);return t}function _l(e){return Array.isArray(e)?e.map(e=>{if(!e||typeof e!=`object`)return e;let t=e,n={...t};return t.value&&typeof t.value==`object`&&(n.value=gl(t.value)),t.previousValue&&typeof t.previousValue==`object`&&(n.previousValue=gl(t.previousValue)),n}):e}function vl(e){if(!e||typeof e!=`object`)return;let t=e,n=t.updatedAt??t.updated_at;if(typeof n==`string`)return n;if(n instanceof Date)return n.toISOString()}var yl=new WeakMap;function bl(e){let t=yl.get(e);if(t===void 0)throw new el(`[smrt-web] getEngineCollection: not a smrt-web collection handle`);return t}function xl(e,t,n){console.warn(`[smrt-web] capability "${e.name}" ${t} threw; ignoring`,n)}function Sl(e,t){let{staleTimeMs:n=3e4,retry:r=!1,scope:i,initialData:a}=t,o=t.capabilities??[],s=t.fetchers??cl(e,t.basePath,t.fetchFn),c=fl(t.client),l=e.idField||`id`,u=new Map,d=i?`smrt:${i}:${e.name}`:`smrt:${e.name}`,f=i?[`smrt`,i,e.name]:[`smrt`,e.name],p=new Set([e.name]);for(let t of e.relationships??[])p.add(t.relatedCollection);let m=()=>{ml(c,p)},h={definition:e,fetchers:s,get cacheKey(){return f},get cacheId(){return d},invalidate:()=>m(),snapshot:()=>S.toArray.map(e=>gl(e)),subscribe:e=>{let t=S.subscribeChanges(t=>e(_l(t)));return{unsubscribe:()=>t.unsubscribe()}}};for(let e of o){let t;try{t=e.contributeCacheKey?.(h)}catch(t){xl(e,`contributeCacheKey`,t)}if(t&&t.length>0){let e=f[f.length-1];f=[...f.slice(0,-1),...t,e],d=`${d}:${t.join(`:`)}`}}let g=e=>{c.setQueryData(f,t=>t??e)},_=!1,v=async(e,t)=>{try{return await t}catch(t){xl(e,`warmStart`,t);return}},y;if(a!==void 0)g(a);else for(let e=0;e<o.length;e+=1){let t=o[e],n;try{n=t.warmStart?.(h)}catch(e){xl(t,`warmStart`,e);continue}if(n!==void 0){if(n instanceof Promise){let r=n;y=(async()=>{let n=await v(t,r);for(let t=e+1;n===void 0&&t<o.length;t+=1){let e=o[t],r;try{r=e.warmStart?.(h)}catch(t){xl(e,`warmStart`,t);continue}r!==void 0&&(n=await v(e,r))}n!==void 0&&!_&&g(n)})();break}g(n);break}}let b=(e,t)=>{for(let n of o)try{n.onSettled?.(e,t,h)}catch(e){xl(n,`onSettled`,e)}},x=async(e,t)=>{try{let n=await co(o,e,h),r=n.handled?n.result:await t();return b(e,{ok:!0,result:r}),{handled:n.handled,result:r}}catch(t){throw b(e,{ok:!1,error:t}),t}},S=er(so({id:d,queryKey:f,queryClient:c,staleTime:n,retry:r,queryFn:async()=>rl(await s.list(),e.name),getKey:e=>String(e[l]),onInsert:async({transaction:t})=>{let n=!1;for(let r of t.mutations){let t=r.modified,i={kind:`insert`,key:String(t[l]),data:t},a=await x(i,async()=>{let{[l]:n,...r}=t;return il(await s.create(r),`create(${e.name})`)});u.set(i.key,a.result),n||=a.handled}if(n)return{refetch:!1};m()},onUpdate:s.update?async({transaction:t})=>{let n=!1;for(let r of t.mutations){let t=String(r.key),i=r.changes,a={kind:`update`,key:t,data:i,baseUpdatedAt:vl(r.original)},o=await x(a,async()=>il(await s.update(t,i),`update(${e.name})`));u.set(a.key,o.result),n||=o.handled}if(n)return{refetch:!1};m()}:void 0,onDelete:s.delete?async({transaction:t})=>{let n=!1;for(let r of t.mutations){let t=String(r.key),i={kind:`delete`,key:t,data:{},baseUpdatedAt:vl(r.original)},a=await x(i,async()=>al(await s.delete(t),`delete(${e.name})`));u.set(i.key,a.result),n||=a.handled}if(n)return{refetch:!1};m()}:void 0})),C={get toArray(){return S.toArray.map(e=>gl(e))},get size(){return S.size},has(e){return S.has(e)},get(e){let t=S.get(e);return t===void 0?void 0:gl(t)},preload(){return y?y.then(()=>{if(!_)return S.preload()}):S.preload()},async cleanup(){_=!0,await S.cleanup();for(let e of o)try{await e.teardown?.(h)}catch(t){xl(e,`teardown`,t)}},subscribeChanges(e){let t=S.subscribeChanges(t=>e(_l(t)));return{unsubscribe:()=>t.unsubscribe()}},insert(e){return S.insert(e)},update(t,n){if(!s.update)throw Error(`${e.name} has no update action`);let{id:r,...i}=n;return S.update(t,e=>{Object.assign(e,i)})},delete(t){if(!s.delete)throw Error(`${e.name} has no delete action`);return S.delete(t)},async action(t,n,r){if(!s.custom)throw Error(`${e.name} has no custom action fetcher`);let i=r===void 0?await s.custom(t,n):await s.custom(t,n,r);return al(i,`${t}(${e.name})`),m(),i}};lo.set(C,u),uo.set(C,async e=>{await S.preload(),S.utils.writeUpsert(e)}),yl.set(C,S);for(let e of o)try{e.onAttach?.(h)}catch(t){xl(e,`onAttach`,t)}return C}var Cl=e({DEFAULT_PERSIST_DEBOUNCE_MS:()=>250,MAX_SMRT_WEB_DATA_QUERY_CONTAINER_ITEMS:()=>vo,MAX_SMRT_WEB_DATA_QUERY_FACETS:()=>20,MAX_SMRT_WEB_DATA_QUERY_FACET_VALUES:()=>ho,MAX_SMRT_WEB_DATA_QUERY_OFFSET:()=>_o,MAX_SMRT_WEB_DATA_QUERY_PAGE_LIMIT:()=>go,MAX_SMRT_WEB_DATA_QUERY_RESULT_BYTES:()=>po,MAX_SMRT_WEB_DATA_QUERY_ROWS:()=>mo,MAX_SMRT_WEB_DATA_QUERY_STRING_LENGTH:()=>yo,MAX_SMRT_WEB_DATA_QUERY_WARNINGS:()=>100,MAX_SMRT_WEB_DATA_SURFACE_ACTION_CONTAINER_ITEMS:()=>jo,MAX_SMRT_WEB_DATA_SURFACE_ACTION_IDENTIFIER_LENGTH:()=>256,MAX_SMRT_WEB_DATA_SURFACE_ACTION_JSON_DEPTH:()=>16,MAX_SMRT_WEB_DATA_SURFACE_ACTION_RESULT_BYTES:()=>Ao,SmrtWebRequestError:()=>el,WebMcpToolNameCollisionError:()=>r,buildListQuery:()=>sl,classifySmrtWebDataSurfaceActionResult:()=>Go,compileViewIntentToolSpec:()=>te,createDefinitionFetchers:()=>cl,createSmrtCollection:()=>Sl,createSmrtWebClient:()=>dl,createSmrtWebEventSubscriber:()=>bc,createSmrtWebQuery:()=>_c,createUpdateState:()=>Sc,dataSurfaceActionCommandTransport:()=>Ko,durableStoreNamespace:()=>qo,executeSmrtWebDataQuery:()=>ko,executeSmrtWebDataSurfaceAction:()=>Bo,getEngineCollection:()=>bl,getOutboxHandle:()=>rc,invalidateSmrtWebCollections:()=>hl,listDurableNamespaces:()=>Hs,liveInvalidation:()=>xc,newLocalId:()=>ll,normalizeSmrtWebDataQueryResult:()=>Oo,normalizeSmrtWebDataSurfaceActionResult:()=>zo,offlineCommandQueue:()=>nc,offlineOutbox:()=>tc,persistCollection:()=>uc,persistDataSurface:()=>fc,pruneDurableNamespace:()=>Xs,registerDurableResource:()=>Yo,registerViewIntent:()=>Oc,registerWebMcpBespokeTool:()=>Ec,registerWebMcpTools:()=>wc,reserveWebMcpToolNames:()=>t,runWrapMutation:()=>co,throwIfSmrtWebError:()=>al,unwrapItemResult:()=>il,unwrapListResult:()=>rl,validateSmrtWebClient:()=>pl,viewIntentToolName:()=>m,webMcpToolNameOwner:()=>i,wipeDurableStore:()=>Xo});export{Cl as t};