@ddd-qc/lit-happ 0.33.4 → 0.33.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # lit-happ
2
2
 
3
3
  **Compatible with:**
4
- - **HDK v0.4.1** & **HDI v0.5.1**
5
- - **@holochain/client v0.18.0**
6
- -
4
+ - **HDK v0.6.0**
5
+ - **@holochain/client v0.20.0**
6
+
7
7
  Builds on the [cell-proxy](https://www.npmjs.com/package/@ddd-qc/cell-proxy) package to provide a MVVM framework for building web-UI in [Lit](https://www.npmjs.com/package/lit) for [holochain](https://www.npmjs.com/package/@holochain/client) apps.
8
8
 
9
9
 
@@ -1,23 +1,28 @@
1
1
  import { AppProxy, CellAddress } from "@ddd-qc/cell-proxy";
2
2
  import { NetworkMetrics, Timestamp } from "@holochain/client";
3
+ import { TransportStats } from "@holochain/client/lib/api/admin/types";
3
4
  export declare class NetworkCaller {
4
5
  private appProxy;
5
6
  private cellAddr?;
6
7
  constructor(appProxy: AppProxy, cellAddr?: CellAddress | undefined);
7
8
  private _lastTimeQueried;
8
9
  private _networkMetricsLogs;
10
+ private _networkStatsLogs;
9
11
  private _intervalId;
10
12
  private _callbacks;
11
13
  setCellAddr(cellAddr: CellAddress): void;
12
14
  setCapacity(n: number): void;
13
15
  get networkMetricsLogs(): [Timestamp, NetworkMetrics][];
16
+ get networkStatsLogs(): [Timestamp, TransportStats][];
14
17
  isLooping(): boolean;
15
18
  startCallLoop(interval: number): void;
16
- addCallback(callback: (n: NetworkMetrics) => void): void;
19
+ addCallback(callback: (n: NetworkMetrics, m: TransportStats) => void): void;
17
20
  clearAllCallbacks(): void;
18
21
  stopCallLoop(): void;
19
22
  clear(): void;
20
23
  callNetworkMetrics(): Promise<NetworkMetrics>;
21
24
  dumpNetworkMetricsLogs(n?: number): void;
25
+ callNetworkStats(): Promise<TransportStats>;
26
+ dumpNetworkStatsLogs(n?: number): void;
22
27
  }
23
28
  //# sourceMappingURL=NetworkCaller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkCaller.d.ts","sourceRoot":"","sources":["../src/NetworkCaller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAuD,cAAc,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAQlH,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ;IAAY,OAAO,CAAC,QAAQ,CAAC;gBAArC,QAAQ,EAAE,QAAQ,EAAU,QAAQ,CAAC,yBAAa;IAKtE,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,mBAAmB,CAA+D;IAE1F,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,UAAU,CAAuB;IAIzC,WAAW,CAAC,QAAQ,EAAE,WAAW;IAEjC,WAAW,CAAC,CAAC,EAAE,MAAM;IAIrB,IAAI,kBAAkB,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAA6C;IAMpG,SAAS,IAAI,OAAO;IAMpB,aAAa,CAAC,QAAQ,EAAE,MAAM;IAe9B,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI;IAKjD,iBAAiB;IAKjB,YAAY;IAOZ,KAAK;IAMC,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC;IAsBnD,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM;CA2BlC"}
1
+ {"version":3,"file":"NetworkCaller.d.ts","sourceRoot":"","sources":["../src/NetworkCaller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAuD,cAAc,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAClH,OAAO,EAAC,cAAc,EAAC,MAAM,uCAAuC,CAAC;AAQrE,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ;IAAY,OAAO,CAAC,QAAQ,CAAC;gBAArC,QAAQ,EAAE,QAAQ,EAAU,QAAQ,CAAC,yBAAa;IAKtE,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,mBAAmB,CAA+D;IAC1F,OAAO,CAAC,iBAAiB,CAA+D;IAGxF,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,UAAU,CAAuB;IAIzC,WAAW,CAAC,QAAQ,EAAE,WAAW;IAEjC,WAAW,CAAC,CAAC,EAAE,MAAM;IAKrB,IAAI,kBAAkB,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAA6C;IAEpG,IAAI,gBAAgB,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAA2C;IAMhG,SAAS,IAAI,OAAO;IAMpB,aAAa,CAAC,QAAQ,EAAE,MAAM;IAgB9B,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,KAAK,IAAI;IAKpE,iBAAiB;IAKjB,YAAY;IAOZ,KAAK;IAOC,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC;IAuBnD,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM;IA6BzB,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC;IAajD,oBAAoB,CAAC,CAAC,CAAC,EAAE,MAAM;CAYlC"}
@@ -5,6 +5,7 @@ export class NetworkCaller {
5
5
  this.cellAddr = cellAddr;
6
6
  this._lastTimeQueried = 0;
7
7
  this._networkMetricsLogs = new RingBuffer(50);
8
+ this._networkStatsLogs = new RingBuffer(50);
8
9
  this._intervalId = undefined;
9
10
  this._callbacks = [];
10
11
  }
@@ -12,8 +13,10 @@ export class NetworkCaller {
12
13
  ;
13
14
  setCapacity(n) {
14
15
  this._networkMetricsLogs.resize(n);
16
+ this._networkStatsLogs.resize(n);
15
17
  }
16
18
  get networkMetricsLogs() { return this._networkMetricsLogs.toArray(); }
19
+ get networkStatsLogs() { return this._networkStatsLogs.toArray(); }
17
20
  isLooping() {
18
21
  const isUnd = this._intervalId === undefined;
19
22
  return !isUnd;
@@ -24,8 +27,9 @@ export class NetworkCaller {
24
27
  }
25
28
  this._intervalId = setInterval(async () => {
26
29
  const res = await this.callNetworkMetrics();
30
+ const res2 = await this.callNetworkStats();
27
31
  for (const callback of this._callbacks) {
28
- callback(res);
32
+ callback(res, res2);
29
33
  }
30
34
  }, interval);
31
35
  }
@@ -41,15 +45,17 @@ export class NetworkCaller {
41
45
  }
42
46
  clear() {
43
47
  this._networkMetricsLogs.clear();
48
+ this._networkStatsLogs.clear();
44
49
  }
45
50
  async callNetworkMetrics() {
46
51
  if (!this.cellAddr) {
47
52
  throw Promise.reject("callNetworkMetrics() aborted. cellAddr not specified.");
48
53
  }
49
- const response = await this.appProxy.dumpNetworkMetrics({
54
+ const request = {
50
55
  dna_hash: this.cellAddr.dnaId.hash,
51
56
  include_dht_summary: true,
52
- });
57
+ };
58
+ const response = await this.appProxy.dumpNetworkMetrics(request);
53
59
  if (!response || !response[this.cellAddr.dnaId.b64]) {
54
60
  throw Promise.reject("No network metrics response for dna");
55
61
  }
@@ -61,7 +67,7 @@ export class NetworkCaller {
61
67
  dumpNetworkMetricsLogs(n) {
62
68
  console.log(`dumpNetworkMetricsLogs()`, this.cellAddr);
63
69
  if (!this.cellAddr) {
64
- throw Promise.reject("dumpNetworkMetricsLogs() aborted. cellAddr not specified.");
70
+ throw Error("dumpNetworkMetricsLogs() aborted. cellAddr not specified.");
65
71
  }
66
72
  const nn = n ? n : this._networkMetricsLogs.getBufferLength();
67
73
  let logs = this._networkMetricsLogs.getLastN(nn).map(([ts, metrics]) => {
@@ -83,6 +89,25 @@ export class NetworkCaller {
83
89
  });
84
90
  console.table(logs);
85
91
  }
92
+ async callNetworkStats() {
93
+ const response = await this.appProxy.dumpNetworkStats();
94
+ if (!response) {
95
+ throw Promise.reject("No network stats response for dna");
96
+ }
97
+ this._networkStatsLogs.add([this._lastTimeQueried, response]);
98
+ return response;
99
+ }
100
+ dumpNetworkStatsLogs(n) {
101
+ console.log(`dumpNetworkStatsLogs()`);
102
+ const nn = n ? n : this._networkStatsLogs.getBufferLength();
103
+ this._networkStatsLogs.getLastN(nn).map(([ts, stats]) => {
104
+ console.log(`[${prettyDate(new Date(ts))}] Backend: ${stats.backend} ; Peers: ${stats.peer_urls.length}`);
105
+ const logs = stats.connections.map((connection) => {
106
+ return connection;
107
+ });
108
+ console.table(logs);
109
+ });
110
+ }
86
111
  }
87
112
  function count_pending_requests(fetchSummary) {
88
113
  let total = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkCaller.js","sourceRoot":"","sources":["../src/NetworkCaller.ts"],"names":[],"mappings":"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","sourcesContent":["import {AppProxy, CellAddress, prettyDate, RingBuffer} from \"@ddd-qc/cell-proxy\";\r\nimport {DhtArc, DumpNetworkMetricsRequest, FetchStateSummary, NetworkMetrics, Timestamp} from \"@holochain/client\";\r\n\r\ntype NetworkInfoCb = (info:NetworkMetrics) => void;\r\n\r\n\r\n/**\r\n * Class handling network info calling and result storing\r\n */\r\nexport class NetworkCaller {\r\n\r\n /** */\r\n constructor(private appProxy: AppProxy, private cellAddr?: CellAddress) {\r\n // N/A\r\n }\r\n\r\n\r\n private _lastTimeQueried: Timestamp = 0;\r\n private _networkMetricsLogs: RingBuffer<[Timestamp, NetworkMetrics]> = new RingBuffer(50);\r\n\r\n private _intervalId: any | undefined = undefined;\r\n\r\n private _callbacks: NetworkInfoCb[] = [];\r\n\r\n /** -- Getters & Setters -- */\r\n\r\n setCellAddr(cellAddr: CellAddress) { this.cellAddr = cellAddr};\r\n\r\n setCapacity(n: number) {\r\n this._networkMetricsLogs.resize(n);\r\n }\r\n\r\n get networkMetricsLogs(): [Timestamp, NetworkMetrics][] {return this._networkMetricsLogs.toArray();}\r\n\r\n\r\n /** -- Methods -- */\r\n\r\n /** */\r\n isLooping(): boolean {\r\n const isUnd = this._intervalId === undefined;\r\n return !isUnd;\r\n }\r\n\r\n /** */\r\n startCallLoop(interval: number) {\r\n if (this.isLooping()) {\r\n this.stopCallLoop();\r\n }\r\n this._intervalId = setInterval(async () => {\r\n //console.log(\"Requesting network info...\");\r\n const res = await this.callNetworkMetrics();\r\n for (const callback of this._callbacks) {\r\n callback(res);\r\n }\r\n }, interval);\r\n }\r\n\r\n\r\n /** */\r\n addCallback(callback: (n: NetworkMetrics) => void) {\r\n this._callbacks.push(callback);\r\n }\r\n\r\n /** */\r\n clearAllCallbacks() {\r\n this._callbacks = [];\r\n }\r\n\r\n /** */\r\n stopCallLoop() {\r\n clearInterval(this._intervalId);\r\n this._intervalId = undefined;\r\n }\r\n\r\n\r\n /** */\r\n clear() {\r\n this._networkMetricsLogs.clear();\r\n }\r\n\r\n\r\n /** */\r\n async callNetworkMetrics(): Promise<NetworkMetrics> {\r\n if (!this.cellAddr) {\r\n throw Promise.reject(\"callNetworkMetrics() aborted. cellAddr not specified.\");\r\n }\r\n /* Call networkInfo */\r\n const response = await this.appProxy.dumpNetworkMetrics({\r\n dna_hash: this.cellAddr.dnaId.hash,\r\n include_dht_summary: true, // ???\r\n } as DumpNetworkMetricsRequest);\r\n if (!response || !response[this.cellAddr.dnaId.b64]) {\r\n throw Promise.reject(\"No network metrics response for dna\");\r\n }\r\n /* Store */\r\n const dnaResp = response[this.cellAddr.dnaId.b64]!;\r\n this._lastTimeQueried = Date.now();\r\n this._networkMetricsLogs.add([this._lastTimeQueried, dnaResp]);\r\n /** */\r\n return dnaResp;\r\n }\r\n\r\n\r\n /** */\r\n dumpNetworkMetricsLogs(n?: number) {\r\n console.log(`dumpNetworkMetricsLogs()`, this.cellAddr);\r\n if (!this.cellAddr) {\r\n throw Promise.reject(\"dumpNetworkMetricsLogs() aborted. cellAddr not specified.\");\r\n }\r\n const nn = n? n : this._networkMetricsLogs.getBufferLength();\r\n let logs = this._networkMetricsLogs.getLastN(nn).map(([ts, metrics]) => {\r\n if (metrics.local_agents.length == 0) {\r\n throw Error(\"No local agents found in NetworkMetrics\");\r\n }\r\n if (metrics.local_agents.length == 0) {\r\n console.warn(\"dumpNetworkMetricsLogs() More than one local_agent found\");\r\n }\r\n const local_agent = metrics.local_agents[0]!;\r\n return {\r\n //ts,\r\n ts: prettyDate(new Date(ts)),\r\n current_arc: arc_size(local_agent.storage_arc),\r\n target_arc: arc_size(local_agent.target_arc),\r\n peers: Object.keys(metrics.gossip_state_summary.peer_meta).length,\r\n //total_peers: Object.keys(metrics.gossip_state_summary.peer_meta).length,\r\n rounds: metrics.gossip_state_summary.accepted_rounds.length,\r\n pending_requests: count_pending_requests(metrics.fetch_state_summary),\r\n }\r\n })\r\n console.table(logs);\r\n }\r\n}\r\n\r\n\r\n/** */\r\nfunction count_pending_requests(fetchSummary: FetchStateSummary): number {\r\n let total = 0;\r\n for (const peerUrls of Object.values(fetchSummary.pending_requests)) {\r\n total += peerUrls.length;\r\n }\r\n return total;\r\n}\r\n\r\n\r\n/** */\r\nfunction arc_size(arc: DhtArc): number {\r\n if (arc == null) {\r\n return 0;\r\n }\r\n return arc[1] - arc[0];\r\n}\r\n"]}
1
+ {"version":3,"file":"NetworkCaller.js","sourceRoot":"","sources":["../src/NetworkCaller.ts"],"names":[],"mappings":"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","sourcesContent":["import {AppProxy, CellAddress, prettyDate, RingBuffer} from \"@ddd-qc/cell-proxy\";\r\nimport {DhtArc, DumpNetworkMetricsRequest, FetchStateSummary, NetworkMetrics, Timestamp} from \"@holochain/client\";\r\nimport {TransportStats} from \"@holochain/client/lib/api/admin/types\";\r\n\r\ntype NetworkInfoCb = (info:NetworkMetrics, m: TransportStats) => void;\r\n\r\n\r\n/**\r\n * Class handling network info calling and result storing\r\n */\r\nexport class NetworkCaller {\r\n\r\n /** */\r\n constructor(private appProxy: AppProxy, private cellAddr?: CellAddress) {\r\n // N/A\r\n }\r\n\r\n\r\n private _lastTimeQueried: Timestamp = 0;\r\n private _networkMetricsLogs: RingBuffer<[Timestamp, NetworkMetrics]> = new RingBuffer(50);\r\n private _networkStatsLogs: RingBuffer<[Timestamp, TransportStats]> = new RingBuffer(50);\r\n\r\n\r\n private _intervalId: any | undefined = undefined;\r\n\r\n private _callbacks: NetworkInfoCb[] = [];\r\n\r\n /** -- Getters & Setters -- */\r\n\r\n setCellAddr(cellAddr: CellAddress) { this.cellAddr = cellAddr};\r\n\r\n setCapacity(n: number) {\r\n this._networkMetricsLogs.resize(n);\r\n this._networkStatsLogs.resize(n);\r\n }\r\n\r\n get networkMetricsLogs(): [Timestamp, NetworkMetrics][] {return this._networkMetricsLogs.toArray();}\r\n\r\n get networkStatsLogs(): [Timestamp, TransportStats][] {return this._networkStatsLogs.toArray();}\r\n\r\n\r\n /** -- Methods -- */\r\n\r\n /** */\r\n isLooping(): boolean {\r\n const isUnd = this._intervalId === undefined;\r\n return !isUnd;\r\n }\r\n\r\n /** */\r\n startCallLoop(interval: number) {\r\n if (this.isLooping()) {\r\n this.stopCallLoop();\r\n }\r\n this._intervalId = setInterval(async () => {\r\n //console.log(\"Requesting network info...\");\r\n const res = await this.callNetworkMetrics();\r\n const res2 = await this.callNetworkStats();\r\n for (const callback of this._callbacks) {\r\n callback(res, res2);\r\n }\r\n }, interval);\r\n }\r\n\r\n\r\n /** */\r\n addCallback(callback: (n: NetworkMetrics, m: TransportStats) => void) {\r\n this._callbacks.push(callback);\r\n }\r\n\r\n /** */\r\n clearAllCallbacks() {\r\n this._callbacks = [];\r\n }\r\n\r\n /** */\r\n stopCallLoop() {\r\n clearInterval(this._intervalId);\r\n this._intervalId = undefined;\r\n }\r\n\r\n\r\n /** */\r\n clear() {\r\n this._networkMetricsLogs.clear();\r\n this._networkStatsLogs.clear();\r\n }\r\n\r\n\r\n /** */\r\n async callNetworkMetrics(): Promise<NetworkMetrics> {\r\n if (!this.cellAddr) {\r\n throw Promise.reject(\"callNetworkMetrics() aborted. cellAddr not specified.\");\r\n }\r\n /* Call networkInfo */\r\n const request: DumpNetworkMetricsRequest = {\r\n dna_hash: this.cellAddr.dnaId.hash,\r\n include_dht_summary: true, // ???\r\n };\r\n const response = await this.appProxy.dumpNetworkMetrics(request);\r\n if (!response || !response[this.cellAddr.dnaId.b64]) {\r\n throw Promise.reject(\"No network metrics response for dna\");\r\n }\r\n /* Store */\r\n const dnaResp = response[this.cellAddr.dnaId.b64]!;\r\n this._lastTimeQueried = Date.now();\r\n this._networkMetricsLogs.add([this._lastTimeQueried, dnaResp]);\r\n /** */\r\n return dnaResp;\r\n }\r\n\r\n\r\n /** */\r\n dumpNetworkMetricsLogs(n?: number) {\r\n console.log(`dumpNetworkMetricsLogs()`, this.cellAddr);\r\n if (!this.cellAddr) {\r\n throw Error(\"dumpNetworkMetricsLogs() aborted. cellAddr not specified.\");\r\n }\r\n const nn = n? n : this._networkMetricsLogs.getBufferLength();\r\n let logs = this._networkMetricsLogs.getLastN(nn).map(([ts, metrics]) => {\r\n if (metrics.local_agents.length == 0) {\r\n throw Error(\"No local agents found in NetworkMetrics\");\r\n }\r\n if (metrics.local_agents.length == 0) {\r\n console.warn(\"dumpNetworkMetricsLogs() More than one local_agent found\");\r\n }\r\n const local_agent = metrics.local_agents[0]!;\r\n return {\r\n //ts,\r\n ts: prettyDate(new Date(ts)),\r\n current_arc: arc_size(local_agent.storage_arc),\r\n target_arc: arc_size(local_agent.target_arc),\r\n peers: Object.keys(metrics.gossip_state_summary.peer_meta).length,\r\n //total_peers: Object.keys(metrics.gossip_state_summary.peer_meta).length,\r\n rounds: metrics.gossip_state_summary.accepted_rounds.length,\r\n pending_requests: count_pending_requests(metrics.fetch_state_summary),\r\n }\r\n })\r\n console.table(logs);\r\n }\r\n\r\n /** */\r\n async callNetworkStats(): Promise<TransportStats> {\r\n const response = await this.appProxy.dumpNetworkStats();\r\n if (!response) {\r\n throw Promise.reject(\"No network stats response for dna\");\r\n }\r\n /* Store */\r\n this._networkStatsLogs.add([this._lastTimeQueried, response]);\r\n /** */\r\n return response;\r\n }\r\n\r\n\r\n /** */\r\n dumpNetworkStatsLogs(n?: number) {\r\n console.log(`dumpNetworkStatsLogs()`);\r\n const nn = n ? n : this._networkStatsLogs.getBufferLength();\r\n this._networkStatsLogs.getLastN(nn).map(([ts, stats]) => {\r\n console.log(`[${prettyDate(new Date(ts))}] Backend: ${stats.backend} ; Peers: ${stats.peer_urls.length}`);\r\n const logs = stats.connections.map((connection) => {\r\n return connection;\r\n });\r\n console.table(logs);\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n/** */\r\nfunction count_pending_requests(fetchSummary: FetchStateSummary): number {\r\n let total = 0;\r\n for (const peerUrls of Object.values(fetchSummary.pending_requests)) {\r\n total += peerUrls.length;\r\n }\r\n return total;\r\n}\r\n\r\n\r\n/** */\r\nfunction arc_size(arc: DhtArc): number {\r\n if (arc == null) {\r\n return 0;\r\n }\r\n return arc[1] - arc[0];\r\n}\r\n"]}
package/dist/globals.js CHANGED
@@ -18,7 +18,7 @@ export var HappBuildModeType;
18
18
  export function isHappBuildMode(value) {
19
19
  return Object.values(HappBuildModeType).includes(value);
20
20
  }
21
- console.log("[lit-happ] Initializaing LIT-HAPP global consts", window);
21
+ console.log("[lit-happ] Initializing LIT-HAPP global consts", window);
22
22
  const maybeElectronApi = 'electronBridge' in window ? window.electronBridge : undefined;
23
23
  let happEnv;
24
24
  try {
@@ -72,9 +72,7 @@ export let HAPP_ELECTRON_API = maybeElectronApi;
72
72
  console.log("[lit-happ] HAPP_BUILD_MODE =", HAPP_BUILD_MODE);
73
73
  console.log("[lit-happ] HAPP_ENV =", HAPP_ENV);
74
74
  if (HAPP_ELECTRON_API) {
75
- console.log("[lit-happ] HAPP_ELECTRON_API =", HAPP_ENV);
75
+ console.log("[lit-happ] HAPP_ELECTRON_API =", HAPP_ENV);
76
76
  }
77
- console.log("[lit-happ] HC_APP_PORT =", process.env.HC_APP_PORT);
78
- console.log("[lit-happ] HC_ADMIN_PORT =", process.env.HC_ADMIN_PORT);
79
- console.log("[lit-happ] Initializaing LIT-HAPP global consts - DONE");
77
+ console.log("[lit-happ] Initializing LIT-HAPP global consts - DONE");
80
78
  //# sourceMappingURL=globals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"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","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\nconst maybeElectronApi = 'electronBridge' in window? window.electronBridge as any : undefined;\n\n/** Determine HappEnv */\nlet happEnv: HappEnvType;\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 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 */\nlet buildMode: HappBuildModeType = HappBuildModeType.Retail;\nif (maybeElectronApi) {\n buildMode = maybeElectronApi.BUILD_MODE;\n} else {\n try {\n if (process.env.HAPP_BUILD_MODE) {\n buildMode = process.env.HAPP_BUILD_MODE as HappBuildModeType;\n }\n } catch (e) {\n console.log(`[lit-happ] HAPP_BUILD_MODE not defined. Defaulting to \"${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"]}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"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","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] Initializing LIT-HAPP global consts\", window);\n\nconst maybeElectronApi = 'electronBridge' in window? window.electronBridge as any : undefined;\n\n/** Determine HappEnv */\nlet happEnv: HappEnvType;\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 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 */\nlet buildMode: HappBuildModeType = HappBuildModeType.Retail;\nif (maybeElectronApi) {\n buildMode = maybeElectronApi.BUILD_MODE;\n} else {\n try {\n if (process.env.HAPP_BUILD_MODE) {\n buildMode = process.env.HAPP_BUILD_MODE as HappBuildModeType;\n }\n } catch (e) {\n console.log(`[lit-happ] HAPP_BUILD_MODE not defined. Defaulting to \"${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] Initializing 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.33.4",
3
+ "version": "0.33.5",
4
4
  "description": "MVVM Framework for holochain apps using Lit",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",