@ddd-qc/cell-proxy 0.30.3 → 0.31.5

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.
@@ -1,7 +1,7 @@
1
- import { AdminWebsocket, AgentPubKey, AppClient, AppEvents, AppInfoResponse, AppNetworkInfoRequest, AppSignal, SignalCb, CallZomeRequest, ClonedCell, CreateCloneCellRequest, DisableCloneCellRequest, EnableCloneCellRequest, InstalledAppId, NetworkInfo, NetworkInfoResponse, Timestamp, ZomeName } from "@holochain/client";
1
+ import { AdminWebsocket, AgentPubKey, AppClient, AppEvents, AppInfoResponse, AppNetworkInfoRequest, AppSignal, SignalCb, CallZomeRequest, ClonedCell, CreateCloneCellRequest, DisableCloneCellRequest, EnableCloneCellRequest, InstalledAppId, NetworkInfoResponse, Timestamp, ZomeName } from "@holochain/client";
2
2
  import { UnsubscribeFunction } from "emittery";
3
3
  import { CellProxy } from "./CellProxy";
4
- import { BaseRoleName, CellAddress, CellIdStr, CellsForRole, RoleCellsMap } from "./types";
4
+ import { BaseRoleName, CellAddress, CellsForRole, RoleCellsMap } from "./types";
5
5
  import { HCL, HCLString } from "./hcl";
6
6
  import { Cell } from "./cell";
7
7
  import { AgentId } from "./hash";
