@powerhousedao/reactor 6.0.0-dev.102 → 6.0.0-dev.104
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.
|
@@ -116,5 +116,6 @@ export declare class ReactorClient implements IReactorClient {
|
|
|
116
116
|
* Subscribes to changes for documents matching specified filters
|
|
117
117
|
*/
|
|
118
118
|
subscribe(search: SearchFilter, callback: (event: DocumentChangeEvent) => void, view?: ViewFilter): () => void;
|
|
119
|
+
private removeFromAllParents;
|
|
119
120
|
}
|
|
120
121
|
//# sourceMappingURL=reactor-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-client.d.ts","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reactor-client.d.ts","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -74,7 +74,10 @@ function removeRelationshipAction(sourceId, targetId, relationshipType = "child"
|
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
76
|
// src/client/reactor-client.ts
|
|
77
|
-
import {
|
|
77
|
+
import {
|
|
78
|
+
addFile,
|
|
79
|
+
deleteNode
|
|
80
|
+
} from "document-drive/drive-document-model/gen/node/creators";
|
|
78
81
|
import { actions } from "document-model";
|
|
79
82
|
// ../../node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js
|
|
80
83
|
var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
|
@@ -673,10 +676,14 @@ class ReactorClient {
|
|
|
673
676
|
}
|
|
674
677
|
}
|
|
675
678
|
for (const descendantId of descendants) {
|
|
679
|
+
const removalJobs2 = await this.removeFromAllParents(descendantId, signal);
|
|
680
|
+
jobs.push(...removalJobs2);
|
|
676
681
|
const jobInfo2 = await this.reactor.deleteDocument(descendantId, this.signer, signal);
|
|
677
682
|
jobs.push(jobInfo2);
|
|
678
683
|
}
|
|
679
684
|
}
|
|
685
|
+
const removalJobs = await this.removeFromAllParents(identifier, signal);
|
|
686
|
+
jobs.push(...removalJobs);
|
|
680
687
|
const jobInfo = await this.reactor.deleteDocument(identifier, this.signer, signal);
|
|
681
688
|
jobs.push(jobInfo);
|
|
682
689
|
const completedJobs = await Promise.all(jobs.map((job) => this.waitForJob(job, signal)));
|
|
@@ -743,6 +750,49 @@ class ReactorClient {
|
|
|
743
750
|
unsubscribeRelationship();
|
|
744
751
|
};
|
|
745
752
|
}
|
|
753
|
+
async removeFromAllParents(documentId, signal) {
|
|
754
|
+
const incoming = await this.documentIndexer.getIncoming(documentId, undefined, undefined, undefined, signal);
|
|
755
|
+
const jobs = [];
|
|
756
|
+
for (const rel of incoming.results) {
|
|
757
|
+
const parentId = rel.sourceId;
|
|
758
|
+
let parentDoc;
|
|
759
|
+
try {
|
|
760
|
+
parentDoc = await this.reactor.get(parentId, undefined, undefined, signal);
|
|
761
|
+
} catch {
|
|
762
|
+
continue;
|
|
763
|
+
}
|
|
764
|
+
const isDrive = parentDoc.header.documentType === "powerhouse/document-drive";
|
|
765
|
+
const relationshipActions = await signActions([removeRelationshipAction(parentId, documentId, rel.relationshipType)], this.signer, signal);
|
|
766
|
+
if (isDrive) {
|
|
767
|
+
const driveActions = await signActions([deleteNode({ id: documentId })], this.signer, signal);
|
|
768
|
+
const batchResult = await this.reactor.executeBatch({
|
|
769
|
+
jobs: [
|
|
770
|
+
{
|
|
771
|
+
key: "relationship",
|
|
772
|
+
documentId: parentId,
|
|
773
|
+
scope: getSharedActionScope(relationshipActions),
|
|
774
|
+
branch: "main",
|
|
775
|
+
actions: relationshipActions,
|
|
776
|
+
dependsOn: []
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
key: "drive",
|
|
780
|
+
documentId: parentId,
|
|
781
|
+
scope: getSharedActionScope(driveActions),
|
|
782
|
+
branch: "main",
|
|
783
|
+
actions: driveActions,
|
|
784
|
+
dependsOn: ["relationship"]
|
|
785
|
+
}
|
|
786
|
+
]
|
|
787
|
+
}, signal);
|
|
788
|
+
jobs.push(...Object.values(batchResult.jobs));
|
|
789
|
+
} else {
|
|
790
|
+
const jobInfo = await this.reactor.removeChildren(parentId, [documentId], "main", this.signer, signal);
|
|
791
|
+
jobs.push(jobInfo);
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
return jobs;
|
|
795
|
+
}
|
|
746
796
|
}
|
|
747
797
|
// src/core/reactor-builder.ts
|
|
748
798
|
import { PGlite } from "@electric-sql/pglite";
|
|
@@ -1990,22 +2040,22 @@ var DeleteQueryNode = freeze({
|
|
|
1990
2040
|
},
|
|
1991
2041
|
cloneWithOrderByItems: (node, items) => QueryNode.cloneWithOrderByItems(node, items),
|
|
1992
2042
|
cloneWithoutOrderBy: (node) => QueryNode.cloneWithoutOrderBy(node),
|
|
1993
|
-
cloneWithLimit(
|
|
2043
|
+
cloneWithLimit(deleteNode2, limit) {
|
|
1994
2044
|
return freeze({
|
|
1995
|
-
...
|
|
2045
|
+
...deleteNode2,
|
|
1996
2046
|
limit
|
|
1997
2047
|
});
|
|
1998
2048
|
},
|
|
1999
|
-
cloneWithoutLimit(
|
|
2049
|
+
cloneWithoutLimit(deleteNode2) {
|
|
2000
2050
|
return freeze({
|
|
2001
|
-
...
|
|
2051
|
+
...deleteNode2,
|
|
2002
2052
|
limit: undefined
|
|
2003
2053
|
});
|
|
2004
2054
|
},
|
|
2005
|
-
cloneWithUsing(
|
|
2055
|
+
cloneWithUsing(deleteNode2, tables) {
|
|
2006
2056
|
return freeze({
|
|
2007
|
-
...
|
|
2008
|
-
using:
|
|
2057
|
+
...deleteNode2,
|
|
2058
|
+
using: deleteNode2.using !== undefined ? UsingNode.cloneWithTables(deleteNode2.using, tables) : UsingNode.create(tables)
|
|
2009
2059
|
});
|
|
2010
2060
|
}
|
|
2011
2061
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/reactor",
|
|
3
|
-
"version": "6.0.0-dev.
|
|
3
|
+
"version": "6.0.0-dev.104",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/powerhouse-inc/powerhouse",
|
|
@@ -33,14 +33,14 @@
|
|
|
33
33
|
"tsx": "4.21.0",
|
|
34
34
|
"vitest": "3.2.4",
|
|
35
35
|
"@types/bun": "1.3.8",
|
|
36
|
-
"
|
|
37
|
-
"document-
|
|
38
|
-
"
|
|
36
|
+
"document-drive": "6.0.0-dev.104",
|
|
37
|
+
"document-model": "6.0.0-dev.104",
|
|
38
|
+
"@powerhousedao/shared": "6.0.0-dev.104"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"@electric-sql/pglite": ">=0.3.15",
|
|
42
|
-
"document-drive": "6.0.0-dev.
|
|
43
|
-
"document-model": "6.0.0-dev.
|
|
42
|
+
"document-drive": "6.0.0-dev.104",
|
|
43
|
+
"document-model": "6.0.0-dev.104"
|
|
44
44
|
},
|
|
45
45
|
"scripts": {
|
|
46
46
|
"prebuild": "pnpm run clean",
|