@powerhousedao/shared 6.2.3-dev.3 → 6.2.3-dev.31
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/analytics/index.d.ts +4 -4
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +25 -24
- package/dist/analytics/index.js.map +1 -1
- package/dist/clis/args/{access-token-To5LaIfL.mjs → access-token-3Hqv_U8I.mjs} +2 -2
- package/dist/clis/args/{access-token-To5LaIfL.mjs.map → access-token-3Hqv_U8I.mjs.map} +1 -1
- package/dist/clis/args/access-token-C5sKsH2O.d.mts +16 -0
- package/dist/clis/args/access-token-C5sKsH2O.d.mts.map +1 -0
- package/dist/clis/args/access-token.d.mts +3 -2
- package/dist/clis/args/access-token.mjs +1 -1
- package/dist/clis/args/{common-CcYbXrBx.mjs → common-BXabdhiO.mjs} +30 -7
- package/dist/clis/args/common-BXabdhiO.mjs.map +1 -0
- package/dist/clis/args/common-Bnm859xU.d.mts +186 -0
- package/dist/clis/args/common-Bnm859xU.d.mts.map +1 -0
- package/dist/clis/args/common.d.mts +3 -2
- package/dist/clis/args/common.mjs +1 -1
- package/dist/clis/args/{connect-BVVvCmL9.mjs → connect-BG3HkYBk.mjs} +8 -3
- package/dist/clis/args/connect-BG3HkYBk.mjs.map +1 -0
- package/dist/clis/args/connect-DjeiqXus.d.mts +450 -0
- package/dist/clis/args/connect-DjeiqXus.d.mts.map +1 -0
- package/dist/clis/args/connect.d.mts +3 -2
- package/dist/clis/args/connect.mjs +1 -1
- package/dist/clis/args/{generate-CA916Fvj.mjs → generate-BOItUNvP.mjs} +40 -2
- package/dist/clis/args/generate-BOItUNvP.mjs.map +1 -0
- package/dist/clis/args/generate-BPBBLeUD.d.mts +103 -0
- package/dist/clis/args/generate-BPBBLeUD.d.mts.map +1 -0
- package/dist/clis/args/generate.d.mts +3 -2
- package/dist/clis/args/generate.mjs +1 -1
- package/dist/clis/args/{help-Bqbgbalu.mjs → help-DS1NlcJQ.mjs} +15 -15
- package/dist/clis/args/{help-Bqbgbalu.mjs.map → help-DS1NlcJQ.mjs.map} +1 -1
- package/dist/clis/args/help-DVPTARGn.d.mts +190 -0
- package/dist/clis/args/help-DVPTARGn.d.mts.map +1 -0
- package/dist/clis/args/help.d.mts +3 -2
- package/dist/clis/args/help.mjs +1 -1
- package/dist/clis/args/index.d.mts +20 -19
- package/dist/clis/args/index.mjs +18 -18
- package/dist/clis/args/init-CFeTq4Cq.d.mts +52 -0
- package/dist/clis/args/init-CFeTq4Cq.d.mts.map +1 -0
- package/dist/clis/args/{init-rz9Ei7nq.mjs → init-Dvb42Y87.mjs} +2 -2
- package/dist/clis/args/{init-rz9Ei7nq.mjs.map → init-Dvb42Y87.mjs.map} +1 -1
- package/dist/clis/args/init.d.mts +3 -2
- package/dist/clis/args/init.mjs +1 -1
- package/dist/clis/args/inspect-BjRmtB86.d.mts +13 -0
- package/dist/clis/args/inspect-BjRmtB86.d.mts.map +1 -0
- package/dist/clis/args/{inspect-tckH8mSw.mjs → inspect-UNQgtuR0.mjs} +2 -2
- package/dist/clis/args/{inspect-tckH8mSw.mjs.map → inspect-UNQgtuR0.mjs.map} +1 -1
- package/dist/clis/args/inspect.d.mts +3 -2
- package/dist/clis/args/inspect.mjs +1 -1
- package/dist/clis/args/install-B0tMyUMw.d.mts +37 -0
- package/dist/clis/args/install-B0tMyUMw.d.mts.map +1 -0
- package/dist/clis/args/{install-Sz2DlCHh.mjs → install-F-27kF6m.mjs} +2 -2
- package/dist/clis/args/{install-Sz2DlCHh.mjs.map → install-F-27kF6m.mjs.map} +1 -1
- package/dist/clis/args/install.d.mts +3 -2
- package/dist/clis/args/install.mjs +1 -1
- package/dist/clis/args/{list-DM2d6f1m.mjs → list-Bkfn8Yuo.mjs} +2 -2
- package/dist/clis/args/{list-DM2d6f1m.mjs.map → list-Bkfn8Yuo.mjs.map} +1 -1
- package/dist/clis/args/list-DrbxA7JJ.d.mts +10 -0
- package/dist/clis/args/list-DrbxA7JJ.d.mts.map +1 -0
- package/dist/clis/args/list.d.mts +3 -2
- package/dist/clis/args/list.mjs +1 -1
- package/dist/clis/args/{login-DiKT5Jfu.mjs → login-CIFkQExi.mjs} +2 -2
- package/dist/clis/args/{login-DiKT5Jfu.mjs.map → login-CIFkQExi.mjs.map} +1 -1
- package/dist/clis/args/login-CXRJXg71.d.mts +25 -0
- package/dist/clis/args/login-CXRJXg71.d.mts.map +1 -0
- package/dist/clis/args/login.d.mts +3 -2
- package/dist/clis/args/login.mjs +1 -1
- package/dist/clis/args/{magic-string.es-h_0HDQBQ.mjs → magic-string.es-BWtG0AyA.mjs} +33 -27
- package/dist/clis/args/magic-string.es-BWtG0AyA.mjs.map +1 -0
- package/dist/clis/args/migrate-DkCQRL2D.d.mts +19 -0
- package/dist/clis/args/migrate-DkCQRL2D.d.mts.map +1 -0
- package/dist/clis/args/{migrate-CG_gWc4k.mjs → migrate-DwJGhc2d.mjs} +2 -2
- package/dist/clis/args/{migrate-CG_gWc4k.mjs.map → migrate-DwJGhc2d.mjs.map} +1 -1
- package/dist/clis/args/migrate.d.mts +3 -2
- package/dist/clis/args/migrate.mjs +1 -1
- package/dist/clis/args/publish-CeW4bOrl.d.mts +16 -0
- package/dist/clis/args/publish-CeW4bOrl.d.mts.map +1 -0
- package/dist/clis/args/{publish-DDZYsUfV.mjs → publish-DHqlGWmL.mjs} +2 -2
- package/dist/clis/args/{publish-DDZYsUfV.mjs.map → publish-DHqlGWmL.mjs.map} +1 -1
- package/dist/clis/args/publish.d.mts +3 -2
- package/dist/clis/args/publish.mjs +1 -1
- package/dist/clis/args/{registry-C_OVFQmI.mjs → registry-DIwES3l2.mjs} +2 -2
- package/dist/clis/args/{registry-C_OVFQmI.mjs.map → registry-DIwES3l2.mjs.map} +1 -1
- package/dist/clis/args/registry-DNH8xuaE.d.mts +17 -0
- package/dist/clis/args/registry-DNH8xuaE.d.mts.map +1 -0
- package/dist/clis/args/registry.d.mts +3 -2
- package/dist/clis/args/registry.mjs +1 -1
- package/dist/clis/args/service-BBx5GDTc.d.mts +27 -0
- package/dist/clis/args/service-BBx5GDTc.d.mts.map +1 -0
- package/dist/clis/args/{service-CHOOr0Gg.mjs → service-Cpjlyeu5.mjs} +2 -2
- package/dist/clis/args/{service-CHOOr0Gg.mjs.map → service-Cpjlyeu5.mjs.map} +1 -1
- package/dist/clis/args/service.d.mts +3 -2
- package/dist/clis/args/service.mjs +1 -1
- package/dist/clis/args/{switchboard-Dsp7nosi.mjs → switchboard-CCaAtU56.mjs} +2 -2
- package/dist/clis/args/{switchboard-Dsp7nosi.mjs.map → switchboard-CCaAtU56.mjs.map} +1 -1
- package/dist/clis/args/switchboard-RrNb1fUH.d.mts +70 -0
- package/dist/clis/args/switchboard-RrNb1fUH.d.mts.map +1 -0
- package/dist/clis/args/switchboard.d.mts +3 -2
- package/dist/clis/args/switchboard.mjs +1 -1
- package/dist/clis/args/{uninstall-CTwTX0u_.mjs → uninstall-3U0B8g5c.mjs} +2 -2
- package/dist/clis/args/{uninstall-CTwTX0u_.mjs.map → uninstall-3U0B8g5c.mjs.map} +1 -1
- package/dist/clis/args/uninstall-CDx7lwxn.d.mts +28 -0
- package/dist/clis/args/uninstall-CDx7lwxn.d.mts.map +1 -0
- package/dist/clis/args/uninstall.d.mts +3 -2
- package/dist/clis/args/uninstall.mjs +1 -1
- package/dist/clis/args/unpublish-CEDsk6uv.d.mts +22 -0
- package/dist/clis/args/unpublish-CEDsk6uv.d.mts.map +1 -0
- package/dist/clis/args/{unpublish-BPMkGEg5.mjs → unpublish-s9zUh6Gw.mjs} +2 -2
- package/dist/clis/args/{unpublish-BPMkGEg5.mjs.map → unpublish-s9zUh6Gw.mjs.map} +1 -1
- package/dist/clis/args/unpublish.d.mts +3 -2
- package/dist/clis/args/unpublish.mjs +1 -1
- package/dist/clis/args/{vetra-b4KUu1Ax.mjs → vetra-BUNlAAPp.mjs} +2 -2
- package/dist/clis/args/{vetra-b4KUu1Ax.mjs.map → vetra-BUNlAAPp.mjs.map} +1 -1
- package/dist/clis/args/vetra-DkDaWFPi.d.mts +111 -0
- package/dist/clis/args/vetra-DkDaWFPi.d.mts.map +1 -0
- package/dist/clis/args/vetra-ports.test.d.mts +2 -1
- package/dist/clis/args/vetra-ports.test.mjs +285 -180
- package/dist/clis/args/vetra-ports.test.mjs.map +1 -1
- package/dist/clis/args/vetra.d.mts +3 -2
- package/dist/clis/args/vetra.mjs +1 -1
- package/dist/clis/build-config-CmdMi_wu.mjs +230 -0
- package/dist/clis/build-config-CmdMi_wu.mjs.map +1 -0
- package/dist/clis/build-config.d.mts +44 -10614
- package/dist/clis/build-config.d.mts.map +1 -1
- package/dist/clis/build-config.mjs +2 -88
- package/dist/clis/build-pieces.d.mts +100 -0
- package/dist/clis/build-pieces.d.mts.map +1 -0
- package/dist/clis/build-pieces.mjs +371 -0
- package/dist/clis/build-pieces.mjs.map +1 -0
- package/dist/clis/command-names.d.mts +2 -2
- package/dist/clis/command-names.d.mts.map +1 -1
- package/dist/clis/command-names.mjs.map +1 -1
- package/dist/clis/constants.d.mts +3 -462
- package/dist/clis/constants.mjs +25 -8
- package/dist/clis/constants.mjs.map +1 -1
- package/dist/clis/index-6CZwrmQi.d.mts +11154 -0
- package/dist/clis/index-6CZwrmQi.d.mts.map +1 -0
- package/dist/clis/index.d.mts +1335 -1221
- package/dist/clis/index.d.mts.map +1 -1
- package/dist/clis/index.mjs +181 -64
- package/dist/clis/index.mjs.map +1 -1
- package/dist/clis/project-env.d.mts +4 -4
- package/dist/clis/project-env.d.mts.map +1 -1
- package/dist/clis/project-env.mjs.map +1 -1
- package/dist/clis/project-ports.d.mts +5 -5
- package/dist/clis/project-ports.d.mts.map +1 -1
- package/dist/clis/project-ports.mjs +1 -1
- package/dist/clis/project-ports.mjs.map +1 -1
- package/dist/clis/services/telemetry.d.mts +7 -7
- package/dist/clis/services/telemetry.d.mts.map +1 -1
- package/dist/clis/services/telemetry.mjs.map +1 -1
- package/dist/clis/types-CMFHKrgv.d.mts +528 -0
- package/dist/clis/types-CMFHKrgv.d.mts.map +1 -0
- package/dist/clis/utils.d.mts +4 -4
- package/dist/clis/utils.d.mts.map +1 -1
- package/dist/clis/utils.mjs.map +1 -1
- package/dist/{config-loader-B845Hidf.js → config-loader-CWQxMERh.js} +22 -8
- package/dist/config-loader-CWQxMERh.js.map +1 -0
- package/dist/connect/config-loader.d.ts +14 -8
- package/dist/connect/config-loader.d.ts.map +1 -1
- package/dist/connect/config-loader.js +2 -2
- package/dist/connect/index.d.ts +158 -56
- package/dist/connect/index.d.ts.map +1 -1
- package/dist/connect/index.js +271 -30
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/json-adapter.d.ts +3 -4
- package/dist/connect/json-adapter.d.ts.map +1 -1
- package/dist/connect/json-adapter.js.map +1 -1
- package/dist/{constants-BP_gjn8g.d.ts → constants-DO4IYxuR.d.ts} +2 -1
- package/dist/constants-DO4IYxuR.d.ts.map +1 -0
- package/dist/constants.d.ts +3 -2
- package/dist/constants.js.map +1 -1
- package/dist/document-drive/index.d.ts +134 -100
- package/dist/document-drive/index.d.ts.map +1 -1
- package/dist/document-drive/index.js +120 -52
- package/dist/document-drive/index.js.map +1 -1
- package/dist/document-model/index.d.ts +5 -4
- package/dist/document-model/index.js +449 -227
- package/dist/document-model/index.js.map +1 -1
- package/dist/document-model/mock.d.ts +2 -3
- package/dist/document-model/mock.d.ts.map +1 -1
- package/dist/document-model/mock.js +2 -1
- package/dist/document-model/mock.js.map +1 -1
- package/dist/document-model/utils.d.ts +3 -2
- package/dist/document-model/utils.js +1 -1
- package/dist/{index-DyYIJtVy.d.ts → index-CDDyUSHE.d.ts} +40 -28
- package/dist/index-CDDyUSHE.d.ts.map +1 -0
- package/dist/index-D0JljlgO.d.ts +36 -0
- package/dist/index-D0JljlgO.d.ts.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.js.map +1 -1
- package/dist/processors/index.d.ts +3 -2
- package/dist/processors/index.js +5 -1
- package/dist/processors/index.js.map +1 -1
- package/dist/registry/index.d.ts +15 -15
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +14 -5
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/manifest-slim.d.ts +4 -3
- package/dist/registry/manifest-slim.d.ts.map +1 -1
- package/dist/registry/manifest-slim.js +21 -0
- package/dist/registry/manifest-slim.js.map +1 -1
- package/dist/registry/updates.d.ts +3 -3
- package/dist/registry/updates.d.ts.map +1 -1
- package/dist/registry/updates.js.map +1 -1
- package/dist/registry/urls.d.ts +2 -2
- package/dist/registry/urls.d.ts.map +1 -1
- package/dist/registry/urls.js.map +1 -1
- package/dist/{types-C1in4fl3.d.ts → types-Bsp8VL2y.d.ts} +2 -2
- package/dist/types-Bsp8VL2y.d.ts.map +1 -0
- package/dist/{types-YqLqb0Zb.d.ts → types-VDHUeQnm.d.ts} +23 -35
- package/dist/types-VDHUeQnm.d.ts.map +1 -0
- package/dist/{types-CpnWmiFY.d.ts → types-xLPOHE23.d.ts} +593 -437
- package/dist/types-xLPOHE23.d.ts.map +1 -0
- package/dist/{utils-DP122OSS.d.ts → utils-BrKxCmKx.d.ts} +2 -2
- package/dist/utils-BrKxCmKx.d.ts.map +1 -0
- package/dist/{utils-aaTmfxFW.js → utils-XotexSsQ.js} +3 -2
- package/dist/{utils-aaTmfxFW.js.map → utils-XotexSsQ.js.map} +1 -1
- package/package.json +10 -5
- package/dist/clis/args/access-token--9H57y8J.d.mts +0 -18
- package/dist/clis/args/access-token--9H57y8J.d.mts.map +0 -1
- package/dist/clis/args/common-CcYbXrBx.mjs.map +0 -1
- package/dist/clis/args/common-Dsf1vpHV.d.mts +0 -183
- package/dist/clis/args/common-Dsf1vpHV.d.mts.map +0 -1
- package/dist/clis/args/connect-BVVvCmL9.mjs.map +0 -1
- package/dist/clis/args/connect-DetTnI8g.d.mts +0 -443
- package/dist/clis/args/connect-DetTnI8g.d.mts.map +0 -1
- package/dist/clis/args/generate-CA916Fvj.mjs.map +0 -1
- package/dist/clis/args/generate-DnV-bfXt.d.mts +0 -87
- package/dist/clis/args/generate-DnV-bfXt.d.mts.map +0 -1
- package/dist/clis/args/help-CjAsudUn.d.mts +0 -193
- package/dist/clis/args/help-CjAsudUn.d.mts.map +0 -1
- package/dist/clis/args/init-CUXyfquF.d.mts +0 -55
- package/dist/clis/args/init-CUXyfquF.d.mts.map +0 -1
- package/dist/clis/args/inspect-DtZeoA5c.d.mts +0 -15
- package/dist/clis/args/inspect-DtZeoA5c.d.mts.map +0 -1
- package/dist/clis/args/install-CkP8zcHb.d.mts +0 -40
- package/dist/clis/args/install-CkP8zcHb.d.mts.map +0 -1
- package/dist/clis/args/list-BGf8s_gj.d.mts +0 -12
- package/dist/clis/args/list-BGf8s_gj.d.mts.map +0 -1
- package/dist/clis/args/login-DNsHwvqk.d.mts +0 -27
- package/dist/clis/args/login-DNsHwvqk.d.mts.map +0 -1
- package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs.map +0 -1
- package/dist/clis/args/migrate-sixkWhxm.d.mts +0 -21
- package/dist/clis/args/migrate-sixkWhxm.d.mts.map +0 -1
- package/dist/clis/args/publish-Dqe5DUst.d.mts +0 -18
- package/dist/clis/args/publish-Dqe5DUst.d.mts.map +0 -1
- package/dist/clis/args/registry-C_RfTsKB.d.mts +0 -19
- package/dist/clis/args/registry-C_RfTsKB.d.mts.map +0 -1
- package/dist/clis/args/service-DhIkf8-O.d.mts +0 -22
- package/dist/clis/args/service-DhIkf8-O.d.mts.map +0 -1
- package/dist/clis/args/switchboard-BlPaq2at.d.mts +0 -72
- package/dist/clis/args/switchboard-BlPaq2at.d.mts.map +0 -1
- package/dist/clis/args/uninstall-BpA3YYbw.d.mts +0 -31
- package/dist/clis/args/uninstall-BpA3YYbw.d.mts.map +0 -1
- package/dist/clis/args/unpublish-CvwaIimG.d.mts +0 -24
- package/dist/clis/args/unpublish-CvwaIimG.d.mts.map +0 -1
- package/dist/clis/args/vetra-DLQ6lhLl.d.mts +0 -113
- package/dist/clis/args/vetra-DLQ6lhLl.d.mts.map +0 -1
- package/dist/clis/build-config.mjs.map +0 -1
- package/dist/clis/constants.d.mts.map +0 -1
- package/dist/config-loader-B845Hidf.js.map +0 -1
- package/dist/constants-BP_gjn8g.d.ts.map +0 -1
- package/dist/index-C_iVZe7f.d.ts +0 -7
- package/dist/index-C_iVZe7f.d.ts.map +0 -1
- package/dist/index-DyYIJtVy.d.ts.map +0 -1
- package/dist/types-C1in4fl3.d.ts.map +0 -1
- package/dist/types-CpnWmiFY.d.ts.map +0 -1
- package/dist/types-YqLqb0Zb.d.ts.map +0 -1
- package/dist/utils-DP122OSS.d.ts.map +0 -1
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
import "mutative";
|
|
2
|
+
import "luxon";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import "cmd-ts/dist/cjs/argparser.js";
|
|
5
|
+
import "package-manager-detector";
|
|
6
|
+
import "kysely";
|
|
7
|
+
//#region clis/constants.d.ts
|
|
8
|
+
declare const SERVICE_ACTIONS: readonly ["start", "stop", "status", "setup", "restart"];
|
|
9
|
+
declare const SECONDS_IN_DAY: number;
|
|
10
|
+
declare const DEFAULT_EXPIRY_DAYS = 7;
|
|
11
|
+
declare const DEFAULT_EXPIRY_SECONDS: number;
|
|
12
|
+
declare const DRIVES_PRESERVE_STRATEGIES: readonly ["preserve-all", "preserve-by-url-and-detach"];
|
|
13
|
+
declare const LOG_LEVELS: readonly ["debug", "info", "warn", "error", "verbose"];
|
|
14
|
+
declare const DEFAULT_TIMEOUT: 300;
|
|
15
|
+
declare const DEFAULT_CONNECT_STUDIO_PORT: 3000;
|
|
16
|
+
declare const DEFAULT_VETRA_CONNECT_PORT: 3001;
|
|
17
|
+
declare const DEFAULT_CONNECT_PREVIEW_PORT: 4173;
|
|
18
|
+
declare const DEFAULT_CONNECT_OUTDIR: ".ph/connect-build/dist/";
|
|
19
|
+
declare const DEFAULT_RENOWN_URL: "https://www.renown.id";
|
|
20
|
+
declare const DEFAULT_REGISTRY_URL: "https://registry.vetra.io";
|
|
21
|
+
declare const DEFAULT_SWITCHBOARD_PORT: 4001;
|
|
22
|
+
declare const PROJECT_PORT_BAND_SIZE: 1000;
|
|
23
|
+
declare const PROJECT_PORT_BAND_SWITCHBOARD: 7000;
|
|
24
|
+
declare const PROJECT_PORT_BAND_STUDIO: 6000;
|
|
25
|
+
declare const PROJECT_PORT_BAND_VETRA_CONNECT: 2000;
|
|
26
|
+
declare const DEFAULT_VETRA_DRIVE_ID: "vetra";
|
|
27
|
+
declare const MINIMUM_NODE_VERSION: "24.0.0";
|
|
28
|
+
declare const PH_BIN: "ph-cli-legacy";
|
|
29
|
+
declare const POWERHOUSE_CONFIG_FILE: "powerhouse.config.json";
|
|
30
|
+
declare const PH_GLOBAL_DIR_NAME: ".ph";
|
|
31
|
+
declare const PH_GLOBAL_PROJECT_NAME: ".ph";
|
|
32
|
+
declare const HOME_DIR: string;
|
|
33
|
+
declare const POWERHOUSE_GLOBAL_DIR: string;
|
|
34
|
+
declare const VERSIONED_PEER_DEPENDENCIES: string[];
|
|
35
|
+
declare const REACTOR_API_PACKAGE = "@powerhousedao/reactor-api";
|
|
36
|
+
declare const ANALYTICS_ENGINE_CORE_PACKAGE = "@powerhousedao/analytics-engine-core";
|
|
37
|
+
declare const GRAPHQL_PACKAGE = "graphql";
|
|
38
|
+
declare const GRAPHQL_TAG_PACKAGE = "graphql-tag";
|
|
39
|
+
declare const PIECES_FRAMEWORK_PACKAGE = "@powerhousedao/pieces-framework";
|
|
40
|
+
declare const PEER_EXTERNAL_DEPENDENCIES: {
|
|
41
|
+
readonly graphql: {
|
|
42
|
+
readonly peer: "^16";
|
|
43
|
+
readonly dev: "16.12.0";
|
|
44
|
+
};
|
|
45
|
+
readonly "graphql-tag": {
|
|
46
|
+
readonly peer: "^2";
|
|
47
|
+
readonly dev: "2.12.6";
|
|
48
|
+
};
|
|
49
|
+
readonly react: {
|
|
50
|
+
readonly peer: "^19";
|
|
51
|
+
readonly dev: "19.2.6";
|
|
52
|
+
};
|
|
53
|
+
readonly "react-dom": {
|
|
54
|
+
readonly peer: "^19";
|
|
55
|
+
readonly dev: "19.2.6";
|
|
56
|
+
};
|
|
57
|
+
readonly zod: {
|
|
58
|
+
readonly peer: "^4";
|
|
59
|
+
readonly dev: "4.3.6";
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
declare const FEATURE_DEPENDENCIES: {
|
|
63
|
+
readonly analyticsProcessor: {
|
|
64
|
+
readonly peerVersioned: readonly ["@powerhousedao/analytics-engine-core"];
|
|
65
|
+
readonly peerExternal: {};
|
|
66
|
+
readonly devVersioned: readonly [];
|
|
67
|
+
};
|
|
68
|
+
readonly piece: {
|
|
69
|
+
readonly peerVersioned: readonly [];
|
|
70
|
+
readonly peerExternal: {};
|
|
71
|
+
readonly devVersioned: readonly ["@powerhousedao/pieces-framework"];
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
declare const VERSIONED_DEPENDENCIES: string[];
|
|
75
|
+
declare const BOILERPLATE_ALLOWED_BUILDS: readonly ["@apollo/protobufjs", "@datadog/pprof", "@parcel/watcher", "@reown/appkit", "bufferutil", "esbuild", "keccak", "protobufjs", "utf-8-validate"];
|
|
76
|
+
declare const BOILERPLATE_DEPENDENCY_OVERRIDES: {
|
|
77
|
+
readonly "date-fns": "4.3.0";
|
|
78
|
+
readonly vite: "8.0.14";
|
|
79
|
+
readonly rolldown: "1.0.2";
|
|
80
|
+
};
|
|
81
|
+
declare const VERSIONED_DEV_DEPENDENCIES: string[];
|
|
82
|
+
declare const packageJsonExports: {
|
|
83
|
+
readonly ".": {
|
|
84
|
+
readonly types: "./dist/types/index.d.ts";
|
|
85
|
+
readonly browser: "./dist/browser/index.js";
|
|
86
|
+
readonly node: "./dist/node/index.mjs";
|
|
87
|
+
};
|
|
88
|
+
readonly "./reactor": {
|
|
89
|
+
readonly types: "./dist/types/reactor/index.d.ts";
|
|
90
|
+
readonly browser: "./dist/browser/reactor/index.js";
|
|
91
|
+
};
|
|
92
|
+
readonly "./document-models": {
|
|
93
|
+
readonly types: "./dist/types/document-models/index.d.ts";
|
|
94
|
+
readonly browser: "./dist/browser/document-models/index.js";
|
|
95
|
+
readonly node: "./dist/node/document-models/index.mjs";
|
|
96
|
+
};
|
|
97
|
+
readonly "./document-models/*": {
|
|
98
|
+
readonly types: "./dist/types/document-models/*/index.d.ts";
|
|
99
|
+
readonly browser: "./dist/browser/document-models/*/index.js";
|
|
100
|
+
readonly node: "./dist/node/document-models/*/index.mjs";
|
|
101
|
+
};
|
|
102
|
+
readonly "./editors": {
|
|
103
|
+
readonly types: "./dist/types/editors/index.d.ts";
|
|
104
|
+
readonly browser: "./dist/browser/editors/index.js";
|
|
105
|
+
readonly node: "./dist/node/editors/index.mjs";
|
|
106
|
+
};
|
|
107
|
+
readonly "./editors/*": {
|
|
108
|
+
readonly types: "./dist/types/editors/*/editor.d.ts";
|
|
109
|
+
readonly browser: "./dist/browser/editors/*/editor.js";
|
|
110
|
+
readonly node: "./dist/node/editors/*/editor.mjs";
|
|
111
|
+
};
|
|
112
|
+
readonly "./subgraphs": {
|
|
113
|
+
readonly types: "./dist/types/subgraphs/index.d.ts";
|
|
114
|
+
readonly browser: "./dist/browser/subgraphs/index.js";
|
|
115
|
+
readonly node: "./dist/node/subgraphs/index.mjs";
|
|
116
|
+
};
|
|
117
|
+
readonly "./processors": {
|
|
118
|
+
readonly types: "./dist/types/processors/index.d.ts";
|
|
119
|
+
readonly browser: "./dist/browser/processors/index.js";
|
|
120
|
+
readonly node: "./dist/node/processors/index.mjs";
|
|
121
|
+
};
|
|
122
|
+
readonly "./pieces": {
|
|
123
|
+
readonly types: "./dist/types/pieces/index.d.ts";
|
|
124
|
+
readonly node: "./dist/node/pieces/index.mjs";
|
|
125
|
+
};
|
|
126
|
+
readonly "./pieces/*": {
|
|
127
|
+
readonly types: "./dist/types/pieces/*/index.d.ts";
|
|
128
|
+
readonly node: "./dist/node/pieces/*/index.mjs";
|
|
129
|
+
};
|
|
130
|
+
readonly "./manifest": "./dist/powerhouse.manifest.json";
|
|
131
|
+
readonly "./style.css": "./dist/style.css";
|
|
132
|
+
};
|
|
133
|
+
declare const packageScripts: {
|
|
134
|
+
readonly "test:watch": "vitest";
|
|
135
|
+
readonly lint: "oxlint --type-aware --type-check";
|
|
136
|
+
readonly "lint:fix": "oxlint --type-aware --type-check --fix";
|
|
137
|
+
readonly format: "oxfmt";
|
|
138
|
+
readonly "format:check": "oxfmt --check";
|
|
139
|
+
readonly tsc: "tsc";
|
|
140
|
+
readonly "tsc:watch": "tsc --watch";
|
|
141
|
+
readonly generate: "ph-cli generate";
|
|
142
|
+
readonly connect: "ph-cli connect";
|
|
143
|
+
readonly build: "ph-cli build";
|
|
144
|
+
readonly reactor: "ph-cli reactor";
|
|
145
|
+
readonly service: "ph-cli service";
|
|
146
|
+
readonly vetra: "ph-cli vetra";
|
|
147
|
+
readonly "service-startup": "bash ./node_modules/@powerhousedao/ph-cli/dist/scripts/service-startup.sh";
|
|
148
|
+
readonly "service-unstartup": "bash ./node_modules/@powerhousedao/ph-cli/dist/scripts/service-unstartup.sh";
|
|
149
|
+
};
|
|
150
|
+
declare const externalDependencies: {};
|
|
151
|
+
declare const LEGACY_LINT_FORMAT_DEPENDENCIES: readonly ["@eslint/js", "eslint", "eslint-config-prettier", "eslint-plugin-prettier", "eslint-plugin-react", "eslint-plugin-react-hooks", "globals", "prettier", "typescript-eslint"];
|
|
152
|
+
declare const LEGACY_LINT_FORMAT_FILES: readonly ["eslint.config.js", "eslint.config.mjs", "eslint.config.cjs", "eslint.config.ts", ".eslintrc", ".eslintrc.js", ".eslintrc.cjs", ".eslintrc.json", ".eslintrc.yml", ".eslintrc.yaml", ".eslintignore", ".prettierrc", ".prettierrc.js", ".prettierrc.cjs", ".prettierrc.json", ".prettierrc.yml", ".prettierrc.yaml", "prettier.config.js", "prettier.config.cjs", "prettier.config.mjs", ".prettierignore"];
|
|
153
|
+
declare const externalDevDependencies: {
|
|
154
|
+
readonly "@electric-sql/pglite": "0.3.15";
|
|
155
|
+
readonly "@electric-sql/pglite-tools": "0.2.20";
|
|
156
|
+
readonly "@powerhousedao/document-engineering": "1.40.5";
|
|
157
|
+
readonly "@tailwindcss/cli": "^4.1.18";
|
|
158
|
+
readonly "@tailwindcss/vite": "^4.1.18";
|
|
159
|
+
readonly "@types/node": "^24.9.2";
|
|
160
|
+
readonly "@types/react": "^19.2.3";
|
|
161
|
+
readonly "@types/react-dom": "^19.2.3";
|
|
162
|
+
readonly "@vitejs/plugin-react": "^6.0.1";
|
|
163
|
+
readonly "@vitest/coverage-v8": "4.1.1";
|
|
164
|
+
readonly oxfmt: "0.68.0";
|
|
165
|
+
readonly oxlint: "1.70.0";
|
|
166
|
+
readonly "oxlint-tsgolint": "0.23.0";
|
|
167
|
+
readonly tailwindcss: "^4.1.16";
|
|
168
|
+
readonly typescript: "~7.0.2";
|
|
169
|
+
readonly vite: "^8.0.10";
|
|
170
|
+
readonly "vite-tsconfig-paths": "6.1.1";
|
|
171
|
+
readonly vitest: "4.1.1";
|
|
172
|
+
};
|
|
173
|
+
declare const defaultManifest: Manifest;
|
|
174
|
+
declare const DEFAULT_CONFIG: PowerhouseConfig;
|
|
175
|
+
//#endregion
|
|
176
|
+
//#region clis/types.d.ts
|
|
177
|
+
type DrivePreserveStrategies = typeof DRIVES_PRESERVE_STRATEGIES;
|
|
178
|
+
type DrivePreserveStrategy = DrivePreserveStrategies[number];
|
|
179
|
+
type LogLevels = typeof LOG_LEVELS;
|
|
180
|
+
type LogLevel = LogLevels[number];
|
|
181
|
+
type PHPackageProvider = "npm" | "github" | "local" | "registry";
|
|
182
|
+
type PowerhousePackage = {
|
|
183
|
+
packageName: string;
|
|
184
|
+
version?: string;
|
|
185
|
+
provider?: PHPackageProvider;
|
|
186
|
+
url?: string;
|
|
187
|
+
};
|
|
188
|
+
type PHConnectBranding = {
|
|
189
|
+
appName?: string;
|
|
190
|
+
homeBackground?: string | null;
|
|
191
|
+
};
|
|
192
|
+
type PHConnectDefaultDriveRemote = {
|
|
193
|
+
url: string;
|
|
194
|
+
name?: string | null;
|
|
195
|
+
icon?: string | null;
|
|
196
|
+
};
|
|
197
|
+
type PHConnectDefaultDriveLocal = {
|
|
198
|
+
/** Discriminator: this entry is a local drive created on first boot. */
|
|
199
|
+
local: true;
|
|
200
|
+
/** Stable drive id; the drive is not re-created on later boots. */
|
|
201
|
+
id: string;
|
|
202
|
+
name?: string | null;
|
|
203
|
+
icon?: string | null;
|
|
204
|
+
/** Drive app (preferred editor) to open on the drive. */
|
|
205
|
+
app?: string;
|
|
206
|
+
};
|
|
207
|
+
type PHConnectDefaultDrive = PHConnectDefaultDriveRemote | PHConnectDefaultDriveLocal;
|
|
208
|
+
type PHConnectDriveSection = {
|
|
209
|
+
enabled?: boolean;
|
|
210
|
+
allowAdd?: boolean;
|
|
211
|
+
allowDelete?: boolean;
|
|
212
|
+
};
|
|
213
|
+
type PHConnectDriveSections = {
|
|
214
|
+
remote?: PHConnectDriveSection;
|
|
215
|
+
local?: PHConnectDriveSection;
|
|
216
|
+
};
|
|
217
|
+
type PHConnectDrives = {
|
|
218
|
+
allowAddDrive?: boolean;
|
|
219
|
+
defaultDrives?: PHConnectDefaultDrive[];
|
|
220
|
+
preserveStrategy?: DrivePreserveStrategy;
|
|
221
|
+
sections?: PHConnectDriveSections;
|
|
222
|
+
};
|
|
223
|
+
type PHConnectApp = {
|
|
224
|
+
logLevel?: "debug" | "info" | "warn" | "error";
|
|
225
|
+
basePath?: string;
|
|
226
|
+
offline?: boolean;
|
|
227
|
+
studioMode?: boolean;
|
|
228
|
+
workflowsEnabled?: boolean;
|
|
229
|
+
};
|
|
230
|
+
type PHConnectAi = {
|
|
231
|
+
/** Enables the in-browser AI assistant (chat FAB + window). Off by default. */
|
|
232
|
+
assistantEnabled?: boolean;
|
|
233
|
+
};
|
|
234
|
+
type PHConnectPackages = {
|
|
235
|
+
externalEnabled?: boolean;
|
|
236
|
+
/** Subscribe to the static-mode `/__packages` SSE channel for live reload. */
|
|
237
|
+
liveReload?: boolean;
|
|
238
|
+
};
|
|
239
|
+
type PHRenownRainbowAdapterConfig = {
|
|
240
|
+
/** WalletConnect project id; required for the rainbow adapter to function. */
|
|
241
|
+
walletConnectProjectId?: string;
|
|
242
|
+
/** Optional Infura project id used to build RPC transports. */
|
|
243
|
+
infuraProjectId?: string;
|
|
244
|
+
};
|
|
245
|
+
type PHRenownPrivyAdapterConfig = {
|
|
246
|
+
/** Privy application id; required for the privy adapter to function. */
|
|
247
|
+
appId?: string;
|
|
248
|
+
/** Optional Privy client id. */
|
|
249
|
+
clientId?: string;
|
|
250
|
+
/** Login methods this adapter offers; defaults per adapter when omitted. */
|
|
251
|
+
methods?: string[];
|
|
252
|
+
};
|
|
253
|
+
type PHConnectRenownAdapters = {
|
|
254
|
+
rainbow?: PHRenownRainbowAdapterConfig;
|
|
255
|
+
privy?: PHRenownPrivyAdapterConfig;
|
|
256
|
+
};
|
|
257
|
+
type PHConnectRenown = {
|
|
258
|
+
url?: string;
|
|
259
|
+
networkId?: string;
|
|
260
|
+
chainId?: number;
|
|
261
|
+
/** Renown localStorage namespace; share it across Connects to share login. */
|
|
262
|
+
namespace?: string;
|
|
263
|
+
/** Switchboard GraphQL URL; when set, enables in-page (no-redirect) auth. */
|
|
264
|
+
switchboardUrl?: string;
|
|
265
|
+
/** Per-adapter wallet config; presence of a key enables that adapter. */
|
|
266
|
+
adapters?: PHConnectRenownAdapters;
|
|
267
|
+
};
|
|
268
|
+
type PHConnectSentry = {
|
|
269
|
+
/** Sentry DSN URL. `null` disables Sentry entirely. */
|
|
270
|
+
dsn?: string | null;
|
|
271
|
+
/** Sentry environment label. */
|
|
272
|
+
env?: string;
|
|
273
|
+
/** Enable Sentry performance tracing. */
|
|
274
|
+
tracing?: boolean;
|
|
275
|
+
};
|
|
276
|
+
type PHConnectInstance = {
|
|
277
|
+
namespace: string | null;
|
|
278
|
+
reactorWorker: boolean;
|
|
279
|
+
};
|
|
280
|
+
/** Each flag implies its predecessors, and must match the fleet Connect syncs
|
|
281
|
+
* with or the two compute different replay outcomes. */
|
|
282
|
+
type PHConnectReactorFeatureFlags = {
|
|
283
|
+
/** Decide writes from the document stream instead of the meta cache. */
|
|
284
|
+
documentDecisions?: boolean;
|
|
285
|
+
/** Enforce the auth scope's policy at admission, replay, and read. */
|
|
286
|
+
authEnforcement?: boolean;
|
|
287
|
+
/** Let `{ group }` principals match, via the group documents' rosters. */
|
|
288
|
+
authGroups?: boolean;
|
|
289
|
+
/** Evaluate `where` / `match` conditions on grants. */
|
|
290
|
+
authConditions?: boolean;
|
|
291
|
+
};
|
|
292
|
+
type PHConnectReactor = {
|
|
293
|
+
featureFlags?: PHConnectReactorFeatureFlags;
|
|
294
|
+
/** What new documents are created as; `legacy` while peers predate v2-required documents. */
|
|
295
|
+
createSignaturePolicy?: "legacy" | "v2-required";
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* A URL-matching pattern for a service-worker runtime-caching rule, in
|
|
299
|
+
* JSON-serialisable form. A plain string is handed to Workbox verbatim (exact
|
|
300
|
+
* URL or same-origin path match). `{ source, flags }` is reconstructed into a
|
|
301
|
+
* `RegExp` at build time — use it for prefix/suffix/origin matches (e.g.
|
|
302
|
+
* `{ source: "^https://api\\.acme\\.io/" }`). Function-valued patterns aren't
|
|
303
|
+
* expressible here; regex covers the realistic package cases.
|
|
304
|
+
*/
|
|
305
|
+
type PHConnectPwaUrlPattern = string | {
|
|
306
|
+
source: string;
|
|
307
|
+
flags?: string;
|
|
308
|
+
};
|
|
309
|
+
type PHConnectPwaCacheStrategy = "CacheFirst" | "CacheOnly" | "NetworkFirst" | "NetworkOnly" | "StaleWhileRevalidate";
|
|
310
|
+
/** Serialisable subset of a Workbox `RuntimeCaching` rule. */
|
|
311
|
+
type PHConnectPwaRuntimeCaching = {
|
|
312
|
+
urlPattern: PHConnectPwaUrlPattern;
|
|
313
|
+
handler: PHConnectPwaCacheStrategy;
|
|
314
|
+
method?: "GET" | "POST" | "PUT" | "DELETE" | "HEAD" | "PATCH";
|
|
315
|
+
options?: {
|
|
316
|
+
cacheName?: string;
|
|
317
|
+
/** Seconds a NetworkFirst rule waits for the network before falling back
|
|
318
|
+
* to the cache. */
|
|
319
|
+
networkTimeoutSeconds?: number;
|
|
320
|
+
expiration?: {
|
|
321
|
+
maxEntries?: number;
|
|
322
|
+
maxAgeSeconds?: number;
|
|
323
|
+
};
|
|
324
|
+
cacheableResponse?: {
|
|
325
|
+
statuses?: number[];
|
|
326
|
+
headers?: Record<string, string>;
|
|
327
|
+
};
|
|
328
|
+
};
|
|
329
|
+
};
|
|
330
|
+
type PHConnectPwaIcon = {
|
|
331
|
+
src: string;
|
|
332
|
+
sizes?: string;
|
|
333
|
+
type?: string;
|
|
334
|
+
purpose?: string;
|
|
335
|
+
};
|
|
336
|
+
/**
|
|
337
|
+
* A File Handling API entry a package or project contributes: the OS-level
|
|
338
|
+
* file types the installed Connect PWA offers to open. There is deliberately
|
|
339
|
+
* no `action` field — consuming launched files requires runtime code that
|
|
340
|
+
* lives in Connect itself, so every handler (built-in or contributed) opens
|
|
341
|
+
* at Connect's app root, injected at build time.
|
|
342
|
+
*/
|
|
343
|
+
type PHConnectPwaFileHandler = {
|
|
344
|
+
/** MIME type → file extensions (each must start with "."). */
|
|
345
|
+
accept: Record<string, string[]>;
|
|
346
|
+
/** OS-level file-type icons. */
|
|
347
|
+
icons?: PHConnectPwaIcon[];
|
|
348
|
+
launch_type?: "single-client" | "multiple-clients";
|
|
349
|
+
};
|
|
350
|
+
/** Web-app-manifest fields a package or project may override. */
|
|
351
|
+
type PHConnectPwaManifest = {
|
|
352
|
+
name?: string;
|
|
353
|
+
short_name?: string;
|
|
354
|
+
description?: string;
|
|
355
|
+
theme_color?: string;
|
|
356
|
+
background_color?: string;
|
|
357
|
+
display?: "fullscreen" | "standalone" | "minimal-ui" | "browser";
|
|
358
|
+
start_url?: string;
|
|
359
|
+
scope?: string;
|
|
360
|
+
icons?: PHConnectPwaIcon[];
|
|
361
|
+
/** Extra file associations, appended after Connect's built-in `.phd`/`.phdm` handler. */
|
|
362
|
+
file_handlers?: PHConnectPwaFileHandler[];
|
|
363
|
+
/** How the OS launches the app for handled files/links. */
|
|
364
|
+
launch_handler?: {
|
|
365
|
+
client_mode: "auto" | "focus-existing" | "navigate-existing" | "navigate-new";
|
|
366
|
+
};
|
|
367
|
+
/** App-store-style categories. NOT authored under `connect.pwa` — derived at
|
|
368
|
+
* build/runtime from the `category` field of every contributing
|
|
369
|
+
* `powerhouse.manifest.json` (project + packages), unioned across them. */
|
|
370
|
+
categories?: string[];
|
|
371
|
+
};
|
|
372
|
+
/**
|
|
373
|
+
* PWA / service-worker overrides contributed by a package or the project.
|
|
374
|
+
* Layered on top of Connect's hardcoded PWA defaults at build time. Scalar
|
|
375
|
+
* fields deep-merge (later layer wins); every array member — the manifest
|
|
376
|
+
* arrays (`icons`, `file_handlers`, and the derived `categories`) plus the
|
|
377
|
+
* top-level `globPatterns`, `globIgnores`, `runtimeCaching` and
|
|
378
|
+
* `navigateFallbackDenylist` — is additive (concatenated/unioned);
|
|
379
|
+
* `maximumFileSizeToCacheInBytes` takes the max across contributors.
|
|
380
|
+
* Precedence: defaults < package fragments < project config.
|
|
381
|
+
*/
|
|
382
|
+
type PHConnectPwa = {
|
|
383
|
+
manifest?: PHConnectPwaManifest;
|
|
384
|
+
/** Extra Workbox precache globs, unioned with the built-in patterns. */
|
|
385
|
+
globPatterns?: string[];
|
|
386
|
+
/** Extra Workbox precache ignore globs, unioned with the built-in list. */
|
|
387
|
+
globIgnores?: string[];
|
|
388
|
+
/** Raise the precache file-size ceiling; the max across contributors wins. */
|
|
389
|
+
maximumFileSizeToCacheInBytes?: number;
|
|
390
|
+
/** Additional runtime-caching rules, appended after the built-in rules. */
|
|
391
|
+
runtimeCaching?: PHConnectPwaRuntimeCaching[];
|
|
392
|
+
/** Extra SPA-fallback denylist patterns, unioned with the built-in list. */
|
|
393
|
+
navigateFallbackDenylist?: PHConnectPwaUrlPattern[];
|
|
394
|
+
};
|
|
395
|
+
type PHConnectRuntimeConfig = {
|
|
396
|
+
branding?: PHConnectBranding;
|
|
397
|
+
app?: PHConnectApp;
|
|
398
|
+
ai?: PHConnectAi;
|
|
399
|
+
packages?: PHConnectPackages;
|
|
400
|
+
drives?: PHConnectDrives;
|
|
401
|
+
renown?: PHConnectRenown;
|
|
402
|
+
sentry?: PHConnectSentry;
|
|
403
|
+
instance?: PHConnectInstance;
|
|
404
|
+
reactor?: PHConnectReactor;
|
|
405
|
+
pwa?: PHConnectPwa;
|
|
406
|
+
};
|
|
407
|
+
/** Which Renown instance a reactor authenticates against, server-side. */
|
|
408
|
+
type PHReactorRenown = {
|
|
409
|
+
/** "self" reads this reactor's own renown read model; "remote" (default)
|
|
410
|
+
* queries a Renown or Switchboard instance. */
|
|
411
|
+
source?: "remote" | "self";
|
|
412
|
+
/** Renown base URL; also the instance this reactor's own identity uses. */
|
|
413
|
+
url?: string;
|
|
414
|
+
/** Switchboard GraphQL endpoint to read credentials from directly. */
|
|
415
|
+
switchboardUrl?: string;
|
|
416
|
+
};
|
|
417
|
+
type PowerhouseConfig = {
|
|
418
|
+
logLevel: LogLevel;
|
|
419
|
+
documentModelsDir: string;
|
|
420
|
+
editorsDir: string;
|
|
421
|
+
processorsDir: string;
|
|
422
|
+
subgraphsDir: string;
|
|
423
|
+
importScriptsDir: string;
|
|
424
|
+
skipFormat: boolean;
|
|
425
|
+
interactive?: boolean;
|
|
426
|
+
watch?: boolean;
|
|
427
|
+
reactor?: {
|
|
428
|
+
port?: number;
|
|
429
|
+
https?: undefined | boolean | {
|
|
430
|
+
keyPath: string;
|
|
431
|
+
certPath: string;
|
|
432
|
+
};
|
|
433
|
+
storage?: {
|
|
434
|
+
type: "filesystem" | "memory" | "postgres" | "browser";
|
|
435
|
+
filesystemPath?: string;
|
|
436
|
+
postgresUrl?: string;
|
|
437
|
+
};
|
|
438
|
+
};
|
|
439
|
+
auth?: {
|
|
440
|
+
enabled?: boolean;
|
|
441
|
+
admins: string[];
|
|
442
|
+
renown?: PHReactorRenown;
|
|
443
|
+
};
|
|
444
|
+
switchboard?: {
|
|
445
|
+
database?: {
|
|
446
|
+
url?: string;
|
|
447
|
+
};
|
|
448
|
+
port?: number;
|
|
449
|
+
};
|
|
450
|
+
studio?: {
|
|
451
|
+
port?: number;
|
|
452
|
+
host?: string;
|
|
453
|
+
https: boolean;
|
|
454
|
+
openBrowser?: boolean;
|
|
455
|
+
};
|
|
456
|
+
packages?: PowerhousePackage[];
|
|
457
|
+
vetra?: {
|
|
458
|
+
driveId?: string;
|
|
459
|
+
driveUrl?: string;
|
|
460
|
+
connectPort?: number;
|
|
461
|
+
};
|
|
462
|
+
workflows?: {
|
|
463
|
+
enabled?: boolean;
|
|
464
|
+
};
|
|
465
|
+
packageRegistryUrl?: string;
|
|
466
|
+
connect?: PHConnectRuntimeConfig;
|
|
467
|
+
};
|
|
468
|
+
//#endregion
|
|
469
|
+
//#region document-model/schemas.d.ts
|
|
470
|
+
declare const ManifestSchema: z.ZodObject<{
|
|
471
|
+
name: z.ZodString;
|
|
472
|
+
description: z.ZodOptional<z.ZodString>;
|
|
473
|
+
category: z.ZodOptional<z.ZodString>;
|
|
474
|
+
image: z.ZodOptional<z.ZodString>;
|
|
475
|
+
publisher: z.ZodOptional<z.ZodObject<{
|
|
476
|
+
name: z.ZodOptional<z.ZodString>;
|
|
477
|
+
url: z.ZodOptional<z.ZodString>;
|
|
478
|
+
}, z.core.$strip>>;
|
|
479
|
+
documentModels: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
480
|
+
id: z.ZodString;
|
|
481
|
+
name: z.ZodString;
|
|
482
|
+
documentTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
483
|
+
}, z.core.$strip>>>;
|
|
484
|
+
apps: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
485
|
+
id: z.ZodString;
|
|
486
|
+
name: z.ZodString;
|
|
487
|
+
documentTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
488
|
+
}, z.core.$strip>>>;
|
|
489
|
+
editors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
490
|
+
id: z.ZodString;
|
|
491
|
+
name: z.ZodString;
|
|
492
|
+
documentTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
493
|
+
}, z.core.$strip>>>;
|
|
494
|
+
processors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
495
|
+
id: z.ZodString;
|
|
496
|
+
name: z.ZodString;
|
|
497
|
+
documentTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
498
|
+
}, z.core.$strip>>>;
|
|
499
|
+
subgraphs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
500
|
+
id: z.ZodString;
|
|
501
|
+
name: z.ZodString;
|
|
502
|
+
documentTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
503
|
+
}, z.core.$strip>>>;
|
|
504
|
+
pieces: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
505
|
+
id: z.ZodString;
|
|
506
|
+
name: z.ZodString;
|
|
507
|
+
documentTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
508
|
+
version: z.ZodOptional<z.ZodString>;
|
|
509
|
+
description: z.ZodOptional<z.ZodString>;
|
|
510
|
+
bundle: z.ZodOptional<z.ZodString>;
|
|
511
|
+
descriptor: z.ZodOptional<z.ZodString>;
|
|
512
|
+
}, z.core.$strip>>>;
|
|
513
|
+
config: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
514
|
+
name: z.ZodString;
|
|
515
|
+
type: z.ZodUnion<readonly [z.ZodLiteral<"var">, z.ZodLiteral<"secret">]>;
|
|
516
|
+
description: z.ZodOptional<z.ZodString>;
|
|
517
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
518
|
+
default: z.ZodOptional<z.ZodString>;
|
|
519
|
+
}, z.core.$strip>>>;
|
|
520
|
+
pwa: z.ZodOptional<z.ZodType<PHConnectPwa, unknown, z.core.$ZodTypeInternals<PHConnectPwa, unknown>>>;
|
|
521
|
+
}, z.core.$strip>;
|
|
522
|
+
//#endregion
|
|
523
|
+
//#region document-model/types.d.ts
|
|
524
|
+
type Manifest = z.infer<typeof ManifestSchema>;
|
|
525
|
+
//#endregion
|
|
526
|
+
export { PIECES_FRAMEWORK_PACKAGE as A, VERSIONED_DEPENDENCIES as B, LEGACY_LINT_FORMAT_FILES as C, PH_BIN as D, PEER_EXTERNAL_DEPENDENCIES as E, PROJECT_PORT_BAND_SWITCHBOARD as F, externalDevDependencies as G, VERSIONED_PEER_DEPENDENCIES as H, PROJECT_PORT_BAND_VETRA_CONNECT as I, packageJsonExports as K, REACTOR_API_PACKAGE as L, POWERHOUSE_GLOBAL_DIR as M, PROJECT_PORT_BAND_SIZE as N, PH_GLOBAL_DIR_NAME as O, PROJECT_PORT_BAND_STUDIO as P, SECONDS_IN_DAY as R, LEGACY_LINT_FORMAT_DEPENDENCIES as S, MINIMUM_NODE_VERSION as T, defaultManifest as U, VERSIONED_DEV_DEPENDENCIES as V, externalDependencies as W, DRIVES_PRESERVE_STRATEGIES as _, DEFAULT_CONFIG as a, GRAPHQL_TAG_PACKAGE as b, DEFAULT_CONNECT_STUDIO_PORT as c, DEFAULT_REGISTRY_URL as d, DEFAULT_RENOWN_URL as f, DEFAULT_VETRA_DRIVE_ID as g, DEFAULT_VETRA_CONNECT_PORT as h, BOILERPLATE_DEPENDENCY_OVERRIDES as i, POWERHOUSE_CONFIG_FILE as j, PH_GLOBAL_PROJECT_NAME as k, DEFAULT_EXPIRY_DAYS as l, DEFAULT_TIMEOUT as m, ANALYTICS_ENGINE_CORE_PACKAGE as n, DEFAULT_CONNECT_OUTDIR as o, DEFAULT_SWITCHBOARD_PORT as p, packageScripts as q, BOILERPLATE_ALLOWED_BUILDS as r, DEFAULT_CONNECT_PREVIEW_PORT as s, Manifest as t, DEFAULT_EXPIRY_SECONDS as u, FEATURE_DEPENDENCIES as v, LOG_LEVELS as w, HOME_DIR as x, GRAPHQL_PACKAGE as y, SERVICE_ACTIONS as z };
|
|
527
|
+
export {};
|
|
528
|
+
//# sourceMappingURL=types-CMFHKrgv.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-CMFHKrgv.d.mts","names":[],"sources":["../../clis/constants.ts","../../clis/types.ts","../../document-model/schemas.ts","../../document-model/types.ts"],"mappings":";;;;;;;cAKa;cAQA;cACA;cACA;cAEA;cAKA;cAQA;cAEA;cAEA;cAEA;cAEA;cAEA;cAEA;cAEA;cAqBA;cACA;cACA;cACA;cAEA;cAEA;cACA;cACA;cACA;cAEA;cAEA;cAEA;cAGA;cAOA;cACA;cAEA;cACA;cACA;cAQA;;aACU;aAAa;;;aACT;aAAY;;;aAC5B;aAAa;;;aACP;aAAa;;;aACrB;aAAY;;;cAKR;;aAET;aACA;aACA;;;aAKA;aACA;aACA;;;cAWS;cAUA;cAiBA;WACC;WACN;WACI;;cAGC;cAQA;WACX;aACE;aACA;aACA;;WAEF;aACE;aACA;;WAEF;aACE;aACA;aACA;;WAEF;aACE;aACA;aACA;;WAEF;aACE;aACA;aACA;;WAEF;aACE;aACA;aACA;;WAEF;aACE;aACA;aACA;;WAEF;aACE;aACA;aACA;;WAKF;aACE;aACA;;WAEF;aACE;aACA;;WAEF;WACA;;cAGW;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WAEA;;cAIW;cAIA;cAcA;cAwBA;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;cAGW,iBAAiB;cAuBjB,gBAAgB;;;KCxUjB,iCAAiC;KACjC,wBAAwB;KACxB,mBAAmB;KACnB,WAAW;KAOX;KAGA;EACV;EACA;EACA,WAAW;EACX;;KAGU;EACV;EACA;;KAGU;EACV;EACA;EACA;;KAGU;;EAEV;;EAEA;EACA;EACA;;EAEA;;KAGU,wBACR,8BACA;KAEQ;EACV;EACA;EACA;;KAGU;EACV,SAAS;EACT,QAAQ;;KAGE;EACV;EACA,gBAAgB;EAChB,mBAAmB;EACnB,WAAW;;KAGD;EACV;EACA;EACA;EAGA;EAKA;;KAGU;;EAEV;;KAGU;EACV;;EAEA;;KAGU;;EAEV;;EAEA;;KAGU;;EAEV;;EAEA;;EAEA;;KAGU;EACV,UAAU;EACV,QAAQ;;KAGE;EACV;EACA;EACA;;EAEA;;EAEA;;EAEA,WAAW;;KAGD;;EAEV;;EAEA;;EAEA;;KAGU;EACV;EACA;;;;KAKU;;EAEV;;EAEA;;EAEA;;EAEA;;KAGU;EACV,eAAe;;EAEf;;;;;;;;;;KAWU;EAEN;EAAgB;;KAEV;;KAQA;EACV,YAAY;EACZ,SAAS;EACT;EACA;IACE;;;IAGA;IACA;MAAe;MAAqB;;IACpC;MACE;MACA,UAAU;;;;KAKJ;EACV;EACA;EACA;EACA;;;;;;;;;KAUU;;EAEV,QAAQ;;EAER,QAAQ;EACR;;;KAIU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;;EAER,gBAAgB;;EAEhB;IACE;;;;;EASF;;;;;;;;;;;;KAaU;EACV,WAAW;;EAEX;;EAEA;;EAEA;;EAEA,iBAAiB;;EAEjB,2BAA2B;;KAGjB;EACV,WAAW;EACX,MAAM;EACN,KAAK;EACL,WAAW;EACX,SAAS;EACT,SAAS;EACT,SAAS;EACT,WAAW;EACX,UAAU;EACV,MAAM;;;KAII;;;EAGV;;EAEA;;EAEA;;KAGU;EAEV,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;IACE;IACA;MAIM;MACA;;IAEN;MACE;MACA;MACA;;;EAGJ;IACE;IACA;IACA,SAAS;;EAEX;IACE;MACE;;IAEF;;EAEF;IACE;IACA;IACA;IACA;;EAEF,WAAW;EACX;IACE;IACA;IACA;;EAIF;IACE;;EAEF;EACA,UAAU;;;;cC2fC,gBAAc,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiBzB,EAAA,KAAA;;;KC+zBU,WAAW,EAAE,aAAa"}
|
package/dist/clis/utils.d.mts
CHANGED
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
* `strict-dep-builds=true` default doesn't prompt for approval during the
|
|
6
6
|
* outer dlx download. No-op for other package managers or non-dlx commands.
|
|
7
7
|
*/
|
|
8
|
-
declare function injectPnpmAllowBuilds(pm: string, resolved: {
|
|
8
|
+
export declare function injectPnpmAllowBuilds(pm: string, resolved: {
|
|
9
9
|
command: string;
|
|
10
10
|
args: string[];
|
|
11
11
|
}): void;
|
|
12
|
-
declare class NodeVersionError extends Error {
|
|
12
|
+
export declare class NodeVersionError extends Error {
|
|
13
13
|
constructor(currentVersion: string, minimumVersion: string);
|
|
14
14
|
static isError(error: unknown): error is NodeVersionError;
|
|
15
15
|
}
|
|
16
|
-
declare function assertNodeVersion(nodeVersion?: string): void;
|
|
16
|
+
export declare function assertNodeVersion(nodeVersion?: string): void;
|
|
17
17
|
//#endregion
|
|
18
|
-
export {
|
|
18
|
+
export {};
|
|
19
19
|
//# sourceMappingURL=utils.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.mts","names":[],"sources":["../../clis/utils.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.mts","names":[],"sources":["../../clis/utils.ts"],"mappings":";;;;;;;wBAagB,sBACd,YACA;EAAY;EAAiB;;qBAOlB,yBAAyB;EACpC,YAAY,wBAAwB;SAO7B,QAAQ,iBAAiB,SAAS;;wBAK3B,kBAAkB"}
|
package/dist/clis/utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":[],"sources":["../../clis/utils.ts"],"sourcesContent":["// Sub-path: this module loads on the cold path of every CLI invocation.\nimport lt from \"semver/functions/lt.js\";\nimport {\n BOILERPLATE_ALLOWED_BUILDS,\n MINIMUM_NODE_VERSION,\n} from \"./constants.js\";\n\n/**\n * Mutates a resolved `pnpm dlx ...` command to add one `--allow-build=<pkg>`\n * flag per package in {@link BOILERPLATE_ALLOWED_BUILDS}, so pnpm 11's\n * `strict-dep-builds=true` default doesn't prompt for approval during the\n * outer dlx download. No-op for other package managers or non-dlx commands.\n */\nexport function injectPnpmAllowBuilds(\n pm: string,\n resolved: { command: string; args: string[] },\n): void {\n if (pm !== \"pnpm\" || resolved.args[0] !== \"dlx\") return;\n const flags = BOILERPLATE_ALLOWED_BUILDS.map((pkg) => `--allow-build=${pkg}`);\n resolved.args = [resolved.args[0], ...flags, ...resolved.args.slice(1)];\n}\n\nexport class NodeVersionError extends Error {\n constructor(currentVersion: string, minimumVersion: string) {\n super(\n `Node version ${minimumVersion} or higher is required. Current version: ${currentVersion}`,\n );\n this.name = \"NodeVersionError\";\n }\n\n static isError(error: unknown): error is NodeVersionError {\n return error instanceof Error && error.name === \"NodeVersionError\";\n }\n}\n\nexport function assertNodeVersion(nodeVersion = process.versions.node) {\n if (!nodeVersion) return;\n\n if (lt(nodeVersion, MINIMUM_NODE_VERSION)) {\n throw new NodeVersionError(nodeVersion, MINIMUM_NODE_VERSION);\n }\n}\n"],"mappings":";;;;;;;;;AAaA,SAAgB,sBACd,IACA,UACM;
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":[],"sources":["../../clis/utils.ts"],"sourcesContent":["// Sub-path: this module loads on the cold path of every CLI invocation.\nimport lt from \"semver/functions/lt.js\";\nimport {\n BOILERPLATE_ALLOWED_BUILDS,\n MINIMUM_NODE_VERSION,\n} from \"./constants.js\";\n\n/**\n * Mutates a resolved `pnpm dlx ...` command to add one `--allow-build=<pkg>`\n * flag per package in {@link BOILERPLATE_ALLOWED_BUILDS}, so pnpm 11's\n * `strict-dep-builds=true` default doesn't prompt for approval during the\n * outer dlx download. No-op for other package managers or non-dlx commands.\n */\nexport function injectPnpmAllowBuilds(\n pm: string,\n resolved: { command: string; args: string[] },\n): void {\n if (pm !== \"pnpm\" || resolved.args[0] !== \"dlx\") return;\n const flags = BOILERPLATE_ALLOWED_BUILDS.map((pkg) => `--allow-build=${pkg}`);\n resolved.args = [resolved.args[0], ...flags, ...resolved.args.slice(1)];\n}\n\nexport class NodeVersionError extends Error {\n constructor(currentVersion: string, minimumVersion: string) {\n super(\n `Node version ${minimumVersion} or higher is required. Current version: ${currentVersion}`,\n );\n this.name = \"NodeVersionError\";\n }\n\n static isError(error: unknown): error is NodeVersionError {\n return error instanceof Error && error.name === \"NodeVersionError\";\n }\n}\n\nexport function assertNodeVersion(nodeVersion = process.versions.node) {\n if (!nodeVersion) return;\n\n if (lt(nodeVersion, MINIMUM_NODE_VERSION)) {\n throw new NodeVersionError(nodeVersion, MINIMUM_NODE_VERSION);\n }\n}\n"],"mappings":";;;;;;;;;AAaA,SAAgB,sBACd,IACA,UACM;CACN,IAAI,OAAO,UAAU,SAAS,KAAK,OAAO,OAAO;CACjD,MAAM,QAAQ,2BAA2B,KAAK,QAAQ,iBAAiB,KAAK;CAC5E,SAAS,OAAO;EAAC,SAAS,KAAK;EAAI,GAAG;EAAO,GAAG,SAAS,KAAK,MAAM,CAAC;CAAC;AACxE;AAEA,IAAa,mBAAb,cAAsC,MAAM;CAC1C,YAAY,gBAAwB,gBAAwB;EAC1D,MACE,gBAAgB,eAAe,2CAA2C,gBAC5E;EACA,KAAK,OAAO;CACd;CAEA,OAAO,QAAQ,OAA2C;EACxD,OAAO,iBAAiB,SAAS,MAAM,SAAS;CAClD;AACF;AAEA,SAAgB,kBAAkB,cAAc,QAAQ,SAAS,MAAM;CACrE,IAAI,CAAC,aAAa;CAElB,IAAI,GAAG,aAAA,QAAiC,GACtC,MAAM,IAAI,iBAAiB,aAAa,oBAAoB;AAEhE"}
|
|
@@ -48,12 +48,15 @@ const DEFAULT_CONNECT_CONFIG = {
|
|
|
48
48
|
namespace: null,
|
|
49
49
|
reactorWorker: false
|
|
50
50
|
},
|
|
51
|
-
reactor: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
reactor: {
|
|
52
|
+
featureFlags: {
|
|
53
|
+
documentDecisions: false,
|
|
54
|
+
authEnforcement: false,
|
|
55
|
+
authGroups: false,
|
|
56
|
+
authConditions: false
|
|
57
|
+
},
|
|
58
|
+
createSignaturePolicy: "v2-required"
|
|
59
|
+
}
|
|
57
60
|
};
|
|
58
61
|
function buildRuntimeConfig(source, projectInfo) {
|
|
59
62
|
const result = {
|
|
@@ -87,6 +90,15 @@ function deepMerge(base, patch) {
|
|
|
87
90
|
return result;
|
|
88
91
|
}
|
|
89
92
|
/**
|
|
93
|
+
* The effective `connect.*` block of a source `powerhouse.config.json`:
|
|
94
|
+
* defaults < project-wide settings Connect follows < `connect.*`. So
|
|
95
|
+
* `connect.app.workflowsEnabled` falls back to `workflows.enabled`, and
|
|
96
|
+
* wins when set.
|
|
97
|
+
*/
|
|
98
|
+
function resolveSourceConnect(source, defaults = DEFAULT_CONNECT_CONFIG) {
|
|
99
|
+
return deepMerge(deepMerge(defaults, { app: { workflowsEnabled: source.workflows?.enabled } }), source.connect ?? {});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
90
102
|
* Pluggable loader on top of a `ConfigAdapter`.
|
|
91
103
|
*
|
|
92
104
|
* Responsibilities:
|
|
@@ -99,6 +111,8 @@ function deepMerge(base, patch) {
|
|
|
99
111
|
* CLI typically constructs a fresh loader per command.
|
|
100
112
|
*/
|
|
101
113
|
var ConfigLoader = class {
|
|
114
|
+
adapter;
|
|
115
|
+
defaults;
|
|
102
116
|
cache;
|
|
103
117
|
constructor(adapter, defaults = DEFAULT_CONNECT_CONFIG) {
|
|
104
118
|
this.adapter = adapter;
|
|
@@ -142,6 +156,6 @@ var ConfigLoader = class {
|
|
|
142
156
|
}
|
|
143
157
|
};
|
|
144
158
|
//#endregion
|
|
145
|
-
export { buildRuntimeConfig as i, deepMerge as n,
|
|
159
|
+
export { buildRuntimeConfig as a, DEFAULT_CONNECT_CONFIG as i, deepMerge as n, resolveSourceConnect as r, ConfigLoader as t };
|
|
146
160
|
|
|
147
|
-
//# sourceMappingURL=config-loader-
|
|
161
|
+
//# sourceMappingURL=config-loader-CWQxMERh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader-CWQxMERh.js","names":[],"sources":["../connect/runtime-config.ts","../connect/config-loader.ts"],"sourcesContent":["import type {\n PHConnectRuntimeConfig,\n PowerhouseConfig,\n PowerhousePackage,\n} from \"../clis/types.js\";\n\nexport type RuntimePowerhouseConfig = {\n schemaVersion: 2;\n packages: PowerhousePackage[];\n packageRegistryUrl?: string;\n localPackage: { name: string; version: string } | null;\n connect: PHConnectRuntimeConfig;\n};\n\n/** Defaults for every field Connect reads at runtime, merged into the\n * `connect.*` block at boot; also the dist emitter's and the scaffold's base. */\nexport const DEFAULT_CONNECT_CONFIG: PHConnectRuntimeConfig = {\n branding: {\n appName: \"Powerhouse Connect\",\n homeBackground: null,\n },\n app: {\n logLevel: \"info\",\n basePath: \"/\",\n offline: true,\n studioMode: false,\n },\n ai: {\n assistantEnabled: false,\n },\n packages: {\n externalEnabled: true,\n liveReload: false,\n },\n drives: {\n allowAddDrive: true,\n defaultDrives: [],\n sections: {\n remote: { enabled: true, allowAdd: true, allowDelete: true },\n local: { enabled: true, allowAdd: true, allowDelete: true },\n },\n },\n renown: {\n url: \"https://www.renown.id\",\n networkId: \"eip155\",\n chainId: 1,\n },\n sentry: {\n // `dsn: null` is the disabled-Sentry state — the SPA never loads the\n // Sentry SDK chunk. Override via `ph connect config --sentry-dsn ...`\n // or by including `connect.sentry.dsn` in PH_CONNECT_CONFIG_JSON.\n dsn: null,\n env: \"dev\",\n tracing: false,\n },\n instance: {\n namespace: null,\n reactorWorker: false,\n },\n reactor: {\n featureFlags: {\n documentDecisions: false,\n authEnforcement: false,\n authGroups: false,\n authConditions: false,\n },\n createSignaturePolicy: \"v2-required\",\n },\n};\n\nexport function buildRuntimeConfig(\n source: Pick<PowerhouseConfig, \"packages\" | \"connect\" | \"packageRegistryUrl\">,\n projectInfo: { name: string; version: string } | null,\n): RuntimePowerhouseConfig {\n const result: RuntimePowerhouseConfig = {\n schemaVersion: 2,\n packages: source.packages ?? [],\n localPackage: projectInfo,\n connect: source.connect ?? {},\n };\n if (\n typeof source.packageRegistryUrl === \"string\" &&\n source.packageRegistryUrl !== \"\"\n ) {\n result.packageRegistryUrl = source.packageRegistryUrl;\n }\n return result;\n}\n","// Environment-neutral config loader. Wraps a `ConfigAdapter` (the IO layer)\n// with in-process caching and deep-merge-with-defaults reads.\n//\n// No validation. The loader trusts that whatever bytes the adapter returns\n// can be merged into the default Connect config; missing or partial fields\n// fall back to DEFAULT_CONNECT_CONFIG, so the SPA always sees a complete\n// `connect.*` block.\n//\n// Top-level fields outside `connect.*` (e.g. `studio.port` in the source\n// powerhouse.config.json) pass through untouched on both read and write.\n// They're not Connect's concern, but a write-back round-trip preserves\n// them so editing tools don't accidentally drop them.\n\nimport { isPlainObject } from \"remeda\";\nimport type {\n PHConnectRuntimeConfig,\n PowerhouseConfig,\n} from \"../clis/types.js\";\nimport { DEFAULT_CONNECT_CONFIG } from \"./runtime-config.js\";\n\n/** Recursive Partial. Arrays are leaves — `write({ packages: [...] })`\n * replaces the array, it doesn't merge. */\nexport type DeepPartial<T> =\n T extends Array<infer U>\n ? Array<U>\n : T extends object\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : T;\n\n/**\n * Shape returned by `ConfigLoader.read()`. The loader is Connect-scoped:\n * it guarantees `connect` is present and fully populated from\n * DEFAULT_CONNECT_CONFIG, but lets any other top-level fields pass\n * through unchanged so source-config-only fields (studio, reactor, auth,\n * documentModelsDir, etc.) survive a read+write round-trip.\n */\nexport type ConfigShape = Record<string, unknown> & {\n connect: PHConnectRuntimeConfig;\n};\n\n/**\n * Abstract IO layer for `powerhouse.config.json`.\n *\n * Implementations decide where bytes come from and go to. The shipped\n * adapter is `JsonConfigAdapter` (reads via fetch in the browser, fs in\n * Node; writes via fs in Node, throws in the browser). Future adapters\n * (remote-JSON, GraphQL) plug in without changing the loader or any\n * consumer.\n */\nexport interface ConfigAdapter {\n /** Read raw JSON-parsed payload from the backing store. */\n read(): Promise<unknown>;\n /** Persist a fully-formed config. */\n write(next: ConfigShape): Promise<void>;\n /** Human-readable description used in errors and logs. */\n readonly source: string;\n}\n\n/**\n * Deep-merge `patch` into `base`. Object fields recurse; arrays and\n * primitives replace. `undefined` in patch leaves the base value\n * untouched (no unset). `null` in patch overwrites with null.\n *\n * Exported for unit tests; consumers use ConfigLoader.write() which\n * applies this internally.\n */\nexport function deepMerge<T>(base: T, patch: DeepPartial<T>): T {\n if (!isPlainObject(base) || !isPlainObject(patch)) {\n return patch as T;\n }\n const result: Record<string, unknown> = { ...base };\n for (const [key, patchValue] of Object.entries(patch)) {\n if (patchValue === undefined) continue;\n const baseValue = result[key];\n if (isPlainObject(baseValue) && isPlainObject(patchValue)) {\n result[key] = deepMerge(\n baseValue,\n patchValue as DeepPartial<typeof baseValue>,\n );\n } else {\n result[key] = patchValue;\n }\n }\n return result as T;\n}\n\n/**\n * The effective `connect.*` block of a source `powerhouse.config.json`:\n * defaults < project-wide settings Connect follows < `connect.*`. So\n * `connect.app.workflowsEnabled` falls back to `workflows.enabled`, and\n * wins when set.\n */\nexport function resolveSourceConnect(\n source: Pick<PowerhouseConfig, \"connect\" | \"workflows\">,\n defaults: PHConnectRuntimeConfig = DEFAULT_CONNECT_CONFIG,\n): PHConnectRuntimeConfig {\n const projectWide = deepMerge(defaults, {\n app: { workflowsEnabled: source.workflows?.enabled },\n });\n return deepMerge(projectWide, source.connect ?? {});\n}\n\n/**\n * Pluggable loader on top of a `ConfigAdapter`.\n *\n * Responsibilities:\n * - merge-with-defaults on read (so consumers never see a partial connect block)\n * - in-process caching (call `invalidate()` to force re-read)\n * - deep-merge for partial writes; writes the merged whole back through the adapter\n *\n * The cache is module-instance scoped — every `new ConfigLoader(...)` has\n * its own cache. The browser SPA constructs the loader once at boot; the\n * CLI typically constructs a fresh loader per command.\n */\nexport class ConfigLoader {\n private cache: ConfigShape | undefined;\n\n constructor(\n private readonly adapter: ConfigAdapter,\n private readonly defaults: PHConnectRuntimeConfig = DEFAULT_CONNECT_CONFIG,\n ) {}\n\n /** Returns the config with the default connect block merged in.\n * Cached after the first successful call. */\n async read(): Promise<ConfigShape> {\n if (this.cache) return this.cache;\n const raw = await this.adapter.read();\n const obj = isPlainObject(raw) ? raw : {};\n const connectRaw = isPlainObject(obj.connect) ? obj.connect : {};\n this.cache = {\n ...obj,\n connect: deepMerge(\n this.defaults,\n connectRaw as DeepPartial<PHConnectRuntimeConfig>,\n ),\n };\n return this.cache;\n }\n\n /**\n * Returns the cached config synchronously. Throws if `read()` has not\n * resolved yet — matches Connect's `getRuntimeConfig()` shape.\n */\n getCached(): ConfigShape {\n if (!this.cache) {\n throw new Error(\n `ConfigLoader (${this.adapter.source}): cache empty; call read() first.`,\n );\n }\n return this.cache;\n }\n\n /** Drop the in-memory cache. Next `read()` re-fetches from the adapter. */\n invalidate(): void {\n this.cache = undefined;\n }\n\n /**\n * Deep-merge `patch` into the current config and persist via the adapter.\n * Returns the new full config (also updates the cache). Arrays in `patch`\n * replace — they do NOT append.\n */\n async write(patch: DeepPartial<ConfigShape>): Promise<ConfigShape> {\n const current = await this.read();\n const next = deepMerge(current, patch);\n await this.adapter.write(next);\n this.cache = next;\n return next;\n }\n}\n"],"mappings":";;;;AAgBA,MAAa,yBAAiD;CAC5D,UAAU;EACR,SAAS;EACT,gBAAgB;CAClB;CACA,KAAK;EACH,UAAU;EACV,UAAU;EACV,SAAS;EACT,YAAY;CACd;CACA,IAAI,EACF,kBAAkB,MACpB;CACA,UAAU;EACR,iBAAiB;EACjB,YAAY;CACd;CACA,QAAQ;EACN,eAAe;EACf,eAAe,CAAC;EAChB,UAAU;GACR,QAAQ;IAAE,SAAS;IAAM,UAAU;IAAM,aAAa;GAAK;GAC3D,OAAO;IAAE,SAAS;IAAM,UAAU;IAAM,aAAa;GAAK;EAC5D;CACF;CACA,QAAQ;EACN,KAAK;EACL,WAAW;EACX,SAAS;CACX;CACA,QAAQ;EAIN,KAAK;EACL,KAAK;EACL,SAAS;CACX;CACA,UAAU;EACR,WAAW;EACX,eAAe;CACjB;CACA,SAAS;EACP,cAAc;GACZ,mBAAmB;GACnB,iBAAiB;GACjB,YAAY;GACZ,gBAAgB;EAClB;EACA,uBAAuB;CACzB;AACF;AAEA,SAAgB,mBACd,QACA,aACyB;CACzB,MAAM,SAAkC;EACtC,eAAe;EACf,UAAU,OAAO,YAAY,CAAC;EAC9B,cAAc;EACd,SAAS,OAAO,WAAW,CAAC;CAC9B;CACA,IACE,OAAO,OAAO,uBAAuB,YACrC,OAAO,uBAAuB,IAE9B,OAAO,qBAAqB,OAAO;CAErC,OAAO;AACT;;;;;;;;;;;ACrBA,SAAgB,UAAa,MAAS,OAA0B;CAC9D,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,GAC9C,OAAO;CAET,MAAM,SAAkC,EAAE,GAAG,KAAK;CAClD,KAAK,MAAM,CAAC,KAAK,eAAe,OAAO,QAAQ,KAAK,GAAG;EACrD,IAAI,eAAe,KAAA,GAAW;EAC9B,MAAM,YAAY,OAAO;EACzB,IAAI,cAAc,SAAS,KAAK,cAAc,UAAU,GACtD,OAAO,OAAO,UACZ,WACA,UACF;OAEA,OAAO,OAAO;CAElB;CACA,OAAO;AACT;;;;;;;AAQA,SAAgB,qBACd,QACA,WAAmC,wBACX;CAIxB,OAAO,UAHa,UAAU,UAAU,EACtC,KAAK,EAAE,kBAAkB,OAAO,WAAW,QAAQ,EACrD,CAC2B,GAAG,OAAO,WAAW,CAAC,CAAC;AACpD;;;;;;;;;;;;;AAcA,IAAa,eAAb,MAA0B;CAIL;CACA;CAJnB;CAEA,YACE,SACA,WAAoD,wBACpD;EAFiB,KAAA,UAAA;EACA,KAAA,WAAA;CAChB;;;CAIH,MAAM,OAA6B;EACjC,IAAI,KAAK,OAAO,OAAO,KAAK;EAC5B,MAAM,MAAM,MAAM,KAAK,QAAQ,KAAK;EACpC,MAAM,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC;EACxC,MAAM,aAAa,cAAc,IAAI,OAAO,IAAI,IAAI,UAAU,CAAC;EAC/D,KAAK,QAAQ;GACX,GAAG;GACH,SAAS,UACP,KAAK,UACL,UACF;EACF;EACA,OAAO,KAAK;CACd;;;;;CAMA,YAAyB;EACvB,IAAI,CAAC,KAAK,OACR,MAAM,IAAI,MACR,iBAAiB,KAAK,QAAQ,OAAO,mCACvC;EAEF,OAAO,KAAK;CACd;;CAGA,aAAmB;EACjB,KAAK,QAAQ,KAAA;CACf;;;;;;CAOA,MAAM,MAAM,OAAuD;EAEjE,MAAM,OAAO,UAAU,MADD,KAAK,KAAK,GACA,KAAK;EACrC,MAAM,KAAK,QAAQ,MAAM,IAAI;EAC7B,KAAK,QAAQ;EACb,OAAO;CACT;AACF"}
|