@bodhiapp/setup-modal-v2-types 0.0.35

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.
@@ -0,0 +1,7 @@
1
+ export type { ProbeStatusV2, ServerStatusV2, BrowserInfoV2, SetupStateV2 } from './state';
2
+ export { DEFAULT_LOCAL_URL, CLOUD_URL, INSTALL_URL, DEFAULT_SETUP_STATE_V2 } from './state';
3
+ export type { MessageTypeRegistryV2, MessageTypeV2, RequestPayloadV2, ResponsePayloadV2, RequestHandlersV2 } from './messages';
4
+ export { MSG_V2, isMessageTypeV2 } from './messages';
5
+ export type { RequestIdV2, MessageKindV2, RequestMessageV2, ResponseMessageV2, ErrorMessageV2, EventMessageV2, ProtocolMessageV2, } from './protocol';
6
+ export { isRequestMessageV2, isResponseMessageV2, isErrorMessageV2, isEventMessageV2 } from './protocol';
7
+ export { isProbeIdle, isProbing, isConnected, isNotReady, isProbeError, isNetworkError, isTerminalStatus } from './type-guards';
package/dist/index.js ADDED
@@ -0,0 +1,70 @@
1
+ const DEFAULT_LOCAL_URL = "http://localhost:1135";
2
+ const CLOUD_URL = "https://cloud.getbodhi.app";
3
+ const INSTALL_URL = "https://getbodhi.app";
4
+ const DEFAULT_SETUP_STATE_V2 = {
5
+ probeStatus: "idle",
6
+ serverUrl: DEFAULT_LOCAL_URL,
7
+ browser: { name: "unknown", version: 0, supported: false }
8
+ };
9
+ const MSG_V2 = {
10
+ MODAL_READY: "modal:ready",
11
+ MODAL_PROBE: "modal:probe",
12
+ MODAL_COMPLETE: "modal:complete",
13
+ MODAL_CLOSE: "modal:close",
14
+ PARENT_STATE_UPDATE: "parent:state-update"
15
+ };
16
+ function isMessageTypeV2(msg, type) {
17
+ return msg.type === type;
18
+ }
19
+ function isRequestMessageV2(msg) {
20
+ return msg.kind === "request";
21
+ }
22
+ function isResponseMessageV2(msg) {
23
+ return msg.kind === "response";
24
+ }
25
+ function isErrorMessageV2(msg) {
26
+ return msg.kind === "error";
27
+ }
28
+ function isEventMessageV2(msg) {
29
+ return msg.kind === "event";
30
+ }
31
+ function isProbeIdle(state) {
32
+ return state.probeStatus === "idle";
33
+ }
34
+ function isProbing(state) {
35
+ return state.probeStatus === "probing";
36
+ }
37
+ function isConnected(state) {
38
+ return state.probeStatus === "connected";
39
+ }
40
+ function isNotReady(state) {
41
+ return state.probeStatus === "not-ready";
42
+ }
43
+ function isProbeError(state) {
44
+ return state.probeStatus === "error";
45
+ }
46
+ function isNetworkError(state) {
47
+ return state.probeStatus === "network-error";
48
+ }
49
+ function isTerminalStatus(status) {
50
+ return status === "connected";
51
+ }
52
+ export {
53
+ CLOUD_URL,
54
+ DEFAULT_LOCAL_URL,
55
+ DEFAULT_SETUP_STATE_V2,
56
+ INSTALL_URL,
57
+ MSG_V2,
58
+ isConnected,
59
+ isErrorMessageV2,
60
+ isEventMessageV2,
61
+ isMessageTypeV2,
62
+ isNetworkError,
63
+ isNotReady,
64
+ isProbeError,
65
+ isProbeIdle,
66
+ isProbing,
67
+ isRequestMessageV2,
68
+ isResponseMessageV2,
69
+ isTerminalStatus
70
+ };
@@ -0,0 +1,51 @@
1
+ import { SetupStateV2 } from './state';
2
+ export interface MessageTypeRegistryV2 {
3
+ 'modal:ready': {
4
+ request: void;
5
+ response: {
6
+ setupState: SetupStateV2;
7
+ };
8
+ };
9
+ 'modal:probe': {
10
+ request: {
11
+ serverUrl: string;
12
+ };
13
+ response: {
14
+ setupState: SetupStateV2;
15
+ };
16
+ };
17
+ 'modal:complete': {
18
+ request: void;
19
+ response: void;
20
+ };
21
+ 'modal:close': {
22
+ request: void;
23
+ response: void;
24
+ };
25
+ 'parent:state-update': {
26
+ request: SetupStateV2;
27
+ response: void;
28
+ };
29
+ }
30
+ export type MessageTypeV2 = keyof MessageTypeRegistryV2;
31
+ export type RequestPayloadV2<T extends MessageTypeV2> = MessageTypeRegistryV2[T]['request'];
32
+ export type ResponsePayloadV2<T extends MessageTypeV2> = MessageTypeRegistryV2[T]['response'];
33
+ export declare const MSG_V2: {
34
+ readonly MODAL_READY: "modal:ready";
35
+ readonly MODAL_PROBE: "modal:probe";
36
+ readonly MODAL_COMPLETE: "modal:complete";
37
+ readonly MODAL_CLOSE: "modal:close";
38
+ readonly PARENT_STATE_UPDATE: "parent:state-update";
39
+ };
40
+ export type RequestHandlersV2 = {
41
+ [K in MessageTypeV2]?: (msg: {
42
+ type: K;
43
+ requestId: string;
44
+ payload: RequestPayloadV2<K>;
45
+ }) => ResponsePayloadV2<K> | Promise<ResponsePayloadV2<K>>;
46
+ };
47
+ export declare function isMessageTypeV2<T extends MessageTypeV2>(msg: {
48
+ type: string;
49
+ }, type: T): msg is {
50
+ type: T;
51
+ };
@@ -0,0 +1,36 @@
1
+ import { MessageTypeV2, RequestPayloadV2, ResponsePayloadV2 } from './messages';
2
+ export type RequestIdV2 = string & {
3
+ readonly __brand: 'RequestIdV2';
4
+ };
5
+ export type MessageKindV2 = 'request' | 'response' | 'error' | 'event';
6
+ export interface RequestMessageV2<T extends MessageTypeV2 = MessageTypeV2> {
7
+ readonly kind: 'request';
8
+ readonly type: T;
9
+ readonly requestId: RequestIdV2;
10
+ readonly payload: RequestPayloadV2<T>;
11
+ }
12
+ export interface ResponseMessageV2<T extends MessageTypeV2 = MessageTypeV2> {
13
+ readonly kind: 'response';
14
+ readonly type: T;
15
+ readonly requestId: RequestIdV2;
16
+ readonly payload: ResponsePayloadV2<T>;
17
+ }
18
+ export interface ErrorMessageV2 {
19
+ readonly kind: 'error';
20
+ readonly requestId: RequestIdV2;
21
+ readonly error: {
22
+ code: string;
23
+ message: string;
24
+ details?: unknown;
25
+ };
26
+ }
27
+ export interface EventMessageV2<T extends MessageTypeV2 = MessageTypeV2> {
28
+ readonly kind: 'event';
29
+ readonly type: T;
30
+ readonly payload: RequestPayloadV2<T>;
31
+ }
32
+ export type ProtocolMessageV2 = RequestMessageV2 | ResponseMessageV2 | ErrorMessageV2 | EventMessageV2;
33
+ export declare function isRequestMessageV2(msg: ProtocolMessageV2): msg is RequestMessageV2;
34
+ export declare function isResponseMessageV2(msg: ProtocolMessageV2): msg is ResponseMessageV2;
35
+ export declare function isErrorMessageV2(msg: ProtocolMessageV2): msg is ErrorMessageV2;
36
+ export declare function isEventMessageV2(msg: ProtocolMessageV2): msg is EventMessageV2;
@@ -0,0 +1,21 @@
1
+ export type ProbeStatusV2 = 'idle' | 'probing' | 'connected' | 'not-ready' | 'error' | 'network-error';
2
+ export type ServerStatusV2 = 'ready' | 'setup' | 'resource_admin' | 'unreachable' | 'error';
3
+ export interface BrowserInfoV2 {
4
+ name: string;
5
+ version: number;
6
+ supported: boolean;
7
+ }
8
+ export interface SetupStateV2 {
9
+ serverUrl: string;
10
+ browser: BrowserInfoV2;
11
+ probeStatus: ProbeStatusV2;
12
+ serverStatus?: ServerStatusV2;
13
+ error?: {
14
+ code: string;
15
+ message: string;
16
+ };
17
+ }
18
+ export declare const DEFAULT_LOCAL_URL = "http://localhost:1135";
19
+ export declare const CLOUD_URL = "https://cloud.getbodhi.app";
20
+ export declare const INSTALL_URL = "https://getbodhi.app";
21
+ export declare const DEFAULT_SETUP_STATE_V2: SetupStateV2;
@@ -0,0 +1,8 @@
1
+ import { ProbeStatusV2, SetupStateV2 } from './state';
2
+ export declare function isProbeIdle(state: SetupStateV2): boolean;
3
+ export declare function isProbing(state: SetupStateV2): boolean;
4
+ export declare function isConnected(state: SetupStateV2): boolean;
5
+ export declare function isNotReady(state: SetupStateV2): boolean;
6
+ export declare function isProbeError(state: SetupStateV2): boolean;
7
+ export declare function isNetworkError(state: SetupStateV2): boolean;
8
+ export declare function isTerminalStatus(status: ProbeStatusV2): boolean;
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@bodhiapp/setup-modal-v2-types",
3
+ "version": "0.0.35",
4
+ "description": "TypeScript types for Bodhi Setup Modal v2",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "build": "vite build",
19
+ "clean": "rimraf dist"
20
+ },
21
+ "devDependencies": {
22
+ "vite": "^7.1.12",
23
+ "vite-plugin-dts": "^4.5.4",
24
+ "rimraf": "^6.0.1",
25
+ "typescript": "^5.8.3"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/BodhiSearch/bodhi-js.git",
30
+ "directory": "setup-modal-v2/src/types"
31
+ },
32
+ "license": "MIT",
33
+ "author": "BodhiSearch",
34
+ "publishConfig": {
35
+ "access": "public"
36
+ }
37
+ }