@nyaruka/temba-components 0.105.0 → 0.105.1

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.
@@ -51,7 +51,6 @@ export class OutboxMonitor extends ResizeElement {
51
51
  this.firstFetch = new Date();
52
52
  }
53
53
  this.fetches++;
54
- console.log(this.folders);
55
54
  this.scheduleRefresh(Math.min(this.fetches * 5000, 60000));
56
55
  const outbox = this.folders['outbox'];
57
56
  this.backlogSize = outbox.current;
@@ -70,7 +69,6 @@ export class OutboxMonitor extends ResizeElement {
70
69
  const sentInWindow = totalCompleted - startCount;
71
70
  this.msgsPerSecond = sentInWindow / time;
72
71
  const remaining = this.folders['outbox'].current;
73
- console.log(remaining, this.msgsPerSecond);
74
72
  const secondsRemaining = remaining / this.msgsPerSecond;
75
73
  this.estimatedCompletionDate = new Date(new Date().getTime() + secondsRemaining * 1000);
76
74
  }
@@ -99,7 +97,7 @@ export class OutboxMonitor extends ResizeElement {
99
97
  or broadcasts. Your channels are currently sending at
100
98
  ${roundedRate.toLocaleString()}
101
99
  message${roundedRate == 1 ? '' : 's'} per second. At that rate, your
102
- outbox should be clear
100
+ outbox will clear
103
101
  <temba-date
104
102
  value="${this.estimatedCompletionDate.toISOString()}"
105
103
  display="duration"
@@ -1 +1 @@
1
- {"version":3,"file":"OutboxMonitor.js","sourceRoot":"","sources":["../../../src/outboxmonitor/OutboxMonitor.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, PropertyValueMap } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ResizeElement } from '../ResizeElement';\nimport { fetchResults } from '../utils';\n\nconst MIN_BACKLOG = 500000;\nexport class OutboxMonitor extends ResizeElement {\n @property({ type: Number })\n backlogSize = 0;\n\n @property({ type: String })\n endpoint = '/msg/menu/';\n\n folders: { [id: string]: { start: number; current: number } } = {};\n\n @property({ type: Object })\n firstFetch: Date;\n\n @property({ type: Object })\n lastFetch: Date;\n\n @property({ type: Number })\n fetches = 0;\n\n @property({ type: Number })\n msgsPerSecond = 0;\n\n @property({ type: Object })\n estimatedCompletionDate: Date;\n\n public static get styles() {\n return css`\n .monitor {\n margin: 1rem;\n margin-bottom: -0.5rem;\n }\n\n .header {\n font-weight: bold;\n }\n\n .estimate {\n font-size: 0.9em;\n }\n `;\n }\n\n private fetchFolders() {\n fetchResults(this.endpoint).then((items) => {\n items\n .filter(\n (item) =>\n item.id === 'outbox' || item.id === 'sent' || item.id === 'failed'\n )\n .forEach((item) => {\n if (this.folders[item.id]) {\n this.folders[item.id].current = item.count;\n } else {\n this.folders[item.id] = {\n start: item.count,\n current: item.count\n };\n }\n });\n\n if (this.firstFetch) {\n this.lastFetch = new Date();\n } else {\n this.firstFetch = new Date();\n }\n this.fetches++;\n\n console.log(this.folders);\n\n this.scheduleRefresh(Math.min(this.fetches * 5000, 60000));\n\n const outbox = this.folders['outbox'];\n\n this.backlogSize = outbox.current;\n if (outbox.current > 1) {\n this.estimateCompletion();\n }\n });\n }\n\n private estimateCompletion() {\n if (this.lastFetch) {\n const time =\n (this.lastFetch.getTime() - this.firstFetch.getTime()) / 1000;\n const sent = this.folders['sent'];\n const failed = this.folders['failed'];\n\n const totalCompleted = sent.current + failed.current;\n const startCount = sent.start + failed.start;\n\n const sentInWindow = totalCompleted - startCount;\n this.msgsPerSecond = sentInWindow / time;\n\n const remaining = this.folders['outbox'].current;\n console.log(remaining, this.msgsPerSecond);\n const secondsRemaining = remaining / this.msgsPerSecond;\n\n this.estimatedCompletionDate = new Date(\n new Date().getTime() + secondsRemaining * 1000\n );\n }\n }\n\n private scheduleRefresh(time: number) {\n setTimeout(() => {\n this.fetchFolders();\n }, time);\n }\n\n protected firstUpdated(\n changes: PropertyValueMap<any> | Map<PropertyKey, unknown>\n ): void {\n if (changes.has('endpoint') && this.endpoint) {\n this.fetchFolders();\n }\n }\n\n public hasBacklog() {\n return this.backlogSize > MIN_BACKLOG;\n }\n\n public render() {\n const roundedRate = Math.round(this.msgsPerSecond);\n if (this.hasBacklog() && this.estimatedCompletionDate && !this.isMobile()) {\n return html`<div class=\"monitor\">\n <temba-alert\n ><div class=\"header\">Outbox Notice</div>\n <div class=\"estimate\">\n If your outbox becomes too full, you won't be able to send new flows\n or broadcasts. Your channels are currently sending at\n ${roundedRate.toLocaleString()}\n message${roundedRate == 1 ? '' : 's'} per second. At that rate, your\n outbox should be clear\n <temba-date\n value=\"${this.estimatedCompletionDate.toISOString()}\"\n display=\"duration\"\n ></temba-date\n >.\n </div></temba-alert\n >\n </div>`;\n } else {\n return null;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"OutboxMonitor.js","sourceRoot":"","sources":["../../../src/outboxmonitor/OutboxMonitor.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, PropertyValueMap } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ResizeElement } from '../ResizeElement';\nimport { fetchResults } from '../utils';\n\nconst MIN_BACKLOG = 500000;\nexport class OutboxMonitor extends ResizeElement {\n @property({ type: Number })\n backlogSize = 0;\n\n @property({ type: String })\n endpoint = '/msg/menu/';\n\n folders: { [id: string]: { start: number; current: number } } = {};\n\n @property({ type: Object })\n firstFetch: Date;\n\n @property({ type: Object })\n lastFetch: Date;\n\n @property({ type: Number })\n fetches = 0;\n\n @property({ type: Number })\n msgsPerSecond = 0;\n\n @property({ type: Object })\n estimatedCompletionDate: Date;\n\n public static get styles() {\n return css`\n .monitor {\n margin: 1rem;\n margin-bottom: -0.5rem;\n }\n\n .header {\n font-weight: bold;\n }\n\n .estimate {\n font-size: 0.9em;\n }\n `;\n }\n\n private fetchFolders() {\n fetchResults(this.endpoint).then((items) => {\n items\n .filter(\n (item) =>\n item.id === 'outbox' || item.id === 'sent' || item.id === 'failed'\n )\n .forEach((item) => {\n if (this.folders[item.id]) {\n this.folders[item.id].current = item.count;\n } else {\n this.folders[item.id] = {\n start: item.count,\n current: item.count\n };\n }\n });\n\n if (this.firstFetch) {\n this.lastFetch = new Date();\n } else {\n this.firstFetch = new Date();\n }\n this.fetches++;\n\n this.scheduleRefresh(Math.min(this.fetches * 5000, 60000));\n\n const outbox = this.folders['outbox'];\n\n this.backlogSize = outbox.current;\n if (outbox.current > 1) {\n this.estimateCompletion();\n }\n });\n }\n\n private estimateCompletion() {\n if (this.lastFetch) {\n const time =\n (this.lastFetch.getTime() - this.firstFetch.getTime()) / 1000;\n const sent = this.folders['sent'];\n const failed = this.folders['failed'];\n\n const totalCompleted = sent.current + failed.current;\n const startCount = sent.start + failed.start;\n\n const sentInWindow = totalCompleted - startCount;\n this.msgsPerSecond = sentInWindow / time;\n\n const remaining = this.folders['outbox'].current;\n const secondsRemaining = remaining / this.msgsPerSecond;\n\n this.estimatedCompletionDate = new Date(\n new Date().getTime() + secondsRemaining * 1000\n );\n }\n }\n\n private scheduleRefresh(time: number) {\n setTimeout(() => {\n this.fetchFolders();\n }, time);\n }\n\n protected firstUpdated(\n changes: PropertyValueMap<any> | Map<PropertyKey, unknown>\n ): void {\n if (changes.has('endpoint') && this.endpoint) {\n this.fetchFolders();\n }\n }\n\n public hasBacklog() {\n return this.backlogSize > MIN_BACKLOG;\n }\n\n public render() {\n const roundedRate = Math.round(this.msgsPerSecond);\n if (this.hasBacklog() && this.estimatedCompletionDate && !this.isMobile()) {\n return html`<div class=\"monitor\">\n <temba-alert\n ><div class=\"header\">Outbox Notice</div>\n <div class=\"estimate\">\n If your outbox becomes too full, you won't be able to send new flows\n or broadcasts. Your channels are currently sending at\n ${roundedRate.toLocaleString()}\n message${roundedRate == 1 ? '' : 's'} per second. At that rate, your\n outbox will clear\n <temba-date\n value=\"${this.estimatedCompletionDate.toISOString()}\"\n display=\"duration\"\n ></temba-date\n >.\n </div></temba-alert\n >\n </div>`;\n } else {\n return null;\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nyaruka/temba-components",
3
- "version": "0.105.0",
3
+ "version": "0.105.1",
4
4
  "description": "Web components to support rapidpro and related projects",
5
5
  "author": "Nyaruka <code@nyaruka.coim>",
6
6
  "main": "dist/index.js",
@@ -70,8 +70,6 @@ export class OutboxMonitor extends ResizeElement {
70
70
  }
71
71
  this.fetches++;
72
72
 
73
- console.log(this.folders);
74
-
75
73
  this.scheduleRefresh(Math.min(this.fetches * 5000, 60000));
76
74
 
77
75
  const outbox = this.folders['outbox'];
@@ -97,7 +95,6 @@ export class OutboxMonitor extends ResizeElement {
97
95
  this.msgsPerSecond = sentInWindow / time;
98
96
 
99
97
  const remaining = this.folders['outbox'].current;
100
- console.log(remaining, this.msgsPerSecond);
101
98
  const secondsRemaining = remaining / this.msgsPerSecond;
102
99
 
103
100
  this.estimatedCompletionDate = new Date(
@@ -135,7 +132,7 @@ export class OutboxMonitor extends ResizeElement {
135
132
  or broadcasts. Your channels are currently sending at
136
133
  ${roundedRate.toLocaleString()}
137
134
  message${roundedRate == 1 ? '' : 's'} per second. At that rate, your
138
- outbox should be clear
135
+ outbox will clear
139
136
  <temba-date
140
137
  value="${this.estimatedCompletionDate.toISOString()}"
141
138
  display="duration"