@holochain/client 0.9.3 → 0.10.1
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 +24 -0
- package/lib/api/admin/types.d.ts +13 -5
- package/lib/api/admin/types.js.map +1 -1
- package/lib/api/admin/websocket.d.ts +1 -0
- package/lib/api/admin/websocket.js +1 -0
- package/lib/api/admin/websocket.js.map +1 -1
- package/lib/api/app/types.d.ts +8 -3
- package/lib/api/app/websocket.d.ts +4 -2
- package/lib/api/app/websocket.js +13 -9
- package/lib/api/app/websocket.js.map +1 -1
- package/lib/api/app-agent/index.d.ts +2 -0
- package/lib/api/app-agent/index.js +3 -0
- package/lib/api/app-agent/index.js.map +1 -0
- package/lib/api/app-agent/types.d.ts +16 -0
- package/lib/api/app-agent/types.js +2 -0
- package/lib/api/app-agent/types.js.map +1 -0
- package/lib/api/app-agent/websocket.d.ts +35 -0
- package/lib/api/app-agent/websocket.js +76 -0
- package/lib/api/app-agent/websocket.js.map +1 -0
- package/lib/api/client.d.ts +2 -2
- package/lib/api/client.js +22 -26
- package/lib/api/client.js.map +1 -1
- package/lib/api/common.d.ts +6 -6
- package/lib/api/common.js +9 -9
- package/lib/api/common.js.map +1 -1
- package/lib/hdk/capabilities.d.ts +2 -4
- package/lib/hdk/entry.d.ts +4 -4
- package/lib/types.d.ts +15 -2
- package/package.json +10 -6
package/README.md
CHANGED
|
@@ -49,6 +49,30 @@ npm install --save-exact @holochain/client
|
|
|
49
49
|
}, 30000)
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
### Use AppAgentWebsocket
|
|
53
|
+
```typescript
|
|
54
|
+
const signalCb = (signal: AppSignal) => {
|
|
55
|
+
// impl...
|
|
56
|
+
resolve()
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const TIMEOUT = 12000
|
|
60
|
+
// default timeout is set to 12000
|
|
61
|
+
const appWs = await AppWebsocket.connect(`ws://localhost:${appPort}`, 12000, signalCb)
|
|
62
|
+
|
|
63
|
+
const client = new AppAgentWebsocket(appWs, 'installed_app_id')
|
|
64
|
+
|
|
65
|
+
// default timeout set here (30000) will overwrite the defaultTimeout(12000) set above
|
|
66
|
+
await client.callZome({
|
|
67
|
+
cap: null,
|
|
68
|
+
role_name: 'dnas_role_name', // role_name is unique per app, so you can unambiguously identify your dna with role_name in this client,
|
|
69
|
+
zome_name: "test_zome",
|
|
70
|
+
fn_name: 'test_emitter_fn',
|
|
71
|
+
provenance: fakeAgentPubKey('TODO'),
|
|
72
|
+
payload: null,
|
|
73
|
+
}, 30000)
|
|
74
|
+
```
|
|
75
|
+
|
|
52
76
|
## API Reference
|
|
53
77
|
|
|
54
78
|
See [docs/API.md](docs/API.md)
|
package/lib/api/admin/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { AgentPubKey, CellId, DnaHash, DnaProperties, ActionHash, HoloHash, InstalledAppId, InstalledCell, KitsuneAgent, KitsuneSpace,
|
|
3
|
-
import { DhtOp, Entry, Action } from "../../hdk/index.js";
|
|
2
|
+
import { AgentPubKey, CellId, DnaHash, DnaProperties, ActionHash, HoloHash, InstalledAppId, InstalledCell, KitsuneAgent, KitsuneSpace, RoleName as RoleName, Signature, Timestamp, WasmHash } from "../../types.js";
|
|
3
|
+
import { DhtOp, Entry, Action, ZomeCallCapGrant } from "../../hdk/index.js";
|
|
4
4
|
import { Requester } from "../common.js";
|
|
5
5
|
import { ArchiveCloneCellRequest, CreateCloneCellResponse } from "../app/types.js";
|
|
6
6
|
export declare type AttachAppInterfaceRequest = {
|
|
@@ -89,6 +89,7 @@ export declare type DnaModifiers = {
|
|
|
89
89
|
properties: DnaProperties;
|
|
90
90
|
origin_time: Timestamp;
|
|
91
91
|
};
|
|
92
|
+
export declare type FnName = string;
|
|
92
93
|
export declare type ZomeName = string;
|
|
93
94
|
export declare type ZomeDefinition = [
|
|
94
95
|
ZomeName,
|
|
@@ -154,7 +155,7 @@ export declare type AppRoleDnaManifest = {
|
|
|
154
155
|
version?: DnaVersionFlexible;
|
|
155
156
|
};
|
|
156
157
|
export declare type AppRoleManifest = {
|
|
157
|
-
|
|
158
|
+
name: RoleName;
|
|
158
159
|
provisioning?: CellProvisioning;
|
|
159
160
|
dna: AppRoleDnaManifest;
|
|
160
161
|
};
|
|
@@ -215,9 +216,15 @@ export declare type RestoreCloneCellRequest = ArchiveCloneCellRequest;
|
|
|
215
216
|
export declare type RestoreCloneCellResponse = CreateCloneCellResponse;
|
|
216
217
|
export interface DeleteArchivedCloneCellsRequest {
|
|
217
218
|
app_id: InstalledAppId;
|
|
218
|
-
|
|
219
|
+
role_name: RoleName;
|
|
219
220
|
}
|
|
220
221
|
export declare type DeleteArchivedCloneCellsResponse = void;
|
|
222
|
+
export interface GrantZomeCallCapabilityPayload {
|
|
223
|
+
cell_id: CellId;
|
|
224
|
+
cap_grant: ZomeCallCapGrant;
|
|
225
|
+
}
|
|
226
|
+
export declare type GrantZomeCallCapabilityRequest = GrantZomeCallCapabilityPayload;
|
|
227
|
+
export declare type GrantZomeCallCapabilityResponse = void;
|
|
221
228
|
export interface AdminApi {
|
|
222
229
|
attachAppInterface: Requester<AttachAppInterfaceRequest, AttachAppInterfaceResponse>;
|
|
223
230
|
activateApp: Requester<ActivateAppRequest, ActivateAppResponse>;
|
|
@@ -242,10 +249,11 @@ export interface AdminApi {
|
|
|
242
249
|
addAgentInfo: Requester<AddAgentInfoRequest, AddAgentInfoResponse>;
|
|
243
250
|
restoreCloneCell: Requester<RestoreCloneCellRequest, RestoreCloneCellResponse>;
|
|
244
251
|
deleteArchivedCloneCells: Requester<DeleteArchivedCloneCellsRequest, DeleteArchivedCloneCellsResponse>;
|
|
252
|
+
grantZomeCallCapability: Requester<GrantZomeCallCapabilityRequest, GrantZomeCallCapabilityResponse>;
|
|
245
253
|
}
|
|
246
254
|
export declare type InstallAppDnaPayload = {
|
|
247
255
|
hash: HoloHash;
|
|
248
|
-
|
|
256
|
+
role_name: RoleName;
|
|
249
257
|
membrane_proof?: MembraneProof;
|
|
250
258
|
};
|
|
251
259
|
export declare type ZomeLocation = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/admin/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/admin/types.ts"],"names":[],"mappings":"AA8OA,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"}
|
|
@@ -46,4 +46,5 @@ export declare class AdminWebsocket implements Api.AdminApi {
|
|
|
46
46
|
addAgentInfo: Requester<Api.AddAgentInfoRequest, Api.AddAgentInfoResponse>;
|
|
47
47
|
restoreCloneCell: Requester<Api.RestoreCloneCellRequest, Api.RestoreCloneCellResponse>;
|
|
48
48
|
deleteArchivedCloneCells: Requester<Api.DeleteArchivedCloneCellsRequest, Api.DeleteArchivedCloneCellsResponse>;
|
|
49
|
+
grantZomeCallCapability: Requester<Api.GrantZomeCallCapabilityRequest, Api.GrantZomeCallCapabilityResponse>;
|
|
49
50
|
}
|
|
@@ -65,6 +65,7 @@ export class AdminWebsocket {
|
|
|
65
65
|
addAgentInfo = this._requester("add_agent_info");
|
|
66
66
|
restoreCloneCell = this._requester("restore_clone_cell");
|
|
67
67
|
deleteArchivedCloneCells = this._requester("delete_archived_clone_cells");
|
|
68
|
+
grantZomeCallCapability = this._requester("grant_zome_call_capability");
|
|
68
69
|
}
|
|
69
70
|
const listAppsTransform = {
|
|
70
71
|
input: (req) => {
|
|
@@ -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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"}
|
package/lib/api/app/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CapSecret } from "../../hdk/capabilities.js";
|
|
2
|
-
import { AgentPubKey, CellId, DnaProperties, InstalledAppId, InstalledCell,
|
|
2
|
+
import { AgentPubKey, CellId, DnaProperties, InstalledAppId, InstalledCell, RoleName, Timestamp, DnaHash, DnaGossipInfo } from "../../types.js";
|
|
3
3
|
import { Requester } from "../common.js";
|
|
4
4
|
import { InstalledAppInfo, MembraneProof, NetworkSeed } from "../admin/index.js";
|
|
5
5
|
export declare type CallZomeRequestGeneric<Payload> = {
|
|
@@ -25,7 +25,7 @@ export interface CreateCloneCellRequest {
|
|
|
25
25
|
/**
|
|
26
26
|
* The DNA's role id to clone.
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
role_name: RoleName;
|
|
29
29
|
/**
|
|
30
30
|
* Modifiers to set for the new cell.
|
|
31
31
|
* At least one of the modifiers must be set to obtain a distinct hash for
|
|
@@ -64,7 +64,7 @@ export interface CreateCloneCellRequest {
|
|
|
64
64
|
export declare type CreateCloneCellResponse = InstalledCell;
|
|
65
65
|
export interface ArchiveCloneCellRequest {
|
|
66
66
|
app_id: InstalledAppId;
|
|
67
|
-
clone_cell_id:
|
|
67
|
+
clone_cell_id: RoleName | CellId;
|
|
68
68
|
}
|
|
69
69
|
export declare type ArchiveCloneCellResponse = void;
|
|
70
70
|
export declare type AppSignal = {
|
|
@@ -74,6 +74,11 @@ export declare type AppSignal = {
|
|
|
74
74
|
payload: any;
|
|
75
75
|
};
|
|
76
76
|
};
|
|
77
|
+
export interface GossipInfoRequest {
|
|
78
|
+
/** The DNAs for which to get gossip info */
|
|
79
|
+
dnas: DnaHash[];
|
|
80
|
+
}
|
|
81
|
+
export declare type GossipInfoResponse = DnaGossipInfo[];
|
|
77
82
|
export declare type AppSignalCb = (signal: AppSignal) => void;
|
|
78
83
|
export declare type SignalResponseGeneric<Payload> = Payload;
|
|
79
84
|
export interface AppApi {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import Emittery from "emittery";
|
|
1
2
|
import { InstalledAppId } from "../../types.js";
|
|
2
3
|
import { WsClient } from "../client.js";
|
|
3
4
|
import { Requester, Transformer } from "../common.js";
|
|
4
|
-
import { AppApi, AppInfoRequest, AppInfoResponse, AppSignalCb, CallZomeRequestGeneric, CallZomeResponseGeneric, ArchiveCloneCellRequest, CreateCloneCellRequest, CreateCloneCellResponse, ArchiveCloneCellResponse } from "./types.js";
|
|
5
|
-
export declare class AppWebsocket implements AppApi {
|
|
5
|
+
import { AppApi, AppInfoRequest, AppInfoResponse, AppSignalCb, CallZomeRequestGeneric, CallZomeResponseGeneric, ArchiveCloneCellRequest, CreateCloneCellRequest, CreateCloneCellResponse, ArchiveCloneCellResponse, GossipInfoRequest, GossipInfoResponse } from "./types.js";
|
|
6
|
+
export declare class AppWebsocket extends Emittery implements AppApi {
|
|
6
7
|
client: WsClient;
|
|
7
8
|
defaultTimeout: number;
|
|
8
9
|
overrideInstalledAppId?: InstalledAppId;
|
|
@@ -13,4 +14,5 @@ export declare class AppWebsocket implements AppApi {
|
|
|
13
14
|
callZome: Requester<CallZomeRequestGeneric<any>, CallZomeResponseGeneric<any>>;
|
|
14
15
|
createCloneCell: Requester<CreateCloneCellRequest, CreateCloneCellResponse>;
|
|
15
16
|
archiveCloneCell: Requester<ArchiveCloneCellRequest, ArchiveCloneCellResponse>;
|
|
17
|
+
gossipInfo: Requester<GossipInfoRequest, GossipInfoResponse>;
|
|
16
18
|
}
|
package/lib/api/app/websocket.js
CHANGED
|
@@ -2,47 +2,51 @@
|
|
|
2
2
|
* Defines AppWebsocket, an easy-to-use websocket implementation of the
|
|
3
3
|
* Conductor API for apps
|
|
4
4
|
*
|
|
5
|
-
* const client = AppWebsocket.connect(
|
|
6
|
-
* 'ws://localhost:9000',
|
|
7
|
-
* signal => console.log('got a signal:', signal)
|
|
8
|
-
* )
|
|
5
|
+
* const client = AppWebsocket.connect('ws://localhost:9000');
|
|
9
6
|
*
|
|
10
|
-
* client.callZome({...})
|
|
7
|
+
* client.callZome({...})
|
|
11
8
|
* .then(() => {
|
|
12
9
|
* console.log('DNA successfully installed')
|
|
13
10
|
* })
|
|
14
11
|
* .catch(err => {
|
|
15
12
|
* console.error('problem installing DNA:', err)
|
|
16
|
-
* })
|
|
13
|
+
* });
|
|
17
14
|
*/
|
|
18
15
|
import { decode, encode } from "@msgpack/msgpack";
|
|
16
|
+
import Emittery from "emittery";
|
|
19
17
|
import { getLauncherEnvironment } from "../../environments/launcher.js";
|
|
20
18
|
import { WsClient } from "../client.js";
|
|
21
19
|
import { catchError, DEFAULT_TIMEOUT, promiseTimeout, requesterTransformer, } from "../common.js";
|
|
22
|
-
export class AppWebsocket {
|
|
20
|
+
export class AppWebsocket extends Emittery {
|
|
23
21
|
client;
|
|
24
22
|
defaultTimeout;
|
|
25
23
|
overrideInstalledAppId;
|
|
26
24
|
constructor(client, defaultTimeout, overrideInstalledAppId) {
|
|
25
|
+
super();
|
|
27
26
|
this.client = client;
|
|
28
27
|
this.defaultTimeout =
|
|
29
28
|
defaultTimeout === undefined ? DEFAULT_TIMEOUT : defaultTimeout;
|
|
30
29
|
this.overrideInstalledAppId = overrideInstalledAppId;
|
|
31
30
|
}
|
|
32
|
-
static async connect(url, defaultTimeout,
|
|
31
|
+
static async connect(url, defaultTimeout,
|
|
32
|
+
//** @deprecated */
|
|
33
|
+
signalCb) {
|
|
33
34
|
// Check if we are in the launcher's environment, and if so, redirect the url to connect to
|
|
34
35
|
const env = await getLauncherEnvironment();
|
|
35
36
|
if (env) {
|
|
36
37
|
url = `ws://localhost:${env.APP_INTERFACE_PORT}`;
|
|
37
38
|
}
|
|
38
39
|
const wsClient = await WsClient.connect(url, signalCb);
|
|
39
|
-
|
|
40
|
+
const appWebsocket = new AppWebsocket(wsClient, defaultTimeout, env ? env.INSTALLED_APP_ID : undefined);
|
|
41
|
+
wsClient.on("signal", (signal) => appWebsocket.emit("signal", signal));
|
|
42
|
+
return appWebsocket;
|
|
40
43
|
}
|
|
41
44
|
_requester = (tag, transformer) => requesterTransformer((req, timeout) => promiseTimeout(this.client.request(req), tag, timeout || this.defaultTimeout).then(catchError), tag, transformer);
|
|
42
45
|
appInfo = this._requester("app_info", appInfoTransform(this));
|
|
43
46
|
callZome = this._requester("zome_call", callZomeTransform);
|
|
44
47
|
createCloneCell = this._requester("create_clone_cell");
|
|
45
48
|
archiveCloneCell = this._requester("archive_clone_cell");
|
|
49
|
+
gossipInfo = this._requester("gossip_info");
|
|
46
50
|
}
|
|
47
51
|
const callZomeTransform = {
|
|
48
52
|
input: (req) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/app/websocket.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/app/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/app-agent/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import Emittery from "emittery";
|
|
2
|
+
import { ArchiveCloneCellResponse, CreateCloneCellRequest, CreateCloneCellResponse } from "..";
|
|
3
|
+
import { CellId, RoleName } from "../..";
|
|
4
|
+
import { CallZomeRequest, AppInfoResponse, ArchiveCloneCellRequest } from "../app";
|
|
5
|
+
export declare type AppAgentCallZomeRequest = Omit<CallZomeRequest, "cell_id"> & {
|
|
6
|
+
role_name?: RoleName;
|
|
7
|
+
cell_id?: CellId;
|
|
8
|
+
};
|
|
9
|
+
export declare type AppCreateCloneCellRequest = Omit<CreateCloneCellRequest, "app_id">;
|
|
10
|
+
export declare type AppArchiveCloneCellRequest = Omit<ArchiveCloneCellRequest, "app_id">;
|
|
11
|
+
export interface AppAgentClient extends Emittery {
|
|
12
|
+
callZome(args: AppAgentCallZomeRequest, timeout?: number): Promise<any>;
|
|
13
|
+
appInfo(): Promise<AppInfoResponse>;
|
|
14
|
+
createCloneCell(args: AppCreateCloneCellRequest): Promise<CreateCloneCellResponse>;
|
|
15
|
+
archiveCloneCell(args: AppArchiveCloneCellRequest): Promise<ArchiveCloneCellResponse>;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/app-agent/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines AppAgentWebsocket, an easy-to-use websocket implementation of the
|
|
3
|
+
* Conductor API for apps, restricted to a single app provided on initialization
|
|
4
|
+
*
|
|
5
|
+
* const appWs = AppWebsocket.connect('ws://localhost:9000')
|
|
6
|
+
*
|
|
7
|
+
* const client = new AppAgentWebsocket(appWs, 'my_installed_app_id')
|
|
8
|
+
*
|
|
9
|
+
* client.callZome({
|
|
10
|
+
* role_name: 'my_role_name' // role_name is unique per app, so you can unambiguously identify your dna with role_name in this client,
|
|
11
|
+
* zome_name: 'zome',
|
|
12
|
+
* fn_name: 'fn',
|
|
13
|
+
* payload: { value: 'v' }
|
|
14
|
+
* })
|
|
15
|
+
* .then(result => {
|
|
16
|
+
* console.log('callZome returned with:', result)
|
|
17
|
+
* })
|
|
18
|
+
* .catch(err => {
|
|
19
|
+
* console.error('callZome errored with:', err)
|
|
20
|
+
* })
|
|
21
|
+
*/
|
|
22
|
+
import Emittery from "emittery";
|
|
23
|
+
import { InstalledAppId } from "../../types.js";
|
|
24
|
+
import { AppInfoResponse, AppWebsocket, ArchiveCloneCellResponse, CallZomeResponse, CreateCloneCellResponse, InstalledAppInfo } from "../index.js";
|
|
25
|
+
import { AppAgentCallZomeRequest, AppAgentClient, AppArchiveCloneCellRequest, AppCreateCloneCellRequest } from "./types.js";
|
|
26
|
+
export declare class AppAgentWebsocket extends Emittery implements AppAgentClient {
|
|
27
|
+
appWebsocket: AppWebsocket;
|
|
28
|
+
installedAppId: InstalledAppId;
|
|
29
|
+
cachedAppInfo?: InstalledAppInfo;
|
|
30
|
+
constructor(appWebsocket: AppWebsocket, installedAppId: InstalledAppId);
|
|
31
|
+
appInfo(): Promise<AppInfoResponse>;
|
|
32
|
+
callZome(request: AppAgentCallZomeRequest, timeout?: number): Promise<CallZomeResponse>;
|
|
33
|
+
createCloneCell(args: AppCreateCloneCellRequest): Promise<CreateCloneCellResponse>;
|
|
34
|
+
archiveCloneCell(args: AppArchiveCloneCellRequest): Promise<ArchiveCloneCellResponse>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines AppAgentWebsocket, an easy-to-use websocket implementation of the
|
|
3
|
+
* Conductor API for apps, restricted to a single app provided on initialization
|
|
4
|
+
*
|
|
5
|
+
* const appWs = AppWebsocket.connect('ws://localhost:9000')
|
|
6
|
+
*
|
|
7
|
+
* const client = new AppAgentWebsocket(appWs, 'my_installed_app_id')
|
|
8
|
+
*
|
|
9
|
+
* client.callZome({
|
|
10
|
+
* role_name: 'my_role_name' // role_name is unique per app, so you can unambiguously identify your dna with role_name in this client,
|
|
11
|
+
* zome_name: 'zome',
|
|
12
|
+
* fn_name: 'fn',
|
|
13
|
+
* payload: { value: 'v' }
|
|
14
|
+
* })
|
|
15
|
+
* .then(result => {
|
|
16
|
+
* console.log('callZome returned with:', result)
|
|
17
|
+
* })
|
|
18
|
+
* .catch(err => {
|
|
19
|
+
* console.error('callZome errored with:', err)
|
|
20
|
+
* })
|
|
21
|
+
*/
|
|
22
|
+
import Emittery from "emittery";
|
|
23
|
+
import omit from "lodash/omit.js";
|
|
24
|
+
export class AppAgentWebsocket extends Emittery {
|
|
25
|
+
appWebsocket;
|
|
26
|
+
installedAppId;
|
|
27
|
+
cachedAppInfo;
|
|
28
|
+
constructor(appWebsocket, installedAppId) {
|
|
29
|
+
super();
|
|
30
|
+
this.appWebsocket = appWebsocket;
|
|
31
|
+
this.installedAppId = installedAppId;
|
|
32
|
+
this.appWebsocket.on("signal", (signal) => this.emit("signal", signal));
|
|
33
|
+
}
|
|
34
|
+
async appInfo() {
|
|
35
|
+
const appInfo = await this.appWebsocket.appInfo({
|
|
36
|
+
installed_app_id: this.installedAppId,
|
|
37
|
+
});
|
|
38
|
+
this.cachedAppInfo = appInfo;
|
|
39
|
+
return appInfo;
|
|
40
|
+
}
|
|
41
|
+
async callZome(request, timeout) {
|
|
42
|
+
if (request.role_name) {
|
|
43
|
+
const appInfo = this.cachedAppInfo || (await this.appInfo());
|
|
44
|
+
const cell_id = appInfo.cell_data.find((c) => c.role_name === request.role_name)?.cell_id;
|
|
45
|
+
if (!cell_id) {
|
|
46
|
+
throw new Error(`No cell found with role_name ${request.role_name}`);
|
|
47
|
+
}
|
|
48
|
+
const callZomeRequest = {
|
|
49
|
+
...omit(request, "role_name"),
|
|
50
|
+
cell_id,
|
|
51
|
+
};
|
|
52
|
+
return this.appWebsocket.callZome(callZomeRequest, timeout);
|
|
53
|
+
}
|
|
54
|
+
else if (request.cell_id) {
|
|
55
|
+
return this.appWebsocket.callZome(request, timeout);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
throw new Error("callZome requires a role_name or cell_id arg");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async createCloneCell(args) {
|
|
62
|
+
const clonedCell = this.appWebsocket.createCloneCell({
|
|
63
|
+
app_id: this.installedAppId,
|
|
64
|
+
...args,
|
|
65
|
+
});
|
|
66
|
+
this.cachedAppInfo = undefined;
|
|
67
|
+
return clonedCell;
|
|
68
|
+
}
|
|
69
|
+
async archiveCloneCell(args) {
|
|
70
|
+
return this.appWebsocket.archiveCloneCell({
|
|
71
|
+
app_id: this.installedAppId,
|
|
72
|
+
...args,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=websocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/app-agent/websocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEF,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAmBnC,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,CAAe;IAC3B,cAAc,CAAiB;IAC/B,aAAa,CAAoB;IAEjC,YAAY,YAA0B,EAAE,cAA8B;QACpE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAC9C,gBAAgB,EAAE,IAAI,CAAC,cAAc;SACtC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAgC,EAChC,OAAgB;QAEhB,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CACzC,EAAE,OAAO,CAAC;YAEX,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;aACtE;YAED,MAAM,eAAe,GAAG;gBACtB,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;gBAC7B,OAAO;aACR,CAAC;YACF,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;SAC7D;aAAM,IAAI,OAAO,CAAC,OAAO,EAAE;YAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAA0B,EAAE,OAAO,CAAC,CAAC;SACxE;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,IAA+B;QAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;YACnD,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,GAAG,IAAI;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAE/B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,IAAgC;QAEhC,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/lib/api/client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="ws" />
|
|
2
2
|
import { decode } from "@msgpack/msgpack";
|
|
3
3
|
import Websocket from "isomorphic-ws";
|
|
4
|
+
import Emittery from "emittery";
|
|
4
5
|
import { AppSignalCb } from "./app/types.js";
|
|
5
6
|
/**
|
|
6
7
|
* A Websocket client which can make requests and receive responses,
|
|
@@ -8,14 +9,13 @@ import { AppSignalCb } from "./app/types.js";
|
|
|
8
9
|
*
|
|
9
10
|
* Uses Holochain's websocket WireMessage for communication.
|
|
10
11
|
*/
|
|
11
|
-
export declare class WsClient {
|
|
12
|
+
export declare class WsClient extends Emittery {
|
|
12
13
|
socket: Websocket;
|
|
13
14
|
pendingRequests: Record<number, {
|
|
14
15
|
fulfill: (msg: unknown) => ReturnType<typeof decode>;
|
|
15
16
|
reject: (error: Error) => void;
|
|
16
17
|
}>;
|
|
17
18
|
index: number;
|
|
18
|
-
alreadyWarnedNoSignalCb: boolean;
|
|
19
19
|
constructor(socket: any, signalCb?: AppSignalCb);
|
|
20
20
|
emitSignal(data: any): void;
|
|
21
21
|
request<Req, Res>(data: Req): Promise<Res>;
|
package/lib/api/client.js
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import { decode, encode } from "@msgpack/msgpack";
|
|
2
2
|
import Websocket from "isomorphic-ws";
|
|
3
|
+
import Emittery from "emittery";
|
|
3
4
|
/**
|
|
4
5
|
* A Websocket client which can make requests and receive responses,
|
|
5
6
|
* as well as send and receive signals
|
|
6
7
|
*
|
|
7
8
|
* Uses Holochain's websocket WireMessage for communication.
|
|
8
9
|
*/
|
|
9
|
-
export class WsClient {
|
|
10
|
+
export class WsClient extends Emittery {
|
|
10
11
|
socket;
|
|
11
12
|
pendingRequests;
|
|
12
13
|
index;
|
|
13
|
-
alreadyWarnedNoSignalCb;
|
|
14
14
|
constructor(socket, signalCb) {
|
|
15
|
+
super();
|
|
15
16
|
this.socket = socket;
|
|
16
17
|
this.pendingRequests = {};
|
|
17
18
|
this.index = 0;
|
|
18
|
-
|
|
19
|
-
|
|
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
|
+
}
|
|
20
23
|
socket.onmessage = async (encodedMsg) => {
|
|
21
24
|
let data = encodedMsg.data;
|
|
22
25
|
// If data is not a buffer (nodejs), it will be a blob (browser)
|
|
@@ -25,29 +28,22 @@ export class WsClient {
|
|
|
25
28
|
}
|
|
26
29
|
const msg = decode(data);
|
|
27
30
|
if (msg.type === "Signal") {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
// Note: holochain currently returns signals as an array of two values: cellId and the serialized signal payload
|
|
35
|
-
// and this array is nested within the App key within the returned message.
|
|
36
|
-
const decodedCellId = decodedMessage.App[0];
|
|
37
|
-
// Note:In order to return readible content to the UI, the signal payload must also be decoded.
|
|
38
|
-
const decodedPayload = signalTransform(decodedMessage.App[1]);
|
|
39
|
-
// Return a uniform format to UI (ie: { type, data } - the same format as with callZome and appInfo...)
|
|
40
|
-
const signal = {
|
|
41
|
-
type: msg.type,
|
|
42
|
-
data: { cellId: decodedCellId, payload: decodedPayload },
|
|
43
|
-
};
|
|
44
|
-
signalCb(signal);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
if (!this.alreadyWarnedNoSignalCb)
|
|
48
|
-
console.log("Received signal but no signal callback was set in constructor");
|
|
49
|
-
this.alreadyWarnedNoSignalCb = true;
|
|
31
|
+
const decodedMessage = decode(msg.data);
|
|
32
|
+
if (!decodedMessage.App) {
|
|
33
|
+
// We have received a system signal, do nothing
|
|
34
|
+
return;
|
|
50
35
|
}
|
|
36
|
+
// Note: holochain currently returns signals as an array of two values: cellId and the serialized signal payload
|
|
37
|
+
// 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]);
|
|
41
|
+
// 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
|
+
};
|
|
46
|
+
this.emit("signal", signal);
|
|
51
47
|
}
|
|
52
48
|
else if (msg.type === "Response") {
|
|
53
49
|
this.handleResponse(msg);
|
package/lib/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,SAAS,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/lib/api/common.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RoleName } from "../types.js";
|
|
2
2
|
export declare const DEFAULT_TIMEOUT = 15000;
|
|
3
3
|
export declare type Transformer<ReqO, ReqI, ResI, ResO> = {
|
|
4
4
|
input: (req: ReqO) => ReqI;
|
|
@@ -26,15 +26,15 @@ export declare const promiseTimeout: (promise: Promise<any>, tag: string, ms: nu
|
|
|
26
26
|
*/
|
|
27
27
|
export declare class CloneId {
|
|
28
28
|
private static readonly CLONE_ID_DELIMITER;
|
|
29
|
-
private readonly
|
|
29
|
+
private readonly roleName;
|
|
30
30
|
private readonly index;
|
|
31
|
-
constructor(
|
|
31
|
+
constructor(roleName: RoleName, index: number);
|
|
32
32
|
/**
|
|
33
33
|
* Parse a role id of a clone cell to obtain a clone id instance.
|
|
34
|
-
* @param
|
|
34
|
+
* @param roleName Role id to parse.
|
|
35
35
|
* @returns A clone id instance.
|
|
36
36
|
*/
|
|
37
|
-
static
|
|
37
|
+
static fromRoleName(roleName: RoleName): CloneId;
|
|
38
38
|
toString(): string;
|
|
39
|
-
|
|
39
|
+
getBaseRoleName(): string;
|
|
40
40
|
}
|
package/lib/api/common.js
CHANGED
|
@@ -46,29 +46,29 @@ export const promiseTimeout = (promise, tag, ms) => {
|
|
|
46
46
|
*/
|
|
47
47
|
export class CloneId {
|
|
48
48
|
static CLONE_ID_DELIMITER = ".";
|
|
49
|
-
|
|
49
|
+
roleName;
|
|
50
50
|
index;
|
|
51
|
-
constructor(
|
|
52
|
-
this.
|
|
51
|
+
constructor(roleName, index) {
|
|
52
|
+
this.roleName = roleName;
|
|
53
53
|
this.index = index;
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Parse a role id of a clone cell to obtain a clone id instance.
|
|
57
|
-
* @param
|
|
57
|
+
* @param roleName Role id to parse.
|
|
58
58
|
* @returns A clone id instance.
|
|
59
59
|
*/
|
|
60
|
-
static
|
|
61
|
-
const parts =
|
|
60
|
+
static fromRoleName(roleName) {
|
|
61
|
+
const parts = roleName.split(CloneId.CLONE_ID_DELIMITER);
|
|
62
62
|
if (parts.length !== 2) {
|
|
63
63
|
throw new Error("Malformed clone id: must consist of {role id.clone index}");
|
|
64
64
|
}
|
|
65
65
|
return new CloneId(parts[0], parseInt(parts[1]));
|
|
66
66
|
}
|
|
67
67
|
toString() {
|
|
68
|
-
return `${this.
|
|
68
|
+
return `${this.roleName}${CloneId.CLONE_ID_DELIMITER}${this.index}`;
|
|
69
69
|
}
|
|
70
|
-
|
|
71
|
-
return this.
|
|
70
|
+
getBaseRoleName() {
|
|
71
|
+
return this.roleName;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
//# sourceMappingURL=common.js.map
|
package/lib/api/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,OAAO,CAAC;AAC3B,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAWrC;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,CACE,SAAgD,EAChD,GAAW,EACX,YAAiD,mBAAmB,EACpE,EAAE,CACJ,KAAK,EAAE,GAAS,EAAE,OAAgB,EAAE,EAAE;IACpC,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACJ,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/B,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE;IACrC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,OAAqB,EACrB,GAAW,EACX,EAAU,EACV,EAAE;IACF,IAAI,EAAkB,CAAC;IAEvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACxC,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;YACnB,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,OAAO;IACV,MAAM,CAAU,kBAAkB,GAAG,GAAG,CAAC;IAChC,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FnName, ZomeName } from "../api/index.js";
|
|
1
2
|
import { AgentPubKey } from "../types.js";
|
|
2
3
|
export declare type CapSecret = Uint8Array;
|
|
3
4
|
export interface CapClaim {
|
|
@@ -8,10 +9,7 @@ export interface CapClaim {
|
|
|
8
9
|
export interface ZomeCallCapGrant {
|
|
9
10
|
tag: string;
|
|
10
11
|
access: CapAccess;
|
|
11
|
-
functions: Array<
|
|
12
|
-
zome: string;
|
|
13
|
-
fn_name: string;
|
|
14
|
-
}>;
|
|
12
|
+
functions: Array<[ZomeName, FnName]>;
|
|
15
13
|
}
|
|
16
14
|
export declare type CapAccess = "Unrestricted" | {
|
|
17
15
|
Transferable: {
|
package/lib/hdk/entry.d.ts
CHANGED
|
@@ -6,13 +6,13 @@ export declare type EntryVisibility = {
|
|
|
6
6
|
} | {
|
|
7
7
|
Private: null;
|
|
8
8
|
};
|
|
9
|
-
export declare type
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
export declare type AppEntryDef = {
|
|
10
|
+
entry_index: number;
|
|
11
|
+
zome_index: number;
|
|
12
12
|
visibility: EntryVisibility;
|
|
13
13
|
};
|
|
14
14
|
export declare type EntryType = "Agent" | {
|
|
15
|
-
App:
|
|
15
|
+
App: AppEntryDef;
|
|
16
16
|
} | "CapClaim" | "CapGrant";
|
|
17
17
|
export interface EntryContent<E extends string, C> {
|
|
18
18
|
entry_type: E;
|
package/lib/types.d.ts
CHANGED
|
@@ -11,13 +11,26 @@ export declare type InstalledAppId = string;
|
|
|
11
11
|
export declare type Signature = Uint8Array;
|
|
12
12
|
export declare type CellId = [DnaHash, AgentPubKey];
|
|
13
13
|
export declare type DnaProperties = any;
|
|
14
|
-
export declare type
|
|
14
|
+
export declare type RoleName = string;
|
|
15
15
|
export declare type InstalledCell = {
|
|
16
16
|
cell_id: CellId;
|
|
17
|
-
|
|
17
|
+
role_name: RoleName;
|
|
18
18
|
};
|
|
19
19
|
export declare type Timestamp = number;
|
|
20
20
|
export interface HoloHashed<T> {
|
|
21
21
|
hash: HoloHash;
|
|
22
22
|
content: T;
|
|
23
23
|
}
|
|
24
|
+
export declare type DnaGossipInfo = {
|
|
25
|
+
total_historical_gossip_throughput: HistoricalGossipThroughput;
|
|
26
|
+
};
|
|
27
|
+
export declare type HistoricalGossipThroughput = {
|
|
28
|
+
expected_op_bytes: InOut;
|
|
29
|
+
expected_op_count: InOut;
|
|
30
|
+
op_bytes: InOut;
|
|
31
|
+
op_count: InOut;
|
|
32
|
+
};
|
|
33
|
+
export declare type InOut = {
|
|
34
|
+
incoming: number;
|
|
35
|
+
outgoing: number;
|
|
36
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@holochain/client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
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",
|
|
@@ -32,26 +32,30 @@
|
|
|
32
32
|
],
|
|
33
33
|
"scripts": {
|
|
34
34
|
"lint": "eslint --fix --ext .ts src test .eslintrc.cjs",
|
|
35
|
-
"test": "RUST_LOG=error RUST_BACKTRACE=1 node --loader ts-node/esm test/index.ts",
|
|
35
|
+
"test": "RUST_LOG=error RUST_BACKTRACE=1 node --experimental-wasm-modules --loader ts-node/esm test/index.ts",
|
|
36
36
|
"build": "rimraf ./lib && tsc -p tsconfig.build.json"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@msgpack/msgpack": "^2.7.2",
|
|
40
40
|
"cross-fetch": "^3.1.5",
|
|
41
|
-
"
|
|
42
|
-
"eslint-plugin-prettier": "^4.0.0",
|
|
43
|
-
"eslint-plugin-tsdoc": "^0.2.16",
|
|
41
|
+
"emittery": "^1.0.1",
|
|
44
42
|
"isomorphic-ws": "^5.0.0",
|
|
45
|
-
"
|
|
43
|
+
"lodash": "^4.5.0",
|
|
44
|
+
"tweetnacl": "^1.0.3"
|
|
46
45
|
},
|
|
47
46
|
"devDependencies": {
|
|
48
47
|
"@types/js-yaml": "^3.12.7",
|
|
48
|
+
"@types/lodash": "^4.5.7",
|
|
49
49
|
"@types/tape": "^4.13.2",
|
|
50
50
|
"@types/ws": "^8.5.3",
|
|
51
51
|
"@typescript-eslint/eslint-plugin": "^5.27.0",
|
|
52
52
|
"@typescript-eslint/parser": "^5.27.0",
|
|
53
53
|
"eslint": "^8.16.0",
|
|
54
|
+
"eslint-config-prettier": "^8.5.0",
|
|
55
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
56
|
+
"eslint-plugin-tsdoc": "^0.2.16",
|
|
54
57
|
"js-yaml": "^3.14.1",
|
|
58
|
+
"prettier": "^2.6.2",
|
|
55
59
|
"rimraf": "^3.0.2",
|
|
56
60
|
"tape": "^5.5.3",
|
|
57
61
|
"ts-node": "^10.8.1",
|