@ddd-qc/cell-proxy 0.9.8 → 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 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.1**
5
+ - **@holochain/client v0.11.9**
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,7 +1,6 @@
1
- import { CallZomeRequest, CapSecret, CellId, InstalledCell, ZomeName } from "@holochain/client";
2
- import { AgentPubKeyB64, DnaHashB64 } from "@holochain-open-dev/core-types";
1
+ import { CallZomeRequest, CapSecret, ZomeName, Cell } from "@holochain/client";
3
2
  import { ConductorAppProxy } from "./ConductorAppProxy";
4
- import { IInstalledCell, RoleInstanceId } from "./types";
3
+ import { Empty } from "./mixins";
5
4
  export interface RequestLog {
6
5
  request: CallZomeRequest;
7
6
  timeout: number;
@@ -14,28 +13,29 @@ export interface ResponseLog {
14
13
  timestamp: number;
15
14
  requestIndex: number;
16
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;
17
23
  /**
18
24
  * Proxy for a running DNA.
19
25
  * It logs and queues ZomeCalls.
20
26
  * It holds a reference to its ConductorAppProxy and its InstalledCell.
21
27
  * This class is expected to be used by ZomeProxies.
22
28
  */
23
- export declare class CellProxy implements IInstalledCell {
29
+ export declare class CellProxy extends CellProxy_base {
24
30
  private _conductor;
25
- readonly installedCell: InstalledCell;
26
31
  /** Ctor */
27
- constructor(_conductor: ConductorAppProxy, installedCell: InstalledCell, defaultTimeout?: number);
32
+ constructor(_conductor: ConductorAppProxy, cell: Cell, defaultTimeout?: number);
28
33
  /** -- Fields -- */
29
34
  defaultTimeout: number;
30
35
  /** append only logs */
31
36
  private _requestLog;
32
37
  private _responseLog;
33
38
  private _canCallBlocking;
34
- /** -- InstalledCell interface -- */
35
- get roleInstanceId(): RoleInstanceId;
36
- get cellId(): CellId;
37
- get dnaHash(): DnaHashB64;
38
- get agentPubKey(): AgentPubKeyB64;
39
39
  /** -- Methods -- */
40
40
  dumpSignals(): void;
41
41
  /** Pass call request to conductor proxy and log it */
@@ -55,3 +55,4 @@ export declare class CellProxy implements IInstalledCell {
55
55
  /** */
56
56
  dumpLogs(zomeName?: ZomeName): void;
57
57
  }
58
+ export {};
package/dist/CellProxy.js CHANGED
@@ -1,124 +1,135 @@
1
- import { serializeHash } from "@holochain-open-dev/utils";
1
+ import { __awaiter } from "tslib";
2
+ import { encodeHashToBase64 } from "@holochain/client";
2
3
  import { anyToB64, delay, prettyDate, prettyDuration } from "./utils";
4
+ import { CellMixin, Empty } from "./mixins";
3
5
  /**
4
6
  * Proxy for a running DNA.
5
7
  * It logs and queues ZomeCalls.
6
8
  * It holds a reference to its ConductorAppProxy and its InstalledCell.
7
9
  * This class is expected to be used by ZomeProxies.
8
10
  */
9
- export class CellProxy {
11
+ export class CellProxy extends CellMixin(Empty) {
10
12
  /** Ctor */
11
- constructor(_conductor, installedCell,
13
+ constructor(_conductor, cell,
12
14
  //public readonly dnaDef: MyDnaDef,
13
15
  defaultTimeout) {
16
+ super();
14
17
  this._conductor = _conductor;
15
- this.installedCell = installedCell;
16
18
  //private _blockingRequestQueue: Queue<RequestLog> = new Queue();
17
19
  /** append only logs */
18
20
  this._requestLog = [];
19
21
  this._responseLog = [];
20
22
  this._canCallBlocking = true;
23
+ this._cell = cell;
24
+ console.log(`CellProxy.ctor`, cell);
21
25
  this.defaultTimeout = defaultTimeout ? defaultTimeout : 10 * 1000;
22
26
  }
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]); }
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]) }
28
31
  /** -- Methods -- */
29
32
  // /** */
30
33
  // addSignalHandler(handler: AppSignalCb): SignalUnsubscriber {
31
34
  // return this._conductor.addSignalHandler(handler, this.cellId);
32
35
  // }
33
36
  dumpSignals() {
34
- this._conductor.dumpSignals(this.cellId);
37
+ this._conductor.dumpSignals(this.cell.cell_id);
35
38
  }
36
39
  /** 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
- }
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
+ });
52
57
  }
53
58
  /**
54
59
  * callZome() with "Mutex" (for calls that writes to source-chain)
55
60
  * TODO: Implement call queue instead of mutex
56
61
  */
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;
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
+ });
81
88
  }
82
89
  /** */
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;
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
+ });
98
107
  }
99
108
  /**
100
109
  * Calls the `entry_defs()` zome function and
101
110
  * returns an array of all the zome's AppEntryDefNames and visibility
102
111
  */
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')]);
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;
113
126
  }
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
- }
127
+ catch (e) {
128
+ console.error("Calling getEntryDefs() on " + zomeName + " failed: ");
129
+ console.error({ e });
130
+ return Promise.reject(e);
131
+ }
132
+ });
122
133
  }
123
134
  // /** TODO once we have getDnaDefinition() api */
124
135
  // dumpAllZomes() {