@@ -47,7 +47,6 @@ export declare class AppProxy implements AppClient {
47
47
  disableCloneCell(_request: DisableCloneCellRequest): Promise<void>;
48
48
  networkInfo(_args: AppNetworkInfoRequest): Promise<NetworkInfoResponse>;
49
49
  constructor(defaultTimeout: number, appId: InstalledAppId, agentId: AgentId, adminWs?: AdminWebsocket);
50
- get networkInfoLogs(): Record<CellIdStr, [Timestamp, NetworkInfo][]>;
51
50
  fetchCell(appId: InstalledAppId, cellAddr: CellAddress): Promise<Cell>;
52
51
  fetchCells(appId: InstalledAppId, baseRoleName: BaseRoleName): Promise<CellsForRole>;
53
52
  addClone(hcl: HCL, cloneCell: ClonedCell): void;
@@ -1 +1 @@
1
- {"version":3,"file":"AppProxy.d.ts","sourceRoot":"","sources":["../src/AppProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppProxy.d.ts","sourceRoot":"","sources":["../src/AppProxy.ts"],"names":[],"mappings":"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"}
package/dist/AppProxy.js CHANGED
@@ -99,7 +99,6 @@ export class AppProxy {
99
99
  this.myPubKey = agentId.hash;
100
100
  this.addSignalHandler((sig) => this.logSignal(sig));
101
101
  }
102
- get networkInfoLogs() { return {}; }
103
102
  async fetchCell(appId, cellAddr) {
104
103
  const appInfo = await this.appInfo();
105
104
  if (appInfo == null) {
@@ -1 +1 @@
1
- {"version":3,"file":"AppProxy.js","sourceRoot":"","sources":["../src/AppProxy.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AdminWebsocket, AgentPubKey,\n AppClient,\n AppEvents,\n AppInfoResponse,\n AppNetworkInfoRequest,\n AppSignal,\n SignalCb,\n CallZomeRequest,\n CellType,\n ClonedCell,\n CreateCloneCellRequest,\n DisableCloneCellRequest,\n EnableCloneCellRequest,\n InstalledAppId,\n NetworkInfo,\n NetworkInfoResponse,\n ProvisionedCell,\n Timestamp, ZomeName, SignalType,\n} from \"@holochain/client\";\nimport {UnsubscribeFunction} from \"emittery\";\nimport {CellProxy} from \"./CellProxy\";\nimport {\n BaseRoleName, CellAddress,\n CellIdStr,\n CellsForRole,\n RoleCellsMap, AppSignalType, SystemPulse,\n} from \"./types\";\nimport {Dictionary} from \"./utils\";\nimport {HCL, HCLString} from \"./hcl\";\nimport {Cell} from \"./cell\";\nimport {prettyDate, printAppInfo} from \"./pretty\";\nimport {AgentId, enc64} from \"./hash\";\nimport {ZomeSignal} from \"./zomeSignals.types\";\nimport {Signal} from \"@holochain/client/lib/api/app/types\";\n\n\n/** */\nexport interface SignalUnsubscriber {\n unsubscribe: () => void;\n}\n\n\nexport interface SignalLog {\n ts: Timestamp,\n cellAddr: CellAddress,\n zomeName: string,\n type: string,\n pulseCount: number,\n zomeSignal: ZomeSignal,\n}\n\n/**\n * Creates and holds Cell proxies.\n * Maintains a mapping between CellIds and HCLs\n * Handles SignalHandlers per HCL\n * Stores appSignal logs\n * TODO Implement Singleton per App port?\n */\nexport class AppProxy implements AppClient {\n\n /** -- Fields -- */\n\n public defaultTimeout: number;\n public adminWs: AdminWebsocket | undefined = undefined;\n\n /** Signal logs */\n private _signalLogs: SignalLog[] = [];\n /** Map cells per App: InstalledAppId -> (BaseRoleName -> CellsForRole) */\n private _cellsByApp: Dictionary<RoleCellsMap> = {};\n /** Map cell locations: CellIdStr -> HCL[] */\n private _hclMap: Dictionary<HCL[]> = {};\n /** Store handlers per cell location: HCLString -> SignalCb[] */\n private _signalHandlers: Dictionary<SignalCb[]> = {};\n /** Store cell proxies per cell: CellIdStr -> CellProxy */\n private _cellProxies: Dictionary<CellProxy> = {};\n\n\n /** Map HCLString: CloneId -> CloneName */\n private _cellNames: Dictionary<string> = {} // Provisioned cell's name is its baseRoleName so no need to map them\n\n /** -- Getters -- */\n\n /** Check this after connecting since AppWebsocket can shamelessly override the provided args. */\n get appIdOfShame(): InstalledAppId | undefined { return undefined }\n\n /** */\n getAppCells(appId: InstalledAppId): RoleCellsMap | undefined {\n return this._cellsByApp[appId];\n }\n\n /** */\n getCellName(hcl: HCL): string | undefined {return this._cellNames[hcl.toString()]}\n\n\n get signalLogs(): SignalLog[] { return this._signalLogs }\n\n purgeLogs() {this._signalLogs = [] }\n\n /** */\n getLocations(adr: CellAddress): HCL[] | undefined {\n return this._hclMap[adr.str];\n }\n\n /** */\n getCell(hcl: HCL): Cell {\n const roleCellsMap = this._cellsByApp[hcl.appId];\n if (!roleCellsMap) throw Error(`getCell() failed. No hApp with ID \"${hcl.appId}\" found.`);\n const roleCells = roleCellsMap[hcl.baseRoleName];\n if (!roleCells) throw Error(`getCell() failed: BaseRoleName \"${hcl.baseRoleName}\" not found in happ \"${hcl.appId}\"`);\n let cell: ProvisionedCell | ClonedCell | undefined = roleCells.provisioned;\n if (hcl.cloneId !== undefined) {\n cell = roleCells.clones[hcl.cloneId];\n if (!cell) {\n throw Error(`getCell() failed: clone \"${hcl.cloneId}\" not found for role \"${hcl.toString()}\"`);\n }\n }\n return new Cell(cell, hcl.appId, hcl.baseRoleName);\n }\n\n\n /** Get stored CellProxy or attempt to create it */\n getCellProxy(cellIdOrLoc: HCL | CellAddress): CellProxy {\n if (cellIdOrLoc instanceof HCL) {\n const cell = this.getCell(cellIdOrLoc);\n const maybeProxy = this.getCellProxy(cell.address);\n if (!maybeProxy) throw Error(\"getCellProxy() failed. Proxy not found for cell \" + cell.address.str);\n return maybeProxy;\n }\n const sId = cellIdOrLoc.str;\n const maybeProxy = this._cellProxies[sId];\n if (maybeProxy === undefined) throw Error(\"getCellProxy() failed. Proxy not found for cell \" + sId);\n return maybeProxy;\n }\n\n\n /** */\n getAppRoles(installedAppId: InstalledAppId): BaseRoleName[] | undefined {\n const cellMap = this._cellsByApp[installedAppId];\n if (!cellMap) {\n return undefined;\n }\n return Object.values(cellMap).map((roleCells) => {\n return roleCells.provisioned.name;\n });\n }\n\n\n /** */\n getClones(appId: InstalledAppId, baseRoleName: BaseRoleName): ClonedCell[] {\n const maybeApp = this._cellsByApp[appId]\n if (!maybeApp) return [];\n const roleInstalledCells = maybeApp[baseRoleName];\n if (!roleInstalledCells) return [];\n return Object.values(roleInstalledCells.clones);\n }\n\n\n /** -- AppClient -- */\n\n myPubKey: AgentPubKey;\n installedAppId: InstalledAppId;\n\n async callZome(_req: CallZomeRequest, _timeout?: number): Promise<unknown> {\n throw new Error(\"Method not implemented.\");\n }\n\n on<Name extends keyof AppEvents>(\n _eventName: Name | readonly Name[],\n _listener: SignalCb\n ): UnsubscribeFunction {\n throw new Error(\"Method not implemented.\");\n }\n\n async appInfo(): Promise<AppInfoResponse> {\n throw new Error(\"Method not implemented.\");\n }\n\n async createCloneCell(_request: CreateCloneCellRequest): Promise<ClonedCell> {\n throw new Error(\"Method not implemented.\");\n }\n\n async enableCloneCell(_request: EnableCloneCellRequest): Promise<ClonedCell> {\n throw new Error(\"Method not implemented.\");\n }\n\n async disableCloneCell(_request: DisableCloneCellRequest): Promise<void> {\n throw new Error(\"Method not implemented.\");\n }\n\n networkInfo(_args: AppNetworkInfoRequest): Promise<NetworkInfoResponse> {\n throw new Error(\"Method not implemented.\");\n }\n\n\n /** -- Creation -- */\n\n /** Ctor */\n /*protected*/ constructor(defaultTimeout: number, appId: InstalledAppId, agentId: AgentId, adminWs?: AdminWebsocket) {\n this.defaultTimeout = defaultTimeout;\n this.adminWs = adminWs;\n this.installedAppId = appId;\n this.myPubKey = agentId.hash;\n /*const _unsub =*/ this.addSignalHandler((sig) => this.logSignal(sig));\n }\n\n\n /** -- Methods -- */\n\n get networkInfoLogs(): Record<CellIdStr, [Timestamp, NetworkInfo][]> {return {}}\n\n /** */\n async fetchCell(appId: InstalledAppId, cellAddr: CellAddress): Promise<Cell> {\n const appInfo = await this.appInfo();\n //console.log(\"fetchCell\", appInfo);\n if (appInfo == null) {\n return Promise.reject(`getCell() failed. App \"${appId}\" not found\"`);\n }\n for (const cellInfos of Object.values(appInfo.cell_info)) {\n for (const [baseRoleName, cellInfo] of Object.entries(cellInfos)) {\n let cell: Cell;\n try {\n cell = Cell.from(cellInfo, appId, baseRoleName);\n } catch(e) {\n // skip stem cell\n continue;\n }\n if (cell.address.equals(cellAddr)) {\n return cell;\n }\n }\n }\n return Promise.reject(\"getCell() failed. Cell not found for app.\");\n }\n\n\n /** Get all cells for a BaseRole in an app */\n async fetchCells(appId: InstalledAppId, baseRoleName: BaseRoleName): Promise<CellsForRole> {\n /** Make sure hApp exists */\n const appInfo = await this.appInfo();\n if (appInfo == null) {\n return Promise.reject(`fetchCells() failed. App \"${appId}\" not found`);\n }\n console.log(\"fetchCells() installedAppInfo:\\n\", printAppInfo(appInfo));\n\n /** Make sure app Object exists */\n if (!this._cellsByApp[appId]) {\n this._cellsByApp[appId] = {};\n }\n /** Get all cells with that baseRoleName */\n let provisioned: ProvisionedCell | undefined;\n let clones: Dictionary<ClonedCell> = {};\n for (const [curBaseRoleName, cellInfos] of Object.entries(appInfo.cell_info)) {\n for (const cellInfo of Object.values(cellInfos)) {\n if (baseRoleName !== curBaseRoleName || CellType.Stem in cellInfo) {\n continue;\n }\n if (CellType.Cloned in cellInfo) {\n if (clones[cellInfo.cloned.clone_id]) {\n console.error(`fetchCells() Entry already exist for clone: \"${cellInfo.cloned.clone_id}\"`)\n }\n clones[cellInfo.cloned.clone_id] = cellInfo.cloned;\n } else {\n provisioned = cellInfo.provisioned;\n }\n }\n }\n if (typeof provisioned === 'undefined') {\n return Promise.reject(\"Provisioned cell not found for role \" + baseRoleName);\n }\n let roleInstalledCells: CellsForRole = {provisioned: provisioned!, clones}\n /** Store it*/\n this._cellsByApp[appId]![baseRoleName] = roleInstalledCells;\n return roleInstalledCells;\n }\n\n\n /** */\n addClone(hcl: HCL, cloneCell: ClonedCell): void {\n if (!this._cellsByApp[hcl.appId]) throw Error(\"addClone() failed. no appId. \" + hcl.toString());\n if (!this._cellsByApp[hcl.appId]![hcl.baseRoleName]) throw Error(\"addClone() failed. no baseRoleName. \" + hcl.toString());\n if (hcl.cloneId === undefined) throw Error(\"addClone() failed. Cell is not a CloneCell: \" + hcl.toString());\n\n // let cloneName = hcl.cloneId;\n // if (hcl.cloneId === undefined) {\n // const cloneIndex: number = Object.keys(this._cellsByApp[hcl.appId][hcl.baseRoleName].clones).length;\n // cloneName = createCloneName(hcl.baseRoleName, cloneIndex);\n // }\n this._cellsByApp[hcl.appId]![hcl.baseRoleName]!.clones[cloneCell.clone_id] = cloneCell;\n // const sCellId = CellIdStr(cloneCell.cell_id);\n // console.log(\"CreateCellProxy() adding to hclMap\", sCellId, cellLoc.asHcl())\n // if (this._hclMap[sCellId]) {\n // this._hclMap[sCellId].push(cellLoc.asHcl());\n // } else {\n // this._hclMap[sCellId] = [cellLoc.asHcl()];\n // }\n }\n\n\n /** */\n createCellProxy(hcl: HCL, cloneName?: string): CellProxy {\n console.log(\"createCellProxy() for\", hcl.toString(), cloneName);\n /** Make sure cell exists */\n const cell = this.getCell(hcl);\n const sCellId = cell.address.str;\n /** Create proxy for this cell if none exist yet, otherwise reuse */\n let cellProxy = this._cellProxies[sCellId];\n if (!cellProxy) {\n /** Create and store Proxy */\n cellProxy = new CellProxy(this, cell, this.defaultTimeout);\n this._cellProxies[sCellId] = cellProxy;\n }\n /** Create CellAddress -> HCL mapping */\n //console.log(\"CreateCellProxy() adding to hclMap\", sCellId, hcl.toString())\n if (this._hclMap[sCellId]) {\n this._hclMap[sCellId]!.push(hcl);\n } else {\n this._hclMap[sCellId] = [hcl];\n }\n //console.log(\"createCellProxy() Currently stored hclMap:\", this._hclMap);\n /** Associate cloneName if any */\n const name = cloneName? cloneName : hcl.baseRoleName;\n this._cellNames[hcl.toString()] = name;\n /** Done */\n return cellProxy;\n }\n\n\n /** */\n onSignal(signal: Signal): void {\n if (!(SignalType.App in signal)) {\n return;\n }\n const appSignal: AppSignal = signal.App;\n /** Grab cell specific handlers */\n const hcls = this.getLocations(CellAddress.from(appSignal.cell_id));\n if (!hcls) {\n return;\n }\n const handlerss: (SignalCb[] | undefined)[] = hcls\n .map((hcl) => this._signalHandlers[hcl.toString()])\n .filter((arr) => arr != undefined);\n //console.log(\"onSignal()\", hcls? hcls.toString() : \"unknown cell: \" + encodeHashToBase64(signal.cell_id[0]), handlerss);\n /** Grab common handler */\n const allHandlers = this._signalHandlers[\"__all\"];\n if (allHandlers) handlerss.push(allHandlers);\n /** Send to all handlers */\n for (const handlers of handlerss) {\n for (const handler of handlers!) {\n handler(signal);\n }\n }\n }\n\n\n /** Store signalHandler to internal handler array */\n addSignalHandler(handler: SignalCb, hcl?: HCLString): SignalUnsubscriber {\n //console.log(\"addSignalHandler()\", hcl);\n\n hcl = hcl? hcl: \"__all\";\n //console.log(\"addSignalHandler()\", hcl, Object.keys(this._signalHandlers));\n if (!this._signalHandlers[hcl]) {\n this._signalHandlers[hcl] = [handler];\n } else {\n this._signalHandlers[hcl]!.push(handler);\n }\n /* return tailored unsubscribe function to the caller */\n return {\n unsubscribe: () => {\n // FIXME\n // const maybeHandler = this._signalHandlers[hcl!]\n // if (!maybeHandler) {\n // console.warn(\"unsubscribe failed: Couldn't find signalHandler for\", hcl)\n // return;\n // }\n // delete this._signalHandlers[hcl!];\n }\n };\n }\n\n /** Log all signals received */\n protected logSignal(signal: Signal): void {\n if (!(SignalType.App in signal)) {\n return;\n }\n const appSignal: AppSignal = signal.App;\n const zomeSignal = this.intoZomeSignal(appSignal);\n if (!zomeSignal) {\n return;\n }\n const log: SignalLog = {ts: Date.now(), cellAddr: CellAddress.from(appSignal.cell_id), zomeName: appSignal.zome_name, zomeSignal, type: AppSignalType.Unknown, pulseCount: 1};\n if (zomeSignal) {\n log.pulseCount = zomeSignal.pulses.length;\n if (zomeSignal.pulses.length == 0) {\n log.type = AppSignalType.Empty;\n } else {\n log.type = AppSignalType.Zome;\n }\n }\n this._signalLogs.push(log);\n }\n\n\n /** */\n intoZomeSignal(appSignal: AppSignal): ZomeSignal | undefined {\n if (typeof appSignal.payload !== 'object' || Array.isArray(appSignal.payload) || appSignal.payload === null) {\n return;\n }\n const payload = appSignal.payload as Object;\n if (\"pulses\" in payload && \"from\" in payload) {\n return appSignal.payload as ZomeSignal;\n }\n return;\n }\n\n\n /** */\n dumpSignalLogs(canAppSignals: boolean, cellAddr?: CellAddress, zomeName?: ZomeName) {\n const me = enc64(this.myPubKey);\n let logs = this._signalLogs;\n /** Filter by cell and zome */\n let cellNames;\n if (cellAddr) {\n const hcls = this._hclMap[cellAddr.str];\n cellNames = hcls!.map((hcl) => this.getCellName(hcl));\n logs = this._signalLogs\n .filter((log) => log.cellAddr.equals(cellAddr));\n if (zomeName) {\n logs = this._signalLogs\n .filter((log) => log.zomeName == zomeName);\n }\n }\n /** Seperate by type */\n const unknownSignals = logs.filter((log) => log.type == AppSignalType.Unknown);\n const zomeSignals = logs.filter((log) => log.type == AppSignalType.Zome);\n const appSignals = zomeSignals.filter((log) => {\n const type = Object.keys(log.zomeSignal.pulses[0]!)[0];\n type != \"System\"\n });\n const sysSignals = zomeSignals.filter((log) => {\n const type = Object.keys(log.zomeSignal.pulses[0]!)[0];\n type == \"System\"\n });\n\n /** Dump unknown signals */\n if (unknownSignals.length) {\n let logs;\n if (zomeName) {\n console.error(`Unknown signals from zome \"${zomeName}\": ${unknownSignals.length}`);\n logs = unknownSignals\n .map((log) => {\n return {timestamp: prettyDate(new Date(log.ts)), payload: log.zomeSignal}\n });\n } else {\n console.error(`Unknown signals: ${unknownSignals.length}`);\n logs = unknownSignals\n .map((log) => {\n return {timestamp: prettyDate(new Date(log.ts)), zome: log.zomeName, payload: log.zomeSignal}\n });\n }\n console.table(logs);\n }\n\n /** Dump System signals */\n let syslogs: any[] = [];\n if (cellNames) {\n if (zomeName) {\n console.warn(`Unknown signals from zome \"${zomeName}\" in cell \"${cellNames}\"`);\n sysSignals.map((log) => {\n for (const pulse of log.zomeSignal.pulses) {\n const payload = (pulse as SystemPulse).System;\n syslogs.push({timestamp: prettyDate(new Date(log.ts)), payload});\n }\n });\n } else {\n console.warn(`System signals from cell \"${cellNames}\"`);\n sysSignals.map((log) => {\n for (const pulse of log.zomeSignal.pulses) {\n const payload = (pulse as SystemPulse).System;\n syslogs.push({timestamp: prettyDate(new Date(log.ts)), zome: log.zomeName, payload});\n }\n });\n }\n } else {\n console.warn(`System signals: ${sysSignals.length}`)\n sysSignals.map((log) => {\n const app = this._hclMap[log.cellAddr.str]![0]!.appId;\n const cell: string = this._hclMap[log.cellAddr.str]![0]!.roleName;\n for (const pulse of log.zomeSignal.pulses) {\n const payload = (pulse as SystemPulse).System;\n syslogs.push({timestamp: prettyDate(new Date(log.ts)), app, cell, zome: log.zomeName, payload});\n }\n });\n }\n console.table(syslogs);\n\n /** Dump App signals */\n if (!canAppSignals) {\n return;\n }\n let appLogs;\n if (cellNames) {\n if (zomeName) {\n console.warn(`App signals from zome \"${zomeName}\" in cell \"${cellNames}\"`);\n appLogs = appSignals.map((log) => {\n const pulses = log.zomeSignal.pulses;\n const from = enc64(log.zomeSignal.from) == me ? \"self\" : enc64(log.zomeSignal.from);\n return {timestamp: prettyDate(new Date(log.ts)), from, count: pulses.length, payload: pulses}\n });\n } else {\n console.warn(`App signals from cell \"${cellNames}\"`);\n appLogs = appSignals.map((log) => {\n const pulses = log.zomeSignal.pulses;\n const from = enc64(log.zomeSignal.from) == me ? \"self\" : enc64(log.zomeSignal.from);\n return {timestamp: prettyDate(new Date(log.ts)), zome: log.zomeName, from, count: pulses.length, payload: pulses}\n });\n }\n } else {\n console.warn(`App signals: ${appSignals.length}`)\n appLogs = appSignals.map((log) => {\n const app = this._hclMap[log.cellAddr.str]![0]!.appId;\n const cell: string = this._hclMap[log.cellAddr.str]![0]!.roleName;\n const pulses = log.zomeSignal.pulses;\n const from = enc64(log.zomeSignal.from) == me? \"self\" : enc64(log.zomeSignal.from);\n return { timestamp: prettyDate(new Date(log.ts)), app, cell, zome: log.zomeName, from, count: pulses.length, payload: pulses};\n });\n }\n console.table(appLogs);\n }\n}\n\n"]}
1
+ {"version":3,"file":"AppProxy.js","sourceRoot":"","sources":["../src/AppProxy.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AdminWebsocket, AgentPubKey,\n AppClient,\n AppEvents,\n AppInfoResponse,\n AppNetworkInfoRequest,\n AppSignal,\n SignalCb,\n CallZomeRequest,\n CellType,\n ClonedCell,\n CreateCloneCellRequest,\n DisableCloneCellRequest,\n EnableCloneCellRequest,\n InstalledAppId,\n NetworkInfoResponse,\n ProvisionedCell,\n Timestamp, ZomeName, SignalType,\n} from \"@holochain/client\";\nimport {UnsubscribeFunction} from \"emittery\";\nimport {CellProxy} from \"./CellProxy\";\nimport {\n BaseRoleName, CellAddress,\n CellsForRole,\n RoleCellsMap, AppSignalType, SystemPulse,\n} from \"./types\";\nimport {Dictionary} from \"./utils\";\nimport {HCL, HCLString} from \"./hcl\";\nimport {Cell} from \"./cell\";\nimport {prettyDate, printAppInfo} from \"./pretty\";\nimport {AgentId, enc64} from \"./hash\";\nimport {ZomeSignal} from \"./zomeSignals.types\";\nimport {Signal} from \"@holochain/client/lib/api/app/types\";\n\n\n/** */\nexport interface SignalUnsubscriber {\n unsubscribe: () => void;\n}\n\n\nexport interface SignalLog {\n ts: Timestamp,\n cellAddr: CellAddress,\n zomeName: string,\n type: string,\n pulseCount: number,\n zomeSignal: ZomeSignal,\n}\n\n/**\n * Creates and holds Cell proxies.\n * Maintains a mapping between CellIds and HCLs\n * Handles SignalHandlers per HCL\n * Stores appSignal logs\n * TODO Implement Singleton per App port?\n */\nexport class AppProxy implements AppClient {\n\n /** -- Fields -- */\n\n public defaultTimeout: number;\n public adminWs: AdminWebsocket | undefined = undefined;\n\n /** Signal logs */\n private _signalLogs: SignalLog[] = [];\n /** Map cells per App: InstalledAppId -> (BaseRoleName -> CellsForRole) */\n private _cellsByApp: Dictionary<RoleCellsMap> = {};\n /** Map cell locations: CellIdStr -> HCL[] */\n private _hclMap: Dictionary<HCL[]> = {};\n /** Store handlers per cell location: HCLString -> SignalCb[] */\n private _signalHandlers: Dictionary<SignalCb[]> = {};\n /** Store cell proxies per cell: CellIdStr -> CellProxy */\n private _cellProxies: Dictionary<CellProxy> = {};\n\n\n /** Map HCLString: CloneId -> CloneName */\n private _cellNames: Dictionary<string> = {} // Provisioned cell's name is its baseRoleName so no need to map them\n\n /** -- Getters -- */\n\n /** Check this after connecting since AppWebsocket can shamelessly override the provided args. */\n get appIdOfShame(): InstalledAppId | undefined { return undefined }\n\n /** */\n getAppCells(appId: InstalledAppId): RoleCellsMap | undefined {\n return this._cellsByApp[appId];\n }\n\n /** */\n getCellName(hcl: HCL): string | undefined {return this._cellNames[hcl.toString()]}\n\n\n get signalLogs(): SignalLog[] { return this._signalLogs }\n\n purgeLogs() {this._signalLogs = [] }\n\n /** */\n getLocations(adr: CellAddress): HCL[] | undefined {\n return this._hclMap[adr.str];\n }\n\n /** */\n getCell(hcl: HCL): Cell {\n const roleCellsMap = this._cellsByApp[hcl.appId];\n if (!roleCellsMap) throw Error(`getCell() failed. No hApp with ID \"${hcl.appId}\" found.`);\n const roleCells = roleCellsMap[hcl.baseRoleName];\n if (!roleCells) throw Error(`getCell() failed: BaseRoleName \"${hcl.baseRoleName}\" not found in happ \"${hcl.appId}\"`);\n let cell: ProvisionedCell | ClonedCell | undefined = roleCells.provisioned;\n if (hcl.cloneId !== undefined) {\n cell = roleCells.clones[hcl.cloneId];\n if (!cell) {\n throw Error(`getCell() failed: clone \"${hcl.cloneId}\" not found for role \"${hcl.toString()}\"`);\n }\n }\n return new Cell(cell, hcl.appId, hcl.baseRoleName);\n }\n\n\n /** Get stored CellProxy or attempt to create it */\n getCellProxy(cellIdOrLoc: HCL | CellAddress): CellProxy {\n if (cellIdOrLoc instanceof HCL) {\n const cell = this.getCell(cellIdOrLoc);\n const maybeProxy = this.getCellProxy(cell.address);\n if (!maybeProxy) throw Error(\"getCellProxy() failed. Proxy not found for cell \" + cell.address.str);\n return maybeProxy;\n }\n const sId = cellIdOrLoc.str;\n const maybeProxy = this._cellProxies[sId];\n if (maybeProxy === undefined) throw Error(\"getCellProxy() failed. Proxy not found for cell \" + sId);\n return maybeProxy;\n }\n\n\n /** */\n getAppRoles(installedAppId: InstalledAppId): BaseRoleName[] | undefined {\n const cellMap = this._cellsByApp[installedAppId];\n if (!cellMap) {\n return undefined;\n }\n return Object.values(cellMap).map((roleCells) => {\n return roleCells.provisioned.name;\n });\n }\n\n\n /** */\n getClones(appId: InstalledAppId, baseRoleName: BaseRoleName): ClonedCell[] {\n const maybeApp = this._cellsByApp[appId]\n if (!maybeApp) return [];\n const roleInstalledCells = maybeApp[baseRoleName];\n if (!roleInstalledCells) return [];\n return Object.values(roleInstalledCells.clones);\n }\n\n\n /** -- AppClient -- */\n\n myPubKey: AgentPubKey;\n installedAppId: InstalledAppId;\n\n async callZome(_req: CallZomeRequest, _timeout?: number): Promise<unknown> {\n throw new Error(\"Method not implemented.\");\n }\n\n on<Name extends keyof AppEvents>(\n _eventName: Name | readonly Name[],\n _listener: SignalCb\n ): UnsubscribeFunction {\n throw new Error(\"Method not implemented.\");\n }\n\n async appInfo(): Promise<AppInfoResponse> {\n throw new Error(\"Method not implemented.\");\n }\n\n async createCloneCell(_request: CreateCloneCellRequest): Promise<ClonedCell> {\n throw new Error(\"Method not implemented.\");\n }\n\n async enableCloneCell(_request: EnableCloneCellRequest): Promise<ClonedCell> {\n throw new Error(\"Method not implemented.\");\n }\n\n async disableCloneCell(_request: DisableCloneCellRequest): Promise<void> {\n throw new Error(\"Method not implemented.\");\n }\n\n networkInfo(_args: AppNetworkInfoRequest): Promise<NetworkInfoResponse> {\n throw new Error(\"Method not implemented.\");\n }\n\n\n\n /** -- Creation -- */\n\n /** Ctor */\n /*protected*/ constructor(defaultTimeout: number, appId: InstalledAppId, agentId: AgentId, adminWs?: AdminWebsocket) {\n this.defaultTimeout = defaultTimeout;\n this.adminWs = adminWs;\n this.installedAppId = appId;\n this.myPubKey = agentId.hash;\n /*const _unsub =*/ this.addSignalHandler((sig) => this.logSignal(sig));\n }\n\n\n /** -- Methods -- */\n\n /** */\n async fetchCell(appId: InstalledAppId, cellAddr: CellAddress): Promise<Cell> {\n const appInfo = await this.appInfo();\n //console.log(\"fetchCell\", appInfo);\n if (appInfo == null) {\n return Promise.reject(`getCell() failed. App \"${appId}\" not found\"`);\n }\n for (const cellInfos of Object.values(appInfo.cell_info)) {\n for (const [baseRoleName, cellInfo] of Object.entries(cellInfos)) {\n let cell: Cell;\n try {\n cell = Cell.from(cellInfo, appId, baseRoleName);\n } catch(e) {\n // skip stem cell\n continue;\n }\n if (cell.address.equals(cellAddr)) {\n return cell;\n }\n }\n }\n return Promise.reject(\"getCell() failed. Cell not found for app.\");\n }\n\n\n /** Get all cells for a BaseRole in an app */\n async fetchCells(appId: InstalledAppId, baseRoleName: BaseRoleName): Promise<CellsForRole> {\n /** Make sure hApp exists */\n const appInfo = await this.appInfo();\n if (appInfo == null) {\n return Promise.reject(`fetchCells() failed. App \"${appId}\" not found`);\n }\n console.log(\"fetchCells() installedAppInfo:\\n\", printAppInfo(appInfo));\n\n /** Make sure app Object exists */\n if (!this._cellsByApp[appId]) {\n this._cellsByApp[appId] = {};\n }\n /** Get all cells with that baseRoleName */\n let provisioned: ProvisionedCell | undefined;\n let clones: Dictionary<ClonedCell> = {};\n for (const [curBaseRoleName, cellInfos] of Object.entries(appInfo.cell_info)) {\n for (const cellInfo of Object.values(cellInfos)) {\n if (baseRoleName !== curBaseRoleName || CellType.Stem in cellInfo) {\n continue;\n }\n if (CellType.Cloned in cellInfo) {\n if (clones[cellInfo.cloned.clone_id]) {\n console.error(`fetchCells() Entry already exist for clone: \"${cellInfo.cloned.clone_id}\"`)\n }\n clones[cellInfo.cloned.clone_id] = cellInfo.cloned;\n } else {\n provisioned = cellInfo.provisioned;\n }\n }\n }\n if (typeof provisioned === 'undefined') {\n return Promise.reject(\"Provisioned cell not found for role \" + baseRoleName);\n }\n let roleInstalledCells: CellsForRole = {provisioned: provisioned!, clones}\n /** Store it*/\n this._cellsByApp[appId]![baseRoleName] = roleInstalledCells;\n return roleInstalledCells;\n }\n\n\n /** */\n addClone(hcl: HCL, cloneCell: ClonedCell): void {\n if (!this._cellsByApp[hcl.appId]) throw Error(\"addClone() failed. no appId. \" + hcl.toString());\n if (!this._cellsByApp[hcl.appId]![hcl.baseRoleName]) throw Error(\"addClone() failed. no baseRoleName. \" + hcl.toString());\n if (hcl.cloneId === undefined) throw Error(\"addClone() failed. Cell is not a CloneCell: \" + hcl.toString());\n\n // let cloneName = hcl.cloneId;\n // if (hcl.cloneId === undefined) {\n // const cloneIndex: number = Object.keys(this._cellsByApp[hcl.appId][hcl.baseRoleName].clones).length;\n // cloneName = createCloneName(hcl.baseRoleName, cloneIndex);\n // }\n this._cellsByApp[hcl.appId]![hcl.baseRoleName]!.clones[cloneCell.clone_id] = cloneCell;\n // const sCellId = CellIdStr(cloneCell.cell_id);\n // console.log(\"CreateCellProxy() adding to hclMap\", sCellId, cellLoc.asHcl())\n // if (this._hclMap[sCellId]) {\n // this._hclMap[sCellId].push(cellLoc.asHcl());\n // } else {\n // this._hclMap[sCellId] = [cellLoc.asHcl()];\n // }\n }\n\n\n /** */\n createCellProxy(hcl: HCL, cloneName?: string): CellProxy {\n console.log(\"createCellProxy() for\", hcl.toString(), cloneName);\n /** Make sure cell exists */\n const cell = this.getCell(hcl);\n const sCellId = cell.address.str;\n /** Create proxy for this cell if none exist yet, otherwise reuse */\n let cellProxy = this._cellProxies[sCellId];\n if (!cellProxy) {\n /** Create and store Proxy */\n cellProxy = new CellProxy(this, cell, this.defaultTimeout);\n this._cellProxies[sCellId] = cellProxy;\n }\n /** Create CellAddress -> HCL mapping */\n //console.log(\"CreateCellProxy() adding to hclMap\", sCellId, hcl.toString())\n if (this._hclMap[sCellId]) {\n this._hclMap[sCellId]!.push(hcl);\n } else {\n this._hclMap[sCellId] = [hcl];\n }\n //console.log(\"createCellProxy() Currently stored hclMap:\", this._hclMap);\n /** Associate cloneName if any */\n const name = cloneName? cloneName : hcl.baseRoleName;\n this._cellNames[hcl.toString()] = name;\n /** Done */\n return cellProxy;\n }\n\n\n /** */\n onSignal(signal: Signal): void {\n if (!(SignalType.App in signal)) {\n return;\n }\n const appSignal: AppSignal = signal.App;\n /** Grab cell specific handlers */\n const hcls = this.getLocations(CellAddress.from(appSignal.cell_id));\n if (!hcls) {\n return;\n }\n const handlerss: (SignalCb[] | undefined)[] = hcls\n .map((hcl) => this._signalHandlers[hcl.toString()])\n .filter((arr) => arr != undefined);\n //console.log(\"onSignal()\", hcls? hcls.toString() : \"unknown cell: \" + encodeHashToBase64(signal.cell_id[0]), handlerss);\n /** Grab common handler */\n const allHandlers = this._signalHandlers[\"__all\"];\n if (allHandlers) handlerss.push(allHandlers);\n /** Send to all handlers */\n for (const handlers of handlerss) {\n for (const handler of handlers!) {\n handler(signal);\n }\n }\n }\n\n\n /** Store signalHandler to internal handler array */\n addSignalHandler(handler: SignalCb, hcl?: HCLString): SignalUnsubscriber {\n //console.log(\"addSignalHandler()\", hcl);\n\n hcl = hcl? hcl: \"__all\";\n //console.log(\"addSignalHandler()\", hcl, Object.keys(this._signalHandlers));\n if (!this._signalHandlers[hcl]) {\n this._signalHandlers[hcl] = [handler];\n } else {\n this._signalHandlers[hcl]!.push(handler);\n }\n /* return tailored unsubscribe function to the caller */\n return {\n unsubscribe: () => {\n // FIXME\n // const maybeHandler = this._signalHandlers[hcl!]\n // if (!maybeHandler) {\n // console.warn(\"unsubscribe failed: Couldn't find signalHandler for\", hcl)\n // return;\n // }\n // delete this._signalHandlers[hcl!];\n }\n };\n }\n\n /** Log all signals received */\n protected logSignal(signal: Signal): void {\n if (!(SignalType.App in signal)) {\n return;\n }\n const appSignal: AppSignal = signal.App;\n const zomeSignal = this.intoZomeSignal(appSignal);\n if (!zomeSignal) {\n return;\n }\n const log: SignalLog = {ts: Date.now(), cellAddr: CellAddress.from(appSignal.cell_id), zomeName: appSignal.zome_name, zomeSignal, type: AppSignalType.Unknown, pulseCount: 1};\n if (zomeSignal) {\n log.pulseCount = zomeSignal.pulses.length;\n if (zomeSignal.pulses.length == 0) {\n log.type = AppSignalType.Empty;\n } else {\n log.type = AppSignalType.Zome;\n }\n }\n this._signalLogs.push(log);\n }\n\n\n /** */\n intoZomeSignal(appSignal: AppSignal): ZomeSignal | undefined {\n if (typeof appSignal.payload !== 'object' || Array.isArray(appSignal.payload) || appSignal.payload === null) {\n return;\n }\n const payload = appSignal.payload as Object;\n if (\"pulses\" in payload && \"from\" in payload) {\n return appSignal.payload as ZomeSignal;\n }\n return;\n }\n\n\n /** */\n dumpSignalLogs(canAppSignals: boolean, cellAddr?: CellAddress, zomeName?: ZomeName) {\n const me = enc64(this.myPubKey);\n let logs = this._signalLogs;\n /** Filter by cell and zome */\n let cellNames;\n if (cellAddr) {\n const hcls = this._hclMap[cellAddr.str];\n cellNames = hcls!.map((hcl) => this.getCellName(hcl));\n logs = this._signalLogs\n .filter((log) => log.cellAddr.equals(cellAddr));\n if (zomeName) {\n logs = this._signalLogs\n .filter((log) => log.zomeName == zomeName);\n }\n }\n /** Seperate by type */\n const unknownSignals = logs.filter((log) => log.type == AppSignalType.Unknown);\n const zomeSignals = logs.filter((log) => log.type == AppSignalType.Zome);\n const appSignals = zomeSignals.filter((log) => {\n const type = Object.keys(log.zomeSignal.pulses[0]!)[0];\n type != \"System\"\n });\n const sysSignals = zomeSignals.filter((log) => {\n const type = Object.keys(log.zomeSignal.pulses[0]!)[0];\n type == \"System\"\n });\n\n /** Dump unknown signals */\n if (unknownSignals.length) {\n let logs;\n if (zomeName) {\n console.error(`Unknown signals from zome \"${zomeName}\": ${unknownSignals.length}`);\n logs = unknownSignals\n .map((log) => {\n return {timestamp: prettyDate(new Date(log.ts)), payload: log.zomeSignal}\n });\n } else {\n console.error(`Unknown signals: ${unknownSignals.length}`);\n logs = unknownSignals\n .map((log) => {\n return {timestamp: prettyDate(new Date(log.ts)), zome: log.zomeName, payload: log.zomeSignal}\n });\n }\n console.table(logs);\n }\n\n /** Dump System signals */\n let syslogs: any[] = [];\n if (cellNames) {\n if (zomeName) {\n console.warn(`Unknown signals from zome \"${zomeName}\" in cell \"${cellNames}\"`);\n sysSignals.map((log) => {\n for (const pulse of log.zomeSignal.pulses) {\n const payload = (pulse as SystemPulse).System;\n syslogs.push({timestamp: prettyDate(new Date(log.ts)), payload});\n }\n });\n } else {\n console.warn(`System signals from cell \"${cellNames}\"`);\n sysSignals.map((log) => {\n for (const pulse of log.zomeSignal.pulses) {\n const payload = (pulse as SystemPulse).System;\n syslogs.push({timestamp: prettyDate(new Date(log.ts)), zome: log.zomeName, payload});\n }\n });\n }\n } else {\n console.warn(`System signals: ${sysSignals.length}`)\n sysSignals.map((log) => {\n const app = this._hclMap[log.cellAddr.str]![0]!.appId;\n const cell: string = this._hclMap[log.cellAddr.str]![0]!.roleName;\n for (const pulse of log.zomeSignal.pulses) {\n const payload = (pulse as SystemPulse).System;\n syslogs.push({timestamp: prettyDate(new Date(log.ts)), app, cell, zome: log.zomeName, payload});\n }\n });\n }\n console.table(syslogs);\n\n /** Dump App signals */\n if (!canAppSignals) {\n return;\n }\n let appLogs;\n if (cellNames) {\n if (zomeName) {\n console.warn(`App signals from zome \"${zomeName}\" in cell \"${cellNames}\"`);\n appLogs = appSignals.map((log) => {\n const pulses = log.zomeSignal.pulses;\n const from = enc64(log.zomeSignal.from) == me ? \"self\" : enc64(log.zomeSignal.from);\n return {timestamp: prettyDate(new Date(log.ts)), from, count: pulses.length, payload: pulses}\n });\n } else {\n console.warn(`App signals from cell \"${cellNames}\"`);\n appLogs = appSignals.map((log) => {\n const pulses = log.zomeSignal.pulses;\n const from = enc64(log.zomeSignal.from) == me ? \"self\" : enc64(log.zomeSignal.from);\n return {timestamp: prettyDate(new Date(log.ts)), zome: log.zomeName, from, count: pulses.length, payload: pulses}\n });\n }\n } else {\n console.warn(`App signals: ${appSignals.length}`)\n appLogs = appSignals.map((log) => {\n const app = this._hclMap[log.cellAddr.str]![0]!.appId;\n const cell: string = this._hclMap[log.cellAddr.str]![0]!.roleName;\n const pulses = log.zomeSignal.pulses;\n const from = enc64(log.zomeSignal.from) == me? \"self\" : enc64(log.zomeSignal.from);\n return { timestamp: prettyDate(new Date(log.ts)), app, cell, zome: log.zomeName, from, count: pulses.length, payload: pulses};\n });\n }\n console.table(appLogs);\n }\n}\n\n"]}
@@ -1,7 +1,6 @@
1
- import { AppInfoResponse, AppWebsocket, CallZomeRequest, InstalledAppId, CreateCloneCellRequest, DisableCloneCellRequest, EnableCloneCellRequest, ClonedCell, NetworkInfo, Timestamp, AppClient, AppEvents, SignalCb, AppNetworkInfoRequest, NetworkInfoResponse, AdminWebsocket } from "@holochain/client";
1
+ import { AppInfoResponse, AppWebsocket, CallZomeRequest, InstalledAppId, CreateCloneCellRequest, DisableCloneCellRequest, EnableCloneCellRequest, ClonedCell, AppClient, AppEvents, SignalCb, AppNetworkInfoRequest, NetworkInfoResponse, AdminWebsocket } from "@holochain/client";
2
2
  import { UnsubscribeFunction } from "emittery";
3
3
  import { AppProxy } from "./AppProxy";
4
- import { CellIdStr } from "./types";
5
4
  import { AgentId } from "./hash";
6
5
  export declare class ConductorAppProxy extends AppProxy implements AppClient {
7
6
  constructor(defaultTimeout: number, appId: InstalledAppId, agentId: AgentId, adminWs?: AdminWebsocket);
@@ -13,9 +12,6 @@ export declare class ConductorAppProxy extends AppProxy implements AppClient {
13
12
  enableCloneCell(request: EnableCloneCellRequest): Promise<ClonedCell>;
14
13
  disableCloneCell(request: DisableCloneCellRequest): Promise<void>;
15
14
  networkInfo(args: AppNetworkInfoRequest): Promise<NetworkInfoResponse>;
16
- private _lastTimeQueriedMap;
17
- private _networkInfoLogs;
18
- get networkInfoLogs(): Record<CellIdStr, [Timestamp, NetworkInfo][]>;
19
15
  static new(port_or_socket: number | AppWebsocket, appId: InstalledAppId, adminUrl?: URL, defaultTimeout?: number): Promise<ConductorAppProxy>;
20
16
  private static fromSocket;
21
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConductorAppProxy.d.ts","sourceRoot":"","sources":["../src/ConductorAppProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,UAAU,EACV,WAAW,EAEX,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAc,SAAS,EAAC,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAC,OAAO,EAAQ,MAAM,QAAQ,CAAC;AActC,qBAAa,iBAAkB,SAAQ,QAAS,YAAW,SAAS;gBAGxC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc;IAOnH,OAAO,CAAC,MAAM,CAAgB;IAWf,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAIzC,EAAE,CAAC,IAAI,SAAS,MAAM,SAAS,EACtC,SAAS,EAAE,IAAI,GAAG,SAAS,IAAI,EAAE,EACjC,QAAQ,EAAE,QAAQ,GACjB,mBAAmB;IAIP,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKrE,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKrE,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjE,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA+BrF,OAAO,CAAC,mBAAmB,CAA2C;IAEtE,OAAO,CAAC,gBAAgB,CAAqD;IAE7E,IAAa,eAAe,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAgC;WAOhG,GAAG,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;mBAsC9H,UAAU;CAWhC"}
1
+ {"version":3,"file":"ConductorAppProxy.d.ts","sourceRoot":"","sources":["../src/ConductorAppProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,SAAS,EACT,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAa/B,qBAAa,iBAAkB,SAAQ,QAAS,YAAW,SAAS;gBAGxC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc;IAOnH,OAAO,CAAC,MAAM,CAAgB;IAWf,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAIzC,EAAE,CAAC,IAAI,SAAS,MAAM,SAAS,EACtC,SAAS,EAAE,IAAI,GAAG,SAAS,IAAI,EAAE,EACjC,QAAQ,EAAE,QAAQ,GACjB,mBAAmB;IAIP,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKrE,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKrE,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjE,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC;WASxE,GAAG,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;mBAsC9H,UAAU;CAWhC"}
@@ -1,13 +1,9 @@
1
1
  import { AppWebsocket, AdminWebsocket, } from "@holochain/client";
2
2
  import { AppProxy } from "./AppProxy";
3
- import { CellAddress } from "./types";
4
- import { AgentId, DnaId } from "./hash";
5
- import { AgentIdMap } from "./holochain-id-map";
3
+ import { AgentId } from "./hash";
6
4
  export class ConductorAppProxy extends AppProxy {
7
5
  constructor(defaultTimeout, appId, agentId, adminWs) {
8
6
  super(defaultTimeout, appId, agentId, adminWs);
9
- this._lastTimeQueriedMap = new AgentIdMap();
10
- this._networkInfoLogs = {};
11
7
  }
12
8
  async callZome(req, timeout) {
13
9
  timeout = timeout ? timeout : this.defaultTimeout;
@@ -29,25 +25,8 @@ export class ConductorAppProxy extends AppProxy {
29
25
  return this._appWs.disableCloneCell(request);
30
26
  }
31
27
  async networkInfo(args) {
32
- const agentId = new AgentId(this._appWs.myPubKey);
33
- const response = await this._appWs.networkInfo({
34
- dnas: args.dnas,
35
- last_time_queried: this._lastTimeQueriedMap.get(agentId)
36
- });
37
- this._lastTimeQueriedMap.set(agentId, Date.now());
38
- let i = 0;
39
- for (const netInfo of response) {
40
- const dnaId = new DnaId(args.dnas[i]);
41
- const cellAddr = new CellAddress(dnaId, agentId);
42
- if (!this._networkInfoLogs[cellAddr.str]) {
43
- this._networkInfoLogs[cellAddr.str] = [];
44
- }
45
- this._networkInfoLogs[cellAddr.str].push([this._lastTimeQueriedMap.get(agentId), netInfo]);
46
- i += 1;
47
- }
48
- return response;
28
+ return await this._appWs.networkInfo(args);
49
29
  }
50
- get networkInfoLogs() { return this._networkInfoLogs; }
51
30
  static async new(port_or_socket, appId, adminUrl, defaultTimeout) {
52
31
  const timeout = defaultTimeout ? defaultTimeout : 10 * 1000;
53
32
  if (typeof port_or_socket == 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"ConductorAppProxy.js","sourceRoot":"","sources":["../src/ConductorAppProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAeZ,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,WAAW,EAAY,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAa9C,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAG/B,YAAY,cAAsB,EAAE,KAAqB,EAAE,OAAgB,EAAE,OAAwB;QACjH,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAqFzC,wBAAmB,GAA0B,IAAI,UAAU,EAAE,CAAC;QAE9D,qBAAgB,GAAkD,EAAE,CAAC;IAtF7E,CAAC;IAgBQ,KAAK,CAAC,QAAQ,CAAC,GAAoB,EAAE,OAAgB;QAC5D,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAA;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IAEQ,KAAK,CAAC,OAAO;QACpB,OAAO,IAAI,CAAC,MAAO,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;IAEQ,EAAE,CACT,SAAiC,EACjC,QAAkB;QAElB,OAAO,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEQ,KAAK,CAAC,eAAe,CAAC,OAA+B;QAE5D,OAAO,IAAI,CAAC,MAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEQ,KAAK,CAAC,eAAe,CAAC,OAA+B;QAE5D,OAAO,IAAI,CAAC,MAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEQ,KAAK,CAAC,gBAAgB,CAAC,OAAgC;QAE9D,OAAO,IAAI,CAAC,MAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAQQ,KAAK,CAAC,WAAW,CAAC,IAA2B;QACpD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC;SACnC,CAAC,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAGlD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAGvC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAE,EAAE,OAAO,CAAC,CAAC,CAAA;YAE5F,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAUD,IAAa,eAAe,KAAmD,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAA,CAAC;IAO7G,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,cAAqC,EAAE,KAAqB,EAAE,QAAc,EAAE,cAAuB;QACpH,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;QAC5D,IAAI,OAAO,cAAc,IAAI,QAAQ,EAAE,CAAC;YACtC,OAAQ,iBAAiB,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC;gBACH,IAAI,KAAK,GAAuC,SAAS,CAAC;gBAC1D,IAAI,OAAO,GAA+B,SAAS,CAAC;gBACpD,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAC,CAAC,CAAC;oBACxD,OAAO,CAAC,GAAG,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC;oBACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,2BAA2B,CAAC,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAC;oBACpF,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACvB,CAAC;gBACD,MAAM,OAAO,GAAkC;oBAC7C,GAAG,EAAE,KAAK;oBACV,cAAc,EAAE,OAAO;iBACxB,CAAC;gBACF,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACxB,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAE5C,IAAI,SAAS,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBACxE,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;gBACzB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,GAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC;gBAClE,OAAO,SAAS,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAA;gBAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAIO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAA0B,EAAE,cAAsB;QAChF,IAAI,CAAC;YACH,IAAI,SAAS,GAAG,IAAI,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC,cAAc,EAAE,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvH,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC;YAChC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,GAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA;YACjE,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAA;YAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n AppInfoResponse,\n AppWebsocket,\n CallZomeRequest,\n InstalledAppId,\n CreateCloneCellRequest,\n DisableCloneCellRequest,\n EnableCloneCellRequest,\n ClonedCell,\n NetworkInfo,\n NetworkInfoRequest,\n Timestamp,\n AppClient,\n AppEvents,\n SignalCb,\n AppNetworkInfoRequest,\n NetworkInfoResponse,\n AdminWebsocket,\n} from \"@holochain/client\";\nimport { UnsubscribeFunction } from \"emittery\";\nimport {AppProxy} from \"./AppProxy\";\nimport {CellAddress, CellIdStr} from \"./types\";\nimport {AgentId, DnaId} from \"./hash\";\nimport {AgentIdMap} from \"./holochain-id-map\";\nimport {AppWebsocketConnectionOptions} from \"@holochain/client/lib/api/app/types\";\nimport {AppAuthenticationToken} from \"@holochain/client/lib/api/admin/types\";\n\n\n/**\n * Creates, connects and holds an appWebsocket.\n * Creates and holds Cell proxies for this appWebsocket.\n * Maintains a mapping between CellIds and HCLs\n * Handles SignalHandlers per HCL\n * Stores appSignal logs\n * TODO Implement Singleton per App port?\n */\nexport class ConductorAppProxy extends AppProxy implements AppClient {\n\n /** Ctor */\n /*protected*/ constructor(defaultTimeout: number, appId: InstalledAppId, agentId: AgentId, adminWs?: AdminWebsocket) {\n super(defaultTimeout, appId, agentId, adminWs);\n }\n\n\n /** -- Fields -- */\n\n private _appWs!: AppWebsocket;\n\n\n /** -- Getters -- */\n\n ///** Check this after connecting since AppWebsocket can shamelessly override the provided args. */\n //get appIdOfShame(): InstalledAppId | undefined { return this._appWs.overrideInstalledAppId;}\n\n\n /** -- AppClient (Passthrough to appWebsocket) -- */\n\n override async callZome(req: CallZomeRequest, timeout?: number): Promise<unknown> {\n timeout = timeout ? timeout : this.defaultTimeout\n return this._appWs.callZome(req, timeout)\n }\n\n override async appInfo(): Promise<AppInfoResponse> {\n return this._appWs!.appInfo();\n }\n\n override on<Name extends keyof AppEvents>(\n eventName: Name | readonly Name[],\n listener: SignalCb\n ): UnsubscribeFunction {\n return this._appWs!.on(eventName, listener);\n }\n\n override async createCloneCell(request: CreateCloneCellRequest): Promise<ClonedCell> {\n //console.log(\"createCloneCell() called:\", request)\n return this._appWs!.createCloneCell(request);\n }\n\n override async enableCloneCell(request: EnableCloneCellRequest): Promise<ClonedCell> {\n //console.log(\"enableCloneCell() called:\", request)\n return this._appWs!.enableCloneCell(request);\n }\n\n override async disableCloneCell(request: DisableCloneCellRequest): Promise<void> {\n //console.log(\"disableCloneCell() called:\", request)\n return this._appWs!.disableCloneCell(request);\n }\n\n // async networkInfo(args: AppNetworkInfoRequest): Promise<NetworkInfoResponse> {\n // return this._appWs!.networkInfo(args);\n // }\n\n\n /** */\n override async networkInfo(args: AppNetworkInfoRequest): Promise<NetworkInfoResponse> {\n const agentId = new AgentId(this._appWs.myPubKey);\n /* Call networkInfo */\n const response = await this._appWs.networkInfo({\n dnas: args.dnas,\n last_time_queried: this._lastTimeQueriedMap.get(agentId)\n } as NetworkInfoRequest);\n this._lastTimeQueriedMap.set(agentId, Date.now());\n\n /* Convert result */\n let i = 0;\n //let result = {}\n for (const netInfo of response) {\n const dnaId = new DnaId(args.dnas[i]!);\n //result[dnaHash] = [this._lastTimeQueriedMap[agent], netInfo];\n /* Store */\n const cellAddr = new CellAddress(dnaId, agentId);\n if (!this._networkInfoLogs[cellAddr.str]) {\n this._networkInfoLogs[cellAddr.str] = [];\n }\n this._networkInfoLogs[cellAddr.str]!.push([this._lastTimeQueriedMap.get(agentId)!, netInfo])\n /* */\n i += 1;\n }\n return response;\n }\n\n\n\n /** Store networkInfo calls */\n //private _lastTimeQueriedMap: Record<AgentPubKeyB64, Timestamp> = {};\n private _lastTimeQueriedMap: AgentIdMap<Timestamp> = new AgentIdMap();\n\n private _networkInfoLogs: Record<CellIdStr, [Timestamp, NetworkInfo][]> = {};\n\n override get networkInfoLogs(): Record<CellIdStr, [Timestamp, NetworkInfo][]> {return this._networkInfoLogs;}\n\n\n\n/** -- Creation -- */\n\n /** async Factory */\n static async new(port_or_socket: number | AppWebsocket, appId: InstalledAppId, adminUrl?: URL, defaultTimeout?: number): Promise<ConductorAppProxy> {\n const timeout = defaultTimeout ? defaultTimeout : 10 * 1000;\n if (typeof port_or_socket == 'object') {\n return ConductorAppProxy.fromSocket(port_or_socket, timeout);\n } else {\n let wsUrl = new URL(`ws://localhost:${port_or_socket}`);\n try {\n let token: AppAuthenticationToken | undefined = undefined;\n let adminWs: AdminWebsocket | undefined = undefined;\n if (adminUrl) {\n adminWs = await AdminWebsocket.connect({url: adminUrl});\n console.log({adminWs});\n const issued = await adminWs.issueAppAuthenticationToken({installed_app_id: appId});\n token = issued.token;\n }\n const options: AppWebsocketConnectionOptions = {\n url: wsUrl,\n defaultTimeout: timeout,\n };\n if (token) {\n options.token = token;\n }\n const appWs = await AppWebsocket.connect(options);\n const agentId = new AgentId(appWs.myPubKey);\n //console.log(\"appWs.myPubKey\", appWs.myPubKey, agentId);\n let conductor = new ConductorAppProxy(timeout, appId, agentId, adminWs);\n conductor._appWs = appWs;\n conductor._appWs.on('signal', (sig) => {conductor.onSignal(sig)});\n return conductor;\n } catch (e) {\n console.error(\"ConductorAppProxy initialization failed\", e)\n return Promise.reject(\"ConductorAppProxy initialization failed\");\n }\n }\n }\n\n\n /** */\n private static async fromSocket(appWebsocket: AppWebsocket, defaultTimeout: number): Promise<ConductorAppProxy> {\n try {\n let conductor = new ConductorAppProxy(defaultTimeout, appWebsocket.installedAppId, new AgentId(appWebsocket.myPubKey));\n conductor._appWs = appWebsocket;\n conductor._appWs.on('signal', (sig) => {conductor.onSignal(sig)})\n return conductor;\n } catch (e) {\n console.error(\"ConductorAppProxy initialization failed\", e)\n return Promise.reject(\"ConductorAppProxy initialization failed\");\n }\n }\n}\n\n"]}
1
+ {"version":3,"file":"ConductorAppProxy.js","sourceRoot":"","sources":["../src/ConductorAppProxy.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppInfoResponse,\n AppWebsocket,\n CallZomeRequest,\n InstalledAppId,\n CreateCloneCellRequest,\n DisableCloneCellRequest,\n EnableCloneCellRequest,\n ClonedCell,\n AppClient,\n AppEvents,\n SignalCb,\n AppNetworkInfoRequest,\n NetworkInfoResponse,\n AdminWebsocket,\n} from \"@holochain/client\";\nimport { UnsubscribeFunction } from \"emittery\";\nimport {AppProxy} from \"./AppProxy\";\nimport {AgentId} from \"./hash\";\nimport {AppWebsocketConnectionOptions} from \"@holochain/client/lib/api/app/types\";\nimport {AppAuthenticationToken} from \"@holochain/client/lib/api/admin/types\";\n\n\n/**\n * Creates, connects and holds an appWebsocket.\n * Creates and holds Cell proxies for this appWebsocket.\n * Maintains a mapping between CellIds and HCLs\n * Handles SignalHandlers per HCL\n * Stores appSignal logs\n * TODO Implement Singleton per App port?\n */\nexport class ConductorAppProxy extends AppProxy implements AppClient {\n\n /** Ctor */\n /*protected*/ constructor(defaultTimeout: number, appId: InstalledAppId, agentId: AgentId, adminWs?: AdminWebsocket) {\n super(defaultTimeout, appId, agentId, adminWs);\n }\n\n\n /** -- Fields -- */\n\n private _appWs!: AppWebsocket;\n\n\n /** -- Getters -- */\n\n ///** Check this after connecting since AppWebsocket can shamelessly override the provided args. */\n //get appIdOfShame(): InstalledAppId | undefined { return this._appWs.overrideInstalledAppId;}\n\n\n /** -- AppClient (Passthrough to appWebsocket) -- */\n\n override async callZome(req: CallZomeRequest, timeout?: number): Promise<unknown> {\n timeout = timeout ? timeout : this.defaultTimeout\n return this._appWs.callZome(req, timeout)\n }\n\n override async appInfo(): Promise<AppInfoResponse> {\n return this._appWs!.appInfo();\n }\n\n override on<Name extends keyof AppEvents>(\n eventName: Name | readonly Name[],\n listener: SignalCb\n ): UnsubscribeFunction {\n return this._appWs!.on(eventName, listener);\n }\n\n override async createCloneCell(request: CreateCloneCellRequest): Promise<ClonedCell> {\n //console.log(\"createCloneCell() called:\", request)\n return this._appWs!.createCloneCell(request);\n }\n\n override async enableCloneCell(request: EnableCloneCellRequest): Promise<ClonedCell> {\n //console.log(\"enableCloneCell() called:\", request)\n return this._appWs!.enableCloneCell(request);\n }\n\n override async disableCloneCell(request: DisableCloneCellRequest): Promise<void> {\n //console.log(\"disableCloneCell() called:\", request)\n return this._appWs!.disableCloneCell(request);\n }\n\n\n override async networkInfo(args: AppNetworkInfoRequest): Promise<NetworkInfoResponse> {\n return await this._appWs!.networkInfo(args);\n }\n\n\n\n /** -- Creation -- */\n\n /** async Factory */\n static async new(port_or_socket: number | AppWebsocket, appId: InstalledAppId, adminUrl?: URL, defaultTimeout?: number): Promise<ConductorAppProxy> {\n const timeout = defaultTimeout ? defaultTimeout : 10 * 1000;\n if (typeof port_or_socket == 'object') {\n return ConductorAppProxy.fromSocket(port_or_socket, timeout);\n } else {\n let wsUrl = new URL(`ws://localhost:${port_or_socket}`);\n try {\n let token: AppAuthenticationToken | undefined = undefined;\n let adminWs: AdminWebsocket | undefined = undefined;\n if (adminUrl) {\n adminWs = await AdminWebsocket.connect({url: adminUrl});\n console.log({adminWs});\n const issued = await adminWs.issueAppAuthenticationToken({installed_app_id: appId});\n token = issued.token;\n }\n const options: AppWebsocketConnectionOptions = {\n url: wsUrl,\n defaultTimeout: timeout,\n };\n if (token) {\n options.token = token;\n }\n const appWs = await AppWebsocket.connect(options);\n const agentId = new AgentId(appWs.myPubKey);\n //console.log(\"appWs.myPubKey\", appWs.myPubKey, agentId);\n let conductor = new ConductorAppProxy(timeout, appId, agentId, adminWs);\n conductor._appWs = appWs;\n conductor._appWs.on('signal', (sig) => {conductor.onSignal(sig)});\n return conductor;\n } catch (e) {\n console.error(\"ConductorAppProxy initialization failed\", e)\n return Promise.reject(\"ConductorAppProxy initialization failed\");\n }\n }\n }\n\n\n /** */\n private static async fromSocket(appWebsocket: AppWebsocket, defaultTimeout: number): Promise<ConductorAppProxy> {\n try {\n let conductor = new ConductorAppProxy(defaultTimeout, appWebsocket.installedAppId, new AgentId(appWebsocket.myPubKey));\n conductor._appWs = appWebsocket;\n conductor._appWs.on('signal', (sig) => {conductor.onSignal(sig)})\n return conductor;\n } catch (e) {\n console.error(\"ConductorAppProxy initialization failed\", e)\n return Promise.reject(\"ConductorAppProxy initialization failed\");\n }\n }\n}\n\n"]}
@@ -6,11 +6,10 @@ export declare enum DatumValidity {
6
6
  }
7
7
  export declare enum DatumStorageLocations {
8
8
  None = 0,
9
- Memory = 1,
10
- Disk = 2,
9
+ WebApp = 1,
10
+ Host = 4,
11
11
  SourceChain = 4,
12
- Cache = 8,
13
- Dht = 16
12
+ Dht = 8
14
13
  }
15
14
  export declare class DatumMap<K extends HoloHashB64, V> {
16
15
  _map: Map<K, [V, DatumValidity, DatumStorageLocations]>;
@@ -1 +1 @@
1
- {"version":3,"file":"datum-map.d.ts","sourceRoot":"","sources":["../src/datum-map.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAI3B,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAID,oBAAY,qBAAqB;IAC/B,IAAI,IAAI;IACR,MAAM,IAAS;IACf,IAAI,IAAS;IACb,WAAW,IAAS;IACpB,KAAK,IAAS;IACd,GAAG,KAAS;CACb;AAMD,qBAAa,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC;IAC5C,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC;gBAE5C,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAS1C,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,qBAAqB,CAAC,GAAG,SAAS;IAIzE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAId,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB;IAI7E,MAAM,CAAC,GAAG,EAAE,CAAC;IAIb,IAAI;IAIJ,MAAM;IAIN,OAAO;IAKP,KAAK;IAIL,OAAO,CACL,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC,KAAK,IAAI,EAC9F,OAAO,CAAC,EAAE,GAAG,GACZ,IAAI;IAMP,IAAI,IAAI,WAEP;IAMD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;CACF"}
1
+ {"version":3,"file":"datum-map.d.ts","sourceRoot":"","sources":["../src/datum-map.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAI3B,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAID,oBAAY,qBAAqB;IAC/B,IAAI,IAAI;IACR,MAAM,IAAS;IACf,IAAI,IAAS;IACb,WAAW,IAAS;IACpB,GAAG,IAAS;CACb;AAMD,qBAAa,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC;IAC5C,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC;gBAE5C,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAS1C,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,qBAAqB,CAAC,GAAG,SAAS;IAIzE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAId,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB;IAI7E,MAAM,CAAC,GAAG,EAAE,CAAC;IAIb,IAAI;IAIJ,MAAM;IAIN,OAAO;IAKP,KAAK;IAIL,OAAO,CACL,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC,KAAK,IAAI,EAC9F,OAAO,CAAC,EAAE,GAAG,GACZ,IAAI;IAMP,IAAI,IAAI,WAEP;IAMD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;CACF"}
package/dist/datum-map.js CHANGED
@@ -7,18 +7,17 @@ export var DatumValidity;
7
7
  export var DatumStorageLocations;
8
8
  (function (DatumStorageLocations) {
9
9
  DatumStorageLocations[DatumStorageLocations["None"] = 0] = "None";
10
- DatumStorageLocations[DatumStorageLocations["Memory"] = 1] = "Memory";
11
- DatumStorageLocations[DatumStorageLocations["Disk"] = 2] = "Disk";
10
+ DatumStorageLocations[DatumStorageLocations["WebApp"] = 1] = "WebApp";
11
+ DatumStorageLocations[DatumStorageLocations["Host"] = 4] = "Host";
12
12
  DatumStorageLocations[DatumStorageLocations["SourceChain"] = 4] = "SourceChain";
13
- DatumStorageLocations[DatumStorageLocations["Cache"] = 8] = "Cache";
14
- DatumStorageLocations[DatumStorageLocations["Dht"] = 16] = "Dht";
13
+ DatumStorageLocations[DatumStorageLocations["Dht"] = 8] = "Dht";
15
14
  })(DatumStorageLocations || (DatumStorageLocations = {}));
16
15
  export class DatumMap {
17
16
  constructor(initialEntries) {
18
17
  this._map = new Map();
19
18
  if (initialEntries) {
20
19
  for (const [key, value] of initialEntries) {
21
- this.set(key, value, DatumValidity.None, DatumStorageLocations.Memory);
20
+ this.set(key, value, DatumValidity.None, DatumStorageLocations.WebApp);
22
21
  }
23
22
  }
24
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"datum-map.js","sourceRoot":"","sources":["../src/datum-map.ts"],"names":[],"mappings":"AAOA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,oCAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAID,MAAM,CAAN,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAC/B,iEAAQ,CAAA;IACR,qEAAe,CAAA;IACf,iEAAa,CAAA;IACb,+EAAoB,CAAA;IACpB,mEAAc,CAAA;IACd,gEAAY,CAAA;AACd,CAAC,EAPW,qBAAqB,KAArB,qBAAqB,QAOhC;AAMD,MAAM,OAAO,QAAQ;IAGnB,YAAY,cAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,GAAM;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ,EAAE,QAAuB,EAAE,OAA8B;QAC3E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CACL,UAA8F,EAC9F,OAAa;QAEb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAMD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;CACF","sourcesContent":["\nimport {\n HoloHashB64,\n} from \"@holochain/client\";\n\n\n/** */\nexport enum DatumValidity {\n None = \"None\",\n Self = \"Self\",\n Network = \"Network\",\n}\n\n\n/** */\nexport enum DatumStorageLocations {\n None = 0,\n Memory = 1 << 0,\n Disk = 1 << 1,\n SourceChain = 1 << 2,\n Cache = 1 << 3,\n Dht = 1 << 4,\n}\n\n\n/**\n *\n */\nexport class DatumMap<K extends HoloHashB64, V> {\n _map: Map<K, [V, DatumValidity, DatumStorageLocations]>;\n\n constructor(initialEntries?: Array<[K, V]>) {\n this._map = new Map();\n if (initialEntries) {\n for (const [key, value] of initialEntries) {\n this.set(key, value, DatumValidity.None, DatumStorageLocations.Memory);\n }\n }\n }\n\n has(key: K): boolean {\n return this._map.has(key);\n }\n\n getDetails(key: K): [V, DatumValidity, DatumStorageLocations] | undefined {\n return this._map.get(key);\n }\n\n get(key: K): V {\n return this._map.get(key)![0];\n }\n\n set(key: K, value: V, validity: DatumValidity, storage: DatumStorageLocations) {\n this._map.set(key, [value, validity, storage]);\n }\n\n delete(key: K) {\n return this._map.delete(key);\n }\n\n keys() {\n return this._map.keys()\n }\n\n values() {\n return Array.from(this._map.values()).map((tuple) => tuple[0]);\n }\n\n entries() {\n return Array.from(this._map.entries())\n .map(([h, v]) => [h, v[0]] as [K, V]);\n }\n\n clear() {\n return this._map.clear();\n }\n\n forEach(\n callbackfn: (value: V, key: K, map: Map<K, [V, DatumValidity, DatumStorageLocations]>) => void,\n thisArg?: any\n ): void {\n return this._map.forEach((value, key) => {\n callbackfn(value[0], key, this._map);\n }, thisArg);\n }\n\n get size() {\n return this._map.size;\n }\n\n // [Symbol.iterator](): IterableIterator<[K, V]> {\n // return this.entries();\n // }\n\n get [Symbol.toStringTag](): string {\n return this._map[Symbol.toStringTag];\n }\n}\n\n// export class EntryHashMap<T> extends DatumMap<EntryHashB64, T> {}\n// export class ActionHashMap<T> extends DatumMap<ActionHashB64, T> {}\n// export class AgentPubKeyMap<T> extends DatumMap<AgentPubKeyB64, T> {}\n// export class DnaHashMap<T> extends DatumMap<DnaHashB64, T> {}\n"]}
1
+ {"version":3,"file":"datum-map.js","sourceRoot":"","sources":["../src/datum-map.ts"],"names":[],"mappings":"AAOA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,oCAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAID,MAAM,CAAN,IAAY,qBAMX;AAND,WAAY,qBAAqB;IAC/B,iEAAQ,CAAA;IACR,qEAAe,CAAA;IACf,iEAAa,CAAA;IACb,+EAAoB,CAAA;IACpB,+DAAY,CAAA;AACd,CAAC,EANW,qBAAqB,KAArB,qBAAqB,QAMhC;AAMD,MAAM,OAAO,QAAQ;IAGnB,YAAY,cAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,GAAM;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ,EAAE,QAAuB,EAAE,OAA8B;QAC3E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CACL,UAA8F,EAC9F,OAAa;QAEb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAMD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;CACF","sourcesContent":["\nimport {\n HoloHashB64,\n} from \"@holochain/client\";\n\n\n/** */\nexport enum DatumValidity {\n None = \"None\",\n Self = \"Self\",\n Network = \"Network\", // Received all required validation receipts from peers\n}\n\n\n/** */\nexport enum DatumStorageLocations {\n None = 0,\n WebApp = 1 << 0, // RAM (webapp live data)\n Host = 1 << 2, // store in host's cache/storage system (ex: Moss)\n SourceChain = 1 << 2, // stored in local source-chain\n Dht = 1 << 3, // stored in local DHT storage?\n}\n\n\n/**\n *\n */\nexport class DatumMap<K extends HoloHashB64, V> {\n _map: Map<K, [V, DatumValidity, DatumStorageLocations]>;\n\n constructor(initialEntries?: Array<[K, V]>) {\n this._map = new Map();\n if (initialEntries) {\n for (const [key, value] of initialEntries) {\n this.set(key, value, DatumValidity.None, DatumStorageLocations.WebApp);\n }\n }\n }\n\n has(key: K): boolean {\n return this._map.has(key);\n }\n\n getDetails(key: K): [V, DatumValidity, DatumStorageLocations] | undefined {\n return this._map.get(key);\n }\n\n get(key: K): V {\n return this._map.get(key)![0];\n }\n\n set(key: K, value: V, validity: DatumValidity, storage: DatumStorageLocations) {\n this._map.set(key, [value, validity, storage]);\n }\n\n delete(key: K) {\n return this._map.delete(key);\n }\n\n keys() {\n return this._map.keys()\n }\n\n values() {\n return Array.from(this._map.values()).map((tuple) => tuple[0]);\n }\n\n entries() {\n return Array.from(this._map.entries())\n .map(([h, v]) => [h, v[0]] as [K, V]);\n }\n\n clear() {\n return this._map.clear();\n }\n\n forEach(\n callbackfn: (value: V, key: K, map: Map<K, [V, DatumValidity, DatumStorageLocations]>) => void,\n thisArg?: any\n ): void {\n return this._map.forEach((value, key) => {\n callbackfn(value[0], key, this._map);\n }, thisArg);\n }\n\n get size() {\n return this._map.size;\n }\n\n // [Symbol.iterator](): IterableIterator<[K, V]> {\n // return this.entries();\n // }\n\n get [Symbol.toStringTag](): string {\n return this._map[Symbol.toStringTag];\n }\n}\n\n// export class EntryHashMap<T> extends DatumMap<EntryHashB64, T> {}\n// export class ActionHashMap<T> extends DatumMap<ActionHashB64, T> {}\n// export class AgentPubKeyMap<T> extends DatumMap<AgentPubKeyB64, T> {}\n// export class DnaHashMap<T> extends DatumMap<DnaHashB64, T> {}\n"]}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from "./ExternalAppProxy";
4
4
  export * from "./CellProxy";
5
5
  export * from "./ZomeProxy";
6
6
  export * from "./utils";
7
+ export * from "./ringBuffer";
7
8
  export * from "./types";
8
9
  export * from "./hcl";
9
10
  export * from "./mixins";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export * from "./ExternalAppProxy";
4
4
  export * from "./CellProxy";
5
5
  export * from "./ZomeProxy";
6
6
  export * from "./utils";
7
+ export * from "./ringBuffer";
7
8
  export * from "./types";
8
9
  export * from "./hcl";
9
10
  export * from "./mixins";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./AppProxy\";\nexport * from \"./ConductorAppProxy\";\nexport * from \"./ExternalAppProxy\";\nexport * from \"./CellProxy\";\nexport * from \"./ZomeProxy\";\nexport * from \"./utils\";\nexport * from \"./types\";\nexport * from \"./hcl\";\nexport * from \"./mixins\";\nexport * from \"./cell\";\nexport * from \"./pretty\";\nexport * from \"./time-map\";\nexport * from \"./hash\";\nexport * from \"./holochain-id-map\";\nexport * from \"./zomeSignals.types\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./AppProxy\";\nexport * from \"./ConductorAppProxy\";\nexport * from \"./ExternalAppProxy\";\nexport * from \"./CellProxy\";\nexport * from \"./ZomeProxy\";\nexport * from \"./utils\";\nexport * from \"./ringBuffer\";\nexport * from \"./types\";\nexport * from \"./hcl\";\nexport * from \"./mixins\";\nexport * from \"./cell\";\nexport * from \"./pretty\";\nexport * from \"./time-map\";\nexport * from \"./hash\";\nexport * from \"./holochain-id-map\";\nexport * from \"./zomeSignals.types\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pretty.js","sourceRoot":"","sources":["../src/pretty.ts"],"names":[],"mappings":"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","sourcesContent":["import {SignalLog} from \"./AppProxy\";\nimport {AppInfo, CellType} from \"@holochain/client\";\nimport {BaseRoleName, CellsForRole} from \"./types\";\nimport {intoStem} from \"./cell\";\nimport {enc64} from \"./hash\";\nimport {StateChange, StateChangeType} from \"./zomeSignals.types\";\n\n\nconst zeroPad = (num: number, places: number) => String(num).padStart(places, '0')\n\nexport function prettyDuration(date: Date): string {\n return date.getSeconds() + \".\" + zeroPad(date.getMilliseconds(), 3)\n}\n\n/** */\nexport function prettyDate(date: Date): string {\n return \"\"\n + zeroPad(date.getHours(), 2)\n + \":\" + zeroPad(date.getMinutes(), 2)\n + \":\" + zeroPad(date.getSeconds(), 2)\n + \".\" + zeroPad(date.getMilliseconds(), 3);\n}\n\n\nexport function prettySignalLogs(signalLogs: SignalLog[]) {\n return signalLogs.map((log) => {\n return {timestamp: prettyDate(new Date(log.ts)), dnaHash: log.cellAddr.dnaId.short, zome: log.zomeName, type: log.type, payload: log.zomeSignal};\n })\n}\n\n\n/** */\nexport function printAppInfo(appInfo: AppInfo): string {\n let print = `Happ \"${appInfo.installed_app_id}\" info: (status: ${JSON.stringify(appInfo.status)})`;\n for (const [roleName, cellInfos] of Object.entries(appInfo.cell_info)) {\n for (const cellInfo of Object.values(cellInfos)) {\n if (CellType.Stem in cellInfo) {\n const stem = intoStem(cellInfo)!;\n print += `\\n - ${roleName}.${stem.name? stem.name : \"unnamed\"}: ${enc64(stem.dna)} (stem)`;\n continue;\n }\n if (CellType.Provisioned in cellInfo) {\n const cell = cellInfo.provisioned;\n print += `\\n - ${roleName}: ${cell.name} | ${enc64(cell.cell_id[0])}`;\n continue;\n }\n if (CellType.Cloned in cellInfo) {\n const cell = cellInfo.cloned;\n print += `\\n - ${roleName}.${cell.clone_id}: ${cell.name} | ${enc64(cell.cell_id[0])}`;\n continue;\n }\n }\n }\n return print;\n}\n\n\n/** */\nexport function printCellsForRole(baseRoleName: BaseRoleName, cells: CellsForRole): string {\n let print = `CellsForRole \"${baseRoleName}\": (${enc64(cells.provisioned.cell_id[1])})\\n`;\n print += ` - Provisioned: ${cells.provisioned.name} | ${enc64(cells.provisioned.cell_id[0])}\\n`;\n print += ` - Clones : ${Object.values(cells.clones).length}\\n`;\n for (const [cloneId, clone] of Object.entries(cells.clones)) {\n print += ` - (${clone.enabled? \"enabled\" : \"disabled\"})${cloneId}: ${clone.name} | ${enc64(clone.cell_id[0])}\\n`;\n }\n return print;\n}\n\n\n\n/** */\nexport function prettyState(state: StateChange): string {\n if (StateChangeType.Create in state) {\n return state.Create? \"Create NEW\" : \"Create\";\n }\n if (StateChangeType.Update in state) {\n return state.Update? \"Update NEW\" : \"Update\";\n }\n if (StateChangeType.Delete in state) {\n return state.Delete? \"Delete NEW\" : \"Delete\";\n }\n throw Error(\"Unknown stateChange type\");\n}\n"]}
1
+ {"version":3,"file":"pretty.js","sourceRoot":"","sources":["../src/pretty.ts"],"names":[],"mappings":"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","sourcesContent":["import {SignalLog} from \"./AppProxy\";\r\nimport {AppInfo, CellType} from \"@holochain/client\";\r\nimport {BaseRoleName, CellsForRole} from \"./types\";\r\nimport {intoStem} from \"./cell\";\r\nimport {enc64} from \"./hash\";\r\nimport {StateChange, StateChangeType} from \"./zomeSignals.types\";\r\n\r\n\r\nconst zeroPad = (num: number, places: number) => String(num).padStart(places, '0')\r\n\r\nexport function prettyDuration(date: Date): string {\r\n return date.getSeconds() + \".\" + zeroPad(date.getMilliseconds(), 3)\r\n}\r\n\r\n/** */\r\nexport function prettyDate(date: Date): string {\r\n return \"\"\r\n + zeroPad(date.getHours(), 2)\r\n + \":\" + zeroPad(date.getMinutes(), 2)\r\n + \":\" + zeroPad(date.getSeconds(), 2)\r\n + \".\" + zeroPad(date.getMilliseconds(), 3);\r\n}\r\n\r\n\r\nexport function prettySignalLogs(signalLogs: SignalLog[]) {\r\n return signalLogs.map((log) => {\r\n return {timestamp: prettyDate(new Date(log.ts)), dnaHash: log.cellAddr.dnaId.short, zome: log.zomeName, type: log.type, payload: log.zomeSignal};\r\n })\r\n}\r\n\r\n\r\n/** */\r\nexport function printAppInfo(appInfo: AppInfo): string {\r\n let print = `Happ \"${appInfo.installed_app_id}\" info: (status: ${JSON.stringify(appInfo.status)})`;\r\n for (const [roleName, cellInfos] of Object.entries(appInfo.cell_info)) {\r\n for (const cellInfo of Object.values(cellInfos)) {\r\n if (CellType.Stem in cellInfo) {\r\n const stem = intoStem(cellInfo)!;\r\n print += `\\n - ${roleName}.${stem.name? stem.name : \"unnamed\"}: ${enc64(stem.dna)} (stem)`;\r\n continue;\r\n }\r\n if (CellType.Provisioned in cellInfo) {\r\n const cell = cellInfo.provisioned;\r\n print += `\\n - ${roleName}: ${cell.name} | ${enc64(cell.cell_id[0])}`;\r\n continue;\r\n }\r\n if (CellType.Cloned in cellInfo) {\r\n const cell = cellInfo.cloned;\r\n print += `\\n - ${roleName}.${cell.clone_id}: ${cell.name} | ${enc64(cell.cell_id[0])}`;\r\n continue;\r\n }\r\n }\r\n }\r\n return print;\r\n}\r\n\r\n\r\n/** */\r\nexport function printCellsForRole(baseRoleName: BaseRoleName, cells: CellsForRole): string {\r\n let print = `CellsForRole \"${baseRoleName}\": (${enc64(cells.provisioned.cell_id[1])})\\n`;\r\n print += ` - Provisioned: ${cells.provisioned.name} | ${enc64(cells.provisioned.cell_id[0])}\\n`;\r\n print += ` - Clones : ${Object.values(cells.clones).length}\\n`;\r\n for (const [cloneId, clone] of Object.entries(cells.clones)) {\r\n print += ` - (${clone.enabled? \"enabled\" : \"disabled\"})${cloneId}: ${clone.name} | ${enc64(clone.cell_id[0])}\\n`;\r\n }\r\n return print;\r\n}\r\n\r\n\r\n\r\n/** */\r\nexport function prettyState(state: StateChange): string {\r\n if (StateChangeType.Create in state) {\r\n return state.Create? \"Create NEW\" : \"Create\";\r\n }\r\n if (StateChangeType.Update in state) {\r\n return state.Update? \"Update NEW\" : \"Update\";\r\n }\r\n if (StateChangeType.Delete in state) {\r\n return state.Delete? \"Delete NEW\" : \"Delete\";\r\n }\r\n throw Error(\"Unknown stateChange type\");\r\n}\r\n"]}
@@ -0,0 +1,24 @@
1
+ export declare class RingBuffer<T> {
2
+ static fromArray<T>(data: T[], size?: number): RingBuffer<T>;
3
+ protected buffer: T[];
4
+ protected size: number;
5
+ protected pos: number;
6
+ constructor(size: number);
7
+ getSize(): number;
8
+ getPos(): number;
9
+ getBufferLength(): number;
10
+ add(...items: T[]): void;
11
+ get(index: number): T | undefined;
12
+ getFirst(): T | undefined;
13
+ getLast(): T | undefined;
14
+ getFirstN(n: number): T[];
15
+ getLastN(n: number): T[];
16
+ remove(index: number, count?: number): T[];
17
+ toArray(): T[];
18
+ fromArray(data: T[], resize?: boolean): void;
19
+ clear(): void;
20
+ resize(newSize: number): void;
21
+ isFull(): boolean;
22
+ isEmpty(): boolean;
23
+ }
24
+ //# sourceMappingURL=ringBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ringBuffer.d.ts","sourceRoot":"","sources":["../src/ringBuffer.ts"],"names":[],"mappings":"AAGA,qBAAa,UAAU,CAAC,CAAC;WAMT,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,SAAI,GAAG,UAAU,CAAC,CAAC,CAAC;IAM9D,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAM;IAC3B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,GAAG,SAAK;gBAMN,IAAI,EAAE,MAAM;IAUjB,OAAO,IAAI,MAAM;IAOjB,MAAM,IAAI,MAAM;IAQhB,eAAe,IAAI,MAAM;IAQzB,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI;IAWxB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAoBjC,QAAQ,IAAI,CAAC,GAAG,SAAS;IAQzB,OAAO,IAAI,CAAC,GAAG,SAAS;IAQxB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAczB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAexB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,CAAC,EAAE;IAiCrC,OAAO,IAAI,CAAC,EAAE;IASd,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,UAAQ,GAAG,IAAI;IAoB1C,KAAK,IAAI,IAAI;IASb,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAmB7B,MAAM,IAAI,OAAO;IAOjB,OAAO,IAAI,OAAO;CAG1B"}
@@ -0,0 +1,119 @@
1
+ export class RingBuffer {
2
+ static fromArray(data, size = 0) {
3
+ const ringBuffer = new RingBuffer(size);
4
+ ringBuffer.fromArray(data, size === 0);
5
+ return ringBuffer;
6
+ }
7
+ constructor(size) {
8
+ this.buffer = [];
9
+ this.pos = 0;
10
+ if (size < 0) {
11
+ throw new RangeError('Invalid size.');
12
+ }
13
+ this.size = size;
14
+ }
15
+ getSize() {
16
+ return this.size;
17
+ }
18
+ getPos() {
19
+ return this.pos;
20
+ }
21
+ getBufferLength() {
22
+ return this.buffer.length;
23
+ }
24
+ add(...items) {
25
+ items.forEach((item) => {
26
+ this.buffer[this.pos] = item;
27
+ this.pos = (this.pos + 1) % this.size;
28
+ });
29
+ }
30
+ get(index) {
31
+ if (index < 0) {
32
+ index += this.buffer.length;
33
+ }
34
+ if (index < 0 || index > this.buffer.length) {
35
+ return undefined;
36
+ }
37
+ if (this.buffer.length < this.size) {
38
+ return this.buffer[index];
39
+ }
40
+ return this.buffer[(this.pos + index) % this.size];
41
+ }
42
+ getFirst() {
43
+ return this.get(0);
44
+ }
45
+ getLast() {
46
+ return this.get(-1);
47
+ }
48
+ getFirstN(n) {
49
+ if (n === 0) {
50
+ return [];
51
+ }
52
+ if (n < 0) {
53
+ return this.getLastN(-n);
54
+ }
55
+ return this.toArray().slice(0, n);
56
+ }
57
+ getLastN(n) {
58
+ if (n === 0) {
59
+ return [];
60
+ }
61
+ if (n < 0) {
62
+ return this.getFirstN(-n);
63
+ }
64
+ return this.toArray().slice(-n);
65
+ }
66
+ remove(index, count = 1) {
67
+ if (index < 0) {
68
+ index += this.buffer.length;
69
+ }
70
+ if (index < 0 || index > this.buffer.length) {
71
+ return [];
72
+ }
73
+ const arr = this.toArray();
74
+ const removedItems = arr.splice(index, count);
75
+ this.fromArray(arr);
76
+ return removedItems;
77
+ }
78
+ toArray() {
79
+ return this.buffer.slice(this.pos).concat(this.buffer.slice(0, this.pos));
80
+ }
81
+ fromArray(data, resize = false) {
82
+ if (!Array.isArray(data)) {
83
+ throw new TypeError('Input value is not an array.');
84
+ }
85
+ if (resize) {
86
+ this.resize(data.length);
87
+ }
88
+ if (this.size === 0) {
89
+ return;
90
+ }
91
+ this.buffer = data.slice(-this.size);
92
+ this.pos = this.buffer.length % this.size;
93
+ }
94
+ clear() {
95
+ this.buffer = [];
96
+ this.pos = 0;
97
+ }
98
+ resize(newSize) {
99
+ if (newSize < 0) {
100
+ throw new RangeError('The size does not allow negative values.');
101
+ }
102
+ if (newSize === 0) {
103
+ this.clear();
104
+ }
105
+ else if (newSize !== this.size) {
106
+ const currentBuffer = this.toArray();
107
+ this.fromArray(currentBuffer.slice(-newSize));
108
+ this.pos = this.buffer.length % newSize;
109
+ }
110
+ this.size = newSize;
111
+ }
112
+ isFull() {
113
+ return this.buffer.length === this.size;
114
+ }
115
+ isEmpty() {
116
+ return this.buffer.length === 0;
117
+ }
118
+ }
119
+ //# sourceMappingURL=ringBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ringBuffer.js","sourceRoot":"","sources":["../src/ringBuffer.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,UAAU;IAMd,MAAM,CAAC,SAAS,CAAI,IAAS,EAAE,IAAI,GAAG,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAI,IAAI,CAAC,CAAC;QAC3C,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;QACvC,OAAO,UAAU,CAAC;IACpB,CAAC;IAUD,YAAY,IAAY;QARd,WAAM,GAAQ,EAAE,CAAC;QAEjB,QAAG,GAAG,CAAC,CAAC;QAOhB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAKM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAKM,MAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAMM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAMM,GAAG,CAAC,GAAG,KAAU;QACtB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAMM,GAAG,CAAC,KAAa;QACtB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAMM,QAAQ;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAMM,OAAO;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAMM,SAAS,CAAC,CAAS;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAMM,QAAQ,CAAC,CAAS;QACvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAOM,MAAM,CAAC,KAAa,EAAE,KAAK,GAAG,CAAC;QACpC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;IAoBM,OAAO;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IAOM,SAAS,CAAC,IAAS,EAAE,MAAM,GAAG,KAAK;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;IAC5C,CAAC;IAKM,KAAK;QACV,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACf,CAAC;IAMM,MAAM,CAAC,OAAe;QAC3B,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACtB,CAAC;IAKM,MAAM;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC;IAC1C,CAAC;IAKM,OAAO;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAClC,CAAC;CACF","sourcesContent":["/**\r\n * from https://github.com/domske/ring-buffer-ts\r\n */\r\nexport class RingBuffer<T> {\r\n /**\r\n * Create a new ring buffer from an array.\r\n * @param data Array to import.\r\n * @param size Optional size. Otherwise same size as the input data array.\r\n */\r\n public static fromArray<T>(data: T[], size = 0): RingBuffer<T> {\r\n const ringBuffer = new RingBuffer<T>(size);\r\n ringBuffer.fromArray(data, size === 0);\r\n return ringBuffer;\r\n }\r\n\r\n protected buffer: T[] = [];\r\n protected size: number;\r\n protected pos = 0;\r\n\r\n /**\r\n * Creates a new ring buffer.\r\n * @param size Maximum size of the circular buffer.\r\n */\r\n constructor(size: number) {\r\n if (size < 0) {\r\n throw new RangeError('Invalid size.');\r\n }\r\n this.size = size;\r\n }\r\n\r\n /**\r\n * Returns the maximum size.\r\n */\r\n public getSize(): number {\r\n return this.size;\r\n }\r\n\r\n /**\r\n * Returns the next internal index position.\r\n */\r\n public getPos(): number {\r\n return this.pos;\r\n }\r\n\r\n /**\r\n * Returns the current buffer size.\r\n * The underlying array length.\r\n */\r\n public getBufferLength(): number {\r\n return this.buffer.length;\r\n }\r\n\r\n /**\r\n * Pushes new items to this buffer. (like Array#push)\r\n * @param items Items to push to this buffer.\r\n */\r\n public add(...items: T[]): void {\r\n items.forEach((item) => {\r\n this.buffer[this.pos] = item;\r\n this.pos = (this.pos + 1) % this.size;\r\n });\r\n }\r\n\r\n /**\r\n * Returns the item on specific index.\r\n * @param index Index of item.\r\n */\r\n public get(index: number): T | undefined {\r\n if (index < 0) {\r\n index += this.buffer.length;\r\n }\r\n\r\n if (index < 0 || index > this.buffer.length) {\r\n return undefined;\r\n }\r\n\r\n if (this.buffer.length < this.size) {\r\n return this.buffer[index];\r\n }\r\n\r\n return this.buffer[(this.pos + index) % this.size];\r\n }\r\n\r\n /**\r\n * Returns the first item.\r\n * Same as #get(0).\r\n */\r\n public getFirst(): T | undefined {\r\n return this.get(0);\r\n }\r\n\r\n /**\r\n * Returns the last item.\r\n * Same as #get(-1) or #get(length - 1).\r\n */\r\n public getLast(): T | undefined {\r\n return this.get(-1);\r\n }\r\n\r\n /**\r\n * Return the first `n` items as an array.\r\n * @param n Number of items to return.\r\n */\r\n public getFirstN(n: number): T[] {\r\n if (n === 0) {\r\n return [];\r\n }\r\n if (n < 0) {\r\n return this.getLastN(-n);\r\n }\r\n return this.toArray().slice(0, n);\r\n }\r\n\r\n /**\r\n * Return the last `n` items as an array.\r\n * @param n Number of items to return.\r\n */\r\n public getLastN(n: number): T[] {\r\n if (n === 0) {\r\n return [];\r\n }\r\n if (n < 0) {\r\n return this.getFirstN(-n);\r\n }\r\n return this.toArray().slice(-n);\r\n }\r\n\r\n /**\r\n * Removes one or more items form the buffer.\r\n * @param index Start index of the item to remove.\r\n * @param count The count of items to remove. (default: 1)\r\n */\r\n public remove(index: number, count = 1): T[] {\r\n if (index < 0) {\r\n index += this.buffer.length;\r\n }\r\n\r\n if (index < 0 || index > this.buffer.length) {\r\n return [];\r\n }\r\n\r\n const arr = this.toArray();\r\n const removedItems = arr.splice(index, count);\r\n this.fromArray(arr);\r\n return removedItems;\r\n }\r\n\r\n // /**\r\n // * Removes the first item. Like #remove(0).\r\n // */\r\n // public removeFirst(): T {\r\n //\r\n // return this.remove(0)[0];\r\n // }\r\n //\r\n // /**\r\n // * Removes the last item. Like #remove(-1).\r\n // */\r\n // public removeLast(): T {\r\n // return this.remove(-1)[0];\r\n // }\r\n\r\n /**\r\n * Converts the ring buffer to a JavaScript standard array.\r\n */\r\n public toArray(): T[] {\r\n return this.buffer.slice(this.pos).concat(this.buffer.slice(0, this.pos));\r\n }\r\n\r\n /**\r\n * Imports an array to this buffer. (overwrites)\r\n * @param data JavaScript standard array.\r\n * @param resize If true, sets the maximum size to the input data array length.\r\n */\r\n public fromArray(data: T[], resize = false): void {\r\n if (!Array.isArray(data)) {\r\n throw new TypeError('Input value is not an array.');\r\n }\r\n\r\n if (resize) {\r\n this.resize(data.length);\r\n }\r\n\r\n if (this.size === 0) {\r\n return;\r\n }\r\n\r\n this.buffer = data.slice(-this.size);\r\n this.pos = this.buffer.length % this.size;\r\n }\r\n\r\n /**\r\n * Clears the the buffer. Removes all items.\r\n */\r\n public clear(): void {\r\n this.buffer = [];\r\n this.pos = 0;\r\n }\r\n\r\n /**\r\n * Resizes the circular buffer.\r\n * @param newSize The new maximum size.\r\n */\r\n public resize(newSize: number): void {\r\n if (newSize < 0) {\r\n throw new RangeError('The size does not allow negative values.');\r\n }\r\n\r\n if (newSize === 0) {\r\n this.clear();\r\n } else if (newSize !== this.size) {\r\n const currentBuffer = this.toArray();\r\n this.fromArray(currentBuffer.slice(-newSize));\r\n this.pos = this.buffer.length % newSize;\r\n }\r\n\r\n this.size = newSize;\r\n }\r\n\r\n /**\r\n * Returns true if the maximum size is reached.\r\n */\r\n public isFull(): boolean {\r\n return this.buffer.length === this.size;\r\n }\r\n\r\n /**\r\n * Returns true if the buffer is empty.\r\n */\r\n public isEmpty(): boolean {\r\n return this.buffer.length === 0;\r\n }\r\n}\r\n"]}
@@ -6,6 +6,11 @@ export interface CastTipInput {
6
6
  tip: TipProtocol;
7
7
  peers: AgentArray[];
8
8
  }
9
+ export declare enum ValidatedBy {
10
+ None = "None",
11
+ Me = "Me",
12
+ Network = "Network"
13
+ }
9
14
  export declare enum StateChangeType {
10
15
  Create = "Create",
11
16
  Update = "Update",
@@ -24,9 +29,11 @@ export type StateChange = StateChangeVariantCreate | StateChangeVariantUpdate |
24
29
  export interface LinkPulse {
25
30
  link: Link;
26
31
  state: StateChange;
32
+ validation: ValidatedBy;
27
33
  }
28
34
  export interface EntryPulse {
29
35
  state: StateChange;
36
+ validation: ValidatedBy;
30
37
  orig_ah?: ActionArray;
31
38
  ah: ActionArray;
32
39
  eh: EntryArray;
@@ -1 +1 @@
1
- {"version":3,"file":"zomeSignals.types.d.ts","sourceRoot":"","sources":["../src/zomeSignals.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zomeSignals.types.d.ts","sourceRoot":"","sources":["../src/zomeSignals.types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ export var ValidatedBy;
2
+ (function (ValidatedBy) {
3
+ ValidatedBy["None"] = "None";
4
+ ValidatedBy["Me"] = "Me";
5
+ ValidatedBy["Network"] = "Network";
6
+ })(ValidatedBy || (ValidatedBy = {}));
1
7
  export var StateChangeType;
2
8
  (function (StateChangeType) {
3
9
  StateChangeType["Create"] = "Create";
@@ -1 +1 @@
1
- {"version":3,"file":"zomeSignals.types.js","sourceRoot":"","sources":["../src/zomeSignals.types.ts"],"names":[],"mappings":"AAgFA,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IAC1B,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;AAClB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AA8BD,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IACjC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,uCAAa,CAAA;IACb,qCAAW,CAAA;AACZ,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AA+CD,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IAC1B,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,gCAAa,CAAA;IACb,8BAAW,CAAA;AACZ,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B","sourcesContent":["/* This file is generated by zits. Do not edit manually */\n\n// @ts-ignore\nimport {\n// @ts-ignore\nWebsocketConnectionOptions, KitsuneAgent, KitsuneSpace, HoloHashB64, AgentPubKeyB64, DnaHashB64, WasmHashB64, EntryHashB64, ActionHashB64, AnyDhtHashB64, InstalledAppId, Signature, CellId, DnaProperties, RoleName, InstalledCell, Timestamp, Duration, HoloHashed, NetworkInfo, FetchPoolInfo,\n/** hdk/action.ts */\n// @ts-ignore\nSignedActionHashed, RegisterAgentActivity, ActionHashed, ActionType, Action, NewEntryAction, Dna, AgentValidationPkg, InitZomesComplete, CreateLink, DeleteLink, OpenChain, CloseChain, Update, Delete, Create,\n/** hdk/capabilities.ts */\n// @ts-ignore\nCapSecret, CapClaim, GrantedFunctionsType, GrantedFunctions, ZomeCallCapGrant, CapAccessType, CapAccess, CapGrant,\n///** hdk/countersigning.ts */\n//CounterSigningSessionData,\n//PreflightRequest,\n//CounterSigningSessionTimes,\n//ActionBase,\n//CounterSigningAgents,\n//PreflightBytes,\n//Role,\n//CountersigningAgentState,\n/** hdk/dht-ops.ts */\n// @ts-ignore\nDhtOpType, DhtOp, getDhtOpType, getDhtOpAction, getDhtOpEntry, getDhtOpSignature,\n/** hdk/entry.ts */\n// @ts-ignore\nEntryVisibility, AppEntryDef, EntryType, EntryContent, Entry,\n/** hdk/record.ts */\n// @ts-ignore\nRecord as HcRecord, RecordEntry as HcRecordEntry,\n/** hdk/link.ts */\n//AnyLinkableHash,\n// @ts-ignore\nZomeIndex, LinkType, LinkTag, RateWeight, RateBucketId, RateUnits, Link,\n/** api/admin/types.ts */\n// @ts-ignore\nInstalledAppInfoStatus, DeactivationReason, DisabledAppReason, StemCell, ProvisionedCell, ClonedCell, CellType, CellInfo, AppInfo, MembraneProof, FunctionName, ZomeName, ZomeDefinition, IntegrityZome, CoordinatorZome, DnaDefinition, ResourceBytes, ResourceMap, CellProvisioningStrategy, CellProvisioning, DnaVersionSpec, DnaVersionFlexible, AppRoleDnaManifest, AppRoleManifest, AppManifest, AppBundle, AppBundleSource, NetworkSeed, ZomeLocation,\n} from '@holochain/client';\n\n\n/// Simple Hashes\n// @ts-ignore\ntype AgentArray = Uint8Array;\n// @ts-ignore\ntype DnaArray = Uint8Array;\n// @ts-ignore\ntype WasmArray = Uint8Array;\n// @ts-ignore\ntype EntryArray = Uint8Array;\n// @ts-ignore\ntype ActionArray = Uint8Array;\n// @ts-ignore\ntype AnyDhtArray = Uint8Array;\n// @ts-ignore\ntype AnyLinkableArray = Uint8Array;\n// @ts-ignore\ntype ExternalArray = Uint8Array;\n\n// @ts-ignore\nimport {\n/** Common */\n// @ts-ignore\nDhtOpHashB64, DhtOpHash,\n/** DnaFile */\n// @ts-ignore\nDnaFile, DnaDef, Zomes, WasmCode,\n/** entry-details */\n// @ts-ignore\nEntryDetails, RecordDetails, Details, DetailsType, EntryDhtStatus,\n/** Validation */\n// @ts-ignore\nValidationStatus, ValidationReceipt,\n} from '@holochain-open-dev/core-types';\n\nexport interface CastTipInput {\n tip: TipProtocol\n peers: AgentArray[]\n}\n\n/** Bool: True if state change just happened (real-time) */\nexport enum StateChangeType {\n\tCreate = 'Create',\n\tUpdate = 'Update',\n\tDelete = 'Delete',\n}\nexport type StateChangeVariantCreate = {Create: boolean}\nexport type StateChangeVariantUpdate = {Update: boolean}\nexport type StateChangeVariantDelete = {Delete: boolean}\nexport type StateChange = \n | StateChangeVariantCreate | StateChangeVariantUpdate | StateChangeVariantDelete;\n\nexport interface LinkPulse {\n link: Link\n state: StateChange\n}\n\nexport interface EntryPulse {\n state: StateChange\n orig_ah?: ActionArray\n ah: ActionArray\n eh: EntryArray\n ts: Timestamp\n author: AgentArray\n def: AppEntryDef\n bytes: Uint8Array\n}\n\n/** */\nexport interface ZomeSignal {\n from: AgentArray\n pulses: ZomeSignalProtocol[]\n}\n\n/** */\nexport enum ZomeSignalProtocolType {\n\tSystem = 'System',\n\tEntry = 'Entry',\n\tLink = 'Link',\n\tTip = 'Tip',\n}\nexport type ZomeSignalProtocolVariantSystem = {System: SystemSignalProtocol}\nexport type ZomeSignalProtocolVariantEntry = {Entry: EntryPulse}\nexport type ZomeSignalProtocolVariantLink = {Link: LinkPulse}\nexport type ZomeSignalProtocolVariantTip = {Tip: TipProtocol}\nexport type ZomeSignalProtocol = \n | ZomeSignalProtocolVariantSystem | ZomeSignalProtocolVariantEntry | ZomeSignalProtocolVariantLink | ZomeSignalProtocolVariantTip;\n\n/** Protocol for notifying the ViewModel (UI) of system level events */\nexport type SystemSignalProtocolVariantPostCommitNewStart = {\n type: \"PostCommitNewStart\"\n app_entry_type: string\n}\nexport type SystemSignalProtocolVariantPostCommitNewEnd = {\n type: \"PostCommitNewEnd\"\n app_entry_type: string\n succeeded: boolean\n}\nexport type SystemSignalProtocolVariantPostCommitDeleteStart = {\n type: \"PostCommitDeleteStart\"\n app_entry_type: string\n}\nexport type SystemSignalProtocolVariantPostCommitDeleteEnd = {\n type: \"PostCommitDeleteEnd\"\n app_entry_type: string\n succeeded: boolean\n}\nexport type SystemSignalProtocolVariantSelfCallStart = {\n type: \"SelfCallStart\"\n zome_name: string\n fn_name: string\n}\nexport type SystemSignalProtocolVariantSelfCallEnd = {\n type: \"SelfCallEnd\"\n zome_name: string\n fn_name: string\n succeeded: boolean\n}\nexport type SystemSignalProtocol =\n | SystemSignalProtocolVariantPostCommitNewStart\n | SystemSignalProtocolVariantPostCommitNewEnd\n | SystemSignalProtocolVariantPostCommitDeleteStart\n | SystemSignalProtocolVariantPostCommitDeleteEnd\n | SystemSignalProtocolVariantSelfCallStart\n | SystemSignalProtocolVariantSelfCallEnd;\n\n/** Used by UI ONLY. That's why we use B64 here. */\nexport enum TipProtocolType {\n\tPing = 'Ping',\n\tPong = 'Pong',\n\tEntry = 'Entry',\n\tLink = 'Link',\n\tApp = 'App',\n}\nexport type TipProtocolVariantPing = {Ping: AgentArray}\nexport type TipProtocolVariantPong = {Pong: AgentArray}\nexport type TipProtocolVariantEntry = {Entry: EntryPulse}\nexport type TipProtocolVariantLink = {Link: LinkPulse}\nexport type TipProtocolVariantApp = {App: Uint8Array}\nexport type TipProtocol = \n | TipProtocolVariantPing | TipProtocolVariantPong | TipProtocolVariantEntry | TipProtocolVariantLink | TipProtocolVariantApp;\n"]}
1
+ {"version":3,"file":"zomeSignals.types.js","sourceRoot":"","sources":["../src/zomeSignals.types.ts"],"names":[],"mappings":"AAgFA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACtB,4BAAa,CAAA;IACb,wBAAS,CAAA;IACT,kCAAmB,CAAA;AACpB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAGD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IAC1B,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;AAClB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAiCD,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IACjC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,uCAAa,CAAA;IACb,qCAAW,CAAA;AACZ,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AA+CD,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IAC1B,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,gCAAa,CAAA;IACb,8BAAW,CAAA;AACZ,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B","sourcesContent":["/* This file is generated by zits. Do not edit manually */\n\n// @ts-ignore\nimport {\n// @ts-ignore\nWebsocketConnectionOptions, KitsuneAgent, KitsuneSpace, HoloHashB64, AgentPubKeyB64, DnaHashB64, WasmHashB64, EntryHashB64, ActionHashB64, AnyDhtHashB64, InstalledAppId, Signature, CellId, DnaProperties, RoleName, InstalledCell, Timestamp, Duration, HoloHashed, NetworkInfo, FetchPoolInfo,\n/** hdk/action.ts */\n// @ts-ignore\nSignedActionHashed, RegisterAgentActivity, ActionHashed, ActionType, Action, NewEntryAction, Dna, AgentValidationPkg, InitZomesComplete, CreateLink, DeleteLink, OpenChain, CloseChain, Update, Delete, Create,\n/** hdk/capabilities.ts */\n// @ts-ignore\nCapSecret, CapClaim, GrantedFunctionsType, GrantedFunctions, ZomeCallCapGrant, CapAccessType, CapAccess, CapGrant,\n///** hdk/countersigning.ts */\n//CounterSigningSessionData,\n//PreflightRequest,\n//CounterSigningSessionTimes,\n//ActionBase,\n//CounterSigningAgents,\n//PreflightBytes,\n//Role,\n//CountersigningAgentState,\n/** hdk/dht-ops.ts */\n// @ts-ignore\nDhtOpType, DhtOp, getDhtOpType, getDhtOpAction, getDhtOpEntry, getDhtOpSignature,\n/** hdk/entry.ts */\n// @ts-ignore\nEntryVisibility, AppEntryDef, EntryType, EntryContent, Entry,\n/** hdk/record.ts */\n// @ts-ignore\nRecord as HcRecord, RecordEntry as HcRecordEntry,\n/** hdk/link.ts */\n//AnyLinkableHash,\n// @ts-ignore\nZomeIndex, LinkType, LinkTag, RateWeight, RateBucketId, RateUnits, Link,\n/** api/admin/types.ts */\n// @ts-ignore\nInstalledAppInfoStatus, DeactivationReason, DisabledAppReason, StemCell, ProvisionedCell, ClonedCell, CellType, CellInfo, AppInfo, MembraneProof, FunctionName, ZomeName, ZomeDefinition, IntegrityZome, CoordinatorZome, DnaDefinition, ResourceBytes, ResourceMap, CellProvisioningStrategy, CellProvisioning, DnaVersionSpec, DnaVersionFlexible, AppRoleDnaManifest, AppRoleManifest, AppManifest, AppBundle, AppBundleSource, NetworkSeed, ZomeLocation,\n} from '@holochain/client';\n\n\n/// Simple Hashes\n// @ts-ignore\ntype AgentArray = Uint8Array;\n// @ts-ignore\ntype DnaArray = Uint8Array;\n// @ts-ignore\ntype WasmArray = Uint8Array;\n// @ts-ignore\ntype EntryArray = Uint8Array;\n// @ts-ignore\ntype ActionArray = Uint8Array;\n// @ts-ignore\ntype AnyDhtArray = Uint8Array;\n// @ts-ignore\ntype AnyLinkableArray = Uint8Array;\n// @ts-ignore\ntype ExternalArray = Uint8Array;\n\n// @ts-ignore\nimport {\n/** Common */\n// @ts-ignore\nDhtOpHashB64, DhtOpHash,\n/** DnaFile */\n// @ts-ignore\nDnaFile, DnaDef, Zomes, WasmCode,\n/** entry-details */\n// @ts-ignore\nEntryDetails, RecordDetails, Details, DetailsType, EntryDhtStatus,\n/** Validation */\n// @ts-ignore\nValidationStatus, ValidationReceipt,\n} from '@holochain-open-dev/core-types';\n\nexport interface CastTipInput {\n tip: TipProtocol\n peers: AgentArray[]\n}\n\n/** ValidationStatus */\nexport enum ValidatedBy {\n\tNone = 'None',\n\tMe = 'Me',\n\tNetwork = 'Network',\n}\n\n/** Bool: True if state change just happened (real-time) */\nexport enum StateChangeType {\n\tCreate = 'Create',\n\tUpdate = 'Update',\n\tDelete = 'Delete',\n}\nexport type StateChangeVariantCreate = {Create: boolean}\nexport type StateChangeVariantUpdate = {Update: boolean}\nexport type StateChangeVariantDelete = {Delete: boolean}\nexport type StateChange = \n | StateChangeVariantCreate | StateChangeVariantUpdate | StateChangeVariantDelete;\n\n/** */\nexport interface LinkPulse {\n link: Link\n state: StateChange\n validation: ValidatedBy\n}\n\nexport interface EntryPulse {\n state: StateChange\n validation: ValidatedBy\n orig_ah?: ActionArray\n ah: ActionArray\n eh: EntryArray\n ts: Timestamp\n author: AgentArray\n def: AppEntryDef\n bytes: Uint8Array\n}\n\n/** */\nexport interface ZomeSignal {\n from: AgentArray\n pulses: ZomeSignalProtocol[]\n}\n\n/** */\nexport enum ZomeSignalProtocolType {\n\tSystem = 'System',\n\tEntry = 'Entry',\n\tLink = 'Link',\n\tTip = 'Tip',\n}\nexport type ZomeSignalProtocolVariantSystem = {System: SystemSignalProtocol}\nexport type ZomeSignalProtocolVariantEntry = {Entry: EntryPulse}\nexport type ZomeSignalProtocolVariantLink = {Link: LinkPulse}\nexport type ZomeSignalProtocolVariantTip = {Tip: TipProtocol}\nexport type ZomeSignalProtocol = \n | ZomeSignalProtocolVariantSystem | ZomeSignalProtocolVariantEntry | ZomeSignalProtocolVariantLink | ZomeSignalProtocolVariantTip;\n\n/** Protocol for notifying the ViewModel (UI) of system level events */\nexport type SystemSignalProtocolVariantPostCommitNewStart = {\n type: \"PostCommitNewStart\"\n app_entry_type: string\n}\nexport type SystemSignalProtocolVariantPostCommitNewEnd = {\n type: \"PostCommitNewEnd\"\n app_entry_type: string\n succeeded: boolean\n}\nexport type SystemSignalProtocolVariantPostCommitDeleteStart = {\n type: \"PostCommitDeleteStart\"\n app_entry_type: string\n}\nexport type SystemSignalProtocolVariantPostCommitDeleteEnd = {\n type: \"PostCommitDeleteEnd\"\n app_entry_type: string\n succeeded: boolean\n}\nexport type SystemSignalProtocolVariantSelfCallStart = {\n type: \"SelfCallStart\"\n zome_name: string\n fn_name: string\n}\nexport type SystemSignalProtocolVariantSelfCallEnd = {\n type: \"SelfCallEnd\"\n zome_name: string\n fn_name: string\n succeeded: boolean\n}\nexport type SystemSignalProtocol =\n | SystemSignalProtocolVariantPostCommitNewStart\n | SystemSignalProtocolVariantPostCommitNewEnd\n | SystemSignalProtocolVariantPostCommitDeleteStart\n | SystemSignalProtocolVariantPostCommitDeleteEnd\n | SystemSignalProtocolVariantSelfCallStart\n | SystemSignalProtocolVariantSelfCallEnd;\n\n/** Used by UI ONLY. That's why we use B64 here. */\nexport enum TipProtocolType {\n\tPing = 'Ping',\n\tPong = 'Pong',\n\tEntry = 'Entry',\n\tLink = 'Link',\n\tApp = 'App',\n}\nexport type TipProtocolVariantPing = {Ping: AgentArray}\nexport type TipProtocolVariantPong = {Pong: AgentArray}\nexport type TipProtocolVariantEntry = {Entry: EntryPulse}\nexport type TipProtocolVariantLink = {Link: LinkPulse}\nexport type TipProtocolVariantApp = {App: Uint8Array}\nexport type TipProtocol = \n | TipProtocolVariantPing | TipProtocolVariantPong | TipProtocolVariantEntry | TipProtocolVariantLink | TipProtocolVariantApp;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-qc/cell-proxy",
3
- "version": "0.30.3",
3
+ "version": "0.31.5",
4
4
  "description": "Proxy classes and helpers for managing a Holochain AppWebsocket",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",