@holochain/client 0.3.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/README.md +92 -0
- package/lib/api/admin.d.ts +224 -0
- package/lib/api/admin.js +12 -0
- package/lib/api/admin.js.map +1 -0
- package/lib/api/app.d.ts +32 -0
- package/lib/api/app.js +3 -0
- package/lib/api/app.js.map +1 -0
- package/lib/api/common.d.ts +16 -0
- package/lib/api/common.js +21 -0
- package/lib/api/common.js.map +1 -0
- package/lib/api/state-dump.d.ts +36 -0
- package/lib/api/state-dump.js +3 -0
- package/lib/api/state-dump.js.map +1 -0
- package/lib/api/types.d.ts +39 -0
- package/lib/api/types.js +8 -0
- package/lib/api/types.js.map +1 -0
- package/lib/environments/launcher.d.ts +8 -0
- package/lib/environments/launcher.js +42 -0
- package/lib/environments/launcher.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +18 -0
- package/lib/index.js.map +1 -0
- package/lib/types/capabilities.d.ts +30 -0
- package/lib/types/capabilities.js +3 -0
- package/lib/types/capabilities.js.map +1 -0
- package/lib/types/common.d.ts +22 -0
- package/lib/types/common.js +3 -0
- package/lib/types/common.js.map +1 -0
- package/lib/types/dht-ops.d.ts +45 -0
- package/lib/types/dht-ops.js +42 -0
- package/lib/types/dht-ops.js.map +1 -0
- package/lib/types/entry.d.ts +16 -0
- package/lib/types/entry.js +3 -0
- package/lib/types/entry.js.map +1 -0
- package/lib/types/header.d.ts +108 -0
- package/lib/types/header.js +17 -0
- package/lib/types/header.js.map +1 -0
- package/lib/types/index.d.ts +5 -0
- package/lib/types/index.js +18 -0
- package/lib/types/index.js.map +1 -0
- package/lib/websocket/admin.d.ts +47 -0
- package/lib/websocket/admin.js +127 -0
- package/lib/websocket/admin.js.map +1 -0
- package/lib/websocket/app.d.ts +13 -0
- package/lib/websocket/app.js +70 -0
- package/lib/websocket/app.js.map +1 -0
- package/lib/websocket/client.d.ts +25 -0
- package/lib/websocket/client.js +129 -0
- package/lib/websocket/client.js.map +1 -0
- package/lib/websocket/common.d.ts +3 -0
- package/lib/websocket/common.js +34 -0
- package/lib/websocket/common.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { CreateLink, Delete, DeleteLink, Header, NewEntryHeader, Update } from "./header";
|
|
2
|
+
import { Entry } from "./entry";
|
|
3
|
+
import { Signature } from "./common";
|
|
4
|
+
export declare enum DhtOpType {
|
|
5
|
+
StoreElement = "StoreElement",
|
|
6
|
+
StoreEntry = "StoreEntry",
|
|
7
|
+
RegisterAgentActivity = "RegisterAgentActivity",
|
|
8
|
+
RegisterUpdatedContent = "RegisterUpdatedContent",
|
|
9
|
+
RegisterUpdatedElement = "RegisterUpdatedElement",
|
|
10
|
+
RegisterDeletedBy = "RegisterDeletedBy",
|
|
11
|
+
RegisterDeletedEntryHeader = "RegisterDeletedEntryHeader",
|
|
12
|
+
RegisterAddLink = "RegisterAddLink",
|
|
13
|
+
RegisterRemoveLink = "RegisterRemoveLink"
|
|
14
|
+
}
|
|
15
|
+
export declare type DhtOp = {
|
|
16
|
+
[DhtOpType.StoreElement]: [Signature, Header, Entry | undefined];
|
|
17
|
+
} | {
|
|
18
|
+
[DhtOpType.StoreEntry]: [Signature, NewEntryHeader, Entry];
|
|
19
|
+
} | {
|
|
20
|
+
[DhtOpType.RegisterAgentActivity]: [Signature, Header];
|
|
21
|
+
} | {
|
|
22
|
+
[DhtOpType.RegisterUpdatedContent]: [
|
|
23
|
+
Signature,
|
|
24
|
+
Update,
|
|
25
|
+
Entry | undefined
|
|
26
|
+
];
|
|
27
|
+
} | {
|
|
28
|
+
[DhtOpType.RegisterUpdatedElement]: [
|
|
29
|
+
Signature,
|
|
30
|
+
Update,
|
|
31
|
+
Entry | undefined
|
|
32
|
+
];
|
|
33
|
+
} | {
|
|
34
|
+
[DhtOpType.RegisterDeletedBy]: [Signature, Delete];
|
|
35
|
+
} | {
|
|
36
|
+
[DhtOpType.RegisterDeletedEntryHeader]: [Signature, Delete];
|
|
37
|
+
} | {
|
|
38
|
+
[DhtOpType.RegisterAddLink]: [Signature, CreateLink];
|
|
39
|
+
} | {
|
|
40
|
+
[DhtOpType.RegisterRemoveLink]: [Signature, DeleteLink];
|
|
41
|
+
};
|
|
42
|
+
export declare function getDhtOpType(op: DhtOp): DhtOpType;
|
|
43
|
+
export declare function getDhtOpHeader(op: DhtOp): Header;
|
|
44
|
+
export declare function getDhtOpEntry(op: DhtOp): Entry | undefined;
|
|
45
|
+
export declare function getDhtOpSignature(op: DhtOp): Signature;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDhtOpSignature = exports.getDhtOpEntry = exports.getDhtOpHeader = exports.getDhtOpType = exports.DhtOpType = void 0;
|
|
4
|
+
// https://github.com/holochain/holochain/blob/develop/crates/types/src/dht_op.rs
|
|
5
|
+
var DhtOpType;
|
|
6
|
+
(function (DhtOpType) {
|
|
7
|
+
DhtOpType["StoreElement"] = "StoreElement";
|
|
8
|
+
DhtOpType["StoreEntry"] = "StoreEntry";
|
|
9
|
+
DhtOpType["RegisterAgentActivity"] = "RegisterAgentActivity";
|
|
10
|
+
DhtOpType["RegisterUpdatedContent"] = "RegisterUpdatedContent";
|
|
11
|
+
DhtOpType["RegisterUpdatedElement"] = "RegisterUpdatedElement";
|
|
12
|
+
DhtOpType["RegisterDeletedBy"] = "RegisterDeletedBy";
|
|
13
|
+
DhtOpType["RegisterDeletedEntryHeader"] = "RegisterDeletedEntryHeader";
|
|
14
|
+
DhtOpType["RegisterAddLink"] = "RegisterAddLink";
|
|
15
|
+
DhtOpType["RegisterRemoveLink"] = "RegisterRemoveLink";
|
|
16
|
+
})(DhtOpType = exports.DhtOpType || (exports.DhtOpType = {}));
|
|
17
|
+
function getDhtOpType(op) {
|
|
18
|
+
return Object.keys(op)[0];
|
|
19
|
+
}
|
|
20
|
+
exports.getDhtOpType = getDhtOpType;
|
|
21
|
+
function getDhtOpHeader(op) {
|
|
22
|
+
const header = Object.values(op)[0][1];
|
|
23
|
+
if (header.author)
|
|
24
|
+
return header;
|
|
25
|
+
else {
|
|
26
|
+
const headerType = Object.keys(header)[0];
|
|
27
|
+
return {
|
|
28
|
+
type: headerType,
|
|
29
|
+
...header[headerType],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.getDhtOpHeader = getDhtOpHeader;
|
|
34
|
+
function getDhtOpEntry(op) {
|
|
35
|
+
return Object.values(op)[0][2];
|
|
36
|
+
}
|
|
37
|
+
exports.getDhtOpEntry = getDhtOpEntry;
|
|
38
|
+
function getDhtOpSignature(op) {
|
|
39
|
+
return Object.values(op)[0][1];
|
|
40
|
+
}
|
|
41
|
+
exports.getDhtOpSignature = getDhtOpSignature;
|
|
42
|
+
//# sourceMappingURL=dht-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dht-ops.js","sourceRoot":"","sources":["../../src/types/dht-ops.ts"],"names":[],"mappings":";;;AAcA,iFAAiF;AAEjF,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,sCAAyB,CAAA;IACzB,4DAA+C,CAAA;IAC/C,8DAAiD,CAAA;IACjD,8DAAiD,CAAA;IACjD,oDAAuC,CAAA;IACvC,sEAAyD,CAAA;IACzD,gDAAmC,CAAA;IACnC,sDAAyC,CAAA;AAC3C,CAAC,EAVW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAUpB;AAyBD,SAAgB,YAAY,CAAC,EAAS;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAc,CAAA;AACxC,CAAC;AAFD,oCAEC;AAED,SAAgB,cAAc,CAAC,EAAS;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEtC,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAA;SAC3B;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,GAAG,MAAM,CAAC,UAAU,CAAC;SACtB,CAAA;KACF;AACH,CAAC;AAXD,wCAWC;AAED,SAAgB,aAAa,CAAC,EAAS;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC;AAFD,sCAEC;AAED,SAAgB,iBAAiB,CAAC,EAAS;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC;AAFD,8CAEC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CapClaim, ZomeCallCapGrant } from "./capabilities";
|
|
2
|
+
import { AgentPubKey } from "./common";
|
|
3
|
+
export declare type EntryVisibility = "Public" | "Private";
|
|
4
|
+
export declare type AppEntryType = {
|
|
5
|
+
id: number;
|
|
6
|
+
zome_id: number;
|
|
7
|
+
visibility: EntryVisibility;
|
|
8
|
+
};
|
|
9
|
+
export declare type EntryType = "Agent" | {
|
|
10
|
+
App: AppEntryType;
|
|
11
|
+
} | "CapClaim" | "CapGrant";
|
|
12
|
+
export interface EntryContent<E extends string, C> {
|
|
13
|
+
entry_type: E;
|
|
14
|
+
entry: C;
|
|
15
|
+
}
|
|
16
|
+
export declare type Entry = EntryContent<"Agent", AgentPubKey> | EntryContent<"App", any> | EntryContent<"CapGrant", ZomeCallCapGrant> | EntryContent<"CapClaim", CapClaim>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/types/entry.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { AgentPubKey, DnaHash, EntryHash, HeaderHash, Signature } from "./common";
|
|
2
|
+
import { EntryType } from "./entry";
|
|
3
|
+
import { HoloHashed, Timestamp } from "./common";
|
|
4
|
+
export interface SignedHeaderHashed<H extends Header = Header> {
|
|
5
|
+
header: HoloHashed<H>;
|
|
6
|
+
signature: Signature;
|
|
7
|
+
}
|
|
8
|
+
export declare type HeaderHashed = HoloHashed<Header>;
|
|
9
|
+
export declare enum HeaderType {
|
|
10
|
+
Dna = "Dna",
|
|
11
|
+
AgentValidationPkg = "AgentValidationPkg",
|
|
12
|
+
InitZomesComplete = "InitZomesComplete",
|
|
13
|
+
CreateLink = "CreateLink",
|
|
14
|
+
DeleteLink = "DeleteLink",
|
|
15
|
+
OpenChain = "OpenChain",
|
|
16
|
+
CloseChain = "CloseChain",
|
|
17
|
+
Create = "Create",
|
|
18
|
+
Update = "Update",
|
|
19
|
+
Delete = "Delete"
|
|
20
|
+
}
|
|
21
|
+
export declare type Header = Dna | AgentValidationPkg | InitZomesComplete | CreateLink | DeleteLink | OpenChain | CloseChain | Delete | NewEntryHeader;
|
|
22
|
+
export declare type NewEntryHeader = Create | Update;
|
|
23
|
+
export interface Dna {
|
|
24
|
+
type: HeaderType.Dna;
|
|
25
|
+
author: AgentPubKey;
|
|
26
|
+
timestamp: Timestamp;
|
|
27
|
+
hash: DnaHash;
|
|
28
|
+
}
|
|
29
|
+
export interface AgentValidationPkg {
|
|
30
|
+
type: HeaderType.AgentValidationPkg;
|
|
31
|
+
author: AgentPubKey;
|
|
32
|
+
timestamp: Timestamp;
|
|
33
|
+
header_seq: number;
|
|
34
|
+
prev_header: HeaderHash;
|
|
35
|
+
membrane_proof: any;
|
|
36
|
+
}
|
|
37
|
+
export interface InitZomesComplete {
|
|
38
|
+
type: HeaderType.InitZomesComplete;
|
|
39
|
+
author: AgentPubKey;
|
|
40
|
+
timestamp: Timestamp;
|
|
41
|
+
header_seq: number;
|
|
42
|
+
prev_header: HeaderHash;
|
|
43
|
+
}
|
|
44
|
+
export interface CreateLink {
|
|
45
|
+
type: HeaderType.CreateLink;
|
|
46
|
+
author: AgentPubKey;
|
|
47
|
+
timestamp: Timestamp;
|
|
48
|
+
header_seq: number;
|
|
49
|
+
prev_header: HeaderHash;
|
|
50
|
+
base_address: EntryHash;
|
|
51
|
+
target_address: EntryHash;
|
|
52
|
+
zome_id: number;
|
|
53
|
+
tag: any;
|
|
54
|
+
}
|
|
55
|
+
export interface DeleteLink {
|
|
56
|
+
type: HeaderType.DeleteLink;
|
|
57
|
+
author: AgentPubKey;
|
|
58
|
+
timestamp: Timestamp;
|
|
59
|
+
header_seq: number;
|
|
60
|
+
prev_header: HeaderHash;
|
|
61
|
+
base_address: EntryHash;
|
|
62
|
+
link_add_address: HeaderHash;
|
|
63
|
+
}
|
|
64
|
+
export interface OpenChain {
|
|
65
|
+
type: HeaderType.OpenChain;
|
|
66
|
+
author: AgentPubKey;
|
|
67
|
+
timestamp: Timestamp;
|
|
68
|
+
header_seq: number;
|
|
69
|
+
prev_header: HeaderHash;
|
|
70
|
+
prev_dna_hash: DnaHash;
|
|
71
|
+
}
|
|
72
|
+
export interface CloseChain {
|
|
73
|
+
type: HeaderType.CloseChain;
|
|
74
|
+
author: AgentPubKey;
|
|
75
|
+
timestamp: Timestamp;
|
|
76
|
+
header_seq: number;
|
|
77
|
+
prev_header: HeaderHash;
|
|
78
|
+
new_dna_hash: DnaHash;
|
|
79
|
+
}
|
|
80
|
+
export interface Update {
|
|
81
|
+
type: HeaderType.Update;
|
|
82
|
+
author: AgentPubKey;
|
|
83
|
+
timestamp: Timestamp;
|
|
84
|
+
header_seq: number;
|
|
85
|
+
prev_header: HeaderHash;
|
|
86
|
+
original_header_address: HeaderHash;
|
|
87
|
+
original_entry_address: EntryHash;
|
|
88
|
+
entry_type: EntryType;
|
|
89
|
+
entry_hash: EntryHash;
|
|
90
|
+
}
|
|
91
|
+
export interface Delete {
|
|
92
|
+
type: HeaderType.Delete;
|
|
93
|
+
author: AgentPubKey;
|
|
94
|
+
timestamp: Timestamp;
|
|
95
|
+
header_seq: number;
|
|
96
|
+
prev_header: HeaderHash;
|
|
97
|
+
deletes_address: HeaderHash;
|
|
98
|
+
deletes_entry_address: EntryHash;
|
|
99
|
+
}
|
|
100
|
+
export interface Create {
|
|
101
|
+
type: HeaderType.Create;
|
|
102
|
+
author: AgentPubKey;
|
|
103
|
+
timestamp: Timestamp;
|
|
104
|
+
header_seq: number;
|
|
105
|
+
prev_header: HeaderHash;
|
|
106
|
+
entry_type: EntryType;
|
|
107
|
+
entry_hash: EntryHash;
|
|
108
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HeaderType = void 0;
|
|
4
|
+
var HeaderType;
|
|
5
|
+
(function (HeaderType) {
|
|
6
|
+
HeaderType["Dna"] = "Dna";
|
|
7
|
+
HeaderType["AgentValidationPkg"] = "AgentValidationPkg";
|
|
8
|
+
HeaderType["InitZomesComplete"] = "InitZomesComplete";
|
|
9
|
+
HeaderType["CreateLink"] = "CreateLink";
|
|
10
|
+
HeaderType["DeleteLink"] = "DeleteLink";
|
|
11
|
+
HeaderType["OpenChain"] = "OpenChain";
|
|
12
|
+
HeaderType["CloseChain"] = "CloseChain";
|
|
13
|
+
HeaderType["Create"] = "Create";
|
|
14
|
+
HeaderType["Update"] = "Update";
|
|
15
|
+
HeaderType["Delete"] = "Delete";
|
|
16
|
+
})(HeaderType = exports.HeaderType || (exports.HeaderType = {}));
|
|
17
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../src/types/header.ts"],"names":[],"mappings":";;;AAiBA,IAAY,UAWX;AAXD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,uDAAyC,CAAA;IACzC,qDAAuC,CAAA;IACvC,uCAAyB,CAAA;IACzB,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;IACvB,uCAAyB,CAAA;IACzB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;AACnB,CAAC,EAXW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAWrB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./capabilities"), exports);
|
|
14
|
+
__exportStar(require("./common"), exports);
|
|
15
|
+
__exportStar(require("./dht-ops"), exports);
|
|
16
|
+
__exportStar(require("./entry"), exports);
|
|
17
|
+
__exportStar(require("./header"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA8B;AAC9B,2CAAwB;AACxB,4CAAyB;AACzB,0CAAuB;AACvB,2CAAwB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines AdminWebsocket, an easy-to-use websocket implementation of the
|
|
3
|
+
* Conductor Admin API
|
|
4
|
+
*
|
|
5
|
+
* const client = AdminWebsocket.connect(
|
|
6
|
+
* 'ws://localhost:9000'
|
|
7
|
+
* )
|
|
8
|
+
*
|
|
9
|
+
* client.generateAgentPubKey()
|
|
10
|
+
* .then(agentPubKey => {
|
|
11
|
+
* console.log('Agent successfully generated:', agentPubKey)
|
|
12
|
+
* })
|
|
13
|
+
* .catch(err => {
|
|
14
|
+
* console.error('problem generating agent:', err)
|
|
15
|
+
* })
|
|
16
|
+
*/
|
|
17
|
+
import * as Api from '../api/admin';
|
|
18
|
+
import { WsClient } from './client';
|
|
19
|
+
import { Transformer, Requester } from '../api/common';
|
|
20
|
+
export declare class AdminWebsocket implements Api.AdminApi {
|
|
21
|
+
client: WsClient;
|
|
22
|
+
defaultTimeout: number;
|
|
23
|
+
constructor(client: WsClient, defaultTimeout?: number);
|
|
24
|
+
static connect(url: string, defaultTimeout?: number): Promise<AdminWebsocket>;
|
|
25
|
+
_requester: <ReqO, ReqI, ResI, ResO>(tag: string, transformer?: Transformer<ReqO, ReqI, ResI, ResO> | undefined) => (req: ReqO, timeout?: number | undefined) => Promise<ResO>;
|
|
26
|
+
attachAppInterface: Requester<Api.AttachAppInterfaceRequest, Api.AttachAppInterfaceResponse>;
|
|
27
|
+
activateApp: Requester<Api.ActivateAppRequest, Api.ActivateAppResponse>;
|
|
28
|
+
deactivateApp: Requester<Api.DeactivateAppRequest, Api.DeactivateAppResponse>;
|
|
29
|
+
enableApp: Requester<Api.EnableAppRequest, Api.EnableAppResponse>;
|
|
30
|
+
disableApp: Requester<Api.DisableAppRequest, Api.DisableAppResponse>;
|
|
31
|
+
startApp: Requester<Api.StartAppRequest, Api.StartAppResponse>;
|
|
32
|
+
dumpState: Requester<Api.DumpStateRequest, Api.DumpStateResponse>;
|
|
33
|
+
dumpFullState: Requester<Api.DumpFullStateRequest, Api.DumpFullStateResponse>;
|
|
34
|
+
generateAgentPubKey: Requester<Api.GenerateAgentPubKeyRequest, Api.GenerateAgentPubKeyResponse>;
|
|
35
|
+
registerDna: Requester<Api.RegisterDnaRequest, Api.RegisterDnaResponse>;
|
|
36
|
+
installApp: Requester<Api.InstallAppRequest, Api.InstallAppResponse>;
|
|
37
|
+
uninstallApp: Requester<Api.UninstallAppRequest, Api.UninstallAppResponse>;
|
|
38
|
+
installAppBundle: Requester<Api.InstallAppBundleRequest, Api.InstallAppBundleResponse>;
|
|
39
|
+
createCloneCell: Requester<Api.CreateCloneCellRequest, Api.CreateCloneCellResponse>;
|
|
40
|
+
listDnas: Requester<Api.ListDnasRequest, Api.ListDnasResponse>;
|
|
41
|
+
listCellIds: Requester<Api.ListCellIdsRequest, Api.ListCellIdsResponse>;
|
|
42
|
+
listActiveApps: Requester<Api.ListActiveAppsRequest, Api.ListActiveAppsResponse>;
|
|
43
|
+
listApps: Requester<Api.ListAppsRequest, Api.ListAppsResponse>;
|
|
44
|
+
listAppInterfaces: Requester<Api.ListAppInterfacesRequest, Api.ListAppInterfacesResponse>;
|
|
45
|
+
requestAgentInfo: Requester<Api.RequestAgentInfoRequest, Api.RequestAgentInfoResponse>;
|
|
46
|
+
addAgentInfo: Requester<Api.AddAgentInfoRequest, Api.AddAgentInfoResponse>;
|
|
47
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Defines AdminWebsocket, an easy-to-use websocket implementation of the
|
|
4
|
+
* Conductor Admin API
|
|
5
|
+
*
|
|
6
|
+
* const client = AdminWebsocket.connect(
|
|
7
|
+
* 'ws://localhost:9000'
|
|
8
|
+
* )
|
|
9
|
+
*
|
|
10
|
+
* client.generateAgentPubKey()
|
|
11
|
+
* .then(agentPubKey => {
|
|
12
|
+
* console.log('Agent successfully generated:', agentPubKey)
|
|
13
|
+
* })
|
|
14
|
+
* .catch(err => {
|
|
15
|
+
* console.error('problem generating agent:', err)
|
|
16
|
+
* })
|
|
17
|
+
*/
|
|
18
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.AdminWebsocket = void 0;
|
|
39
|
+
const Api = __importStar(require("../api/admin"));
|
|
40
|
+
const client_1 = require("./client");
|
|
41
|
+
const common_1 = require("./common");
|
|
42
|
+
const common_2 = require("../api/common");
|
|
43
|
+
const launcher_1 = require("../environments/launcher");
|
|
44
|
+
class AdminWebsocket {
|
|
45
|
+
constructor(client, defaultTimeout) {
|
|
46
|
+
this._requester = (tag, transformer) => (0, common_2.requesterTransformer)((req, timeout) => (0, common_1.promiseTimeout)(this.client.request(req), tag, timeout || this.defaultTimeout).then(common_1.catchError), tag, transformer);
|
|
47
|
+
// the specific request/response types come from the Interface
|
|
48
|
+
// which this class implements
|
|
49
|
+
this.attachAppInterface = this._requester('attach_app_interface');
|
|
50
|
+
// Deprecated
|
|
51
|
+
this.activateApp = this._requester('activate_app');
|
|
52
|
+
// Deprecated
|
|
53
|
+
this.deactivateApp = this._requester('deactivate_app');
|
|
54
|
+
this.enableApp = this._requester('enable_app');
|
|
55
|
+
this.disableApp = this._requester('disable_app');
|
|
56
|
+
this.startApp = this._requester('start_app');
|
|
57
|
+
this.dumpState = this._requester('dump_state', dumpStateTransform);
|
|
58
|
+
this.dumpFullState = this._requester('dump_full_state');
|
|
59
|
+
this.generateAgentPubKey = this._requester('generate_agent_pub_key');
|
|
60
|
+
this.registerDna = this._requester('register_dna');
|
|
61
|
+
this.installApp = this._requester('install_app');
|
|
62
|
+
this.uninstallApp = this._requester('uninstall_app');
|
|
63
|
+
this.installAppBundle = this._requester('install_app_bundle');
|
|
64
|
+
this.createCloneCell = this._requester('create_clone_cell');
|
|
65
|
+
this.listDnas = this._requester('list_dnas');
|
|
66
|
+
this.listCellIds = this._requester('list_cell_ids');
|
|
67
|
+
// Deprecated
|
|
68
|
+
this.listActiveApps = this._requester('list_active_apps');
|
|
69
|
+
this.listApps = this._requester('list_apps', listAppsTransform);
|
|
70
|
+
this.listAppInterfaces = this._requester('list_app_interfaces');
|
|
71
|
+
this.requestAgentInfo = this._requester('request_agent_info');
|
|
72
|
+
this.addAgentInfo = this._requester('add_agent_info');
|
|
73
|
+
this.client = client;
|
|
74
|
+
this.defaultTimeout = defaultTimeout === undefined ? common_1.DEFAULT_TIMEOUT : defaultTimeout;
|
|
75
|
+
}
|
|
76
|
+
static async connect(url, defaultTimeout) {
|
|
77
|
+
// Check if we are in the launcher's environment, and if so, redirect the url to connect to
|
|
78
|
+
const env = await (0, launcher_1.getLauncherEnvironment)();
|
|
79
|
+
if (env) {
|
|
80
|
+
url = `ws://localhost:${env.ADMIN_INTERFACE_PORT}`;
|
|
81
|
+
}
|
|
82
|
+
const wsClient = await client_1.WsClient.connect(url);
|
|
83
|
+
return new AdminWebsocket(wsClient, defaultTimeout);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.AdminWebsocket = AdminWebsocket;
|
|
87
|
+
const listAppsTransform = {
|
|
88
|
+
input: (req) => {
|
|
89
|
+
const args = {};
|
|
90
|
+
if (req.status_filter) {
|
|
91
|
+
args.status_filter = getAppStatusInApiForm(req.status_filter);
|
|
92
|
+
}
|
|
93
|
+
return args;
|
|
94
|
+
},
|
|
95
|
+
output: (res) => res,
|
|
96
|
+
};
|
|
97
|
+
const dumpStateTransform = {
|
|
98
|
+
input: (req) => req,
|
|
99
|
+
output: (res) => {
|
|
100
|
+
return JSON.parse(res);
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
function getAppStatusInApiForm(status_filter) {
|
|
104
|
+
switch (status_filter) {
|
|
105
|
+
case Api.AppStatusFilter.Running:
|
|
106
|
+
return {
|
|
107
|
+
Running: null,
|
|
108
|
+
};
|
|
109
|
+
case Api.AppStatusFilter.Enabled:
|
|
110
|
+
return {
|
|
111
|
+
Enabled: null,
|
|
112
|
+
};
|
|
113
|
+
case Api.AppStatusFilter.Paused:
|
|
114
|
+
return {
|
|
115
|
+
Paused: null,
|
|
116
|
+
};
|
|
117
|
+
case Api.AppStatusFilter.Disabled:
|
|
118
|
+
return {
|
|
119
|
+
Disabled: null,
|
|
120
|
+
};
|
|
121
|
+
case Api.AppStatusFilter.Stopped:
|
|
122
|
+
return {
|
|
123
|
+
Stopped: null,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/websocket/admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AppApi, AppInfoRequest, AppInfoResponse, CallZomeRequestGeneric, CallZomeResponseGeneric, AppSignalCb } from '../api/app';
|
|
2
|
+
import { WsClient } from './client';
|
|
3
|
+
import { Transformer, Requester } from '../api/common';
|
|
4
|
+
export declare class AppWebsocket implements AppApi {
|
|
5
|
+
protected overrideInstalledAppId?: string | undefined;
|
|
6
|
+
client: WsClient;
|
|
7
|
+
defaultTimeout: number;
|
|
8
|
+
constructor(client: WsClient, defaultTimeout?: number, overrideInstalledAppId?: string | undefined);
|
|
9
|
+
static connect(url: string, defaultTimeout?: number, signalCb?: AppSignalCb): Promise<AppWebsocket>;
|
|
10
|
+
_requester: <ReqO, ReqI, ResI, ResO>(tag: string, transformer?: Transformer<ReqO, ReqI, ResI, ResO> | undefined) => (req: ReqO, timeout?: number | undefined) => Promise<ResO>;
|
|
11
|
+
appInfo: Requester<AppInfoRequest, AppInfoResponse>;
|
|
12
|
+
callZome: Requester<CallZomeRequestGeneric<any>, CallZomeResponseGeneric<any>>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppWebsocket = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Defines AppWebsocket, an easy-to-use websocket implementation of the
|
|
6
|
+
* Conductor API for apps
|
|
7
|
+
*
|
|
8
|
+
* const client = AppWebsocket.connect(
|
|
9
|
+
* 'ws://localhost:9000',
|
|
10
|
+
* signal => console.log('got a signal:', signal)
|
|
11
|
+
* )
|
|
12
|
+
*
|
|
13
|
+
* client.callZome({...}) // TODO: show what's in here
|
|
14
|
+
* .then(() => {
|
|
15
|
+
* console.log('DNA successfully installed')
|
|
16
|
+
* })
|
|
17
|
+
* .catch(err => {
|
|
18
|
+
* console.error('problem installing DNA:', err)
|
|
19
|
+
* })
|
|
20
|
+
*/
|
|
21
|
+
const msgpack_1 = require("@msgpack/msgpack");
|
|
22
|
+
const client_1 = require("./client");
|
|
23
|
+
const common_1 = require("./common");
|
|
24
|
+
const common_2 = require("../api/common");
|
|
25
|
+
const launcher_1 = require("../environments/launcher");
|
|
26
|
+
class AppWebsocket {
|
|
27
|
+
constructor(client, defaultTimeout, overrideInstalledAppId) {
|
|
28
|
+
this.overrideInstalledAppId = overrideInstalledAppId;
|
|
29
|
+
this._requester = (tag, transformer) => (0, common_2.requesterTransformer)((req, timeout) => (0, common_1.promiseTimeout)(this.client.request(req), tag, timeout || this.defaultTimeout).then(common_1.catchError), tag, transformer);
|
|
30
|
+
this.appInfo = this._requester('app_info', appInfoTransform(this.overrideInstalledAppId));
|
|
31
|
+
this.callZome = this._requester('zome_call', callZomeTransform);
|
|
32
|
+
this.client = client;
|
|
33
|
+
this.defaultTimeout = defaultTimeout === undefined ? common_1.DEFAULT_TIMEOUT : defaultTimeout;
|
|
34
|
+
}
|
|
35
|
+
static async connect(url, defaultTimeout, signalCb) {
|
|
36
|
+
// Check if we are in the launcher's environment, and if so, redirect the url to connect to
|
|
37
|
+
const env = await (0, launcher_1.getLauncherEnvironment)();
|
|
38
|
+
if (env) {
|
|
39
|
+
url = `ws://localhost:${env.APP_INTERFACE_PORT}`;
|
|
40
|
+
}
|
|
41
|
+
const wsClient = await client_1.WsClient.connect(url, signalCb);
|
|
42
|
+
return new AppWebsocket(wsClient, defaultTimeout, env ? env.INSTALLED_APP_ID : undefined);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.AppWebsocket = AppWebsocket;
|
|
46
|
+
const callZomeTransform = {
|
|
47
|
+
input: (req) => {
|
|
48
|
+
return {
|
|
49
|
+
...req,
|
|
50
|
+
payload: (0, msgpack_1.encode)(req.payload),
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
output: (res) => {
|
|
54
|
+
return (0, msgpack_1.decode)(res);
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
const appInfoTransform = (overrideInstalledAppId) => ({
|
|
58
|
+
input: (req) => {
|
|
59
|
+
if (overrideInstalledAppId) {
|
|
60
|
+
return {
|
|
61
|
+
installed_app_id: overrideInstalledAppId,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return req;
|
|
65
|
+
},
|
|
66
|
+
output: (res) => {
|
|
67
|
+
return res;
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/websocket/app.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,8CAAiD;AAGjD,qCAAmC;AACnC,qCAAsE;AACtE,0CAA4E;AAC5E,uDAAiE;AAGjE,MAAa,YAAY;IAIvB,YAAY,MAAgB,EAAE,cAAuB,EAAY,sBAAuC;QAAvC,2BAAsB,GAAtB,sBAAsB,CAAiB;QAiBxG,eAAU,GAAG,CAAyB,GAAW,EAAE,WAAiD,EAAE,EAAE,CACtG,IAAA,6BAAoB,EAClB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,uBAAc,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,mBAAU,CAAC,EAChH,GAAG,EACH,WAAW,CACZ,CAAA;QAEH,YAAO,GACH,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAA;QAC9E,aAAQ,GACJ,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;QA1BjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,cAAc,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAe,CAAC,CAAC,CAAC,cAAc,CAAA;IACvF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,cAAuB,EAAE,QAAsB;QAC/E,2FAA2F;QAC3F,MAAM,GAAG,GAAG,MAAM,IAAA,iCAAsB,GAAE,CAAA;QAE1C,IAAI,GAAG,EAAE;YACP,GAAG,GAAG,kBAAkB,GAAG,CAAC,kBAAkB,EAAE,CAAA;SACjD;QAED,MAAM,QAAQ,GAAG,MAAM,iBAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACtD,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC3F,CAAC;CAaF;AAhCD,oCAgCC;AAED,MAAM,iBAAiB,GAAoJ;IACzK,KAAK,EAAE,CAAC,GAAgC,EAAsC,EAAE;QAC9E,OAAO;YACL,GAAG,GAAG;YACN,OAAO,EAAE,IAAA,gBAAM,EAAC,GAAG,CAAC,OAAO,CAAC;SAC7B,CAAA;IACH,CAAC;IACD,MAAM,EAAE,CAAC,GAAwC,EAAgC,EAAE;QACjF,OAAO,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAA;IACpB,CAAC;CACF,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,sBAAuC,EAAiF,EAAE,CAAC,CAAC;IACpJ,KAAK,EAAE,CAAC,GAAmB,EAAkB,EAAE;QAC7C,IAAI,sBAAsB,EAAE;YAC1B,OAAO;gBACL,gBAAgB,EAAE,sBAAsB;aACzC,CAAA;SACF;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,MAAM,EAAE,CAAC,GAAoB,EAAmB,EAAE;QAChD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import Websocket from "isomorphic-ws";
|
|
2
|
+
import { decode } from "@msgpack/msgpack";
|
|
3
|
+
import { AppSignalCb } from "../api/app";
|
|
4
|
+
/**
|
|
5
|
+
* A Websocket client which can make requests and receive responses,
|
|
6
|
+
* as well as send and receive signals
|
|
7
|
+
*
|
|
8
|
+
* Uses Holochain's websocket WireMessage for communication.
|
|
9
|
+
*/
|
|
10
|
+
export declare class WsClient {
|
|
11
|
+
socket: Websocket;
|
|
12
|
+
pendingRequests: Record<number, {
|
|
13
|
+
fulfill: (msg: unknown) => ReturnType<typeof decode>;
|
|
14
|
+
reject: (error: Error) => void;
|
|
15
|
+
}>;
|
|
16
|
+
index: number;
|
|
17
|
+
alreadyWarnedNoSignalCb: boolean;
|
|
18
|
+
constructor(socket: any, signalCb?: AppSignalCb);
|
|
19
|
+
emitSignal(data: any): void;
|
|
20
|
+
request<Req, Res>(data: Req): Promise<Res>;
|
|
21
|
+
handleResponse(msg: any): void;
|
|
22
|
+
close(): Promise<void>;
|
|
23
|
+
awaitClose(): Promise<void>;
|
|
24
|
+
static connect(url: string, signalCb?: AppSignalCb): Promise<WsClient>;
|
|
25
|
+
}
|