@powerhousedao/connect 6.1.0 → 6.2.0-dev.1
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/.env +11 -49
- package/README.md +4 -0
- package/dist/{AddDriveModal-Cg2qcYp6.js → AddDriveModal-kzL41qdg.js} +17 -7
- package/dist/AddDriveModal-kzL41qdg.js.map +1 -0
- package/dist/{ClearStorageModal-D2K3LkHV.js → ClearStorageModal-DIKwqiia.js} +7 -7
- package/dist/{ClearStorageModal-D2K3LkHV.js.map → ClearStorageModal-DIKwqiia.js.map} +1 -1
- package/dist/{CookiesPolicyModal-4QzcllDR.js → CookiesPolicyModal-1nOh6oN3.js} +5 -5
- package/dist/{CookiesPolicyModal-4QzcllDR.js.map → CookiesPolicyModal-1nOh6oN3.js.map} +1 -1
- package/dist/{CreateDocumentModal-7vgZ8nbM.js → CreateDocumentModal-nQbLVDq3.js} +4 -4
- package/dist/{CreateDocumentModal-7vgZ8nbM.js.map → CreateDocumentModal-nQbLVDq3.js.map} +1 -1
- package/dist/{DebugSettingsModal-B1FRL4rp.js → DebugSettingsModal-CJunSkZB.js} +8 -8
- package/dist/{DebugSettingsModal-B1FRL4rp.js.map → DebugSettingsModal-CJunSkZB.js.map} +1 -1
- package/dist/{DeleteDriveModal-ABue_rOY.js → DeleteDriveModal-6P0T1QgD.js} +6 -6
- package/dist/{DeleteDriveModal-ABue_rOY.js.map → DeleteDriveModal-6P0T1QgD.js.map} +1 -1
- package/dist/{DeleteItemModal-B6aHnYPD.js → DeleteItemModal-BmV1aQyZ.js} +7 -7
- package/dist/{DeleteItemModal-B6aHnYPD.js.map → DeleteItemModal-BmV1aQyZ.js.map} +1 -1
- package/dist/{DisclaimerModal-CfDeiBz8.js → DisclaimerModal-CVTFfN0_.js} +6 -6
- package/dist/{DisclaimerModal-CfDeiBz8.js.map → DisclaimerModal-CVTFfN0_.js.map} +1 -1
- package/dist/{DownloadDocumentWithErrorsModal-CaAPGg04.js → DownloadDocumentWithErrorsModal-CXeFUtaz.js} +5 -5
- package/dist/{DownloadDocumentWithErrorsModal-CaAPGg04.js.map → DownloadDocumentWithErrorsModal-CXeFUtaz.js.map} +1 -1
- package/dist/{DriveSettingsModal-CNtCO4-y.js → DriveSettingsModal-L5sM-rIh.js} +5 -5
- package/dist/{DriveSettingsModal-CNtCO4-y.js.map → DriveSettingsModal-L5sM-rIh.js.map} +1 -1
- package/dist/{InspectorModal-ywEL5GKA.js → InspectorModal-C7pIf6OO.js} +8 -8
- package/dist/{InspectorModal-ywEL5GKA.js.map → InspectorModal-C7pIf6OO.js.map} +1 -1
- package/dist/{MissingPackageModal-CUdcDjSO.js → MissingPackageModal-D_N96M6a.js} +5 -5
- package/dist/{MissingPackageModal-CUdcDjSO.js.map → MissingPackageModal-D_N96M6a.js.map} +1 -1
- package/dist/{SettingsModal-5dMD1lq9.js → SettingsModal-Dz3u5m_G.js} +11 -11
- package/dist/{SettingsModal-5dMD1lq9.js.map → SettingsModal-Dz3u5m_G.js.map} +1 -1
- package/dist/{UpgradeDriveModal-BwI5E5k3.js → UpgradeDriveModal-CyAUDCU7.js} +6 -6
- package/dist/{UpgradeDriveModal-BwI5E5k3.js.map → UpgradeDriveModal-CyAUDCU7.js.map} +1 -1
- package/dist/app-loader-C2ua5JsF.js +4 -0
- package/dist/{sidebar-CO3JjI3G.js → app-loader-CCPp_d0K.js} +894 -854
- package/dist/app-loader-CCPp_d0K.js.map +1 -0
- package/dist/{build-info-B3CWTvMu.js → build-info-DaWwuuKb.js} +4 -4
- package/dist/{build-info-B3CWTvMu.js.map → build-info-DaWwuuKb.js.map} +1 -1
- package/dist/components-CILkbSlg.js +5 -0
- package/dist/connect.config-aPx3rHZQ.js +161 -0
- package/dist/connect.config-aPx3rHZQ.js.map +1 -0
- package/dist/{load-D-7n7rPU.js → load-DalJBk1C.js} +13 -25
- package/dist/load-DalJBk1C.js.map +1 -0
- package/dist/main.js +5 -3
- package/dist/main.js.map +1 -1
- package/dist/{package-Dk3L0oWJ.js → package-BPfA1bwo.js} +6 -5
- package/dist/package-BPfA1bwo.js.map +1 -0
- package/dist/{pglite-runtime-Btp8ZXVH.js → pglite-runtime-toc1-TWa.js} +12 -6
- package/dist/pglite-runtime-toc1-TWa.js.map +1 -0
- package/dist/{pglite-seed-b1mJUaip.js → pglite-seed-D8oSKkep.js} +7 -7
- package/dist/pglite-seed-D8oSKkep.js.map +1 -0
- package/dist/pglite.worker.js +5 -5
- package/dist/pglite.worker.js.map +1 -1
- package/dist/pglite.worker.legacy.js +4 -4
- package/dist/pglite.worker.legacy.js.map +1 -1
- package/dist/{reactor-BixVsAMj.js → reactor-BlxTyHZ5.js} +92 -45
- package/dist/reactor-BlxTyHZ5.js.map +1 -0
- package/dist/{registerServiceWorker-BkUnxLqB.js → registerServiceWorker-B7uKpkci.js} +4 -4
- package/dist/{registerServiceWorker-BkUnxLqB.js.map → registerServiceWorker-B7uKpkci.js.map} +1 -1
- package/dist/{i18n-BuVT7wFQ.js → reload-connect-toast-CwvSc6F-.js} +19 -5
- package/dist/reload-connect-toast-CwvSc6F-.js.map +1 -0
- package/dist/runtime-config-DL3QjcfM.js +24 -0
- package/dist/runtime-config-DL3QjcfM.js.map +1 -0
- package/dist/start-connect.d.ts.map +1 -1
- package/dist/start-connect.js +5 -3
- package/dist/start-connect.js.map +1 -1
- package/dist/style.css +7 -0
- package/dist/{toast-DnODOv28.js → toast-BEy42aYx.js} +3 -3
- package/dist/{toast-DnODOv28.js.map → toast-BEy42aYx.js.map} +1 -1
- package/dist/{useRegistryPackages-PUiMxd73.js → useRegistryPackages-Bh0luCvV.js} +6 -6
- package/dist/useRegistryPackages-Bh0luCvV.js.map +1 -0
- package/package.json +11 -10
- package/public/powerhouse.config.json +33 -0
- package/dist/AddDriveModal-Cg2qcYp6.js.map +0 -1
- package/dist/connect.config-B2xP5Iez.js +0 -148
- package/dist/connect.config-B2xP5Iez.js.map +0 -1
- package/dist/i18n-BuVT7wFQ.js.map +0 -1
- package/dist/load-D-7n7rPU.js.map +0 -1
- package/dist/package-Dk3L0oWJ.js.map +0 -1
- package/dist/packages.config-CiH8KJVN.js +0 -32
- package/dist/packages.config-CiH8KJVN.js.map +0 -1
- package/dist/pglite-runtime-Btp8ZXVH.js.map +0 -1
- package/dist/pglite-seed-b1mJUaip.js.map +0 -1
- package/dist/reactor-BixVsAMj.js.map +0 -1
- package/dist/sidebar-CO3JjI3G.js.map +0 -1
- package/dist/useRegistryPackages-PUiMxd73.js.map +0 -1
- package/public/ph-packages.json +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-DalJBk1C.js","sources":["../src/hooks/useCheckLatestVersion.ts","../src/hooks/utils.ts","../src/store/user.ts","../src/components/load.tsx"],"sourcesContent":["import { connectConfig } from \"@powerhousedao/connect/config\";\nimport { isLatestVersion } from \"@powerhousedao/connect/hooks\";\nimport { toast } from \"@powerhousedao/connect/services\";\nimport { logger } from \"document-model\";\nimport { createElement, useEffect } from \"react\";\nimport { ReloadConnectToast } from \"../components/reload-connect-toast.js\";\n\nexport const useCheckLatestVersion = () => {\n async function checkLatestVersion() {\n const result = await isLatestVersion();\n if (result === null) return;\n // ignore dev/staging versions\n if (result.isLatest || result.currentVersion.includes(\"-\")) {\n return true;\n }\n\n if (\n import.meta.env.MODE === \"development\" ||\n connectConfig.studioMode ||\n !connectConfig.warnOutdatedApp\n ) {\n logger.warn(\n \"Connect is outdated: \\nCurrent: @currentVersion\\nLatest: @latestVersion\",\n result.currentVersion,\n result.latestVersion,\n );\n } else {\n toast(createElement(ReloadConnectToast), {\n type: \"connect-warning\",\n toastId: \"outdated-app\",\n autoClose: false,\n });\n }\n }\n\n useEffect(() => {\n checkLatestVersion().catch(console.error);\n }, []);\n};\n","import { packageJson } from \"../utils/package-json.js\";\n\nexport const isMac = window.navigator.appVersion.includes(\"Mac\");\n\nconst urlBranchMap: Record<string, string> = {\n \"staging/makerdao\": \"deployments/staging/makerdao\",\n \"staging/arbitrum\": \"arb-ltip\",\n \"staging/powerhouse\": \"staging\",\n makerdao: \"deployments/makerdao\",\n arbitrum: \"deployments/arbitrum\",\n arbgrants: \"deployments/arbitrum\",\n localhost: \"develop\",\n};\n\nconst getGithubLinkFromUrl = () => {\n const githubLink = \"https://raw.githubusercontent.com/powerhouse-inc/connect\";\n const url = window.location.href;\n\n const env = Object.keys(urlBranchMap).find((env) => url.includes(env));\n const value = env ? urlBranchMap[env] : undefined;\n if (!value) {\n return undefined;\n } else {\n return `${githubLink}/${value}/package.json`;\n }\n};\n\nconst fetchLatestVersion = async () => {\n const link = getGithubLinkFromUrl();\n if (!link) {\n return undefined;\n }\n const result = await fetch(link);\n const data = (await result.json()) as { version: string };\n const { version } = data;\n return version;\n};\n\nexport const isLatestVersion = async () => {\n const currentVersion = packageJson.version;\n const deployed = await fetchLatestVersion();\n\n if (deployed) {\n return {\n isLatest: deployed === currentVersion,\n currentVersion,\n latestVersion: deployed,\n };\n }\n\n return null;\n};\n","import { useUser } from \"@powerhousedao/reactor-browser\";\nimport type { User as SentryUser } from \"@sentry/react\";\nimport { setUser as setSentryUser } from \"@sentry/react\";\nimport { useEffect } from \"react\";\n\nexport function useSetSentryUser() {\n const user = useUser();\n useEffect(() => {\n let sentryUser: SentryUser | null = null;\n if (user) {\n // saves the user info except the credential\n const { credential: _credential, ...rest } = user;\n sentryUser = { id: rest.did, username: rest.ens?.name, ...rest };\n }\n setSentryUser(sentryUser);\n }, [user]);\n}\n","import { useCheckLatestVersion } from \"@powerhousedao/connect/hooks\";\nimport \"@powerhousedao/connect/i18n\";\nimport { createReactor, useSetSentryUser } from \"@powerhousedao/connect/store\";\nimport {\n detectReactorPgMajor,\n seedPendingPgVersion,\n} from \"@powerhousedao/connect/utils\";\nimport { initTheme } from \"@powerhousedao/reactor-browser\";\nimport type { DocumentModelLib } from \"document-model\";\nimport { type ReactNode } from \"react\";\nimport { applyConnectBranding, loadRuntimeConfig } from \"../runtime-config.js\";\n\nexport async function loadComponent(localPackage?: DocumentModelLib) {\n await seedPendingPgVersion();\n await detectReactorPgMajor();\n const runtimeConfig = await loadRuntimeConfig();\n applyConnectBranding(runtimeConfig);\n await createReactor(localPackage);\n return {\n default: ({ children }: { children?: ReactNode }) => {\n initTheme();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useSetSentryUser();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useCheckLatestVersion();\n return children;\n },\n };\n}\n"],"names":["packageJson"],"mappings":";;;;;;;;;;;;;;;AAOA,MAAa,8BAA8B;CACzC,eAAe,qBAAqB;EAClC,MAAM,SAAS,MAAM,iBAAiB;AACtC,MAAI,WAAW,KAAM;AAErB,MAAI,OAAO,YAAY,OAAO,eAAe,SAAS,IAAI,CACxD,QAAO;AAGT,MACE,OAAO,KAAK,IAAI,SAAS,iBACzB,cAAc,cACd,CAAC,cAAc,gBAEf,QAAO,KACL,2EACA,OAAO,gBACP,OAAO,cACR;MAED,OAAM,cAAc,mBAAmB,EAAE;GACvC,MAAM;GACN,SAAS;GACT,WAAW;GACZ,CAAC;;AAIN,iBAAgB;AACd,sBAAoB,CAAC,MAAM,QAAQ,MAAM;IACxC,EAAE,CAAC;;ACnCa,OAAO,UAAU,WAAW,SAAS,MAAM;AAEhE,MAAM,eAAuC;CAC3C,oBAAoB;CACpB,oBAAoB;CACpB,sBAAsB;CACtB,UAAU;CACV,UAAU;CACV,WAAW;CACX,WAAW;CACZ;AAED,MAAM,6BAA6B;CACjC,MAAM,aAAa;CACnB,MAAM,MAAM,OAAO,SAAS;CAE5B,MAAM,MAAM,OAAO,KAAK,aAAa,CAAC,MAAM,QAAQ,IAAI,SAAS,IAAI,CAAC;CACtE,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAA;AACxC,KAAI,CAAC,MACH;KAEA,QAAO,GAAG,WAAW,GAAG,MAAM;;AAIlC,MAAM,qBAAqB,YAAY;CACrC,MAAM,OAAO,sBAAsB;AACnC,KAAI,CAAC,KACH;CAIF,MAAM,EAAE,YADM,OADC,MAAM,MAAM,KAAK,EACL,MAAM;AAEjC,QAAO;;AAGT,MAAa,kBAAkB,YAAY;CACzC,MAAM,iBAAiBA,gBAAY;CACnC,MAAM,WAAW,MAAM,oBAAoB;AAE3C,KAAI,SACF,QAAO;EACL,UAAU,aAAa;EACvB;EACA,eAAe;EAChB;AAGH,QAAO;;;;AC7CT,SAAgB,mBAAmB;CACjC,MAAM,OAAO,SAAS;AACtB,iBAAgB;EACd,IAAI,aAAgC;AACpC,MAAI,MAAM;GAER,MAAM,EAAE,YAAY,aAAa,GAAG,SAAS;AAC7C,gBAAa;IAAE,IAAI,KAAK;IAAK,UAAU,KAAK,KAAK;IAAM,GAAG;IAAM;;AAElE,UAAc,WAAW;IACxB,CAAC,KAAK,CAAC;;;;ACHZ,eAAsB,cAAc,cAAiC;AACnE,OAAM,sBAAsB;AAC5B,OAAM,sBAAsB;AAE5B,sBADsB,MAAM,mBAAmB,CACZ;AACnC,OAAM,cAAc,aAAa;AACjC,QAAO,EACL,UAAU,EAAE,eAAyC;AACnD,aAAW;AAEX,oBAAkB;AAElB,yBAAuB;AACvB,SAAO;IAEV","debug_id":"46f2a57c-d10d-5352-a6bc-828307a5bc08"}
|
package/dist/main.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import {
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3c7b261e-f73c-509e-b758-8cb48bb6f3fd")}catch(e){}}();
|
|
3
|
+
import { r as loadRuntimeConfig } from "./runtime-config-DL3QjcfM.js";
|
|
4
4
|
import { createRoot } from "react-dom/client";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region main.tsx
|
|
7
7
|
if (!window.ph) window.ph = {};
|
|
8
|
+
await loadRuntimeConfig();
|
|
9
|
+
const { AppLoader } = await import("./app-loader-C2ua5JsF.js");
|
|
8
10
|
createRoot(document.getElementById("root")).render(/* @__PURE__ */ jsx(AppLoader, {}));
|
|
9
11
|
//#endregion
|
|
10
12
|
|
|
11
13
|
//# sourceMappingURL=main.js.map
|
|
12
|
-
//# debugId=
|
|
14
|
+
//# debugId=3c7b261e-f73c-509e-b758-8cb48bb6f3fd
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../main.tsx"],"sourcesContent":["import { createRoot } from \"react-dom/client\";\nimport {
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../main.tsx"],"sourcesContent":["import { createRoot } from \"react-dom/client\";\nimport { loadRuntimeConfig } from \"./src/runtime-config.js\";\n\nif (!window.ph) {\n window.ph = {};\n}\n\n// Bootstrap the runtime config BEFORE AppLoader's transitive imports\nawait loadRuntimeConfig();\nconst { AppLoader } = await import(\"./src/components/app-loader.js\");\n\ncreateRoot(document.getElementById(\"root\")!).render(<AppLoader />);\n"],"names":[],"mappings":";;;;;;AAGA,IAAI,CAAC,OAAO,GACV,QAAO,KAAK,EAAE;AAIhB,MAAM,mBAAmB;AACzB,MAAM,EAAE,cAAc,MAAM,OAAO;AAEnC,WAAW,SAAS,eAAe,OAAO,CAAE,CAAC,OAAO,oBAAC,WAAD,EAAa,CAAA,CAAC","debug_id":"3c7b261e-f73c-509e-b758-8cb48bb6f3fd"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
//#region package.json
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="bd4ddf06-1fdf-56bc-9246-fb6e7a8738e1")}catch(e){}}();
|
|
4
4
|
var package_default = {
|
|
5
5
|
name: "@powerhousedao/connect",
|
|
6
6
|
productName: "Powerhouse-Connect",
|
|
7
|
-
version: "6.
|
|
7
|
+
version: "6.2.0-dev.1",
|
|
8
8
|
description: "Powerhouse Connect",
|
|
9
9
|
main: "dist/index.html",
|
|
10
10
|
type: "module",
|
|
@@ -60,7 +60,7 @@ var package_default = {
|
|
|
60
60
|
"preview": "vite preview",
|
|
61
61
|
"cy:open": "cypress open",
|
|
62
62
|
"docker:build": "docker build -f ./Dockerfile --tag connect-test-dev --build-arg TAG=dev .",
|
|
63
|
-
"docker:run": "docker run -it -p 4000:4000 -v $(realpath ../../../monorepo):/monorepo -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf.template -e
|
|
63
|
+
"docker:run": "docker run -it -p 4000:4000 -v $(realpath ../../../monorepo):/monorepo -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf.template -e PH_CONNECT_BASE_PATH=/develop/powerhouse/connect -e PORT=4000 connect-test-dev"
|
|
64
64
|
},
|
|
65
65
|
dependencies: {
|
|
66
66
|
"@electric-sql/pglite": "catalog:",
|
|
@@ -70,6 +70,7 @@ var package_default = {
|
|
|
70
70
|
"@openpanel/web": "^1.4.1",
|
|
71
71
|
"@powerhousedao/config": "workspace:*",
|
|
72
72
|
"@powerhousedao/design-system": "workspace:*",
|
|
73
|
+
"@powerhousedao/reactor-attachments": "workspace:*",
|
|
73
74
|
"@powerhousedao/document-engineering": "catalog:",
|
|
74
75
|
"@powerhousedao/powerhouse-vetra-packages": "workspace:*",
|
|
75
76
|
"@powerhousedao/reactor-browser": "workspace:*",
|
|
@@ -120,5 +121,5 @@ var package_default = {
|
|
|
120
121
|
//#endregion
|
|
121
122
|
export { package_default as t };
|
|
122
123
|
|
|
123
|
-
//# sourceMappingURL=package-
|
|
124
|
-
//# debugId=
|
|
124
|
+
//# sourceMappingURL=package-BPfA1bwo.js.map
|
|
125
|
+
//# debugId=bd4ddf06-1fdf-56bc-9246-fb6e7a8738e1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-BPfA1bwo.js","sources":["../package.json"],"sourcesContent":[""],"names":[],"mappings":"","debug_id":"bd4ddf06-1fdf-56bc-9246-fb6e7a8738e1"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8646820c-6f27-5ef6-a1f1-39f46bed434a")}catch(e){}}();
|
|
3
|
+
import { t as PH_CONNECT_BASE_PATH } from "./connect.config-aPx3rHZQ.js";
|
|
4
|
+
import { ROOT_STORAGE_NAMESPACE, getStorageNamespace } from "@powerhousedao/shared/connect";
|
|
3
5
|
import { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from "@powerhousedao/shared/processors";
|
|
6
|
+
const STORAGE_NAMESPACE = getStorageNamespace(PH_CONNECT_BASE_PATH);
|
|
7
|
+
const REACTOR_PGLITE_NAME = STORAGE_NAMESPACE;
|
|
8
|
+
const RELATIONAL_PGLITE_NAME = STORAGE_NAMESPACE === ROOT_STORAGE_NAMESPACE ? DEFAULT_RELATIONAL_PROCESSOR_DB_NAME : `${STORAGE_NAMESPACE}-${DEFAULT_RELATIONAL_PROCESSOR_DB_NAME}`;
|
|
9
|
+
//#endregion
|
|
4
10
|
//#region src/utils/pglite-idb.ts
|
|
5
11
|
const IDB_STORE_NAME = "FILE_DATA";
|
|
6
|
-
const REACTOR_IDB_NAME =
|
|
7
|
-
const RELATIONAL_IDB_NAME = `/pglite/${
|
|
12
|
+
const REACTOR_IDB_NAME = `/pglite/${REACTOR_PGLITE_NAME}`;
|
|
13
|
+
const RELATIONAL_IDB_NAME = `/pglite/${RELATIONAL_PGLITE_NAME}`;
|
|
8
14
|
const PRIMARY_IDB_NAMES = [REACTOR_IDB_NAME, RELATIONAL_IDB_NAME];
|
|
9
15
|
function idbError(req, context) {
|
|
10
16
|
const cause = req.error ?? /* @__PURE__ */ new Error("unknown IDB error");
|
|
@@ -129,7 +135,7 @@ async function loadPgDump(major) {
|
|
|
129
135
|
throw new Error(`Unsupported PGlite major: ${String(major)}`);
|
|
130
136
|
}
|
|
131
137
|
//#endregion
|
|
132
|
-
export { loadPGliteModule as a, subscribeReactorPgMajor as c, createFileDataStore as d, idbError as f, invalidateReactorPgMajorCache as i, IDB_STORE_NAME as l, readPgVersionFile as m, detectRelationalPgMajor as n, loadPgDump as o, openIdb as p, getCachedReactorPgMajor as r, resolvePgMajorForRuntime as s, detectReactorPgMajor as t, PRIMARY_IDB_NAMES as u };
|
|
138
|
+
export { loadPGliteModule as a, subscribeReactorPgMajor as c, createFileDataStore as d, idbError as f, RELATIONAL_PGLITE_NAME as g, REACTOR_PGLITE_NAME as h, invalidateReactorPgMajorCache as i, IDB_STORE_NAME as l, readPgVersionFile as m, detectRelationalPgMajor as n, loadPgDump as o, openIdb as p, getCachedReactorPgMajor as r, resolvePgMajorForRuntime as s, detectReactorPgMajor as t, PRIMARY_IDB_NAMES as u };
|
|
133
139
|
|
|
134
|
-
//# sourceMappingURL=pglite-runtime-
|
|
135
|
-
//# debugId=
|
|
140
|
+
//# sourceMappingURL=pglite-runtime-toc1-TWa.js.map
|
|
141
|
+
//# debugId=8646820c-6f27-5ef6-a1f1-39f46bed434a
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pglite-runtime-toc1-TWa.js","sources":["../src/utils/storage-namespace.ts","../src/utils/pglite-idb.ts","../src/utils/pglite-runtime.ts"],"sourcesContent":["import { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from \"@powerhousedao/shared/processors\";\nimport {\n getStorageNamespace,\n ROOT_STORAGE_NAMESPACE,\n} from \"@powerhousedao/shared/connect\";\nimport { PH_CONNECT_BASE_PATH } from \"../connect.config.js\";\n\n// Single owner of the origin-scoped storage namespace. Reuses the same\n// resolved base path connect.config.ts feeds the router so every store agrees.\nconst basePath = PH_CONNECT_BASE_PATH;\n\n// \"reactor\" at the root, \"reactor--<slug>\" under a path prefix.\nexport const STORAGE_NAMESPACE = getStorageNamespace(basePath);\n\n// PGlite data-dir name for the reactor store, fed to `idb://`.\nexport const REACTOR_PGLITE_NAME = STORAGE_NAMESPACE;\n\n// IdbFs name for the relational-processor worker store.\nexport const RELATIONAL_PGLITE_NAME =\n STORAGE_NAMESPACE === ROOT_STORAGE_NAMESPACE\n ? DEFAULT_RELATIONAL_PROCESSOR_DB_NAME\n : `${STORAGE_NAMESPACE}-${DEFAULT_RELATIONAL_PROCESSOR_DB_NAME}`;\n","import {\n REACTOR_PGLITE_NAME,\n RELATIONAL_PGLITE_NAME,\n} from \"./storage-namespace.js\";\n\nexport const IDB_STORE_NAME = \"FILE_DATA\";\nexport const IDB_DB_VERSION = 21;\n\nexport const REACTOR_IDB_NAME = `/pglite/${REACTOR_PGLITE_NAME}`;\nexport const RELATIONAL_IDB_NAME = `/pglite/${RELATIONAL_PGLITE_NAME}`;\n\nexport const PRIMARY_IDB_NAMES = [\n REACTOR_IDB_NAME,\n RELATIONAL_IDB_NAME,\n] as const;\n\ntype FileDataValue = {\n contents: Uint8Array | number[];\n mode: number;\n timestamp: Date | number;\n};\n\nexport function idbError(\n req: IDBRequest | IDBTransaction,\n context: string,\n): Error {\n const cause = req.error ?? new Error(\"unknown IDB error\");\n return new Error(`${context}: ${cause.message}`, { cause });\n}\n\nexport function indexedDbExists(name: string): Promise<boolean> {\n if (typeof indexedDB.databases === \"function\") {\n return indexedDB\n .databases()\n .then((dbs) => dbs.some((d) => d.name === name))\n .catch(() => true);\n }\n return Promise.resolve(true);\n}\n\nexport function openIdb(\n name: string,\n version: number,\n upgrade?: (db: IDBDatabase) => void,\n): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n const req = indexedDB.open(name, version);\n req.onerror = () => reject(idbError(req, `IDB open failed for ${name}`));\n req.onblocked = () => reject(new Error(`IDB open blocked for ${name}`));\n req.onupgradeneeded = () => upgrade?.(req.result);\n req.onsuccess = () => resolve(req.result);\n });\n}\n\nexport function createFileDataStore(db: IDBDatabase): void {\n if (!db.objectStoreNames.contains(IDB_STORE_NAME)) {\n const store = db.createObjectStore(IDB_STORE_NAME);\n store.createIndex(\"timestamp\", \"timestamp\", { unique: false });\n }\n}\n\nexport async function readPgVersionFile(\n idbName: string,\n): Promise<number | null> {\n if (!(await indexedDbExists(idbName))) return null;\n let db: IDBDatabase;\n try {\n db = await openIdb(idbName, IDB_DB_VERSION, createFileDataStore);\n } catch {\n return null;\n }\n try {\n if (!db.objectStoreNames.contains(IDB_STORE_NAME)) return null;\n const tx = db.transaction(IDB_STORE_NAME, \"readonly\");\n const store = tx.objectStore(IDB_STORE_NAME);\n const value = await new Promise<FileDataValue | null>((resolve, reject) => {\n const req = store.openCursor();\n req.onerror = () =>\n reject(idbError(req, `FILE_DATA cursor failed for ${idbName}`));\n req.onsuccess = () => {\n const cursor = req.result;\n if (!cursor) return resolve(null);\n const key = typeof cursor.key === \"string\" ? cursor.key : \"\";\n if (key.endsWith(\"/PG_VERSION\")) {\n resolve(cursor.value as FileDataValue);\n } else {\n cursor.continue();\n }\n };\n });\n if (!value) return null;\n const bytes =\n value.contents instanceof Uint8Array\n ? value.contents\n : new Uint8Array(value.contents);\n const text = new TextDecoder().decode(bytes).trim();\n const major = parseInt(text, 10);\n return Number.isFinite(major) ? major : null;\n } finally {\n db.close();\n }\n}\n","import type * as CurrentPGliteModuleNs from \"@electric-sql/pglite\";\nimport {\n readPgVersionFile,\n REACTOR_IDB_NAME,\n RELATIONAL_IDB_NAME,\n} from \"./pglite-idb.js\";\n\nexport const CURRENT_PG_MAJOR = 17;\nexport const SUPPORTED_PG_MAJORS = [16, 17] as const;\nexport type SupportedPgMajor = (typeof SUPPORTED_PG_MAJORS)[number];\n\ntype DetectedMajor = SupportedPgMajor | null;\n\ntype CurrentPGliteModule = typeof CurrentPGliteModuleNs;\n\nlet cachedReactorMajor: DetectedMajor | undefined;\nlet inflight: Promise<DetectedMajor> | undefined;\nconst majorListeners = new Set<() => void>();\n\nfunction notifyMajorChanged() {\n for (const l of majorListeners) l();\n}\n\nexport function subscribeReactorPgMajor(cb: () => void): () => void {\n majorListeners.add(cb);\n return () => {\n majorListeners.delete(cb);\n };\n}\n\nfunction coerceMajor(value: number | null): DetectedMajor {\n if (value === null) return null;\n return (SUPPORTED_PG_MAJORS as readonly number[]).includes(value)\n ? (value as SupportedPgMajor)\n : null;\n}\n\nexport async function detectReactorPgMajor(): Promise<DetectedMajor> {\n if (cachedReactorMajor !== undefined) return cachedReactorMajor;\n if (inflight) return inflight;\n\n inflight = (async () => {\n const major = coerceMajor(await readPgVersionFile(REACTOR_IDB_NAME));\n cachedReactorMajor = major;\n notifyMajorChanged();\n return major;\n })();\n try {\n return await inflight;\n } finally {\n inflight = undefined;\n }\n}\n\nexport function getCachedReactorPgMajor(): DetectedMajor | undefined {\n return cachedReactorMajor;\n}\n\nexport function invalidateReactorPgMajorCache(): void {\n cachedReactorMajor = undefined;\n notifyMajorChanged();\n}\n\nexport async function detectRelationalPgMajor(): Promise<DetectedMajor> {\n return coerceMajor(await readPgVersionFile(RELATIONAL_IDB_NAME));\n}\n\n/**\n * Pick the PGlite major to use for *new* reactor clients: fall back to the\n * current version when there is no existing data dir.\n */\nexport function resolvePgMajorForRuntime(\n detected: DetectedMajor,\n): SupportedPgMajor {\n return detected ?? CURRENT_PG_MAJOR;\n}\n\n/**\n * Loads the PGlite module that matches an on-disk data dir major version.\n *\n * The 0.2.x and 0.3.x modules expose the same runtime interface (PGlite class,\n * `idb://` data-dir support, waitReady, exec/query/transaction, close). The\n * return type is pinned to the current package's module so callers can use it\n * against `kysely-pglite-dialect` which peer-depends on both majors.\n */\nexport async function loadPGliteModule(\n major: SupportedPgMajor,\n): Promise<CurrentPGliteModule> {\n if (major === 16) {\n return (await import(\"pglite-legacy-02\")) as unknown as CurrentPGliteModule;\n }\n if (major === 17) return import(\"@electric-sql/pglite\");\n throw new Error(`Unsupported PGlite major: ${String(major)}`);\n}\n\ntype PgDumpFn = (options: {\n pg: unknown;\n}) => Promise<{ text(): Promise<string> }>;\n\n/**\n * Loads the pg_dump tool for the given PGlite major. pg_dump's VFS layout is\n * version-specific, so using the wrong major against a live PGlite instance\n * fails with Emscripten ENOENT (errno 44).\n */\nexport async function loadPgDump(major: SupportedPgMajor): Promise<PgDumpFn> {\n if (major === 16) {\n const mod = (await import(\"pglite-tools-legacy-02/pg_dump\")) as {\n pgDump: PgDumpFn;\n };\n return mod.pgDump;\n }\n if (major === 17) {\n const mod = (await import(\"@electric-sql/pglite-tools/pg_dump\")) as {\n pgDump: PgDumpFn;\n };\n return mod.pgDump;\n }\n throw new Error(`Unsupported PGlite major: ${String(major)}`);\n}\n"],"names":[],"mappings":"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","debug_id":"8646820c-6f27-5ef6-a1f1-39f46bed434a"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import { i as invalidateReactorPgMajorCache } from "./pglite-runtime-
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ff4aaa54-46c4-5a4e-8cea-21e6aab9e806")}catch(e){}}();
|
|
3
|
+
import { h as REACTOR_PGLITE_NAME, i as invalidateReactorPgMajorCache } from "./pglite-runtime-toc1-TWa.js";
|
|
4
4
|
//#region src/utils/pglite-seed.ts
|
|
5
5
|
const PENDING_PG_SEED_KEY = "ph:pending-pg-seed";
|
|
6
6
|
/**
|
|
7
7
|
* If the Debug Inspector requested a forced PG version reset, this runs
|
|
8
8
|
* before the reactor is created on the subsequent page load: opens a fresh
|
|
9
|
-
* PGlite of the requested major against
|
|
9
|
+
* PGlite of the requested major against the reactor data dir, lets `initdb`
|
|
10
10
|
* populate `PG_VERSION`, then closes. The next step of app boot then
|
|
11
11
|
* detects this fresh data dir and picks the matching runtime.
|
|
12
12
|
*/
|
|
@@ -18,7 +18,7 @@ async function seedPendingPgVersion() {
|
|
|
18
18
|
try {
|
|
19
19
|
if (major === 16) {
|
|
20
20
|
const { PGlite } = await import("pglite-legacy-02");
|
|
21
|
-
const pg = new PGlite(
|
|
21
|
+
const pg = new PGlite(`idb://${REACTOR_PGLITE_NAME}`);
|
|
22
22
|
try {
|
|
23
23
|
await pg.waitReady;
|
|
24
24
|
} finally {
|
|
@@ -26,7 +26,7 @@ async function seedPendingPgVersion() {
|
|
|
26
26
|
}
|
|
27
27
|
} else if (major === 17) {
|
|
28
28
|
const { PGlite } = await import("@electric-sql/pglite");
|
|
29
|
-
const pg = new PGlite(
|
|
29
|
+
const pg = new PGlite(`idb://${REACTOR_PGLITE_NAME}`);
|
|
30
30
|
try {
|
|
31
31
|
await pg.waitReady;
|
|
32
32
|
} finally {
|
|
@@ -45,5 +45,5 @@ async function seedPendingPgVersion() {
|
|
|
45
45
|
//#endregion
|
|
46
46
|
export { seedPendingPgVersion as n, PENDING_PG_SEED_KEY as t };
|
|
47
47
|
|
|
48
|
-
//# sourceMappingURL=pglite-seed-
|
|
49
|
-
//# debugId=
|
|
48
|
+
//# sourceMappingURL=pglite-seed-D8oSKkep.js.map
|
|
49
|
+
//# debugId=ff4aaa54-46c4-5a4e-8cea-21e6aab9e806
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pglite-seed-D8oSKkep.js","sources":["../src/utils/pglite-seed.ts"],"sourcesContent":["import { invalidateReactorPgMajorCache } from \"./pglite-runtime.js\";\nimport { REACTOR_PGLITE_NAME } from \"./storage-namespace.js\";\n\nexport const PENDING_PG_SEED_KEY = \"ph:pending-pg-seed\";\n\n/**\n * If the Debug Inspector requested a forced PG version reset, this runs\n * before the reactor is created on the subsequent page load: opens a fresh\n * PGlite of the requested major against the reactor data dir, lets `initdb`\n * populate `PG_VERSION`, then closes. The next step of app boot then\n * detects this fresh data dir and picks the matching runtime.\n */\nexport async function seedPendingPgVersion(): Promise<void> {\n const raw = localStorage.getItem(PENDING_PG_SEED_KEY);\n if (!raw) return;\n\n const major = parseInt(raw, 10);\n console.info(`[pglite-seed] Seeding fresh PG${major} data dir...`);\n\n try {\n if (major === 16) {\n const { PGlite } = await import(\"pglite-legacy-02\");\n const pg = new PGlite(`idb://${REACTOR_PGLITE_NAME}`);\n try {\n await pg.waitReady;\n } finally {\n await pg.close();\n }\n } else if (major === 17) {\n const { PGlite } = await import(\"@electric-sql/pglite\");\n const pg = new PGlite(`idb://${REACTOR_PGLITE_NAME}`);\n try {\n await pg.waitReady;\n } finally {\n await pg.close();\n }\n } else {\n console.warn(`[pglite-seed] Unsupported version ${raw}, skipping`);\n return;\n }\n console.info(`[pglite-seed] Seeded PG${major} data dir.`);\n } finally {\n localStorage.removeItem(PENDING_PG_SEED_KEY);\n invalidateReactorPgMajorCache();\n }\n}\n"],"names":[],"mappings":";;;;AAGA,MAAa,sBAAsB;;;;;;;;AASnC,eAAsB,uBAAsC;CAC1D,MAAM,MAAM,aAAa,QAAQ,oBAAoB;AACrD,KAAI,CAAC,IAAK;CAEV,MAAM,QAAQ,SAAS,KAAK,GAAG;AAC/B,SAAQ,KAAK,iCAAiC,MAAM,cAAc;AAElE,KAAI;AACF,MAAI,UAAU,IAAI;GAChB,MAAM,EAAE,WAAW,MAAM,OAAO;GAChC,MAAM,KAAK,IAAI,OAAO,SAAS,sBAAsB;AACrD,OAAI;AACF,UAAM,GAAG;aACD;AACR,UAAM,GAAG,OAAO;;aAET,UAAU,IAAI;GACvB,MAAM,EAAE,WAAW,MAAM,OAAO;GAChC,MAAM,KAAK,IAAI,OAAO,SAAS,sBAAsB;AACrD,OAAI;AACF,UAAM,GAAG;aACD;AACR,UAAM,GAAG,OAAO;;SAEb;AACL,WAAQ,KAAK,qCAAqC,IAAI,YAAY;AAClE;;AAEF,UAAQ,KAAK,0BAA0B,MAAM,YAAY;WACjD;AACR,eAAa,WAAW,oBAAoB;AAC5C,iCAA+B","debug_id":"ff4aaa54-46c4-5a4e-8cea-21e6aab9e806"}
|
package/dist/pglite.worker.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7e6b10c2-9669-557b-9d49-19e30e9e5241")}catch(e){}}();
|
|
3
3
|
import { IdbFs, PGlite } from "@electric-sql/pglite";
|
|
4
|
-
import { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from "@powerhousedao/shared/processors";
|
|
5
4
|
import { live } from "@electric-sql/pglite/live";
|
|
6
5
|
import { worker } from "@electric-sql/pglite/worker";
|
|
6
|
+
import { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from "@powerhousedao/shared/processors";
|
|
7
7
|
//#region pglite.worker.ts
|
|
8
|
-
worker({ init() {
|
|
9
|
-
const idbFs = new IdbFs(DEFAULT_RELATIONAL_PROCESSOR_DB_NAME);
|
|
8
|
+
worker({ init(options) {
|
|
9
|
+
const idbFs = new IdbFs((options?.meta)?.dbName ?? DEFAULT_RELATIONAL_PROCESSOR_DB_NAME);
|
|
10
10
|
return Promise.resolve(new PGlite({
|
|
11
11
|
fs: idbFs,
|
|
12
12
|
relaxedDurability: true,
|
|
@@ -16,4 +16,4 @@ worker({ init() {
|
|
|
16
16
|
//#endregion
|
|
17
17
|
|
|
18
18
|
//# sourceMappingURL=pglite.worker.js.map
|
|
19
|
-
//# debugId=
|
|
19
|
+
//# debugId=7e6b10c2-9669-557b-9d49-19e30e9e5241
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.worker.js","sources":["../pglite.worker.ts"],"sourcesContent":["import { IdbFs, PGlite } from \"@electric-sql/pglite\";\nimport { live } from \"@electric-sql/pglite/live\";\nimport { worker } from \"@electric-sql/pglite/worker\";\nimport { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from \"@powerhousedao/shared/processors\";\n\nworker({\n init() {\n const idbFs = new IdbFs(
|
|
1
|
+
{"version":3,"file":"pglite.worker.js","sources":["../pglite.worker.ts"],"sourcesContent":["import { IdbFs, PGlite } from \"@electric-sql/pglite\";\nimport { live } from \"@electric-sql/pglite/live\";\nimport { worker } from \"@electric-sql/pglite/worker\";\nimport { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from \"@powerhousedao/shared/processors\";\n\nworker({\n init(options) {\n // dbName carries the origin-scoped storage namespace from the main thread.\n const dbName =\n (options?.meta as { dbName?: string } | undefined)?.dbName ??\n DEFAULT_RELATIONAL_PROCESSOR_DB_NAME;\n const idbFs = new IdbFs(dbName);\n return Promise.resolve(\n new PGlite({\n fs: idbFs,\n relaxedDurability: true,\n extensions: { live },\n }),\n );\n },\n}).catch(console.error);\n"],"names":[],"mappings":";;;;;;;AAKA,OAAO,EACL,KAAK,SAAS;CAKZ,MAAM,QAAQ,IAAI,OAFf,SAAS,OAA0C,UACpD,qCAC6B;AAC/B,QAAO,QAAQ,QACb,IAAI,OAAO;EACT,IAAI;EACJ,mBAAmB;EACnB,YAAY,EAAE,MAAM;EACrB,CAAC,CACH;GAEJ,CAAC,CAAC,MAAM,QAAQ,MAAM","debug_id":"7e6b10c2-9669-557b-9d49-19e30e9e5241"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b70dcd19-85a8-5811-af59-7dc14c24c386")}catch(e){}}();
|
|
3
3
|
import { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from "@powerhousedao/shared/processors";
|
|
4
4
|
import { IdbFs, PGlite } from "pglite-legacy-02";
|
|
5
5
|
import { live } from "pglite-legacy-02/live";
|
|
6
6
|
import { worker } from "pglite-legacy-02/worker";
|
|
7
7
|
//#region pglite.worker.legacy.ts
|
|
8
|
-
worker({ init() {
|
|
9
|
-
const idbFs = new IdbFs(DEFAULT_RELATIONAL_PROCESSOR_DB_NAME);
|
|
8
|
+
worker({ init(options) {
|
|
9
|
+
const idbFs = new IdbFs((options?.meta)?.dbName ?? DEFAULT_RELATIONAL_PROCESSOR_DB_NAME);
|
|
10
10
|
return Promise.resolve(new PGlite({
|
|
11
11
|
fs: idbFs,
|
|
12
12
|
relaxedDurability: true,
|
|
@@ -16,4 +16,4 @@ worker({ init() {
|
|
|
16
16
|
//#endregion
|
|
17
17
|
|
|
18
18
|
//# sourceMappingURL=pglite.worker.legacy.js.map
|
|
19
|
-
//# debugId=
|
|
19
|
+
//# debugId=b70dcd19-85a8-5811-af59-7dc14c24c386
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.worker.legacy.js","sources":["../pglite.worker.legacy.ts"],"sourcesContent":["import { IdbFs, PGlite } from \"pglite-legacy-02\";\nimport { live } from \"pglite-legacy-02/live\";\nimport { worker } from \"pglite-legacy-02/worker\";\nimport { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from \"@powerhousedao/shared/processors\";\n\nworker({\n init() {\n const idbFs = new IdbFs(
|
|
1
|
+
{"version":3,"file":"pglite.worker.legacy.js","sources":["../pglite.worker.legacy.ts"],"sourcesContent":["import { IdbFs, PGlite } from \"pglite-legacy-02\";\nimport { live } from \"pglite-legacy-02/live\";\nimport { worker } from \"pglite-legacy-02/worker\";\nimport { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from \"@powerhousedao/shared/processors\";\n\nworker({\n init(options) {\n // dbName carries the origin-scoped storage namespace from the main thread.\n const dbName =\n (options?.meta as { dbName?: string } | undefined)?.dbName ??\n DEFAULT_RELATIONAL_PROCESSOR_DB_NAME;\n const idbFs = new IdbFs(dbName);\n return Promise.resolve(\n new PGlite({\n fs: idbFs,\n relaxedDurability: true,\n extensions: { live },\n }),\n );\n },\n}).catch(console.error);\n"],"names":[],"mappings":";;;;;;;AAKA,OAAO,EACL,KAAK,SAAS;CAKZ,MAAM,QAAQ,IAAI,OAFf,SAAS,OAA0C,UACpD,qCAC6B;AAC/B,QAAO,QAAQ,QACb,IAAI,OAAO;EACT,IAAI;EACJ,mBAAmB;EACnB,YAAY,EAAE,MAAM;EACrB,CAAC,CACH;GAEJ,CAAC,CAAC,MAAM,QAAQ,MAAM","debug_id":"b70dcd19-85a8-5811-af59-7dc14c24c386"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import {
|
|
4
|
-
import { n as
|
|
5
|
-
import { n as
|
|
6
|
-
import {
|
|
7
|
-
import { BrowserLocalStorage, ChannelScheme, DocumentCache, DocumentChangeType, ReactorBuilder, ReactorClientBuilder, RegistryClient, addPHEventHandlers, addRemoteDrive, createAnalyticsStore, extractDriveSlugFromPath, extractNodeSlugFromPath, getDrives, login, refreshReactorDataClient, setDefaultPHGlobalConfig, setDocumentCache, setDrives, setFeatures, setPHToast, setPackageDiscoveryService, setReactorClient, setReactorClientModule, setRenown, setSelectedDrive, setSelectedNode, setVetraPackageManager } from "@powerhousedao/reactor-browser";
|
|
8
|
-
import { ConsoleLogger, logger, setLogLevel as setLogLevel$1 } from "document-model";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7b51a7fb-d30a-51f9-a524-bbadcbcfbfdf")}catch(e){}}();
|
|
3
|
+
import { n as getRuntimeConfig } from "./runtime-config-DL3QjcfM.js";
|
|
4
|
+
import { n as buildPHGlobalConfig, o as phGlobalConfig } from "./connect.config-aPx3rHZQ.js";
|
|
5
|
+
import { a as loadPGliteModule, g as RELATIONAL_PGLITE_NAME, h as REACTOR_PGLITE_NAME, n as detectRelationalPgMajor, s as resolvePgMajorForRuntime, t as detectReactorPgMajor } from "./pglite-runtime-toc1-TWa.js";
|
|
6
|
+
import { n as toast } from "./toast-BEy42aYx.js";
|
|
9
7
|
import { createRelationalDb } from "@powerhousedao/shared/processors";
|
|
8
|
+
import { BrowserLocalStorage, ChannelScheme, DocumentCache, DocumentChangeType, ReactorBuilder, ReactorClientBuilder, RegistryClient, addPHEventHandlers, addRemoteDrive, createAnalyticsStore, extractDriveSlugFromPath, extractNodeSlugFromPath, getDrives, login, refreshReactorDataClient, setAttachmentService, setDefaultPHGlobalConfig, setDocumentCache, setDriveMetadata, setDrives, setFeatures, setPHToast, setPackageDiscoveryService, setReactorClient, setReactorClientModule, setRenown, setSelectedDrive, setSelectedNode, setVetraPackageManager } from "@powerhousedao/reactor-browser";
|
|
9
|
+
import { ConsoleLogger, logger, setLogLevel as setLogLevel$1 } from "document-model";
|
|
10
10
|
import { BrowserKeyStorage, RenownBuilder, RenownCryptoBuilder, createSignatureVerifier } from "@renown/sdk";
|
|
11
11
|
import { Kysely } from "kysely";
|
|
12
12
|
import { PGliteDialect } from "kysely-pglite-dialect";
|
|
13
|
+
import { createAttachmentClient, createRemoteAttachmentService } from "@powerhousedao/reactor-attachments/client";
|
|
13
14
|
import { OpenFeature } from "@openfeature/web-sdk";
|
|
14
15
|
import * as common from "@powerhousedao/powerhouse-vetra-packages";
|
|
15
16
|
import commonPkg from "@powerhousedao/powerhouse-vetra-packages/package.json" with { type: "json" };
|
|
@@ -35,7 +36,7 @@ async function createBrowserReactor(documentModelModules, upgradeManifests, reno
|
|
|
35
36
|
const major = resolvePgMajorForRuntime(await detectReactorPgMajor());
|
|
36
37
|
if (major !== 17) console.warn(`[reactor] Running against legacy PGlite data dir (Postgres ${major}). Migrate to PG17 from the banner or the Inspector → Debug tab.`);
|
|
37
38
|
const { PGlite } = await loadPGliteModule(major);
|
|
38
|
-
const pg = new PGlite(
|
|
39
|
+
const pg = new PGlite(`idb://${REACTOR_PGLITE_NAME}`, { relaxedDurability: true });
|
|
39
40
|
const logger = new ConsoleLogger(["reactor-client"]);
|
|
40
41
|
const builder = new ReactorClientBuilder().withLogger(logger).withSigner(signerConfig).withReactorBuilder(new ReactorBuilder().withDocumentModels(documentModelModules).withUpgradeManifests(upgradeManifests).withChannelScheme(ChannelScheme.CONNECT).withJwtHandler(jwtHandler).withKysely(new Kysely({ dialect: new PGliteDialect(pg) })));
|
|
41
42
|
if (documentModelLoader) builder.withDocumentModelLoader(documentModelLoader);
|
|
@@ -44,14 +45,8 @@ async function createBrowserReactor(documentModelModules, upgradeManifests, reno
|
|
|
44
45
|
pg
|
|
45
46
|
};
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* Returns an array of drive REST endpoint URLs (e.g., "https://example.com/d/powerhouse").
|
|
50
|
-
*/
|
|
51
|
-
function getDefaultDrivesFromEnv() {
|
|
52
|
-
const envValue = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL;
|
|
53
|
-
if (!envValue) return [];
|
|
54
|
-
return envValue.split(",").filter((url) => url.trim().length > 0);
|
|
48
|
+
function getDefaultDrives(runtimeConfig) {
|
|
49
|
+
return runtimeConfig.connect.drives?.defaultDrives ?? [];
|
|
55
50
|
}
|
|
56
51
|
/**
|
|
57
52
|
* Add default drives for the new reactor via sync manager.
|
|
@@ -59,22 +54,33 @@ function getDefaultDrivesFromEnv() {
|
|
|
59
54
|
* Retries with linear backoff to handle the common race where Connect's
|
|
60
55
|
* dev server is ready before the switchboard has finished binding its port.
|
|
61
56
|
*
|
|
62
|
-
* @param
|
|
57
|
+
* @param drives - Array of drive objects with url, optional name and icon
|
|
63
58
|
* @param options - Forwarded to addRemoteDrive. Pass `awaitInitialSync: true`
|
|
64
59
|
* when the URL pins a drive slug that must resolve before selection.
|
|
65
60
|
*/
|
|
66
|
-
async function addDefaultDrivesForNewReactor(
|
|
61
|
+
async function addDefaultDrivesForNewReactor(drives, options) {
|
|
67
62
|
const MAX_ATTEMPTS = 3;
|
|
68
63
|
const BACKOFF_MS = 2e3;
|
|
69
|
-
for (const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
64
|
+
for (const drive of drives) {
|
|
65
|
+
let driveId;
|
|
66
|
+
for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) try {
|
|
67
|
+
driveId = await addRemoteDrive(drive.url, void 0, options);
|
|
68
|
+
break;
|
|
69
|
+
} catch (error) {
|
|
70
|
+
if (attempt === MAX_ATTEMPTS) console.error(`Failed to add default drive ${drive.url} after ${MAX_ATTEMPTS} attempts:`, error);
|
|
71
|
+
else {
|
|
72
|
+
const delay = BACKOFF_MS * attempt;
|
|
73
|
+
console.warn(`Default drive ${drive.url} not reachable (attempt ${attempt}/${MAX_ATTEMPTS}), retrying in ${delay}ms...`);
|
|
74
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (driveId && (drive.name || drive.icon)) try {
|
|
78
|
+
await setDriveMetadata(driveId, {
|
|
79
|
+
name: drive.name,
|
|
80
|
+
icon: drive.icon
|
|
81
|
+
});
|
|
82
|
+
} catch (error) {
|
|
83
|
+
console.warn(`Default drive ${drive.url} was added but metadata update failed:`, error);
|
|
78
84
|
}
|
|
79
85
|
}
|
|
80
86
|
}
|
|
@@ -767,14 +773,21 @@ var BrowserPackageManager = class {
|
|
|
767
773
|
//#endregion
|
|
768
774
|
//#region src/pglite.db.ts
|
|
769
775
|
async function createPGliteWorkerForMajor(major) {
|
|
776
|
+
const meta = { dbName: RELATIONAL_PGLITE_NAME };
|
|
770
777
|
if (major === 16) {
|
|
771
778
|
const [legacyWorker, legacyLive] = await Promise.all([import("pglite-legacy-02/worker"), import("pglite-legacy-02/live")]);
|
|
772
779
|
const worker = new Worker(new URL("./pglite.worker.legacy.js", import.meta.url), { type: "module" });
|
|
773
|
-
return legacyWorker.PGliteWorker.create(worker, {
|
|
780
|
+
return legacyWorker.PGliteWorker.create(worker, {
|
|
781
|
+
meta,
|
|
782
|
+
extensions: { live: legacyLive.live }
|
|
783
|
+
});
|
|
774
784
|
}
|
|
775
785
|
const [{ PGliteWorker }, { live }] = await Promise.all([import("@electric-sql/pglite/worker"), import("@electric-sql/pglite/live")]);
|
|
776
786
|
const worker = new Worker(new URL("./pglite.worker.js", import.meta.url), { type: "module" });
|
|
777
|
-
return PGliteWorker.create(worker, {
|
|
787
|
+
return PGliteWorker.create(worker, {
|
|
788
|
+
meta,
|
|
789
|
+
extensions: { live }
|
|
790
|
+
});
|
|
778
791
|
}
|
|
779
792
|
async function getDb() {
|
|
780
793
|
const major = resolvePgMajorForRuntime(await detectRelationalPgMajor());
|
|
@@ -787,7 +800,18 @@ async function getDb() {
|
|
|
787
800
|
}
|
|
788
801
|
//#endregion
|
|
789
802
|
//#region src/store/processor-host-module.ts
|
|
790
|
-
|
|
803
|
+
var NullAttachmentService = class {
|
|
804
|
+
reserve() {
|
|
805
|
+
return Promise.reject(/* @__PURE__ */ new Error("NullAttachmentService: no attachment service configured"));
|
|
806
|
+
}
|
|
807
|
+
stat() {
|
|
808
|
+
return Promise.reject(/* @__PURE__ */ new Error("NullAttachmentService: no attachment service configured"));
|
|
809
|
+
}
|
|
810
|
+
get() {
|
|
811
|
+
return Promise.reject(/* @__PURE__ */ new Error("NullAttachmentService: no attachment service configured"));
|
|
812
|
+
}
|
|
813
|
+
};
|
|
814
|
+
async function createProcessorHostModule(reactorClient, readModels, attachmentService) {
|
|
791
815
|
try {
|
|
792
816
|
const { pgLite, relationalDb } = await getDb();
|
|
793
817
|
const { store: analyticsStore } = await createAnalyticsStore({ pgLite });
|
|
@@ -795,6 +819,8 @@ async function createProcessorHostModule(reactorClient, readModels) {
|
|
|
795
819
|
relationalDb,
|
|
796
820
|
analyticsStore,
|
|
797
821
|
processorApp: "connect",
|
|
822
|
+
client: reactorClient,
|
|
823
|
+
attachments: createAttachmentClient(attachmentService ?? new NullAttachmentService()),
|
|
798
824
|
dispatch: { async execute(docId, branch, actions, signal) {
|
|
799
825
|
const jobInfo = await reactorClient.executeAsync(docId, branch, actions, signal);
|
|
800
826
|
return {
|
|
@@ -902,44 +928,65 @@ async function createReactor(localPackage) {
|
|
|
902
928
|
const keyPairStorage = await BrowserKeyStorage.create();
|
|
903
929
|
const renownCrypto = await new RenownCryptoBuilder().withKeyPairStorage(keyPairStorage).build();
|
|
904
930
|
const renown = await new RenownBuilder("connect", {
|
|
905
|
-
basename:
|
|
906
|
-
baseUrl:
|
|
931
|
+
basename: phGlobalConfig.routerBasename,
|
|
932
|
+
baseUrl: phGlobalConfig.renownUrl
|
|
907
933
|
}).withCrypto(renownCrypto).build();
|
|
908
|
-
const
|
|
909
|
-
const packageManager = new BrowserPackageManager(
|
|
934
|
+
const runtimeConfig = getRuntimeConfig();
|
|
935
|
+
const packageManager = new BrowserPackageManager(phGlobalConfig.routerBasename ?? "", runtimeConfig.packageRegistryUrl ?? null);
|
|
910
936
|
setVetraPackageManager(packageManager);
|
|
911
|
-
await packageManager.init(localPackage,
|
|
937
|
+
await packageManager.init(localPackage, runtimeConfig.localPackage?.version);
|
|
912
938
|
try {
|
|
913
939
|
const { default: registerBundledPackages } = await import("ph-bundled-packages-virtual");
|
|
914
940
|
registerBundledPackages(packageManager);
|
|
915
941
|
} catch {}
|
|
916
|
-
|
|
942
|
+
const remotePackages = runtimeConfig.packages.filter((p) => p.provider !== "local").map((p) => p.version ? `${p.packageName}@${p.version}` : p.packageName);
|
|
943
|
+
(await packageManager.addPackages(remotePackages)).map((r) => {
|
|
917
944
|
if (r.type === "error") console.error(r.error);
|
|
918
945
|
});
|
|
919
|
-
subscribeToPackagesChannel(packageManager);
|
|
946
|
+
if (runtimeConfig.connect?.packages?.liveReload) subscribeToPackagesChannel(packageManager);
|
|
920
947
|
const documentModelModules = packageManager.packages.flatMap((pkg) => pkg.documentModels).filter((module, index, modules) => modules.findIndex((m) => m.documentModel.global.id === module.documentModel.global.id && m.version === module.version) === index);
|
|
921
948
|
const upgradeManifests = packageManager.packages.flatMap((pkg) => pkg.upgradeManifests).filter((manifest, index, manifests) => manifest !== void 0 && manifests.findIndex((m) => m && m.documentType === manifest.documentType) === index);
|
|
922
949
|
const discoveryService = packageManager.cdnUrl !== null ? new PackageDiscoveryService(packageManager, new RegistryClient(packageManager.cdnUrl), {
|
|
923
950
|
mode: "immediate",
|
|
924
|
-
storageKey:
|
|
951
|
+
storageKey: phGlobalConfig.routerBasename ?? ""
|
|
925
952
|
}) : new NoRegistryDiscoveryService(packageManager);
|
|
926
953
|
setPackageDiscoveryService(discoveryService);
|
|
927
954
|
const reactorClientModule = await createBrowserReactor(documentModelModules, upgradeManifests, renown, discoveryService);
|
|
928
955
|
const drives = await getDrives(reactorClientModule.client);
|
|
956
|
+
await login(getDidFromUrl(), renown);
|
|
957
|
+
const documentCache = new DocumentCache(reactorClientModule.client);
|
|
958
|
+
setDefaultPHGlobalConfig(buildPHGlobalConfig(phGlobalConfig.basePath ?? "/", phGlobalConfig.routerBasename ?? "/", runtimeConfig.connect ?? {}));
|
|
929
959
|
const path = window.location.pathname;
|
|
930
960
|
const driveSlug = extractDriveSlugFromPath(path);
|
|
931
961
|
const nodeSlug = extractNodeSlugFromPath(path);
|
|
932
|
-
await login(getDidFromUrl(), renown);
|
|
933
|
-
const documentCache = new DocumentCache(reactorClientModule.client);
|
|
934
|
-
setDefaultPHGlobalConfig(phGlobalConfigFromEnv);
|
|
935
962
|
setReactorClientModule(reactorClientModule);
|
|
936
963
|
setReactorClient(reactorClientModule.client);
|
|
964
|
+
const _defaultDrivesUrl = phGlobalConfig.defaultDrivesUrl;
|
|
965
|
+
if (_defaultDrivesUrl) {
|
|
966
|
+
let switchboardOrigin;
|
|
967
|
+
try {
|
|
968
|
+
switchboardOrigin = new URL(_defaultDrivesUrl).origin;
|
|
969
|
+
} catch {}
|
|
970
|
+
if (switchboardOrigin) {
|
|
971
|
+
const attachmentJwtHandler = async (url) => {
|
|
972
|
+
if (!renown.user) return void 0;
|
|
973
|
+
return renown.getBearerToken({
|
|
974
|
+
expiresIn: 10,
|
|
975
|
+
aud: url
|
|
976
|
+
});
|
|
977
|
+
};
|
|
978
|
+
setAttachmentService(createRemoteAttachmentService({
|
|
979
|
+
remoteUrl: switchboardOrigin,
|
|
980
|
+
jwtHandler: attachmentJwtHandler
|
|
981
|
+
}));
|
|
982
|
+
}
|
|
983
|
+
}
|
|
937
984
|
setDocumentCache(documentCache);
|
|
938
985
|
setRenown(renown);
|
|
939
986
|
setDrives(drives);
|
|
940
987
|
setFeatures(features);
|
|
941
988
|
const driveResolutionRequired = Boolean(driveSlug);
|
|
942
|
-
const defaultDrivesConfig =
|
|
989
|
+
const defaultDrivesConfig = getDefaultDrives(runtimeConfig);
|
|
943
990
|
if (defaultDrivesConfig.length > 0) await addDefaultDrivesForNewReactor(defaultDrivesConfig, driveResolutionRequired ? {
|
|
944
991
|
awaitInitialSync: true,
|
|
945
992
|
initialSyncTimeoutMs: 15e3
|
|
@@ -981,7 +1028,7 @@ async function createReactor(localPackage) {
|
|
|
981
1028
|
const packagesWithProcessorFactories = packageManager.packages.filter((pkg) => pkg.processorFactory !== void 0);
|
|
982
1029
|
if (packagesWithProcessorFactories.length > 0) {
|
|
983
1030
|
const readModels = reactorClientModule.reactorModule?.readModelCoordinator?.readModels ?? [];
|
|
984
|
-
const processorHostModule = await createProcessorHostModule(reactorClientModule.client, readModels);
|
|
1031
|
+
const processorHostModule = await createProcessorHostModule(reactorClientModule.client, readModels, window.ph?.attachmentService);
|
|
985
1032
|
if (processorHostModule !== void 0) await Promise.all(packagesWithProcessorFactories.map(async (pkg) => {
|
|
986
1033
|
const { manifest, processorFactory } = pkg;
|
|
987
1034
|
const name = manifest.name;
|
|
@@ -1012,5 +1059,5 @@ function getDriveUrl() {
|
|
|
1012
1059
|
//#endregion
|
|
1013
1060
|
export { createReactor as n, clearReactorStorage as t };
|
|
1014
1061
|
|
|
1015
|
-
//# sourceMappingURL=reactor-
|
|
1016
|
-
//# debugId=
|
|
1062
|
+
//# sourceMappingURL=reactor-BlxTyHZ5.js.map
|
|
1063
|
+
//# debugId=7b51a7fb-d30a-51f9-a524-bbadcbcfbfdf
|