@holochain/client 0.11.9 → 0.11.10

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/README.md CHANGED
@@ -27,28 +27,30 @@ npm install --save-exact @holochain/client
27
27
  const agentPubKey = await admin.generateAgentPubKey()
28
28
  ```
29
29
 
30
- ### Use AppWebsocket with implicit zome call signing
30
+ ### Use AppAgentWebsocket with implicit zome call signing
31
31
  ```typescript
32
32
  const signalCb = (signal: AppSignal) => {
33
- // impl...
33
+ // implementation of signal handler
34
34
  resolve()
35
35
  }
36
36
 
37
37
  const TIMEOUT = 12000
38
38
  // default timeout is set to 12000
39
- const client = await AppWebsocket.connect(`ws://127.0.0.1:${appPort}`, TIMEOUT, signalCb)
39
+ const appWs = await AppWebsocket.connect(`ws://127.0.0.1:${appPort}`, 12000)
40
+
41
+ const client = new AppAgentWebsocket(appWs, 'installed_app_id');
42
+ client.on("signal", signalCb);
40
43
 
41
44
  // default timeout set here (30000) will overwrite the defaultTimeout(12000) set above
42
45
  await client.callZome({
43
- cell_id,
46
+ role_name: 'dnas_role_name', // role_name is unique per app, so you can unambiguously identify your dna with role_name in this client
44
47
  zome_name: "test_zome",
45
48
  fn_name: 'test_emitter_fn',
46
- provenance: agentPubKey,
47
49
  payload: null,
48
50
  }, 30000)
49
51
  ```
50
52
 
51
- ### Use AppAgentWebsocket
53
+ ### Use AppWebsocket with implicit zome call signing
52
54
  ```typescript
