@ddd-qc/lit-happ 0.34.3 → 0.34.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/HappElement.js
CHANGED
|
@@ -38,7 +38,6 @@ export class HappElement extends LitElement {
|
|
|
38
38
|
console.debug("[lit-happ] HappElement: Finished initializing Happ perspective with Local data. App: " + this.hvm.appId);
|
|
39
39
|
}
|
|
40
40
|
async initializePerspectiveFromNetwork() {
|
|
41
|
-
await this.hvm.initializePerspectiveFromLocal();
|
|
42
41
|
await this.perspectiveInitializedFromNetwork();
|
|
43
42
|
}
|
|
44
43
|
shouldUpdate() {
|
package/dist/HappElement.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HappElement.js","sourceRoot":"","sources":["../src/HappElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAGH,iBAAiB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAS9C,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAO9C,MAAM,OAAO,WAAY,SAAQ,UAAU;IAezC,YAAsB,OAA4B,EAAE,UAAmB,EAAE,KAAsB;QAC7F,KAAK,EAAE,CAAC;QAJD,iBAAY,GAAG,KAAK,CAAC;QAK5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC;aACxC,IAAI,CAAC,GAAG,EAAE;YACP,OAAO,CAAC,KAAK,CAAC,2CAA2C,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,sEAAsE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACtG,IAAI,CAAC,gCAAgC,EAAE;iBAClC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,sFAAsF,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3I,CAAC,CAAC,CAAA;IACR,CAAC;IAGS,KAAK,CAAC,YAAY,CAAC,OAA4B,EAAE,UAAmB,EAAE,KAAsB;QACpG,MAAM,MAAM,GAAI,IAAI,CAAC,WAAkC,CAAC,OAAO,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,CAAC,yDAAyD,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjG,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;IAC9C,CAAC;IAGD,KAAK,CAAC,8BAA8B;QAChC,MAAM,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;QAChD,MAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,uFAAuF,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5H,CAAC;IAGD,KAAK,CAAC,gCAAgC;
|
|
1
|
+
{"version":3,"file":"HappElement.js","sourceRoot":"","sources":["../src/HappElement.ts"],"names":[],"mappings":"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","sourcesContent":["import {LitElement} from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport {\n BaseRoleName,\n AppProxy,\n ConductorAppProxy, HcConnectionOptions,\n} from \"@ddd-qc/cell-proxy\";\nimport {HappViewModel} from \"./HappViewModel\";\nimport {CellDef, HvmDef} from \"./definitions\";\nimport {\n ClonedCell,\n InstalledAppId,\n} from \"@holochain/client\";\nimport {DnaViewModel} from \"./DnaViewModel\";\n// @ts-ignore\nimport * as net from \"net\";\nimport {NetworkCaller} from \"./NetworkCaller\";\n\n\n/**\n * Base class for HappElements, which are LitElements that wrap a HappViewModel,\n * i.e. the main WebComponent of a single Holochain app.\n */\nexport class HappElement extends LitElement {\n\n /** Must be defined by subclass */\n static HVM_DEF: HvmDef;\n\n /** Set during init triggered at ctor */\n protected appProxy!: AppProxy;\n @state() hvm!: HappViewModel;\n\n /** Continually calls networkInfo for a specific cell with appProxy */\n networkCaller?: NetworkCaller;\n\n @state() _constructed = false;\n\n /** Ctor */\n protected constructor(options: HcConnectionOptions, happSha256?: string, appId?: InstalledAppId) {\n super();\n this.constructHvm(options, happSha256, appId)\n .then(() => {\n console.debug(\"[lit-happ] HappElement constructed. App: \" + this.hvm.appId);\n this._constructed = true;\n console.debug(\"[lit-happ] HappElement: Initializing Perspective from Network. App: \" + this.hvm.appId)\n this.initializePerspectiveFromNetwork()\n .then(() => console.debug(\"[lit-happ] HappElement: Finished initializing HappElement Network Perspective. App: \" + this.hvm.appId))\n })\n }\n\n /** */\n protected async constructHvm(options: HcConnectionOptions, happSha256?: string, appId?: InstalledAppId): Promise<void> {\n const hvmDef = (this.constructor as typeof HappElement).HVM_DEF;\n if (!hvmDef) {\n throw Error(\"HVM_DEF static field undefined in HappElement subclass \" + this.constructor.name);\n }\n /** Override appId */\n if (appId) {\n hvmDef.id = appId;\n }\n this.appProxy = await ConductorAppProxy.new(hvmDef.id, options, happSha256);\n this.hvm = await HappViewModel.new(this, this.appProxy, hvmDef, true);\n this.networkCaller = new NetworkCaller(this.appProxy);\n /** FIXME: wait for genesis to finish first? */\n await this.hvm.authorizeAllZomeCalls(this.appProxy.adminWs);\n await this.hvmConstructed();\n await this.initializePerspectiveFromLocal();\n }\n\n /** */\n async initializePerspectiveFromLocal(): Promise<void> {\n await this.hvm.initializePerspectiveFromLocal();\n await this.perspectiveInitializedFromLocal();\n console.debug(\"[lit-happ] HappElement: Finished initializing Happ perspective with Local data. App: \" + this.hvm.appId);\n }\n\n /** */\n async initializePerspectiveFromNetwork(): Promise<void> {\n //await this.hvm.initializePerspectiveFromNetwork(); // // FIXME: Call Network once Holochain GetStrategy:Network issue is fixed.\n await this.perspectiveInitializedFromNetwork();\n }\n\n /** -- Lit lifecycle hooks -- */\n\n /** */\n override shouldUpdate() {\n return this._constructed && !!this.hvm;\n }\n\n\n /** -- Hooks for subclasses to override -- */\n\n /** */\n async hvmConstructed(): Promise<void> {}\n /** */\n async perspectiveInitializedFromLocal(): Promise<void> {}\n /** */\n async perspectiveInitializedFromNetwork(): Promise<void> {}\n\n\n /** -- Methods -- */\n\n /** */\n async createClone(baseRoleName: BaseRoleName, cellDef?: CellDef): Promise<[ClonedCell, DnaViewModel]> {\n return this.hvm.cloneDvm(baseRoleName, cellDef);\n }\n}\n"]}
|
package/dist/HappMultiElement.js
CHANGED
|
@@ -46,9 +46,6 @@ export class HappMultiElement extends LitElement {
|
|
|
46
46
|
await this.perspectiveInitializedFromLocal();
|
|
47
47
|
}
|
|
48
48
|
async initializePerspectiveFromNetwork() {
|
|
49
|
-
for (const [_proxy, hvm] of this.hvms) {
|
|
50
|
-
await hvm.initializePerspectiveFromLocal();
|
|
51
|
-
}
|
|
52
49
|
await this.perspectiveInitializedFromNetwork();
|
|
53
50
|
}
|
|
54
51
|
shouldUpdate() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HappMultiElement.js","sourceRoot":"","sources":["../src/HappMultiElement.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAEH,iBAAiB,EACjB,YAAY,EACD,UAAU,EAAS,WAAW,GAC5C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAQ9C,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAO9C,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAO9C,IAAI,KAAK,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA,CAAA,CAAC;IAS7C,YACE,cAAuF,EACvE,UAAmB;QAEnC,KAAK,EAAE,CAAC;QAFQ,eAAU,GAAV,UAAU,CAAS;QAZ5B,SAAI,GAAgC,EAAE,CAAA;QAOtC,iBAAY,GAAG,KAAK,CAAC;QAQ5B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;aAC/B,IAAI,CAAC,GAAG,EAAE;YACP,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC7E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAA;YACnF,IAAI,CAAC,gCAAgC,EAAE;iBAClC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC,CAAA;QACnG,CAAC,CAAC,CAAA;IACN,CAAC;IAGS,KAAK,CAAC,aAAa,CAAC,cAAmG;QAC/H,MAAM,MAAM,GAAI,IAAI,CAAC,WAAuC,CAAC,OAAO,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,CAAC,8DAA8D,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtG,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC7E,IAAI,KAAK,EAAE,CAAC;gBAEV,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;YACpB,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7E,MAAM,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAA;QAC3F,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;IAC9C,CAAC;IAGD,KAAK,CAAC,8BAA8B;QAChC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC,8BAA8B,EAAE,CAAC;QAC/C,CAAC;QACD,MAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,gCAAgC;QACpC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,GAAG,CAAC,8BAA8B,EAAE,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,iCAAiC,EAAE,CAAC;IACjD,CAAC;IAKU,YAAY;QACjB,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC;IAMD,KAAK,CAAC,eAAe,KAAmB,CAAC;IAEzC,KAAK,CAAC,+BAA+B,KAAmB,CAAC;IAEzD,KAAK,CAAC,iCAAiC,KAAmB,CAAC;IAM7D,KAAK,CAAC,cAAc,CAAC,YAAqB;QAGxC,MAAM,MAAM,GAAI,IAAI,CAAC,WAAuC,CAAC,OAAO,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,MAAM,CAAC,iCAAiC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,SAAS,GAAkB,EAAE,CAAC;QAClC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,OAAO,CAAC,MAAM,CAAC,wCAAwC,GAAG,YAAY,CAAC,CAAC;YACjF,CAAC;YACD,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;QAGD,IAAI,cAAc,GAAwB,IAAI,UAAU,EAAE,CAAC;QAC3D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;QAGD,MAAM,WAAW,GAAmD,EAAE,CAAC;QACvE,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,EAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAC,CAAC,CAAC;gBACpG,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,OAAO,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC;gBAC9C,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CAEF;AAnIU;IAAR,KAAK,EAAE;8CAAuC;AAOtC;IAAR,KAAK,EAAE;sDAAsB","sourcesContent":["import {LitElement} from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport {\n AppProxy,\n ConductorAppProxy,\n flattenCells,\n CellIdStr, AgentIdMap, DnaId, CellAddress, HcConnectionOptions,\n} from \"@ddd-qc/cell-proxy\";\nimport {HappViewModel} from \"./HappViewModel\";\nimport {HvmDef} from \"./definitions\";\nimport {\n InstalledAppId, NetworkMetrics,\n Timestamp\n} from \"@holochain/client\";\n// @ts-ignore\nimport * as net from \"net\";\nimport {NetworkCaller} from \"./NetworkCaller\";\n\n\n/**\n * Base class for HappMultiElements, which are LitElements that wrap multiple HappViewModel,\n * i.e. the main WebComponent of a web-app using multiple Holochain apps.\n */\nexport class HappMultiElement extends LitElement {\n\n /** Must be defined by subclass */\n static HVM_DEF: HvmDef;\n\n /** Set during init triggered at ctor */\n @state() hvms: [AppProxy, HappViewModel][] = []\n get count(): number {return this.hvms.length}\n\n /** Continually calls networkInfo for a specific cell with appProxy */\n networkCaller?: NetworkCaller;\n\n\n @state() _constructed = false;\n\n /** Ctor */\n protected constructor(\n appConnections: [HcConnectionOptions, string | undefined, InstalledAppId | undefined][],\n public readonly isMainView: boolean,\n ) {\n super();\n this.constructHvms(appConnections)\n .then(() => {\n console.debug(\"[lit-happ] HappMultiElement: Local Perspective initialized.\");\n this._constructed = true;\n console.debug(\"[lit-happ] HappMultiElement: Initializing Perspective from Network\")\n this.initializePerspectiveFromNetwork()\n .then(() => console.debug(\"[lit-happ] HappMultiElement: Network Perspective initialized.\"))\n })\n }\n\n /** */\n protected async constructHvms(appConnections: [HcConnectionOptions, happSha256: string | undefined, InstalledAppId | undefined][]): Promise<void> {\n const hvmDef = (this.constructor as typeof HappMultiElement).HVM_DEF;\n if (!hvmDef) {\n throw Error(\"HVM_DEF static field undefined in HappMultiElement subclass \" + this.constructor.name);\n }\n for (const [options, happSha256, appId] of appConnections) {\n const appProxy = await ConductorAppProxy.new(hvmDef.id, options, happSha256);\n if (appId) {\n /** Override appId */\n hvmDef.id = appId;\n }\n const hvm = await HappViewModel.new(this, appProxy, hvmDef, this.isMainView);\n await hvm.authorizeAllZomeCalls(appProxy.adminWs);\n this.hvms.push([appProxy, hvm]);\n }\n this.networkCaller = new NetworkCaller(this.hvms[0]![0]); // use first appProxy\n await this.hvmsConstructed();\n console.debug(\"[lit-happ] HappMultiElement constructed. Initializing Local Perspective...\")\n await this.initializePerspectiveFromLocal();\n }\n\n /** */\n async initializePerspectiveFromLocal(): Promise<void> {\n for (const [_proxy, hvm] of this.hvms) {\n await hvm.initializePerspectiveFromLocal();\n }\n await this.perspectiveInitializedFromLocal();\n }\n\n async initializePerspectiveFromNetwork(): Promise<void> {\n for (const [_proxy, hvm] of this.hvms) {\n await hvm.initializePerspectiveFromLocal(); // FIXME: Call Network once Holochain GetStrategy:Network issue is fixed.\n }\n await this.perspectiveInitializedFromNetwork();\n }\n\n /** -- Lit lifecycle hooks -- */\n\n /** */\n override shouldUpdate() {\n return this._constructed && this.hvms.length > 0;\n }\n\n\n /** -- Hooks for subclasses to override -- */\n\n /** */\n async hvmsConstructed(): Promise<void> {}\n /** */\n async perspectiveInitializedFromLocal(): Promise<void> {}\n /** */\n async perspectiveInitializedFromNetwork(): Promise<void> {}\n\n\n /** -- Methods -- */\n\n /** */\n async networkInfoAll(baseRoleName?: string): Promise<Record<CellIdStr, [Timestamp, NetworkMetrics]>> {\n //console.debug(`networkInfoAll() \"${baseRoleName}\"`);\n /** Grab cellMap */\n const hvmDef = (this.constructor as typeof HappMultiElement).HVM_DEF;\n const appProxy = this.hvms[0]![0];\n const cellMap = appProxy.getAppCells(hvmDef.id);\n if (!cellMap) {\n return Promise.reject(\"No cells found at given appId: \" + hvmDef.id);\n }\n /** Get cell Ids */\n let cellAddrs: CellAddress[] = [];\n if (baseRoleName) {\n const cfr = cellMap[baseRoleName];\n if (!cfr) {\n return Promise.reject(\"No cells found at given baseRoleName: \" + baseRoleName);\n }\n cellAddrs = flattenCells(cfr);\n } else {\n for (const cells of Object.values(cellMap)) {\n cellAddrs = cellAddrs.concat(flattenCells(cells))\n }\n }\n //console.debug(`networkInfoAll() cellIds`, cellAddrs.map(cellId => cellId.str));\n /* Sort by agent key */\n let dnaPerAgentMap: AgentIdMap<DnaId[]> = new AgentIdMap();\n for (const cellAddr of cellAddrs) {\n if (!dnaPerAgentMap.get(cellAddr.agentId)) {\n dnaPerAgentMap.set(cellAddr.agentId, []);\n }\n dnaPerAgentMap.get(cellAddr.agentId)!.push(cellAddr.dnaId);\n }\n //console.debug(`networkInfoAll() dnaMap`, dnaPerAgentMap);\n /** Call NetworkInfo per AgentId */\n const allNetInfos: Record<CellIdStr, [Timestamp, NetworkMetrics]> = {};\n for (const [agent, dnaIds] of dnaPerAgentMap.entries()) {\n for (const dna of dnaIds) {\n const response = await appProxy.dumpNetworkMetrics({dna_hash: dna.hash, include_dht_summary: true});\n if (!response || !response[dna.b64]) {\n throw Promise.reject(\"No network metrics response for dna\");\n }\n const idStr = new CellAddress(dna, agent).str;\n allNetInfos[idStr] = [Date.now(), response[dna.b64]!];\n }\n }\n /* Done */\n return allNetInfos;\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HappMultiElement.js","sourceRoot":"","sources":["../src/HappMultiElement.ts"],"names":[],"mappings":"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","sourcesContent":["import {LitElement} from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport {\n AppProxy,\n ConductorAppProxy,\n flattenCells,\n CellIdStr, AgentIdMap, DnaId, CellAddress, HcConnectionOptions,\n} from \"@ddd-qc/cell-proxy\";\nimport {HappViewModel} from \"./HappViewModel\";\nimport {HvmDef} from \"./definitions\";\nimport {\n InstalledAppId, NetworkMetrics,\n Timestamp\n} from \"@holochain/client\";\n// @ts-ignore\nimport * as net from \"net\";\nimport {NetworkCaller} from \"./NetworkCaller\";\n\n\n/**\n * Base class for HappMultiElements, which are LitElements that wrap multiple HappViewModel,\n * i.e. the main WebComponent of a web-app using multiple Holochain apps.\n */\nexport class HappMultiElement extends LitElement {\n\n /** Must be defined by subclass */\n static HVM_DEF: HvmDef;\n\n /** Set during init triggered at ctor */\n @state() hvms: [AppProxy, HappViewModel][] = []\n get count(): number {return this.hvms.length}\n\n /** Continually calls networkInfo for a specific cell with appProxy */\n networkCaller?: NetworkCaller;\n\n\n @state() _constructed = false;\n\n /** Ctor */\n protected constructor(\n appConnections: [HcConnectionOptions, string | undefined, InstalledAppId | undefined][],\n public readonly isMainView: boolean,\n ) {\n super();\n this.constructHvms(appConnections)\n .then(() => {\n console.debug(\"[lit-happ] HappMultiElement: Local Perspective initialized.\");\n this._constructed = true;\n console.debug(\"[lit-happ] HappMultiElement: Initializing Perspective from Network\")\n this.initializePerspectiveFromNetwork()\n .then(() => console.debug(\"[lit-happ] HappMultiElement: Network Perspective initialized.\"))\n })\n }\n\n /** */\n protected async constructHvms(appConnections: [HcConnectionOptions, happSha256: string | undefined, InstalledAppId | undefined][]): Promise<void> {\n const hvmDef = (this.constructor as typeof HappMultiElement).HVM_DEF;\n if (!hvmDef) {\n throw Error(\"HVM_DEF static field undefined in HappMultiElement subclass \" + this.constructor.name);\n }\n for (const [options, happSha256, appId] of appConnections) {\n const appProxy = await ConductorAppProxy.new(hvmDef.id, options, happSha256);\n if (appId) {\n /** Override appId */\n hvmDef.id = appId;\n }\n const hvm = await HappViewModel.new(this, appProxy, hvmDef, this.isMainView);\n await hvm.authorizeAllZomeCalls(appProxy.adminWs);\n this.hvms.push([appProxy, hvm]);\n }\n this.networkCaller = new NetworkCaller(this.hvms[0]![0]); // use first appProxy\n await this.hvmsConstructed();\n console.debug(\"[lit-happ] HappMultiElement constructed. Initializing Local Perspective...\")\n await this.initializePerspectiveFromLocal();\n }\n\n /** */\n async initializePerspectiveFromLocal(): Promise<void> {\n for (const [_proxy, hvm] of this.hvms) {\n await hvm.initializePerspectiveFromLocal();\n }\n await this.perspectiveInitializedFromLocal();\n }\n\n async initializePerspectiveFromNetwork(): Promise<void> {\n // for (const [_proxy, hvm] of this.hvms) {\n // await hvm.initializePerspectiveFromNetwork(); // FIXME: Call Network once Holochain GetStrategy:Network issue is fixed.\n // }\n await this.perspectiveInitializedFromNetwork();\n }\n\n /** -- Lit lifecycle hooks -- */\n\n /** */\n override shouldUpdate() {\n return this._constructed && this.hvms.length > 0;\n }\n\n\n /** -- Hooks for subclasses to override -- */\n\n /** */\n async hvmsConstructed(): Promise<void> {}\n /** */\n async perspectiveInitializedFromLocal(): Promise<void> {}\n /** */\n async perspectiveInitializedFromNetwork(): Promise<void> {}\n\n\n /** -- Methods -- */\n\n /** */\n async networkInfoAll(baseRoleName?: string): Promise<Record<CellIdStr, [Timestamp, NetworkMetrics]>> {\n //console.debug(`networkInfoAll() \"${baseRoleName}\"`);\n /** Grab cellMap */\n const hvmDef = (this.constructor as typeof HappMultiElement).HVM_DEF;\n const appProxy = this.hvms[0]![0];\n const cellMap = appProxy.getAppCells(hvmDef.id);\n if (!cellMap) {\n return Promise.reject(\"No cells found at given appId: \" + hvmDef.id);\n }\n /** Get cell Ids */\n let cellAddrs: CellAddress[] = [];\n if (baseRoleName) {\n const cfr = cellMap[baseRoleName];\n if (!cfr) {\n return Promise.reject(\"No cells found at given baseRoleName: \" + baseRoleName);\n }\n cellAddrs = flattenCells(cfr);\n } else {\n for (const cells of Object.values(cellMap)) {\n cellAddrs = cellAddrs.concat(flattenCells(cells))\n }\n }\n //console.debug(`networkInfoAll() cellIds`, cellAddrs.map(cellId => cellId.str));\n /* Sort by agent key */\n let dnaPerAgentMap: AgentIdMap<DnaId[]> = new AgentIdMap();\n for (const cellAddr of cellAddrs) {\n if (!dnaPerAgentMap.get(cellAddr.agentId)) {\n dnaPerAgentMap.set(cellAddr.agentId, []);\n }\n dnaPerAgentMap.get(cellAddr.agentId)!.push(cellAddr.dnaId);\n }\n //console.debug(`networkInfoAll() dnaMap`, dnaPerAgentMap);\n /** Call NetworkInfo per AgentId */\n const allNetInfos: Record<CellIdStr, [Timestamp, NetworkMetrics]> = {};\n for (const [agent, dnaIds] of dnaPerAgentMap.entries()) {\n for (const dna of dnaIds) {\n const response = await appProxy.dumpNetworkMetrics({dna_hash: dna.hash, include_dht_summary: true});\n if (!response || !response[dna.b64]) {\n throw Promise.reject(\"No network metrics response for dna\");\n }\n const idStr = new CellAddress(dna, agent).str;\n allNetInfos[idStr] = [Date.now(), response[dna.b64]!];\n }\n }\n /* Done */\n return allNetInfos;\n }\n\n}\n"]}
|