@@ -138,7 +149,7 @@ export class CellProxy {
138
149
  const startTime = prettyDate(new Date(requestLog.requestTimestamp));
139
150
  const waitTime = prettyDuration(new Date(requestLog.executionTimestamp - requestLog.requestTimestamp));
140
151
  const duration = prettyDuration(new Date(response.timestamp - requestLog.requestTimestamp));
141
- const input = requestLog.request.payload instanceof Uint8Array ? serializeHash(requestLog.request.payload) : requestLog.request.payload;
152
+ const input = requestLog.request.payload instanceof Uint8Array ? encodeHashToBase64(requestLog.request.payload) : requestLog.request.payload;
142
153
  const output = anyToB64(response.failure ? response.failure : response.success);
143
154
  const log = zomeName
144
155
  ? { startTime, fnName: requestLog.request.fn_name, input, output, duration, waitTime }
@@ -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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"}
@@ -1,7 +1,6 @@
1
- import { AppApi, AppInfoRequest, AppInfoResponse, AppSignal, AppSignalCb, AppWebsocket, CallZomeRequest, CellId, InstalledAppId, InstalledCell } from "@holochain/client";
1
+ import { AppApi, AppInfoRequest, AppInfoResponse, AppSignal, AppSignalCb, AppWebsocket, CallZomeRequest, CellId, InstalledAppId, InstalledCell, CreateCloneCellRequest, DisableCloneCellRequest, EnableCloneCellRequest, Cell } from "@holochain/client";
2
2
  import { CellProxy } from "./CellProxy";
3
- import { CellsMap, BaseRoleName, RoleInstanceId, RoleCells } from "./types";
4
- import { ArchiveCloneCellRequest, CreateCloneCellRequest } from "@holochain/client/lib/api/app/types";
3
+ import { RoleCellsMap, BaseRoleName, CellsForRole } from "./types";
5
4
  import { HCL, HCLString } from "./hcl";
6
5
  /** */
7
6
  export interface SignalUnsubscriber {
@@ -19,32 +18,33 @@ export declare class ConductorAppProxy implements AppApi {
19
18
  defaultTimeout: number;
20
19
  /** -- Fields -- */
21
20
  private _appWs;
22
- /** [Timestamp, CellIdStr, Signal] */
21
+ /** Signal log: [Timestamp, CellIdStr, Signal] */
23
22
  private _signalLogs;
24
- /** InstalledAppId -> (BaseRoleName -> RoleInstalledCells) */
25
- private _installedCellsByApp;
26
- /** CellIdStr -> HCL[] */
23
+ /** Map cells per App: InstalledAppId -> (BaseRoleName -> RoleInstalledCells) */
24
+ private _cellsByApp;
25
+ /** Map cell locations: CellIdStr -> HCL[] */
27
26
  private _hclMap;
28
- /** HCLString -> AppSignalCb */
27
+ /** Store handlers per cell locaiton: HCLString -> AppSignalCb */
29
28
  private _signalHandlers;
30
- /** CellIdStr -> CellProxy */
29
+ /** Store cell proxies per cell: CellIdStr -> CellProxy */
31
30
  private _cellProxies;
32
31
  /** -- Getters -- */
33
32
  /** */
34
- getAppCells(appId: InstalledAppId): CellsMap | undefined;
33
+ getAppCells(appId: InstalledAppId): RoleCellsMap | undefined;
35
34
  /** */
36
35
  getLocations(cellId: CellId): HCL[] | undefined;
37
36
  /** */
38
- getCell(hcl: HCL): InstalledCell;
37
+ getCell(hcl: HCL): Cell;
39
38
  /** Get stored CellProxy or attempt to create it */
40
39
  getCellProxy(cellIdOrLoc: HCL | CellId): CellProxy;
41
40
  /** */
42
- getAppRoleInstanceIds(installedAppId: InstalledAppId): RoleInstanceId[] | undefined;
41
+ getAppRoles(installedAppId: InstalledAppId): BaseRoleName[] | undefined;
43
42
  /** */
44
- getClones(appId: InstalledAppId, baseRoleName: BaseRoleName): InstalledCell[];
45
- /** -- AppApi (Passthrough to appWebsocket) -- */
43
+ getClones(appId: InstalledAppId, baseRoleName: BaseRoleName): Cell[];
46
44
  createCloneCell(request: CreateCloneCellRequest): Promise<InstalledCell>;
47
- archiveCloneCell(request: ArchiveCloneCellRequest): Promise<void>;
45
+ /** -- AppApi (Passthrough to appWebsocket) -- */
46
+ enableCloneCell(request: EnableCloneCellRequest): Promise<InstalledCell>;
47
+ disableCloneCell(request: DisableCloneCellRequest): Promise<void>;
48
48
  appInfo(args: AppInfoRequest): Promise<AppInfoResponse>;
49
49
  callZome(req: CallZomeRequest, timeout?: number): Promise<any>;
50
50
  /** -- Creation -- */
@@ -55,9 +55,12 @@ export declare class ConductorAppProxy implements AppApi {
55
55
  /** Ctor */
56
56
  private constructor();
57
57
  /** -- Methods -- */
58
- fetchCells(appId: InstalledAppId, baseRoleName: BaseRoleName): Promise<RoleCells>;
59
58
  /** */
60
- addClone(hcl: HCL, cloneCell: InstalledCell): void;
59
+ fetchCell(appId: InstalledAppId, cellId: CellId): Promise<Cell>;
60
+ /** */
61
+ fetchCells(appId: InstalledAppId, baseRoleName: BaseRoleName): Promise<CellsForRole>;
62
+ /** */
63
+ addClone(hcl: HCL, cloneCell: Cell): void;
61
64
  /** */
62
65
  createCellProxy(hcl: HCL): CellProxy;
63
66
  /** */