53
55
  const signalCb = (signal: AppSignal) => {
54
56
  // impl...
@@ -57,19 +59,47 @@ npm install --save-exact @holochain/client
57
59
 
58
60
  const TIMEOUT = 12000
59
61
  // default timeout is set to 12000
60
- const appWs = await AppWebsocket.connect(`ws://127.0.0.1:${appPort}`, 12000, signalCb)
61
-
62
- const client = new AppAgentWebsocket(appWs, 'installed_app_id')
62
+ const client = await AppWebsocket.connect(`ws://127.0.0.1:${appPort}`, TIMEOUT, signalCb)
63
63
 
64
64
  // default timeout set here (30000) will overwrite the defaultTimeout(12000) set above
65
65
  await client.callZome({
66
- role_name: 'dnas_role_name', // role_name is unique per app, so you can unambiguously identify your dna with role_name in this client
66
+ cell_id,
67
67
  zome_name: "test_zome",
68
68
  fn_name: 'test_emitter_fn',
69
+ provenance: agentPubKey,
69
70
  payload: null,
70
71
  }, 30000)
71
72
  ```
72
73
 
74
+ ### Managing zome call signing credentials in a pure JavaScript browser application
75
+
76
+ Here is a pattern to manage signing keys for signing zome calls when running pure JavaScript web hApps in a web browser:
77
+ ```typescript
78
+ const cellIdB64 =
79
+ encodeHashToBase64(cell_id[0]) + encodeHashToBase64(cell_id[1]);
80
+ // in case the zome call signing credentials are stored locally in the browser
81
+ const signingCredentialsJson = localStorage.getItem(cellIdB64);
82
+ let signingCredentials: SigningCredentials | null =
83
+ signingCredentialsJson && JSON.parse(signingCredentialsJson);
84
+
85
+ if (!signingCredentials) {
86
+ const [keyPair, signingKey] = generateSigningKeyPair();
87
+ const capSecret = await admin.grantSigningKey(
88
+ cell_id,
89
+ { [GrantedFunctionsType.All]: null },
90
+ signingKey
91
+ );
92
+ signingCredentials = {
93
+ capSecret,
94
+ keyPair,
95
+ signingKey,
96
+ };
97
+ }
98
+ setSigningCredentials(cell_id, signingCredentials);
99
+ // possibly store the zome call signing credentials locally in the browser
100
+ localStorage.setItem(cellIdB64, JSON.stringify(signingCredentials));
101
+ ```
102
+
73
103
  ## API Reference
74
104
 
75
105
  See [docs/API.md](docs/API.md)
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { Action, DhtOp, Entry, ZomeCallCapGrant } from "../../hdk/index.js";
3
- import { ActionHash, AgentPubKey, CellId, DnaHash, DnaProperties, HoloHash, HoloHashB64, InstalledAppId, KitsuneAgent, KitsuneSpace, RoleName, Signature, Timestamp, WasmHash } from "../../types.js";
3
+ import { ActionHash, AgentPubKey, CellId, DnaHash, DnaProperties, Duration, HoloHash, HoloHashB64, InstalledAppId, KitsuneAgent, KitsuneSpace, RoleName, Signature, Timestamp, WasmHash } from "../../types.js";
4
4
  import { Requester } from "../common.js";
5
5
  import { DisableCloneCellRequest } from "../index.js";
6
6
  export declare type AttachAppInterfaceRequest = {
@@ -106,6 +106,7 @@ export declare type DnaModifiers = {
106
106
  network_seed: NetworkSeed;
107
107
  properties: DnaProperties;
108
108
  origin_time: Timestamp;
109
+ quantum_time: Duration;
109
110
  };
110
111
  export declare type FunctionName = string;
111
112
  export declare type ZomeName = string;
@@ -130,7 +131,7 @@ export declare type UninstallAppRequest = {
130
131
  installed_app_id: InstalledAppId;
131
132
  };
132
133
  export declare type UninstallAppResponse = null;
133
- export declare type ResourceBytes = Buffer;
134
+ export declare type ResourceBytes = number[];
134
135
  export declare type ResourceMap = {
135
136
  [key: string]: ResourceBytes;
136
137
  };
@@ -153,6 +154,13 @@ export declare type CellProvisioning = {
153
154
  } | {
154
155
  disabled: Record<string, never>;
155
156
  };
157
+ export declare type Location = {
158
+ bundled: string;
159
+ } | {
160
+ path: string;
161
+ } | {
162
+ url: string;
163
+ };
156
164
  export declare type DnaVersionSpec = Array<HoloHashB64>;
157
165
  export declare type DnaVersionFlexible = {
158
166
  singleton: HoloHashB64;
@@ -160,11 +168,10 @@ export declare type DnaVersionFlexible = {
160
168
  multiple: DnaVersionSpec;
161
169
  };
162
170
  export declare type AppRoleDnaManifest = {
163
- location?: Location;
164
- properties?: DnaProperties;
165
- network_seed?: NetworkSeed;
171
+ clone_limit?: number;
172
+ modifiers?: Partial<DnaModifiers>;
166
173
  version?: DnaVersionFlexible;
167
- };
174
+ } & Location;
168
175
  export declare type AppRoleManifest = {
169
176
  name: RoleName;
170
177
  provisioning?: CellProvisioning;
@@ -256,13 +263,7 @@ export declare type InstallAppDnaPayload = {
256
263
  role_name: RoleName;
257
264
  membrane_proof?: MembraneProof;
258
265
  };
259
- export declare type ZomeLocation = {
260
- bundled: string;
261
- } | {
262
- path: string;
263
- } | {
264
- url: string;
265
- };
266
+ export declare type ZomeLocation = Location;
266
267
  export declare type ZomeManifest = {
267
268
  name: string;
268
269
  hash?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/admin/types.ts"],"names":[],"mappings":"AAwEA,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,uCAA2B,CAAA;IAC3B,6BAAiB,CAAA;IACjB,yBAAa,CAAA;AACf,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAsKD,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,wCAAqB,CAAA;IACrB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,oCAAiB,CAAA;AACnB,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/admin/types.ts"],"names":[],"mappings":"AAyEA,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,uCAA2B,CAAA;IAC3B,6BAAiB,CAAA;IACjB,yBAAa,CAAA;AACf,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAoLD,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,wCAAqB,CAAA;IACrB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,oCAAiB,CAAA;AACnB,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B"}
@@ -15,7 +15,7 @@ export class AdminWebsocket {
15
15
  static async connect(url, defaultTimeout) {
16
16
  // Check if we are in the launcher's environment, and if so, redirect the url to connect to
17
17
  const env = getLauncherEnvironment();
18
- if (env) {
18
+ if (env?.ADMIN_INTERFACE_PORT) {
19
19
  url = `ws://127.0.0.1:${env.ADMIN_INTERFACE_PORT}`;
20
20
  }
21
21
  const wsClient = await WsClient.connect(url);
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/admin/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/admin/websocket.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { AgentPubKey, CellId, DnaProperties, InstalledAppId, InstalledCell, RoleName, Timestamp, DnaHash, NetworkInfo } from "../../types.js";
1
+ import { AgentPubKey, CellId, DnaHash, DnaProperties, InstalledAppId, InstalledCell, NetworkInfo, RoleName, Timestamp } from "../../types.js";
2
+ import { AppInfo, FunctionName, MembraneProof, NetworkSeed, ZomeName } from "../admin/index.js";
2
3
  import { Requester } from "../common.js";
