@laboverwire/stitch 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/LICENSE +201 -0
  3. package/README.md +39 -0
  4. package/dist/index.d.ts +10 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +9 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/internal-list-apply.d.ts +5 -0
  9. package/dist/internal-list-apply.d.ts.map +1 -0
  10. package/dist/internal-list-apply.js +30 -0
  11. package/dist/internal-list-apply.js.map +1 -0
  12. package/dist/internal-utils.d.ts +3 -0
  13. package/dist/internal-utils.d.ts.map +1 -0
  14. package/dist/internal-utils.js +15 -0
  15. package/dist/internal-utils.js.map +1 -0
  16. package/dist/internal-wasm-error.d.ts +9 -0
  17. package/dist/internal-wasm-error.d.ts.map +1 -0
  18. package/dist/internal-wasm-error.js +48 -0
  19. package/dist/internal-wasm-error.js.map +1 -0
  20. package/dist/memory-store.d.ts +3 -0
  21. package/dist/memory-store.d.ts.map +1 -0
  22. package/dist/memory-store.js +572 -0
  23. package/dist/memory-store.js.map +1 -0
  24. package/dist/offline-queue.d.ts +6 -0
  25. package/dist/offline-queue.d.ts.map +1 -0
  26. package/dist/offline-queue.js +361 -0
  27. package/dist/offline-queue.js.map +1 -0
  28. package/dist/persistence-layer.d.ts +7 -0
  29. package/dist/persistence-layer.d.ts.map +1 -0
  30. package/dist/persistence-layer.js +409 -0
  31. package/dist/persistence-layer.js.map +1 -0
  32. package/dist/react/context.d.ts +10 -0
  33. package/dist/react/context.d.ts.map +1 -0
  34. package/dist/react/context.js +9 -0
  35. package/dist/react/context.js.map +1 -0
  36. package/dist/react/hooks/useChildCounts.d.ts +3 -0
  37. package/dist/react/hooks/useChildCounts.d.ts.map +1 -0
  38. package/dist/react/hooks/useChildCounts.js +85 -0
  39. package/dist/react/hooks/useChildCounts.js.map +1 -0
  40. package/dist/react/hooks/useConnectionStatus.d.ts +3 -0
  41. package/dist/react/hooks/useConnectionStatus.d.ts.map +1 -0
  42. package/dist/react/hooks/useConnectionStatus.js +9 -0
  43. package/dist/react/hooks/useConnectionStatus.js.map +1 -0
  44. package/dist/react/hooks/useEntitySnapshot.d.ts +4 -0
  45. package/dist/react/hooks/useEntitySnapshot.d.ts.map +1 -0
  46. package/dist/react/hooks/useEntitySnapshot.js +33 -0
  47. package/dist/react/hooks/useEntitySnapshot.js.map +1 -0
  48. package/dist/react/hooks/useRootEntityList.d.ts +9 -0
  49. package/dist/react/hooks/useRootEntityList.d.ts.map +1 -0
  50. package/dist/react/hooks/useRootEntityList.js +69 -0
  51. package/dist/react/hooks/useRootEntityList.js.map +1 -0
  52. package/dist/react/hooks/useScopedEntities.d.ts +9 -0
  53. package/dist/react/hooks/useScopedEntities.d.ts.map +1 -0
  54. package/dist/react/hooks/useScopedEntities.js +82 -0
  55. package/dist/react/hooks/useScopedEntities.js.map +1 -0
  56. package/dist/react/hooks/useSyncScope.d.ts +8 -0
  57. package/dist/react/hooks/useSyncScope.d.ts.map +1 -0
  58. package/dist/react/hooks/useSyncScope.js +49 -0
  59. package/dist/react/hooks/useSyncScope.js.map +1 -0
  60. package/dist/react/hooks/useTopLevelEntities.d.ts +7 -0
  61. package/dist/react/hooks/useTopLevelEntities.d.ts.map +1 -0
  62. package/dist/react/hooks/useTopLevelEntities.js +52 -0
  63. package/dist/react/hooks/useTopLevelEntities.js.map +1 -0
  64. package/dist/react/index.d.ts +11 -0
  65. package/dist/react/index.d.ts.map +1 -0
  66. package/dist/react/index.js +10 -0
  67. package/dist/react/index.js.map +1 -0
  68. package/dist/react/provider.d.ts +32 -0
  69. package/dist/react/provider.d.ts.map +1 -0
  70. package/dist/react/provider.js +94 -0
  71. package/dist/react/provider.js.map +1 -0
  72. package/dist/remote-sync-layer.d.ts +8 -0
  73. package/dist/remote-sync-layer.d.ts.map +1 -0
  74. package/dist/remote-sync-layer.js +439 -0
  75. package/dist/remote-sync-layer.js.map +1 -0
  76. package/dist/store.d.ts +3 -0
  77. package/dist/store.d.ts.map +1 -0
  78. package/dist/store.js +779 -0
  79. package/dist/store.js.map +1 -0
  80. package/dist/sync-engine.d.ts +3 -0
  81. package/dist/sync-engine.d.ts.map +1 -0
  82. package/dist/sync-engine.js +643 -0
  83. package/dist/sync-engine.js.map +1 -0
  84. package/dist/types.d.ts +263 -0
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +7 -0
  87. package/dist/types.js.map +1 -0
  88. package/dist/vue/StitchAuth.d.ts +58 -0
  89. package/dist/vue/StitchAuth.d.ts.map +1 -0
  90. package/dist/vue/StitchAuth.js +39 -0
  91. package/dist/vue/StitchAuth.js.map +1 -0
  92. package/dist/vue/StoreRoot.d.ts +41 -0
  93. package/dist/vue/StoreRoot.d.ts.map +1 -0
  94. package/dist/vue/StoreRoot.js +94 -0
  95. package/dist/vue/StoreRoot.js.map +1 -0
  96. package/dist/vue/composables/useChildCounts.d.ts +4 -0
  97. package/dist/vue/composables/useChildCounts.d.ts.map +1 -0
  98. package/dist/vue/composables/useChildCounts.js +85 -0
  99. package/dist/vue/composables/useChildCounts.js.map +1 -0
  100. package/dist/vue/composables/useConnectionStatus.d.ts +4 -0
  101. package/dist/vue/composables/useConnectionStatus.d.ts.map +1 -0
  102. package/dist/vue/composables/useConnectionStatus.js +12 -0
  103. package/dist/vue/composables/useConnectionStatus.js.map +1 -0
  104. package/dist/vue/composables/useEntitySnapshot.d.ts +5 -0
  105. package/dist/vue/composables/useEntitySnapshot.d.ts.map +1 -0
  106. package/dist/vue/composables/useEntitySnapshot.js +41 -0
  107. package/dist/vue/composables/useEntitySnapshot.js.map +1 -0
  108. package/dist/vue/composables/useRootEntityList.d.ts +10 -0
  109. package/dist/vue/composables/useRootEntityList.d.ts.map +1 -0
  110. package/dist/vue/composables/useRootEntityList.js +76 -0
  111. package/dist/vue/composables/useRootEntityList.js.map +1 -0
  112. package/dist/vue/composables/useScopedEntities.d.ts +10 -0
  113. package/dist/vue/composables/useScopedEntities.d.ts.map +1 -0
  114. package/dist/vue/composables/useScopedEntities.js +91 -0
  115. package/dist/vue/composables/useScopedEntities.js.map +1 -0
  116. package/dist/vue/composables/useStore.d.ts +3 -0
  117. package/dist/vue/composables/useStore.d.ts.map +1 -0
  118. package/dist/vue/composables/useStore.js +9 -0
  119. package/dist/vue/composables/useStore.js.map +1 -0
  120. package/dist/vue/composables/useSyncScope.d.ts +9 -0
  121. package/dist/vue/composables/useSyncScope.d.ts.map +1 -0
  122. package/dist/vue/composables/useSyncScope.js +50 -0
  123. package/dist/vue/composables/useSyncScope.js.map +1 -0
  124. package/dist/vue/composables/useTopLevelEntities.d.ts +8 -0
  125. package/dist/vue/composables/useTopLevelEntities.d.ts.map +1 -0
  126. package/dist/vue/composables/useTopLevelEntities.js +58 -0
  127. package/dist/vue/composables/useTopLevelEntities.js.map +1 -0
  128. package/dist/vue/index.d.ts +13 -0
  129. package/dist/vue/index.d.ts.map +1 -0
  130. package/dist/vue/index.js +12 -0
  131. package/dist/vue/index.js.map +1 -0
  132. package/dist/vue/injection-key.d.ts +10 -0
  133. package/dist/vue/injection-key.d.ts.map +1 -0
  134. package/dist/vue/injection-key.js +2 -0
  135. package/dist/vue/injection-key.js.map +1 -0
  136. package/package.json +111 -0
