@genesislcap/foundation-ui 15.72.0 → 15.73.0-FUI-2628.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33854,6 +33854,23 @@
33854
33854
  },
33855
33855
  "privacy": "private"
33856
33856
  },
33857
+ {
33858
+ "kind": "field",
33859
+ "name": "reconnections",
33860
+ "type": {
33861
+ "text": "number"
33862
+ },
33863
+ "privacy": "private",
33864
+ "default": "0"
33865
+ },
33866
+ {
33867
+ "kind": "field",
33868
+ "name": "reconnection",
33869
+ "type": {
33870
+ "text": "Promise<void>"
33871
+ },
33872
+ "privacy": "private"
33873
+ },
33857
33874
  {
33858
33875
  "kind": "method",
33859
33876
  "name": "handleReconnection",
@@ -33863,6 +33880,14 @@
33863
33880
  "text": "Promise<void>"
33864
33881
  }
33865
33882
  },
33883
+ "parameters": [
33884
+ {
33885
+ "name": "turn",
33886
+ "type": {
33887
+ "text": "number"
33888
+ }
33889
+ }
33890
+ ],
33866
33891
  "description": "Handles reconnection logic when the connection is established"
33867
33892
  },
33868
33893
  {
@@ -33871,7 +33896,7 @@
33871
33896
  "privacy": "private",
33872
33897
  "return": {
33873
33898
  "type": {
33874
- "text": "Promise<void>"
33899
+ "text": "Promise<boolean>"
33875
33900
  }
33876
33901
  },
33877
33902
  "description": "Initializes the datasource for the notification resource"
@@ -34,6 +34,14 @@ export declare class NotificationListener extends FoundationElement {
34
34
  protected dataSub?: Subscription;
35
35
  protected connectionSub: Subscription;
36
36
  private datasource;
37
+ private reconnections;
38
+ private reconnection;
39
+ /**
40
+ * How long a reconnection waits for the one before it to finish, in milliseconds. A request
41
+ * that is lost with its socket never settles, and must not hold up the next connection.
42
+ * @internal
43
+ */
44
+ reconnectionWaitMs: number;
37
45
  connectedCallback(): Promise<void>;
38
46
  /**
39
47
  * Handles reconnection logic when the connection is established
@@ -1 +1 @@
1
- {"version":3,"file":"notification-listener.d.ts","sourceRoot":"","sources":["../../../src/notification-listener/notification-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,OAAO,EACR,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAML,mBAAmB,EACnB,WAAW,EAEX,aAAa,EACd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAIpC,eAAO,MAAM,2CAA2C,EAAE,cAGzD,CAAC;AAEF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IAC7C,oBAAoB,EAAG,WAAW,CAAC;IAEtC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACmC,YAAY,MAAC;IACnD;;;OAGG;IACuE,YAAY,SAAK;IAC3F;;;OAGG;IACS,YAAY,EAAE,WAAW,EAAE,CAAM;IAC7C;;;;OAIG;IACoC,aAAa,EAAE,aAAa,CAAC;IAEpE,SAAS,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IACjC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC;IAC1B,OAAO,CAAC,UAAU,CAAa;IACrC,iBAAiB;IAiBvB;;;OAGG;YACW,kBAAkB;IAYhC;;;OAGG;YACW,oBAAoB;IAYlC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAa7B,oBAAoB;IAapB,OAAO,CAAC,kBAAkB;IAU1B,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;CA4BhE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;+BAIzC,CAAC"}
1
+ {"version":3,"file":"notification-listener.d.ts","sourceRoot":"","sources":["../../../src/notification-listener/notification-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,OAAO,EACR,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAML,mBAAmB,EACnB,WAAW,EAEX,aAAa,EACd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAMpC,eAAO,MAAM,2CAA2C,EAAE,cAGzD,CAAC;AAEF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IAC7C,oBAAoB,EAAG,WAAW,CAAC;IAEtC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACmC,YAAY,MAAC;IACnD;;;OAGG;IACuE,YAAY,SAAK;IAC3F;;;OAGG;IACS,YAAY,EAAE,WAAW,EAAE,CAAM;IAC7C;;;;OAIG;IACoC,aAAa,EAAE,aAAa,CAAC;IAEpE,SAAS,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IACjC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC;IAC1B,OAAO,CAAC,UAAU,CAAa;IAE3C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAoC;IACxD;;;;OAIG;IACH,kBAAkB,SAAwB;IACpC,iBAAiB;IAsBvB;;;OAGG;YACW,kBAAkB;IAkBhC;;;OAGG;YACW,oBAAoB;IAQlC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAa7B,oBAAoB;IAapB,OAAO,CAAC,kBAAkB;IAU1B,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;CA4BhE;AAaD;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;+BAIzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-datasource.d.ts","sourceRoot":"","sources":["../../../src/utils/base-datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-datasource.d.ts","sourceRoot":"","sources":["../../../src/utils/base-datasource.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { attr, nullableNumberConverter, observable } from '@microsoft/fast-eleme
5
5
  import { FoundationElement } from '@microsoft/fast-foundation';
6
6
  import { logger } from '../utils';
7
7
  import { foundationNotificationListenerTemplate as template } from './notification-listener.template';
8
+ const RECONNECTION_WAIT_MS = 10000;
8
9
  export const foundationNotificationListenerShadowOptions = {
9
10
  mode: 'open',
10
11
  delegatesFocus: true,
@@ -25,6 +26,15 @@ export class NotificationListener extends FoundationElement {
25
26
  * @public
26
27
  */
27
28
  this.toastButtons = [];
29
+ // The (re)initialisations so far, and the last one, which the next waits for.
30
+ this.reconnections = 0;
31
+ this.reconnection = Promise.resolve();
32
+ /**
33
+ * How long a reconnection waits for the one before it to finish, in milliseconds. A request
34
+ * that is lost with its socket never settles, and must not hold up the next connection.
35
+ * @internal
36
+ */
37
+ this.reconnectionWaitMs = RECONNECTION_WAIT_MS;
28
38
  }
29
39
  connectedCallback() {
30
40
  const _super = Object.create(null, {
@@ -36,26 +46,39 @@ export class NotificationListener extends FoundationElement {
36
46
  e.stopImmediatePropagation();
37
47
  showNotification(e.detail, this.tagName, this.notificationListener);
38
48
  });
39
- this.connectionSub = this.connect.isConnected$.subscribe((isConnected) => __awaiter(this, void 0, void 0, function* () {
40
- if (isConnected) {
41
- yield this.handleReconnection();
42
- }
43
- }));
49
+ this.connectionSub = this.connect.isConnected$.subscribe((isConnected) => {
50
+ if (!isConnected)
51
+ return;
52
+ // One at a time: a second one would destroy the datasource while the first is still
53
+ // initialising it, and the first would then ask for the metadata of no resource. Only
54
+ // the latest one subscribes.
55
+ const turn = (this.reconnections += 1);
56
+ this.reconnection = settledOrTimedOut(this.reconnection, this.reconnectionWaitMs)
57
+ .then(() => this.handleReconnection(turn))
58
+ .catch((error) => logger.error(error));
59
+ });
44
60
  });
45
61
  }
