@powerhousedao/connect 6.0.0-dev.226 → 6.0.0-dev.228
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/{AddDriveModal-CBbXwG8S.js → AddDriveModal-B9BPORvo.js} +1 -1
- package/dist/{AddDriveModal-CBbXwG8S.js.map → AddDriveModal-B9BPORvo.js.map} +1 -1
- package/dist/{ClearStorageModal-DwiCY6Lt.js → ClearStorageModal-K1H6NgT6.js} +2 -2
- package/dist/{ClearStorageModal-DwiCY6Lt.js.map → ClearStorageModal-K1H6NgT6.js.map} +1 -1
- package/dist/{CookiesPolicyModal-CTXUu4-8.js → CookiesPolicyModal-CnVx2R_8.js} +1 -1
- package/dist/{CookiesPolicyModal-CTXUu4-8.js.map → CookiesPolicyModal-CnVx2R_8.js.map} +1 -1
- package/dist/{CreateDocumentModal-CAld-5pv.js → CreateDocumentModal-TtG7E62x.js} +1 -1
- package/dist/{CreateDocumentModal-CAld-5pv.js.map → CreateDocumentModal-TtG7E62x.js.map} +1 -1
- package/dist/{DebugSettingsModal-DeZ-x8H3.js → DebugSettingsModal-CdiJqc6x.js} +39 -9
- package/dist/DebugSettingsModal-CdiJqc6x.js.map +1 -0
- package/dist/{DeleteDriveModal-B7T2CVIX.js → DeleteDriveModal-Cb43NeNu.js} +1 -1
- package/dist/{DeleteDriveModal-B7T2CVIX.js.map → DeleteDriveModal-Cb43NeNu.js.map} +1 -1
- package/dist/{DeleteItemModal-DJv71YQG.js → DeleteItemModal-Brq4QKdd.js} +1 -1
- package/dist/{DeleteItemModal-DJv71YQG.js.map → DeleteItemModal-Brq4QKdd.js.map} +1 -1
- package/dist/{DisclaimerModal-Co13N7HH.js → DisclaimerModal-Dk6PpkZU.js} +1 -1
- package/dist/{DisclaimerModal-Co13N7HH.js.map → DisclaimerModal-Dk6PpkZU.js.map} +1 -1
- package/dist/{DriveSettingsModal-DmsUU0g3.js → DriveSettingsModal-BdcjrRh9.js} +1 -1
- package/dist/{DriveSettingsModal-DmsUU0g3.js.map → DriveSettingsModal-BdcjrRh9.js.map} +1 -1
- package/dist/{ExportDocumentWithErrorsModal-DOV_UVlM.js → ExportDocumentWithErrorsModal-DNRr3cjI.js} +1 -1
- package/dist/{ExportDocumentWithErrorsModal-DOV_UVlM.js.map → ExportDocumentWithErrorsModal-DNRr3cjI.js.map} +1 -1
- package/dist/{InspectorModal-NoO3f3U7.js → InspectorModal-EDrjiXPs.js} +12 -6
- package/dist/{InspectorModal-NoO3f3U7.js.map → InspectorModal-EDrjiXPs.js.map} +1 -1
- package/dist/{MissingPackageModal-Df154H9n.js → MissingPackageModal-BfblPbd8.js} +1 -1
- package/dist/{MissingPackageModal-Df154H9n.js.map → MissingPackageModal-BfblPbd8.js.map} +1 -1
- package/dist/{SettingsModal-xufgLb23.js → SettingsModal-CcrLe0Av.js} +43 -10
- package/dist/SettingsModal-CcrLe0Av.js.map +1 -0
- package/dist/{UpgradeDriveModal-BH4ecdCU.js → UpgradeDriveModal-CBLALaaQ.js} +1 -1
- package/dist/{UpgradeDriveModal-BH4ecdCU.js.map → UpgradeDriveModal-CBLALaaQ.js.map} +1 -1
- package/dist/build-info-BIHFrivX.js +12 -0
- package/dist/build-info-BIHFrivX.js.map +1 -0
- package/dist/{load-BomTDCkp.js → load-CHKj188S.js} +5 -5
- package/dist/{load-BomTDCkp.js.map → load-CHKj188S.js.map} +1 -1
- package/dist/main.js +1 -1
- package/dist/{package-rPO0PlSE.js → package-NysFDS6g.js} +2 -2
- package/dist/package-NysFDS6g.js.map +1 -0
- package/dist/{pglite-runtime-BS9wpAs9.js → pglite-runtime-C1g-4Jxl.js} +1 -1
- package/dist/{pglite-runtime-BS9wpAs9.js.map → pglite-runtime-C1g-4Jxl.js.map} +1 -1
- package/dist/{pglite-seed-VlhY0n-A.js → pglite-seed-BtXWFpHf.js} +2 -2
- package/dist/{pglite-seed-VlhY0n-A.js.map → pglite-seed-BtXWFpHf.js.map} +1 -1
- package/dist/{reactor-D1P2nU-G.js → reactor-Nm3jOev1.js} +2 -2
- package/dist/{reactor-D1P2nU-G.js.map → reactor-Nm3jOev1.js.map} +1 -1
- package/dist/{registerServiceWorker-1maoTQNT.js → registerServiceWorker-LI8_JXt3.js} +1 -1
- package/dist/{registerServiceWorker-1maoTQNT.js.map → registerServiceWorker-LI8_JXt3.js.map} +1 -1
- package/dist/{sidebar-DN4KWwZh.js → sidebar-Dy3GNjN_.js} +18 -18
- package/dist/{sidebar-DN4KWwZh.js.map → sidebar-Dy3GNjN_.js.map} +1 -1
- package/dist/start-connect.js +1 -1
- package/dist/style.css +14 -0
- package/package.json +9 -9
- package/dist/DebugSettingsModal-DeZ-x8H3.js.map +0 -1
- package/dist/SettingsModal-xufgLb23.js.map +0 -1
- package/dist/package-rPO0PlSE.js.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { t as connectConfig } from "./connect.config-Cuh0hj_Q.js";
|
|
2
2
|
import { n as toast } from "./toast-DnODOv28.js";
|
|
3
3
|
import { t as useRegistryPackages } from "./useRegistryPackages-BOX4NMAb.js";
|
|
4
|
-
import { t as package_default } from "./package-
|
|
4
|
+
import { t as package_default } from "./package-NysFDS6g.js";
|
|
5
|
+
import { n as getGitUrl, r as shortGitSha, t as getGitSha } from "./build-info-BIHFrivX.js";
|
|
5
6
|
import { closePHModal, deleteDrive, driveCollectionId, setSelectedDrive, showPHModal, useDriveSystemInfo, useDrives, usePHModal, useSyncList, useVetraPackageManager } from "@powerhousedao/reactor-browser";
|
|
6
7
|
import { useCallback, useMemo, useState } from "react";
|
|
7
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -19,6 +20,7 @@ const About$1 = () => {
|
|
|
19
20
|
packageJson: package_default,
|
|
20
21
|
phCliVersion: typeof connectConfig.phCliVersion === "string" ? connectConfig.phCliVersion : void 0
|
|
21
22
|
}),
|
|
23
|
+
/* @__PURE__ */ jsx(AppGitHash, {}),
|
|
22
24
|
/* @__PURE__ */ jsx(ConnectedDrives, {}),
|
|
23
25
|
/* @__PURE__ */ jsxs("div", {
|
|
24
26
|
className: "bg-white p-3",
|
|
@@ -44,6 +46,30 @@ const About$1 = () => {
|
|
|
44
46
|
})
|
|
45
47
|
] });
|
|
46
48
|
};
|
|
49
|
+
function AppGitHash() {
|
|
50
|
+
const sha = getGitSha();
|
|
51
|
+
if (sha === "unknown") return null;
|
|
52
|
+
const url = getGitUrl();
|
|
53
|
+
const label = shortGitSha(sha);
|
|
54
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
55
|
+
className: "bg-white p-3 text-sm",
|
|
56
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
57
|
+
className: "font-semibold",
|
|
58
|
+
children: "Git hash: "
|
|
59
|
+
}), url ? /* @__PURE__ */ jsx("a", {
|
|
60
|
+
className: "font-mono underline",
|
|
61
|
+
href: url,
|
|
62
|
+
target: "_blank",
|
|
63
|
+
rel: "noreferrer noopener",
|
|
64
|
+
title: sha,
|
|
65
|
+
children: label
|
|
66
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
67
|
+
className: "font-mono",
|
|
68
|
+
title: sha,
|
|
69
|
+
children: label
|
|
70
|
+
})]
|
|
71
|
+
});
|
|
72
|
+
}
|
|
47
73
|
function ConnectedDrives() {
|
|
48
74
|
const drives = useDrives() ?? [];
|
|
49
75
|
const remotes = useSyncList();
|
|
@@ -94,14 +120,21 @@ function DriveAboutEntry({ drive }) {
|
|
|
94
120
|
}),
|
|
95
121
|
" ",
|
|
96
122
|
info.version
|
|
97
|
-
] }), /* @__PURE__ */ jsxs("div", { children: [
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
123
|
+
] }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", {
|
|
124
|
+
className: "font-medium",
|
|
125
|
+
children: "Git hash: "
|
|
126
|
+
}), info.gitUrl ? /* @__PURE__ */ jsx("a", {
|
|
127
|
+
className: "font-mono hover:underline",
|
|
128
|
+
href: info.gitUrl,
|
|
129
|
+
target: "_blank",
|
|
130
|
+
rel: "noreferrer noopener",
|
|
131
|
+
title: info.gitHash,
|
|
132
|
+
children: shortGitSha(info.gitHash)
|
|
133
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
134
|
+
className: "font-mono",
|
|
135
|
+
title: info.gitHash,
|
|
136
|
+
children: shortGitSha(info.gitHash)
|
|
137
|
+
})] })]
|
|
105
138
|
}),
|
|
106
139
|
info.status === "local" && /* @__PURE__ */ jsx("div", {
|
|
107
140
|
className: "mt-1 text-xs text-gray-400",
|
|
@@ -258,4 +291,4 @@ const SettingsModal = () => {
|
|
|
258
291
|
//#endregion
|
|
259
292
|
export { SettingsModal };
|
|
260
293
|
|
|
261
|
-
//# sourceMappingURL=SettingsModal-
|
|
294
|
+
//# sourceMappingURL=SettingsModal-CcrLe0Av.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsModal-CcrLe0Av.js","names":["About","BaseAbout","packageJson","DangerZone","BaseDangerZone","DefaultEditor","BaseDefaultEditor","DefaultEditor","DangerZone","About","SettingsModalV2"],"sources":["../src/components/modal/modals/settings/about.tsx","../src/components/modal/modals/settings/danger-zone.tsx","../src/components/modal/modals/settings/default-editor.tsx","../src/components/modal/modals/settings/package-manager.tsx","../src/components/modal/modals/SettingsModal.tsx"],"sourcesContent":["import { connectConfig } from \"@powerhousedao/connect/config\";\nimport {\n getGitSha,\n getGitUrl,\n packageJson,\n shortGitSha,\n} from \"@powerhousedao/connect/utils\";\nimport { Icon } from \"@powerhousedao/design-system\";\nimport { About as BaseAbout } from \"@powerhousedao/design-system/connect\";\nimport {\n closePHModal,\n driveCollectionId,\n showPHModal,\n useDrives,\n useDriveSystemInfo,\n useSyncList,\n} from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\nimport { useMemo } from \"react\";\n\nexport const About: React.FC = () => {\n const onOpenInspector = () => {\n closePHModal();\n showPHModal({ type: \"inspector\" });\n };\n\n return (\n <div>\n <BaseAbout\n packageJson={packageJson}\n phCliVersion={\n typeof connectConfig.phCliVersion === \"string\"\n ? connectConfig.phCliVersion\n : undefined\n }\n />\n <AppGitHash />\n <ConnectedDrives />\n <div className=\"bg-white p-3\">\n <h2 className=\"mb-2 font-semibold\">Inspector</h2>\n <p className=\"mb-3 text-sm font-normal text-gray-600\">\n Explore the local database and sync state for debugging.\n </p>\n <button\n className=\"flex items-center gap-x-2 rounded-md border border-gray-300 bg-transparent px-3 py-1 text-sm font-medium text-gray-900 transition-colors hover:bg-gray-100\"\n onClick={onOpenInspector}\n type=\"button\"\n >\n Open Inspector <Icon name=\"CircleInfo\" size={16} />\n </button>\n </div>\n </div>\n );\n};\n\nfunction AppGitHash() {\n const sha = getGitSha();\n if (sha === \"unknown\") return null;\n const url = getGitUrl();\n const label = shortGitSha(sha);\n return (\n <div className=\"bg-white p-3 text-sm\">\n <span className=\"font-semibold\">Git hash: </span>\n {url ? (\n <a\n className=\"font-mono underline\"\n href={url}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n title={sha}\n >\n {label}\n </a>\n ) : (\n <span className=\"font-mono\" title={sha}>\n {label}\n </span>\n )}\n </div>\n );\n}\n\nfunction ConnectedDrives() {\n const drives = useDrives() ?? [];\n const remotes = useSyncList();\n\n const remoteDrives = useMemo(\n () =>\n drives.filter((d) =>\n remotes.some(\n (r) => r.collectionId === driveCollectionId(\"main\", d.header.id),\n ),\n ),\n [drives, remotes],\n );\n\n return (\n <div className=\"my-4 bg-white p-3\">\n <h2 className=\"mb-2 font-semibold\">Connected drives</h2>\n {remoteDrives.length === 0 ? (\n <p className=\"text-sm font-normal text-gray-600\">\n No connected remote drives.\n </p>\n ) : (\n <ul className=\"flex flex-col gap-3\">\n {remoteDrives.map((drive) => (\n <DriveAboutEntry key={drive.header.id} drive={drive} />\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nfunction DriveAboutEntry({ drive }: { drive: DocumentDriveDocument }) {\n const info = useDriveSystemInfo(drive);\n const name = drive.state.global.name || drive.header.name;\n\n return (\n <li className=\"text-sm text-gray-700\">\n <div className=\"flex items-baseline gap-2\">\n <span className=\"font-medium\">{name}</span>\n {info.status === \"ready\" && (\n <span className=\"text-xs text-gray-500\">{info.host}</span>\n )}\n </div>\n {info.status === \"loading\" && (\n <div className=\"mt-1 text-xs text-gray-400\">Loading…</div>\n )}\n {info.status === \"error\" && (\n <div className=\"mt-1 text-xs text-red-600\">\n Could not load system info\n </div>\n )}\n {info.status === \"ready\" && (\n <div className=\"mt-1 text-xs text-gray-600\">\n <div>\n <span className=\"font-medium\">Version:</span> {info.version}\n </div>\n <div>\n <span className=\"font-medium\">Git hash: </span>\n {info.gitUrl ? (\n <a\n className=\"font-mono hover:underline\"\n href={info.gitUrl}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n title={info.gitHash}\n >\n {shortGitSha(info.gitHash)}\n </a>\n ) : (\n <span className=\"font-mono\" title={info.gitHash}>\n {shortGitSha(info.gitHash)}\n </span>\n )}\n </div>\n </div>\n )}\n {info.status === \"local\" && (\n <div className=\"mt-1 text-xs text-gray-400\">Local drive — N/A</div>\n )}\n </li>\n );\n}\n","import { DangerZone as BaseDangerZone } from \"@powerhousedao/design-system/connect\";\nimport {\n deleteDrive,\n setSelectedDrive,\n showPHModal,\n useDrives,\n} from \"@powerhousedao/reactor-browser\";\nimport type { DocumentDriveDocument } from \"@powerhousedao/shared/document-drive\";\n\nexport const DangerZone: React.FC = () => {\n const drives = useDrives();\n\n const handleDeleteDrive = async (drive: DocumentDriveDocument) => {\n await deleteDrive(drive.header.id);\n setSelectedDrive(undefined);\n };\n\n const handleClearStorage = () => {\n showPHModal({ type: \"clearStorage\" });\n };\n\n return (\n <BaseDangerZone\n drives={drives ?? []}\n onDeleteDrive={handleDeleteDrive}\n onClearStorage={handleClearStorage}\n />\n );\n};\n","import { DefaultEditor as BaseDefaultEditor } from \"@powerhousedao/design-system/connect\";\nimport { useCallback, useState } from \"react\";\n\nconst documentModelEditorOptions = [\n { label: \"V1\", value: \"document-model-editor\" },\n { label: \"V2\", value: \"document-model-editor-v2\" },\n] as const;\n\nexport const DefaultEditor: React.FC = () => {\n const [documentModelEditor, setDocumentModelEditor] = useState<\n (typeof documentModelEditorOptions)[number]\n >(documentModelEditorOptions[1]);\n\n const handleSetDocumentEditor = useCallback((value: string) => {\n const option = documentModelEditorOptions.find((dm) => dm.value == value);\n if (option) {\n setDocumentModelEditor(option);\n }\n }, []);\n\n return (\n <BaseDefaultEditor\n documentModelEditor={documentModelEditor.value}\n setDocumentModelEditor={handleSetDocumentEditor}\n documentModelEditorOptions={\n documentModelEditorOptions as unknown as {\n value: string;\n label: string;\n }[]\n }\n />\n );\n};\n","import { useRegistryPackages } from \"@powerhousedao/connect/hooks\";\nimport { toast } from \"@powerhousedao/connect/services\";\nimport { PackageManager } from \"@powerhousedao/design-system/connect\";\nimport { useVetraPackageManager } from \"@powerhousedao/reactor-browser\";\nimport React from \"react\";\n\n/**\n * Split a `name@tag` spec into its bare package name. Mirrors the design-system's\n * `parsePackageSpec` — duplicated here to avoid reaching into a deep subpath\n * export. Scoped names split on the LAST `@`, unscoped on the first.\n */\nfunction parseBareName(spec: string): string {\n const trimmed = spec.trim();\n const at = trimmed.startsWith(\"@\")\n ? trimmed.lastIndexOf(\"@\")\n : trimmed.indexOf(\"@\");\n return at > 0 ? trimmed.slice(0, at) : trimmed;\n}\n\nexport const ConnectPackageManager: React.FC = () => {\n const packageManager = useVetraPackageManager();\n const {\n registryPackageList,\n updateRegistryPackageStatus,\n registerFallbackRegistryPackage,\n } = useRegistryPackages();\n\n async function handleInstall(packageSpec: string) {\n if (!packageManager) return;\n\n // The spec may include an explicit `@tag` / `@version` suffix from the\n // search input. Pass it through to the package manager as-is (the CDN\n // route already handles `name@tag` specs), but track status under the\n // bare name so the Settings list doesn't fragment.\n const bareName = parseBareName(packageSpec);\n // Packages that were in `/packages` when the user clicked Install go\n // through `updateRegistryPackageStatus` and hit an existing entry.\n // Packages that landed via the npm-uplink fallback weren't in the list,\n // so we register them explicitly rather than silently upserting a\n // placeholder — keeping the \"does not exist\" error as a signal for any\n // other code path that reaches update without a matching entry.\n const wasKnownToRegistry = registryPackageList.some(\n (p) => p.name === bareName,\n );\n const result = await packageManager.addPackage(packageSpec);\n if (result.type === \"success\") {\n if (wasKnownToRegistry) {\n updateRegistryPackageStatus(bareName, \"registry-install\");\n } else {\n registerFallbackRegistryPackage(\n bareName,\n result.package,\n packageManager.getPackageVersion(bareName) ??\n packageManager.getPackageVersion(packageSpec),\n \"registry-install\",\n );\n }\n toast(`Package \"${packageSpec}\" installed successfully`, {\n type: \"connect-success\",\n });\n } else {\n const message = result.error.message;\n // `BrowserPackageManager` raises a generic \"Failed to fetch dynamically\n // imported module\" when the registry CDN returns an error. That covers\n // both \"the name exists nowhere (not on this registry AND not on the\n // npmjs uplink)\" and \"the tarball is there but doesn't look like a\n // Powerhouse package\". Tell the user in plain terms before dumping the\n // raw error so the \"install from npm\" fallback case is self-explanatory.\n const isLikelyNotFound = /failed to fetch|404|not found/i.test(message);\n const userMessage = isLikelyNotFound\n ? `Could not install \"${packageSpec}\". The package isn't available on this registry, and the npmjs.org fallback could not resolve it either.`\n : `Failed to install \"${packageSpec}\": ${message}`;\n toast(userMessage, { type: \"error\" });\n }\n }\n\n function handleUninstall(packageName: string) {\n if (!packageManager) return;\n try {\n packageManager.removePackage(packageName);\n updateRegistryPackageStatus(packageName, \"available\");\n\n toast(`Package \"${packageName}\" uninstalled successfully`, {\n type: \"connect-success\",\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n toast(`Failed to uninstall \"${packageName}\": ${message}`, {\n type: \"error\",\n });\n }\n }\n\n return (\n <div className=\"flex h-full flex-1 flex-col\">\n <PackageManager\n mutable={true}\n registryPackageList={registryPackageList}\n onInstall={handleInstall}\n onUninstall={handleUninstall}\n />\n </div>\n );\n};\n","import { Icon } from \"@powerhousedao/design-system\";\nimport { SettingsModal as SettingsModalV2 } from \"@powerhousedao/design-system/connect\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport { t } from \"i18next\";\nimport React, { useMemo } from \"react\";\nimport { About } from \"./settings/about.js\";\nimport { DangerZone } from \"./settings/danger-zone.js\";\nimport { DefaultEditor } from \"./settings/default-editor.js\";\nimport { ConnectPackageManager } from \"./settings/package-manager.js\";\n\nexport const SettingsModal: React.FC = () => {\n const phModal = usePHModal();\n const open = phModal?.type === \"settings\";\n function onRefresh() {\n window.location.reload();\n }\n\n const tabs = useMemo(\n () => [\n {\n id: \"package-manager\",\n icon: <Icon name=\"PackageManager\" size={12} />,\n label: \"Package Manager\",\n content: ConnectPackageManager,\n },\n {\n id: \"default-editors\",\n icon: <Icon name=\"Edit\" size={12} />,\n label: \"Default Editors\",\n content: DefaultEditor,\n },\n {\n id: \"danger-zone\",\n icon: <Icon name=\"Danger\" size={12} className=\"text-red-900\" />,\n label: <span className=\"text-red-900\">Danger Zone</span>,\n content: () => <DangerZone />,\n },\n {\n id: \"about\",\n icon: <Icon name=\"QuestionSquare\" size={12} />,\n label: \"About\",\n content: About,\n },\n ],\n [onRefresh],\n );\n\n return (\n <SettingsModalV2\n open={open}\n title={t(\"modals.connectSettings.title\")}\n onOpenChange={(status: boolean) => {\n if (!status) return closePHModal();\n }}\n tabs={tabs}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpgradeDriveModal-
|
|
1
|
+
{"version":3,"file":"UpgradeDriveModal-CBLALaaQ.js","names":[],"sources":["../src/components/modal/modals/UpgradeDriveModal.tsx"],"sourcesContent":["import { ConnectUpgradeDriveModal } from \"@powerhousedao/design-system/connect\";\nimport { closePHModal, usePHModal } from \"@powerhousedao/reactor-browser\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport const UpgradeDriveModal: React.FC = () => {\n const phModal = usePHModal();\n const open = phModal?.type === \"upgradeDrive\";\n const driveId = open ? phModal.driveId : undefined;\n\n const { t } = useTranslation();\n\n const onContinue = () => {\n // TODO: Implement upgrade drive\n console.log(\"Upgrade drive: \", driveId);\n closePHModal();\n };\n\n return (\n <ConnectUpgradeDriveModal\n open={open}\n onContinue={onContinue}\n header={t(\"modals.upgradeDrive.header\")}\n body={t(\"modals.upgradeDrive.body\")}\n cancelLabel={t(\"common.cancel\")}\n continueLabel={t(\"common.continue\")}\n onOpenChange={(status: boolean) => {\n if (!status) return closePHModal();\n }}\n />\n );\n};\n"],"mappings":";;;;;;AAKA,MAAa,0BAAoC;CAC/C,MAAM,UAAU,YAAY;CAC5B,MAAM,OAAO,SAAS,SAAS;CAC/B,MAAM,UAAU,OAAO,QAAQ,UAAU,KAAA;CAEzC,MAAM,EAAE,MAAM,gBAAgB;CAE9B,MAAM,mBAAmB;AAEvB,UAAQ,IAAI,mBAAmB,QAAQ;AACvC,gBAAc;;AAGhB,QACE,oBAAC,0BAAD;EACQ;EACM;EACZ,QAAQ,EAAE,6BAA6B;EACvC,MAAM,EAAE,2BAA2B;EACnC,aAAa,EAAE,gBAAgB;EAC/B,eAAe,EAAE,kBAAkB;EACnC,eAAe,WAAoB;AACjC,OAAI,CAAC,OAAQ,QAAO,cAAc;;EAEpC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { buildTreeUrl, shortGitSha } from "@powerhousedao/shared";
|
|
2
|
+
//#region src/utils/build-info.ts
|
|
3
|
+
function getGitSha() {
|
|
4
|
+
return "99b5233c7f1909f54569feadf2443e27da3e9523";
|
|
5
|
+
}
|
|
6
|
+
function getGitUrl() {
|
|
7
|
+
return buildTreeUrl(getGitSha());
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { getGitUrl as n, shortGitSha as r, getGitSha as t };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=build-info-BIHFrivX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-info-BIHFrivX.js","names":[],"sources":["../src/utils/build-info.ts"],"sourcesContent":["import { buildTreeUrl, shortGitSha } from \"@powerhousedao/shared\";\nimport { packageJson } from \"./package-json.js\";\n\nexport { shortGitSha };\n\ndeclare const CONNECT_VERSION: string | undefined;\ndeclare const CONNECT_GIT_SHA: string | undefined;\n\nexport function getVersion(): string {\n if (typeof CONNECT_VERSION !== \"undefined\") return CONNECT_VERSION;\n return (\n process.env.WORKSPACE_VERSION ??\n process.env.npm_package_version ??\n packageJson.version\n );\n}\n\nexport function getGitSha(): string {\n if (typeof CONNECT_GIT_SHA !== \"undefined\") return CONNECT_GIT_SHA;\n return process.env.WORKSPACE_GIT_SHA ?? \"unknown\";\n}\n\nexport function getGitUrl(): string | null {\n return buildTreeUrl(getGitSha());\n}\n"],"mappings":";;AAiBA,SAAgB,YAAoB;AACU,QAAA;;AAI9C,SAAgB,YAA2B;AACzC,QAAO,aAAa,WAAW,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as connectConfig } from "./connect.config-Cuh0hj_Q.js";
|
|
2
2
|
import { n as toast } from "./toast-DnODOv28.js";
|
|
3
|
-
import { t as package_default } from "./package-
|
|
4
|
-
import { t as detectReactorPgMajor } from "./pglite-runtime-
|
|
5
|
-
import { n as seedPendingPgVersion } from "./pglite-seed-
|
|
6
|
-
import { n as createReactor } from "./reactor-
|
|
3
|
+
import { t as package_default } from "./package-NysFDS6g.js";
|
|
4
|
+
import { t as detectReactorPgMajor } from "./pglite-runtime-C1g-4Jxl.js";
|
|
5
|
+
import { n as seedPendingPgVersion } from "./pglite-seed-BtXWFpHf.js";
|
|
6
|
+
import { n as createReactor } from "./reactor-Nm3jOev1.js";
|
|
7
7
|
import { useUser } from "@powerhousedao/reactor-browser";
|
|
8
8
|
import { logger } from "document-model";
|
|
9
9
|
import { createElement, useEffect } from "react";
|
|
@@ -106,4 +106,4 @@ async function loadComponent(localPackage) {
|
|
|
106
106
|
//#endregion
|
|
107
107
|
export { loadComponent };
|
|
108
108
|
|
|
109
|
-
//# sourceMappingURL=load-
|
|
109
|
+
//# sourceMappingURL=load-CHKj188S.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-
|
|
1
|
+
{"version":3,"file":"load-CHKj188S.js","names":["packageJson"],"sources":["../src/components/reload-connect-toast.tsx","../src/hooks/useCheckLatestVersion.ts","../src/hooks/utils.ts","../src/store/user.ts","../src/components/load.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\n\nexport const ReloadConnectToast = () => {\n const { t } = useTranslation();\n\n return (\n <div>\n <p className=\"font-medium\">{t(\"notifications.reloadApp\")}</p>\n <button\n onClick={() => location.reload()}\n className=\"underline decoration-solid underline-offset-2\"\n >\n {t(\"common.reloadConnect\")} 🔄\n </button>\n </div>\n );\n};\n","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, ...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 type { DocumentModelLib } from \"document-model\";\nimport { type ReactNode } from \"react\";\n\nexport async function loadComponent(localPackage?: DocumentModelLib) {\n await seedPendingPgVersion();\n await detectReactorPgMajor();\n await createReactor(localPackage);\n return {\n default: ({ children }: { children?: ReactNode }) => {\n useSetSentryUser();\n useCheckLatestVersion();\n return children;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAEA,MAAa,2BAA2B;CACtC,MAAM,EAAE,MAAM,gBAAgB;AAE9B,QACE,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,KAAD;EAAG,WAAU;YAAe,EAAE,0BAA0B;EAAK,CAAA,EAC7D,qBAAC,UAAD;EACE,eAAe,SAAS,QAAQ;EAChC,WAAU;YAFZ,CAIG,EAAE,uBAAuB,EAAC,MACpB;IACL,EAAA,CAAA;;;;ACPV,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,GAAG,SAAS;AAChC,gBAAa;IAAE,IAAI,KAAK;IAAK,UAAU,KAAK,KAAK;IAAM,GAAG;IAAM;;AAElE,UAAc,WAAW;IACxB,CAAC,KAAK,CAAC;;;;ACLZ,eAAsB,cAAc,cAAiC;AACnE,OAAM,sBAAsB;AAC5B,OAAM,sBAAsB;AAC5B,OAAM,cAAc,aAAa;AACjC,QAAO,EACL,UAAU,EAAE,eAAyC;AACnD,oBAAkB;AAClB,yBAAuB;AACvB,SAAO;IAEV"}
|
package/dist/main.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
var package_default = {
|
|
3
3
|
name: "@powerhousedao/connect",
|
|
4
4
|
productName: "Powerhouse-Connect",
|
|
5
|
-
version: "6.0.0-dev.
|
|
5
|
+
version: "6.0.0-dev.228",
|
|
6
6
|
description: "Powerhouse Connect",
|
|
7
7
|
main: "dist/index.html",
|
|
8
8
|
type: "module",
|
|
@@ -111,4 +111,4 @@ var package_default = {
|
|
|
111
111
|
//#endregion
|
|
112
112
|
export { package_default as t };
|
|
113
113
|
|
|
114
|
-
//# sourceMappingURL=package-
|
|
114
|
+
//# sourceMappingURL=package-NysFDS6g.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-NysFDS6g.js","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -129,4 +129,4 @@ async function loadPgDump(major) {
|
|
|
129
129
|
//#endregion
|
|
130
130
|
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 };
|
|
131
131
|
|
|
132
|
-
//# sourceMappingURL=pglite-runtime-
|
|
132
|
+
//# sourceMappingURL=pglite-runtime-C1g-4Jxl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite-runtime-
|
|
1
|
+
{"version":3,"file":"pglite-runtime-C1g-4Jxl.js","names":[],"sources":["../src/utils/pglite-idb.ts","../src/utils/pglite-runtime.ts"],"sourcesContent":["import { DEFAULT_RELATIONAL_PROCESSOR_DB_NAME } from \"@powerhousedao/shared/processors\";\n\nexport const IDB_STORE_NAME = \"FILE_DATA\";\nexport const IDB_DB_VERSION = 21;\n\nexport const REACTOR_IDB_NAME = \"/pglite/reactor\";\nexport const RELATIONAL_IDB_NAME = `/pglite/${DEFAULT_RELATIONAL_PROCESSOR_DB_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"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as invalidateReactorPgMajorCache } from "./pglite-runtime-
|
|
1
|
+
import { i as invalidateReactorPgMajorCache } from "./pglite-runtime-C1g-4Jxl.js";
|
|
2
2
|
//#region src/utils/pglite-seed.ts
|
|
3
3
|
const PENDING_PG_SEED_KEY = "ph:pending-pg-seed";
|
|
4
4
|
/**
|
|
@@ -43,4 +43,4 @@ async function seedPendingPgVersion() {
|
|
|
43
43
|
//#endregion
|
|
44
44
|
export { seedPendingPgVersion as n, PENDING_PG_SEED_KEY as t };
|
|
45
45
|
|
|
46
|
-
//# sourceMappingURL=pglite-seed-
|
|
46
|
+
//# sourceMappingURL=pglite-seed-BtXWFpHf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite-seed-
|
|
1
|
+
{"version":3,"file":"pglite-seed-BtXWFpHf.js","names":[],"sources":["../src/utils/pglite-seed.ts"],"sourcesContent":["import { invalidateReactorPgMajorCache } from \"./pglite-runtime.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 `idb://reactor`, 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\");\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\");\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"],"mappings":";;AAEA,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,gBAAgB;AACtC,OAAI;AACF,UAAM,GAAG;aACD;AACR,UAAM,GAAG,OAAO;;aAET,UAAU,IAAI;GACvB,MAAM,EAAE,WAAW,MAAM,OAAO;GAChC,MAAM,KAAK,IAAI,OAAO,gBAAgB;AACtC,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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as phGlobalConfigFromEnv } from "./connect.config-Cuh0hj_Q.js";
|
|
2
2
|
import { n as toast } from "./toast-DnODOv28.js";
|
|
3
|
-
import { a as loadPGliteModule, n as detectRelationalPgMajor, s as resolvePgMajorForRuntime, t as detectReactorPgMajor } from "./pglite-runtime-
|
|
3
|
+
import { a as loadPGliteModule, n as detectRelationalPgMajor, s as resolvePgMajorForRuntime, t as detectReactorPgMajor } from "./pglite-runtime-C1g-4Jxl.js";
|
|
4
4
|
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";
|
|
5
5
|
import { ConsoleLogger, logger, setLogLevel as setLogLevel$1 } from "document-model";
|
|
6
6
|
import { createRelationalDb } from "@powerhousedao/shared/processors";
|
|
@@ -780,4 +780,4 @@ function getDriveUrl() {
|
|
|
780
780
|
//#endregion
|
|
781
781
|
export { createReactor as n, clearReactorStorage as t };
|
|
782
782
|
|
|
783
|
-
//# sourceMappingURL=reactor-
|
|
783
|
+
//# sourceMappingURL=reactor-Nm3jOev1.js.map
|