[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-directus-rstore-vue":3,"mdc-44zahu-key":33,"related-org-directus-rstore-vue":2430,"related-repo-directus-rstore-vue":2538},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"rstore-vue","manage application data with rstore in Vue","Use when handling app data in Vue with `@rstore\u002Fvue` — fetch items\u002Flists, keep queries reactive or live, create\u002Fupdate\u002Fdelete records with forms, manage cache consistency, and debug store\u002Fquery\u002Fsubscription behavior across collections; also use before writing a custom fetch composable, ad hoc fetch ref, or bespoke cache layer for collection data — prefer `find*`, `query`, `liveQuery`, `createForm`, and `definePlugin` hooks over hand-rolled fetching\u002Fcaching.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"directus","Directus","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fdirectus.png",[12,16,19],{"name":13,"slug":14,"type":15},"Vue","vue","tag",{"name":17,"slug":18,"type":15},"Frontend","frontend",{"name":20,"slug":21,"type":15},"Debugging","debugging",425,"https:\u002F\u002Fgithub.com\u002Fdirectus\u002Frstore","2026-07-12T07:51:04.87426",null,19,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"The Reactive Data Store for Vue and Nuxt developers.","https:\u002F\u002Fgithub.com\u002Fdirectus\u002Frstore\u002Ftree\u002FHEAD\u002Fpackages\u002Fvue\u002Fskills\u002Frstore-vue","---\nname: rstore-vue\ndescription: \"Use when handling app data in Vue with `@rstore\u002Fvue` — fetch items\u002Flists, keep queries reactive or live, create\u002Fupdate\u002Fdelete records with forms, manage cache consistency, and debug store\u002Fquery\u002Fsubscription behavior across collections; also use before writing a custom fetch composable, ad hoc fetch ref, or bespoke cache layer for collection data — prefer `find*`, `query`, `liveQuery`, `createForm`, and `definePlugin` hooks over hand-rolled fetching\u002Fcaching.\"\n---\n\n# Rstore Vue\n\nBuild typed, cache-first Vue data flows with `@rstore\u002Fvue`, including core engine and shared contract behavior.\n\n## Documentation map\n\n| Area | Documentation |\n| --- | --- |\n| Getting started | [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fgetting-started#vue](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fgetting-started#vue) |\n| Collection schema | [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fschema\u002Fcollection](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fschema\u002Fcollection) |\n| Relations | [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fschema\u002Frelations](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fschema\u002Frelations) |\n| Query and live query | [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fquery](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fquery), [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Flive](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Flive) |\n| Mutations and forms | [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fmutation](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fmutation), [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fform](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fform) |\n| Cache and modules | [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fcache](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fcache), [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fmodule](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fmodule) |\n| Plugin setup and hooks | [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fplugin\u002Fsetup](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fplugin\u002Fsetup), [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fplugin\u002Fhooks](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fplugin\u002Fhooks) |\n| Skill-local API references | [.\u002Freferences\u002Findex.md](.\u002Freferences\u002Findex.md) |\n\n## Core concepts\n\n| Primitive | Purpose |\n| --- | --- |\n| `withItemType(...).defineCollection(...)` | Defines a typed collection contract before using it in components |\n| `defineRelations(...)` | Defines normalized cross-collection relations once |\n| `addCollectionRelations(store, relations)` | Adds relation blocks after store creation when schema is composed dynamically |\n| `createStore({ schema, plugins, ... })` | Builds store core, cache, hook system, and per-collection API proxies |\n| `RstorePlugin` \u002F `setActiveStore` | Injects store into Vue or non-component\u002Ftest contexts |\n| `store.\u003Ccollection>` and `store.$collection(name)` | Entry point for read\u002Fwrite\u002Fquery\u002Fform operations |\n| `query` \u002F `liveQuery` | Reactive queries with loading\u002Ferror\u002Fmeta\u002Fpagination semantics |\n| `realtimeReconnectEventHook` | Shared reconnect signal used by realtime transports; `liveQuery` refreshes when it fires |\n| `useQueryTracking` | Tracks query membership and filters dirty cached items in reactive flows |\n| `createForm` \u002F `updateForm` \u002F `createFormObject` | Mutation and validation workflow with submit\u002Freset\u002Fchange tracking |\n| `definePlugin({ ... })` | Extends fetch\u002Fcache\u002Fmutation\u002Fsubscribe\u002Fsync behavior via hooks |\n| `defineModule(name, cb)` | Creates store-scoped reusable logic with per-store caching |\n| `@rstore\u002Fcore` primitives | Backing implementation for collection\u002Fschema, find\u002Fpeek\u002Fmutation\u002Fsubscription behavior |\n| `@rstore\u002Fshared` types + hooks | Cross-package contracts for options, meta, payloads, and utilities |\n\n## Quick start\n\n```ts\nimport { createStore, RstorePlugin, withItemType } from '@rstore\u002Fvue'\n\nexport const todos = withItemType\u003CTodo>().defineCollection({\n  name: 'todos',\n})\n\nconst store = await createStore({\n  schema: [todos],\n  plugins: [],\n})\n\napp.use(RstorePlugin, { store })\n```\n\n## Task workflow\n\n1. Define collections and relations first.\n2. Create a store with `createStore({ schema, plugins })`.\n3. Install `RstorePlugin` in app code or set `setActiveStore(store)` in tests\u002Fnon-injection contexts.\n4. Use collection APIs (`find*`, `query`, `liveQuery`) instead of custom fetch refs.\n5. Use `createForm`\u002F`updateForm` for mutation UIs and `createFormObject` for custom flows.\n6. Move transport\u002Fdata-source behavior into `definePlugin` hooks, not component-level code.\n7. When behavior is unclear, check docs and skill references first; if docs are incomplete or wrong, fix docs before updating this skill.\n\n## Query and form guidance\n\n| API | Use it for |\n| --- | --- |\n| `peekFirst` \u002F `peekMany` | Cache-only reads for computed\u002Freactive derivations |\n| `findFirst` \u002F `findMany` | One-shot async reads without long-lived query refs |\n| `query` | Reactive ref-based queries (`data`, `loading`, `error`, `refresh`) |\n| `liveQuery` | Query + subscription lifecycle for realtime adapters |\n| `fetchMore` | Adds page results to sparse `pages` and merged `data` |\n| `createForm` \u002F `updateForm` | Preferred mutation UX; `updateForm` can prefetch item and send changed fields only |\n| `createFormObject` | Lower-level custom form builder with schema validation and hooks |\n\nNotes:\n\n- `createFormObject` supports `validateOnSubmit`, `transformData`, `resetOnSuccess`, `$changedProps`, and `$valid`.\n- Form objects expose `$opLog` for undo\u002Fredo and optimized form operations.\n- Use `$rebase`, `$conflicts`, and `$resolveConflict` for collaborative editing flows.\n- `$save()` and `$onSaved()` are deprecated compatibility aliases. Prefer `$submit()` and `$onSuccess()`.\n\n## Modules and plugins\n\n- `defineModule(name, cb)` caches module instances in `store.$modulesCache`.\n- `defineModule` requires injection context or an explicit\u002Factive store.\n- `definePlugin({ name, category, scopeId?, setup })` is the extension point for fetch\u002Fcache\u002Fmutation\u002Fsubscription\u002Fsync hooks.\n- `realtimeReconnectEventHook` should be triggered by realtime plugins only after transport recovery; `liveQuery` refreshes automatically when it fires.\n- `addCollectionDefaults(...)` is the right place for shared field parsing\u002Fdefault behavior.\n- Keep plugin behavior keyed by store\u002Fscope instead of global mutable state.\n\n## Guardrails\n\n1. Calling `useStore()` without installation\u002Factive store throws.\n2. `defineModule` outside setup without an available store throws.\n3. Query `no-cache` and `cache-*` behaviors differ materially; align changes with the documented query fetch-policy behavior.\n4. `experimentalGarbageCollection` affects query tracking behavior; use only with explicit coverage.\n5. Dynamic `store.$collection(name)` calls throw for unknown collection names.\n6. Avoid duplicating entity state outside store cache unless intentionally divergent.\n\n## References\n\n| Topic | Description | Reference |\n| --- | --- | --- |\n| API index | Full map of all API-element references | [api-index](.\u002Freferences\u002Findex.md) |\n| withItemType | Typed collection builder entry point | [api-with-item-type](.\u002Freferences\u002Fapi-with-item-type.md) |\n| defineCollection | Untyped collection declaration helper | [api-define-collection](.\u002Freferences\u002Fapi-define-collection.md) |\n| defineRelations | Relation declaration helper | [api-define-relations](.\u002Freferences\u002Fapi-define-relations.md) |\n| addCollectionRelations | Add relation blocks after store creation | [api-add-collection-relations](.\u002Freferences\u002Fapi-add-collection-relations.md) |\n| createStore | Create store instance and lifecycle | [api-create-store](.\u002Freferences\u002Fapi-create-store.md) |\n| addCollection | Register a collection dynamically | [api-add-collection](.\u002Freferences\u002Fapi-add-collection.md) |\n| removeCollection | Unregister a collection dynamically | [api-remove-collection](.\u002Freferences\u002Fapi-remove-collection.md) |\n| RstorePlugin | Vue app plugin installation | [api-rstore-plugin](.\u002Freferences\u002Fapi-rstore-plugin.md) |\n| useStore | Injected\u002Factive store access | [api-use-store](.\u002Freferences\u002Fapi-use-store.md) |\n| setActiveStore | Explicit active store binding | [api-set-active-store](.\u002Freferences\u002Fapi-set-active-store.md) |\n| definePlugin | Store plugin authoring API | [api-define-plugin](.\u002Freferences\u002Fapi-define-plugin.md) |\n| defineModule | Store-scoped module authoring API | [api-define-module](.\u002Freferences\u002Fapi-define-module.md) |\n| createFormObject | Low-level form object API | [api-create-form-object](.\u002Freferences\u002Fapi-create-form-object.md) |\n| createFormObjectWithChangeDetection | Deprecated alias for createFormObject | [api-create-form-object-with-change-detection](.\u002Freferences\u002Fapi-create-form-object-with-change-detection.md) |\n| optimizeOpLog | Utility to optimize form operation logs | [api-optimize-op-log](.\u002Freferences\u002Fapi-optimize-op-log.md) |\n| useQueryTracking | Query membership\u002Fdirty-item tracking | [api-use-query-tracking](.\u002Freferences\u002Fapi-use-query-tracking.md) |\n| store.$wrapMutation | Wrap custom mutations in store mutation lifecycle | [api-wrap-mutation](.\u002Freferences\u002Fapi-wrap-mutation.md) |\n| peekFirst | Cache-only first-item read | [api-peek-first](.\u002Freferences\u002Fapi-peek-first.md) |\n| findFirst | Async first-item read | [api-find-first](.\u002Freferences\u002Fapi-find-first.md) |\n| peekMany | Cache-only list read | [api-peek-many](.\u002Freferences\u002Fapi-peek-many.md) |\n| findMany | Async list read | [api-find-many](.\u002Freferences\u002Fapi-find-many.md) |\n| query | Reactive query object API | [api-query](.\u002Freferences\u002Fapi-query.md) |\n| liveQuery | Query + subscription lifecycle | [api-live-query](.\u002Freferences\u002Fapi-live-query.md) |\n| realtimeReconnectEventHook | Shared reconnect event hook for realtime transports | [api-realtime-reconnect-event-hook](.\u002Freferences\u002Fapi-realtime-reconnect-event-hook.md) |\n| subscribe | Subscription API for updates | [api-subscribe](.\u002Freferences\u002Fapi-subscribe.md) |\n| create | Single-item create mutation | [api-create](.\u002Freferences\u002Fapi-create.md) |\n| createMany | Batch create mutation | [api-create-many](.\u002Freferences\u002Fapi-create-many.md) |\n| createForm | Create-form mutation helper | [api-create-form](.\u002Freferences\u002Fapi-create-form.md) |\n| update | Single-item update mutation | [api-update](.\u002Freferences\u002Fapi-update.md) |\n| updateMany | Batch update mutation | [api-update-many](.\u002Freferences\u002Fapi-update-many.md) |\n| updateForm | Update-form mutation helper | [api-update-form](.\u002Freferences\u002Fapi-update-form.md) |\n| delete | Single-item delete mutation | [api-delete](.\u002Freferences\u002Fapi-delete.md) |\n| deleteMany | Batch delete mutation | [api-delete-many](.\u002Freferences\u002Fapi-delete-many.md) |\n| writeItem | Write\u002Foverride item in cache | [api-write-item](.\u002Freferences\u002Fapi-write-item.md) |\n| clearItem | Remove item from cache view | [api-clear-item](.\u002Freferences\u002Fapi-clear-item.md) |\n\n## Further reading\n\n- Guide index: [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Flearn-more](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Flearn-more)\n- Query docs: [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fquery](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fquery)\n- Mutation docs: [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fmutation](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fmutation)\n- Form docs: [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fform](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fform)\n- Plugin hook docs: [https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fplugin\u002Fhooks](https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fplugin\u002Fhooks)\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,46,61,68,262,268,576,582,940,946,1057,1063,1269,1274,1395,1401,1476,1482,1556,1562,2364,2370,2424],{"type":39,"tag":40,"props":41,"children":42},"element","h1",{"id":4},[43],{"type":44,"value":45},"text","Rstore Vue",{"type":39,"tag":47,"props":48,"children":49},"p",{},[50,52,59],{"type":44,"value":51},"Build typed, cache-first Vue data flows with ",{"type":39,"tag":53,"props":54,"children":56},"code",{"className":55},[],[57],{"type":44,"value":58},"@rstore\u002Fvue",{"type":44,"value":60},", including core engine and shared contract behavior.",{"type":39,"tag":62,"props":63,"children":65},"h2",{"id":64},"documentation-map",[66],{"type":44,"value":67},"Documentation map",{"type":39,"tag":69,"props":70,"children":71},"table",{},[72,91],{"type":39,"tag":73,"props":74,"children":75},"thead",{},[76],{"type":39,"tag":77,"props":78,"children":79},"tr",{},[80,86],{"type":39,"tag":81,"props":82,"children":83},"th",{},[84],{"type":44,"value":85},"Area",{"type":39,"tag":81,"props":87,"children":88},{},[89],{"type":44,"value":90},"Documentation",{"type":39,"tag":92,"props":93,"children":94},"tbody",{},[95,115,132,149,174,198,222,246],{"type":39,"tag":77,"props":96,"children":97},{},[98,104],{"type":39,"tag":99,"props":100,"children":101},"td",{},[102],{"type":44,"value":103},"Getting started",{"type":39,"tag":99,"props":105,"children":106},{},[107],{"type":39,"tag":108,"props":109,"children":113},"a",{"href":110,"rel":111},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fgetting-started#vue",[112],"nofollow",[114],{"type":44,"value":110},{"type":39,"tag":77,"props":116,"children":117},{},[118,123],{"type":39,"tag":99,"props":119,"children":120},{},[121],{"type":44,"value":122},"Collection schema",{"type":39,"tag":99,"props":124,"children":125},{},[126],{"type":39,"tag":108,"props":127,"children":130},{"href":128,"rel":129},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fschema\u002Fcollection",[112],[131],{"type":44,"value":128},{"type":39,"tag":77,"props":133,"children":134},{},[135,140],{"type":39,"tag":99,"props":136,"children":137},{},[138],{"type":44,"value":139},"Relations",{"type":39,"tag":99,"props":141,"children":142},{},[143],{"type":39,"tag":108,"props":144,"children":147},{"href":145,"rel":146},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fschema\u002Frelations",[112],[148],{"type":44,"value":145},{"type":39,"tag":77,"props":150,"children":151},{},[152,157],{"type":39,"tag":99,"props":153,"children":154},{},[155],{"type":44,"value":156},"Query and live query",{"type":39,"tag":99,"props":158,"children":159},{},[160,166,168],{"type":39,"tag":108,"props":161,"children":164},{"href":162,"rel":163},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fquery",[112],[165],{"type":44,"value":162},{"type":44,"value":167},", ",{"type":39,"tag":108,"props":169,"children":172},{"href":170,"rel":171},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Flive",[112],[173],{"type":44,"value":170},{"type":39,"tag":77,"props":175,"children":176},{},[177,182],{"type":39,"tag":99,"props":178,"children":179},{},[180],{"type":44,"value":181},"Mutations and forms",{"type":39,"tag":99,"props":183,"children":184},{},[185,191,192],{"type":39,"tag":108,"props":186,"children":189},{"href":187,"rel":188},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fmutation",[112],[190],{"type":44,"value":187},{"type":44,"value":167},{"type":39,"tag":108,"props":193,"children":196},{"href":194,"rel":195},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fform",[112],[197],{"type":44,"value":194},{"type":39,"tag":77,"props":199,"children":200},{},[201,206],{"type":39,"tag":99,"props":202,"children":203},{},[204],{"type":44,"value":205},"Cache and modules",{"type":39,"tag":99,"props":207,"children":208},{},[209,215,216],{"type":39,"tag":108,"props":210,"children":213},{"href":211,"rel":212},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fcache",[112],[214],{"type":44,"value":211},{"type":44,"value":167},{"type":39,"tag":108,"props":217,"children":220},{"href":218,"rel":219},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fdata\u002Fmodule",[112],[221],{"type":44,"value":218},{"type":39,"tag":77,"props":223,"children":224},{},[225,230],{"type":39,"tag":99,"props":226,"children":227},{},[228],{"type":44,"value":229},"Plugin setup and hooks",{"type":39,"tag":99,"props":231,"children":232},{},[233,239,240],{"type":39,"tag":108,"props":234,"children":237},{"href":235,"rel":236},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fplugin\u002Fsetup",[112],[238],{"type":44,"value":235},{"type":44,"value":167},{"type":39,"tag":108,"props":241,"children":244},{"href":242,"rel":243},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Fplugin\u002Fhooks",[112],[245],{"type":44,"value":242},{"type":39,"tag":77,"props":247,"children":248},{},[249,254],{"type":39,"tag":99,"props":250,"children":251},{},[252],{"type":44,"value":253},"Skill-local API references",{"type":39,"tag":99,"props":255,"children":256},{},[257],{"type":39,"tag":108,"props":258,"children":260},{"href":259},".\u002Freferences\u002Findex.md",[261],{"type":44,"value":259},{"type":39,"tag":62,"props":263,"children":265},{"id":264},"core-concepts",[266],{"type":44,"value":267},"Core concepts",{"type":39,"tag":69,"props":269,"children":270},{},[271,287],{"type":39,"tag":73,"props":272,"children":273},{},[274],{"type":39,"tag":77,"props":275,"children":276},{},[277,282],{"type":39,"tag":81,"props":278,"children":279},{},[280],{"type":44,"value":281},"Primitive",{"type":39,"tag":81,"props":283,"children":284},{},[285],{"type":44,"value":286},"Purpose",{"type":39,"tag":92,"props":288,"children":289},{},[290,307,324,341,358,383,408,432,456,473,504,521,538,557],{"type":39,"tag":77,"props":291,"children":292},{},[293,302],{"type":39,"tag":99,"props":294,"children":295},{},[296],{"type":39,"tag":53,"props":297,"children":299},{"className":298},[],[300],{"type":44,"value":301},"withItemType(...).defineCollection(...)",{"type":39,"tag":99,"props":303,"children":304},{},[305],{"type":44,"value":306},"Defines a typed collection contract before using it in components",{"type":39,"tag":77,"props":308,"children":309},{},[310,319],{"type":39,"tag":99,"props":311,"children":312},{},[313],{"type":39,"tag":53,"props":314,"children":316},{"className":315},[],[317],{"type":44,"value":318},"defineRelations(...)",{"type":39,"tag":99,"props":320,"children":321},{},[322],{"type":44,"value":323},"Defines normalized cross-collection relations once",{"type":39,"tag":77,"props":325,"children":326},{},[327,336],{"type":39,"tag":99,"props":328,"children":329},{},[330],{"type":39,"tag":53,"props":331,"children":333},{"className":332},[],[334],{"type":44,"value":335},"addCollectionRelations(store, relations)",{"type":39,"tag":99,"props":337,"children":338},{},[339],{"type":44,"value":340},"Adds relation blocks after store creation when schema is composed dynamically",{"type":39,"tag":77,"props":342,"children":343},{},[344,353],{"type":39,"tag":99,"props":345,"children":346},{},[347],{"type":39,"tag":53,"props":348,"children":350},{"className":349},[],[351],{"type":44,"value":352},"createStore({ schema, plugins, ... })",{"type":39,"tag":99,"props":354,"children":355},{},[356],{"type":44,"value":357},"Builds store core, cache, hook system, and per-collection API proxies",{"type":39,"tag":77,"props":359,"children":360},{},[361,378],{"type":39,"tag":99,"props":362,"children":363},{},[364,370,372],{"type":39,"tag":53,"props":365,"children":367},{"className":366},[],[368],{"type":44,"value":369},"RstorePlugin",{"type":44,"value":371}," \u002F ",{"type":39,"tag":53,"props":373,"children":375},{"className":374},[],[376],{"type":44,"value":377},"setActiveStore",{"type":39,"tag":99,"props":379,"children":380},{},[381],{"type":44,"value":382},"Injects store into Vue or non-component\u002Ftest contexts",{"type":39,"tag":77,"props":384,"children":385},{},[386,403],{"type":39,"tag":99,"props":387,"children":388},{},[389,395,397],{"type":39,"tag":53,"props":390,"children":392},{"className":391},[],[393],{"type":44,"value":394},"store.\u003Ccollection>",{"type":44,"value":396}," and ",{"type":39,"tag":53,"props":398,"children":400},{"className":399},[],[401],{"type":44,"value":402},"store.$collection(name)",{"type":39,"tag":99,"props":404,"children":405},{},[406],{"type":44,"value":407},"Entry point for read\u002Fwrite\u002Fquery\u002Fform operations",{"type":39,"tag":77,"props":409,"children":410},{},[411,427],{"type":39,"tag":99,"props":412,"children":413},{},[414,420,421],{"type":39,"tag":53,"props":415,"children":417},{"className":416},[],[418],{"type":44,"value":419},"query",{"type":44,"value":371},{"type":39,"tag":53,"props":422,"children":424},{"className":423},[],[425],{"type":44,"value":426},"liveQuery",{"type":39,"tag":99,"props":428,"children":429},{},[430],{"type":44,"value":431},"Reactive queries with loading\u002Ferror\u002Fmeta\u002Fpagination semantics",{"type":39,"tag":77,"props":433,"children":434},{},[435,444],{"type":39,"tag":99,"props":436,"children":437},{},[438],{"type":39,"tag":53,"props":439,"children":441},{"className":440},[],[442],{"type":44,"value":443},"realtimeReconnectEventHook",{"type":39,"tag":99,"props":445,"children":446},{},[447,449,454],{"type":44,"value":448},"Shared reconnect signal used by realtime transports; ",{"type":39,"tag":53,"props":450,"children":452},{"className":451},[],[453],{"type":44,"value":426},{"type":44,"value":455}," refreshes when it fires",{"type":39,"tag":77,"props":457,"children":458},{},[459,468],{"type":39,"tag":99,"props":460,"children":461},{},[462],{"type":39,"tag":53,"props":463,"children":465},{"className":464},[],[466],{"type":44,"value":467},"useQueryTracking",{"type":39,"tag":99,"props":469,"children":470},{},[471],{"type":44,"value":472},"Tracks query membership and filters dirty cached items in reactive flows",{"type":39,"tag":77,"props":474,"children":475},{},[476,499],{"type":39,"tag":99,"props":477,"children":478},{},[479,485,486,492,493],{"type":39,"tag":53,"props":480,"children":482},{"className":481},[],[483],{"type":44,"value":484},"createForm",{"type":44,"value":371},{"type":39,"tag":53,"props":487,"children":489},{"className":488},[],[490],{"type":44,"value":491},"updateForm",{"type":44,"value":371},{"type":39,"tag":53,"props":494,"children":496},{"className":495},[],[497],{"type":44,"value":498},"createFormObject",{"type":39,"tag":99,"props":500,"children":501},{},[502],{"type":44,"value":503},"Mutation and validation workflow with submit\u002Freset\u002Fchange tracking",{"type":39,"tag":77,"props":505,"children":506},{},[507,516],{"type":39,"tag":99,"props":508,"children":509},{},[510],{"type":39,"tag":53,"props":511,"children":513},{"className":512},[],[514],{"type":44,"value":515},"definePlugin({ ... })",{"type":39,"tag":99,"props":517,"children":518},{},[519],{"type":44,"value":520},"Extends fetch\u002Fcache\u002Fmutation\u002Fsubscribe\u002Fsync behavior via hooks",{"type":39,"tag":77,"props":522,"children":523},{},[524,533],{"type":39,"tag":99,"props":525,"children":526},{},[527],{"type":39,"tag":53,"props":528,"children":530},{"className":529},[],[531],{"type":44,"value":532},"defineModule(name, cb)",{"type":39,"tag":99,"props":534,"children":535},{},[536],{"type":44,"value":537},"Creates store-scoped reusable logic with per-store caching",{"type":39,"tag":77,"props":539,"children":540},{},[541,552],{"type":39,"tag":99,"props":542,"children":543},{},[544,550],{"type":39,"tag":53,"props":545,"children":547},{"className":546},[],[548],{"type":44,"value":549},"@rstore\u002Fcore",{"type":44,"value":551}," primitives",{"type":39,"tag":99,"props":553,"children":554},{},[555],{"type":44,"value":556},"Backing implementation for collection\u002Fschema, find\u002Fpeek\u002Fmutation\u002Fsubscription behavior",{"type":39,"tag":77,"props":558,"children":559},{},[560,571],{"type":39,"tag":99,"props":561,"children":562},{},[563,569],{"type":39,"tag":53,"props":564,"children":566},{"className":565},[],[567],{"type":44,"value":568},"@rstore\u002Fshared",{"type":44,"value":570}," types + hooks",{"type":39,"tag":99,"props":572,"children":573},{},[574],{"type":44,"value":575},"Cross-package contracts for options, meta, payloads, and utilities",{"type":39,"tag":62,"props":577,"children":579},{"id":578},"quick-start",[580],{"type":44,"value":581},"Quick start",{"type":39,"tag":583,"props":584,"children":589},"pre",{"className":585,"code":586,"language":587,"meta":588,"style":588},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createStore, RstorePlugin, withItemType } from '@rstore\u002Fvue'\n\nexport const todos = withItemType\u003CTodo>().defineCollection({\n  name: 'todos',\n})\n\nconst store = await createStore({\n  schema: [todos],\n  plugins: [],\n})\n\napp.use(RstorePlugin, { store })\n","ts","",[590],{"type":39,"tag":53,"props":591,"children":592},{"__ignoreMap":588},[593,661,671,742,776,790,798,833,855,877,889,897],{"type":39,"tag":594,"props":595,"children":598},"span",{"class":596,"line":597},"line",1,[599,605,611,617,622,627,631,636,641,646,651,656],{"type":39,"tag":594,"props":600,"children":602},{"style":601},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[603],{"type":44,"value":604},"import",{"type":39,"tag":594,"props":606,"children":608},{"style":607},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[609],{"type":44,"value":610}," {",{"type":39,"tag":594,"props":612,"children":614},{"style":613},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[615],{"type":44,"value":616}," createStore",{"type":39,"tag":594,"props":618,"children":619},{"style":607},[620],{"type":44,"value":621},",",{"type":39,"tag":594,"props":623,"children":624},{"style":613},[625],{"type":44,"value":626}," RstorePlugin",{"type":39,"tag":594,"props":628,"children":629},{"style":607},[630],{"type":44,"value":621},{"type":39,"tag":594,"props":632,"children":633},{"style":613},[634],{"type":44,"value":635}," withItemType",{"type":39,"tag":594,"props":637,"children":638},{"style":607},[639],{"type":44,"value":640}," }",{"type":39,"tag":594,"props":642,"children":643},{"style":601},[644],{"type":44,"value":645}," from",{"type":39,"tag":594,"props":647,"children":648},{"style":607},[649],{"type":44,"value":650}," '",{"type":39,"tag":594,"props":652,"children":654},{"style":653},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[655],{"type":44,"value":58},{"type":39,"tag":594,"props":657,"children":658},{"style":607},[659],{"type":44,"value":660},"'\n",{"type":39,"tag":594,"props":662,"children":664},{"class":596,"line":663},2,[665],{"type":39,"tag":594,"props":666,"children":668},{"emptyLinePlaceholder":667},true,[669],{"type":44,"value":670},"\n",{"type":39,"tag":594,"props":672,"children":674},{"class":596,"line":673},3,[675,680,686,691,696,701,706,712,717,722,727,732,737],{"type":39,"tag":594,"props":676,"children":677},{"style":601},[678],{"type":44,"value":679},"export",{"type":39,"tag":594,"props":681,"children":683},{"style":682},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[684],{"type":44,"value":685}," const",{"type":39,"tag":594,"props":687,"children":688},{"style":613},[689],{"type":44,"value":690}," todos ",{"type":39,"tag":594,"props":692,"children":693},{"style":607},[694],{"type":44,"value":695},"=",{"type":39,"tag":594,"props":697,"children":699},{"style":698},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[700],{"type":44,"value":635},{"type":39,"tag":594,"props":702,"children":703},{"style":607},[704],{"type":44,"value":705},"\u003C",{"type":39,"tag":594,"props":707,"children":709},{"style":708},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[710],{"type":44,"value":711},"Todo",{"type":39,"tag":594,"props":713,"children":714},{"style":607},[715],{"type":44,"value":716},">",{"type":39,"tag":594,"props":718,"children":719},{"style":613},[720],{"type":44,"value":721},"()",{"type":39,"tag":594,"props":723,"children":724},{"style":607},[725],{"type":44,"value":726},".",{"type":39,"tag":594,"props":728,"children":729},{"style":698},[730],{"type":44,"value":731},"defineCollection",{"type":39,"tag":594,"props":733,"children":734},{"style":613},[735],{"type":44,"value":736},"(",{"type":39,"tag":594,"props":738,"children":739},{"style":607},[740],{"type":44,"value":741},"{\n",{"type":39,"tag":594,"props":743,"children":745},{"class":596,"line":744},4,[746,752,757,761,766,771],{"type":39,"tag":594,"props":747,"children":749},{"style":748},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[750],{"type":44,"value":751},"  name",{"type":39,"tag":594,"props":753,"children":754},{"style":607},[755],{"type":44,"value":756},":",{"type":39,"tag":594,"props":758,"children":759},{"style":607},[760],{"type":44,"value":650},{"type":39,"tag":594,"props":762,"children":763},{"style":653},[764],{"type":44,"value":765},"todos",{"type":39,"tag":594,"props":767,"children":768},{"style":607},[769],{"type":44,"value":770},"'",{"type":39,"tag":594,"props":772,"children":773},{"style":607},[774],{"type":44,"value":775},",\n",{"type":39,"tag":594,"props":777,"children":779},{"class":596,"line":778},5,[780,785],{"type":39,"tag":594,"props":781,"children":782},{"style":607},[783],{"type":44,"value":784},"}",{"type":39,"tag":594,"props":786,"children":787},{"style":613},[788],{"type":44,"value":789},")\n",{"type":39,"tag":594,"props":791,"children":793},{"class":596,"line":792},6,[794],{"type":39,"tag":594,"props":795,"children":796},{"emptyLinePlaceholder":667},[797],{"type":44,"value":670},{"type":39,"tag":594,"props":799,"children":801},{"class":596,"line":800},7,[802,807,812,816,821,825,829],{"type":39,"tag":594,"props":803,"children":804},{"style":682},[805],{"type":44,"value":806},"const",{"type":39,"tag":594,"props":808,"children":809},{"style":613},[810],{"type":44,"value":811}," store ",{"type":39,"tag":594,"props":813,"children":814},{"style":607},[815],{"type":44,"value":695},{"type":39,"tag":594,"props":817,"children":818},{"style":601},[819],{"type":44,"value":820}," await",{"type":39,"tag":594,"props":822,"children":823},{"style":698},[824],{"type":44,"value":616},{"type":39,"tag":594,"props":826,"children":827},{"style":613},[828],{"type":44,"value":736},{"type":39,"tag":594,"props":830,"children":831},{"style":607},[832],{"type":44,"value":741},{"type":39,"tag":594,"props":834,"children":836},{"class":596,"line":835},8,[837,842,846,851],{"type":39,"tag":594,"props":838,"children":839},{"style":748},[840],{"type":44,"value":841},"  schema",{"type":39,"tag":594,"props":843,"children":844},{"style":607},[845],{"type":44,"value":756},{"type":39,"tag":594,"props":847,"children":848},{"style":613},[849],{"type":44,"value":850}," [todos]",{"type":39,"tag":594,"props":852,"children":853},{"style":607},[854],{"type":44,"value":775},{"type":39,"tag":594,"props":856,"children":858},{"class":596,"line":857},9,[859,864,868,873],{"type":39,"tag":594,"props":860,"children":861},{"style":748},[862],{"type":44,"value":863},"  plugins",{"type":39,"tag":594,"props":865,"children":866},{"style":607},[867],{"type":44,"value":756},{"type":39,"tag":594,"props":869,"children":870},{"style":613},[871],{"type":44,"value":872}," []",{"type":39,"tag":594,"props":874,"children":875},{"style":607},[876],{"type":44,"value":775},{"type":39,"tag":594,"props":878,"children":880},{"class":596,"line":879},10,[881,885],{"type":39,"tag":594,"props":882,"children":883},{"style":607},[884],{"type":44,"value":784},{"type":39,"tag":594,"props":886,"children":887},{"style":613},[888],{"type":44,"value":789},{"type":39,"tag":594,"props":890,"children":892},{"class":596,"line":891},11,[893],{"type":39,"tag":594,"props":894,"children":895},{"emptyLinePlaceholder":667},[896],{"type":44,"value":670},{"type":39,"tag":594,"props":898,"children":900},{"class":596,"line":899},12,[901,906,910,915,920,924,928,932,936],{"type":39,"tag":594,"props":902,"children":903},{"style":613},[904],{"type":44,"value":905},"app",{"type":39,"tag":594,"props":907,"children":908},{"style":607},[909],{"type":44,"value":726},{"type":39,"tag":594,"props":911,"children":912},{"style":698},[913],{"type":44,"value":914},"use",{"type":39,"tag":594,"props":916,"children":917},{"style":613},[918],{"type":44,"value":919},"(RstorePlugin",{"type":39,"tag":594,"props":921,"children":922},{"style":607},[923],{"type":44,"value":621},{"type":39,"tag":594,"props":925,"children":926},{"style":607},[927],{"type":44,"value":610},{"type":39,"tag":594,"props":929,"children":930},{"style":613},[931],{"type":44,"value":811},{"type":39,"tag":594,"props":933,"children":934},{"style":607},[935],{"type":44,"value":784},{"type":39,"tag":594,"props":937,"children":938},{"style":613},[939],{"type":44,"value":789},{"type":39,"tag":62,"props":941,"children":943},{"id":942},"task-workflow",[944],{"type":44,"value":945},"Task workflow",{"type":39,"tag":947,"props":948,"children":949},"ol",{},[950,956,968,988,1013,1039,1052],{"type":39,"tag":951,"props":952,"children":953},"li",{},[954],{"type":44,"value":955},"Define collections and relations first.",{"type":39,"tag":951,"props":957,"children":958},{},[959,961,967],{"type":44,"value":960},"Create a store with ",{"type":39,"tag":53,"props":962,"children":964},{"className":963},[],[965],{"type":44,"value":966},"createStore({ schema, plugins })",{"type":44,"value":726},{"type":39,"tag":951,"props":969,"children":970},{},[971,973,978,980,986],{"type":44,"value":972},"Install ",{"type":39,"tag":53,"props":974,"children":976},{"className":975},[],[977],{"type":44,"value":369},{"type":44,"value":979}," in app code or set ",{"type":39,"tag":53,"props":981,"children":983},{"className":982},[],[984],{"type":44,"value":985},"setActiveStore(store)",{"type":44,"value":987}," in tests\u002Fnon-injection contexts.",{"type":39,"tag":951,"props":989,"children":990},{},[991,993,999,1000,1005,1006,1011],{"type":44,"value":992},"Use collection APIs (",{"type":39,"tag":53,"props":994,"children":996},{"className":995},[],[997],{"type":44,"value":998},"find*",{"type":44,"value":167},{"type":39,"tag":53,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":44,"value":419},{"type":44,"value":167},{"type":39,"tag":53,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":44,"value":426},{"type":44,"value":1012},") instead of custom fetch refs.",{"type":39,"tag":951,"props":1014,"children":1015},{},[1016,1018,1023,1025,1030,1032,1037],{"type":44,"value":1017},"Use ",{"type":39,"tag":53,"props":1019,"children":1021},{"className":1020},[],[1022],{"type":44,"value":484},{"type":44,"value":1024},"\u002F",{"type":39,"tag":53,"props":1026,"children":1028},{"className":1027},[],[1029],{"type":44,"value":491},{"type":44,"value":1031}," for mutation UIs and ",{"type":39,"tag":53,"props":1033,"children":1035},{"className":1034},[],[1036],{"type":44,"value":498},{"type":44,"value":1038}," for custom flows.",{"type":39,"tag":951,"props":1040,"children":1041},{},[1042,1044,1050],{"type":44,"value":1043},"Move transport\u002Fdata-source behavior into ",{"type":39,"tag":53,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":44,"value":1049},"definePlugin",{"type":44,"value":1051}," hooks, not component-level code.",{"type":39,"tag":951,"props":1053,"children":1054},{},[1055],{"type":44,"value":1056},"When behavior is unclear, check docs and skill references first; if docs are incomplete or wrong, fix docs before updating this skill.",{"type":39,"tag":62,"props":1058,"children":1060},{"id":1059},"query-and-form-guidance",[1061],{"type":44,"value":1062},"Query and form guidance",{"type":39,"tag":69,"props":1064,"children":1065},{},[1066,1082],{"type":39,"tag":73,"props":1067,"children":1068},{},[1069],{"type":39,"tag":77,"props":1070,"children":1071},{},[1072,1077],{"type":39,"tag":81,"props":1073,"children":1074},{},[1075],{"type":44,"value":1076},"API",{"type":39,"tag":81,"props":1078,"children":1079},{},[1080],{"type":44,"value":1081},"Use it for",{"type":39,"tag":92,"props":1083,"children":1084},{},[1085,1109,1133,1178,1194,1224,1253],{"type":39,"tag":77,"props":1086,"children":1087},{},[1088,1104],{"type":39,"tag":99,"props":1089,"children":1090},{},[1091,1097,1098],{"type":39,"tag":53,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":44,"value":1096},"peekFirst",{"type":44,"value":371},{"type":39,"tag":53,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":44,"value":1103},"peekMany",{"type":39,"tag":99,"props":1105,"children":1106},{},[1107],{"type":44,"value":1108},"Cache-only reads for computed\u002Freactive derivations",{"type":39,"tag":77,"props":1110,"children":1111},{},[1112,1128],{"type":39,"tag":99,"props":1113,"children":1114},{},[1115,1121,1122],{"type":39,"tag":53,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":44,"value":1120},"findFirst",{"type":44,"value":371},{"type":39,"tag":53,"props":1123,"children":1125},{"className":1124},[],[1126],{"type":44,"value":1127},"findMany",{"type":39,"tag":99,"props":1129,"children":1130},{},[1131],{"type":44,"value":1132},"One-shot async reads without long-lived query refs",{"type":39,"tag":77,"props":1134,"children":1135},{},[1136,1144],{"type":39,"tag":99,"props":1137,"children":1138},{},[1139],{"type":39,"tag":53,"props":1140,"children":1142},{"className":1141},[],[1143],{"type":44,"value":419},{"type":39,"tag":99,"props":1145,"children":1146},{},[1147,1149,1155,1156,1162,1163,1169,1170,1176],{"type":44,"value":1148},"Reactive ref-based queries (",{"type":39,"tag":53,"props":1150,"children":1152},{"className":1151},[],[1153],{"type":44,"value":1154},"data",{"type":44,"value":167},{"type":39,"tag":53,"props":1157,"children":1159},{"className":1158},[],[1160],{"type":44,"value":1161},"loading",{"type":44,"value":167},{"type":39,"tag":53,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":44,"value":1168},"error",{"type":44,"value":167},{"type":39,"tag":53,"props":1171,"children":1173},{"className":1172},[],[1174],{"type":44,"value":1175},"refresh",{"type":44,"value":1177},")",{"type":39,"tag":77,"props":1179,"children":1180},{},[1181,1189],{"type":39,"tag":99,"props":1182,"children":1183},{},[1184],{"type":39,"tag":53,"props":1185,"children":1187},{"className":1186},[],[1188],{"type":44,"value":426},{"type":39,"tag":99,"props":1190,"children":1191},{},[1192],{"type":44,"value":1193},"Query + subscription lifecycle for realtime adapters",{"type":39,"tag":77,"props":1195,"children":1196},{},[1197,1206],{"type":39,"tag":99,"props":1198,"children":1199},{},[1200],{"type":39,"tag":53,"props":1201,"children":1203},{"className":1202},[],[1204],{"type":44,"value":1205},"fetchMore",{"type":39,"tag":99,"props":1207,"children":1208},{},[1209,1211,1217,1219],{"type":44,"value":1210},"Adds page results to sparse ",{"type":39,"tag":53,"props":1212,"children":1214},{"className":1213},[],[1215],{"type":44,"value":1216},"pages",{"type":44,"value":1218}," and merged ",{"type":39,"tag":53,"props":1220,"children":1222},{"className":1221},[],[1223],{"type":44,"value":1154},{"type":39,"tag":77,"props":1225,"children":1226},{},[1227,1241],{"type":39,"tag":99,"props":1228,"children":1229},{},[1230,1235,1236],{"type":39,"tag":53,"props":1231,"children":1233},{"className":1232},[],[1234],{"type":44,"value":484},{"type":44,"value":371},{"type":39,"tag":53,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":44,"value":491},{"type":39,"tag":99,"props":1242,"children":1243},{},[1244,1246,1251],{"type":44,"value":1245},"Preferred mutation UX; ",{"type":39,"tag":53,"props":1247,"children":1249},{"className":1248},[],[1250],{"type":44,"value":491},{"type":44,"value":1252}," can prefetch item and send changed fields only",{"type":39,"tag":77,"props":1254,"children":1255},{},[1256,1264],{"type":39,"tag":99,"props":1257,"children":1258},{},[1259],{"type":39,"tag":53,"props":1260,"children":1262},{"className":1261},[],[1263],{"type":44,"value":498},{"type":39,"tag":99,"props":1265,"children":1266},{},[1267],{"type":44,"value":1268},"Lower-level custom form builder with schema validation and hooks",{"type":39,"tag":47,"props":1270,"children":1271},{},[1272],{"type":44,"value":1273},"Notes:",{"type":39,"tag":1275,"props":1276,"children":1277},"ul",{},[1278,1324,1337,1363],{"type":39,"tag":951,"props":1279,"children":1280},{},[1281,1286,1288,1294,1295,1301,1302,1308,1309,1315,1317,1323],{"type":39,"tag":53,"props":1282,"children":1284},{"className":1283},[],[1285],{"type":44,"value":498},{"type":44,"value":1287}," supports ",{"type":39,"tag":53,"props":1289,"children":1291},{"className":1290},[],[1292],{"type":44,"value":1293},"validateOnSubmit",{"type":44,"value":167},{"type":39,"tag":53,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":44,"value":1300},"transformData",{"type":44,"value":167},{"type":39,"tag":53,"props":1303,"children":1305},{"className":1304},[],[1306],{"type":44,"value":1307},"resetOnSuccess",{"type":44,"value":167},{"type":39,"tag":53,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":44,"value":1314},"$changedProps",{"type":44,"value":1316},", and ",{"type":39,"tag":53,"props":1318,"children":1320},{"className":1319},[],[1321],{"type":44,"value":1322},"$valid",{"type":44,"value":726},{"type":39,"tag":951,"props":1325,"children":1326},{},[1327,1329,1335],{"type":44,"value":1328},"Form objects expose ",{"type":39,"tag":53,"props":1330,"children":1332},{"className":1331},[],[1333],{"type":44,"value":1334},"$opLog",{"type":44,"value":1336}," for undo\u002Fredo and optimized form operations.",{"type":39,"tag":951,"props":1338,"children":1339},{},[1340,1341,1347,1348,1354,1355,1361],{"type":44,"value":1017},{"type":39,"tag":53,"props":1342,"children":1344},{"className":1343},[],[1345],{"type":44,"value":1346},"$rebase",{"type":44,"value":167},{"type":39,"tag":53,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":44,"value":1353},"$conflicts",{"type":44,"value":1316},{"type":39,"tag":53,"props":1356,"children":1358},{"className":1357},[],[1359],{"type":44,"value":1360},"$resolveConflict",{"type":44,"value":1362}," for collaborative editing flows.",{"type":39,"tag":951,"props":1364,"children":1365},{},[1366,1372,1373,1379,1381,1387,1388,1394],{"type":39,"tag":53,"props":1367,"children":1369},{"className":1368},[],[1370],{"type":44,"value":1371},"$save()",{"type":44,"value":396},{"type":39,"tag":53,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":44,"value":1378},"$onSaved()",{"type":44,"value":1380}," are deprecated compatibility aliases. Prefer ",{"type":39,"tag":53,"props":1382,"children":1384},{"className":1383},[],[1385],{"type":44,"value":1386},"$submit()",{"type":44,"value":396},{"type":39,"tag":53,"props":1389,"children":1391},{"className":1390},[],[1392],{"type":44,"value":1393},"$onSuccess()",{"type":44,"value":726},{"type":39,"tag":62,"props":1396,"children":1398},{"id":1397},"modules-and-plugins",[1399],{"type":44,"value":1400},"Modules and plugins",{"type":39,"tag":1275,"props":1402,"children":1403},{},[1404,1421,1432,1443,1460,1471],{"type":39,"tag":951,"props":1405,"children":1406},{},[1407,1412,1414,1420],{"type":39,"tag":53,"props":1408,"children":1410},{"className":1409},[],[1411],{"type":44,"value":532},{"type":44,"value":1413}," caches module instances in ",{"type":39,"tag":53,"props":1415,"children":1417},{"className":1416},[],[1418],{"type":44,"value":1419},"store.$modulesCache",{"type":44,"value":726},{"type":39,"tag":951,"props":1422,"children":1423},{},[1424,1430],{"type":39,"tag":53,"props":1425,"children":1427},{"className":1426},[],[1428],{"type":44,"value":1429},"defineModule",{"type":44,"value":1431}," requires injection context or an explicit\u002Factive store.",{"type":39,"tag":951,"props":1433,"children":1434},{},[1435,1441],{"type":39,"tag":53,"props":1436,"children":1438},{"className":1437},[],[1439],{"type":44,"value":1440},"definePlugin({ name, category, scopeId?, setup })",{"type":44,"value":1442}," is the extension point for fetch\u002Fcache\u002Fmutation\u002Fsubscription\u002Fsync hooks.",{"type":39,"tag":951,"props":1444,"children":1445},{},[1446,1451,1453,1458],{"type":39,"tag":53,"props":1447,"children":1449},{"className":1448},[],[1450],{"type":44,"value":443},{"type":44,"value":1452}," should be triggered by realtime plugins only after transport recovery; ",{"type":39,"tag":53,"props":1454,"children":1456},{"className":1455},[],[1457],{"type":44,"value":426},{"type":44,"value":1459}," refreshes automatically when it fires.",{"type":39,"tag":951,"props":1461,"children":1462},{},[1463,1469],{"type":39,"tag":53,"props":1464,"children":1466},{"className":1465},[],[1467],{"type":44,"value":1468},"addCollectionDefaults(...)",{"type":44,"value":1470}," is the right place for shared field parsing\u002Fdefault behavior.",{"type":39,"tag":951,"props":1472,"children":1473},{},[1474],{"type":44,"value":1475},"Keep plugin behavior keyed by store\u002Fscope instead of global mutable state.",{"type":39,"tag":62,"props":1477,"children":1479},{"id":1478},"guardrails",[1480],{"type":44,"value":1481},"Guardrails",{"type":39,"tag":947,"props":1483,"children":1484},{},[1485,1498,1508,1528,1539,1551],{"type":39,"tag":951,"props":1486,"children":1487},{},[1488,1490,1496],{"type":44,"value":1489},"Calling ",{"type":39,"tag":53,"props":1491,"children":1493},{"className":1492},[],[1494],{"type":44,"value":1495},"useStore()",{"type":44,"value":1497}," without installation\u002Factive store throws.",{"type":39,"tag":951,"props":1499,"children":1500},{},[1501,1506],{"type":39,"tag":53,"props":1502,"children":1504},{"className":1503},[],[1505],{"type":44,"value":1429},{"type":44,"value":1507}," outside setup without an available store throws.",{"type":39,"tag":951,"props":1509,"children":1510},{},[1511,1513,1519,1520,1526],{"type":44,"value":1512},"Query ",{"type":39,"tag":53,"props":1514,"children":1516},{"className":1515},[],[1517],{"type":44,"value":1518},"no-cache",{"type":44,"value":396},{"type":39,"tag":53,"props":1521,"children":1523},{"className":1522},[],[1524],{"type":44,"value":1525},"cache-*",{"type":44,"value":1527}," behaviors differ materially; align changes with the documented query fetch-policy behavior.",{"type":39,"tag":951,"props":1529,"children":1530},{},[1531,1537],{"type":39,"tag":53,"props":1532,"children":1534},{"className":1533},[],[1535],{"type":44,"value":1536},"experimentalGarbageCollection",{"type":44,"value":1538}," affects query tracking behavior; use only with explicit coverage.",{"type":39,"tag":951,"props":1540,"children":1541},{},[1542,1544,1549],{"type":44,"value":1543},"Dynamic ",{"type":39,"tag":53,"props":1545,"children":1547},{"className":1546},[],[1548],{"type":44,"value":402},{"type":44,"value":1550}," calls throw for unknown collection names.",{"type":39,"tag":951,"props":1552,"children":1553},{},[1554],{"type":44,"value":1555},"Avoid duplicating entity state outside store cache unless intentionally divergent.",{"type":39,"tag":62,"props":1557,"children":1559},{"id":1558},"references",[1560],{"type":44,"value":1561},"References",{"type":39,"tag":69,"props":1563,"children":1564},{},[1565,1586],{"type":39,"tag":73,"props":1566,"children":1567},{},[1568],{"type":39,"tag":77,"props":1569,"children":1570},{},[1571,1576,1581],{"type":39,"tag":81,"props":1572,"children":1573},{},[1574],{"type":44,"value":1575},"Topic",{"type":39,"tag":81,"props":1577,"children":1578},{},[1579],{"type":44,"value":1580},"Description",{"type":39,"tag":81,"props":1582,"children":1583},{},[1584],{"type":44,"value":1585},"Reference",{"type":39,"tag":92,"props":1587,"children":1588},{},[1589,1610,1632,1653,1675,1697,1719,1741,1763,1784,1806,1827,1848,1869,1890,1912,1934,1955,1977,1998,2019,2040,2061,2082,2103,2124,2146,2168,2190,2211,2233,2255,2276,2298,2320,2342],{"type":39,"tag":77,"props":1590,"children":1591},{},[1592,1597,1602],{"type":39,"tag":99,"props":1593,"children":1594},{},[1595],{"type":44,"value":1596},"API index",{"type":39,"tag":99,"props":1598,"children":1599},{},[1600],{"type":44,"value":1601},"Full map of all API-element references",{"type":39,"tag":99,"props":1603,"children":1604},{},[1605],{"type":39,"tag":108,"props":1606,"children":1607},{"href":259},[1608],{"type":44,"value":1609},"api-index",{"type":39,"tag":77,"props":1611,"children":1612},{},[1613,1618,1623],{"type":39,"tag":99,"props":1614,"children":1615},{},[1616],{"type":44,"value":1617},"withItemType",{"type":39,"tag":99,"props":1619,"children":1620},{},[1621],{"type":44,"value":1622},"Typed collection builder entry point",{"type":39,"tag":99,"props":1624,"children":1625},{},[1626],{"type":39,"tag":108,"props":1627,"children":1629},{"href":1628},".\u002Freferences\u002Fapi-with-item-type.md",[1630],{"type":44,"value":1631},"api-with-item-type",{"type":39,"tag":77,"props":1633,"children":1634},{},[1635,1639,1644],{"type":39,"tag":99,"props":1636,"children":1637},{},[1638],{"type":44,"value":731},{"type":39,"tag":99,"props":1640,"children":1641},{},[1642],{"type":44,"value":1643},"Untyped collection declaration helper",{"type":39,"tag":99,"props":1645,"children":1646},{},[1647],{"type":39,"tag":108,"props":1648,"children":1650},{"href":1649},".\u002Freferences\u002Fapi-define-collection.md",[1651],{"type":44,"value":1652},"api-define-collection",{"type":39,"tag":77,"props":1654,"children":1655},{},[1656,1661,1666],{"type":39,"tag":99,"props":1657,"children":1658},{},[1659],{"type":44,"value":1660},"defineRelations",{"type":39,"tag":99,"props":1662,"children":1663},{},[1664],{"type":44,"value":1665},"Relation declaration helper",{"type":39,"tag":99,"props":1667,"children":1668},{},[1669],{"type":39,"tag":108,"props":1670,"children":1672},{"href":1671},".\u002Freferences\u002Fapi-define-relations.md",[1673],{"type":44,"value":1674},"api-define-relations",{"type":39,"tag":77,"props":1676,"children":1677},{},[1678,1683,1688],{"type":39,"tag":99,"props":1679,"children":1680},{},[1681],{"type":44,"value":1682},"addCollectionRelations",{"type":39,"tag":99,"props":1684,"children":1685},{},[1686],{"type":44,"value":1687},"Add relation blocks after store creation",{"type":39,"tag":99,"props":1689,"children":1690},{},[1691],{"type":39,"tag":108,"props":1692,"children":1694},{"href":1693},".\u002Freferences\u002Fapi-add-collection-relations.md",[1695],{"type":44,"value":1696},"api-add-collection-relations",{"type":39,"tag":77,"props":1698,"children":1699},{},[1700,1705,1710],{"type":39,"tag":99,"props":1701,"children":1702},{},[1703],{"type":44,"value":1704},"createStore",{"type":39,"tag":99,"props":1706,"children":1707},{},[1708],{"type":44,"value":1709},"Create store instance and lifecycle",{"type":39,"tag":99,"props":1711,"children":1712},{},[1713],{"type":39,"tag":108,"props":1714,"children":1716},{"href":1715},".\u002Freferences\u002Fapi-create-store.md",[1717],{"type":44,"value":1718},"api-create-store",{"type":39,"tag":77,"props":1720,"children":1721},{},[1722,1727,1732],{"type":39,"tag":99,"props":1723,"children":1724},{},[1725],{"type":44,"value":1726},"addCollection",{"type":39,"tag":99,"props":1728,"children":1729},{},[1730],{"type":44,"value":1731},"Register a collection dynamically",{"type":39,"tag":99,"props":1733,"children":1734},{},[1735],{"type":39,"tag":108,"props":1736,"children":1738},{"href":1737},".\u002Freferences\u002Fapi-add-collection.md",[1739],{"type":44,"value":1740},"api-add-collection",{"type":39,"tag":77,"props":1742,"children":1743},{},[1744,1749,1754],{"type":39,"tag":99,"props":1745,"children":1746},{},[1747],{"type":44,"value":1748},"removeCollection",{"type":39,"tag":99,"props":1750,"children":1751},{},[1752],{"type":44,"value":1753},"Unregister a collection dynamically",{"type":39,"tag":99,"props":1755,"children":1756},{},[1757],{"type":39,"tag":108,"props":1758,"children":1760},{"href":1759},".\u002Freferences\u002Fapi-remove-collection.md",[1761],{"type":44,"value":1762},"api-remove-collection",{"type":39,"tag":77,"props":1764,"children":1765},{},[1766,1770,1775],{"type":39,"tag":99,"props":1767,"children":1768},{},[1769],{"type":44,"value":369},{"type":39,"tag":99,"props":1771,"children":1772},{},[1773],{"type":44,"value":1774},"Vue app plugin installation",{"type":39,"tag":99,"props":1776,"children":1777},{},[1778],{"type":39,"tag":108,"props":1779,"children":1781},{"href":1780},".\u002Freferences\u002Fapi-rstore-plugin.md",[1782],{"type":44,"value":1783},"api-rstore-plugin",{"type":39,"tag":77,"props":1785,"children":1786},{},[1787,1792,1797],{"type":39,"tag":99,"props":1788,"children":1789},{},[1790],{"type":44,"value":1791},"useStore",{"type":39,"tag":99,"props":1793,"children":1794},{},[1795],{"type":44,"value":1796},"Injected\u002Factive store access",{"type":39,"tag":99,"props":1798,"children":1799},{},[1800],{"type":39,"tag":108,"props":1801,"children":1803},{"href":1802},".\u002Freferences\u002Fapi-use-store.md",[1804],{"type":44,"value":1805},"api-use-store",{"type":39,"tag":77,"props":1807,"children":1808},{},[1809,1813,1818],{"type":39,"tag":99,"props":1810,"children":1811},{},[1812],{"type":44,"value":377},{"type":39,"tag":99,"props":1814,"children":1815},{},[1816],{"type":44,"value":1817},"Explicit active store binding",{"type":39,"tag":99,"props":1819,"children":1820},{},[1821],{"type":39,"tag":108,"props":1822,"children":1824},{"href":1823},".\u002Freferences\u002Fapi-set-active-store.md",[1825],{"type":44,"value":1826},"api-set-active-store",{"type":39,"tag":77,"props":1828,"children":1829},{},[1830,1834,1839],{"type":39,"tag":99,"props":1831,"children":1832},{},[1833],{"type":44,"value":1049},{"type":39,"tag":99,"props":1835,"children":1836},{},[1837],{"type":44,"value":1838},"Store plugin authoring API",{"type":39,"tag":99,"props":1840,"children":1841},{},[1842],{"type":39,"tag":108,"props":1843,"children":1845},{"href":1844},".\u002Freferences\u002Fapi-define-plugin.md",[1846],{"type":44,"value":1847},"api-define-plugin",{"type":39,"tag":77,"props":1849,"children":1850},{},[1851,1855,1860],{"type":39,"tag":99,"props":1852,"children":1853},{},[1854],{"type":44,"value":1429},{"type":39,"tag":99,"props":1856,"children":1857},{},[1858],{"type":44,"value":1859},"Store-scoped module authoring API",{"type":39,"tag":99,"props":1861,"children":1862},{},[1863],{"type":39,"tag":108,"props":1864,"children":1866},{"href":1865},".\u002Freferences\u002Fapi-define-module.md",[1867],{"type":44,"value":1868},"api-define-module",{"type":39,"tag":77,"props":1870,"children":1871},{},[1872,1876,1881],{"type":39,"tag":99,"props":1873,"children":1874},{},[1875],{"type":44,"value":498},{"type":39,"tag":99,"props":1877,"children":1878},{},[1879],{"type":44,"value":1880},"Low-level form object API",{"type":39,"tag":99,"props":1882,"children":1883},{},[1884],{"type":39,"tag":108,"props":1885,"children":1887},{"href":1886},".\u002Freferences\u002Fapi-create-form-object.md",[1888],{"type":44,"value":1889},"api-create-form-object",{"type":39,"tag":77,"props":1891,"children":1892},{},[1893,1898,1903],{"type":39,"tag":99,"props":1894,"children":1895},{},[1896],{"type":44,"value":1897},"createFormObjectWithChangeDetection",{"type":39,"tag":99,"props":1899,"children":1900},{},[1901],{"type":44,"value":1902},"Deprecated alias for createFormObject",{"type":39,"tag":99,"props":1904,"children":1905},{},[1906],{"type":39,"tag":108,"props":1907,"children":1909},{"href":1908},".\u002Freferences\u002Fapi-create-form-object-with-change-detection.md",[1910],{"type":44,"value":1911},"api-create-form-object-with-change-detection",{"type":39,"tag":77,"props":1913,"children":1914},{},[1915,1920,1925],{"type":39,"tag":99,"props":1916,"children":1917},{},[1918],{"type":44,"value":1919},"optimizeOpLog",{"type":39,"tag":99,"props":1921,"children":1922},{},[1923],{"type":44,"value":1924},"Utility to optimize form operation logs",{"type":39,"tag":99,"props":1926,"children":1927},{},[1928],{"type":39,"tag":108,"props":1929,"children":1931},{"href":1930},".\u002Freferences\u002Fapi-optimize-op-log.md",[1932],{"type":44,"value":1933},"api-optimize-op-log",{"type":39,"tag":77,"props":1935,"children":1936},{},[1937,1941,1946],{"type":39,"tag":99,"props":1938,"children":1939},{},[1940],{"type":44,"value":467},{"type":39,"tag":99,"props":1942,"children":1943},{},[1944],{"type":44,"value":1945},"Query membership\u002Fdirty-item tracking",{"type":39,"tag":99,"props":1947,"children":1948},{},[1949],{"type":39,"tag":108,"props":1950,"children":1952},{"href":1951},".\u002Freferences\u002Fapi-use-query-tracking.md",[1953],{"type":44,"value":1954},"api-use-query-tracking",{"type":39,"tag":77,"props":1956,"children":1957},{},[1958,1963,1968],{"type":39,"tag":99,"props":1959,"children":1960},{},[1961],{"type":44,"value":1962},"store.$wrapMutation",{"type":39,"tag":99,"props":1964,"children":1965},{},[1966],{"type":44,"value":1967},"Wrap custom mutations in store mutation lifecycle",{"type":39,"tag":99,"props":1969,"children":1970},{},[1971],{"type":39,"tag":108,"props":1972,"children":1974},{"href":1973},".\u002Freferences\u002Fapi-wrap-mutation.md",[1975],{"type":44,"value":1976},"api-wrap-mutation",{"type":39,"tag":77,"props":1978,"children":1979},{},[1980,1984,1989],{"type":39,"tag":99,"props":1981,"children":1982},{},[1983],{"type":44,"value":1096},{"type":39,"tag":99,"props":1985,"children":1986},{},[1987],{"type":44,"value":1988},"Cache-only first-item read",{"type":39,"tag":99,"props":1990,"children":1991},{},[1992],{"type":39,"tag":108,"props":1993,"children":1995},{"href":1994},".\u002Freferences\u002Fapi-peek-first.md",[1996],{"type":44,"value":1997},"api-peek-first",{"type":39,"tag":77,"props":1999,"children":2000},{},[2001,2005,2010],{"type":39,"tag":99,"props":2002,"children":2003},{},[2004],{"type":44,"value":1120},{"type":39,"tag":99,"props":2006,"children":2007},{},[2008],{"type":44,"value":2009},"Async first-item read",{"type":39,"tag":99,"props":2011,"children":2012},{},[2013],{"type":39,"tag":108,"props":2014,"children":2016},{"href":2015},".\u002Freferences\u002Fapi-find-first.md",[2017],{"type":44,"value":2018},"api-find-first",{"type":39,"tag":77,"props":2020,"children":2021},{},[2022,2026,2031],{"type":39,"tag":99,"props":2023,"children":2024},{},[2025],{"type":44,"value":1103},{"type":39,"tag":99,"props":2027,"children":2028},{},[2029],{"type":44,"value":2030},"Cache-only list read",{"type":39,"tag":99,"props":2032,"children":2033},{},[2034],{"type":39,"tag":108,"props":2035,"children":2037},{"href":2036},".\u002Freferences\u002Fapi-peek-many.md",[2038],{"type":44,"value":2039},"api-peek-many",{"type":39,"tag":77,"props":2041,"children":2042},{},[2043,2047,2052],{"type":39,"tag":99,"props":2044,"children":2045},{},[2046],{"type":44,"value":1127},{"type":39,"tag":99,"props":2048,"children":2049},{},[2050],{"type":44,"value":2051},"Async list read",{"type":39,"tag":99,"props":2053,"children":2054},{},[2055],{"type":39,"tag":108,"props":2056,"children":2058},{"href":2057},".\u002Freferences\u002Fapi-find-many.md",[2059],{"type":44,"value":2060},"api-find-many",{"type":39,"tag":77,"props":2062,"children":2063},{},[2064,2068,2073],{"type":39,"tag":99,"props":2065,"children":2066},{},[2067],{"type":44,"value":419},{"type":39,"tag":99,"props":2069,"children":2070},{},[2071],{"type":44,"value":2072},"Reactive query object API",{"type":39,"tag":99,"props":2074,"children":2075},{},[2076],{"type":39,"tag":108,"props":2077,"children":2079},{"href":2078},".\u002Freferences\u002Fapi-query.md",[2080],{"type":44,"value":2081},"api-query",{"type":39,"tag":77,"props":2083,"children":2084},{},[2085,2089,2094],{"type":39,"tag":99,"props":2086,"children":2087},{},[2088],{"type":44,"value":426},{"type":39,"tag":99,"props":2090,"children":2091},{},[2092],{"type":44,"value":2093},"Query + subscription lifecycle",{"type":39,"tag":99,"props":2095,"children":2096},{},[2097],{"type":39,"tag":108,"props":2098,"children":2100},{"href":2099},".\u002Freferences\u002Fapi-live-query.md",[2101],{"type":44,"value":2102},"api-live-query",{"type":39,"tag":77,"props":2104,"children":2105},{},[2106,2110,2115],{"type":39,"tag":99,"props":2107,"children":2108},{},[2109],{"type":44,"value":443},{"type":39,"tag":99,"props":2111,"children":2112},{},[2113],{"type":44,"value":2114},"Shared reconnect event hook for realtime transports",{"type":39,"tag":99,"props":2116,"children":2117},{},[2118],{"type":39,"tag":108,"props":2119,"children":2121},{"href":2120},".\u002Freferences\u002Fapi-realtime-reconnect-event-hook.md",[2122],{"type":44,"value":2123},"api-realtime-reconnect-event-hook",{"type":39,"tag":77,"props":2125,"children":2126},{},[2127,2132,2137],{"type":39,"tag":99,"props":2128,"children":2129},{},[2130],{"type":44,"value":2131},"subscribe",{"type":39,"tag":99,"props":2133,"children":2134},{},[2135],{"type":44,"value":2136},"Subscription API for updates",{"type":39,"tag":99,"props":2138,"children":2139},{},[2140],{"type":39,"tag":108,"props":2141,"children":2143},{"href":2142},".\u002Freferences\u002Fapi-subscribe.md",[2144],{"type":44,"value":2145},"api-subscribe",{"type":39,"tag":77,"props":2147,"children":2148},{},[2149,2154,2159],{"type":39,"tag":99,"props":2150,"children":2151},{},[2152],{"type":44,"value":2153},"create",{"type":39,"tag":99,"props":2155,"children":2156},{},[2157],{"type":44,"value":2158},"Single-item create mutation",{"type":39,"tag":99,"props":2160,"children":2161},{},[2162],{"type":39,"tag":108,"props":2163,"children":2165},{"href":2164},".\u002Freferences\u002Fapi-create.md",[2166],{"type":44,"value":2167},"api-create",{"type":39,"tag":77,"props":2169,"children":2170},{},[2171,2176,2181],{"type":39,"tag":99,"props":2172,"children":2173},{},[2174],{"type":44,"value":2175},"createMany",{"type":39,"tag":99,"props":2177,"children":2178},{},[2179],{"type":44,"value":2180},"Batch create mutation",{"type":39,"tag":99,"props":2182,"children":2183},{},[2184],{"type":39,"tag":108,"props":2185,"children":2187},{"href":2186},".\u002Freferences\u002Fapi-create-many.md",[2188],{"type":44,"value":2189},"api-create-many",{"type":39,"tag":77,"props":2191,"children":2192},{},[2193,2197,2202],{"type":39,"tag":99,"props":2194,"children":2195},{},[2196],{"type":44,"value":484},{"type":39,"tag":99,"props":2198,"children":2199},{},[2200],{"type":44,"value":2201},"Create-form mutation helper",{"type":39,"tag":99,"props":2203,"children":2204},{},[2205],{"type":39,"tag":108,"props":2206,"children":2208},{"href":2207},".\u002Freferences\u002Fapi-create-form.md",[2209],{"type":44,"value":2210},"api-create-form",{"type":39,"tag":77,"props":2212,"children":2213},{},[2214,2219,2224],{"type":39,"tag":99,"props":2215,"children":2216},{},[2217],{"type":44,"value":2218},"update",{"type":39,"tag":99,"props":2220,"children":2221},{},[2222],{"type":44,"value":2223},"Single-item update mutation",{"type":39,"tag":99,"props":2225,"children":2226},{},[2227],{"type":39,"tag":108,"props":2228,"children":2230},{"href":2229},".\u002Freferences\u002Fapi-update.md",[2231],{"type":44,"value":2232},"api-update",{"type":39,"tag":77,"props":2234,"children":2235},{},[2236,2241,2246],{"type":39,"tag":99,"props":2237,"children":2238},{},[2239],{"type":44,"value":2240},"updateMany",{"type":39,"tag":99,"props":2242,"children":2243},{},[2244],{"type":44,"value":2245},"Batch update mutation",{"type":39,"tag":99,"props":2247,"children":2248},{},[2249],{"type":39,"tag":108,"props":2250,"children":2252},{"href":2251},".\u002Freferences\u002Fapi-update-many.md",[2253],{"type":44,"value":2254},"api-update-many",{"type":39,"tag":77,"props":2256,"children":2257},{},[2258,2262,2267],{"type":39,"tag":99,"props":2259,"children":2260},{},[2261],{"type":44,"value":491},{"type":39,"tag":99,"props":2263,"children":2264},{},[2265],{"type":44,"value":2266},"Update-form mutation helper",{"type":39,"tag":99,"props":2268,"children":2269},{},[2270],{"type":39,"tag":108,"props":2271,"children":2273},{"href":2272},".\u002Freferences\u002Fapi-update-form.md",[2274],{"type":44,"value":2275},"api-update-form",{"type":39,"tag":77,"props":2277,"children":2278},{},[2279,2284,2289],{"type":39,"tag":99,"props":2280,"children":2281},{},[2282],{"type":44,"value":2283},"delete",{"type":39,"tag":99,"props":2285,"children":2286},{},[2287],{"type":44,"value":2288},"Single-item delete mutation",{"type":39,"tag":99,"props":2290,"children":2291},{},[2292],{"type":39,"tag":108,"props":2293,"children":2295},{"href":2294},".\u002Freferences\u002Fapi-delete.md",[2296],{"type":44,"value":2297},"api-delete",{"type":39,"tag":77,"props":2299,"children":2300},{},[2301,2306,2311],{"type":39,"tag":99,"props":2302,"children":2303},{},[2304],{"type":44,"value":2305},"deleteMany",{"type":39,"tag":99,"props":2307,"children":2308},{},[2309],{"type":44,"value":2310},"Batch delete mutation",{"type":39,"tag":99,"props":2312,"children":2313},{},[2314],{"type":39,"tag":108,"props":2315,"children":2317},{"href":2316},".\u002Freferences\u002Fapi-delete-many.md",[2318],{"type":44,"value":2319},"api-delete-many",{"type":39,"tag":77,"props":2321,"children":2322},{},[2323,2328,2333],{"type":39,"tag":99,"props":2324,"children":2325},{},[2326],{"type":44,"value":2327},"writeItem",{"type":39,"tag":99,"props":2329,"children":2330},{},[2331],{"type":44,"value":2332},"Write\u002Foverride item in cache",{"type":39,"tag":99,"props":2334,"children":2335},{},[2336],{"type":39,"tag":108,"props":2337,"children":2339},{"href":2338},".\u002Freferences\u002Fapi-write-item.md",[2340],{"type":44,"value":2341},"api-write-item",{"type":39,"tag":77,"props":2343,"children":2344},{},[2345,2350,2355],{"type":39,"tag":99,"props":2346,"children":2347},{},[2348],{"type":44,"value":2349},"clearItem",{"type":39,"tag":99,"props":2351,"children":2352},{},[2353],{"type":44,"value":2354},"Remove item from cache view",{"type":39,"tag":99,"props":2356,"children":2357},{},[2358],{"type":39,"tag":108,"props":2359,"children":2361},{"href":2360},".\u002Freferences\u002Fapi-clear-item.md",[2362],{"type":44,"value":2363},"api-clear-item",{"type":39,"tag":62,"props":2365,"children":2367},{"id":2366},"further-reading",[2368],{"type":44,"value":2369},"Further reading",{"type":39,"tag":1275,"props":2371,"children":2372},{},[2373,2384,2394,2404,2414],{"type":39,"tag":951,"props":2374,"children":2375},{},[2376,2378],{"type":44,"value":2377},"Guide index: ",{"type":39,"tag":108,"props":2379,"children":2382},{"href":2380,"rel":2381},"https:\u002F\u002Frstore.akryum.dev\u002Fguide\u002Flearn-more",[112],[2383],{"type":44,"value":2380},{"type":39,"tag":951,"props":2385,"children":2386},{},[2387,2389],{"type":44,"value":2388},"Query docs: ",{"type":39,"tag":108,"props":2390,"children":2392},{"href":162,"rel":2391},[112],[2393],{"type":44,"value":162},{"type":39,"tag":951,"props":2395,"children":2396},{},[2397,2399],{"type":44,"value":2398},"Mutation docs: ",{"type":39,"tag":108,"props":2400,"children":2402},{"href":187,"rel":2401},[112],[2403],{"type":44,"value":187},{"type":39,"tag":951,"props":2405,"children":2406},{},[2407,2409],{"type":44,"value":2408},"Form docs: ",{"type":39,"tag":108,"props":2410,"children":2412},{"href":194,"rel":2411},[112],[2413],{"type":44,"value":194},{"type":39,"tag":951,"props":2415,"children":2416},{},[2417,2419],{"type":44,"value":2418},"Plugin hook docs: ",{"type":39,"tag":108,"props":2420,"children":2422},{"href":242,"rel":2421},[112],[2423],{"type":44,"value":242},{"type":39,"tag":2425,"props":2426,"children":2427},"style",{},[2428],{"type":44,"value":2429},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2431,"total":857},[2432,2446,2459,2471,2484,2495,2508,2519,2525],{"slug":2433,"name":2433,"fn":2434,"description":2435,"org":2436,"tags":2437,"stars":22,"repoUrl":23,"updatedAt":2445},"rstore-directus","integrate rstore with Directus","Use when integrating rstore with Directus runtime\u002Fschema helpers, generated Directus collections, Directus REST query options, cache-side Directus filtering, singleton handling, primary key stripping, and Directus-backed create\u002Fupdate\u002Fdelete behavior; also use before writing custom Directus fetch or mutation code around rstore collections. Pair with rstore-vue for collection\u002Fquery\u002Fform semantics and with framework-specific Directus skills for Vite or Nuxt wiring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2438,2441,2444],{"name":2439,"slug":2440,"type":15},"API Development","api-development",{"name":2442,"slug":2443,"type":15},"Database","database",{"name":9,"slug":8,"type":15},"2026-07-12T07:51:07.357988",{"slug":2447,"name":2447,"fn":2448,"description":2449,"org":2450,"tags":2451,"stars":22,"repoUrl":23,"updatedAt":2458},"rstore-monospace","integrate rstore with Monospace REST APIs","Use when integrating rstore with Monospace REST and OpenAPI helpers, generated Monospace collections, Monospace REST query options, primary key overrides, createMonospaceRestClient, createMonospaceRstorePlugin, createMonospaceQuery, and schema generation from remote or local OpenAPI documents; also use before writing custom Monospace REST CRUD around rstore collections.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2452,2455],{"name":2453,"slug":2454,"type":15},"OpenAPI","openapi",{"name":2456,"slug":2457,"type":15},"REST API","rest-api","2026-07-12T07:51:08.612664",{"slug":2460,"name":2460,"fn":2461,"description":2462,"org":2463,"tags":2464,"stars":22,"repoUrl":23,"updatedAt":2470},"rstore-nuxt","integrate rstore into Nuxt applications","Use when wiring rstore into a Nuxt app end-to-end — module setup, auto-registered collections\u002Fplugins, SSR cache hydration, generated template\u002Fauto-import issues, and cross-module extension; also use before adding a custom `server\u002Fapi` route, Nitro handler, or ad hoc `useFetch`\u002F`$fetch` composable for collection data in an rstore-powered Nuxt app — prefer rstore collection APIs (`find*`, `query`, `liveQuery`) and plugin hooks over hand-rolled endpoints or fetch refs; pair with the `rstore-vue` skill for collection\u002Fquery\u002Fform behavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2465,2466,2469],{"name":17,"slug":18,"type":15},{"name":2467,"slug":2468,"type":15},"Nuxt","nuxt",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:06.114663",{"slug":2472,"name":2472,"fn":2473,"description":2474,"org":2475,"tags":2476,"stars":22,"repoUrl":23,"updatedAt":2483},"rstore-nuxt-drizzle","expose Drizzle data in Nuxt applications","Use when exposing Drizzle-backed data in Nuxt, OR before writing a custom `server\u002Fapi` route, Nitro `defineEventHandler`, H3 handler, or REST\u002FCRUD endpoint that reads or writes a Drizzle table — prefer the module's generated endpoints, `allowTables`, `hooksForTable`, and `publishRstoreDrizzleRealtimeUpdate` over hand-rolled routes; also covers generating collections\u002FAPI routes from schema, adding a new Drizzle table to the rstore API, fixing `Collection \"\u003Cname>\" is not allowed` errors, fetch\u002Ffilter\u002Fpaginate, create\u002Fupdate\u002Fdelete, realtime, offline, and table-level access control; pair with `rstore-nuxt` for Nuxt integration and `rstore-vue` for collection\u002Fquery\u002Fform behavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2477,2478,2479,2482],{"name":2439,"slug":2440,"type":15},{"name":2442,"slug":2443,"type":15},{"name":2480,"slug":2481,"type":15},"Drizzle","drizzle",{"name":2467,"slug":2468,"type":15},"2026-07-12T07:51:10.079641",{"slug":2485,"name":2485,"fn":2486,"description":2487,"org":2488,"tags":2489,"stars":22,"repoUrl":23,"updatedAt":2494},"rstore-nuxt-monospace","integrate Monospace into Nuxt applications","Use when wiring Monospace into a Nuxt app with @rstore\u002Fnuxt-monospace, including rstoreMonospace config, remote or local OpenAPI generation, generated #build templates, runtime plugin setup, auto-imported useMonospace, runtimeApiKey handling, primaryKeys, and generated rstore collections. Pair with rstore-monospace for shared REST\u002FOpenAPI behavior, rstore-nuxt for Nuxt store integration, and rstore-vue for query\u002Fform usage.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2490,2491,2492,2493],{"name":2439,"slug":2440,"type":15},{"name":9,"slug":8,"type":15},{"name":2467,"slug":2468,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:51:12.752798",{"slug":2496,"name":2496,"fn":2497,"description":2498,"org":2499,"tags":2500,"stars":22,"repoUrl":23,"updatedAt":2507},"rstore-vite-directus","integrate Directus into Vite applications","Use when wiring Directus into a plain Vite\u002FVue app with @rstore\u002Fvite-directus, including rstoreDirectus config, virtual:rstore-directus modules, generated rstore-directus.d.ts declarations, build-time Directus introspection, and store setup with the generated schema and directusPlugin. Pair with rstore-directus for shared Directus adapter behavior and rstore-vue for collection\u002Fquery\u002Fform usage.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2501,2502,2503,2506],{"name":2439,"slug":2440,"type":15},{"name":9,"slug":8,"type":15},{"name":2504,"slug":2505,"type":15},"Vite","vite",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:11.475964",{"slug":2509,"name":2509,"fn":2510,"description":2511,"org":2512,"tags":2513,"stars":22,"repoUrl":23,"updatedAt":2518},"rstore-vite-monospace","integrate Monospace into Vite applications","Use when wiring Monospace into a plain Vite\u002FVue app with @rstore\u002Fvite-monospace, including rstoreMonospace config, remote or local OpenAPI generation, virtual:rstore-monospace modules, generated rstore-monospace.d.ts declarations, runtimeApiKey handling, primaryKeys, and store setup with the generated schema and monospacePlugin.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2514,2515,2516,2517],{"name":2439,"slug":2440,"type":15},{"name":9,"slug":8,"type":15},{"name":2504,"slug":2505,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:51:14.078949",{"slug":4,"name":4,"fn":5,"description":6,"org":2520,"tags":2521,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2522,2523,2524],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":2526,"name":2526,"fn":2527,"description":2528,"org":2529,"tags":2530,"stars":2535,"repoUrl":2536,"updatedAt":2537},"monospace","perform data operations on Monospace instances","Use when doing ANY task against a Monospace instance. Triggers: reading, creating, updating, deleting, querying, filtering, sorting, or paginating data via the Monospace REST API or the @monospace\u002Fsdk (createClient, readMany, createOne, updateOne); generating a typed SDK client (`npx @monospace\u002Fsdk generate`, monospace.config.ts); connecting to or using the Monospace MCP server; minting API keys or authenticating; inspecting collections, fields, relations, or schema. Do NOT use for legacy Directus v9 \u002F @directus\u002Fsdk — Monospace is a different product with a different API and SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2531,2532],{"name":2456,"slug":2457,"type":15},{"name":2533,"slug":2534,"type":15},"SDK","sdk",0,"https:\u002F\u002Fgithub.com\u002Fdirectus\u002Fmonospace-agent-skills","2026-07-12T07:51:15.348897",{"items":2539,"total":835},[2540,2546,2551,2557,2564,2571,2578],{"slug":2433,"name":2433,"fn":2434,"description":2435,"org":2541,"tags":2542,"stars":22,"repoUrl":23,"updatedAt":2445},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2543,2544,2545],{"name":2439,"slug":2440,"type":15},{"name":2442,"slug":2443,"type":15},{"name":9,"slug":8,"type":15},{"slug":2447,"name":2447,"fn":2448,"description":2449,"org":2547,"tags":2548,"stars":22,"repoUrl":23,"updatedAt":2458},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2549,2550],{"name":2453,"slug":2454,"type":15},{"name":2456,"slug":2457,"type":15},{"slug":2460,"name":2460,"fn":2461,"description":2462,"org":2552,"tags":2553,"stars":22,"repoUrl":23,"updatedAt":2470},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2554,2555,2556],{"name":17,"slug":18,"type":15},{"name":2467,"slug":2468,"type":15},{"name":13,"slug":14,"type":15},{"slug":2472,"name":2472,"fn":2473,"description":2474,"org":2558,"tags":2559,"stars":22,"repoUrl":23,"updatedAt":2483},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2560,2561,2562,2563],{"name":2439,"slug":2440,"type":15},{"name":2442,"slug":2443,"type":15},{"name":2480,"slug":2481,"type":15},{"name":2467,"slug":2468,"type":15},{"slug":2485,"name":2485,"fn":2486,"description":2487,"org":2565,"tags":2566,"stars":22,"repoUrl":23,"updatedAt":2494},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2567,2568,2569,2570],{"name":2439,"slug":2440,"type":15},{"name":9,"slug":8,"type":15},{"name":2467,"slug":2468,"type":15},{"name":13,"slug":14,"type":15},{"slug":2496,"name":2496,"fn":2497,"description":2498,"org":2572,"tags":2573,"stars":22,"repoUrl":23,"updatedAt":2507},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2574,2575,2576,2577],{"name":2439,"slug":2440,"type":15},{"name":9,"slug":8,"type":15},{"name":2504,"slug":2505,"type":15},{"name":13,"slug":14,"type":15},{"slug":2509,"name":2509,"fn":2510,"description":2511,"org":2579,"tags":2580,"stars":22,"repoUrl":23,"updatedAt":2518},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2581,2582,2583,2584],{"name":2439,"slug":2440,"type":15},{"name":9,"slug":8,"type":15},{"name":2504,"slug":2505,"type":15},{"name":13,"slug":14,"type":15}]