46
62
  /**
47
63
  * Handles reconnection logic when the connection is established
48
64
  * @private
49
65
  */
50
- handleReconnection() {
66
+ handleReconnection(turn) {
51
67
  return __awaiter(this, void 0, void 0, function* () {
52
68
  var _a;
53
- if (!this.resourceName) {
69
+ // Superseded by a later connection, or out of the document.
70
+ const current = () => turn === this.reconnections && this.isConnected;
71
+ if (!this.resourceName || !current()) {
54
72
  return;
55
73
  }
56
74
  (_a = this.dataSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
57
75
  this.dataSub = undefined;
58
- yield this.initializeDatasource();
76
+ const initOK = yield this.initializeDatasource();
77
+ if (!current())
78
+ return;
79
+ if (!initOK) {
80
+ throw new Error(`Failed to initialize datasource for ${this.resourceName}`);
81
+ }
59
82
  this.setupDataSubscription();
60
83
  });
61
84
  }
@@ -69,10 +92,7 @@ export class NotificationListener extends FoundationElement {
69
92
  if ((_a = this.datasource) === null || _a === void 0 ? void 0 : _a.initialized) {
70
93
  this.datasource.destroy();
71
94
  }
72
- const initOK = yield this.datasource.init({ resourceName: this.resourceName }, true);
73
- if (!initOK) {
74
- throw new Error(`Failed to initialize datasource for ${this.resourceName}`);
75
- }
95
+ return this.datasource.init({ resourceName: this.resourceName }, true);
76
96
  });
77
97
  }
78
98
  /**
@@ -156,6 +176,16 @@ __decorate([
156
176
  __decorate([
157
177
  Datasource
158
178
  ], NotificationListener.prototype, "datasource", void 0);
179
+ // Resolves once the promise settles, or after `ms`, whichever comes first.
180
+ function settledOrTimedOut(promise, ms) {
181
+ return new Promise((resolve) => {
182
+ const timer = setTimeout(resolve, ms);
183
+ promise.finally(() => {
184
+ clearTimeout(timer);
185
+ resolve();
186
+ });
187
+ });
188
+ }
159
189
  /**
160
190
  * The Foundation Notification Listener
161
191
  *
@@ -128,6 +128,7 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
128
128
  fetchGenesisData() {
129
129
  return __awaiter(this, arguments, void 0, function* (withFullInit = true) {
130
130
  var _a, _b;
131
+ // Unsubscribing logs the stream off: the socket stream's teardown sends its DATA_LOGOFF.
131
132
  (_a = this.dataSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
132
133
  this.dataSub = undefined;
133
134
  this.moreRowsAvailable = false;
@@ -145,7 +146,6 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
145
146
  }
146
147
  const requiresMetadataFetch = withFullInit || !this.datasource.initialized;
147
148
  if (!requiresMetadataFetch) {
148
- this.connect.dataLogoff(this.sourceRef);
149
149
  this.clearData();
150
150
  }
151
151
  this.sourceRef = undefined;
@@ -5872,6 +5872,14 @@ export declare class NotificationListener extends FoundationElement {
5872
5872
  protected dataSub?: Subscription;
5873
5873
  protected connectionSub: Subscription;
5874
5874
  private datasource;
5875
+ private reconnections;
5876
+ private reconnection;
5877
+ /**
5878
+ * How long a reconnection waits for the one before it to finish, in milliseconds. A request
5879
+ * that is lost with its socket never settles, and must not hold up the next connection.
5880
+ * @internal
5881
+ */
5882
+ reconnectionWaitMs: number;
5875
5883
  connectedCallback(): Promise<void>;
5876
5884
  /**
5877
5885
  * Handles reconnection logic when the connection is established
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-ui",
3
3
  "description": "Genesis Foundation UI",
4
- "version": "15.72.0",
4
+ "version": "15.73.0-FUI-2628.4",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -82,12 +82,12 @@
82
82
  }
83
83
  },
84
84
  "devDependencies": {
85
- "@genesislcap/foundation-testing": "15.72.0",
86
- "@genesislcap/genx": "15.72.0",
87
- "@genesislcap/ts-builder": "15.72.0",
88
- "@genesislcap/uvu-playwright-builder": "15.72.0",
89
- "@genesislcap/vite-builder": "15.72.0",
90
- "@genesislcap/webpack-builder": "15.72.0",
85
+ "@genesislcap/foundation-testing": "15.73.0-FUI-2628.4",
86
+ "@genesislcap/genx": "15.73.0-FUI-2628.4",
87
+ "@genesislcap/ts-builder": "15.73.0-FUI-2628.4",
88
+ "@genesislcap/uvu-playwright-builder": "15.73.0-FUI-2628.4",
89
+ "@genesislcap/vite-builder": "15.73.0-FUI-2628.4",
90
+ "@genesislcap/webpack-builder": "15.73.0-FUI-2628.4",
91
91
  "copyfiles": "^2.4.1"
92
92
  },
93
93
  "dependencies": {
@@ -96,16 +96,16 @@
96
96
  "@fortawesome/free-regular-svg-icons": "^6.2.1",
97
97
  "@fortawesome/free-solid-svg-icons": "^6.2.1",
98
98
  "@genesiscommunitysuccess/analyzer-import-alias-plugin": "^5.0.3",
99
- "@genesislcap/expression-builder": "15.72.0",
100
- "@genesislcap/foundation-ai": "15.72.0",
101
- "@genesislcap/foundation-comms": "15.72.0",
102
- "@genesislcap/foundation-criteria": "15.72.0",
103
- "@genesislcap/foundation-errors": "15.72.0",
104
- "@genesislcap/foundation-events": "15.72.0",
105
- "@genesislcap/foundation-logger": "15.72.0",
106
- "@genesislcap/foundation-notifications": "15.72.0",
107
- "@genesislcap/foundation-user": "15.72.0",
108
- "@genesislcap/foundation-utils": "15.72.0",
99
+ "@genesislcap/expression-builder": "15.73.0-FUI-2628.4",
100
+ "@genesislcap/foundation-ai": "15.73.0-FUI-2628.4",
101
+ "@genesislcap/foundation-comms": "15.73.0-FUI-2628.4",
102
+ "@genesislcap/foundation-criteria": "15.73.0-FUI-2628.4",
103
+ "@genesislcap/foundation-errors": "15.73.0-FUI-2628.4",
104
+ "@genesislcap/foundation-events": "15.73.0-FUI-2628.4",
105
+ "@genesislcap/foundation-logger": "15.73.0-FUI-2628.4",
106
+ "@genesislcap/foundation-notifications": "15.73.0-FUI-2628.4",
107
+ "@genesislcap/foundation-user": "15.73.0-FUI-2628.4",
108
+ "@genesislcap/foundation-utils": "15.73.0-FUI-2628.4",
109
109
  "@microsoft/fast-colors": "5.3.1",
110
110
  "@microsoft/fast-components": "2.30.6",
111
111
  "@microsoft/fast-element": "1.14.0",