@ddd-qc/lit-happ 0.32.0 → 0.32.6

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/LICENSE CHANGED
File without changes
package/README.md CHANGED
File without changes
@@ -4,7 +4,7 @@ import { ViewModel } from "./ViewModel";
4
4
  import { AdminWebsocket, InstalledAppId, ZomeName } from "@holochain/client";
5
5
  import { DnaModifiersOptions, ZvmDef } from "./definitions";
6
6
  import { Context } from "@lit/context";
7
- import { CellProxy, AppProxy, HCL, Dictionary, AgentId, EntryDef, DnaInfo } from "@ddd-qc/cell-proxy";
7
+ import { CellProxy, AppProxy, HCL, MyDictionary, AgentId, EntryDef, DnaInfo } from "@ddd-qc/cell-proxy";
8
8
  import { RoleSpecific } from "./roleMixin";
9
9
  interface IDnaViewModel {
10
10
  dumpCallLogs(zomeName?: ZomeName): void;
@@ -28,7 +28,7 @@ export declare abstract class DnaViewModel extends DnaViewModel_base implements
28
28
  static ZVM_DEFS: ZvmDef[];
29
29
  static DNA_MODIFIERS: DnaModifiersOptions;
30
30
  protected _cellProxy: CellProxy;
31
- protected _zomeViewModels: Dictionary<ZomeViewModel>;
31
+ protected _zomeViewModels: MyDictionary<ZomeViewModel>;
32
32
  protected _zomeNames: ZomeName[];
33
33
  private _allEntryDefs;
34
34
  private _allZomeInfo;
@@ -36,11 +36,11 @@ export declare abstract class DnaViewModel extends DnaViewModel_base implements
36
36
  protected _livePeers: AgentId[];
37
37
  readonly hcl: HCL;
38
38
  constructor(host: ReactiveElement, appProxy: AppProxy, idOrHcl: HCL | InstalledAppId, isMainView: boolean);
39
- get allEntryDefs(): Dictionary<Dictionary<EntryDef>>;
39
+ get allEntryDefs(): MyDictionary<MyDictionary<EntryDef>>;
40
40
  get dnaInfo(): DnaInfo;
41
41
  get livePeers(): AgentId[];
42
42
  get zomeNames(): ZomeName[];
43
- getZomeEntryDefs(zomeName: ZomeName): Dictionary<EntryDef>;
43
+ getZomeEntryDefs(zomeName: ZomeName): MyDictionary<EntryDef>;
44
44
  getZomeViewModel(zomeName: ZomeName): ZomeViewModel;
45
45
  provideContext(host: ReactiveElement): void;
46
46
  getContext(): Context<unknown, unknown>;
@@ -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,UAAU,EAAa,OAAO,EAAE,QAAQ,EAAY,OAAO,EAC5D,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,UAAU,CAAC,aAAa,CAAC,CAAM;IAE1D,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAM;IAEtC,OAAO,CAAC,aAAa,CAAwC;IAE7D,OAAO,CAAC,YAAY,CAA4B;IAChD,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,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAA8B;IAElF,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,UAAU,CAAC,QAAQ,CAAC;IAQ1D,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,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7C,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;YAW7C,eAAe;IAyB7B,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;IAMvC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;IAkBzC,SAAS;CAGV"}
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,EAAY,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,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,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7C,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;YAW7C,eAAe;IAyB7B,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;IAMvC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;IAkBzC,SAAS;CAGV"}
@@ -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 Dictionary, 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: Dictionary<ZomeViewModel> = {};\n /* ZvmCtorName -> ZomeName */\n protected _zomeNames: ZomeName[] = [];\n /* ZomeName -> (EntryName -> EntryDef) */\n private _allEntryDefs: Dictionary<Dictionary<EntryDef>> = {};\n /* ZomeName -> ZomeInfo */\n private _allZomeInfo: Dictionary<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(): Dictionary<Dictionary<EntryDef>> { return this._allEntryDefs }\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): Dictionary<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 /** EntryDefs */\n for (const zomeName of this.zomeNames) {\n try {\n const defs = await this._cellProxy.callEntryDefs(zomeName);\n this._allEntryDefs[zomeName] = defs;\n } catch(e: any) {\n if (e.throttled) {\n continue;\n }\n return Promise.reject(e);\n }\n }\n /** ZomeInfo */\n for (const zomeName of this.zomeNames) {\n const info = await this._cellProxy.callZomeInfo(zomeName);\n this._allZomeInfo[zomeName] = info;\n }\n /** DnaInfo */\n const info = await this._cellProxy.callDnaInfo(this.zomeNames[0]!);\n this._dnaInfo = info;\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 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 /** EntryDefs */\n for (const zomeName of this.zomeNames) {\n try {\n const defs = await this._cellProxy.callEntryDefs(zomeName);\n this._allEntryDefs[zomeName] = defs;\n } catch(e: any) {\n if (e.throttled) {\n continue;\n }\n return Promise.reject(e);\n }\n }\n /** ZomeInfo */\n for (const zomeName of this.zomeNames) {\n const info = await this._cellProxy.callZomeInfo(zomeName);\n this._allZomeInfo[zomeName] = info;\n }\n /** DnaInfo */\n const info = await this._cellProxy.callDnaInfo(this.zomeNames[0]!);\n this._dnaInfo = info;\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,6 +1,6 @@
1
1
  import { AdminWebsocket, ClonedCell, InstalledAppId } from "@holochain/client";
