@ddd-qc/cell-proxy 0.9.8 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # cell-proxy
2
2
 
3
+ **Compatible with:**
4
+ - **HDK v0.1.0-beta-rc.1** & **HDI v0.2.0-beta-rc.2**
5
+ - **@holochain/client v0.11.2**
6
+ -
3
7
  Proxy classes and helpers for managing a [Holochain](https://www.npmjs.com/package/@holochain/client) AppWebsocket and calling zome functions on cells.
4
8
  The intent is to make the development of web UI of Holochain apps in javascript / typescript faster & easier by providing a straightforward API for communicating with a Conductor, and some basic logging features.
5
9
 
@@ -1,57 +1,58 @@
1
- import { CallZomeRequest, CapSecret, CellId, InstalledCell, ZomeName } from "@holochain/client";
2
- import { AgentPubKeyB64, DnaHashB64 } from "@holochain-open-dev/core-types";
3
- import { ConductorAppProxy } from "./ConductorAppProxy";
4
- import { IInstalledCell, RoleInstanceId } from "./types";
5
- export interface RequestLog {
6
- request: CallZomeRequest;
7
- timeout: number;
8
- requestTimestamp: number;
9
- executionTimestamp: number;
10
- }
11
- export interface ResponseLog {
12
- success?: any;
13
- failure?: any;
14
- timestamp: number;
15
- requestIndex: number;
16
- }
17
- /**
18
- * Proxy for a running DNA.
19
- * It logs and queues ZomeCalls.
20
- * It holds a reference to its ConductorAppProxy and its InstalledCell.
21
- * This class is expected to be used by ZomeProxies.
22
- */
23
- export declare class CellProxy implements IInstalledCell {
24
- private _conductor;
25
- readonly installedCell: InstalledCell;
26
- /** Ctor */
27
- constructor(_conductor: ConductorAppProxy, installedCell: InstalledCell, defaultTimeout?: number);
28
- /** -- Fields -- */
29
- defaultTimeout: number;
30
- /** append only logs */
31
- private _requestLog;
32
- private _responseLog;
33
- private _canCallBlocking;
34
- /** -- InstalledCell interface -- */
35
- get roleInstanceId(): RoleInstanceId;
36
- get cellId(): CellId;
37
- get dnaHash(): DnaHashB64;
38
- get agentPubKey(): AgentPubKeyB64;
39
- /** -- Methods -- */
40
- dumpSignals(): void;
41
- /** Pass call request to conductor proxy and log it */
42
- executeZomeCall(reqLog: RequestLog): Promise<ResponseLog>;
43
- /**
44
- * callZome() with "Mutex" (for calls that writes to source-chain)
45
- * TODO: Implement call queue instead of mutex
46
- */
47
- callZomeBlocking(zome_name: ZomeName, fn_name: string, payload: any, cap_secret: CapSecret | null, timeout?: number): Promise<any>;
48
- /** */
49
- callZome(zome_name: ZomeName, fn_name: string, payload: any, cap_secret: CapSecret | null, timeout?: number): Promise<any>;
50
- /**
51
- * Calls the `entry_defs()` zome function and
52
- * returns an array of all the zome's AppEntryDefNames and visibility
53
- */
54
- callEntryDefs(zomeName: ZomeName): Promise<[string, boolean][]>;
55
- /** */
56
- dumpLogs(zomeName?: ZomeName): void;
57
- }
1
+ import { CallZomeRequest, CapSecret, ZomeName, Cell } from "@holochain/client";
2
+ import { ConductorAppProxy } from "./ConductorAppProxy";
3
+ import { Empty } from "./mixins";
4
+ export interface RequestLog {
5
+ request: CallZomeRequest;
6
+ timeout: number;
7
+ requestTimestamp: number;
8
+ executionTimestamp: number;
9
+ }
10
+ export interface ResponseLog {
11
+ success?: any;
12
+ failure?: any;
13
+ timestamp: number;
14
+ requestIndex: number;
15
+ }
16
+ declare const CellProxy_base: (abstract new (...args: any[]) => {
17
+ _cell?: Cell;
18
+ readonly cell: Cell;
19
+ readonly cellId: import("@holochain/client").CellId;
20
+ readonly dnaHash: string;
21
+ readonly agentPubKey: string; /** -- Fields -- */
22
+ }) & typeof Empty;
23
+ /**
24
+ * Proxy for a running DNA.
25
+ * It logs and queues ZomeCalls.
26
+ * It holds a reference to its ConductorAppProxy and its InstalledCell.
27
+ * This class is expected to be used by ZomeProxies.
28
+ */
29
+ export declare class CellProxy extends CellProxy_base {
30
+ private _conductor;
31
+ /** Ctor */
32
+ constructor(_conductor: ConductorAppProxy, cell: Cell, defaultTimeout?: number);
33
+ /** -- Fields -- */
34
+ defaultTimeout: number;
35
+ /** append only logs */
36
+ private _requestLog;
37
+ private _responseLog;
38
+ private _canCallBlocking;
39
+ /** -- Methods -- */
40
+ dumpSignals(): void;
41
+ /** Pass call request to conductor proxy and log it */
42
+ executeZomeCall(reqLog: RequestLog): Promise<ResponseLog>;
43
+ /**
44
+ * callZome() with "Mutex" (for calls that writes to source-chain)
45
+ * TODO: Implement call queue instead of mutex
46
+ */
47
+ callZomeBlocking(zome_name: ZomeName, fn_name: string, payload: any, cap_secret: CapSecret | null, timeout?: number): Promise<any>;
48
+ /** */
49
+ callZome(zome_name: ZomeName, fn_name: string, payload: any, cap_secret: CapSecret | null, timeout?: number): Promise<any>;
50
+ /**
51
+ * Calls the `entry_defs()` zome function and
52
+ * returns an array of all the zome's AppEntryDefNames and visibility
53
+ */
54
+ callEntryDefs(zomeName: ZomeName): Promise<[string, boolean][]>;
55
+ /** */
56
+ dumpLogs(zomeName?: ZomeName): void;
57
+ }
58
+ export {};
package/dist/CellProxy.js CHANGED
@@ -1,155 +1,166 @@
1
- import { serializeHash } from "@holochain-open-dev/utils";
2
- import { anyToB64, delay, prettyDate, prettyDuration } from "./utils";
3
- /**
4
- * Proxy for a running DNA.
5
- * It logs and queues ZomeCalls.
6
- * It holds a reference to its ConductorAppProxy and its InstalledCell.
7
- * This class is expected to be used by ZomeProxies.
8
- */
9
- export class CellProxy {
10
- /** Ctor */
11
- constructor(_conductor, installedCell,
12
- //public readonly dnaDef: MyDnaDef,
13
- defaultTimeout) {
14
- this._conductor = _conductor;
15
- this.installedCell = installedCell;
16
- //private _blockingRequestQueue: Queue<RequestLog> = new Queue();
17
- /** append only logs */
18
- this._requestLog = [];
19
- this._responseLog = [];
20
- this._canCallBlocking = true;
21
- this.defaultTimeout = defaultTimeout ? defaultTimeout : 10 * 1000;
22
- }
23
- /** -- InstalledCell interface -- */
24
- get roleInstanceId() { return this.installedCell.role_id; }
25
- get cellId() { return this.installedCell.cell_id; }
26
- get dnaHash() { return serializeHash(this.installedCell.cell_id[0]); }
27
- get agentPubKey() { return serializeHash(this.installedCell.cell_id[1]); }
28
- /** -- Methods -- */
29
- // /** */
30
- // addSignalHandler(handler: AppSignalCb): SignalUnsubscriber {
31
- // return this._conductor.addSignalHandler(handler, this.cellId);
32
- // }
33
- dumpSignals() {
34
- this._conductor.dumpSignals(this.cellId);
35
- }
36
- /** Pass call request to conductor proxy and log it */
37
- async executeZomeCall(reqLog) {
38
- reqLog.executionTimestamp = Date.now();
39
- const requestIndex = this._requestLog.length;
40
- this._requestLog.push(reqLog);
41
- try {
42
- const response = await this._conductor.callZome(reqLog.request, reqLog.timeout);
43
- const respLog = { requestIndex, success: response, timestamp: Date.now() };
44
- this._responseLog.push(respLog);
45
- return respLog;
46
- }
47
- catch (e) {
48
- const respLog = { requestIndex, failure: e, timestamp: Date.now() };
49
- this._responseLog.push(respLog);
50
- return respLog;
51
- }
52
- }
53
- /**
54
- * callZome() with "Mutex" (for calls that writes to source-chain)
55
- * TODO: Implement call queue instead of mutex
56
- */
57
- async callZomeBlocking(zome_name, fn_name, payload, cap_secret, timeout) {
58
- timeout = timeout ? timeout : this.defaultTimeout;
59
- const req = {
60
- cap_secret, zome_name, fn_name, payload,
61
- cell_id: this.installedCell.cell_id,
62
- provenance: this.installedCell.cell_id[1],
63
- };
64
- const log = { request: req, timeout, requestTimestamp: Date.now() };
65
- while (!this._canCallBlocking && Date.now() - log.requestTimestamp < timeout) {
66
- await delay(1);
67
- }
68
- if (Date.now() - log.requestTimestamp >= timeout) {
69
- console.warn({ requestLogs: this._requestLog });
70
- return Promise.reject("Waiting for zomeCall execution timed-out");
71
- }
72
- this._canCallBlocking = false;
73
- const respLog = await this.executeZomeCall(log);
74
- this._canCallBlocking = true;
75
- if (respLog.failure) {
76
- this.dumpSignals();
77
- this.dumpLogs(zome_name);
78
- return Promise.reject(respLog.failure);
79
- }
80
- return respLog.success;
81
- }
82
- /** */
83
- async callZome(zome_name, fn_name, payload, cap_secret, timeout) {
84
- timeout = timeout ? timeout : this.defaultTimeout;
85
- const req = {
86
- cap_secret, zome_name, fn_name, payload,
87
- cell_id: this.installedCell.cell_id,
88
- provenance: this.installedCell.cell_id[1],
89
- };
90
- const log = { request: req, timeout, requestTimestamp: Date.now() };
91
- const respLog = await this.executeZomeCall(log);
92
- if (respLog.failure) {
93
- this.dumpSignals();
94
- this.dumpLogs(zome_name);
95
- return Promise.reject(respLog.failure);
96
- }
97
- return respLog.success;
98
- }
99
- /**
100
- * Calls the `entry_defs()` zome function and
101
- * returns an array of all the zome's AppEntryDefNames and visibility
102
- */
103
- async callEntryDefs(zomeName) {
104
- //console.log("callEntryDefs()", zomeName)
105
- try {
106
- const entryDefs = await this.callZome(zomeName, "entry_defs", null, null, 2 * 1000);
107
- //console.debug("getEntryDefs() for " + this.zomeName + " result:")
108
- //console.log({entryDefs})
109
- let result = [];
110
- for (const def of entryDefs.Defs) {
111
- const name = def.id.App;
112
- result.push([name, def.visibility.hasOwnProperty('Public')]);
113
- }
114
- //console.log({result})
115
- return result;
116
- }
117
- catch (e) {
118
- console.error("Calling getEntryDefs() on " + zomeName + " failed: ");
119
- console.error({ e });
120
- return Promise.reject(e);
121
- }
122
- }
123
- // /** TODO once we have getDnaDefinition() api */
124
- // dumpAllZomes() {
125
- // // FIXME get DNA DEF
126
- // for (const zomeName of dnaDef) {
127
- // this.dumpLogs(zomeName)
128
- // }
129
- // }
130
- /** */
131
- dumpLogs(zomeName) {
132
- let result = [];
133
- for (const response of this._responseLog) {
134
- const requestLog = this._requestLog[response.requestIndex];
135
- if (zomeName && requestLog.request.zome_name != zomeName) {
136
- continue;
137
- }
138
- const startTime = prettyDate(new Date(requestLog.requestTimestamp));
139
- const waitTime = prettyDuration(new Date(requestLog.executionTimestamp - requestLog.requestTimestamp));
140
- const duration = prettyDuration(new Date(response.timestamp - requestLog.requestTimestamp));
141
- const input = requestLog.request.payload instanceof Uint8Array ? serializeHash(requestLog.request.payload) : requestLog.request.payload;
142
- const output = anyToB64(response.failure ? response.failure : response.success);
143
- const log = zomeName
144
- ? { startTime, fnName: requestLog.request.fn_name, input, output, duration, waitTime }
145
- : { startTime, zomeName: requestLog.request.zome_name, fnName: requestLog.request.fn_name, input, output, duration, waitTime };
146
- result.push(log);
147
- }
148
- console.warn(`Dumping logs for cell "${this._conductor.getLocations(this.cellId)}"`);
149
- if (zomeName) {
150
- console.warn(` - For zome "${zomeName}"`);
151
- }
152
- console.table(result);
153
- }
154
- }
1
+ import { __awaiter } from "tslib";
2
+ import { encodeHashToBase64 } from "@holochain/client";
3
+ import { anyToB64, delay, prettyDate, prettyDuration } from "./utils";
4
+ import { CellMixin, Empty } from "./mixins";
5
+ /**
6
+ * Proxy for a running DNA.
7
+ * It logs and queues ZomeCalls.
8
+ * It holds a reference to its ConductorAppProxy and its InstalledCell.
9
+ * This class is expected to be used by ZomeProxies.
10
+ */
11
+ export class CellProxy extends CellMixin(Empty) {
12
+ /** Ctor */
13
+ constructor(_conductor, cell,
14
+ //public readonly dnaDef: MyDnaDef,
15
+ defaultTimeout) {
16
+ super();
17
+ this._conductor = _conductor;
18
+ //private _blockingRequestQueue: Queue<RequestLog> = new Queue();
19
+ /** append only logs */
20
+ this._requestLog = [];
21
+ this._responseLog = [];
22
+ this._canCallBlocking = true;
23
+ this._cell = cell;
24
+ console.log(`CellProxy.ctor`, cell);
25
+ this.defaultTimeout = defaultTimeout ? defaultTimeout : 10 * 1000;
26
+ }
27
+ // /** -- ICell interface -- */
28
+ //
29
+ // get dnaHash(): DnaHashB64 { return encodeHashToBase64(this.cell.cell_id[0]) }
30
+ // get agentPubKey(): AgentPubKeyB64 { return encodeHashToBase64(this.cell.cell_id[1]) }
31
+ /** -- Methods -- */
32
+ // /** */
33
+ // addSignalHandler(handler: AppSignalCb): SignalUnsubscriber {
34
+ // return this._conductor.addSignalHandler(handler, this.cellId);
35
+ // }
36
+ dumpSignals() {
37
+ this._conductor.dumpSignals(this.cell.cell_id);
38
+ }
39
+ /** Pass call request to conductor proxy and log it */
40
+ executeZomeCall(reqLog) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ reqLog.executionTimestamp = Date.now();
43
+ const requestIndex = this._requestLog.length;
44
+ this._requestLog.push(reqLog);
45
+ try {
46
+ const response = yield this._conductor.callZome(reqLog.request, reqLog.timeout);
47
+ const respLog = { requestIndex, success: response, timestamp: Date.now() };
48
+ this._responseLog.push(respLog);
49
+ return respLog;
50
+ }
51
+ catch (e) {
52
+ const respLog = { requestIndex, failure: e, timestamp: Date.now() };
53
+ this._responseLog.push(respLog);
54
+ return respLog;
55
+ }
56
+ });
57
+ }
58
+ /**
59
+ * callZome() with "Mutex" (for calls that writes to source-chain)
60
+ * TODO: Implement call queue instead of mutex
61
+ */
62
+ callZomeBlocking(zome_name, fn_name, payload, cap_secret, timeout) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ timeout = timeout ? timeout : this.defaultTimeout;
65
+ const req = {
66
+ cap_secret, zome_name, fn_name, payload,
67
+ cell_id: this.cell.cell_id,
68
+ provenance: this.cell.cell_id[1],
69
+ };
70
+ const log = { request: req, timeout, requestTimestamp: Date.now() };
71
+ while (!this._canCallBlocking && Date.now() - log.requestTimestamp < timeout) {
72
+ yield delay(1);
73
+ }
74
+ if (Date.now() - log.requestTimestamp >= timeout) {
75
+ console.warn({ requestLogs: this._requestLog });
76
+ return Promise.reject("Waiting for zomeCall execution timed-out");
77
+ }
78
+ this._canCallBlocking = false;
79
+ const respLog = yield this.executeZomeCall(log);
80
+ this._canCallBlocking = true;
81
+ if (respLog.failure) {
82
+ this.dumpSignals();
83
+ this.dumpLogs(zome_name);
84
+ return Promise.reject(respLog.failure);
85
+ }
86
+ return respLog.success;
87
+ });
88
+ }
89
+ /** */
90
+ callZome(zome_name, fn_name, payload, cap_secret, timeout) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ timeout = timeout ? timeout : this.defaultTimeout;
93
+ const req = {
94
+ cap_secret, zome_name, fn_name, payload,
95
+ cell_id: this.cell.cell_id,
96
+ provenance: this.cell.cell_id[1],
97
+ };
98
+ const log = { request: req, timeout, requestTimestamp: Date.now() };
99
+ const respLog = yield this.executeZomeCall(log);
100
+ if (respLog.failure) {
101
+ this.dumpSignals();
102
+ this.dumpLogs(zome_name);
103
+ return Promise.reject(respLog.failure);
104
+ }
105
+ return respLog.success;
106
+ });
107
+ }
108
+ /**
109
+ * Calls the `entry_defs()` zome function and
110
+ * returns an array of all the zome's AppEntryDefNames and visibility
111
+ */
112
+ callEntryDefs(zomeName) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ //console.log("callEntryDefs()", zomeName)
115
+ try {
116
+ const entryDefs = yield this.callZome(zomeName, "entry_defs", null, null, 2 * 1000);
117
+ //console.debug("getEntryDefs() for " + this.zomeName + " result:")
118
+ //console.log({entryDefs})
119
+ let result = [];
120
+ for (const def of entryDefs.Defs) {
121
+ const name = def.id.App;
122
+ result.push([name, def.visibility.hasOwnProperty('Public')]);
123
+ }
124
+ //console.log({result})
125
+ return result;
126
+ }
127
+ catch (e) {
128
+ console.error("Calling getEntryDefs() on " + zomeName + " failed: ");
129
+ console.error({ e });
130
+ return Promise.reject(e);
131
+ }
132
+ });
133
+ }
134
+ // /** TODO once we have getDnaDefinition() api */
135
+ // dumpAllZomes() {
136
+ // // FIXME get DNA DEF
137
+ // for (const zomeName of dnaDef) {
138
+ // this.dumpLogs(zomeName)
139
+ // }
140
+ // }
141
+ /** */
142
+ dumpLogs(zomeName) {
143
+ let result = [];
144
+ for (const response of this._responseLog) {
145
+ const requestLog = this._requestLog[response.requestIndex];
146
+ if (zomeName && requestLog.request.zome_name != zomeName) {
147
+ continue;
148
+ }
149
+ const startTime = prettyDate(new Date(requestLog.requestTimestamp));
150
+ const waitTime = prettyDuration(new Date(requestLog.executionTimestamp - requestLog.requestTimestamp));
151
+ const duration = prettyDuration(new Date(response.timestamp - requestLog.requestTimestamp));
152
+ const input = requestLog.request.payload instanceof Uint8Array ? encodeHashToBase64(requestLog.request.payload) : requestLog.request.payload;
153
+ const output = anyToB64(response.failure ? response.failure : response.success);
154
+ const log = zomeName
155
+ ? { startTime, fnName: requestLog.request.fn_name, input, output, duration, waitTime }
156
+ : { startTime, zomeName: requestLog.request.zome_name, fnName: requestLog.request.fn_name, input, output, duration, waitTime };
157
+ result.push(log);
158
+ }
159
+ console.warn(`Dumping logs for cell "${this._conductor.getLocations(this.cellId)}"`);
160
+ if (zomeName) {
161
+ console.warn(` - For zome "${zomeName}"`);
162
+ }
163
+ console.table(result);
164
+ }
165
+ }
155
166
  //# sourceMappingURL=CellProxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CellProxy.js","sourceRoot":"","sources":["../src/CellProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CellProxy.js","sourceRoot":"","sources":["../src/CellProxy.ts"],"names":[],"mappings":"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"}