@@ -0,0 +1,85 @@
1
+ import { shallowRef, watch, onBeforeUnmount } from 'vue';
2
+ export function useChildCounts(store, entity) {
3
+ const scopeField = store.config.scope.scopeField;
4
+ const counts = shallowRef(new Map());
5
+ let unsubscribe = null;
6
+ watch(() => [store, entity], ([s, ent], _prev, onCleanup) => {
7
+ unsubscribe?.();
8
+ unsubscribe = null;
9
+ let fetched = false;
10
+ let cancelled = false;
11
+ const buffer = [];
12
+ const fetchAll = () => {
13
+ s.list(ent, { projection: ['id', scopeField] })
14
+ .then((records) => {
15
+ if (cancelled)
16
+ return;
17
+ const next = new Map();
18
+ for (const record of records) {
19
+ const sid = record[scopeField];
20
+ if (sid)
21
+ next.set(sid, (next.get(sid) ?? 0) + 1);
22
+ }
23
+ for (const { entity: e, op } of buffer) {
24
+ if (op === 'update')
25
+ continue;
26
+ const rec = e;
27
+ const sid = rec[scopeField];
28
+ if (!sid)
29
+ continue;
30
+ const current = next.get(sid) ?? 0;
31
+ if (op === 'insert')
32
+ next.set(sid, current + 1);
33
+ else if (op === 'delete')
34
+ next.set(sid, Math.max(0, current - 1));
35
+ }
36
+ buffer.length = 0;
37
+ fetched = true;
38
+ counts.value = next;
39
+ })
40
+ .catch(() => {
41
+ if (cancelled)
42
+ return;
43
+ fetched = true;
44
+ buffer.length = 0;
45
+ });
46
+ };
47
+ unsubscribe = s.subscribeToEntity(ent, (entityData, op) => {
48
+ if (entityData === null) {
49
+ fetchAll();
50
+ return;
51
+ }
52
+ if (op === 'update')
53
+ return;
54
+ if (typeof entityData !== 'object')
55
+ return;
56
+ if (!fetched) {
57
+ buffer.push({ entity: entityData, op });
58
+ return;
59
+ }
60
+ const record = entityData;
61
+ const sid = record[scopeField];
62
+ if (!sid)
63
+ return;
64
+ const next = new Map(counts.value);
65
+ const current = next.get(sid) ?? 0;
66
+ if (op === 'insert')
67
+ next.set(sid, current + 1);
68
+ else if (op === 'delete')
69
+ next.set(sid, Math.max(0, current - 1));
70
+ counts.value = next;
71
+ });
72
+ fetchAll();
73
+ onCleanup(() => {
74
+ cancelled = true;
75
+ unsubscribe?.();
76
+ unsubscribe = null;
77
+ });
78
+ }, { immediate: true });
79
+ onBeforeUnmount(() => {
80
+ unsubscribe?.();
81
+ unsubscribe = null;
82
+ });
83
+ return counts;
84
+ }
85
+ //# sourceMappingURL=useChildCounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChildCounts.js","sourceRoot":"","sources":["../../../src/vue/composables/useChildCounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ShallowRef } from 'vue';
2
+ import type { ConnectionStatus, Store } from '../../types.ts';
3
+ export declare function useConnectionStatus(store: Store): ShallowRef<ConnectionStatus>;
4
+ //# sourceMappingURL=useConnectionStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConnectionStatus.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useConnectionStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE9D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAe9E"}
@@ -0,0 +1,12 @@
1
+ import { watch, shallowRef } from 'vue';
2
+ export function useConnectionStatus(store) {
3
+ const status = shallowRef(store.connectionStatus);
4
+ watch(() => store, (s, _prev, onCleanup) => {
5
+ const unsubscribe = s.subscribeToConnectionStatus((next) => {
6
+ status.value = next;
7
+ });
8
+ onCleanup(unsubscribe);
9
+ }, { immediate: true });
10
+ return status;
11
+ }
12
+ //# sourceMappingURL=useConnectionStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConnectionStatus.js","sourceRoot":"","sources":["../../../src/vue/composables/useConnectionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAIxC,MAAM,UAAU,mBAAmB,CAAC,KAAY;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAmB,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEpE,KAAK,CACH,GAAG,EAAE,CAAC,KAAK,EACX,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QACtB,MAAM,WAAW,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,EAAE,EAAE;YACzD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ShallowRef, MaybeRefOrGetter } from 'vue';
2
+ import type { MemoryStore, Store } from '../../types.ts';
3
+ export declare function useEntitySnapshot(store: MemoryStore | Store, scopeId: MaybeRefOrGetter<string>, entity: MaybeRefOrGetter<string>): ShallowRef<Record<string, unknown>[]>;
4
+ export declare function useEntitySnapshotAsMap(store: MemoryStore | Store, scopeId: MaybeRefOrGetter<string>, entity: MaybeRefOrGetter<string>): ShallowRef<Record<string, Record<string, unknown>>>;
5
+ //# sourceMappingURL=useEntitySnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEntitySnapshot.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useEntitySnapshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAUzD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,GAAG,KAAK,EAC1B,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,EACjC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAC/B,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAqBvC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,GAAG,KAAK,EAC1B,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,EACjC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAC/B,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAqBrD"}
@@ -0,0 +1,41 @@
1
+ import { watch, shallowRef, toValue } from 'vue';
2
+ const EMPTY_ARRAY = [];
3
+ const EMPTY_MAP = {};
4
+ function resolveMemory(storeOrMemory) {
5
+ if ('memory' in storeOrMemory)
6
+ return storeOrMemory.memory;
7
+ return storeOrMemory;
8
+ }
9
+ export function useEntitySnapshot(store, scopeId, entity) {
10
+ const memory = resolveMemory(store);
11
+ const snapshot = shallowRef(EMPTY_ARRAY);
12
+ watch(() => [toValue(scopeId), toValue(entity)], ([sid, ent], _prev, onCleanup) => {
13
+ if (!sid) {
14
+ snapshot.value = EMPTY_ARRAY;
15
+ return;
16
+ }
17
+ snapshot.value = memory.getSnapshot(ent, sid);
18
+ const unsubscribe = memory.subscribeToScope(sid, ent, () => {
19
+ snapshot.value = memory.getSnapshot(ent, sid);
20
+ });
21
+ onCleanup(unsubscribe);
22
+ }, { immediate: true });
23
+ return snapshot;
24
+ }
25
+ export function useEntitySnapshotAsMap(store, scopeId, entity) {
26
+ const memory = resolveMemory(store);
27
+ const snapshot = shallowRef(EMPTY_MAP);
28
+ watch(() => [toValue(scopeId), toValue(entity)], ([sid, ent], _prev, onCleanup) => {
29
+ if (!sid) {
30
+ snapshot.value = EMPTY_MAP;
31
+ return;
32
+ }
33
+ snapshot.value = memory.getSnapshotAsMap(ent, sid);
34
+ const unsubscribe = memory.subscribeToScope(sid, ent, () => {
35
+ snapshot.value = memory.getSnapshotAsMap(ent, sid);
36
+ });
37
+ onCleanup(unsubscribe);
38
+ }, { immediate: true });
39
+ return snapshot;
40
+ }
41
+ //# sourceMappingURL=useEntitySnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEntitySnapshot.js","sourceRoot":"","sources":["../../../src/vue/composables/useEntitySnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAIjD,MAAM,WAAW,GAA8B,EAAE,CAAC;AAClD,MAAM,SAAS,GAA4C,EAAE,CAAC;AAE9D,SAAS,aAAa,CAAC,aAAkC;IACvD,IAAI,QAAQ,IAAI,aAAa;QAAE,OAAQ,aAAuB,CAAC,MAAM,CAAC;IACtE,OAAO,aAA4B,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAA0B,EAC1B,OAAiC,EACjC,MAAgC;IAEhC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,UAAU,CAA4B,WAAW,CAAC,CAAC;IAEpE,KAAK,CACH,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAU,EAClD,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACzD,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA0B,EAC1B,OAAiC,EACjC,MAAgC;IAEhC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,UAAU,CAA0C,SAAS,CAAC,CAAC;IAEhF,KAAK,CACH,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAU,EAClD,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACzD,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ShallowRef } from 'vue';
2
+ import type { Store } from '../../types.ts';
3
+ import { type ListItem } from '../../internal-list-apply.ts';
4
+ export declare function useRootEntityList(store: Store): {
5
+ items: ShallowRef<ListItem[]>;
6
+ loading: ShallowRef<boolean>;
7
+ error: ShallowRef<Error | null>;
8
+ refetch: () => Promise<void>;
9
+ };
10
+ //# sourceMappingURL=useRootEntityList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRootEntityList.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useRootEntityList.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG;IAC/C,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAkFA"}
@@ -0,0 +1,76 @@
1
+ import { shallowRef, watch, onBeforeUnmount } from 'vue';
2
+ import { applyEvent } from "../../internal-list-apply.js";
3
+ export function useRootEntityList(store) {
4
+ const rootEntity = store.config.scope.rootEntity;
5
+ const items = shallowRef([]);
6
+ const loading = shallowRef(true);
7
+ const error = shallowRef(null);
8
+ let unsubscribe = null;
9
+ let cancelled = false;
10
+ async function refetch() {
11
+ loading.value = true;
12
+ error.value = null;
13
+ try {
14
+ const entities = await store.listRootEntities();
15
+ items.value = entities;
16
+ }
17
+ catch (err) {
18
+ error.value = err instanceof Error ? err : new Error('Failed to fetch root entities');
19
+ }
20
+ finally {
21
+ loading.value = false;
22
+ }
23
+ }
24
+ watch(() => store, (s, _prev, onCleanup) => {
25
+ unsubscribe?.();
26
+ cancelled = false;
27
+ let fetched = false;
28
+ const buffer = [];
29
+ const fetchAll = () => {
30
+ s.listRootEntities()
31
+ .then((entities) => {
32
+ if (cancelled)
33
+ return;
34
+ let result = entities;
35
+ for (const { entity, op } of buffer)
36
+ result = applyEvent(result, entity, op);
37
+ buffer.length = 0;
38
+ fetched = true;
39
+ items.value = result;
40
+ loading.value = false;
41
+ })
42
+ .catch((err) => {
43
+ if (cancelled)
44
+ return;
45
+ fetched = true;
46
+ buffer.length = 0;
47
+ error.value = err instanceof Error ? err : new Error('Failed to fetch root entities');
48
+ loading.value = false;
49
+ });
50
+ };
51
+ unsubscribe = s.subscribeToEntity(rootEntity, (entity, op) => {
52
+ if (entity === null) {
53
+ fetchAll();
54
+ return;
55
+ }
56
+ if (!fetched) {
57
+ buffer.push({ entity, op });
58
+ return;
59
+ }
60
+ items.value = applyEvent(items.value, entity, op);
61
+ });
62
+ fetchAll();
63
+ onCleanup(() => {
64
+ cancelled = true;
65
+ unsubscribe?.();
66
+ unsubscribe = null;
67
+ });
68
+ }, { immediate: true });
69
+ onBeforeUnmount(() => {
70
+ cancelled = true;
71
+ unsubscribe?.();
72
+ unsubscribe = null;
73
+ });
74
+ return { items, loading, error, refetch };
75
+ }
76
+ //# sourceMappingURL=useRootEntityList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRootEntityList.js","sourceRoot":"","sources":["../../../src/vue/composables/useRootEntityList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ShallowRef, MaybeRefOrGetter } from 'vue';
2
+ import type { Store } from '../../types.ts';
3
+ import { type ListItem } from '../../internal-list-apply.ts';
4
+ export declare function useScopedEntities(store: Store, scopeId: MaybeRefOrGetter<string | null>, entity: MaybeRefOrGetter<string>): {
5
+ data: ShallowRef<ListItem[]>;
6
+ loading: ShallowRef<boolean>;
7
+ error: ShallowRef<Error | null>;
8
+ refetch: () => Promise<void>;
9
+ };
10
+ //# sourceMappingURL=useScopedEntities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScopedEntities.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useScopedEntities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEzE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,EACxC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAC/B;IACD,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAgGA"}
@@ -0,0 +1,91 @@
1
+ import { shallowRef, watch, toValue, onBeforeUnmount } from 'vue';
2
+ import { applyEvent } from "../../internal-list-apply.js";
3
+ export function useScopedEntities(store, scopeId, entity) {
4
+ const effectiveScopeField = store.config.scope.scopeField;
5
+ const data = shallowRef([]);
6
+ const loading = shallowRef(true);
7
+ const error = shallowRef(null);
8
+ async function refetch() {
9
+ const sid = toValue(scopeId);
10
+ const ent = toValue(entity);
11
+ if (!sid) {
12
+ data.value = [];
13
+ loading.value = false;
14
+ return;
15
+ }
16
+ loading.value = true;
17
+ error.value = null;
18
+ try {
19
+ const rows = await store.list(ent, { scopeId: sid });
20
+ data.value = rows;
21
+ }
22
+ catch (err) {
23
+ error.value = err instanceof Error ? err : new Error('Failed to fetch entities');
24
+ }
25
+ finally {
26
+ loading.value = false;
27
+ }
28
+ }
29
+ let unsubscribe = null;
30
+ watch(() => [toValue(scopeId), toValue(entity)], ([sid, ent], _prev, onCleanup) => {
31
+ unsubscribe?.();
32
+ unsubscribe = null;
33
+ if (!sid) {
34
+ data.value = [];
35
+ loading.value = false;
36
+ return;
37
+ }
38
+ let fetched = false;
39
+ let cancelled = false;
40
+ const buffer = [];
41
+ const fetchAll = () => {
42
+ store
43
+ .list(ent, { scopeId: sid })
44
+ .then((rows) => {
45
+ if (cancelled)
46
+ return;
47
+ let result = rows;
48
+ for (const { entity: e, op } of buffer)
49
+ result = applyEvent(result, e, op);
50
+ buffer.length = 0;
51
+ fetched = true;
52
+ data.value = result;
53
+ loading.value = false;
54
+ })
55
+ .catch((err) => {
56
+ if (cancelled)
57
+ return;
58
+ fetched = true;
59
+ buffer.length = 0;
60
+ error.value = err instanceof Error ? err : new Error('Failed to fetch entities');
61
+ loading.value = false;
62
+ });
63
+ };
64
+ unsubscribe = store.subscribeToEntity(ent, (entityData, op) => {
65
+ if (entityData === null) {
66
+ fetchAll();
67
+ return;
68
+ }
69
+ const rec = entityData;
70
+ if (rec[effectiveScopeField] !== sid)
71
+ return;
72
+ if (!fetched) {
73
+ buffer.push({ entity: entityData, op });
74
+ return;
75
+ }
76
+ data.value = applyEvent(data.value, entityData, op);
77
+ });
78
+ fetchAll();
79
+ onCleanup(() => {
80
+ cancelled = true;
81
+ unsubscribe?.();
82
+ unsubscribe = null;
83
+ });
84
+ }, { immediate: true });
85
+ onBeforeUnmount(() => {
86
+ unsubscribe?.();
87
+ unsubscribe = null;
88
+ });
89
+ return { data, loading, error, refetch };
90
+ }
91
+ //# sourceMappingURL=useScopedEntities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScopedEntities.js","sourceRoot":"","sources":["../../../src/vue/composables/useScopedEntities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { StitchContext } from '../injection-key.ts';
2
+ export declare function useStore(): StitchContext;
3
+ //# sourceMappingURL=useStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStore.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wBAAgB,QAAQ,IAAI,aAAa,CAIxC"}
@@ -0,0 +1,9 @@
1
+ import { inject } from 'vue';
2
+ import { STITCH_KEY } from "../injection-key.js";
3
+ export function useStore() {
4
+ const ctx = inject(STITCH_KEY);
5
+ if (!ctx)
6
+ throw new Error('useStore must be used within a StoreRoot');
7
+ return ctx;
8
+ }
9
+ //# sourceMappingURL=useStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStore.js","sourceRoot":"","sources":["../../../src/vue/composables/useStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,MAAM,UAAU,QAAQ;IACtB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ShallowRef, MaybeRefOrGetter } from 'vue';
2
+ import type { Store } from '../../types.ts';
3
+ export declare function useSyncScope(store: Store, scopeId: MaybeRefOrGetter<string | null>): {
4
+ syncing: ShallowRef<boolean>;
5
+ syncError: ShallowRef<Error | null>;
6
+ openScope: () => Promise<void>;
7
+ closeScope: () => Promise<void>;
8
+ };
9
+ //# sourceMappingURL=useSyncScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSyncScope.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useSyncScope.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,GACvC;IACD,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,CAqDA"}
@@ -0,0 +1,50 @@
1
+ import { watch, shallowRef, toValue, onUnmounted } from 'vue';
2
+ export function useSyncScope(store, scopeId) {
3
+ const syncing = shallowRef(false);
4
+ const syncError = shallowRef(null);
5
+ let openedScopeId = null;
6
+ async function openScope() {
7
+ const sid = toValue(scopeId);
8
+ if (!sid || openedScopeId === sid)
9
+ return;
10
+ syncing.value = true;
11
+ syncError.value = null;
12
+ try {
13
+ await store.replaceScope(sid);
14
+ if (toValue(scopeId) === sid) {
15
+ openedScopeId = sid;
16
+ }
17
+ }
18
+ catch (err) {
19
+ syncError.value = err instanceof Error ? err : new Error('Failed to open scope');
20
+ }
21
+ finally {
22
+ syncing.value = false;
23
+ }
24
+ }
25
+ async function closeScope() {
26
+ if (!openedScopeId)
27
+ return;
28
+ try {
29
+ await store.closeScope(openedScopeId);
30
+ openedScopeId = null;
31
+ }
32
+ catch (err) {
33
+ console.error('[useSyncScope] Failed to close scope:', err);
34
+ }
35
+ }
36
+ watch(() => toValue(scopeId), () => {
37
+ if (openedScopeId) {
38
+ store.closeScope(openedScopeId).catch(() => { });
39
+ openedScopeId = null;
40
+ }
41
+ });
42
+ onUnmounted(() => {
43
+ if (openedScopeId) {
44
+ store.closeScope(openedScopeId).catch(() => { });
45
+ openedScopeId = null;
46
+ }
47
+ });
48
+ return { syncing, syncError, openScope, closeScope };
49
+ }
50
+ //# sourceMappingURL=useSyncScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSyncScope.js","sourceRoot":"","sources":["../../../src/vue/composables/useSyncScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAI9D,MAAM,UAAU,YAAY,CAC1B,KAAY,EACZ,OAAwC;IAOxC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,UAAU,CAAe,IAAI,CAAC,CAAC;IACjD,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,KAAK,UAAU,SAAS;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,IAAI,aAAa,KAAK,GAAG;YAAE,OAAO;QAE1C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,aAAa,GAAG,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACnF,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,UAAU,UAAU;QACvB,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACtC,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,KAAK,CACH,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EACtB,GAAG,EAAE;QACH,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAChD,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,WAAW,CAAC,GAAG,EAAE;QACf,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAChD,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ShallowRef } from 'vue';
2
+ import type { Store } from '../../types.ts';
3
+ import { type ListItem } from '../../internal-list-apply.ts';
4
+ export declare function useTopLevelEntities(store: Store, entity: string): {
5
+ items: ShallowRef<ListItem[]>;
6
+ loading: ShallowRef<boolean>;
7
+ };
8
+ //# sourceMappingURL=useTopLevelEntities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTopLevelEntities.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useTopLevelEntities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEzE,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GACb;IACD,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC9B,CA+DA"}
@@ -0,0 +1,58 @@
1
+ import { shallowRef, watch, onBeforeUnmount } from 'vue';
2
+ import { applyEvent } from "../../internal-list-apply.js";
3
+ export function useTopLevelEntities(store, entity) {
4
+ const items = shallowRef([]);
5
+ const loading = shallowRef(true);
6
+ let unsubscribe = null;
7
+ watch(() => [store, entity], ([s, ent], _prev, onCleanup) => {
8
+ unsubscribe?.();
9
+ unsubscribe = null;
10
+ let fetched = false;
11
+ let cancelled = false;
12
+ const buffer = [];
13
+ const fetchAll = () => {
14
+ s.list(ent)
15
+ .then((rows) => {
16
+ if (cancelled)
17
+ return;
18
+ let result = rows;
19
+ for (const { entity: e, op } of buffer)
20
+ result = applyEvent(result, e, op);
21
+ buffer.length = 0;
22
+ fetched = true;
23
+ items.value = result;
24
+ loading.value = false;
25
+ })
26
+ .catch(() => {
27
+ if (cancelled)
28
+ return;
29
+ fetched = true;
30
+ buffer.length = 0;
31
+ loading.value = false;
32
+ });
33
+ };
34
+ unsubscribe = s.subscribeToEntity(ent, (entityData, op) => {
35
+ if (entityData === null) {
36
+ fetchAll();
37
+ return;
38
+ }
39
+ if (!fetched) {
40
+ buffer.push({ entity: entityData, op });
41
+ return;
42
+ }
43
+ items.value = applyEvent(items.value, entityData, op);
44
+ });
45
+ fetchAll();
46
+ onCleanup(() => {
47
+ cancelled = true;
48
+ unsubscribe?.();
49
+ unsubscribe = null;
50
+ });
51
+ }, { immediate: true });
52
+ onBeforeUnmount(() => {
53
+ unsubscribe?.();
54
+ unsubscribe = null;
55
+ });
56
+ return { items, loading };
57
+ }
58
+ //# sourceMappingURL=useTopLevelEntities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTopLevelEntities.js","sourceRoot":"","sources":["../../../src/vue/composables/useTopLevelEntities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAiB,MAAM,8BAA8B,CAAC;AAEzE,MAAM,UAAU,mBAAmB,CACjC,KAAY,EACZ,MAAc;IAKd,MAAM,KAAK,GAAG,UAAU,CAAa,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,WAAW,GAAwB,IAAI,CAAC;IAE5C,KAAK,CACH,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAU,EAC9B,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAC7B,WAAW,EAAE,EAAE,CAAC;QAChB,WAAW,GAAG,IAAI,CAAC;QAEnB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,MAAM,GAAmE,EAAE,CAAC;QAElF,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;iBACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,IAAI,SAAS;oBAAE,OAAO;gBACtB,IAAI,MAAM,GAAG,IAAkB,CAAC;gBAChC,KAAK,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM;oBAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3E,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;gBACrB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,IAAI,SAAS;oBAAE,OAAO;gBACtB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,WAAW,GAAG,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE;YACxD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,QAAQ,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,QAAQ,EAAE,CAAC;QAEX,SAAS,CAAC,GAAG,EAAE;YACb,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,EAAE,EAAE,CAAC;YAChB,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IAEF,eAAe,CAAC,GAAG,EAAE;QACnB,WAAW,EAAE,EAAE,CAAC;QAChB,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,13 @@
1
+ export { STITCH_KEY } from './injection-key.ts';
2
+ export type { StitchContext } from './injection-key.ts';
3
+ export { StoreRoot } from './StoreRoot.ts';
4
+ export { StitchAuth } from './StitchAuth.ts';
5
+ export { useStore } from './composables/useStore.ts';
6
+ export { useEntitySnapshot, useEntitySnapshotAsMap } from './composables/useEntitySnapshot.ts';
7
+ export { useConnectionStatus } from './composables/useConnectionStatus.ts';
8
+ export { useSyncScope } from './composables/useSyncScope.ts';
9
+ export { useRootEntityList } from './composables/useRootEntityList.ts';
10
+ export { useScopedEntities } from './composables/useScopedEntities.ts';
11
+ export { useChildCounts } from './composables/useChildCounts.ts';
12
+ export { useTopLevelEntities } from './composables/useTopLevelEntities.ts';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export { STITCH_KEY } from "./injection-key.js";
2
+ export { StoreRoot } from "./StoreRoot.js";
3
+ export { StitchAuth } from "./StitchAuth.js";
4
+ export { useStore } from "./composables/useStore.js";
5
+ export { useEntitySnapshot, useEntitySnapshotAsMap } from "./composables/useEntitySnapshot.js";
6
+ export { useConnectionStatus } from "./composables/useConnectionStatus.js";
7
+ export { useSyncScope } from "./composables/useSyncScope.js";
8
+ export { useRootEntityList } from "./composables/useRootEntityList.js";
9
+ export { useScopedEntities } from "./composables/useScopedEntities.js";
10
+ export { useChildCounts } from "./composables/useChildCounts.js";
11
+ export { useTopLevelEntities } from "./composables/useTopLevelEntities.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { InjectionKey } from 'vue';
2
+ import type { ConnectionStatus, Store } from '../types.ts';
3
+ export interface StitchContext {
4
+ store: Store;
5
+ initialized: boolean;
6
+ connectionStatus: ConnectionStatus;
7
+ error: Error | null;
8
+ }
9
+ export declare const STITCH_KEY: InjectionKey<StitchContext>;
10
+ //# sourceMappingURL=injection-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection-key.d.ts","sourceRoot":"","sources":["../../src/vue/injection-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,aAAa,CAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const STITCH_KEY = Symbol('stitch');
2
+ //# sourceMappingURL=injection-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection-key.js","sourceRoot":"","sources":["../../src/vue/injection-key.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,UAAU,GAAgC,MAAM,CAAC,QAAQ,CAAC,CAAC"}