@powerhousedao/reactor-browser 6.0.0-dev.15 → 6.0.0-dev.151
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 +6 -3
- package/dist/index.d.ts +2703 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5561 -0
- package/dist/index.js.map +1 -0
- package/package.json +43 -55
- package/dist/src/actions/dispatch.d.ts +0 -18
- package/dist/src/actions/dispatch.d.ts.map +0 -1
- package/dist/src/actions/dispatch.js +0 -47
- package/dist/src/actions/dispatch.js.map +0 -1
- package/dist/src/actions/document.d.ts +0 -20
- package/dist/src/actions/document.d.ts.map +0 -1
- package/dist/src/actions/document.js +0 -709
- package/dist/src/actions/document.js.map +0 -1
- package/dist/src/actions/drive.d.ts +0 -12
- package/dist/src/actions/drive.d.ts.map +0 -1
- package/dist/src/actions/drive.js +0 -256
- package/dist/src/actions/drive.js.map +0 -1
- package/dist/src/actions/index.d.ts +0 -4
- package/dist/src/actions/index.d.ts.map +0 -1
- package/dist/src/actions/index.js +0 -4
- package/dist/src/actions/index.js.map +0 -1
- package/dist/src/actions/queue.d.ts +0 -10
- package/dist/src/actions/queue.d.ts.map +0 -1
- package/dist/src/actions/queue.js +0 -160
- package/dist/src/actions/queue.js.map +0 -1
- package/dist/src/actions/sign.d.ts +0 -5
- package/dist/src/actions/sign.d.ts.map +0 -1
- package/dist/src/actions/sign.js +0 -71
- package/dist/src/actions/sign.js.map +0 -1
- package/dist/src/analytics/context.d.ts +0 -33
- package/dist/src/analytics/context.d.ts.map +0 -1
- package/dist/src/analytics/context.js +0 -148
- package/dist/src/analytics/context.js.map +0 -1
- package/dist/src/analytics/hooks/analytics-query.d.ts +0 -31
- package/dist/src/analytics/hooks/analytics-query.d.ts.map +0 -1
- package/dist/src/analytics/hooks/analytics-query.js +0 -157
- package/dist/src/analytics/hooks/analytics-query.js.map +0 -1
- package/dist/src/analytics/hooks/document-timeline.d.ts +0 -19
- package/dist/src/analytics/hooks/document-timeline.d.ts.map +0 -1
- package/dist/src/analytics/hooks/document-timeline.js +0 -10
- package/dist/src/analytics/hooks/document-timeline.js.map +0 -1
- package/dist/src/analytics/hooks/index.d.ts +0 -4
- package/dist/src/analytics/hooks/index.d.ts.map +0 -1
- package/dist/src/analytics/hooks/index.js +0 -4
- package/dist/src/analytics/hooks/index.js.map +0 -1
- package/dist/src/analytics/hooks/timeline-items.d.ts +0 -25
- package/dist/src/analytics/hooks/timeline-items.d.ts.map +0 -1
- package/dist/src/analytics/hooks/timeline-items.js +0 -104
- package/dist/src/analytics/hooks/timeline-items.js.map +0 -1
- package/dist/src/analytics/index.d.ts +0 -3
- package/dist/src/analytics/index.d.ts.map +0 -1
- package/dist/src/analytics/index.js +0 -3
- package/dist/src/analytics/index.js.map +0 -1
- package/dist/src/analytics/store/browser.d.ts +0 -2
- package/dist/src/analytics/store/browser.d.ts.map +0 -1
- package/dist/src/analytics/store/browser.js +0 -2
- package/dist/src/analytics/store/browser.js.map +0 -1
- package/dist/src/analytics/store/memory.d.ts +0 -2
- package/dist/src/analytics/store/memory.d.ts.map +0 -1
- package/dist/src/analytics/store/memory.js +0 -2
- package/dist/src/analytics/store/memory.js.map +0 -1
- package/dist/src/analytics/types.d.ts +0 -9
- package/dist/src/analytics/types.d.ts.map +0 -1
- package/dist/src/analytics/types.js +0 -2
- package/dist/src/analytics/types.js.map +0 -1
- package/dist/src/analytics.d.ts +0 -3
- package/dist/src/analytics.d.ts.map +0 -1
- package/dist/src/analytics.js +0 -3
- package/dist/src/analytics.js.map +0 -1
- package/dist/src/connect.d.ts +0 -2
- package/dist/src/connect.d.ts.map +0 -1
- package/dist/src/connect.js +0 -2
- package/dist/src/connect.js.map +0 -1
- package/dist/src/constants.d.ts +0 -3
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/constants.js +0 -3
- package/dist/src/constants.js.map +0 -1
- package/dist/src/context/index.d.ts +0 -2
- package/dist/src/context/index.d.ts.map +0 -1
- package/dist/src/context/index.js +0 -2
- package/dist/src/context/index.js.map +0 -1
- package/dist/src/context/read-mode.d.ts +0 -14
- package/dist/src/context/read-mode.d.ts.map +0 -1
- package/dist/src/context/read-mode.js +0 -177
- package/dist/src/context/read-mode.js.map +0 -1
- package/dist/src/document-cache.d.ts +0 -17
- package/dist/src/document-cache.d.ts.map +0 -1
- package/dist/src/document-cache.js +0 -143
- package/dist/src/document-cache.js.map +0 -1
- package/dist/src/document-model.d.ts +0 -4
- package/dist/src/document-model.d.ts.map +0 -1
- package/dist/src/document-model.js +0 -6
- package/dist/src/document-model.js.map +0 -1
- package/dist/src/errors.d.ts +0 -16
- package/dist/src/errors.d.ts.map +0 -1
- package/dist/src/errors.js +0 -27
- package/dist/src/errors.js.map +0 -1
- package/dist/src/global/core.d.ts +0 -5
- package/dist/src/global/core.d.ts.map +0 -1
- package/dist/src/global/core.js +0 -22
- package/dist/src/global/core.js.map +0 -1
- package/dist/src/global/index.d.ts +0 -2
- package/dist/src/global/index.d.ts.map +0 -1
- package/dist/src/global/index.js +0 -2
- package/dist/src/global/index.js.map +0 -1
- package/dist/src/global/types.d.ts +0 -17
- package/dist/src/global/types.d.ts.map +0 -1
- package/dist/src/global/types.js +0 -2
- package/dist/src/global/types.js.map +0 -1
- package/dist/src/hooks/add-ph-event-handlers.d.ts +0 -2
- package/dist/src/hooks/add-ph-event-handlers.d.ts.map +0 -1
- package/dist/src/hooks/add-ph-event-handlers.js +0 -109
- package/dist/src/hooks/add-ph-event-handlers.js.map +0 -1
- package/dist/src/hooks/allowed-document-model-modules.d.ts +0 -2
- package/dist/src/hooks/allowed-document-model-modules.d.ts.map +0 -1
- package/dist/src/hooks/allowed-document-model-modules.js +0 -10
- package/dist/src/hooks/allowed-document-model-modules.js.map +0 -1
- package/dist/src/hooks/child-nodes.d.ts +0 -4
- package/dist/src/hooks/child-nodes.d.ts.map +0 -1
- package/dist/src/hooks/child-nodes.js +0 -15
- package/dist/src/hooks/child-nodes.js.map +0 -1
- package/dist/src/hooks/config/connect.d.ts +0 -96
- package/dist/src/hooks/config/connect.d.ts.map +0 -1
- package/dist/src/hooks/config/connect.js +0 -210
- package/dist/src/hooks/config/connect.js.map +0 -1
- package/dist/src/hooks/config/editor.d.ts +0 -32
- package/dist/src/hooks/config/editor.d.ts.map +0 -1
- package/dist/src/hooks/config/editor.js +0 -43
- package/dist/src/hooks/config/editor.js.map +0 -1
- package/dist/src/hooks/config/set-config-by-key.d.ts +0 -5
- package/dist/src/hooks/config/set-config-by-key.d.ts.map +0 -1
- package/dist/src/hooks/config/set-config-by-key.js +0 -15
- package/dist/src/hooks/config/set-config-by-key.js.map +0 -1
- package/dist/src/hooks/config/set-config-by-object.d.ts +0 -31
- package/dist/src/hooks/config/set-config-by-object.d.ts.map +0 -1
- package/dist/src/hooks/config/set-config-by-object.js +0 -84
- package/dist/src/hooks/config/set-config-by-object.js.map +0 -1
- package/dist/src/hooks/config/use-value-by-key.d.ts +0 -13
- package/dist/src/hooks/config/use-value-by-key.d.ts.map +0 -1
- package/dist/src/hooks/config/use-value-by-key.js +0 -23
- package/dist/src/hooks/config/use-value-by-key.js.map +0 -1
- package/dist/src/hooks/config/utils.d.ts +0 -3
- package/dist/src/hooks/config/utils.d.ts.map +0 -1
- package/dist/src/hooks/config/utils.js +0 -6
- package/dist/src/hooks/config/utils.js.map +0 -1
- package/dist/src/hooks/connect.d.ts +0 -16
- package/dist/src/hooks/connect.d.ts.map +0 -1
- package/dist/src/hooks/connect.js +0 -16
- package/dist/src/hooks/connect.js.map +0 -1
- package/dist/src/hooks/crypto.d.ts +0 -9
- package/dist/src/hooks/crypto.d.ts.map +0 -1
- package/dist/src/hooks/crypto.js +0 -13
- package/dist/src/hooks/crypto.js.map +0 -1
- package/dist/src/hooks/did.d.ts +0 -2
- package/dist/src/hooks/did.d.ts.map +0 -1
- package/dist/src/hooks/did.js +0 -3
- package/dist/src/hooks/did.js.map +0 -1
- package/dist/src/hooks/dispatch.d.ts +0 -9
- package/dist/src/hooks/dispatch.d.ts.map +0 -1
- package/dist/src/hooks/dispatch.js +0 -20
- package/dist/src/hooks/dispatch.js.map +0 -1
- package/dist/src/hooks/document-by-id.d.ts +0 -6
- package/dist/src/hooks/document-by-id.d.ts.map +0 -1
- package/dist/src/hooks/document-by-id.js +0 -13
- package/dist/src/hooks/document-by-id.js.map +0 -1
- package/dist/src/hooks/document-cache.d.ts +0 -76
- package/dist/src/hooks/document-cache.d.ts.map +0 -1
- package/dist/src/hooks/document-cache.js +0 -124
- package/dist/src/hooks/document-cache.js.map +0 -1
- package/dist/src/hooks/document-model-modules.d.ts +0 -4
- package/dist/src/hooks/document-model-modules.d.ts.map +0 -1
- package/dist/src/hooks/document-model-modules.js +0 -10
- package/dist/src/hooks/document-model-modules.js.map +0 -1
- package/dist/src/hooks/document-of-type.d.ts +0 -5
- package/dist/src/hooks/document-of-type.d.ts.map +0 -1
- package/dist/src/hooks/document-of-type.js +0 -22
- package/dist/src/hooks/document-of-type.js.map +0 -1
- package/dist/src/hooks/document-types.d.ts +0 -7
- package/dist/src/hooks/document-types.d.ts.map +0 -1
- package/dist/src/hooks/document-types.js +0 -13
- package/dist/src/hooks/document-types.js.map +0 -1
- package/dist/src/hooks/drive-by-id.d.ts +0 -4
- package/dist/src/hooks/drive-by-id.d.ts.map +0 -1
- package/dist/src/hooks/drive-by-id.js +0 -12
- package/dist/src/hooks/drive-by-id.js.map +0 -1
- package/dist/src/hooks/drives.d.ts +0 -9
- package/dist/src/hooks/drives.d.ts.map +0 -1
- package/dist/src/hooks/drives.js +0 -9
- package/dist/src/hooks/drives.js.map +0 -1
- package/dist/src/hooks/editor-modules.d.ts +0 -9
- package/dist/src/hooks/editor-modules.d.ts.map +0 -1
- package/dist/src/hooks/editor-modules.js +0 -43
- package/dist/src/hooks/editor-modules.js.map +0 -1
- package/dist/src/hooks/features.d.ts +0 -5
- package/dist/src/hooks/features.d.ts.map +0 -1
- package/dist/src/hooks/features.js +0 -6
- package/dist/src/hooks/features.js.map +0 -1
- package/dist/src/hooks/folder-by-id.d.ts +0 -3
- package/dist/src/hooks/folder-by-id.d.ts.map +0 -1
- package/dist/src/hooks/folder-by-id.js +0 -6
- package/dist/src/hooks/folder-by-id.js.map +0 -1
- package/dist/src/hooks/import-script-modules.d.ts +0 -3
- package/dist/src/hooks/import-script-modules.d.ts.map +0 -1
- package/dist/src/hooks/import-script-modules.js +0 -6
- package/dist/src/hooks/import-script-modules.js.map +0 -1
- package/dist/src/hooks/index.d.ts +0 -41
- package/dist/src/hooks/index.d.ts.map +0 -1
- package/dist/src/hooks/index.js +0 -41
- package/dist/src/hooks/index.js.map +0 -1
- package/dist/src/hooks/items-in-selected-drive.d.ts +0 -13
- package/dist/src/hooks/items-in-selected-drive.d.ts.map +0 -1
- package/dist/src/hooks/items-in-selected-drive.js +0 -35
- package/dist/src/hooks/items-in-selected-drive.js.map +0 -1
- package/dist/src/hooks/items-in-selected-folder.d.ts +0 -11
- package/dist/src/hooks/items-in-selected-folder.d.ts.map +0 -1
- package/dist/src/hooks/items-in-selected-folder.js +0 -33
- package/dist/src/hooks/items-in-selected-folder.js.map +0 -1
- package/dist/src/hooks/loading.d.ts +0 -2
- package/dist/src/hooks/loading.d.ts.map +0 -1
- package/dist/src/hooks/loading.js +0 -3
- package/dist/src/hooks/loading.js.map +0 -1
- package/dist/src/hooks/login-status.d.ts +0 -2
- package/dist/src/hooks/login-status.d.ts.map +0 -1
- package/dist/src/hooks/login-status.js +0 -3
- package/dist/src/hooks/login-status.js.map +0 -1
- package/dist/src/hooks/make-ph-event-functions.d.ts +0 -7
- package/dist/src/hooks/make-ph-event-functions.d.ts.map +0 -1
- package/dist/src/hooks/make-ph-event-functions.js +0 -46
- package/dist/src/hooks/make-ph-event-functions.js.map +0 -1
- package/dist/src/hooks/modals.d.ts +0 -17
- package/dist/src/hooks/modals.d.ts.map +0 -1
- package/dist/src/hooks/modals.js +0 -26
- package/dist/src/hooks/modals.js.map +0 -1
- package/dist/src/hooks/node-actions.d.ts +0 -12
- package/dist/src/hooks/node-actions.d.ts.map +0 -1
- package/dist/src/hooks/node-actions.js +0 -108
- package/dist/src/hooks/node-actions.js.map +0 -1
- package/dist/src/hooks/node-by-id.d.ts +0 -4
- package/dist/src/hooks/node-by-id.d.ts.map +0 -1
- package/dist/src/hooks/node-by-id.js +0 -7
- package/dist/src/hooks/node-by-id.js.map +0 -1
- package/dist/src/hooks/node-path.d.ts +0 -6
- package/dist/src/hooks/node-path.d.ts.map +0 -1
- package/dist/src/hooks/node-path.js +0 -23
- package/dist/src/hooks/node-path.js.map +0 -1
- package/dist/src/hooks/parent-folder.d.ts +0 -4
- package/dist/src/hooks/parent-folder.d.ts.map +0 -1
- package/dist/src/hooks/parent-folder.js +0 -13
- package/dist/src/hooks/parent-folder.js.map +0 -1
- package/dist/src/hooks/processor-manager.d.ts +0 -9
- package/dist/src/hooks/processor-manager.d.ts.map +0 -1
- package/dist/src/hooks/processor-manager.js +0 -9
- package/dist/src/hooks/processor-manager.js.map +0 -1
- package/dist/src/hooks/processor-modules.d.ts +0 -4
- package/dist/src/hooks/processor-modules.d.ts.map +0 -1
- package/dist/src/hooks/processor-modules.js +0 -12
- package/dist/src/hooks/processor-modules.js.map +0 -1
- package/dist/src/hooks/reactor.d.ts +0 -42
- package/dist/src/hooks/reactor.d.ts.map +0 -1
- package/dist/src/hooks/reactor.js +0 -44
- package/dist/src/hooks/reactor.js.map +0 -1
- package/dist/src/hooks/renown.d.ts +0 -8
- package/dist/src/hooks/renown.d.ts.map +0 -1
- package/dist/src/hooks/renown.js +0 -9
- package/dist/src/hooks/renown.js.map +0 -1
- package/dist/src/hooks/revision-history.d.ts +0 -11
- package/dist/src/hooks/revision-history.d.ts.map +0 -1
- package/dist/src/hooks/revision-history.js +0 -17
- package/dist/src/hooks/revision-history.js.map +0 -1
- package/dist/src/hooks/selected-document.d.ts +0 -12
- package/dist/src/hooks/selected-document.d.ts.map +0 -1
- package/dist/src/hooks/selected-document.js +0 -35
- package/dist/src/hooks/selected-document.js.map +0 -1
- package/dist/src/hooks/selected-drive.d.ts +0 -13
- package/dist/src/hooks/selected-drive.d.ts.map +0 -1
- package/dist/src/hooks/selected-drive.js +0 -63
- package/dist/src/hooks/selected-drive.js.map +0 -1
- package/dist/src/hooks/selected-folder.d.ts +0 -4
- package/dist/src/hooks/selected-folder.d.ts.map +0 -1
- package/dist/src/hooks/selected-folder.js +0 -10
- package/dist/src/hooks/selected-folder.js.map +0 -1
- package/dist/src/hooks/selected-node.d.ts +0 -9
- package/dist/src/hooks/selected-node.d.ts.map +0 -1
- package/dist/src/hooks/selected-node.js +0 -54
- package/dist/src/hooks/selected-node.js.map +0 -1
- package/dist/src/hooks/selected-timeline-item.d.ts +0 -7
- package/dist/src/hooks/selected-timeline-item.d.ts.map +0 -1
- package/dist/src/hooks/selected-timeline-item.js +0 -9
- package/dist/src/hooks/selected-timeline-item.js.map +0 -1
- package/dist/src/hooks/subgraph-modules.d.ts +0 -3
- package/dist/src/hooks/subgraph-modules.d.ts.map +0 -1
- package/dist/src/hooks/subgraph-modules.js +0 -6
- package/dist/src/hooks/subgraph-modules.js.map +0 -1
- package/dist/src/hooks/supported-document-types.d.ts +0 -3
- package/dist/src/hooks/supported-document-types.d.ts.map +0 -1
- package/dist/src/hooks/supported-document-types.js +0 -7
- package/dist/src/hooks/supported-document-types.js.map +0 -1
- package/dist/src/hooks/timeline-revision.d.ts +0 -7
- package/dist/src/hooks/timeline-revision.d.ts.map +0 -1
- package/dist/src/hooks/timeline-revision.js +0 -9
- package/dist/src/hooks/timeline-revision.js.map +0 -1
- package/dist/src/hooks/toast.d.ts +0 -7
- package/dist/src/hooks/toast.d.ts.map +0 -1
- package/dist/src/hooks/toast.js +0 -9
- package/dist/src/hooks/toast.js.map +0 -1
- package/dist/src/hooks/use-feature-flags.d.ts +0 -36
- package/dist/src/hooks/use-feature-flags.d.ts.map +0 -1
- package/dist/src/hooks/use-feature-flags.js +0 -73
- package/dist/src/hooks/use-feature-flags.js.map +0 -1
- package/dist/src/hooks/use-get-switchboard-link.d.ts +0 -14
- package/dist/src/hooks/use-get-switchboard-link.d.ts.map +0 -1
- package/dist/src/hooks/use-get-switchboard-link.js +0 -38
- package/dist/src/hooks/use-get-switchboard-link.js.map +0 -1
- package/dist/src/hooks/use-on-drop-file.d.ts +0 -3
- package/dist/src/hooks/use-on-drop-file.d.ts.map +0 -1
- package/dist/src/hooks/use-on-drop-file.js +0 -21
- package/dist/src/hooks/use-on-drop-file.js.map +0 -1
- package/dist/src/hooks/user-permissions.d.ts +0 -5
- package/dist/src/hooks/user-permissions.d.ts.map +0 -1
- package/dist/src/hooks/user-permissions.js +0 -17
- package/dist/src/hooks/user-permissions.js.map +0 -1
- package/dist/src/hooks/user.d.ts +0 -8
- package/dist/src/hooks/user.d.ts.map +0 -1
- package/dist/src/hooks/user.js +0 -9
- package/dist/src/hooks/user.js.map +0 -1
- package/dist/src/hooks/vetra-packages.d.ts +0 -8
- package/dist/src/hooks/vetra-packages.d.ts.map +0 -1
- package/dist/src/hooks/vetra-packages.js +0 -17
- package/dist/src/hooks/vetra-packages.js.map +0 -1
- package/dist/src/index.d.ts +0 -15
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -15
- package/dist/src/index.js.map +0 -1
- package/dist/src/pglite/drop.d.ts +0 -3
- package/dist/src/pglite/drop.d.ts.map +0 -1
- package/dist/src/pglite/drop.js +0 -19
- package/dist/src/pglite/drop.js.map +0 -1
- package/dist/src/pglite/hooks/index.d.ts +0 -2
- package/dist/src/pglite/hooks/index.d.ts.map +0 -1
- package/dist/src/pglite/hooks/index.js +0 -2
- package/dist/src/pglite/hooks/index.js.map +0 -1
- package/dist/src/pglite/hooks/usePGlite.d.ts +0 -11
- package/dist/src/pglite/hooks/usePGlite.d.ts.map +0 -1
- package/dist/src/pglite/hooks/usePGlite.js +0 -37
- package/dist/src/pglite/hooks/usePGlite.js.map +0 -1
- package/dist/src/pglite/index.d.ts +0 -3
- package/dist/src/pglite/index.d.ts.map +0 -1
- package/dist/src/pglite/index.js +0 -3
- package/dist/src/pglite/index.js.map +0 -1
- package/dist/src/reactor-client-document-cache.d.ts +0 -31
- package/dist/src/reactor-client-document-cache.d.ts.map +0 -1
- package/dist/src/reactor-client-document-cache.js +0 -142
- package/dist/src/reactor-client-document-cache.js.map +0 -1
- package/dist/src/reactor.d.ts +0 -18
- package/dist/src/reactor.d.ts.map +0 -1
- package/dist/src/reactor.js +0 -162
- package/dist/src/reactor.js.map +0 -1
- package/dist/src/relational/hooks/index.d.ts +0 -3
- package/dist/src/relational/hooks/index.d.ts.map +0 -1
- package/dist/src/relational/hooks/index.js +0 -3
- package/dist/src/relational/hooks/index.js.map +0 -1
- package/dist/src/relational/hooks/useRelationalDb.d.ts +0 -12
- package/dist/src/relational/hooks/useRelationalDb.d.ts.map +0 -1
- package/dist/src/relational/hooks/useRelationalDb.js +0 -36
- package/dist/src/relational/hooks/useRelationalDb.js.map +0 -1
- package/dist/src/relational/hooks/useRelationalQuery.d.ts +0 -15
- package/dist/src/relational/hooks/useRelationalQuery.d.ts.map +0 -1
- package/dist/src/relational/hooks/useRelationalQuery.js +0 -76
- package/dist/src/relational/hooks/useRelationalQuery.js.map +0 -1
- package/dist/src/relational/index.d.ts +0 -3
- package/dist/src/relational/index.d.ts.map +0 -1
- package/dist/src/relational/index.js +0 -3
- package/dist/src/relational/index.js.map +0 -1
- package/dist/src/relational/utils/createProcessorQuery.d.ts +0 -17
- package/dist/src/relational/utils/createProcessorQuery.d.ts.map +0 -1
- package/dist/src/relational/utils/createProcessorQuery.js +0 -24
- package/dist/src/relational/utils/createProcessorQuery.js.map +0 -1
- package/dist/src/relational/utils/index.d.ts +0 -2
- package/dist/src/relational/utils/index.d.ts.map +0 -1
- package/dist/src/relational/utils/index.js +0 -2
- package/dist/src/relational/utils/index.js.map +0 -1
- package/dist/src/renown/constants.d.ts +0 -130
- package/dist/src/renown/constants.d.ts.map +0 -1
- package/dist/src/renown/constants.js +0 -40
- package/dist/src/renown/constants.js.map +0 -1
- package/dist/src/renown/index.d.ts +0 -3
- package/dist/src/renown/index.d.ts.map +0 -1
- package/dist/src/renown/index.js +0 -3
- package/dist/src/renown/index.js.map +0 -1
- package/dist/src/renown/utils.d.ts +0 -6
- package/dist/src/renown/utils.d.ts.map +0 -1
- package/dist/src/renown/utils.js +0 -56
- package/dist/src/renown/utils.js.map +0 -1
- package/dist/src/storage/index.d.ts +0 -2
- package/dist/src/storage/index.d.ts.map +0 -1
- package/dist/src/storage/index.js +0 -2
- package/dist/src/storage/index.js.map +0 -1
- package/dist/src/storage/types.d.ts +0 -6
- package/dist/src/storage/types.d.ts.map +0 -1
- package/dist/src/storage/types.js +0 -2
- package/dist/src/storage/types.js.map +0 -1
- package/dist/src/types/config.d.ts +0 -96
- package/dist/src/types/config.d.ts.map +0 -1
- package/dist/src/types/config.js +0 -2
- package/dist/src/types/config.js.map +0 -1
- package/dist/src/types/documents.d.ts +0 -26
- package/dist/src/types/documents.d.ts.map +0 -1
- package/dist/src/types/documents.js +0 -2
- package/dist/src/types/documents.js.map +0 -1
- package/dist/src/types/global.d.ts +0 -56
- package/dist/src/types/global.d.ts.map +0 -1
- package/dist/src/types/global.js +0 -2
- package/dist/src/types/global.js.map +0 -1
- package/dist/src/types/index.d.ts +0 -10
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -2
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/modals.d.ts +0 -34
- package/dist/src/types/modals.d.ts.map +0 -1
- package/dist/src/types/modals.js +0 -2
- package/dist/src/types/modals.js.map +0 -1
- package/dist/src/types/reactor.d.ts +0 -2
- package/dist/src/types/reactor.d.ts.map +0 -1
- package/dist/src/types/reactor.js +0 -2
- package/dist/src/types/reactor.js.map +0 -1
- package/dist/src/types/timeline.d.ts +0 -24
- package/dist/src/types/timeline.d.ts.map +0 -1
- package/dist/src/types/timeline.js +0 -2
- package/dist/src/types/timeline.js.map +0 -1
- package/dist/src/types/toast.d.ts +0 -9
- package/dist/src/types/toast.d.ts.map +0 -1
- package/dist/src/types/toast.js +0 -2
- package/dist/src/types/toast.js.map +0 -1
- package/dist/src/types/upload.d.ts +0 -16
- package/dist/src/types/upload.d.ts.map +0 -1
- package/dist/src/types/upload.js +0 -2
- package/dist/src/types/upload.js.map +0 -1
- package/dist/src/types/vetra.d.ts +0 -60
- package/dist/src/types/vetra.d.ts.map +0 -1
- package/dist/src/types/vetra.js +0 -2
- package/dist/src/types/vetra.js.map +0 -1
- package/dist/src/utils/documents.d.ts +0 -2
- package/dist/src/utils/documents.d.ts.map +0 -1
- package/dist/src/utils/documents.js +0 -20
- package/dist/src/utils/documents.js.map +0 -1
- package/dist/src/utils/drive-url.d.ts +0 -2
- package/dist/src/utils/drive-url.d.ts.map +0 -1
- package/dist/src/utils/drive-url.js +0 -3
- package/dist/src/utils/drive-url.js.map +0 -1
- package/dist/src/utils/drives.d.ts +0 -36
- package/dist/src/utils/drives.d.ts.map +0 -1
- package/dist/src/utils/drives.js +0 -142
- package/dist/src/utils/drives.js.map +0 -1
- package/dist/src/utils/export-document.d.ts +0 -3
- package/dist/src/utils/export-document.d.ts.map +0 -1
- package/dist/src/utils/export-document.js +0 -18
- package/dist/src/utils/export-document.js.map +0 -1
- package/dist/src/utils/get-revision-from-date.d.ts +0 -3
- package/dist/src/utils/get-revision-from-date.d.ts.map +0 -1
- package/dist/src/utils/get-revision-from-date.js +0 -10
- package/dist/src/utils/get-revision-from-date.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -12
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -12
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/nodes.d.ts +0 -8
- package/dist/src/utils/nodes.d.ts.map +0 -1
- package/dist/src/utils/nodes.js +0 -17
- package/dist/src/utils/nodes.js.map +0 -1
- package/dist/src/utils/switchboard.d.ts +0 -7
- package/dist/src/utils/switchboard.d.ts.map +0 -1
- package/dist/src/utils/switchboard.js +0 -76
- package/dist/src/utils/switchboard.js.map +0 -1
- package/dist/src/utils/url.d.ts +0 -29
- package/dist/src/utils/url.d.ts.map +0 -1
- package/dist/src/utils/url.js +0 -77
- package/dist/src/utils/url.js.map +0 -1
- package/dist/src/utils/user.d.ts +0 -5
- package/dist/src/utils/user.d.ts.map +0 -1
- package/dist/src/utils/user.js +0 -15
- package/dist/src/utils/user.js.map +0 -1
- package/dist/src/utils/validate-document.d.ts +0 -3
- package/dist/src/utils/validate-document.d.ts.map +0 -1
- package/dist/src/utils/validate-document.js +0 -38
- package/dist/src/utils/validate-document.js.map +0 -1
- package/dist/src/utils/vetra.d.ts +0 -7
- package/dist/src/utils/vetra.d.ts.map +0 -1
- package/dist/src/utils/vetra.js +0 -86
- package/dist/src/utils/vetra.js.map +0 -1
- package/dist/test/analytics.test.d.ts +0 -2
- package/dist/test/analytics.test.d.ts.map +0 -1
- package/dist/test/analytics.test.js +0 -263
- package/dist/test/analytics.test.js.map +0 -1
- package/dist/test/document-cache.test.d.ts +0 -2
- package/dist/test/document-cache.test.d.ts.map +0 -1
- package/dist/test/document-cache.test.js +0 -457
- package/dist/test/document-cache.test.js.map +0 -1
- package/dist/test/drop.test.d.ts +0 -2
- package/dist/test/drop.test.d.ts.map +0 -1
- package/dist/test/drop.test.js +0 -86
- package/dist/test/drop.test.js.map +0 -1
- package/dist/test/getSwitchboardUrl.test.d.ts +0 -2
- package/dist/test/getSwitchboardUrl.test.d.ts.map +0 -1
- package/dist/test/getSwitchboardUrl.test.js +0 -107
- package/dist/test/getSwitchboardUrl.test.js.map +0 -1
- package/dist/test/hooks/document-cache.test.d.ts +0 -2
- package/dist/test/hooks/document-cache.test.d.ts.map +0 -1
- package/dist/test/hooks/document-cache.test.js +0 -642
- package/dist/test/hooks/document-cache.test.js.map +0 -1
- package/dist/test/reactor.test.d.ts +0 -2
- package/dist/test/reactor.test.d.ts.map +0 -1
- package/dist/test/reactor.test.js +0 -26
- package/dist/test/reactor.test.js.map +0 -1
- package/dist/test/switchboard.test.d.ts +0 -2
- package/dist/test/switchboard.test.d.ts.map +0 -1
- package/dist/test/switchboard.test.js +0 -27
- package/dist/test/switchboard.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -24
- package/dist/vitest.config.js.map +0 -1
|
@@ -1,709 +0,0 @@
|
|
|
1
|
-
import { addFile as baseAddFile, addFolder as baseAddFolder, copyNode as baseCopyNode, deleteNode as baseDeleteNode, moveNode as baseMoveNode, updateFile as baseUpdateFile, generateNodesCopy, handleTargetNameCollisions, isFileNode, isFolderNode, logger, updateNode, } from "document-drive";
|
|
2
|
-
import { documentModelDocumentType } from "document-model";
|
|
3
|
-
import { baseLoadFromInput, baseSaveToFileHandle, createPresignedHeader, createZip, generateId, replayDocument, } from "document-model/core";
|
|
4
|
-
import { UnsupportedDocumentTypeError } from "../errors.js";
|
|
5
|
-
import { isLegacyReadEnabledSync, isLegacyWriteEnabledSync, } from "../hooks/use-feature-flags.js";
|
|
6
|
-
import { isDocumentTypeSupported } from "../utils/documents.js";
|
|
7
|
-
import { getUserPermissions } from "../utils/user.js";
|
|
8
|
-
import { queueActions, queueOperations, uploadOperations } from "./queue.js";
|
|
9
|
-
async function isDocumentInLocation(document, driveId, parentFolder) {
|
|
10
|
-
const useLegacy = isLegacyReadEnabledSync();
|
|
11
|
-
try {
|
|
12
|
-
if (useLegacy) {
|
|
13
|
-
const reactor = window.ph?.legacyReactor;
|
|
14
|
-
if (!reactor) {
|
|
15
|
-
throw new Error("Legacy reactor not initialized");
|
|
16
|
-
}
|
|
17
|
-
// Get the drive and check its nodes
|
|
18
|
-
const drive = await reactor.getDrive(driveId);
|
|
19
|
-
// Case 1: Check for duplicate by ID
|
|
20
|
-
const nodeById = drive.state.global.nodes.find((node) => node.id === document.header.id);
|
|
21
|
-
if (nodeById && nodeById.parentFolder === (parentFolder ?? null)) {
|
|
22
|
-
return {
|
|
23
|
-
isDuplicate: true,
|
|
24
|
-
duplicateType: "id",
|
|
25
|
-
nodeId: nodeById.id,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
// Case 2: Check for duplicate by name + type in same parent folder
|
|
29
|
-
const nodeByNameAndType = drive.state.global.nodes.find((node) => isFileNode(node) &&
|
|
30
|
-
node.name === document.header.name &&
|
|
31
|
-
node.documentType === document.header.documentType &&
|
|
32
|
-
node.parentFolder === (parentFolder ?? null));
|
|
33
|
-
if (nodeByNameAndType) {
|
|
34
|
-
return {
|
|
35
|
-
isDuplicate: true,
|
|
36
|
-
duplicateType: "name",
|
|
37
|
-
nodeId: nodeByNameAndType.id,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return { isDuplicate: false };
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
const reactorClient = window.ph?.reactorClient;
|
|
44
|
-
if (!reactorClient) {
|
|
45
|
-
throw new Error("ReactorClient not initialized");
|
|
46
|
-
}
|
|
47
|
-
// Get the drive and check its nodes
|
|
48
|
-
const { document: drive } = await reactorClient.get(driveId);
|
|
49
|
-
// Case 1: Check for duplicate by ID
|
|
50
|
-
const nodeById = drive.state.global.nodes.find((node) => node.id === document.header.id);
|
|
51
|
-
if (nodeById && nodeById.parentFolder === (parentFolder ?? null)) {
|
|
52
|
-
return {
|
|
53
|
-
isDuplicate: true,
|
|
54
|
-
duplicateType: "id",
|
|
55
|
-
nodeId: nodeById.id,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
// Case 2: Check for duplicate by name + type in same parent folder
|
|
59
|
-
const nodeByNameAndType = drive.state.global.nodes.find((node) => isFileNode(node) &&
|
|
60
|
-
node.name === document.header.name &&
|
|
61
|
-
node.documentType === document.header.documentType &&
|
|
62
|
-
node.parentFolder === (parentFolder ?? null));
|
|
63
|
-
if (nodeByNameAndType) {
|
|
64
|
-
return {
|
|
65
|
-
isDuplicate: true,
|
|
66
|
-
duplicateType: "name",
|
|
67
|
-
nodeId: nodeByNameAndType.id,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
return { isDuplicate: false };
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch {
|
|
74
|
-
// Drive doesn't exist or other error
|
|
75
|
-
return { isDuplicate: false };
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function getDocumentTypeIcon(document) {
|
|
79
|
-
const documentType = document.header.documentType;
|
|
80
|
-
switch (documentType) {
|
|
81
|
-
case "powerhouse/document-model":
|
|
82
|
-
return "document-model";
|
|
83
|
-
case "powerhouse/app":
|
|
84
|
-
return "app";
|
|
85
|
-
case "powerhouse/document-editor":
|
|
86
|
-
return "editor";
|
|
87
|
-
case "powerhouse/subgraph":
|
|
88
|
-
return "subgraph";
|
|
89
|
-
case "powerhouse/package":
|
|
90
|
-
return "package";
|
|
91
|
-
case "powerhouse/processor": {
|
|
92
|
-
// Check the processor type from global state (safely)
|
|
93
|
-
const globalState = document.state
|
|
94
|
-
.global;
|
|
95
|
-
const processorType = globalState?.type;
|
|
96
|
-
if (processorType === "analytics")
|
|
97
|
-
return "analytics-processor";
|
|
98
|
-
if (processorType === "relational")
|
|
99
|
-
return "relational-processor";
|
|
100
|
-
if (processorType === "codegen")
|
|
101
|
-
return "codegen-processor";
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
default:
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
export function downloadFile(document, fileName) {
|
|
109
|
-
const zip = createZip(document);
|
|
110
|
-
zip
|
|
111
|
-
.generateAsync({ type: "blob" })
|
|
112
|
-
.then((blob) => {
|
|
113
|
-
const link = window.document.createElement("a");
|
|
114
|
-
link.style.display = "none";
|
|
115
|
-
link.href = URL.createObjectURL(blob);
|
|
116
|
-
link.download = fileName;
|
|
117
|
-
window.document.body.appendChild(link);
|
|
118
|
-
link.click();
|
|
119
|
-
window.document.body.removeChild(link);
|
|
120
|
-
})
|
|
121
|
-
.catch(logger.error);
|
|
122
|
-
}
|
|
123
|
-
async function getDocumentExtension(document) {
|
|
124
|
-
const documentType = document.header.documentType;
|
|
125
|
-
// DocumentModel definitions always use "phdm"
|
|
126
|
-
if (documentType === documentModelDocumentType) {
|
|
127
|
-
return "phdm";
|
|
128
|
-
}
|
|
129
|
-
// For document instances, look up the module's extension
|
|
130
|
-
const useLegacy = isLegacyReadEnabledSync();
|
|
131
|
-
let rawExtension;
|
|
132
|
-
if (useLegacy) {
|
|
133
|
-
const reactor = window.ph?.legacyReactor;
|
|
134
|
-
if (reactor) {
|
|
135
|
-
const documentModelModules = reactor.getDocumentModelModules();
|
|
136
|
-
const module = documentModelModules.find((m) => m.documentModel.global.id === documentType);
|
|
137
|
-
rawExtension = module?.utils.fileExtension;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
const reactorClient = window.ph?.reactorClient;
|
|
142
|
-
if (reactorClient) {
|
|
143
|
-
const { results: documentModelModules } = await reactorClient.getDocumentModelModules();
|
|
144
|
-
const module = documentModelModules.find((m) => m.documentModel.global.id === documentType);
|
|
145
|
-
rawExtension = module?.utils.fileExtension;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Clean the extension (remove leading/trailing dots) and fallback to "phdm"
|
|
149
|
-
const cleanExtension = (rawExtension ?? "phdm").replace(/^\.+|\.+$/g, "");
|
|
150
|
-
return cleanExtension || "phdm";
|
|
151
|
-
}
|
|
152
|
-
export async function exportFile(document, suggestedName) {
|
|
153
|
-
// Ensure we have either reactor available for consistency
|
|
154
|
-
const useLegacy = isLegacyReadEnabledSync();
|
|
155
|
-
if (useLegacy) {
|
|
156
|
-
if (!window.ph?.legacyReactor) {
|
|
157
|
-
throw new Error("Legacy reactor not initialized");
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
if (!window.ph?.reactorClient) {
|
|
162
|
-
throw new Error("ReactorClient not initialized");
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
// Get the extension from the document model module
|
|
166
|
-
const extension = await getDocumentExtension(document);
|
|
167
|
-
const name = `${suggestedName || document.header.name || "Untitled"}.${extension}.phd`;
|
|
168
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
169
|
-
if (!window.showSaveFilePicker) {
|
|
170
|
-
return downloadFile(document, name);
|
|
171
|
-
}
|
|
172
|
-
try {
|
|
173
|
-
const fileHandle = await window.showSaveFilePicker({
|
|
174
|
-
suggestedName: name,
|
|
175
|
-
});
|
|
176
|
-
await baseSaveToFileHandle(document, fileHandle);
|
|
177
|
-
return fileHandle;
|
|
178
|
-
}
|
|
179
|
-
catch (e) {
|
|
180
|
-
// ignores error if user cancelled the file picker
|
|
181
|
-
if (!(e instanceof DOMException && e.name === "AbortError")) {
|
|
182
|
-
throw e;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
export async function loadFile(path) {
|
|
187
|
-
const useLegacy = isLegacyReadEnabledSync();
|
|
188
|
-
const baseDocument = await baseLoadFromInput(path, (state) => state, { checkHashes: true });
|
|
189
|
-
if (useLegacy) {
|
|
190
|
-
const reactor = window.ph?.legacyReactor;
|
|
191
|
-
if (!reactor) {
|
|
192
|
-
throw new Error("Legacy reactor not initialized");
|
|
193
|
-
}
|
|
194
|
-
const documentModelModules = reactor.getDocumentModelModules();
|
|
195
|
-
const documentModelModule = documentModelModules.find((module) => module.documentModel.global.id === baseDocument.header.documentType);
|
|
196
|
-
if (!documentModelModule) {
|
|
197
|
-
throw new Error(`Document "${baseDocument.header.documentType}" is not supported`);
|
|
198
|
-
}
|
|
199
|
-
return documentModelModule.utils.loadFromInput(path);
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
const reactorClient = window.ph?.reactorClient;
|
|
203
|
-
if (!reactorClient) {
|
|
204
|
-
throw new Error("ReactorClient not initialized");
|
|
205
|
-
}
|
|
206
|
-
const { results: documentModelModules } = await reactorClient.getDocumentModelModules();
|
|
207
|
-
const documentModelModule = documentModelModules.find((module) => module.documentModel.global.id === baseDocument.header.documentType);
|
|
208
|
-
if (!documentModelModule) {
|
|
209
|
-
throw new Error(`Document "${baseDocument.header.documentType}" is not supported`);
|
|
210
|
-
}
|
|
211
|
-
return documentModelModule.utils.loadFromInput(path);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
export async function addDocument(driveId, name, documentType, parentFolder, document, id, preferredEditor) {
|
|
215
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
216
|
-
if (!isAllowedToCreateDocuments) {
|
|
217
|
-
throw new Error("User is not allowed to create documents");
|
|
218
|
-
}
|
|
219
|
-
const useLegacy = isLegacyWriteEnabledSync();
|
|
220
|
-
if (useLegacy) {
|
|
221
|
-
const reactor = window.ph?.legacyReactor;
|
|
222
|
-
if (!reactor) {
|
|
223
|
-
throw new Error("Legacy reactor not initialized");
|
|
224
|
-
}
|
|
225
|
-
const drive = await reactor.getDrive(driveId);
|
|
226
|
-
const documentId = id ?? generateId();
|
|
227
|
-
const reactorDocumentModelModules = reactor.getDocumentModelModules();
|
|
228
|
-
const documentModelModuleFromReactor = reactorDocumentModelModules.find((module) => module.documentModel.global.id === documentType);
|
|
229
|
-
if (!documentModelModuleFromReactor) {
|
|
230
|
-
throw new Error(`Document model module for type ${documentType} not found`);
|
|
231
|
-
}
|
|
232
|
-
const newDocument = documentModelModuleFromReactor.utils.createDocument({
|
|
233
|
-
...document?.state,
|
|
234
|
-
});
|
|
235
|
-
newDocument.header = createPresignedHeader(documentId, documentType);
|
|
236
|
-
newDocument.header.name = name;
|
|
237
|
-
const documentMeta = preferredEditor ? { preferredEditor } : undefined;
|
|
238
|
-
await reactor.addDocument(newDocument, documentMeta);
|
|
239
|
-
const action = baseAddFile({
|
|
240
|
-
id: documentId,
|
|
241
|
-
name,
|
|
242
|
-
documentType,
|
|
243
|
-
parentFolder: parentFolder ?? null,
|
|
244
|
-
});
|
|
245
|
-
const unsafeCastAsDrive = (await queueActions(drive, action));
|
|
246
|
-
const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === documentId);
|
|
247
|
-
if (!node || !isFileNode(node)) {
|
|
248
|
-
throw new Error("There was an error adding document");
|
|
249
|
-
}
|
|
250
|
-
return node;
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
const reactorClient = window.ph?.reactorClient;
|
|
254
|
-
if (!reactorClient) {
|
|
255
|
-
throw new Error("ReactorClient not initialized");
|
|
256
|
-
}
|
|
257
|
-
// get the module
|
|
258
|
-
const documentModelModule = await reactorClient.getDocumentModelModule(documentType);
|
|
259
|
-
// create
|
|
260
|
-
const document = documentModelModule.utils.createDocument();
|
|
261
|
-
document.header.name = name;
|
|
262
|
-
// Create document using ReactorClient
|
|
263
|
-
let newDoc;
|
|
264
|
-
try {
|
|
265
|
-
newDoc = await reactorClient.createDocumentInDrive(driveId, document, parentFolder);
|
|
266
|
-
}
|
|
267
|
-
catch (e) {
|
|
268
|
-
logger.error("Error adding document", e);
|
|
269
|
-
throw new Error("There was an error adding document");
|
|
270
|
-
}
|
|
271
|
-
// Return a file node structure for compatibility
|
|
272
|
-
return {
|
|
273
|
-
id: newDoc.header.id,
|
|
274
|
-
name: newDoc.header.name,
|
|
275
|
-
documentType,
|
|
276
|
-
parentFolder: parentFolder ?? null,
|
|
277
|
-
kind: "file",
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
export async function addFile(file, driveId, name, parentFolder) {
|
|
282
|
-
logger.verbose(`addFile(drive: ${driveId}, name: ${name}, folder: ${parentFolder})`);
|
|
283
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
284
|
-
if (!isAllowedToCreateDocuments) {
|
|
285
|
-
throw new Error("User is not allowed to create files");
|
|
286
|
-
}
|
|
287
|
-
const useLegacy = isLegacyWriteEnabledSync();
|
|
288
|
-
const document = await loadFile(file);
|
|
289
|
-
let duplicateId = false;
|
|
290
|
-
if (useLegacy) {
|
|
291
|
-
const reactor = window.ph?.legacyReactor;
|
|
292
|
-
if (!reactor) {
|
|
293
|
-
throw new Error("Legacy reactor not initialized");
|
|
294
|
-
}
|
|
295
|
-
const documentModule = reactor
|
|
296
|
-
.getDocumentModelModules()
|
|
297
|
-
.find((module) => module.documentModel.global.id === document.header.documentType);
|
|
298
|
-
if (!documentModule) {
|
|
299
|
-
throw new Error(`Document model module for type ${document.header.documentType} not found`);
|
|
300
|
-
}
|
|
301
|
-
try {
|
|
302
|
-
await reactor.getDocument(document.header.id);
|
|
303
|
-
duplicateId = true;
|
|
304
|
-
}
|
|
305
|
-
catch {
|
|
306
|
-
// document id not found
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
else {
|
|
310
|
-
const reactorClient = window.ph?.reactorClient;
|
|
311
|
-
if (!reactorClient) {
|
|
312
|
-
throw new Error("ReactorClient not initialized");
|
|
313
|
-
}
|
|
314
|
-
try {
|
|
315
|
-
await reactorClient.get(document.header.id);
|
|
316
|
-
duplicateId = true;
|
|
317
|
-
}
|
|
318
|
-
catch {
|
|
319
|
-
// document id not found
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
const documentId = duplicateId ? generateId() : document.header.id;
|
|
323
|
-
const header = createPresignedHeader(documentId, document.header.documentType);
|
|
324
|
-
header.lastModifiedAtUtcIso = document.header.createdAtUtcIso;
|
|
325
|
-
header.meta = document.header.meta;
|
|
326
|
-
header.name = name || document.header.name;
|
|
327
|
-
// copy the document at it's initial state
|
|
328
|
-
const initialDocument = {
|
|
329
|
-
...document,
|
|
330
|
-
header,
|
|
331
|
-
state: document.initialState,
|
|
332
|
-
operations: Object.keys(document.operations).reduce((acc, key) => {
|
|
333
|
-
acc[key] = [];
|
|
334
|
-
return acc;
|
|
335
|
-
}, {}),
|
|
336
|
-
};
|
|
337
|
-
await addDocument(driveId, name || document.header.name, document.header.documentType, parentFolder, initialDocument, documentId, document.header.meta?.preferredEditor);
|
|
338
|
-
// then add all the operations in chunks
|
|
339
|
-
uploadOperations(documentId, document.operations, queueOperations).catch((error) => {
|
|
340
|
-
throw error;
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
export async function addFileWithProgress(file, driveId, name, parentFolder, onProgress, documentTypes, resolveConflict) {
|
|
344
|
-
logger.verbose(`addFileWithProgress(drive: ${driveId}, name: ${name}, folder: ${parentFolder})`);
|
|
345
|
-
const reactor = window.ph?.legacyReactor;
|
|
346
|
-
if (!reactor) {
|
|
347
|
-
return;
|
|
348
|
-
}
|
|
349
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
350
|
-
if (!isAllowedToCreateDocuments) {
|
|
351
|
-
throw new Error("User is not allowed to create files");
|
|
352
|
-
}
|
|
353
|
-
// Loading stage (0-10%)
|
|
354
|
-
try {
|
|
355
|
-
onProgress?.({ stage: "loading", progress: 0 });
|
|
356
|
-
const document = await loadFile(file);
|
|
357
|
-
if (!document) {
|
|
358
|
-
throw new Error("No document loaded");
|
|
359
|
-
}
|
|
360
|
-
// Check for duplicate in same location
|
|
361
|
-
const duplicateCheck = await isDocumentInLocation(document, driveId, parentFolder);
|
|
362
|
-
if (duplicateCheck.isDuplicate && !resolveConflict) {
|
|
363
|
-
// Report conflict and return early
|
|
364
|
-
onProgress?.({
|
|
365
|
-
stage: "conflict",
|
|
366
|
-
progress: 0,
|
|
367
|
-
duplicateType: duplicateCheck.duplicateType,
|
|
368
|
-
});
|
|
369
|
-
return undefined;
|
|
370
|
-
}
|
|
371
|
-
// Handle replace resolution by deleting the existing document
|
|
372
|
-
if (duplicateCheck.isDuplicate &&
|
|
373
|
-
resolveConflict === "replace" &&
|
|
374
|
-
duplicateCheck.nodeId) {
|
|
375
|
-
await deleteNode(driveId, duplicateCheck.nodeId);
|
|
376
|
-
}
|
|
377
|
-
// For "duplicate" resolution, we continue normally which creates a new document
|
|
378
|
-
// with a different ID (the default behavior)
|
|
379
|
-
// Send documentType info immediately after loading
|
|
380
|
-
const documentType = getDocumentTypeIcon(document);
|
|
381
|
-
if (documentType) {
|
|
382
|
-
onProgress?.({ stage: "loading", progress: 10, documentType });
|
|
383
|
-
}
|
|
384
|
-
else {
|
|
385
|
-
onProgress?.({ stage: "loading", progress: 10 });
|
|
386
|
-
}
|
|
387
|
-
if (!isDocumentTypeSupported(document.header.documentType, documentTypes)) {
|
|
388
|
-
onProgress?.({
|
|
389
|
-
stage: "unsupported-document-type",
|
|
390
|
-
progress: 100,
|
|
391
|
-
error: `Document type ${document.header.documentType} is not supported`,
|
|
392
|
-
});
|
|
393
|
-
throw new UnsupportedDocumentTypeError(document.header.documentType);
|
|
394
|
-
}
|
|
395
|
-
const documentModule = reactor
|
|
396
|
-
.getDocumentModelModules()
|
|
397
|
-
.find((module) => module.documentModel.global.id === document.header.documentType);
|
|
398
|
-
if (!documentModule) {
|
|
399
|
-
throw new Error(`Document model module for type ${document.header.documentType} not found`);
|
|
400
|
-
}
|
|
401
|
-
// Initializing stage (10-20%)
|
|
402
|
-
onProgress?.({ stage: "initializing", progress: 10 });
|
|
403
|
-
let duplicateId = false;
|
|
404
|
-
try {
|
|
405
|
-
await reactor.getDocument(document.header.id);
|
|
406
|
-
duplicateId = true;
|
|
407
|
-
}
|
|
408
|
-
catch {
|
|
409
|
-
// document id not found
|
|
410
|
-
}
|
|
411
|
-
const documentId = duplicateId ? generateId() : document.header.id;
|
|
412
|
-
const header = createPresignedHeader(documentId, document.header.documentType);
|
|
413
|
-
header.lastModifiedAtUtcIso = document.header.createdAtUtcIso;
|
|
414
|
-
header.meta = document.header.meta;
|
|
415
|
-
header.name = name || document.header.name;
|
|
416
|
-
// copy the document at it's initial state
|
|
417
|
-
const initialDocument = {
|
|
418
|
-
...document,
|
|
419
|
-
header,
|
|
420
|
-
state: document.initialState,
|
|
421
|
-
operations: Object.keys(document.operations).reduce((acc, key) => {
|
|
422
|
-
acc[key] = [];
|
|
423
|
-
return acc;
|
|
424
|
-
}, {}),
|
|
425
|
-
};
|
|
426
|
-
const fileNode = await addDocument(driveId, name || document.header.name, document.header.documentType, parentFolder, initialDocument, documentId, document.header.meta?.preferredEditor);
|
|
427
|
-
if (!fileNode) {
|
|
428
|
-
throw new Error("There was an error adding file");
|
|
429
|
-
}
|
|
430
|
-
onProgress?.({ stage: "initializing", progress: 20 });
|
|
431
|
-
// Uploading stage (20-100%)
|
|
432
|
-
await uploadOperations(documentId, document.operations, queueOperations, {
|
|
433
|
-
onProgress: (uploadProgress) => {
|
|
434
|
-
if (uploadProgress.totalOperations &&
|
|
435
|
-
uploadProgress.uploadedOperations !== undefined) {
|
|
436
|
-
const uploadPercent = uploadProgress.totalOperations > 0
|
|
437
|
-
? uploadProgress.uploadedOperations /
|
|
438
|
-
uploadProgress.totalOperations
|
|
439
|
-
: 0;
|
|
440
|
-
const overallProgress = 20 + Math.round(uploadPercent * 80);
|
|
441
|
-
onProgress?.({
|
|
442
|
-
stage: "uploading",
|
|
443
|
-
progress: overallProgress,
|
|
444
|
-
totalOperations: uploadProgress.totalOperations,
|
|
445
|
-
uploadedOperations: uploadProgress.uploadedOperations,
|
|
446
|
-
});
|
|
447
|
-
}
|
|
448
|
-
},
|
|
449
|
-
});
|
|
450
|
-
onProgress?.({ stage: "complete", progress: 100 });
|
|
451
|
-
return fileNode;
|
|
452
|
-
}
|
|
453
|
-
catch (error) {
|
|
454
|
-
// Don't override unsupported-document-type status
|
|
455
|
-
if (!(error instanceof UnsupportedDocumentTypeError)) {
|
|
456
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
|
|
457
|
-
onProgress?.({
|
|
458
|
-
stage: "failed",
|
|
459
|
-
progress: 100,
|
|
460
|
-
error: errorMessage,
|
|
461
|
-
});
|
|
462
|
-
}
|
|
463
|
-
throw error;
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
export async function updateFile(driveId, nodeId, documentType, name, parentFolder) {
|
|
467
|
-
const reactor = window.ph?.legacyReactor;
|
|
468
|
-
if (!reactor) {
|
|
469
|
-
return;
|
|
470
|
-
}
|
|
471
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
472
|
-
if (!isAllowedToCreateDocuments) {
|
|
473
|
-
throw new Error("User is not allowed to update files");
|
|
474
|
-
}
|
|
475
|
-
const drive = await reactor.getDrive(driveId);
|
|
476
|
-
const unsafeCastAsDrive = (await queueActions(drive, baseUpdateFile({
|
|
477
|
-
id: nodeId,
|
|
478
|
-
name: name ?? undefined,
|
|
479
|
-
parentFolder,
|
|
480
|
-
documentType,
|
|
481
|
-
})));
|
|
482
|
-
const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === nodeId);
|
|
483
|
-
if (!node || !isFileNode(node)) {
|
|
484
|
-
throw new Error("There was an error updating document");
|
|
485
|
-
}
|
|
486
|
-
return node;
|
|
487
|
-
}
|
|
488
|
-
export async function addFolder(driveId, name, parentFolder) {
|
|
489
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
490
|
-
if (!isAllowedToCreateDocuments) {
|
|
491
|
-
throw new Error("User is not allowed to create folders");
|
|
492
|
-
}
|
|
493
|
-
const useLegacy = isLegacyWriteEnabledSync();
|
|
494
|
-
if (useLegacy) {
|
|
495
|
-
const reactor = window.ph?.legacyReactor;
|
|
496
|
-
if (!reactor) {
|
|
497
|
-
throw new Error("Legacy reactor not initialized");
|
|
498
|
-
}
|
|
499
|
-
const folderId = generateId();
|
|
500
|
-
const drive = await reactor.getDrive(driveId);
|
|
501
|
-
const unsafeCastAsDrive = (await queueActions(drive, baseAddFolder({
|
|
502
|
-
id: folderId,
|
|
503
|
-
name,
|
|
504
|
-
parentFolder,
|
|
505
|
-
})));
|
|
506
|
-
const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === folderId);
|
|
507
|
-
if (!node || !isFolderNode(node)) {
|
|
508
|
-
throw new Error("There was an error adding folder");
|
|
509
|
-
}
|
|
510
|
-
return node;
|
|
511
|
-
}
|
|
512
|
-
else {
|
|
513
|
-
const reactorClient = window.ph?.reactorClient;
|
|
514
|
-
if (!reactorClient) {
|
|
515
|
-
throw new Error("ReactorClient not initialized");
|
|
516
|
-
}
|
|
517
|
-
// Get the drive document and add folder action
|
|
518
|
-
const { document: drive } = await reactorClient.get(driveId);
|
|
519
|
-
const folderId = generateId();
|
|
520
|
-
const updatedDrive = await reactorClient.execute(driveId, "main", [
|
|
521
|
-
baseAddFolder({
|
|
522
|
-
id: folderId,
|
|
523
|
-
name,
|
|
524
|
-
parentFolder,
|
|
525
|
-
}),
|
|
526
|
-
]);
|
|
527
|
-
const node = updatedDrive.state.global.nodes.find((node) => node.id === folderId);
|
|
528
|
-
if (!node || !isFolderNode(node)) {
|
|
529
|
-
throw new Error("There was an error adding folder");
|
|
530
|
-
}
|
|
531
|
-
return node;
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
export async function deleteNode(driveId, nodeId) {
|
|
535
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
536
|
-
if (!isAllowedToCreateDocuments) {
|
|
537
|
-
throw new Error("User is not allowed to delete documents");
|
|
538
|
-
}
|
|
539
|
-
const useLegacy = isLegacyWriteEnabledSync();
|
|
540
|
-
if (useLegacy) {
|
|
541
|
-
const reactor = window.ph?.legacyReactor;
|
|
542
|
-
if (!reactor) {
|
|
543
|
-
throw new Error("Legacy reactor not initialized");
|
|
544
|
-
}
|
|
545
|
-
const drive = await reactor.getDrive(driveId);
|
|
546
|
-
await queueActions(drive, baseDeleteNode({ id: nodeId }));
|
|
547
|
-
// now delete the document
|
|
548
|
-
await reactor.deleteDocument(nodeId);
|
|
549
|
-
}
|
|
550
|
-
else {
|
|
551
|
-
const reactorClient = window.ph?.reactorClient;
|
|
552
|
-
if (!reactorClient) {
|
|
553
|
-
throw new Error("ReactorClient not initialized");
|
|
554
|
-
}
|
|
555
|
-
// delete the node in the drive document
|
|
556
|
-
await reactorClient.execute(driveId, "main", [
|
|
557
|
-
baseDeleteNode({ id: nodeId }),
|
|
558
|
-
]);
|
|
559
|
-
// now delete the document
|
|
560
|
-
await reactorClient.deleteDocument(nodeId);
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
export async function renameNode(driveId, nodeId, name) {
|
|
564
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
565
|
-
if (!isAllowedToCreateDocuments) {
|
|
566
|
-
throw new Error("User is not allowed to rename documents");
|
|
567
|
-
}
|
|
568
|
-
const useLegacy = isLegacyWriteEnabledSync();
|
|
569
|
-
if (useLegacy) {
|
|
570
|
-
const reactor = window.ph?.legacyReactor;
|
|
571
|
-
if (!reactor) {
|
|
572
|
-
throw new Error("Legacy reactor not initialized");
|
|
573
|
-
}
|
|
574
|
-
const drive = await reactor.getDrive(driveId);
|
|
575
|
-
const unsafeCastAsDrive = (await queueActions(drive, updateNode({ id: nodeId, name })));
|
|
576
|
-
const node = unsafeCastAsDrive.state.global.nodes.find((node) => node.id === nodeId);
|
|
577
|
-
if (!node) {
|
|
578
|
-
throw new Error("There was an error renaming node");
|
|
579
|
-
}
|
|
580
|
-
return node;
|
|
581
|
-
}
|
|
582
|
-
else {
|
|
583
|
-
const reactorClient = window.ph?.reactorClient;
|
|
584
|
-
if (!reactorClient) {
|
|
585
|
-
throw new Error("ReactorClient not initialized");
|
|
586
|
-
}
|
|
587
|
-
// Rename the node in the drive document using updateNode action
|
|
588
|
-
const drive = await reactorClient.execute(driveId, "main", [updateNode({ id: nodeId, name })]);
|
|
589
|
-
const node = drive.state.global.nodes.find((n) => n.id === nodeId);
|
|
590
|
-
if (!node) {
|
|
591
|
-
throw new Error("There was an error renaming node");
|
|
592
|
-
}
|
|
593
|
-
return node;
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
export async function renameDriveNode(driveId, nodeId, name) {
|
|
597
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
598
|
-
if (!isAllowedToCreateDocuments) {
|
|
599
|
-
throw new Error("User is not allowed to rename documents");
|
|
600
|
-
}
|
|
601
|
-
const useLegacy = isLegacyWriteEnabledSync();
|
|
602
|
-
if (useLegacy) {
|
|
603
|
-
const reactor = window.ph?.legacyReactor;
|
|
604
|
-
if (!reactor) {
|
|
605
|
-
throw new Error("Legacy reactor not initialized");
|
|
606
|
-
}
|
|
607
|
-
const drive = await reactor.getDrive(driveId);
|
|
608
|
-
const updatedDrive = (await queueActions(drive, updateNode({ id: nodeId, name })));
|
|
609
|
-
return updatedDrive.state.global.nodes.find((n) => n.id === nodeId);
|
|
610
|
-
}
|
|
611
|
-
else {
|
|
612
|
-
const reactorClient = window.ph?.reactorClient;
|
|
613
|
-
if (!reactorClient) {
|
|
614
|
-
throw new Error("ReactorClient not initialized");
|
|
615
|
-
}
|
|
616
|
-
await reactorClient.execute(driveId, "main", [
|
|
617
|
-
updateNode({ id: nodeId, name }),
|
|
618
|
-
]);
|
|
619
|
-
const { document: drive } = await reactorClient.get(driveId);
|
|
620
|
-
return drive.state.global.nodes.find((n) => n.id === nodeId);
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
export async function moveNode(driveId, src, target) {
|
|
624
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
625
|
-
if (!isAllowedToCreateDocuments) {
|
|
626
|
-
throw new Error("User is not allowed to move documents");
|
|
627
|
-
}
|
|
628
|
-
const useLegacy = isLegacyWriteEnabledSync();
|
|
629
|
-
if (useLegacy) {
|
|
630
|
-
const reactor = window.ph?.legacyReactor;
|
|
631
|
-
if (!reactor) {
|
|
632
|
-
throw new Error("Legacy reactor not initialized");
|
|
633
|
-
}
|
|
634
|
-
const drive = await reactor.getDrive(driveId);
|
|
635
|
-
return await queueActions(drive, baseMoveNode({ srcFolder: src.id, targetParentFolder: target?.id }));
|
|
636
|
-
}
|
|
637
|
-
else {
|
|
638
|
-
const reactorClient = window.ph?.reactorClient;
|
|
639
|
-
if (!reactorClient) {
|
|
640
|
-
throw new Error("ReactorClient not initialized");
|
|
641
|
-
}
|
|
642
|
-
// Get current parent folder from source node
|
|
643
|
-
const sourceParent = src.parentFolder ?? driveId;
|
|
644
|
-
const targetParent = target?.id ?? driveId;
|
|
645
|
-
return await reactorClient.moveChildren(sourceParent, targetParent, [
|
|
646
|
-
src.id,
|
|
647
|
-
]);
|
|
648
|
-
}
|
|
649
|
-
}
|
|
650
|
-
function _duplicateDocument(reactor, document, newId = generateId()) {
|
|
651
|
-
const documentModule = reactor
|
|
652
|
-
.getDocumentModelModules()
|
|
653
|
-
.find((module) => module.documentModel.global.id === document.header.documentType);
|
|
654
|
-
if (!documentModule) {
|
|
655
|
-
throw new Error(`Document model module for type ${document.header.documentType} not found`);
|
|
656
|
-
}
|
|
657
|
-
return replayDocument(document.initialState, document.operations, documentModule.reducer, createPresignedHeader(newId, document.header.documentType));
|
|
658
|
-
}
|
|
659
|
-
export async function copyNode(driveId, src, target) {
|
|
660
|
-
const reactor = window.ph?.legacyReactor;
|
|
661
|
-
if (!reactor) {
|
|
662
|
-
return;
|
|
663
|
-
}
|
|
664
|
-
const { isAllowedToCreateDocuments } = getUserPermissions();
|
|
665
|
-
if (!isAllowedToCreateDocuments) {
|
|
666
|
-
throw new Error("User is not allowed to copy documents");
|
|
667
|
-
}
|
|
668
|
-
const drive = await reactor.getDrive(driveId);
|
|
669
|
-
const copyNodesInput = generateNodesCopy({
|
|
670
|
-
srcId: src.id,
|
|
671
|
-
targetParentFolder: target?.id,
|
|
672
|
-
targetName: src.name,
|
|
673
|
-
}, () => generateId(), drive.state.global.nodes);
|
|
674
|
-
// Pre-calculate collision-resolved names for all nodes to be copied
|
|
675
|
-
const resolvedNamesMap = new Map();
|
|
676
|
-
for (const copyNodeInput of copyNodesInput) {
|
|
677
|
-
const node = drive.state.global.nodes.find((n) => n.id === copyNodeInput.srcId);
|
|
678
|
-
if (node) {
|
|
679
|
-
const resolvedName = handleTargetNameCollisions({
|
|
680
|
-
nodes: drive.state.global.nodes,
|
|
681
|
-
srcName: copyNodeInput.targetName || node.name,
|
|
682
|
-
targetParentFolder: copyNodeInput.targetParentFolder || null,
|
|
683
|
-
});
|
|
684
|
-
resolvedNamesMap.set(copyNodeInput.targetId, resolvedName);
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
const fileNodesToCopy = copyNodesInput.filter((copyNodeInput) => {
|
|
688
|
-
const node = drive.state.global.nodes.find((node) => node.id === copyNodeInput.srcId);
|
|
689
|
-
return node !== undefined && isFileNode(node);
|
|
690
|
-
});
|
|
691
|
-
for (const fileNodeToCopy of fileNodesToCopy) {
|
|
692
|
-
try {
|
|
693
|
-
const document = await reactor.getDocument(fileNodeToCopy.srcId);
|
|
694
|
-
const duplicatedDocument = _duplicateDocument(reactor, document, fileNodeToCopy.targetId);
|
|
695
|
-
// Set the header name to match the collision-resolved node name
|
|
696
|
-
const resolvedName = resolvedNamesMap.get(fileNodeToCopy.targetId);
|
|
697
|
-
if (resolvedName) {
|
|
698
|
-
duplicatedDocument.header.name = resolvedName;
|
|
699
|
-
}
|
|
700
|
-
await reactor.addDocument(duplicatedDocument);
|
|
701
|
-
}
|
|
702
|
-
catch (e) {
|
|
703
|
-
logger.error(`Error copying document ${fileNodeToCopy.srcId}: ${String(e)}`);
|
|
704
|
-
}
|
|
705
|
-
}
|
|
706
|
-
const copyActions = copyNodesInput.map((copyNodeInput) => baseCopyNode(copyNodeInput));
|
|
707
|
-
return await queueActions(drive, copyActions);
|
|
708
|
-
}
|
|
709
|
-
//# sourceMappingURL=document.js.map
|