@happyvertical/smrt-planner 0.0.0-stage → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +170 -2
- package/app/404.html +80 -0
- package/app/_app/immutable/assets/0.B5zXkXe_.css +1 -0
- package/app/_app/immutable/assets/10.hpcnxvK1.css +1 -0
- package/app/_app/immutable/assets/11.D7zoXfVV.css +1 -0
- package/app/_app/immutable/assets/12.CPobm1ED.css +1 -0
- package/app/_app/immutable/assets/2.CyaWdRdI.css +1 -0
- package/app/_app/immutable/assets/3.BlPQOes8.css +1 -0
- package/app/_app/immutable/assets/8.2gQeKBp_.css +1 -0
- package/app/_app/immutable/assets/9.HOPT4xtg.css +1 -0
- package/app/_app/immutable/assets/AiSetup.Cb22AigN.css +1 -0
- package/app/_app/immutable/assets/Button.DkP0qkG9.css +1 -0
- package/app/_app/immutable/assets/ConnectTools.BgIJOOGW.css +1 -0
- package/app/_app/immutable/assets/FieldMapForm.BCU-4pO4.css +1 -0
- package/app/_app/immutable/assets/ModelPage.Dd3LcMta.css +1 -0
- package/app/_app/immutable/assets/SectionActions.CTkVuNMF.css +1 -0
- package/app/_app/immutable/assets/SectionIcons.5Udq9vN-.css +1 -0
- package/app/_app/immutable/assets/SegmentedControl.B8SrQacd.css +1 -0
- package/app/_app/immutable/assets/dist.C5nHBk_O.css +1 -0
- package/app/_app/immutable/assets/feedback.BVKAwFck.css +1 -0
- package/app/_app/immutable/assets/forms.BChZ2RWM.css +1 -0
- package/app/_app/immutable/assets/inter-latin-ext.B_-bZUTo.woff2 +0 -0
- package/app/_app/immutable/assets/inter-latin.8kRkwJBP.woff2 +0 -0
- package/app/_app/immutable/assets/jetbrains-mono-latin-ext.Bnd2h4Br.woff2 +0 -0
- package/app/_app/immutable/assets/jetbrains-mono-latin.Db4Uuiha.woff2 +0 -0
- package/app/_app/immutable/assets/ort-wasm-simd-threaded.asyncify.CxOG5pUO.wasm +0 -0
- package/app/_app/immutable/assets/percent.LH0z-ozZ.css +1 -0
- package/app/_app/immutable/assets/space-grotesk-latin-ext.wJGaI8U0.woff2 +0 -0
- package/app/_app/immutable/assets/space-grotesk-latin.DPT1xrvW.woff2 +0 -0
- package/app/_app/immutable/assets/store.CGDwHkkF.css +1 -0
- package/app/_app/immutable/assets/ui.B1A1Zl2p.css +1 -0
- package/app/_app/immutable/assets/workspace.BIMkuZDb.css +1 -0
- package/app/_app/immutable/chunks/1okeBSoq.js +1 -0
- package/app/_app/immutable/chunks/2jFBkS1C.js +1 -0
- package/app/_app/immutable/chunks/6P9zxrzU.js +1 -0
- package/app/_app/immutable/chunks/B32EWqI8.js +9 -0
- package/app/_app/immutable/chunks/B4Kevpe0.js +1 -0
- package/app/_app/immutable/chunks/BJfAXhak.js +3 -0
- package/app/_app/immutable/chunks/BKwRT_1p.js +1 -0
- package/app/_app/immutable/chunks/BQxY8kkL.js +1 -0
- package/app/_app/immutable/chunks/BS4h9ES-.js +1 -0
- package/app/_app/immutable/chunks/BWPhGFHl.js +1 -0
- package/app/_app/immutable/chunks/BYcBM-fh.js +1 -0
- package/app/_app/immutable/chunks/BegKiy2G.js +1 -0
- package/app/_app/immutable/chunks/Bjy-W4x2.js +81 -0
- package/app/_app/immutable/chunks/BnRri03M.js +1 -0
- package/app/_app/immutable/chunks/C7zBd-pD.js +1 -0
- package/app/_app/immutable/chunks/CA-A9Ngs.js +1 -0
- package/app/_app/immutable/chunks/CMhpRMKg.js +1 -0
- package/app/_app/immutable/chunks/CPRHZZeW.js +1 -0
- package/app/_app/immutable/chunks/CRQ1Pmzr.js +1 -0
- package/app/_app/immutable/chunks/CWtfVMDz.js +1 -0
- package/app/_app/immutable/chunks/CgAkqYsL.js +1 -0
- package/app/_app/immutable/chunks/Chyo8rdT.js +3 -0
- package/app/_app/immutable/chunks/Ci0DUht6.js +34 -0
- package/app/_app/immutable/chunks/CmmuWmp6.js +2 -0
- package/app/_app/immutable/chunks/CrFNLK0f.js +1 -0
- package/app/_app/immutable/chunks/CrO3W89x.js +1 -0
- package/app/_app/immutable/chunks/CsprTb3f.js +2 -0
- package/app/_app/immutable/chunks/CyUMm_Wp.js +1 -0
- package/app/_app/immutable/chunks/CygC84VT.js +2 -0
- package/app/_app/immutable/chunks/D0VgZnk1.js +1 -0
- package/app/_app/immutable/chunks/D71UrO5c.js +1 -0
- package/app/_app/immutable/chunks/D7hhQvDO.js +1 -0
- package/app/_app/immutable/chunks/DD7gpKb2.js +1 -0
- package/app/_app/immutable/chunks/DNRgqfTx.js +1 -0
- package/app/_app/immutable/chunks/DRByVC-c.js +1 -0
- package/app/_app/immutable/chunks/DVRKjN-E.js +1 -0
- package/app/_app/immutable/chunks/D_J_XtJy.js +846 -0
- package/app/_app/immutable/chunks/Dbjm4OuC.js +1 -0
- package/app/_app/immutable/chunks/Dc4q22LH.js +42 -0
- package/app/_app/immutable/chunks/Dd_uD5pT.js +1 -0
- package/app/_app/immutable/chunks/DkR8_Ws6.js +2 -0
- package/app/_app/immutable/chunks/Dp9GVO-9.js +1 -0
- package/app/_app/immutable/chunks/DqcD-WtP.js +1 -0
- package/app/_app/immutable/chunks/Dt-HX3Vu.js +1 -0
- package/app/_app/immutable/chunks/FbOxj-PF.js +69 -0
- package/app/_app/immutable/chunks/QukgIHDX.js +1 -0
- package/app/_app/immutable/chunks/WxSPP8QW.js +4 -0
- package/app/_app/immutable/chunks/Xp1g1t4n.js +3 -0
- package/app/_app/immutable/chunks/iET62IRm.js +2 -0
- package/app/_app/immutable/chunks/leQCwW2d.js +1 -0
- package/app/_app/immutable/chunks/p6bgzXiY.js +1 -0
- package/app/_app/immutable/chunks/uBIymjUX.js +1 -0
- package/app/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/app/_app/immutable/entry/app.IZIJXhgq.js +2 -0
- package/app/_app/immutable/entry/start.BuaYHD1N.js +1 -0
- package/app/_app/immutable/nodes/0.m_U8WC7E.js +10 -0
- package/app/_app/immutable/nodes/1.Crw8ULhB.js +1 -0
- package/app/_app/immutable/nodes/10.1nQxyH9H.js +4 -0
- package/app/_app/immutable/nodes/11.Cw0JnQF3.js +1 -0
- package/app/_app/immutable/nodes/12.BIocA1aI.js +1 -0
- package/app/_app/immutable/nodes/2.CR5BwGnt.js +17 -0
- package/app/_app/immutable/nodes/3.1B56hgAG.js +1 -0
- package/app/_app/immutable/nodes/4.SSIC7sUh.js +1 -0
- package/app/_app/immutable/nodes/5.DgdwleDQ.js +1 -0
- package/app/_app/immutable/nodes/6.DmD9rqLU.js +1 -0
- package/app/_app/immutable/nodes/7.DdngsBmo.js +1 -0
- package/app/_app/immutable/nodes/8.D2Mszsua.js +3 -0
- package/app/_app/immutable/nodes/9.CLYsywul.js +1 -0
- package/app/_app/immutable/workers/assets/ort-wasm-simd-threaded.asyncify-CxOG5pUO.wasm +0 -0
- package/app/_app/immutable/workers/llm.worker-wfCOG_uk.js +69 -0
- package/app/_app/immutable/workers/local-speech.worker-DWbfmFUk.js +51 -0
- package/app/_app/version.json +1 -0
- package/app/ai/index.html +89 -0
- package/app/blueprint/index.html +87 -0
- package/app/cookbook/index.html +87 -0
- package/app/index.html +103 -0
- package/app/m/ads/AdDeliveryTier/index.html +96 -0
- package/app/m/ads/AdEvent/index.html +96 -0
- package/app/m/ads/AdFormat/index.html +96 -0
- package/app/m/ads/AdGroup/index.html +96 -0
- package/app/m/ads/AdVariation/index.html +96 -0
- package/app/m/analytics/AnalyticsDataStream/index.html +96 -0
- package/app/m/analytics/AnalyticsEvent/index.html +96 -0
- package/app/m/analytics/AnalyticsProperty/index.html +96 -0
- package/app/m/analytics/AnalyticsReport/index.html +96 -0
- package/app/m/approvals/ApprovalEvent/index.html +96 -0
- package/app/m/approvals/ApprovalPolicy/index.html +96 -0
- package/app/m/approvals/ApprovalRequest/index.html +96 -0
- package/app/m/assets/Asset/index.html +96 -0
- package/app/m/assets/AssetAssociation/index.html +97 -0
- package/app/m/assets/AssetMetafield/index.html +96 -0
- package/app/m/assets/AssetStatus/index.html +96 -0
- package/app/m/assets/AssetType/index.html +96 -0
- package/app/m/assets/Folder/index.html +96 -0
- package/app/m/chat/AgentSession/index.html +96 -0
- package/app/m/chat/ChatMessage/index.html +97 -0
- package/app/m/chat/ChatParticipant/index.html +97 -0
- package/app/m/chat/ChatReaction/index.html +96 -0
- package/app/m/chat/ChatRoom/index.html +96 -0
- package/app/m/chat/ChatThread/index.html +97 -0
- package/app/m/chat/VoiceGatewayTurn/index.html +96 -0
- package/app/m/chat/VoiceSession/index.html +96 -0
- package/app/m/commerce/Agreement/index.html +96 -0
- package/app/m/commerce/Cart/index.html +96 -0
- package/app/m/commerce/Contract/index.html +96 -0
- package/app/m/commerce/ContractLineItem/index.html +97 -0
- package/app/m/commerce/Customer/index.html +96 -0
- package/app/m/commerce/Estimate/index.html +96 -0
- package/app/m/commerce/Fulfillment/index.html +96 -0
- package/app/m/commerce/FulfillmentLineItem/index.html +97 -0
- package/app/m/commerce/Invoice/index.html +96 -0
- package/app/m/commerce/InvoiceLineItem/index.html +97 -0
- package/app/m/commerce/Lease/index.html +96 -0
- package/app/m/commerce/LicenseSale/index.html +96 -0
- package/app/m/commerce/Order/index.html +96 -0
- package/app/m/commerce/Payment/index.html +96 -0
- package/app/m/commerce/PaymentAllocation/index.html +97 -0
- package/app/m/commerce/PaymentInstrument/index.html +96 -0
- package/app/m/commerce/PaymentIntent/index.html +96 -0
- package/app/m/commerce/Payout/index.html +96 -0
- package/app/m/commerce/ProductionOrder/index.html +96 -0
- package/app/m/commerce/PurchaseOrder/index.html +96 -0
- package/app/m/commerce/Vendor/index.html +96 -0
- package/app/m/commerce/WholesaleOrder/index.html +96 -0
- package/app/m/content/Content/index.html +96 -0
- package/app/m/content/ContentContribution/index.html +96 -0
- package/app/m/content/ContentContributionAttachment/index.html +96 -0
- package/app/m/content/ContentContributionRevision/index.html +96 -0
- package/app/m/content/ContentContributionType/index.html +96 -0
- package/app/m/content/ContentContributor/index.html +96 -0
- package/app/m/content/ContentCorrection/index.html +96 -0
- package/app/m/content/ContentFeedSource/index.html +96 -0
- package/app/m/content/ContentGovernanceAssignment/index.html +96 -0
- package/app/m/content/ContentGovernancePolicy/index.html +96 -0
- package/app/m/content/ContentGovernanceProfile/index.html +96 -0
- package/app/m/content/ContentReference/index.html +96 -0
- package/app/m/content/ContentReview/index.html +96 -0
- package/app/m/content/ContentVersion/index.html +96 -0
- package/app/m/content/Contents/index.html +96 -0
- package/app/m/events/Event/index.html +96 -0
- package/app/m/events/EventParticipant/index.html +97 -0
- package/app/m/events/EventSeries/index.html +96 -0
- package/app/m/events/EventType/index.html +96 -0
- package/app/m/facts/Fact/index.html +96 -0
- package/app/m/facts/FactContent/index.html +96 -0
- package/app/m/facts/FactEvidence/index.html +96 -0
- package/app/m/facts/FactSource/index.html +96 -0
- package/app/m/facts/FactSubject/index.html +96 -0
- package/app/m/facts/FactTag/index.html +96 -0
- package/app/m/fields/FieldPolicy/index.html +96 -0
- package/app/m/fields/FieldPolicySuggestion/index.html +96 -0
- package/app/m/fields/FieldUsageCounter/index.html +96 -0
- package/app/m/images/Image/index.html +96 -0
- package/app/m/inventory/InventoryLocation/index.html +96 -0
- package/app/m/inventory/StockLevel/index.html +96 -0
- package/app/m/inventory/StockMovement/index.html +96 -0
- package/app/m/ledgers/Account/index.html +96 -0
- package/app/m/ledgers/Journal/index.html +96 -0
- package/app/m/ledgers/JournalEntry/index.html +97 -0
- package/app/m/manufacturing/Assembly/index.html +96 -0
- package/app/m/manufacturing/BillOfMaterials/index.html +96 -0
- package/app/m/manufacturing/BomLine/index.html +96 -0
- package/app/m/manufacturing/Operation/index.html +96 -0
- package/app/m/manufacturing/ProductionRun/index.html +96 -0
- package/app/m/manufacturing/ProductionRunCompletion/index.html +96 -0
- package/app/m/manufacturing/RoutingStep/index.html +96 -0
- package/app/m/marketing/Campaign/index.html +96 -0
- package/app/m/marketing/CampaignChannel/index.html +96 -0
- package/app/m/marketing/CampaignMetricSnapshot/index.html +96 -0
- package/app/m/messages/Account/index.html +96 -0
- package/app/m/messages/Attachment/index.html +96 -0
- package/app/m/messages/Blacklist/index.html +96 -0
- package/app/m/messages/Email/failed-sends/index.html +96 -0
- package/app/m/messages/Email/index.html +96 -0
- package/app/m/messages/Email/mailbox/index.html +96 -0
- package/app/m/messages/EmailAccount/index.html +96 -0
- package/app/m/messages/EmailFolder/index.html +96 -0
- package/app/m/messages/Message/index.html +96 -0
- package/app/m/messages/MessagingEndpoint/index.html +96 -0
- package/app/m/messages/PersonaMessageRoute/index.html +96 -0
- package/app/m/messages/SlackAccount/index.html +96 -0
- package/app/m/messages/SlackMessage/index.html +96 -0
- package/app/m/messages/TelegramAccount/index.html +96 -0
- package/app/m/messages/Tweet/index.html +96 -0
- package/app/m/messages/TwitterAccount/index.html +96 -0
- package/app/m/messages/Whitelist/index.html +96 -0
- package/app/m/messages/ZulipAccount/index.html +96 -0
- package/app/m/places/Place/index.html +96 -0
- package/app/m/places/PlaceType/index.html +96 -0
- package/app/m/preferences/UiPreferenceRecord/index.html +96 -0
- package/app/m/products/Category/index.html +96 -0
- package/app/m/products/Material/index.html +96 -0
- package/app/m/products/Product/index.html +96 -0
- package/app/m/products/Product/ingredients/index.html +96 -0
- package/app/m/products/ProductVariant/index.html +97 -0
- package/app/m/products/Sku/index.html +97 -0
- package/app/m/profiles/ApiKey/index.html +96 -0
- package/app/m/profiles/Bot/index.html +96 -0
- package/app/m/profiles/MagicLinkToken/index.html +96 -0
- package/app/m/profiles/NostrIdentity/index.html +96 -0
- package/app/m/profiles/OidcIdentity/index.html +96 -0
- package/app/m/profiles/Organization/index.html +96 -0
- package/app/m/profiles/Person/index.html +96 -0
- package/app/m/profiles/Profile/index.html +96 -0
- package/app/m/profiles/ProfileMetadata/index.html +96 -0
- package/app/m/profiles/ProfileMetafield/index.html +96 -0
- package/app/m/profiles/ProfileRelationship/index.html +96 -0
- package/app/m/profiles/ProfileRelationshipTerm/index.html +96 -0
- package/app/m/profiles/ProfileRelationshipType/index.html +96 -0
- package/app/m/profiles/ProfileType/index.html +96 -0
- package/app/m/projects/Comment/index.html +97 -0
- package/app/m/projects/Issue/index.html +96 -0
- package/app/m/projects/Label/index.html +96 -0
- package/app/m/projects/Project/index.html +96 -0
- package/app/m/projects/ProjectIntegration/index.html +96 -0
- package/app/m/projects/PullRequest/index.html +96 -0
- package/app/m/projects/Repository/index.html +96 -0
- package/app/m/properties/Property/index.html +96 -0
- package/app/m/properties/Zone/index.html +96 -0
- package/app/m/reports/RuntimeReport/index.html +96 -0
- package/app/m/reports/SmrtPrincipalReportRefreshTask/index.html +96 -0
- package/app/m/reports/SmrtReportLock/index.html +96 -0
- package/app/m/reports/SmrtReportRefreshTask/index.html +96 -0
- package/app/m/reports/SmrtReportRun/index.html +96 -0
- package/app/m/reports/SmrtReportSchedule/index.html +96 -0
- package/app/m/reports/SmrtReportWatermark/index.html +96 -0
- package/app/m/sales/AttributionException/index.html +96 -0
- package/app/m/sales/AttributionPolicy/index.html +96 -0
- package/app/m/sales/Commission/index.html +96 -0
- package/app/m/sales/CommissionAdjustment/index.html +96 -0
- package/app/m/sales/CommissionPayout/index.html +96 -0
- package/app/m/sales/CommissionPlan/index.html +96 -0
- package/app/m/sales/Earner/index.html +96 -0
- package/app/m/sales/EarnerSourceAttribution/index.html +96 -0
- package/app/m/sales/EarningEvent/index.html +96 -0
- package/app/m/sales/ExecutedAgreement/index.html +96 -0
- package/app/m/sales/Lead/index.html +96 -0
- package/app/m/sales/Opportunity/index.html +96 -0
- package/app/m/sales/OpportunityConversion/index.html +96 -0
- package/app/m/sales/PipelineDefinition/index.html +96 -0
- package/app/m/sales/PipelineStage/index.html +97 -0
- package/app/m/sales/Referral/index.html +96 -0
- package/app/m/sales/ReferralAgreement/index.html +96 -0
- package/app/m/sales/ReferralLink/index.html +96 -0
- package/app/m/sales/ReferralProgram/index.html +96 -0
- package/app/m/sales/ReferralTermSnapshot/index.html +96 -0
- package/app/m/sales/ReferralTouch/index.html +96 -0
- package/app/m/sales/Referrer/index.html +96 -0
- package/app/m/sales/SalesActivity/index.html +96 -0
- package/app/m/sales/SalesRepresentative/index.html +96 -0
- package/app/m/sites/Site/index.html +96 -0
- package/app/m/sites/SiteAgentBinding/index.html +96 -0
- package/app/m/social/OAuthState/index.html +96 -0
- package/app/m/social/SocialAccount/index.html +96 -0
- package/app/m/social/SocialPost/index.html +96 -0
- package/app/m/social/SocialPostAnalyticsSnapshot/index.html +96 -0
- package/app/m/subscriptions/BillingAdjustment/index.html +96 -0
- package/app/m/subscriptions/ClientCharge/index.html +96 -0
- package/app/m/subscriptions/CreditGrant/index.html +96 -0
- package/app/m/subscriptions/PricingRule/index.html +96 -0
- package/app/m/subscriptions/RetailCharge/index.html +96 -0
- package/app/m/subscriptions/SpendingPolicy/index.html +96 -0
- package/app/m/subscriptions/SubscriptionPlan/index.html +96 -0
- package/app/m/subscriptions/TenantSubscription/index.html +96 -0
- package/app/m/subscriptions/TenantUsageMetric/index.html +96 -0
- package/app/m/support/ServiceTimeEntry/index.html +96 -0
- package/app/m/support/SupportAiRun/index.html +96 -0
- package/app/m/support/SupportAvailability/index.html +96 -0
- package/app/m/support/SupportCase/index.html +96 -0
- package/app/m/support/SupportCaseEvent/index.html +96 -0
- package/app/m/support/SupportChannelBinding/index.html +96 -0
- package/app/m/support/SupportCharge/index.html +96 -0
- package/app/m/support/SupportCompensation/index.html +96 -0
- package/app/m/support/SupportCompensationPlan/index.html +96 -0
- package/app/m/support/SupportEscalation/index.html +96 -0
- package/app/m/support/SupportInteraction/index.html +96 -0
- package/app/m/support/SupportPlan/index.html +96 -0
- package/app/m/support/SupportPolicy/index.html +96 -0
- package/app/m/support/SupportQualification/index.html +96 -0
- package/app/m/support/SupportServiceTarget/index.html +96 -0
- package/app/m/support/SupportSpecialist/index.html +96 -0
- package/app/m/support/SupportWorkLink/index.html +96 -0
- package/app/m/tags/Tag/index.html +96 -0
- package/app/m/tags/TagAlias/index.html +96 -0
- package/app/m/timesheets/AttendanceBreak/index.html +96 -0
- package/app/m/timesheets/AttendancePunch/index.html +96 -0
- package/app/m/timesheets/ServiceChargeSnapshot/index.html +96 -0
- package/app/m/timesheets/ServiceCompensationSnapshot/index.html +96 -0
- package/app/m/timesheets/ServiceTimeEntry/index.html +96 -0
- package/app/m/users/AccessRequest/index.html +96 -0
- package/app/m/users/Group/index.html +96 -0
- package/app/m/users/GroupMember/index.html +96 -0
- package/app/m/users/GroupRole/index.html +96 -0
- package/app/m/users/Membership/index.html +97 -0
- package/app/m/users/MembershipOverride/index.html +96 -0
- package/app/m/users/Permission/index.html +96 -0
- package/app/m/users/ResourceGrant/index.html +96 -0
- package/app/m/users/Role/index.html +96 -0
- package/app/m/users/RolePermission/index.html +96 -0
- package/app/m/users/Session/index.html +96 -0
- package/app/m/users/Tenant/index.html +96 -0
- package/app/m/users/TenantIntegration/index.html +96 -0
- package/app/m/users/TenantPermissionOverride/index.html +96 -0
- package/app/m/users/User/index.html +96 -0
- package/app/m/users/UsersCliAuthRequest/index.html +96 -0
- package/app/m/users/UsersMagicLinkToken/index.html +96 -0
- package/app/m/video/Character/index.html +96 -0
- package/app/m/video/CharacterAsset/index.html +96 -0
- package/app/m/video/CompositeJob/index.html +96 -0
- package/app/m/video/Performer/index.html +96 -0
- package/app/m/video/PerformerAsset/index.html +96 -0
- package/app/m/video/Scene/index.html +96 -0
- package/app/m/video/SceneAsset/index.html +96 -0
- package/app/m/video/VideoComposition/index.html +96 -0
- package/app/m/video/VideoCompositionAsset/index.html +96 -0
- package/app/m/video/VideoSequence/index.html +96 -0
- package/app/m/video/VideoSequenceAsset/index.html +96 -0
- package/app/m/video/VideoShot/index.html +96 -0
- package/app/m/video/VideoShotAsset/index.html +96 -0
- package/app/m/video/VideoShotCharacter/index.html +96 -0
- package/app/m/video/VideoWorkflow/index.html +96 -0
- package/app/m/voice/VoiceOutput/index.html +96 -0
- package/app/m/voice/VoiceProfile/index.html +96 -0
- package/app/m/voice/VoiceSample/index.html +96 -0
- package/app/packages/ads/index.html +92 -0
- package/app/packages/analytics/index.html +92 -0
- package/app/packages/approvals/index.html +92 -0
- package/app/packages/assets/index.html +92 -0
- package/app/packages/chat/index.html +92 -0
- package/app/packages/comments/index.html +92 -0
- package/app/packages/commerce/index.html +92 -0
- package/app/packages/content/index.html +92 -0
- package/app/packages/events/index.html +92 -0
- package/app/packages/expenses/index.html +92 -0
- package/app/packages/facts/index.html +92 -0
- package/app/packages/fields/index.html +92 -0
- package/app/packages/human-resources/index.html +92 -0
- package/app/packages/images/index.html +92 -0
- package/app/packages/index.html +90 -0
- package/app/packages/inventory/index.html +92 -0
- package/app/packages/ledgers/index.html +92 -0
- package/app/packages/manufacturing/index.html +92 -0
- package/app/packages/marketing/index.html +92 -0
- package/app/packages/messages/index.html +92 -0
- package/app/packages/places/index.html +92 -0
- package/app/packages/preferences/index.html +92 -0
- package/app/packages/products/index.html +92 -0
- package/app/packages/profiles/index.html +92 -0
- package/app/packages/projects/index.html +92 -0
- package/app/packages/properties/index.html +92 -0
- package/app/packages/reports/index.html +92 -0
- package/app/packages/sales/index.html +92 -0
- package/app/packages/sites/index.html +92 -0
- package/app/packages/social/index.html +92 -0
- package/app/packages/subscriptions/index.html +92 -0
- package/app/packages/support/index.html +92 -0
- package/app/packages/tags/index.html +92 -0
- package/app/packages/timesheets/index.html +92 -0
- package/app/packages/users/index.html +92 -0
- package/app/packages/video/index.html +92 -0
- package/app/packages/voice/index.html +92 -0
- package/app/recipes/account-access/help/index.html +93 -0
- package/app/recipes/account-access/index.html +95 -0
- package/app/recipes/activity/help/index.html +93 -0
- package/app/recipes/activity/index.html +94 -0
- package/app/recipes/agreements/help/index.html +93 -0
- package/app/recipes/agreements/index.html +96 -0
- package/app/recipes/analytics.reports/help/index.html +93 -0
- package/app/recipes/analytics.reports/index.html +94 -0
- package/app/recipes/assets/help/index.html +93 -0
- package/app/recipes/assets/index.html +95 -0
- package/app/recipes/billing/help/index.html +93 -0
- package/app/recipes/billing/index.html +95 -0
- package/app/recipes/chat.assistant/help/index.html +93 -0
- package/app/recipes/chat.assistant/index.html +94 -0
- package/app/recipes/comments/help/index.html +93 -0
- package/app/recipes/comments/index.html +94 -0
- package/app/recipes/commerce.customers/help/index.html +93 -0
- package/app/recipes/commerce.customers/index.html +94 -0
- package/app/recipes/commerce.estimates/help/index.html +93 -0
- package/app/recipes/commerce.estimates/index.html +94 -0
- package/app/recipes/commerce.purchases/help/index.html +93 -0
- package/app/recipes/commerce.purchases/index.html +94 -0
- package/app/recipes/commerce.sales/help/index.html +93 -0
- package/app/recipes/commerce.sales/index.html +94 -0
- package/app/recipes/commerce.vendors/help/index.html +93 -0
- package/app/recipes/commerce.vendors/index.html +94 -0
- package/app/recipes/commerce.wholesale/help/index.html +93 -0
- package/app/recipes/commerce.wholesale/index.html +94 -0
- package/app/recipes/events.calendar/help/index.html +93 -0
- package/app/recipes/events.calendar/index.html +94 -0
- package/app/recipes/fields.form-customization/help/index.html +93 -0
- package/app/recipes/fields.form-customization/index.html +94 -0
- package/app/recipes/inventory.stock/help/index.html +93 -0
- package/app/recipes/inventory.stock/index.html +94 -0
- package/app/recipes/ledgers.bookkeeping/help/index.html +93 -0
- package/app/recipes/ledgers.bookkeeping/index.html +94 -0
- package/app/recipes/messages/help/index.html +93 -0
- package/app/recipes/messages/index.html +95 -0
- package/app/recipes/products/help/index.html +93 -0
- package/app/recipes/products/index.html +96 -0
- package/app/recipes/projects.tracker/help/index.html +93 -0
- package/app/recipes/projects.tracker/index.html +94 -0
- package/app/recipes/reports.materialized/help/index.html +93 -0
- package/app/recipes/reports.materialized/index.html +94 -0
- package/app/recipes/sales.pipeline/help/index.html +93 -0
- package/app/recipes/sales.pipeline/index.html +94 -0
- package/app/recipes/tags.taxonomy/help/index.html +93 -0
- package/app/recipes/tags.taxonomy/index.html +94 -0
- package/app/recipes/team-collaboration/help/index.html +93 -0
- package/app/recipes/team-collaboration/index.html +94 -0
- package/app/s/custom-billing/index.html +89 -0
- package/app/s/custom-buying/index.html +89 -0
- package/app/s/custom-classes/index.html +89 -0
- package/app/s/custom-jobs/index.html +89 -0
- package/app/s/custom-kitchen/index.html +89 -0
- package/app/s/custom-material/index.html +89 -0
- package/app/s/custom-members/index.html +89 -0
- package/app/s/custom-parts/index.html +89 -0
- package/app/s/custom-schedule/index.html +89 -0
- package/app/s/custom-shop/index.html +89 -0
- package/app/s/custom-wholesale/index.html +89 -0
- package/app/s/section-access-control/index.html +89 -0
- package/app/s/section-account-security/index.html +89 -0
- package/app/s/section-accounting/index.html +89 -0
- package/app/s/section-activity/index.html +89 -0
- package/app/s/section-agreements/index.html +89 -0
- package/app/s/section-analytics/index.html +89 -0
- package/app/s/section-assets/index.html +89 -0
- package/app/s/section-billing/index.html +89 -0
- package/app/s/section-calendar/index.html +89 -0
- package/app/s/section-catalog/index.html +89 -0
- package/app/s/section-chat.assistant/index.html +89 -0
- package/app/s/section-comments/index.html +89 -0
- package/app/s/section-fields.form-customization/index.html +89 -0
- package/app/s/section-messages/index.html +89 -0
- package/app/s/section-more/index.html +89 -0
- package/app/s/section-operations/index.html +89 -0
- package/app/s/section-projects/index.html +89 -0
- package/app/s/section-purchasing/index.html +89 -0
- package/app/s/section-reports.materialized/index.html +89 -0
- package/app/s/section-sales/index.html +89 -0
- package/app/s/section-taxonomy/index.html +89 -0
- package/app/s/section-team/index.html +89 -0
- package/dist/ai/echo-gate.d.ts +13 -0
- package/dist/ai/echo-gate.js +21 -0
- package/dist/ai/icons.d.ts +9 -0
- package/dist/ai/icons.js +9 -0
- package/dist/ai/instance.d.ts +3 -0
- package/dist/ai/instance.js +25 -0
- package/dist/ai/state.svelte.d.ts +130 -0
- package/dist/ai/state.svelte.js +316 -0
- package/dist/ai/status.d.ts +67 -0
- package/dist/ai/status.js +125 -0
- package/dist/assets/smrt-mark.svg +38 -0
- package/dist/assistant/change.d.ts +101 -0
- package/dist/assistant/change.js +209 -0
- package/dist/assistant/engine.d.ts +20 -0
- package/dist/assistant/engine.js +43 -0
- package/dist/assistant/llm.worker.d.ts +1 -0
- package/dist/assistant/llm.worker.js +7 -0
- package/dist/assistant/match.d.ts +59 -0
- package/dist/assistant/match.js +271 -0
- package/dist/assistant/models.d.ts +38 -0
- package/dist/assistant/models.js +57 -0
- package/dist/assistant/offers.svelte.d.ts +36 -0
- package/dist/assistant/offers.svelte.js +59 -0
- package/dist/assistant/prefs.d.ts +14 -0
- package/dist/assistant/prefs.js +32 -0
- package/dist/assistant/prompt.d.ts +23 -0
- package/dist/assistant/prompt.js +163 -0
- package/dist/assistant/session.svelte.d.ts +74 -0
- package/dist/assistant/session.svelte.js +181 -0
- package/dist/assistant/theme-undo.svelte.d.ts +38 -0
- package/dist/assistant/theme-undo.svelte.js +50 -0
- package/dist/assistant/transport.d.ts +73 -0
- package/dist/assistant/transport.js +231 -0
- package/dist/assistant/voice-host.d.ts +10 -0
- package/dist/assistant/voice-host.js +17 -0
- package/dist/assistant/voice.svelte.d.ts +107 -0
- package/dist/assistant/voice.svelte.js +261 -0
- package/dist/catalog/catalog.json +89663 -0
- package/dist/catalog/generate/build.d.ts +33 -0
- package/dist/catalog/generate/build.js +131 -0
- package/dist/catalog/generate/exclusions.d.ts +18 -0
- package/dist/catalog/generate/exclusions.js +33 -0
- package/dist/catalog/generate/extract.d.ts +90 -0
- package/dist/catalog/generate/extract.js +326 -0
- package/dist/catalog/generate/local.d.ts +8 -0
- package/dist/catalog/generate/local.js +45 -0
- package/dist/catalog/generate/recipe-demo.d.ts +11 -0
- package/dist/catalog/generate/recipe-demo.js +29 -0
- package/dist/catalog/generate/recipe-metadata.d.ts +12 -0
- package/dist/catalog/generate/recipe-metadata.js +138 -0
- package/dist/catalog/generate/registry.d.ts +14 -0
- package/dist/catalog/generate/registry.js +83 -0
- package/dist/catalog/index.d.ts +21 -0
- package/dist/catalog/index.js +53 -0
- package/dist/catalog/types.d.ts +141 -0
- package/dist/catalog/types.js +8 -0
- package/dist/components/AiSetup.svelte +528 -0
- package/dist/components/AiSetup.svelte.d.ts +8 -0
- package/dist/components/AiStatusIcons.svelte +86 -0
- package/dist/components/AiStatusIcons.svelte.d.ts +18 -0
- package/dist/components/AppSettings.svelte +100 -0
- package/dist/components/AppSettings.svelte.d.ts +10 -0
- package/dist/components/BrowserAssistant.svelte +318 -0
- package/dist/components/BrowserAssistant.svelte.d.ts +8 -0
- package/dist/components/ChildRecords.svelte +331 -0
- package/dist/components/ChildRecords.svelte.d.ts +15 -0
- package/dist/components/ConnectTools.svelte +145 -0
- package/dist/components/ConnectTools.svelte.d.ts +8 -0
- package/dist/components/CookbooksPanel.svelte +308 -0
- package/dist/components/CookbooksPanel.svelte.d.ts +3 -0
- package/dist/components/ExportPanel.svelte +217 -0
- package/dist/components/ExportPanel.svelte.d.ts +3 -0
- package/dist/components/FeatureCard.svelte +197 -0
- package/dist/components/FeatureCard.svelte.d.ts +13 -0
- package/dist/components/FeaturesPanel.svelte +155 -0
- package/dist/components/FeaturesPanel.svelte.d.ts +3 -0
- package/dist/components/FieldInput.svelte +307 -0
- package/dist/components/FieldInput.svelte.d.ts +24 -0
- package/dist/components/FieldMapForm.svelte +173 -0
- package/dist/components/FieldMapForm.svelte.d.ts +18 -0
- package/dist/components/FormWorkspace.svelte +274 -0
- package/dist/components/FormWorkspace.svelte.d.ts +19 -0
- package/dist/components/HelpView.svelte +129 -0
- package/dist/components/HelpView.svelte.d.ts +12 -0
- package/dist/components/ModelOptions.svelte +239 -0
- package/dist/components/ModelOptions.svelte.d.ts +12 -0
- package/dist/components/ModelPage.svelte +295 -0
- package/dist/components/ModelPage.svelte.d.ts +9 -0
- package/dist/components/ModelWorkspace.svelte +488 -0
- package/dist/components/ModelWorkspace.svelte.d.ts +32 -0
- package/dist/components/PlannerEditBridge.svelte +36 -0
- package/dist/components/PlannerEditBridge.svelte.d.ts +3 -0
- package/dist/components/PlannerPalette.svelte +38 -0
- package/dist/components/PlannerPalette.svelte.d.ts +18 -0
- package/dist/components/RecipeCards.svelte +145 -0
- package/dist/components/RecipeCards.svelte.d.ts +3 -0
- package/dist/components/RecipeHelp.svelte +54 -0
- package/dist/components/RecipeHelp.svelte.d.ts +9 -0
- package/dist/components/RecipeOptions.svelte +160 -0
- package/dist/components/RecipeOptions.svelte.d.ts +9 -0
- package/dist/components/RecordFeatures.svelte +240 -0
- package/dist/components/RecordFeatures.svelte.d.ts +3 -0
- package/dist/components/RelationField.svelte +175 -0
- package/dist/components/RelationField.svelte.d.ts +16 -0
- package/dist/components/SectionActions.svelte +91 -0
- package/dist/components/SectionActions.svelte.d.ts +12 -0
- package/dist/components/SectionIcons.svelte +98 -0
- package/dist/components/SectionIcons.svelte.d.ts +15 -0
- package/dist/components/SectionOverview.svelte +65 -0
- package/dist/components/SectionOverview.svelte.d.ts +14 -0
- package/dist/components/SectionPage.svelte +230 -0
- package/dist/components/SectionPage.svelte.d.ts +7 -0
- package/dist/components/SettingsPanel.svelte +60 -0
- package/dist/components/SettingsPanel.svelte.d.ts +7 -0
- package/dist/components/ThemeBridge.svelte +56 -0
- package/dist/components/ThemeBridge.svelte.d.ts +3 -0
- package/dist/components/ThemeSection.svelte +167 -0
- package/dist/components/ThemeSection.svelte.d.ts +11 -0
- package/dist/components/VariantGridForm.svelte +309 -0
- package/dist/components/VariantGridForm.svelte.d.ts +12 -0
- package/dist/components/VoiceTyping.svelte +108 -0
- package/dist/components/VoiceTyping.svelte.d.ts +7 -0
- package/dist/cookbook/assemble.d.ts +16 -0
- package/dist/cookbook/assemble.js +29 -0
- package/dist/cookbook/file.d.ts +7 -0
- package/dist/cookbook/file.js +25 -0
- package/dist/cookbook/legacy.d.ts +9 -0
- package/dist/cookbook/legacy.js +87 -0
- package/dist/cookbook/migrate.d.ts +22 -0
- package/dist/cookbook/migrate.js +106 -0
- package/dist/cookbook/parse.d.ts +16 -0
- package/dist/cookbook/parse.js +246 -0
- package/dist/cookbook/storage.d.ts +45 -0
- package/dist/cookbook/storage.js +98 -0
- package/dist/cookbook/store.svelte.d.ts +94 -0
- package/dist/cookbook/store.svelte.js +231 -0
- package/dist/cookbook/types.d.ts +76 -0
- package/dist/cookbook/types.js +11 -0
- package/dist/cookbook/validate.d.ts +14 -0
- package/dist/cookbook/validate.js +29 -0
- package/dist/core/app.d.ts +37 -0
- package/dist/core/app.js +119 -0
- package/dist/core/catalog.d.ts +19 -0
- package/dist/core/catalog.js +9 -0
- package/dist/core/headless.d.ts +52 -0
- package/dist/core/headless.js +39 -0
- package/dist/core/index.d.ts +28 -0
- package/dist/core/index.js +28 -0
- package/dist/core/prompt.d.ts +38 -0
- package/dist/core/prompt.js +95 -0
- package/dist/core/reply.d.ts +60 -0
- package/dist/core/reply.js +89 -0
- package/dist/core/request.d.ts +15 -0
- package/dist/core/request.js +55 -0
- package/dist/data/children.d.ts +20 -0
- package/dist/data/children.js +80 -0
- package/dist/data/columns.d.ts +56 -0
- package/dist/data/columns.js +150 -0
- package/dist/data/context.d.ts +8 -0
- package/dist/data/context.js +19 -0
- package/dist/data/derived.d.ts +79 -0
- package/dist/data/derived.js +139 -0
- package/dist/data/display.d.ts +23 -0
- package/dist/data/display.js +84 -0
- package/dist/data/fakes.d.ts +52 -0
- package/dist/data/fakes.js +443 -0
- package/dist/data/format.d.ts +48 -0
- package/dist/data/format.js +121 -0
- package/dist/data/labels.d.ts +45 -0
- package/dist/data/labels.js +179 -0
- package/dist/data/packs.d.ts +95 -0
- package/dist/data/packs.js +830 -0
- package/dist/data/payments.d.ts +17 -0
- package/dist/data/payments.js +60 -0
- package/dist/data/planner-source.d.ts +7 -0
- package/dist/data/planner-source.js +32 -0
- package/dist/data/source.d.ts +119 -0
- package/dist/data/source.js +432 -0
- package/dist/features/catalogue.d.ts +96 -0
- package/dist/features/catalogue.js +225 -0
- package/dist/features/demo.d.ts +36 -0
- package/dist/features/demo.js +66 -0
- package/dist/features/palette.d.ts +39 -0
- package/dist/features/palette.js +53 -0
- package/dist/fields/address.d.ts +23 -0
- package/dist/fields/address.js +39 -0
- package/dist/fields/invalid.d.ts +2 -0
- package/dist/fields/invalid.js +8 -0
- package/dist/fields/modal.d.ts +7 -0
- package/dist/fields/modal.js +14 -0
- package/dist/fields/percent.d.ts +8 -0
- package/dist/fields/percent.js +16 -0
- package/dist/fields/renderer.d.ts +17 -0
- package/dist/fields/renderer.js +43 -0
- package/dist/forms/active.d.ts +16 -0
- package/dist/forms/active.js +24 -0
- package/dist/forms/fieldMap.d.ts +44 -0
- package/dist/forms/fieldMap.js +134 -0
- package/dist/forms/shared.d.ts +41 -0
- package/dist/forms/shared.js +138 -0
- package/dist/forms/stock.d.ts +28 -0
- package/dist/forms/stock.js +104 -0
- package/dist/forms/variantGrid.d.ts +83 -0
- package/dist/forms/variantGrid.js +283 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +16 -0
- package/dist/inference/byo.svelte.d.ts +90 -0
- package/dist/inference/byo.svelte.js +295 -0
- package/dist/inference/config.d.ts +77 -0
- package/dist/inference/config.js +205 -0
- package/dist/inference/host.d.ts +40 -0
- package/dist/inference/host.js +57 -0
- package/dist/inference/openai.d.ts +59 -0
- package/dist/inference/openai.js +207 -0
- package/dist/inference/presets.d.ts +5 -0
- package/dist/inference/presets.js +46 -0
- package/dist/kitchen/client.d.ts +39 -0
- package/dist/kitchen/client.js +115 -0
- package/dist/kitchen/fragment.d.ts +30 -0
- package/dist/kitchen/fragment.js +49 -0
- package/dist/kitchen/state.svelte.d.ts +26 -0
- package/dist/kitchen/state.svelte.js +45 -0
- package/dist/library/apply.d.ts +17 -0
- package/dist/library/apply.js +32 -0
- package/dist/library/document.d.ts +12 -0
- package/dist/library/document.js +27 -0
- package/dist/library/icons.d.ts +6 -0
- package/dist/library/icons.js +26 -0
- package/dist/library/index.d.ts +8 -0
- package/dist/library/index.js +12 -0
- package/dist/library/library.json +788 -0
- package/dist/library/menu.d.ts +18 -0
- package/dist/library/menu.js +72 -0
- package/dist/library/state.svelte.d.ts +10 -0
- package/dist/library/state.svelte.js +28 -0
- package/dist/library/types.d.ts +57 -0
- package/dist/library/types.js +1 -0
- package/dist/overviews/definitions.d.ts +24 -0
- package/dist/overviews/definitions.js +97 -0
- package/dist/overviews/page.d.ts +21 -0
- package/dist/overviews/page.js +36 -0
- package/dist/overviews/registry.d.ts +44 -0
- package/dist/overviews/registry.js +191 -0
- package/dist/overviews/validate.d.ts +32 -0
- package/dist/overviews/validate.js +91 -0
- package/dist/planner/Planner.svelte +204 -0
- package/dist/planner/Planner.svelte.d.ts +4 -0
- package/dist/planner/app.svelte.d.ts +6 -0
- package/dist/planner/app.svelte.js +23 -0
- package/dist/planner/assistant.d.ts +46 -0
- package/dist/planner/assistant.js +122 -0
- package/dist/planner/commands/adapter.d.ts +121 -0
- package/dist/planner/commands/adapter.js +597 -0
- package/dist/planner/commands/catalog.d.ts +19 -0
- package/dist/planner/commands/catalog.js +54 -0
- package/dist/planner/commands/controller.svelte.d.ts +13 -0
- package/dist/planner/commands/controller.svelte.js +77 -0
- package/dist/planner/commands/index.d.ts +15 -0
- package/dist/planner/commands/index.js +15 -0
- package/dist/planner/commands/schemas.d.ts +25 -0
- package/dist/planner/commands/schemas.js +67 -0
- package/dist/planner/commands/slices.d.ts +18 -0
- package/dist/planner/commands/slices.js +49 -0
- package/dist/planner/commands/types.d.ts +80 -0
- package/dist/planner/commands/types.js +18 -0
- package/dist/planner/create.d.ts +4 -0
- package/dist/planner/create.js +22 -0
- package/dist/planner/instance.d.ts +15 -0
- package/dist/planner/instance.js +22 -0
- package/dist/planner/query.d.ts +16 -0
- package/dist/planner/query.js +28 -0
- package/dist/planner/selection.d.ts +15 -0
- package/dist/planner/selection.js +38 -0
- package/dist/planner/selection.svelte.d.ts +29 -0
- package/dist/planner/selection.svelte.js +54 -0
- package/dist/planner/tab.svelte.d.ts +11 -0
- package/dist/planner/tab.svelte.js +22 -0
- package/dist/planner/types.d.ts +41 -0
- package/dist/planner/types.js +1 -0
- package/dist/recipes/cards.d.ts +55 -0
- package/dist/recipes/cards.js +80 -0
- package/dist/recipes/features.d.ts +53 -0
- package/dist/recipes/features.js +97 -0
- package/dist/recipes/help/descriptions.json +373 -0
- package/dist/recipes/help.d.ts +121 -0
- package/dist/recipes/help.js +262 -0
- package/dist/recipes/index.d.ts +65 -0
- package/dist/recipes/index.js +95 -0
- package/dist/recipes/merge.d.ts +26 -0
- package/dist/recipes/merge.js +21 -0
- package/dist/recipes/overlay.json +409 -0
- package/dist/recipes/plan-data.d.ts +41 -0
- package/dist/recipes/plan-data.js +97 -0
- package/dist/recipes/plumbing.d.ts +70 -0
- package/dist/recipes/plumbing.js +185 -0
- package/dist/recipes/policy.d.ts +118 -0
- package/dist/recipes/policy.js +268 -0
- package/dist/recipes/resolve.d.ts +19 -0
- package/dist/recipes/resolve.js +65 -0
- package/dist/recipes/scope.d.ts +25 -0
- package/dist/recipes/scope.js +31 -0
- package/dist/recipes/sections.d.ts +49 -0
- package/dist/recipes/sections.js +84 -0
- package/dist/recipes/state.svelte.d.ts +67 -0
- package/dist/recipes/state.svelte.js +112 -0
- package/dist/recipes/types.d.ts +322 -0
- package/dist/recipes/types.js +8 -0
- package/dist/sections/entries.d.ts +30 -0
- package/dist/sections/entries.js +57 -0
- package/dist/sections/info.d.ts +16 -0
- package/dist/sections/info.js +39 -0
- package/dist/sections/path.d.ts +12 -0
- package/dist/sections/path.js +18 -0
- package/dist/settings/app-settings.d.ts +44 -0
- package/dist/settings/app-settings.js +138 -0
- package/dist/settings/currencies.d.ts +2 -0
- package/dist/settings/currencies.js +8 -0
- package/dist/theme/runtime.d.ts +14 -0
- package/dist/theme/runtime.js +27 -0
- package/dist/theme/theme.d.ts +47 -0
- package/dist/theme/theme.js +122 -0
- package/dist/upstream/CustomerSelect.svelte +60 -0
- package/dist/upstream/CustomerSelect.svelte.d.ts +17 -0
- package/dist/upstream/VendorSelect.svelte +60 -0
- package/dist/upstream/VendorSelect.svelte.d.ts +17 -0
- package/dist/upstream/overlay.d.ts +10 -0
- package/dist/upstream/overlay.js +49 -0
- package/dist/upstream/partySelect.d.ts +8 -0
- package/dist/upstream/partySelect.js +21 -0
- package/dist/upstream/partyTypes.d.ts +64 -0
- package/dist/upstream/partyTypes.js +8 -0
- package/dist/upstream/relations.d.ts +2 -0
- package/dist/upstream/relations.js +24 -0
- package/dist/upstream/selects.d.ts +26 -0
- package/dist/upstream/selects.js +20 -0
- package/dist/upstream/widgets.d.ts +20 -0
- package/dist/upstream/widgets.js +30 -0
- package/package.json +81 -3
|
@@ -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 te(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 ne(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;T(e.id,`formId`,i.formId,a.formId),T(e.id,`controlId`,i.controlId,a.controlId);let o=t.registryPort;return{...r,execute:n(async e=>{try{let t=te(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;T(e.id,`surfaceId`,i.surfaceId,a.surfaceId),T(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 T(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 E=class{},D=class extends E{constructor(e){super(),this.path=e,this.type=`ref`}},O=class extends E{constructor(e){super(),this.value=e,this.type=`val`}},k=class extends E{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`)}},I=class extends M{constructor(e){super(`Collection.delete was called with key '${e}' but there is no item in the collection with this key`)}},be=class extends A{constructor(e){super(e),this.name=`MissingHandlerError`}},xe=class extends be{constructor(){super(`Collection.insert called directly (not within an explicit transaction) but no 'onInsert' handler is configured.`)}},Se=class extends be{constructor(){super(`Collection.update called directly (not within an explicit transaction) but no 'onUpdate' handler is configured.`)}},Ce=class extends be{constructor(){super(`Collection.delete called directly (not within an explicit transaction) but no 'onDelete' handler is configured.`)}},we=class extends A{constructor(e){super(e),this.name=`TransactionError`}},Te=class extends we{constructor(){super(`mutationFn is required when creating a transaction`)}},Ee=class extends we{constructor(){super(`You can no longer call .mutate() as the transaction is no longer pending`)}},De=class extends we{constructor(){super(`You can no longer call .rollback() as the transaction is already completed`)}},Oe=class extends we{constructor(){super(`You can no longer call .commit() as the transaction is no longer pending`)}},ke=class extends we{constructor(){super(`No pending sync transaction to write to`)}},Ae=class extends we{constructor(){super(`The pending sync transaction is already committed, you can't still write to it.`)}},je=class extends we{constructor(){super(`No pending sync transaction to commit`)}},Me=class extends we{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}`)}},L=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 R(e,t){return Le(e,t,new Map)}function Le(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)&&Le(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(z(e)&&z(t))return e[Symbol.toStringTag]===t[Symbol.toStringTag]?typeof e.equals==`function`?e.equals(t):e.toString()===t.toString():!1;if(z(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)=>Le(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&&Le(e[r],t[r],n));return n.delete(e),a}return!1}var Re=new Set([`Temporal.Duration`,`Temporal.Instant`,`Temporal.PlainDate`,`Temporal.PlainDateTime`,`Temporal.PlainMonthDay`,`Temporal.PlainTime`,`Temporal.PlainYearMonth`,`Temporal.ZonedDateTime`]);function z(e){if(typeof e!=`object`||!e)return!1;let t=e[Symbol.toStringTag];return typeof t==`string`&&Re.has(t)}var ze={direction:`asc`,nulls:`first`,stringSort:`locale`},Be=new WeakMap,Ve=1;function He(e){if(Be.has(e))return Be.get(e);let t=Ve++;return Be.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(z(e)&&z(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():z(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??{...ze,...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{...ze,...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({...ze,...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??{...ze,...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&&R(s.value,t)||n!==void 0&&R(s.value,n))&&(p=!0);let h=a&&t!==void 0&&n!==void 0&&R(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&&(!R(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 D(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 O(e)}function Kt(e){return e&&typeof e==`object`&&e.__refProxy===!0}function qt(e,t){return new k(`eq`,[H(e),H(t)])}function Jt(e,t){return new k(`gt`,[H(e),H(t)])}function Yt(e,t){return new k(`gte`,[H(e),H(t)])}function Xt(e,t){return new k(`lt`,[H(e),H(t)])}function Zt(e,t,...n){return new k(`and`,[e,t,...n].map(e=>H(e)))}function Qt(e,t,...n){return new k(`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 O(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 O(i)))}let s=(i.compareOptions.direction===`asc`?Jt:Xt)(i.expression,new O(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 O(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 D(_.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 O(i)),Xt(r,new O(e)))}else a=qt(r,new O(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&&R(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 L(this.id,e);throw t.cause=e,t.stack=e.stack,t}throw new L(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)&&!z(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(z(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),!R(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(!R(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),R(i,r))U(`Value unchanged, not tracking`);else{let e=a.originalObject[n],i=R(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 Te;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 xe;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 Ce;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 I(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 Se;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=()=>new Promise(t=>{r=e=>{(c()||f())&&t(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()).then(()=>{t?h(r):_()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:p,start:()=>(p()?_():g().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){super(),this.path=e,this.type=`ref`,t!==void 0&&(this.sourceAlias=t)}};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}var hi=class extends Error{constructor(e){super(e),this.name=`TanStackDBError`}},gi=class extends hi{constructor(e){super(e),this.name=`CollectionConfigurationError`}},_i=class extends gi{constructor(e){super(`Invalid sync persistence capability at metadata.persistence: ${e}. Custom sync wrappers must forward metadata.persistence unchanged.`),this.name=`InvalidSyncPersistenceCapabilityError`}},vi=class extends Error{constructor(){super(`Load subset operation was aborted before its result became visible`),this.name=`AbortError`}};function yi(e,t){return Si(e,t,void 0)}function bi(e){return e===null||Object.getPrototypeOf(e)===null}function xi(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 Si(e,t,n,r=!1){if(e===t||Object.is(e,t))return!0;if(e==null||t==null||typeof e!=typeof 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 i=r&&Array.from(t.entries()),a=Array.from(e.entries()).every(([e,r],a)=>i?Object.is(e,i[a][0])&&Si(r,i[a][1],n,!0):t.has(e)&&Si(r,t.get(e),n));return n.delete(e),a}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 i=Array.from(e),a=Array.from(t);if(r){let t=i.every((e,t)=>Si(e,a[t],n,r));return n.delete(e),t}if(i.every(e=>typeof e!=`object`))return n.delete(e),i.every(e=>t.has(e));let o=(e,t,n)=>{if(e===i.length)return!0;let r=i[e];for(let[i,s]of t.entries()){let c=new Map(n);if(Si(r,a[s],c)&&o(e+1,t.filter((e,t)=>t!==i),c))return!0}return!1},s=o(0,a.map((e,t)=>t),n);return n.delete(e),s}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(wi(e)&&wi(t))return e[Symbol.toStringTag]===t[Symbol.toStringTag]?typeof e.equals==`function`?e.equals(t):e.toString()===t.toString():!1;if(wi(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 r=e.every((e,r)=>Si(e,t[r],n));return n.delete(e),r}if(typeof e==`object`){let i=Object.getPrototypeOf(e),a=Object.getPrototypeOf(t),o=bi(i),s=bi(a);if(i!==a&&!o&&!s)return!1;if(n?.has(e))return n.get(e)===t;let c=xi(e),l=xi(t);if(c.length!==l.length)return!1;if(c.length===0&&!Array.isArray(e)&&!(o&&s))return e instanceof URL&&e.href===t.href;let u=!1,d=!0;for(let i of c){let a=e[i];if(!u&&typeof a==`object`&&a&&(n??=new Map,n.set(e,t),u=!0),!Object.prototype.propertyIsEnumerable.call(t,i)||!Si(a,t[i],n,r)){d=!1;break}}return u&&n.delete(e),d}return!1}var Ci=new Set([`Temporal.Duration`,`Temporal.Instant`,`Temporal.PlainDate`,`Temporal.PlainDateTime`,`Temporal.PlainMonthDay`,`Temporal.PlainTime`,`Temporal.PlainYearMonth`,`Temporal.ZonedDateTime`]);function wi(e){if(typeof e!=`object`||!e)return!1;let t=e[Symbol.toStringTag];return typeof t==`string`&&Ci.has(t)}var Ti=new Set;function Ei(e,t){Ti.has(e)||(Ti.add(e),console.warn(t))}function Di(){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??=Mi();let o;if(typeof i==`symbol`){let e=Symbol.keyFor(i);e===void 0?(t??=Oi(),o=a(t,i)):(n??=new Map,o=a(n,e))}else o=a(e,i);return[`runtimeReference`,r,o]}}function Oi(){let e=new WeakMap,t=Symbol();try{if(e.set(t,0),e.get(t)===0)return e}catch{}return new Map}var ki;function Ai(e){return ki??=Di(),ki(e)}function ji(e){return e?.stringSort===`custom`?{...e,compare:Ai(e.compare)}:e}function Mi(){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 Ni(e){return e instanceof Uint8Array||typeof Buffer<`u`&&e instanceof Buffer}var Pi=`\0tanstack-db:`;function Fi(e,t){return`${Pi}${e}:${t}`}function Ii(e){let t=``;for(let n=0;n<e.byteLength;n++)t+=String.fromCharCode(e[n]);return Fi(`binary`,t)}Fi(`undefined`,``);function Li(e){return typeof e==`string`?e.startsWith(Pi)?Fi(`string`,e):e:typeof e!=`object`||!e?e:e instanceof Date?e.getTime():wi(e)?Fi(`temporal`,`${e[Symbol.toStringTag]}:${e.toString()}`):Ni(e)?Ii(e):e}function Ri(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}var zi=new WeakMap;function Bi(e){return typeof e==`object`&&e?zi.get(e):void 0}function Vi(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]):new ci(e.__path,e.__sourceAlias);let n=Bi(e);if(n)throw Error(`${n} cannot be used inside expressions (e.g., coalesce(), eq(), not()). Use ${n} directly as a select field value instead.`);return mi(e)?e:new di(e)}var Hi=Symbol.for(`@tanstack/db.collectionSyncConfig.factory`);function Ui(e,t){return Object.defineProperty(e,Hi,{value:t,enumerable:!0}),e}var Wi=class extends Error{constructor(e,t){super(`Query IR is not stably hashable at ${e}: ${t}`),this.path=e,this.reason=t,this.name=`UnhashableQueryIRError`}};function Gi(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:Zi(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 Ki(e,t){let n=new Map,r=e=>{if(e.type===`unionFrom`){e.sources.forEach(r);return}e.type!==`unionAll`&&(n.has(e.alias)||n.set(e.alias,n.size))};return r(e.from),e.join?.forEach(({from:e})=>r(e)),{bindings:n,hasUnqualifiedOutput:e.from.type===`unionAll`,parent:t}}function qi(e,t){let n=e,r=0;for(;n;){let e=n.bindings.get(t);if(e!==void 0)return[r,e];if(n.hasUnqualifiedOutput)return;n=n.parent,r++}}function Ji(e,t,n,r){return Yi(e,t,n,Ki(e,r))}function Yi(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:$i(e.from,`${t}.from`,n,r)};return e.select&&(i.select=ea(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)=>Qi(e,`${t}.join[${i}]`,n,r))),e.where&&(i.where=Xi(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=Xi(e.having,`${t}.having`,n,r)),e.orderBy&&(i.orderBy=e.orderBy.map((e,i)=>ra(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 Xi(e,t,n,r){let i=e.map((e,i)=>na(e,`${t}[${i}]`,n,r));return i.sort(fa),i.filter((e,t)=>t===0||fa(e,i[t-1])!==0)}function Zi(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)=>ra(e,`${t}.orderBy[${r}]`,n,`ordering-operand`))),r}function Qi(e,t,n,r){return{type:e.type,from:$i(e.from,`${t}.from`,n,r),left:J(e.left,`${t}.left`,n,`equality-operand`,r),right:J(e.right,`${t}.right`,n,`equality-operand`,r)}}function $i(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)=>$i(e,`${t}.sources[${i}]`,n,r))}:e.type===`unionAll`?{type:`unionAll`,queries:e.queries.map((e,i)=>Ji(e,`${t}.queries[${i}]`,n,r.parent))}:{type:`queryRef`,query:Ji(e.query,`${t}.query`,n,r)}}function ea(e,t,n,r){return{type:`select`,fields:Object.keys(e).sort().map(i=>[i,ta(e[i],`${t}.${i}`,n,r)])}}function ta(e,t,n,r){return oi(e)?J(Vi(e),t,n,`exact-output`,r):ga(e)?J(e,t,n,`exact-output`,r):Ri(e)?ea(e,t,n,r):la(e,t,n)}function na(e,t,n,r){if(ha(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 ra(e,t,n,r=`exact-output`,i){return{expression:J(e.expression,`${t}.expression`,n,r,i),compareOptions:ia(e.compareOptions,`${t}.compareOptions`,n)}}function ia(e,t,n){return Y(ji(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=qi(i,r);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=qi(i,e.path[0]??``);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`?ua(e.value,`${t}.value`,n,i):r===`ordering-operand`?da(e.value,`${t}.value`,n):la(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)=>ua(e,`${t}.args[1].value[${r}]`,n,i));return aa(e.name,[J(e.args[0],`${t}.args[0]`,n,`equality-operand`,i),{type:`val`,value:[`set`,oa(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 aa(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:ta(e.value,`${t}.branches[${r}].value`,n,i)}))};return e.defaultValue!==void 0&&(r.defaultValue=ta(e.defaultValue,`${t}.defaultValue`,n,i)),r}let a=Ki(e.query,i),o={type:`includesSubquery`,query:Yi(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)=>na(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 aa(e,t){return(e===`and`||e===`or`)&&t.length>0?{type:`func`,name:e,args:oa(t.flatMap(t=>sa(t,e)?t.args:[t]))}:e===`eq`&&t.length===2?(t.sort(fa),{type:`func`,name:e,args:t}):(e===`gt`||e===`gte`||e===`lt`||e===`lte`)&&t.length===2&&fa(t[0],t[1])>0?{type:`func`,name:ca(e),args:[t[1],t[0]]}:{type:`func`,name:e,args:t}}function oa(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 sa(e,t){return typeof e==`object`&&!!e&&!Array.isArray(e)&&e.type===`func`&&e.name===t&&Array.isArray(e.args)}function ca(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(Vi(e),t,n);if(Array.isArray(e))return ma(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 ma(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(fa),[`Map`,r]});if(e instanceof Set)return ma(e,t,n,()=>{let r=Array.from(e,(e,r)=>Y(e,`${t}[${r}]`,n));return r.sort(fa),[`Set`,r]});if(Ri(e))return pa(e,t,n);throw new Wi(t,`non-plain object value`)}function la(e,t,n){return typeof e==`object`&&e||typeof e==`function`||typeof e==`symbol`?Ai(e):Y(e,t,n)}function ua(e,t,n,r){if(oi(e))return J(Vi(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=Li(e);return i===e?typeof e==`object`&&e||typeof e==`function`||typeof e==`symbol`?Ai(e):Y(e,t,n):Y(i,t,n)}function da(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=Li(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 Ai(e);throw t}}function fa(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return n<r?-1:+(n>r)}function pa(e,t,n){return ma(e,t,n,()=>[`object`,Object.keys(e).sort().map(r=>[r,Y(e[r],`${t}.${r}`,n)])])}function ma(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 ha(e){return`expression`in e}function ga(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 _a=Symbol.for(`@tanstack/db.collectionConfig.factory`);function va(e,t){return Object.defineProperty(e,_a,{value:t,enumerable:!1}),e}var ya=`@tanstack/db/sync-persistence`;function ba(e){return typeof e==`object`&&!!e}function xa(e,t,n=t){if(typeof e[t]!=`function`)throw new _i(`${n} must be a function`)}function Sa(e){if(e===null)return null;if(!ba(e))throw new _i(`expected null or a complete capability object`);if(e.protocol!==ya)throw new _i(`protocol must be "${ya}"`);if(e.version!==1)throw new _i(`version must be 1`);xa(e,`hydrateBaseline`),xa(e,`scanPersistedRows`);let t=e.resumeSnapshot;if(!ba(t))throw new _i(`resumeSnapshot must be an object`);return xa(t,`certify`,`resumeSnapshot.certify`),xa(t,`getKeySetEvidence`,`resumeSnapshot.getKeySetEvidence`),xa(t,`expectCurrentCommit`,`resumeSnapshot.expectCurrentCommit`),e}var Ca=class extends hi{constructor(e){super(e),this.name=`QueryCollectionError`}},wa=class extends Ca{constructor(){super(`[QueryCollection] queryKey must be provided.`),this.name=`QueryKeyRequiredError`}},Ta=class extends Ca{constructor(){super(`[QueryCollection] queryFn must be provided.`),this.name=`QueryFnRequiredError`}},Ea=class extends Ca{constructor(){super(`[QueryCollection] queryClient must be provided.`),this.name=`QueryClientRequiredError`}},Da=class extends Ca{constructor(){super(`[QueryCollection] getKey must be provided.`),this.name=`GetKeyRequiredError`}},Oa=class extends Ca{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`}},ka=class extends Ca{constructor(e){super(e),this.name=`InvalidQueryResultError`}},Aa=class extends Ca{constructor(){super(`Collection must be in 'ready' state for manual sync operations. Sync not initialized yet.`),this.name=`SyncNotInitializedError`}},ja=class extends Ca{constructor(e){super(`Duplicate key '${e}' found within batch operations`),this.name=`DuplicateKeyInBatchError`}},Ma=class extends Ca{constructor(e){super(`Update operation: Item with key '${e}' does not exist`),this.name=`UpdateOperationItemNotFoundError`}},Na=class extends Ca{constructor(e){super(`Delete operation: Item with key '${e}' does not exist`),this.name=`DeleteOperationItemNotFoundError`}},Pa=new WeakMap,Fa=new WeakSet;function Ia(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 La(e,t){let n=new Set;for(let r of e){if(n.has(r.key))throw new ja(r.key);if(n.add(r.key),r.type===`update`){if(!t.collection._state.syncedData.has(r.key))throw new Ma(r.key)}else if(r.type===`delete`&&!t.collection._state.syncedData.has(r.key))throw new Na(r.key)}}function Ra(e,t){let n=Ia(e,t);La(n,t),t.begin({immediate:!0});for(let e of n)switch(e.type){case`insert`:{let n=t.collection.validateData(e.data,`insert`);t.write({type:`insert`,value:n});break}case`update`:{let n={...t.collection._state.syncedData.get(e.key),...e.data},r=t.collection.validateData(n,`update`,e.key);t.write({type:`update`,value:r});break}case`delete`:{let n=t.collection._state.syncedData.get(e.key);t.write({type:`delete`,value:n});break}case`upsert`:{let n=t.collection._state.syncedData.has(e.key),r=t.collection.validateData(e.data,n?`update`:`insert`,e.key);n?t.write({type:`update`,value:r}):t.write({type:`insert`,value:r});break}}let r=t.commit();t.updateCacheData?t.updateCacheData(()=>Array.from(t.collection._state.syncedData.values())):t.queryClient.setQueryData(t.queryKey,Array.from(t.collection._state.syncedData.values()));let i=Promise.resolve(r).then(()=>void 0);return i.catch(()=>void 0),i}function za(e){function t(){let t=e();if(!t)throw new Aa;return t}function n(e){let n=t(),r=Pa.get(n);if(r)return r.operations.push(e),r.completion;let i=Ra(e,n);return Fa.add(i),i}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(e){let n=t();if(Pa.get(n))throw Error(`Cannot nest writeBatch calls. Complete the current batch before starting a new one.`);let r,i,a=new Promise((e,t)=>{r=e,i=t});Fa.add(a),a.catch(()=>void 0);let o={operations:[],completion:a};Pa.set(n,o);try{let t=e();if(typeof t==`object`&&t&&`then`in t&&typeof t.then==`function`&&!Fa.has(t))throw Promise.resolve(t).catch(()=>void 0),Error(`writeBatch does not support async callbacks. The callback must be synchronous.`);return Pa.delete(n),r(o.operations.length>0?Ra(o.operations,n):Promise.resolve()),a}catch(e){throw i(e),e}finally{Pa.get(n)===o&&Pa.delete(n)}}}}function Ba(e,t){let n;try{n=e?.()}catch(e){try{t()}catch(t){throw Ha(e,t)}throw e}try{t()}catch(e){if(!Va(n))throw e;return Promise.resolve(n).then(()=>{throw e},t=>{throw Ha(t,e)})}return Va(n)?Promise.resolve(n):void 0}function Va(e){return!!e&&(typeof e==`object`||typeof e==`function`)&&typeof e.then==`function`}function Ha(e,t){return AggregateError([e,t],`Adapter cleanup and local teardown both failed`,{cause:e})}var Ua=[`enabled`,`refetchInterval`,`retry`,`retryDelay`,`staleTime`,`gcTime`,`refetchOnWindowFocus`,`refetchOnReconnect`,`refetchOnMount`,`networkMode`];function Wa(e){let t={};for(let n of Ua)e[n]!==void 0&&(t[n]=e[n]);return t}var Ga=`queryCollection:gc:`,Ka=0,qa=new WeakMap,Ja=new WeakMap,Ya=new WeakMap,Xa=new WeakMap,Za=new WeakMap,Qa=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 $a(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 Oa;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},te=typeof t==`function`?t({}):t,ne=e=>{typeof t==`function`&&(e.length>=te.length&&te.every((t,n)=>yi(t,e[n]))||console.warn(`[QueryCollection] queryKey function must return keys that extend the base key prefix. Base: ${JSON.stringify(te)}, Got: ${JSON.stringify(e)}. This can cause stale cache issues.`))};if(!t)throw new wa;if(!n)throw new Ta;if(!i)throw new Ea;if(!v)throw new Da;let T={lastError:void 0,errorCount:0,observers:new Map},E=0,D=new WeakMap,O=new WeakMap,k=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)=>{k.add(e),se(e,t);let n=Za.get(e)??new Set;n.add(re),Za.set(e,n)},le=e=>ie.get(e)??new Set([K(e.queryKey)]),ue=(e,t,n)=>{let r=O.get(e)??new Map;O.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)=>D.get(t)?.get(e),de=(e,t,n)=>{let r=D.get(t)??new Map;r.set(e,n),D.set(t,r)},fe=(e,t)=>{for(let n of le(e)){let r=T.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=O.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=O.get(e);if(n){for(let e of t)n.delete(e);n.size===0&&O.delete(e)}},me=(e,t)=>{let n=ae.get(e),r=Xa.get(t),i=Math.max(n??0,r??0);return n===void 0&&r===void 0||(Ya.get(t)??0)>i},he=(e,t)=>{ae.set(e,Ka),Xa.set(t,Math.max(Xa.get(t)??0,Ka));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,I=new Map,be=()=>{},xe=(e,t)=>!1,Se=e=>void 0,Ce,we=(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)},Te=(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)})},Ee=(e,t)=>{let n=P.get(e);return n?.delete(t),n?.size||P.delete(e),N.get(t)?.delete(e),!n?.size},De=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},Oe=e=>{let h={};Ce=h,A=new Set(i.getQueryCache().findAll({queryKey:te}));let{begin:g,write:y,commit:b,markReady:x,markError:C,collection:E,metadata:D}=e,ie=D===void 0?null:Sa(D.persistence),oe=!1,ue=!1,j=new Map,he=new Set,ge=new Map,Oe=new WeakMap,ke=0,je=new Map,Me=new WeakMap,Ne=new Set,Pe=new Map,Fe=e=>Me.get(e),Ie=(e,t)=>{Me.set(e,t)};Se=Fe;let L=new Map,R=new Map,Le=new Map,Re=Promise.resolve(),z=e=>{let t=L.get(e);t?.rollback?.(),ge.delete(e),je.delete(e),L.delete(e),t?.abort()},ze=async e=>{for(;;){let t=ge.get(e);if(!t)return;try{await t}catch(n){if(ge.get(e)===t||je.has(e)&&je.get(e)===n)throw n}}},Be=(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)&&!E.deferDataRefresh||n.isError&&!n.isFetching)&&c(()=>r(n))})})}),Ve=(e,t)=>{let n=Pe.get(t)??new Map,r=n.get(e);if(r)return r;let i=t.then(async()=>{let t=T.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())||E.deferDataRefresh){n=await Be(t,e,()=>new Ir);continue}let r=Fe(n);if(r?.type===`rejected`)throw r.error;if(r?.type===`pending`)return r.promise;let i=B(e);return i!==!0&&await i,n}});n.set(e,i),Pe.set(t,n);let a=()=>{n.get(e)===i&&(n.delete(e),n.size===0&&Pe.delete(t))};return i.then(a,a),i},He=(e,t,n)=>{let r=Fe(t);if(r?.type===`pending`)return r;let i,a=Ve(e,n),o=new Promise((e,t)=>{i=t,a.then(e,t)});o.catch(()=>{});let s={type:`pending`,promise:o,reject:i};return Ie(t,s),Ne.add(s),o.then(()=>{Ne.delete(s)},()=>{Ne.delete(s)}),s},B=e=>ge.get(e)?ze(e):!je.has(e)||Promise.reject(je.get(e)),Ue=e=>D?.row.get(e)??E._state.syncedMetadata.get(e),We=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))},Ge=e=>We(Ue(e)),Ke=(e,t)=>{if(!D)return;let n={...Ue(e)??{}};if(t.size===0){delete n.queryCollection,Object.keys(n).length===0?D.row.delete(e):D.row.set(e,n);return}D.row.set(e,{...n,queryCollection:{owners:Object.fromEntries(Array.from(t.values()).map(e=>[e,!0]))}})},qe=(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}}},Je=e=>(Re=Re.then(e,e),Re),Ye=e=>{let t=Le.get(e);t&&(clearTimeout(t),Le.delete(e))},V=e=>{let t=N.get(e);if(t)return new Set(t);let n=new Set;for(let[t]of E._state.syncedData.entries()){let r=Ge(t);r.size!==0&&(Te(t,r),r.has(e)&&n.add(t))}return n},Xe=async e=>{let t=N.get(e);if(t&&Array.from(t).every(e=>E.has(e))){let e=new Map;return t.forEach(t=>{let n=E.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 V(e).forEach(e=>{let n=E.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&&(Te(t.key,a),a.has(e)&&r.set(t.key,{value:t.value,owners:a}))}),r},Ze=async e=>{if(!D)return;let t=await Xe(e),n=[];g(),t.forEach(({value:t,owners:r},i)=>{r.delete(e),Ke(i,r),Ee(i,e)&&n.push(t)}),n.forEach(e=>{y({type:`delete`,value:e})}),D.collection.delete(`${Ga}${e}`),b(),N.delete(e)},Qe=e=>{if(e.mode!==`ttl`)return;Ye(e.queryHash);let t=Math.max(0,e.expiresAt-Date.now()),n=setTimeout(()=>{Le.delete(e.queryHash),Je(async()=>{let t=D?.collection.get(`${Ga}${e.queryHash}`),n=qe(t,e.queryHash);!n||n.mode!==`ttl`||n.expiresAt>Date.now()||await Ze(e.queryHash)})},t);Le.set(e.queryHash,n)},$e=async()=>{if(!D)return;let e=D.collection.list(Ga),t=Date.now();for(let{key:n,value:r}of e){let e=n.slice(Ga.length),i=qe(r,e);i&&(i.mode===`ttl`&&i.expiresAt<=t?await Ze(i.queryHash):i.mode===`ttl`&&Qe(i))}},et=e=>{if(typeof t==`function`){let{refetch:n,...r}=e;return t(r)}if(w===`on-demand`){let n=Gi(e);return n===void 0?t:[...t,n]}return t},tt=D?.collection.list(Ga),nt=!tt||tt.length===0?(ue=!0,Promise.resolve()):Je(async()=>{try{await $e()}finally{ue=!0}}),rt=(e,t)=>Be(e,t,()=>new vi).then(e=>{if(e.isError)throw e.error}),it=(e,t)=>rt(e,t).then(()=>{let e=B(t);return e===!0?void 0:e}),at=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 vi))};a.add(s),ve.set(t,a),(async()=>{let n=!!E.deferDataRefresh;if(await e.refetch({throwOnError:!0}),n||!me(t,e.getCurrentQuery())){await it(e,t);return}let r=B(t);r!==!0&&await r})().then(()=>o(n),e=>o(()=>r(e)))}),ot=(e={},t=n)=>{if(!ue){let n={},r=j.get(e)??new Set;return r.add(n),j.set(e,r),nt.then(()=>{if(!j.get(e)?.delete(n))throw new vi;r.size===0&&j.delete(e);let i=ot(e,t);return i===!0?void 0:i})}let r=et(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=D?.collection.get(`${Ga}${h}`);if(qe(x,h)!==void 0&&he.add(h),Ye(h),ne(r),T.observers.has(h)){I.set(h,(I.get(h)||0)+1);let t=T.observers.get(h),n=t.getCurrentResult();return e.refetch?at(t,h):n.isSuccess&&me(h,t.getCurrentQuery())?E.deferDataRefresh?it(t,h):B(h):n.isError&&!n.isFetching?Promise.reject(n.error):it(t,h)}let C={...Wa({enabled:a,refetchInterval:o,retry:s,retryDelay:c,staleTime:l,gcTime:u,refetchOnWindowFocus:d,refetchOnReconnect:f,refetchOnMount:p,networkMode:m}),...ee,queryKey:r,queryFn:t,meta:b,structuralSharing:!0,notifyOnChangeProps:`all`},w=new Kr(i,C),te=w.getCurrentQuery();ce(te,h);let O=i.getQueryCache().find({queryKey:r,exact:!0})?.gcTime,k=_??O;if(_e.set(h,r),T.observers.set(h,w),k===void 0?R.delete(h):R.set(h,k),I.set(h,(I.get(h)||0)+1),i.getQueryData(r)!==void 0){(oe||E.subscriberCount>0)&&ht(w,h);let t=w.getCurrentResult();return e.refetch?at(w,h):t.isError&&!t.isFetching?Promise.reject(t.error):!t.isSuccess||!me(h,w.getCurrentQuery())||E.deferDataRefresh?it(w,h):B(h)}let re=it(w,h);return(oe||E.subscriberCount>0)&&ht(w,h),re},st=(e,t)=>{let n=t.data,i=r?r(n):n,a=r?`select()`:`queryFn`;if(!Array.isArray(i))return{error:new ka(`@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 ka(`@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}},ct=(e,t)=>{let n=st(e,t);if(`error`in n)throw Ie(t,{type:`rejected`,error:n.error}),n.error;return n.items},lt=(e,t,n,r,i,a)=>{let o=K(e);if(E.status===`cleaned-up`||i?.aborted)throw new vi;Ae()&&n.settleRefetchAtFetchBoundary?.();let s=a??ct(e,t),c=new Map(E._state.syncedData.entries()),l=r!==void 0,u=l?new Set(r.keys()):V(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=We(E._state.syncedMetadata.get(e));return t.size===n.size&&Array.from(t).every(e=>n.has(e))})||T.observers.has(o)&&L.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,D&&D.collection.delete(`${Ga}${o}`),u.forEach(e=>{let t=l?r.get(e)?.value:c.get(e);if(!t)return;let n=d.get(e);if(n)yi(t,n)||y({type:`update`,value:n});else{let n=Ge(e);n.delete(o),Ke(e,n),Ee(e,o)&&y({type:`delete`,value:t})}}),d.forEach((e,t)=>{let n=Ge(t),r=!n.has(o),i=!c.has(t);r&&n.add(o),we(t,o),i&&y({type:`insert`,value:e}),(r||i)&&Ke(t,n)}),_=E._state.pendingSyncedTransactions.at(-1),Ae()&&n.settleRefetchAtFetchBoundary?.();let e=b(i);h=!1,he.delete(o),Ye(o);let t=()=>{i?.aborted||x()};return e===!0?(t(),!0):e.then(t,C)}catch(e){return C(e)}},ut=async(e,t,n,r)=>{let i=K(e),a=ct(e,t),o=await Xe(i);if(E.status===`cleaned-up`||L.get(i)!==n)throw new vi;await lt(e,t,n,o,r,a)},dt=(e,t,n,r)=>{ge.set(e,t);let i=()=>ge.get(e)===t&&(ge.delete(e),!0);t.then(()=>{i()&&(je.delete(e),!n&&r===ke&&(T.lastError=void 0,T.errorCount=0))},t=>{i()&&(je.set(e,t),T.lastError=t,T.errorCount++,ke++,console.error(`[QueryCollection] Error applying query ${String(_e.get(e))}:`,t),E.status===`loading`&&C(t))})},ft=(e,t,n)=>{z(e);let r=ke,i=new AbortController,a=()=>{},o=new Promise(e=>{a=e});i.settleRefetchAtFetchBoundary=a,L.set(e,i);let s;try{s=n(i.signal,i)}catch(e){s=Promise.reject(e)}if(s===!0){L.get(e)===i&&(de(e,t,Promise.resolve()),L.delete(e),je.delete(e),!t.isFetching&&r===ke&&(T.lastError=void 0,T.errorCount=0));return}let c=Promise.race([s,o]);c.catch(()=>void 0),de(e,t,c);let l=()=>{L.get(e)===i&&L.delete(e)};s.then(l,l),L.get(e)===i&&dt(e,s,t.isFetching,r)},pt=e=>{let t=K(e),n=r=>{let a=T.observers.get(t),o=a?.getCurrentQuery();if(a&&o&&(ce(o,t),r.isSuccess)){if(!me(t,o)){queueMicrotask(()=>{let e=T.observers.get(t);e===a&&me(t,e.getCurrentQuery())&&n(e.getCurrentResult())});return}ae.delete(t)}if(r.isSuccess){if(E.deferDataRefresh){if(r.isFetching){Ve(t,E.deferDataRefresh);return}He(t,r,E.deferDataRefresh);return}let n=ye.get(t);if(n){let e=T.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||T.observers.get(t)?.refetch().catch(()=>{});return}if(r.isFetching)return;ft(t,r,(t,n)=>ut(e,r,n,t))}else ft(t,r,(t,n)=>lt(e,r,n,void 0,t))}else ye.delete(t);o&&r.errorUpdateCount<(Oe.get(o)??0)&&Oe.delete(o),r.isError&&r.fetchStatus===`idle`&&((!o||r.errorUpdateCount!==Oe.get(o))&&(o&&Oe.set(o,r.errorUpdateCount),T.lastError=r.error,T.errorCount++,ke++),console.error(`[QueryCollection] Error observing query ${String(e)}:`,r.error),E.status===`loading`&&C(r.error))};return n},mt=e=>F.has(e);xe=(e,t)=>{if(mt(e))return!1;let n=_e.get(e);return n?(pt(n)(t),!0):!1};let ht=(e,t)=>{if(!mt(t)){w===`eager`&&e.setOptions(e.options);let n=_e.get(t),r=pt(n),i=e.subscribe(r);F.set(t,i);let a=e.getCurrentResult();(a.isSuccess||a.isError)&&r(a)}},gt=()=>{T.observers.forEach(ht)},_t=()=>{F.forEach(e=>{e()}),F.clear()};be=()=>{w===`eager`&&T.observers.forEach((e,t)=>{let n=e.getCurrentQuery();i.getQueryCache().get(n.queryHash)!==n&&ht(e,t)})},oe=!0;let vt=E.on(`subscribers:change`,({subscriberCount:e})=>{e>0?gt():e===0&&_t()});if(w===`eager`){let e=ot({});e instanceof Promise&&e.catch(()=>{})}else ue?x():nt.then(()=>{E.status===`loading`&&x()});gt(),T.observers.forEach((e,t)=>{let n=_e.get(t);pt(n)(e.getCurrentResult())});let yt=e=>{ve.get(e)?.forEach(e=>{e()}),ve.delete(e)},bt=e=>{F.get(e)?.(),F.delete(e),yt(e),Ye(e),he.delete(e),z(e),ye.delete(e);let t=De(e),n=[];t.forEach((e,t)=>{e.size===0&&E.has(t)&&n.push(E.get(t))});let r=D!==void 0&&t.size>0,i=`${Ga}${e}`,a=D?.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&&Ke(t,e)}),n.length>0&&n.forEach(e=>{y({type:`delete`,value:e})}),a&&D.collection.delete(i),o&&b(),T.observers.delete(e),N.delete(e),_e.delete(e),I.delete(e),R.delete(e)},xt=e=>{let t=I.get(e)||0,n=T.observers.get(e),r=R.get(e);if(t<=0&&(F.get(e)?.(),F.delete(e),yt(e)),!(t>0)){if(n?.hasListeners()??!1){I.set(e,0);return}if(r!==void 0&&D&&ie?.scanPersistedRows){z(e),ye.delete(e),g(),D.collection.set(`${Ga}${e}`,{queryHash:e,mode:r===1/0?`until-revalidated`:`ttl`,...r===1/0?{}:{expiresAt:Date.now()+r}}),b(),r!==1/0&&Qe({queryHash:e,mode:`ttl`,expiresAt:Date.now()+r}),F.get(e)?.(),F.delete(e),T.observers.delete(e),_e.delete(e),I.set(e,0);return}bt(e)}},St=e=>{bt(e)},Ct=i.getQueryCache().subscribe(e=>{if(e.type===`added`&&pr(e.query.queryKey,te)&&se(e.query),!A.has(e.query))return;if(e.type===`updated`){if(e.action.type===`fetch`){let t=qa.get(e.action);t===void 0&&(t=++Ka,qa.set(e.action,t)),Ja.set(e.query,t);let n=[...O.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=Ja.get(e.query);t!==void 0&&(Ya.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=Ja.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=Ja.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),yt(t),E.subscriberCount>0&&be();return}xt(t)}});return{loadSubset:w===`eager`?void 0:ot,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(et(e)),r=(I.get(n)||0)-1;r<=0?(I.set(n,0),xt(n)):I.set(n,r)},cleanup:()=>{Ce===h&&(Ce=void 0),j.clear(),be=()=>{},xe=()=>!1,vt(),_t(),Le.forEach(e=>{clearTimeout(e)}),Le.clear(),Ne.forEach(e=>{e.reject(new Ir)}),Ne.clear(),Pe.clear(),Se===Fe&&(Se=()=>void 0);let e=new Set([...T.observers.keys(),...N.keys()]);for(let t of e)St(t);Ct();for(let t of[...A])[...le(t)].some(t=>e.has(t))&&(w===`eager`||k.has(t)&&t.getObserversCount()===0)&&i.getQueryCache().remove(t);for(let e of A)Za.get(e)?.delete(re);A.clear(),k=new WeakSet}}},ke=async(e,t)=>{let n=[..._e.values()];be();let r=Ce,i=n.map(async n=>{let i=K(n),a=T.observers.get(i);if(!a)return;let o=Se,s=a.getCurrentQuery(),c,l,u;try{let t=a.refetch({throwOnError:e?.throwOnError});s=a.getCurrentQuery(),c=a.getCurrentResult();let n=Ja.get(s);n!==void 0&&(l=ue(s,n,i)),u=await t}catch(e){let t=a.getCurrentResult(),n=xe(i,t)?t:l?.result??t;throw l&&(l.result=n,l.settlement??=j(i,n)),e}let d=xe(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(Ce!==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&&!Ae()&&p&&(e?.throwOnError?await p:await p.catch(()=>void 0)),d});return await Promise.all(i)},Ae=()=>{if(E>0)return!0;for(let e of Pe?.collection._state.transactions.values()??[])if(e.state===`persisting`)return!0;return!1},je=e=>ke(e,!Ae()),Me=(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)}},Ne=e=>{if(w===`on-demand`){let e=Pe?.collection.deferDataRefresh,t=new Set,n=new Map;for(let e of T.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 T.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=k.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(T.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)||(T.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)||[...Za.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)Me(e.queryKey,t);else Me(te,t)},Pe=null,Fe=e=>{let{begin:n,write:r,commit:a,collection:o}=e,s=!1,c=()=>{s||=(i.mount(),!0)},l=()=>{s&&=(i.unmount(),!1)};c();let u=typeof t==`function`?t({}):t,d={collection:o,queryClient:i,queryKey:u,getKey:v,begin:n,write:r,commit:a,updateCacheData:Ne};Pe=d;let f=Oe(e),p=typeof f==`function`?{cleanup:f}:typeof f==`object`?f:{};return{...p,cleanup:()=>(Pe===d&&(Pe=null),Ba(p.cleanup,l))}},Ie=za(()=>Pe);async function L(e){(typeof e==`object`&&e||typeof e==`function`)&&`refetch`in e&&e.refetch===!1||(Ei(`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 ke(void 0,!1))}let R=async(e,t)=>{E++;try{return await e(t)}finally{E--}},Le=y?async e=>{await L(await R(y,e)??{})}:void 0,Re=b?async e=>{await L(await R(b,e)??{})}:void 0,z=x?async e=>{await L(await R(x,e)??{})}:void 0,ze=new Qa(T,je,Ie),Be=Ui({sync:Fe},(e,t,n)=>{let r=t;for(let e of Object.keys(Ie)){let t=r[e];r[e]=(...e)=>(n(),t(...e))}return e}),Ve={...C,getKey:v,syncMode:w,sync:Be,onInsert:Le,onUpdate:Re,onDelete:z,utils:ze};return va(Ve,t=>$a({...e,queryClient:t.getDependency(`queryClient`)??e.queryClient,id:Ve.id}))}async function eo(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 to=new WeakMap,no=new WeakMap,ro=new Set([`__proto__`,`constructor`,`prototype`]),io=1e7,ao=1e3,oo=1e3,so=1e3,co=1e6,lo=1e3,uo=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 fo(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(ro.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 mo(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 ho(e,t){if(!Number.isSafeInteger(e)||e<0)throw TypeError(`${t} must be a non-negative safe integer`);return e}function go(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 _o(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(_o(o,`${t}[${a}]`,n,r+1));return X(n,`]`,t),i}let i=fo(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]=_o(i[o],`${t}.${o}`,n,r+1)}return X(n,`}`,t),a}function vo(e){let t=fo(e,`Data query total`),n=mo(t.kind,`Data query total kind`);if(n===`unavailable`)return po(t,[`kind`,`reason`],`Data query unavailable total`),{kind:n,...t.reason===void 0?{}:{reason:mo(t.reason,`Data query total reason`)}};if(n!==`exact`&&n!==`estimated`)throw TypeError(`Data query total kind is invalid`);return po(t,[`kind`,`value`,`asOf`],`Data query total`),{kind:n,value:ho(t.value,`Data query total value`),...t.asOf===void 0?{}:{asOf:mo(t.asOf,`Data query total asOf`,128)}}}function yo(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=fo(e,`Data query facet ${r}`);po(i,[`field`,`values`,`truncated`],`Data query facet`);let a=mo(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=fo(e,`Data query facet ${r} value ${n}`);return po(i,[`value`,`count`],`Data query facet value`),{value:go(i.value,`Data query facet value`,t),count:ho(i.count,`Data query facet count`)}}),truncated:i.truncated}})}function bo(e){let t=fo(e,`Data query result`);if(po(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=mo(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:io},i=t.rows.map((e,t)=>{let i=fo(_o(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=fo(t.page,`Data query page`);po(e,[`kind`,`limit`,`offset`,`nextCursor`,`hasMore`],`Data query page`);let n=mo(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=ho(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=ho(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:mo(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=fo(t.freshness,`Data query freshness`);po(o,[`state`,`asOf`],`Data query freshness`);let s=mo(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=yo(t.facets,r),l=t.warnings.map(e=>mo(e,`Data query warning`,512)),u={version:1,requestId:mo(t.requestId,`Data query request id`),queryFingerprint:mo(t.queryFingerprint,`Data query fingerprint`),identityField:n,rows:i,...a===void 0?{}:{page:a},total:vo(t.total),...c===void 0?{}:{facets:c},freshness:{state:s,...o.asOf===void 0?{}:{asOf:mo(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 xo(e,t,n){let r=bo(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 So=1e6,Co=1e3,wo=new Set([`__proto__`,`constructor`,`prototype`]);function To(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(wo.has(n))throw TypeError(`${t} contains a forbidden key`);return e}function Eo(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 Do(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 Oo(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)=>Oo(e,`${t}[${r}]`,n+1))}let r=To(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]=Oo(a,`${t}.${e}`,n+1);return i}function ko(e){let t=To(e,`Data surface identity`);Eo(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:Do(t.surfaceId,`Data surface identity surfaceId`),kind:n};if(t.subject!==void 0){let e=To(t.subject,`Data surface identity subject`);Eo(e,[`type`,`id`,`label`],`Data surface identity subject`),r.subject={type:Do(e.type,`Data surface identity subject type`),id:Do(e.id,`Data surface identity subject id`),...e.label===void 0?{}:{label:Do(e.label,`Data surface identity subject label`)}}}return r}function Ao(e,t){return e.surfaceId===t.surfaceId&&e.kind===t.kind&&e.subject?.type===t.subject?.type&&e.subject?.id===t.subject?.id}function jo(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=To(e,`Data surface action result`);if(Eo(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:Do(n.requestId,`Data surface action result requestId`),identity:ko(n.identity),actionId:Do(n.actionId,`Data surface action result actionId`),phase:n.phase,ok:n.ok};if(n.reason!==void 0&&(r.reason=Do(n.reason,`Data surface action result reason`)),n.confirmationToken!==void 0&&(r.confirmationToken=Do(n.confirmationToken,`Data surface action result confirmationToken`)),n.details!==void 0){let e=Oo(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 Mo(e,t,n){let r=jo(await e.action(t,n));if(r.requestId!==t.requestId||r.actionId!==t.actionId||r.phase!==t.phase||!Ao(r.identity,t.identity))throw TypeError(`Data surface action result does not match its request`);return r}var No=new Set([`idempotency_in_progress`,`background_unavailable`,`execution_failed`]),Po=new Set([`auth_required`,`unauthenticated`,`unauthorized`]),Fo=new Set([`stale_revision`,`stale_preview`]),Io=new Set([`invalid_or_expired_confirmation`,`confirmation_mismatch`,`confirmation_replayed`,`confirmation_required`,`stale_preview`]);function Lo(e){if(e.ok)return{status:`applied`};let t=e.reason??`rejected`;return No.has(t)?{status:`rejected`,reason:`write_failed`}:Po.has(t)?{status:`rejected`,reason:`auth_required`}:Fo.has(t)?{status:`conflict`,reason:`stale_write`}:{status:`rejected`,reason:t}}function Ro(e){let t=e.classify??Lo;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=>Mo(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||!Io.has(e.reason??``))return t(e)}let s=await Mo(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 zo(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 Bo=new Map;function Vo(e,t){let n=Bo.get(e);return n||(n=new Set,Bo.set(e,n)),n.add(t),()=>{let n=Bo.get(e);n&&(n.delete(t),n.size===0&&Bo.delete(e))}}async function Ho(e){let t=Bo.get(e);if(!t||t.size===0){Bo.delete(e);return}let n=[...t];Bo.delete(e),await Promise.allSettled(n.map(e=>e.clear()))}var Z=`outbox`,Uo=`state`;function Wo(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB request failed`))})}function Go(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 Ko(){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 qo=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 Wo(r.objectStore(Z).add(n));return await Go(r),i}async markState(e,t){let n=this.db.transaction(Z,`readwrite`),r=n.objectStore(Z),i=await Wo(r.get(e));if(!i){await Go(n);return}let a={...i,...t,seq:e};await Wo(r.put(a)),await Go(n)}async listPending(e){let t=this.db.transaction(Z,`readonly`),n=await Wo(t.objectStore(Z).index(Uo).getAll(IDBKeyRange.only(`pending`)));return await Go(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 Wo(t.objectStore(Z).delete(e)),await Go(t)}async all(){let e=this.db.transaction(Z,`readonly`),t=await Wo(e.objectStore(Z).getAll());return await Go(e),t.sort((e,t)=>(e.seq??0)-(t.seq??0))}async clear(){let e=this.db.transaction(Z,`readwrite`);await Wo(e.objectStore(Z).clear()),await Go(e)}close(){this.db.close()}};function Jo(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(Uo,`state`,{unique:!1})},i.onsuccess=()=>n(new qo(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 Yo(){let e=globalThis.navigator?.locks;if(e&&typeof e.request==`function`)return e}var Xo=!1;function Zo(e,t,n){let r=Yo();if(!r){Xo||(Xo=!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 Qo=1e3,$o=[`sync`,`apply`],es={initialDelayMs:1e3,multiplier:2,maxDelayMs:6e4};function ts(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 ns(e){return e===`insert`?`create`:e}var rs=`sync-apply`;function is(e){return e.transport===void 0?rs:`transport:${e.transport}`}function as(){let e=globalThis.crypto;return e?.randomUUID?e.randomUUID():`item-${Date.now()}-${Math.random().toString(36).slice(2)}`}function os(){return globalThis.navigator?.onLine===!1}var ss=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 Ko()){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 Jo(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=`smrt-web-outbox-leader:${this.config.namespace}`,r=e===rs?n:`${n}:${e}`,i={release:()=>{},isLeader:!1,refs:1};this.leaders.set(e,i),i.release=Zo(r,()=>{i.isLeader=!0,this.drain()},()=>{i.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?is({transport:e.object}):e.syncApply?rs: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=as(),n=ns(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||os())return;let e=new Map;for(let t of await this.queue.all()){if(t.state!==`pending`)continue;let n=is(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===rs){let e=this.syncApply;if(!e)continue;for(let t=0;t<i.length&&!(this.disposed||this.paused||!this.leads(n));t+=Qo){let n=i.slice(t,t+Qo);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=us(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}/${$o.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=ts(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=is(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()}},cs=new Map;function ls(e){let t=cs.get(e.namespace);return t||(t=new ss(e),cs.set(e.namespace,t)),t}function us(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 ds(e,t){let n=ls(e);return{engine:n,record:n.registerCollection(t)}}async function fs(e,t,n,r){await t.unregisterCollection(n,r)&&cs.get(e)===t&&cs.delete(e)}function ps(e){return{initialDelayMs:e?.initialDelayMs??es.initialDelayMs,multiplier:e?.multiplier??es.multiplier,maxDelayMs:e?.maxDelayMs??es.maxDelayMs}}var ms=new Map;async function hs(e,t,n,r){let i=t.referenceCount;await fs(e,t,n,r),i<=1&&ms.get(e)===t&&ms.delete(e)}function gs(e){let t=e.updatedAt??e.updated_at;if(typeof t==`string`)return t;if(t instanceof Date)return t.toISOString()}function _s(e){let t=zo(e.namespace),n=e.syncApplyBasePath??`/api/v1`,r=e.fetchFn??((...e)=>globalThis.fetch(...e)),i=ps(e.backoff),a=e.transport,o=e.object.name,s,c;return{name:`offline-outbox`,onAttach(){let l=ds({namespace:t,backoff:i,random:e.random,registerResource:e=>Vo(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,ms.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??gs(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 hs(t,e,o,n)}}}function vs(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=zo(e.namespace),n=e.name,r=ds({namespace:t,backoff:ps(e.backoff),random:e.random,registerResource:e=>Vo(t,{kind:`outbox`,clear:e})},{object:n,transport:e.transport,onSyncStateChange:e.onSyncStateChange,onConflict:e.onConflict}),i=r.engine,a=r.record;return ms.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 hs(t,e,n,a))}}}function ys(e){let t=ms.get(e);if(t)return{snapshot:()=>t.snapshot(),retry:e=>t.retry(e)}}var bs=`snapshots`,xs=`::snapshots`;function Ss(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB request failed`))})}function Cs(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 ws(){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 Ts=class{db;dbName;constructor(e,t){this.db=e,this.dbName=t}async load(e){let t=this.db.transaction(bs,`readonly`),n=await Ss(t.objectStore(bs).get(e));if(await Cs(t),n&&Array.isArray(n.rows))return n.rows}async save(e,t){let n=this.db.transaction(bs,`readwrite`),r=n.objectStore(bs),i={collection:e,rows:t};await Ss(r.put(i)),await Cs(n)}async remove(e){let t=this.db.transaction(bs,`readwrite`);await Ss(t.objectStore(bs).delete(e)),await Cs(t)}async clear(){let e=this.db.transaction(bs,`readwrite`);await Ss(e.objectStore(bs).clear()),await Cs(e)}close(){this.db.close()}};function Es(e){let t=globalThis.indexedDB;if(!t)return Promise.reject(Error(`[smrt-web] IndexedDB is unavailable in this environment`));let n=`${e}${xs}`;return new Promise((e,r)=>{let i=t.open(n,1);i.onupgradeneeded=()=>{let e=i.result;e.objectStoreNames.contains(`snapshots`)||e.createObjectStore(bs,{keyPath:`collection`})},i.onsuccess=()=>e(new Ts(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`))})}function Ds(e,t){e.unregister||=Vo(t,{kind:`persisted-collection`,clear:async()=>{e.wipeEpoch+=1,e.unregister=void 0,await(await e.ready)?.clear()}})}var Os=new Map,ks=!1;function As(){ks||(ks=!0,console.warn(`[smrt-web] IndexedDB is unavailable; persistence is disabled (collections behave as non-persistent).`))}function js(e){let t=Os.get(e);if(t)return t.refCount+=1,Ds(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 ws()){As();return}try{let t=await Es(e);return n.store=t,t}catch{As();return}})(),Os.set(e,n),Ds(n,e),n}async function Ms(e){let t=Os.get(e);t&&(--t.refCount,!(t.refCount>0)&&(Os.delete(e),await t.ready,t.unregister?.(),t.unregister=void 0,t.store?.close(),t.store=void 0))}function Ns(e){let t=zo(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=js(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||=js(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 Ms(t)}}}function Ps(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 Fs(e){let t=zo(e.namespace),n=Ps(e.identity),r=e.debounceMs??250,i=js(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 Ms(t))}}}function Is(e){if(Array.isArray(e))return e.map(Is);if(e&&typeof e==`object`){let t=e;return Object.fromEntries(Object.keys(t).sort().map(e=>[e,Is(t[e])]))}return e}function Q(e){let{requestId:t,...n}=e;return JSON.stringify(Is(n))}function Ls(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 Rs(e){return!!e&&typeof e==`object`&&e.name===`AbortError`}function zs(e){if(e.page)return e.page.kind,{...e.page}}function Bs(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:zs(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 xo(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 Ls(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=Ls(o.result,e);if(x(t,e,o.updatedAt),g)throw $();return a?.active&&!p&&E(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=Ls(o.result,e);v({rows:t.rows,page:zs(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&&E(a)),n}catch(e){throw r===f&&(Rs(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(Ls(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)},te=(e={})=>l?C(l,{...e,mode:`visible`,force:!0}):Promise.resolve(void 0),ne=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)&&E(e)})}},c=t.subscribe(n,t=>{if(!a||!e.active||g||r!==h||i.signal.aborted)return;let c=++s;(async()=>{let i=await xo({query:async()=>t},n);a&&e.active&&!g&&r===h&&l&&Q(l)===Q(n)&&x(Ls(i,l),l,Date.now(),c)})().catch(t=>{let i=o.get(Q(n));!Rs(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},T=e=>{e.active=!1,m===e&&(m=void 0)},E=e=>{try{ne(e)}catch(t){T(e),g||v({..._,error:t})}};return{get state(){return _},get request(){return l},execute:C,refresh:te,retry:()=>te(),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 ne(e)}catch(t){throw T(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 Vs=2;function Hs(e,t){let n=globalThis.EventSource;if(typeof n==`function`)return new n(e,t)}function Us(e){let{eventsUrl:t,changesUrl:n,fetchFn:r=(...e)=>globalThis.fetch(...e),eventSourceFactory:i=Hs,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)}},te=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)}},ne=()=>{m||d===`polling`||(d=`polling`,p=setInterval(()=>{te()},a),p.unref?.())},T=e=>{d=`sse`,f=e,e.addEventListener(`change`,C),e.addEventListener(`resync`,w),e.addEventListener(`manifest`,ee),e.onerror=()=>{if(!m&&e.readyState===Vs){try{e.close()}catch{}f=null,ne()}}},E=i(t,{withCredentials:o});return E?T(E):ne(),{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 Ws(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}}}var Gs=`meta`,Ks=`::meta`,qs=`lastSeenManifestHash`;function Js(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`[smrt-web] IndexedDB request failed`))})}function Ys(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 Xs=class{db;dbName;constructor(e,t){this.db=e,this.dbName=t}async get(e){let t=this.db.transaction(Gs,`readonly`),n=await Js(t.objectStore(Gs).get(e));return await Ys(t),n&&typeof n.value==`string`?n.value:void 0}async set(e,t){let n=this.db.transaction(Gs,`readwrite`),r={key:e,value:t};await Js(n.objectStore(Gs).put(r)),await Ys(n)}async clear(){let e=this.db.transaction(Gs,`readwrite`);await Js(e.objectStore(Gs).clear()),await Ys(e)}close(){this.db.close()}};function Zs(e){let t=globalThis.indexedDB;if(!t)return Promise.reject(Error(`[smrt-web] IndexedDB is unavailable in this environment`));let n=`${e}${Ks}`;return new Promise((e,r)=>{let i=t.open(n,1);i.onupgradeneeded=()=>{let e=i.result;e.objectStoreNames.contains(`meta`)||e.createObjectStore(Gs,{keyPath:`key`})},i.onsuccess=()=>e(new Xs(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`))})}function Qs(e){let t=zo(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 Zs(t)}catch{return}if(s){r.close();return}a=r,o=Vo(t,{kind:`persisted-collection`,clear:()=>r.clear()});let i;try{i=await r.get(qs)}catch{i=void 0}if(!s&&(i!==void 0&&i!==n&&d(),i!==n))try{await r.set(qs,n)}catch{}})(),dispose(){s=!0,o?.(),o=void 0,a?.close(),a=void 0,i.clear()}}}function $s(){let e=globalThis.document?.modelContext;if(e&&typeof e.registerTool==`function`)return e}function ec(e,n={}){let r=sc(n),i=$s();if(!i)return tc(()=>{},Promise.resolve());let a=n.basePath??`/api/v1`,s=n.client,{tools:c,allowedEffects:l}=cc(e,n,r);s&&c.some(e=>e.kind===`canonical`&&e.effect!==`read`)&&Uc(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(hc(t)):Rc(t,a,n.fetchFn),p=Qc(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:vc(e),execute:bc(e,l,()=>m,e=>Tc(c,p,t,r.action,r.route,e))},{signal:u.signal})));continue}let{definition:t}=e,r=n.resolveToolFetchers?n.resolveToolFetchers(gc(t,{effect:e.effect,destructive:e.destructive,idempotent:e.idempotent,openWorld:e.openWorld})):Rc({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:vc(e),execute:bc(e,l,()=>m,e=>Ec(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 nc(e,t={}){return rc(e,t,t.owner??`bespoke`)}function rc(e,n,r){let{allowedEffects:i}=sc(n),a=$s();if(!a)return tc(()=>{},Promise.resolve());let s=uc(`bespoke`,dc(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:vc(s),execute:yc(e.execute,bc({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 ic(e,t,n={}){return rc(ne(e,t),n,`intent`)}var ac=s,oc=/^[A-Za-z0-9][A-Za-z0-9_-]*$/;function sc(e){let t=e.effects??[`read`];for(let e of t)if(!ac.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&&!oc.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 cc(e,t,n){let{allowedEffects:r,maxTools:i,namespace:a}=n,o=e.map(e=>pc(e)),s=[];for(let e of o){if(xc(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=gc(e,n);if(t.filterTool&&!t.filterTool(gc(i,n)))continue;s.push({kind:`canonical`,definition:i,descriptor:i,name:lc(i.name,a),identity:`${i.collection}#${i.action}`,...n});continue}let n=hc(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=uc(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=mc(e,i);(!t.filter||t.filter(hc(n),mc(o,i)))&&s.push({kind:`legacy`,definition:n,descriptor:o,name:lc(o.name,a),identity:`${n.name}#${o.action}`,...i})}}return _c(s,i),{tools:s,allowedEffects:r}}function lc(e,t){return t?`${t}_${e}`:e}function uc(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 dc(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 fc(e){return e?pc(e):void 0}function pc(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)=>pc(e,t,`${n}[${r}]`));if(e&&typeof e==`object`){let r={};for(let[i,a]of Object.entries(e))r[i]=pc(a,t,`${n}.${i}`);return r}return e}finally{e&&typeof e==`object`&&t.delete(e)}}function mc(e,t){return pc({...e,effect:t.effect,idempotent:t.idempotent,openWorld:t.openWorld,readOnly:t.effect===`read`,route:fc(e.route)})}function hc(e){let t=pc({...e,actions:[...e.actions]});return t.toolDescriptors=t.toolDescriptors?.map(e=>mc(e,uc(e.action,e))),t}function gc(e,t){return pc({...e,effect:t.effect,idempotent:t.idempotent,openWorld:t.openWorld,readOnly:t.effect===`read`,route:fc(e.route)})}function _c(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 vc(e){return l(e)}function yc(e,t){return a(e)?n(t):t}function bc(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 xc(e){return`collection`in e&&`readOnly`in e}function Sc(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 Cc(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 wc(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 Tc(e,t,n,r,i,a){switch(r){case`list`:{let t=Nc(await e.list(wc(a)),n.name);return JSON.stringify(t)}case`get`:{if(!e.get)throw Error(`${n.name} has no get action`);let t=Pc(await e.get(Cc(a)),`get(${n.name})`);return JSON.stringify(t)}case`create`:{let e=zc(),r=Pc(await Dc(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 Oc(e,t,n,Sc(a,`update`));let o=Pc(await Dc(t.update(Sc(a,`update`),i),t,Sc(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=Sc(a,`delete`);return await Oc(e,t,n,r),await Dc(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 Ec(e,t,n,r){let i;switch(t.action){case`list`:if(!e.list)throw Error(`${t.collection} has no list action`);i=Nc(await e.list(wc(n)),t.collection);break;case`get`:if(!e.get)throw Error(`${t.collection} has no get action`);i=Pc(await e.get(Cc(n)),`get(${t.collection})`);break;case`create`:if(!e.create)throw Error(`${t.collection} has no create action`);i=Pc(await e.create(n),`create(${t.collection})`);break;case`update`:{if(!e.update)throw Error(`${t.collection} has no update action`);let r=Sc(n,`update`),{id:a,...o}=n;i=Pc(await e.update(r,o),`update(${t.collection})`);break}case`delete`:{if(!e.delete)throw Error(`${t.collection} has no delete action`);let r=Sc(n,`delete`);Fc(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=Fc(await e.custom(t.action,n,t.route),`${t.action}(${t.collection})`)}return!t.readOnly&&r&&Gc(r,[t.collection,...t.relationships.map(e=>e.relatedCollection)]),JSON.stringify(i)}async function Dc(e,t,n,r){await e.isPersisted.promise;let i=to.get(t)?.get(n);return i===void 0?t.get(n)??{...r,id:n}:i}async function Oc(e,t,n,r){if(!e.get)throw Error(`${n.name} has no get action; cannot hydrate mutation target '${r}'`);let i=Pc(await e.get(r),`get(${n.name})`),a=no.get(t);if(!a)throw Error(`${n.name} cannot hydrate mutation target '${r}'`);await a(i)}var kc=`__smrt_options`,Ac=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 jc(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 Mc(e,t,n){if(t>=500)return new Ac(`[smrt-web] ${e} request failed: server error`,void 0,t);let r=jc(n);return new Ac(`[smrt-web] ${e} request failed: ${r.message??`HTTP ${t}`}`,n,t,r.code)}function Nc(e,t){if(Fc(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 Ac(`[smrt-web] list(${t}) returned an unexpected payload shape`,e)}function Pc(e,t){if(Fc(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 Ac(`[smrt-web] ${t} returned an unexpected payload shape`,e)}function Fc(e,t){if(!e||typeof e!=`object`||Array.isArray(e))return e;let n=e.error;if(typeof n==`string`)throw new Ac(`[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 Ac(`[smrt-web] ${t} failed: server error`,void 0,i):new Ac(`[smrt-web] ${t} failed: ${r.message}`,e,i,r.code)}var Ic={">":`gt`,">=":`gte`,"<":`lt`,"<=":`lte`,"!=":`ne`,in:`in`,like:`like`};function Lc(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=Ic[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 Rc(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 Mc(e.name,t.status);let n=await t.json().catch(()=>null);throw Mc(e.name,t.status,n)}return t.json().catch(()=>null)};return{list:async e=>a(await n(`${r}${Lc(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 Mc(e.name,a.status);let t=await a.json().catch(()=>null);throw Mc(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(kc,`undefined`);else if(u===null&&f.size===0)e.set(kc,`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(kc,`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 zc(){let e=globalThis.crypto;return e?.randomUUID?e.randomUUID():`local-${Date.now()}-${Math.random().toString(36).slice(2)}`}var Bc=new WeakSet;function Vc(){let e={__smrtWebClient:`SmrtWebClient`,queryClient:new ri};return Bc.add(e),e}function Hc(e){if(!e)return new ri;let t=e;if(!Bc.has(t)||t.__smrtWebClient!==`SmrtWebClient`||!t.queryClient)throw new Ac(`[smrt-web] options.client must be a handle from createSmrtWebClient()`);return t.queryClient}function Uc(e){Hc(e)}function Wc(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 Gc(e,t){Wc(Hc(e),new Set(t))}function Kc(e){let t={};for(let[n,r]of Object.entries(e))n.charCodeAt(0)!==36&&(t[n]=r);return t}function qc(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=Kc(t.value)),t.previousValue&&typeof t.previousValue==`object`&&(n.previousValue=Kc(t.previousValue)),n}):e}function Jc(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 Yc=new WeakMap;function Xc(e){let t=Yc.get(e);if(t===void 0)throw new Ac(`[smrt-web] getEngineCollection: not a smrt-web collection handle`);return t}function Zc(e,t,n){console.warn(`[smrt-web] capability "${e.name}" ${t} threw; ignoring`,n)}function Qc(e,t){let{staleTimeMs:n=3e4,retry:r=!1,scope:i,initialData:a}=t,o=t.capabilities??[],s=t.fetchers??Rc(e,t.basePath,t.fetchFn),c=Hc(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=()=>{Wc(c,p)},h={definition:e,fetchers:s,get cacheKey(){return f},get cacheId(){return d},invalidate:()=>m(),snapshot:()=>S.toArray.map(e=>Kc(e)),subscribe:e=>{let t=S.subscribeChanges(t=>e(qc(t)));return{unsubscribe:()=>t.unsubscribe()}}};for(let e of o){let t;try{t=e.contributeCacheKey?.(h)}catch(t){Zc(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){Zc(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){Zc(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){Zc(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){Zc(n,`onSettled`,e)}},x=async(e,t)=>{try{let n=await eo(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($a({id:d,queryKey:f,queryClient:c,staleTime:n,retry:r,queryFn:async()=>Nc(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 Pc(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:Jc(r.original)},o=await x(a,async()=>Pc(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:Jc(r.original)},a=await x(i,async()=>Fc(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=>Kc(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:Kc(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){Zc(e,`teardown`,t)}},subscribeChanges(e){let t=S.subscribeChanges(t=>e(qc(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 Fc(i,`${t}(${e.name})`),m(),i}};to.set(C,u),no.set(C,async e=>{await S.preload(),S.utils.writeUpsert(e)}),Yc.set(C,S);for(let e of o)try{e.onAttach?.(h)}catch(t){Zc(e,`onAttach`,t)}return C}var $c=e({DEFAULT_PERSIST_DEBOUNCE_MS:()=>250,MAX_SMRT_WEB_DATA_QUERY_CONTAINER_ITEMS:()=>lo,MAX_SMRT_WEB_DATA_QUERY_FACETS:()=>20,MAX_SMRT_WEB_DATA_QUERY_FACET_VALUES:()=>oo,MAX_SMRT_WEB_DATA_QUERY_OFFSET:()=>co,MAX_SMRT_WEB_DATA_QUERY_PAGE_LIMIT:()=>so,MAX_SMRT_WEB_DATA_QUERY_RESULT_BYTES:()=>io,MAX_SMRT_WEB_DATA_QUERY_ROWS:()=>ao,MAX_SMRT_WEB_DATA_QUERY_STRING_LENGTH:()=>uo,MAX_SMRT_WEB_DATA_QUERY_WARNINGS:()=>100,MAX_SMRT_WEB_DATA_SURFACE_ACTION_CONTAINER_ITEMS:()=>Co,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:()=>So,SmrtWebRequestError:()=>Ac,WebMcpToolNameCollisionError:()=>r,buildListQuery:()=>Lc,classifySmrtWebDataSurfaceActionResult:()=>Lo,compileViewIntentToolSpec:()=>ne,createDefinitionFetchers:()=>Rc,createSmrtCollection:()=>Qc,createSmrtWebClient:()=>Vc,createSmrtWebEventSubscriber:()=>Us,createSmrtWebQuery:()=>Bs,createUpdateState:()=>Qs,dataSurfaceActionCommandTransport:()=>Ro,durableStoreNamespace:()=>zo,executeSmrtWebDataQuery:()=>xo,executeSmrtWebDataSurfaceAction:()=>Mo,getEngineCollection:()=>Xc,getOutboxHandle:()=>ys,invalidateSmrtWebCollections:()=>Gc,liveInvalidation:()=>Ws,newLocalId:()=>zc,normalizeSmrtWebDataQueryResult:()=>bo,normalizeSmrtWebDataSurfaceActionResult:()=>jo,offlineCommandQueue:()=>vs,offlineOutbox:()=>_s,persistCollection:()=>Ns,persistDataSurface:()=>Fs,registerDurableResource:()=>Vo,registerViewIntent:()=>ic,registerWebMcpBespokeTool:()=>nc,registerWebMcpTools:()=>ec,reserveWebMcpToolNames:()=>t,runWrapMutation:()=>eo,throwIfSmrtWebError:()=>Fc,unwrapItemResult:()=>Pc,unwrapListResult:()=>Nc,validateSmrtWebClient:()=>Uc,viewIntentToolName:()=>m,webMcpToolNameOwner:()=>i,wipeDurableStore:()=>Ho});export{$c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Dt as e,wt as t}from"./Chyo8rdT.js";var n=Symbol(`smrt-app-state`);function r(t){e(n,t)}function i(){let e=t(n);if(!e)throw Error(`App state not found. Make sure to wrap your app with <SmrtProvider>`);return e}function a(){return t(n)??null}export{r as n,a as r,i as t};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var e=/\{field:([A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)?)\}/,t=/\{field:[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)?\}|`[^`]+`|\*\*[^*]+\*\*|\*[^*\s][^*]*\*/;function n(r){let i=[],a=r;for(;a;){let r=t.exec(a);if(!r)break;r.index>0&&i.push({type:`text`,text:a.slice(0,r.index)});let o=r[0],s=e.exec(o);s&&s[0]===o?i.push({type:`field`,ref:s[1]}):o.startsWith("`")?i.push({type:`code`,text:o.slice(1,-1)}):o.startsWith(`**`)?i.push({type:`strong`,children:n(o.slice(2,-2))}):i.push({type:`em`,children:n(o.slice(1,-1))}),a=a.slice(r.index+o.length)}return a&&i.push({type:`text`,text:a}),i}var r=/^(#{2,4})\s+(.+?)\s*#*\s*$/,i=/^[-*]\s+(.*)$/,a=/^\d+[.)]\s+(.*)$/;function o(e){let t=[],o=[],s=null,c=()=>{o.length&&(t.push({type:`paragraph`,inlines:n(o.join(` `))}),o=[])},l=()=>{s&&=(t.push({type:`list`,ordered:s.ordered,items:s.items.map(e=>({inlines:n(e)}))}),null)};for(let u of e.replace(/\r\n?/g,`
|
|
2
|
+
`).split(`
|
|
3
|
+
`)){let e=u.trimEnd().trim();if(!e){c(),l();continue}let d=r.exec(e);if(d){c(),l(),t.push({type:`heading`,level:d[1].length,inlines:n(d[2])});continue}let f=i.exec(e),p=f?null:a.exec(e),m=f??p;if(m&&u===u.trimStart()){c();let e=p!==null;s&&s.ordered!==e&&l(),s||={ordered:e,items:[]},s.items.push(m[1]);continue}s?s.items[s.items.length-1]+=` ${e}`:o.push(e)}return c(),l(),t}function s(e,t){let n=e.indexOf(`.`),r=n===-1?null:e.slice(0,n),i=n===-1?e:e.slice(n+1);for(let e of t){if(r!==null&&e.name!==r)continue;let t=e.fields.find(e=>e.name===i);if(t)return{model:e,field:t}}}function c(e,t){let n=[];for(let r of e)if(r.type===`field`){let e=s(r.ref,t);if(!e||e.field.visibility!==`basic`)return null;n.push({type:`text`,text:e.field.label})}else if(r.type===`strong`||r.type===`em`){let e=c(r.children,t);if(!e)return null;n.push({type:r.type,children:e.inlines})}else n.push(r);return{inlines:n}}function l(e,t,n){let r=e[t]?.source;for(let i=t+1;i<e.length;i++){let t=e[i];if(t.source.type===`heading`){if(t.source.level<=r.level)return!1;continue}if(!n||t.kept)return!0}return!1}function u(e,t){let n=o(e.markdown).map(e=>{if(e.type===`list`){let n=e.items.flatMap(e=>{let n=c(e.inlines,t);return n?[{inlines:n.inlines}]:[]});return{source:e,kept:n.length?{...e,items:n}:null}}let n=c(e.inlines,t);return{source:e,kept:n?{...e,inlines:n.inlines}:null}});return n.flatMap((e,t)=>!e.kept||e.source.type===`heading`&&l(n,t,!1)&&!l(n,t,!0)?[]:[e.kept])}function d(e){return e.flatMap(e=>e.fields.flatMap(t=>{if(e.glossary===!1||t.visibility!==`basic`)return[];let n=t.help?.trim()||e.descriptions?.[t.name]||``;return n?[{model:e.name,name:t.name,label:t.label,text:n}]:[]}))}function f(e,t){return{blocks:u(e,t),glossary:d(t)}}export{f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Dt as e}from"./Chyo8rdT.js";import{Y as t,m as n,u as r}from"./D_J_XtJy.js";var i=Symbol(`smrt-webmcp-bespoke-context`);function a(t){e(i,t)}var o=[`name`,`title`,`label`,`code`];function s(e){let t=e.display?.label,n=new Set(e.fields.map(e=>e.name));return[...t?[t]:[],...o].filter((e,t,r)=>n.has(e)&&r.indexOf(e)===t)}function c(e,t){for(let n of s(e)){let e=t[n];if(typeof e==`string`&&e.trim()!==``)return e}}var l=e=>e.type===`foreignKey`||e.type===`crossPackageRef`,u=[/^customer/i,/^vendor/i,/^profile/i,/^product/i,/^invoice/i,/^order/i,/^payment/i,/^contract/i];function d(e,t){let n=e.fields.find(e=>!e.system&&e.type===`text`&&/(^|[a-z])Number$|^number$/.test(e.name)&&typeof t[e.name]==`string`&&String(t[e.name]).trim()!==``);return n?String(t[n.name]):void 0}function f(e,t){let n=e.filter(e=>l(e)&&typeof t[e.name]==`string`&&t[e.name]!==``);for(let e of u){let t=n.find(t=>e.test(t.name));if(t)return t}}var p=/(paid|allocated|issue|^date$|createdat)/i;function m(e,t,n,i=e.fields){let a=c(e,t);if(a)return a;let o=f(i,t),s=o?.related?n(o,String(t[o.name])):void 0,l=d(e,t);if(l)return h([l,s]);if(e.fields.find(e=>e.name===`amount`&&e.type===`integer`)&&typeof t.amount==`number`){let n=e.fields.find(e=>e.type===`datetime`&&p.test(e.name)&&t[e.name]);return h([s,r(t.amount),n?String(t[n.name]).slice(0,10):void 0])}return h([s,[`reference`,`description`].map(e=>t[e]).find(e=>typeof e==`string`&&e.trim()!==``)])}function h(e){let t=e.filter(e=>!!e);return t.filter((e,n)=>t.indexOf(e)===n).join(` · `)||void 0}var g=`@happyvertical/smrt-profiles:Profile`,_=`@happyvertical/smrt-commerce:Customer`,v=`@happyvertical/smrt-commerce:Vendor`,y=20;function b(e){let n=t(e);if(!n)throw Error(`The catalog has no model ${e}`);return n.model}function x(e){return String(e??``).slice(0,8)}function S(e){return e.fields.some(e=>e.name===`profileId`&&e.related===`@happyvertical/smrt-profiles:Profile`)}async function C(e,t){return typeof t.profileId==`string`&&t.profileId?e.get(b(g),t.profileId):void 0}var w=3;async function T(e,n,r,i=0){if(S(n)){let t=await C(e,r),n=t&&c(b(`@happyvertical/smrt-profiles:Profile`),t);if(n)return n}let a=f(n.fields,r),o=a?.related?t(a.related)?.model:void 0,s;if(a&&o&&i<w){let t=await e.get(o,String(r[a.name]));t&&(s=await T(e,o,t,i+1))}return m(n,r,()=>s)??x(r.id)}async function E(e,r,i){let a=new Map;for(let o of r){let r=o.related;if(!r)continue;let s=t(r)?.model;if(!s)continue;let c=new Set(i.map(e=>e[o.name]).filter(e=>typeof e==`string`&&e!==``));for(let t of c){if(a.has(n(r,t)))continue;let i=await e.get(s,t);i&&a.set(n(r,t),await T(e,s,i))}}return a}var D=(e,t)=>e.toLowerCase().includes(t.trim().toLowerCase());async function O(e,t,n){let r=[];for(let i of await e.list(t)){let a=await T(e,t,i);if(D(a,n)&&r.push({id:i.id,label:a}),r.length>=y)break}return r}async function k(e,t,n){let r=await e.get(t,n);return r?{id:r.id,label:await T(e,t,r)}:null}var A=e=>typeof e==`string`&&e!==``?e:void 0;async function j(e,t){let n=await C(e,t);return{...n?{id:n.id}:{},name:(n&&c(b(`@happyvertical/smrt-profiles:Profile`),n))??x(t.id),...A(n?.email)?{email:A(n?.email)}:{}}}async function M(e,t){return{id:t.id,...A(t.profileId)?{profileId:A(t.profileId)}:{},profile:await j(e,t),status:A(t.status)??``,...A(t.customerType)?{customerType:A(t.customerType)}:{},...typeof t.creditLimit==`number`?{creditLimitMinor:t.creditLimit}:{},...A(t.paymentTerms)?{paymentTerms:A(t.paymentTerms)}:{}}}async function N(e,t){return{id:t.id,...A(t.profileId)?{profileId:A(t.profileId)}:{},profile:await j(e,t),status:A(t.status)??``,...typeof t.leadTimeDays==`number`?{leadTimeDays:t.leadTimeDays}:{},...A(t.currency)?{currency:A(t.currency)}:{}}}async function P(e,t){let n=[];for(let r of await e.list(b(_))){let i=await M(e,r);if(D(i.profile.name,t)&&n.push(i),n.length>=y)break}return n}async function F(e,t){let n=await e.get(b(_),t);return n?M(e,n):null}async function I(e,t){let n=[];for(let r of await e.list(b(v))){let i=await N(e,r);if(D(i.profile.name,t)&&n.push(i),n.length>=y)break}return n}async function L(e,t){let n=await e.get(b(v),t);return n?N(e,n):null}export{L as a,I as c,a as d,k as i,x as l,E as n,P as o,F as r,O as s,T as t,m as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=class extends Error{code;adapter;constructor(e,t,n){super(e),this.code=t,this.adapter=n,this.name=`SpeechError`}},t=class extends e{constructor(e,t){super(e,`SPEECH_CONFIGURATION_ERROR`,t),this.name=`SpeechConfigurationError`}},n=class extends e{status;responseBody;retryAfterMs;constructor(e,t,n={}){super(t,`SPEECH_PROVIDER_ERROR`,e),this.name=`SpeechProviderError`,this.status=n.status,this.responseBody=n.responseBody,this.retryAfterMs=n.retryAfterMs,n.cause!==void 0&&(this.cause=n.cause)}},r=class extends e{reason;constructor(e,t){super(t,`SPEECH_INVALID_WAV`),this.name=`WavFormatError`,this.reason=e}},i=class extends e{reason;constructor(e,t,n){super(t,`SPEECH_PCM_CAPTURE`),this.name=`PcmCaptureError`,this.reason=e,n!==void 0&&(this.cause=n)}};export{r as a,n as i,t as n,e as r,i as t};
|