@powerhousedao/shared 6.2.3-dev.50 → 6.2.3-dev.52
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/clis/args/common-BXabdhiO.mjs.map +1 -1
- package/dist/clis/{build-config-CR5lvv_A.mjs → build-config-HbYUSZS1.mjs} +26 -5
- package/dist/clis/build-config-HbYUSZS1.mjs.map +1 -0
- package/dist/clis/build-config.d.mts +6 -0
- package/dist/clis/build-config.d.mts.map +1 -1
- package/dist/clis/build-config.mjs +1 -1
- package/dist/clis/build-pieces.d.mts +62 -2
- package/dist/clis/build-pieces.d.mts.map +1 -1
- package/dist/clis/build-pieces.mjs +189 -11
- package/dist/clis/build-pieces.mjs.map +1 -1
- package/dist/clis/constants.d.mts +2 -2
- package/dist/clis/constants.mjs +13 -2
- package/dist/clis/constants.mjs.map +1 -1
- package/dist/clis/index.d.mts +20 -1
- package/dist/clis/index.d.mts.map +1 -1
- package/dist/clis/index.mjs +355 -288
- package/dist/clis/index.mjs.map +1 -1
- package/dist/clis/{types-Cc_rB0Yx.d.mts → types-BZBiwi6I.d.mts} +17 -3
- package/dist/clis/types-BZBiwi6I.d.mts.map +1 -0
- package/dist/{config-loader-CXhzL512.js → config-loader-DpeoExZO.js} +3 -2
- package/dist/config-loader-DpeoExZO.js.map +1 -0
- package/dist/connect/config-loader.d.ts +1 -1
- package/dist/connect/config-loader.js +1 -1
- package/dist/connect/index.d.ts +6 -1
- package/dist/connect/index.d.ts.map +1 -1
- package/dist/connect/index.js +6 -1
- package/dist/connect/index.js.map +1 -1
- package/dist/{constants-C2K-m7pp.d.ts → constants-C6ket9Bn.d.ts} +2 -2
- package/dist/constants-C6ket9Bn.d.ts.map +1 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/document-drive/index.d.ts +3 -3
- package/dist/document-model/errors.d.ts +1 -1
- package/dist/document-model/index.d.ts +1 -1
- package/dist/document-model/index.js +1 -0
- package/dist/document-model/index.js.map +1 -1
- package/dist/{index-BhqNGLu9.d.ts → index-C3fD6cad.d.ts} +2 -2
- package/dist/{index-BhqNGLu9.d.ts.map → index-C3fD6cad.d.ts.map} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/processors/index.d.ts +1 -1
- package/dist/registry/index.d.ts +2 -2
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/manifest-slim.d.ts +2 -2
- package/dist/{types-BTfv_ZzS.d.ts → types-CywupGpk.d.ts} +2 -2
- package/dist/{types-BTfv_ZzS.d.ts.map → types-CywupGpk.d.ts.map} +1 -1
- package/dist/{types-BRJfX8ck.d.ts → types-DDH6v2BE.d.ts} +8 -1
- package/dist/{types-BRJfX8ck.d.ts.map → types-DDH6v2BE.d.ts.map} +1 -1
- package/package.json +1 -1
- package/dist/clis/build-config-CR5lvv_A.mjs.map +0 -1
- package/dist/clis/types-Cc_rB0Yx.d.mts.map +0 -1
- package/dist/config-loader-CXhzL512.js.map +0 -1
- package/dist/constants-C2K-m7pp.d.ts.map +0 -1
|
@@ -23,6 +23,18 @@ declare const PROJECT_PORT_BAND_SIZE: 1000;
|
|
|
23
23
|
declare const PROJECT_PORT_BAND_SWITCHBOARD: 7000;
|
|
24
24
|
declare const PROJECT_PORT_BAND_STUDIO: 6000;
|
|
25
25
|
declare const PROJECT_PORT_BAND_VETRA_CONNECT: 2000;
|
|
26
|
+
/**
|
|
27
|
+
* Icon for the drives switchboard creates by default, inlined as a data URI.
|
|
28
|
+
*
|
|
29
|
+
* A remote URL is the wrong shape for this: the value is baked into the drive
|
|
30
|
+
* document and rendered by every Connect that opens it, so the icon only
|
|
31
|
+
* appears when that client can reach that host. A desktop or air-gapped install
|
|
32
|
+
* cannot, and the ipfs.io gateway this previously pointed at now answers 403
|
|
33
|
+
* regardless.
|
|
34
|
+
*
|
|
35
|
+
* The mark is drawn dark-on-light so it stays legible against either theme.
|
|
36
|
+
*/
|
|
37
|
+
declare const DEFAULT_DRIVE_ICON: "data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3E%3Crect%20width='16'%20height='16'%20rx='3'%20fill='%23F3F5F7'/%3E%3Cpath%20fill='%23343839'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.0059%200L3.41636%205.45646C2.44979%206.25682%202.3795%207.71452%203.26456%208.60418L5.54425%2010.8957C6.21311%2011.568%206.35783%2012.6012%205.89944%2013.4314L4.48126%2016H2.13333C0.955126%2016%200%2015.0449%200%2013.8667V2.13333C0%200.955126%200.955126%200%202.13333%200H10.0059ZM11.2436%200L10.0128%202.24221C9.55899%203.06891%209.70183%204.09549%2010.3641%204.7669L12.7825%207.21868C13.6656%208.11402%2013.5866%209.57512%2012.612%2010.37L5.70922%2016H13.8667C15.0449%2016%2016%2015.0449%2016%2013.8667V2.13333C16%200.955126%2015.0449%200%2013.8667%200H11.2436Z'/%3E%3C/svg%3E";
|
|
26
38
|
declare const DEFAULT_VETRA_DRIVE_ID: "vetra";
|
|
27
39
|
declare const MINIMUM_NODE_VERSION: "24.0.0";
|
|
28
40
|
declare const PH_BIN: "ph-cli-legacy";
|
|
@@ -111,7 +123,6 @@ declare const packageJsonExports: {
|
|
|
111
123
|
};
|
|
112
124
|
readonly "./subgraphs": {
|
|
113
125
|
readonly types: "./dist/types/subgraphs/index.d.ts";
|
|
114
|
-
readonly browser: "./dist/browser/subgraphs/index.js";
|
|
115
126
|
readonly node: "./dist/node/subgraphs/index.mjs";
|
|
116
127
|
};
|
|
117
128
|
readonly "./processors": {
|
|
@@ -286,6 +297,8 @@ type PHConnectOpenPanel = {
|
|
|
286
297
|
type PHConnectInstance = {
|
|
287
298
|
namespace: string | null;
|
|
288
299
|
reactorWorker: boolean;
|
|
300
|
+
/** Routes through the in-browser reactor plus remote backends. Off by default. */
|
|
301
|
+
multiReactor?: boolean;
|
|
289
302
|
};
|
|
290
303
|
/** Each flag implies its predecessors, and must match the fleet Connect syncs
|
|
291
304
|
* with or the two compute different replay outcomes. */
|
|
@@ -523,6 +536,7 @@ declare const ManifestSchema: z.ZodObject<{
|
|
|
523
536
|
bundle: z.ZodOptional<z.ZodString>;
|
|
524
537
|
descriptor: z.ZodOptional<z.ZodString>;
|
|
525
538
|
}, z.core.$strip>>>;
|
|
539
|
+
externalDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
526
540
|
config: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
527
541
|
name: z.ZodString;
|
|
528
542
|
type: z.ZodUnion<readonly [z.ZodLiteral<"var">, z.ZodLiteral<"secret">]>;
|
|
@@ -536,6 +550,6 @@ declare const ManifestSchema: z.ZodObject<{
|
|
|
536
550
|
//#region document-model/types.d.ts
|
|
537
551
|
type Manifest = z.infer<typeof ManifestSchema>;
|
|
538
552
|
//#endregion
|
|
539
|
-
export {
|
|
553
|
+
export { PH_GLOBAL_PROJECT_NAME as A, SERVICE_ACTIONS as B, LEGACY_LINT_FORMAT_DEPENDENCIES as C, PEER_EXTERNAL_DEPENDENCIES as D, MINIMUM_NODE_VERSION as E, PROJECT_PORT_BAND_STUDIO as F, externalDependencies as G, VERSIONED_DEV_DEPENDENCIES as H, PROJECT_PORT_BAND_SWITCHBOARD as I, packageScripts as J, externalDevDependencies as K, PROJECT_PORT_BAND_VETRA_CONNECT as L, POWERHOUSE_CONFIG_FILE as M, POWERHOUSE_GLOBAL_DIR as N, PH_BIN as O, PROJECT_PORT_BAND_SIZE as P, REACTOR_API_PACKAGE as R, HOME_DIR as S, LOG_LEVELS as T, VERSIONED_PEER_DEPENDENCIES as U, VERSIONED_DEPENDENCIES as V, defaultManifest as W, DEFAULT_VETRA_DRIVE_ID as _, DEFAULT_CONFIG as a, GRAPHQL_PACKAGE as b, DEFAULT_CONNECT_STUDIO_PORT as c, DEFAULT_EXPIRY_SECONDS as d, DEFAULT_REGISTRY_URL as f, DEFAULT_VETRA_CONNECT_PORT as g, DEFAULT_TIMEOUT as h, BOILERPLATE_DEPENDENCY_OVERRIDES as i, PIECES_FRAMEWORK_PACKAGE as j, PH_GLOBAL_DIR_NAME as k, DEFAULT_DRIVE_ICON as l, DEFAULT_SWITCHBOARD_PORT as m, ANALYTICS_ENGINE_CORE_PACKAGE as n, DEFAULT_CONNECT_OUTDIR as o, DEFAULT_RENOWN_URL as p, packageJsonExports as q, BOILERPLATE_ALLOWED_BUILDS as r, DEFAULT_CONNECT_PREVIEW_PORT as s, Manifest as t, DEFAULT_EXPIRY_DAYS as u, DRIVES_PRESERVE_STRATEGIES as v, LEGACY_LINT_FORMAT_FILES as w, GRAPHQL_TAG_PACKAGE as x, FEATURE_DEPENDENCIES as y, SECONDS_IN_DAY as z };
|
|
540
554
|
export {};
|
|
541
|
-
//# sourceMappingURL=types-
|
|
555
|
+
//# sourceMappingURL=types-BZBiwi6I.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-BZBiwi6I.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;;;;;;;;;;;;cAaA;cAGA;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;;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;;;KCrVjB,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;;EAEV;;EAEA;;EAEA;;EAEA;;KAGU;EACV;EACA;;EAEA;;;;KAKU;;EAEV;;EAEA;;EAEA;;EAEA;;KAGU;EACV,eAAe;;EAEf;;EAEA;;;;;;;;;;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,YAAY;EACZ,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;;;;cC2eC,gBAAc,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBzB,EAAA,KAAA;;;KC40BU,WAAW,EAAE,aAAa"}
|
|
@@ -51,7 +51,8 @@ const DEFAULT_CONNECT_CONFIG = {
|
|
|
51
51
|
},
|
|
52
52
|
instance: {
|
|
53
53
|
namespace: null,
|
|
54
|
-
reactorWorker: false
|
|
54
|
+
reactorWorker: false,
|
|
55
|
+
multiReactor: false
|
|
55
56
|
},
|
|
56
57
|
reactor: {
|
|
57
58
|
featureFlags: {
|
|
@@ -169,4 +170,4 @@ var ConfigLoader = class {
|
|
|
169
170
|
//#endregion
|
|
170
171
|
export { DEFAULT_CONNECT_CONFIG as a, workflowsSettingConflict as i, deepMerge as n, buildRuntimeConfig as o, resolveSourceConnect as r, ConfigLoader as t };
|
|
171
172
|
|
|
172
|
-
//# sourceMappingURL=config-loader-
|
|
173
|
+
//# sourceMappingURL=config-loader-DpeoExZO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader-DpeoExZO.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 openPanel: {\n // An empty `clientId` keeps OpenPanel disabled. Enable it per deploy by\n // including `connect.openPanel.clientId` in PH_CONNECT_CONFIG_JSON.\n // `apiUrl` has no default: unset means OpenPanel's hosted API.\n clientId: \"\",\n trackUiEvents: true,\n trackOperations: true,\n },\n instance: {\n namespace: null,\n reactorWorker: false,\n multiReactor: false,\n },\n reactor: {\n featureFlags: {\n documentDecisions: false,\n authEnforcement: false,\n authGroups: false,\n authConditions: false,\n },\n createSignaturePolicy: \"v2-required\",\n unsupportedStoredDocuments: \"refuse\",\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// Projects scaffolded before workflows.enabled reached Connect carry an explicit\n// `false` from the old defaults, which then keeps Workflow Studio off\nexport function workflowsSettingConflict(\n source: Pick<PowerhouseConfig, \"connect\" | \"workflows\">,\n): string | undefined {\n if (source.workflows?.enabled !== true) return undefined;\n if (source.connect?.app?.workflowsEnabled !== false) return undefined;\n return 'powerhouse.config.json sets workflows.enabled but also connect.app.workflowsEnabled: false, so Workflow Studio stays off in Connect. Remove \"workflowsEnabled\" from connect.app to follow workflows.enabled.';\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":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { L as PowerhouseConfig, O as PHConnectRuntimeConfig } from "../types-
|
|
1
|
+
import { L as PowerhouseConfig, O as PHConnectRuntimeConfig } from "../types-DDH6v2BE.js";
|
|
2
2
|
//#region connect/config-loader.d.ts
|
|
3
3
|
/** Recursive Partial. Arrays are leaves — `write({ packages: [...] })`
|
|
4
4
|
* replaces the array, it doesn't merge. */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as workflowsSettingConflict, n as deepMerge, r as resolveSourceConnect, t as ConfigLoader } from "../config-loader-
|
|
1
|
+
import { i as workflowsSettingConflict, n as deepMerge, r as resolveSourceConnect, t as ConfigLoader } from "../config-loader-DpeoExZO.js";
|
|
2
2
|
export { ConfigLoader, deepMerge, resolveSourceConnect, workflowsSettingConflict };
|
package/dist/connect/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as PHConnectPwaUrlPattern, L as PowerhouseConfig, O as PHConnectRuntimeConfig, R as PowerhousePackage, S as PHConnectPwaRuntimeCaching, _ as PHConnectPwa, b as PHConnectPwaIcon, v as PHConnectPwaCacheStrategy, x as PHConnectPwaManifest, y as PHConnectPwaFileHandler } from "../types-
|
|
1
|
+
import { C as PHConnectPwaUrlPattern, L as PowerhouseConfig, O as PHConnectRuntimeConfig, R as PowerhousePackage, S as PHConnectPwaRuntimeCaching, _ as PHConnectPwa, b as PHConnectPwaIcon, v as PHConnectPwaCacheStrategy, x as PHConnectPwaManifest, y as PHConnectPwaFileHandler } from "../types-DDH6v2BE.js";
|
|
2
2
|
import { ConfigAdapter, ConfigLoader, ConfigShape, DeepPartial, deepMerge, resolveSourceConnect, workflowsSettingConflict } from "./config-loader.js";
|
|
3
3
|
import { JsonConfigAdapter, JsonConfigAdapterOptions } from "./json-adapter.js";
|
|
4
4
|
import { z } from "zod";
|
|
@@ -670,6 +670,11 @@ export declare const phConnectRuntimeConfigSchema: {
|
|
|
670
670
|
readonly 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.";
|
|
671
671
|
readonly default: false;
|
|
672
672
|
};
|
|
673
|
+
readonly multiReactor: {
|
|
674
|
+
readonly type: "boolean";
|
|
675
|
+
readonly description: "Opt-in multi-reactor routing. When on, Connect routes through the in-browser reactor plus remote backends instead of the single in-browser reactor. Off by default; the single-reactor path is unchanged.";
|
|
676
|
+
readonly default: false;
|
|
677
|
+
};
|
|
673
678
|
};
|
|
674
679
|
};
|
|
675
680
|
readonly reactor: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../connect/dynamic-base.ts","../../connect/env-config.ts","../../connect/pwa-config.ts","../../connect/pwa-manifest.ts","../../connect/runtime-config.ts","../../connect/schema-fragments.ts","../../connect/shared-deps.ts"],"mappings":";;;;;;;;;;;;;;;;;qBAYa;;;;;;cCQP,gBAAc,EAAA;;;;;;GA0BlB,EAAA,KAAA;;;;;;qBAiGW,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAES,EAAA,KAAA;;;;qBAKzB,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAgD,EAAA,KAAA;;;;YAKjE,kBAAkB,EAAE,aAAa;YACjC,oBAAoB,EAAE,aAAa;YACnC,aAAa,EAAE,aAAa;;;;iBASvB;;;;EAIf,aAAa;;;;EAIb,UAAU;;;;;;;;;;;wBAkEI,eAAe,UAAS,iBAAsB;;;;;;;;;wBAkB9C,eACd,UAAS,iBACR;;;;;;;;;;;;;;;wBAoBa,cAAc,QAAQ,QAAQ;;;;;;;;;;;;;;;;;wBA4C9B,kBAAkB;;;;;;qBA8BrB;;;;;;;;;;;;;;;;;;;;;;;wBAwBG,oBAAoB;;;;YCrVxB;;EAEV;EACA,QAAQ;;KA6BL;EACH;EACA;EACA;;;wBAyBc,YAAY,UAAU,UAAU,OAAO,MAAM;;;;;;;;;wBA4B7C,mBAAmB,kBAAkB,UAAU,MAAM;;;;;;wBASrD,qBACd,QAAQ,cACR,oBACC;;wBASa,aACd,4BACA;;;;;;;;;;;;;;;wBA2Gc,eACd,sBAAsB,mBACtB,gBAAgB,cAChB,UAAS,2BACR;;;wBA8Ca,iBACd,SAAS,kCACC;;;;;;;;;;;qBCrRC;qBAQA;qBACA;qBACA;qBACA;;;;iBAKI;EACf,QAAQ;EACR,iBAAiB;IAA4B;;EAC7C;GACC;;;;;;;;;;;;;;;;;;;;;wBAsBa,cACd,MAAM,gBACN,UAAU,kCACV;EACE;EACA;IAED;;;YCzES;EACV;EACA,UAAU;EACV;EACA;IAAgB;IAAc;;EAC9B,SAAS;;;;qBAKE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../connect/dynamic-base.ts","../../connect/env-config.ts","../../connect/pwa-config.ts","../../connect/pwa-manifest.ts","../../connect/runtime-config.ts","../../connect/schema-fragments.ts","../../connect/shared-deps.ts"],"mappings":";;;;;;;;;;;;;;;;;qBAYa;;;;;;cCQP,gBAAc,EAAA;;;;;;GA0BlB,EAAA,KAAA;;;;;;qBAiGW,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAES,EAAA,KAAA;;;;qBAKzB,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAgD,EAAA,KAAA;;;;YAKjE,kBAAkB,EAAE,aAAa;YACjC,oBAAoB,EAAE,aAAa;YACnC,aAAa,EAAE,aAAa;;;;iBASvB;;;;EAIf,aAAa;;;;EAIb,UAAU;;;;;;;;;;;wBAkEI,eAAe,UAAS,iBAAsB;;;;;;;;;wBAkB9C,eACd,UAAS,iBACR;;;;;;;;;;;;;;;wBAoBa,cAAc,QAAQ,QAAQ;;;;;;;;;;;;;;;;;wBA4C9B,kBAAkB;;;;;;qBA8BrB;;;;;;;;;;;;;;;;;;;;;;;wBAwBG,oBAAoB;;;;YCrVxB;;EAEV;EACA,QAAQ;;KA6BL;EACH;EACA;EACA;;;wBAyBc,YAAY,UAAU,UAAU,OAAO,MAAM;;;;;;;;;wBA4B7C,mBAAmB,kBAAkB,UAAU,MAAM;;;;;;wBASrD,qBACd,QAAQ,cACR,oBACC;;wBASa,aACd,4BACA;;;;;;;;;;;;;;;wBA2Gc,eACd,sBAAsB,mBACtB,gBAAgB,cAChB,UAAS,2BACR;;;wBA8Ca,iBACd,SAAS,kCACC;;;;;;;;;;;qBCrRC;qBAQA;qBACA;qBACA;qBACA;;;;iBAKI;EACf,QAAQ;EACR,iBAAiB;IAA4B;;EAC7C;GACC;;;;;;;;;;;;;;;;;;;;;wBAsBa,cACd,MAAM,gBACN,UAAU,kCACV;EACE;EACA;IAED;;;YCzES;EACV;EACA,UAAU;EACV;EACA;IAAgB;IAAc;;EAC9B,SAAS;;;;qBAKE,wBAAwB;wBAgErB,mBACd,QAAQ,KAAK,kEACb;EAAe;EAAc;WAC5B;;;qBC5EU;WACX;WACA;WACA;WACA;aACE;eACE;eACA;;aAEF;eACE;eACA;;aAEF;eACE;eACA;eACA;;aAEF;eACE;eACA;;;;qBAsEO;WACX;WACA;WACA;WAEA;aACE;eACE;eACA;eACA;eACA;iBACE;mBACE;mBACA;;iBAGF;mBACE;mBACA;;;;aAKN;eACE;eACA;eACA;eACA;iBACE;mBACE;mBACA;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;;;;aAKN;eACE;eACA;eACA;eACA;iBACE;mBACE;mBACA;mBAEA;;;;aAIN;eACE;eACA;eACA;eAEA;iBACE;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBAEA;;;;aAIN;eACE;eACA;eACA;eACA;iBACE;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBAEA;mBACA;qBACE;uBAEI;uBACA;uBACA;uBACA;yBACE;2BAAO;;yBACP;2BAAQ;;yBACR;2BAAQ;;;;uBAIV;uBACA;uBACA;uBACA;yBACE;2BACE;2BACA;;yBAGF;2BACE;2BACA;;yBAGF;2BAAQ;;yBACR;2BAAQ;;yBACR;2BACE;2BACA;;;;;;iBAQZ;mBACE;mBACA;mBACA;;iBAGF;mBACE;mBACA;mBACA;mBAEA;qBACE;uBA5NJ;;uBAGJ;;yBAEA;2BACE;2BACA;2BACA;;yBAEF;2BACE;2BACA;2BAEA;;yBAEF;2BACE;2BACA;2BAEA;;;;qBAyMM;;;;;;;;;;;;;;;;;;;;;;;;;;aAKR;eACE;eACA;eACA;eACA;iBACE;mBACE;mBACA;mBACA;;iBAEF;mBACE;mBACA;mBACA;;iBAEF;mBACE;mBACA;mBACA;;iBAEF;mBACE;mBACA;;iBAGF;mBACE;mBACA;;iBAGF;mBACE;mBACA;mBACA;mBAEA;qBACE;uBACE;uBACA;uBACA;uBACA;yBACE;2BACE;2BACA;;yBAGF;2BACE;2BACA;;;;qBAKN;uBACE;uBACA;uBACA;uBACA;yBACE;2BACE;2BACA;;yBAGF;2BACE;2BACA;;yBAEF;2BACE;2BACA;2BAEA;6BAAS;;;;;;;;;aAQvB;eACE;eACA;eACA;eAEA;iBACE;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBACA;;;;aAIN;eACE;eACA;eACA;eAEA;iBACE;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;;iBAGF;mBACE;mBACA;mBACA;;iBAEF;mBACE;mBACA;mBACA;;;;aAIN;eACE;eACA;eACA;eACA;eAEA;iBACE;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBAEA;;;;aAIN;eACE;eACA;eACA;eAEA;iBACE;mBACE;mBACA;mBACA;mBAEA;qBACE;uBACE;uBACA;uBAEA;;qBAEF;uBACE;uBACA;uBAEA;;qBAEF;uBACE;uBACA;uBAEA;;qBAEF;uBACE;uBACA;uBAEA;;;;iBAIN;mBACE;mBACA;mBACA;mBAEA;;iBAEF;mBACE;mBACA;mBACA;mBAEA;;;;aAIN;eACE;eACA;eACA;eAEA;iBACE;mBACE;mBACA;mBACA;mBACA;qBACE;uBAAQ;;qBACR;uBAAc;;qBACd;uBAAe;;qBACf;uBAAe;;qBACf;uBAAoB;;qBACpB;uBACE;uBACA;;qBAEF;uBAAa;;qBACb;uBAAS;;qBACT;uBACE;uBACA;uBAEA;yBAjaN;;yBAEK;;2BAET;6BAAO;;2BACP;6BAAS;;2BACT;6BAAQ;;2BACR;6BAAW;;;;;qBA4ZH;uBACE;uBACA;uBAEA;yBACE;yBACA;yBACA;yBACA;2BACE;6BACE;6BACA;6BAEA;+BACE;+BACA;iCAAS;iCAAgB;;;;2BAG7B;6BACE;6BACA;6BACA;;;;;;;;;;;;;;;;;;;;2BAEF;6BACE;6BACA;;;;;qBAKR;uBACE;uBACA;uBACA;uBACA;uBAEA;yBACE;2BACE;2BACA;;;;;;iBAWV;mBACE;mBACA;qBAAS;;mBACT;;iBAGF;mBACE;mBACA;qBAAS;;mBACT;;iBAGF;mBACE;mBACA;;iBAGF;mBACE;mBACA;mBAEA;qBACE;qBACA;qBACA;qBACA;uBACE;yBAhgBV;;2BAEE;;2BAEA;2BACA;2BACA;2BACA;6BACE;+BAAU;+BAAgB;;6BAC1B;+BAAS;+BAAgB;;;;;uBAwfnB;yBACE;yBACA;;uBAQF;yBACE;yBACA;;uBAEF;yBACE;yBACA;yBACA;2BACE;6BAAa;;2BACb;6BACE;6BACA;;2BAGF;6BACE;6BACA;6BACA;+BACE;iCAAc;;+BACd;iCAAiB;;;;2BAGrB;6BACE;6BACA;6BACA;+BACE;iCAAY;iCAAe;mCAAS;;;+BACpC;iCACE;iCACA;mCAAwB;;;;;;;;;;iBASxC;mBACE;mBACA;mBAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;YCxnBE;EAAc;EAAmB;;;;;;;qBAOhC,sBAAsB;qBA2BtB;;;;;;;;;qBAYA;;;;;;;;;;;;qBAqBA;;wBAQG,aAAa;EAAiB;EAAa;;;;;;;;;;;wBAwB3C,kBACd,gBACA;;;;;;;;;;wBA0Bc,qBACd,gBACA,mBACA,SAAS;YAkCC;EACV;EACA;EACA;;YAGU;EACV,eAAe;EACf,mBAAmB;;;;;;;;wBASL,gBACd,SAAS,aACT,cAAc,yBACb;wBAkBa,wBACd,YAAY;;;;;;;wBAcE,sBAAsB"}
|
package/dist/connect/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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-
|
|
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-DpeoExZO.js";
|
|
2
2
|
import { JsonConfigAdapter } from "./json-adapter.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { satisfies, validRange } from "semver";
|
|
@@ -856,6 +856,11 @@ const phConnectRuntimeConfigSchema = {
|
|
|
856
856
|
type: "boolean",
|
|
857
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.",
|
|
858
858
|
default: false
|
|
859
|
+
},
|
|
860
|
+
multiReactor: {
|
|
861
|
+
type: "boolean",
|
|
862
|
+
description: "Opt-in multi-reactor routing. When on, Connect routes through the in-browser reactor plus remote backends instead of the single in-browser reactor. Off by default; the single-reactor path is unchanged.",
|
|
863
|
+
default: false
|
|
859
864
|
}
|
|
860
865
|
}
|
|
861
866
|
},
|