@econ-v1/rpc 6.6.0 → 6.10.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/client-device-pending-contract.d.ts +14 -0
- package/dist/client-device-pending-contract.d.ts.map +1 -0
- package/dist/client.d.ts +15 -13
- package/dist/client.d.ts.map +1 -1
- package/dist/device-boot-contract.d.ts +7 -0
- package/dist/device-boot-contract.d.ts.map +1 -0
- package/dist/device-cleanup-contract.d.ts +17 -0
- package/dist/device-cleanup-contract.d.ts.map +1 -0
- package/dist/dialog-contract.d.ts +26 -0
- package/dist/dialog-contract.d.ts.map +1 -0
- package/dist/errors.d.ts +33 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.d.ts +144 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/message-port-client.d.ts +134 -16
- package/dist/message-port-client.d.ts.map +1 -1
- package/dist/node-app-memory-contract.d.ts +10 -0
- package/dist/node-app-memory-contract.d.ts.map +1 -0
- package/dist/onboarding/discovery-contract.d.ts +61 -34
- package/dist/onboarding/discovery-contract.d.ts.map +1 -1
- package/dist/onboarding/onboarding-contract.d.ts +119 -27
- package/dist/onboarding/onboarding-contract.d.ts.map +1 -1
- package/dist/onboarding/owner-claim-contract.d.ts +50 -0
- package/dist/onboarding/owner-claim-contract.d.ts.map +1 -0
- package/dist/pairing-status-contract.d.ts +40 -0
- package/dist/pairing-status-contract.d.ts.map +1 -0
- package/dist/protocol.d.ts +50 -12
- package/dist/protocol.d.ts.map +1 -1
- package/dist/stage-context.d.ts +31 -16
- package/dist/stage-context.d.ts.map +1 -1
- package/dist/sync-cursors-contract.d.ts +6 -0
- package/dist/sync-cursors-contract.d.ts.map +1 -0
- package/dist/system-notice-contract.d.ts +70 -0
- package/dist/system-notice-contract.d.ts.map +1 -0
- package/dist/transport-contract.d.ts +11 -0
- package/dist/transport-contract.d.ts.map +1 -0
- package/dist/transport.d.ts +2 -2
- package/dist/transport.d.ts.map +1 -1
- package/dist/trust-contract.d.ts +23 -0
- package/dist/trust-contract.d.ts.map +1 -0
- package/package.json +16 -12
- package/src/client-device-pending-contract.js +6 -0
- package/src/client.js +26 -0
- package/src/device-boot-contract.js +4 -0
- package/src/device-cleanup-contract.js +9 -0
- package/src/dialog-contract.js +6 -0
- package/src/errors.js +111 -0
- package/src/index.js +194 -0
- package/src/message-port-client.js +628 -0
- package/src/node-app-memory-contract.js +10 -0
- package/src/onboarding/discovery-contract.js +83 -0
- package/src/onboarding/onboarding-contract.js +106 -0
- package/src/onboarding/owner-claim-contract.js +59 -0
- package/src/pairing-status-contract.js +36 -0
- package/src/protocol.js +758 -0
- package/src/stage-context.js +27 -0
- package/src/sync-cursors-contract.js +3 -0
- package/src/system-notice-contract.js +64 -0
- package/src/transport-contract.js +11 -0
- package/src/transport.js +6 -0
- package/src/trust-contract.js +36 -0
- package/dist/client.js +0 -2
- package/dist/client.js.map +0 -1
- package/dist/errors.js +0 -57
- package/dist/errors.js.map +0 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/message-port-client.js +0 -365
- package/dist/message-port-client.js.map +0 -1
- package/dist/onboarding/discovery-contract.js +0 -42
- package/dist/onboarding/discovery-contract.js.map +0 -1
- package/dist/onboarding/onboarding-contract.js +0 -37
- package/dist/onboarding/onboarding-contract.js.map +0 -1
- package/dist/protocol.js +0 -295
- package/dist/protocol.js.map +0 -1
- package/dist/stage-context.js +0 -2
- package/dist/stage-context.js.map +0 -1
- package/dist/transport.js +0 -2
- package/dist/transport.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-context.d.ts","sourceRoot":"","sources":["../src/stage-context.
|
|
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;iCAC3C,OAAO,6BAA6B,EAAE,kBAAkB;2BACxD;IAAE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;+BAC5B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC;iCACzD;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,KAAK,EAAE;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAA;CAC3C;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,aAAa,EAAE,kBAAkB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE;2BAC3J,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-cursors-contract.d.ts","sourceRoot":"","sources":["../src/sync-cursors-contract.js"],"names":[],"mappings":"AACA,iCAAkC,iBAAiB,CAAC;6BACtC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export type SystemNoticeSeverity = "error" | "info" | "security" | "success" | "warning";
|
|
2
|
+
export type SystemNoticeActionKind = "primary" | "secondary";
|
|
3
|
+
export type SystemNoticeBlockScope = "shell" | "stage";
|
|
4
|
+
export type SystemNoticeState = "busy" | "failed" | "idle" | "resolved";
|
|
5
|
+
export type SystemNotice = SystemNoticeInput;
|
|
6
|
+
export type SystemNoticeListener = (notices: readonly SystemNotice[]) => void;
|
|
7
|
+
export type SystemNoticeAction = {
|
|
8
|
+
/**
|
|
9
|
+
* Stable action identity, rendered as `data-action` on the button.
|
|
10
|
+
* `kind` only says how an action LOOKS ("primary"/"secondary"), so two actions of the same
|
|
11
|
+
* kind on one notice are otherwise distinguishable only by slot position — publishers that
|
|
12
|
+
* need to style or target one specific action set an `id` instead of relying on order.
|
|
13
|
+
*/
|
|
14
|
+
id?: string;
|
|
15
|
+
kind: SystemNoticeActionKind;
|
|
16
|
+
label: string;
|
|
17
|
+
onSelect: () => void | Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
export type SystemNoticeDetail = {
|
|
20
|
+
readonly label: string;
|
|
21
|
+
readonly value: string;
|
|
22
|
+
};
|
|
23
|
+
export type SystemNoticeDisclosure = {
|
|
24
|
+
readonly body: string;
|
|
25
|
+
readonly summary: string;
|
|
26
|
+
};
|
|
27
|
+
export type SystemNoticeBody = {
|
|
28
|
+
readonly details?: readonly SystemNoticeDetail[];
|
|
29
|
+
readonly disclosure?: SystemNoticeDisclosure;
|
|
30
|
+
readonly steps?: readonly string[];
|
|
31
|
+
};
|
|
32
|
+
export type SystemNoticeInput = {
|
|
33
|
+
actions?: readonly SystemNoticeAction[];
|
|
34
|
+
blocking?: SystemNoticeBlockScope;
|
|
35
|
+
body?: SystemNoticeBody;
|
|
36
|
+
dismissible: boolean;
|
|
37
|
+
id: string;
|
|
38
|
+
message: string;
|
|
39
|
+
persistent: boolean;
|
|
40
|
+
priority?: number;
|
|
41
|
+
severity: SystemNoticeSeverity;
|
|
42
|
+
source: string;
|
|
43
|
+
state?: SystemNoticeState;
|
|
44
|
+
title: string;
|
|
45
|
+
};
|
|
46
|
+
export type SystemNoticePatch = {
|
|
47
|
+
actions?: readonly SystemNoticeAction[] | undefined;
|
|
48
|
+
blocking?: SystemNoticeBlockScope | undefined;
|
|
49
|
+
body?: SystemNoticeBody | undefined;
|
|
50
|
+
dismissible?: boolean | undefined;
|
|
51
|
+
message?: string | undefined;
|
|
52
|
+
persistent?: boolean | undefined;
|
|
53
|
+
priority?: number | undefined;
|
|
54
|
+
severity?: SystemNoticeSeverity | undefined;
|
|
55
|
+
source?: string | undefined;
|
|
56
|
+
state?: SystemNoticeState | undefined;
|
|
57
|
+
title?: string | undefined;
|
|
58
|
+
};
|
|
59
|
+
export type SystemNoticeHandle = {
|
|
60
|
+
dismiss: () => void;
|
|
61
|
+
update: (patch: SystemNoticePatch) => void;
|
|
62
|
+
};
|
|
63
|
+
export type SystemNoticeCenter = {
|
|
64
|
+
dismiss: (id: string) => void;
|
|
65
|
+
getAll: () => readonly SystemNotice[];
|
|
66
|
+
publish: (input: SystemNoticeInput) => SystemNoticeHandle;
|
|
67
|
+
subscribe: (listener: SystemNoticeListener) => () => void;
|
|
68
|
+
update: (id: string, patch: SystemNoticePatch) => void;
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=system-notice-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-notice-contract.d.ts","sourceRoot":"","sources":["../src/system-notice-contract.js"],"names":[],"mappings":"mCAGc,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS;qCACrD,SAAS,GAAG,WAAW;qCACvB,OAAO,GAAG,OAAO;gCACjB,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU;2BACvC,iBAAiB;mCACjB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,IAAI;;;;;;;;SAG1C,MAAM;UAIN,sBAAsB;WACtB,MAAM;cACN,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;iCAE1B;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;qCAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;+BACnD;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;;cAGtI,SAAS,kBAAkB,EAAE;eAC7B,sBAAsB;WACtB,gBAAgB;iBAChB,OAAO;QACP,MAAM;aACN,MAAM;gBACN,OAAO;eACP,MAAM;cACN,oBAAoB;YACpB,MAAM;YACN,iBAAiB;WACjB,MAAM;;;cAIN,SAAS,kBAAkB,EAAE,GAAG,SAAS;eACzC,sBAAsB,GAAG,SAAS;WAClC,gBAAgB,GAAG,SAAS;kBAC5B,OAAO,GAAG,SAAS;cACnB,MAAM,GAAG,SAAS;iBAClB,OAAO,GAAG,SAAS;eACnB,MAAM,GAAG,SAAS;eAClB,oBAAoB,GAAG,SAAS;aAChC,MAAM,GAAG,SAAS;YAClB,iBAAiB,GAAG,SAAS;YAC7B,MAAM,GAAG,SAAS;;;aAIlB,MAAM,IAAI;YACV,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI;;;aAIlC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;YACpB,MAAM,SAAS,YAAY,EAAE;aAC7B,CAAC,KAAK,EAAE,iBAAiB,KAAK,kBAAkB;eAChD,CAAC,QAAQ,EAAE,oBAAoB,KAAK,MAAM,IAAI;YAC9C,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,IAAI"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query names for the kernel's transport state.
|
|
3
|
+
*
|
|
4
|
+
* `v1` is a compatibility shim: it collapses the transitional `connecting` and
|
|
5
|
+
* `reconnecting` states down to plain `offline` so pre-state-machine consumers
|
|
6
|
+
* keep seeing the binary connected/offline world they were written against.
|
|
7
|
+
* `v2` serves the state verbatim. Delete `v1` with its last consumer.
|
|
8
|
+
*/
|
|
9
|
+
export const TRANSPORT_STATE_QUERY: "transport.state.v1";
|
|
10
|
+
export const TRANSPORT_STATE_QUERY_V2: "transport.state.v2";
|
|
11
|
+
//# sourceMappingURL=transport-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-contract.d.ts","sourceRoot":"","sources":["../src/transport-contract.js"],"names":[],"mappings":"AACA;;;;;;;GAOG;AACH,oCAA2D,oBAAoB,CAAE;AACjF,uCAA8D,oBAAoB,CAAE"}
|
package/dist/transport.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export type RpcTransportState = "closed" | "open";
|
|
2
|
-
export
|
|
2
|
+
export type RpcTransport = {
|
|
3
3
|
close(): void;
|
|
4
4
|
send(message: string): void;
|
|
5
5
|
subscribe(listener: (message: string) => void): () => void;
|
|
6
6
|
subscribeClose(listener: () => void): () => void;
|
|
7
7
|
readonly state: RpcTransportState;
|
|
8
|
-
}
|
|
8
|
+
};
|
|
9
9
|
//# sourceMappingURL=transport.d.ts.map
|
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.js"],"names":[],"mappings":"gCAEc,QAAQ,GAAG,MAAM;2BACjB;IAAE,KAAK,IAAI,IAAI,CAAC;IAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {unknown} value
|
|
3
|
+
* @returns {value is Record<string, never>}
|
|
4
|
+
*/
|
|
5
|
+
export function isTrustInstallRestartPayload(value: unknown): value is Record<string, never>;
|
|
6
|
+
/**
|
|
7
|
+
* @param {unknown} value
|
|
8
|
+
* @returns {value is Record<string, never>}
|
|
9
|
+
*/
|
|
10
|
+
export function isTrustVerifyPayload(value: unknown): value is Record<string, never>;
|
|
11
|
+
/**
|
|
12
|
+
* @param {unknown} value
|
|
13
|
+
* @returns {value is Record<string, never>}
|
|
14
|
+
*/
|
|
15
|
+
export function isTrustSkipPayload(value: unknown): value is Record<string, never>;
|
|
16
|
+
/** @typedef {import("@econ-v1/domain").CertificateTrustSnapshot} CertificateTrustSnapshot */
|
|
17
|
+
export const TRUST_STATUS_QUERY: "trust.status.v1";
|
|
18
|
+
export const TRUST_INSTALL_RESTART_COMMAND: "trust.install.restart.v1";
|
|
19
|
+
export const TRUST_VERIFY_COMMAND: "trust.verify.v1";
|
|
20
|
+
export const TRUST_SKIP_COMMAND: "trust.skip.v1";
|
|
21
|
+
export type CertificateTrustSnapshot = import("@econ-v1/domain").CertificateTrustSnapshot;
|
|
22
|
+
export type TrustStatusView = CertificateTrustSnapshot;
|
|
23
|
+
//# sourceMappingURL=trust-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-contract.d.ts","sourceRoot":"","sources":["../src/trust-contract.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,oDAHW,OAAO,GACL,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAI1C;AACD;;;GAGG;AACH,4CAHW,OAAO,GACL,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAI1C;AACD;;;GAGG;AACH,0CAHW,OAAO,GACL,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAI1C;AAzBD,6FAA6F;AAC7F,iCAAkC,iBAAiB,CAAC;AACpD,4CAA6C,0BAA0B,CAAC;AACxE,mCAAoC,iBAAiB,CAAC;AACtD,iCAAkC,eAAe,CAAC;uCAJpC,OAAO,iBAAiB,EAAE,wBAAwB;8BAiClD,wBAAwB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@econ-v1/rpc",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.10.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",
|
|
@@ -21,28 +21,32 @@
|
|
|
21
21
|
"typescript"
|
|
22
22
|
],
|
|
23
23
|
"type": "module",
|
|
24
|
-
"main": "./
|
|
24
|
+
"main": "./src/index.js",
|
|
25
25
|
"types": "./dist/index.d.ts",
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "rm -rf dist && tsc -
|
|
27
|
+
"build": "rm -rf dist && tsc -p tsconfig.publish.json --pretty false",
|
|
28
|
+
"check": "tsc -p jsconfig.json --pretty false",
|
|
28
29
|
"lint": "eslint src",
|
|
29
|
-
"prepack": "npm run build",
|
|
30
|
+
"prepack": "npm run build && node ../scripts/check-public-package.mjs .",
|
|
30
31
|
"test": "vitest run --passWithNoTests",
|
|
31
|
-
"
|
|
32
|
+
"check:consumer": "node ../scripts/check-negative-type-contracts.mjs --config jsconfig.consumer.json",
|
|
33
|
+
"type-check": "yarn run check && yarn check:consumer"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"typescript": "~5.8.3"
|
|
32
37
|
},
|
|
33
38
|
"exports": {
|
|
34
39
|
".": {
|
|
35
40
|
"types": "./dist/index.d.ts",
|
|
36
|
-
"import": "./
|
|
37
|
-
"default": "./
|
|
41
|
+
"import": "./src/index.js",
|
|
42
|
+
"default": "./src/index.js"
|
|
38
43
|
}
|
|
39
44
|
},
|
|
40
45
|
"files": [
|
|
46
|
+
"src/**/*.js",
|
|
41
47
|
"dist/**/*.d.ts",
|
|
42
48
|
"dist/**/*.d.ts.map",
|
|
43
|
-
"
|
|
44
|
-
"dist/**/*.js.map",
|
|
45
|
-
"!dist/**/*.test.*"
|
|
49
|
+
"!src/**/*.test.js"
|
|
46
50
|
],
|
|
47
51
|
"sideEffects": false,
|
|
48
52
|
"engines": {
|
|
@@ -52,7 +56,7 @@
|
|
|
52
56
|
"access": "public"
|
|
53
57
|
},
|
|
54
58
|
"dependencies": {
|
|
55
|
-
"@econ-v1/domain": "6.
|
|
56
|
-
"@econ-v1/ports": "6.
|
|
59
|
+
"@econ-v1/domain": "6.10.0",
|
|
60
|
+
"@econ-v1/ports": "6.10.0"
|
|
57
61
|
}
|
|
58
62
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
export const CLIENT_DEVICE_PENDING_QUERY = "client-device.pending.v2";
|
|
3
|
+
/**
|
|
4
|
+
* One row per live pending pairing request, keyed by operationHash.
|
|
5
|
+
* @typedef {{ readonly id: string, readonly operationHash: string, readonly action: string, readonly deviceName: string, readonly requestedAt: string, readonly remainingSeconds: number, readonly targetDevice: string }} ClientDevicePendingRow
|
|
6
|
+
*/
|
package/src/client.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
/** @typedef {import("@econ-v1/domain").DomainEvent} DomainEvent */
|
|
4
|
+
/** @typedef {import("@econ-v1/domain").KernelEventType} KernelEventType */
|
|
5
|
+
/** @typedef {import("@econ-v1/domain").QueryName} QueryName */
|
|
6
|
+
/** @typedef {() => void} Unsubscribe */
|
|
7
|
+
/** @typedef {{ readonly appName: string, readonly entryUrl: string, readonly manifestSha256: string, readonly version: string }} PreparedStage */
|
|
8
|
+
/** @typedef {{
|
|
9
|
+
* command<T>(name: string, payload: unknown): Promise<T>,
|
|
10
|
+
* liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void): Unsubscribe,
|
|
11
|
+
* openStageSession(appName: string, manifestSha256: string): Promise<StageRpcSession>,
|
|
12
|
+
* prepareStage(appName: string): Promise<PreparedStage>,
|
|
13
|
+
* publish<T extends KernelEventType>(type: T, payload: import("@econ-v1/domain").KernelEventPayload<T>): Promise<void>,
|
|
14
|
+
* query<T>(name: QueryName, params: unknown): Promise<T>,
|
|
15
|
+
* subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void): Unsubscribe
|
|
16
|
+
* }} KernelRpcClient */
|
|
17
|
+
/** @typedef {{
|
|
18
|
+
* close(): void,
|
|
19
|
+
* invokeCapability<T>(capability: string, payload: unknown): Promise<T>,
|
|
20
|
+
* liveQuery<T>(name: QueryName, params: unknown, listener: (diff: import("@econ-v1/domain").QueryDiff<T>) => void): Unsubscribe,
|
|
21
|
+
* publish<T extends KernelEventType>(type: T, payload: import("@econ-v1/domain").KernelEventPayload<T>): Promise<void>,
|
|
22
|
+
* query<T>(name: QueryName, params: unknown): Promise<T>,
|
|
23
|
+
* subscribe<T extends KernelEventType>(type: T, listener: (event: import("@econ-v1/domain").KernelEventByType<T>) => void): Unsubscribe
|
|
24
|
+
* }} StageRpcSession */
|
|
25
|
+
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
/** @typedef {{ readonly id: "boot-state"; readonly kind: "unpaired" | "paired" | "paired-expired" | "revoked"; readonly delegationExpiresAt?: string; }} DeviceBootStateRow */
|
|
3
|
+
export {};
|
|
4
|
+
export const DEVICE_BOOT_STATE_QUERY = /** @type {const} */ ("device.boot-state.v1");
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
export const DEVICE_CLEANUP_REQUEST_COMMAND = "client-device.cleanup-request.v1";
|
|
3
|
+
export const DEVICE_CLEANUP_STATUS_COMMAND = "client-device.cleanup-status.v1";
|
|
4
|
+
export const DEVICE_CLEANUP_CANCEL_COMMAND = "client-device.cleanup-cancel.v1";
|
|
5
|
+
export const DEVICE_CLEANUP_QUERY = "client-device.cleanup.v1";
|
|
6
|
+
/** @typedef {"pending" | "approved" | "declined" | "expired" | "no_candidate" | "not_needed" | "failed"} CleanupState */
|
|
7
|
+
/** @typedef {{ readonly sessionId: string, readonly state: CleanupState }} DeviceCleanupRequestResult */
|
|
8
|
+
/** @typedef {{ readonly state: CleanupState }} DeviceCleanupStatusResult */
|
|
9
|
+
/** @typedef {{ readonly id: "device-cleanup", readonly state: CleanupState }} DeviceCleanupRow */
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
/** @typedef {{ readonly cancel?: boolean, readonly href?: string, readonly id: string, readonly label: string, readonly onSelect?: (handle: DialogHandle) => void | Promise<void>, readonly variant?: "neutral" | "primary" }} DialogAction */
|
|
3
|
+
/** @typedef {{ readonly body: readonly string[], readonly emphasis?: string, readonly initialFocus?: string, readonly actions: readonly DialogAction[], readonly title: string }} DialogRequest */
|
|
4
|
+
/** @typedef {{ readonly closed: Promise<string | undefined>, close(): void, setActionBusy(id: string, busy: boolean): void, setError(message: string | undefined): void, update(patch: Partial<DialogRequest>): void }} DialogHandle */
|
|
5
|
+
/** @typedef {{ open(request: DialogRequest): DialogHandle }} DialogCenter */
|
|
6
|
+
export {};
|
package/src/errors.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import {
|
|
3
|
+
DOMAIN_ERROR_CODES,
|
|
4
|
+
DomainError,
|
|
5
|
+
SYNC_ERROR_CODES,
|
|
6
|
+
SyncError,
|
|
7
|
+
TRANSPORT_ERROR_CODES,
|
|
8
|
+
TransportError,
|
|
9
|
+
} from "@econ-v1/domain";
|
|
10
|
+
|
|
11
|
+
/** @typedef {import("@econ-v1/domain").ClientError} ClientError */
|
|
12
|
+
/** @typedef {import("@econ-v1/domain").JsonObject} JsonObject */
|
|
13
|
+
/** @typedef {import("@econ-v1/domain").JsonValue} JsonValue */
|
|
14
|
+
/** @typedef {import("@econ-v1/domain").SerializableClientError} SerializableClientError */
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @param {ClientError} error
|
|
18
|
+
* @returns {SerializableClientError}
|
|
19
|
+
*/
|
|
20
|
+
export function serializeClientError(error) {
|
|
21
|
+
return error.toJSON();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @param {unknown} value
|
|
26
|
+
* @returns {ClientError}
|
|
27
|
+
*/
|
|
28
|
+
export function deserializeClientError(value) {
|
|
29
|
+
if (!isSerializableClientError(value)) throw new TypeError("Invalid RPC error");
|
|
30
|
+
|
|
31
|
+
switch (value.kind) {
|
|
32
|
+
case "domain":
|
|
33
|
+
return new DomainError(errorOptions(value));
|
|
34
|
+
case "sync":
|
|
35
|
+
return new SyncError(errorOptions(value));
|
|
36
|
+
case "transport":
|
|
37
|
+
return new TransportError(errorOptions(value));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @param {unknown} value
|
|
43
|
+
* @returns {value is SerializableClientError}
|
|
44
|
+
*/
|
|
45
|
+
export function isSerializableClientError(value) {
|
|
46
|
+
if (!isJsonObject(value) || typeof value.code !== "string" || typeof value.kind !== "string" || typeof value.message !== "string") {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (value.details !== undefined && !isJsonObject(value.details)) return false;
|
|
51
|
+
|
|
52
|
+
switch (value.kind) {
|
|
53
|
+
case "domain":
|
|
54
|
+
return includesCode(DOMAIN_ERROR_CODES, value.code);
|
|
55
|
+
case "sync":
|
|
56
|
+
return includesCode(SYNC_ERROR_CODES, value.code);
|
|
57
|
+
case "transport":
|
|
58
|
+
return includesCode(TRANSPORT_ERROR_CODES, value.code);
|
|
59
|
+
default:
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @param {unknown} value
|
|
66
|
+
* @returns {value is JsonValue}
|
|
67
|
+
*/
|
|
68
|
+
export function isJsonValue(value) {
|
|
69
|
+
if (value === null || typeof value === "boolean" || typeof value === "string") return true;
|
|
70
|
+
if (typeof value === "number") return Number.isFinite(value);
|
|
71
|
+
if (Array.isArray(value)) return value.every(isJsonValue);
|
|
72
|
+
return isJsonObject(value);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @param {unknown} value
|
|
77
|
+
* @returns {value is JsonObject}
|
|
78
|
+
*/
|
|
79
|
+
export function isJsonObject(value) {
|
|
80
|
+
return isPlainObject(value) && Object.values(value).every(isJsonValue);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @template {string} TKind
|
|
85
|
+
* @template {string} TCode
|
|
86
|
+
* @param {import("@econ-v1/domain").SerializableError<TKind, TCode>} value
|
|
87
|
+
* @returns {import("@econ-v1/domain").ErrorOptions<TCode>}
|
|
88
|
+
*/
|
|
89
|
+
function errorOptions(value) {
|
|
90
|
+
return value.details === undefined
|
|
91
|
+
? { code: value.code, message: value.message }
|
|
92
|
+
: { code: value.code, details: value.details, message: value.message };
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @template {readonly string[]} TCodes
|
|
97
|
+
* @param {TCodes} codes
|
|
98
|
+
* @param {string} value
|
|
99
|
+
* @returns {value is TCodes[number]}
|
|
100
|
+
*/
|
|
101
|
+
function includesCode(codes, value) {
|
|
102
|
+
return /** @type {readonly string[]} */ (codes).includes(value);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* @param {unknown} value
|
|
107
|
+
* @returns {value is Record<string, unknown>}
|
|
108
|
+
*/
|
|
109
|
+
function isPlainObject(value) {
|
|
110
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
|
|
111
|
+
}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
/** @typedef {import("./client.js").KernelRpcClient} KernelRpcClient */
|
|
4
|
+
/** @typedef {import("./client.js").PreparedStage} PreparedStage */
|
|
5
|
+
/** @typedef {import("./client.js").StageRpcSession} StageRpcSession */
|
|
6
|
+
/** @typedef {import("./client.js").Unsubscribe} Unsubscribe */
|
|
7
|
+
/** @typedef {import("@econ-v1/domain").ClientError} ClientError */
|
|
8
|
+
/** @typedef {import("@econ-v1/domain").DomainEvent} DomainEvent */
|
|
9
|
+
/** @typedef {import("@econ-v1/domain").DomainErrorCode} DomainErrorCode */
|
|
10
|
+
/** @template {KernelEventType} T @typedef {import("@econ-v1/domain").KernelEventByType<T>} KernelEventByType */
|
|
11
|
+
/** @template {KernelEventType} T @typedef {import("@econ-v1/domain").KernelEventPayload<T>} KernelEventPayload */
|
|
12
|
+
/** @typedef {import("@econ-v1/domain").KernelEventType} KernelEventType */
|
|
13
|
+
/** @typedef {import("@econ-v1/domain").OutboxIntent} OutboxIntent */
|
|
14
|
+
/** @template T @typedef {import("@econ-v1/domain").QueryDiff<T>} QueryDiff */
|
|
15
|
+
/** @typedef {import("@econ-v1/domain").QueryName} QueryName */
|
|
16
|
+
/** @typedef {import("@econ-v1/domain").SerializableClientError} SerializableClientError */
|
|
17
|
+
/** @typedef {import("@econ-v1/domain").SyncErrorCode} SyncErrorCode */
|
|
18
|
+
/** @typedef {import("@econ-v1/domain").TransportState} TransportState */
|
|
19
|
+
/** @typedef {import("@econ-v1/domain").TransportOfflineReason} TransportOfflineReason */
|
|
20
|
+
/** @typedef {import("@econ-v1/domain").TransportErrorCode} TransportErrorCode */
|
|
21
|
+
/** @typedef {import("@econ-v1/ports").EncryptedStorageDiagnostic} EncryptedStorageDiagnostic */
|
|
22
|
+
/** @typedef {import("@econ-v1/ports").AppDataManifest} AppDataManifest */
|
|
23
|
+
/** @typedef {import("@econ-v1/ports").AppDataOfflinePolicy} AppDataOfflinePolicy */
|
|
24
|
+
/** @typedef {import("@econ-v1/ports").AppDataQueryDeclaration} AppDataQueryDeclaration */
|
|
25
|
+
/** @typedef {import("@econ-v1/ports").AppDataQueryKind} AppDataQueryKind */
|
|
26
|
+
/** @typedef {import("@econ-v1/ports").AppDataStreamDeclaration} AppDataStreamDeclaration */
|
|
27
|
+
/** @typedef {import("@econ-v1/ports").AppDataStreamKind} AppDataStreamKind */
|
|
28
|
+
/** @typedef {import("@econ-v1/ports").AppDataSyncKind} AppDataSyncKind */
|
|
29
|
+
/** @typedef {import("@econ-v1/ports").AppDataSyncPolicy} AppDataSyncPolicy */
|
|
30
|
+
/** @typedef {import("@econ-v1/ports").ClientUiChoice} ClientUiChoice */
|
|
31
|
+
/** @typedef {import("@econ-v1/ports").ClientUiPreferencePort} ClientUiPreferencePort */
|
|
32
|
+
/** @typedef {import("@econ-v1/ports").ClipboardPort} ClipboardPort */
|
|
33
|
+
/** @typedef {import("@econ-v1/ports").CredentialHandoffCancellationReason} CredentialHandoffCancellationReason */
|
|
34
|
+
/** @typedef {import("@econ-v1/ports").CredentialHandoffConnection} CredentialHandoffConnection */
|
|
35
|
+
/** @typedef {import("@econ-v1/ports").CredentialHandoffMessage} CredentialHandoffMessage */
|
|
36
|
+
/** @typedef {import("@econ-v1/ports").CredentialHandoffOpenResult} CredentialHandoffOpenResult */
|
|
37
|
+
/** @typedef {import("@econ-v1/ports").CredentialHandoffPort} CredentialHandoffPort */
|
|
38
|
+
/** @typedef {import("@econ-v1/ports").LegacyCredentialProbePort} LegacyCredentialProbePort */
|
|
39
|
+
/** @typedef {import("@econ-v1/ports").LegacyCredentialStatus} LegacyCredentialStatus */
|
|
40
|
+
/** @typedef {import("@econ-v1/ports").NodeAppMemoryApp} NodeAppMemoryApp */
|
|
41
|
+
/** @typedef {import("@econ-v1/ports").NodeAppMemoryReading} NodeAppMemoryReading */
|
|
42
|
+
/** @typedef {import("@econ-v1/ports").NodeAppBudgetVerdict} NodeAppBudgetVerdict */
|
|
43
|
+
/** @typedef {import("@econ-v1/ports").NodeAppDeviceMemory} NodeAppDeviceMemory */
|
|
44
|
+
/** @typedef {import("@econ-v1/ports").NodeAppGovernorRow} NodeAppGovernorRow */
|
|
45
|
+
/** @typedef {import("@econ-v1/ports").NodeAppHeapSnapshot} NodeAppHeapSnapshot */
|
|
46
|
+
/** @typedef {import("@econ-v1/ports").NodeAppLaneKind} NodeAppLaneKind */
|
|
47
|
+
/** @typedef {import("@econ-v1/ports").NodeAppMemoryOverview} NodeAppMemoryOverview */
|
|
48
|
+
/** @typedef {import("@econ-v1/ports").NodeAppMemoryOverviewApp} NodeAppMemoryOverviewApp */
|
|
49
|
+
/** @typedef {import("@econ-v1/ports").ShellCacheResetPort} ShellCacheResetPort */
|
|
50
|
+
/** @typedef {import("@econ-v1/ports").ShellVersionPort} ShellVersionPort */
|
|
51
|
+
/** @typedef {import("@econ-v1/ports").ShellVersionReport} ShellVersionReport */
|
|
52
|
+
/** @typedef {import("@econ-v1/ports").InstallEnvironmentPort} InstallEnvironmentPort */
|
|
53
|
+
/** @typedef {import("@econ-v1/ports").InstallInstructionMode} InstallInstructionMode */
|
|
54
|
+
/** @typedef {import("@econ-v1/ports").MediaPreferencesPort} MediaPreferencesPort */
|
|
55
|
+
/** @typedef {import("@econ-v1/ports").StageCatalogEntry} StageCatalogEntry */
|
|
56
|
+
/** @typedef {import("@econ-v1/ports").StorageRecoveryCode} StorageRecoveryCode */
|
|
57
|
+
/** @typedef {import("@econ-v1/ports").StorageRecoveryState} StorageRecoveryState */
|
|
58
|
+
/** @typedef {import("@econ-v1/ports").ThemeEnvironmentPort} ThemeEnvironmentPort */
|
|
59
|
+
/** @typedef {import("@econ-v1/ports").ThemePreference} ThemePreference */
|
|
60
|
+
/** @typedef {import("./message-port-client.js").MessagePortKernelRpcClientOptions} MessagePortKernelRpcClientOptions */
|
|
61
|
+
/** @typedef {import("./onboarding/discovery-contract.js").DiscoveryCandidateStatus} DiscoveryCandidateStatus */
|
|
62
|
+
/** @typedef {import("./onboarding/discovery-contract.js").DiscoveryCandidateView} DiscoveryCandidateView */
|
|
63
|
+
/** @typedef {import("./onboarding/discovery-contract.js").DiscoveryFoundNode} DiscoveryFoundNode */
|
|
64
|
+
/** @typedef {import("./onboarding/discovery-contract.js").DiscoverNodePayload} DiscoverNodePayload */
|
|
65
|
+
/** @typedef {import("./onboarding/discovery-contract.js").NodeDiscoveryCandidate} NodeDiscoveryCandidate */
|
|
66
|
+
/** @typedef {import("./onboarding/discovery-contract.js").NodeDiscoveryResult} NodeDiscoveryResult */
|
|
67
|
+
/** @typedef {import("./onboarding/discovery-contract.js").ProbeCandidatesPayload} ProbeCandidatesPayload */
|
|
68
|
+
/** @typedef {import("./onboarding/discovery-contract.js").PromoteCandidatePayload} PromoteCandidatePayload */
|
|
69
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingApprovalState} OnboardingApprovalState */
|
|
70
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingCommand} OnboardingCommand */
|
|
71
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingDiscoveryCandidate} OnboardingDiscoveryCandidate */
|
|
72
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingEvent} OnboardingEvent */
|
|
73
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingLifecycleState} OnboardingLifecycleState */
|
|
74
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingLifecycleStatus} OnboardingLifecycleStatus */
|
|
75
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingPhase} OnboardingPhase */
|
|
76
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingScenario} OnboardingScenario */
|
|
77
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingScreen} OnboardingScreen */
|
|
78
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingView} OnboardingView */
|
|
79
|
+
/** @typedef {import("./node-app-memory-contract.js").NodeAppMemoryDetailQueryParams} NodeAppMemoryDetailQueryParams */
|
|
80
|
+
/** @typedef {import("./dialog-contract.js").DialogAction} DialogAction */
|
|
81
|
+
/** @typedef {import("./dialog-contract.js").DialogCenter} DialogCenter */
|
|
82
|
+
/** @typedef {import("./dialog-contract.js").DialogHandle} DialogHandle */
|
|
83
|
+
/** @typedef {import("./dialog-contract.js").DialogRequest} DialogRequest */
|
|
84
|
+
/** @typedef {import("./client-device-pending-contract.js").ClientDevicePendingRow} ClientDevicePendingRow */
|
|
85
|
+
/** @typedef {import("./pairing-status-contract.js").ClientDevicePairingStatusRow} ClientDevicePairingStatusRow */
|
|
86
|
+
/** @typedef {import("./device-boot-contract.js").DeviceBootStateRow} DeviceBootStateRow */
|
|
87
|
+
/** @typedef {import("./device-cleanup-contract.js").CleanupState} CleanupState */
|
|
88
|
+
/** @typedef {import("./device-cleanup-contract.js").DeviceCleanupRequestResult} DeviceCleanupRequestResult */
|
|
89
|
+
/** @typedef {import("./device-cleanup-contract.js").DeviceCleanupRow} DeviceCleanupRow */
|
|
90
|
+
/** @typedef {import("./device-cleanup-contract.js").DeviceCleanupStatusResult} DeviceCleanupStatusResult */
|
|
91
|
+
/** @typedef {import("./sync-cursors-contract.js").SyncCursorView} SyncCursorView */
|
|
92
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingFlowBase} OnboardingFlowBase */
|
|
93
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingFlowView} OnboardingFlowView */
|
|
94
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingLcdScreenBase} OnboardingLcdScreenBase */
|
|
95
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingLcdScreenId} OnboardingLcdScreenId */
|
|
96
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingLcdScreenState} OnboardingLcdScreenState */
|
|
97
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingLcdScreenTree} OnboardingLcdScreenTree */
|
|
98
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingLcdScreenView} OnboardingLcdScreenView */
|
|
99
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingLcdUnavailableReason} OnboardingLcdUnavailableReason */
|
|
100
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingNetwork} OnboardingNetwork */
|
|
101
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingReasonCode} OnboardingReasonCode */
|
|
102
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingStepId} OnboardingStepId */
|
|
103
|
+
/** @typedef {import("./onboarding/onboarding-contract.js").OnboardingWifiSecurity} OnboardingWifiSecurity */
|
|
104
|
+
/** @typedef {import("./onboarding/owner-claim-contract.js").OwnerClaimCompleteOutcome} OwnerClaimCompleteOutcome */
|
|
105
|
+
/** @typedef {import("./onboarding/owner-claim-contract.js").OwnerClaimCompletePayload} OwnerClaimCompletePayload */
|
|
106
|
+
/** @typedef {import("./onboarding/owner-claim-contract.js").OwnerClaimCompleteResult} OwnerClaimCompleteResult */
|
|
107
|
+
/** @typedef {import("./onboarding/owner-claim-contract.js").OwnerClaimPrepareResult} OwnerClaimPrepareResult */
|
|
108
|
+
/** @typedef {import("./trust-contract.js").TrustStatusView} TrustStatusView */
|
|
109
|
+
/** @typedef {import("./stage-context.js").StageContextV1} StageContextV1 */
|
|
110
|
+
/** @typedef {import("./stage-context.js").StageContextV2} StageContextV2 */
|
|
111
|
+
/** @typedef {import("./system-notice-contract.js").SystemNotice} SystemNotice */
|
|
112
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeAction} SystemNoticeAction */
|
|
113
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeActionKind} SystemNoticeActionKind */
|
|
114
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeBlockScope} SystemNoticeBlockScope */
|
|
115
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeBody} SystemNoticeBody */
|
|
116
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeCenter} SystemNoticeCenter */
|
|
117
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeDetail} SystemNoticeDetail */
|
|
118
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeDisclosure} SystemNoticeDisclosure */
|
|
119
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeHandle} SystemNoticeHandle */
|
|
120
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeInput} SystemNoticeInput */
|
|
121
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeListener} SystemNoticeListener */
|
|
122
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticePatch} SystemNoticePatch */
|
|
123
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeSeverity} SystemNoticeSeverity */
|
|
124
|
+
/** @typedef {import("./system-notice-contract.js").SystemNoticeState} SystemNoticeState */
|
|
125
|
+
/** @typedef {import("./protocol.js").RpcEvent} RpcEvent */
|
|
126
|
+
/** @typedef {import("./protocol.js").RpcRequest} RpcRequest */
|
|
127
|
+
/** @typedef {import("./protocol.js").RpcResponse} RpcResponse */
|
|
128
|
+
/** @typedef {import("./stage-context.js").MountedStage} MountedStage */
|
|
129
|
+
/** @typedef {import("./stage-context.js").StageContext} StageContext */
|
|
130
|
+
/** @typedef {import("./stage-context.js").StageModule} StageModule */
|
|
131
|
+
/** @typedef {import("./transport.js").RpcTransport} RpcTransport */
|
|
132
|
+
/** @typedef {import("./transport.js").RpcTransportState} RpcTransportState */
|
|
133
|
+
|
|
134
|
+
export {
|
|
135
|
+
DOMAIN_ERROR_CODES,
|
|
136
|
+
DomainError,
|
|
137
|
+
SYNC_ERROR_CODES,
|
|
138
|
+
SyncError,
|
|
139
|
+
TRANSPORT_ERROR_CODES,
|
|
140
|
+
TransportError,
|
|
141
|
+
} from "@econ-v1/domain";
|
|
142
|
+
export {
|
|
143
|
+
deserializeClientError,
|
|
144
|
+
isJsonValue,
|
|
145
|
+
isSerializableClientError,
|
|
146
|
+
serializeClientError,
|
|
147
|
+
} from "./errors.js";
|
|
148
|
+
export { KernelRpcTimeoutError, MessagePortKernelRpcClient } from "./message-port-client.js";
|
|
149
|
+
export { NODE_APP_MEMORY_CAPTURE_COMMAND, NODE_APP_MEMORY_DETAIL_QUERY, NODE_APP_MEMORY_DOWNLOAD_COMMAND, NODE_APP_MEMORY_LIST_QUERY, NODE_APP_MEMORY_OVERVIEW_QUERY, NODE_APP_MEMORY_STATUS_COMMAND } from "./node-app-memory-contract.js";
|
|
150
|
+
export { DEVICE_BOOT_STATE_QUERY } from "./device-boot-contract.js";
|
|
151
|
+
export { CLIENT_DEVICE_PENDING_QUERY } from "./client-device-pending-contract.js";
|
|
152
|
+
export {
|
|
153
|
+
CLIENT_DEVICE_PAIRING_STATUS_QUERY,
|
|
154
|
+
CLIENT_DEVICE_WIRE_ERROR_DEVICE_NOT_REGISTERED,
|
|
155
|
+
CLIENT_DEVICE_WIRE_ERROR_LAST_DEVICE,
|
|
156
|
+
CLIENT_DEVICE_WIRE_ERROR_LAST_DEVICE_PROTECTED,
|
|
157
|
+
CLIENT_DEVICE_WIRE_ERROR_NAME_TAKEN,
|
|
158
|
+
} from "./pairing-status-contract.js";
|
|
159
|
+
export {
|
|
160
|
+
DEVICE_CLEANUP_CANCEL_COMMAND,
|
|
161
|
+
DEVICE_CLEANUP_QUERY,
|
|
162
|
+
DEVICE_CLEANUP_REQUEST_COMMAND,
|
|
163
|
+
DEVICE_CLEANUP_STATUS_COMMAND,
|
|
164
|
+
} from "./device-cleanup-contract.js";
|
|
165
|
+
export { SYNC_CURSORS_QUERY } from "./sync-cursors-contract.js";
|
|
166
|
+
export { TRANSPORT_STATE_QUERY, TRANSPORT_STATE_QUERY_V2 } from "./transport-contract.js";
|
|
167
|
+
export {
|
|
168
|
+
DISCOVER_NODE_COMMAND,
|
|
169
|
+
DISCOVERY_PROBE_COMMAND,
|
|
170
|
+
DISCOVERY_PROMOTE_COMMAND,
|
|
171
|
+
DISCOVERY_QUERY,
|
|
172
|
+
isDiscoverNodePayload,
|
|
173
|
+
isProbeCandidatesPayload,
|
|
174
|
+
isPromoteCandidatePayload,
|
|
175
|
+
} from "./onboarding/discovery-contract.js";
|
|
176
|
+
export {
|
|
177
|
+
isOnboardingCommand,
|
|
178
|
+
ONBOARDING_COMMAND,
|
|
179
|
+
ONBOARDING_EVENTS,
|
|
180
|
+
ONBOARDING_FLOW_QUERY,
|
|
181
|
+
ONBOARDING_LCD_SCREEN_QUERY,
|
|
182
|
+
ONBOARDING_STATUS_QUERY,
|
|
183
|
+
ONBOARDING_STEP_IDS,
|
|
184
|
+
} from "./onboarding/onboarding-contract.js";
|
|
185
|
+
export { TRUST_INSTALL_RESTART_COMMAND, TRUST_SKIP_COMMAND, TRUST_STATUS_QUERY, TRUST_VERIFY_COMMAND, isTrustInstallRestartPayload, isTrustSkipPayload, isTrustVerifyPayload } from "./trust-contract.js";
|
|
186
|
+
export { isOwnerClaimCompletePayload, OWNER_CLAIM_COMPLETE_COMMAND, OWNER_CLAIM_PREPARE_COMMAND } from "./onboarding/owner-claim-contract.js";
|
|
187
|
+
export {
|
|
188
|
+
deserializeRpcEvent,
|
|
189
|
+
deserializeRpcRequest,
|
|
190
|
+
deserializeRpcResponse,
|
|
191
|
+
serializeRpcEvent,
|
|
192
|
+
serializeRpcRequest,
|
|
193
|
+
serializeRpcResponse,
|
|
194
|
+
} from "./protocol.js";
|