@powerhousedao/connect 6.0.0-dev.27 → 6.0.0-dev.29
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/dist/assets/AddDriveModal-Dt5q0uka.js +1 -0
- package/dist/assets/ClearStorageModal-C_M5yTs1.js +1 -0
- package/dist/assets/CookiesPolicyModal-CzyiJRJS.js +1 -0
- package/dist/assets/CreateDocumentModal-BELAsL1d.js +1 -0
- package/dist/assets/DebugSettingsModal-BhicwpD-.js +1 -0
- package/dist/assets/DeleteDriveModal-CYz_cQSY.js +1 -0
- package/dist/assets/DeleteItemModal-CbKn4r4Y.js +1 -0
- package/dist/assets/DisclaimerModal-hFJa5LTd.js +1 -0
- package/dist/assets/DriveSettingsModal-DBdYo8il.js +1 -0
- package/dist/assets/ExportDocumentWithErrorsModal-BWtlq3Qo.js +1 -0
- package/dist/assets/{SettingsModal-Bcu9wxg4.js → SettingsModal-BWdcnssn.js} +1 -1
- package/dist/assets/UpgradeDriveModal-UxDphYm9.js +1 -0
- package/dist/assets/config-0mYxXHFp.js +1 -0
- package/dist/assets/{design_system-C3U_0NB8.js → design_system-DnmFrCiT.js} +1 -1
- package/dist/assets/design_system_connect-DjbnaM0E.js +47 -0
- package/dist/assets/{design_system_ui-BOpZBu1l.js → design_system_ui-DSQ3AfUp.js} +1 -1
- package/dist/assets/document_drive-BCSa7iW6.js +132 -0
- package/dist/assets/{document_engineering-Bxdy1Oty.js → document_engineering-CiUgHzim.js} +1 -1
- package/dist/assets/document_model-CPsSXf7O.js +241 -0
- package/dist/assets/{document_model_editor-Bs-cRAi1.js → document_model_editor-e_zuSDRD.js} +4 -4
- package/dist/assets/{drive_explorer-DAWZaT0G.js → drive_explorer-i47fkF8K.js} +2 -2
- package/dist/assets/{graphql-AKTCpY7l.js → graphql-DwmBvzSo.js} +1 -1
- package/dist/assets/{graphql-editor-V3ALaicq.js → graphql-editor-CABXZrw2.js} +2 -2
- package/dist/assets/{graphql_request-BJtmW2JS.js → graphql_request-G5F4jsaa.js} +1 -1
- package/dist/assets/{hooks-BTVZFkoS.js → hooks-BDklGlWi.js} +1 -1
- package/dist/assets/index-BzquqEnX.js +28 -0
- package/dist/assets/index-D1Y0bMj1.js +18 -0
- package/dist/assets/json-editor-DZe0ZhXn.js +1 -0
- package/dist/assets/nodefs-DhB-l8C8.js +1 -0
- package/dist/assets/opfs-ahp-BuwlJ8N9.js +3 -0
- package/dist/assets/reactor_browser-B4rDDzOL.js +129 -0
- package/dist/assets/state-schemas-DFNuKZpm.js +2 -0
- package/dist/index.html +11 -12
- package/lib/package.copy.json +1 -1
- package/lib/src/components/document-editor-container.d.ts.map +1 -1
- package/lib/src/components/document-editor-container.js +6 -36
- package/lib/src/components/document-editor-container.js.map +1 -1
- package/lib/src/components/drive-icon.d.ts.map +1 -1
- package/lib/src/components/drive-icon.js +10 -3
- package/lib/src/components/drive-icon.js.map +1 -1
- package/lib/src/components/error-boundary.js +1 -1
- package/lib/src/components/error-boundary.js.map +1 -1
- package/lib/src/components/modal/modals/AddDriveModal.d.ts.map +1 -1
- package/lib/src/components/modal/modals/AddDriveModal.js +6 -46
- package/lib/src/components/modal/modals/AddDriveModal.js.map +1 -1
- package/lib/src/components/modal/modals/ClearStorageModal.js +1 -1
- package/lib/src/components/modal/modals/ClearStorageModal.js.map +1 -1
- package/lib/src/components/modal/modals/DriveSettingsModal.d.ts.map +1 -1
- package/lib/src/components/modal/modals/DriveSettingsModal.js +9 -4
- package/lib/src/components/modal/modals/DriveSettingsModal.js.map +1 -1
- package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.d.ts.map +1 -1
- package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.js +4 -1
- package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.js.map +1 -1
- package/lib/src/connect.config.js +1 -1
- package/lib/src/connect.config.js.map +1 -1
- package/lib/src/feature-flags.d.ts.map +1 -1
- package/lib/src/feature-flags.js +2 -2
- package/lib/src/feature-flags.js.map +1 -1
- package/lib/src/hooks/useCheckLatestVersion.d.ts.map +1 -1
- package/lib/src/hooks/useCheckLatestVersion.js +1 -1
- package/lib/src/hooks/useCheckLatestVersion.js.map +1 -1
- package/lib/src/hooks/useClientErrorHandler.d.ts.map +1 -1
- package/lib/src/hooks/useClientErrorHandler.js +5 -40
- package/lib/src/hooks/useClientErrorHandler.js.map +1 -1
- package/lib/src/hooks/useInitSentry.js +2 -2
- package/lib/src/hooks/useInitSentry.js.map +1 -1
- package/lib/src/pages/demo/atlas-import.js +2 -2
- package/lib/src/services/hmr.js +1 -1
- package/lib/src/services/hmr.js.map +1 -1
- package/lib/src/store/reactor.d.ts +1 -1
- package/lib/src/store/reactor.d.ts.map +1 -1
- package/lib/src/store/reactor.js +40 -191
- package/lib/src/store/reactor.js.map +1 -1
- package/lib/src/utils/reactor.d.ts +1 -9
- package/lib/src/utils/reactor.d.ts.map +1 -1
- package/lib/src/utils/reactor.js +8 -47
- package/lib/src/utils/reactor.js.map +1 -1
- package/lib/src/utils/signature.d.ts.map +1 -1
- package/lib/src/utils/signature.js +1 -1
- package/lib/src/utils/signature.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.copy.json +1 -1
- package/package.json +10 -10
- package/dist/assets/AddDriveModal-0hv05tuC.js +0 -1
- package/dist/assets/ClearStorageModal-DabxxYFH.js +0 -1
- package/dist/assets/CookiesPolicyModal-C__qDa93.js +0 -1
- package/dist/assets/CreateDocumentModal-D8T6zQTT.js +0 -1
- package/dist/assets/DebugSettingsModal-BWIwkk5x.js +0 -1
- package/dist/assets/DeleteDriveModal-BQUcmAfn.js +0 -1
- package/dist/assets/DeleteItemModal-BbdwPLg2.js +0 -1
- package/dist/assets/DisclaimerModal-BVKcXPjd.js +0 -1
- package/dist/assets/DriveSettingsModal-CAlHEG0i.js +0 -1
- package/dist/assets/ExportDocumentWithErrorsModal-DztAA32Q.js +0 -1
- package/dist/assets/UpgradeDriveModal-zhOWMgKU.js +0 -1
- package/dist/assets/config-CU-aFfVJ.js +0 -1
- package/dist/assets/design_system_connect-DZ5YJvUa.js +0 -47
- package/dist/assets/document_drive-CE7W_PLN.js +0 -316
- package/dist/assets/document_model-C_UNn5sq.js +0 -230
- package/dist/assets/index-DoaPBWBs.js +0 -18
- package/dist/assets/index-bB42X8b1.js +0 -28
- package/dist/assets/json-editor-IWrqiUPX.js +0 -1
- package/dist/assets/nodefs-MgvhWdQD.js +0 -1
- package/dist/assets/opfs-ahp-CB0bWWG3.js +0 -3
- package/dist/assets/reactor_browser-CLJCmB9P.js +0 -129
- package/dist/assets/state-schemas-DeWxvIPb.js +0 -2
package/lib/src/utils/reactor.js
CHANGED
|
@@ -1,60 +1,23 @@
|
|
|
1
1
|
import { PGlite } from "@electric-sql/pglite";
|
|
2
2
|
import { ConsoleLogger, driveCollectionId, GqlChannelFactory, parseDriveUrl, ReactorBuilder, ReactorClientBuilder, SyncBuilder, } from "@powerhousedao/reactor";
|
|
3
|
-
import { getReactorDefaultDrivesConfig as getReactorDefaultDrivesConfigBase } from "@powerhousedao/reactor-browser";
|
|
4
3
|
import { createSignatureVerifier } from "@renown/sdk";
|
|
5
|
-
import { BrowserStorage, EventQueueManager, InMemoryCache, ReactorBuilder as LegacyReactorBuilder, } from "document-drive";
|
|
6
4
|
import { Kysely } from "kysely";
|
|
7
5
|
import { PGliteDialect } from "kysely-pglite-dialect";
|
|
8
|
-
import { createRemoveOldRemoteDrivesConfig } from "./drive-preservation.js";
|
|
9
|
-
/**
|
|
10
|
-
* Gets the default drives URLs from environment variable at call time.
|
|
11
|
-
* This must be called at runtime, not at module initialization, because
|
|
12
|
-
* the env var is set after the module is first imported during Vite dev server startup.
|
|
13
|
-
*/
|
|
14
|
-
function getDefaultDrivesUrlFromEnv() {
|
|
15
|
-
const envValue = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL;
|
|
16
|
-
if (!envValue)
|
|
17
|
-
return [];
|
|
18
|
-
return envValue.split(",").filter((url) => url.trim().length > 0);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Gets the default drives config for Connect, reading URLs from PH_CONNECT_DEFAULT_DRIVES_URL
|
|
22
|
-
* and using the Connect-specific preservation strategy from config.
|
|
23
|
-
*/
|
|
24
|
-
export const getReactorDefaultDrivesConfig = () => {
|
|
25
|
-
// Read env var at call time, not at module initialization
|
|
26
|
-
const defaultDrivesUrl = getDefaultDrivesUrlFromEnv();
|
|
27
|
-
const baseConfig = getReactorDefaultDrivesConfigBase({
|
|
28
|
-
defaultDrivesUrl,
|
|
29
|
-
});
|
|
30
|
-
// Override the removeOldRemoteDrives strategy with Connect-specific config
|
|
31
|
-
return {
|
|
32
|
-
defaultDrives: {
|
|
33
|
-
...baseConfig.defaultDrives,
|
|
34
|
-
removeOldRemoteDrives: createRemoveOldRemoteDrivesConfig(defaultDrivesUrl),
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
export function createBrowserStorage(routerBasename) {
|
|
39
|
-
return new BrowserStorage(routerBasename);
|
|
40
|
-
}
|
|
41
|
-
export function createBrowserDocumentDriveServer(documentModels, storage, options) {
|
|
42
|
-
return new LegacyReactorBuilder(documentModels)
|
|
43
|
-
.withStorage(storage)
|
|
44
|
-
.withCache(new InMemoryCache())
|
|
45
|
-
.withQueueManager(new EventQueueManager())
|
|
46
|
-
.withOptions(options)
|
|
47
|
-
.build();
|
|
48
|
-
}
|
|
49
6
|
/**
|
|
50
7
|
* Creates a Reactor that plugs into legacy storage but syncs through the new
|
|
51
8
|
* Reactor GQL API.
|
|
52
9
|
*/
|
|
53
|
-
export async function createBrowserReactor(documentModelModules, upgradeManifests,
|
|
10
|
+
export async function createBrowserReactor(documentModelModules, upgradeManifests, renown) {
|
|
54
11
|
const signerConfig = {
|
|
55
12
|
signer: renown.signer,
|
|
56
13
|
verifier: createSignatureVerifier(),
|
|
57
14
|
};
|
|
15
|
+
const jwtHandler = async (url) => {
|
|
16
|
+
if (!renown.user) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
return renown.getBearerToken({ expiresIn: 10, aud: url });
|
|
20
|
+
};
|
|
58
21
|
const pg = new PGlite("idb://reactor", {
|
|
59
22
|
relaxedDurability: true,
|
|
60
23
|
});
|
|
@@ -65,9 +28,7 @@ export async function createBrowserReactor(documentModelModules, upgradeManifest
|
|
|
65
28
|
.withReactorBuilder(new ReactorBuilder()
|
|
66
29
|
.withDocumentModels(documentModelModules)
|
|
67
30
|
.withUpgradeManifests(upgradeManifests)
|
|
68
|
-
.
|
|
69
|
-
.withSync(new SyncBuilder().withChannelFactory(new GqlChannelFactory(logger)))
|
|
70
|
-
.withFeatures({ legacyStorageEnabled: true })
|
|
31
|
+
.withSync(new SyncBuilder().withChannelFactory(new GqlChannelFactory(logger, jwtHandler)))
|
|
71
32
|
.withKysely(new Kysely({
|
|
72
33
|
dialect: new PGliteDialect(pg),
|
|
73
34
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/utils/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,WAAW,
|
|
1
|
+
{"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/utils/reactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,MAAM,EAEN,SAAS,EACT,WAAW,EACX,UAAU,EACV,OAAO,EACP,IAAI,EACL,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EAC1E,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAC/C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,MAAM,EAEN,SAAS,EACT,WAAW,EACX,UAAU,EACV,OAAO,EACP,IAAI,EACL,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EAC1E,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EAC/C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,SAAS,CAAC,CAsBpB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACxD,MAAM,EAAE,CAAC,EACT,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,IAAI,KAqBZ"}
|
|
@@ -6,7 +6,7 @@ export async function signOperation(operation, sign, documentId, document, reduc
|
|
|
6
6
|
if (!operation.action.context?.signer)
|
|
7
7
|
return operation;
|
|
8
8
|
if (!reducer) {
|
|
9
|
-
logger.error(
|
|
9
|
+
logger.error("Document model '@documentType' does not have a reducer", document.header.documentType);
|
|
10
10
|
return operation;
|
|
11
11
|
}
|
|
12
12
|
const context = operation.action.context.signer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAUxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAoB,EACpB,IAA+C,EAC/C,UAAkB,EAClB,QAA4B,EAC5B,OAAyB,EACzB,IAAW;IAEX,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/utils/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAUxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAoB,EACpB,IAA+C,EAC/C,UAAkB,EAClB,QAA4B,EAC5B,OAAyB,EACzB,IAAW;IAEX,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,wDAAwD,EACxD,QAAQ,CAAC,MAAM,CAAC,YAAY,CAC7B,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAiB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAE9D,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAC7C,SAAS,CAAC,MAAM,EAChB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,CACL,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAS,EACT,UAAmB,EACnB,IAAW;IAEX,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAEzB,MAAM,MAAM,GAAiB;QAC3B,GAAG,EAAE;YACH,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,UAAU,IAAI,EAAE;SACtB;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB;QACD,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,EAAE,MAAM,EAAE;QACnB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC"}
|