@powerhousedao/shared 6.2.3-dev.5 → 6.2.3-dev.50
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/dist-CorQTQL-.mjs +1533 -0
- package/dist/clis/args/dist-CorQTQL-.mjs.map +1 -0
- 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/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-CHjY5epu.d.mts +27 -0
- package/dist/clis/args/service-CHjY5epu.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 +7366 -5728
- 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-CR5lvv_A.mjs +231 -0
- package/dist/clis/build-config-CR5lvv_A.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 +27 -10
- 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 +1385 -1224
- package/dist/clis/index.d.mts.map +1 -1
- package/dist/clis/index.mjs +259 -74
- 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-Cc_rB0Yx.d.mts +541 -0
- package/dist/clis/types-Cc_rB0Yx.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-CXhzL512.js} +33 -8
- package/dist/config-loader-CXhzL512.js.map +1 -0
- package/dist/connect/config-loader.d.ts +15 -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 +198 -57
- package/dist/connect/index.d.ts.map +1 -1
- package/dist/connect/index.js +313 -31
- 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-C2K-m7pp.d.ts +9 -0
- package/dist/constants-C2K-m7pp.d.ts.map +1 -0
- package/dist/constants.d.ts +3 -2
- package/dist/constants.js +10 -5
- package/dist/constants.js.map +1 -1
- package/dist/document-drive/index.d.ts +131 -105
- package/dist/document-drive/index.d.ts.map +1 -1
- package/dist/document-drive/index.js +116 -54
- package/dist/document-drive/index.js.map +1 -1
- package/dist/document-model/errors.d.ts +3 -0
- package/dist/document-model/errors.js +152 -0
- package/dist/document-model/errors.js.map +1 -0
- package/dist/document-model/index.d.ts +5 -4
- package/dist/document-model/index.js +295 -390
- 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/document-model/version.d.ts +3 -0
- package/dist/document-model/version.js +8 -0
- package/dist/document-model/version.js.map +1 -0
- package/dist/index-BhqNGLu9.d.ts +36 -0
- package/dist/index-BhqNGLu9.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 +63 -4
- package/dist/processors/index.js.map +1 -1
- package/dist/purge-v06m_oGz.js +381 -0
- package/dist/purge-v06m_oGz.js.map +1 -0
- package/dist/registry/index.d.ts +15 -15
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +24 -6
- 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-CpnWmiFY.d.ts → types-BRJfX8ck.d.ts} +2003 -821
- package/dist/types-BRJfX8ck.d.ts.map +1 -0
- package/dist/{types-YqLqb0Zb.d.ts → types-BTfv_ZzS.d.ts} +39 -43
- package/dist/types-BTfv_ZzS.d.ts.map +1 -0
- package/dist/{types-C1in4fl3.d.ts → types-Bsp8VL2y.d.ts} +2 -2
- package/dist/types-Bsp8VL2y.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-CSF716ux.js} +10 -3
- package/dist/utils-CSF716ux.js.map +1 -0
- package/dist/version-BxLITo9P.d.ts +6 -0
- package/dist/version-BxLITo9P.d.ts.map +1 -0
- package/package.json +11 -6
- 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-Y8yh4ax1.d.mts +0 -183
- package/dist/clis/args/common-Y8yh4ax1.d.mts.map +0 -1
- package/dist/clis/args/connect-BUwHSfdh.d.mts +0 -443
- package/dist/clis/args/connect-BUwHSfdh.d.mts.map +0 -1
- package/dist/clis/args/connect-BVVvCmL9.mjs.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 +0 -1013
- 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-DUhIB7Zk.d.mts +0 -113
- package/dist/clis/args/vetra-DUhIB7Zk.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 +0 -8
- 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 +0 -836
- 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
- package/dist/utils-aaTmfxFW.js.map +0 -1
package/dist/connect/index.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
|
-
import { i as
|
|
1
|
+
import { a as DEFAULT_CONNECT_CONFIG, i as workflowsSettingConflict, n as deepMerge, o as buildRuntimeConfig, r as resolveSourceConnect, t as ConfigLoader } from "../config-loader-CXhzL512.js";
|
|
2
2
|
import { JsonConfigAdapter } from "./json-adapter.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
+
import { satisfies, validRange } from "semver";
|
|
5
|
+
//#region connect/dynamic-base.ts
|
|
6
|
+
/**
|
|
7
|
+
* The base a dynamic-base Connect build is compiled against. The build emits
|
|
8
|
+
* this literal wherever a base-relative URL would go, and the serving layer
|
|
9
|
+
* (the dynamic-base vite plugin at build time, the connect proxy at serve
|
|
10
|
+
* time) rewrites it to the base the app is actually deployed under.
|
|
11
|
+
*
|
|
12
|
+
* It lives here, in the browser-safe shared package, rather than in
|
|
13
|
+
* `@powerhousedao/builder-tools`, because both the node-only build toolchain
|
|
14
|
+
* and Connect's own browser code need it. Importing builder-tools from app
|
|
15
|
+
* code pulls the whole build toolchain (and its node-only `read-pkg`
|
|
16
|
+
* dependency) into the browser graph.
|
|
17
|
+
*/
|
|
18
|
+
const DYNAMIC_BASE_PLACEHOLDER = "/__PH_DYNAMIC_BASE__/";
|
|
19
|
+
//#endregion
|
|
4
20
|
//#region connect/env-config.ts
|
|
5
21
|
/**
|
|
6
22
|
* Coerces string values to boolean.
|
|
@@ -14,10 +30,26 @@ const booleanString = z.union([z.boolean(), z.enum(["true", "false"])]).transfor
|
|
|
14
30
|
* Build-time configuration schema
|
|
15
31
|
*/
|
|
16
32
|
const buildEnvSchema = z.object({
|
|
33
|
+
/**
|
|
34
|
+
* Comma-separated list of package names to load
|
|
35
|
+
* @example "package1,package2"
|
|
36
|
+
*/
|
|
17
37
|
PH_PACKAGES: z.string().optional(),
|
|
38
|
+
/**
|
|
39
|
+
* Path to local package to load during development
|
|
40
|
+
*/
|
|
18
41
|
PH_LOCAL_PACKAGE: z.string().optional(),
|
|
42
|
+
/**
|
|
43
|
+
* Sentry authentication token for uploading source maps
|
|
44
|
+
*/
|
|
19
45
|
PH_SENTRY_AUTH_TOKEN: z.string().optional(),
|
|
46
|
+
/**
|
|
47
|
+
* Sentry organization slug
|
|
48
|
+
*/
|
|
20
49
|
PH_SENTRY_ORG: z.string().optional(),
|
|
50
|
+
/**
|
|
51
|
+
* Sentry project slug
|
|
52
|
+
*/
|
|
21
53
|
PH_SENTRY_PROJECT: z.string().optional()
|
|
22
54
|
});
|
|
23
55
|
/**
|
|
@@ -30,7 +62,14 @@ const buildEnvSchema = z.object({
|
|
|
30
62
|
* credentials, analytics processor toggles, etc.
|
|
31
63
|
*/
|
|
32
64
|
const appConfigSchema = z.object({
|
|
65
|
+
/**
|
|
66
|
+
* Application version number (build metadata stamp)
|
|
67
|
+
* @default "unknown"
|
|
68
|
+
*/
|
|
33
69
|
PH_CONNECT_VERSION: z.string().default("unknown"),
|
|
70
|
+
/**
|
|
71
|
+
* CLI version number (build metadata stamp)
|
|
72
|
+
*/
|
|
34
73
|
PH_CONNECT_CLI_VERSION: z.string().optional()
|
|
35
74
|
});
|
|
36
75
|
/**
|
|
@@ -39,17 +78,43 @@ const appConfigSchema = z.object({
|
|
|
39
78
|
* schema and stay env-driven.
|
|
40
79
|
*/
|
|
41
80
|
const processorsConfigSchema = z.object({
|
|
81
|
+
/**
|
|
82
|
+
* Enable diff analytics tracking
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
42
85
|
PH_CONNECT_DIFF_ANALYTICS_ENABLED: booleanString.default(false),
|
|
86
|
+
/**
|
|
87
|
+
* Enable drive analytics tracking
|
|
88
|
+
* @default true
|
|
89
|
+
*/
|
|
43
90
|
PH_CONNECT_DRIVE_ANALYTICS_ENABLED: booleanString.default(true),
|
|
91
|
+
/**
|
|
92
|
+
* Enable external analytics processors
|
|
93
|
+
* @default true
|
|
94
|
+
*/
|
|
44
95
|
PH_CONNECT_EXTERNAL_ANALYTICS_PROCESSORS_ENABLED: booleanString.default(true)
|
|
45
96
|
});
|
|
46
97
|
/**
|
|
47
98
|
* OpenPanel analytics configuration schema
|
|
48
99
|
*/
|
|
49
100
|
const openPanelConfigSchema = z.object({
|
|
101
|
+
/**
|
|
102
|
+
* OpenPanel client ID. When unset, the OpenPanel subsystem is a no-op.
|
|
103
|
+
*/
|
|
50
104
|
PH_CONNECT_OPENPANEL_CLIENT_ID: z.string().optional(),
|
|
105
|
+
/**
|
|
106
|
+
* OpenPanel API URL override. Defaults to the OpenPanel cloud when unset.
|
|
107
|
+
*/
|
|
51
108
|
PH_CONNECT_OPENPANEL_API_URL: z.string().optional(),
|
|
109
|
+
/**
|
|
110
|
+
* Track UI events via the useOpenPanel() hook
|
|
111
|
+
* @default true
|
|
112
|
+
*/
|
|
52
113
|
PH_CONNECT_OPENPANEL_TRACK_UI_EVENTS: booleanString.default(true),
|
|
114
|
+
/**
|
|
115
|
+
* Track document operations via the OpenPanel processor
|
|
116
|
+
* @default true
|
|
117
|
+
*/
|
|
53
118
|
PH_CONNECT_OPENPANEL_TRACK_OPERATIONS: booleanString.default(true)
|
|
54
119
|
});
|
|
55
120
|
/**
|
|
@@ -108,7 +173,7 @@ function mergeEnvSources(options, keys, schema) {
|
|
|
108
173
|
* @returns Validated and typed environment configuration
|
|
109
174
|
*/
|
|
110
175
|
function loadConnectEnv(options = {}) {
|
|
111
|
-
const merged = mergeEnvSources(options, new Set([...Object.keys(buildEnvSchema.shape), ...Object.keys(runtimeEnvSchema.shape)]), connectEnvSchema);
|
|
176
|
+
const merged = mergeEnvSources(options, /* @__PURE__ */ new Set([...Object.keys(buildEnvSchema.shape), ...Object.keys(runtimeEnvSchema.shape)]), connectEnvSchema);
|
|
112
177
|
return connectEnvSchema.parse(merged);
|
|
113
178
|
}
|
|
114
179
|
/**
|
|
@@ -207,7 +272,8 @@ const ROOT_STORAGE_NAMESPACE = "reactor";
|
|
|
207
272
|
function getStorageNamespace(basePath) {
|
|
208
273
|
const normalized = normalizeBasePath(basePath);
|
|
209
274
|
if (normalized === "/") return ROOT_STORAGE_NAMESPACE;
|
|
210
|
-
|
|
275
|
+
const slug = normalized.slice(1, -1).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
276
|
+
return `${ROOT_STORAGE_NAMESPACE}--${slug || "default"}`;
|
|
211
277
|
}
|
|
212
278
|
//#endregion
|
|
213
279
|
//#region connect/pwa-config.ts
|
|
@@ -222,7 +288,7 @@ const MANIFEST_SCALAR_KEYS = [
|
|
|
222
288
|
"scope",
|
|
223
289
|
"launch_handler"
|
|
224
290
|
];
|
|
225
|
-
const ADDITIVE_MANIFEST_KEYS = new Set([
|
|
291
|
+
const ADDITIVE_MANIFEST_KEYS = /* @__PURE__ */ new Set([
|
|
226
292
|
"icons",
|
|
227
293
|
"file_handlers",
|
|
228
294
|
"categories"
|
|
@@ -560,6 +626,10 @@ const phConnectRuntimeConfigSchema = {
|
|
|
560
626
|
type: "boolean",
|
|
561
627
|
description: "Studio mode. Enables builder-only capabilities: Connect loads the vetra package and exposes DocumentModel (and vetra spec types) as creatable documents. Forced on by `ph vetra` / `ph connect studio`; false by default.",
|
|
562
628
|
default: false
|
|
629
|
+
},
|
|
630
|
+
workflowsEnabled: {
|
|
631
|
+
type: "boolean",
|
|
632
|
+
description: "Powerhouse workflows in Connect. When true the tab loads the @powerhousedao/workflow package (workflow + connection documents, their editors and Workflow Studio) and the reactor worker registers its document models. Falls back to the top-level `workflows.enabled`; set it to override that for Connect. Independent of studioMode. False when neither is set."
|
|
563
633
|
}
|
|
564
634
|
}
|
|
565
635
|
},
|
|
@@ -745,6 +815,32 @@ const phConnectRuntimeConfigSchema = {
|
|
|
745
815
|
}
|
|
746
816
|
}
|
|
747
817
|
},
|
|
818
|
+
openPanel: {
|
|
819
|
+
type: "object",
|
|
820
|
+
additionalProperties: false,
|
|
821
|
+
description: "OpenPanel product analytics. Set `clientId` to enable; an empty `clientId` disables it. Events are only sent after the user accepts analytics cookies. Takes precedence over the build-time PH_CONNECT_OPENPANEL_* env vars.",
|
|
822
|
+
properties: {
|
|
823
|
+
clientId: {
|
|
824
|
+
type: "string",
|
|
825
|
+
description: "OpenPanel client id. Empty string disables OpenPanel entirely.",
|
|
826
|
+
default: ""
|
|
827
|
+
},
|
|
828
|
+
apiUrl: {
|
|
829
|
+
type: "string",
|
|
830
|
+
description: "OpenPanel API URL for self-hosted instances (e.g. 'https://openpanel.example/api'). Omit to use OpenPanel's hosted API."
|
|
831
|
+
},
|
|
832
|
+
trackUiEvents: {
|
|
833
|
+
type: "boolean",
|
|
834
|
+
description: "Track UI events.",
|
|
835
|
+
default: true
|
|
836
|
+
},
|
|
837
|
+
trackOperations: {
|
|
838
|
+
type: "boolean",
|
|
839
|
+
description: "Track document operations.",
|
|
840
|
+
default: true
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
},
|
|
748
844
|
instance: {
|
|
749
845
|
type: "object",
|
|
750
846
|
additionalProperties: false,
|
|
@@ -758,7 +854,7 @@ const phConnectRuntimeConfigSchema = {
|
|
|
758
854
|
},
|
|
759
855
|
reactorWorker: {
|
|
760
856
|
type: "boolean",
|
|
761
|
-
description: "Host the reactor in a shared worker instead of on the main thread. Off by default; the main-thread reactor stays the proven path until cutover is verified.",
|
|
857
|
+
description: "Host the reactor in a shared worker instead of on the main thread. Off by default; the main-thread reactor stays the proven path until cutover is verified. Packaged deployments load the worker from the prebuilt bundle `ph connect build` emits under __reactor_worker__/ (the dev server builds it lazily at the same path); when that bundle is absent the feature reports itself unavailable instead of starting a worker that cannot load.",
|
|
762
858
|
default: false
|
|
763
859
|
}
|
|
764
860
|
}
|
|
@@ -767,33 +863,47 @@ const phConnectRuntimeConfigSchema = {
|
|
|
767
863
|
type: "object",
|
|
768
864
|
additionalProperties: false,
|
|
769
865
|
description: "Settings for the reactor Connect runs in the browser, on the main thread or in the shared worker alike.",
|
|
770
|
-
properties: {
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
866
|
+
properties: {
|
|
867
|
+
featureFlags: {
|
|
868
|
+
type: "object",
|
|
869
|
+
additionalProperties: false,
|
|
870
|
+
description: "Enforcement flags. Each implies its predecessors, and the reactor refuses to boot on a set that names a later flag without an earlier one. These are consensus settings: a Connect syncing with a fleet must carry the same flags the fleet does, or the two reach different replay outcomes for the same history and diverge.",
|
|
871
|
+
properties: {
|
|
872
|
+
documentDecisions: {
|
|
873
|
+
type: "boolean",
|
|
874
|
+
description: "Decide writes from the document stream rather than the document meta cache, so a backdated deletion denies the operations that sort after it.",
|
|
875
|
+
default: false
|
|
876
|
+
},
|
|
877
|
+
authEnforcement: {
|
|
878
|
+
type: "boolean",
|
|
879
|
+
description: "Enforce the auth scope's policy at admission, replay, and read. Requires documentDecisions.",
|
|
880
|
+
default: false
|
|
881
|
+
},
|
|
882
|
+
authGroups: {
|
|
883
|
+
type: "boolean",
|
|
884
|
+
description: "Let `{ group }` principals match against the rosters of the group documents a policy names. Requires authEnforcement.",
|
|
885
|
+
default: false
|
|
886
|
+
},
|
|
887
|
+
authConditions: {
|
|
888
|
+
type: "boolean",
|
|
889
|
+
description: "Evaluate `where` and `match` conditions on grants. Requires authGroups. Do not enable on a fleet `preflight:auth` reports as crossing a reducer version.",
|
|
890
|
+
default: false
|
|
891
|
+
}
|
|
794
892
|
}
|
|
893
|
+
},
|
|
894
|
+
createSignaturePolicy: {
|
|
895
|
+
type: "string",
|
|
896
|
+
enum: ["legacy", "v2-required"],
|
|
897
|
+
description: "What new documents are created as. `v2-required` documents accept only v2 action signatures and take content-addressed ids; set `legacy` while any peer Connect syncs with predates them. Existing documents keep their policy.",
|
|
898
|
+
default: "v2-required"
|
|
899
|
+
},
|
|
900
|
+
unsupportedStoredDocuments: {
|
|
901
|
+
type: "string",
|
|
902
|
+
enum: ["refuse", "read-only"],
|
|
903
|
+
description: "What the reactor does when this browser's store holds documents at protocol versions this build does not run. `refuse` fails the boot and names the versions; `read-only` boots and keeps those documents read-only.",
|
|
904
|
+
default: "refuse"
|
|
795
905
|
}
|
|
796
|
-
}
|
|
906
|
+
}
|
|
797
907
|
},
|
|
798
908
|
pwa: {
|
|
799
909
|
type: "object",
|
|
@@ -964,6 +1074,178 @@ const phConnectRuntimeConfigSchema = {
|
|
|
964
1074
|
}
|
|
965
1075
|
};
|
|
966
1076
|
//#endregion
|
|
967
|
-
|
|
1077
|
+
//#region connect/shared-deps.ts
|
|
1078
|
+
/**
|
|
1079
|
+
* The dependency set Connect and loaded packages share via the import map.
|
|
1080
|
+
* `@powerhousedao/connect` is deliberately absent: it is the Connect app
|
|
1081
|
+
* itself (no importable exports), so there is nothing to share.
|
|
1082
|
+
*/
|
|
1083
|
+
const SHARED_DEPS = [
|
|
1084
|
+
{
|
|
1085
|
+
specifier: "document-model",
|
|
1086
|
+
package: "document-model"
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
specifier: "@powerhousedao/document-engineering",
|
|
1090
|
+
package: "@powerhousedao/document-engineering"
|
|
1091
|
+
},
|
|
1092
|
+
{
|
|
1093
|
+
specifier: "@powerhousedao/shared",
|
|
1094
|
+
package: "@powerhousedao/shared"
|
|
1095
|
+
},
|
|
1096
|
+
{
|
|
1097
|
+
specifier: "@powerhousedao/shared/registry/urls",
|
|
1098
|
+
package: "@powerhousedao/shared"
|
|
1099
|
+
},
|
|
1100
|
+
{
|
|
1101
|
+
specifier: "@powerhousedao/design-system/connect",
|
|
1102
|
+
package: "@powerhousedao/design-system"
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
specifier: "@powerhousedao/reactor-browser",
|
|
1106
|
+
package: "@powerhousedao/reactor-browser"
|
|
1107
|
+
},
|
|
1108
|
+
{
|
|
1109
|
+
specifier: "zod",
|
|
1110
|
+
package: "zod"
|
|
1111
|
+
}
|
|
1112
|
+
];
|
|
1113
|
+
const SHARED_DEP_SPECIFIERS = SHARED_DEPS.map((d) => d.specifier);
|
|
1114
|
+
/**
|
|
1115
|
+
* The `@powerhousedao/shared` subpaths the production vendor bundles. The
|
|
1116
|
+
* bare root is deliberately absent: its type barrel references node-only
|
|
1117
|
+
* modules (`clis/`), which the current vite/rolldown cannot bundle for the
|
|
1118
|
+
* browser — vendoring the root fails the build (a pre-existing latent
|
|
1119
|
+
* issue). A package that imports the bare root is simply not shared; it
|
|
1120
|
+
* bundles its own copy.
|
|
1121
|
+
*/
|
|
1122
|
+
const SHARED_SUBPATHS = [
|
|
1123
|
+
"connect",
|
|
1124
|
+
"document-model",
|
|
1125
|
+
"processors",
|
|
1126
|
+
"document-drive",
|
|
1127
|
+
"registry",
|
|
1128
|
+
"registry/urls",
|
|
1129
|
+
"registry/manifest-slim"
|
|
1130
|
+
];
|
|
1131
|
+
/**
|
|
1132
|
+
* The specifiers a package build may safely externalize onto the host's
|
|
1133
|
+
* import map — i.e. the ones the vendor actually publishes an entry for.
|
|
1134
|
+
*
|
|
1135
|
+
* `@powerhousedao/shared` is narrowed to SHARED_SUBPATHS rather than taken as
|
|
1136
|
+
* a prefix: the bare root is never vendored (see SHARED_SUBPATHS), and
|
|
1137
|
+
* neither are its other subpaths (`analytics`, `constants`, `clis`, ...).
|
|
1138
|
+
* Externalizing those would leave a bare specifier in the package's output
|
|
1139
|
+
* that nothing in the import map resolves, so the package would fail to load
|
|
1140
|
+
* at runtime instead of simply bundling its own copy.
|
|
1141
|
+
*/
|
|
1142
|
+
const EXTERNALIZABLE_SHARED_SPECIFIERS = [.../* @__PURE__ */ new Set([...SHARED_DEP_SPECIFIERS.filter((s) => s !== "@powerhousedao/shared"), ...SHARED_SUBPATHS.map((s) => `@powerhousedao/shared/${s}`)])];
|
|
1143
|
+
/** Split a specifier into its package name and subpath ("" for a root). */
|
|
1144
|
+
function parseDepSpec(spec) {
|
|
1145
|
+
if (spec.startsWith("@")) {
|
|
1146
|
+
const parts = spec.split("/");
|
|
1147
|
+
return {
|
|
1148
|
+
pkg: parts.slice(0, 2).join("/"),
|
|
1149
|
+
sub: parts.slice(2).join("/")
|
|
1150
|
+
};
|
|
1151
|
+
}
|
|
1152
|
+
const i = spec.indexOf("/");
|
|
1153
|
+
return i === -1 ? {
|
|
1154
|
+
pkg: spec,
|
|
1155
|
+
sub: ""
|
|
1156
|
+
} : {
|
|
1157
|
+
pkg: spec.slice(0, i),
|
|
1158
|
+
sub: spec.slice(i + 1)
|
|
1159
|
+
};
|
|
1160
|
+
}
|
|
1161
|
+
function isSharedSpecifier(spec, specs) {
|
|
1162
|
+
return specs.some((s) => spec === s || spec.startsWith(s + "/"));
|
|
1163
|
+
}
|
|
1164
|
+
/**
|
|
1165
|
+
* Return the import/export specifiers in `source` that are a shared
|
|
1166
|
+
* specifier (or a subpath of one), sorted. Heuristic: only statement
|
|
1167
|
+
* positions are scanned (`from "x"`, `import "x"`, `import("x")`;
|
|
1168
|
+
* `export … from "x"` is covered by the `from` pattern), so import-like
|
|
1169
|
+
* text inside comments or strings can be reported too. That errs toward
|
|
1170
|
+
* over-reporting, which is the safe direction for the advisory build
|
|
1171
|
+
* warning.
|
|
1172
|
+
*/
|
|
1173
|
+
function findSharedImports(source, specs = SHARED_DEP_SPECIFIERS) {
|
|
1174
|
+
const found = /* @__PURE__ */ new Set();
|
|
1175
|
+
for (const re of [
|
|
1176
|
+
/\bfrom\s+["']([^"'\\]+)["']/g,
|
|
1177
|
+
/\bimport\s+["']([^"'\\]+)["']/g,
|
|
1178
|
+
/\bimport\s*\(\s*["']([^"'\\]+)["']\s*\)/g
|
|
1179
|
+
]) for (const m of source.matchAll(re)) {
|
|
1180
|
+
const spec = m[1];
|
|
1181
|
+
if (isSharedSpecifier(spec, specs)) found.add(spec);
|
|
1182
|
+
}
|
|
1183
|
+
return [...found].sort();
|
|
1184
|
+
}
|
|
1185
|
+
/**
|
|
1186
|
+
* Rewrite a package source for blob import in a worker context (import maps
|
|
1187
|
+
* don't apply there): shared specifiers become their mapped URLs, and
|
|
1188
|
+
* relative (`./`, `../`) specifiers become absolute against `sourceUrl`
|
|
1189
|
+
* (a blob URL has no directory to resolve against). `#` subpath imports are
|
|
1190
|
+
* deliberately left alone: they resolve via the package's own
|
|
1191
|
+
* `package.json` "imports" field, which the rewrite cannot reproduce.
|
|
1192
|
+
* Returns the input unchanged when nothing matched.
|
|
1193
|
+
*/
|
|
1194
|
+
function rewritePackageSource(source, sourceUrl, imports) {
|
|
1195
|
+
if (!Object.keys(imports).length) return source;
|
|
1196
|
+
const base = new URL(sourceUrl);
|
|
1197
|
+
const map = (spec) => {
|
|
1198
|
+
const mapped = imports[spec];
|
|
1199
|
+
if (mapped) return mapped;
|
|
1200
|
+
if (spec.startsWith("./") || spec.startsWith("../")) return new URL(spec, base).href;
|
|
1201
|
+
return null;
|
|
1202
|
+
};
|
|
1203
|
+
let out = source;
|
|
1204
|
+
for (const re of [
|
|
1205
|
+
/\bfrom\s+(["'])([^"'\\]+)\1/g,
|
|
1206
|
+
/\bimport\s+(["'])([^"'\\]+)\1/g,
|
|
1207
|
+
/\bimport\s*\(\s*(["'])([^"'\\]+)\1\s*\)/g
|
|
1208
|
+
]) out = out.replace(re, (match, quote, spec) => {
|
|
1209
|
+
const mapped = map(spec);
|
|
1210
|
+
return mapped ? match.replace(`${quote}${spec}${quote}`, `${quote}${mapped}${quote}`) : match;
|
|
1211
|
+
});
|
|
1212
|
+
return out;
|
|
1213
|
+
}
|
|
1214
|
+
/**
|
|
1215
|
+
* Compare a package's declared ranges against the host's version table.
|
|
1216
|
+
* `hostVersions` defines the checked set (only deps present in it are
|
|
1217
|
+
* checked). `*`, non-semver protocols (workspace:, file:, git:, npm:, URLs)
|
|
1218
|
+
* and unparseable ranges never mismatch.
|
|
1219
|
+
*/
|
|
1220
|
+
function checkSharedDeps(pkgJson, hostVersions) {
|
|
1221
|
+
const out = [];
|
|
1222
|
+
const entries = [...Object.entries(pkgJson.dependencies ?? {}), ...Object.entries(pkgJson.peerDependencies ?? {})];
|
|
1223
|
+
for (const [dep, range] of entries) {
|
|
1224
|
+
const provided = hostVersions[dep];
|
|
1225
|
+
if (provided === void 0 || typeof range !== "string") continue;
|
|
1226
|
+
if (range === "*" || /^[a-z]+:/i.test(range)) continue;
|
|
1227
|
+
if (!validRange(range)) continue;
|
|
1228
|
+
if (!satisfies(provided, range, { includePrerelease: true })) out.push({
|
|
1229
|
+
package: dep,
|
|
1230
|
+
required: range,
|
|
1231
|
+
provided
|
|
1232
|
+
});
|
|
1233
|
+
}
|
|
1234
|
+
return out;
|
|
1235
|
+
}
|
|
1236
|
+
function formatSharedDepWarnings(mismatches) {
|
|
1237
|
+
return mismatches.map((m) => `${m.package}: requires ${m.required}, Connect provides ${m.provided}`);
|
|
1238
|
+
}
|
|
1239
|
+
/**
|
|
1240
|
+
* Stable filename for a local package's worker model bundle under
|
|
1241
|
+
* `__reactor_worker__/packages/`. Shared by the tab (URL computation via the
|
|
1242
|
+
* manifest) and the production prebuild (emitted entry names), so the two can
|
|
1243
|
+
* never drift. Scoped names flatten (`@scope/name` -> `scope__name`).
|
|
1244
|
+
*/
|
|
1245
|
+
function workerPackageFileName(packageName) {
|
|
1246
|
+
return `${packageName.replace(/^@/, "").replace(/[^\w.-]+/g, "__")}.js`;
|
|
1247
|
+
}
|
|
1248
|
+
//#endregion
|
|
1249
|
+
export { ConfigLoader, DEFAULT_CONNECT_CONFIG, DYNAMIC_BASE_PLACEHOLDER, EXTERNALIZABLE_SHARED_SPECIFIERS, JsonConfigAdapter, PWA_FILE_HANDLER_ACTION, PWA_IDB_KEY, PWA_IDB_NAME, PWA_IDB_STORE, PWA_IDB_VERSION, ROOT_STORAGE_NAMESPACE, SHARED_DEPS, SHARED_DEP_SPECIFIERS, SHARED_SUBPATHS, buildRuntimeConfig, checkSharedDeps, connectEnvSchema, dedupeFileHandlers, dedupeIcons, deepMerge, findSharedImports, formatSharedDepWarnings, getStorageNamespace, loadConnectEnv, loadRuntimeEnv, mergeManifest, mergePwaConfig, normalizeBasePath, parseDepSpec, phConnectRuntimeConfigSchema, powerhousePackageSchema, resolveSourceConnect, rewritePackageSource, runtimeEnvSchema, setConnectEnv, toRegExpOrString, unionStrings, withInferredCategory, workerPackageFileName, workflowsSettingConflict };
|
|
968
1250
|
|
|
969
1251
|
//# sourceMappingURL=index.js.map
|