@econ-v1/rpc 7.1.18 → 7.2.0
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/child-state-contract.d.ts +30 -0
- package/dist/child-state-contract.d.ts.map +1 -0
- package/dist/describe-client-error.d.ts.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/stage-catalog-contract.d.ts +6 -0
- package/dist/stage-catalog-contract.d.ts.map +1 -1
- package/dist/stage-context.d.ts +19 -3
- package/dist/stage-context.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/child-state-contract.js +76 -0
- package/src/describe-client-error.js +1 -0
- package/src/index.js +10 -0
- package/src/stage-catalog-contract.js +7 -0
- package/src/stage-context.js +4 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** @param {string} code @returns {boolean} */
|
|
2
|
+
export function isTransientChildState(code: string): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* @param {ChildState} state
|
|
5
|
+
* @param {string} [title] the parent's own label for this child
|
|
6
|
+
* @returns {ChildStateCopy}
|
|
7
|
+
*/
|
|
8
|
+
export function describeChildState(state: ChildState, title?: string): ChildStateCopy;
|
|
9
|
+
/**
|
|
10
|
+
* The one truthful state of a composed child, and shell-owned copy for it.
|
|
11
|
+
* Every code here must be documented in docs/development/stages/06-composition-and-notices.md
|
|
12
|
+
* (enforced by scripts/check-stage-docs.mjs).
|
|
13
|
+
*/
|
|
14
|
+
export const CHILD_STATE_CODES: readonly ["ready", "starting", "preparing", "updating", "cache-failed", "blocked", "needs-approval", "needs-host-update", "package-broken", "offline-unavailable", "needs-first-sync", "not-installed", "unavailable-on-this-node"];
|
|
15
|
+
export const CHILD_ACTIONS: readonly ["retry-preparation"];
|
|
16
|
+
export type ChildStateCode = (typeof CHILD_STATE_CODES)[number];
|
|
17
|
+
export type ChildAction = (typeof CHILD_ACTIONS)[number];
|
|
18
|
+
export type ChildState = {
|
|
19
|
+
readonly code: ChildStateCode;
|
|
20
|
+
readonly title?: string;
|
|
21
|
+
readonly features?: readonly string[];
|
|
22
|
+
readonly minHost?: string;
|
|
23
|
+
readonly reason?: string;
|
|
24
|
+
};
|
|
25
|
+
export type ChildStateCopy = {
|
|
26
|
+
readonly title: string;
|
|
27
|
+
readonly detail: string;
|
|
28
|
+
readonly action?: ChildAction;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=child-state-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child-state-contract.d.ts","sourceRoot":"","sources":["../src/child-state-contract.js"],"names":[],"mappings":"AAgCA,8CAA8C;AAC9C,4CADY,MAAM,GAAiB,OAAO,CAGzC;AAED;;;;GAIG;AACH,0CAJW,UAAU,UACV,MAAM,GACJ,cAAc,CAmC1B;AA1ED;;;;GAIG;AAEH,oQAcI;AAEJ,2DAAyF;6BAE3E,CAAA,OAAO,iBAAiB,EAAC,MAAM,CAAC;0BAChC,CAAA,OAAO,aAAa,EAAC,MAAM,CAAC;yBAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;6BACtJ;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe-client-error.d.ts","sourceRoot":"","sources":["../src/describe-client-error.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"describe-client-error.d.ts","sourceRoot":"","sources":["../src/describe-client-error.js"],"names":[],"mappings":"AA2BA;;;;;;;;;;GAUG;AACH,2CAHW,OAAO,GACL,oBAAoB,CA+BhC;mCAjEa;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -76,6 +76,9 @@ export type InstallInstructionMode = import("@econ-v1/ports").InstallInstruction
|
|
|
76
76
|
export type MediaPreferencesPort = import("@econ-v1/ports").MediaPreferencesPort;
|
|
77
77
|
export type StageAvailability = import("@econ-v1/ports").StageAvailability;
|
|
78
78
|
export type StageCatalogEntry = import("@econ-v1/ports").StageCatalogEntry;
|
|
79
|
+
export type CatalogRejectionReason = import("@econ-v1/ports").CatalogRejectionReason;
|
|
80
|
+
export type CatalogRejectedApp = import("@econ-v1/ports").CatalogRejectedApp;
|
|
81
|
+
export type StageCatalogMeta = import("@econ-v1/ports").StageCatalogMeta;
|
|
79
82
|
export type StagePerformanceSignal = import("@econ-v1/ports").StagePerformanceSignal;
|
|
80
83
|
export type StagePerformanceViolationKind = import("@econ-v1/ports").StagePerformanceViolationKind;
|
|
81
84
|
export type StageResourceObserverPort = import("@econ-v1/ports").StageResourceObserverPort;
|
|
@@ -185,6 +188,9 @@ export type StageContext = import("./stage-context.js").StageContext;
|
|
|
185
188
|
export type StageModule = import("./stage-context.js").StageModule;
|
|
186
189
|
export type RpcTransport = import("./transport.js").RpcTransport;
|
|
187
190
|
export type RpcTransportState = import("./transport.js").RpcTransportState;
|
|
191
|
+
export type ChildState = import("./child-state-contract.js").ChildState;
|
|
192
|
+
export type ChildStateCopy = import("./child-state-contract.js").ChildStateCopy;
|
|
193
|
+
export type ChildAction = import("./child-state-contract.js").ChildAction;
|
|
188
194
|
export { DOMAIN_ERROR_CODES, DomainError, SYNC_ERROR_CODES, SyncError, TRANSPORT_ERROR_CODES, TransportError } from "@econ-v1/domain";
|
|
189
195
|
export { deserializeClientError, isJsonValue, isSerializableClientError, serializeClientError } from "./errors.js";
|
|
190
196
|
export { DEFAULT_REQUEST_TIMEOUT_MS, KernelRpcTimeoutError, MessagePortKernelRpcClient } from "./message-port-client.js";
|
|
@@ -196,12 +202,13 @@ export { FACTORY_RESET_ARM_COMMAND, FACTORY_RESET_CANCEL_COMMAND, FACTORY_RESET_
|
|
|
196
202
|
export { CLIENT_DEVICE_PAIRING_STATUS_QUERY, CLIENT_DEVICE_WIRE_ERROR_DEVICE_LIMIT_EXCEEDED, CLIENT_DEVICE_WIRE_ERROR_DEVICE_NOT_REGISTERED, CLIENT_DEVICE_WIRE_ERROR_LAST_DEVICE, CLIENT_DEVICE_WIRE_ERROR_LAST_DEVICE_PROTECTED, CLIENT_DEVICE_WIRE_ERROR_NAME_TAKEN } from "./pairing-status-contract.js";
|
|
197
203
|
export { DEVICE_CLEANUP_CANCEL_COMMAND, DEVICE_CLEANUP_QUERY, DEVICE_CLEANUP_REQUEST_COMMAND, DEVICE_CLEANUP_STATUS_COMMAND } from "./device-cleanup-contract.js";
|
|
198
204
|
export { CONNECTIVITY_STATE_QUERY, TRANSPORT_STATE_QUERY, TRANSPORT_STATE_QUERY_V2 } from "./transport-contract.js";
|
|
199
|
-
export { isStageReady, normalizeStageAvailability, STAGE_AVAILABILITY, STAGE_CATALOG_AVAILABILITY_OPT_IN } from "./stage-catalog-contract.js";
|
|
205
|
+
export { isStageReady, normalizeStageAvailability, STAGE_AVAILABILITY, STAGE_CATALOG_AVAILABILITY_OPT_IN, STAGE_CATALOG_ENVELOPE_OPT_IN, STAGE_CATALOG_META_QUERY, STAGE_REJECTED_QUERY } from "./stage-catalog-contract.js";
|
|
200
206
|
export { DISCOVER_NODE_COMMAND, DISCOVERY_PROBE_COMMAND, DISCOVERY_PROMOTE_COMMAND, DISCOVERY_QUERY, isDiscoverNodePayload, isProbeCandidatesPayload, isPromoteCandidatePayload } from "./onboarding/discovery-contract.js";
|
|
201
207
|
export { isOnboardingCommand, ONBOARDING_COMMAND, ONBOARDING_EVENTS, ONBOARDING_FLOW_QUERY, ONBOARDING_LCD_SCREEN_QUERY, ONBOARDING_STATUS_QUERY, ONBOARDING_STEP_IDS } from "./onboarding/onboarding-contract.js";
|
|
202
208
|
export { TRUST_INSTALL_RESTART_COMMAND, TRUST_SKIP_COMMAND, TRUST_STATUS_QUERY, TRUST_VERIFY_COMMAND, isTrustInstallRestartPayload, isTrustSkipPayload, isTrustVerifyPayload } from "./trust-contract.js";
|
|
203
209
|
export { isOwnerClaimCompletePayload, OWNER_CLAIM_COMPLETE_COMMAND, OWNER_CLAIM_PREPARE_COMMAND } from "./onboarding/owner-claim-contract.js";
|
|
204
210
|
export { deserializeRpcEvent, deserializeRpcRequest, deserializeRpcResponse, ipPoolHealthChangedEvent, serializeRpcEvent, serializeRpcRequest, serializeRpcResponse } from "./protocol.js";
|
|
211
|
+
export { CHILD_ACTIONS, CHILD_STATE_CODES, describeChildState, isTransientChildState } from "./child-state-contract.js";
|
|
205
212
|
export { createNodeHealthQuery, NODE_HEALTH_QUERY } from "./node-health-query.js";
|
|
206
213
|
export { createResponsivenessTracker, EMA_HOLD_MS } from "./node-responsiveness.js";
|
|
207
214
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
|
|
@@ -58,5 +58,11 @@ export const STAGE_AVAILABILITY: Readonly<Record<"BLOCKED" | "DORMANT" | "READY"
|
|
|
58
58
|
* on every entry, which is how a new client tells a new daemon from an old one.
|
|
59
59
|
*/
|
|
60
60
|
export const STAGE_CATALOG_AVAILABILITY_OPT_IN: "availability=v1";
|
|
61
|
+
/** Opt-in that returns `{ host, stages, rejected }` instead of the bare stage array. */
|
|
62
|
+
export const STAGE_CATALOG_ENVELOPE_OPT_IN: "envelope=v2";
|
|
63
|
+
/** Installed UI apps the node could not catalogue, with a typed reason. */
|
|
64
|
+
export const STAGE_REJECTED_QUERY: "stages.rejected.v1";
|
|
65
|
+
/** Single row: whether the last catalog was authoritative, and the host's contract features. */
|
|
66
|
+
export const STAGE_CATALOG_META_QUERY: "stages.catalog-meta.v1";
|
|
61
67
|
import type { StageAvailability } from "@econ-v1/ports";
|
|
62
68
|
//# sourceMappingURL=stage-catalog-contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-catalog-contract.d.ts","sourceRoot":"","sources":["../src/stage-catalog-contract.js"],"names":[],"mappings":"AAoCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,kDAHW,OAAO,GACL,iBAAiB,CAQ7B;AAED;;;;;;;;GAQG;AACH,oCAHW;IAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAInB;AAzED,0DAA0D;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,iCAFU,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAM3E;AAEH;;;;;;GAMG;AACH,gDAAuE,iBAAiB,CAAE;
|
|
1
|
+
{"version":3,"file":"stage-catalog-contract.d.ts","sourceRoot":"","sources":["../src/stage-catalog-contract.js"],"names":[],"mappings":"AAoCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,kDAHW,OAAO,GACL,iBAAiB,CAQ7B;AAED;;;;;;;;GAQG;AACH,oCAHW;IAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAInB;AAzED,0DAA0D;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,iCAFU,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAM3E;AAEH;;;;;;GAMG;AACH,gDAAuE,iBAAiB,CAAE;AA2C1F,wFAAwF;AACxF,4CAAmE,aAAa,CAAE;AAClF,2EAA2E;AAC3E,mCAA0D,oBAAoB,CAAE;AAChF,gGAAgG;AAChG,uCAA8D,wBAAwB,CAAE;uCAhFjD,gBAAgB"}
|
package/dist/stage-context.d.ts
CHANGED
|
@@ -19,6 +19,24 @@ export type MountedStage = {
|
|
|
19
19
|
setInput(input: JsonValue): Promise<void>;
|
|
20
20
|
};
|
|
21
21
|
export type StageLoadHandler = (appName: string, slot: Element, options?: StageLoadOptions) => Promise<MountedStage>;
|
|
22
|
+
export type StageChildState = {
|
|
23
|
+
readonly code: "ready" | "starting" | "preparing" | "updating" | "cache-failed" | "blocked" | "needs-approval" | "needs-host-update" | "package-broken" | "offline-unavailable" | "needs-first-sync" | "not-installed" | "unavailable-on-this-node";
|
|
24
|
+
readonly title?: string;
|
|
25
|
+
readonly features?: readonly string[];
|
|
26
|
+
readonly minHost?: string;
|
|
27
|
+
readonly reason?: string;
|
|
28
|
+
};
|
|
29
|
+
export type StageChildStateCopy = {
|
|
30
|
+
readonly title: string;
|
|
31
|
+
readonly detail: string;
|
|
32
|
+
readonly action?: "retry-preparation";
|
|
33
|
+
};
|
|
34
|
+
export type StageHost = {
|
|
35
|
+
load: StageLoadHandler;
|
|
36
|
+
watch?: (appName: string, listener: (state: StageChildState) => void) => Unsubscribe;
|
|
37
|
+
describe?: (state: StageChildState, title?: string) => StageChildStateCopy;
|
|
38
|
+
perform?: (appName: string, action: "retry-preparation") => Promise<void>;
|
|
39
|
+
};
|
|
22
40
|
export type StageContextShared = {
|
|
23
41
|
readonly app: {
|
|
24
42
|
readonly name: string;
|
|
@@ -32,9 +50,7 @@ export type StageContextShared = {
|
|
|
32
50
|
liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void): Unsubscribe;
|
|
33
51
|
query<T>(name: QueryName, params: unknown): Promise<T>;
|
|
34
52
|
readonly composition?: StageComposition;
|
|
35
|
-
readonly stage:
|
|
36
|
-
load: StageLoadHandler;
|
|
37
|
-
};
|
|
53
|
+
readonly stage: StageHost;
|
|
38
54
|
};
|
|
39
55
|
export type StageHostShared = {
|
|
40
56
|
navigate(path: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-context.d.ts","sourceRoot":"","sources":["../src/stage-context.js"],"names":[],"mappings":"8BAEc,OAAO,iBAAiB,EAAE,eAAe;wBACzC,OAAO,iBAAiB,EAAE,SAAS;0BACnC,OAAO,aAAa,EAAE,WAAW;2BACjC,OAAO,sBAAsB,EAAE,YAAY;gCAC3C,OAAO,4BAA4B,EAAE,iBAAiB;iCACtD,OAAO,6BAA6B,EAAE,kBAAkB;wBACxD,OAAO,iBAAiB,EAAE,SAAS;+BACnC;IAAE,QAAQ,IAAI,SAAS,CAAC;IAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,WAAW,CAAC;IAAC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;+BACnI;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;CAAE;2BAC7E;IAAE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;+BACvE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"stage-context.d.ts","sourceRoot":"","sources":["../src/stage-context.js"],"names":[],"mappings":"8BAEc,OAAO,iBAAiB,EAAE,eAAe;wBACzC,OAAO,iBAAiB,EAAE,SAAS;0BACnC,OAAO,aAAa,EAAE,WAAW;2BACjC,OAAO,sBAAsB,EAAE,YAAY;gCAC3C,OAAO,4BAA4B,EAAE,iBAAiB;iCACtD,OAAO,6BAA6B,EAAE,kBAAkB;wBACxD,OAAO,iBAAiB,EAAE,SAAS;+BACnC;IAAE,QAAQ,IAAI,SAAS,CAAC;IAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,WAAW,CAAC;IAAC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;+BACnI;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;CAAE;2BAC7E;IAAE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;+BACvE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC;8BACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,eAAe,GAAG,0BAA0B,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;kCAC5W;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAAE;wBAC1F;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,KAAK,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;iCACvQ;IACb,QAAY,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAY,CAAC,MAAM,EAAE;QACf,OAAO,CAAC,CAAC,SAAS,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACrH,SAAS,CAAC,CAAC,SAAS,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,WAAW,CAAA;KACtI,CAAC;IACF,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,WAAW,CAAC;IAC9H,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3D,QAAY,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC5C,QAAY,CAAC,KAAK,EAAE,SAAS,CAAA;CAC1B;8BACU;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE;6BACxD,kBAAkB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE;6BAC/E,kBAAkB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE;2BACpM,cAAc,GAAG,cAAc;0BAC/B;IAAE,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@econ-v1/rpc",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.2.0",
|
|
4
4
|
"description": "Typed runtime and contracts for Node client stage-to-kernel RPC",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"author": "Node contributors",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"access": "public"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@econ-v1/domain": "7.
|
|
60
|
-
"@econ-v1/ports": "7.
|
|
59
|
+
"@econ-v1/domain": "7.2.0",
|
|
60
|
+
"@econ-v1/ports": "7.2.0"
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
/**
|
|
3
|
+
* The one truthful state of a composed child, and shell-owned copy for it.
|
|
4
|
+
* Every code here must be documented in docs/development/stages/06-composition-and-notices.md
|
|
5
|
+
* (enforced by scripts/check-stage-docs.mjs).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export const CHILD_STATE_CODES = Object.freeze(/** @type {const} */ ([
|
|
9
|
+
"ready",
|
|
10
|
+
"starting",
|
|
11
|
+
"preparing",
|
|
12
|
+
"updating",
|
|
13
|
+
"cache-failed",
|
|
14
|
+
"blocked",
|
|
15
|
+
"needs-approval",
|
|
16
|
+
"needs-host-update",
|
|
17
|
+
"package-broken",
|
|
18
|
+
"offline-unavailable",
|
|
19
|
+
"needs-first-sync",
|
|
20
|
+
"not-installed",
|
|
21
|
+
"unavailable-on-this-node",
|
|
22
|
+
]));
|
|
23
|
+
|
|
24
|
+
export const CHILD_ACTIONS = Object.freeze(/** @type {const} */ (["retry-preparation"]));
|
|
25
|
+
|
|
26
|
+
/** @typedef {typeof CHILD_STATE_CODES[number]} ChildStateCode */
|
|
27
|
+
/** @typedef {typeof CHILD_ACTIONS[number]} ChildAction */
|
|
28
|
+
/** @typedef {{ readonly code: ChildStateCode, readonly title?: string, readonly features?: readonly string[], readonly minHost?: string, readonly reason?: string }} ChildState */
|
|
29
|
+
/** @typedef {{ readonly title: string, readonly detail: string, readonly action?: ChildAction }} ChildStateCopy */
|
|
30
|
+
|
|
31
|
+
const TRANSIENT = new Set(["starting", "preparing", "updating", "offline-unavailable", "needs-first-sync"]);
|
|
32
|
+
|
|
33
|
+
/** @param {string} code @returns {boolean} */
|
|
34
|
+
export function isTransientChildState(code) {
|
|
35
|
+
return TRANSIENT.has(code);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @param {ChildState} state
|
|
40
|
+
* @param {string} [title] the parent's own label for this child
|
|
41
|
+
* @returns {ChildStateCopy}
|
|
42
|
+
*/
|
|
43
|
+
export function describeChildState(state, title) {
|
|
44
|
+
const name = title ?? state.title ?? "This app";
|
|
45
|
+
switch (state.code) {
|
|
46
|
+
case "ready":
|
|
47
|
+
return { detail: "Ready.", title: name };
|
|
48
|
+
case "starting":
|
|
49
|
+
return { detail: "This opens in a moment.", title: `Starting ${name}…` };
|
|
50
|
+
case "preparing":
|
|
51
|
+
return { detail: "Downloading so it also works offline.", title: `Getting ${name} ready…` };
|
|
52
|
+
case "updating":
|
|
53
|
+
return { detail: "A new version was installed. This finishes by itself.", title: `Updating ${name}…` };
|
|
54
|
+
case "cache-failed":
|
|
55
|
+
return { action: "retry-preparation", detail: "Check your connection and try again.", title: `${name} couldn't be downloaded` };
|
|
56
|
+
case "blocked":
|
|
57
|
+
return { detail: state.reason ?? "This app reported a problem.", title: `${name} can't open right now` };
|
|
58
|
+
case "needs-approval":
|
|
59
|
+
return { detail: "Approve what this app is allowed to do in Settings → Apps.", title: `${name} needs your approval` };
|
|
60
|
+
case "needs-host-update":
|
|
61
|
+
return {
|
|
62
|
+
detail: state.minHost === undefined ? "Update this Node to use it." : `Update this Node to ${state.minHost} or later to use it.`,
|
|
63
|
+
title: `${name} needs a newer Node`,
|
|
64
|
+
};
|
|
65
|
+
case "package-broken":
|
|
66
|
+
return { detail: "Its installed package is damaged. Reinstall or update the app.", title: `${name} can't be opened` };
|
|
67
|
+
case "offline-unavailable":
|
|
68
|
+
return { detail: "It opens when your Node is reachable again.", title: `${name} needs a connection` };
|
|
69
|
+
case "needs-first-sync":
|
|
70
|
+
return { detail: "Connect once to save it for offline use.", title: `${name} isn't saved for offline use yet` };
|
|
71
|
+
case "not-installed":
|
|
72
|
+
return { detail: "Install it on this Node to use it here.", title: `${name} isn't installed` };
|
|
73
|
+
case "unavailable-on-this-node":
|
|
74
|
+
return { detail: "This Node can't provide it.", title: `${name} isn't available` };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -14,6 +14,7 @@ const DOMAIN_COPY = {
|
|
|
14
14
|
"access-code-invalid": { message: "That access code wasn't accepted.", showRetry: false },
|
|
15
15
|
capability_not_declared: { message: "This app asked for something it isn't allowed to use.", showRetry: false },
|
|
16
16
|
capability_unavailable: { message: "This app isn't running on your node.", showRetry: true },
|
|
17
|
+
child_unavailable: { message: "This part of the app isn't available right now.", showRetry: false },
|
|
17
18
|
"code-already-bound": { message: "That access code has already been used.", showRetry: false },
|
|
18
19
|
conflict: { message: "Someone else changed this first.", showRetry: true },
|
|
19
20
|
invalid_request: { message: "Your node couldn't understand that request.", showRetry: false },
|
package/src/index.js
CHANGED
|
@@ -73,6 +73,9 @@
|
|
|
73
73
|
/** @typedef {import("@econ-v1/ports").MediaPreferencesPort} MediaPreferencesPort */
|
|
74
74
|
/** @typedef {import("@econ-v1/ports").StageAvailability} StageAvailability */
|
|
75
75
|
/** @typedef {import("@econ-v1/ports").StageCatalogEntry} StageCatalogEntry */
|
|
76
|
+
/** @typedef {import("@econ-v1/ports").CatalogRejectionReason} CatalogRejectionReason */
|
|
77
|
+
/** @typedef {import("@econ-v1/ports").CatalogRejectedApp} CatalogRejectedApp */
|
|
78
|
+
/** @typedef {import("@econ-v1/ports").StageCatalogMeta} StageCatalogMeta */
|
|
76
79
|
/** @typedef {import("@econ-v1/ports").StagePerformanceSignal} StagePerformanceSignal */
|
|
77
80
|
/** @typedef {import("@econ-v1/ports").StagePerformanceViolationKind} StagePerformanceViolationKind */
|
|
78
81
|
/** @typedef {import("@econ-v1/ports").StageResourceObserverPort} StageResourceObserverPort */
|
|
@@ -233,6 +236,9 @@ export {
|
|
|
233
236
|
normalizeStageAvailability,
|
|
234
237
|
STAGE_AVAILABILITY,
|
|
235
238
|
STAGE_CATALOG_AVAILABILITY_OPT_IN,
|
|
239
|
+
STAGE_CATALOG_ENVELOPE_OPT_IN,
|
|
240
|
+
STAGE_CATALOG_META_QUERY,
|
|
241
|
+
STAGE_REJECTED_QUERY,
|
|
236
242
|
} from "./stage-catalog-contract.js";
|
|
237
243
|
export {
|
|
238
244
|
DISCOVER_NODE_COMMAND,
|
|
@@ -264,5 +270,9 @@ export {
|
|
|
264
270
|
serializeRpcResponse,
|
|
265
271
|
} from "./protocol.js";
|
|
266
272
|
export { describeClientError } from "./describe-client-error.js";
|
|
273
|
+
export { CHILD_ACTIONS, CHILD_STATE_CODES, describeChildState, isTransientChildState } from "./child-state-contract.js";
|
|
274
|
+
/** @typedef {import("./child-state-contract.js").ChildState} ChildState */
|
|
275
|
+
/** @typedef {import("./child-state-contract.js").ChildStateCopy} ChildStateCopy */
|
|
276
|
+
/** @typedef {import("./child-state-contract.js").ChildAction} ChildAction */
|
|
267
277
|
export { createNodeHealthQuery, NODE_HEALTH_QUERY } from "./node-health-query.js";
|
|
268
278
|
export { createResponsivenessTracker, EMA_HOLD_MS } from "./node-responsiveness.js";
|
|
@@ -74,3 +74,10 @@ export function normalizeStageAvailability(value) {
|
|
|
74
74
|
export function isStageReady(entry) {
|
|
75
75
|
return normalizeStageAvailability(entry.availability) === STAGE_AVAILABILITY.READY;
|
|
76
76
|
}
|
|
77
|
+
|
|
78
|
+
/** Opt-in that returns `{ host, stages, rejected }` instead of the bare stage array. */
|
|
79
|
+
export const STAGE_CATALOG_ENVELOPE_OPT_IN = /** @type {const} */ ("envelope=v2");
|
|
80
|
+
/** Installed UI apps the node could not catalogue, with a typed reason. */
|
|
81
|
+
export const STAGE_REJECTED_QUERY = /** @type {const} */ ("stages.rejected.v1");
|
|
82
|
+
/** Single row: whether the last catalog was authoritative, and the host's contract features. */
|
|
83
|
+
export const STAGE_CATALOG_META_QUERY = /** @type {const} */ ("stages.catalog-meta.v1");
|
package/src/stage-context.js
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
/** @typedef {{ readonly input?: JsonValue, readonly onEvent?: (event: JsonValue) => void }} StageLoadOptions */
|
|
12
12
|
/** @typedef {{ unmount(): Promise<void>, setInput(input: JsonValue): Promise<void> }} MountedStage */
|
|
13
13
|
/** @typedef {(appName: string, slot: Element, options?: StageLoadOptions) => Promise<MountedStage>} StageLoadHandler */
|
|
14
|
+
/** @typedef {{ readonly code: "ready" | "starting" | "preparing" | "updating" | "cache-failed" | "blocked" | "needs-approval" | "needs-host-update" | "package-broken" | "offline-unavailable" | "needs-first-sync" | "not-installed" | "unavailable-on-this-node", readonly title?: string, readonly features?: readonly string[], readonly minHost?: string, readonly reason?: string }} StageChildState */
|
|
15
|
+
/** @typedef {{ readonly title: string, readonly detail: string, readonly action?: "retry-preparation" }} StageChildStateCopy */
|
|
16
|
+
/** @typedef {{ load: StageLoadHandler, watch?: (appName: string, listener: (state: StageChildState) => void) => Unsubscribe, describe?: (state: StageChildState, title?: string) => StageChildStateCopy, perform?: (appName: string, action: "retry-preparation") => Promise<void> }} StageHost */
|
|
14
17
|
/** @typedef {{
|
|
15
18
|
* readonly app: { readonly name: string, readonly version: string },
|
|
16
19
|
* readonly events: {
|
|
@@ -21,7 +24,7 @@
|
|
|
21
24
|
* liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void): Unsubscribe,
|
|
22
25
|
* query<T>(name: QueryName, params: unknown): Promise<T>,
|
|
23
26
|
* readonly composition?: StageComposition,
|
|
24
|
-
* readonly stage:
|
|
27
|
+
* readonly stage: StageHost
|
|
25
28
|
* }} StageContextShared */
|
|
26
29
|
/** @typedef {{ navigate(path: string): void, readonly root: Element }} StageHostShared */
|
|
27
30
|
/** @typedef {StageContextShared & { readonly host: StageHostShared & { readonly uiApi: 1 } }} StageContextV1 */
|