@sunfall/arc-db 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/change-feed-dispatcher.d.ts +21 -0
- package/dist/change-feed-dispatcher.d.ts.map +1 -0
- package/dist/change-feed-dispatcher.js +53 -0
- package/dist/change-feed-dispatcher.js.map +1 -0
- package/dist/collection-change-feed-runtime.d.ts +32 -0
- package/dist/collection-change-feed-runtime.d.ts.map +1 -0
- package/dist/collection-change-feed-runtime.js +50 -0
- package/dist/collection-change-feed-runtime.js.map +1 -0
- package/dist/collection-contract.d.ts +525 -0
- package/dist/collection-contract.d.ts.map +1 -0
- package/dist/collection-contract.js +4 -0
- package/dist/collection-contract.js.map +1 -0
- package/dist/collection-definition-snapshot.d.ts +64 -0
- package/dist/collection-definition-snapshot.d.ts.map +1 -0
- package/dist/collection-definition-snapshot.js +122 -0
- package/dist/collection-definition-snapshot.js.map +1 -0
- package/dist/collection-errors.d.ts +38 -0
- package/dist/collection-errors.d.ts.map +1 -0
- package/dist/collection-errors.js +17 -0
- package/dist/collection-errors.js.map +1 -0
- package/dist/collection-ids.d.ts +6 -0
- package/dist/collection-ids.d.ts.map +1 -0
- package/dist/collection-ids.js +6 -0
- package/dist/collection-ids.js.map +1 -0
- package/dist/collection-index-materialization.d.ts +29 -0
- package/dist/collection-index-materialization.d.ts.map +1 -0
- package/dist/collection-index-materialization.js +118 -0
- package/dist/collection-index-materialization.js.map +1 -0
- package/dist/collection-mutation-queue.d.ts +10 -0
- package/dist/collection-mutation-queue.d.ts.map +1 -0
- package/dist/collection-mutation-queue.js +46 -0
- package/dist/collection-mutation-queue.js.map +1 -0
- package/dist/collection-mutation-workflow.d.ts +18 -0
- package/dist/collection-mutation-workflow.d.ts.map +1 -0
- package/dist/collection-mutation-workflow.js +252 -0
- package/dist/collection-mutation-workflow.js.map +1 -0
- package/dist/collection-persistence.d.ts +48 -0
- package/dist/collection-persistence.d.ts.map +1 -0
- package/dist/collection-persistence.js +323 -0
- package/dist/collection-persistence.js.map +1 -0
- package/dist/collection-policy.d.ts +5 -0
- package/dist/collection-policy.d.ts.map +1 -0
- package/dist/collection-policy.js +7 -0
- package/dist/collection-policy.js.map +1 -0
- package/dist/collection-preload.d.ts +21 -0
- package/dist/collection-preload.d.ts.map +1 -0
- package/dist/collection-preload.js +4 -0
- package/dist/collection-preload.js.map +1 -0
- package/dist/collection-projection-callback-policy.d.ts +14 -0
- package/dist/collection-projection-callback-policy.d.ts.map +1 -0
- package/dist/collection-projection-callback-policy.js +25 -0
- package/dist/collection-projection-callback-policy.js.map +1 -0
- package/dist/collection-reactive-binding.d.ts +72 -0
- package/dist/collection-reactive-binding.d.ts.map +1 -0
- package/dist/collection-reactive-binding.js +95 -0
- package/dist/collection-reactive-binding.js.map +1 -0
- package/dist/collection-registry.d.ts +56 -0
- package/dist/collection-registry.d.ts.map +1 -0
- package/dist/collection-registry.js +123 -0
- package/dist/collection-registry.js.map +1 -0
- package/dist/collection-row-ingress.d.ts +16 -0
- package/dist/collection-row-ingress.d.ts.map +1 -0
- package/dist/collection-row-ingress.js +110 -0
- package/dist/collection-row-ingress.js.map +1 -0
- package/dist/collection-runtime.d.ts +20 -0
- package/dist/collection-runtime.d.ts.map +1 -0
- package/dist/collection-runtime.js +256 -0
- package/dist/collection-runtime.js.map +1 -0
- package/dist/collection-snapshot-codec.d.ts +62 -0
- package/dist/collection-snapshot-codec.d.ts.map +1 -0
- package/dist/collection-snapshot-codec.js +563 -0
- package/dist/collection-snapshot-codec.js.map +1 -0
- package/dist/collection-state.d.ts +72 -0
- package/dist/collection-state.d.ts.map +1 -0
- package/dist/collection-state.js +276 -0
- package/dist/collection-state.js.map +1 -0
- package/dist/collection-sync-load-policy.d.ts +17 -0
- package/dist/collection-sync-load-policy.d.ts.map +1 -0
- package/dist/collection-sync-load-policy.js +245 -0
- package/dist/collection-sync-load-policy.js.map +1 -0
- package/dist/collection-value-detachment.d.ts +34 -0
- package/dist/collection-value-detachment.d.ts.map +1 -0
- package/dist/collection-value-detachment.js +248 -0
- package/dist/collection-value-detachment.js.map +1 -0
- package/dist/collection-write-commit.d.ts +32 -0
- package/dist/collection-write-commit.d.ts.map +1 -0
- package/dist/collection-write-commit.js +51 -0
- package/dist/collection-write-commit.js.map +1 -0
- package/dist/flush-policy.d.ts +130 -0
- package/dist/flush-policy.d.ts.map +1 -0
- package/dist/flush-policy.js +96 -0
- package/dist/flush-policy.js.map +1 -0
- package/dist/index.d.ts +481 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +251 -0
- package/dist/index.js.map +1 -0
- package/dist/live-query-collection-materialization.d.ts +47 -0
- package/dist/live-query-collection-materialization.d.ts.map +1 -0
- package/dist/live-query-collection-materialization.js +231 -0
- package/dist/live-query-collection-materialization.js.map +1 -0
- package/dist/live-query-collection.d.ts +23 -0
- package/dist/live-query-collection.d.ts.map +1 -0
- package/dist/live-query-collection.js +94 -0
- package/dist/live-query-collection.js.map +1 -0
- package/dist/live-query-runtime.d.ts +8 -0
- package/dist/live-query-runtime.d.ts.map +1 -0
- package/dist/live-query-runtime.js +228 -0
- package/dist/live-query-runtime.js.map +1 -0
- package/dist/live-query-state.d.ts +11 -0
- package/dist/live-query-state.d.ts.map +1 -0
- package/dist/live-query-state.js +130 -0
- package/dist/live-query-state.js.map +1 -0
- package/dist/query-builder.d.ts +294 -0
- package/dist/query-builder.d.ts.map +1 -0
- package/dist/query-builder.js +373 -0
- package/dist/query-builder.js.map +1 -0
- package/dist/query-context-identity.d.ts +19 -0
- package/dist/query-context-identity.d.ts.map +1 -0
- package/dist/query-context-identity.js +41 -0
- package/dist/query-context-identity.js.map +1 -0
- package/dist/query-execution-plan.d.ts +27 -0
- package/dist/query-execution-plan.d.ts.map +1 -0
- package/dist/query-execution-plan.js +69 -0
- package/dist/query-execution-plan.js.map +1 -0
- package/dist/query-plan.d.ts +200 -0
- package/dist/query-plan.d.ts.map +1 -0
- package/dist/query-plan.js +524 -0
- package/dist/query-plan.js.map +1 -0
- package/dist/query-source-adapter.d.ts +25 -0
- package/dist/query-source-adapter.d.ts.map +1 -0
- package/dist/query-source-adapter.js +14 -0
- package/dist/query-source-adapter.js.map +1 -0
- package/dist/runtime-collection-store.d.ts +38 -0
- package/dist/runtime-collection-store.d.ts.map +1 -0
- package/dist/runtime-collection-store.js +149 -0
- package/dist/runtime-collection-store.js.map +1 -0
- package/dist/server-collection.d.ts +84 -0
- package/dist/server-collection.d.ts.map +1 -0
- package/dist/server-collection.js +84 -0
- package/dist/server-collection.js.map +1 -0
- package/dist/sqlite-persistence.d.ts +239 -0
- package/dist/sqlite-persistence.d.ts.map +1 -0
- package/dist/sqlite-persistence.js +345 -0
- package/dist/sqlite-persistence.js.map +1 -0
- package/dist/sync-adapter.d.ts +233 -0
- package/dist/sync-adapter.d.ts.map +1 -0
- package/dist/sync-adapter.js +226 -0
- package/dist/sync-adapter.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { EffectInputCallbackError, runFork } from "@sunfall/arc-core";
|
|
2
|
+
import { Effect, Option, Scope } from "effect";
|
|
3
|
+
import { CollectionRowKeyChanged, CollectionRowNotFound, ReadonlyCollectionMutation, } from "./collection-errors.js";
|
|
4
|
+
import { CollectionTypeId } from "./collection-ids.js";
|
|
5
|
+
import { CollectionPreloadCollector } from "./collection-preload.js";
|
|
6
|
+
import { applyCollectionBaseRow, augmentCollectionRow, deleteCollectionBaseRow, rebaseCollectionBaseRows, } from "./collection-state.js";
|
|
7
|
+
import { rowsByCollectionIndex } from "./collection-index-materialization.js";
|
|
8
|
+
import { subscribeCollectionChangeFeedRuntimeEffect } from "./collection-change-feed-runtime.js";
|
|
9
|
+
import { ingestCollectionMutationRowsEffect, ingestCollectionOutputRowsEffect, } from "./collection-row-ingress.js";
|
|
10
|
+
import { pendingMutationSnapshots } from "./collection-mutation-queue.js";
|
|
11
|
+
import { applyCollectionUpdateEffect, collectionStateEffect, ensureCollectionRowKey, } from "./collection-projection-callback-policy.js";
|
|
12
|
+
import { deleteCollectionMutationEffect, flushCollectionPendingMutationsEffect, insertCollectionMutationEffect, updateCollectionMutationEffect, } from "./collection-mutation-workflow.js";
|
|
13
|
+
import { collectionPersistenceKey, dehydrateCollections as dehydrateCollectionsWithStore, dehydrateCollectionsEffect as dehydrateCollectionsWithStoreEffect, hydrateCollectionEffect as hydrateCollectionWithStoreEffect, hydrateCollectionsEffect as hydrateCollectionsWithStoreEffect, validateCollectionsHydrationEffect as validateCollectionsHydrationWithStoreEffect, persistCollectionEffect as persistCollectionWithStoreEffect, persistCollectionForReasonEffect, restoreCollectionEffect as restoreCollectionWithStoreEffect, snapshotCollection as snapshotCollectionWithStore, snapshotCollectionEffect as snapshotCollectionWithStoreEffect, } from "./collection-persistence.js";
|
|
14
|
+
import { commitCollectionWriteEffect } from "./collection-write-commit.js";
|
|
15
|
+
import { runCollectionSyncLoadPolicyEffect } from "./collection-sync-load-policy.js";
|
|
16
|
+
import { collectionStoreEffect, currentCollectionStore, } from "./runtime-collection-store.js";
|
|
17
|
+
export { collectionStoreEffect, currentCollectionStore, runWithCollectionStore, storeFor, subscribeCollectionEventsEffect, } from "./runtime-collection-store.js";
|
|
18
|
+
export const recordCollectionPreload = (definition) => Effect.gen(function* () {
|
|
19
|
+
const collector = yield* Effect.serviceOption(CollectionPreloadCollector);
|
|
20
|
+
if (Option.isSome(collector)) {
|
|
21
|
+
collector.value.definitions.push(definition);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
const publishStoreEvent = (store, event) => store.publish(event);
|
|
25
|
+
const toArray = (input) => Array.isArray(input) ? input : [input];
|
|
26
|
+
const collectionState = (definition, store = currentCollectionStore()) => {
|
|
27
|
+
return store.state(definition);
|
|
28
|
+
};
|
|
29
|
+
const rowsByIndex = (definition, index, value) => {
|
|
30
|
+
const state = collectionState(definition);
|
|
31
|
+
return rowsByCollectionIndex(definition, state, index, value);
|
|
32
|
+
};
|
|
33
|
+
const collectionPendingMutations = (definition, store = currentCollectionStore()) => {
|
|
34
|
+
const state = collectionState(definition, store);
|
|
35
|
+
state.version.get();
|
|
36
|
+
return pendingMutationSnapshots(state);
|
|
37
|
+
};
|
|
38
|
+
const collectionPendingMutationsEffect = (definition) => Effect.map(collectionStoreEffect, (store) => collectionPendingMutations(definition, store));
|
|
39
|
+
const snapshotCollection = (definition, store = currentCollectionStore(), updatedAt = Date.now()) => snapshotCollectionWithStore(definition, store, updatedAt);
|
|
40
|
+
const snapshotCollectionEffect = (definition) => snapshotCollectionWithStoreEffect(definition, collectionStoreEffect);
|
|
41
|
+
const hydrateCollectionEffect = (definition, snapshot, options = {}, store) => hydrateCollectionWithStoreEffect(definition, snapshot, options, collectionStoreEffect, store);
|
|
42
|
+
export const persistenceKey = (definition, options = {}) => collectionPersistenceKey(definition, options);
|
|
43
|
+
const persistCollectionEffect = (definition, storage, options = {}, store) => persistCollectionWithStoreEffect(definition, storage, options, collectionStoreEffect, store);
|
|
44
|
+
const restoreCollectionEffect = (definition, storage, options = {}, store) => restoreCollectionWithStoreEffect(definition, storage, options, collectionStoreEffect, store);
|
|
45
|
+
const persistForReasonEffect = (definition, store, reason) => persistCollectionForReasonEffect(definition, store, collectionStoreEffect, reason);
|
|
46
|
+
export const dehydrateCollections = (collections, store = currentCollectionStore()) => dehydrateCollectionsWithStore(collections, store);
|
|
47
|
+
export const dehydrateCollectionsEffect = (collections) => dehydrateCollectionsWithStoreEffect(collections, collectionStoreEffect);
|
|
48
|
+
export const hydrateCollectionsEffect = (collections, payload, options = {}) => hydrateCollectionsWithStoreEffect(collections, payload, options, collectionStoreEffect);
|
|
49
|
+
export const validateCollectionsHydrationEffect = (collections, payload, options = {}) => validateCollectionsHydrationWithStoreEffect(collections, payload, options, collectionStoreEffect);
|
|
50
|
+
export const subscribeCollectionChangesEffect = (definition, adapter, options = {}) => Effect.gen(function* () {
|
|
51
|
+
if (definition.readOnly === true) {
|
|
52
|
+
return yield* Effect.fail(new ReadonlyCollectionMutation({
|
|
53
|
+
collection: definition.name,
|
|
54
|
+
operation: "subscribeChangesEffect",
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
const dbStore = yield* collectionStoreEffect;
|
|
58
|
+
yield* subscribeCollectionChangeFeedRuntimeEffect({
|
|
59
|
+
collection: definition.name,
|
|
60
|
+
adapter,
|
|
61
|
+
options,
|
|
62
|
+
applyChanges: (changes, writeOptions) => applyCollectionChangesWithStoreEffect(definition, dbStore, changes, writeOptions),
|
|
63
|
+
publishFailure: (error) => publishStoreEvent(dbStore, {
|
|
64
|
+
_tag: "CollectionChangeFeedFailure",
|
|
65
|
+
collection: definition.name,
|
|
66
|
+
error,
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
}).pipe(Effect.asVoid);
|
|
70
|
+
const writeRows = (definition, input, options = {}) => Effect.gen(function* () {
|
|
71
|
+
const values = toArray(input);
|
|
72
|
+
if (values.length === 0) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const dbStore = yield* collectionStoreEffect;
|
|
76
|
+
const state = yield* collectionStateEffect(definition, dbStore);
|
|
77
|
+
const rows = yield* ingestCollectionMutationRowsEffect(definition, values, {
|
|
78
|
+
operation: "write",
|
|
79
|
+
path: `$.collections[${definition.name}].rows`,
|
|
80
|
+
synced: options.synced ?? true,
|
|
81
|
+
origin: options.origin ?? "remote",
|
|
82
|
+
});
|
|
83
|
+
yield* commitCollectionWriteEffect({
|
|
84
|
+
collection: definition.name,
|
|
85
|
+
state,
|
|
86
|
+
mutations: rows.length,
|
|
87
|
+
apply: () => {
|
|
88
|
+
const rebaseKeys = new Set();
|
|
89
|
+
for (const row of rows) {
|
|
90
|
+
applyCollectionBaseRow(state, row, rebaseKeys);
|
|
91
|
+
}
|
|
92
|
+
rebaseCollectionBaseRows(state, rebaseKeys);
|
|
93
|
+
},
|
|
94
|
+
persistEffect: persistForReasonEffect(definition, dbStore, "write"),
|
|
95
|
+
publishEffect: (event) => publishStoreEvent(dbStore, event),
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
const writeUpdateRow = (definition, key, changes, options = {}) => Effect.gen(function* () {
|
|
99
|
+
const dbStore = yield* collectionStoreEffect;
|
|
100
|
+
const state = yield* collectionStateEffect(definition, dbStore);
|
|
101
|
+
const row = state.optimisticRows.get(key)?.base ?? state.rows.get(key);
|
|
102
|
+
if (!row) {
|
|
103
|
+
return yield* new CollectionRowNotFound({ collection: definition.name, key });
|
|
104
|
+
}
|
|
105
|
+
const updated = yield* applyCollectionUpdateEffect(definition, row.value, changes);
|
|
106
|
+
const rows = yield* ingestCollectionMutationRowsEffect(definition, [updated.value], {
|
|
107
|
+
operation: "write",
|
|
108
|
+
path: `$.collections[${definition.name}].rows`,
|
|
109
|
+
synced: options.synced ?? true,
|
|
110
|
+
origin: options.origin ?? "remote",
|
|
111
|
+
});
|
|
112
|
+
const next = rows[0];
|
|
113
|
+
yield* ensureCollectionRowKey(definition, key, next.key);
|
|
114
|
+
yield* commitCollectionWriteEffect({
|
|
115
|
+
collection: definition.name,
|
|
116
|
+
state,
|
|
117
|
+
mutations: 1,
|
|
118
|
+
apply: () => {
|
|
119
|
+
const rebaseKeys = new Set();
|
|
120
|
+
applyCollectionBaseRow(state, next, rebaseKeys);
|
|
121
|
+
rebaseCollectionBaseRows(state, rebaseKeys);
|
|
122
|
+
},
|
|
123
|
+
persistEffect: persistForReasonEffect(definition, dbStore, "write"),
|
|
124
|
+
publishEffect: (event) => publishStoreEvent(dbStore, event),
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
const writeDeleteRow = (definition, key) => Effect.gen(function* () {
|
|
128
|
+
const dbStore = yield* collectionStoreEffect;
|
|
129
|
+
const state = yield* collectionStateEffect(definition, dbStore);
|
|
130
|
+
const optimistic = state.optimisticRows.get(key);
|
|
131
|
+
const hasBaseRow = optimistic ? optimistic.base !== undefined : state.rows.has(key);
|
|
132
|
+
if (!hasBaseRow) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
yield* commitCollectionWriteEffect({
|
|
136
|
+
collection: definition.name,
|
|
137
|
+
state,
|
|
138
|
+
mutations: 1,
|
|
139
|
+
apply: () => {
|
|
140
|
+
const rebaseKeys = new Set();
|
|
141
|
+
deleteCollectionBaseRow(state, key, rebaseKeys);
|
|
142
|
+
rebaseCollectionBaseRows(state, rebaseKeys);
|
|
143
|
+
},
|
|
144
|
+
persistEffect: persistForReasonEffect(definition, dbStore, "write"),
|
|
145
|
+
publishEffect: (event) => publishStoreEvent(dbStore, event),
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
const applyCollectionChangesWithStoreEffect = (definition, dbStore, changes, options = {}) => Effect.gen(function* () {
|
|
149
|
+
if (definition.readOnly === true) {
|
|
150
|
+
return yield* Effect.fail(new ReadonlyCollectionMutation({
|
|
151
|
+
collection: definition.name,
|
|
152
|
+
operation: "applyChangesEffect",
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
if (changes.length === 0) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const state = yield* collectionStateEffect(definition, dbStore);
|
|
159
|
+
const upserts = [];
|
|
160
|
+
const deletes = [];
|
|
161
|
+
for (const change of changes) {
|
|
162
|
+
switch (change._tag) {
|
|
163
|
+
case "Upsert":
|
|
164
|
+
upserts.push(change.value);
|
|
165
|
+
break;
|
|
166
|
+
case "Delete":
|
|
167
|
+
deletes.push(change.key);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const rows = yield* ingestCollectionOutputRowsEffect(definition, upserts, {
|
|
172
|
+
operation: "write",
|
|
173
|
+
path: `$.collections[${definition.name}].changes`,
|
|
174
|
+
synced: options.synced ?? true,
|
|
175
|
+
origin: options.origin ?? "remote",
|
|
176
|
+
});
|
|
177
|
+
yield* commitCollectionWriteEffect({
|
|
178
|
+
collection: definition.name,
|
|
179
|
+
state,
|
|
180
|
+
mutations: changes.length,
|
|
181
|
+
apply: () => {
|
|
182
|
+
const rebaseKeys = new Set();
|
|
183
|
+
for (const row of rows) {
|
|
184
|
+
applyCollectionBaseRow(state, row, rebaseKeys);
|
|
185
|
+
}
|
|
186
|
+
for (const key of deletes) {
|
|
187
|
+
deleteCollectionBaseRow(state, key, rebaseKeys);
|
|
188
|
+
}
|
|
189
|
+
rebaseCollectionBaseRows(state, rebaseKeys);
|
|
190
|
+
},
|
|
191
|
+
persistEffect: persistForReasonEffect(definition, dbStore, "write"),
|
|
192
|
+
publishEffect: (event) => publishStoreEvent(dbStore, event),
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
export const applyCollectionChangesEffect = (definition, changes, options = {}) => Effect.flatMap(collectionStoreEffect, (dbStore) => applyCollectionChangesWithStoreEffect(definition, dbStore, changes, options));
|
|
196
|
+
export const defineCollection = (options, register) => {
|
|
197
|
+
let definition;
|
|
198
|
+
definition = {
|
|
199
|
+
[CollectionTypeId]: CollectionTypeId,
|
|
200
|
+
options: options,
|
|
201
|
+
name: options.name,
|
|
202
|
+
getKey: options.getKey,
|
|
203
|
+
state: () => collectionState(definition).loadState,
|
|
204
|
+
version: () => collectionState(definition).version,
|
|
205
|
+
get: (key) => {
|
|
206
|
+
const state = collectionState(definition);
|
|
207
|
+
state.version.get();
|
|
208
|
+
const row = state.rows.get(key);
|
|
209
|
+
return row ? augmentCollectionRow(definition, row) : undefined;
|
|
210
|
+
},
|
|
211
|
+
rows: () => {
|
|
212
|
+
const state = collectionState(definition);
|
|
213
|
+
state.version.get();
|
|
214
|
+
return Array.from(state.rows.values(), (row) => augmentCollectionRow(definition, row));
|
|
215
|
+
},
|
|
216
|
+
index: (index, value) => rowsByIndex(definition, index, value),
|
|
217
|
+
firstByIndex: (index, value) => rowsByIndex(definition, index, value)[0],
|
|
218
|
+
preloadEffect: () => Effect.gen(function* () {
|
|
219
|
+
yield* recordCollectionPreload(definition);
|
|
220
|
+
yield* runCollectionSyncLoadPolicyEffect(definition, { force: false });
|
|
221
|
+
}),
|
|
222
|
+
refetchEffect: () => Effect.gen(function* () {
|
|
223
|
+
yield* recordCollectionPreload(definition);
|
|
224
|
+
yield* runCollectionSyncLoadPolicyEffect(definition, { force: true });
|
|
225
|
+
}),
|
|
226
|
+
pendingMutationsEffect: () => collectionPendingMutationsEffect(definition),
|
|
227
|
+
pendingMutations: () => collectionPendingMutations(definition),
|
|
228
|
+
flushPendingMutationsEffect: () => flushCollectionPendingMutationsEffect(definition),
|
|
229
|
+
snapshotEffect: () => snapshotCollectionEffect(definition),
|
|
230
|
+
snapshot: () => snapshotCollection(definition),
|
|
231
|
+
hydrateEffect: (snapshot, hydrateOptions) => hydrateCollectionEffect(definition, snapshot, hydrateOptions),
|
|
232
|
+
hydrate: (snapshot, hydrateOptions) => {
|
|
233
|
+
void runFork(hydrateCollectionEffect(definition, snapshot, hydrateOptions));
|
|
234
|
+
},
|
|
235
|
+
persistEffect: (storage, persistOptions) => persistCollectionEffect(definition, storage, persistOptions),
|
|
236
|
+
restoreEffect: (storage, restoreOptions) => restoreCollectionEffect(definition, storage, restoreOptions),
|
|
237
|
+
insertEffect: (input) => insertCollectionMutationEffect(definition, input),
|
|
238
|
+
updateEffect: (key, update) => updateCollectionMutationEffect(definition, key, update),
|
|
239
|
+
deleteEffect: (key) => deleteCollectionMutationEffect(definition, key),
|
|
240
|
+
writeInsertEffect: (input, writeOptions) => writeRows(definition, input, writeOptions),
|
|
241
|
+
writeInsert: (input, writeOptions) => {
|
|
242
|
+
void runFork(writeRows(definition, input, writeOptions));
|
|
243
|
+
},
|
|
244
|
+
writeUpdateEffect: (key, changes, writeOptions) => writeUpdateRow(definition, key, changes, writeOptions),
|
|
245
|
+
writeUpdate: (key, changes, writeOptions) => {
|
|
246
|
+
void runFork(writeUpdateRow(definition, key, changes, writeOptions));
|
|
247
|
+
},
|
|
248
|
+
writeDeleteEffect: (key) => writeDeleteRow(definition, key),
|
|
249
|
+
writeDelete: (key) => {
|
|
250
|
+
void runFork(writeDeleteRow(definition, key));
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
register(options.name, definition);
|
|
254
|
+
return definition;
|
|
255
|
+
};
|
|
256
|
+
//# sourceMappingURL=collection-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-runtime.js","sourceRoot":"","sources":["../src/collection-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { EffectInputCallbackError } from "@sunfall/arc-core";
|
|
2
|
+
import { Effect } from "effect";
|
|
3
|
+
import type { CollectionHydrateOptions, CollectionHydrationPayload, CollectionKey, CollectionPendingMutation, CollectionRowSnapshot, CollectionSnapshot } from "./collection-contract.js";
|
|
4
|
+
import { type CollectionState, type PendingMutationEntry, type StoredRow } from "./collection-state.js";
|
|
5
|
+
interface CollectionSnapshotDefinition<A extends object, K extends CollectionKey> {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly options: {
|
|
8
|
+
readonly output?: unknown;
|
|
9
|
+
};
|
|
10
|
+
getKey(value: A): K;
|
|
11
|
+
}
|
|
12
|
+
export type CollectionSnapshotCodecOperation = "decode" | "encode" | "load" | "hydrate" | "mutation" | "restore" | "snapshot" | "write";
|
|
13
|
+
declare const CollectionSnapshotCodecError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
14
|
+
readonly _tag: "CollectionSnapshotCodecError";
|
|
15
|
+
} & Readonly<A>;
|
|
16
|
+
/**
|
|
17
|
+
* Typed failure for invalid collection snapshots or hydration payloads.
|
|
18
|
+
*
|
|
19
|
+
* `operation` identifies the codec phase, `path` is a JSONPath-like location
|
|
20
|
+
* in the payload, and `reason` describes the validation failure.
|
|
21
|
+
*/
|
|
22
|
+
export declare class CollectionSnapshotCodecError extends CollectionSnapshotCodecError_base<{
|
|
23
|
+
readonly operation: CollectionSnapshotCodecOperation;
|
|
24
|
+
readonly path: string;
|
|
25
|
+
readonly reason: string;
|
|
26
|
+
}> {
|
|
27
|
+
}
|
|
28
|
+
export declare const validateCollectionKey: <K extends CollectionKey>(value: unknown, operation: CollectionSnapshotCodecOperation, path: string) => K;
|
|
29
|
+
export declare const validateCollectionRowSnapshot: <A extends object, K extends CollectionKey>(value: unknown, operation: CollectionSnapshotCodecOperation, path: string) => CollectionRowSnapshot<A, K>;
|
|
30
|
+
export declare const validateCollectionPendingMutation: <A extends object, K extends CollectionKey>(value: unknown, operation: CollectionSnapshotCodecOperation, path: string) => CollectionPendingMutation<A, K>;
|
|
31
|
+
export declare const validateCollectionSnapshot: <A extends object, K extends CollectionKey>(value: unknown, operation?: CollectionSnapshotCodecOperation, path?: string) => CollectionSnapshot<A, K>;
|
|
32
|
+
export declare const validateCollectionSnapshotEffect: <A extends object, K extends CollectionKey>(value: unknown, operation?: CollectionSnapshotCodecOperation, path?: string) => Effect.Effect<CollectionSnapshot<A, K>, CollectionSnapshotCodecError>;
|
|
33
|
+
/**
|
|
34
|
+
* Decodes collection output schema failures into the snapshot codec error seam.
|
|
35
|
+
*
|
|
36
|
+
* Public Collection and Query Interfaces should not expose raw schema errors;
|
|
37
|
+
* callers see `CollectionSnapshotCodecError` with the
|
|
38
|
+
* path that failed inside the hydrated or loaded snapshot.
|
|
39
|
+
*/
|
|
40
|
+
export declare const decodeCollectionOutputValuesEffect: <A extends object>(schema: unknown, values: ReadonlyArray<A>, operation: CollectionSnapshotCodecOperation, path: string) => Effect.Effect<ReadonlyArray<A>, CollectionSnapshotCodecError>;
|
|
41
|
+
export declare const decodeCollectionOutputValuesSync: <A extends object>(schema: unknown, values: ReadonlyArray<A>, operation: CollectionSnapshotCodecOperation, path: string) => ReadonlyArray<A>;
|
|
42
|
+
export declare const validateCollectionSnapshotDefinitionEffect: <A extends object, K extends CollectionKey>(definition: CollectionSnapshotDefinition<A, K>, value: CollectionSnapshot<A, K>, operation?: CollectionSnapshotCodecOperation, path?: string) => Effect.Effect<CollectionSnapshot<A, K>, CollectionSnapshotCodecError | EffectInputCallbackError>;
|
|
43
|
+
export declare const validateCollectionHydrationPayload: (value: unknown, operation?: CollectionSnapshotCodecOperation) => CollectionHydrationPayload;
|
|
44
|
+
export declare const validateCollectionHydrationPayloadEffect: (value: unknown, operation?: CollectionSnapshotCodecOperation) => Effect.Effect<CollectionHydrationPayload, CollectionSnapshotCodecError>;
|
|
45
|
+
export declare const storedRowSnapshot: <A extends object, K extends CollectionKey>(row: StoredRow<A, K>) => CollectionRowSnapshot<A, K>;
|
|
46
|
+
export declare const storedRowFromSnapshot: <A extends object, K extends CollectionKey>(snapshot: CollectionRowSnapshot<A, K>) => StoredRow<A, K>;
|
|
47
|
+
export declare const pendingMutationSnapshot: <A extends object, K extends CollectionKey>(entry: PendingMutationEntry<A, K>) => CollectionPendingMutation<A, K>;
|
|
48
|
+
export declare const pendingEntryFromSnapshot: <A extends object, K extends CollectionKey>(snapshot: CollectionPendingMutation<A, K>) => PendingMutationEntry<A, K>;
|
|
49
|
+
export declare const pendingMutationSnapshots: <A extends object, K extends CollectionKey>(state: CollectionState<A, K, any>) => ReadonlyArray<CollectionPendingMutation<A, K>>;
|
|
50
|
+
export declare const collectionSnapshotFromState: <A extends object, K extends CollectionKey, E>(definition: {
|
|
51
|
+
readonly name: string;
|
|
52
|
+
}, state: CollectionState<A, K, E>, updatedAt: number) => CollectionSnapshot<A, K>;
|
|
53
|
+
export declare const collectionSnapshotFromValues: <A extends object, K extends CollectionKey>(name: string, values: ReadonlyArray<A>, getKey: (value: A) => K, updatedAt: number) => CollectionSnapshot<A, K>;
|
|
54
|
+
export declare const collectionSnapshotFromValuesEffect: <A extends object, K extends CollectionKey>(name: string, values: ReadonlyArray<A>, getKey: (value: A) => K, updatedAt: number) => Effect.Effect<CollectionSnapshot<A, K>, EffectInputCallbackError>;
|
|
55
|
+
export declare const validateCollectionSnapshotStateHydration: <A extends object, K extends CollectionKey, E>(state: CollectionState<A, K, E>, snapshot: CollectionSnapshot<A, K>, options: CollectionHydrateOptions) => void;
|
|
56
|
+
export declare const validateCollectionSnapshotStateHydrationEffect: <A extends object, K extends CollectionKey, E>(state: CollectionState<A, K, E>, snapshot: CollectionSnapshot<A, K>, options: CollectionHydrateOptions) => Effect.Effect<void, CollectionSnapshotCodecError>;
|
|
57
|
+
export declare const hydrateCollectionSnapshotState: <A extends object, K extends CollectionKey, E>(state: CollectionState<A, K, E>, value: CollectionSnapshot<A, K>, options: CollectionHydrateOptions, advanceTransactionIdentity: (id: string) => void) => CollectionSnapshot<A, K>;
|
|
58
|
+
export declare const hydrateCollectionSnapshotStateEffect: <A extends object, K extends CollectionKey, E>(state: CollectionState<A, K, E>, value: CollectionSnapshot<A, K>, options: CollectionHydrateOptions, advanceTransactionIdentity: (id: string) => void) => Effect.Effect<CollectionSnapshot<A, K>, CollectionSnapshotCodecError>;
|
|
59
|
+
export declare const encodeCollectionSnapshotEffect: <A extends object, K extends CollectionKey>(value: CollectionSnapshot<A, K>) => Effect.Effect<string, CollectionSnapshotCodecError>;
|
|
60
|
+
export declare const decodeCollectionSnapshotEffect: <A extends object, K extends CollectionKey>(encoded: string) => Effect.Effect<CollectionSnapshot<A, K>, CollectionSnapshotCodecError>;
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=collection-snapshot-codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-snapshot-codec.d.ts","sourceRoot":"","sources":["../src/collection-snapshot-codec.ts"],"names":[],"mappings":"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"}
|