2
2
  import { ReactiveElement } from "lit";
3
- import { AppProxy, BaseRoleName, CellAddress, CellCloner, Dictionary, HCL } from "@ddd-qc/cell-proxy";
3
+ import { AppProxy, BaseRoleName, CellAddress, CellCloner, MyDictionary, HCL } from "@ddd-qc/cell-proxy";
4
4
  import { CellDef, DvmDef, HvmDef } from "./definitions";
5
5
  import { DnaViewModel } from "./DnaViewModel";
6
6
  export declare class HappViewModel {
@@ -8,10 +8,10 @@ export declare class HappViewModel {
8
8
  protected _appProxy: AppProxy;
9
9
  readonly isMainView: boolean;
10
10
  readonly appId: InstalledAppId;
11
- protected _dvmMap: Dictionary<DnaViewModel>;
12
- protected _defMap: Dictionary<DvmDef>;
11
+ protected _dvmMap: MyDictionary<DnaViewModel>;
12
+ protected _defMap: MyDictionary<DvmDef>;
13
13
  getDef(name: BaseRoleName): DvmDef | undefined;
14
- getCellDvms(cellId: CellAddress): Dictionary<DnaViewModel> | undefined;
14
+ getCellDvms(cellId: CellAddress): MyDictionary<DnaViewModel> | undefined;
15
15
  getDvm(hclOrId: HCL | BaseRoleName): DnaViewModel | undefined;
16
16
  getClones(baseRoleName: BaseRoleName): DnaViewModel[];
17
17
  static new(host: ReactiveElement, appProxy: AppProxy, hvmDef: HvmDef, isMainView: boolean): Promise<HappViewModel>;
@@ -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,UAAU,EACV,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,UAAU,CAAC,YAAY,CAAC,CAAM;IAEjD,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAM;IAM3C,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS;IAK9C,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,SAAS;IActE,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,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7C,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAWlD,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;CAchD"}
1
+ {"version":3,"file":"HappViewModel.d.ts","sourceRoot":"","sources":["../src/HappViewModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,UAAU,EAA0B,cAAc,EAAS,MAAM,mBAAmB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,EACL,QAAQ,EACR,YAAY,EAAE,WAAW,EAAE,UAAU,EAGrC,YAAY,EACZ,GAAG,EACJ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;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,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7C,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAWlD,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;CAchD"}
@@ -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 Dictionary,\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: Dictionary<DnaViewModel> = {};\n /** BaseRoleName -> DvmDef */\n protected _defMap: Dictionary<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): Dictionary<DnaViewModel> | undefined {\n const hcls = this._appProxy.getLocations(cellId);\n if (hcls === undefined) return undefined;\n let dict: Dictionary<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":"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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"]}
package/dist/globals.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  export declare enum HappEnvType {
2
- Prod = "Prod",
3
- Devtest = "Devtest",
4
- Electron = "Electron",
5
- DevtestWe = "DevtestWe",
2
+ Browser = "Browser",
6
3
  We = "We",
7
- DevTestHolo = "DevTestHolo",
8
- Holo = "HoloProd"
4
+ BrowserWe = "BrowserWe",
5
+ Electron = "Electron",
6
+ Holo = "Holo"
9
7
  }
8
+ export declare function isHappEnv(value: any): value is HappEnvType;
10
9
  export declare enum HappBuildModeType {
11
10
  Debug = "Debug",
12
11
  Release = "Release",
13
12
  Retail = "Retail"
14
13
  }
14
+ export declare function isHappBuildMode(value: any): value is HappBuildModeType;
15
15
  export declare let HAPP_BUILD_MODE: HappBuildModeType;
16
16
  export declare let HAPP_ENV: HappEnvType;
17
17
  export declare let HAPP_ELECTRON_API: any;
@@ -1 +1 @@
1
- {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAEA,oBAAY,WAAW;IACnB,IAAI,SAAgB;IACpB,OAAO,YAAgB;IACvB,QAAQ,aAAgB;IACxB,SAAS,cAAgB;IACzB,EAAE,OAAgB;IAClB,WAAW,gBAAgB;IAC3B,IAAI,aAAoB;CAC3B;AAGD,oBAAY,iBAAiB;IACzB,KAAK,UAAY;IACjB,OAAO,YAAY;IACnB,MAAM,WAAY;CACrB;AAqDD,eAAO,IAAI,eAAe,mBAAY,CAAC;AACvC,eAAO,IAAI,QAAQ,aAAU,CAAC;AAC9B,eAAO,IAAI,iBAAiB,KAAmB,CAAC"}
1
+ {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAEA,oBAAY,WAAW;IACnB,OAAO,YAAgB;IACvB,EAAE,OAAgB;IAClB,SAAS,cAAgB;IACzB,QAAQ,aAAgB;IACxB,IAAI,SAAgB;CACvB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,WAAW,CAE1D;AAGD,oBAAY,iBAAiB;IACzB,KAAK,UAAY;IACjB,OAAO,YAAY;IACnB,MAAM,WAAY;CACrB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,iBAAiB,CAEtE;AA6DD,eAAO,IAAI,eAAe,mBAAY,CAAC;AACvC,eAAO,IAAI,QAAQ,aAAU,CAAC;AAC9B,eAAO,IAAI,iBAAiB,KAAmB,CAAC"}
package/dist/globals.js CHANGED
@@ -1,30 +1,36 @@
1
1
  export var HappEnvType;
2
2
  (function (HappEnvType) {
3
- HappEnvType["Prod"] = "Prod";
4
- HappEnvType["Devtest"] = "Devtest";
5
- HappEnvType["Electron"] = "Electron";
6
- HappEnvType["DevtestWe"] = "DevtestWe";
3
+ HappEnvType["Browser"] = "Browser";
7
4
  HappEnvType["We"] = "We";
8
- HappEnvType["DevTestHolo"] = "DevTestHolo";
9
- HappEnvType["Holo"] = "HoloProd";
5
+ HappEnvType["BrowserWe"] = "BrowserWe";
6
+ HappEnvType["Electron"] = "Electron";
7
+ HappEnvType["Holo"] = "Holo";
10
8
  })(HappEnvType || (HappEnvType = {}));
9
+ export function isHappEnv(value) {
10
+ return Object.values(HappEnvType).includes(value);
11
+ }
11
12
  export var HappBuildModeType;
12
13
  (function (HappBuildModeType) {
13
14
  HappBuildModeType["Debug"] = "Debug";
14
15
  HappBuildModeType["Release"] = "Release";
15
16
  HappBuildModeType["Retail"] = "Retail";
16
17
  })(HappBuildModeType || (HappBuildModeType = {}));
18
+ export function isHappBuildMode(value) {
19
+ return Object.values(HappBuildModeType).includes(value);
20
+ }
17
21
  console.log("[lit-happ] Initializaing LIT-HAPP global consts", window);
18
22
  let buildMode = undefined;
19
23
  let happEnv;
20
24
  const maybeElectronApi = 'electronBridge' in window ? window.electronBridge : undefined;
21
25
  try {
22
26
  happEnv = process.env.HAPP_ENV;
27
+ console.log(`[lit-happ] HAPP_ENV defined by process.ENV: "${happEnv}"`);
23
28
  }
24
29
  catch (e) {
25
30
  if (maybeElectronApi) {
26
31
  happEnv = HappEnvType.Electron;
27
32
  buildMode = maybeElectronApi.BUILD_MODE;
33
+ console.log(`[lit-happ] HAPP_ENV is "${HappEnvType.Electron}"`);
28
34
  }
29
35
  else {
30
36
  const isInWe = 'IN_WE' in window ? window.IN_WE : false;
@@ -37,7 +43,7 @@ catch (e) {
37
43
  happEnv = HappEnvType.Holo;
38
44
  }
39
45
  else {
40
- happEnv = HappEnvType.Prod;
46
+ happEnv = HappEnvType.Browser;
41
47
  }
42
48
  }
43
49
  }
@@ -51,6 +57,12 @@ if (!buildMode) {
51
57
  buildMode = HappBuildModeType.Retail;
52
58
  }
53
59
  }
60
+ if (!isHappBuildMode(buildMode)) {
61
+ console.error("[lit-happ] buildMode not valid", buildMode);
62
+ }
63
+ if (!isHappEnv(happEnv)) {
64
+ console.error("[lit-happ] happEnv not valid", happEnv);
65
+ }
54
66
  export let HAPP_BUILD_MODE = buildMode;
55
67
  export let HAPP_ENV = happEnv;
56
68
  export let HAPP_ELECTRON_API = maybeElectronApi;
@@ -59,5 +71,7 @@ console.log("[lit-happ] HAPP_ENV =", HAPP_ENV);
59
71
  if (HAPP_ELECTRON_API) {
60
72
  console.log("[lit-happ] HAPP_ELECTRON_API =", HAPP_ENV);
61
73
  }
74
+ console.log("[lit-happ] HC_APP_PORT =", process.env.HC_APP_PORT);
75
+ console.log("[lit-happ] HC_ADMIN_PORT =", process.env.HC_ADMIN_PORT);
62
76
  console.log("[lit-happ] Initializaing LIT-HAPP global consts - DONE");
63
77
  //# sourceMappingURL=globals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACnB,4BAAoB,CAAA;IACpB,kCAAuB,CAAA;IACvB,oCAAwB,CAAA;IACxB,sCAAyB,CAAA;IACzB,wBAAkB,CAAA;IAClB,0CAA2B,CAAA;IAC3B,gCAAwB,CAAA;AAC5B,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB;AAGD,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,oCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,sCAAkB,CAAA;AACtB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAKD,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,MAAM,CAAC,CAAC;AAEvE,IAAI,SAAS,GAAkC,SAAS,CAAC;AACzD,IAAI,OAAoB,CAAC;AAGzB,MAAM,gBAAgB,GAAG,gBAAgB,IAAI,MAAM,CAAA,CAAC,CAAC,MAAM,CAAC,cAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;AAG9F,IAAI;IACA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAuB,CAAC;CAEjD;AAAC,OAAO,CAAC,EAAE;IAER,IAAI,gBAAgB,EAAE;QAClB,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC/B,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC;KAE3C;SAAM;QAEH,MAAM,MAAM,GAAG,OAAO,IAAI,MAAM,CAAA,CAAC,CAAC,MAAM,CAAC,KAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,IAAI,MAAM,EAAE;YACR,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC;SAC5B;aAAM;YAGH,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,IAAI,QAAQ,EAAE;gBACV,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBAEH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;aAC9B;SACJ;KACJ;CACJ;AAGD,IAAI,CAAC,SAAS,EAAE;IACZ,IAAI;QACD,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAoC,CAAC;KAC/D;IAAC,OAAO,CAAC,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,0DAA0D,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnG,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC;KACvC;CACJ;AAGD,MAAM,CAAC,IAAI,eAAe,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,IAAI,QAAQ,GAAG,OAAO,CAAC;AAC9B,MAAM,CAAC,IAAI,iBAAiB,GAAG,gBAAgB,CAAC;AAEhD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAA;AAC7D,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;AACvD,IAAI,iBAAiB,EAAE;IACnB,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;CAC3D;AAED,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA","sourcesContent":["\n/** */\nexport enum HappEnvType {\n Prod = \"Prod\", // default value\n Devtest = \"Devtest\", // HAPP_ENV set to this by web-dev-server\n Electron = \"Electron\", // if window.electronBridge is defined\n DevtestWe = \"DevtestWe\", // HAPP_ENV set to this by web-dev-server\n We = \"We\", // if window.IN_WE defined\n DevTestHolo = \"DevTestHolo\", // HAPP_ENV set to this by web-dev-server\n Holo = \"HoloProd\", // ???\n}\n\n/** */\nexport enum HappBuildModeType {\n Debug = \"Debug\", // logs\n Release = \"Release\", // logs & optimization\n Retail = \"Retail\", // optimization (default)\n}\n\n\n/** INIT GLOBAL CONSTS */\n\nconsole.log(\"[lit-happ] Initializaing LIT-HAPP global consts\", window);\n\nlet buildMode: HappBuildModeType | undefined = undefined;\nlet happEnv: HappEnvType;\n\n\nconst maybeElectronApi = 'electronBridge' in window? window.electronBridge as any : undefined;\n\n/** Determine HappEnv */\ntry {\n happEnv = process.env.HAPP_ENV as HappEnvType;\n //console.log(`HAPP_ENV defined by process.ENV: \"${happEnv}\"`);\n} catch (e) {\n /** Looking for Electron */\n if (maybeElectronApi) {\n happEnv = HappEnvType.Electron;\n buildMode = maybeElectronApi.BUILD_MODE;\n //console.log(`HAPP_ENV is \"${HappEnvType.Electron}\"`);\n } else {\n /** Looking for We */\n const isInWe = 'IN_WE' in window? window.IN_WE as boolean : false;\n if (isInWe) {\n happEnv = HappEnvType.We;\n } else {\n /** Looking for Holo */\n // FIXME\n const isInHolo = false;\n if (isInHolo) {\n happEnv = HappEnvType.Holo;\n } else {\n /** Default to prod */\n happEnv = HappEnvType.Prod;\n }\n }\n }\n}\n\n/** Determine BuildMode */\nif (!buildMode) {\n try {\n buildMode = process.env.HAPP_BUILD_MODE as HappBuildModeType;\n } catch (e) {\n console.log(`[lit-happ] HAPP_BUILD_MODE not defined. Defaulting to \"${HappBuildModeType.Retail}\"`);\n buildMode = HappBuildModeType.Retail;\n }\n}\n\n/** export result */\nexport let HAPP_BUILD_MODE = buildMode;\nexport let HAPP_ENV = happEnv;\nexport let HAPP_ELECTRON_API = maybeElectronApi;\n\nconsole.log(\"[lit-happ] HAPP_BUILD_MODE =\", HAPP_BUILD_MODE)\nconsole.log(\"[lit-happ] HAPP_ENV =\", HAPP_ENV);\nif (HAPP_ELECTRON_API) {\n console.log(\"[lit-happ] HAPP_ELECTRON_API =\", HAPP_ENV);\n}\n\nconsole.log(\"[lit-happ] Initializaing LIT-HAPP global consts - DONE\")\n\n\n/** Remove console.log() in PROD */\n// FIXME\n// if (HAPP_BUILD_MODE === 'prod') {\n// console.log(\"console.log() disabled\");\n// console.log = () => {};\n// }\n"]}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,kCAAuB,CAAA;IACvB,wBAAkB,CAAA;IAClB,sCAAyB,CAAA;IACzB,oCAAwB,CAAA;IACxB,4BAAoB,CAAA;AACxB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED,MAAM,UAAU,SAAS,CAAC,KAAU;IAChC,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAGD,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,oCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,sCAAkB,CAAA;AACtB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,UAAU,eAAe,CAAC,KAAU;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAKD,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,MAAM,CAAC,CAAC;AAEvE,IAAI,SAAS,GAAkC,SAAS,CAAC;AACzD,IAAI,OAAoB,CAAC;AAGzB,MAAM,gBAAgB,GAAG,gBAAgB,IAAI,MAAM,CAAA,CAAC,CAAC,MAAM,CAAC,cAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;AAG9F,IAAI;IACA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAuB,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,gDAAgD,OAAO,GAAG,CAAC,CAAC;CAC3E;AAAC,OAAO,CAAC,EAAE;IAER,IAAI,gBAAgB,EAAE;QAClB,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC/B,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnE;SAAM;QAEH,MAAM,MAAM,GAAG,OAAO,IAAI,MAAM,CAAA,CAAC,CAAC,MAAM,CAAC,KAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,IAAI,MAAM,EAAE;YACR,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC;SAC5B;aAAM;YAGH,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,IAAI,QAAQ,EAAE;gBACV,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;aAC9B;iBAAM;gBAEH,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;aACjC;SACJ;KACJ;CACJ;AAGD,IAAI,CAAC,SAAS,EAAE;IACZ,IAAI;QACD,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAoC,CAAC;KAC/D;IAAC,OAAO,CAAC,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,0DAA0D,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnG,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC;KACvC;CACJ;AAED,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;IAC7B,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;CAC9D;AAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;CAC1D;AAGD,MAAM,CAAC,IAAI,eAAe,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,IAAI,QAAQ,GAAG,OAAO,CAAC;AAC9B,MAAM,CAAC,IAAI,iBAAiB,GAAG,gBAAgB,CAAC;AAEhD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAA;AAC7D,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;AACvD,IAAI,iBAAiB,EAAE;IACnB,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;CAC3D;AAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACtE,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAExE,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA","sourcesContent":["\n/** */\nexport enum HappEnvType {\n Browser = \"Browser\", // default value\n We = \"We\", // if window.IN_WE defined\n BrowserWe = \"BrowserWe\", // Testing we-applet in browser\n Electron = \"Electron\", // if window.electronBridge is defined\n Holo = \"Holo\", // ???\n}\n\nexport function isHappEnv(value: any): value is HappEnvType {\n return Object.values(HappEnvType).includes(value);\n}\n\n/** */\nexport enum HappBuildModeType {\n Debug = \"Debug\", // logs\n Release = \"Release\", // logs & optimization\n Retail = \"Retail\", // optimization (default)\n}\n\nexport function isHappBuildMode(value: any): value is HappBuildModeType {\n return Object.values(HappBuildModeType).includes(value);\n}\n\n\n/** INIT GLOBAL CONSTS */\n\nconsole.log(\"[lit-happ] Initializaing LIT-HAPP global consts\", window);\n\nlet buildMode: HappBuildModeType | undefined = undefined;\nlet happEnv: HappEnvType;\n\n\nconst maybeElectronApi = 'electronBridge' in window? window.electronBridge as any : undefined;\n\n/** Determine HappEnv */\ntry {\n happEnv = process.env.HAPP_ENV as HappEnvType;\n console.log(`[lit-happ] HAPP_ENV defined by process.ENV: \"${happEnv}\"`);\n} catch (e) {\n /** Looking for Electron */\n if (maybeElectronApi) {\n happEnv = HappEnvType.Electron;\n buildMode = maybeElectronApi.BUILD_MODE;\n console.log(`[lit-happ] HAPP_ENV is \"${HappEnvType.Electron}\"`);\n } else {\n /** Looking for We */\n const isInWe = 'IN_WE' in window? window.IN_WE as boolean : false;\n if (isInWe) {\n happEnv = HappEnvType.We;\n } else {\n /** Looking for Holo */\n // FIXME\n const isInHolo = false;\n if (isInHolo) {\n happEnv = HappEnvType.Holo;\n } else {\n /** Default to prod */\n happEnv = HappEnvType.Browser;\n }\n }\n }\n}\n\n/** Determine BuildMode */\nif (!buildMode) {\n try {\n buildMode = process.env.HAPP_BUILD_MODE as HappBuildModeType;\n } catch (e) {\n console.log(`[lit-happ] HAPP_BUILD_MODE not defined. Defaulting to \"${HappBuildModeType.Retail}\"`);\n buildMode = HappBuildModeType.Retail;\n }\n}\n\nif (!isHappBuildMode(buildMode)) {\n console.error(\"[lit-happ] buildMode not valid\", buildMode);\n}\n\nif (!isHappEnv(happEnv)) {\n console.error(\"[lit-happ] happEnv not valid\", happEnv);\n}\n\n/** export result */\nexport let HAPP_BUILD_MODE = buildMode;\nexport let HAPP_ENV = happEnv;\nexport let HAPP_ELECTRON_API = maybeElectronApi;\n\nconsole.log(\"[lit-happ] HAPP_BUILD_MODE =\", HAPP_BUILD_MODE)\nconsole.log(\"[lit-happ] HAPP_ENV =\", HAPP_ENV);\nif (HAPP_ELECTRON_API) {\n console.log(\"[lit-happ] HAPP_ELECTRON_API =\", HAPP_ENV);\n}\n\nconsole.log(\"[lit-happ] HC_APP_PORT =\", process.env.HC_APP_PORT);\nconsole.log(\"[lit-happ] HC_ADMIN_PORT =\", process.env.HC_ADMIN_PORT);\n\nconsole.log(\"[lit-happ] Initializaing LIT-HAPP global consts - DONE\")\n\n\n/** Remove console.log() in PROD */\n// FIXME\n// if (HAPP_BUILD_MODE === 'prod') {\n// console.log(\"console.log() disabled\");\n// console.log = () => {};\n// }\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-qc/lit-happ",
3
- "version": "0.32.0",
3
+ "version": "0.32.6",
4
4
  "description": "MVVM Framework for holochain apps using Lit",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@ddd-qc/cell-proxy": "file:../cell-proxy",
33
- "@holochain/client": "=0.19.0-rc.1",
33
+ "@holochain/client": "=0.19.0",
34
34
  "@lit/context": "1.0.1",
35
35
  "lit": "3.0.2",
36
36
  "async-mutex": "0.4.0"