3
- import { FunctionName, AppInfo, MembraneProof, NetworkSeed, ZomeName } from "../admin/index.js";
4
4
  export declare type CallZomeRequestGeneric<Payload> = {
5
5
  cell_id: CellId;
6
6
  zome_name: ZomeName;
@@ -67,20 +67,24 @@ export interface DisableCloneCellRequest {
67
67
  export declare type DisableCloneCellResponse = void;
68
68
  export declare type EnableCloneCellRequest = DisableCloneCellRequest;
69
69
  export declare type EnableCloneCellResponse = CreateCloneCellResponse;
70
- export declare type AppSignal = {
71
- type: string;
72
- data: {
73
- cellId: CellId;
74
- payload: any;
75
- };
76
- };
77
70
  export interface NetworkInfoRequest {
78
71
  /** The DNAs for which to get network info */
79
72
  dnas: DnaHash[];
80
73
  }
81
- export declare type NetworkInfoResponse = NetworkInfo[];
74
+ export declare const SignalType: {
75
+ readonly App: "App";
76
+ readonly System: "System";
77
+ };
78
+ export declare type Signal = {
79
+ [SignalType.App]: [CellId, any];
80
+ [SignalType.System]: unknown;
81
+ };
82
+ export declare type AppSignal = {
83
+ cell_id: CellId;
84
+ payload: any;
85
+ };
82
86
  export declare type AppSignalCb = (signal: AppSignal) => void;
83
- export declare type SignalResponseGeneric<Payload> = Payload;
87
+ export declare type NetworkInfoResponse = NetworkInfo[];
84
88
  export interface AppApi {
85
89
  appInfo: Requester<AppInfoRequest, AppInfoResponse>;
86
90
  callZome: Requester<CallZomeRequest, CallZomeResponse>;
@@ -1,2 +1,5 @@
1
- export {};
1
+ export const SignalType = {
2
+ App: "App",
3
+ System: "System",
4
+ };
2
5
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/app/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/app/types.ts"],"names":[],"mappings":"AAkGA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;CACR,CAAC"}
@@ -4,13 +4,13 @@ import { InstalledAppId } from "../../types.js";
4
4
  import { WsClient } from "../client.js";
5
5
  import { Requester, Transformer } from "../common.js";
6
6
  import { Nonce256Bit } from "../zome-call-signing.js";
7
- import { AppApi, AppInfoRequest, AppInfoResponse, AppSignalCb, CallZomeRequest, CallZomeResponse, CreateCloneCellRequest, CreateCloneCellResponse, DisableCloneCellRequest, DisableCloneCellResponse, EnableCloneCellRequest, EnableCloneCellResponse, NetworkInfoRequest, NetworkInfoResponse } from "./types.js";
7
+ import { AppApi, AppInfoRequest, AppInfoResponse, CallZomeRequest, CallZomeResponse, CreateCloneCellRequest, CreateCloneCellResponse, DisableCloneCellRequest, DisableCloneCellResponse, EnableCloneCellRequest, EnableCloneCellResponse, NetworkInfoRequest, NetworkInfoResponse } from "./types.js";
8
8
  export declare class AppWebsocket extends Emittery implements AppApi {
9
9
  readonly client: WsClient;
10
10
  defaultTimeout: number;
11
11
  overrideInstalledAppId?: InstalledAppId;
12
12
  private constructor();
13
- static connect(url: string, defaultTimeout?: number, signalCb?: AppSignalCb): Promise<AppWebsocket>;
13
+ static connect(url: string, defaultTimeout?: number): Promise<AppWebsocket>;
14
14
  _requester: <ReqI, ReqO, ResI, ResO>(tag: string, transformer?: Transformer<ReqI, ReqO, ResI, ResO> | undefined) => (req: ReqI, timeout?: number | undefined) => Promise<ResO>;
15
15
  appInfo: Requester<AppInfoRequest, AppInfoResponse>;
16
16
  callZome: Requester<CallZomeRequest | CallZomeRequestSigned, CallZomeResponse>;
@@ -17,17 +17,14 @@ export class AppWebsocket extends Emittery {
17
17
  defaultTimeout === undefined ? DEFAULT_TIMEOUT : defaultTimeout;
18
18
  this.overrideInstalledAppId = overrideInstalledAppId;
19
19
  }
20
- static async connect(url, defaultTimeout, signalCb) {
20
+ static async connect(url, defaultTimeout) {
21
21
  // Check if we are in the launcher's environment, and if so, redirect the url to connect to
22
22
  const env = getLauncherEnvironment();
23
- if (env) {
23
+ if (env?.APP_INTERFACE_PORT) {
24
24
  url = `ws://127.0.0.1:${env.APP_INTERFACE_PORT}`;
25
25
  }
26
- if (signalCb) {
27
- console.warn("Providing a signal callback on client initialization is deprecated. Instead add an event handler using `.on('signal', signalCb)`.");
28
- }
29
- const wsClient = await WsClient.connect(url, signalCb);
30
- const appWebsocket = new AppWebsocket(wsClient, defaultTimeout, env ? env.INSTALLED_APP_ID : undefined);
26
+ const wsClient = await WsClient.connect(url);
27
+ const appWebsocket = new AppWebsocket(wsClient, defaultTimeout, env?.INSTALLED_APP_ID);
31
28
  wsClient.on("signal", (signal) => appWebsocket.emit("signal", signal));
32
29
  return appWebsocket;
33
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/app/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/app/websocket.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { UnsubscribeFunction } from "emittery";
2
- import { DisableCloneCellResponse, CreateCloneCellRequest, CreateCloneCellResponse } from "../index.js";
3
2
  import { AgentPubKey, RoleName } from "../../index.js";
4
- import { AppInfoResponse, AppSignal, DisableCloneCellRequest, CallZomeRequest, EnableCloneCellRequest, EnableCloneCellResponse, CallZomeRequestSigned } from "../app/index.js";
3
+ import { AppInfoResponse, AppSignal, AppSignalCb, CallZomeRequest, CallZomeRequestSigned, DisableCloneCellRequest, EnableCloneCellRequest, EnableCloneCellResponse } from "../app/index.js";
4
+ import { CreateCloneCellRequest, CreateCloneCellResponse, DisableCloneCellResponse } from "../index.js";
5
5
  export declare type NonProvenanceCallZomeRequest = Omit<CallZomeRequest, "provenance">;
6
6
  export declare type RoleNameCallZomeRequest = Omit<NonProvenanceCallZomeRequest, "cell_id"> & {
7
7
  role_name: RoleName;
@@ -18,7 +18,7 @@ export interface AppAgentEvents {
18
18
  }
19
19
  export interface AppAgentClient {
20
20
  callZome(args: AppAgentCallZomeRequest, timeout?: number): Promise<any>;
21
- on<Name extends keyof AppAgentEvents>(eventName: Name | readonly Name[], listener: (eventData: AppAgentEvents[Name]) => void | Promise<void>): UnsubscribeFunction;
21
+ on<Name extends keyof AppAgentEvents>(eventName: Name | readonly Name[], listener: AppSignalCb): UnsubscribeFunction;
22
22
  appInfo(): Promise<AppInfoResponse>;
23
23
  myPubKey: AgentPubKey;
24
24
  createCloneCell(args: AppCreateCloneCellRequest): Promise<CreateCloneCellResponse>;
@@ -1,6 +1,6 @@
1
1
  import Emittery, { UnsubscribeFunction } from "emittery";
2
- import { AgentPubKey, InstalledAppId, RoleName } from "../../types.js";
3
- import { AppInfo, AppInfoResponse, AppWebsocket, CallZomeResponse, CreateCloneCellResponse, DisableCloneCellResponse, EnableCloneCellResponse } from "../index.js";
2
+ import { AgentPubKey, CellId, InstalledAppId, RoleName } from "../../types.js";
3
+ import { AppInfo, AppSignalCb, AppWebsocket, CallZomeResponse, CreateCloneCellResponse, DisableCloneCellResponse, EnableCloneCellResponse } from "../index.js";
4
4
  import { AppAgentCallZomeRequest, AppAgentClient, AppAgentEvents, AppCreateCloneCellRequest, AppDisableCloneCellRequest, AppEnableCloneCellRequest } from "./types.js";
5
5
  export declare class AppAgentWebsocket implements AppAgentClient {
6
6
  myPubKey: AgentPubKey;
@@ -9,12 +9,13 @@ export declare class AppAgentWebsocket implements AppAgentClient {
9
9
  cachedAppInfo?: AppInfo;
10
10
  readonly emitter: Emittery<AppAgentEvents>;
11
11
  private constructor();
12
- appInfo(): Promise<AppInfoResponse>;
13
- static connect(appWebsocket: AppWebsocket, installedAppId: InstalledAppId): Promise<AppAgentWebsocket>;
14
- getCellIdFromRoleName(roleName: RoleName, appInfo: AppInfo): import("../../types.js").CellId;
12
+ appInfo(): Promise<AppInfo>;
13
+ static connect(url: string, installed_app_id: InstalledAppId, defaultTimeout?: number): Promise<AppAgentWebsocket>;
14
+ getCellIdFromRoleName(roleName: RoleName, appInfo: AppInfo): CellId;
15
15
  callZome(request: AppAgentCallZomeRequest, timeout?: number): Promise<CallZomeResponse>;
16
16
  createCloneCell(args: AppCreateCloneCellRequest): Promise<CreateCloneCellResponse>;
17
17
  enableCloneCell(args: AppEnableCloneCellRequest): Promise<EnableCloneCellResponse>;
18
18
  disableCloneCell(args: AppDisableCloneCellRequest): Promise<DisableCloneCellResponse>;
19
- on<Name extends keyof AppAgentEvents>(eventName: Name | readonly Name[], listener: (eventData: AppAgentEvents[Name]) => void | Promise<void>): UnsubscribeFunction;
19
+ on<Name extends keyof AppAgentEvents>(eventName: Name | readonly Name[], listener: AppSignalCb): UnsubscribeFunction;
20
+ private containsCell;
20
21
  }
@@ -2,7 +2,7 @@ import Emittery from "emittery";
2
2
  import { omit } from "lodash-es";
3
3
  import { getLauncherEnvironment } from "../../environments/launcher.js";
4
4
  import { getBaseRoleNameFromCloneId, isCloneId } from "../common.js";
5
- import { CellType, } from "../index.js";
5
+ import { AppWebsocket, CellType, } from "../index.js";
6
6
  function getPubKey(appInfo) {
7
7
  // This is fine for now cause `UseExisting` as a provisioning strategy doesn't work yet.
8
8
  // TODO: change this when AppInfo contains the `AgentPubKey` for this app, like `return appInfo.my_pub_key`
@@ -30,7 +30,11 @@ export class AppAgentWebsocket {
30
30
  this.emitter = new Emittery();
31
31
  const env = getLauncherEnvironment();
32
32
  this.installedAppId = env?.INSTALLED_APP_ID || installedAppId;
33
- this.appWebsocket.on("signal", (signal) => this.emitter.emit("signal", signal));
33
+ this.appWebsocket.on("signal", (signal) => {
34
+ if (this.containsCell(signal.cell_id)) {
35
+ this.emitter.emit("signal", signal);
36
+ }
37
+ });
34
38
  }
35
39
  async appInfo() {
36
40
  const appInfo = await this.appWebsocket.appInfo({
@@ -39,12 +43,15 @@ export class AppAgentWebsocket {
39
43
  this.cachedAppInfo = appInfo;
40
44
  return appInfo;
41
45
  }
42
- static async connect(appWebsocket, installedAppId) {
46
+ static async connect(url, installed_app_id, defaultTimeout) {
47
+ const appWebsocket = await AppWebsocket.connect(url, defaultTimeout);
43
48
  const appInfo = await appWebsocket.appInfo({
44
- installed_app_id: installedAppId,
49
+ installed_app_id: installed_app_id,
45
50
  });
46
51
  const myPubKey = getPubKey(appInfo);
47
- return new AppAgentWebsocket(appWebsocket, installedAppId, myPubKey);
52
+ const appAgentWs = new AppAgentWebsocket(appWebsocket, installed_app_id, myPubKey);
53
+ appAgentWs.cachedAppInfo = appInfo;
54
+ return appAgentWs;
48
55
  }
49
56
  getCellIdFromRoleName(roleName, appInfo) {
50
57
  if (isCloneId(roleName)) {
@@ -52,8 +59,8 @@ export class AppAgentWebsocket {
52
59
  if (!(baseRoleName in appInfo.cell_info)) {
53
60
  throw new Error(`No cell found with role_name ${roleName}`);
54
61
  }
55
- const cloneCell = appInfo.cell_info[baseRoleName].find((c) => "Cloned" in c && c.Cloned.clone_id === roleName);
56
- if (!cloneCell || !("Cloned" in cloneCell)) {
62
+ const cloneCell = appInfo.cell_info[baseRoleName].find((c) => CellType.Cloned in c && c.Cloned.clone_id === roleName);
63
+ if (!cloneCell || !(CellType.Cloned in cloneCell)) {
57
64
  throw new Error(`No clone cell found with clone id ${roleName}`);
58
65
  }
59
66
  return cloneCell.Cloned.cell_id;
@@ -114,5 +121,26 @@ export class AppAgentWebsocket {
114
121
  on(eventName, listener) {
115
122
  return this.emitter.on(eventName, listener);
116
123
  }
124
+ containsCell(cellId) {
125
+ const appInfo = this.cachedAppInfo;
126
+ if (!appInfo) {
127
+ return false;
128
+ }
129
+ for (const roleName of Object.keys(appInfo.cell_info)) {
130
+ for (const cellInfo of appInfo.cell_info[roleName]) {
131
+ const currentCellId = CellType.Provisioned in cellInfo
132
+ ? cellInfo[CellType.Provisioned].cell_id
133
+ : CellType.Cloned in cellInfo
134
+ ? cellInfo[CellType.Cloned].cell_id
135
+ : undefined;
136
+ if (currentCellId && isSameCell(currentCellId, cellId)) {
137
+ return true;
138
+ }
139
+ }
140
+ }
141
+ return false;
142
+ }
117
143
  }
144
+ const isSameCell = (cellId1, cellId2) => cellId1[0].every((byte, index) => byte === cellId2[0][index]) &&
145
+ cellId1[1].every((byte, index) => byte === cellId2[1][index]);
118
146
  //# sourceMappingURL=websocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/app-agent/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/app-agent/websocket.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  /// <reference types="ws" />
2
2
  import { decode } from "@msgpack/msgpack";
3
- import Websocket from "isomorphic-ws";
4
3
  import Emittery from "emittery";
5
- import { AppSignalCb } from "./app/types.js";
4
+ import Websocket from "isomorphic-ws";
5
+ interface HolochainMessage {
6
+ id: number;
7
+ type: "response" | "signal";
8
+ data: ArrayLike<number> | null;
9
+ }
6
10
  /**
7
11
  * A Websocket client which can make requests and receive responses,
8
12
  * as well as send and receive signals
@@ -12,15 +16,15 @@ import { AppSignalCb } from "./app/types.js";
12
16
  export declare class WsClient extends Emittery {
13
17
  socket: Websocket;
14
18
  pendingRequests: Record<number, {
15
- fulfill: (msg: unknown) => ReturnType<typeof decode>;
19
+ resolve: (msg: unknown) => ReturnType<typeof decode>;
16
20
  reject: (error: Error) => void;
17
21
  }>;
18
22
  index: number;
19
- constructor(socket: any, signalCb?: AppSignalCb);
20
- emitSignal(data: any): void;
23
+ constructor(socket: Websocket);
24
+ static connect(url: string): Promise<WsClient>;
25
+ emitSignal(data: unknown): void;
21
26
  request<Req, Res>(data: Req): Promise<Res>;
22
- handleResponse(msg: any): void;
27
+ handleResponse(msg: HolochainMessage): void;
23
28
  close(): Promise<void>;
24
- awaitClose(): Promise<void>;
25
- static connect(url: string, signalCb?: AppSignalCb): Promise<WsClient>;
26
29
  }
30
+ export {};
package/lib/api/client.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { decode, encode } from "@msgpack/msgpack";
2
- import Websocket from "isomorphic-ws";
3
2
  import Emittery from "emittery";
3
+ import Websocket from "isomorphic-ws";
4
+ import { SignalType } from "./app/types.js";
4
5
  /**
5
6
  * A Websocket client which can make requests and receive responses,
6
7
  * as well as send and receive signals
@@ -11,48 +12,70 @@ export class WsClient extends Emittery {
11
12
  socket;
12
13
  pendingRequests;
13
14
  index;
14
- constructor(socket, signalCb) {
15
+ constructor(socket) {
15
16
  super();
16
17
  this.socket = socket;
17
18
  this.pendingRequests = {};
18
19
  this.index = 0;
19
- if (signalCb) {
20
- console.log("Providing a signal callback on client initialization is deprecated. Instead add an event handler using `.on('signal', signalCb)`.");
21
- this.on("signal", signalCb);
22
- }
23
- socket.onmessage = async (encodedMsg) => {
24
- let data = encodedMsg.data;
20
+ socket.onmessage = async (serializedMessage) => {
25
21
  // If data is not a buffer (nodejs), it will be a blob (browser)
26
- if (typeof Buffer === "undefined" || !Buffer.isBuffer(data)) {
27
- data = await data.arrayBuffer();
22
+ let deserializedData;
23
+ if (serializedMessage.data instanceof Blob) {
24
+ deserializedData = await serializedMessage.data.arrayBuffer();
28
25
  }
29
- const msg = decode(data);
30
- if (msg.type === "signal") {
31
- const decodedMessage = decode(msg.data);
32
- if (!decodedMessage.App) {
26
+ else {
27
+ if (typeof Buffer !== "undefined" &&
28
+ Buffer.isBuffer(serializedMessage.data)) {
29
+ deserializedData = serializedMessage.data;
30
+ }
31
+ else {
32
+ throw new Error("websocket client: unknown message format");
33
+ }
34
+ }
35
+ const message = decode(deserializedData);
36
+ assertHolochainMessage(message);
37
+ if (message.type === "signal") {
38
+ if (message.data === null) {
39
+ throw new Error("received a signal without data");
40
+ }
41
+ const derializedSignal = decode(message.data);
42
+ assertHolochainSignal(derializedSignal);
43
+ if (!(SignalType.App in derializedSignal)) {
33
44
  // We have received a system signal, do nothing
34
45
  return;
35
46
  }
36
- // Note: holochain currently returns signals as an array of two values: cellId and the serialized signal payload
47
+ // Holochain currently returns signals as an array of two values: cellId and the serialized signal payload
37
48
  // and this array is nested within the App key within the returned message.
38
- const decodedCellId = decodedMessage.App[0];
39
- // Note:In order to return readible content to the UI, the signal payload must also be decoded.
40
- const decodedPayload = signalTransform(decodedMessage.App[1]);
49
+ const cell_id = derializedSignal.App[0];
50
+ // In order to return readible content to the UI, the signal payload must also be deserialized.
51
+ const payload = decode(derializedSignal.App[1]);
41
52
  // Return a uniform format to UI (ie: { type, data } - the same format as with callZome and appInfo...)
42
- const signal = {
43
- type: msg.type,
44
- data: { cellId: decodedCellId, payload: decodedPayload },
45
- };
53
+ const signal = { cell_id, payload };
46
54
  this.emit("signal", signal);
47
55
  }
48
- else if (msg.type === "response") {
49
- this.handleResponse(msg);
56
+ else if (message.type === "response") {
57
+ this.handleResponse(message);
50
58
  }
51
59
  else {
52
- console.error(`Got unrecognized Websocket message type: ${msg.type}`);
60
+ console.error(`Got unrecognized Websocket message type: ${message.type}`);
53
61
  }
54
62
  };
55
63
  }
64
+ static connect(url) {
65
+ return new Promise((resolve, reject) => {
66
+ const socket = new Websocket(url);
67
+ // make sure that there are no uncaught connection
68
+ // errors because that causes nodejs thread to crash
69
+ // with uncaught exception
70
+ socket.onerror = () => {
71
+ reject(new Error(`could not connect to holochain conductor, please check that a conductor service is running and available at ${url}`));
72
+ };
73
+ socket.onopen = () => {
74
+ const client = new WsClient(socket);
75
+ resolve(client);
76
+ };
77
+ });
78
+ }
56
79
  emitSignal(data) {
57
80
  const encodedMsg = encode({
58
81
  type: "signal",
@@ -68,8 +91,8 @@ export class WsClient extends Emittery {
68
91
  type: "request",
69
92
  data: encode(data),
70
93
  });
71
- const promise = new Promise((fulfill, reject) => {
72
- this.pendingRequests[id] = { fulfill, reject };
94
+ const promise = new Promise((resolve, reject) => {
95
+ this.pendingRequests[id] = { resolve, reject };
73
96
  });
74
97
  if (this.socket.readyState === this.socket.OPEN) {
75
98
  this.socket.send(encodedMsg);
@@ -82,41 +105,39 @@ export class WsClient extends Emittery {
82
105
  handleResponse(msg) {
83
106
  const id = msg.id;
84
107
  if (this.pendingRequests[id]) {
85
- // resolve response
86
108
  if (msg.data === null || msg.data === undefined) {
87
109
  this.pendingRequests[id].reject(new Error("Response canceled by responder"));
88
110
  }
89
111
  else {
90
- this.pendingRequests[id].fulfill(decode(msg.data));
112
+ this.pendingRequests[id].resolve(decode(msg.data));
91
113
  }
114
+ delete this.pendingRequests[id];
92
115
  }
93
116
  else {
94
117
  console.error(`Got response with no matching request. id=${id}`);
95
118
  }
96
119
  }
97
120
  close() {
121
+ const closedPromise = new Promise((resolve) => this.socket.on("close", resolve));
98
122
  this.socket.close();
99
- return this.awaitClose();
123
+ return closedPromise;
100
124
  }
101
- awaitClose() {
102
- return new Promise((resolve) => this.socket.on("close", resolve));
125
+ }
126
+ function assertHolochainMessage(message) {
127
+ if (typeof message === "object" &&
128
+ message !== null &&
129
+ "type" in message &&
130
+ "data" in message) {
131
+ return;
103
132
  }
104
- static connect(url, signalCb) {
105
- return new Promise((resolve, reject) => {
106
- const socket = new Websocket(url);
107
- // make sure that there are no uncaught connection
108
- // errors because that causes nodejs thread to crash
109
- // with uncaught exception
110
- socket.onerror = () => {
111
- reject(new Error(`could not connect to holochain conductor, please check that a conductor service is running and available at ${url}`));
112
- };
113
- socket.onopen = () => {
114
- resolve(new WsClient(socket, signalCb));
115
- };
116
- });
133
+ throw new Error(`unknown message format ${JSON.stringify(message, null, 4)}`);
134
+ }
135
+ function assertHolochainSignal(signal) {
136
+ if (typeof signal === "object" &&
137
+ signal !== null &&
138
+ Object.values(SignalType).some((type) => type in signal)) {
139
+ return;
117
140
  }
141
+ throw new Error(`unknown signal format ${JSON.stringify(signal, null, 4)}`);
118
142
  }
119
- const signalTransform = (res) => {
120
- return decode(res);
121
- };
122
143
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare type Tagged<T> = {
17
17
  */
18
18
  export declare const requesterTransformer: <ReqI, ReqO, ResI, ResO>(requester: Requester<Tagged<ReqO>, Tagged<ResI>>, tag: string, transform?: Transformer<ReqI, ReqO, ResI, ResO>) => (req: ReqI, timeout?: number) => Promise<ResO>;
19
19
  export declare const catchError: (res: any) => Promise<any>;
20
- export declare const promiseTimeout: (promise: Promise<any>, tag: string, ms: number) => Promise<unknown>;
20
+ export declare const promiseTimeout: (promise: Promise<unknown>, tag: string, ms: number) => Promise<unknown>;
21
21
  export declare const isCloneId: (roleName: RoleName) => boolean;
22
22
  export declare const getBaseRoleNameFromCloneId: (roleName: RoleName) => string;
23
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import nacl from "tweetnacl";
2
2
  import { CapSecret } from "../hdk/capabilities.js";
3
3
  import { AgentPubKey, CellId } from "../types.js";
4
4
  export declare type Nonce256Bit = Uint8Array;
5
- interface SigningCredentials {
5
+ export interface SigningCredentials {
6
6
  capSecret: CapSecret;
7
7
  keyPair: nacl.SignKeyPair;
8
8
  signingKey: AgentPubKey;
@@ -34,4 +34,3 @@ export declare const randomCapSecret: () => CapSecret;
34
34
  export declare const randomNonce: () => Nonce256Bit;
35
35
  export declare const randomByteArray: (length: number) => Uint8Array;
36
36
  export declare const getNonceExpiration: () => number;
37
- export {};
@@ -1,9 +1,9 @@
1
1
  import { InstalledAppId } from "../types.js";
2
2
  import { CallZomeRequest, CallZomeRequestSigned } from "../api/index.js";
3
3
  export interface LauncherEnvironment {
4
- APP_INTERFACE_PORT: number;
5
- ADMIN_INTERFACE_PORT: number;
6
- INSTALLED_APP_ID: InstalledAppId;
4
+ APP_INTERFACE_PORT?: number;
5
+ ADMIN_INTERFACE_PORT?: number;
6
+ INSTALLED_APP_ID?: InstalledAppId;
7
7
  }
8
8
  declare const __HC_LAUNCHER_ENV__ = "__HC_LAUNCHER_ENV__";
9
9
  export declare const isLauncher: boolean;
package/lib/types.d.ts CHANGED
@@ -25,6 +25,10 @@ export declare type InstalledCell = {
25
25
  role_name: RoleName;
26
26
  };
27
27
  export declare type Timestamp = number;
28
+ export interface Duration {
29
+ secs: number;
30
+ nanos: number;
31
+ }
28
32
  export interface HoloHashed<T> {
29
33
  hash: HoloHash;
30
34
  content: T;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@holochain/client",
3
- "version": "0.11.9",
3
+ "version": "0.11.10",
4
4
  "description": "A JavaScript client for the Holochain Conductor API",
5
5
  "author": "Holochain Foundation <info@holochain.org> (http://holochain.org)",
6
6
  "license": "CAL-1.0",
@@ -35,7 +35,8 @@
35
35
  },
36
36
  "scripts": {
37
37
  "lint": "eslint --fix --ext .ts src test .eslintrc.cjs",
38
- "test": "RUST_LOG=error RUST_BACKTRACE=1 node --experimental-wasm-modules --loader ts-node/esm test/index.ts",
38
+ "test:app-agent": "RUST_LOG=error RUST_BACKTRACE=1 node --loader ts-node/esm test/e2e/app-agent-websocket.ts",
39
+ "test": "RUST_LOG=error RUST_BACKTRACE=1 node --loader ts-node/esm test/index.ts",
39
40
  "build": "rimraf ./lib && tsc -p tsconfig.build.json"
40
41
  },
41
42
  "dependencies": {