@powerhousedao/reactor-browser 5.1.0-dev.3 → 5.1.0-dev.30
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/README.md +17 -3
- package/dist/src/actions/dispatch.d.ts +16 -2
- package/dist/src/actions/dispatch.d.ts.map +1 -1
- package/dist/src/actions/dispatch.js +17 -2
- package/dist/src/actions/dispatch.js.map +1 -1
- package/dist/src/actions/document.d.ts +7 -4
- package/dist/src/actions/document.d.ts.map +1 -1
- package/dist/src/actions/document.js +297 -123
- package/dist/src/actions/document.js.map +1 -1
- package/dist/src/actions/drive.d.ts +2 -2
- package/dist/src/actions/drive.d.ts.map +1 -1
- package/dist/src/actions/drive.js +153 -50
- package/dist/src/actions/drive.js.map +1 -1
- package/dist/src/actions/queue.d.ts.map +1 -1
- package/dist/src/actions/queue.js +48 -24
- package/dist/src/actions/queue.js.map +1 -1
- package/dist/src/actions/sign.js +1 -1
- package/dist/src/actions/sign.js.map +1 -1
- package/dist/src/document-cache.d.ts +17 -0
- package/dist/src/document-cache.d.ts.map +1 -0
- package/dist/src/document-cache.js +143 -0
- package/dist/src/document-cache.js.map +1 -0
- package/dist/src/hooks/add-ph-event-handlers.d.ts.map +1 -1
- package/dist/src/hooks/add-ph-event-handlers.js +11 -2
- package/dist/src/hooks/add-ph-event-handlers.js.map +1 -1
- package/dist/src/hooks/config/connect.d.ts +2 -2
- package/dist/src/hooks/connect.d.ts +1 -1
- package/dist/src/hooks/connect.d.ts.map +1 -1
- package/dist/src/hooks/connect.js +1 -1
- package/dist/src/hooks/connect.js.map +1 -1
- package/dist/src/hooks/dispatch.d.ts +7 -2
- package/dist/src/hooks/dispatch.d.ts.map +1 -1
- package/dist/src/hooks/dispatch.js +13 -3
- package/dist/src/hooks/dispatch.js.map +1 -1
- package/dist/src/hooks/document-by-id.d.ts +1 -1
- package/dist/src/hooks/document-by-id.d.ts.map +1 -1
- package/dist/src/hooks/document-by-id.js +3 -3
- package/dist/src/hooks/document-by-id.js.map +1 -1
- package/dist/src/hooks/document-cache.d.ts +19 -3
- package/dist/src/hooks/document-cache.d.ts.map +1 -1
- package/dist/src/hooks/document-cache.js +41 -14
- package/dist/src/hooks/document-cache.js.map +1 -1
- package/dist/src/hooks/features.d.ts +5 -0
- package/dist/src/hooks/features.d.ts.map +1 -0
- package/dist/src/hooks/features.js +6 -0
- package/dist/src/hooks/features.js.map +1 -0
- package/dist/src/hooks/index.d.ts +5 -2
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +5 -2
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/reactor.d.ts +39 -6
- package/dist/src/hooks/reactor.d.ts.map +1 -1
- package/dist/src/hooks/reactor.js +41 -6
- package/dist/src/hooks/reactor.js.map +1 -1
- package/dist/src/hooks/renown.d.ts.map +1 -1
- package/dist/src/hooks/renown.js.map +1 -1
- package/dist/src/hooks/selected-document.d.ts +1 -1
- package/dist/src/hooks/selected-document.d.ts.map +1 -1
- package/dist/src/hooks/selected-drive.d.ts.map +1 -1
- package/dist/src/hooks/selected-drive.js +3 -3
- package/dist/src/hooks/selected-drive.js.map +1 -1
- package/dist/src/hooks/selected-node.d.ts.map +1 -1
- package/dist/src/hooks/selected-node.js +3 -3
- package/dist/src/hooks/selected-node.js.map +1 -1
- package/dist/src/hooks/toast.d.ts +7 -0
- package/dist/src/hooks/toast.d.ts.map +1 -0
- package/dist/src/hooks/toast.js +9 -0
- package/dist/src/hooks/toast.js.map +1 -0
- package/dist/src/hooks/use-feature-flags.d.ts +44 -0
- package/dist/src/hooks/use-feature-flags.d.ts.map +1 -0
- package/dist/src/hooks/use-feature-flags.js +65 -0
- package/dist/src/hooks/use-feature-flags.js.map +1 -0
- package/dist/src/hooks/vetra-packages.js +1 -1
- package/dist/src/hooks/vetra-packages.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/pglite/drop.d.ts +3 -0
- package/dist/src/pglite/drop.d.ts.map +1 -0
- package/dist/src/pglite/drop.js +18 -0
- package/dist/src/pglite/drop.js.map +1 -0
- package/dist/src/pglite/index.d.ts +1 -0
- package/dist/src/pglite/index.d.ts.map +1 -1
- package/dist/src/pglite/index.js +1 -0
- package/dist/src/pglite/index.js.map +1 -1
- package/dist/src/reactor.d.ts +5 -6
- package/dist/src/reactor.d.ts.map +1 -1
- package/dist/src/reactor.js +36 -61
- package/dist/src/reactor.js.map +1 -1
- package/dist/src/renown/utils.js +1 -1
- package/dist/src/renown/utils.js.map +1 -1
- package/dist/src/types/documents.d.ts +10 -5
- package/dist/src/types/documents.d.ts.map +1 -1
- package/dist/src/types/global.d.ts +15 -1
- package/dist/src/types/global.d.ts.map +1 -1
- package/dist/src/types/index.d.ts +1 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/modals.d.ts +2 -0
- package/dist/src/types/modals.d.ts.map +1 -1
- package/dist/src/types/toast.d.ts +9 -0
- package/dist/src/types/toast.d.ts.map +1 -0
- package/dist/src/types/toast.js +2 -0
- package/dist/src/types/toast.js.map +1 -0
- package/dist/src/utils/drives.d.ts.map +1 -1
- package/dist/src/utils/drives.js +41 -24
- package/dist/src/utils/drives.js.map +1 -1
- package/dist/src/utils/url.d.ts +4 -0
- package/dist/src/utils/url.d.ts.map +1 -1
- package/dist/src/utils/url.js +7 -0
- package/dist/src/utils/url.js.map +1 -1
- package/dist/test/document-cache.test.d.ts +2 -0
- package/dist/test/document-cache.test.d.ts.map +1 -0
- package/dist/test/document-cache.test.js +457 -0
- package/dist/test/document-cache.test.js.map +1 -0
- package/dist/test/drop.test.d.ts +2 -0
- package/dist/test/drop.test.d.ts.map +1 -0
- package/dist/test/drop.test.js +88 -0
- package/dist/test/drop.test.js.map +1 -0
- package/dist/test/getSwitchboardUrl.test.js +3 -1
- package/dist/test/getSwitchboardUrl.test.js.map +1 -1
- package/dist/test/hooks/document-cache.test.d.ts +2 -0
- package/dist/test/hooks/document-cache.test.d.ts.map +1 -0
- package/dist/test/hooks/document-cache.test.js +642 -0
- package/dist/test/hooks/document-cache.test.js.map +1 -0
- package/dist/test/switchboard.test.js +4 -2
- package/dist/test/switchboard.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -5
|
@@ -1,87 +1,180 @@
|
|
|
1
|
+
import { driveCollectionId } from "@powerhousedao/reactor";
|
|
1
2
|
import { PullResponderTransmitter, addTrigger as baseAddTrigger, removeTrigger as baseRemoveTrigger, setAvailableOffline, setDriveName, setSharingType, } from "document-drive";
|
|
2
3
|
import { generateId } from "document-model/core";
|
|
4
|
+
import { isChannelSyncEnabledSync, isLegacyWriteEnabledSync, } from "../hooks/use-feature-flags.js";
|
|
3
5
|
import { getUserPermissions } from "../utils/user.js";
|
|
4
6
|
import { queueActions } from "./queue.js";
|
|
5
7
|
export async function addDrive(input, preferredEditor) {
|
|
6
|
-
const reactor = window.ph?.reactor;
|
|
7
|
-
if (!reactor) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
8
|
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
11
9
|
if (!isAllowedToCreateDocuments) {
|
|
12
10
|
throw new Error("User is not allowed to create drives");
|
|
13
11
|
}
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
const useLegacy = isLegacyWriteEnabledSync();
|
|
13
|
+
if (useLegacy) {
|
|
14
|
+
const reactor = window.ph?.legacyReactor;
|
|
15
|
+
if (!reactor) {
|
|
16
|
+
throw new Error("Legacy reactor not initialized");
|
|
17
|
+
}
|
|
18
|
+
const id = input.id || generateId();
|
|
19
|
+
const newDrive = await reactor.addDrive({
|
|
20
|
+
global: input.global,
|
|
21
|
+
local: input.local,
|
|
22
|
+
id,
|
|
23
|
+
}, preferredEditor);
|
|
24
|
+
return newDrive;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const reactorClient = window.ph?.reactorClient;
|
|
28
|
+
if (!reactorClient) {
|
|
29
|
+
throw new Error("ReactorClient not initialized");
|
|
30
|
+
}
|
|
31
|
+
const id = input.id || generateId();
|
|
32
|
+
const newDrive = await reactorClient.createEmpty("powerhouse/document-drive");
|
|
33
|
+
return newDrive;
|
|
34
|
+
}
|
|
21
35
|
}
|
|
22
36
|
export async function addRemoteDrive(url, options) {
|
|
23
|
-
const
|
|
24
|
-
if (
|
|
25
|
-
|
|
37
|
+
const useLegacy = isLegacyWriteEnabledSync();
|
|
38
|
+
if (useLegacy) {
|
|
39
|
+
const reactor = window.ph?.legacyReactor;
|
|
40
|
+
if (!reactor) {
|
|
41
|
+
throw new Error("Legacy reactor not initialized");
|
|
42
|
+
}
|
|
43
|
+
const newDrive = await reactor.addRemoteDrive(url, options);
|
|
44
|
+
return newDrive;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const reactorClient = window.ph?.reactorClient;
|
|
48
|
+
if (!reactorClient) {
|
|
49
|
+
throw new Error("ReactorClient not initialized");
|
|
50
|
+
}
|
|
51
|
+
const sync = window.ph?.sync;
|
|
52
|
+
if (!sync) {
|
|
53
|
+
throw new Error("Sync not initialized");
|
|
54
|
+
}
|
|
55
|
+
const driveId = driveIdFromUrl(url);
|
|
56
|
+
// Construct the reactor subgraph URL from the base URL
|
|
57
|
+
// e.g., "http://localhost:4001/d/abc123" -> "http://localhost:4001/graphql/r"
|
|
58
|
+
const parsedUrl = new URL(url);
|
|
59
|
+
const reactorGraphqlUrl = `${parsedUrl.protocol}//${parsedUrl.host}/graphql/r`;
|
|
60
|
+
// Use a unique name for the remote to allow multiple subscribers to the same drive
|
|
61
|
+
const remoteName = crypto.randomUUID();
|
|
62
|
+
await sync.add(remoteName, driveCollectionId("main", driveId), {
|
|
63
|
+
type: "gql",
|
|
64
|
+
parameters: {
|
|
65
|
+
url: reactorGraphqlUrl,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
26
68
|
}
|
|
27
|
-
|
|
28
|
-
|
|
69
|
+
}
|
|
70
|
+
function driveIdFromUrl(url) {
|
|
71
|
+
return url.split("/").pop() ?? "";
|
|
29
72
|
}
|
|
30
73
|
export async function deleteDrive(driveId) {
|
|
31
|
-
const reactor = window.ph?.reactor;
|
|
32
|
-
if (!reactor) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
74
|
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
36
75
|
if (!isAllowedToCreateDocuments) {
|
|
37
76
|
throw new Error("User is not allowed to delete drives");
|
|
38
77
|
}
|
|
39
|
-
|
|
78
|
+
const useLegacy = isLegacyWriteEnabledSync();
|
|
79
|
+
if (useLegacy) {
|
|
80
|
+
const reactor = window.ph?.legacyReactor;
|
|
81
|
+
if (!reactor) {
|
|
82
|
+
throw new Error("Legacy reactor not initialized");
|
|
83
|
+
}
|
|
84
|
+
await reactor.deleteDrive(driveId);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
const reactorClient = window.ph?.reactorClient;
|
|
88
|
+
if (!reactorClient) {
|
|
89
|
+
throw new Error("ReactorClient not initialized");
|
|
90
|
+
}
|
|
91
|
+
await reactorClient.deleteDocument(driveId);
|
|
92
|
+
}
|
|
40
93
|
}
|
|
41
94
|
export async function renameDrive(driveId, name) {
|
|
42
|
-
const reactor = window.ph?.reactor;
|
|
43
|
-
if (!reactor) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
95
|
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
47
96
|
if (!isAllowedToCreateDocuments) {
|
|
48
97
|
throw new Error("User is not allowed to rename drives");
|
|
49
98
|
}
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
99
|
+
const useLegacy = isLegacyWriteEnabledSync();
|
|
100
|
+
if (useLegacy) {
|
|
101
|
+
const reactor = window.ph?.legacyReactor;
|
|
102
|
+
if (!reactor) {
|
|
103
|
+
throw new Error("Legacy reactor not initialized");
|
|
104
|
+
}
|
|
105
|
+
const drive = await reactor.getDrive(driveId);
|
|
106
|
+
const renamedDrive = await queueActions(drive, setDriveName({ name }));
|
|
107
|
+
return renamedDrive;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
const reactorClient = window.ph?.reactorClient;
|
|
111
|
+
if (!reactorClient) {
|
|
112
|
+
throw new Error("ReactorClient not initialized");
|
|
113
|
+
}
|
|
114
|
+
return await reactorClient.rename(driveId, name);
|
|
115
|
+
}
|
|
53
116
|
}
|
|
54
117
|
export async function setDriveAvailableOffline(driveId, availableOffline) {
|
|
55
|
-
const reactor = window.ph?.reactor;
|
|
56
|
-
if (!reactor) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
118
|
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
60
119
|
if (!isAllowedToCreateDocuments) {
|
|
61
120
|
throw new Error("User is not allowed to change drive availability");
|
|
62
121
|
}
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
122
|
+
const useLegacy = isLegacyWriteEnabledSync();
|
|
123
|
+
if (useLegacy) {
|
|
124
|
+
const reactor = window.ph?.legacyReactor;
|
|
125
|
+
if (!reactor) {
|
|
126
|
+
throw new Error("Legacy reactor not initialized");
|
|
127
|
+
}
|
|
128
|
+
const drive = await reactor.getDrive(driveId);
|
|
129
|
+
const updatedDrive = await queueActions(drive, setAvailableOffline({ availableOffline }));
|
|
130
|
+
return updatedDrive;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const reactorClient = window.ph?.reactorClient;
|
|
134
|
+
if (!reactorClient) {
|
|
135
|
+
throw new Error("ReactorClient not initialized");
|
|
136
|
+
}
|
|
137
|
+
const { document: drive } = await reactorClient.get(driveId);
|
|
138
|
+
return await reactorClient.execute(driveId, "main", [
|
|
139
|
+
setAvailableOffline({ availableOffline }),
|
|
140
|
+
]);
|
|
141
|
+
}
|
|
66
142
|
}
|
|
67
143
|
export async function setDriveSharingType(driveId, sharingType) {
|
|
68
|
-
const reactor = window.ph?.reactor;
|
|
69
|
-
if (!reactor) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
144
|
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
73
145
|
if (!isAllowedToCreateDocuments) {
|
|
74
|
-
throw new Error("User is not allowed to change drive
|
|
146
|
+
throw new Error("User is not allowed to change drive sharing type");
|
|
147
|
+
}
|
|
148
|
+
const useLegacy = isLegacyWriteEnabledSync();
|
|
149
|
+
if (useLegacy) {
|
|
150
|
+
const reactor = window.ph?.legacyReactor;
|
|
151
|
+
if (!reactor) {
|
|
152
|
+
throw new Error("Legacy reactor not initialized");
|
|
153
|
+
}
|
|
154
|
+
const drive = await reactor.getDrive(driveId);
|
|
155
|
+
const updatedDrive = await queueActions(drive, setSharingType({ type: sharingType }));
|
|
156
|
+
return updatedDrive;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
const reactorClient = window.ph?.reactorClient;
|
|
160
|
+
if (!reactorClient) {
|
|
161
|
+
throw new Error("ReactorClient not initialized");
|
|
162
|
+
}
|
|
163
|
+
return await reactorClient.execute(driveId, "main", [
|
|
164
|
+
setSharingType({ type: sharingType }),
|
|
165
|
+
]);
|
|
75
166
|
}
|
|
76
|
-
const drive = await reactor.getDrive(driveId);
|
|
77
|
-
const updatedDrive = await queueActions(drive, setSharingType({ type: sharingType }));
|
|
78
|
-
return updatedDrive;
|
|
79
167
|
}
|
|
80
168
|
export async function removeTrigger(driveId, triggerId) {
|
|
81
|
-
const
|
|
82
|
-
if (
|
|
169
|
+
const useChannelSync = isChannelSyncEnabledSync();
|
|
170
|
+
if (useChannelSync) {
|
|
171
|
+
// Channel sync replaces triggers - no-op
|
|
83
172
|
return;
|
|
84
173
|
}
|
|
174
|
+
const reactor = window.ph?.legacyReactor;
|
|
175
|
+
if (!reactor) {
|
|
176
|
+
throw new Error("Legacy reactor not initialized");
|
|
177
|
+
}
|
|
85
178
|
const drive = await reactor.getDrive(driveId);
|
|
86
179
|
const unsafeCastAsDrive = (await queueActions(drive, baseRemoveTrigger({ triggerId })));
|
|
87
180
|
const trigger = unsafeCastAsDrive.state.local.triggers.find((trigger) => trigger.id === triggerId);
|
|
@@ -90,10 +183,15 @@ export async function removeTrigger(driveId, triggerId) {
|
|
|
90
183
|
}
|
|
91
184
|
}
|
|
92
185
|
export async function registerNewPullResponderTrigger(driveId, url, options) {
|
|
93
|
-
const
|
|
94
|
-
if (
|
|
186
|
+
const useChannelSync = isChannelSyncEnabledSync();
|
|
187
|
+
if (useChannelSync) {
|
|
188
|
+
// Channel sync replaces triggers - no-op
|
|
95
189
|
return;
|
|
96
190
|
}
|
|
191
|
+
const reactor = window.ph?.legacyReactor;
|
|
192
|
+
if (!reactor) {
|
|
193
|
+
throw new Error("Legacy reactor not initialized");
|
|
194
|
+
}
|
|
97
195
|
const uuid = generateId();
|
|
98
196
|
const listener = {
|
|
99
197
|
driveId,
|
|
@@ -138,13 +236,18 @@ export async function registerNewPullResponderTrigger(driveId, url, options) {
|
|
|
138
236
|
};
|
|
139
237
|
}
|
|
140
238
|
export async function addTrigger(driveId, trigger) {
|
|
141
|
-
const
|
|
142
|
-
if (
|
|
239
|
+
const useChannelSync = isChannelSyncEnabledSync();
|
|
240
|
+
if (useChannelSync) {
|
|
241
|
+
// Channel sync replaces triggers - no-op
|
|
143
242
|
return;
|
|
144
243
|
}
|
|
244
|
+
const reactor = window.ph?.legacyReactor;
|
|
245
|
+
if (!reactor) {
|
|
246
|
+
throw new Error("Legacy reactor not initialized");
|
|
247
|
+
}
|
|
145
248
|
const drive = await reactor.getDrive(driveId);
|
|
146
249
|
const unsafeCastAsDrive = (await queueActions(drive, baseAddTrigger({ trigger })));
|
|
147
|
-
const newTrigger = unsafeCastAsDrive.state.local.triggers.find((
|
|
250
|
+
const newTrigger = unsafeCastAsDrive.state.local.triggers.find((t) => t.id === trigger.id);
|
|
148
251
|
if (!newTrigger) {
|
|
149
252
|
throw new Error(`There was an error adding the trigger ${trigger.id}`);
|
|
150
253
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/actions/drive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/actions/drive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/actions/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,UAAU,EACX,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/actions/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,UAAU,EACX,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,YAAY,CAChC,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,mCAqC/C;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,qBAAqB,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,mCAsC3D;AAED,wBAAgB,qBAAqB,CACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAC/C,uBAAuB,EAAE,SAAS,EAAE,eA8ErC;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,kBAAkB,EACjC,cAAc,EAAE,CACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,EAAE,KACpB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,EACpC,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,0BAA0B,CAAC;CACzC,iBAyDF"}
|
|
@@ -1,47 +1,71 @@
|
|
|
1
1
|
import { logger } from "document-drive";
|
|
2
|
+
import { isLegacyWriteEnabledSync } from "../hooks/use-feature-flags.js";
|
|
2
3
|
export async function queueActions(document, actionOrActions) {
|
|
4
|
+
if (!document) {
|
|
5
|
+
throw new Error("No document provided");
|
|
6
|
+
}
|
|
3
7
|
if (!actionOrActions) {
|
|
4
|
-
|
|
5
|
-
return;
|
|
8
|
+
throw new Error("No actions provided");
|
|
6
9
|
}
|
|
7
10
|
const actions = Array.isArray(actionOrActions)
|
|
8
11
|
? actionOrActions
|
|
9
12
|
: [actionOrActions];
|
|
10
13
|
if (actions.length === 0) {
|
|
11
|
-
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const reactor = window.ph?.reactor;
|
|
15
|
-
if (!reactor) {
|
|
16
|
-
return;
|
|
14
|
+
throw new Error("No actions provided");
|
|
17
15
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
const useLegacy = isLegacyWriteEnabledSync();
|
|
17
|
+
if (useLegacy) {
|
|
18
|
+
const reactor = window.ph?.legacyReactor;
|
|
19
|
+
if (!reactor) {
|
|
20
|
+
throw new Error("Legacy reactor not initialized");
|
|
21
|
+
}
|
|
22
|
+
const result = await reactor.queueActions(document.header.id, actions);
|
|
23
|
+
if (result.status !== "SUCCESS") {
|
|
24
|
+
logger.error(result.error);
|
|
25
|
+
}
|
|
26
|
+
return result.document;
|
|
21
27
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
else {
|
|
29
|
+
const reactorClient = window.ph?.reactorClient;
|
|
30
|
+
if (!reactorClient) {
|
|
31
|
+
throw new Error("ReactorClient not initialized");
|
|
32
|
+
}
|
|
33
|
+
return await reactorClient.execute(document.header.id, "main", actions);
|
|
25
34
|
}
|
|
26
|
-
return result.document;
|
|
27
35
|
}
|
|
28
36
|
export async function queueOperations(documentId, operationOrOperations) {
|
|
37
|
+
if (!documentId) {
|
|
38
|
+
throw new Error("No documentId provided");
|
|
39
|
+
}
|
|
29
40
|
if (!operationOrOperations) {
|
|
30
|
-
|
|
31
|
-
return;
|
|
41
|
+
throw new Error("No operations provided");
|
|
32
42
|
}
|
|
33
43
|
const operations = Array.isArray(operationOrOperations)
|
|
34
44
|
? operationOrOperations
|
|
35
45
|
: [operationOrOperations];
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
46
|
+
if (operations.length === 0) {
|
|
47
|
+
throw new Error("No operations provided");
|
|
48
|
+
}
|
|
49
|
+
const useLegacy = isLegacyWriteEnabledSync();
|
|
50
|
+
if (useLegacy) {
|
|
51
|
+
const reactor = window.ph?.legacyReactor;
|
|
52
|
+
if (!reactor) {
|
|
53
|
+
throw new Error("Legacy reactor not initialized");
|
|
54
|
+
}
|
|
55
|
+
const result = await reactor.queueOperations(documentId, operations);
|
|
56
|
+
if (result.status !== "SUCCESS") {
|
|
57
|
+
logger.error(result.error);
|
|
58
|
+
}
|
|
59
|
+
return result.document;
|
|
39
60
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
61
|
+
else {
|
|
62
|
+
const reactorClient = window.ph?.reactorClient;
|
|
63
|
+
if (!reactorClient) {
|
|
64
|
+
throw new Error("ReactorClient not initialized");
|
|
65
|
+
}
|
|
66
|
+
const actions = operations.map((op) => op.action);
|
|
67
|
+
return await reactorClient.execute(documentId, "main", actions);
|
|
43
68
|
}
|
|
44
|
-
return result.document;
|
|
45
69
|
}
|
|
46
70
|
export function deduplicateOperations(existingOperations, operationsToDeduplicate) {
|
|
47
71
|
// make a set of all the operation indices for each scope to avoid duplicates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/actions/queue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/actions/queue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAOxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgC,EAChC,eAA8C;IAE9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QAC5C,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAEtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,SAAS,GAAG,wBAAwB,EAAE,CAAC;IAE7C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,qBAA0D;IAE1D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;QACrD,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAE5B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,wBAAwB,EAAE,CAAC;IAE7C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,kBAA+C,EAC/C,uBAAoC;IAEpC,6EAA6E;IAC7E,MAAM,uBAAuB,GAAG,EAAiC,CAAC;IAClE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpD,uBAAuB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CACtC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAgB,EAAE,CAAC;IAEtC,KAAK,MAAM,SAAS,IAAI,uBAAuB,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC9B,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CAChE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAC3B,CAAC;YACF,MAAM,sBAAsB,GAAG,aAAa,CAAC,IAAI,CAC/C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAC3B,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC7C,IAAI,2BAA2B,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CACV,8BAA8B,EAC9B,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC;YAClE,CAAC;YACD,SAAS;QACX,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,uBAAuB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,MAAM,qBAAqB,GAAgB,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACrE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CACV,wDAAwD,EACxD,KAAK,EACL,SAAS,CACV,CAAC;gBACF,SAAS;YACX,CAAC;YACD,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC;YACzD,SAAS;QACX,CAAC;QACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,mDAAmD,EACnD,SAAS,CAAC,MAAM,CAAC,KAAK,EACtB,SAAS,CACV,CAAC;YACF,SAAS;QACX,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,aAAiC,EACjC,cAGoC,EACpC,OAGC;IAED,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IAEvC,MAAM,CAAC,OAAO,CACZ,uCAAuC,UAAU,UAAU,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,eAAe,GAAG,CAC7H,CAAC;IAEF,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAC5D,CAAC,GAAG,EAAsB,EAAE,CAAC,GAAG,KAAK,SAAS,CAC/C,CAAC;IACF,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAC/C,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,EAChD,CAAC,CACF,CAAC;IACF,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;YAC5D,MAAM,CAAC,OAAO,CACZ,kCAAkC,CAAC,SAAS,UAAU,CAAC,MAAM,WAAW,eAAe,UAAU,CAClG,CAAC;YACF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM;YACR,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YAErC,MAAM,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAExC,kBAAkB,IAAI,KAAK,CAAC,MAAM,CAAC;YAEnC,kBAAkB;YAClB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,CAAC,kBAAkB,GAAG,eAAe,CAAC,GAAG,GAAG,CAC7C,CAAC;gBACF,UAAU,CAAC;oBACT,KAAK,EAAE,WAAW;oBAClB,QAAQ;oBACR,eAAe;oBACf,kBAAkB;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,OAAO,CACZ,8CAA8C,UAAU,IAAI,KAAK,QAAQ,SAAS,CAAC,KAAK,SAAS,CAClG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,8CAA8C,UAAU,QAAQ,CACjE,CAAC;AACJ,CAAC"}
|
package/dist/src/actions/sign.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logger } from "document-drive";
|
|
2
2
|
import { buildSignedAction } from "document-model/core";
|
|
3
3
|
export async function signAction(action, document) {
|
|
4
|
-
const reactor = window.ph?.
|
|
4
|
+
const reactor = window.ph?.legacyReactor;
|
|
5
5
|
if (!reactor)
|
|
6
6
|
return action;
|
|
7
7
|
const documentModelModules = reactor.getDocumentModelModules();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/actions/sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,QAAoB;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/actions/sign.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IDocumentDriveServer } from "document-drive";
|
|
2
|
+
import type { PHDocument } from "document-model";
|
|
3
|
+
import type { IDocumentCache, PromiseState, PromiseWithState } from "./types/documents.js";
|
|
4
|
+
export declare function addPromiseState<T>(promise: Promise<T>): PromiseWithState<T>;
|
|
5
|
+
export declare function readPromiseState<T>(promise: Promise<T> | PromiseWithState<T>): PromiseState<T>;
|
|
6
|
+
export declare class DocumentCache implements IDocumentCache {
|
|
7
|
+
#private;
|
|
8
|
+
private reactor;
|
|
9
|
+
private documents;
|
|
10
|
+
private batchPromises;
|
|
11
|
+
private listeners;
|
|
12
|
+
constructor(reactor: IDocumentDriveServer);
|
|
13
|
+
get(id: string, refetch?: boolean): Promise<PHDocument>;
|
|
14
|
+
getBatch(ids: string[]): Promise<PHDocument[]>;
|
|
15
|
+
subscribe(id: string | string[], callback: () => void): () => void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=document-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-cache.d.ts","sourceRoot":"","sources":["../../src/document-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAE9B,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAsB3E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GACxC,YAAY,CAAC,CAAC,CAAC,CAEjB;AAED,qBAAa,aAAc,YAAW,cAAc;;IAQtC,OAAO,CAAC,OAAO;IAP3B,OAAO,CAAC,SAAS,CAAmD;IACpE,OAAO,CAAC,aAAa,CAGjB;IACJ,OAAO,CAAC,SAAS,CAAqC;gBAElC,OAAO,EAAE,oBAAoB;IAsCjD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBvD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAsE9C,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;CAgBnE"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
export function addPromiseState(promise) {
|
|
2
|
+
if ("status" in promise) {
|
|
3
|
+
return promise;
|
|
4
|
+
}
|
|
5
|
+
const promiseWithState = promise;
|
|
6
|
+
promiseWithState.status = "pending";
|
|
7
|
+
promiseWithState.then((value) => {
|
|
8
|
+
promiseWithState.status = "fulfilled";
|
|
9
|
+
promiseWithState.value = value;
|
|
10
|
+
}, (reason) => {
|
|
11
|
+
promiseWithState.status = "rejected";
|
|
12
|
+
promiseWithState.reason = reason;
|
|
13
|
+
// Re-throw to preserve unhandled rejection behavior
|
|
14
|
+
// This allows React's error boundaries to catch the error
|
|
15
|
+
throw reason;
|
|
16
|
+
});
|
|
17
|
+
return promiseWithState;
|
|
18
|
+
}
|
|
19
|
+
export function readPromiseState(promise) {
|
|
20
|
+
return "status" in promise ? promise : { status: "pending" };
|
|
21
|
+
}
|
|
22
|
+
export class DocumentCache {
|
|
23
|
+
reactor;
|
|
24
|
+
documents = new Map();
|
|
25
|
+
batchPromises = new Map();
|
|
26
|
+
listeners = new Map();
|
|
27
|
+
constructor(reactor) {
|
|
28
|
+
this.reactor = reactor;
|
|
29
|
+
reactor.on("documentDeleted", (documentId) => {
|
|
30
|
+
const listeners = this.listeners.get(documentId);
|
|
31
|
+
this.documents.delete(documentId);
|
|
32
|
+
// Invalidate any batch that includes this document
|
|
33
|
+
this.#invalidateBatchesContaining(documentId);
|
|
34
|
+
if (listeners) {
|
|
35
|
+
listeners.forEach((listener) => listener());
|
|
36
|
+
}
|
|
37
|
+
this.listeners.delete(documentId);
|
|
38
|
+
});
|
|
39
|
+
reactor.on("operationsAdded", (documentId) => {
|
|
40
|
+
if (this.documents.has(documentId)) {
|
|
41
|
+
this.#updateDocument(documentId).catch(console.warn);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
#invalidateBatchesContaining(documentId) {
|
|
46
|
+
for (const key of this.batchPromises.keys()) {
|
|
47
|
+
if (key.split(",").includes(documentId)) {
|
|
48
|
+
this.batchPromises.delete(key);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async #updateDocument(documentId) {
|
|
53
|
+
// Only updates listeners when document refetch is completed.
|
|
54
|
+
// Listeners use stale data while refetch is in progress.
|
|
55
|
+
const result = this.get(documentId, true);
|
|
56
|
+
await result;
|
|
57
|
+
const listeners = this.listeners.get(documentId);
|
|
58
|
+
if (listeners) {
|
|
59
|
+
listeners.forEach((listener) => listener());
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
get(id, refetch) {
|
|
63
|
+
const currentData = this.documents.get(id);
|
|
64
|
+
if (currentData) {
|
|
65
|
+
// If pending then deduplicate requests
|
|
66
|
+
if (currentData.status === "pending") {
|
|
67
|
+
return currentData;
|
|
68
|
+
}
|
|
69
|
+
if (!refetch) {
|
|
70
|
+
return currentData;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const documentPromise = this.reactor.getDocument(id);
|
|
74
|
+
this.documents.set(id, addPromiseState(documentPromise));
|
|
75
|
+
return documentPromise;
|
|
76
|
+
}
|
|
77
|
+
getBatch(ids) {
|
|
78
|
+
const key = ids.join(",");
|
|
79
|
+
const cached = this.batchPromises.get(key);
|
|
80
|
+
// Check if any documents have been removed from cache (deleted)
|
|
81
|
+
// This must be done BEFORE calling get() which would re-add them
|
|
82
|
+
const hasDeletedDocuments = ids.some((id) => !this.documents.has(id));
|
|
83
|
+
// Get current individual promises
|
|
84
|
+
const currentPromises = ids.map((id) => this.get(id));
|
|
85
|
+
// If documents were deleted, don't return stale data - let it fail
|
|
86
|
+
if (hasDeletedDocuments) {
|
|
87
|
+
const batchPromise = Promise.all(currentPromises);
|
|
88
|
+
this.batchPromises.set(key, {
|
|
89
|
+
promises: currentPromises,
|
|
90
|
+
promise: batchPromise,
|
|
91
|
+
});
|
|
92
|
+
return batchPromise;
|
|
93
|
+
}
|
|
94
|
+
// Check if we have a valid cached batch (same underlying promises)
|
|
95
|
+
if (cached) {
|
|
96
|
+
const samePromises = currentPromises.every((p, i) => p === cached.promises[i]);
|
|
97
|
+
if (samePromises) {
|
|
98
|
+
return cached.promise;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Check the state of all individual promises
|
|
102
|
+
const states = currentPromises.map((p) => readPromiseState(p));
|
|
103
|
+
const allFulfilled = states.every((s) => s.status === "fulfilled");
|
|
104
|
+
if (allFulfilled) {
|
|
105
|
+
// All promises are fulfilled - create a pre-resolved batch promise
|
|
106
|
+
// with status already set to avoid suspending in use()
|
|
107
|
+
const values = states.map((s) => s.value);
|
|
108
|
+
const batchPromise = Promise.resolve(values);
|
|
109
|
+
batchPromise.status = "fulfilled";
|
|
110
|
+
batchPromise.value = values;
|
|
111
|
+
this.batchPromises.set(key, {
|
|
112
|
+
promises: currentPromises,
|
|
113
|
+
promise: batchPromise,
|
|
114
|
+
});
|
|
115
|
+
return batchPromise;
|
|
116
|
+
}
|
|
117
|
+
// Some promises are pending (refetch in progress) - return stale data if available
|
|
118
|
+
if (cached) {
|
|
119
|
+
return cached.promise;
|
|
120
|
+
}
|
|
121
|
+
// Initial load - create new batch promise
|
|
122
|
+
const batchPromise = Promise.all(currentPromises);
|
|
123
|
+
this.batchPromises.set(key, {
|
|
124
|
+
promises: currentPromises,
|
|
125
|
+
promise: batchPromise,
|
|
126
|
+
});
|
|
127
|
+
return batchPromise;
|
|
128
|
+
}
|
|
129
|
+
subscribe(id, callback) {
|
|
130
|
+
const ids = Array.isArray(id) ? id : [id];
|
|
131
|
+
for (const id of ids) {
|
|
132
|
+
const listeners = this.listeners.get(id) ?? [];
|
|
133
|
+
this.listeners.set(id, [...listeners, callback]);
|
|
134
|
+
}
|
|
135
|
+
return () => {
|
|
136
|
+
for (const id of ids) {
|
|
137
|
+
const listeners = this.listeners.get(id) ?? [];
|
|
138
|
+
this.listeners.set(id, listeners.filter((listener) => listener !== callback));
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=document-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-cache.js","sourceRoot":"","sources":["../../src/document-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-ph-event-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/add-ph-event-handlers.ts"],"names":[],"mappings":"AA+
|
|
1
|
+
{"version":3,"file":"add-ph-event-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/add-ph-event-handlers.ts"],"names":[],"mappings":"AA+KA,wBAAgB,kBAAkB,SAIjC"}
|