@ddd-qc/lit-happ 0.33.0 → 0.33.2
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/DnaElement.js.map +1 -1
- package/dist/DnaViewModel.d.ts +2 -2
- package/dist/DnaViewModel.d.ts.map +1 -1
- package/dist/DnaViewModel.js +4 -4
- package/dist/DnaViewModel.js.map +1 -1
- package/dist/HappElement.d.ts +2 -2
- package/dist/HappElement.d.ts.map +1 -1
- package/dist/HappElement.js +6 -6
- package/dist/HappElement.js.map +1 -1
- package/dist/HappMultiElement.d.ts +2 -2
- package/dist/HappMultiElement.d.ts.map +1 -1
- package/dist/HappMultiElement.js +6 -6
- package/dist/HappMultiElement.js.map +1 -1
- package/dist/HappViewModel.d.ts +2 -2
- package/dist/HappViewModel.d.ts.map +1 -1
- package/dist/HappViewModel.js +4 -4
- package/dist/HappViewModel.js.map +1 -1
- package/dist/ViewModel.d.ts +2 -2
- package/dist/ViewModel.d.ts.map +1 -1
- package/dist/ViewModel.js +8 -3
- package/dist/ViewModel.js.map +1 -1
- package/dist/elements/cell-context.d.ts +1 -1
- package/dist/elements/cell-multi-context.d.ts +1 -1
- package/dist/elements/dvm-inspect.d.ts +1 -1
- package/dist/elements/entry-def-select.d.ts +1 -1
- package/dist/elements/view-cell-context.d.ts +1 -1
- package/dist/elements/view-cell-multi-context.d.ts +1 -1
- package/package.json +1 -1
package/dist/DnaElement.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnaElement.js","sourceRoot":"","sources":["../src/DnaElement.ts"],"names":[],"mappings":"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","sourcesContent":["import {LitElement, PropertyValues} from \"lit\";\r\nimport {property, state} from \"lit/decorators.js\";\r\nimport {ContextConsumer, consume, createContext} from \"@lit/context\";\r\nimport {DnaViewModel} from \"./DnaViewModel\";\r\nimport {BaseRoleName, Cell, CellMixin} from \"@ddd-qc/cell-proxy\";\r\nimport {cellContext} from \"./elements/cell-context\";\r\nimport {RoleMixin} from \"./roleMixin\";\r\n\r\n/**\r\n * A LitElement that is bound to a specific DnaViewModel, e.g. a View for the ViewModel\r\n */\r\nexport class DnaElement<P, DVM extends DnaViewModel> extends CellMixin(RoleMixin(LitElement)) {\r\n\r\n /** if BaseRoleName is not provided, subclass must call requestDvm() in its Ctor */\r\n constructor(baseRoleName?: BaseRoleName) {\r\n super();\r\n if (baseRoleName) {\r\n this.baseRoleName = baseRoleName;\r\n }\r\n }\r\n\r\n /** Provided by Context depending on BaseRoleName */\r\n @state() protected _dvm!: DVM;\r\n\r\n @consume({ context: cellContext, subscribe: true})\r\n @property({type: Object, attribute: false})\r\n _cell_via_context!: Cell;\r\n\r\n @property({type: Object, attribute: false, hasChanged: (_v, _old) => true})\r\n perspective!: P;\r\n\r\n // @ts-ignore\r\n private _consumer?;\r\n\r\n\r\n /** -- Methods -- */\r\n\r\n /** */\r\n protected requestDvm(canRerequest: boolean = false) {\r\n /** Consume Context based on given dnaHash */\r\n if (!this._cell_via_context) {\r\n console.error(\"No Cell info found via context in a DnaElement for role:\", this.baseRoleName)\r\n return;\r\n }\r\n /* DVM already requested */\r\n if (!canRerequest && this._consumer) {\r\n return;\r\n }\r\n const contextType = createContext<DVM>('dvm/' + this.cell.name + \"/\" + this.cell.address.dnaId.b64);\r\n console.log(`\\t\\t Requesting context \"${contextType}\"`)\r\n this._consumer = new ContextConsumer(\r\n this,\r\n contextType,\r\n async (value: DVM, _dispose?: () => void): Promise<void> => {\r\n console.log(`\\t\\t Received value for context \"${contextType}\"`)\r\n await this.dvmUpdated(value, this._dvm);\r\n if (this._dvm) {\r\n this._dvm.unsubscribe(this);\r\n }\r\n this._dvm = value;\r\n this._dvm.subscribe(this, 'perspective');\r\n },\r\n false, // true will call twice at init\r\n );\r\n //console.log({consumer})\r\n }\r\n\r\n\r\n /**\r\n * To be
|
|
1
|
+
{"version":3,"file":"DnaElement.js","sourceRoot":"","sources":["../src/DnaElement.ts"],"names":[],"mappings":"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","sourcesContent":["import {LitElement, PropertyValues} from \"lit\";\r\nimport {property, state} from \"lit/decorators.js\";\r\nimport {ContextConsumer, consume, createContext} from \"@lit/context\";\r\nimport {DnaViewModel} from \"./DnaViewModel\";\r\nimport {BaseRoleName, Cell, CellMixin} from \"@ddd-qc/cell-proxy\";\r\nimport {cellContext} from \"./elements/cell-context\";\r\nimport {RoleMixin} from \"./roleMixin\";\r\n\r\n/**\r\n * A LitElement that is bound to a specific DnaViewModel, e.g. a View for the ViewModel\r\n */\r\nexport class DnaElement<P, DVM extends DnaViewModel> extends CellMixin(RoleMixin(LitElement)) {\r\n\r\n /** if BaseRoleName is not provided, subclass must call requestDvm() in its Ctor */\r\n constructor(baseRoleName?: BaseRoleName) {\r\n super();\r\n if (baseRoleName) {\r\n this.baseRoleName = baseRoleName;\r\n }\r\n }\r\n\r\n /** Provided by Context depending on BaseRoleName */\r\n @state() protected _dvm!: DVM;\r\n\r\n @consume({ context: cellContext, subscribe: true})\r\n @property({type: Object, attribute: false})\r\n _cell_via_context!: Cell;\r\n\r\n @property({type: Object, attribute: false, hasChanged: (_v, _old) => true})\r\n perspective!: P;\r\n\r\n // @ts-ignore\r\n private _consumer?;\r\n\r\n\r\n /** -- Methods -- */\r\n\r\n /** */\r\n protected requestDvm(canRerequest: boolean = false) {\r\n /** Consume Context based on given dnaHash */\r\n if (!this._cell_via_context) {\r\n console.error(\"No Cell info found via context in a DnaElement for role:\", this.baseRoleName)\r\n return;\r\n }\r\n /* DVM already requested */\r\n if (!canRerequest && this._consumer) {\r\n return;\r\n }\r\n const contextType = createContext<DVM>('dvm/' + this.cell.name + \"/\" + this.cell.address.dnaId.b64);\r\n console.log(`\\t\\t Requesting context \"${contextType}\"`)\r\n this._consumer = new ContextConsumer(\r\n this,\r\n contextType,\r\n async (value: DVM, _dispose?: () => void): Promise<void> => {\r\n console.log(`\\t\\t Received value for context \"${contextType}\"`)\r\n await this.dvmUpdated(value, this._dvm);\r\n if (this._dvm) {\r\n this._dvm.unsubscribe(this);\r\n }\r\n this._dvm = value;\r\n this._dvm.subscribe(this, 'perspective');\r\n },\r\n false, // true will call twice at init\r\n );\r\n //console.log({consumer})\r\n }\r\n\r\n\r\n /**\r\n * To be overridden by subclasses\r\n * Example: Have a subclass unsubscribe to oldDvm's zvms and subscribe to the new ones\r\n */\r\n protected async dvmUpdated(_newDvm: DVM, _oldDvm?: DVM): Promise<void> {\r\n //console.log(`\\t\\t Default dvmUpdated() called`)\r\n }\r\n\r\n\r\n /** */\r\n override shouldUpdate(changedProperties: PropertyValues<this>) {\r\n if (changedProperties.has(\"_cell_via_context\")) {\r\n this._cell = this._cell_via_context;\r\n }\r\n if (!this._dvm) {\r\n this.requestDvm();\r\n }\r\n return !!this._dvm;\r\n }\r\n\r\n\r\n /** */\r\n protected override willUpdate(changedProperties: PropertyValues<this>) {\r\n if (changedProperties.has(\"_cell_via_context\")) {\r\n this.requestDvm(true);\r\n }\r\n }\r\n}\r\n"]}
|
package/dist/DnaViewModel.d.ts
CHANGED
|
@@ -48,8 +48,8 @@ export declare abstract class DnaViewModel extends DnaViewModel_base implements
|
|
|
48
48
|
authorizeZomeCalls(adminWs: AdminWebsocket): Promise<void>;
|
|
49
49
|
protected probeAllInner(): void;
|
|
50
50
|
zvmChanged(_zvm: ZomeViewModel): void;
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
initializePerspectiveFromLocal(): Promise<void>;
|
|
52
|
+
initializePerspectiveFromNetwork(): Promise<void>;
|
|
53
53
|
private queryAllDnaData;
|
|
54
54
|
dumpCallLogs(zomeName?: ZomeName): void;
|
|
55
55
|
dumpSignalLogs(zomeName?: ZomeName): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnaViewModel.d.ts","sourceRoot":"","sources":["../src/DnaViewModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,KAAK,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,cAAc,EACd,cAAc,EACd,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,OAAO,EAAgB,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,GAAG,EACH,YAAY,EAAa,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAC9D,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAY,YAAY,EAAC,MAAM,aAAa,CAAC;AAMpD,UAAU,aAAa;IACrB,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAM3C;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,GAAG;IAAC,aAAa,EAAE,mBAAmB,CAAA;CAAC,GAAG;IACxF,KAAI,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,cAAc,EAAE,UAAU,EAAE,OAAO,GAAG,YAAY,CAAC;CAC/G,CAAC;;;;;;;;;AASF,8BAAsB,YAAa,SAAQ,iBAAgC,YAAW,aAAa;aAwBrE,IAAI,EAAE,eAAe;IAtBnC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACxC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAG1C,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAEhC,SAAS,CAAC,eAAe,EAAE,YAAY,CAAC,aAAa,CAAC,CAAM;IAE5D,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAM;IAEtC,OAAO,CAAC,aAAa,CAA4C;IAEjE,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,QAAQ,CAAkC;IAGlD,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,CAAM;IAErC,SAAgB,GAAG,EAAE,GAAG,CAAC;gBAIG,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,cAAc,EAAE,UAAU,EAAE,OAAO;IAkCzH,IAAI,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAA8B;IAEtF,IAAI,WAAW,IAAI,YAAY,CAAC,QAAQ,CAAC,CAA6B;IAEtE,IAAI,OAAO,IAAI,OAAO,CAA0B;IAEhD,IAAI,SAAS,IAAI,OAAO,EAAE,CAA2B;IAErD,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAyC;IAEpE,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IAQ5D,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAoB9B,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAShE,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IAIjC,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;cAwB7C,aAAa,IAAI,IAAI;IASxC,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAItB,
|
|
1
|
+
{"version":3,"file":"DnaViewModel.d.ts","sourceRoot":"","sources":["../src/DnaViewModel.ts"],"names":[],"mappings":"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"}
|
package/dist/DnaViewModel.js
CHANGED
|
@@ -88,19 +88,19 @@ export class DnaViewModel extends CellMixin(RoleMixin(ViewModel)) {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
zvmChanged(_zvm) { }
|
|
91
|
-
async
|
|
91
|
+
async initializePerspectiveFromLocal() {
|
|
92
92
|
await this.queryAllDnaData();
|
|
93
93
|
const all = [];
|
|
94
94
|
for (const [_name, zvm] of Object.entries(this._zomeViewModels)) {
|
|
95
|
-
const p = zvm.
|
|
95
|
+
const p = zvm.initializePerspectiveFromLocal();
|
|
96
96
|
all.push(p);
|
|
97
97
|
}
|
|
98
98
|
await Promise.all(all);
|
|
99
99
|
}
|
|
100
|
-
async
|
|
100
|
+
async initializePerspectiveFromNetwork() {
|
|
101
101
|
const all = [];
|
|
102
102
|
for (const [_name, zvm] of Object.entries(this._zomeViewModels)) {
|
|
103
|
-
const p = zvm.
|
|
103
|
+
const p = zvm.initializePerspectiveFromNetwork();
|
|
104
104
|
all.push(p);
|
|
105
105
|
}
|
|
106
106
|
await Promise.all(all);
|
package/dist/DnaViewModel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnaViewModel.js","sourceRoot":"","sources":["../src/DnaViewModel.ts"],"names":[],"mappings":"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","sourcesContent":["import {ZomeViewModel} from \"./ZomeViewModel\";\nimport {ReactiveElement} from \"lit\";\nimport {ViewModel} from \"./ViewModel\";\nimport {\n AdminWebsocket, FunctionName,\n InstalledAppId,\n ZomeName,\n} from \"@holochain/client\";\nimport {DnaModifiersOptions, ZvmDef} from \"./definitions\";\nimport {Context, createContext} from \"@lit/context\";\nimport {\n CellProxy,\n AppProxy,\n HCL,\n MyDictionary, CellMixin, AgentId, EntryDef, ZomeInfo, DnaInfo\n} from \"@ddd-qc/cell-proxy\";\nimport {RoleMixin, RoleSpecific} from \"./roleMixin\";\n\n\n//export type IDnaViewModel = _DnaViewModel & ICellDef & typeof RoleSpecific;\n\n/** Interface specific to DnaViewModel class */\ninterface IDnaViewModel {\n dumpCallLogs(zomeName?: ZomeName): void;\n dumpSignalLogs(zomeName?: ZomeName): void;\n /** zomeName -> (AppEntryName, isPublic)[] */\n //fetchAllEntryDefs(): Promise<void>;\n //get entryTypes(): Dictionary<[string, boolean][]>;\n //getZomeEntryDefs(zomeName: ZomeName): [string, boolean][] | undefined;\n //getZomeViewModel(zomeName: ZomeName): ZomeViewModel | undefined\n}\n\nexport type DvmConstructor = typeof RoleSpecific & {DNA_MODIFIERS: DnaModifiersOptions} & {\n new(host: ReactiveElement, proxy: AppProxy, idOrHcl: HCL | InstalledAppId, isMainView: boolean): DnaViewModel;\n};\n\n\n/**\n * Abstract ViewModel for a DNA.\n * It holds the CellProxy and all the ZomeViewModels of the DNA.\n * It is expected to derive this class for each DNA and add extra logic at the DNA level.\n * TODO: Split into RoleViewModel and CellViewModel (e.g. have call logs separated by role)\n */\nexport abstract class DnaViewModel extends CellMixin(RoleMixin(ViewModel)) implements IDnaViewModel {\n /** -- Static -- */\n /* private */ static ZVM_DEFS: ZvmDef[];\n static DNA_MODIFIERS: DnaModifiersOptions;\n\n /** -- Fields -- */\n protected _cellProxy: CellProxy;\n /* ZomeName -> Zvm */\n protected _zomeViewModels: MyDictionary<ZomeViewModel> = {};\n /* ZvmCtorName -> ZomeName */\n protected _zomeNames: ZomeName[] = [];\n /* ZomeName -> (EntryName -> EntryDef) */\n private _allEntryDefs: MyDictionary<MyDictionary<EntryDef>> = {};\n /* ZomeName -> ZomeInfo */\n private _allZomeInfo: MyDictionary<ZomeInfo> = {};\n private _dnaInfo: DnaInfo | undefined = undefined;\n\n /** list of \"known\" peers in this DNA */\n protected _livePeers: AgentId[] = [];\n\n public readonly hcl: HCL;\n\n\n /** Ctor */\n constructor(public readonly host: ReactiveElement, appProxy: AppProxy, idOrHcl: HCL | InstalledAppId, isMainView: boolean) {\n super(isMainView);\n if (typeof idOrHcl === 'object') {\n this.baseRoleName = idOrHcl.baseRoleName;\n this.hcl = idOrHcl;\n } else {\n this.hcl = new HCL(idOrHcl, this.baseRoleName);\n }\n const dvmCtor = (this.constructor as typeof DnaViewModel)\n const zvmDefs = dvmCtor.ZVM_DEFS;\n if (zvmDefs.length == 0) {\n throw Error(`DNA ${this.baseRoleName} does not have any zomes`);\n }\n this._cellProxy = appProxy.getCellProxy(this.hcl); // WARN can throw error\n this._cell = this._cellProxy.cell;\n console.log(`DVM.ctor of ${this.baseRoleName}`, this._cellProxy.cell);\n /** Create all ZVMs for this DNA */\n for (const zvmDef of zvmDefs) {\n let zvm: ZomeViewModel;\n if (Array.isArray(zvmDef)) {\n zvm = new zvmDef[0](this._cellProxy, this, isMainView, zvmDef[1]);\n } else {\n zvm = new zvmDef(this._cellProxy, this, isMainView);\n }\n // TODO check zvm.zomeName exists in _cellProxy\n this._zomeViewModels[zvm.zomeName] = zvm;\n this._zomeNames.push(zvm.zomeName);\n }\n this.provideContext(host); // TODO move this to host.connectedCallback? e.g. change ViewModel to a ReactiveController\n }\n\n\n /** -- Getters -- */\n\n get allEntryDefs(): MyDictionary<MyDictionary<EntryDef>> { return this._allEntryDefs }\n\n get allZomeInfo(): MyDictionary<ZomeInfo> { return this._allZomeInfo }\n\n get dnaInfo(): DnaInfo { return this._dnaInfo! }\n\n get livePeers(): AgentId[] { return this._livePeers };\n\n get zomeNames(): ZomeName[] {return Object.values(this._zomeNames);}\n\n getZomeEntryDefs(zomeName: ZomeName): MyDictionary<EntryDef> {\n const maybe = this._allEntryDefs[zomeName];\n if (!maybe) {\n throw Error(\"Unknown zome in DVM: \" + zomeName + \". Available zomes: \" + this.zomeNames.join(', '));\n }\n return maybe;\n }\n\n getZomeViewModel(zomeName: ZomeName): ZomeViewModel {\n const maybe = this._zomeViewModels[zomeName];\n if (!maybe) {\n throw Error(\"Unknown zome in DVM: \" + zomeName + \". Available zomes: \" + this.zomeNames.join(', '));\n }\n return maybe;\n }\n\n // getZomeName(zvm: typeof ZomeViewModel): ZomeName {\n // console.log(\"getZomeName()\", zvm.constructor.name);\n // const maybe = this._zomeViewModels[zvm.constructor.name];\n // if (!maybe) {\n // throw Error(\"Unknown zome in DVM: \" + zvm.DEFAULT_ZOME_NAME + \". Available zomes: \" + this.zomeNames.join(', '));\n // }\n // return maybe;\n // }\n\n /** -- Methods -- */\n\n /** Override so we can provide context of all zvms */\n /*private*/ override provideContext(host: ReactiveElement): void {\n //console.log(\"DVM.provideContext()\", host, this)\n super.provideContext(host);\n for (const zvm of Object.values(this._zomeViewModels)) {\n zvm.provideContext(host)\n }\n }\n\n\n getContext(): Context<unknown, unknown> {return createContext<typeof this>('dvm/' + this.cell.name + \"/\" + this.cell.address.dnaId.b64)};\n\n\n /** */\n async authorizeZomeCalls(adminWs: AdminWebsocket): Promise<void> {\n let allFnNames: [ZomeName, FunctionName][] = [];\n for (const [_zomeName, zvm] of Object.entries(this._zomeViewModels)) {\n allFnNames = allFnNames.concat(zvm.zomeProxy.fnNames)\n }\n //const grantedFns = { [GrantedFunctionsType.Listed]: allFnNames }\n try {\n console.log(\"authorizeSigningCredentials: \" + this.cell.hcl().toString(), allFnNames);\n console.log(\"authorizeSigningCredentials. cell_id = \" + this.cell.address.str);\n //await adminWs.authorizeSigningCredentials(this.cell.id, grantedFns);\n await adminWs.authorizeSigningCredentials(this.cell.address.intoId());\n } catch(e) {\n console.warn(\"authorizeSigningCredentials FAILED.\", e);\n }\n // this._signingProps = getSigningCredentials(this.cellId);\n // console.log({signProps: this._signingProps})\n //\n // for (const [zomeName, zvm] of Object.entries(this._zomeViewModels)) {\n // zvm.zomeProxy.setSigningProps(this._signingProps);\n // }\n }\n\n\n /** Not async on purpose as we except this to be long. Post-processing should be done via Observer pattern */\n protected override probeAllInner(): void {\n for (const [_name, zvm] of Object.entries(this._zomeViewModels)) {\n //console.log(\"Dvm.probeAll()\", name)\n zvm.probeAll();\n }\n }\n\n\n /** */\n zvmChanged(_zvm: ZomeViewModel): void {}\n\n\n /** */\n override async initializePerspectiveOffline(): Promise<void> {\n await this.queryAllDnaData();\n const all = [];\n for (const [_name, zvm] of Object.entries(this._zomeViewModels)) {\n const p = zvm.initializePerspectiveOffline();\n all.push(p);\n }\n await Promise.all(all);\n }\n\n\n /** */\n override async initializePerspectiveOnline(): Promise<void> {\n const all = [];\n for (const [_name, zvm] of Object.entries(this._zomeViewModels)) {\n const p = zvm.initializePerspectiveOnline();\n all.push(p);\n }\n await Promise.all(all);\n }\n\n\n /** */\n private async queryAllDnaData(): Promise<void> {\n /** DnaInfo */\n const dnaInfo = await this._cellProxy.callDnaInfo(this.zomeNames[0]!);\n this._dnaInfo = dnaInfo;\n // /** ZomeInfo from dnaInfo */\n // for (const zomeName of dnaInfo.zome_names) {\n // this._allZomeInfo[zomeName] = await this._cellProxy.callZomeInfo(zomeName);\n // }\n /** ZomeInfo from known Zomes */\n for (const zomeName of this.zomeNames) {\n this._allZomeInfo[zomeName] = await this._cellProxy.callZomeInfo(zomeName);\n }\n /** EntryDefs */\n for (const zomeName of Object.keys(this._allZomeInfo)) {\n try {\n this._allEntryDefs[zomeName] = await this._cellProxy.callEntryDefs(zomeName);\n } catch(e: any) {\n if (e.throttled) {\n continue;\n }\n return Promise.reject(e);\n }\n }\n }\n\n\n /** */\n dumpCallLogs(zomeName?: ZomeName): void {\n this._cellProxy.dumpCallLogs(zomeName);\n }\n\n\n /** */\n dumpSignalLogs(zomeName?: ZomeName): void {\n console.warn(\"Dumping signals in DVM\", this.baseRoleName);\n if (zomeName == undefined) {\n for (const [name, zvm] of Object.entries(this._zomeViewModels)) {\n const logs = this._cellProxy.signalLogs.filter((log) => log.zomeName == name)\n zvm.dumpSignalLogs(logs);\n }\n return;\n }\n if (this._zomeViewModels[zomeName]) {\n const logs = this._cellProxy.signalLogs.filter((log) => log.zomeName == zomeName)\n this._zomeViewModels[zomeName]!.dumpSignalLogs(logs);\n } else {\n console.error(`Unknown zome ${zomeName} in DVM ${this.baseRoleName}`)\n }\n }\n\n /** */\n purgeLogs() {\n this._cellProxy.purgeLogs();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DnaViewModel.js","sourceRoot":"","sources":["../src/DnaViewModel.ts"],"names":[],"mappings":"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","sourcesContent":["import {ZomeViewModel} from \"./ZomeViewModel\";\nimport {ReactiveElement} from \"lit\";\nimport {ViewModel} from \"./ViewModel\";\nimport {\n AdminWebsocket, FunctionName,\n InstalledAppId,\n ZomeName,\n} from \"@holochain/client\";\nimport {DnaModifiersOptions, ZvmDef} from \"./definitions\";\nimport {Context, createContext} from \"@lit/context\";\nimport {\n CellProxy,\n AppProxy,\n HCL,\n MyDictionary, CellMixin, AgentId, EntryDef, ZomeInfo, DnaInfo\n} from \"@ddd-qc/cell-proxy\";\nimport {RoleMixin, RoleSpecific} from \"./roleMixin\";\n\n\n//export type IDnaViewModel = _DnaViewModel & ICellDef & typeof RoleSpecific;\n\n/** Interface specific to DnaViewModel class */\ninterface IDnaViewModel {\n dumpCallLogs(zomeName?: ZomeName): void;\n dumpSignalLogs(zomeName?: ZomeName): void;\n /** zomeName -> (AppEntryName, isPublic)[] */\n //fetchAllEntryDefs(): Promise<void>;\n //get entryTypes(): Dictionary<[string, boolean][]>;\n //getZomeEntryDefs(zomeName: ZomeName): [string, boolean][] | undefined;\n //getZomeViewModel(zomeName: ZomeName): ZomeViewModel | undefined\n}\n\nexport type DvmConstructor = typeof RoleSpecific & {DNA_MODIFIERS: DnaModifiersOptions} & {\n new(host: ReactiveElement, proxy: AppProxy, idOrHcl: HCL | InstalledAppId, isMainView: boolean): DnaViewModel;\n};\n\n\n/**\n * Abstract ViewModel for a DNA.\n * It holds the CellProxy and all the ZomeViewModels of the DNA.\n * It is expected to derive this class for each DNA and add extra logic at the DNA level.\n * TODO: Split into RoleViewModel and CellViewModel (e.g. have call logs separated by role)\n */\nexport abstract class DnaViewModel extends CellMixin(RoleMixin(ViewModel)) implements IDnaViewModel {\n /** -- Static -- */\n /* private */ static ZVM_DEFS: ZvmDef[];\n static DNA_MODIFIERS: DnaModifiersOptions;\n\n /** -- Fields -- */\n protected _cellProxy: CellProxy;\n /* ZomeName -> Zvm */\n protected _zomeViewModels: MyDictionary<ZomeViewModel> = {};\n /* ZvmCtorName -> ZomeName */\n protected _zomeNames: ZomeName[] = [];\n /* ZomeName -> (EntryName -> EntryDef) */\n private _allEntryDefs: MyDictionary<MyDictionary<EntryDef>> = {};\n /* ZomeName -> ZomeInfo */\n private _allZomeInfo: MyDictionary<ZomeInfo> = {};\n private _dnaInfo: DnaInfo | undefined = undefined;\n\n /** list of \"known\" peers in this DNA */\n protected _livePeers: AgentId[] = [];\n\n public readonly hcl: HCL;\n\n\n /** Ctor */\n constructor(public readonly host: ReactiveElement, appProxy: AppProxy, idOrHcl: HCL | InstalledAppId, isMainView: boolean) {\n super(isMainView);\n if (typeof idOrHcl === 'object') {\n this.baseRoleName = idOrHcl.baseRoleName;\n this.hcl = idOrHcl;\n } else {\n this.hcl = new HCL(idOrHcl, this.baseRoleName);\n }\n const dvmCtor = (this.constructor as typeof DnaViewModel)\n const zvmDefs = dvmCtor.ZVM_DEFS;\n if (zvmDefs.length == 0) {\n throw Error(`DNA ${this.baseRoleName} does not have any zomes`);\n }\n this._cellProxy = appProxy.getCellProxy(this.hcl); // WARN can throw error\n this._cell = this._cellProxy.cell;\n console.log(`DVM.ctor of ${this.baseRoleName}`, this._cellProxy.cell);\n /** Create all ZVMs for this DNA */\n for (const zvmDef of zvmDefs) {\n let zvm: ZomeViewModel;\n if (Array.isArray(zvmDef)) {\n zvm = new zvmDef[0](this._cellProxy, this, isMainView, zvmDef[1]);\n } else {\n zvm = new zvmDef(this._cellProxy, this, isMainView);\n }\n // TODO check zvm.zomeName exists in _cellProxy\n this._zomeViewModels[zvm.zomeName] = zvm;\n this._zomeNames.push(zvm.zomeName);\n }\n this.provideContext(host); // TODO move this to host.connectedCallback? e.g. change ViewModel to a ReactiveController\n }\n\n\n /** -- Getters -- */\n\n get allEntryDefs(): MyDictionary<MyDictionary<EntryDef>> { return this._allEntryDefs }\n\n get allZomeInfo(): MyDictionary<ZomeInfo> { return this._allZomeInfo }\n\n get dnaInfo(): DnaInfo { return this._dnaInfo! }\n\n get livePeers(): AgentId[] { return this._livePeers };\n\n get zomeNames(): ZomeName[] {return Object.values(this._zomeNames);}\n\n getZomeEntryDefs(zomeName: ZomeName): MyDictionary<EntryDef> {\n const maybe = this._allEntryDefs[zomeName];\n if (!maybe) {\n throw Error(\"Unknown zome in DVM: \" + zomeName + \". Available zomes: \" + this.zomeNames.join(', '));\n }\n return maybe;\n }\n\n getZomeViewModel(zomeName: ZomeName): ZomeViewModel {\n const maybe = this._zomeViewModels[zomeName];\n if (!maybe) {\n throw Error(\"Unknown zome in DVM: \" + zomeName + \". Available zomes: \" + this.zomeNames.join(', '));\n }\n return maybe;\n }\n\n // getZomeName(zvm: typeof ZomeViewModel): ZomeName {\n // console.log(\"getZomeName()\", zvm.constructor.name);\n // const maybe = this._zomeViewModels[zvm.constructor.name];\n // if (!maybe) {\n // throw Error(\"Unknown zome in DVM: \" + zvm.DEFAULT_ZOME_NAME + \". Available zomes: \" + this.zomeNames.join(', '));\n // }\n // return maybe;\n // }\n\n /** -- Methods -- */\n\n /** Override so we can provide context of all zvms */\n /*private*/ override provideContext(host: ReactiveElement): void {\n //console.log(\"DVM.provideContext()\", host, this)\n super.provideContext(host);\n for (const zvm of Object.values(this._zomeViewModels)) {\n zvm.provideContext(host)\n }\n }\n\n\n getContext(): Context<unknown, unknown> {return createContext<typeof this>('dvm/' + this.cell.name + \"/\" + this.cell.address.dnaId.b64)};\n\n\n /** */\n async authorizeZomeCalls(adminWs: AdminWebsocket): Promise<void> {\n let allFnNames: [ZomeName, FunctionName][] = [];\n for (const [_zomeName, zvm] of Object.entries(this._zomeViewModels)) {\n allFnNames = allFnNames.concat(zvm.zomeProxy.fnNames)\n }\n //const grantedFns = { [GrantedFunctionsType.Listed]: allFnNames }\n try {\n console.log(\"authorizeSigningCredentials: \" + this.cell.hcl().toString(), allFnNames);\n console.log(\"authorizeSigningCredentials. cell_id = \" + this.cell.address.str);\n //await adminWs.authorizeSigningCredentials(this.cell.id, grantedFns);\n await adminWs.authorizeSigningCredentials(this.cell.address.intoId());\n } catch(e) {\n console.warn(\"authorizeSigningCredentials FAILED.\", e);\n }\n // this._signingProps = getSigningCredentials(this.cellId);\n // console.log({signProps: this._signingProps})\n //\n // for (const [zomeName, zvm] of Object.entries(this._zomeViewModels)) {\n // zvm.zomeProxy.setSigningProps(this._signingProps);\n // }\n }\n\n\n /** Not async on purpose as we except this to be long. Post-processing should be done via Observer pattern */\n protected override probeAllInner(): void {\n for (const [_name, zvm] of Object.entries(this._zomeViewModels)) {\n //console.log(\"Dvm.probeAll()\", name)\n zvm.probeAll();\n }\n }\n\n\n /** */\n zvmChanged(_zvm: ZomeViewModel): void {}\n\n\n /** */\n override async initializePerspectiveFromLocal(): Promise<void> {\n await this.queryAllDnaData();\n const all = [];\n for (const [_name, zvm] of Object.entries(this._zomeViewModels)) {\n const p = zvm.initializePerspectiveFromLocal();\n all.push(p);\n }\n await Promise.all(all);\n }\n\n\n /** */\n override async initializePerspectiveFromNetwork(): Promise<void> {\n const all = [];\n for (const [_name, zvm] of Object.entries(this._zomeViewModels)) {\n const p = zvm.initializePerspectiveFromNetwork();\n all.push(p);\n }\n await Promise.all(all);\n }\n\n\n /** */\n private async queryAllDnaData(): Promise<void> {\n /** DnaInfo */\n const dnaInfo = await this._cellProxy.callDnaInfo(this.zomeNames[0]!);\n this._dnaInfo = dnaInfo;\n // /** ZomeInfo from dnaInfo */\n // for (const zomeName of dnaInfo.zome_names) {\n // this._allZomeInfo[zomeName] = await this._cellProxy.callZomeInfo(zomeName);\n // }\n /** ZomeInfo from known Zomes */\n for (const zomeName of this.zomeNames) {\n this._allZomeInfo[zomeName] = await this._cellProxy.callZomeInfo(zomeName);\n }\n /** EntryDefs */\n for (const zomeName of Object.keys(this._allZomeInfo)) {\n try {\n this._allEntryDefs[zomeName] = await this._cellProxy.callEntryDefs(zomeName);\n } catch(e: any) {\n if (e.throttled) {\n continue;\n }\n return Promise.reject(e);\n }\n }\n }\n\n\n /** */\n dumpCallLogs(zomeName?: ZomeName): void {\n this._cellProxy.dumpCallLogs(zomeName);\n }\n\n\n /** */\n dumpSignalLogs(zomeName?: ZomeName): void {\n console.warn(\"Dumping signals in DVM\", this.baseRoleName);\n if (zomeName == undefined) {\n for (const [name, zvm] of Object.entries(this._zomeViewModels)) {\n const logs = this._cellProxy.signalLogs.filter((log) => log.zomeName == name)\n zvm.dumpSignalLogs(logs);\n }\n return;\n }\n if (this._zomeViewModels[zomeName]) {\n const logs = this._cellProxy.signalLogs.filter((log) => log.zomeName == zomeName)\n this._zomeViewModels[zomeName]!.dumpSignalLogs(logs);\n } else {\n console.error(`Unknown zome ${zomeName} in DVM ${this.baseRoleName}`)\n }\n }\n\n /** */\n purgeLogs() {\n this._cellProxy.purgeLogs();\n }\n}\n"]}
|
package/dist/HappElement.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ export declare class HappElement extends LitElement {
|
|
|
12
12
|
networkCaller?: NetworkCaller;
|
|
13
13
|
protected constructor(port_or_socket: number | AppWebsocket, appId?: InstalledAppId, adminUrl?: URL, defaultTimeout?: number);
|
|
14
14
|
hvmConstructed(): Promise<void>;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
perspectiveInitializedFromLocal(): Promise<void>;
|
|
16
|
+
perspectiveInitializedFromNetwork(): Promise<void>;
|
|
17
17
|
shouldUpdate(): boolean;
|
|
18
18
|
protected constructHvm(port_or_socket: number | AppWebsocket, appId?: InstalledAppId, adminUrl?: URL, defaultTimeout?: number): Promise<void>;
|
|
19
19
|
initializePerspective(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HappElement.d.ts","sourceRoot":"","sources":["../src/HappElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAI5C,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM9C,qBAAa,WAAY,SAAQ,UAAU;IAGzC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IAGvB,SAAS,CAAC,QAAQ,EAAG,QAAQ,CAAC;IACrB,GAAG,EAAG,aAAa,CAAC;IAI7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAI9B,SAAS,aAAa,cAAc,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM;IAMtH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B,
|
|
1
|
+
{"version":3,"file":"HappElement.d.ts","sourceRoot":"","sources":["../src/HappElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAI5C,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM9C,qBAAa,WAAY,SAAQ,UAAU;IAGzC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IAGvB,SAAS,CAAC,QAAQ,EAAG,QAAQ,CAAC;IACrB,GAAG,EAAG,aAAa,CAAC;IAI7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAI9B,SAAS,aAAa,cAAc,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM;IAMtH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhD,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC;IAG/C,YAAY;cAKL,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7I,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtC,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;CAItG"}
|
package/dist/HappElement.js
CHANGED
|
@@ -10,8 +10,8 @@ export class HappElement extends LitElement {
|
|
|
10
10
|
this.constructHvm(port_or_socket, appId, adminUrl, defaultTimeout);
|
|
11
11
|
}
|
|
12
12
|
async hvmConstructed() { }
|
|
13
|
-
async
|
|
14
|
-
async
|
|
13
|
+
async perspectiveInitializedFromLocal() { }
|
|
14
|
+
async perspectiveInitializedFromNetwork() { }
|
|
15
15
|
shouldUpdate() {
|
|
16
16
|
return !!this.hvm;
|
|
17
17
|
}
|
|
@@ -31,10 +31,10 @@ export class HappElement extends LitElement {
|
|
|
31
31
|
await this.initializePerspective();
|
|
32
32
|
}
|
|
33
33
|
async initializePerspective() {
|
|
34
|
-
await this.hvm.
|
|
35
|
-
await this.
|
|
36
|
-
await this.hvm.
|
|
37
|
-
await this.
|
|
34
|
+
await this.hvm.initializePerspectiveFromLocal();
|
|
35
|
+
await this.perspectiveInitializedFromLocal();
|
|
36
|
+
await this.hvm.initializePerspectiveFromNetwork();
|
|
37
|
+
await this.perspectiveInitializedFromNetwork();
|
|
38
38
|
}
|
|
39
39
|
async createClone(baseRoleName, cellDef) {
|
|
40
40
|
return this.hvm.cloneDvm(baseRoleName, cellDef);
|
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,EAGL,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAW9C,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM9C,MAAM,OAAO,WAAY,SAAQ,UAAU;IAezC,YAAsB,cAAqC,EAAE,KAAsB,EAAE,QAAc,EAAE,cAAuB;QAC1H,KAAK,EAAE,CAAC;QACI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjF,CAAC;IAGD,KAAK,CAAC,cAAc,KAAmB,CAAC;IAExC,KAAK,CAAC,
|
|
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,EAGL,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAW9C,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM9C,MAAM,OAAO,WAAY,SAAQ,UAAU;IAezC,YAAsB,cAAqC,EAAE,KAAsB,EAAE,QAAc,EAAE,cAAuB;QAC1H,KAAK,EAAE,CAAC;QACI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjF,CAAC;IAGD,KAAK,CAAC,cAAc,KAAmB,CAAC;IAExC,KAAK,CAAC,+BAA+B,KAAmB,CAAC;IAEzD,KAAK,CAAC,iCAAiC,KAAmB,CAAC;IAGlD,YAAY;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAGS,KAAK,CAAC,YAAY,CAAC,cAAqC,EAAE,KAAsB,EAAE,QAAc,EAAE,cAAuB;QACjI,MAAM,MAAM,GAAI,IAAI,CAAC,WAAkC,CAAC,OAAO,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,KAAK,CAAC,yDAAyD,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAChG;QAED,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;SACnB;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACjG,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,qBAAqB,EAAE,CAAC;IACrC,CAAC;IAID,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;QAChD,MAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAE7C,MAAM,IAAI,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC;QAClD,MAAM,IAAI,CAAC,iCAAiC,EAAE,CAAC;IACjD,CAAC;IAKD,KAAK,CAAC,WAAW,CAAC,YAA0B,EAAE,OAAiB;QAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CAEF;AA7DU;IAAR,KAAK,EAAE;wCAAqB","sourcesContent":["import {LitElement} from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport {\n BaseRoleName,\n AppProxy,\n ConductorAppProxy,\n} from \"@ddd-qc/cell-proxy\";\nimport {HappViewModel} from \"./HappViewModel\";\nimport {CellDef, HvmDef} from \"./definitions\";\nimport {\n AppWebsocket,\n ClonedCell,\n InstalledAppId,\n} from \"@holochain/client\";\nimport {DnaViewModel} from \"./DnaViewModel\";\n//import {CellId} from \"@holochain/client/lib/types\";\n// @ts-ignore\nimport * as net from \"net\";\nimport {NetworkCaller} from \"./NetworkCaller\";\n\n\n/**\n *\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\n /** Continually calls networkInfo for a specific cell with appProxy */\n networkCaller?: NetworkCaller;\n\n\n /** Ctor */\n protected constructor(port_or_socket: number | AppWebsocket, appId?: InstalledAppId, adminUrl?: URL, defaultTimeout?: number) {\n super();\n /* await */ this.constructHvm(port_or_socket, appId, adminUrl, defaultTimeout);\n }\n\n /** */\n async hvmConstructed(): Promise<void> {}\n /** */\n async perspectiveInitializedFromLocal(): Promise<void> {}\n /** */\n async perspectiveInitializedFromNetwork(): Promise<void> {}\n\n /** */\n override shouldUpdate() {\n return !!this.hvm;\n }\n\n /** */\n protected async constructHvm(port_or_socket: number | AppWebsocket, appId?: InstalledAppId, adminUrl?: URL, defaultTimeout?: number): 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(port_or_socket, hvmDef.id, adminUrl, defaultTimeout);\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.initializePerspective();\n }\n\n\n /** */\n async initializePerspective(): Promise<void> {\n await this.hvm.initializePerspectiveFromLocal();\n await this.perspectiveInitializedFromLocal();\n // TODO move this to a later stage\n await this.hvm.initializePerspectiveFromNetwork();\n await this.perspectiveInitializedFromNetwork();\n }\n\n\n\n /** */\n async createClone(baseRoleName: BaseRoleName, cellDef?: CellDef): Promise<[ClonedCell, DnaViewModel]> {\n return this.hvm.cloneDvm(baseRoleName, cellDef);\n }\n\n}\n"]}
|
|
@@ -12,8 +12,8 @@ export declare class HappMultiElement extends LitElement {
|
|
|
12
12
|
get count(): number;
|
|
13
13
|
protected constructor(appInfo: [number | AppWebsocket, InstalledAppId | undefined][], isMainView: boolean, adminUrl?: URL, defaultTimeout?: number);
|
|
14
14
|
hvmsConstructed(): Promise<void>;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
perspectiveInitializedFromLocal(): Promise<void>;
|
|
16
|
+
perspectiveInitializedFromNetwork(): Promise<void>;
|
|
17
17
|
shouldUpdate(): boolean;
|
|
18
18
|
protected constructHvms(appInfo: [number | AppWebsocket, InstalledAppId | undefined][], adminUrl?: URL, defaultTimeout?: number): Promise<void>;
|
|
19
19
|
initializePerspective(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HappMultiElement.d.ts","sourceRoot":"","sources":["../src/HappMultiElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,OAAO,EACL,QAAQ,EAGR,SAAS,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAc,MAAM,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EAAE,cAAc,EAC9B,SAAS,EACV,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM9C,qBAAa,gBAAiB,SAAQ,UAAU;aAgB5B,UAAU,EAAE,OAAO;IAbrC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IAGd,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAK;IAG/C,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,IAAI,KAAK,IAAI,MAAM,CAA0B;IAG7C,SAAS,aACP,OAAO,EAAE,CAAC,MAAM,GAAG,YAAY,EAAE,cAAc,GAAG,SAAS,CAAC,EAAE,EAC9C,UAAU,EAAE,OAAO,EACnC,QAAQ,CAAC,EAAE,GAAG,EACd,cAAc,CAAC,EAAE,MAAM;IAOnB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhC,
|
|
1
|
+
{"version":3,"file":"HappMultiElement.d.ts","sourceRoot":"","sources":["../src/HappMultiElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,OAAO,EACL,QAAQ,EAGR,SAAS,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAc,MAAM,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EAAE,cAAc,EAC9B,SAAS,EACV,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM9C,qBAAa,gBAAiB,SAAQ,UAAU;aAgB5B,UAAU,EAAE,OAAO;IAbrC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IAGd,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAK;IAG/C,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,IAAI,KAAK,IAAI,MAAM,CAA0B;IAG7C,SAAS,aACP,OAAO,EAAE,CAAC,MAAM,GAAG,YAAY,EAAE,cAAc,GAAG,SAAS,CAAC,EAAE,EAC9C,UAAU,EAAE,OAAO,EACnC,QAAQ,CAAC,EAAE,GAAG,EACd,cAAc,CAAC,EAAE,MAAM;IAOnB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhC,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhD,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC;IAG/C,YAAY;cAKL,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,YAAY,EAAE,cAAc,GAAG,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/I,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAetC,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;CAgDrG"}
|
package/dist/HappMultiElement.js
CHANGED
|
@@ -13,8 +13,8 @@ export class HappMultiElement extends LitElement {
|
|
|
13
13
|
this.constructHvms(appInfo, adminUrl, defaultTimeout);
|
|
14
14
|
}
|
|
15
15
|
async hvmsConstructed() { }
|
|
16
|
-
async
|
|
17
|
-
async
|
|
16
|
+
async perspectiveInitializedFromLocal() { }
|
|
17
|
+
async perspectiveInitializedFromNetwork() { }
|
|
18
18
|
shouldUpdate() {
|
|
19
19
|
return this.hvms.length > 0;
|
|
20
20
|
}
|
|
@@ -38,13 +38,13 @@ export class HappMultiElement extends LitElement {
|
|
|
38
38
|
}
|
|
39
39
|
async initializePerspective() {
|
|
40
40
|
for (const [_proxy, hvm] of this.hvms) {
|
|
41
|
-
await hvm.
|
|
41
|
+
await hvm.initializePerspectiveFromLocal();
|
|
42
42
|
}
|
|
43
|
-
await this.
|
|
43
|
+
await this.perspectiveInitializedFromLocal();
|
|
44
44
|
for (const [_proxy, hvm] of this.hvms) {
|
|
45
|
-
await hvm.
|
|
45
|
+
await hvm.initializePerspectiveFromLocal();
|
|
46
46
|
}
|
|
47
|
-
await this.
|
|
47
|
+
await this.perspectiveInitializedFromNetwork();
|
|
48
48
|
}
|
|
49
49
|
async networkInfoAll(baseRoleName) {
|
|
50
50
|
const hvmDef = this.constructor.HVM_DEF;
|
|
@@ -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,EAEL,iBAAiB,EACjB,YAAY,EACD,UAAU,EAAS,WAAW,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAS9C,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM9C,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAW9C,IAAI,KAAK,KAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA,CAAA,CAAC;IAG7C,YACE,OAA8D,EAC9C,UAAmB,EACnC,QAAc,EACd,cAAuB;QAEvB,KAAK,EAAE,CAAC;QAJQ,eAAU,GAAV,UAAU,CAAS;QAV5B,SAAI,GAAgC,EAAE,CAAA;QAejC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IAGD,KAAK,CAAC,eAAe,KAAmB,CAAC;IAEzC,KAAK,CAAC,
|
|
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,\n} from \"@ddd-qc/cell-proxy\";\nimport {HappViewModel} from \"./HappViewModel\";\nimport {/*CellDef,*/ HvmDef} from \"./definitions\";\nimport {\n AppWebsocket,\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 *\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\n /** Continually calls networkInfo for a specific cell with appProxy */\n networkCaller?: NetworkCaller;\n\n get count(): number {return this.hvms.length}\n\n /** Ctor */\n protected constructor(\n appInfo: [number | AppWebsocket, InstalledAppId | undefined][],\n public readonly isMainView: boolean,\n adminUrl?: URL,\n defaultTimeout?: number,\n ) {\n super();\n /* await */ this.constructHvms(appInfo, adminUrl, defaultTimeout);\n }\n\n /** */\n async hvmsConstructed(): Promise<void> {}\n /** */\n async perspectiveInitializedFromLocal(): Promise<void> {}\n /** */\n async perspectiveInitializedFromNetwork(): Promise<void> {}\n\n /** */\n override shouldUpdate() {\n return this.hvms.length > 0;\n }\n\n /** */\n protected async constructHvms(appInfo: [number | AppWebsocket, InstalledAppId | undefined][], adminUrl?: URL, defaultTimeout?: number): 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 [port_or_socket, appId] of appInfo) {\n const appProxy = await ConductorAppProxy.new(port_or_socket, hvmDef.id, adminUrl, defaultTimeout);\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 await this.initializePerspective();\n }\n\n\n /** */\n async initializePerspective(): Promise<void> {\n for (const [_proxy, hvm] of this.hvms) {\n await hvm.initializePerspectiveFromLocal();\n }\n await this.perspectiveInitializedFromLocal();\n\n // TODO move this to a later stage\n for (const [_proxy, hvm] of this.hvms) {\n await hvm.initializePerspectiveFromLocal();\n }\n await this.perspectiveInitializedFromNetwork();\n }\n\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"]}
|
package/dist/HappViewModel.d.ts
CHANGED
|
@@ -22,8 +22,8 @@ export declare class HappViewModel {
|
|
|
22
22
|
private createOriginalDvm;
|
|
23
23
|
cloneDvm(baseRoleName: BaseRoleName, cellDef?: CellDef, cellCloner?: CellCloner): Promise<[ClonedCell, DnaViewModel]>;
|
|
24
24
|
probeAll(): void;
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
initializePerspectiveFromLocal(): Promise<void>;
|
|
26
|
+
initializePerspectiveFromNetwork(): Promise<void>;
|
|
27
27
|
dumpCallLogs(baseRoleName?: BaseRoleName): void;
|
|
28
28
|
}
|
|
29
29
|
//# sourceMappingURL=HappViewModel.d.ts.map
|
|
@@ -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;AAU9C,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;IAkBD,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,IAAI,IAAI;IAQV,
|
|
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;AAU9C,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;IAkBD,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,IAAI,IAAI;IAQV,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvD,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;CAchD"}
|
package/dist/HappViewModel.js
CHANGED
|
@@ -158,15 +158,15 @@ export class HappViewModel {
|
|
|
158
158
|
dvm.probeAll();
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
async
|
|
161
|
+
async initializePerspectiveFromLocal() {
|
|
162
162
|
for (const dvm of Object.values(this._dvmMap)) {
|
|
163
|
-
await dvm.
|
|
163
|
+
await dvm.initializePerspectiveFromLocal();
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
-
async
|
|
166
|
+
async initializePerspectiveFromNetwork() {
|
|
167
167
|
const all = [];
|
|
168
168
|
for (const dvm of Object.values(this._dvmMap)) {
|
|
169
|
-
const p = dvm.
|
|
169
|
+
const p = dvm.initializePerspectiveFromNetwork();
|
|
170
170
|
all.push(p);
|
|
171
171
|
}
|
|
172
172
|
await Promise.all(all);
|
|
@@ -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\";\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 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(): void {\n for (const dvm of Object.values(this._dvmMap)) {\n dvm.probeAll();\n }\n }\n\n\n /** Can't parallelize calls since happ can have multiple roles with same dnas which can throttle entry_def calls */\n async initializePerspectiveOffline(): Promise<void> {\n for (const dvm of Object.values(this._dvmMap)) {\n await dvm.initializePerspectiveOffline();\n }\n }\n\n /** */\n async initializePerspectiveOnline(): Promise<void> {\n const all = [];\n for (const dvm of Object.values(this._dvmMap)) {\n const p = dvm.initializePerspectiveOnline();\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":"AAEA,OAAO,EAES,WAAW,EAEzB,eAAe,EAEf,GAAG,GACJ,MAAM,oBAAoB,CAAC;AAY5B,MAAM,OAAO,aAAa;IAaxB,MAAM,CAAC,IAAkB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAGD,WAAW,CAAC,MAAmB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACzC,IAAI,IAAI,GAA+B,EAAE,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;aAC9B;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,CAAC,OAA2B;QAChC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACxC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;IAID,SAAS,CAAC,YAA0B;QAClC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACpD,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACtD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBACzC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACrB;SACF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAMD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAqB,EAAE,QAAkB,EAAE,MAAc,EAAE,UAAmB;QAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAA,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAGvE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YACnC,IAAI,MAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,SAAS,EAAE;gBACpD,OAAO,OAAO,CAAC,MAAM,CAAC,4DAA4D,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxG;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY;gBACtC,CAAC,CAAC,MAAM,CAAC,YAAY;gBACrB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;YACvC,MAAM,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACzC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAClE,OAAO,GAAG,CAAC;IACb,CAAC;IAID,YACY,KAAsB,EACtB,SAAmB,EAC7B,MAAc,EACE,UAAmB;QAHzB,UAAK,GAAL,KAAK,CAAiB;QACtB,cAAS,GAAT,SAAS,CAAU;QAEb,eAAU,GAAV,UAAU,CAAS;QA7E3B,YAAO,GAA+B,EAAE,CAAC;QAEzC,YAAO,GAAyB,EAAE,CAAC;QA6E3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAElF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YACnC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAEjC,CAAC;IAKD,KAAK,CAAC,qBAAqB,CAAC,OAAwB;QAClD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAEvD,MAAM,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACvC;IACH,CAAC;IAGO,uBAAuB;QAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;QAClE,KAAK,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE;gBACR,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;aAC3D;YACD,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aAC1B;SACF;IACH,CAAC;IAIO,SAAS,CAAC,MAAc,EAAE,GAAQ;QACxC,MAAM,GAAG,GAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAG5F,IAAI,GAAG,CAAC,aAAa,EAAE;YAErB,IAAI;gBACF,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,GAAW,EAAE,EAAE;oBAC9C,GAAG,CAAC,aAAc,CAAC,GAAG,CAAC,CAAA;gBACzB,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;aACpB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;aACjB;SACF;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE;YAChC,MAAM,KAAK,CAAC,yBAAyB,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;QAEnC,OAAO,GAAG,CAAC;IACb,CAAC;IAIO,iBAAiB,CAAC,MAAc;QAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY;YACtC,CAAC,CAAC,MAAM,CAAC,YAAY;YACrB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;QAEvC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC9B,MAAM,KAAK,CAAC,wDAAwD,YAAY,kBAAkB,CAAC,CAAC;SACrG;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;IACtC,CAAC;IAID,KAAK,CAAC,QAAQ,CAAC,YAA0B,EAAE,OAAiB,EAAE,UAAuB;QACnF,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,OAAO,CAAC,MAAM,CAAC,+BAA+B,YAAY,4BAA4B,CAAC,CAAA;SAC/F;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,kCAAkC,YAAY,oBAAoB,CAAC,CAAA;SAC1F;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAe,MAAM,CAAC,MAAM,CAAC;QAC7C,MAAM,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS;YAC5C,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE9C,IAAI,OAAO,GAA2B;YAEpC,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE;gBACT,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC;aACjC;YACD,IAAI,EAAE,SAAS;SAChB,CAAA;QAED,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACtC,IAAI,OAAO,CAAC,aAAa;gBAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YAC1E,IAAI,OAAO,CAAC,SAAS;gBAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;SACzD;QAED,MAAM,UAAU,GAAG,UAAU,CAAA,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhI,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YAC1B,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACtD;QAED,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IAID,QAAQ;QACN,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7C,GAAG,CAAC,QAAQ,EAAE,CAAC;SAChB;IACH,CAAC;IAID,KAAK,CAAC,8BAA8B;QAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7C,MAAM,GAAG,CAAC,8BAA8B,EAAE,CAAC;SAC5C;IACH,CAAC;IAGD,KAAK,CAAC,gCAAgC;QACpC,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,gCAAgC,EAAE,CAAC;YACjD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACb;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAID,YAAY,CAAC,YAA2B;QACtC,IAAI,YAAY,EAAE;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACtC,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,YAAY,EAAE,CAAC;aACpB;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,gCAAgC,YAAY,wBAAwB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;aACjG;SACF;aAAM;YACL,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC7C,GAAG,CAAC,YAAY,EAAE,CAAC;aACpB;SACF;IACH,CAAC;CACF","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\";\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 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(): void {\n for (const dvm of Object.values(this._dvmMap)) {\n dvm.probeAll();\n }\n }\n\n\n /** Can't parallelize calls since happ can have multiple roles with 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"]}
|
package/dist/ViewModel.d.ts
CHANGED
|
@@ -13,8 +13,8 @@ export declare abstract class ViewModel {
|
|
|
13
13
|
abstract getContext(): Context<unknown, unknown>;
|
|
14
14
|
abstract get perspective(): Object;
|
|
15
15
|
comparable(): Object;
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
initializePerspectiveFromLocal(): Promise<void>;
|
|
17
|
+
initializePerspectiveFromNetwork(): Promise<void>;
|
|
18
18
|
protected probeAllInner(): void;
|
|
19
19
|
protected _probeMutex: Mutex;
|
|
20
20
|
probeAll(): void;
|
package/dist/ViewModel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewModel.d.ts","sourceRoot":"","sources":["../src/ViewModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,sBAAsB,EAAE,eAAe,EAAC,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAsBnC,8BAAsB,SAAS;aAEF,UAAU,EAAE,OAAO;gBAAnB,UAAU,EAAE,OAAO;IAK/C,SAAS,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACzC,SAAS,CAAC,cAAc,EAAE,CAAC,sBAAsB,EAAE,WAAW,CAAC,EAAE,CAAM;IACvE,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE9B,SAAS,CAAC,UAAU,UAAQ;IAO5B,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC;IAKlC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IAEhD,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC;IAInC,UAAU,IAAI,MAAM;IAId,
|
|
1
|
+
{"version":3,"file":"ViewModel.d.ts","sourceRoot":"","sources":["../src/ViewModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,sBAAsB,EAAE,eAAe,EAAC,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAsBnC,8BAAsB,SAAS;aAEF,UAAU,EAAE,OAAO;gBAAnB,UAAU,EAAE,OAAO;IAK/C,SAAS,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACzC,SAAS,CAAC,cAAc,EAAE,CAAC,sBAAsB,EAAE,WAAW,CAAC,EAAE,CAAM;IACvE,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE9B,SAAS,CAAC,UAAU,UAAQ;IAO5B,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC;IAKlC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IAEhD,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC;IAInC,UAAU,IAAI,MAAM;IAId,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/C,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvD,SAAS,CAAC,aAAa,IAAI,IAAI;IAO/B,SAAS,CAAC,WAAW,QAAe;IACpC,QAAQ,IAAI,IAAI;IAyBhB,SAAS,CAAC,UAAU,IAAI,OAAO;IAY/B,cAAc,CAAC,YAAY,EAAE,eAAe,GAAG,IAAI;IAQnD,SAAS,CAAC,YAAY,EAAE,sBAAsB,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAM5E,WAAW,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI;IAYpD,SAAS,CAAC,iBAAiB,IAAI,OAAO;CAgBvC"}
|
package/dist/ViewModel.js
CHANGED
|
@@ -8,8 +8,8 @@ export class ViewModel {
|
|
|
8
8
|
this._probeMutex = new Mutex();
|
|
9
9
|
}
|
|
10
10
|
comparable() { return {}; }
|
|
11
|
-
async
|
|
12
|
-
async
|
|
11
|
+
async initializePerspectiveFromLocal() { }
|
|
12
|
+
async initializePerspectiveFromNetwork() { }
|
|
13
13
|
probeAllInner() { }
|
|
14
14
|
;
|
|
15
15
|
probeAll() {
|
|
@@ -20,7 +20,12 @@ export class ViewModel {
|
|
|
20
20
|
this._probeMutex
|
|
21
21
|
.acquire()
|
|
22
22
|
.then(async (release) => {
|
|
23
|
-
|
|
23
|
+
try {
|
|
24
|
+
this.probeAllInner();
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
console.error("probeAll() failed", e);
|
|
28
|
+
}
|
|
24
29
|
release();
|
|
25
30
|
});
|
|
26
31
|
}
|
package/dist/ViewModel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewModel.js","sourceRoot":"","sources":["../src/ViewModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,eAAe,EAAC,MAAM,cAAc,CAAC;AAItD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAsBnC,MAAM,OAAgB,SAAS;IAE9B,YAA4B,UAAmB;QAAnB,eAAU,GAAV,UAAU,CAAS;QAMrC,mBAAc,GAA4C,EAAE,CAAC;QAG7D,eAAU,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewModel.js","sourceRoot":"","sources":["../src/ViewModel.ts"],"names":[],"mappings":"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","sourcesContent":["import {Context, ContextProvider} from \"@lit/context\";\nimport {ReactiveControllerHost, ReactiveElement} from \"lit\";\nimport {SignalCb} from \"@holochain/client\";\n\nimport { Mutex } from 'async-mutex';\n\n\n// enum InitializationState {\n// Uninitialized = \"Uninitialized\",\n// InitializingOffline = \"InitializingOffline\",\n// InitializingOnline = \"InitializingOnline\",\n// Initialized = \"Initialized\",\n// }\n\n\n/**\n * ABC of a ViewModel.\n * It mediates the interaction between a View (CustomElements) and a Model (Zome / DNA).\n * It is an Observable meant to be observed by (Lit) ReactiveElements.\n * It is meant to be a singleton passed around by a (Lit) Context.\n * The ViewModel contains a perspective: All the data that a view can observe.\n * To update subscribers, it makes use of Lit's reactive properties.\n * When subscribing, a host must provide a reactive property that has the ViewModel's perspestives's type.\n * Hosts can trigger probing in order to get an updated perspective.\n * The perspective can be automatically updated by internal events.\n */\n export abstract class ViewModel {\n\n constructor(public readonly isMainView: boolean) {\n // N/A\n }\n\n /** -- Fields -- */\n protected _previousPerspective?: unknown;\n protected _providedHosts: [ReactiveControllerHost, PropertyKey][] = [];\n protected _provider?: unknown; // FIXME type: ContextProvider<this.getContext()>;\n\n protected _canNotify = true; // Master switch for notifying subscribers\n\n //protected _initializationState: InitializationState = InitializationState.Uninitialized;\n\n\n /** -- Abstract fields -- */\n\n abstract signalHandler?: SignalCb;\n\n\n /** -- Abstract methods -- */\n\n abstract getContext(): Context<unknown, unknown>;\n /* Child class should implement with specific type */\n abstract get perspective(): Object;\n\n\n /* Children are expected to override and provide a lightweight and easy-to-compare version of the perspective */\n comparable(): Object { return {} }\n\n\n /* (optional) Set perspective with data from the source-chain and local dht data (if any) */\n async initializePerspectiveFromLocal(): Promise<void> {}\n /* (optional) Set perspective with data from the DHT network */\n async initializePerspectiveFromNetwork(): Promise<void> {}\n /* (optional) Lets the observer trigger probing into the network to get an updated perspective */\n protected probeAllInner(): void {};\n\n /**\n * Mutex wrapping of probeAllInner: Don't call probeAll() during a probeAll()\n * Should not be async as we expect this to be long, so happs are expected to use signals instead to transmit changes in data.\n * Probe calls with Network strategy are expected, so try-catch is needed to handle a get failure.\n */\n protected _probeMutex = new Mutex();\n probeAll(): void {\n // if (this._initializationState !== InitializationState.Initialized) {\n // console.warn(\"probeAll() called on an uninitialized ViewModel\");\n // return;\n // }\n if (this._probeMutex.isLocked()) {\n console.log(\"probeAll() call skipped. Reason: Already running.\");\n return;\n }\n this._probeMutex\n .acquire()\n .then(async (release) => {\n try {\n this.probeAllInner();\n } catch (e) {\n console.error(\"probeAll() failed\", e);\n }\n release();\n });\n }\n\n /**\n * Return true if the perspective has changed (compared to _previousPerspective).\n * This will trigger an update on the observers.\n */\n protected hasChanged(): boolean {\n /** return true if previous is empty, meaning comparable() has not been implemented */\n if (!this._previousPerspective || Object.keys(this._previousPerspective).length == 0) {\n return true;\n }\n return Object.entries(this._previousPerspective).toString() != Object.entries(this.comparable()).toString();\n }\n\n\n /** -- Final methods -- */\n\n /** Set ContextProvider for host */\n provideContext(providerHost: ReactiveElement): void {\n console.log(`\\t\\tProviding context \"${this.getContext()}\" | in host `, providerHost);\n this._provider = new ContextProvider(providerHost, this.getContext(), this);\n }\n\n /** -- Observer pattern -- */\n\n /** */\n subscribe(providedHost: ReactiveControllerHost, propName: PropertyKey): void {\n (providedHost as any)[propName] = this.perspective;\n this._providedHosts.push([providedHost, propName])\n }\n\n /** */\n unsubscribe(candidate: ReactiveControllerHost): void {\n let index = 0;\n for (const [host, _propName] of this._providedHosts) {\n if (host === candidate) break;\n index += 1;\n }\n if (index > -1) {\n this._providedHosts.splice(index, 1);\n }\n }\n\n /** */\n protected notifySubscribers(): boolean {\n if (!this._canNotify || !this.hasChanged()) {\n return false;\n }\n //this._previousPerspective = structuredClone(this.perspective);\n this._previousPerspective = this.comparable();\n for (const [host, propName] of this._providedHosts) {\n if (propName == \"\") {\n (host as any).requestUpdate();\n } else {\n (host as any)[propName] = this.perspective;\n }\n }\n return true;\n }\n\n}\n"]}
|
|
@@ -12,6 +12,6 @@ export declare class CellContext extends LitElement {
|
|
|
12
12
|
private _initialized;
|
|
13
13
|
firstUpdated(): void;
|
|
14
14
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
15
|
-
render(): import("lit
|
|
15
|
+
render(): import("lit").TemplateResult<1>;
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=cell-context.d.ts.map
|
|
@@ -12,6 +12,6 @@ export declare class CellMultiContext extends LitElement {
|
|
|
12
12
|
private _initialized;
|
|
13
13
|
firstUpdated(): void;
|
|
14
14
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
15
|
-
render(): import("lit
|
|
15
|
+
render(): import("lit").TemplateResult<1>;
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=cell-multi-context.d.ts.map
|
|
@@ -4,6 +4,6 @@ export declare class DvmInspect extends LitElement {
|
|
|
4
4
|
private _selectedZomeName;
|
|
5
5
|
dnaViewModel: DnaViewModel;
|
|
6
6
|
onZomeSelect(_e: any): Promise<void>;
|
|
7
|
-
render(): import("lit
|
|
7
|
+
render(): import("lit").TemplateResult<1>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=dvm-inspect.d.ts.map
|
|
@@ -5,6 +5,6 @@ export declare class EntryDefSelect extends LitElement {
|
|
|
5
5
|
dnaViewModel: DnaViewModel;
|
|
6
6
|
onZomeSelect(_e: any): Promise<void>;
|
|
7
7
|
onEntrySelect(_e: any): Promise<void>;
|
|
8
|
-
render(): import("lit
|
|
8
|
+
render(): import("lit").TemplateResult<1>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=entry-def-select.d.ts.map
|
|
@@ -2,6 +2,6 @@ import { LitElement } from "lit";
|
|
|
2
2
|
import { Cell } from "@ddd-qc/cell-proxy";
|
|
3
3
|
export declare class ViewCellContext extends LitElement {
|
|
4
4
|
cell: Cell;
|
|
5
|
-
render(): import("lit
|
|
5
|
+
render(): import("lit").TemplateResult<1>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=view-cell-context.d.ts.map
|
|
@@ -2,6 +2,6 @@ import { LitElement } from "lit";
|
|
|
2
2
|
import { Cell } from "@ddd-qc/cell-proxy";
|
|
3
3
|
export declare class ViewCellMultiContext extends LitElement {
|
|
4
4
|
cells: Cell[];
|
|
5
|
-
render(): import("lit
|
|
5
|
+
render(): import("lit").TemplateResult<1>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=view-cell-multi-context.d.ts.map
|