@powerhousedao/reactor-browser 5.2.0-staging.9 → 5.3.0-staging.2
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 +2 -2
- package/dist/src/actions/dispatch.d.ts.map +1 -1
- package/dist/src/actions/dispatch.js +4 -1
- package/dist/src/actions/dispatch.js.map +1 -1
- package/dist/src/actions/document.d.ts.map +1 -1
- package/dist/src/actions/document.js +23 -26
- package/dist/src/actions/document.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/errors.js +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/add-ph-event-handlers.d.ts.map +1 -1
- package/dist/src/hooks/add-ph-event-handlers.js +2 -0
- package/dist/src/hooks/add-ph-event-handlers.js.map +1 -1
- package/dist/src/hooks/dispatch.d.ts +1 -1
- package/dist/src/hooks/dispatch.d.ts.map +1 -1
- package/dist/src/hooks/dispatch.js +2 -2
- 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/index.d.ts +5 -4
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +5 -4
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/selected-document.d.ts +3 -1
- package/dist/src/hooks/selected-document.d.ts.map +1 -1
- package/dist/src/hooks/selected-document.js +9 -0
- package/dist/src/hooks/selected-document.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/vetra-packages.d.ts.map +1 -1
- package/dist/src/hooks/vetra-packages.js +3 -1
- package/dist/src/hooks/vetra-packages.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/pglite/drop.d.ts +1 -1
- package/dist/src/pglite/drop.d.ts.map +1 -1
- package/dist/src/pglite/drop.js +3 -2
- package/dist/src/pglite/drop.js.map +1 -1
- package/dist/src/reactor-client-document-cache.d.ts +31 -0
- package/dist/src/reactor-client-document-cache.d.ts.map +1 -0
- package/dist/src/reactor-client-document-cache.js +142 -0
- package/dist/src/reactor-client-document-cache.js.map +1 -0
- package/dist/src/reactor.d.ts +0 -3
- package/dist/src/reactor.d.ts.map +1 -1
- package/dist/src/reactor.js +0 -56
- package/dist/src/reactor.js.map +1 -1
- package/dist/src/renown/utils.d.ts.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 +2 -0
- 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/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/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.js +7 -9
- package/dist/test/drop.test.js.map +1 -1
- 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 +8 -8
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { useDispatch } from "./dispatch.js";
|
|
2
|
-
import {
|
|
2
|
+
import { useDocument, useDocuments } from "./document-cache.js";
|
|
3
3
|
/** Returns a document by id. */
|
|
4
4
|
export function useDocumentById(id) {
|
|
5
|
-
const document =
|
|
5
|
+
const document = useDocument(id);
|
|
6
6
|
const [, dispatch] = useDispatch(document);
|
|
7
7
|
return [document, dispatch];
|
|
8
8
|
}
|
|
9
9
|
/** Returns documents by ids. */
|
|
10
10
|
export function useDocumentsByIds(ids) {
|
|
11
|
-
return
|
|
11
|
+
return useDocuments(ids);
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=document-by-id.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-by-id.js","sourceRoot":"","sources":["../../../src/hooks/document-by-id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"document-by-id.js","sourceRoot":"","sources":["../../../src/hooks/document-by-id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhE,gCAAgC;AAChC,MAAM,UAAU,eAAe,CAAC,EAA6B;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAqB,QAAQ,CAAC,CAAC;IAC/D,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AACvC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,iBAAiB,CAAC,GAAgC;IAChE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -13,14 +13,30 @@ export declare const addDocumentCacheEventHandler: () => void;
|
|
|
13
13
|
* @param id - The document ID to retrieve, or null/undefined to skip retrieval
|
|
14
14
|
* @returns The document if found, or undefined if id is null/undefined
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function useDocument(id: string | null | undefined): PHDocument | undefined;
|
|
17
17
|
/**
|
|
18
18
|
* Retrieves multiple documents from the reactor using React Suspense.
|
|
19
19
|
* This hook will suspend rendering while any of the documents are loading.
|
|
20
|
+
*
|
|
21
|
+
* Uses getBatch from the document cache which handles promise caching internally,
|
|
22
|
+
* ensuring stable references for useSyncExternalStore.
|
|
23
|
+
*
|
|
20
24
|
* @param ids - Array of document IDs to retrieve, or null/undefined to skip retrieval
|
|
21
|
-
* @returns An array of documents if found, or
|
|
25
|
+
* @returns An array of documents if found, or empty array if ids is null/undefined
|
|
22
26
|
*/
|
|
23
|
-
export declare function
|
|
27
|
+
export declare function useDocuments(ids: string[] | null | undefined): PHDocument[];
|
|
28
|
+
/**
|
|
29
|
+
* Returns a function to retrieve a document from the cache.
|
|
30
|
+
* The returned function fetches and returns a document by ID.
|
|
31
|
+
* @returns A function that takes a document ID and returns a Promise of the document
|
|
32
|
+
*/
|
|
33
|
+
export declare function useGetDocument(): (id: string) => Promise<PHDocument>;
|
|
34
|
+
/**
|
|
35
|
+
* Returns a function to retrieve multiple documents from the cache.
|
|
36
|
+
* The returned function fetches and returns documents by their IDs.
|
|
37
|
+
* @returns A function that takes an array of document IDs and returns a Promise of the documents
|
|
38
|
+
*/
|
|
39
|
+
export declare function useGetDocuments(): (ids: string[]) => Promise<PHDocument[]>;
|
|
24
40
|
/**
|
|
25
41
|
* Retrieves a document from the reactor without suspending rendering.
|
|
26
42
|
* Returns the current state of the document loading operation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-cache.d.ts","sourceRoot":"","sources":["../../../src/hooks/document-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK7E,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAC7B,CAAC;AAElC,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAC7B,CAAC;AAElC,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,YACD,CAAC;AAkCzC;;;;;GAKG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"document-cache.d.ts","sourceRoot":"","sources":["../../../src/hooks/document-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK7E,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAC7B,CAAC;AAElC,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAC7B,CAAC;AAElC,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,YACD,CAAC;AAkCzC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,0BAOxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,gBAa5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,SAIrB,MAAM,yBAQd;AAED;;;;GAIG;AACH,wBAAgB,eAAe,UAIrB,MAAM,EAAE,2BAQjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;EAgBhE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { use, useSyncExternalStore } from "react";
|
|
2
|
-
import { readPromiseState } from "../
|
|
1
|
+
import { use, useCallback, useSyncExternalStore } from "react";
|
|
2
|
+
import { readPromiseState } from "../document-cache.js";
|
|
3
3
|
import { makePHEventFunctions } from "./make-ph-event-functions.js";
|
|
4
4
|
const documentEventFunctions = makePHEventFunctions("documentCache");
|
|
5
5
|
/** Returns all documents in the reactor. */
|
|
@@ -45,7 +45,7 @@ function getDocumentQueryState(promise) {
|
|
|
45
45
|
* @param id - The document ID to retrieve, or null/undefined to skip retrieval
|
|
46
46
|
* @returns The document if found, or undefined if id is null/undefined
|
|
47
47
|
*/
|
|
48
|
-
export function
|
|
48
|
+
export function useDocument(id) {
|
|
49
49
|
const documentCache = useDocumentCache();
|
|
50
50
|
const document = useSyncExternalStore((cb) => (id && documentCache ? documentCache.subscribe(id, cb) : () => { }), () => (id ? documentCache?.get(id) : undefined));
|
|
51
51
|
return document ? use(document) : undefined;
|
|
@@ -53,20 +53,47 @@ export function useGetDocument(id) {
|
|
|
53
53
|
/**
|
|
54
54
|
* Retrieves multiple documents from the reactor using React Suspense.
|
|
55
55
|
* This hook will suspend rendering while any of the documents are loading.
|
|
56
|
+
*
|
|
57
|
+
* Uses getBatch from the document cache which handles promise caching internally,
|
|
58
|
+
* ensuring stable references for useSyncExternalStore.
|
|
59
|
+
*
|
|
56
60
|
* @param ids - Array of document IDs to retrieve, or null/undefined to skip retrieval
|
|
57
|
-
* @returns An array of documents if found, or
|
|
61
|
+
* @returns An array of documents if found, or empty array if ids is null/undefined
|
|
58
62
|
*/
|
|
59
|
-
export function
|
|
63
|
+
export function useDocuments(ids) {
|
|
60
64
|
const documentCache = useDocumentCache();
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
const documents = useSyncExternalStore((cb) => ids?.length && documentCache
|
|
66
|
+
? documentCache.subscribe(ids, cb)
|
|
67
|
+
: () => { }, () => ids?.length && documentCache ? documentCache.getBatch(ids) : undefined);
|
|
68
|
+
return documents ? use(documents) : [];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns a function to retrieve a document from the cache.
|
|
72
|
+
* The returned function fetches and returns a document by ID.
|
|
73
|
+
* @returns A function that takes a document ID and returns a Promise of the document
|
|
74
|
+
*/
|
|
75
|
+
export function useGetDocument() {
|
|
76
|
+
const documentCache = useDocumentCache();
|
|
77
|
+
return useCallback((id) => {
|
|
78
|
+
if (!documentCache) {
|
|
79
|
+
return Promise.reject(new Error("Document cache not initialized"));
|
|
80
|
+
}
|
|
81
|
+
return documentCache.get(id);
|
|
82
|
+
}, [documentCache]);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Returns a function to retrieve multiple documents from the cache.
|
|
86
|
+
* The returned function fetches and returns documents by their IDs.
|
|
87
|
+
* @returns A function that takes an array of document IDs and returns a Promise of the documents
|
|
88
|
+
*/
|
|
89
|
+
export function useGetDocuments() {
|
|
90
|
+
const documentCache = useDocumentCache();
|
|
91
|
+
return useCallback((ids) => {
|
|
92
|
+
if (!documentCache) {
|
|
93
|
+
return Promise.reject(new Error("Document cache not initialized"));
|
|
94
|
+
}
|
|
95
|
+
return documentCache.getBatch(ids);
|
|
96
|
+
}, [documentCache]);
|
|
70
97
|
}
|
|
71
98
|
/**
|
|
72
99
|
* Retrieves a document from the reactor without suspending rendering.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-cache.js","sourceRoot":"","sources":["../../../src/hooks/document-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"document-cache.js","sourceRoot":"","sources":["../../../src/hooks/document-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ export { useAllowedDocumentTypes, useIsDragAndDropEnabled, useIsExternalControls
|
|
|
4
4
|
export { setPHDocumentEditorConfigByKey, setPHDriveEditorConfigByKey, } from "./config/set-config-by-key.js";
|
|
5
5
|
export { setPHDocumentEditorConfig, setPHDriveEditorConfig, setPHGlobalConfig, useSetPHDocumentEditorConfig, useSetPHDriveEditorConfig, } from "./config/set-config-by-object.js";
|
|
6
6
|
export { usePHDocumentEditorConfigByKey, usePHDriveEditorConfigByKey, } from "./config/use-value-by-key.js";
|
|
7
|
-
export { useDocumentById } from "./document-by-id.js";
|
|
8
|
-
export { useDocumentCache, useGetDocument, useGetDocumentAsync, useGetDocuments, } from "./document-cache.js";
|
|
7
|
+
export { useDocumentById, useDocumentsByIds } from "./document-by-id.js";
|
|
8
|
+
export { useDocument, useDocumentCache, useDocuments, useGetDocument, useGetDocumentAsync, useGetDocuments, } from "./document-cache.js";
|
|
9
9
|
export { useDocumentModelModuleById, useDocumentModelModules, } from "./document-model-modules.js";
|
|
10
10
|
export { useDocumentOfType } from "./document-of-type.js";
|
|
11
11
|
export { useDocumentTypes } from "./document-types.js";
|
|
@@ -13,7 +13,6 @@ export { useDriveById } from "./drive-by-id.js";
|
|
|
13
13
|
export { useDrives } from "./drives.js";
|
|
14
14
|
export { useDefaultDriveEditorModule, useDriveEditorModuleById, useDriveEditorModules, useEditorModuleById, useEditorModules, useEditorModulesForDocumentType, useFallbackEditorModule, } from "./editor-modules.js";
|
|
15
15
|
export { addFeaturesEventHandler, setFeatures, useFeatures, } from "./features.js";
|
|
16
|
-
export { isChannelSyncEnabledSync, isInspectorEnabledSync, isLegacyReadEnabledSync, isLegacyWriteEnabledSync, useChannelSyncEnabled, useInspectorEnabled, useLegacyReadEnabled, useLegacyWriteEnabled, } from "./use-feature-flags.js";
|
|
17
16
|
export { useFolderById } from "./folder-by-id.js";
|
|
18
17
|
export { useImportScriptModules } from "./import-script-modules.js";
|
|
19
18
|
export { useDocumentsInSelectedDrive, useDocumentTypesInSelectedDrive, useFileNodesInSelectedDrive, useFolderNodesInSelectedDrive, useNodesInSelectedDrive, } from "./items-in-selected-drive.js";
|
|
@@ -25,7 +24,7 @@ export { useNodePathById, useSelectedNodePath } from "./node-path.js";
|
|
|
25
24
|
export { useNodeParentFolderById, useParentFolderForSelectedNode, } from "./parent-folder.js";
|
|
26
25
|
export { useProcessorModules, useProcessors } from "./processor-modules.js";
|
|
27
26
|
export { hideRevisionHistory, setRevisionHistoryVisible, showRevisionHistory, useRevisionHistoryVisible, } from "./revision-history.js";
|
|
28
|
-
export { useSelectedDocument, useSelectedDocumentId, useSelectedDocumentOfType, } from "./selected-document.js";
|
|
27
|
+
export { useSelectedDocument, useSelectedDocumentId, useSelectedDocumentOfType, useSelectedDocumentSafe, } from "./selected-document.js";
|
|
29
28
|
export { setSelectedDrive, useSelectedDrive, useSelectedDriveId, useSelectedDriveSafe, } from "./selected-drive.js";
|
|
30
29
|
export { useSelectedFolder } from "./selected-folder.js";
|
|
31
30
|
export { setSelectedNode, useSelectedNode } from "./selected-node.js";
|
|
@@ -33,6 +32,8 @@ export { setSelectedTimelineItem, useSelectedTimelineItem, } from "./selected-ti
|
|
|
33
32
|
export { useSubgraphModules } from "./subgraph-modules.js";
|
|
34
33
|
export { useSupportedDocumentTypesInReactor } from "./supported-document-types.js";
|
|
35
34
|
export { setSelectedTimelineRevision, useSelectedTimelineRevision, } from "./timeline-revision.js";
|
|
35
|
+
export { setPHToast, usePHToast } from "./toast.js";
|
|
36
|
+
export { isChannelSyncEnabledSync, isInspectorEnabledSync, isLegacyReadEnabledSync, isLegacyWriteEnabledSync, useChannelSyncEnabled, useInspectorEnabled, useLegacyReadEnabled, useLegacyWriteEnabled, } from "./use-feature-flags.js";
|
|
36
37
|
export { useGetSwitchboardLink } from "./use-get-switchboard-link.js";
|
|
37
38
|
export { useOnDropFile } from "./use-on-drop-file.js";
|
|
38
39
|
export { useUserPermissions } from "./user-permissions.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/hooks/index.js
CHANGED
|
@@ -4,8 +4,8 @@ export { useAllowedDocumentTypes, useIsDragAndDropEnabled, useIsExternalControls
|
|
|
4
4
|
export { setPHDocumentEditorConfigByKey, setPHDriveEditorConfigByKey, } from "./config/set-config-by-key.js";
|
|
5
5
|
export { setPHDocumentEditorConfig, setPHDriveEditorConfig, setPHGlobalConfig, useSetPHDocumentEditorConfig, useSetPHDriveEditorConfig, } from "./config/set-config-by-object.js";
|
|
6
6
|
export { usePHDocumentEditorConfigByKey, usePHDriveEditorConfigByKey, } from "./config/use-value-by-key.js";
|
|
7
|
-
export { useDocumentById } from "./document-by-id.js";
|
|
8
|
-
export { useDocumentCache, useGetDocument, useGetDocumentAsync, useGetDocuments, } from "./document-cache.js";
|
|
7
|
+
export { useDocumentById, useDocumentsByIds } from "./document-by-id.js";
|
|
8
|
+
export { useDocument, useDocumentCache, useDocuments, useGetDocument, useGetDocumentAsync, useGetDocuments, } from "./document-cache.js";
|
|
9
9
|
export { useDocumentModelModuleById, useDocumentModelModules, } from "./document-model-modules.js";
|
|
10
10
|
export { useDocumentOfType } from "./document-of-type.js";
|
|
11
11
|
export { useDocumentTypes } from "./document-types.js";
|
|
@@ -13,7 +13,6 @@ export { useDriveById } from "./drive-by-id.js";
|
|
|
13
13
|
export { useDrives } from "./drives.js";
|
|
14
14
|
export { useDefaultDriveEditorModule, useDriveEditorModuleById, useDriveEditorModules, useEditorModuleById, useEditorModules, useEditorModulesForDocumentType, useFallbackEditorModule, } from "./editor-modules.js";
|
|
15
15
|
export { addFeaturesEventHandler, setFeatures, useFeatures, } from "./features.js";
|
|
16
|
-
export { isChannelSyncEnabledSync, isInspectorEnabledSync, isLegacyReadEnabledSync, isLegacyWriteEnabledSync, useChannelSyncEnabled, useInspectorEnabled, useLegacyReadEnabled, useLegacyWriteEnabled, } from "./use-feature-flags.js";
|
|
17
16
|
export { useFolderById } from "./folder-by-id.js";
|
|
18
17
|
export { useImportScriptModules } from "./import-script-modules.js";
|
|
19
18
|
export { useDocumentsInSelectedDrive, useDocumentTypesInSelectedDrive, useFileNodesInSelectedDrive, useFolderNodesInSelectedDrive, useNodesInSelectedDrive, } from "./items-in-selected-drive.js";
|
|
@@ -25,7 +24,7 @@ export { useNodePathById, useSelectedNodePath } from "./node-path.js";
|
|
|
25
24
|
export { useNodeParentFolderById, useParentFolderForSelectedNode, } from "./parent-folder.js";
|
|
26
25
|
export { useProcessorModules, useProcessors } from "./processor-modules.js";
|
|
27
26
|
export { hideRevisionHistory, setRevisionHistoryVisible, showRevisionHistory, useRevisionHistoryVisible, } from "./revision-history.js";
|
|
28
|
-
export { useSelectedDocument, useSelectedDocumentId, useSelectedDocumentOfType, } from "./selected-document.js";
|
|
27
|
+
export { useSelectedDocument, useSelectedDocumentId, useSelectedDocumentOfType, useSelectedDocumentSafe, } from "./selected-document.js";
|
|
29
28
|
export { setSelectedDrive, useSelectedDrive, useSelectedDriveId, useSelectedDriveSafe, } from "./selected-drive.js";
|
|
30
29
|
export { useSelectedFolder } from "./selected-folder.js";
|
|
31
30
|
export { setSelectedNode, useSelectedNode } from "./selected-node.js";
|
|
@@ -33,6 +32,8 @@ export { setSelectedTimelineItem, useSelectedTimelineItem, } from "./selected-ti
|
|
|
33
32
|
export { useSubgraphModules } from "./subgraph-modules.js";
|
|
34
33
|
export { useSupportedDocumentTypesInReactor } from "./supported-document-types.js";
|
|
35
34
|
export { setSelectedTimelineRevision, useSelectedTimelineRevision, } from "./timeline-revision.js";
|
|
35
|
+
export { setPHToast, usePHToast } from "./toast.js";
|
|
36
|
+
export { isChannelSyncEnabledSync, isInspectorEnabledSync, isLegacyReadEnabledSync, isLegacyWriteEnabledSync, useChannelSyncEnabled, useInspectorEnabled, useLegacyReadEnabled, useLegacyWriteEnabled, } from "./use-feature-flags.js";
|
|
36
37
|
export { useGetSwitchboardLink } from "./use-get-switchboard-link.js";
|
|
37
38
|
export { useOnDropFile } from "./use-on-drop-file.js";
|
|
38
39
|
export { useUserPermissions } from "./user-permissions.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ import type { Action, PHDocument } from "document-model";
|
|
|
3
3
|
/** Returns the selected document id */
|
|
4
4
|
export declare function useSelectedDocumentId(): string | undefined;
|
|
5
5
|
/** Returns the selected document. */
|
|
6
|
-
export declare function useSelectedDocument(): readonly [PHDocument
|
|
6
|
+
export declare function useSelectedDocument(): readonly [PHDocument, (actionOrActions: Action | Action[] | undefined, onErrors?: ((errors: Error[]) => void) | undefined, onSuccess?: ((result: PHDocument) => void) | undefined) => void];
|
|
7
|
+
/** Returns the selected document. */
|
|
8
|
+
export declare function useSelectedDocumentSafe(): readonly [PHDocument | undefined, (actionOrActions: Action | Action[] | undefined, onErrors?: ((errors: Error[]) => void) | undefined, onSuccess?: ((result: PHDocument) => void) | undefined) => void];
|
|
7
9
|
/** Returns the selected document of a specific type, throws an error if the found document has a different type */
|
|
8
10
|
export declare function useSelectedDocumentOfType(documentType: null | undefined): never[];
|
|
9
11
|
export declare function useSelectedDocumentOfType<TDocument extends PHDocument, TAction extends Action>(documentType: string): [TDocument, DocumentDispatch<TAction>];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selected-document.d.ts","sourceRoot":"","sources":["../../../src/hooks/selected-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMzD,uCAAuC;AACvC,wBAAgB,qBAAqB,uBAGpC;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"selected-document.d.ts","sourceRoot":"","sources":["../../../src/hooks/selected-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMzD,uCAAuC;AACvC,wBAAgB,qBAAqB,uBAGpC;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,gMAOlC;AAED,qCAAqC;AACrC,wBAAgB,uBAAuB,4MAGtC;AAED,mHAAmH;AACnH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,IAAI,GAAG,SAAS,GAC7B,KAAK,EAAE,CAAC;AACX,wBAAgB,yBAAyB,CACvC,SAAS,SAAS,UAAU,EAC5B,OAAO,SAAS,MAAM,EACtB,YAAY,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -10,6 +10,15 @@ export function useSelectedDocumentId() {
|
|
|
10
10
|
}
|
|
11
11
|
/** Returns the selected document. */
|
|
12
12
|
export function useSelectedDocument() {
|
|
13
|
+
const selectedDocumentId = useSelectedDocumentId();
|
|
14
|
+
const [document, dispatch] = useDocumentById(selectedDocumentId);
|
|
15
|
+
if (!document) {
|
|
16
|
+
throw new NoSelectedDocumentError();
|
|
17
|
+
}
|
|
18
|
+
return [document, dispatch];
|
|
19
|
+
}
|
|
20
|
+
/** Returns the selected document. */
|
|
21
|
+
export function useSelectedDocumentSafe() {
|
|
13
22
|
const selectedDocumentId = useSelectedDocumentId();
|
|
14
23
|
return useDocumentById(selectedDocumentId);
|
|
15
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selected-document.js","sourceRoot":"","sources":["../../../src/hooks/selected-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,uCAAuC;AACvC,MAAM,UAAU,qBAAqB;IACnC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,OAAO,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,mBAAmB;IACjC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,OAAO,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAC7C,CAAC;AAUD,MAAM,UAAU,yBAAyB,CAIvC,YAAuC;IAEvC,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAE3C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,uBAAuB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,iBAAiB,CAAqB,UAAU,EAAE,YAAY,CAAC,CAAC;AACzE,CAAC"}
|
|
1
|
+
{"version":3,"file":"selected-document.js","sourceRoot":"","sources":["../../../src/hooks/selected-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,uCAAuC;AACvC,MAAM,UAAU,qBAAqB;IACnC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,OAAO,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,mBAAmB;IACjC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,uBAAuB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AACvC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,uBAAuB;IACrC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,OAAO,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAC7C,CAAC;AAUD,MAAM,UAAU,yBAAyB,CAIvC,YAAuC;IAEvC,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAE3C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,uBAAuB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,iBAAiB,CAAqB,UAAU,EAAE,YAAY,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Returns the toast function */
|
|
2
|
+
export declare const usePHToast: () => import("../index.js").PHToastFn | undefined;
|
|
3
|
+
/** Sets the toast function */
|
|
4
|
+
export declare const setPHToast: (value: import("../index.js").PHToastFn | undefined) => void;
|
|
5
|
+
/** Adds an event handler for the toast */
|
|
6
|
+
export declare const addToastEventHandler: () => void;
|
|
7
|
+
//# sourceMappingURL=toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/hooks/toast.ts"],"names":[],"mappings":"AAIA,iCAAiC;AACjC,eAAO,MAAM,UAAU,mDAA+B,CAAC;AAEvD,8BAA8B;AAC9B,eAAO,MAAM,UAAU,8DAA+B,CAAC;AAEvD,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,YAAsC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { makePHEventFunctions } from "./make-ph-event-functions.js";
|
|
2
|
+
const toastEventFunctions = makePHEventFunctions("toast");
|
|
3
|
+
/** Returns the toast function */
|
|
4
|
+
export const usePHToast = toastEventFunctions.useValue;
|
|
5
|
+
/** Sets the toast function */
|
|
6
|
+
export const setPHToast = toastEventFunctions.setValue;
|
|
7
|
+
/** Adds an event handler for the toast */
|
|
8
|
+
export const addToastEventHandler = toastEventFunctions.addEventHandler;
|
|
9
|
+
//# sourceMappingURL=toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/hooks/toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE1D,iCAAiC;AACjC,MAAM,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC;AAEvD,8BAA8B;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vetra-packages.d.ts","sourceRoot":"","sources":["../../../src/hooks/vetra-packages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vetra-packages.d.ts","sourceRoot":"","sources":["../../../src/hooks/vetra-packages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,kCAAsC,CAAC;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,4BAA4B,YACG,CAAC;AAE7C,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,SAAS,QAQzE"}
|
|
@@ -10,6 +10,8 @@ export function setVetraPackages(vetraPackages) {
|
|
|
10
10
|
const documentModelModules = vetraPackages
|
|
11
11
|
?.flatMap((pkg) => pkg.modules.documentModelModules)
|
|
12
12
|
.filter((module) => module !== undefined);
|
|
13
|
-
|
|
13
|
+
if (documentModelModules) {
|
|
14
|
+
window.ph?.legacyReactor?.setDocumentModelModules(documentModelModules);
|
|
15
|
+
}
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=vetra-packages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vetra-packages.js","sourceRoot":"","sources":["../../../src/hooks/vetra-packages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vetra-packages.js","sourceRoot":"","sources":["../../../src/hooks/vetra-packages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,0BAA0B,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;AAEzE,uEAAuE;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,QAAQ,CAAC;AAEpE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,4BAA4B,GACvC,0BAA0B,CAAC,eAAe,CAAC;AAE7C,uDAAuD;AACvD,MAAM,UAAU,gBAAgB,CAAC,aAAyC;IACxE,0BAA0B,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,oBAAoB,GAAG,aAAa;QACxC,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC;SACnD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC5C,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from "./actions/index.js";
|
|
2
2
|
export * from "./constants.js";
|
|
3
3
|
export * from "./context/index.js";
|
|
4
|
+
export * from "./document-cache.js";
|
|
5
|
+
export * from "./reactor-client-document-cache.js";
|
|
4
6
|
export * from "./document-model.js";
|
|
5
7
|
export * from "./global/index.js";
|
|
6
8
|
export * from "./hooks/index.js";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from "./actions/index.js";
|
|
2
2
|
export * from "./constants.js";
|
|
3
3
|
export * from "./context/index.js";
|
|
4
|
+
export * from "./document-cache.js";
|
|
5
|
+
export * from "./reactor-client-document-cache.js";
|
|
4
6
|
export * from "./document-model.js";
|
|
5
7
|
export * from "./global/index.js";
|
|
6
8
|
export * from "./hooks/index.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../src/pglite/drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../src/pglite/drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,MAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
package/dist/src/pglite/drop.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { REACTOR_SCHEMA } from "@powerhousedao/reactor";
|
|
2
|
+
export async function dropAllTables(pg, schema = REACTOR_SCHEMA) {
|
|
2
3
|
await pg.exec(`
|
|
3
4
|
DO $$
|
|
4
5
|
DECLARE
|
|
5
|
-
_schemaname text := '
|
|
6
|
+
_schemaname text := '${schema}';
|
|
6
7
|
_tablename text;
|
|
7
8
|
BEGIN
|
|
8
9
|
FOR _tablename IN SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = _schemaname LOOP
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../../src/pglite/drop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../../src/pglite/drop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAU,EACV,SAAiB,cAAc;IAE/B,MAAM,EAAE,CAAC,IAAI,CAAC;;;2BAGW,MAAM;;;;;;;;;;;CAWhC,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type IReactorClient } from "@powerhousedao/reactor";
|
|
2
|
+
import type { PHDocument } from "document-model";
|
|
3
|
+
import type { IDocumentCache } from "./types/documents.js";
|
|
4
|
+
/**
|
|
5
|
+
* Document cache implementation that uses the new ReactorClient API.
|
|
6
|
+
*
|
|
7
|
+
* This cache subscribes to document change events via IReactorClient.subscribe()
|
|
8
|
+
* and automatically updates the cache when documents are created, updated, or deleted.
|
|
9
|
+
*
|
|
10
|
+
* Use this implementation when FEATURE_LEGACY_READ_ENABLED is false.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ReactorClientDocumentCache implements IDocumentCache {
|
|
13
|
+
private client;
|
|
14
|
+
private documents;
|
|
15
|
+
private batchPromises;
|
|
16
|
+
private listeners;
|
|
17
|
+
private unsubscribe;
|
|
18
|
+
constructor(client: IReactorClient);
|
|
19
|
+
private handleDocumentChange;
|
|
20
|
+
private handleDocumentDeleted;
|
|
21
|
+
private handleDocumentUpdated;
|
|
22
|
+
private invalidateBatchesContaining;
|
|
23
|
+
get(id: string, refetch?: boolean): Promise<PHDocument>;
|
|
24
|
+
getBatch(ids: string[]): Promise<PHDocument[]>;
|
|
25
|
+
subscribe(id: string | string[], callback: () => void): () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Disposes of the cache and unsubscribes from document change events.
|
|
28
|
+
*/
|
|
29
|
+
dispose(): void;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=reactor-client-document-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactor-client-document-cache.d.ts","sourceRoot":"","sources":["../../src/reactor-client-document-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AACH,qBAAa,0BAA2B,YAAW,cAAc;IASnD,OAAO,CAAC,MAAM;IAR1B,OAAO,CAAC,SAAS,CAAmD;IACpE,OAAO,CAAC,aAAa,CAGjB;IACJ,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,WAAW,CAA6B;gBAE5B,MAAM,EAAE,cAAc;IAM1C,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,qBAAqB;YAUf,qBAAqB;IAUnC,OAAO,CAAC,2BAA2B;IAQnC,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;IA2D9C,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAiBlE;;OAEG;IACH,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { DocumentChangeType, } from "@powerhousedao/reactor";
|
|
2
|
+
import { addPromiseState, readPromiseState } from "./document-cache.js";
|
|
3
|
+
/**
|
|
4
|
+
* Document cache implementation that uses the new ReactorClient API.
|
|
5
|
+
*
|
|
6
|
+
* This cache subscribes to document change events via IReactorClient.subscribe()
|
|
7
|
+
* and automatically updates the cache when documents are created, updated, or deleted.
|
|
8
|
+
*
|
|
9
|
+
* Use this implementation when FEATURE_LEGACY_READ_ENABLED is false.
|
|
10
|
+
*/
|
|
11
|
+
export class ReactorClientDocumentCache {
|
|
12
|
+
client;
|
|
13
|
+
documents = new Map();
|
|
14
|
+
batchPromises = new Map();
|
|
15
|
+
listeners = new Map();
|
|
16
|
+
unsubscribe = null;
|
|
17
|
+
constructor(client) {
|
|
18
|
+
this.client = client;
|
|
19
|
+
this.unsubscribe = client.subscribe({}, (event) => {
|
|
20
|
+
this.handleDocumentChange(event);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
handleDocumentChange(event) {
|
|
24
|
+
if (event.type === DocumentChangeType.Deleted) {
|
|
25
|
+
const documentId = event.context?.childId;
|
|
26
|
+
if (documentId) {
|
|
27
|
+
this.handleDocumentDeleted(documentId);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else if (event.type === DocumentChangeType.Updated) {
|
|
31
|
+
for (const doc of event.documents) {
|
|
32
|
+
this.handleDocumentUpdated(doc.header.id).catch(console.warn);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
handleDocumentDeleted(documentId) {
|
|
37
|
+
const listeners = this.listeners.get(documentId);
|
|
38
|
+
this.documents.delete(documentId);
|
|
39
|
+
this.invalidateBatchesContaining(documentId);
|
|
40
|
+
if (listeners) {
|
|
41
|
+
listeners.forEach((listener) => listener());
|
|
42
|
+
}
|
|
43
|
+
this.listeners.delete(documentId);
|
|
44
|
+
}
|
|
45
|
+
async handleDocumentUpdated(documentId) {
|
|
46
|
+
if (this.documents.has(documentId)) {
|
|
47
|
+
await this.get(documentId, true);
|
|
48
|
+
const listeners = this.listeners.get(documentId);
|
|
49
|
+
if (listeners) {
|
|
50
|
+
listeners.forEach((listener) => listener());
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
invalidateBatchesContaining(documentId) {
|
|
55
|
+
for (const key of this.batchPromises.keys()) {
|
|
56
|
+
if (key.split(",").includes(documentId)) {
|
|
57
|
+
this.batchPromises.delete(key);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
get(id, refetch) {
|
|
62
|
+
const currentData = this.documents.get(id);
|
|
63
|
+
if (currentData) {
|
|
64
|
+
if (currentData.status === "pending") {
|
|
65
|
+
return currentData;
|
|
66
|
+
}
|
|
67
|
+
if (!refetch) {
|
|
68
|
+
return currentData;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const documentPromise = this.client
|
|
72
|
+
.get(id)
|
|
73
|
+
.then((result) => result.document);
|
|
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
|
+
const hasDeletedDocuments = ids.some((id) => !this.documents.has(id));
|
|
81
|
+
const currentPromises = ids.map((id) => this.get(id));
|
|
82
|
+
if (hasDeletedDocuments) {
|
|
83
|
+
const batchPromise = Promise.all(currentPromises);
|
|
84
|
+
this.batchPromises.set(key, {
|
|
85
|
+
promises: currentPromises,
|
|
86
|
+
promise: batchPromise,
|
|
87
|
+
});
|
|
88
|
+
return batchPromise;
|
|
89
|
+
}
|
|
90
|
+
if (cached) {
|
|
91
|
+
const samePromises = currentPromises.every((p, i) => p === cached.promises[i]);
|
|
92
|
+
if (samePromises) {
|
|
93
|
+
return cached.promise;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const states = currentPromises.map((p) => readPromiseState(p));
|
|
97
|
+
const allFulfilled = states.every((s) => s.status === "fulfilled");
|
|
98
|
+
if (allFulfilled) {
|
|
99
|
+
const values = states.map((s) => s.value);
|
|
100
|
+
const batchPromise = Promise.resolve(values);
|
|
101
|
+
batchPromise.status = "fulfilled";
|
|
102
|
+
batchPromise.value = values;
|
|
103
|
+
this.batchPromises.set(key, {
|
|
104
|
+
promises: currentPromises,
|
|
105
|
+
promise: batchPromise,
|
|
106
|
+
});
|
|
107
|
+
return batchPromise;
|
|
108
|
+
}
|
|
109
|
+
if (cached) {
|
|
110
|
+
return cached.promise;
|
|
111
|
+
}
|
|
112
|
+
const batchPromise = Promise.all(currentPromises);
|
|
113
|
+
this.batchPromises.set(key, {
|
|
114
|
+
promises: currentPromises,
|
|
115
|
+
promise: batchPromise,
|
|
116
|
+
});
|
|
117
|
+
return batchPromise;
|
|
118
|
+
}
|
|
119
|
+
subscribe(id, callback) {
|
|
120
|
+
const ids = Array.isArray(id) ? id : [id];
|
|
121
|
+
for (const docId of ids) {
|
|
122
|
+
const listeners = this.listeners.get(docId) ?? [];
|
|
123
|
+
this.listeners.set(docId, [...listeners, callback]);
|
|
124
|
+
}
|
|
125
|
+
return () => {
|
|
126
|
+
for (const docId of ids) {
|
|
127
|
+
const listeners = this.listeners.get(docId) ?? [];
|
|
128
|
+
this.listeners.set(docId, listeners.filter((listener) => listener !== callback));
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Disposes of the cache and unsubscribes from document change events.
|
|
134
|
+
*/
|
|
135
|
+
dispose() {
|
|
136
|
+
if (this.unsubscribe) {
|
|
137
|
+
this.unsubscribe();
|
|
138
|
+
this.unsubscribe = null;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=reactor-client-document-cache.js.map
|