@ddd-qc/lit-happ 0.34.10 → 0.34.12

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.
@@ -19,7 +19,7 @@ export declare class HappViewModel {
19
19
  static new(host: ReactiveElement, appProxy: AppProxy, hvmDef: HvmDef, isMainView: boolean): Promise<HappViewModel>;
20
20
  private constructor();
21
21
  get happSha256(): string | null;
22
- getHappShareCode(role?: RoleName): string | null;
22
+ getHappShareCode(role?: RoleName, customName?: string): string | null;
23
23
  authorizeAllZomeCalls(adminWs?: AdminWebsocket): Promise<void>;
24
24
  private createStartingClonesDvm;
25
25
  private createDvm;
@@ -1 +1 @@
1
- {"version":3,"file":"HappViewModel.d.ts","sourceRoot":"","sources":["../src/HappViewModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,UAAU,EAA0B,cAAc,EAAS,MAAM,mBAAmB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,EACL,QAAQ,EACR,YAAY,EAAE,WAAW,EAAE,UAAU,EAGrC,YAAY,EACZ,GAAG,EACJ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AAUrD,qBAAa,aAAa;IA+EtB,SAAS,CAAC,KAAK,EAAE,eAAe;IAChC,SAAS,CAAC,SAAS,EAAE,QAAQ;aAEb,UAAU,EAAE,OAAO;IA/ErC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAE/B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,CAAM;IAEnD,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAM;IAM7C,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS;IAK9C,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,SAAS;IAcxE,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,YAAY,GAAI,YAAY,GAAG,SAAS;IAS9D,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,EAAE;WAgBxC,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBxH,OAAO;IAkBP,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAAmC;IAElE,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAG1C,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpE,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,iBAAiB;IAgBnB,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAqD3H,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAQ/B,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvD,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;CAchD"}
1
+ {"version":3,"file":"HappViewModel.d.ts","sourceRoot":"","sources":["../src/HappViewModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,UAAU,EAA0B,cAAc,EAAS,MAAM,mBAAmB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,EACL,QAAQ,EACR,YAAY,EAAE,WAAW,EAAE,UAAU,EAGrC,YAAY,EACZ,GAAG,EACJ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AAUrD,qBAAa,aAAa;IA+EtB,SAAS,CAAC,KAAK,EAAE,eAAe;IAChC,SAAS,CAAC,SAAS,EAAE,QAAQ;aAEb,UAAU,EAAE,OAAO;IA/ErC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAE/B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,CAAM;IAEnD,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAM;IAM7C,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS;IAK9C,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,SAAS;IAcxE,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,YAAY,GAAI,YAAY,GAAG,SAAS;IAS9D,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,EAAE;WAgBxC,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBxH,OAAO;IAkBP,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAAmC;IAElE,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAG/D,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpE,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,iBAAiB;IAgBnB,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAqD3H,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAQ/B,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvD,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;CAchD"}
@@ -62,7 +62,7 @@ export class HappViewModel {
62
62
  this.createStartingClonesDvm();
63
63
  }
64
64
  get happSha256() { return this._appProxy.happSha256; }
65
- getHappShareCode(role) { return this._appProxy.getHappShareCode(role); }
65
+ getHappShareCode(role, customName) { return this._appProxy.getHappShareCode(role, customName); }
66
66
  async authorizeAllZomeCalls(adminWs) {
67
67
  if (!adminWs) {
68
68
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"HappViewModel.js","sourceRoot":"","sources":["../src/HappViewModel.ts"],"names":[],"mappings":"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","sourcesContent":["import {AdminWebsocket, ClonedCell, CreateCloneCellRequest, InstalledAppId, Signal} from \"@holochain/client\";\nimport { ReactiveElement } from \"lit\";\nimport {\n AppProxy,\n BaseRoleName, CellAddress, CellCloner,\n CloneIndex,\n createCloneName,\n MyDictionary,\n HCL,\n} from \"@ddd-qc/cell-proxy\";\nimport { CellDef, DvmDef, HvmDef } from \"./definitions\";\nimport { DnaViewModel } from \"./DnaViewModel\";\nimport {GetStrategy} from \"@holochain-open-dev/core-types\";\nimport {RoleName} from \"@holochain/client/lib/types\";\n\n\n//export type HvmConstructor = {new(installedAppId: InstalledAppId): HappViewModel};\n\n\n/**\n * \"ViewModel\" of a hApp\n * Creates and stores all the DnaViewModels from the happDef.\n */\nexport class HappViewModel {\n\n /** -- Fields -- */\n readonly appId: InstalledAppId;\n /** HCLString -> DnaViewModel */\n protected _dvmMap: MyDictionary<DnaViewModel> = {};\n /** BaseRoleName -> DvmDef */\n protected _defMap: MyDictionary<DvmDef> = {};\n\n\n /** -- Getters -- */\n\n /** */\n getDef(name: BaseRoleName): DvmDef | undefined {\n return this._defMap[name];\n }\n\n /** */\n getCellDvms(cellId: CellAddress): MyDictionary<DnaViewModel> | undefined {\n const hcls = this._appProxy.getLocations(cellId);\n if (hcls === undefined) return undefined;\n let dict: MyDictionary<DnaViewModel> = {};\n for (const hcl of hcls) {\n const maybe = this.getDvm(hcl);\n if (maybe) {\n dict[hcl.toString()] = maybe;\n }\n }\n return dict;\n }\n\n /** */\n getDvm(hclOrId: HCL | BaseRoleName ): DnaViewModel | undefined {\n if (typeof hclOrId === 'string') {\n hclOrId = new HCL(this.appId, hclOrId);\n }\n return this._dvmMap[hclOrId.toString()];\n }\n\n\n /** */\n getClones(baseRoleName: BaseRoleName): DnaViewModel[] {\n const searchHcl = new HCL(this.appId, baseRoleName);\n let cloneDvms = [];\n for (const [sHcl, dvm] of Object.entries(this._dvmMap)) {\n const hcl = HCL.parse(sHcl);\n if (hcl.isClone() && hcl.match(searchHcl)) {\n cloneDvms.push(dvm);\n }\n }\n return cloneDvms;\n }\n\n\n /** -- Create -- */\n\n /** Spawn a HappViewModel for an AppId running on the AppProxy */\n static async new(host: ReactiveElement, appProxy: AppProxy, hvmDef: HvmDef, isMainView: boolean): Promise<HappViewModel> {\n const appId = appProxy.appIdOfShame? appProxy.appIdOfShame : hvmDef.id;\n //console.log(\"HappViewModel.new()\", hvmDef.id, appId)\n /** Create all Cell Proxies in the definition */\n for (const dvmDef of hvmDef.dvmDefs) {\n if (dvmDef.ctor.DEFAULT_BASE_ROLE_NAME === undefined) {\n return Promise.reject(\"static field DEFAULT_BASE_ROLE_NAME not defined for class \" + dvmDef.ctor.name);\n }\n const baseRoleName = dvmDef.baseRoleName\n ? dvmDef.baseRoleName\n : dvmDef.ctor.DEFAULT_BASE_ROLE_NAME;\n await appProxy.fetchCells(appId, baseRoleName);\n const hcl = new HCL(appId, baseRoleName);\n appProxy.createCellProxy(hcl);\n }\n const hvm = new HappViewModel(host, appProxy, hvmDef, isMainView);\n return hvm;\n }\n\n\n /** Ctor */\n private constructor(\n protected _host: ReactiveElement, /* VIEW */\n protected _appProxy: AppProxy, /* MODEL */\n hvmDef: HvmDef, /* VIEW-MODEL definition */\n public readonly isMainView: boolean,\n ) {\n this.appId = this._appProxy.appIdOfShame? this._appProxy.appIdOfShame : hvmDef.id;\n /** Create all non-deferred DVMs for this Happ */\n for (const dvmDef of hvmDef.dvmDefs) {\n this.createOriginalDvm(dvmDef);\n }\n this.createStartingClonesDvm();\n //console.log(\"HappViewModel created\", this._dvmMap)\n }\n\n\n /** -- Methods -- */\n\n get happSha256(): string | null {return this._appProxy.happSha256}\n\n getHappShareCode(role?: RoleName): string | null {return this._appProxy.getHappShareCode(role)}\n\n\n async authorizeAllZomeCalls(adminWs?: AdminWebsocket): Promise<void> {\n if (!adminWs) {\n return;\n }\n for (const [_sHcl, dvm] of Object.entries(this._dvmMap)) {\n //console.log(\"Authorizing\", sHcl);\n await dvm.authorizeZomeCalls(adminWs);\n }\n }\n\n /** */\n private createStartingClonesDvm(): void {\n const appInstalledCells = this._appProxy.getAppCells(this.appId)!;\n for (const [baseRoleName, roleCells] of Object.entries(appInstalledCells)) {\n const def = this._defMap[baseRoleName];\n if (!def) {\n throw Error(\"No definition found for given baseRoleName\");\n }\n for (const [cloneId, clone] of Object.entries(roleCells.clones)) {\n const hcl = new HCL(this.appId, baseRoleName, cloneId);\n this._appProxy.createCellProxy(hcl, clone.name);\n this.createDvm(def, hcl);\n }\n }\n }\n\n\n /** */\n private createDvm(dvmDef: DvmDef, hcl: HCL): DnaViewModel {\n const dvm: DnaViewModel = new dvmDef.ctor(this._host, this._appProxy, hcl, this.isMainView); // WARN this can throw an error\n //console.log(` createDvm() for \"${hcl.toString()}\" ; cellId: ${CellIdStr(dvm.cellId)}`);\n /** Setup signalHandler */\n if (dvm.signalHandler) {\n //console.log(`\"${dvm.baseRoleName}\" signalHandler added`, dvm.signalHandler);\n try {\n this._appProxy.addSignalHandler((sig: Signal) => {\n dvm.signalHandler!(sig)\n }, hcl.toString());\n } catch (e) {\n console.error(e)\n }\n }\n /** Store it */\n if (this._dvmMap[hcl.toString()]) {\n throw Error(\"DVM already exists for \" + hcl.toString());\n }\n this._dvmMap[hcl.toString()] = dvm;\n /** Done */\n return dvm;\n }\n\n\n /** */\n private createOriginalDvm(dvmDef: DvmDef): void {\n /** Determine baseRoleName */\n const baseRoleName = dvmDef.baseRoleName\n ? dvmDef.baseRoleName\n : dvmDef.ctor.DEFAULT_BASE_ROLE_NAME;\n //console.log(\"createOriginalDvm() for \", baseRoleName);\n if (this._defMap[baseRoleName]) {\n throw Error(`createOriginalDvm() failed. DVM for original cell of ${baseRoleName} already exists.`);\n }\n const hcl = new HCL(this.appId, baseRoleName);\n this.createDvm(dvmDef, hcl);\n this._defMap[baseRoleName] = dvmDef;\n }\n\n\n /** */\n async cloneDvm(baseRoleName: BaseRoleName, cellDef?: CellDef, cellCloner?: CellCloner): Promise<[ClonedCell, DnaViewModel]> {\n console.log(\"cloneDvm()\", baseRoleName);\n /** Check preconditions */\n const def = this._defMap[baseRoleName];\n if (!def) {\n return Promise.reject(`createCloneDvm() failed for ${baseRoleName}. No original DVM created.`)\n }\n if (!def.isClonable) {\n return Promise.reject(`createCloneDvm() failed. Role \"${baseRoleName}\" is not clonable.`)\n }\n /** Get cloneIndex */\n const clones = this.getClones(baseRoleName);\n const cloneIndex: CloneIndex = clones.length;\n const cloneName = cellDef && cellDef.cloneName\n ? cellDef.cloneName\n : createCloneName(baseRoleName, cloneIndex);\n /** Build default request */\n let request: CreateCloneCellRequest = {\n //app_id: this.appId,\n role_name: baseRoleName,\n modifiers: {\n network_seed: String(cloneIndex),\n },\n name: cloneName,\n }\n /** Modify request according to CellDef */\n if (cellDef) {\n request.modifiers = cellDef.modifiers;\n if (cellDef.membraneProof) request.membrane_proof = cellDef.membraneProof;\n if (cellDef.cloneName) request.name = cellDef.cloneName;\n }\n /** Create Cell */\n const clonedCell = cellCloner? await cellCloner.createCloneCell(request, false) : await this._appProxy.createCloneCell(request);\n //console.log(\"clone created:\", CellIdStr(cloneInstalledCell.cell_id));\n const cell = await this._appProxy.fetchCell(this.appId, CellAddress.from(clonedCell.cell_id));\n console.log(\"clone created:\", cell);\n const hcl = new HCL(this.appId, baseRoleName, cell.cloneId);\n /** Get created cell */\n const clone = cell.asCloned()!;\n this._appProxy.addClone(hcl, clone);\n /** Create CellProxy */\n this._appProxy.createCellProxy(hcl, clone.name);\n /** Create DVM and authorize */\n const dvm = this.createDvm(def, hcl);\n if (this._appProxy.adminWs) {\n await dvm.authorizeZomeCalls(this._appProxy.adminWs);\n }\n /** Done */\n return [clonedCell, dvm];\n }\n\n\n /** */\n probeAll(strategy: GetStrategy): void {\n for (const dvm of Object.values(this._dvmMap)) {\n dvm.probeAll(strategy);\n }\n }\n\n\n /** Can't parallelize calls since happ can have multiple roles with the same dnas which can throttle entry_def calls */\n async initializePerspectiveFromLocal(): Promise<void> {\n for (const dvm of Object.values(this._dvmMap)) {\n await dvm.initializePerspectiveFromLocal();\n }\n }\n\n /** */\n async initializePerspectiveFromNetwork(): Promise<void> {\n const all = [];\n for (const dvm of Object.values(this._dvmMap)) {\n const p = dvm.initializePerspectiveFromNetwork();\n all.push(p);\n }\n await Promise.all(all);\n }\n\n\n /** */\n dumpCallLogs(baseRoleName?: BaseRoleName): void {\n if (baseRoleName) {\n const dvm = this.getDvm(baseRoleName);\n if (dvm) {\n dvm.dumpCallLogs();\n } else {\n console.error(`dumpCallLogs() failed. Role \"${baseRoleName}\" not found in happ \"${this.appId}\"`)\n }\n } else {\n for (const dvm of Object.values(this._dvmMap)) {\n dvm.dumpCallLogs();\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"HappViewModel.js","sourceRoot":"","sources":["../src/HappViewModel.ts"],"names":[],"mappings":"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","sourcesContent":["import {AdminWebsocket, ClonedCell, CreateCloneCellRequest, InstalledAppId, Signal} from \"@holochain/client\";\nimport { ReactiveElement } from \"lit\";\nimport {\n AppProxy,\n BaseRoleName, CellAddress, CellCloner,\n CloneIndex,\n createCloneName,\n MyDictionary,\n HCL,\n} from \"@ddd-qc/cell-proxy\";\nimport { CellDef, DvmDef, HvmDef } from \"./definitions\";\nimport { DnaViewModel } from \"./DnaViewModel\";\nimport {GetStrategy} from \"@holochain-open-dev/core-types\";\nimport {RoleName} from \"@holochain/client/lib/types\";\n\n\n//export type HvmConstructor = {new(installedAppId: InstalledAppId): HappViewModel};\n\n\n/**\n * \"ViewModel\" of a hApp\n * Creates and stores all the DnaViewModels from the happDef.\n */\nexport class HappViewModel {\n\n /** -- Fields -- */\n readonly appId: InstalledAppId;\n /** HCLString -> DnaViewModel */\n protected _dvmMap: MyDictionary<DnaViewModel> = {};\n /** BaseRoleName -> DvmDef */\n protected _defMap: MyDictionary<DvmDef> = {};\n\n\n /** -- Getters -- */\n\n /** */\n getDef(name: BaseRoleName): DvmDef | undefined {\n return this._defMap[name];\n }\n\n /** */\n getCellDvms(cellId: CellAddress): MyDictionary<DnaViewModel> | undefined {\n const hcls = this._appProxy.getLocations(cellId);\n if (hcls === undefined) return undefined;\n let dict: MyDictionary<DnaViewModel> = {};\n for (const hcl of hcls) {\n const maybe = this.getDvm(hcl);\n if (maybe) {\n dict[hcl.toString()] = maybe;\n }\n }\n return dict;\n }\n\n /** */\n getDvm(hclOrId: HCL | BaseRoleName ): DnaViewModel | undefined {\n if (typeof hclOrId === 'string') {\n hclOrId = new HCL(this.appId, hclOrId);\n }\n return this._dvmMap[hclOrId.toString()];\n }\n\n\n /** */\n getClones(baseRoleName: BaseRoleName): DnaViewModel[] {\n const searchHcl = new HCL(this.appId, baseRoleName);\n let cloneDvms = [];\n for (const [sHcl, dvm] of Object.entries(this._dvmMap)) {\n const hcl = HCL.parse(sHcl);\n if (hcl.isClone() && hcl.match(searchHcl)) {\n cloneDvms.push(dvm);\n }\n }\n return cloneDvms;\n }\n\n\n /** -- Create -- */\n\n /** Spawn a HappViewModel for an AppId running on the AppProxy */\n static async new(host: ReactiveElement, appProxy: AppProxy, hvmDef: HvmDef, isMainView: boolean): Promise<HappViewModel> {\n const appId = appProxy.appIdOfShame? appProxy.appIdOfShame : hvmDef.id;\n //console.log(\"HappViewModel.new()\", hvmDef.id, appId)\n /** Create all Cell Proxies in the definition */\n for (const dvmDef of hvmDef.dvmDefs) {\n if (dvmDef.ctor.DEFAULT_BASE_ROLE_NAME === undefined) {\n return Promise.reject(\"static field DEFAULT_BASE_ROLE_NAME not defined for class \" + dvmDef.ctor.name);\n }\n const baseRoleName = dvmDef.baseRoleName\n ? dvmDef.baseRoleName\n : dvmDef.ctor.DEFAULT_BASE_ROLE_NAME;\n await appProxy.fetchCells(appId, baseRoleName);\n const hcl = new HCL(appId, baseRoleName);\n appProxy.createCellProxy(hcl);\n }\n const hvm = new HappViewModel(host, appProxy, hvmDef, isMainView);\n return hvm;\n }\n\n\n /** Ctor */\n private constructor(\n protected _host: ReactiveElement, /* VIEW */\n protected _appProxy: AppProxy, /* MODEL */\n hvmDef: HvmDef, /* VIEW-MODEL definition */\n public readonly isMainView: boolean,\n ) {\n this.appId = this._appProxy.appIdOfShame? this._appProxy.appIdOfShame : hvmDef.id;\n /** Create all non-deferred DVMs for this Happ */\n for (const dvmDef of hvmDef.dvmDefs) {\n this.createOriginalDvm(dvmDef);\n }\n this.createStartingClonesDvm();\n //console.log(\"HappViewModel created\", this._dvmMap)\n }\n\n\n /** -- Methods -- */\n\n get happSha256(): string | null {return this._appProxy.happSha256}\n\n getHappShareCode(role?: RoleName, customName?: string): string | null {return this._appProxy.getHappShareCode(role, customName)}\n\n\n async authorizeAllZomeCalls(adminWs?: AdminWebsocket): Promise<void> {\n if (!adminWs) {\n return;\n }\n for (const [_sHcl, dvm] of Object.entries(this._dvmMap)) {\n //console.log(\"Authorizing\", sHcl);\n await dvm.authorizeZomeCalls(adminWs);\n }\n }\n\n /** */\n private createStartingClonesDvm(): void {\n const appInstalledCells = this._appProxy.getAppCells(this.appId)!;\n for (const [baseRoleName, roleCells] of Object.entries(appInstalledCells)) {\n const def = this._defMap[baseRoleName];\n if (!def) {\n throw Error(\"No definition found for given baseRoleName\");\n }\n for (const [cloneId, clone] of Object.entries(roleCells.clones)) {\n const hcl = new HCL(this.appId, baseRoleName, cloneId);\n this._appProxy.createCellProxy(hcl, clone.name);\n this.createDvm(def, hcl);\n }\n }\n }\n\n\n /** */\n private createDvm(dvmDef: DvmDef, hcl: HCL): DnaViewModel {\n const dvm: DnaViewModel = new dvmDef.ctor(this._host, this._appProxy, hcl, this.isMainView); // WARN this can throw an error\n //console.log(` createDvm() for \"${hcl.toString()}\" ; cellId: ${CellIdStr(dvm.cellId)}`);\n /** Setup signalHandler */\n if (dvm.signalHandler) {\n //console.log(`\"${dvm.baseRoleName}\" signalHandler added`, dvm.signalHandler);\n try {\n this._appProxy.addSignalHandler((sig: Signal) => {\n dvm.signalHandler!(sig)\n }, hcl.toString());\n } catch (e) {\n console.error(e)\n }\n }\n /** Store it */\n if (this._dvmMap[hcl.toString()]) {\n throw Error(\"DVM already exists for \" + hcl.toString());\n }\n this._dvmMap[hcl.toString()] = dvm;\n /** Done */\n return dvm;\n }\n\n\n /** */\n private createOriginalDvm(dvmDef: DvmDef): void {\n /** Determine baseRoleName */\n const baseRoleName = dvmDef.baseRoleName\n ? dvmDef.baseRoleName\n : dvmDef.ctor.DEFAULT_BASE_ROLE_NAME;\n //console.log(\"createOriginalDvm() for \", baseRoleName);\n if (this._defMap[baseRoleName]) {\n throw Error(`createOriginalDvm() failed. DVM for original cell of ${baseRoleName} already exists.`);\n }\n const hcl = new HCL(this.appId, baseRoleName);\n this.createDvm(dvmDef, hcl);\n this._defMap[baseRoleName] = dvmDef;\n }\n\n\n /** */\n async cloneDvm(baseRoleName: BaseRoleName, cellDef?: CellDef, cellCloner?: CellCloner): Promise<[ClonedCell, DnaViewModel]> {\n console.log(\"cloneDvm()\", baseRoleName);\n /** Check preconditions */\n const def = this._defMap[baseRoleName];\n if (!def) {\n return Promise.reject(`createCloneDvm() failed for ${baseRoleName}. No original DVM created.`)\n }\n if (!def.isClonable) {\n return Promise.reject(`createCloneDvm() failed. Role \"${baseRoleName}\" is not clonable.`)\n }\n /** Get cloneIndex */\n const clones = this.getClones(baseRoleName);\n const cloneIndex: CloneIndex = clones.length;\n const cloneName = cellDef && cellDef.cloneName\n ? cellDef.cloneName\n : createCloneName(baseRoleName, cloneIndex);\n /** Build default request */\n let request: CreateCloneCellRequest = {\n //app_id: this.appId,\n role_name: baseRoleName,\n modifiers: {\n network_seed: String(cloneIndex),\n },\n name: cloneName,\n }\n /** Modify request according to CellDef */\n if (cellDef) {\n request.modifiers = cellDef.modifiers;\n if (cellDef.membraneProof) request.membrane_proof = cellDef.membraneProof;\n if (cellDef.cloneName) request.name = cellDef.cloneName;\n }\n /** Create Cell */\n const clonedCell = cellCloner? await cellCloner.createCloneCell(request, false) : await this._appProxy.createCloneCell(request);\n //console.log(\"clone created:\", CellIdStr(cloneInstalledCell.cell_id));\n const cell = await this._appProxy.fetchCell(this.appId, CellAddress.from(clonedCell.cell_id));\n console.log(\"clone created:\", cell);\n const hcl = new HCL(this.appId, baseRoleName, cell.cloneId);\n /** Get created cell */\n const clone = cell.asCloned()!;\n this._appProxy.addClone(hcl, clone);\n /** Create CellProxy */\n this._appProxy.createCellProxy(hcl, clone.name);\n /** Create DVM and authorize */\n const dvm = this.createDvm(def, hcl);\n if (this._appProxy.adminWs) {\n await dvm.authorizeZomeCalls(this._appProxy.adminWs);\n }\n /** Done */\n return [clonedCell, dvm];\n }\n\n\n /** */\n probeAll(strategy: GetStrategy): void {\n for (const dvm of Object.values(this._dvmMap)) {\n dvm.probeAll(strategy);\n }\n }\n\n\n /** Can't parallelize calls since happ can have multiple roles with the same dnas which can throttle entry_def calls */\n async initializePerspectiveFromLocal(): Promise<void> {\n for (const dvm of Object.values(this._dvmMap)) {\n await dvm.initializePerspectiveFromLocal();\n }\n }\n\n /** */\n async initializePerspectiveFromNetwork(): Promise<void> {\n const all = [];\n for (const dvm of Object.values(this._dvmMap)) {\n const p = dvm.initializePerspectiveFromNetwork();\n all.push(p);\n }\n await Promise.all(all);\n }\n\n\n /** */\n dumpCallLogs(baseRoleName?: BaseRoleName): void {\n if (baseRoleName) {\n const dvm = this.getDvm(baseRoleName);\n if (dvm) {\n dvm.dumpCallLogs();\n } else {\n console.error(`dumpCallLogs() failed. Role \"${baseRoleName}\" not found in happ \"${this.appId}\"`)\n }\n } else {\n for (const dvm of Object.values(this._dvmMap)) {\n dvm.dumpCallLogs();\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ZomeViewModelWithSignals.d.ts","sourceRoot":"","sources":["../src/ZomeViewModelWithSignals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ZomeViewModelWithSignals.d.ts","sourceRoot":"","sources":["../src/ZomeViewModelWithSignals.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { SignalType } from "@holochain/client";
2
- import { ActionId, AgentId, anyToB64, enc64, EntryId, getIndexByVariant, intoLinkableId, prettyDate, prettyState, AppSignalType, ZomeSignalProtocolType, TipProtocolType, intoAnyId, sha256, } from "@ddd-qc/cell-proxy";
2
+ import { ActionId, AgentId, anyToB64, enc64, EntryId, getIndexByVariant, intoLinkableId, prettyDate, prettyState, AppSignalType, ZomeSignalProtocolType, TipProtocolType, intoAnyId, h64, } from "@ddd-qc/cell-proxy";
3
3
  import { ZomeViewModel } from "./ZomeViewModel";
4
4
  import { decode } from "@msgpack/msgpack";
5
5
  export class ZomeViewModelWithSignals extends ZomeViewModel {
@@ -32,8 +32,9 @@ export class ZomeViewModelWithSignals extends ZomeViewModel {
32
32
  const from = new AgentId(signal.from);
33
33
  let all = [];
34
34
  for (let pulse of signal.pulses) {
35
- const pulseHash = await sha256(JSON.stringify(pulse));
35
+ const pulseHash = h64(JSON.stringify(pulse));
36
36
  if (this._knownPulses.has(pulseHash)) {
37
+ console.debug("handleSignal() Skipping duplicate pulse", pulseHash);
37
38
  continue;
38
39
  }
39
40
  this._knownPulses.add(pulseHash);
@@ -1 +1 @@
1
- {"version":3,"file":"ZomeViewModelWithSignals.js","sourceRoot":"","sources":["../src/ZomeViewModelWithSignals.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,UAAU,EAAY,MAAM,mBAAmB,CAAC;AACjH,OAAO,EACL,QAAQ,EACR,OAAO,EAEP,QAAQ,EACR,KAAK,EACL,OAAO,EAEP,iBAAiB,EACjB,cAAc,EAEd,UAAU,EACV,WAAW,EAEX,aAAa,EAOb,sBAAsB,EAGtB,eAAe,EACf,SAAS,EACkF,MAAM,GAClG,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAexC,MAAM,OAAgB,wBAAyB,SAAQ,aAAa;IAApE;;QAEU,cAAS,GAAc,EAAE,CAAC;QAUzB,kBAAa,GAAc,IAAI,CAAC,eAAe,CAAC;QAuBjD,iBAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;IAqMhD,CAAC;IAnOW,eAAe,CAAC,UAAsB,EAAE,KAAc,IAAoC,OAAO,SAAS,CAAC,CAAA,CAAC;IAC5G,cAAc,CAAC,IAAY,EAAE,MAAc,EAAE,KAAc,IAAoC,OAAO,SAAS,CAAC,CAAA,CAAC;IACjH,KAAK,CAAC,gBAAgB,CAAC,MAAqB,EAAE,KAAc,IAAkB,CAAC;IAC/E,KAAK,CAAC,eAAe,CAAC,MAAoB,EAAE,KAAc,IAAkB,CAAC;IAQ/E,eAAe,CAAC,MAAc;QACpC,MAAM,eAAe,GAAI,IAAI,CAAC,WAA+C,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAE3G,IAAI,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAc,MAAM,CAAC,KAAK,CAAC;QAC1C,IAAI,SAAS,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAqB,CAAC;QACnD,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACS,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAKO,KAAK,CAAC,YAAY,CAAC,MAAkB;QAC3C,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAEhC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAGjC,IAAI,sBAAsB,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAkB,EAAE,IAAI,CAAE,CAAC;gBACxD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,SAAS;gBACX,CAAC;YACH,CAAC;YACD,IAAI,sBAAsB,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAmB,EAAG,IAAI,CAAC,WAAoC,CAAC,WAAW,CAAC,CAAC;gBAC/H,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;gBAEnD,IAAI,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC;oBAC1G,IAAI,CAAC,YAAY,CAAC,EAAC,KAAK,EAAE,KAAK,CAAC,KAAmB,EAAC,CAAC,CAAC;gBACxD,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,sBAAsB,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAiB,EAAG,IAAI,CAAC,WAAoC,CAAC,UAAU,CAAC,CAAC;gBAC1H,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;gBAEnD,IAAI,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjE,IAAI,CAAC,YAAY,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,IAAiB,EAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAIO,SAAS,CAAC,GAAgB,EAAE,IAAa;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAE5C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM;gBACT,MAAM;YACR,KAAK,OAAO;gBAAE,OAAO,EAAC,KAAK,EAAG,GAA+B,CAAC,KAAK,EAAmC,CAAC;gBAAC,MAAM;YAC9G,KAAK,MAAM;gBAAE,OAAO,EAAC,IAAI,EAAG,GAA8B,CAAC,IAAI,EAAkC,CAAC;gBAAC,MAAM;YACzG,KAAK,UAAU;gBACb,MAAM,GAAG,GAAI,GAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,KAAK,GAAI,GAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,eAAe,CAAE,GAAmC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAClF,MAAM;QACV,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAID,mBAAmB,CAAC,GAAW,EAAE,KAAa,EAAE,SAAkB,EAAE,QAAgB;QAElF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACC,OAAO,CAAC,KAAK,CAAC,oCAAoC,SAAS,CAAC,GAAG,aAAa,QAAQ,EAAE,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAgB,EAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAwB,CAAC;aACpG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAC,CAAC,CAAC;aAC5F,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAE,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA;IACjF,CAAC;IAID,oBAAoB,CAAC,MAAkB,EAAE,SAAkB,EAAE,QAAgB;QAE3E,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,qCAAqC,SAAS,CAAC,GAAG,aAAa,QAAQ,EAAE,CAAC,CAAC;QACzF,MAAM,GAAG,GAAgB,EAAC,SAAS,EAAE,MAAM,EAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAC,GAAG,EAAG,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAwB,CAAC;aACvG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAC,CAAC,CAAC;aAC5F,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAE,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA;IAC/E,CAAC;IAID,YAAY,CAAC,GAAgB,EAAE,MAAuB,EAAE,SAAkB;QAExE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;YACtD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,iBAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpJ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,GAAG,EAAE,KAAK,EAAC,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC;aAC3E,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAC;aAC1F,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAE,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA;IACzF,CAAC;IAID,YAAY;QACV,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvD,IAAI,UAAU,GAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACtC,MAAM,OAAO,GAAI,GAAG,CAAC,GAAW,CAAC,IAAI,CAAC,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,IAAI;gBACJ,OAAO;gBACP,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;gBACvB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBACnD,QAAQ,EAAE,GAAG,CAAC,QAAQ;aAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAGO,OAAO,CAAC,GAAgB,EAAE,IAAqB;QACrD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,eAAe,CAAC,IAAI,CAAC;YAC1B,KAAK,eAAe,CAAC,IAAI;gBAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAAC,MAAM;YAClD,KAAK,eAAe,CAAC,QAAQ;gBAAE,CAAC;oBAC9B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAI,GAAkC,CAAC,QAAQ,CAAC;oBAClE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACtB,CAAC;gBACC,MAAM;YACR,KAAK,eAAe,CAAC,SAAS;gBAAE,CAAC;oBAC/B,MAAM,GAAG,GAAI,GAAmC,CAAC,SAAS,CAAC;oBAC3D,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM;YACN,KAAK,eAAe,CAAC,KAAK;gBAAE,CAAC;oBAC3B,MAAM,UAAU,GAAI,GAA+B,CAAC,KAAK,CAAC;oBAC1D,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM;YACN,KAAK,eAAe,CAAC,IAAI;gBAAE,CAAC;oBAC1B,MAAM,SAAS,GAAI,GAA8B,CAAC,IAAI,CAAC;oBACvD,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxF,CAAC;gBACD,MAAM;QACR,CAAC;IACH,CAAC;IAIQ,cAAc,CAAC,UAAuB;QAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC9D,IAAI,UAAU,GAAU,EAAE,CAAC;QAC3B,UAAU;aACP,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC;aAC/C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,MAAM,GAAG,GAAG,CAAC,UAAwB,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAA8B,CAAC;YACrD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAW,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YAClH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,sBAAsB,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxC,MAAM,GAAG,GAAgB,KAAK,CAAC,GAAG,CAAC;oBACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAuB,CAAC,CAAC;oBACxE,UAAU,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;gBAC1H,CAAC;gBACD,IAAI,sBAAsB,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;oBAC1C,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;oBAChG,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC5C,UAAU,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAC,CAAC,CAAC;gBAC1O,CAAC;gBACD,IAAI,sBAAsB,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzC,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC5F,UAAU,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC;gBACxO,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACL,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;CACF;AAqBD,MAAM,UAAU,qBAAqB,CAAC,UAAsB,EAAE,UAAoB;IAEhF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC;IACnD,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,OAAO,CAAA,CAAC,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QACnE,EAAE,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,UAAU,CAAC,UAAU;QAClC,KAAK,EAAG,UAAU,CAAC,KAAa,CAAC,QAAQ,CAAC;QAC1C,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,MAAM,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACtC,EAAE,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAE;QAClD,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU;QACrC,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAA;AACH,CAAC;AAID,MAAM,UAAU,uBAAuB,CAAC,KAAoB,EAAE,UAAoB;IAChF,IAAI,KAAK,GAAW,EAAE,CAAC;IAEvB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAGjC,IAAI,GAAG,GAAe;QACpB,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI;QACjB,KAAK,EAAE,KAAoB;QAC3B,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QACzB,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI;QACjB,GAAG,EAAE;YACH,WAAW,EAAE,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;YAC3D,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B;QACD,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAA;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAA;IACjC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAoBD,MAAM,UAAU,oBAAoB,CAAC,SAAoB,EAAE,SAAmB;IAE5E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC;IAClD,OAAO;QACL,MAAM,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS;QACnC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;QACrC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAE;QAC/C,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG;QACvB,gBAAgB,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC/D,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE;QACvC,WAAW,EAAE,SAAS,CAAC,UAAU;QACjC,KAAK,EAAG,SAAS,CAAC,KAAa,CAAC,QAAQ,CAAC;KAC1C,CAAA;AACH,CAAC;AAGD,MAAM,UAAU,sBAAsB,CAAC,KAAmB,EAAE,SAAmB;IAC7E,IAAI,KAAK,GAAW,EAAE,CAAC;IAEvB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAGjC,OAAO;QACL,KAAK,EAAE,KAAoB;QAC3B,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,IAAI,EAAE;YACJ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YACzB,IAAI,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YACzB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;YACxD,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,IAAI;SAC9C;KACF,CAAA;AACH,CAAC","sourcesContent":["import {SignalCb, EntryVisibility, Timestamp, ZomeIndex, Signal, SignalType, AppSignal} from \"@holochain/client\";\nimport {\n ActionId,\n AgentId,\n LinkableId,\n anyToB64,\n enc64,\n EntryId,\n EntryPulse,\n getIndexByVariant,\n intoLinkableId,\n LinkPulse,\n prettyDate,\n prettyState,\n SignalLog,\n AppSignalType,\n StateChange,\n TipProtocol,\n TipProtocolVariantEntry,\n TipProtocolVariantLink,\n ZomeSignal,\n ZomeSignalProtocol,\n ZomeSignalProtocolType,\n ZomeSignalProtocolVariantEntry,\n ZomeSignalProtocolVariantLink,\n TipProtocolType,\n intoAnyId,\n ValidatedBy, SynchronizeTipInput, TipProtocolVariantAppValue, TipProtocolVariantAppCustom, sha256,\n} from \"@ddd-qc/cell-proxy\";\nimport {ZomeViewModel} from \"./ZomeViewModel\";\nimport {decode} from \"@msgpack/msgpack\";\n\n\n/** */\nexport interface CastLog {\n ts: Timestamp,\n tip: TipProtocol,\n peers: AgentId[],\n response: Timestamp | undefined,\n}\n\n\n/**\n * ZVM with support for ZomeSignals\n */\nexport abstract class ZomeViewModelWithSignals extends ZomeViewModel {\n\n private _castLogs: CastLog[] = [];\n\n /** Methods to override */\n protected handleCustomTip(_customTip: Uint8Array, _from: AgentId): ZomeSignalProtocol | undefined { return undefined;}\n protected handleValueTip(_key: string, _value: string, _from: AgentId): ZomeSignalProtocol | undefined { return undefined;}\n protected async handleEntryPulse(_pulse: EntryPulseMat, _from: AgentId): Promise<void> {}\n protected async handleLinkPulse(_pulse: LinkPulseMat, _from: AgentId): Promise<void> {}\n\n\n /** */\n override signalHandler?: SignalCb = this.mySignalHandler;\n\n\n /** */\n private mySignalHandler(signal: Signal): void {\n const defaultZomeName = (this.constructor as typeof ZomeViewModelWithSignals).ZOME_PROXY.DEFAULT_ZOME_NAME;\n //console.log(\"mySignalHandler()\", appSignal, defaultZomeName);\n if (SignalType.App != signal.type) {\n return;\n }\n const appSignal: AppSignal = signal.value;\n if (appSignal.zome_name !== defaultZomeName) {\n return;\n }\n const zomeSignal = appSignal.payload as ZomeSignal;\n if (!(\"pulses\" in zomeSignal)) {\n return;\n }\n /*await*/ this.handleSignal(zomeSignal);\n }\n\n\n /** */\n private _knownPulses: Set<string> = new Set();\n private async handleSignal(signal: ZomeSignal): Promise<void> {\n const from = new AgentId(signal.from);\n let all = [];\n for (let pulse of signal.pulses) {\n /** Skip duplicate pulse */\n const pulseHash = await sha256(JSON.stringify(pulse));\n if (this._knownPulses.has(pulseHash)) {\n continue;\n }\n this._knownPulses.add(pulseHash);\n /** -- Handle Signal according to type -- */\n /** Change tip to Entry or Link signal */\n if (ZomeSignalProtocolType.Tip in pulse) {\n pulse = this.handleTip(pulse.Tip as TipProtocol, from)!;\n if (!pulse) {\n continue;\n }\n }\n if (ZomeSignalProtocolType.Entry in pulse) {\n const entryPulseMat = materializeEntryPulse(pulse.Entry as EntryPulse, (this.constructor as typeof ZomeViewModel).ENTRY_TYPES);\n all.push(this.handleEntryPulse(entryPulseMat, from));\n /** If the new entry is from this agent, broadcast to peers as a tip */\n if (entryPulseMat.isNew && this.cell.address.agentId.equals(from) && entryPulseMat.visibility == \"Public\") {\n this.broadcastTip({Entry: pulse.Entry as EntryPulse});\n }\n continue;\n }\n if (ZomeSignalProtocolType.Link in pulse) {\n const linkPulseMat = materializeLinkPulse(pulse.Link as LinkPulse, (this.constructor as typeof ZomeViewModel).LINK_TYPES);\n all.push(this.handleLinkPulse(linkPulseMat, from));\n /** If the new Link is from this agent, broadcast to peers as a tip */\n if (linkPulseMat.isNew && this.cell.address.agentId.equals(from)) {\n this.broadcastTip({Link: pulse.Link as LinkPulse});\n }\n continue;\n }\n }\n await Promise.all(all);\n this.notifySubscribers();\n }\n\n\n /** */\n private handleTip(tip: TipProtocol, from: AgentId): ZomeSignalProtocol | undefined {\n const type = Object.keys(tip)[0];\n console.log(\"handleTip()\", type, from, tip);\n /* Handle tip according to its type */\n switch (type) {\n case \"Ping\":\n case \"Pong\":\n break;\n case \"Entry\": return {Entry: (tip as TipProtocolVariantEntry).Entry} as ZomeSignalProtocolVariantEntry; break;\n case \"Link\": return {Link: (tip as TipProtocolVariantLink).Link} as ZomeSignalProtocolVariantLink; break;\n case \"AppValue\":\n const key = (tip as TipProtocolVariantAppValue).AppValue[0];\n const value = (tip as TipProtocolVariantAppValue).AppValue[1];\n return this.handleValueTip(key, value, from);\n break;\n case \"AppCustom\":\n return this.handleCustomTip((tip as TipProtocolVariantAppCustom).AppCustom, from);\n break;\n }\n return undefined;\n }\n\n\n /** */\n synchronizeValueTip(key: string, value: string, recipient: AgentId, zomeName: string): void {\n /* Only MainView can cast tips */\n if (!this.isMainView) {\n return;\n }\n console.debug(`synchronizeValueTip() Sending to ${recipient.b64} for zome ${zomeName}`);\n const tip: TipProtocol = {AppValue: [key, value]};\n this.zomeProxy.call('synchronize_tip', {tip, recipient: recipient.hash, zomeName} as SynchronizeTipInput)\n .then((response) => this._castLogs.push({ts: Date.now(), tip, peers: [recipient], response}))\n .catch((e) => {console.warn(\"zome call to synchronize_tip() failed: \", e)})\n }\n\n\n /** */\n synchronizeCustomTip(appTip: Uint8Array, recipient: AgentId, zomeName: string): void {\n /* Only MainView can cast tips */\n if (!this.isMainView) {\n return;\n }\n console.debug(`synchronizeCustomTip() Sending to ${recipient.b64} for zome ${zomeName}`);\n const tip: TipProtocol = {AppCustom: appTip};\n this.zomeProxy.call('synchronize_tip', {tip, recipient: recipient.hash, zomeName} as SynchronizeTipInput)\n .then((response) => this._castLogs.push({ts: Date.now(), tip, peers: [recipient], response}))\n .catch((e) => {console.warn(\"zome call to synchronize_tip() failed: \", e)})\n }\n\n\n /** Cast Tip to all known livePeers */\n broadcastTip(tip: TipProtocol, agents?: Array<AgentId>, timeoutMs?: number): void {\n /** Only MainView can cast tips */\n if (!this.isMainView) {\n return;\n }\n agents = agents ?? this._dvmParent.livePeers;\n /** Skip if no recipients or sending to self only */\n const filtered = agents.filter((key) => key.b64 != this.cell.address.agentId.b64);\n //if (!agents || agents.length == 1 && agents[0] === this._cellProxy.cell.agentPubKey) {\n if (!filtered || filtered.length == 0) {\n console.debug(\"broadcastTip() aborted: No recipients\")\n return;\n }\n /** Broadcast */\n console.debug(`broadcastTip() ${this.cell.address.agentId.short} sending Tip \"${Object.keys(tip)[0]}\" to agents ${filtered.map((key) => key.b64)}`);\n const peers = agents.map((key) => key.hash);\n this.zomeProxy.call('cast_tip', {tip, peers}, undefined, timeoutMs ?? 10 * 1000)\n .then(() => this._castLogs.push({ts: Date.now(), tip, peers: agents, response: undefined}))\n .catch((e) => {console.warn(\"broadcastTip() zome call to cast_tip() failed: \", e)})\n }\n\n\n /** */\n dumpCastLogs() {\n console.warn(`Tips sent from zome \"${this.zomeName}\"`);\n let appSignals: any[] = [];\n this._castLogs.map((log) => {\n const type = Object.keys(log.tip)[0]!;\n const payload = (log.tip as any)[type];\n appSignals.push({\n timestamp: prettyDate(new Date(log.ts)),\n type,\n payload,\n count: log.peers.length,\n first: log.peers[0]? log.peers[0].short : undefined,\n response: log.response });\n });\n console.table(appSignals);\n }\n\n\n private tip2Log(tip: TipProtocol, type: TipProtocolType): [string, string] {\n switch (type) {\n case TipProtocolType.Ping:\n case TipProtocolType.Pong: return [\"\", \"\"]; break;\n case TipProtocolType.AppValue: {\n const [key, value] = (tip as TipProtocolVariantAppValue).AppValue;\n return [key, value];\n }\n break;\n case TipProtocolType.AppCustom: {\n const app = (tip as TipProtocolVariantAppCustom).AppCustom;\n return [\"\" + app.length, \"\"];\n }\n break;\n case TipProtocolType.Entry: {\n const entryPulse = (tip as TipProtocolVariantEntry).Entry;\n return [intoAnyId(entryPulse.ah).short, intoAnyId(entryPulse.eh).short];\n }\n break;\n case TipProtocolType.Link: {\n const linkPulse = (tip as TipProtocolVariantLink).Link;\n return [intoAnyId(linkPulse.link.base).short, intoAnyId(linkPulse.link.target).short];\n }\n break;\n }\n }\n\n\n /** */\n override dumpSignalLogs(signalLogs: SignalLog[]) {\n this.dumpCastLogs();\n console.warn(`Signals received from zome \"${this.zomeName}\"`);\n let appSignals: any[] = [];\n signalLogs\n .filter((log) => log.type == AppSignalType.Zome)\n .map((log) => {\n const signal = log.zomeSignal as ZomeSignal;\n const pulses = signal.pulses as ZomeSignalProtocol[];\n const timestamp = prettyDate(new Date(log.ts));\n const from: string = enc64(signal.from) == this.cell.address.agentId.b64? \"self\" : new AgentId(signal.from).short;\n for (const pulse of pulses) {\n if (ZomeSignalProtocolType.Tip in pulse) {\n const tip: TipProtocol = pulse.Tip;\n const type = Object.keys(tip)[0];\n const [ah_base, eh_target] = this.tip2Log(tip, type as TipProtocolType);\n appSignals.push({timestamp, from, pulse: ZomeSignalProtocolType.Tip, type, payload: anyToB64(tip), ah_base, eh_target});\n }\n if (ZomeSignalProtocolType.Entry in pulse) {\n const entryPulse = materializeEntryPulse(pulse.Entry, Object.values(this.zomeProxy.entryTypes));\n const typedEntry = decode(entryPulse.bytes);\n appSignals.push({timestamp, from, pulse: ZomeSignalProtocolType.Entry, state: prettyState(pulse.Entry.state), type: entryPulse.entryType, payload: anyToB64(typedEntry), ah_base: entryPulse.ah.short, eh_target: entryPulse.eh.short});\n }\n if (ZomeSignalProtocolType.Link in pulse) {\n const linkPulse = materializeLinkPulse(pulse.Link, Object.values(this.zomeProxy.linkTypes));\n appSignals.push({timestamp, from, pulse: ZomeSignalProtocolType.Link, state: prettyState(pulse.Link.state), type: linkPulse.link_type, payload: linkPulse.tag, ah_base: linkPulse.base.print(), eh_target: linkPulse.target.print()});\n }\n }\n });\n console.table(appSignals);\n }\n}\n\n\n/** -- Materialze -- */\n\nexport interface EntryPulseMat {\n origAh: ActionId | null,\n ah: ActionId,\n state: string,\n validatedBy: ValidatedBy,\n isNew: boolean,\n ts: Timestamp,\n author: AgentId,\n eh: EntryId,\n entryType: string,\n visibility: EntryVisibility,\n bytes: Uint8Array,\n}\n\n\n/** */\nexport function materializeEntryPulse(entryPulse: EntryPulse, entryTypes: string[]): EntryPulseMat {\n //console.log(\"materializeEntryPulse()\", entryTypes);\n const stateStr = Object.keys(entryPulse.state)[0]!;\n return {\n origAh: entryPulse.orig_ah? new ActionId(entryPulse.orig_ah) : null,\n ah: new ActionId(entryPulse.ah),\n state: stateStr,\n validatedBy: entryPulse.validation,\n isNew: (entryPulse.state as any)[stateStr],\n ts: entryPulse.ts,\n author: new AgentId(entryPulse.author),\n eh: new EntryId(entryPulse.eh),\n entryType: entryTypes[entryPulse.def.entry_index]!,\n visibility: entryPulse.def.visibility,\n bytes: entryPulse.bytes,\n }\n}\n\n\n/** */\nexport function dematerializeEntryPulse(pulse: EntryPulseMat, entryTypes: string[]): EntryPulse {\n let state: Object = {};\n // @ts-ignore\n state[pulse.state] = pulse.isNew;\n //console.log(\"dematerializeEntryPulse()\", state, entryTypes);\n /** */\n let res: EntryPulse = {\n ah: pulse.ah.hash,\n state: state as StateChange,\n validation: pulse.validatedBy,\n ts: pulse.ts,\n author: pulse.author.hash,\n eh: pulse.eh.hash,\n def: {\n entry_index: getIndexByVariant(entryTypes, pulse.entryType),\n zome_index: 42, // Should not be used\n visibility: pulse.visibility,\n },\n bytes: pulse.bytes,\n }\n if (pulse.origAh) {\n res.orig_ah = pulse.origAh.hash\n }\n return res;\n}\n\n\n/** */\nexport interface LinkPulseMat {\n author: AgentId,\n base: LinkableId;\n target: LinkableId,\n timestamp: Timestamp,\n zome_index: ZomeIndex,\n link_type: string,\n tag: Uint8Array,\n create_link_hash: ActionId,\n /** */\n state: string,\n validatedBy: ValidatedBy,\n isNew: Boolean,\n}\n\n/** */\nexport function materializeLinkPulse(linkPulse: LinkPulse, linkTypes: string[]): LinkPulseMat {\n //console.log(\"materializeLinkPulse()\", linkTypes);\n const stateStr = Object.keys(linkPulse.state)[0]!;\n return {\n author: new AgentId(linkPulse.link.author),\n base: intoLinkableId(linkPulse.link.base),\n target: intoLinkableId(linkPulse.link.target),\n timestamp: linkPulse.link.timestamp,\n zome_index: linkPulse.link.zome_index,\n link_type: linkTypes[linkPulse.link.link_type]!,\n tag: linkPulse.link.tag,\n create_link_hash: new ActionId(linkPulse.link.create_link_hash),\n state: Object.keys(linkPulse.state)[0]!,\n validatedBy: linkPulse.validation,\n isNew: (linkPulse.state as any)[stateStr],\n }\n}\n\n/** */\nexport function dematerializeLinkPulse(pulse: LinkPulseMat, linkTypes: string[]): LinkPulse {\n let state: Object = {};\n // @ts-ignore\n state[pulse.state] = pulse.isNew;\n //console.log(\"dematerializeLinkPulse()\", state);\n /** */\n return {\n state: state as StateChange,\n validation: pulse.validatedBy,\n link: {\n author: pulse.author.hash,\n base: pulse.base.hash,\n target: pulse.target.hash,\n timestamp: pulse.timestamp,\n zome_index: pulse.zome_index,\n link_type: getIndexByVariant(linkTypes, pulse.link_type),\n tag: pulse.tag,\n create_link_hash: pulse.create_link_hash.hash,\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ZomeViewModelWithSignals.js","sourceRoot":"","sources":["../src/ZomeViewModelWithSignals.ts"],"names":[],"mappings":"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","sourcesContent":["import {SignalCb, EntryVisibility, Timestamp, ZomeIndex, Signal, SignalType, AppSignal} from \"@holochain/client\";\nimport {\n ActionId,\n AgentId,\n LinkableId,\n anyToB64,\n enc64,\n EntryId,\n EntryPulse,\n getIndexByVariant,\n intoLinkableId,\n LinkPulse,\n prettyDate,\n prettyState,\n SignalLog,\n AppSignalType,\n StateChange,\n TipProtocol,\n TipProtocolVariantEntry,\n TipProtocolVariantLink,\n ZomeSignal,\n ZomeSignalProtocol,\n ZomeSignalProtocolType,\n ZomeSignalProtocolVariantEntry,\n ZomeSignalProtocolVariantLink,\n TipProtocolType,\n intoAnyId,\n ValidatedBy, SynchronizeTipInput, TipProtocolVariantAppValue, TipProtocolVariantAppCustom,\n h64,\n} from \"@ddd-qc/cell-proxy\";\nimport {ZomeViewModel} from \"./ZomeViewModel\";\nimport {decode} from \"@msgpack/msgpack\";\n\n\n/** */\nexport interface CastLog {\n ts: Timestamp,\n tip: TipProtocol,\n peers: AgentId[],\n response: Timestamp | undefined,\n}\n\n\n/**\n * ZVM with support for ZomeSignals\n */\nexport abstract class ZomeViewModelWithSignals extends ZomeViewModel {\n\n private _castLogs: CastLog[] = [];\n\n /** Methods to override */\n protected handleCustomTip(_customTip: Uint8Array, _from: AgentId): ZomeSignalProtocol | undefined { return undefined;}\n protected handleValueTip(_key: string, _value: string, _from: AgentId): ZomeSignalProtocol | undefined { return undefined;}\n protected async handleEntryPulse(_pulse: EntryPulseMat, _from: AgentId): Promise<void> {}\n protected async handleLinkPulse(_pulse: LinkPulseMat, _from: AgentId): Promise<void> {}\n\n\n /** */\n override signalHandler?: SignalCb = this.mySignalHandler;\n\n\n /** */\n private mySignalHandler(signal: Signal): void {\n const defaultZomeName = (this.constructor as typeof ZomeViewModelWithSignals).ZOME_PROXY.DEFAULT_ZOME_NAME;\n //console.log(\"mySignalHandler()\", appSignal, defaultZomeName);\n if (SignalType.App != signal.type) {\n return;\n }\n const appSignal: AppSignal = signal.value;\n if (appSignal.zome_name !== defaultZomeName) {\n return;\n }\n const zomeSignal = appSignal.payload as ZomeSignal;\n if (!(\"pulses\" in zomeSignal)) {\n return;\n }\n /*await*/ this.handleSignal(zomeSignal);\n }\n\n\n /** */\n private _knownPulses: Set<BigInt> = new Set();\n private async handleSignal(signal: ZomeSignal): Promise<void> {\n const from = new AgentId(signal.from);\n let all = [];\n for (let pulse of signal.pulses) {\n /** Skip duplicate pulse */\n const pulseHash = h64(JSON.stringify(pulse));\n if (this._knownPulses.has(pulseHash)) {\n console.debug(\"handleSignal() Skipping duplicate pulse\", pulseHash);\n continue;\n }\n this._knownPulses.add(pulseHash);\n /** -- Handle Signal according to type -- */\n /** Change tip to Entry or Link signal */\n if (ZomeSignalProtocolType.Tip in pulse) {\n pulse = this.handleTip(pulse.Tip as TipProtocol, from)!;\n if (!pulse) {\n continue;\n }\n }\n if (ZomeSignalProtocolType.Entry in pulse) {\n const entryPulseMat = materializeEntryPulse(pulse.Entry as EntryPulse, (this.constructor as typeof ZomeViewModel).ENTRY_TYPES);\n all.push(this.handleEntryPulse(entryPulseMat, from));\n /** If the new entry is from this agent, broadcast to peers as a tip */\n if (entryPulseMat.isNew && this.cell.address.agentId.equals(from) && entryPulseMat.visibility == \"Public\") {\n this.broadcastTip({Entry: pulse.Entry as EntryPulse});\n }\n continue;\n }\n if (ZomeSignalProtocolType.Link in pulse) {\n const linkPulseMat = materializeLinkPulse(pulse.Link as LinkPulse, (this.constructor as typeof ZomeViewModel).LINK_TYPES);\n all.push(this.handleLinkPulse(linkPulseMat, from));\n /** If the new Link is from this agent, broadcast to peers as a tip */\n if (linkPulseMat.isNew && this.cell.address.agentId.equals(from)) {\n this.broadcastTip({Link: pulse.Link as LinkPulse});\n }\n continue;\n }\n }\n await Promise.all(all);\n this.notifySubscribers();\n }\n\n\n /** */\n private handleTip(tip: TipProtocol, from: AgentId): ZomeSignalProtocol | undefined {\n const type = Object.keys(tip)[0];\n console.log(\"handleTip()\", type, from, tip);\n /* Handle tip according to its type */\n switch (type) {\n case \"Ping\":\n case \"Pong\":\n break;\n case \"Entry\": return {Entry: (tip as TipProtocolVariantEntry).Entry} as ZomeSignalProtocolVariantEntry; break;\n case \"Link\": return {Link: (tip as TipProtocolVariantLink).Link} as ZomeSignalProtocolVariantLink; break;\n case \"AppValue\":\n const key = (tip as TipProtocolVariantAppValue).AppValue[0];\n const value = (tip as TipProtocolVariantAppValue).AppValue[1];\n return this.handleValueTip(key, value, from);\n break;\n case \"AppCustom\":\n return this.handleCustomTip((tip as TipProtocolVariantAppCustom).AppCustom, from);\n break;\n }\n return undefined;\n }\n\n\n /** */\n synchronizeValueTip(key: string, value: string, recipient: AgentId, zomeName: string): void {\n /* Only MainView can cast tips */\n if (!this.isMainView) {\n return;\n }\n console.debug(`synchronizeValueTip() Sending to ${recipient.b64} for zome ${zomeName}`);\n const tip: TipProtocol = {AppValue: [key, value]};\n this.zomeProxy.call('synchronize_tip', {tip, recipient: recipient.hash, zomeName} as SynchronizeTipInput)\n .then((response) => this._castLogs.push({ts: Date.now(), tip, peers: [recipient], response}))\n .catch((e) => {console.warn(\"zome call to synchronize_tip() failed: \", e)})\n }\n\n\n /** */\n synchronizeCustomTip(appTip: Uint8Array, recipient: AgentId, zomeName: string): void {\n /* Only MainView can cast tips */\n if (!this.isMainView) {\n return;\n }\n console.debug(`synchronizeCustomTip() Sending to ${recipient.b64} for zome ${zomeName}`);\n const tip: TipProtocol = {AppCustom: appTip};\n this.zomeProxy.call('synchronize_tip', {tip, recipient: recipient.hash, zomeName} as SynchronizeTipInput)\n .then((response) => this._castLogs.push({ts: Date.now(), tip, peers: [recipient], response}))\n .catch((e) => {console.warn(\"zome call to synchronize_tip() failed: \", e)})\n }\n\n\n /** Cast Tip to all known livePeers */\n broadcastTip(tip: TipProtocol, agents?: Array<AgentId>, timeoutMs?: number): void {\n /** Only MainView can cast tips */\n if (!this.isMainView) {\n return;\n }\n agents = agents ?? this._dvmParent.livePeers;\n /** Skip if no recipients or sending to self only */\n const filtered = agents.filter((key) => key.b64 != this.cell.address.agentId.b64);\n //if (!agents || agents.length == 1 && agents[0] === this._cellProxy.cell.agentPubKey) {\n if (!filtered || filtered.length == 0) {\n console.debug(\"broadcastTip() aborted: No recipients\")\n return;\n }\n /** Broadcast */\n console.debug(`broadcastTip() ${this.cell.address.agentId.short} sending Tip \"${Object.keys(tip)[0]}\" to agents ${filtered.map((key) => key.b64)}`);\n const peers = agents.map((key) => key.hash);\n this.zomeProxy.call('cast_tip', {tip, peers}, undefined, timeoutMs ?? 10 * 1000)\n .then(() => this._castLogs.push({ts: Date.now(), tip, peers: agents, response: undefined}))\n .catch((e) => {console.warn(\"broadcastTip() zome call to cast_tip() failed: \", e)})\n }\n\n\n /** */\n dumpCastLogs() {\n console.warn(`Tips sent from zome \"${this.zomeName}\"`);\n let appSignals: any[] = [];\n this._castLogs.map((log) => {\n const type = Object.keys(log.tip)[0]!;\n const payload = (log.tip as any)[type];\n appSignals.push({\n timestamp: prettyDate(new Date(log.ts)),\n type,\n payload,\n count: log.peers.length,\n first: log.peers[0]? log.peers[0].short : undefined,\n response: log.response });\n });\n console.table(appSignals);\n }\n\n\n private tip2Log(tip: TipProtocol, type: TipProtocolType): [string, string] {\n switch (type) {\n case TipProtocolType.Ping:\n case TipProtocolType.Pong: return [\"\", \"\"]; break;\n case TipProtocolType.AppValue: {\n const [key, value] = (tip as TipProtocolVariantAppValue).AppValue;\n return [key, value];\n }\n break;\n case TipProtocolType.AppCustom: {\n const app = (tip as TipProtocolVariantAppCustom).AppCustom;\n return [\"\" + app.length, \"\"];\n }\n break;\n case TipProtocolType.Entry: {\n const entryPulse = (tip as TipProtocolVariantEntry).Entry;\n return [intoAnyId(entryPulse.ah).short, intoAnyId(entryPulse.eh).short];\n }\n break;\n case TipProtocolType.Link: {\n const linkPulse = (tip as TipProtocolVariantLink).Link;\n return [intoAnyId(linkPulse.link.base).short, intoAnyId(linkPulse.link.target).short];\n }\n break;\n }\n }\n\n\n /** */\n override dumpSignalLogs(signalLogs: SignalLog[]) {\n this.dumpCastLogs();\n console.warn(`Signals received from zome \"${this.zomeName}\"`);\n let appSignals: any[] = [];\n signalLogs\n .filter((log) => log.type == AppSignalType.Zome)\n .map((log) => {\n const signal = log.zomeSignal as ZomeSignal;\n const pulses = signal.pulses as ZomeSignalProtocol[];\n const timestamp = prettyDate(new Date(log.ts));\n const from: string = enc64(signal.from) == this.cell.address.agentId.b64? \"self\" : new AgentId(signal.from).short;\n for (const pulse of pulses) {\n if (ZomeSignalProtocolType.Tip in pulse) {\n const tip: TipProtocol = pulse.Tip;\n const type = Object.keys(tip)[0];\n const [ah_base, eh_target] = this.tip2Log(tip, type as TipProtocolType);\n appSignals.push({timestamp, from, pulse: ZomeSignalProtocolType.Tip, type, payload: anyToB64(tip), ah_base, eh_target});\n }\n if (ZomeSignalProtocolType.Entry in pulse) {\n const entryPulse = materializeEntryPulse(pulse.Entry, Object.values(this.zomeProxy.entryTypes));\n const typedEntry = decode(entryPulse.bytes);\n appSignals.push({timestamp, from, pulse: ZomeSignalProtocolType.Entry, state: prettyState(pulse.Entry.state), type: entryPulse.entryType, payload: anyToB64(typedEntry), ah_base: entryPulse.ah.short, eh_target: entryPulse.eh.short});\n }\n if (ZomeSignalProtocolType.Link in pulse) {\n const linkPulse = materializeLinkPulse(pulse.Link, Object.values(this.zomeProxy.linkTypes));\n appSignals.push({timestamp, from, pulse: ZomeSignalProtocolType.Link, state: prettyState(pulse.Link.state), type: linkPulse.link_type, payload: linkPulse.tag, ah_base: linkPulse.base.print(), eh_target: linkPulse.target.print()});\n }\n }\n });\n console.table(appSignals);\n }\n}\n\n\n/** -- Materialze -- */\n\nexport interface EntryPulseMat {\n origAh: ActionId | null,\n ah: ActionId,\n state: string,\n validatedBy: ValidatedBy,\n isNew: boolean,\n ts: Timestamp,\n author: AgentId,\n eh: EntryId,\n entryType: string,\n visibility: EntryVisibility,\n bytes: Uint8Array,\n}\n\n\n/** */\nexport function materializeEntryPulse(entryPulse: EntryPulse, entryTypes: string[]): EntryPulseMat {\n //console.log(\"materializeEntryPulse()\", entryTypes);\n const stateStr = Object.keys(entryPulse.state)[0]!;\n return {\n origAh: entryPulse.orig_ah? new ActionId(entryPulse.orig_ah) : null,\n ah: new ActionId(entryPulse.ah),\n state: stateStr,\n validatedBy: entryPulse.validation,\n isNew: (entryPulse.state as any)[stateStr],\n ts: entryPulse.ts,\n author: new AgentId(entryPulse.author),\n eh: new EntryId(entryPulse.eh),\n entryType: entryTypes[entryPulse.def.entry_index]!,\n visibility: entryPulse.def.visibility,\n bytes: entryPulse.bytes,\n }\n}\n\n\n/** */\nexport function dematerializeEntryPulse(pulse: EntryPulseMat, entryTypes: string[]): EntryPulse {\n let state: Object = {};\n // @ts-ignore\n state[pulse.state] = pulse.isNew;\n //console.log(\"dematerializeEntryPulse()\", state, entryTypes);\n /** */\n let res: EntryPulse = {\n ah: pulse.ah.hash,\n state: state as StateChange,\n validation: pulse.validatedBy,\n ts: pulse.ts,\n author: pulse.author.hash,\n eh: pulse.eh.hash,\n def: {\n entry_index: getIndexByVariant(entryTypes, pulse.entryType),\n zome_index: 42, // Should not be used\n visibility: pulse.visibility,\n },\n bytes: pulse.bytes,\n }\n if (pulse.origAh) {\n res.orig_ah = pulse.origAh.hash\n }\n return res;\n}\n\n\n/** */\nexport interface LinkPulseMat {\n author: AgentId,\n base: LinkableId;\n target: LinkableId,\n timestamp: Timestamp,\n zome_index: ZomeIndex,\n link_type: string,\n tag: Uint8Array,\n create_link_hash: ActionId,\n /** */\n state: string,\n validatedBy: ValidatedBy,\n isNew: Boolean,\n}\n\n/** */\nexport function materializeLinkPulse(linkPulse: LinkPulse, linkTypes: string[]): LinkPulseMat {\n //console.log(\"materializeLinkPulse()\", linkTypes);\n const stateStr = Object.keys(linkPulse.state)[0]!;\n return {\n author: new AgentId(linkPulse.link.author),\n base: intoLinkableId(linkPulse.link.base),\n target: intoLinkableId(linkPulse.link.target),\n timestamp: linkPulse.link.timestamp,\n zome_index: linkPulse.link.zome_index,\n link_type: linkTypes[linkPulse.link.link_type]!,\n tag: linkPulse.link.tag,\n create_link_hash: new ActionId(linkPulse.link.create_link_hash),\n state: Object.keys(linkPulse.state)[0]!,\n validatedBy: linkPulse.validation,\n isNew: (linkPulse.state as any)[stateStr],\n }\n}\n\n/** */\nexport function dematerializeLinkPulse(pulse: LinkPulseMat, linkTypes: string[]): LinkPulse {\n let state: Object = {};\n // @ts-ignore\n state[pulse.state] = pulse.isNew;\n //console.log(\"dematerializeLinkPulse()\", state);\n /** */\n return {\n state: state as StateChange,\n validation: pulse.validatedBy,\n link: {\n author: pulse.author.hash,\n base: pulse.base.hash,\n target: pulse.target.hash,\n timestamp: pulse.timestamp,\n zome_index: pulse.zome_index,\n link_type: getIndexByVariant(linkTypes, pulse.link_type),\n tag: pulse.tag,\n create_link_hash: pulse.create_link_hash.hash,\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-qc/lit-happ",
3
- "version": "0.34.10",
3
+ "version": "0.34.12",
4
4
  "description": "MVVM Framework for holochain apps using Lit",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",